[llvm] r216917 - Fix signed integer overflow in PPCInstPrinter.

Alexey Samsonov vonosmas at gmail.com
Tue Sep 2 10:38:34 PDT 2014


Author: samsonov
Date: Tue Sep  2 12:38:34 2014
New Revision: 216917

URL: http://llvm.org/viewvc/llvm-project?rev=216917&view=rev
Log:
Fix signed integer overflow in PPCInstPrinter.

This bug was reported by UBSan.

Modified:
    llvm/trunk/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp

Modified: llvm/trunk/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp?rev=216917&r1=216916&r2=216917&view=diff
==============================================================================
--- llvm/trunk/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp (original)
+++ llvm/trunk/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp Tue Sep  2 12:38:34 2014
@@ -268,7 +268,7 @@ void PPCInstPrinter::printAbsBranchOpera
   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);
 }
 
 





More information about the llvm-commits mailing list