brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.6 KiB · f607813 Raw
424 lines · yaml
1# RUN: yaml2obj %s | llvm-dwarfdump --statistics - | FileCheck %s2 3## Check that zero coverage was reported for inlined variable with4## DW_AT_abstract_origin with no location attribute as well as5## for the variable that has not been generated within the inlined subroutine.6##7## The yaml represents DWARF as:8##9## DW_TAG_compile_unit10##   DW_AT_low_pc      (0x0000000000000000)11##   DW_TAG_subprogram <-- (0x00000014)12##     DW_AT_decl_file (0x01)13##     DW_AT_decl_line (1)14##     DW_AT_inline    (DW_INL_inlined)15##     DW_TAG_formal_parameter <-- (0x00000018)16##       DW_AT_decl_file       (0x01)17##       DW_AT_decl_line       (1)18##     DW_TAG_formal_parameter <-- (0x0000001b)19##       DW_AT_decl_file       (0x01)20##       DW_AT_decl_line       (1)21##     DW_TAG_variable <-- (0x0000001e)22##       DW_AT_decl_file       (0x01)23##       DW_AT_decl_line       (1)24##   DW_TAG_subprogram25##     DW_AT_decl_file (0x01)26##     DW_AT_decl_line (1)27##     DW_AT_low_pc    (0x0000000000000000)28##     DW_AT_high_pc   (0x000000000000000b)29##     DW_TAG_inlined_subroutine30##       DW_AT_abstract_origin (0x00000014)31##       DW_AT_low_pc  (0x0000000000000000)32##       DW_AT_high_pc (0x0000000000000007)33##       DW_AT_call_file       (0x01)34##       DW_AT_call_line       (1)35##       DW_AT_call_column     (1)36##       DW_TAG_formal_parameter37##         DW_AT_abstract_origin       (0x00000018)38##       DW_TAG_variable39##         DW_AT_abstract_origin       (0x0000001e)40##         DW_AT_location      ()41##     DW_TAG_inlined_subroutine42##       DW_AT_abstract_origin       (0x00000014)43##       DW_AT_low_pc        (0x0000000000000000)44##       DW_AT_high_pc       (0x0000000000000007)45##       DW_AT_call_file     (0x01)46##       DW_AT_call_line     (1)47##       DW_AT_call_column   (1)48##       DW_TAG_formal_parameter49##         DW_AT_abstract_origin     (0x00000018)50##         DW_AT_location    ()51##       DW_TAG_variable52##         DW_AT_abstract_origin     (0x0000001e)53##         DW_AT_location    ()54##     DW_TAG_inlined_subroutine55##       DW_AT_abstract_origin       (0x00000014)56##       DW_AT_low_pc        (0x0000000000000000)57##       DW_AT_high_pc       (0x0000000000000007)58##       DW_AT_call_file     (0x01)59##       DW_AT_call_line     (1)60##       DW_AT_call_column   (1)61##     DW_TAG_inlined_subroutine62##       DW_AT_abstract_origin (0x00000014)63##       DW_AT_low_pc  (0x0000000000000002)64##       DW_AT_high_pc (0x000000000000000a)65##       DW_AT_call_file       (0x01)66##       DW_AT_call_line       (3)67##       DW_AT_call_column     (3)68##     DW_TAG_inlined_subroutine69##       DW_AT_abstract_origin (0x000000e5)70##       DW_AT_low_pc  (0x0000000000000006)71##       DW_AT_high_pc (0x0000000000000010)72##       DW_AT_call_file       (0x01)73##       DW_AT_call_line       (3)74##       DW_AT_call_column     (3)75##     DW_TAG_inlined_subroutine76##       DW_AT_abstract_origin (0x000000e5)77##       DW_AT_low_pc  (0x0000000000000006)78##       DW_AT_high_pc (0x0000000000000010)79##       DW_AT_call_file       (0x01)80##       DW_AT_call_line       (3)81##       DW_AT_call_column     (3)82##       DW_TAG_formal_parameter83##         DW_AT_abstract_origin       (0x000000e9)84##         DW_AT_location      ()85##     DW_TAG_inlined_subroutine86##       DW_AT_abstract_origin (0x000000f0)87##       DW_AT_low_pc  (0x0000000000000010)88##       DW_AT_high_pc (0x000000000000001a)89##       DW_AT_call_file       (0x01)90##       DW_AT_call_line       (3)91##       DW_AT_call_column     (3)92##       DW_TAG_formal_parameter93##         DW_AT_abstract_origin       (0x000000f4)94##       DW_TAG_lexical_block95##         DW_AT_low_pc        (0x00000000000000bc)96##         DW_AT_high_pc       (0x00000000000000bc)97##         DW_TAG_variable98##           DW_AT_abstract_origin     (0x000000f8)99##   DW_TAG_subprogram  <-- (0x000000e5)100##     DW_AT_decl_file       (0x01)101##     DW_AT_decl_line       (3)102##     DW_AT_inline  (DW_INL_inlined)103##     DW_TAG_formal_parameter <-- (0x000000e9)104##       DW_AT_decl_file     (0x01)105##       DW_AT_decl_line     (1)106##     DW_TAG_variable  <-- (0x000000be)107##       DW_AT_decl_file     (0x01)108##       DW_AT_decl_line     (1)109##   DW_TAG_subprogram  <-- (0x000000f0)110##     DW_AT_decl_file (0x01)111##     DW_AT_decl_line (3)112##     DW_AT_inline    (DW_INL_inlined)113##       DW_TAG_formal_parameter <--(0x000000f4)114##         DW_AT_decl_file       (0x01)115##         DW_AT_decl_line       (1)116##       DW_TAG_lexical_block117##         DW_TAG_variable <--(0x000000f8)118##           DW_AT_decl_file     (0x01)119##           DW_AT_decl_line     (1)120##    DW_TAG_subprogram121##        DW_AT_abstract_origin (0x000000f0)122 123# CHECK: "version": 9,124# CHECK: "#variables processed by location statistics": 17,125# CHECK: "#variables with 0% of parent scope covered by DW_AT_location": 13,126# CHECK: "#variables with 100% of parent scope covered by DW_AT_location": 4,127 128--- !ELF129FileHeader:130  Class:   ELFCLASS64131  Data:    ELFDATA2LSB132  Type:    ET_EXEC133  Machine: EM_X86_64134DWARF:135  debug_abbrev:136    - Table:137      - Code: 1138        Tag: DW_TAG_compile_unit139        Children: DW_CHILDREN_yes140        Attributes:141          - Attribute: DW_AT_low_pc142            Form: DW_FORM_addr143      - Code: 2144        Tag: DW_TAG_subprogram145        Children: DW_CHILDREN_yes146        Attributes:147          - Attribute: DW_AT_decl_file148            Form: DW_FORM_data1149          - Attribute: DW_AT_decl_line150            Form: DW_FORM_data1151          - Attribute: DW_AT_inline152            Form: DW_FORM_data1153      - Code: 3154        Tag: DW_TAG_formal_parameter155        Children: DW_CHILDREN_no156        Attributes:157          - Attribute: DW_AT_decl_file158            Form: DW_FORM_data1159          - Attribute: DW_AT_decl_line160            Form: DW_FORM_data1161      - Code: 4162        Tag: DW_TAG_formal_parameter163        Children: DW_CHILDREN_no164        Attributes:165          - Attribute: DW_AT_decl_file166            Form: DW_FORM_data1167          - Attribute: DW_AT_decl_line168            Form: DW_FORM_data1169      - Code: 5170        Tag: DW_TAG_variable171        Children: DW_CHILDREN_no172        Attributes:173          - Attribute: DW_AT_decl_file174            Form: DW_FORM_data1175          - Attribute: DW_AT_decl_line176            Form: DW_FORM_data1177      - Code: 6178        Tag: DW_TAG_subprogram179        Children: DW_CHILDREN_yes180        Attributes:181          - Attribute: DW_AT_decl_file182            Form: DW_FORM_data1183          - Attribute: DW_AT_decl_line184            Form: DW_FORM_data1185          - Attribute: DW_AT_low_pc186            Form: DW_FORM_addr187          - Attribute: DW_AT_high_pc188            Form: DW_FORM_data4189      - Code: 7190        Tag: DW_TAG_inlined_subroutine191        Children: DW_CHILDREN_yes192        Attributes:193          - Attribute: DW_AT_abstract_origin194            Form:      DW_FORM_ref4195          - Attribute: DW_AT_low_pc196            Form: DW_FORM_addr197          - Attribute: DW_AT_high_pc198            Form: DW_FORM_data4199          - Attribute: DW_AT_call_file200            Form: DW_FORM_data1201          - Attribute: DW_AT_call_line202            Form: DW_FORM_data1203          - Attribute: DW_AT_call_column204            Form: DW_FORM_data1205      - Code: 8206        Tag: DW_TAG_formal_parameter207        Children: DW_CHILDREN_no208        Attributes:209          - Attribute: DW_AT_abstract_origin210            Form: DW_FORM_ref4211      - Code: 9212        Tag: DW_TAG_variable213        Children: DW_CHILDREN_no214        Attributes:215          - Attribute: DW_AT_abstract_origin216            Form: DW_FORM_ref4217          - Attribute: DW_AT_location218            Form: DW_FORM_exprloc219      - Code: 10220        Tag: DW_TAG_formal_parameter221        Children: DW_CHILDREN_no222        Attributes:223          - Attribute: DW_AT_abstract_origin224            Form: DW_FORM_ref4225          - Attribute: DW_AT_location226            Form: DW_FORM_exprloc227      - Code: 11228        Tag: DW_TAG_subprogram229        Children: DW_CHILDREN_yes230        Attributes:231          - Attribute: DW_AT_decl_file232            Form: DW_FORM_data1233          - Attribute: DW_AT_decl_line234            Form: DW_FORM_data1235          - Attribute: DW_AT_inline236            Form: DW_FORM_data1237      - Code: 12238        Tag: DW_TAG_formal_parameter239        Children: DW_CHILDREN_no240        Attributes:241          - Attribute: DW_AT_decl_file242            Form: DW_FORM_data1243          - Attribute: DW_AT_decl_line244            Form: DW_FORM_data1245      - Code: 13246        Tag: DW_TAG_lexical_block247        Children: DW_CHILDREN_yes248      - Code: 14249        Tag: DW_TAG_lexical_block250        Children: DW_CHILDREN_yes251        Attributes:252          - Attribute: DW_AT_low_pc253            Form: DW_FORM_addr254          - Attribute: DW_AT_high_pc255            Form: DW_FORM_data4256      - Code: 15257        Tag: DW_TAG_formal_parameter258        Children: DW_CHILDREN_no259        Attributes:260          - Attribute: DW_AT_abstract_origin261            Form: DW_FORM_ref4262      - Code: 16263        Tag: DW_TAG_variable264        Children: DW_CHILDREN_no265        Attributes:266          - Attribute: DW_AT_abstract_origin267            Form: DW_FORM_ref4268      - Code: 17269        Tag: DW_TAG_subprogram270        Children: DW_CHILDREN_no271        Attributes:272          - Attribute: DW_AT_abstract_origin273            Form: DW_FORM_ref4274  debug_info:275    - Version:    4276      AbbrOffset: 0x00277      Entries:278        - AbbrCode: 1 ## DW_TAG_compile_unit279          Values:280            - Value: 0x00 ## DW_AT_producer281        - AbbrCode: 2 ## DW_TAG_subprogram282          Values:283            - Value: 1 ## DW_AT_decl_file284            - Value: 1 ## DW_AT_decl_line285            - Value: 1 ## DW_AT_inline286        - AbbrCode: 3 ## DW_TAG_formal_parameter287          Values:288            - Value: 1 ## DW_AT_decl_file289            - Value: 1 ## DW_AT_decl_line290        - AbbrCode: 4 ## DW_TAG_formal_parameter291          Values:292            - Value: 1 ## DW_AT_decl_file293            - Value: 1 ## DW_AT_decl_line294        - AbbrCode: 5 ## DW_TAG_variable295          Values:296            - Value: 1 ## DW_AT_decl_file297            - Value: 1 ## DW_AT_decl_line298        - AbbrCode: 0 ## NULL299        - AbbrCode: 6 ## DW_TAG_subprogram300          Values:301            - Value: 1 ## DW_AT_decl_file302            - Value: 1 ## DW_AT_decl_line303            - Value: 0x00 ## DW_AT_low_pc304            - Value: 0x0b ## DW_AT_high_pc305        - AbbrCode: 7 ## DW_TAG_inlined_subroutine306          Values:307            - Value: 0x14 ## DW_AT_abstract_origin308            - Value: 0x00 ## DW_AT_low_pc309            - Value: 0x07 ## DW_AT_high_pc310            - Value: 1 ## DW_AT_call_file311            - Value: 1 ## DW_AT_call_line312            - Value: 1 ## DW_AT_call_column313        - AbbrCode: 8 ## DW_TAG_formal_parameter314          Values:315            - Value: 0x18 ## DW_AT_abstract_origin316        - AbbrCode: 9 ## DW_TAG_formal_parameter317          Values:318            - Value: 0x1e ## DW_AT_abstract_origin319            - Value: 0x0 ## DW_AT_location320        - AbbrCode: 0 ## NULL321        - AbbrCode: 7 ## DW_TAG_inlined_subroutine322          Values:323            - Value: 0x14 ## DW_AT_abstract_origin324            - Value: 0x02 ## DW_AT_low_pc325            - Value: 0x08 ## DW_AT_high_pc326            - Value: 1 ## DW_AT_call_file327            - Value: 2 ## DW_AT_call_line328            - Value: 2 ## DW_AT_call_column329        - AbbrCode: 10 ## DW_TAG_formal_parameter330          Values:331            - Value: 0x18 ## DW_AT_abstract_origin332            - Value: 0x0 ## DW_AT_location333        - AbbrCode: 9 ## DW_TAG_variable334          Values:335            - Value: 0x1e ## DW_AT_abstract_origin336            - Value: 0x0 ## DW_AT_location337        - AbbrCode: 0 ## NULL338        - AbbrCode: 7 ## DW_TAG_inlined_subroutine339          Values:340            - Value: 0x14 ## DW_AT_abstract_origin341            - Value: 0x02 ## DW_AT_low_pc342            - Value: 0x08 ## DW_AT_high_pc343            - Value: 1 ## DW_AT_call_file344            - Value: 3 ## DW_AT_call_line345            - Value: 3 ## DW_AT_call_column346        - AbbrCode: 0 ## NULL347        - AbbrCode: 7 ## DW_TAG_inlined_subroutine348          Values:349            - Value: 0xe5 ## DW_AT_abstract_origin350            - Value: 0x06 ## DW_AT_low_pc351            - Value: 0x0a ## DW_AT_high_pc352            - Value: 1 ## DW_AT_call_file353            - Value: 3 ## DW_AT_call_line354            - Value: 3 ## DW_AT_call_column355        - AbbrCode: 0 ## NULL356        - AbbrCode: 7 ## DW_TAG_inlined_subroutine357          Values:358            - Value: 0xe5 ## DW_AT_abstract_origin359            - Value: 0x06 ## DW_AT_low_pc360            - Value: 0x0a ## DW_AT_high_pc361            - Value: 1 ## DW_AT_call_file362            - Value: 3 ## DW_AT_call_line363            - Value: 3 ## DW_AT_call_column364        - AbbrCode: 10 ## DW_TAG_formal_parameter365          Values:366            - Value: 0xe9 ## DW_AT_abstract_origin367            - Value: 0x0 ## DW_AT_location368        - AbbrCode: 0 ## NULL369        - AbbrCode: 7 ## DW_TAG_inlined_subroutine370          Values:371            - Value: 0xf0 ## DW_AT_abstract_origin372            - Value: 0x10 ## DW_AT_low_pc373            - Value: 0x0a ## DW_AT_high_pc374            - Value: 1 ## DW_AT_call_file375            - Value: 3 ## DW_AT_call_line376            - Value: 3 ## DW_AT_call_column377        - AbbrCode: 15 ## DW_TAG_formal_parameter378          Values:379            - Value: 0xf4  ## DW_AT_abstract_origin380        - AbbrCode: 14 ## DW_TAG_lexical_block381          Values:382            - Value: 0xbc ## DW_AT_low_pc383            - Value: 0x0 ## DW_AT_high_pc384        - AbbrCode: 16 ## DW_TAG_variable385          Values:386            - Value: 0xf8 ## DW_AT_abstract_origin387        - AbbrCode: 0 ## NULL388        - AbbrCode: 0 ## NULL389        - AbbrCode: 0 ## NULL390        - AbbrCode: 2 ## DW_TAG_subprogram391          Values:392            - Value: 1 ## DW_AT_decl_file393            - Value: 3 ## DW_AT_decl_line394            - Value: 1 ## DW_AT_inline395        - AbbrCode: 3 ## DW_TAG_formal_parameter396          Values:397            - Value: 1 ## DW_AT_decl_file398            - Value: 1 ## DW_AT_decl_line399        - AbbrCode: 5 ## DW_TAG_variable400          Values:401            - Value: 1 ## DW_AT_decl_file402            - Value: 1 ## DW_AT_decl_line403        - AbbrCode: 0 ## NULL404        - AbbrCode: 11 ## DW_TAG_subprogram405          Values:406            - Value: 1 ## DW_AT_decl_file407            - Value: 3 ## DW_AT_decl_line408            - Value: 1 ## DW_AT_inline409        - AbbrCode: 3 ## DW_TAG_formal_parameter410          Values:411            - Value: 1 ## DW_AT_decl_file412            - Value: 1 ## DW_AT_decl_line413        - AbbrCode: 13 ## DW_TAG_lexical_block414        - AbbrCode: 5 ## DW_TAG_variable415          Values:416            - Value: 1 ## DW_AT_decl_file417            - Value: 1 ## DW_AT_decl_line418        - AbbrCode: 0 ## NULL419        - AbbrCode: 0 ## NULL420        - AbbrCode: 17 ## DW_TAG_subprogram421          Values:422            - Value: 0xf0 ## DW_AT_abstract_origin423        - AbbrCode: 0 ## NULL424