From 2d6a2360036cf511af0a06f9720e6a1752779d1c Mon Sep 17 00:00:00 2001 From: Brian Gaeke Date: Fri, 10 Oct 2003 17:01:36 +0000 Subject: [PATCH] Change to use strtoul instead of strtoll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9010 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Support/CommandLine.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/Support/CommandLine.cpp b/lib/Support/CommandLine.cpp index c0be0ecb34e..807ff165b09 100644 --- a/lib/Support/CommandLine.cpp +++ b/lib/Support/CommandLine.cpp @@ -14,6 +14,8 @@ #include #include #include +#include +#include using namespace cl; @@ -682,9 +684,12 @@ bool parser::parse(Option &O, const char *ArgName, bool parser::parse(Option &O, const char *ArgName, const std::string &Arg, unsigned &Value) { char *End; - long long int V = strtoll(Arg.c_str(), &End, 0); + errno = 0; + unsigned long V = strtoul(Arg.c_str(), &End, 0); Value = (unsigned)V; - if (*End != 0 || V < 0 || Value != V) + if (((V == ULONG_MAX) && (errno == ERANGE)) + || (*End != 0) + || (Value != V)) return O.error(": '" + Arg + "' value invalid for uint argument!"); return false; }