# This test tests that if two possible parent segments have the same offset that
# they're disambiguated based on their original index. This ensures that cycles
# do not occur.

# RUN: yaml2obj %s -o %t
# RUN: llvm-objcopy %t %t2
# RUN: llvm-readobj --program-headers %t2 | FileCheck %s

!ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_EXEC
  Machine:         EM_X86_64
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    0x1000
    Size:            4096
  - Name:            .text2
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    0x1000
    Size:            4096
ProgramHeaders:
  - Type: PT_LOAD
    Flags: [ PF_X, PF_R ]
    Sections:
      - Section: .text2
  - Type: PT_LOAD
    Flags: [ PF_X, PF_R ]
    Sections:
      - Section: .text
      - Section: .text2
  - Type: PT_LOAD
    Flags: [ PF_X, PF_R ]
    Sections:
      - Section: .text
      - Section: .text2

#CHECK:     ProgramHeaders [
#CHECK-NEXT:  ProgramHeader {
#CHECK-NEXT:    Type: PT_LOAD (0x1)
#CHECK-NEXT:    Offset: 0x2000
#CHECK-NEXT:    VirtualAddress: 0x0
#CHECK-NEXT:    PhysicalAddress: 0x0
#CHECK-NEXT:    FileSize: 4096
#CHECK-NEXT:    MemSize: 4096
#CHECK-NEXT:    Flags [ (0x5)
#CHECK-NEXT:      PF_R (0x4)
#CHECK-NEXT:      PF_X (0x1)
#CHECK-NEXT:    ]
#CHECK-NEXT:    Alignment: 4096
#CHECK-NEXT:  }
#CHECK-NEXT:  ProgramHeader {
#CHECK-NEXT:    Type: PT_LOAD (0x1)
#CHECK-NEXT:    Offset: 0x1000
#CHECK-NEXT:    VirtualAddress: 0x0
#CHECK-NEXT:    PhysicalAddress: 0x0
#CHECK-NEXT:    FileSize: 8192
#CHECK-NEXT:    MemSize: 8192
#CHECK-NEXT:    Flags [ (0x5)
#CHECK-NEXT:      PF_R (0x4)
#CHECK-NEXT:      PF_X (0x1)
#CHECK-NEXT:    ]
#CHECK-NEXT:    Alignment: 4096
#CHECK-NEXT:  }
#CHECK-NEXT:  ProgramHeader {
#CHECK-NEXT:    Type: PT_LOAD (0x1)
#CHECK-NEXT:    Offset: 0x1000
#CHECK-NEXT:    VirtualAddress: 0x0
#CHECK-NEXT:    PhysicalAddress: 0x0
#CHECK-NEXT:    FileSize: 8192
#CHECK-NEXT:    MemSize: 8192
#CHECK-NEXT:    Flags [ (0x5)
#CHECK-NEXT:      PF_R (0x4)
#CHECK-NEXT:      PF_X (0x1)
#CHECK-NEXT:    ]
#CHECK-NEXT:    Alignment: 4096
#CHECK-NEXT:  }
#CHECK-NEXT:]
