diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-07-18 15:27:58 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-07-18 15:27:58 +0000 |
commit | ad8329e58df5b0b2c44dca1447b324467a6c5da1 (patch) | |
tree | 5543e25f7e51f1b21a358b3f66a95e70d70e5360 | |
parent | 6297a8ec313c722db50f686fd190842b7ea91118 (diff) |
Renamed deterministic EvalBinOp to DetermEvalBinOpNN. This name mangling is unfortunately needed because virtual methods with the same name can be hidden by subclasses.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53751 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Analysis/PathSensitive/GRExprEngine.h | 11 | ||||
-rw-r--r-- | include/clang/Analysis/PathSensitive/GRTransferFuncs.h | 19 | ||||
-rw-r--r-- | lib/Analysis/GRSimpleVals.cpp | 5 | ||||
-rw-r--r-- | lib/Analysis/GRSimpleVals.h | 9 | ||||
-rw-r--r-- | lib/Analysis/GRTransferFuncs.cpp | 2 |
5 files changed, 29 insertions, 17 deletions
diff --git a/include/clang/Analysis/PathSensitive/GRExprEngine.h b/include/clang/Analysis/PathSensitive/GRExprEngine.h index 4a04247139..0a0516e602 100644 --- a/include/clang/Analysis/PathSensitive/GRExprEngine.h +++ b/include/clang/Analysis/PathSensitive/GRExprEngine.h @@ -548,12 +548,13 @@ protected: } RVal EvalBinOp(BinaryOperator::Opcode Op, NonLVal L, NonLVal R) { - return R.isValid() ? getTF().EvalBinOp(getStateManager(), Op, L, R) : R; + return R.isValid() ? getTF().DetermEvalBinOpNN(getStateManager(), Op, L, R) + : R; } RVal EvalBinOp(BinaryOperator::Opcode Op, NonLVal L, RVal R) { - return R.isValid() ? getTF().EvalBinOp(getStateManager(), Op, L, - cast<NonLVal>(R)) : R; + return R.isValid() ? getTF().DetermEvalBinOpNN(getStateManager(), Op, L, + cast<NonLVal>(R)) : R; } void EvalBinOp(ExplodedNodeSet<ValueState>& Dst, Expr* Ex, @@ -589,8 +590,8 @@ protected: cast<NonLVal>(L)); } else - return getTF().EvalBinOp(getStateManager(), Op, cast<NonLVal>(L), - cast<NonLVal>(R)); + return getTF().DetermEvalBinOpNN(getStateManager(), Op, cast<NonLVal>(L), + cast<NonLVal>(R)); } diff --git a/include/clang/Analysis/PathSensitive/GRTransferFuncs.h b/include/clang/Analysis/PathSensitive/GRTransferFuncs.h index db7de81621..8a9b9741d4 100644 --- a/include/clang/Analysis/PathSensitive/GRTransferFuncs.h +++ b/include/clang/Analysis/PathSensitive/GRTransferFuncs.h @@ -25,6 +25,19 @@ namespace clang { class ObjCMessageExpr; class GRTransferFuncs { + + friend class GRExprEngine; + +protected: + + + virtual RVal DetermEvalBinOpNN(ValueStateManager& StateMgr, + BinaryOperator::Opcode Op, + NonLVal L, NonLVal R) { + return UnknownVal(); + } + + public: GRTransferFuncs() {} virtual ~GRTransferFuncs() {} @@ -47,12 +60,6 @@ public: virtual RVal EvalComplement(GRExprEngine& Engine, NonLVal X) = 0; // Binary Operators. - - virtual RVal EvalBinOp(ValueStateManager& StateMgr, BinaryOperator::Opcode Op, - NonLVal L, NonLVal R) { - return UnknownVal(); - } - virtual void EvalBinOpNN(ValueStateSet& OStates, ValueStateManager& StateMgr, const ValueState* St, Expr* Ex, BinaryOperator::Opcode Op, NonLVal L, NonLVal R); diff --git a/lib/Analysis/GRSimpleVals.cpp b/lib/Analysis/GRSimpleVals.cpp index f95ccb564f..cc31ddddef 100644 --- a/lib/Analysis/GRSimpleVals.cpp +++ b/lib/Analysis/GRSimpleVals.cpp @@ -450,8 +450,9 @@ RVal GRSimpleVals::EvalComplement(GRExprEngine& Eng, NonLVal X) { // Binary operators. -RVal GRSimpleVals::EvalBinOp(ValueStateManager& StateMgr, - BinaryOperator::Opcode Op, NonLVal L, NonLVal R) { +RVal GRSimpleVals::DetermEvalBinOpNN(ValueStateManager& StateMgr, + BinaryOperator::Opcode Op, + NonLVal L, NonLVal R) { BasicValueFactory& BasicVals = StateMgr.getBasicVals(); diff --git a/lib/Analysis/GRSimpleVals.h b/lib/Analysis/GRSimpleVals.h index fc20c3e5bc..ac07f8b324 100644 --- a/lib/Analysis/GRSimpleVals.h +++ b/lib/Analysis/GRSimpleVals.h @@ -25,6 +25,12 @@ class PathDiagnostic; class ASTContext; class GRSimpleVals : public GRTransferFuncs { +protected: + + virtual RVal DetermEvalBinOpNN(ValueStateManager& StateMgr, + BinaryOperator::Opcode Op, + NonLVal L, NonLVal R); + public: GRSimpleVals() {} virtual ~GRSimpleVals() {} @@ -44,9 +50,6 @@ public: // Binary Operators. - virtual RVal EvalBinOp(ValueStateManager& StateMgr, BinaryOperator::Opcode Op, - NonLVal L, NonLVal R); - virtual RVal EvalBinOp(GRExprEngine& Engine, BinaryOperator::Opcode Op, LVal L, LVal R); diff --git a/lib/Analysis/GRTransferFuncs.cpp b/lib/Analysis/GRTransferFuncs.cpp index 9d9c97f0ed..e30e0712c5 100644 --- a/lib/Analysis/GRTransferFuncs.cpp +++ b/lib/Analysis/GRTransferFuncs.cpp @@ -44,5 +44,5 @@ void GRTransferFuncs::EvalBinOpNN(ValueStateSet& OStates, BinaryOperator::Opcode Op, NonLVal L, NonLVal R) { - OStates.Add(StateMgr.SetRVal(St, Ex, EvalBinOp(StateMgr, Op, L, R))); + OStates.Add(StateMgr.SetRVal(St, Ex, DetermEvalBinOpNN(StateMgr, Op, L, R))); } |