From 008f906afde4365dd30dde13bd22ae795c4112f9 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 24 Oct 2001 05:12:04 +0000 Subject: Two things: 1. Forward propogate a loaded constant to make debugging slightly less annoying 2. Fix an extremely nasty hard to find bug that really irritated me for the better part of 6 hours and was causing linking to die and bizarre and mysterious ways. Things should be much more stable now that this one liner has been fixed. GRR git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@971 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/Type.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/VMCore/Type.cpp') diff --git a/lib/VMCore/Type.cpp b/lib/VMCore/Type.cpp index fb4063a..c25bdf0 100644 --- a/lib/VMCore/Type.cpp +++ b/lib/VMCore/Type.cpp @@ -300,6 +300,8 @@ static bool TypesEqual(const Type *Ty, const Type *Ty2, if (Ty == Ty2) return true; if (Ty->getPrimitiveID() != Ty2->getPrimitiveID()) return false; if (Ty->isPrimitiveType()) return true; + if (isa(Ty)) + return false; // Two nonequal opaque types are never equal if (Ty != Ty2) { map::iterator I = EqTypes.find(Ty); @@ -744,7 +746,7 @@ void DerivedType::refineAbstractTypeTo(const Type *NewType) { << (void*)this << " " << getDescription() << "] to [" << (void*)NewTy.get() << " " << NewTy->getDescription() << "]!\n"; #endif - AbstractTypeUsers.back()->refineAbstractType(this, NewTy); + User->refineAbstractType(this, NewTy); assert(AbstractTypeUsers.size() != OldSize && "AbsTyUser did not remove self from user list!"); -- cgit v1.1