From: Alexey Samsonov Date: Tue, 2 Sep 2014 17:38:34 +0000 (+0000) Subject: Fix signed integer overflow in PPCInstPrinter. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=93accb4815f4b1b48d2ee72733272ec8f43f7426;p=oota-llvm.git Fix signed integer overflow in PPCInstPrinter. This bug was reported by UBSan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216917 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp b/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp index 35ba3c008f2..670c40a2a3b 100644 --- a/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp +++ b/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp @@ -268,7 +268,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); }