diff options
author | Momchil Velikov <momchil.velikov@arm.com> | 2017-07-24 09:19:32 +0000 |
---|---|---|
committer | Momchil Velikov <momchil.velikov@arm.com> | 2017-07-24 09:19:32 +0000 |
commit | 81806c5d4d554a94b4e3db10a616ec51b1841d49 (patch) | |
tree | 6c5b029c27c5e37e8253b5e42d1a066a92d7930c /lldb/packages/Python/lldbsuite/test/lang/cpp/exceptions/exceptions.cpp | |
parent | f7face4bc435ee608f9e3d2322781d3298ff59b3 (diff) | |
download | bcm5719-llvm-81806c5d4d554a94b4e3db10a616ec51b1841d49.tar.gz bcm5719-llvm-81806c5d4d554a94b4e3db10a616ec51b1841d49.zip |
[libunwind] Handle .ARM.exidx tables without sentinel last entry
UnwindCursor<A, R>::getInfoFromEHABISection assumes the last
entry in the index table never corresponds to a real function.
Indeed, GNU ld always inserts an EXIDX_CANTUNWIND entry,
containing the end of the .text section. However, the EHABI specification
(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038b/IHI0038B_ehabi.pdf)
does not seem to contain text that requires the presence of a sentinel entry.
In that sense the libunwind implementation isn't compliant with the specification.
This patch makes getInfoFromEHABISection examine the last entry in the index
table if upper_bound returns the end iterator.
Fixes https://bugs.llvm.org/show_bug.cgi?id=31091
Differential revision: https://reviews.llvm.org/D35265
llvm-svn: 308871
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp/exceptions/exceptions.cpp')
0 files changed, 0 insertions, 0 deletions