[Bug c++/102774] Stop showing "error: variable or field ‘f’ declared void" after an earlier error in a declarator
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu May 19 07:29:48 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102774
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
For the first case:
template<typename.. T> void f(T...) { }
GCC prints:
f.C:1:18: error: expected nested-name-specifier before ‘.’ token
1 | template<typename.. T> void f(T...) { }
| ^
f.C:1:18: error: expected ‘>’ before ‘.’ token
f.C:1:29: error: variable or field ‘f’ declared void
1 | template<typename.. T> void f(T...) { }
| ^
f.C:1:31: error: ‘T’ was not declared in this scope
1 | template<typename.. T> void f(T...) { }
|
Clang says:
f.C:1:18: error: expected a qualified name after 'typename'
template<typename.. T> void f(T...) { }
^
f.C:1:18: error: expected ',' or '>' in template-parameter-list
f.C:1:31: error: unknown type name 'T'
template<typename.. T> void f(T...) { }
^
3 errors generated.
This has no "declared void" noise.
More information about the Gcc-bugs
mailing list