]> granicus.if.org Git - clang/commitdiff
Implemented transfer functions for "<<" and ">>" when the RValues are
authorTed Kremenek <kremenek@apple.com>
Fri, 8 Feb 2008 07:14:58 +0000 (07:14 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 8 Feb 2008 07:14:58 +0000 (07:14 +0000)
ConcreteInts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46883 91177308-0d34-0410-b5e6-96231b3b80d8

Analysis/RValues.cpp

index 2b5ed1d16f43a6f0dc69c41c1e0ec20ac23804f1..f4b8a3d34067f039817c1e428a5d4071775b3eb1 100644 (file)
@@ -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 );