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 );