diff --git a/lld/test/ELF/Inputs/eager.s b/lld/test/ELF/Inputs/eager.s new file mode 100644 index 0000000000000..1c6b6852bc782 --- /dev/null +++ b/lld/test/ELF/Inputs/eager.s @@ -0,0 +1,7 @@ +.globl eager +eager: + retq + +.globl ogre +ogre: + retq diff --git a/lld/test/ELF/lto/Inputs/eager.ll b/lld/test/ELF/lto/Inputs/eager.ll new file mode 100644 index 0000000000000..ffd550e6f9cd2 --- /dev/null +++ b/lld/test/ELF/lto/Inputs/eager.ll @@ -0,0 +1,10 @@ +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +define void @eager() { + ret void +} + +define void @ogre() { + ret void +} diff --git a/lld/test/ELF/lto/start-lib.ll b/lld/test/ELF/lto/start-lib.ll index 39f62a7b1074f..6d508c6478ec2 100644 --- a/lld/test/ELF/lto/start-lib.ll +++ b/lld/test/ELF/lto/start-lib.ll @@ -3,18 +3,19 @@ ; RUN: llvm-as %s -o %t1.o ; RUN: llvm-as %p/Inputs/start-lib1.ll -o %t2.o ; RUN: llvm-as %p/Inputs/start-lib2.ll -o %t3.o +; RUN: llvm-as %p/Inputs/eager.ll -o %t-eager.o ; -; RUN: ld.lld -shared -o %t3 %t1.o %t2.o %t3.o +; RUN: ld.lld -shared -o %t3 %t1.o %t2.o %t3.o %t-eager.o ; RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST1 %s ; TEST1: Name: foo ; TEST1: Name: bar ; -; RUN: ld.lld -shared -o %t3 -u bar %t1.o --start-lib %t2.o %t3.o +; RUN: ld.lld -shared -o %t3 -u bar %t1.o --start-lib %t2.o %t3.o %t-eager.o ; RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST2 %s ; TEST2-NOT: Name: foo ; TEST2: Name: bar ; -; RUN: ld.lld -shared -o %t3 %t1.o --start-lib %t2.o %t3.o +; RUN: ld.lld -shared -o %t3 %t1.o --start-lib %t2.o %t3.o %t-eager.o ; RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST3 %s ; TEST3-NOT: Name: foo ; TEST3-NOT: Name: bar @@ -22,6 +23,9 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" +declare void @eager() + define void @_start() { + call void @eager() ret void } diff --git a/lld/test/ELF/start-lib.s b/lld/test/ELF/start-lib.s index 04ac5a6323d05..5bd0bd628bf3f 100644 --- a/lld/test/ELF/start-lib.s +++ b/lld/test/ELF/start-lib.s @@ -5,18 +5,20 @@ // RUN: %p/Inputs/start-lib1.s -o %t2.o // RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \ // RUN: %p/Inputs/start-lib2.s -o %t3.o +// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \ +// RUN: %p/Inputs/eager.s -o %t-eager.o -// RUN: ld.lld -o %t3 %t1.o %t2.o %t3.o +// RUN: ld.lld -o %t3 %t1.o %t2.o %t3.o %t-eager.o // RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST1 %s // TEST1: Name: foo // TEST1: Name: bar -// RUN: ld.lld -o %t3 %t1.o -u bar --start-lib %t2.o %t3.o +// RUN: ld.lld -o %t3 %t1.o -u bar --start-lib %t2.o %t3.o %t-eager.o // RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST2 %s // TEST2-NOT: Name: foo // TEST2: Name: bar -// RUN: ld.lld -o %t3 %t1.o --start-lib %t2.o %t3.o +// RUN: ld.lld -o %t3 %t1.o --start-lib %t2.o %t3.o %t-eager.o // RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST3 %s // TEST3-NOT: Name: foo // TEST3-NOT: Name: bar @@ -32,3 +34,4 @@ .globl _start _start: + callq eager