https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80026

Eric Gallager <egallager at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-09-29
                 CC|                            |egallager at gcc dot gnu.org
      Known to work|                            |4.4.7
     Ever confirmed|0                           |1
      Known to fail|                            |4.0.1, 4.2.1, 4.6.4, 7.0,
                   |                            |8.0

--- Comment #1 from Eric Gallager <egallager at gcc dot gnu.org> ---
Confirmed that the message is as you say with current gcc:

$ /usr/local/bin/g++ -c -Wall -Wextra -pedantic 80026.cc
80026.cc: In function ‘int main()’:
80026.cc:8:6: error: too many arguments to function ‘void f(S ...) [with S =
{}]’
  f(&g);
      ^
80026.cc:5:6: note: declared here
 void f(S...){}
      ^
$

With a really old gcc such as 4.2.1 the message is also bad:

$ /usr/bin/g++-4.2 -c -Wall -Wextra -pedantic 80026.cc
80026.cc:4: error: expected identifier before ‘...’ token
80026.cc:4: error: expected ‘>’ before ‘...’ token
80026.cc:5: error: variable or field ‘f’ declared void
80026.cc:5: error: ‘S’ was not declared in this scope
80026.cc: In function ‘int main()’:
80026.cc:8: error: ‘f’ was not declared in this scope
$

...so I'm not sure when exactly the message started being the "good" one seen
with 4.4.7.

Reply via email to