[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
+      co->getInfo(&info);
+      pint_t orgArgSize = (pint_t)info.gp;
+      uint64_t orgFuncStart = info.start_ip;
rnk wrote:
> 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 mailing list