mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-03 22:41:47 +00:00
Sort each InputSectionDescription individually.
This fixes pr36190. Thanks to James Henderson for the testcase and for pointing out how to fix this. llvm-svn: 323993
This commit is contained in:
parent
d14dc49dff
commit
27b2990d11
@ -160,9 +160,9 @@ bool OutputSection::classof(const BaseCommand *C) {
|
||||
|
||||
void OutputSection::sort(std::function<int(InputSectionBase *S)> Order) {
|
||||
assert(Live);
|
||||
assert(SectionCommands.size() == 1);
|
||||
sortByOrder(cast<InputSectionDescription>(SectionCommands[0])->Sections,
|
||||
Order);
|
||||
for (BaseCommand *B : SectionCommands)
|
||||
if (auto *ISD = dyn_cast<InputSectionDescription>(B))
|
||||
sortByOrder(ISD->Sections, Order);
|
||||
}
|
||||
|
||||
// Fill [Buf, Buf + Size) with Filler.
|
||||
|
@ -18,6 +18,12 @@
|
||||
# RUN: ld.lld --symbol-ordering-file %t.ord %t.o --script %t2.script -o %t3.out
|
||||
# RUN: llvm-objdump -s %t3.out| FileCheck %s --check-prefix=AFTER
|
||||
|
||||
# RUN: echo "SECTIONS { .foo : { BYTE(0x33); *(.foo); BYTE(0x44) } }" > %t3.script
|
||||
# RUN: ld.lld --symbol-ordering-file %t.ord %t.o --script %t3.script -o %t4.out
|
||||
# RUN: llvm-objdump -s %t4.out| FileCheck %s --check-prefix=COMMANDS
|
||||
# COMMANDS: Contents of section .foo:
|
||||
# COMMANDS-NEXT: 33221144
|
||||
|
||||
.section .foo,"ax",@progbits,unique,1
|
||||
_foo1:
|
||||
.byte 0x11
|
||||
|
Loading…
Reference in New Issue
Block a user