llvm-project/lld/test/ELF/undef-not-suggest.test

84 lines
1.9 KiB
Plaintext

## Check we don't suggest alternative spelling for relocations to symbols
## defined in discarded sections.
# RUN: yaml2obj %s -o %t.o
# RUN: not ld.lld %t.o %t.o -o /dev/null 2>&1 | FileCheck %s
# CHECK-NOT: did you mean:
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .group
Type: SHT_GROUP
Link: .symtab
Info: foo
Members:
- SectionOrType: GRP_COMDAT
- SectionOrType: .text.foo
- Name: .text.foo
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ]
- Name: .rodata
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC ]
- Name: .rela.rodata
Type: SHT_RELA
Link: .symtab
Info: .rodata
Relocations:
## Relocation which references ".text.foo". Check we don't suggest the
## section symbol for ".data", which has an empty name.
- Type: R_X86_64_64
## .text.foo
Symbol: 1
## Relocation which references "foo". Check we don't suggest "for".
- Type: R_X86_64_64
Symbol: foo
- Name: .data
Type: SHT_PROGBITS
Symbols:
- Name: ""
Type: STT_SECTION
Section: .text.foo
- Name: ""
Type: STT_SECTION
Section: .data
- Name: foo
Section: .text.foo
Binding: STB_GLOBAL
- Name: for
Section: .data
## Check we don't suggest an empty name symbol (e.g. STT_SECTION).
# RUN: yaml2obj --docnum=2 %s -o %t2.o
# RUN: not ld.lld %t2.o -o /dev/null 2>&1 | FileCheck %s
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
- Name: .rela.text
Type: SHT_RELA
Info: .text
Relocations:
- Type: R_X86_64_64
Symbol: f
Symbols:
- Name: ""
Type: STT_SECTION
Section: .text
- Name: f
Binding: STB_GLOBAL