tools: handle out-of-line personality 0 decoding
authorSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 8 Feb 2014 23:17:08 +0000 (23:17 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 8 Feb 2014 23:17:08 +0000 (23:17 +0000)
In some cases it is possible to have a personality 0 unwinding opcodes in the
extab (such as when .handlerdata is used in the assembly).  Simply decode the 3
opcodes for that case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201030 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-readobj/ARMEHABIPrinter.h

index fae3b6d894a35f7e6c613dca128a3773e8eee92b..6f0797b076344e706415027a5ef88470cadf5a8d 100644 (file)
@@ -435,7 +435,7 @@ void PrinterContext<ET>::PrintExceptionTable(const Elf_Shdr *IT,
 
     switch (PersonalityIndex) {
     case AEABI_UNWIND_CPP_PR0:
-      llvm_unreachable("Personality 0 should be compact inline!");
+      PrintOpcodes(Contents->data() + TableEntryOffset, 3, 1);
       break;
     case AEABI_UNWIND_CPP_PR1:
     case AEABI_UNWIND_CPP_PR2: