Index: lib/LTO/LTO.cpp =================================================================== --- lib/LTO/LTO.cpp +++ lib/LTO/LTO.cpp @@ -417,8 +417,8 @@ auto &GlobalRes = GlobalResolutions[Sym.getName()]; GlobalRes.UnnamedAddr &= Sym.isUnnamedAddr(); if (Res.Prevailing) { - assert((GlobalRes.IRName.empty() || !Sym.getIRName().empty()) && - "Overriding existing resolution with undefined asm symbol"); + assert(GlobalRes.IRName.empty() && + "Multiple prevailing defs are not allowed"); GlobalRes.IRName = Sym.getIRName(); } Index: test/LTO/Resolution/X86/common2.ll =================================================================== --- test/LTO/Resolution/X86/common2.ll +++ test/LTO/Resolution/X86/common2.ll @@ -52,24 +52,6 @@ ; RUN: -r %t2.bc,bar,px ; RUN: llvm-dis < %t.o.0.0.preopt.bc | FileCheck %s --check-prefix=NONE-PREVAILED2 - - -; Client marked both as prevailing -; RUN: llvm-lto2 run %t1.bc %t2.bc -o %t.o -save-temps \ -; RUN: -r %t1.bc,v,px \ -; RUN: -r %t2.bc,v,px \ -; RUN: -r %t1.bc,foo,px \ -; RUN: -r %t2.bc,bar,px -; RUN: llvm-dis < %t.o.0.0.preopt.bc | FileCheck %s --check-prefix=BOTH-PREVAILED1 - -; Same as before, but reversing the order of the inputs -; RUN: llvm-lto2 run %t2.bc %t1.bc -o %t.o -save-temps \ -; RUN: -r %t1.bc,v,px \ -; RUN: -r %t2.bc,v,px \ -; RUN: -r %t1.bc,foo,px \ -; RUN: -r %t2.bc,bar,px -; RUN: llvm-dis < %t.o.0.0.preopt.bc | FileCheck %s --check-prefix=BOTH-PREVAILED2 - target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" Index: test/LTO/Resolution/X86/dead-strip-fulllto.ll =================================================================== --- test/LTO/Resolution/X86/dead-strip-fulllto.ll +++ test/LTO/Resolution/X86/dead-strip-fulllto.ll @@ -2,13 +2,13 @@ ; RUN: opt -module-summary -o %t2 %S/Inputs/dead-strip-fulllto.ll ; RUN: llvm-lto2 run %t -r %t,main,px -r %t,live1,p -r %t,live2,p -r %t,dead2,p \ -; RUN: %t2 -r %t2,live1,p -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \ +; RUN: %t2 -r %t2,live1, -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \ ; RUN: -save-temps -o %t3 ; RUN: llvm-nm %t3.0 | FileCheck --check-prefix=FULL %s ; RUN: llvm-nm %t3.1 | FileCheck --check-prefix=THIN %s ; RUN: llvm-lto2 run %t -r %t,main,px -r %t,live1,p -r %t,live2,p -r %t,dead2,p \ -; RUN: %t2 -r %t2,live1,p -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \ +; RUN: %t2 -r %t2,live1, -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \ ; RUN: -save-temps -o %t3 -O0 ; RUN: llvm-nm %t3.0 | FileCheck --check-prefix=FULL %s ; RUN: llvm-nm %t3.1 | FileCheck --check-prefix=THIN %s Index: test/ThinLTO/X86/deadstrip.ll =================================================================== --- test/ThinLTO/X86/deadstrip.ll +++ test/ThinLTO/X86/deadstrip.ll @@ -16,7 +16,7 @@ ; RUN: -r %t1.bc,_boo,l \ ; RUN: -r %t2.bc,_baz,pl \ ; RUN: -r %t2.bc,_boo,pl \ -; RUN: -r %t2.bc,_dead_func,pl \ +; RUN: -r %t2.bc,_dead_func,l \ ; RUN: -r %t2.bc,_another_dead_func,pl ; RUN: llvm-dis < %t.out.0.3.import.bc | FileCheck %s --check-prefix=LTO2 ; RUN: llvm-dis < %t.out.1.3.import.bc | FileCheck %s --check-prefix=LTO2-CHECK2 @@ -81,7 +81,7 @@ ; RUN: -r %t1.bc,_boo,l \ ; RUN: -r %t3.bc,_baz,pl \ ; RUN: -r %t3.bc,_boo,pl \ -; RUN: -r %t3.bc,_dead_func,pl \ +; RUN: -r %t3.bc,_dead_func,l \ ; RUN: -r %t3.bc,_another_dead_func,pl ; RUN: llvm-dis < %t4.out.1.3.import.bc | FileCheck %s --check-prefix=CHECK-NOTDEAD ; RUN: llvm-nm %t4.out.0 | FileCheck %s --check-prefix=CHECK-NM-NOTDEAD