From: Chris Lattner Date: Mon, 2 Jun 2003 17:25:46 +0000 (+0000) Subject: Fix bug: Linker/2003-06-02-TypeResolveProblem.ll X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bf44ecccdb8c723983a6e7c6dc8874e65cab3c2b;p=oota-llvm.git Fix bug: Linker/2003-06-02-TypeResolveProblem.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6542 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp index 8fa5342ff3b..5c2f73e0017 100644 --- a/lib/VMCore/Constants.cpp +++ b/lib/VMCore/Constants.cpp @@ -556,6 +556,7 @@ void ConstantArray::destroyConstant() { void ConstantArray::refineAbstractType(const DerivedType *OldTy, const Type *NewTy) { Value::refineAbstractType(OldTy, NewTy); + if (OldTy == NewTy) return; // Make everyone now use a constant of the new type... std::vector C; @@ -625,6 +626,7 @@ void ConstantStruct::destroyConstant() { void ConstantStruct::refineAbstractType(const DerivedType *OldTy, const Type *NewTy) { Value::refineAbstractType(OldTy, NewTy); + if (OldTy == NewTy) return; // Make everyone now use a constant of the new type... std::vector C; @@ -666,6 +668,7 @@ void ConstantPointerNull::destroyConstant() { void ConstantPointerNull::refineAbstractType(const DerivedType *OldTy, const Type *NewTy) { Value::refineAbstractType(OldTy, NewTy); + if (OldTy == NewTy) return; // Make everyone now use a constant of the new type... if (NewTy != OldTy) { @@ -798,6 +801,7 @@ void ConstantExpr::destroyConstant() { void ConstantExpr::refineAbstractType(const DerivedType *OldTy, const Type *NewTy) { Value::refineAbstractType(OldTy, NewTy); + if (OldTy == NewTy) return; // FIXME: These need to use a lower-level implementation method, because the // ::get methods intuit the type of the result based on the types of the