///
class PATypeHolder {
mutable const Type *Ty;
+ void destroy();
public:
PATypeHolder(const Type *ty) : Ty(ty) {
addRef();
addRef();
}
- ~PATypeHolder() { dropRef(); }
+ ~PATypeHolder() { if (Ty) dropRef(); }
operator Type *() const { return get(); }
Type *get() const;
private:
void addRef();
void dropRef();
+ friend class TypeMapBase;
};
// simplify_type - Allow clients to treat uses just like values when using