# This test tests that each segment is assigned a canonical parent segment.
# Importantly if two segments could be the parent segment of a segment this test
# should cover the case where a new parent replaces the old parent and the case
# where an old parent is not replaced by a new parent.

# 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
  - Name:            .text3
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    0x1000
    Size:            4096
  - Name:            .text4
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    0x1000
    Size:            4096
  - Name:            .text5
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    0x1000
    Size:            4096
ProgramHeaders:
  - Type: PT_LOAD
    Flags: [ PF_X, PF_R ]
    Sections:
      - Section: .text4
      - Section: .text5
  - Type: PT_LOAD
    Flags: [ PF_X, PF_R ]
    Sections:
      - Section: .text3
      - Section: .text4
      - Section: .text5
  - Type: PT_LOAD
    Flags: [ PF_X, PF_R ]
    Sections:
      - Section: .text
      - Section: .text2
      - Section: .text3
      - Section: .text4
      - Section: .text5
  - Type: PT_LOAD
    Flags: [ PF_X, PF_R ]
    Sections:
      - Section: .text2
      - Section: .text3
      - Section: .text4
      - Section: .text5

#CHECK:     ProgramHeaders [
#CHECK-NEXT:  ProgramHeader {
#CHECK-NEXT:    Type: PT_LOAD (0x1)
#CHECK-NEXT:    Offset: 0x4000
#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: 0x3000
#CHECK-NEXT:    VirtualAddress: 0x0
#CHECK-NEXT:    PhysicalAddress: 0x0
#CHECK-NEXT:    FileSize: 12288
#CHECK-NEXT:    MemSize: 12288
#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: 20480
#CHECK-NEXT:    MemSize: 20480
#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: 0x2000
#CHECK-NEXT:    VirtualAddress: 0x0
#CHECK-NEXT:    PhysicalAddress: 0x0
#CHECK-NEXT:    FileSize: 16384
#CHECK-NEXT:    MemSize: 16384
#CHECK-NEXT:    Flags [ (0x5)
#CHECK-NEXT:      PF_R (0x4)
#CHECK-NEXT:      PF_X (0x1)
#CHECK-NEXT:    ]
#CHECK-NEXT:    Alignment: 4096
#CHECK-NEXT:  }
#CHECK-NEXT:]
