diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-08-24 23:29:28 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-08-24 23:29:28 +0000 |
| commit | 228e6d4cf347820fce53e57c24b266f67a413d85 (patch) | |
| tree | d2b63a5d9cee710515d33361e84ad0988d2c31fa /llvm/lib/Target/CellSPU/SPUAsmPrinter.cpp | |
| parent | 3d91b43ad22b69408af224a8d67561038705ec55 (diff) | |
| download | bcm5719-llvm-228e6d4cf347820fce53e57c24b266f67a413d85.tar.gz bcm5719-llvm-228e6d4cf347820fce53e57c24b266f67a413d85.zip | |
Fix integer undefined behavior due to signed left shift overflow in LLVM.
Reviewed offline by chandlerc.
llvm-svn: 162623
Diffstat (limited to 'llvm/lib/Target/CellSPU/SPUAsmPrinter.cpp')
| -rw-r--r-- | llvm/lib/Target/CellSPU/SPUAsmPrinter.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/llvm/lib/Target/CellSPU/SPUAsmPrinter.cpp b/llvm/lib/Target/CellSPU/SPUAsmPrinter.cpp index 03d5a9ae0c4..3396e8b1ef3 100644 --- a/llvm/lib/Target/CellSPU/SPUAsmPrinter.cpp +++ b/llvm/lib/Target/CellSPU/SPUAsmPrinter.cpp @@ -130,8 +130,7 @@ namespace { void printS10ImmOperand(const MachineInstr *MI, unsigned OpNo, raw_ostream &O) { - short value = (short) (((int) MI->getOperand(OpNo).getImm() << 16) - >> 16); + short value = MI->getOperand(OpNo).getImm(); assert((value >= -(1 << 9) && value <= (1 << 9) - 1) && "Invalid s10 argument"); O << value; @@ -140,8 +139,7 @@ namespace { void printU10ImmOperand(const MachineInstr *MI, unsigned OpNo, raw_ostream &O) { - short value = (short) (((int) MI->getOperand(OpNo).getImm() << 16) - >> 16); + short value = MI->getOperand(OpNo).getImm(); assert((value <= (1 << 10) - 1) && "Invalid u10 argument"); O << value; } |

