summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2017-10-16 10:26:17 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2017-10-16 10:26:17 +0000
commit68b285f69efce9d3669f0bf6c9fe0e89bd265e30 (patch)
treed6c6ae2a334abee57029dcb5ea1425db3e9fe32c /llvm
parent414151a47e5ecdf7d890529f242209d15d53e1ce (diff)
downloadbcm5719-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
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp1
-rw-r--r--llvm/test/tools/llvm-dwarfdump/X86/debug_frame_GNU_args_size.s15
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
OpenPOWER on IntegriCloud