|  | # RUN: yaml2obj %s -o %t | 
|  | # RUN: llvm-objcopy -R .text2 %t %t2 | 
|  | # RUN: llvm-readobj -file-headers -sections -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 ] | 
|  | Address:         0x1000 | 
|  | AddressAlign:    0x1000 | 
|  | Size:            0x1000 | 
|  | - Name:            .text2 | 
|  | Type:            SHT_PROGBITS | 
|  | Flags:           [ SHF_ALLOC, SHF_EXECINSTR ] | 
|  | Address:         0x2000 | 
|  | AddressAlign:    0x1000 | 
|  | Size:            0x1000 | 
|  | - Name:            .text3 | 
|  | Type:            SHT_PROGBITS | 
|  | Flags:           [ SHF_ALLOC, SHF_EXECINSTR ] | 
|  | Address:         0x3000 | 
|  | AddressAlign:    0x1000 | 
|  | Size:            0x1000 | 
|  | ProgramHeaders: | 
|  | - Type: PT_LOAD | 
|  | Flags: [ PF_R ] | 
|  | VAddr: 0x1000 | 
|  | PAddr: 0x1000 | 
|  | Sections: | 
|  | - Section: .text | 
|  | - Type: PT_LOAD | 
|  | Flags: [ PF_X, PF_R ] | 
|  | VAddr: 0x3000 | 
|  | PAddr: 0x3000 | 
|  | Sections: | 
|  | - Section: .text3 | 
|  |  | 
|  | #CHECK: SectionHeaderCount: 6 | 
|  |  | 
|  | # CHECK:           Sections [ | 
|  | # CHECK-NEXT:        Section { | 
|  | # CHECK-NEXT:          Index: 0 | 
|  | # CHECK-NEXT:          Name:  (0) | 
|  | # CHECK-NEXT:          Type: SHT_NULL (0x0) | 
|  | # CHECK-NEXT:          Flags [ (0x0) | 
|  | # CHECK-NEXT:          ] | 
|  | # CHECK-NEXT:          Address: 0x0 | 
|  | # CHECK-NEXT:          Offset: 0x0 | 
|  | # CHECK-NEXT:          Size: 0 | 
|  | # CHECK-NEXT:          Link: 0 | 
|  | # CHECK-NEXT:          Info: 0 | 
|  | # CHECK-NEXT:          AddressAlignment: 0 | 
|  | # CHECK-NEXT:          EntrySize: 0 | 
|  | # CHECK-NEXT:        } | 
|  | # CHECK-NEXT:        Section { | 
|  | # CHECK-NEXT:          Index: 1 | 
|  | # CHECK-NEXT:          Name: .text | 
|  | # CHECK-NEXT:          Type: SHT_PROGBITS (0x1) | 
|  | # CHECK-NEXT:          Flags [ (0x6) | 
|  | # CHECK-NEXT:            SHF_ALLOC (0x2) | 
|  | # CHECK-NEXT:            SHF_EXECINSTR (0x4) | 
|  | # CHECK-NEXT:          ] | 
|  | # CHECK-NEXT:          Address: 0x1000 | 
|  | # CHECK-NEXT:          Offset: 0x1000 | 
|  | # CHECK-NEXT:          Size: 4096 | 
|  | # CHECK-NEXT:          Link: 0 | 
|  | # CHECK-NEXT:          Info: 0 | 
|  | # CHECK-NEXT:          AddressAlignment: 4096 | 
|  | # CHECK-NEXT:          EntrySize: 0 | 
|  | # CHECK-NEXT:        } | 
|  | # CHECK-NEXT:        Section { | 
|  | # CHECK-NEXT:          Index: 2 | 
|  | # CHECK-NEXT:          Name: .text3 | 
|  | # CHECK-NEXT:          Type: SHT_PROGBITS (0x1) | 
|  | # CHECK-NEXT:          Flags [ (0x6) | 
|  | # CHECK-NEXT:            SHF_ALLOC (0x2) | 
|  | # CHECK-NEXT:            SHF_EXECINSTR (0x4) | 
|  | # CHECK-NEXT:          ] | 
|  | # CHECK-NEXT:          Address: 0x3000 | 
|  | # CHECK-NEXT:          Offset: 0x2000 | 
|  | # CHECK-NEXT:          Size: 4096 | 
|  | # CHECK-NEXT:          Link: 0 | 
|  | # CHECK-NEXT:          Info: 0 | 
|  | # CHECK-NEXT:          AddressAlignment: 4096 | 
|  | # CHECK-NEXT:          EntrySize: 0 | 
|  | # CHECK-NEXT:        } | 
|  | # CHECK-NEXT:        Section { | 
|  | # CHECK-NEXT:          Index: 3 | 
|  | # CHECK-NEXT:          Name: .symtab | 
|  | # CHECK-NEXT:          Type: SHT_SYMTAB (0x2) | 
|  | # CHECK-NEXT:          Flags [ (0x0) | 
|  | # CHECK-NEXT:          ] | 
|  | # CHECK-NEXT:          Address: 0x0 | 
|  | # CHECK-NEXT:          Offset: 0x3000 | 
|  | # CHECK-NEXT:          Size: 24 | 
|  | # CHECK-NEXT:          Link: 4 | 
|  | # CHECK-NEXT:          Info: 1 | 
|  | # CHECK-NEXT:          AddressAlignment: 8 | 
|  | # CHECK-NEXT:          EntrySize: 24 | 
|  | # CHECK-NEXT:        } | 
|  | # CHECK-NEXT:        Section { | 
|  | # CHECK-NEXT:          Index: 4 | 
|  | # CHECK-NEXT:          Name: .strtab | 
|  | # CHECK-NEXT:          Type: SHT_STRTAB (0x3) | 
|  | # CHECK-NEXT:          Flags [ (0x0) | 
|  | # CHECK-NEXT:          ] | 
|  | # CHECK-NEXT:          Address: 0x0 | 
|  | # CHECK-NEXT:          Offset: 0x3018 | 
|  | # CHECK-NEXT:          Size: | 
|  | # CHECK-NEXT:          Link: 0 | 
|  | # CHECK-NEXT:          Info: 0 | 
|  | # CHECK-NEXT:          AddressAlignment: 1 | 
|  | # CHECK-NEXT:          EntrySize: 0 | 
|  | # CHECK-NEXT:        } | 
|  | # CHECK-NEXT:        Section { | 
|  | # CHECK-NEXT:          Index: 5 | 
|  | # CHECK-NEXT:          Name: .shstrtab | 
|  | # CHECK-NEXT:          Type: SHT_STRTAB (0x3) | 
|  | # CHECK-NEXT:          Flags [ (0x0) | 
|  | # CHECK-NEXT:          ] | 
|  | # CHECK-NEXT:          Address: 0x0 | 
|  | # CHECK-NEXT:          Offset: | 
|  | # CHECK-NEXT:          Size: | 
|  | # CHECK-NEXT:          Link: 0 | 
|  | # CHECK-NEXT:          Info: 0 | 
|  | # CHECK-NEXT:          AddressAlignment: 1 | 
|  | # CHECK-NEXT:          EntrySize: 0 | 
|  | # CHECK-NEXT:        } | 
|  | # CHECK-NEXT:      ] | 
|  |  | 
|  |  | 
|  | # CHECK:     ProgramHeaders [ | 
|  | # CHECK-NEXT:  ProgramHeader { | 
|  | # CHECK-NEXT:    Type: PT_LOAD (0x1) | 
|  | # CHECK-NEXT:    Offset: 0x1000 | 
|  | # CHECK-NEXT:    VirtualAddress: 0x1000 | 
|  | # CHECK-NEXT:    PhysicalAddress: 0x1000 | 
|  | # CHECK-NEXT:    FileSize: 4096 | 
|  | # CHECK-NEXT:    MemSize: 4096 | 
|  | # CHECK-NEXT:    Flags [ (0x4) | 
|  | # CHECK-NEXT:      PF_R (0x4) | 
|  | # CHECK-NEXT:    ] | 
|  | # CHECK-NEXT:    Alignment: 4096 | 
|  | # CHECK-NEXT:  } | 
|  | # CHECK-NEXT:  ProgramHeader { | 
|  | # CHECK-NEXT:    Type: PT_LOAD (0x1) | 
|  | # CHECK-NEXT:    Offset: 0x2000 | 
|  | # CHECK-NEXT:    VirtualAddress: 0x3000 | 
|  | # CHECK-NEXT:    PhysicalAddress: 0x3000 | 
|  | # 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:] |