http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47510
Dodji Seketeli <dodji at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #6 from Dodji Seketeli <dodji at gcc dot gnu.org> 2011-03-16 10:14:42 UTC --- > See also PR47939. Yes, debug info consumers expect typedefs to be available > if they are used in source. I'll try again a little bit :-) I think for templates the situation is a little bit different from non-templates cases like PR47939. Generally speaking we emit close to no debug info for template *definitions*. We emit debug info for template instantiations. As the instantiation doesn't contain the typedef (because [dcl.typedef/8] says that the typedef actually names the anonymous struct, so it is valid that the lookup of C yields a struct named C) I find it acceptable to emit the debug info that is emitted now. Now a possible way to go would be to change the output of the instantiation; i.e make G++ generate the typedef and the anonymous type. Just like what is done in the non-template case. If this is agreed upon by the C++ maintainers then I guess it could be a separate patch that would go in after the one I am proposing at http://gcc.gnu.org/ml/gcc-patches/2011-03/msg00781.html