Implemented transfer function logic for unary '+'


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47357 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/GRSimpleVals.cpp b/Analysis/GRSimpleVals.cpp
index 443a7dd..a76acb3 100644
--- a/Analysis/GRSimpleVals.cpp
+++ b/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));