# 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: