Index: libunwind/src/EHHeaderParser.hpp --- libunwind/src/EHHeaderParser.hpp.orig +++ libunwind/src/EHHeaderParser.hpp @@ -158,6 +158,10 @@ bool EHHeaderParser::findFDE(A &addressSpace, pint_ template size_t EHHeaderParser::getTableEntrySize(uint8_t tableEnc) { + if (tableEnc == DW_EH_PE_omit) { + return 0; + } + switch (tableEnc & 0x0f) { case DW_EH_PE_sdata2: case DW_EH_PE_udata2: @@ -171,8 +175,6 @@ size_t EHHeaderParser::getTableEntrySize(uint8_t ta case DW_EH_PE_sleb128: case DW_EH_PE_uleb128: _LIBUNWIND_ABORT("Can't binary search on variable length encoded data."); - case DW_EH_PE_omit: - return 0; default: _LIBUNWIND_ABORT("Unknown DWARF encoding for search table."); }