avoid undefined behavior negating minint.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110117 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-08-03 16:57:03 +00:00
parent 84b8ad321b
commit 2359e5193a

View File

@ -735,8 +735,8 @@ static void WriteConstants(unsigned FirstVal, unsigned LastVal,
Code = bitc::CST_CODE_UNDEF;
} else if (const ConstantInt *IV = dyn_cast<ConstantInt>(C)) {
if (IV->getBitWidth() <= 64) {
int64_t V = IV->getSExtValue();
if (V >= 0)
uint64_t V = IV->getSExtValue();
if ((int64_t)V >= 0)
Record.push_back(V << 1);
else
Record.push_back((-V << 1) | 1);