# Test that we can decode `DW_OP_GNU_implicit_pointer` (0xf2) # RUN: yaml2obj %s | llvm-dwarfdump - | FileCheck %s # CHECK: DW_TAG_variable # CHECK-NEXT: DW_AT_location (DW_OP_GNU_implicit_pointer 0x2a +4) --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_DYN Machine: EM_X86_64 DWARF: debug_abbrev: - Table: - Code: 0x00000001 Tag: DW_TAG_compile_unit Children: DW_CHILDREN_yes Attributes: - Attribute: DW_AT_language Form: DW_FORM_data2 - Attribute: DW_AT_low_pc Form: DW_FORM_addr - Attribute: DW_AT_high_pc Form: DW_FORM_data4 - Code: 0x00000002 Tag: DW_TAG_subprogram Children: DW_CHILDREN_yes Attributes: - Attribute: DW_AT_low_pc Form: DW_FORM_addr - Attribute: DW_AT_high_pc Form: DW_FORM_data4 - Attribute: DW_AT_frame_base Form: DW_FORM_exprloc - Code: 0x00000003 Tag: DW_TAG_formal_parameter Children: DW_CHILDREN_no Attributes: - Attribute: DW_AT_location Form: DW_FORM_exprloc - Code: 0x00000004 Tag: DW_TAG_variable Children: DW_CHILDREN_no Attributes: - Attribute: DW_AT_location Form: DW_FORM_exprloc debug_info: - Length: 52 Version: 5 UnitType: DW_UT_compile AbbrOffset: 0 AddrSize: 8 Entries: - AbbrCode: 0x00000001 Values: - Value: 0x000000000000000C - Value: 0x0000000100000F50 - Value: 0x0000000000000034 - AbbrCode: 0x00000002 Values: - Value: 0x0000000100000F50 - Value: 0x0000000000000034 - Value: 0x0000000000000001 BlockData: - 0x56 - AbbrCode: 0x00000003 Values: - Value: 0x0000000000000002 BlockData: - 0x91 - 0x78 - AbbrCode: 0x00000004 Values: - Value: 0x0000000000000006 BlockData: - 0xf2 # DW_OP_GNU_implicit_pointer - 0x2a # Section offset of parameter in the previous entry - 0x00 - 0x00 - 0x00 - 0x04 # Pointer references location 4 bytes into value of previous entry - AbbrCode: 0x00000000 Values: - AbbrCode: 0x00000000 Values: ...