On Tuesday, 25 November 2025 19:58:19 CET Greg Kurz wrote:
> On Tue, 25 Nov 2025 19:21:00 +0500
>
> Andrey Erokhin <[email protected]> wrote:
> > >> + native_symlink:;
> > >
> > > Still has the terminating but unneeded semicolon
> >
> > I think I've addressed this in the v1 thread, with links to the C11 draft
> > grammar. Can repeat in plain English: a label shall be followed by a
> > statement. (No, declaration is not a statement)
> My bad, I didn't see your answer.
>
> It is funny that I had to pass -pedantic to gcc to get a complaint (in plain
> English as well) if I drop the semicolon :
>
> warning: a label can only be part of a statement and a declaration is not a
> statement [-Wpedantic]
>
> Cheers,
Yes, I noticed that as well. GCC compiles fine without the semicolon, clang
OTOH errors:
../hw/9pfs/9p-local.c:481:9: error: expected expression
char *dirpath = g_path_get_dirname(fs_path->data);
^
Anyway, Andrey is right of course. The C standard defines a "labeled-
statement" as
identifier : statement
...
and the subsequent line in the patch is a declaration, not a statement.
But I also understand if GCC developers relaxed this rule. Because it "feels"
like both, a declaration and a statement. Interesting, because usually it's
clang to be more relaxed than GCC.
/Christian