## ELF section symbols use the corresponding section names when printing
## unnamed symbols. This test verifies this and also that appropriate things
## are printed if the section is somehow invalid.
# RUN: yaml2obj %s -o %t1
# RUN: llvm-objdump -r --syms %t1 2>&1 | \
# RUN: FileCheck %s -DFILE=%t1 --implicit-check-not=warning:
# CHECK: SYMBOL TABLE:
# CHECK-NEXT: 00000000 l d .foo 00000000 .foo
# CHECK-NEXT: 00000000 l d .foo 00000000 .foo
# CHECK-NEXT: warning: '[[FILE]]': invalid section index: 67
# CHECK-NEXT: warning: '[[FILE]]': invalid section index: 68
# CHECK: RELOCATION RECORDS FOR [.foo]:
# CHECK-NEXT: OFFSET TYPE VALUE
# CHECK-NEXT: 00000001 R_X86_64_NONE .foo
# CHECK-NEXT: 00000002 R_X86_64_NONE .foo
# CHECK-NEXT: 00000003 R_X86_64_NONE {{$}}
# CHECK-NEXT: 00000004 R_X86_64_NONE {{$}}
## Test that we consume an error in ELFObjectFile<ELFT>::getSectionName when disassembling.
# RUN: %if x86-registered-target %{ llvm-objdump -d --syms %t1 2>&1 | \
# RUN: FileCheck %s -DFILE=%t1 --check-prefix=CHECK-DISAS %}
# CHECK-DISAS: warning: '[[FILE]]': invalid section index: 67
--- !ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .foo
Type: SHT_PROGBITS
- Name: .rela.foo
Type: SHT_RELA
Link: .symtab
Info: .foo
Relocations:
- Offset: 0x1
Symbol: 1
Type: R_X86_64_NONE
- Offset: 0x2
Symbol: 2
Type: R_X86_64_NONE
- Offset: 0x3
Symbol: 3
Type: R_X86_64_NONE
- Offset: 0x4
Symbol: 4
Type: R_X86_64_NONE
Symbols:
## Case 1: a valid unnamed section symbol.
- Name: ""
Section: .foo
Type: STT_SECTION
## Case 2: a valid named section symbol.
- Name: "symbol1"
Section: .foo
Type: STT_SECTION
## Case 3: an unnamed section symbol with invalid index.
- Name: ""
Index: 0x43
Type: STT_SECTION
## Case 4: a named section symbol with invalid index.
- Name: "symbol2"
Index: 0x44
Type: STT_SECTION