[memprof] Remove an unused using directive (#117004)
[llvm-project.git] / lld / test / ELF / wrap-plt.s
blobf9a88ddd59471afc3e2b88d1322d9008106ecd3a
1 // REQUIRES: x86
3 /// Test we correctly wrap PLT calls.
5 // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
7 // RUN: ld.lld -o %t2 %t -wrap foo -shared
8 // RUN: llvm-readobj -S -r %t2 | FileCheck %s
9 // RUN: llvm-objdump -d %t2 | FileCheck --check-prefix=DISASM %s
11 // CHECK: Relocations [
12 // CHECK-NEXT: Section ({{.*}}) .rela.plt {
13 // CHECK-NEXT: R_X86_64_JUMP_SLOT foo 0x0
14 // CHECK-NEXT: R_X86_64_JUMP_SLOT __wrap_foo 0x0
15 // CHECK-NEXT: R_X86_64_JUMP_SLOT _start 0x0
16 // CHECK-NEXT: }
17 // CHECK-NEXT: ]
19 // DISASM: <_start>:
20 // DISASM-NEXT: jmp {{.*}} <__wrap_foo@plt>
21 // DISASM-NEXT: jmp {{.*}} <__wrap_foo@plt>
22 // DISASM-NEXT: jmp {{.*}} <foo@plt>
23 // DISASM-NEXT: jmp {{.*}} <_start@plt>
25 .global foo
26 foo:
27 nop
29 .global __wrap_foo
30 __wrap_foo:
31 nop
33 .global _start
34 _start:
35 jmp foo@plt
36 jmp __wrap_foo@plt
37 jmp __real_foo@plt
38 jmp _start@plt