Index: libunwind/src/EHHeaderParser.hpp --- libunwind/src/EHHeaderParser.hpp.orig +++ libunwind/src/EHHeaderParser.hpp @@ -145,6 +145,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: @@ -158,8 +162,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."); }