forked from OSchip/llvm-project
parent
bdcfb178b5
commit
568ee2c089
|
@ -400,7 +400,12 @@ void InputSection::copyRelocations(uint8_t *Buf, ArrayRef<RelTy> Rels) {
|
||||||
// avoid having to parse and recreate .eh_frame, we just replace any
|
// avoid having to parse and recreate .eh_frame, we just replace any
|
||||||
// relocation in it pointing to discarded sections with R_*_NONE, which
|
// relocation in it pointing to discarded sections with R_*_NONE, which
|
||||||
// hopefully creates a frame that is ignored at runtime.
|
// hopefully creates a frame that is ignored at runtime.
|
||||||
SectionBase *Section = cast<Defined>(Sym).Section;
|
auto *D = dyn_cast<Defined>(&Sym);
|
||||||
|
if (!D) {
|
||||||
|
error("STT_SECTION symbol should be defined");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
SectionBase *Section = D->Section;
|
||||||
if (Section == &InputSection::Discarded) {
|
if (Section == &InputSection::Discarded) {
|
||||||
P->setSymbolAndType(0, 0, false);
|
P->setSymbolAndType(0, 0, false);
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
# RUN: yaml2obj %s -o %t.o
|
||||||
|
# RUN: not ld.lld -r %t.o -o %2.o 2>&1 | FileCheck %s
|
||||||
|
|
||||||
|
# We used to crash at this.
|
||||||
|
# CHECK: STT_SECTION symbol should be defined
|
||||||
|
|
||||||
|
--- !ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Sections:
|
||||||
|
- Name: .text
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
- Name: .rela.text
|
||||||
|
Type: SHT_RELA
|
||||||
|
AddressAlign: 0x0000000000000008
|
||||||
|
Info: .text
|
||||||
|
Relocations:
|
||||||
|
- Offset: 0x0000000000000000
|
||||||
|
Symbol: .text
|
||||||
|
Type: R_X86_64_NONE
|
||||||
|
Symbols:
|
||||||
|
Local:
|
||||||
|
- Name: .text
|
||||||
|
Type: STT_SECTION
|
Loading…
Reference in New Issue