Index: lib/Linker/IRMover.cpp =================================================================== --- lib/Linker/IRMover.cpp +++ lib/Linker/IRMover.cpp @@ -617,8 +617,7 @@ if (ForDefinition) NewGV->setLinkage(SGV->getLinkage()); - else if (SGV->hasExternalWeakLinkage() || SGV->hasWeakLinkage() || - SGV->hasLinkOnceLinkage()) + else if (SGV->hasExternalWeakLinkage()) NewGV->setLinkage(GlobalValue::ExternalWeakLinkage); NewGV->copyAttributesFrom(SGV); Index: test/Linker/comdat14.ll =================================================================== --- test/Linker/comdat14.ll +++ test/Linker/comdat14.ll @@ -5,5 +5,5 @@ @v = global i32 0, comdat ($c) ; CHECK: @v = global i32 0, comdat($c) -; CHECK: @v2 = extern_weak dllexport global i32 -; CHECK: @v3 = extern_weak global i32 +; CHECK: @v2 = external dllexport global i32 +; CHECK: @v3 = external global i32