[llvm-commits] CVS: llvm/lib/AsmParser/Lexer.l
Chris Lattner
lattner at cs.uiuc.edu
Sat Jan 8 12:04:11 PST 2005
Changes in directory llvm/lib/AsmParser:
Lexer.l updated: 1.57 -> 1.58
---
Log message:
Silence VS warnings.
---
Diffs of the changes: (+9 -3)
Index: llvm/lib/AsmParser/Lexer.l
diff -u llvm/lib/AsmParser/Lexer.l:1.57 llvm/lib/AsmParser/Lexer.l:1.58
--- llvm/lib/AsmParser/Lexer.l:1.57 Thu Dec 9 23:40:19 2004
+++ llvm/lib/AsmParser/Lexer.l Sat Jan 8 14:03:59 2005
@@ -107,7 +107,7 @@
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 @@
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;
}
More information about the llvm-commits
mailing list