From: Chris Lattner Date: Fri, 29 Aug 2003 05:11:34 +0000 (+0000) Subject: Fix bug: Linker/2003-08-28-TypeResolvesGlobal2.ll X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ad217a4ca29eacbd66e9ff5528ec8af379bc52d8;p=oota-llvm.git Fix bug: Linker/2003-08-28-TypeResolvesGlobal2.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8206 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/SymbolTable.cpp b/lib/VMCore/SymbolTable.cpp index b5476178db8..5a365dd330d 100644 --- a/lib/VMCore/SymbolTable.cpp +++ b/lib/VMCore/SymbolTable.cpp @@ -236,17 +236,12 @@ void SymbolTable::refineAbstractType(const DerivedType *OldType, "Two planes folded together with overlapping value names!"); // Make sure that ExistGV is the one we want to keep! - if (!NewGV->isExternal() || !NewGV->use_empty()) { + if (!NewGV->isExternal()) std::swap(NewGV, ExistGV); - } // Ok we have two external global values. Make all uses of the new // one use the old one... - // - assert(NewGV->use_empty() && "No uses allowed on untyped value!"); - - // We cannot replaceAllUsesWith, because they have different types! - //NewGV->replaceAllUsesWith(ExistGV); + NewGV->uncheckedReplaceAllUsesWith(ExistGV); // Now we just convert it to an unnamed method... which won't get // added to our symbol table. The problem is that if we call