This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c++/7939: [3.3/3.4 regression] [2003-05-03] ICE on function template specialization


http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7939

This is a regression from 2.95. Currently, we get the following on mainline
and 3.3:

pr7939.cpp:2: error: `<anonymous>' has incomplete type
pr7939.cpp:2: error: invalid use of `void'
pr7939.cpp:2: error: partial specialization `foo<T, void>' of function
template
pr7939.cpp:2: internal compiler error: in comptypes, at cp/typeck.c:913
Please submit a full bug report,

while we used to get this on 2.95:

pr7939.cpp:2: template-id `foo<T, void>' in declaration of primary template

So, there is actually an improvement on the error message (the parser is
able to understand that the code is trying to define a partial
specialization of a function template, which is indeed a great diagnostic),
but then it ICEs during error recovery. I think the error message could also
be a little epurated (removing those other lines if possible, especially the
one with <anonymous> which is really cryptic), and maybe specifying
explicitally that "partial specialization of function template is not
allowed by ISO C++".

Giovanni Bajo


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]