OSDN Git Service

Fix integer undefined behavior due to signed left shift overflow in LLVM.
[android-x86/external-llvm.git] / lib / Target / ARM / Disassembler / ARMDisassembler.cpp
index c90751d..c394ed1 100644 (file)
@@ -3170,7 +3170,7 @@ static DecodeStatus DecodeT2Imm8S4(MCInst &Inst, unsigned Val,
     int imm = Val & 0xFF;
 
     if (!(Val & 0x100)) imm *= -1;
-    Inst.addOperand(MCOperand::CreateImm(imm << 2));
+    Inst.addOperand(MCOperand::CreateImm(imm * 4));
   }
 
   return MCDisassembler::Success;