Hi all,

Could someone help to point out what kind of DWARF info should be generated for 
below c++ source? Thanks

```
template<class T>
using ptr = T*;

ptr<int>  abc;
```

We declare a template alias here, so we may generate  
`DW_TAG_template_type_parameter` like:

```
0x00000057:   DW_TAG_base_type
                DW_AT_name  ("int")
                DW_AT_byte_size          (0x04)
                DW_AT_encoding           (DW_ATE_signed)

0x0000005e:   DW_TAG_pointer_type
                DW_AT_type    (0x00000057 "int")

0x00000064:   DW_TAG_template_alias
                DW_AT_name  ("ptr")
                DW_AT_type    (0x0000005e "int *")

0x00000076:     DW_TAG_template_type_parameter
                  DW_AT_name               ("T")
                  DW_AT_type  (0x00000057 "int")

0x0000007e:   DW_TAG_variable
                DW_AT_name  ("abc")
                DW_AT_type    (0x00000064 "ptr<int>")
```

` DW_TAG_template_type_parameter ` should be for a notation to create a 
template base on another template, but as you can see the referred type 
0x0000005e is not a template. What kind of DWARF info should we generate here? 
We should use ` DW_TAG_typedef` instead of ` DW_TAG_template_type_parameter` 
for this special case?

--
Thanks.

BRS//
Chen Zheng
IBM PowerPC Compiler Backend Developer

_______________________________________________
Dwarf-Discuss mailing list
Dwarf-Discuss@lists.dwarfstd.org
http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org

Reply via email to