From: Davide Italiano Date: Wed, 23 Aug 2017 09:43:41 +0000 (+0000) Subject: [gold] Test we don't strip globals when producing relocatables. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d7a2c8685520b1050083800b372e7386b5bfbf68;p=llvm [gold] Test we don't strip globals when producing relocatables. lld was broken in this regard (PR33097). The gold plugin gets this right so, no changes needed, but better adding a test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311541 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/gold/X86/relocatable.ll b/test/tools/gold/X86/relocatable.ll new file mode 100644 index 00000000000..95303cd1415 --- /dev/null +++ b/test/tools/gold/X86/relocatable.ll @@ -0,0 +1,26 @@ +; RUN: llvm-as %s -o %t1.o +; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \ +; RUN: -r %t1.o -o %t +; RUN: llvm-readobj -symbols %t | FileCheck %s + +; CHECK: Symbol { +; CHECK: Name: foo +; CHECK-NEXT: Value: 0x0 +; CHECK-NEXT: Size: 1 +; CHECK-NEXT: Binding: Global +; CHECK-NEXT: Type: Function +; CHECK-NEXT: Other: 0 +; CHECK-NEXT: Section: .text.foo +; CHECK-NEXT: } + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +define void @foo() { + call void @bar() + ret void +} + +define internal void @bar() { + ret void +}