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
diff --git a/include/clang/Analysis/PathSensitive/GRExprEngine.h b/include/clang/Analysis/PathSensitive/GRExprEngine.h
index 4a042471..0a0516e 100644
--- a/include/clang/Analysis/PathSensitive/GRExprEngine.h
+++ b/include/clang/Analysis/PathSensitive/GRExprEngine.h
@@ -548,12 +548,13 @@
   }
   
   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 @@
                                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 db7de81..8a9b974 100644
--- a/include/clang/Analysis/PathSensitive/GRTransferFuncs.h
+++ b/include/clang/Analysis/PathSensitive/GRTransferFuncs.h
@@ -25,6 +25,19 @@
   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 @@
   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 f95ccb5..cc31ddd 100644
--- a/lib/Analysis/GRSimpleVals.cpp
+++ b/lib/Analysis/GRSimpleVals.cpp
@@ -450,8 +450,9 @@
 
 // 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 fc20c3e..ac07f8b 100644
--- a/lib/Analysis/GRSimpleVals.h
+++ b/lib/Analysis/GRSimpleVals.h
@@ -25,6 +25,12 @@
 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 @@
   
   // 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 9d9c97f..e30e071 100644
--- a/lib/Analysis/GRTransferFuncs.cpp
+++ b/lib/Analysis/GRTransferFuncs.cpp
@@ -44,5 +44,5 @@
                                   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)));
 }