forked from OSchip/llvm-project
81806c5d4d
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 |
||
---|---|---|
.. | ||
AddressSpace.hpp | ||
CMakeLists.txt | ||
CompactUnwinder.hpp | ||
DwarfInstructions.hpp | ||
DwarfParser.hpp | ||
EHHeaderParser.hpp | ||
Registers.hpp | ||
Unwind-EHABI.cpp | ||
Unwind-EHABI.h | ||
Unwind-sjlj.c | ||
UnwindCursor.hpp | ||
UnwindLevel1-gcc-ext.c | ||
UnwindLevel1.c | ||
UnwindRegistersRestore.S | ||
UnwindRegistersSave.S | ||
Unwind_AppleExtras.cpp | ||
assembly.h | ||
config.h | ||
dwarf2.h | ||
libunwind.cpp | ||
libunwind_ext.h | ||
unwind_ext.h |