summaryrefslogtreecommitdiff
path: root/include/llvm/DerivedTypes.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-04-05 22:21:08 +0000
committerChris Lattner <sabre@nondot.org>2002-04-05 22:21:08 +0000
commit1602560ef95436076c84680ade3ae9a03d2ee922 (patch)
tree28354123abec6fe9d116cf41e002384ffe6293f4 /include/llvm/DerivedTypes.h
parentcecb520d1ccf76f0b1c0e9c87dbcbad56f6b1e4e (diff)
downloadllvm-1602560ef95436076c84680ade3ae9a03d2ee922.tar.gz
llvm-1602560ef95436076c84680ade3ae9a03d2ee922.tar.bz2
llvm-1602560ef95436076c84680ade3ae9a03d2ee922.tar.xz
* Delete getNumAbstractTypeUsers method
* Move addAbstractTypeUser method to Type.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2120 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/DerivedTypes.h')
-rw-r--r--include/llvm/DerivedTypes.h24
1 files changed, 7 insertions, 17 deletions
diff --git a/include/llvm/DerivedTypes.h b/include/llvm/DerivedTypes.h
index 1a8bf9019c..9e01ba37c9 100644
--- a/include/llvm/DerivedTypes.h
+++ b/include/llvm/DerivedTypes.h
@@ -14,17 +14,20 @@
#include "llvm/Type.h"
class DerivedType : public Type {
+ char isRefining; // Used for recursive types
+
// AbstractTypeUsers - Implement a list of the users that need to be notified
// if I am a type, and I get resolved into a more concrete type.
//
///// FIXME: kill mutable nonsense when Type's are not const
mutable std::vector<AbstractTypeUser *> AbstractTypeUsers;
- char isRefining; // Used for recursive types
-
protected:
inline DerivedType(PrimitiveID id) : Type("", id) {
- isRefining = false;
+ isRefining = 0;
+ }
+ ~DerivedType() {
+ assert(AbstractTypeUsers.empty());
}
// typeIsRefined - Notify AbstractTypeUsers of this type that the current type
@@ -50,14 +53,7 @@ public:
// addAbstractTypeUser - Notify an abstract type that there is a new user of
// it. This function is called primarily by the PATypeHandle class.
//
- void addAbstractTypeUser(AbstractTypeUser *U) const {
- assert(isAbstract() && "addAbstractTypeUser: Current type not abstract!");
-#if 0
- cerr << " addAbstractTypeUser[" << (void*)this << ", " << getDescription()
- << "][" << AbstractTypeUsers.size() << "] User = " << U << endl;
-#endif
- AbstractTypeUsers.push_back(U);
- }
+ void addAbstractTypeUser(AbstractTypeUser *U) const;
// removeAbstractTypeUser - Notify an abstract type that a user of the class
// no longer has a handle to the type. This function is called primarily by
@@ -66,12 +62,6 @@ public:
//
void removeAbstractTypeUser(AbstractTypeUser *U) const;
- // getNumAbstractTypeUsers - Return the number of users registered to the type
- inline unsigned getNumAbstractTypeUsers() const {
- assert(isAbstract() && "getNumAbstractTypeUsers: Type not abstract!");
- return AbstractTypeUsers.size();
- }
-
// refineAbstractTypeTo - This function is used to when it is discovered that
// the 'this' abstract type is actually equivalent to the NewType specified.
// This causes all users of 'this' to switch to reference the more concrete