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 | f6717c26e1069fbc0894fe8b98022580e875dad1 (patch) | |
tree | 1b44bdeec92e363806fab3d0c77c6d8447e005b4 /test/CMakeLists.txt | |
parent | 82c7974db48aeaa36b51e364ba5a5cd25b3f4f54 (diff) |
[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
git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@308871 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CMakeLists.txt')
0 files changed, 0 insertions, 0 deletions