# 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