aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-01-29 00:30:52 +0000
committerChris Lattner <sabre@nondot.org>2005-01-29 00:30:52 +0000
commitb8d5b1211f982d65546d855130d99c42780a76a0 (patch)
tree95d3f7f7d89f9f150bee467f24c820ebd3be05f2
parentf718e70c7ee45daee8a46d1601d054ed9fd8f31d (diff)
Adjust to User.h changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19884 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Use.h11
-rw-r--r--include/llvm/Value.h9
2 files changed, 12 insertions, 8 deletions
diff --git a/include/llvm/Use.h b/include/llvm/Use.h
index 88b723bfc3..8f2939406b 100644
--- a/include/llvm/Use.h
+++ b/include/llvm/Use.h
@@ -37,10 +37,17 @@ class Use {
Use *Prev, *Next;
friend struct ilist_traits<Use>;
public:
- inline Use(Value *v, User *user);
- inline Use(const Use &u);
+ inline void init(Value *V, User *U);
+
+ Use(Value *V, User *U) { init(V, U); }
+ Use(const Use &U) { init(U.Val, U.U); }
inline ~Use();
+ /// Default ctor - This leaves the Use completely unitialized. The only thing
+ /// that is valid to do with this use is to call the "init" method.
+ inline Use() : Val(0) {}
+
+
operator Value*() const { return Val; }
Value *get() const { return Val; }
User *getUser() const { return U; }
diff --git a/include/llvm/Value.h b/include/llvm/Value.h
index 2e618a5e86..90bbe6fe91 100644
--- a/include/llvm/Value.h
+++ b/include/llvm/Value.h
@@ -41,7 +41,6 @@ class SymbolTable;
/// as operands to other values.
///
class Value {
-private:
unsigned SubclassID; // Subclass identifier (for isa/dyn_cast)
PATypeHolder Ty;
iplist<Use> Uses;
@@ -168,11 +167,9 @@ inline const User *UseListConstIteratorWrapper::operator*() const {
}
-Use::Use(Value *v, User *user) : Val(v), U(user) {
- if (Val) Val->addUse(*this);
-}
-
-Use::Use(const Use &u) : Val(u.Val), U(u.U) {
+void Use::init(Value *v, User *user) {
+ Val = v;
+ U = user;
if (Val) Val->addUse(*this);
}