From d0b87b1a8988420f00146cf6826634289ee39560 Mon Sep 17 00:00:00 2001 From: Teresa Johnson Date: Mon, 29 Aug 2016 16:22:23 +0000 Subject: [PATCH] [gold] Fix test accidentally regressed for newer gold 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. llvm-svn: 279977 --- llvm/test/tools/gold/X86/start-lib-common.ll | 2 +- .../test/tools/gold/X86/v1.12/Inputs/start-lib-common.ll | 1 + llvm/test/tools/gold/X86/v1.12/start-lib-common.ll | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 llvm/test/tools/gold/X86/v1.12/Inputs/start-lib-common.ll create mode 100644 llvm/test/tools/gold/X86/v1.12/start-lib-common.ll diff --git a/llvm/test/tools/gold/X86/start-lib-common.ll b/llvm/test/tools/gold/X86/start-lib-common.ll index 8522261..f4de62e 100644 --- a/llvm/test/tools/gold/X86/start-lib-common.ll +++ b/llvm/test/tools/gold/X86/start-lib-common.ll @@ -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/llvm/test/tools/gold/X86/v1.12/Inputs/start-lib-common.ll b/llvm/test/tools/gold/X86/v1.12/Inputs/start-lib-common.ll new file mode 100644 index 0000000..e8e53b8 --- /dev/null +++ b/llvm/test/tools/gold/X86/v1.12/Inputs/start-lib-common.ll @@ -0,0 +1 @@ +@x = common global i32 0, align 8 diff --git a/llvm/test/tools/gold/X86/v1.12/start-lib-common.ll b/llvm/test/tools/gold/X86/v1.12/start-lib-common.ll new file mode 100644 index 0000000..877570a --- /dev/null +++ b/llvm/test/tools/gold/X86/v1.12/start-lib-common.ll @@ -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 -- 2.7.4