]> granicus.if.org Git - llvm/commitdiff
Merging r216917:
authorHal Finkel <hfinkel@anl.gov>
Tue, 9 Dec 2014 02:18:38 +0000 (02:18 +0000)
committerHal Finkel <hfinkel@anl.gov>
Tue, 9 Dec 2014 02:18:38 +0000 (02:18 +0000)
------------------------------------------------------------------------
r216917 | samsonov | 2014-09-02 17:38:34 +0000 (Tue, 02 Sep 2014) | 4 lines

Fix signed integer overflow in PPCInstPrinter.

This bug was reported by UBSan.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_35@223738 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp

index 771b6f5ec487bb175fa85a8ba06cabf1331dbd3c..628819de407ef9ab5d25271909b885e7e6acb0b5 100644 (file)
@@ -261,7 +261,7 @@ void PPCInstPrinter::printAbsBranchOperand(const MCInst *MI, unsigned OpNo,
   if (!MI->getOperand(OpNo).isImm())
     return printOperand(MI, OpNo, O);
 
-  O << (int)MI->getOperand(OpNo).getImm()*4;
+  O << SignExtend32<32>((unsigned)MI->getOperand(OpNo).getImm() << 2);
 }