1# RUN: yaml2obj %s -o %t 2# RUN: llvm-objcopy %t %t2 3# RUN: llvm-readobj --program-headers %t2 | FileCheck %s 4 5!ELF 6FileHeader: 7 Class: ELFCLASS64 8 Data: ELFDATA2LSB 9 Type: ET_EXEC 10 Machine: EM_X86_64 11Sections: 12 - Name: .text 13 Type: SHT_PROGBITS 14 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 15 Address: 0x1000 16 AddressAlign: 0x0000000000001000 17 Content: "c3c3c3c3" 18 - Name: .data 19 Type: SHT_PROGBITS 20 Flags: [ SHF_ALLOC ] 21 Address: 0x1008 22 AddressAlign: 0x0000000000000008 23 Content: "3232" 24ProgramHeaders: 25 - Type: PT_LOAD 26 Flags: [ PF_X, PF_R ] 27 VAddr: 0x1000 28 Align: 0x1000 29 FirstSec: .text 30 LastSec: .text 31 - Type: PT_LOAD 32 Flags: [ PF_R, PF_W ] 33 VAddr: 0x1008 34 Align: 0x1000 35 FirstSec: .data 36 LastSec: .data 37 38#CHECK: ProgramHeaders [ 39#CHECK-NEXT: ProgramHeader { 40#CHECK-NEXT: Type: PT_LOAD 41#CHECK-NEXT: Offset: 0x1000 42#CHECK-NEXT: VirtualAddress: 0x1000 43#CHECK-NEXT: PhysicalAddress: 0x1000 44#CHECK-NEXT: FileSize: 4 45#CHECK-NEXT: MemSize: 4 46#CHECK-NEXT: Flags [ 47#CHECK-NEXT: PF_R 48#CHECK-NEXT: PF_X 49#CHECK-NEXT: ] 50#CHECK-NEXT: Alignment: 4096 51#CHECK-NEXT: } 52#CHECK-NEXT: ProgramHeader { 53#CHECK-NEXT: Type: PT_LOAD 54#CHECK-NEXT: Offset: 0x1008 55#CHECK-NEXT: VirtualAddress: 0x1008 56#CHECK-NEXT: PhysicalAddress: 0x1008 57#CHECK-NEXT: FileSize: 2 58#CHECK-NEXT: MemSize: 2 59#CHECK-NEXT: Flags [ 60#CHECK-NEXT: PF_R 61#CHECK-NEXT: PF_W 62#CHECK-NEXT: ] 63#CHECK-NEXT: Alignment: 4096 64#CHECK-NEXT: } 65#CHECK-NEXT:] 66