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.");
}
}