From: Nick Kledzik Date: Tue, 2 Oct 2012 20:01:48 +0000 (+0000) Subject: Improve overflow detection in StringRef::getAsUnsignedInteger(). X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6e033d6dcd374634a64825692342c555d2eff38f;p=oota-llvm.git Improve overflow detection in StringRef::getAsUnsignedInteger(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165038 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Support/StringRef.cpp b/lib/Support/StringRef.cpp index 8aab4b2760e..f8e92084625 100644 --- a/lib/Support/StringRef.cpp +++ b/lib/Support/StringRef.cpp @@ -350,8 +350,8 @@ bool llvm::getAsUnsignedInteger(StringRef Str, unsigned Radix, unsigned long long PrevResult = Result; Result = Result*Radix+CharVal; - // Check for overflow. - if (Result < PrevResult) + // Check for overflow by shifting back and seeing if bits were lost. + if (Result/Radix < PrevResult) return true; Str = Str.substr(1);