blob: d903df0cabcd17deb78fe70ce75014da308d8d64 [file] [log] [blame]
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;
}