| // REQUIRES: x86 |
| // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o |
| // RUN: ld.lld --strip-all %t.o -o %t |
| // RUN: llvm-readobj -r %t | FileCheck %s |
| // RUN: ld.lld %t.o -o %t |
| // RUN: llvm-readobj -r --symbols %t | FileCheck %s --check-prefixes=CHECK,SYM |
| |
| .type foo STT_GNU_IFUNC |
| .globl foo |
| foo: |
| ret |
| |
| .globl _start |
| _start: |
| call foo |
| |
| // CHECK: Section ({{.*}}) .rela.dyn { |
| // CHECK-NEXT: R_X86_64_IRELATIVE - 0x[[ADDR:.*]] |
| // CHECK-NEXT: } |
| |
| // SYM: Name: foo |
| // SYM-NEXT: Value: 0x[[ADDR]] |
| // SYM-NEXT: Size: 0 |
| // SYM-NEXT: Binding: Global |
| // SYM-NEXT: Type: GNU_IFunc |