diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-02-06 02:50:36 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-02-06 02:50:36 +0000 |
commit | a40ba02112eac995f43bb9206e7a55153f43fbb7 (patch) | |
tree | ab98aa07a5b47b6173f036bc74beee94ae04c88b | |
parent | 41652a9f2a4df49a5a632711862344212db3c226 (diff) |
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
-rw-r--r-- | Analysis/ValueState.h | 13 |
1 files 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; } |