[PATCH] D91529: [llvm-readobj] [ARMWinEH] Clearly print an invalid case of packed unwind info as such
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 8 00:18:12 PST 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG7a91dad9e5fa: [llvm-readobj] [ARMWinEH] Clearly print an invalid case of packed unwind info… (authored by mstorsjo).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91529/new/
https://reviews.llvm.org/D91529
Files:
llvm/test/tools/llvm-readobj/COFF/arm64-packed-unwind.s
llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
Index: llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
===================================================================
--- llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
+++ llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
@@ -1223,10 +1223,12 @@
if (I == (RF.RegI() + 1) / 2 - 1 && RF.RegI() % 2 == 1) {
// The last register, an odd register without a pair
if (RF.CR() == 1) {
- if (I == 0) // If this is the only register pair
- SW.startLine() << format("stp x%d, lr, [sp, #-%d]!\n", 19 + 2 * I,
- SavSZ);
- else
+ if (I == 0) { // If this is the only register pair
+ // CR=1 combined with RegI=1 doesn't map to a documented case;
+ // it doesn't map to any regular unwind info opcode, and the
+ // actual unwinder doesn't support it.
+ SW.startLine() << "INVALID!\n";
+ } else
SW.startLine() << format("stp x%d, lr, [sp, #%d]\n", 19 + 2 * I,
16 * I);
} else {
Index: llvm/test/tools/llvm-readobj/COFF/arm64-packed-unwind.s
===================================================================
--- llvm/test/tools/llvm-readobj/COFF/arm64-packed-unwind.s
+++ llvm/test/tools/llvm-readobj/COFF/arm64-packed-unwind.s
@@ -139,7 +139,7 @@
// CHECK-NEXT: FrameSize: 32
// CHECK-NEXT: Prologue [
// CHECK-NEXT: sub sp, sp, #16
-// CHECK-NEXT: stp x19, lr, [sp, #-16]!
+// CHECK-NEXT: INVALID!
// CHECK-NEXT: end
// CHECK-NEXT: ]
// CHECK-NEXT: }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D91529.315304.patch
Type: text/x-patch
Size: 1555 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210108/9a6dccba/attachment.bin>
More information about the llvm-commits
mailing list