Skip to Content.
Sympa Menu

svadev - [svadev] Fix SAFECode compilation warnings

svadev AT lists.siebelschool.illinois.edu

Subject: Svadev mailing list

List archive

[svadev] Fix SAFECode compilation warnings


Chronological Thread 
  • From: Pavel Borzenkov <pavel.borzenkov AT gmail.com>
  • To: svadev AT cs.uiuc.edu
  • Subject: [svadev] Fix SAFECode compilation warnings
  • Date: Wed, 26 Oct 2011 14:32:36 +0400
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/svadev>
  • List-id: <svadev.cs.uiuc.edu>

Hi.

GCC reports the following warnings when compiling SAFECode on 32-bit
Linux host in the Release configuration:

{{{
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/BitmapPoolAllocator/PoolAllocatorBitMask.cpp:
In function ‘void* __pa_bitmap_poolalloc(llvm::BitmapPoolTy*, unsigned
int)’:
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/BitmapPoolAllocator/PoolAllocatorBitMask.cpp:212:
warning: unused variable ‘Idx’
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/BitmapPoolAllocator/PoolAllocatorBitMask.cpp:
In function ‘void* poolallocarray(llvm::BitmapPoolTy*, unsigned int)’:
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/BitmapPoolAllocator/PoolAllocatorBitMask.cpp:316:
warning: unused variable ‘Idx’
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/PoolAllocatorBitMask.cpp:
In function ‘void pool_register_global(llvm::DebugPoolTy*, void*,
unsigned int)’:
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/PoolAllocatorBitMask.cpp:414:
warning: ‘end’ may be used uninitialized in this function
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/PoolAllocatorBitMask.cpp:414:
note: ‘end’ was declared here
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/PoolAllocatorBitMask.cpp:
In function ‘void pool_register_global_debug(llvm::DebugPoolTy*,
void*, unsigned int, unsigned int, const char*, unsigned int)’:
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/PoolAllocatorBitMask.cpp:414:
warning: ‘end’ may be used uninitialized in this function
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/PoolAllocatorBitMask.cpp:414:
note: ‘end’ was declared here
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/RuntimeChecks.cpp:
In function ‘bool _barebone_poolcheck(llvm::DebugPoolTy*, void*,
unsigned int, void*&, void*&)’:
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/RuntimeChecks.cpp:120:
warning: suggest parentheses around assignment used as truth value
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/RuntimeChecks.cpp:
In function ‘void poolcheckui_debug(llvm::DebugPoolTy*, void*,
unsigned int, unsigned int, const char*, unsigned int)’:
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/RuntimeChecks.cpp:353:
warning: suggest parentheses around assignment used as truth value
llvm[2]: Compiling ScanfSupport.cpp for Release build
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/ScanfSupport.cpp:428:
warning: integer constant is too large for ‘unsigned long’ type
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/ScanfSupport.cpp:429:
warning: integer constant is too large for ‘unsigned long’ type
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/ScanfSupport.cpp:430:
warning: integer constant is too large for ‘unsigned long’ type
/home/pavel/projects/safecode/llvm/projects/safecode/runtime/DebugRuntime/ScanfSupport.cpp:431:
warning: integer constant is too large for ‘unsigned long’ type
}}}

The attached patch fixes these warnings.

--
Pavel
Index: runtime/BitmapPoolAllocator/PoolAllocatorBitMask.cpp
===================================================================
--- runtime/BitmapPoolAllocator/PoolAllocatorBitMask.cpp	(revision 143015)
+++ runtime/BitmapPoolAllocator/PoolAllocatorBitMask.cpp	(working copy)
@@ -211,6 +211,7 @@
 
   int Idx = New->allocateSingle();
   assert(Idx == 0 && "New allocation didn't return zero'th node?");
+  if (Idx != 0) abort();
   if (logregs) {
     fprintf(stderr, " poolalloc:967: canonical page at 0x%p from underlying allocator\n", (void*)New);
   }
@@ -315,6 +316,7 @@
   
   int Idx = New->allocateMultiple(Size);
   assert(Idx == 0 && "New allocation didn't return zero'th node?");
+  if (Idx != 0) abort();
   
   return New->getElementAddress(0, 0);
 }
Index: runtime/DebugRuntime/RuntimeChecks.cpp
===================================================================
--- runtime/DebugRuntime/RuntimeChecks.cpp	(revision 143015)
+++ runtime/DebugRuntime/RuntimeChecks.cpp	(working copy)
@@ -117,7 +117,7 @@
   // itself.
   //
 #if 1
-  if (ObjStart = __pa_bitmap_poolcheck (Pool, Node)) {
+  if ((ObjStart = __pa_bitmap_poolcheck (Pool, Node))) {
     ObjEnd = (unsigned char *) ObjStart + Pool->NodeSize - 1;
     updateCache (Pool, ObjStart, ObjEnd);
     return true;
@@ -350,7 +350,7 @@
   // are stored in this splay tree.
   //
   int fs = 0;
-  if (fs = ExternalObjects->find (Node, ObjStart, ObjEnd)) {
+  if ((fs = ExternalObjects->find (Node, ObjStart, ObjEnd))) {
     if ((ObjStart <= Node) && (Node <= ObjEnd)) {
       if (!((ObjStart <= NodeEnd) && (NodeEnd <= ObjEnd))) {
         DebugViolationInfo v;
Index: runtime/DebugRuntime/PoolAllocatorBitMask.cpp
===================================================================
--- runtime/DebugRuntime/PoolAllocatorBitMask.cpp	(revision 143015)
+++ runtime/DebugRuntime/PoolAllocatorBitMask.cpp	(working copy)
@@ -410,14 +410,13 @@
     // If it's an overlapping global object, register the larger size.
     //
     if (allocationType == Global) {
-      void * start;
-      void * end;
-#ifndef NDEBUG
+      void * start = NULL;
+      void * end = NULL;
+
       bool fs = SPTree->find (allocaptr, start, end);
       assert (fs);
-#else
-      SPTree->find (allocaptr, start, end);
-#endif
+      if (fs == false) abort();
+
       if (((unsigned char *)allocaptr + NumBytes - 1) > end) {
         SPTree->remove (allocaptr);
         SPTree->insert(allocaptr, (char*) allocaptr + NumBytes - 1);
Index: runtime/DebugRuntime/ScanfSupport.cpp
===================================================================
--- runtime/DebugRuntime/ScanfSupport.cpp	(revision 143015)
+++ runtime/DebugRuntime/ScanfSupport.cpp	(working copy)
@@ -425,10 +425,10 @@
 const scanset_t all_chars =
 {
   scanset_t::TABLE,
-  { { 0xfffffffffffffffful,
-      0xfffffffffffffffful,
-      0xfffffffffffffffful,
-      0xfffffffffffffffful } }
+  { { 0xffffffffffffffffull,
+      0xffffffffffffffffull,
+      0xffffffffffffffffull,
+      0xffffffffffffffffull } }
 };
 
 // Clear the scanset.


  • [svadev] Fix SAFECode compilation warnings, Pavel Borzenkov, 10/26/2011

Archive powered by MHonArc 2.6.16.

Top of Page