Index: lld/trunk/ELF/SymbolTable.cpp =================================================================== --- lld/trunk/ELF/SymbolTable.cpp +++ lld/trunk/ELF/SymbolTable.cpp @@ -132,7 +132,7 @@ MemoryBuffer::getMemBuffer(F.MB, false); std::unique_ptr M = check(getLazyBitcodeModule(std::move(Buffer), Context, - /*ShouldLazyLoadMetadata*/ true)); + /*ShouldLazyLoadMetadata*/ false)); std::vector Keep; for (SymbolBody *B : F.getSymbols()) { if (B->repl() != B) Index: lld/trunk/test/ELF/lto/metadata.ll =================================================================== --- lld/trunk/test/ELF/lto/metadata.ll +++ lld/trunk/test/ELF/lto/metadata.ll @@ -0,0 +1,13 @@ +; REQUIRES: x86 +; RUN: llvm-as %s -o %t1.o +; RUN: ld.lld -m elf_x86_64 %t1.o %t1.o -o %t.so -shared + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +define weak void @foo(i32* %p) { + store i32 5, i32* %p, align 4, !tbaa !0 + ret void +} + +!0 = !{!"Simple C/C++ TBAA"}