In RuntimeDyldImpl::emitSection, make Allocate (section size to be allocated) a
authorLang Hames <lhames@gmail.com>
Tue, 11 Feb 2014 05:28:24 +0000 (05:28 +0000)
committerLang Hames <lhames@gmail.com>
Tue, 11 Feb 2014 05:28:24 +0000 (05:28 +0000)
uintptr_t. An unsigned could overflow for large sections.

No test case - anything big enough to overflow an unsigned is going to take an
appreciable time to zero when the test passes.

The choice of uintptr_t was made to match the RTDyldMemoryManager APIs, but
these should probably be hardcoded to uint64_ts: It is legitimate to JIT for
64-bit targets from a 32-bit host/compiler.

llvm-svn: 201127

llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

index b858965..7a1c4d7 100644 (file)
@@ -298,7 +298,7 @@ unsigned RuntimeDyldImpl::emitSection(ObjectImage &Obj,
   if (Name == ".eh_frame")
     PaddingSize = 4;
 
-  unsigned Allocate;
+  uintptr_t Allocate;
   unsigned SectionID = Sections.size();
   uint8_t *Addr;
   const char *pData = 0;