diff options
author | Pavel Labath <labath@google.com> | 2017-06-19 12:39:34 +0000 |
---|---|---|
committer | Pavel Labath <labath@google.com> | 2017-06-19 12:39:34 +0000 |
commit | 9376007af71753be2ab3e2594fb4159ccd970520 (patch) | |
tree | bf0ccfea4f2440e31bc047250822386b58cf0403 /clang/lib/Basic/SourceLocation.cpp | |
parent | 319b38398e0d990f88db34dc562c73ce847cf910 (diff) | |
download | bcm5719-llvm-9376007af71753be2ab3e2594fb4159ccd970520.tar.gz bcm5719-llvm-9376007af71753be2ab3e2594fb4159ccd970520.zip |
Tweak SysV_arm64 function entry unwind plan
Summary:
The motivation for this is to make sure the first row of the plan
compares equal to the first row of a generic debug_frame unwind plan.
Right now, the code in FuncUnwinders::GetUnwindPlanAtNonCallSite
considers them unequal because they specify the return address in a
different way (SetReturnAddressRegister(LR) vs. an explicit PC=LR rule).
This means that FuncUnwinders would always choose the debug_frame unwind
plan, which is not correct, as that one is usually not correct at all
locations.
Right now this is basically a noop because we don't have parse any
debug_frame plans, but it fixes some test failures when merging D33504
in.
I have to say I don't understand the full implications of the switch to
SetReturnAddressRegister() way of doing things, but given that all of
our other unwind plans (eh_frame, instruction profiling) do it this way,
it sounds like the right thing to do.
Reviewers: tberghammer, jasonmolenda, omjavaid
Subscribers: aemerson, javed.absar, kristof.beyls, lldb-commits
Differential Revision: https://reviews.llvm.org/D34199
llvm-svn: 305687
Diffstat (limited to 'clang/lib/Basic/SourceLocation.cpp')
0 files changed, 0 insertions, 0 deletions