Implemented transfer function logic for unary '+'
llvm-svn: 47357
diff --git a/clang/Analysis/GRSimpleVals.cpp b/clang/Analysis/GRSimpleVals.cpp
index 443a7dd..a76acb3 100644
--- a/clang/Analysis/GRSimpleVals.cpp
+++ b/clang/Analysis/GRSimpleVals.cpp
@@ -112,6 +112,20 @@
}
}
+NonLValue GRSimpleVals::EvalPlus(ValueManager& ValMgr, UnaryOperator* U,
+ NonLValue X) {
+
+ assert (!isa<UnknownVal>(X) && !isa<UninitializedVal>(X));
+
+ switch (X.getSubKind()) {
+ case nonlval::ConcreteIntKind:
+ return cast<nonlval::ConcreteInt>(X).EvalPlus(ValMgr, U);
+ default:
+ return cast<NonLValue>(UnknownVal());
+ }
+}
+
+
NonLValue GRSimpleVals::EvalComplement(ValueManager& ValMgr, NonLValue X) {
assert (!isa<UnknownVal>(X) && !isa<UninitializedVal>(X));