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
|
||||
// relocation in it pointing to discarded sections with R_*_NONE, which
|
||||
// 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) {
|
||||
P->setSymbolAndType(0, 0, false);
|
||||
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