From: Sean Silva Date: Tue, 22 Mar 2016 20:25:32 +0000 (+0000) Subject: [lto] Provide a file name for the combined LTO object. X-Git-Tag: llvmorg-3.9.0-rc1~11220 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3baa23b50c50ce0cbc112f99b0eddd700bdfe49d;p=platform%2Fupstream%2Fllvm.git [lto] Provide a file name for the combined LTO object. Otherwise, we get diagnostics like: undefined symbol: foo in Which isn't particularly useful. llvm-svn: 264089 --- diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp index a30e352..0c042ed 100644 --- a/lld/ELF/SymbolTable.cpp +++ b/lld/ELF/SymbolTable.cpp @@ -168,7 +168,8 @@ std::unique_ptr SymbolTable::codegen(Module &M) { TargetMachine::CGFT_ObjectFile)) fatal("failed to setup codegen"); CodeGenPasses.run(M); - LtoBuffer = MemoryBuffer::getMemBuffer(OwningLTOData, "", false); + LtoBuffer = MemoryBuffer::getMemBuffer( + OwningLTOData, "LLD-INTERNAL-combined-lto-object", false); if (Config->SaveTemps) saveLtoObjectFile(LtoBuffer->getBuffer()); return createObjectFile(*LtoBuffer); diff --git a/lld/test/ELF/lto/combined-lto-object-name.ll b/lld/test/ELF/lto/combined-lto-object-name.ll new file mode 100644 index 0000000..fe4e021 --- /dev/null +++ b/lld/test/ELF/lto/combined-lto-object-name.ll @@ -0,0 +1,14 @@ +; REQUIRES: x86 +; RUN: llvm-as %s -o %t.o +; RUN: not ld.lld -m elf_x86_64 %t.o -o %t2 2>&1 | FileCheck %s + +target triple = "x86_64-unknown-linux-gnu" +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" + +declare void @foo() +define void @_start() { + call void @foo() + ret void +} + +; CHECK: undefined symbol: foo in LLD-INTERNAL-combined-lto-object