From 6e033d6dcd374634a64825692342c555d2eff38f Mon Sep 17 00:00:00 2001 From: Nick Kledzik Date: Tue, 2 Oct 2012 20:01:48 +0000 Subject: [PATCH] Improve overflow detection in StringRef::getAsUnsignedInteger(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165038 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Support/StringRef.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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); -- 2.34.1