| commit f326df34bc179e41ea17d31e1ffba4a479e45589 |
| Author: Daniel Kiss <daniel.kiss@arm.com> |
| Date: Thu Apr 28 10:01:22 2022 +0200 |
| |
| [libunwind][AArch64] Fix _Unwind_ForcedUnwind via sigreturn. |
| |
| When the sigreturn trampoline is found the unw_proc_info_t.end_ip need to be set to |
| indicate a stack frame is found. |
| |
| Reviewed By: cjdb, #libunwind, MaskRay |
| |
| Differential Revision: https://reviews.llvm.org/D124522 |
| |
| diff --git a/libunwind/src/UnwindCursor.hpp b/libunwind/src/UnwindCursor.hpp |
| index dd849b781753..29ded5c4e78e 100644 |
| --- a/libunwind/src/UnwindCursor.hpp |
| +++ b/libunwind/src/UnwindCursor.hpp |
| @@ -2606,6 +2606,8 @@ bool UnwindCursor<A, R>::setInfoForSigReturn(Registers_arm64 &) { |
| if (_addressSpace.get32(pc) == 0xd2801168 && |
| _addressSpace.get32(pc + 4) == 0xd4000001) { |
| _info = {}; |
| + _info.start_ip = pc; |
| + _info.end_ip = pc + 4; |
| _isSigReturn = true; |
| return true; |
| } |