Simplified transfer function logic for ++/-- operators.
Added more boilerplate transfer function support for pointer arithmetic.
Added more pretty-printing support for symbolic constraints.
Added transfer function support for handling enum values.
Minor pointer types cleanup in ExplodedGraphImpl.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47183 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/RValues.cpp b/Analysis/RValues.cpp
index 8eb607c..a9b44eb 100644
--- a/Analysis/RValues.cpp
+++ b/Analysis/RValues.cpp
@@ -428,11 +428,23 @@
 }
 
 static void printOpcode(std::ostream& Out, BinaryOperator::Opcode Op) {
-  switch (Op) {      
+  switch (Op) {
+    case BinaryOperator::Mul: Out << "*"; break;
+    case BinaryOperator::Div: Out << "/"; break;
+    case BinaryOperator::Rem: Out << "%" ; break;
     case BinaryOperator::Add: Out << "+" ; break;
     case BinaryOperator::Sub: Out << "-" ; break;
+    case BinaryOperator::Shl: Out << "<<" ; break;
+    case BinaryOperator::Shr: Out << ">>" ; break;
+    case BinaryOperator::LT: Out << "<" ; break;
+    case BinaryOperator::GT: Out << ">" ; break;
+    case BinaryOperator::LE: Out << "<=" ; break;
+    case BinaryOperator::GE: Out << ">=" ; break;    
     case BinaryOperator::EQ: Out << "=="; break;
     case BinaryOperator::NE: Out << "!="; break;
+    case BinaryOperator::And: Out << "&" ; break;
+    case BinaryOperator::Xor: Out << "^" ; break;
+    case BinaryOperator::Or: Out << "|" ; break;      
     default: assert(false && "Not yet implemented.");
   }        
 }