81 lines · plain
1# This test tests that if two possible parent segments have the same offset that2# they're disambiguated based on their original index. This ensures that cycles3# do not occur.4 5# RUN: yaml2obj %s -o %t6# RUN: llvm-objcopy %t %t27# RUN: llvm-readobj --program-headers %t2 | FileCheck %s8 9!ELF10FileHeader:11 Class: ELFCLASS6412 Data: ELFDATA2LSB13 Type: ET_EXEC14 Machine: EM_X86_6415Sections:16 - Name: .text17 Type: SHT_PROGBITS18 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]19 AddressAlign: 0x100020 Size: 409621 - Name: .text222 Type: SHT_PROGBITS23 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]24 AddressAlign: 0x100025 Size: 409626ProgramHeaders:27 - Type: PT_LOAD28 Flags: [ PF_X, PF_R ]29 FirstSec: .text230 LastSec: .text231 - Type: PT_LOAD32 Flags: [ PF_X, PF_R ]33 FirstSec: .text34 LastSec: .text235 - Type: PT_LOAD36 Flags: [ PF_X, PF_R ]37 FirstSec: .text38 LastSec: .text239 40#CHECK: ProgramHeaders [41#CHECK-NEXT: ProgramHeader {42#CHECK-NEXT: Type: PT_LOAD (0x1)43#CHECK-NEXT: Offset: 0x200044#CHECK-NEXT: VirtualAddress: 0x045#CHECK-NEXT: PhysicalAddress: 0x046#CHECK-NEXT: FileSize: 409647#CHECK-NEXT: MemSize: 409648#CHECK-NEXT: Flags [ (0x5)49#CHECK-NEXT: PF_R (0x4)50#CHECK-NEXT: PF_X (0x1)51#CHECK-NEXT: ]52#CHECK-NEXT: Alignment: 409653#CHECK-NEXT: }54#CHECK-NEXT: ProgramHeader {55#CHECK-NEXT: Type: PT_LOAD (0x1)56#CHECK-NEXT: Offset: 0x100057#CHECK-NEXT: VirtualAddress: 0x058#CHECK-NEXT: PhysicalAddress: 0x059#CHECK-NEXT: FileSize: 819260#CHECK-NEXT: MemSize: 819261#CHECK-NEXT: Flags [ (0x5)62#CHECK-NEXT: PF_R (0x4)63#CHECK-NEXT: PF_X (0x1)64#CHECK-NEXT: ]65#CHECK-NEXT: Alignment: 409666#CHECK-NEXT: }67#CHECK-NEXT: ProgramHeader {68#CHECK-NEXT: Type: PT_LOAD (0x1)69#CHECK-NEXT: Offset: 0x100070#CHECK-NEXT: VirtualAddress: 0x071#CHECK-NEXT: PhysicalAddress: 0x072#CHECK-NEXT: FileSize: 819273#CHECK-NEXT: MemSize: 819274#CHECK-NEXT: Flags [ (0x5)75#CHECK-NEXT: PF_R (0x4)76#CHECK-NEXT: PF_X (0x1)77#CHECK-NEXT: ]78#CHECK-NEXT: Alignment: 409679#CHECK-NEXT: }80#CHECK-NEXT:]81