[LLVMdev] DW_TAG_base_type missing DW_AT_name for subrange types

Yuri Pankov yuri.pankov at gmail.com
Sat Feb 11 08:35:11 PST 2012


Hi,

ctfconvert is particularly unhappy about that (e.g., ERROR: ctfconvert: 
die 141: base type without name). Is it intended behavior?

Simple testcase:

int
main(void)
{
         int     i[2];

         return 0;
}

dwarfdump output:

clang version 3.0 (tags/RELEASE_30/final):
[...]
LOCAL_SYMBOLS:
[...]
<3><  120>      DW_TAG_variable
                 DW_AT_name                  i
                 DW_AT_decl_file             1 /home/yuri/test.c
                 DW_AT_decl_line             4
                 DW_AT_type                  <144>
                 DW_AT_location              DW_OP_fbreg 0
<1><  134>      DW_TAG_base_type
                 DW_AT_name                  int
                 DW_AT_encoding              DW_ATE_signed
                 DW_AT_byte_size             4
<1><  141>      DW_TAG_base_type
                 DW_AT_byte_size             4
                 DW_AT_encoding              DW_ATE_signed
<1><  144>      DW_TAG_array_type
                 DW_AT_type                  <134>
<2><  149>      DW_TAG_subrange_type
                 DW_AT_type                  <141>
                 DW_AT_upper_bound           <141>1
[...]

gcc 3/4:
[...]
LOCAL_SYMBOLS:
[...]
<2><   66>      DW_TAG_variable
                 DW_AT_name                  i
                 DW_AT_decl_file             1 /home/yuri/test.c
                 DW_AT_decl_line             4
                 DW_AT_type                  <86>
                 DW_AT_location              DW_OP_fbreg -16
<1><   79>      DW_TAG_base_type
                 DW_AT_byte_size             4
                 DW_AT_encoding              DW_ATE_signed
                 DW_AT_name                  int
<1><   86>      DW_TAG_array_type
                 DW_AT_type                  <79>
                 DW_AT_sibling               <102>
<2><   95>      DW_TAG_subrange_type
                 DW_AT_type                  <102>
                 DW_AT_upper_bound           <102>1
<1><  102>      DW_TAG_base_type
                 DW_AT_byte_size             4
                 DW_AT_encoding              DW_ATE_unsigned
                 DW_AT_name                  unsigned int
[...]



More information about the llvm-dev mailing list