From: Chris Lattner Date: Wed, 18 Aug 2010 00:33:47 +0000 (+0000) Subject: stomp some more undefined behavior, PR7775. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5083912dd79249a8954fd3e1e381a0cd7c624fbd;p=oota-llvm.git stomp some more undefined behavior, PR7775. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111337 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Support/APInt.cpp b/lib/Support/APInt.cpp index 262fa42ab2c..8a212a291f2 100644 --- a/lib/Support/APInt.cpp +++ b/lib/Support/APInt.cpp @@ -2123,15 +2123,16 @@ void APInt::toString(SmallVectorImpl &Str, unsigned Radix, char *BufPtr = Buffer+65; uint64_t N; - if (Signed) { + if (!Signed) { + N = getZExtValue(); + } else { int64_t I = getSExtValue(); - if (I < 0) { + if (I >= 0) { + N = I; + } else { Str.push_back('-'); - I = -I; + N = -(uint64_t)I; } - N = I; - } else { - N = getZExtValue(); } while (N) {