http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54948
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #2 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2013-04-20 12:03:29 UTC --- There are several "bugs" in this case. The first one is that we consider that the type of: template<typename> struct A is "struct A< <template-parameter-1-1> >". It would be nicer to print something like "struct A<typename>" or "struct A<>". Clang never needs to print made up names. The second bug is that I think we record T when parsing, but later we drop it. I wasn't able to find when we drop it. There is a lot going on between the moment we parse T and the moment we parse {, so it is rather difficult to figure out. Stepping in the parser is rather frustrating. I am afraid that the only person that may know what is going or where to look is Jason. There is lookup_template_class, but by the time we call it, we already dropped T (or so it seems to me, maybe it is recorded somewhere else).