diff options
| author | Chris Lattner <sabre@nondot.org> | 2001-10-24 05:12:04 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2001-10-24 05:12:04 +0000 |
| commit | 7dacd514ca0e7e4d286fd80fb83aae1a0391115d (patch) | |
| tree | e6365e8760dddc3ecbc404fde8262c94864c4c0b /llvm | |
| parent | daebd7508d5dfc42b144cf044f9869f9db753923 (diff) | |
| download | bcm5719-llvm-7dacd514ca0e7e4d286fd80fb83aae1a0391115d.tar.gz bcm5719-llvm-7dacd514ca0e7e4d286fd80fb83aae1a0391115d.zip | |
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
llvm-svn: 971
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/VMCore/Type.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/VMCore/Type.cpp b/llvm/lib/VMCore/Type.cpp index fb4063a5ca5..c25bdf02f85 100644 --- a/llvm/lib/VMCore/Type.cpp +++ b/llvm/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<OpaqueType>(Ty)) + return false; // Two nonequal opaque types are never equal if (Ty != Ty2) { map<const Type*, const Type*>::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!"); |

