Add a test showing the interaction of linker scripts and plugin.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 5 Aug 2014 19:56:53 +0000 (19:56 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 5 Aug 2014 19:56:53 +0000 (19:56 +0000)
In particular, the linker script is processed early enough for function g
to be internalized.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214916 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/gold/Inputs/linker-script.export [new file with mode: 0644]
test/tools/gold/linker-script.ll [new file with mode: 0644]

diff --git a/test/tools/gold/Inputs/linker-script.export b/test/tools/gold/Inputs/linker-script.export
new file mode 100644 (file)
index 0000000..2062a08
--- /dev/null
@@ -0,0 +1,5 @@
+{
+  global:
+    f;
+  local: *;
+};
diff --git a/test/tools/gold/linker-script.ll b/test/tools/gold/linker-script.ll
new file mode 100644 (file)
index 0000000..35a7694
--- /dev/null
@@ -0,0 +1,17 @@
+; RUN: llvm-as %s -o %t.o
+
+; RUN: ld -plugin %llvmshlibdir/LLVMgold.so \
+; RUN:    --plugin-opt=emit-llvm \
+; RUN:    -shared %t.o -o %t2.o \
+; RUN:    -version-script=%p/Inputs/linker-script.export
+; RUN: llvm-dis %t2.o -o - | FileCheck %s
+
+; CHECK: define void @f()
+define void @f() {
+  ret void
+}
+
+; CHECK: define internal void @g()
+define void @g() {
+  ret void
+}