| # RUN: yaml2obj --docnum=1 %s -o %t1 |
| # RUN: llvm-readobj --sections %t1 | FileCheck %s |
| |
| # CHECK: Name: .text |
| # CHECK-NEXT: Type: SHT_PROGBITS |
| # CHECK-NEXT: Flags [ |
| # CHECK-NEXT: SHF_ALLOC |
| # CHECK-NEXT: SHF_EXECINSTR |
| # CHECK-NEXT: ] |
| # CHECK-NEXT: Address: |
| # CHECK-NEXT: Offset: |
| # CHECK-NEXT: Size: |
| # CHECK-NEXT: Link: 12345 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| Link: 12345 |
| |
| ## Check we report an error when an unknown section is referenced via a Link field. |
| |
| # RUN: not yaml2obj --docnum=2 %s 2>&1 | FileCheck %s --check-prefix=ERR |
| |
| # ERR: error: unknown section referenced: '.unknown1' by YAML section '.foo' |
| # ERR-NEXT: error: unknown section referenced: '.unknown2' by YAML section '(index 2)' |
| # ERR-NEXT: error: unknown section referenced: '.unknown3' by YAML section '.bar' |
| # ERR-NEXT: error: unknown section referenced: '.unknown4' by YAML section '(index 4)' |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Sections: |
| - Name: .foo |
| Type: SHT_PROGBITS |
| Link: .unknown1 |
| - Type: SHT_PROGBITS |
| Link: .unknown2 |
| - Name: .bar |
| Type: SHT_PROGBITS |
| Link: .unknown3 |
| - Type: SHT_PROGBITS |
| Link: .unknown4 |
| |
| ## Check we link SHT_GROUP to a symbol table by default if it exists. |
| ## Also, check we can set an arbitrary value for sh_link. |
| |
| # RUN: yaml2obj --docnum=3 %s -o %t3 |
| # RUN: llvm-readobj --sections %t3 | FileCheck %s --check-prefix=GROUP-LINK |
| |
| # GROUP-LINK: Name: .group1 |
| # GROUP-LINK: Link: |
| # GROUP-LINK-SAME: 3 |
| |
| # GROUP-LINK: Name: .group2 |
| # GROUP-LINK: Link: |
| # GROUP-LINK-SAME: 255 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Sections: |
| - Name: .group1 |
| Type: SHT_GROUP |
| Members: |
| - Name: .group2 |
| Type: SHT_GROUP |
| Link: 0xFF |
| Members: |
| Symbols: [] |
| |
| ## Check we set SHT_GROUP's link value to 0 when there is no symbol table. |
| |
| # RUN: yaml2obj --docnum=4 %s -o %t4 |
| # RUN: llvm-readobj --sections %t4 | FileCheck %s --check-prefix=GROUP-LINK-NOSYMTAB |
| |
| # GROUP-LINK-NOSYMTAB: Name: .group |
| # GROUP-LINK-NOSYMTAB: Link: |
| # GROUP-LINK-NOSYMTAB-SAME: 0 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Sections: |
| - Name: .group |
| Type: SHT_GROUP |
| Members: |