r315292 introduced a change that's supposed to consistently ignore "dead" output sections when placing orphans. Unfortunately, that change doesn't handle the special case when the orphan section is second to last section and the last section is dead (e.g. because it's being discarded) introducing a regression in some cases. This change handles this case by using the same predicate when checking the last section. Differential Revision: https://reviews.llvm.org/D39172 llvm-svn: 316307
26 lines
720 B
ArmAsm
26 lines
720 B
ArmAsm
# REQUIRES: x86
|
|
# RUN: llvm-mc -position-independent -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
|
|
# RUN: echo "SECTIONS { \
|
|
# RUN: . = 0xffffffff80000000; \
|
|
# RUN: .text : ALIGN(4096) { *(.text) } \
|
|
# RUN: .data : ALIGN(4096) { *(.data) } \
|
|
# RUN: .bss : ALIGN(4096) { *(.bss); } \
|
|
# RUN: . = ALIGN(4096); \
|
|
# RUN: _end = .; \
|
|
# RUN: /DISCARD/ : { *(.comment) } \
|
|
# RUN: }" > %t.script
|
|
# RUN: ld.lld -o %t --script %t.script %t.o
|
|
# RUN: llvm-readelf -s -symbols %t | FileCheck %s
|
|
|
|
# CHECK: .bss NOBITS ffffffff80002000 002008 000002 00 WA 0 0 4096
|
|
# CHECK: ffffffff80003000 0 NOTYPE GLOBAL DEFAULT 3 _end
|
|
|
|
.section .text, "ax"
|
|
ret
|
|
|
|
.section .data, "aw"
|
|
.quad 0
|
|
|
|
.section .bss, "", @nobits
|
|
.short 0
|