From 0ea8fea0ba63aa47a9d6ada923f82358e376b292 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). llvm-svn: 46794 --- clang/Analysis/ValueState.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/clang/Analysis/ValueState.h b/clang/Analysis/ValueState.h index b452979e2ee2..1067531f5bbe 100644 --- a/clang/Analysis/ValueState.h +++ b/clang/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; } -- GitLab