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 2b5ed1d..f4b8a3d 100644
--- a/Analysis/RValues.cpp
+++ b/Analysis/RValues.cpp
@@ -211,13 +211,11 @@
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 );