forked from OSchip/llvm-project
[ELF] - Do not segfault when using --gc-sections with linker script
Patch fixes PR32024. Sections that were not marked as Live has null output section. Previously we tried to access that field and segfaulted. Differential revision: https://reviews.llvm.org/D30188 llvm-svn: 295727
This commit is contained in:
parent
cc43087afc
commit
78ef645f94
|
@ -503,6 +503,8 @@ template <class ELFT> void LinkerScript<ELFT>::process(BaseCommand &Base) {
|
|||
continue;
|
||||
|
||||
auto *IB = static_cast<InputSectionBase<ELFT> *>(ID);
|
||||
if (!IB->Live)
|
||||
continue;
|
||||
switchTo(IB->OutSec);
|
||||
if (auto *I = dyn_cast<InputSection<ELFT>>(IB))
|
||||
output(I);
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
# REQUIRES: x86
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: echo "SECTIONS { .text : { *(.text*) } }" > %t.script
|
||||
# RUN: ld.lld %t --gc-sections --script %t.script -o %t1
|
||||
# RUN: llvm-objdump -section-headers %t1 | FileCheck %s
|
||||
|
||||
# CHECK: Sections:
|
||||
# CHECK-NEXT: Name Size
|
||||
# CHECK: .text 00000001
|
||||
|
||||
.section .text.foo, "ax"
|
||||
.global _start
|
||||
_start:
|
||||
nop
|
||||
|
||||
.section .text.bar, "ax"
|
||||
.global bar
|
||||
bar:
|
||||
nop
|
Loading…
Reference in New Issue