https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104319
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement Summary|"parse error of template |better error message for |argument list" due to |parsing error when >= ends |missing space in ">==", a |a template variable. |better error message should | |be given | Ever confirmed|0 |1 Last reconfirmed| |2022-02-01 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed here is a simplified reduced testcase: template<typename T> int Zero; void f(void) { Zero<int>=0; } --- CUT ---- GCC currently produces: <source>: In function 'void f()': <source>:4:3: error: parse error in template argument list 4 | Zero<int>=0; | ^~~~~~~~~~~ Clang gives: <source>:4:11: error: a space is required between a right angle bracket and an equals sign (use '> =') Zero<int>=0; ^~ > = While MSVC gives: <source>(4): error C2947: expecting '>' to terminate template-argument-list, found '>=' ICC gives: <source>(4): error: expected a ">" Zero<int>=0; ^ All three are better than GCC's really.