diff options
author | George Rimar <grimar@accesssoftek.com> | 2017-10-16 10:26:17 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2017-10-16 10:26:17 +0000 |
commit | 68b285f69efce9d3669f0bf6c9fe0e89bd265e30 (patch) | |
tree | d6c6ae2a334abee57029dcb5ea1425db3e9fe32c | |
parent | 414151a47e5ecdf7d890529f242209d15d53e1ce (diff) | |
download | bcm5719-llvm-68b285f69efce9d3669f0bf6c9fe0e89bd265e30.tar.gz bcm5719-llvm-68b285f69efce9d3669f0bf6c9fe0e89bd265e30.zip |
[llvm-dwarfdump] - Teach tool to parse DW_CFA_GNU_args_size.
Currently llvm-dwarfdump runs into llvm_unreachable when
faces DW_CFA_GNU_args_size. Patch implements the support.
Differential revision: https://reviews.llvm.org/D38879
llvm-svn: 315897
-rw-r--r-- | llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp | 1 | ||||
-rw-r--r-- | llvm/test/tools/llvm-dwarfdump/X86/debug_frame_GNU_args_size.s | 15 |
2 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp b/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp index bceb0162b35..3312da67804 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp @@ -163,6 +163,7 @@ void FrameEntry::parseInstructions(DataExtractor Data, uint32_t *Offset, case DW_CFA_same_value: case DW_CFA_def_cfa_register: case DW_CFA_def_cfa_offset: + case DW_CFA_GNU_args_size: // Operands: ULEB128 addInstruction(Opcode, Data.getULEB128(Offset)); break; diff --git a/llvm/test/tools/llvm-dwarfdump/X86/debug_frame_GNU_args_size.s b/llvm/test/tools/llvm-dwarfdump/X86/debug_frame_GNU_args_size.s new file mode 100644 index 00000000000..b5d7cdee0e0 --- /dev/null +++ b/llvm/test/tools/llvm-dwarfdump/X86/debug_frame_GNU_args_size.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc %s -filetype=obj -triple=i686-pc-linux -o %t +# RUN: llvm-dwarfdump -v %t | FileCheck %s + +# CHECK: .eh_frame contents: +# CHECK: 00000018 00000010 0000001c FDE cie=0000001c pc=00000000...00000000 +# CHECK-NEXT: DW_CFA_GNU_args_size: +16 +# CHECK-NEXT: DW_CFA_nop: + +.text +.globl foo +.type foo,@function +foo: + .cfi_startproc + .cfi_escape 0x2e, 0x10 + .cfi_endproc |