summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj/unwind.test
diff options
context:
space:
mode:
authorRafael Auler <rafaelauler@fb.com>2018-03-08 00:46:53 +0000
committerRafael Auler <rafaelauler@fb.com>2018-03-08 00:46:53 +0000
commit86fb7bf2bca553bc7137e85d0ac0c7a809e16c80 (patch)
tree6af7787dea9d397d6c399d683cbeff5d2dbd17db /llvm/test/tools/llvm-readobj/unwind.test
parenta4259cd3a6268d6b7e27acd45fd6f114e2ac9ac2 (diff)
downloadbcm5719-llvm-86fb7bf2bca553bc7137e85d0ac0c7a809e16c80.tar.gz
bcm5719-llvm-86fb7bf2bca553bc7137e85d0ac0c7a809e16c80.zip
Reland "[DebugInfo] Support DWARF expressions in eh_frame"
Summary: Original change was D43313 (r326932) and reverted by r326953 because it broke an LLD test and a windows build. The LLD test was already fixed in lld commit r326944 (thanks maskray). This is the original change with the windows build fixed. llvm-svn: 326970
Diffstat (limited to 'llvm/test/tools/llvm-readobj/unwind.test')
-rw-r--r--llvm/test/tools/llvm-readobj/unwind.test170
1 files changed, 170 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/unwind.test b/llvm/test/tools/llvm-readobj/unwind.test
new file mode 100644
index 00000000000..72c591048c8
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/unwind.test
@@ -0,0 +1,170 @@
+RUN: yaml2obj %p/Inputs/dwarf-exprs.exe-x86-64.yaml > %t.exe
+RUN: llvm-readobj -unwind %t.exe | FileCheck %s
+
+CHECK: EH_FRAME Header [
+CHECK-NEXT: Address: 0x4013c0
+CHECK-NEXT: Offset: 0x27c
+CHECK-NEXT: Size: 0x3c
+CHECK-NEXT: Corresponding Section: .eh_frame_hdr
+CHECK-NEXT: Header {
+CHECK-NEXT: version: 1
+CHECK-NEXT: eh_frame_ptr_enc: 0x1b
+CHECK-NEXT: fde_count_enc: 0x3
+CHECK-NEXT: table_enc: 0x3b
+CHECK-NEXT: eh_frame_ptr: 0x401400
+CHECK-NEXT: fde_count: 6
+CHECK-NEXT: entry 0 {
+CHECK-NEXT: initial_location: 0x4004a0
+CHECK-NEXT: address: 0x401448
+CHECK-NEXT: }
+CHECK-NEXT: entry 1 {
+CHECK-NEXT: initial_location: 0x4004d0
+CHECK-NEXT: address: 0x401418
+CHECK-NEXT: }
+CHECK-NEXT: entry 2 {
+CHECK-NEXT: initial_location: 0x4005b6
+CHECK-NEXT: address: 0x401470
+CHECK-NEXT: }
+CHECK-NEXT: entry 3 {
+CHECK-NEXT: initial_location: 0x4005d0
+CHECK-NEXT: address: 0x401490
+CHECK-NEXT: }
+CHECK-NEXT: entry 4 {
+CHECK-NEXT: initial_location: 0x401250
+CHECK-NEXT: address: 0x4014c0
+CHECK-NEXT: }
+CHECK-NEXT: entry 5 {
+CHECK-NEXT: initial_location: 0x4012c0
+CHECK-NEXT: address: 0x4014f0
+CHECK-NEXT: }
+CHECK-NEXT: }
+CHECK-NEXT:]
+
+CHECK: .eh_frame section at offset 0x2b8 address 0x401400:
+CHECK-NEXT: [0x401400] CIE length=20
+CHECK-NEXT: version: 1
+CHECK-NEXT: augmentation: zR
+CHECK-NEXT: code_alignment_factor: 1
+CHECK-NEXT: data_alignment_factor: -8
+CHECK-NEXT: return_address_register: 16
+
+CHECK: Program:
+CHECK-NEXT: DW_CFA_def_cfa: reg7 +8
+CHECK-NEXT: DW_CFA_offset: reg16 -8
+CHECK-NEXT: DW_CFA_undefined: reg16
+
+CHECK: [0x401418] FDE length=20 cie=[0x401400]
+CHECK-NEXT: initial_location: 0x4004d0
+CHECK-NEXT: address_range: 0x2a (end : 0x4004fa)
+
+CHECK: Program:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+
+CHECK: [0x401430] CIE length=20
+CHECK-NEXT: version: 1
+CHECK-NEXT: augmentation: zR
+CHECK-NEXT: code_alignment_factor: 1
+CHECK-NEXT: data_alignment_factor: -8
+CHECK-NEXT: return_address_register: 16
+
+CHECK: Program:
+CHECK-NEXT: DW_CFA_def_cfa: reg7 +8
+CHECK-NEXT: DW_CFA_offset: reg16 -8
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+
+CHECK: [0x401448] FDE length=36 cie=[0x401430]
+CHECK-NEXT: initial_location: 0x4004a0
+CHECK-NEXT: address_range: 0x20 (end : 0x4004c0)
+
+CHECK: Program:
+CHECK-NEXT: DW_CFA_def_cfa_offset: +16
+CHECK-NEXT: DW_CFA_advance_loc: 6
+CHECK-NEXT: DW_CFA_def_cfa_offset: +24
+CHECK-NEXT: DW_CFA_advance_loc: 10
+CHECK-NEXT: DW_CFA_def_cfa_expression: DW_OP_breg7 +8, DW_OP_breg16 +0, DW_OP_lit15, DW_OP_and, DW_OP_lit11, DW_OP_ge, DW_OP_lit3, DW_OP_shl, DW_OP_plus
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+
+CHECK: [0x401470] FDE length=28 cie=[0x401430]
+CHECK-NEXT: initial_location: 0x4005b6
+CHECK-NEXT: address_range: 0x10 (end : 0x4005c6)
+
+CHECK: Program:
+CHECK-NEXT: DW_CFA_advance_loc: 1
+CHECK-NEXT: DW_CFA_def_cfa_offset: +16
+CHECK-NEXT: DW_CFA_offset: reg6 -16
+CHECK-NEXT: DW_CFA_advance_loc: 3
+CHECK-NEXT: DW_CFA_def_cfa_register: reg6
+CHECK-NEXT: DW_CFA_advance_loc: 11
+CHECK-NEXT: DW_CFA_def_cfa: reg7 +8
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+
+CHECK: [0x401490] FDE length=44 cie=[0x401430]
+CHECK-NEXT: initial_location: 0x4005d0
+CHECK-NEXT: address_range: 0xc7f (end : 0x40124f)
+
+CHECK: Program:
+CHECK-NEXT: DW_CFA_advance_loc: 5
+CHECK-NEXT: DW_CFA_def_cfa: reg10 +0
+CHECK-NEXT: DW_CFA_advance_loc: 9
+CHECK-NEXT: DW_CFA_expression: reg6 DW_OP_breg6 +0
+CHECK-NEXT: DW_CFA_advance_loc: 5
+CHECK-NEXT: DW_CFA_def_cfa_expression: DW_OP_breg6 -8, DW_OP_deref
+CHECK-NEXT: DW_CFA_advance_loc2: 3174
+CHECK-NEXT: DW_CFA_def_cfa: reg10 +0
+CHECK-NEXT: DW_CFA_advance_loc: 5
+CHECK-NEXT: DW_CFA_def_cfa: reg7 +8
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+
+CHECK: [0x4014c0] FDE length=44 cie=[0x401430]
+CHECK-NEXT: initial_location: 0x401250
+CHECK-NEXT: address_range: 0x66 (end : 0x4012b6)
+
+CHECK: Program:
+CHECK-NEXT: DW_CFA_advance_loc: 1
+CHECK-NEXT: DW_CFA_def_cfa_offset: +16
+CHECK-NEXT: DW_CFA_offset: reg6 -16
+CHECK-NEXT: DW_CFA_advance_loc: 3
+CHECK-NEXT: DW_CFA_def_cfa_register: reg6
+CHECK-NEXT: DW_CFA_advance_loc: 2
+CHECK-NEXT: DW_CFA_offset: reg15 -24
+CHECK-NEXT: DW_CFA_advance_loc: 5
+CHECK-NEXT: DW_CFA_offset: reg14 -32
+CHECK-NEXT: DW_CFA_advance_loc: 7
+CHECK-NEXT: DW_CFA_offset: reg13 -40
+CHECK-NEXT: DW_CFA_offset: reg12 -48
+CHECK-NEXT: DW_CFA_advance_loc: 8
+CHECK-NEXT: DW_CFA_offset: reg3 -56
+CHECK-NEXT: DW_CFA_advance_loc1: 75
+CHECK-NEXT: DW_CFA_def_cfa: reg7 +8
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+
+CHECK: [0x4014f0] FDE length=20 cie=[0x401430]
+CHECK-NEXT: initial_location: 0x4012c0
+CHECK-NEXT: address_range: 0x1 (end : 0x4012c1)
+
+CHECK: Program:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
+CHECK-NEXT: DW_CFA_nop:
OpenPOWER on IntegriCloud