| # RUN: yaml2obj --docnum=1 %s -o %t |
| # RUN: llvm-objcopy --strip-non-alloc %t %t.out |
| # RUN: llvm-readobj --file-headers --sections %t.out | FileCheck %s |
| |
| # CHECK: SectionHeaderCount: 5 |
| # CHECK: Name: non_alloc_in_segment |
| # CHECK: Name: .bss |
| # CHECK: Name: .text |
| # CHECK: Name: .shstrtab |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: non_alloc_in_segment |
| Type: SHT_PROGBITS |
| Flags: [ ] |
| Size: 4 |
| - Name: .bss |
| Type: SHT_NOBITS |
| Flags: [ SHF_ALLOC ] |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| ProgramHeaders: |
| # Use an arbitrary segment type to show that the segment type is unimportant. |
| - Type: 0x61234567 |
| FirstSec: non_alloc_in_segment |
| LastSec: non_alloc_in_segment |
| |
| # RUN: yaml2obj --docnum=2 %s -o %t2 |
| # RUN: llvm-objcopy --strip-non-alloc %t2 %t2.out |
| # RUN: llvm-readobj --file-headers --sections %t2.out | FileCheck --check-prefix=CHECK2 %s |
| |
| # CHECK2: SectionHeaderCount: 3 |
| # CHECK2: Name: .text |
| # CHECK2: Name: .shstrtab |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| ## empty_trailing_non_alloc is considered included by the segment, |
| ## so it will be retained. |
| - Name: empty_trailing_non_alloc |
| Type: SHT_PROGBITS |
| - Name: trailing_non_alloc |
| Type: SHT_PROGBITS |
| Content: 00 |
| ProgramHeaders: |
| - Type: 0x61234567 |
| FirstSec: .text |
| LastSec: .text |