[libcxx-commits] [PATCH] D158655: [libunwind][AIX] Fix problem with stepping up from a leaf function when unwinding started in a signal handler
Stephen Peckham via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Aug 31 07:28:58 PDT 2023
stephenpeckham added inline comments.
================
Comment at: libunwind/src/UnwindCursor.hpp:2538
if (nextReturnAddress > 0x01 && nextReturnAddress < 0x10000) {
_LIBUNWIND_TRACE_UNWINDING("The next is a signal handler frame: "
----------------
stephenpeckham wrote:
> This code wasn't changed, but the check could be done at the beginning of the function instead of the end. With this change, isSignalFrame does not need to be updated.
Retracting this comment. The value of _isSignalFrame can be queried, so the value has to be computed here.
================
Comment at: libunwind/test/aix_signal_unwind.pass.sh.S:159
+ std 0, 16(1)
+ ld 3, L..C0(2) # @badp
+ ld 4, 0(3)
----------------
I suggest you add "bl $+4" to modify LR as if an internal function had been called.
================
Comment at: libunwind/test/aix_signal_unwind.pass.sh.S:208
+ stw 0, 8(1)
+ lwz 3, L..C0(2) # @badp
+ lwz 4, 0(3)
----------------
add "bl $+4"
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D158655/new/
https://reviews.llvm.org/D158655
More information about the libcxx-commits
mailing list