[PATCH] D38680: [libunwind] Fix handling of DW_CFA_GNU_args_size
Martin Storsjö via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 11 21:45:50 PDT 2017
mstorsjo added inline comments.
Comment at: src/libunwind.cpp:188
+ pint_t orgArgSize = (pint_t)info.gp;
+ uint64_t orgFuncStart = info.start_ip;
> I think it makes sense to have this here: the contract is that if the personality sets the IP when the cursor pointed to a PC with a non-zero arg size, we should adjust SP for the personality.
> However, it's not clear to me that we don't need the same adjustment when stepping across frames that use arg size without a frame pointer.
When stepping across frames, the gnu args size is already included in, as part of the CFA offset, so with the current code, it steps too far.
More information about the cfe-commits