commit | f3c75f7e7c97b405fbc659b6e1a98311fd6c2be6 | [log] [tgz] |
---|---|---|
author | Richard Smith <richard-llvm@metafoo.co.uk> | Fri Aug 24 00:35:46 2012 +0000 |
committer | Richard Smith <richard-llvm@metafoo.co.uk> | Fri Aug 24 00:35:46 2012 +0000 |
tree | efb1e2a16b17158243f9d3fe2bc5990cc23f22b2 | |
parent | 051c60caad2afb89aa325b47485df0f2f1ae14d8 [diff] [blame] |
Fix undefined behavior (negation of INT_MIN) in ARM backend. llvm-svn: 162520
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp index 94f1082..1917564 100644 --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp +++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
@@ -783,7 +783,7 @@ // Immediate is always encoded as positive. The 'U' bit controls add vs sub. if (Imm8 < 0) - Imm8 = -Imm8; + Imm8 = -(uint32_t)Imm8; // Scaled by 4. Imm8 /= 4;