Silence VS warnings.
authorChris Lattner <sabre@nondot.org>
Sat, 8 Jan 2005 20:07:03 +0000 (20:07 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 8 Jan 2005 20:07:03 +0000 (20:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19390 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AsmParser/Lexer.l
lib/ExecutionEngine/JIT/JIT.cpp
lib/ExecutionEngine/JIT/JITEmitter.cpp

index e39d224f0ceb806ef491bc68d8f8fc01ce5a36ed..2edc50fa10198d9c3a256387b08d33af03f3522e 100644 (file)
@@ -107,7 +107,7 @@ char *UnEscapeLexed(char *Buffer, bool AllowNull) {
   for (char *BIn = Buffer; *BIn; ) {
     if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
       char Tmp = BIn[3]; BIn[3] = 0;     // Terminate string
-      *BOut = strtol(BIn+1, 0, 16);  // Convert to number
+      *BOut = (char)strtol(BIn+1, 0, 16);  // Convert to number
       if (!AllowNull && !*BOut)
         ThrowException("String literal cannot accept \\00 escape!");
       
@@ -302,13 +302,19 @@ getelementptr   { RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
                    return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
                  }
 
-{EPInteger}     { llvmAsmlval.UIntVal = atoull(yytext+1); return UINTVAL; }
+{EPInteger}     {
+                  uint64_t Val = atoull(yytext+1);
+                  if ((unsigned)Val != Val)
+                    ThrowException("Invalid value number (too large)!");
+                  llvmAsmlval.UIntVal = unsigned(Val);
+                  return UINTVAL;
+                }
 {ENInteger}     {
                   uint64_t Val = atoull(yytext+2);
                  // +1:  we have bigger negative range
                  if (Val > (uint64_t)INT32_MAX+1)
                    ThrowException("Constant too large for signed 32 bits!");
-                  llvmAsmlval.SIntVal = -Val;
+                  llvmAsmlval.SIntVal = (int)-Val;
                  return SINTVAL;
                 }
 
index 2bab9e735b5d31360248c48aa4f3da2a9dae56ae..1d781d6e4e22952459149949b875998decc5895c 100644 (file)
@@ -284,7 +284,8 @@ void *JIT::getOrEmitGlobalVariable(const GlobalVariable *GV) {
     // If the global hasn't been emitted to memory yet, allocate space.  We will
     // actually initialize the global after current function has finished
     // compilation.
-    Ptr =new char[getTargetData().getTypeSize(GV->getType()->getElementType())];
+    uint64_t S = getTargetData().getTypeSize(GV->getType()->getElementType());
+    Ptr = new char[(size_t)S];
     PendingGlobals.push_back(GV);
   }
   addGlobalMapping(GV, Ptr);
index 660343301597ed90a51851671501e2e54b619ab1..bd00c964ccab76738553815ade5bd2cfe13c57f2 100644 (file)
@@ -360,7 +360,7 @@ void JITEmitter::emitConstantPool(MachineConstantPool *MCP) {
   unsigned TotalSize = 0;
   for (unsigned i = 0, e = Constants.size(); i != e; ++i) {
     const Type *Ty = Constants[i]->getType();
-    unsigned Size      = TheJIT->getTargetData().getTypeSize(Ty);
+    unsigned Size      = (unsigned)TheJIT->getTargetData().getTypeSize(Ty);
     unsigned Alignment = TheJIT->getTargetData().getTypeAlignment(Ty);
     // Make sure to take into account the alignment requirements of the type.
     TotalSize = (TotalSize + Alignment-1) & ~(Alignment-1);