From a40ba02112eac995f43bb9206e7a55153f43fbb7 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Wed, 6 Feb 2008 02:50:36 +0000 Subject: [PATCH] Disabled operator= for ValueStateImpl. ValueState no longer inherits FoldingSetNode (not needed). Removed redundant operator= implementation for ValueState (it simply did the default behavior). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46794 91177308-0d34-0410-b5e6-96231b3b80d8 --- Analysis/ValueState.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Analysis/ValueState.h b/Analysis/ValueState.h index b452979e2e..1067531f5b 100644 --- a/Analysis/ValueState.h +++ b/Analysis/ValueState.h @@ -125,7 +125,11 @@ namespace vstate { /// for a "state" in our symbolic value tracking. It is intended to be /// used as a functional object; that is once it is created and made /// "persistent" in a FoldingSet its values will never change. -struct ValueStateImpl : public llvm::FoldingSetNode { +class ValueStateImpl : public llvm::FoldingSetNode { +private: + void operator=(const ValueStateImpl& R) const; + +public: vstate::VariableBindingsTy VariableBindings; vstate::ConstantNotEqTy ConstantNotEq; vstate::ConstantEqTy ConstantEq; @@ -144,6 +148,8 @@ struct ValueStateImpl : public llvm::FoldingSetNode { ConstantNotEq(RHS.ConstantNotEq), ConstantEq(RHS.ConstantEq) {} + + /// Profile - Profile the contents of a ValueStateImpl object for use /// in a FoldingSet. static void Profile(llvm::FoldingSetNodeID& ID, const ValueStateImpl& V) { @@ -167,12 +173,11 @@ struct ValueStateImpl : public llvm::FoldingSetNode { /// void* when being handled by GREngine. It also forces us to unique states; /// consequently, a ValueStateImpl* with a specific address will always refer /// to the unique state with those values. -class ValueState : public llvm::FoldingSetNode { +class ValueState { ValueStateImpl* Data; public: ValueState(ValueStateImpl* D) : Data(D) {} - ValueState() : Data(0) {} - void operator=(ValueStateImpl* D) { Data = D; } + ValueState() : Data(0) {} // Accessors. ValueStateImpl* getImpl() const { return Data; } -- 2.50.1