2 ## Test relocations referencing non-STT_SECTION local symbols in SHF_ALLOC and non-SHF_ALLOC sections for -r.
4 # RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o
5 # RUN: ld.lld -r -o %t %t.o %t.o
6 # RUN: llvm-readelf -r -x .nonalloc %t | FileCheck --check-prefix=RELA %s
8 # RUN: llvm-mc -filetype=obj -triple=i686 --defsym X86_32=1 %s -o %t1.o
9 # RUN: ld.lld -r -o %t1 %t1.o %t1.o
10 # RUN: llvm-readelf -r -x .nonalloc %t1 | FileCheck --check-prefix=REL %s
12 # RELA: Relocation section '.rela.data' at offset {{.*}} contains 2 entries:
13 # RELA: Offset Info Type Symbol's Value Symbol's Name + Addend
14 # RELA-NEXT: 0000000000000000 {{.*}} R_X86_64_32 0000000000000000 ifunc + 9
15 # RELA-NEXT: 0000000000000004 {{.*}} R_X86_64_32 0000000000000004 ifunc + 9
16 # RELA: Relocation section '.rela.nonalloc' at offset {{.*}} contains 2 entries:
17 # RELA: Offset Info Type Symbol's Value Symbol's Name + Addend
18 # RELA-NEXT: 0000000000000000 {{.*}} R_X86_64_32 0000000000000000 ifunc + 9
19 # RELA-NEXT: 0000000000000004 {{.*}} R_X86_64_32 0000000000000004 ifunc + 9
20 # RELA: Hex dump of section '.nonalloc':
21 # RELA-NEXT: 0x00000000 00000000 00000000 ........
23 # REL: Offset Info Type Sym. Value Symbol's Name
24 # REL-NEXT: 00000000 {{.*}} R_386_32 00000000 ifunc
25 # REL-NEXT: 00000004 {{.*}} R_386_32 00000004 ifunc
27 # REL: Offset Info Type Sym. Value Symbol's Name
28 # REL-NEXT: 00000000 {{.*}} R_386_32 00000000 ifunc
29 # REL-NEXT: 00000004 {{.*}} R_386_32 00000004 ifunc
30 # REL: Hex dump of section '.nonalloc':
31 # REL-NEXT: 0x00000000 09000000 09000000 ........
34 .type ifunc, @gnu_indirect_function
41 ## The relocation references ifunc instead of the STT_SECTION symbol.