Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / lld / test / ELF / wrap.s
blob2a3e56cb0af5775780e67827ea20db43e477ccc6
1 // REQUIRES: x86
2 // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
3 // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/wrap.s -o %t2
5 // RUN: ld.lld -o %t3 %t %t2 -wrap foo -wrap nosuchsym
6 // RUN: llvm-objdump -d --print-imm-hex %t3 | FileCheck %s
7 // RUN: ld.lld -o %t3 %t %t2 --wrap foo -wrap=nosuchsym
8 // RUN: llvm-objdump -d --print-imm-hex %t3 | FileCheck %s
9 // RUN: ld.lld -o %t3 %t %t2 --wrap foo --wrap foo -wrap=nosuchsym
10 // RUN: llvm-objdump -d --print-imm-hex %t3 | FileCheck %s
12 // CHECK: <_start>:
13 // CHECK-NEXT: movl $0x11010, %edx
14 // CHECK-NEXT: movl $0x11010, %edx
15 // CHECK-NEXT: movl $0x11000, %edx
17 // RUN: llvm-readobj --symbols %t3 > %t4.dump
18 // RUN: FileCheck --check-prefix=SYM1 %s < %t4.dump
19 // RUN: FileCheck --check-prefix=SYM2 %s < %t4.dump
20 // RUN: FileCheck --check-prefix=SYM3 %s < %t4.dump
22 // SYM1: Name: foo
23 // SYM1-NEXT: Value: 0x11000
24 // SYM1-NEXT: Size:
25 // SYM1-NEXT: Binding: Global
26 // SYM1-NEXT: Type: None
27 // SYM1-NEXT: Other: 0
28 // SYM2: Name: __wrap_foo
29 // SYM2-NEXT: Value: 0x11010
30 // SYM2-NEXT: Size:
31 // SYM2-NEXT: Binding: Weak
32 // SYM2-NEXT: Type: None
33 // SYM2-NEXT: Other [
34 // SYM2-NEXT: STV_PROTECTED
35 // SYM2-NEXT: ]
36 // SYM3-NOT: Name: __real_foo
38 .global _start
39 _start:
40 movl $foo, %edx
41 movl $__wrap_foo, %edx
42 movl $__real_foo, %edx