llvm-project/libunwind/src
Momchil Velikov 81806c5d4d [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
2017-07-24 09:19:32 +00:00
..
AddressSpace.hpp Change -1LL to -1ULL to silence a gcc warning about left shifting a negative value. Fixes https://bugs.llvm.org/show_bug.cgi?id=33358 2017-06-21 16:02:53 +00:00
CMakeLists.txt [libunwind][CMake] Add install path variable to allow overriding the destination 2017-07-11 01:12:09 +00:00
CompactUnwinder.hpp Fix up the places where AddressSpace.hpp is included. 2017-03-09 08:04:07 +00:00
DwarfInstructions.hpp Fix up the places where AddressSpace.hpp is included. 2017-03-09 08:04:07 +00:00
DwarfParser.hpp DarwinParser: include limits 2017-03-14 15:17:55 +00:00
EHHeaderParser.hpp Fix up the places where AddressSpace.hpp is included. 2017-03-09 08:04:07 +00:00
Registers.hpp X86: swap EBP, ESP on !APPLE 2017-01-21 16:22:59 +00:00
Unwind-EHABI.cpp [libunwind] Clean up macro usage. 2017-03-31 15:28:06 +00:00
Unwind-EHABI.h [libunwind] Clean up macro usage. 2017-03-31 15:28:06 +00:00
Unwind-sjlj.c [libunwind] Clean up macro usage. 2017-03-31 15:28:06 +00:00
UnwindCursor.hpp [libunwind] Handle .ARM.exidx tables without sentinel last entry 2017-07-24 09:19:32 +00:00
UnwindLevel1-gcc-ext.c [libunwind] Clean up macro usage. 2017-03-31 15:28:06 +00:00
UnwindLevel1.c [libunwind] Clean up macro usage. 2017-03-31 15:28:06 +00:00
UnwindRegistersRestore.S [ARM] Adding .arch directives around WMMX unwind code 2016-08-26 21:45:39 +00:00
UnwindRegistersSave.S [ARM] Adding .arch directives around WMMX unwind code 2016-08-26 21:45:39 +00:00
Unwind_AppleExtras.cpp [libunwind] Clean up macro usage. 2017-03-31 15:28:06 +00:00
assembly.h [libunwind] Fix executable stack directive on Linux. 2017-05-16 20:18:57 +00:00
config.h [libunwind] Add _LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS 2017-06-27 18:37:06 +00:00
dwarf2.h
libunwind.cpp [libunwind] Clean up macro usage. 2017-03-31 15:28:06 +00:00
libunwind_ext.h [libunwind] Clean up macro usage. 2017-03-31 15:28:06 +00:00
unwind_ext.h