>> [about labels w/o statements after them]
>>
>>>> Is this really a kernel bug? This is common idiom in C, so gcc
>>>> shouldn't warn about it. If it does, it is a bug in gcc IMHO.
>>>
>>> No, it is not a common idiom in C. It has _never_ been valid C.
>>>
>>> GCC originally allowed it due to a mistake in the grammar; we
>>> now warn for it. Fix your source.
>>
>> Since neither -ansi nor -std=foo was specified, gcc should just
>> shut up and be happy. Consider this as another GNU extension.
>
> No, it was a gcc bug that gcc accepted the syntax in the first place.
Sure. I'd always thought it was intentional though.
> Let the gcc people fix the bugs they find without complaining about them.
> After all, gcc would have been perfectly correct in signalling this as a
> syntax error, and aborted compilation. The fact that gcc only warns about
> it is a sign of grace - it's not as if it is a _useful_ extension that
> gives the programmer anything new and should be left in for that reason.
It is slightly useful: appearance, ease-of-use, etc.
Code is partly for humans to read, and is often written by
humans too. The standard syntax has worthless ugly junk.
The extension doesn't break any valid K&R, C90, or C99 code.
Obviously, considering the kernel source, people _like_ this:
void foo(void){
if(bar()) goto out;
baz();
out:
}
If it broke valid C99 code, then sure, it would have to go.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/