1// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t 2// RUN: ld.lld %t -o %t2 3// RUN: llvm-readobj -sections -section-data %t2 | FileCheck %s 4// REQUIRES: x86 5 6.global _start 7_start: 8 9.section foobar,"",@progbits,unique,1 10.section foobar,"T",@progbits,unique,2 11.section foobar,"",@nobits,unique,3 12.section foobar,"",@nobits,unique,4 13 14.section bar, "a" 15 16// Both sections are in the output and that the alloc section is first: 17// CHECK: Name: bar 18// CHECK-NEXT: Type: SHT_PROGBITS 19// CHECK-NEXT: Flags [ 20// CHECK-NEXT: SHF_ALLOC 21// CHECK-NEXT: ] 22// CHECK-NEXT: Address: 0x10120 23 24// CHECK: Name: foobar 25// CHECK-NEXT: Type: SHT_PROGBITS 26// CHECK-NEXT: Flags [ 27// CHECK-NEXT: ] 28// CHECK-NEXT: Address: 0x0 29 30// CHECK: Name: foobar 31// CHECK-NEXT: Type: SHT_PROGBITS 32// CHECK-NEXT: Flags [ 33// CHECK-NEXT: SHF_TLS 34// CHECK-NEXT: ] 35// CHECK-NEXT: Address: 0x0 36 37// CHECK: Name: foobar 38// CHECK-NEXT: Type: SHT_NOBITS 39// CHECK-NEXT: Flags [ 40// CHECK-NEXT: ] 41// CHECK-NEXT: Address: 0x0 42 43// CHECK-NOT: Name: foobar 44 45// Test that the string "bar" is merged into "foobar". 46 47// CHECK: Section { 48// CHECK: Index: 49// CHECK: Name: .shstrtab 50// CHECK-NEXT: Type: SHT_STRTAB 51// CHECK-NEXT: Flags [ 52// CHECK-NEXT: ] 53// CHECK-NEXT: Address: 0x0 54// CHECK-NEXT: Offset: 55// CHECK-NEXT: Size: 56// CHECK-NEXT: Link: 0 57// CHECK-NEXT: Info: 0 58// CHECK-NEXT: AddressAlignment: 1 59// CHECK-NEXT: EntrySize: 0 60// CHECK-NEXT: SectionData ( 61// CHECK-NEXT: 0000: 002E7465 78740066 6F6F6261 72002E73 |..text.foobar..s| 62// CHECK-NEXT: 0010: 68737472 74616200 2E737472 74616200 |hstrtab..strtab.| 63// CHECK-NEXT: 0020: 2E73796D 74616200 |.symtab.| 64// CHECK-NEXT: ) 65// CHECK-NEXT:} 66// CHECK: Name: .strtab 67// CHECK-NEXT: Type: SHT_STRTAB (0x3) 68// CHECK-NEXT: Flags [ (0x0) 69// CHECK-NEXT: ] 70// CHECK-NEXT: Address: 0x0 71// CHECK-NEXT: Offset: 72// CHECK-NEXT: Size: 15 73// CHECK-NEXT: Link: 0 74// CHECK-NEXT: Info: 0 75// CHECK-NEXT: AddressAlignment: 1 76// CHECK-NEXT: EntrySize: 0 77// CHECK-NEXT: SectionData ( 78// CHECK-NEXT: 0000: 005F7374 61727400 666F6F62 617200 |._start.foobar.| 79// CHECK-NEXT: ) 80// CHECK-NEXT: } 81