[Bug debug/41736] missing DW_TAG_template_*_ in some cases
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736 --- Comment #10 from Tom Tromey tromey at gcc dot gnu.org --- Today I noticed another case. If you have a template like: templatetypename R, const char *NAME, typename A [...] ... then NAME is not given a value in the instantiation: 265c5: Abbrev Number: 51 (DW_TAG_template_type_param) 65c6 DW_AT_name: R 65c8 DW_AT_type: 0x3042 265cc: Abbrev Number: 122 (DW_TAG_template_value_param) 65cd DW_AT_name: (indirect string, offset: 0x6768): NAME 65d1 DW_AT_type: 0x66ac 265d5: Abbrev Number: 51 (DW_TAG_template_type_param) 65d6 DW_AT_name: A1 65d9 DW_AT_type: 0x30aa
[Bug debug/41736] missing DW_TAG_template_*_ in some cases
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736 --- Comment #9 from Tom Tromey tromey at gcc dot gnu.org 2011-06-10 16:09:38 UTC --- See PR 49366 as well.
[Bug debug/41736] missing DW_TAG_template_*_ in some cases
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736 --- Comment #7 from Dodji Seketeli dodji at gcc dot gnu.org 2011-06-09 21:50:01 UTC --- Another instance of bug that resembles this one is PR debug/49348
[Bug debug/41736] missing DW_TAG_template_*_ in some cases
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736 --- Comment #8 from Dodji Seketeli dodji at gcc dot gnu.org 2011-06-09 21:53:22 UTC --- Note that I am going to re-submit the fix to this bug now that I am about to remove template arguments from DW_AT_name for template specializations (PR debug/49312)
[Bug debug/41736] missing DW_TAG_template_*_ in some cases
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736 --- Comment #5 from Dodji Seketeli dodji at gcc dot gnu.org 2010-12-15 10:21:41 UTC --- (In reply to comment #3) The ordinary cases work fine with svn trunk gcc. However, member pointers still don't have all the info emitted. Consider this test case: struct S { int f; }; templateint S::*MP struct T { }; TS::f v; For v's type, I just see: 24f: Abbrev Number: 6 (DW_TAG_template_value_param) 50 DW_AT_name: MP 53 DW_AT_type: 0x58 That is, this parameter has no value. I have opened PR debug/46955 to track this as I believe the bug you describe is slightly different from this one, even if they fall in the same category.
[Bug debug/41736] missing DW_TAG_template_*_ in some cases
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736 --- Comment #6 from Dodji Seketeli dodji at gcc dot gnu.org 2010-12-15 21:28:08 UTC --- (In reply to comment #4) I don't see the right results for Baselong, It is missing all the template parameters: I think this problem is slightly different from what is happening in the original bug as well. I have opened PR debug/46973 to analyse and track this issue there.
[Bug debug/41736] missing DW_TAG_template_*_ in some cases
--- Comment #4 from tromey at gcc dot gnu dot org 2010-08-31 18:33 --- Created an attachment (id=21610) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21610action=view) a simple test case I'm attaching temargs.cc, a simple test case from the gdb test suite. I compiled this with today's svn trunk gcc. When I dump the resulting DWARF I see good results for Basedouble, ...: 147: Abbrev Number: 5 (DW_TAG_structure_type) 48 DW_AT_name: (indirect string, offset: 0x43): Basedouble, 23, ( a_global), S::f 4c DW_AT_byte_size : 1 4d DW_AT_decl_file : 1 4e DW_AT_decl_line : 29 4f DW_AT_sibling : 0xb4 253: Abbrev Number: 6 (DW_TAG_template_type_param) 54 DW_AT_name: T 56 DW_AT_type: 0xb4 [...] But I don't see the right results for Baselong, It is missing all the template parameters: 1d0: Abbrev Number: 5 (DW_TAG_structure_type) d1 DW_AT_name: (indirect string, offset: 0x191): Baselong int, 47, ( a_global), S::f d5 DW_AT_byte_size : 1 d6 DW_AT_decl_file : 1 d7 DW_AT_decl_line : 29 d8 DW_AT_sibling : 0x105 2dc: Abbrev Number: 16 (DW_TAG_structure_type) dd DW_AT_name: (indirect string, offset: 0x157): Innerfloat e1 DW_AT_byte_size : 1 e2 DW_AT_decl_file : 1 e3 DW_AT_decl_line : 32 3e4: Abbrev Number: 6 (DW_TAG_template_type_param) e5 DW_AT_name: Z e7 DW_AT_type: 0x10c 3eb: Abbrev Number: 12 (DW_TAG_subprogram) ec DW_AT_external: 1 ed DW_AT_name: (indirect string, offset: 0xa8): inner_m f1 DW_AT_decl_file : 1 f2 DW_AT_decl_line : 34 f3 DW_AT_MIPS_linkage_name: (indirect string, offset: 0xb0): _ZN4BaseIlLi47EXadL_Z8a_globalEEXadL_ZN1S1f5InnerIfE7inner_mEv f7 DW_AT_declaration : 1 f8 DW_AT_object_pointer: 0xfc 4fc: Abbrev Number: 11 (DW_TAG_formal_parameter) fd DW_AT_type: 0x113 101 DW_AT_artificial : 1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736
[Bug debug/41736] missing DW_TAG_template_*_ in some cases
--- Comment #3 from tromey at gcc dot gnu dot org 2010-07-21 15:19 --- The ordinary cases work fine with svn trunk gcc. However, member pointers still don't have all the info emitted. Consider this test case: struct S { int f; }; templateint S::*MP struct T { }; TS::f v; For v's type, I just see: 24f: Abbrev Number: 6 (DW_TAG_template_value_param) 50 DW_AT_name: MP 53 DW_AT_type: 0x58 That is, this parameter has no value. -- tromey at gcc dot gnu dot org changed: What|Removed |Added CC||tromey at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736
[Bug debug/41736] missing DW_TAG_template_*_ in some cases
--- Comment #2 from dodji at gcc dot gnu dot org 2009-10-21 13:10 --- Created an attachment (id=18857) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18857action=view) Enhanced patch -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736
[Bug debug/41736] missing DW_TAG_template_*_ in some cases
-- dodji at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dodji at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-10-17 08:00:00 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736
[Bug debug/41736] missing DW_TAG_template_*_ in some cases
--- Comment #1 from dodji at gcc dot gnu dot org 2009-10-17 11:41 --- Patch sent to http://gcc.gnu.org/ml/gcc-patches/2009-10/msg01126.html . -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41736