1# This test tests that if two possible parent segments have the same offset that 2# they're disambiguated based on their original index. This ensures that cycles 3# do not occur. 4 5# RUN: yaml2obj %s -o %t 6# RUN: llvm-objcopy %t %t2 7# RUN: llvm-readobj --program-headers %t2 | FileCheck %s 8 9!ELF 10FileHeader: 11 Class: ELFCLASS64 12 Data: ELFDATA2LSB 13 Type: ET_EXEC 14 Machine: EM_X86_64 15Sections: 16 - Name: .text 17 Type: SHT_PROGBITS 18 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 19 AddressAlign: 0x1000 20 Size: 4096 21 - Name: .text2 22 Type: SHT_PROGBITS 23 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 24 AddressAlign: 0x1000 25 Size: 4096 26ProgramHeaders: 27 - Type: PT_LOAD 28 Flags: [ PF_X, PF_R ] 29 FirstSec: .text2 30 LastSec: .text2 31 - Type: PT_LOAD 32 Flags: [ PF_X, PF_R ] 33 FirstSec: .text 34 LastSec: .text2 35 - Type: PT_LOAD 36 Flags: [ PF_X, PF_R ] 37 FirstSec: .text 38 LastSec: .text2 39 40#CHECK: ProgramHeaders [ 41#CHECK-NEXT: ProgramHeader { 42#CHECK-NEXT: Type: PT_LOAD (0x1) 43#CHECK-NEXT: Offset: 0x2000 44#CHECK-NEXT: VirtualAddress: 0x0 45#CHECK-NEXT: PhysicalAddress: 0x0 46#CHECK-NEXT: FileSize: 4096 47#CHECK-NEXT: MemSize: 4096 48#CHECK-NEXT: Flags [ (0x5) 49#CHECK-NEXT: PF_R (0x4) 50#CHECK-NEXT: PF_X (0x1) 51#CHECK-NEXT: ] 52#CHECK-NEXT: Alignment: 4096 53#CHECK-NEXT: } 54#CHECK-NEXT: ProgramHeader { 55#CHECK-NEXT: Type: PT_LOAD (0x1) 56#CHECK-NEXT: Offset: 0x1000 57#CHECK-NEXT: VirtualAddress: 0x0 58#CHECK-NEXT: PhysicalAddress: 0x0 59#CHECK-NEXT: FileSize: 8192 60#CHECK-NEXT: MemSize: 8192 61#CHECK-NEXT: Flags [ (0x5) 62#CHECK-NEXT: PF_R (0x4) 63#CHECK-NEXT: PF_X (0x1) 64#CHECK-NEXT: ] 65#CHECK-NEXT: Alignment: 4096 66#CHECK-NEXT: } 67#CHECK-NEXT: ProgramHeader { 68#CHECK-NEXT: Type: PT_LOAD (0x1) 69#CHECK-NEXT: Offset: 0x1000 70#CHECK-NEXT: VirtualAddress: 0x0 71#CHECK-NEXT: PhysicalAddress: 0x0 72#CHECK-NEXT: FileSize: 8192 73#CHECK-NEXT: MemSize: 8192 74#CHECK-NEXT: Flags [ (0x5) 75#CHECK-NEXT: PF_R (0x4) 76#CHECK-NEXT: PF_X (0x1) 77#CHECK-NEXT: ] 78#CHECK-NEXT: Alignment: 4096 79#CHECK-NEXT: } 80#CHECK-NEXT:] 81