[llvm] Do not replace dead constant references in metadata with undef
[llvm-project.git] / lld / test / ELF / gnu-ifunc-relative.s
blob278bc5021e6cca046a8d87b0bf15627ea8038e3c
1 // REQUIRES: x86
2 // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
3 // RUN: ld.lld --strip-all %t.o -o %t
4 // RUN: llvm-readobj -r %t | FileCheck %s
5 // RUN: ld.lld %t.o -o %t
6 // RUN: llvm-readobj -r --symbols %t | FileCheck %s --check-prefixes=CHECK,SYM
8 .type foo STT_GNU_IFUNC
9 .globl foo
10 foo:
11 ret
13 .globl _start
14 _start:
15 call foo
17 // CHECK: Section ({{.*}}) .rela.dyn {
18 // CHECK-NEXT: R_X86_64_IRELATIVE - 0x[[ADDR:.*]]
19 // CHECK-NEXT: }
21 // SYM: Name: foo
22 // SYM-NEXT: Value: 0x[[ADDR]]
23 // SYM-NEXT: Size: 0
24 // SYM-NEXT: Binding: Global
25 // SYM-NEXT: Type: GNU_IFunc