46 lines · plain
1## For a target defined in the same section, create a relocation if the2## symbol is not local, otherwise resolve the fixup statically.3# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t4# RUN: llvm-readobj -r %t | FileCheck --check-prefix=RELOC %s5# RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s6 7# RELOC: .rela.text {8# RELOC-NEXT: 0x5 R_X86_64_PLT32 global 0xFFFFFFFFFFFFFFFC9# RELOC-NEXT: 0xA R_X86_64_PLT32 weak 0xFFFFFFFFFFFFFFFC10# RELOC-NEXT: 0x19 R_X86_64_PLT32 global 0xFFFFFFFFFFFFFFFC11# RELOC-NEXT: 0x1E R_X86_64_PLT32 weak 0xFFFFFFFFFFFFFFFC12# RELOC-NEXT: 0x23 R_X86_64_PLT32 ifunc 0xFFFFFFFFFFFFFFFC13# RELOC-NEXT: }14 15# CHECK: 0: jmp16# CHECK-NEXT: 2: jmp17# CHECK-NEXT: 4: jmp18# CHECK-NEXT: 9: jmp19# CHECK-NEXT: e: callq20# CHECK-NEXT: 13: callq21# CHECK-NEXT: 18: callq22# CHECK-NEXT: 1d: callq23# CHECK-NEXT: 22: callq24# CHECK-NEXT: 27: retq25 26.globl global27.weak weak28.type ifunc,@gnu_indirect_function29global:30weak:31local:32.set var,global33ifunc:34 jmp var35 jmp local36 jmp global37 jmp weak38 39 call var40 call local41 call global42 call weak43 44 call ifunc45 ret46