diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp --- a/clang/lib/CodeGen/CodeGenAction.cpp +++ b/clang/lib/CodeGen/CodeGenAction.cpp @@ -779,10 +779,10 @@ ComputeDiagID(Severity, backend_frame_larger_than, DiagID); break; case DK_Linker: - assert(CurLinkModule); // FIXME: stop eating the warnings and notes. if (Severity != DS_Error) return; + assert(CurLinkModule); DiagID = diag::err_fe_cannot_link_module; break; case llvm::DK_OptimizationRemark: diff --git a/clang/test/CodeGen/Inputs/linker-diagnostic1.ll b/clang/test/CodeGen/Inputs/linker-diagnostic1.ll new file mode 100644 --- /dev/null +++ b/clang/test/CodeGen/Inputs/linker-diagnostic1.ll @@ -0,0 +1,9 @@ +target triple = "armv4-none-unknown-eabi" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" + +declare i32 @foo(i32) + +define i32 @bar(i32 %x) { + %1 = tail call i32 @foo(i32 %x) + ret i32 %1 +} diff --git a/clang/test/CodeGen/linker-diagnostic.ll b/clang/test/CodeGen/linker-diagnostic.ll new file mode 100644 --- /dev/null +++ b/clang/test/CodeGen/linker-diagnostic.ll @@ -0,0 +1,15 @@ +; RUN: mkdir -p %t +; RUN: opt -module-summary -o %t/foo.o %s +; RUN: opt -module-summary -o %t/bar.o %S/Inputs/linker-diagnostic1.ll +; RUN: llvm-lto2 run --thinlto-distributed-indexes -r %t/foo.o,foo,plx -r %t/bar.o,bar,plx \ +; RUN: -r %t/bar.o,foo, -o %t/foobar.so %t/foo.o %t/bar.o +; RUN: %clang -c -o %t/lto.bar.o --target=armv6-none-unknown-eabi -O2 \ +; RUN: -fthinlto-index=%t/bar.o.thinlto.bc %t/bar.o + +target triple = "thumbv6-unknown-linux-gnueabihf" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" + +define i32 @foo(i32 %x) { + %1 = add i32 %x, 1 + ret i32 %1 +}