From: Ted Kremenek Date: Fri, 8 Feb 2008 07:14:58 +0000 (+0000) Subject: Implemented transfer functions for "<<" and ">>" when the RValues are X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=59c2d2672ef723f57ba237e518bb74ecd9a4fb14;p=clang Implemented transfer functions for "<<" and ">>" when the RValues are ConcreteInts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46883 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Analysis/RValues.cpp b/Analysis/RValues.cpp index 2b5ed1d16f..f4b8a3d340 100644 --- a/Analysis/RValues.cpp +++ b/Analysis/RValues.cpp @@ -211,13 +211,11 @@ llvm::APSInt& EvaluateAPSInt(ValueManager& ValMgr, BinaryOperator::Opcode Op, case BinaryOperator::Sub: return ValMgr.getValue( V1 - V2 ); -#if 0 case BinaryOperator::Shl: - return ValMgr.getValue( V1 << V2 ); + return ValMgr.getValue( V1.operator<<( (unsigned) V2.getZExtValue() )); case BinaryOperator::Shr: - return ValMgr.getValue( V1 >> V2 ); -#endif + return ValMgr.getValue( V1.operator>>( (unsigned) V2.getZExtValue() )); case BinaryOperator::LT: return ValMgr.getTruthValue( V1 < V2 );