brintos

brintos / llvm-project-archived public Read only

0
0
Text · 894 B · f9a88dd Raw
39 lines · plain
1// REQUIRES: x862 3/// Test we correctly wrap PLT calls.4 5// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t6 7// RUN: ld.lld -o %t2 %t -wrap foo -shared8// RUN: llvm-readobj -S -r %t2 | FileCheck %s9// RUN: llvm-objdump -d %t2 | FileCheck --check-prefix=DISASM %s10 11// CHECK:      Relocations [12// CHECK-NEXT:   Section ({{.*}}) .rela.plt {13// CHECK-NEXT:     R_X86_64_JUMP_SLOT foo 0x014// CHECK-NEXT:     R_X86_64_JUMP_SLOT __wrap_foo 0x015// CHECK-NEXT:     R_X86_64_JUMP_SLOT _start 0x016// CHECK-NEXT:   }17// CHECK-NEXT: ]18 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>24 25.global foo26foo:27  nop28 29.global __wrap_foo30__wrap_foo:31  nop32 33.global _start34_start:35  jmp foo@plt36  jmp __wrap_foo@plt37  jmp __real_foo@plt38  jmp _start@plt39