remove some confused code that used strtoull
authorChris Lattner <sabre@nondot.org>
Fri, 22 Jan 2010 01:17:12 +0000 (01:17 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 22 Jan 2010 01:17:12 +0000 (01:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94128 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-mc/AsmLexer.cpp

index 234b8f33ad08b3e21708cd59eeff8b36d08eb8d3..de61e7f5b7aebc7aa5605706c15236782e084c52 100644 (file)
@@ -14,7 +14,6 @@
 #include "AsmLexer.h"
 #include "llvm/Support/SMLoc.h"
 #include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Config/config.h"  // for strtoull.
 #include "llvm/MC/MCAsmInfo.h"
 #include <cerrno>
 #include <cstdio>
@@ -163,19 +162,13 @@ AsmToken AsmLexer::LexDigit() {
     // Requires at least one hex digit.
     if (CurPtr == NumStart)
       return ReturnError(CurPtr-2, "Invalid hexadecimal number");
-    
-    errno = 0;
-    if (errno == EINVAL)
+
+    unsigned long long Result;
+    if (StringRef(TokStart, CurPtr - TokStart).getAsInteger(0, Result))
       return ReturnError(CurPtr-2, "Invalid hexadecimal number");
-    if (errno == ERANGE) {
-      errno = 0;
-      if (errno == EINVAL)
-        return ReturnError(CurPtr-2, "Invalid hexadecimal number");
-      if (errno == ERANGE)
-        return ReturnError(CurPtr-2, "Hexadecimal number out of range");
-    }
+      
     return AsmToken(AsmToken::Integer, StringRef(TokStart, CurPtr - TokStart),
-                    (int64_t) strtoull(NumStart, 0, 16));
+                    (int64_t)Result);
   }
   
   // Must be an octal number, it starts with 0.