## Test how we dump SHT_CREL sections. # RUN: yaml2obj %s -o %t1 # RUN: obj2yaml %t1 | FileCheck %s --check-prefix=YAML # YAML: - Name: .crel.text # YAML-NEXT: Type: SHT_CREL # YAML-NEXT: Link: .symtab # YAML-NEXT: Info: .text # YAML-NEXT: Relocations: # YAML-NEXT: - Offset: 0x1 # YAML-NEXT: Symbol: g1 # YAML-NEXT: Type: R_X86_64_32 # YAML-NEXT: Addend: 1 # YAML-NEXT: - Offset: 0x2 # YAML-NEXT: Symbol: l1 # YAML-NEXT: Type: R_X86_64_64 # YAML-NEXT: Addend: 2 # YAML-NEXT: - Symbol: g1 # YAML-NEXT: Type: R_X86_64_32S # YAML-NEXT: Addend: -1 # YAML-NEXT: - Offset: 0x4 # YAML-NEXT: Symbol: .text # YAML-NEXT: Type: R_X86_64_32S # YAML-NEXT: Addend: -9223372036854775808 # YAML-NEXT: - Name: .crel.dyn # YAML-NEXT: Type: SHT_CREL # YAML-NEXT: Relocations: [] --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .foo Type: SHT_PROGBITS Flags: [SHF_ALLOC] - Name: .text Type: SHT_PROGBITS Content: "0000000000000000" Flags: [SHF_ALLOC] - Name: .crel.text Type: SHT_CREL Info: .text Link: .symtab Relocations: - Offset: 0x1 Symbol: g1 Type: R_X86_64_32 Addend: 1 - Offset: 0x2 Symbol: l1 Type: R_X86_64_64 Addend: 2 - Offset: 0x0 Symbol: g1 Type: R_X86_64_32S Addend: 0xffffffffffffffff - Offset: 0x4 Symbol: .text Type: R_X86_64_32S Addend: 0x8000000000000000 - Name: .crel.dyn Type: SHT_CREL Content: 00 ## Trigger the .dynsym emission. DynamicSymbols: [] Symbols: - Name: unused Section: .text - Name: .text Type: STT_SECTION Section: .text - Name: l1 - Name: g1 Section: .text Value: 0x0 Size: 4 Binding: STB_GLOBAL ## Test the behavior when the sh_entsize field is broken. # RUN: yaml2obj -DTYPE=SHT_RELA --docnum=2 %s -o %t2 # RUN: not obj2yaml %t2 2>&1 | FileCheck %s --check-prefix=ERR1 # ERR1: unable to decode LEB128 at offset 0x00000000: malformed uleb128, extends past end --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_DYN Sections: - Name: .foo Type: SHT_CREL