More C type errors by default for GCC 14

Thomas Koenig tkoenig@netcologne.de
Sat May 13 05:30:05 GMT 2023


On 13.05.23 02:45, Po Lu via Gcc wrote:
> Gabriel Ravier <gabravier@gmail.com> writes:
> 
>> ...You're joking, right ? You can't possibly be seriously arguing
>> this, you have to be kidding... right ?
> 
> No, I'm not.  The meaning of a variable declaration with only a storage
> class specifier is extremely clear: the type of the variable is `int'.

C99, 6.7.2, "Type specifiers"

# Constraints

# At least one type specifier shall be given in the declaration
# specifiers in each declaration, and in the specifier-qualifier
# list in each struct declaration and type name.

> There's absolutely nothing ambiguous about it whatsoever:

In C99 and onwards, this is an error (a violation of a "shall"
directive).

>    register i;
>    extern   limit, *k, do_some_computation ();
> 
>    for (i = 0; i < limit; ++i)
>      k[i] = do_some_computation (i);
> 
> Please try to prove me wrong.

Happy to oblige.


More information about the Gcc mailing list