88 lines · yaml
1# Test that we can decode `DW_OP_GNU_implicit_pointer` (0xf2)2# RUN: yaml2obj %s | llvm-dwarfdump - | FileCheck %s3 4# CHECK: DW_TAG_variable5# CHECK-NEXT: DW_AT_location (DW_OP_GNU_implicit_pointer 0x2a +4)6 7--- !ELF8FileHeader:9 Class: ELFCLASS6410 Data: ELFDATA2LSB11 Type: ET_DYN12 Machine: EM_X86_6413DWARF:14 debug_abbrev:15 - Table:16 - Code: 0x0000000117 Tag: DW_TAG_compile_unit18 Children: DW_CHILDREN_yes19 Attributes:20 - Attribute: DW_AT_language21 Form: DW_FORM_data222 - Attribute: DW_AT_low_pc23 Form: DW_FORM_addr24 - Attribute: DW_AT_high_pc25 Form: DW_FORM_data426 - Code: 0x0000000227 Tag: DW_TAG_subprogram28 Children: DW_CHILDREN_yes29 Attributes:30 - Attribute: DW_AT_low_pc31 Form: DW_FORM_addr32 - Attribute: DW_AT_high_pc33 Form: DW_FORM_data434 - Attribute: DW_AT_frame_base35 Form: DW_FORM_exprloc36 - Code: 0x0000000337 Tag: DW_TAG_formal_parameter38 Children: DW_CHILDREN_no39 Attributes:40 - Attribute: DW_AT_location41 Form: DW_FORM_exprloc42 - Code: 0x0000000443 Tag: DW_TAG_variable44 Children: DW_CHILDREN_no45 Attributes:46 - Attribute: DW_AT_location47 Form: DW_FORM_exprloc48 debug_info:49 - Length: 5250 Version: 551 UnitType: DW_UT_compile52 AbbrOffset: 053 AddrSize: 854 Entries:55 - AbbrCode: 0x0000000156 Values:57 - Value: 0x000000000000000C58 - Value: 0x0000000100000F5059 - Value: 0x000000000000003460 - AbbrCode: 0x0000000261 Values:62 - Value: 0x0000000100000F5063 - Value: 0x000000000000003464 - Value: 0x000000000000000165 BlockData:66 - 0x5667 - AbbrCode: 0x0000000368 Values:69 - Value: 0x000000000000000270 BlockData:71 - 0x9172 - 0x7873 - AbbrCode: 0x0000000474 Values:75 - Value: 0x000000000000000676 BlockData:77 - 0xf2 # DW_OP_GNU_implicit_pointer78 - 0x2a # Section offset of parameter in the previous entry79 - 0x0080 - 0x0081 - 0x0082 - 0x04 # Pointer references location 4 bytes into value of previous entry83 - AbbrCode: 0x0000000084 Values:85 - AbbrCode: 0x0000000086 Values:87...88