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.

Reply via email to