| ## .empty is not covered by a segment. Its offset is moved to 0x200 to fill the gap. |
| # RUN: yaml2obj --docnum=1 %s -o %t1 |
| # RUN: llvm-objcopy %t1 %t1.out |
| # RUN: llvm-readelf -S %t1.out | FileCheck --check-prefix=CHECK1 %s |
| |
| # CHECK1: Name Type Address Off |
| # CHECK1-NEXT: NULL 0000000000000000 000000 |
| # CHECK1-NEXT: .foo PROGBITS 0000000000000000 000100 |
| # CHECK1-NEXT: .empty PROGBITS 0000000000001000 000200 |
| # CHECK1-NEXT: .baz PROGBITS 0000000000001000 001000 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Machine: EM_X86_64 |
| Sections: |
| - Name: gap |
| Type: Fill |
| Size: 0xE00 |
| - Name: .foo |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| AddressAlign: 0x100 |
| Address: 0 |
| Size: 0x100 |
| - Name: .empty |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| Address: 0x1000 |
| - Name: .baz |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| AddressAlign: 0x1000 |
| Address: 0x1000 |
| Size: 0x100 |
| |
| ## Test that we attribute .empty to the second segment. Its offset is assigned according to |
| ## the p_offset of the second segment. |
| # RUN: yaml2obj --docnum=2 %s -o %t2 |
| # RUN: llvm-objcopy %t2 %t2.out |
| # RUN: llvm-readelf -S -l %t2.out | FileCheck --check-prefix=CHECK2 %s |
| |
| # CHECK2: Name Type Address Off |
| # CHECK2-NEXT: NULL 0000000000000000 000000 |
| # CHECK2-NEXT: .foo PROGBITS 0000000000000000 000100 |
| # CHECK2-NEXT: .empty PROGBITS 0000000000001000 001000 |
| # CHECK2-NEXT: .baz PROGBITS 0000000000001000 001000 |
| |
| # CHECK2: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align |
| # CHECK2-NEXT: LOAD 0x000100 0x0000000000000000 0x0000000000000000 0x000100 0x000100 0x100 |
| # CHECK2-NEXT: LOAD 0x001000 0x0000000000001000 0x0000000000001000 0x000100 0x000100 0x1000 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Machine: EM_X86_64 |
| Sections: |
| - Name: gap |
| Type: Fill |
| Size: 0xE00 |
| - Name: .foo |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| AddressAlign: 0x100 |
| Address: 0 |
| Size: 0x100 |
| - Name: .empty |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| Address: 0x1000 |
| - Name: .baz |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| AddressAlign: 0x1000 |
| Address: 0x1000 |
| Size: 0x100 |
| ProgramHeaders: |
| - Type: PT_LOAD |
| VAddr: 0 |
| Align: 0x100 |
| FirstSec: .foo |
| LastSec: .foo |
| - Type: PT_LOAD |
| VAddr: 0x1000 |
| Align: 0x1000 |
| FirstSec: .empty |
| LastSec: .baz |