OSDN Git Service

[gold] Fix test accidentally regressed for newer gold
authorTeresa Johnson <tejohnson@google.com>
Mon, 29 Aug 2016 16:22:23 +0000 (16:22 +0000)
committerTeresa Johnson <tejohnson@google.com>
Mon, 29 Aug 2016 16:22:23 +0000 (16:22 +0000)
With r279911 I accidentally regressed the gold/X86/start-lib-common.ll
test for newer golds (v1.12+) that honor the --start-lib/--end-lib.
Remove the alignment which should not be there to make this work with
both old and new gold linkers.

Additionally, now that we have a subdirectory for v1.12+ gold tests,
copy this test there and check specifically for the v1.12+ behavior.

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

test/tools/gold/X86/start-lib-common.ll
test/tools/gold/X86/v1.12/Inputs/start-lib-common.ll [new file with mode: 0644]
test/tools/gold/X86/v1.12/start-lib-common.ll [new file with mode: 0644]

index 8522261..f4de62e 100644 (file)
@@ -19,4 +19,4 @@
 
 ; Check that the common symbol is not dropped completely, which was a regression
 ; in r262676.
-; CHECK: @x = common global i32 0, align 8
+; CHECK: @x = common global i32 0, align
diff --git a/test/tools/gold/X86/v1.12/Inputs/start-lib-common.ll b/test/tools/gold/X86/v1.12/Inputs/start-lib-common.ll
new file mode 100644 (file)
index 0000000..e8e53b8
--- /dev/null
@@ -0,0 +1 @@
+@x = common global i32 0, align 8
diff --git a/test/tools/gold/X86/v1.12/start-lib-common.ll b/test/tools/gold/X86/v1.12/start-lib-common.ll
new file mode 100644 (file)
index 0000000..877570a
--- /dev/null
@@ -0,0 +1,16 @@
+; Test the case when the preferred (larger / more aligned) version of a common
+; symbol is located in a module that's not included in the link.
+
+; RUN: llvm-as %s -o %t1.o
+; RUN: llvm-as %p/Inputs/start-lib-common.ll -o %t2.o
+
+; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
+; RUN:    --plugin-opt=emit-llvm \
+; RUN:    -shared %t1.o --start-lib %t2.o --end-lib -o %t3.o
+; RUN: llvm-dis %t3.o -o - | FileCheck %s
+
+@x = common global i32 0, align 4
+
+; v1.12 gold honors --start-lib/--end-lib, drops %t2.o and ends up
+; with (i32 align 4) symbol.
+; CHECK: @x = common global i32 0, align 4