1 RUN: yaml2obj %p/Inputs/dwarf-exprs.exe-x86-64.yaml > %t.exe 2 RUN: llvm-readobj -unwind %t.exe | FileCheck %s 3 4 CHECK: EH_FRAME Header [ 5 CHECK-NEXT: Address: 0x4013c0 6 CHECK-NEXT: Offset: 0x27c 7 CHECK-NEXT: Size: 0x3c 8 CHECK-NEXT: Corresponding Section: .eh_frame_hdr 9 CHECK-NEXT: Header { 10 CHECK-NEXT: version: 1 11 CHECK-NEXT: eh_frame_ptr_enc: 0x1b 12 CHECK-NEXT: fde_count_enc: 0x3 13 CHECK-NEXT: table_enc: 0x3b 14 CHECK-NEXT: eh_frame_ptr: 0x401400 15 CHECK-NEXT: fde_count: 6 16 CHECK-NEXT: entry 0 { 17 CHECK-NEXT: initial_location: 0x4004a0 18 CHECK-NEXT: address: 0x401448 19 CHECK-NEXT: } 20 CHECK-NEXT: entry 1 { 21 CHECK-NEXT: initial_location: 0x4004d0 22 CHECK-NEXT: address: 0x401418 23 CHECK-NEXT: } 24 CHECK-NEXT: entry 2 { 25 CHECK-NEXT: initial_location: 0x4005b6 26 CHECK-NEXT: address: 0x401470 27 CHECK-NEXT: } 28 CHECK-NEXT: entry 3 { 29 CHECK-NEXT: initial_location: 0x4005d0 30 CHECK-NEXT: address: 0x401490 31 CHECK-NEXT: } 32 CHECK-NEXT: entry 4 { 33 CHECK-NEXT: initial_location: 0x401250 34 CHECK-NEXT: address: 0x4014c0 35 CHECK-NEXT: } 36 CHECK-NEXT: entry 5 { 37 CHECK-NEXT: initial_location: 0x4012c0 38 CHECK-NEXT: address: 0x4014f0 39 CHECK-NEXT: } 40 CHECK-NEXT: } 41 CHECK-NEXT:] 42 43 CHECK: .eh_frame section at offset 0x2b8 address 0x401400: 44 CHECK-NEXT: [0x401400] CIE length=20 45 CHECK-NEXT: version: 1 46 CHECK-NEXT: augmentation: zR 47 CHECK-NEXT: code_alignment_factor: 1 48 CHECK-NEXT: data_alignment_factor: -8 49 CHECK-NEXT: return_address_register: 16 50 51 CHECK: Program: 52 CHECK-NEXT: DW_CFA_def_cfa: reg7 +8 53 CHECK-NEXT: DW_CFA_offset: reg16 -8 54 CHECK-NEXT: DW_CFA_undefined: reg16 55 56 CHECK: [0x401418] FDE length=20 cie=[0x401400] 57 CHECK-NEXT: initial_location: 0x4004d0 58 CHECK-NEXT: address_range: 0x2a (end : 0x4004fa) 59 60 CHECK: Program: 61 CHECK-NEXT: DW_CFA_nop: 62 CHECK-NEXT: DW_CFA_nop: 63 CHECK-NEXT: DW_CFA_nop: 64 CHECK-NEXT: DW_CFA_nop: 65 CHECK-NEXT: DW_CFA_nop: 66 CHECK-NEXT: DW_CFA_nop: 67 CHECK-NEXT: DW_CFA_nop: 68 69 CHECK: [0x401430] CIE length=20 70 CHECK-NEXT: version: 1 71 CHECK-NEXT: augmentation: zR 72 CHECK-NEXT: code_alignment_factor: 1 73 CHECK-NEXT: data_alignment_factor: -8 74 CHECK-NEXT: return_address_register: 16 75 76 CHECK: Program: 77 CHECK-NEXT: DW_CFA_def_cfa: reg7 +8 78 CHECK-NEXT: DW_CFA_offset: reg16 -8 79 CHECK-NEXT: DW_CFA_nop: 80 CHECK-NEXT: DW_CFA_nop: 81 82 CHECK: [0x401448] FDE length=36 cie=[0x401430] 83 CHECK-NEXT: initial_location: 0x4004a0 84 CHECK-NEXT: address_range: 0x20 (end : 0x4004c0) 85 86 CHECK: Program: 87 CHECK-NEXT: DW_CFA_def_cfa_offset: +16 88 CHECK-NEXT: DW_CFA_advance_loc: 6 89 CHECK-NEXT: DW_CFA_def_cfa_offset: +24 90 CHECK-NEXT: DW_CFA_advance_loc: 10 91 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 92 CHECK-NEXT: DW_CFA_nop: 93 CHECK-NEXT: DW_CFA_nop: 94 CHECK-NEXT: DW_CFA_nop: 95 CHECK-NEXT: DW_CFA_nop: 96 97 CHECK: [0x401470] FDE length=28 cie=[0x401430] 98 CHECK-NEXT: initial_location: 0x4005b6 99 CHECK-NEXT: address_range: 0x10 (end : 0x4005c6) 100 101 CHECK: Program: 102 CHECK-NEXT: DW_CFA_advance_loc: 1 103 CHECK-NEXT: DW_CFA_def_cfa_offset: +16 104 CHECK-NEXT: DW_CFA_offset: reg6 -16 105 CHECK-NEXT: DW_CFA_advance_loc: 3 106 CHECK-NEXT: DW_CFA_def_cfa_register: reg6 107 CHECK-NEXT: DW_CFA_advance_loc: 11 108 CHECK-NEXT: DW_CFA_def_cfa: reg7 +8 109 CHECK-NEXT: DW_CFA_nop: 110 CHECK-NEXT: DW_CFA_nop: 111 CHECK-NEXT: DW_CFA_nop: 112 113 CHECK: [0x401490] FDE length=44 cie=[0x401430] 114 CHECK-NEXT: initial_location: 0x4005d0 115 CHECK-NEXT: address_range: 0xc7f (end : 0x40124f) 116 117 CHECK: Program: 118 CHECK-NEXT: DW_CFA_advance_loc: 5 119 CHECK-NEXT: DW_CFA_def_cfa: reg10 +0 120 CHECK-NEXT: DW_CFA_advance_loc: 9 121 CHECK-NEXT: DW_CFA_expression: reg6 DW_OP_breg6 +0 122 CHECK-NEXT: DW_CFA_advance_loc: 5 123 CHECK-NEXT: DW_CFA_def_cfa_expression: DW_OP_breg6 -8, DW_OP_deref 124 CHECK-NEXT: DW_CFA_advance_loc2: 3174 125 CHECK-NEXT: DW_CFA_def_cfa: reg10 +0 126 CHECK-NEXT: DW_CFA_advance_loc: 5 127 CHECK-NEXT: DW_CFA_def_cfa: reg7 +8 128 CHECK-NEXT: DW_CFA_nop: 129 CHECK-NEXT: DW_CFA_nop: 130 CHECK-NEXT: DW_CFA_nop: 131 CHECK-NEXT: DW_CFA_nop: 132 133 CHECK: [0x4014c0] FDE length=44 cie=[0x401430] 134 CHECK-NEXT: initial_location: 0x401250 135 CHECK-NEXT: address_range: 0x66 (end : 0x4012b6) 136 137 CHECK: Program: 138 CHECK-NEXT: DW_CFA_advance_loc: 1 139 CHECK-NEXT: DW_CFA_def_cfa_offset: +16 140 CHECK-NEXT: DW_CFA_offset: reg6 -16 141 CHECK-NEXT: DW_CFA_advance_loc: 3 142 CHECK-NEXT: DW_CFA_def_cfa_register: reg6 143 CHECK-NEXT: DW_CFA_advance_loc: 2 144 CHECK-NEXT: DW_CFA_offset: reg15 -24 145 CHECK-NEXT: DW_CFA_advance_loc: 5 146 CHECK-NEXT: DW_CFA_offset: reg14 -32 147 CHECK-NEXT: DW_CFA_advance_loc: 7 148 CHECK-NEXT: DW_CFA_offset: reg13 -40 149 CHECK-NEXT: DW_CFA_offset: reg12 -48 150 CHECK-NEXT: DW_CFA_advance_loc: 8 151 CHECK-NEXT: DW_CFA_offset: reg3 -56 152 CHECK-NEXT: DW_CFA_advance_loc1: 75 153 CHECK-NEXT: DW_CFA_def_cfa: reg7 +8 154 CHECK-NEXT: DW_CFA_nop: 155 CHECK-NEXT: DW_CFA_nop: 156 CHECK-NEXT: DW_CFA_nop: 157 CHECK-NEXT: DW_CFA_nop: 158 159 CHECK: [0x4014f0] FDE length=20 cie=[0x401430] 160 CHECK-NEXT: initial_location: 0x4012c0 161 CHECK-NEXT: address_range: 0x1 (end : 0x4012c1) 162 163 CHECK: Program: 164 CHECK-NEXT: DW_CFA_nop: 165 CHECK-NEXT: DW_CFA_nop: 166 CHECK-NEXT: DW_CFA_nop: 167 CHECK-NEXT: DW_CFA_nop: 168 CHECK-NEXT: DW_CFA_nop: 169 CHECK-NEXT: DW_CFA_nop: 170 CHECK-NEXT: DW_CFA_nop: 171