http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16663

--- Comment #8 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2011-09-11 
20:28:50 UTC ---
(In reply to comment #7)
> 
> If 'void' is not allowed and 'misspelled' is not declared, then wouldn't it be
> better to recognize that case as an undeclared 'misspelled' instead of an
> impossible (or, at least, highly improbable) declaration of a variable of type

It could be possible to parse everything tentatively, and once everything
failed, try to guess why. But this is not a 10 minutes, one-liner fix, that is
what I mean by "not trivial".

> void?  As things stand, GCC outputs a cryptic error message that is based on
> the expectation that a variable being declared with type void is both correct
> and the expected behaviour, and this isn't helpful.

We know it is not helpful, that is why this is marked as NEW and g++ devs would
be happy if someone submitted a patch fixing it. But so far, nobody has been
bothered by this issue enough to submit such patch.

BTW, clang avoids the errors-cascade but also gives the wrong "void" error:

/tmp/webcompile/_26781_1.cc:1:6: error: variable has incomplete type 'void'
void Foo(misspelled a, char b, bool c, float f);
     ^
/tmp/webcompile/_26781_1.cc:1:10: error: use of undeclared identifier
'misspelled'
void Foo(misspelled a, char b, bool c, float f);
         ^

Reply via email to