[PATCH] D69744: ELF: Discard .ARM.exidx sections for empty functions instead of misordering them.
Peter Collingbourne via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 4 09:12:33 PST 2019
This revision was not accepted when it landed; it landed in state "Needs Review".
This revision was automatically updated to reflect the committed changes.
Closed by commit rG2c6fae179e69: ELF: Discard .ARM.exidx sections for empty functions instead of misordering… (authored by pcc).
Changed prior to commit:
https://reviews.llvm.org/D69744?vs=227558&id=227724#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69744/new/
https://reviews.llvm.org/D69744
Files:
lld/ELF/SyntheticSections.cpp
lld/test/ELF/arm-exidx-empty-fn.s
Index: lld/test/ELF/arm-exidx-empty-fn.s
===================================================================
--- /dev/null
+++ lld/test/ELF/arm-exidx-empty-fn.s
@@ -0,0 +1,41 @@
+// REQUIRES: arm
+// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %s -o %t.o
+// RUN: ld.lld %t.o -o %t -shared
+
+// RUN: llvm-readelf --unwind %t | FileCheck %s
+
+// Check that any exidx sections for empty functions are discarded.
+
+// CHECK: Entries [
+// CHECK-NEXT: Entry {
+// CHECK-NEXT: FunctionAddress:
+// CHECK-NEXT: Model: CantUnwind
+// CHECK-NEXT: }
+// CHECK-NEXT: Entry {
+// CHECK-NEXT: FunctionAddress:
+// CHECK-NEXT: Model: CantUnwind
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
+
+.section .text.f0,"ax",%progbits
+.globl f0
+f0:
+.fnstart
+bx lr
+.cantunwind
+.fnend
+
+.section .text.f1,"ax",%progbits
+.globl f1
+f1:
+.fnstart
+.cantunwind
+.fnend
+
+.section .text.f2,"ax",%progbits
+.globl f2
+f2:
+.fnstart
+bx lr
+.cantunwind
+.fnend
Index: lld/ELF/SyntheticSections.cpp
===================================================================
--- lld/ELF/SyntheticSections.cpp
+++ lld/ELF/SyntheticSections.cpp
@@ -3164,12 +3164,10 @@
bool ARMExidxSyntheticSection::addSection(InputSection *isec) {
if (isec->type == SHT_ARM_EXIDX) {
- if (InputSection* dep = isec->getLinkOrderDep())
- if (isValidExidxSectionDep(dep)) {
+ if (InputSection *dep = isec->getLinkOrderDep())
+ if (isValidExidxSectionDep(dep))
exidxSections.push_back(isec);
- return true;
- }
- return false;
+ return true;
}
if (isValidExidxSectionDep(isec)) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D69744.227724.patch
Type: text/x-patch
Size: 1626 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191104/37e72ed3/attachment.bin>
More information about the llvm-commits
mailing list