diff options
Diffstat (limited to 'test/ELF/emit-relocs-mergeable-i386.s')
-rw-r--r-- | test/ELF/emit-relocs-mergeable-i386.s | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/test/ELF/emit-relocs-mergeable-i386.s b/test/ELF/emit-relocs-mergeable-i386.s new file mode 100644 index 0000000000000..1ddee8c1faf13 --- /dev/null +++ b/test/ELF/emit-relocs-mergeable-i386.s @@ -0,0 +1,66 @@ +# REQUIRES: x86 +# RUN: llvm-mc -filetype=obj -triple=i686-pc-linux %s -o %t1 +# RUN: ld.lld --emit-relocs %t1 -o %t2 +# RUN: llvm-readobj -sections -section-data %t2 | FileCheck %s + +## Check lf we produce proper relocations when doing merging of SHF_MERGE sections. + +## Check addends of relocations are: 0x0, 0x8, 0x8, 0x4 +# CHECK: Section { +# CHECK: Index: +# CHECK: Name: .foo +# CHECK-NEXT: Type: SHT_PROGBITS +# CHECK-NEXT: Flags [ +# CHECK-NEXT: SHF_ALLOC +# CHECK-NEXT: SHF_EXECINSTR +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: +# CHECK-NEXT: Link: +# CHECK-NEXT: Info: +# CHECK-NEXT: AddressAlignment: +# CHECK-NEXT: EntrySize: +# CHECK-NEXT: SectionData ( +# CHECK-NEXT: 0000: 00000000 08000000 08000000 04000000 +# CHECK-NEXT: ) +# CHECK-NEXT: } + +## Check that offsets for AAA is 0x0, for BBB is 0x8 and CCC has offset 0x4. +# CHECK: Section { +# CHECK: Index: +# CHECK: Name: .strings +# CHECK-NEXT: Type: SHT_PROGBITS +# CHECK-NEXT: Flags [ +# CHECK-NEXT: SHF_MERGE +# CHECK-NEXT: SHF_STRINGS +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: +# CHECK-NEXT: Link: +# CHECK-NEXT: Info: +# CHECK-NEXT: AddressAlignment: +# CHECK-NEXT: EntrySize: +# CHECK-NEXT: SectionData ( +# CHECK-NEXT: |AAA.CCC.BBB.| +# CHECK-NEXT: ) +# CHECK-NEXT: } + +.section .strings,"MS",@progbits,1,unique,10 +.Linfo_string0: + .asciz "AAA" +.Linfo_string1: + .asciz "BBB" + +.section .strings,"MS",@progbits,1,unique,20 +.Linfo_string2: + .asciz "BBB" +.Linfo_string3: + .asciz "CCC" + +.section .foo,"ax",@progbits +.long .Linfo_string0 +.long .Linfo_string1 +.long .Linfo_string2 +.long .Linfo_string3 |