Migrated transfer functions for unary "~" and "-" to GRTransferFuncs/GRSimpleVals.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47126 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/GRExprEngine.cpp b/Analysis/GRExprEngine.cpp
index 3ff4c4b..9ec43d9 100644
--- a/Analysis/GRExprEngine.cpp
+++ b/Analysis/GRExprEngine.cpp
@@ -325,6 +325,14 @@
return TF.EvalCast(ValMgr, R, CastExpr);
}
+ inline NonLValue EvalMinus(ValueManager& ValMgr, UnaryOperator* U,
+ NonLValue X) {
+ return TF.EvalMinus(ValMgr, U, X);
+ }
+
+ inline NonLValue EvalComplement(ValueManager& ValMgr, NonLValue X) {
+ return TF.EvalComplement(ValMgr, X);
+ }
};
} // end anonymous namespace
@@ -839,13 +847,13 @@
case UnaryOperator::Minus: {
const NonLValue& R1 = cast<NonLValue>(GetValue(St, U->getSubExpr()));
- Nodify(Dst, U, N1, SetValue(St, U, R1.EvalMinus(ValMgr, U)));
+ Nodify(Dst, U, N1, SetValue(St, U, EvalMinus(ValMgr, U, R1)));
break;
}
case UnaryOperator::Not: {
const NonLValue& R1 = cast<NonLValue>(GetValue(St, U->getSubExpr()));
- Nodify(Dst, U, N1, SetValue(St, U, R1.EvalComplement(ValMgr)));
+ Nodify(Dst, U, N1, SetValue(St, U, EvalComplement(ValMgr, R1)));
break;
}