aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-02-06 02:50:36 +0000
committerTed Kremenek <kremenek@apple.com>2008-02-06 02:50:36 +0000
commita40ba02112eac995f43bb9206e7a55153f43fbb7 (patch)
treeab98aa07a5b47b6173f036bc74beee94ae04c88b
parent41652a9f2a4df49a5a632711862344212db3c226 (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.h13
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; }