Deutsch   English   Français   Italiano  
<865xj79khz.fsf@linuxsc.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Tim Rentsch <tr.17687@z991.linuxsc.com>
Newsgroups: comp.lang.c
Subject: Re: "A diagram of C23 basic types"
Date: Mon, 14 Apr 2025 02:10:16 -0700
Organization: A noiseless patient Spider
Lines: 32
Message-ID: <865xj79khz.fsf@linuxsc.com>
References: <87y0wjaysg.fsf@gmail.com> <vsj1m8$1f8h2$1@dont-email.me> <vsj2l9$1j0as$1@dont-email.me> <vsjef3$1u4nk$1@dont-email.me> <vsjg6t$20pdb$1@dont-email.me> <vsjgjn$1v1n4$1@dont-email.me> <vsjk4k$24q5m$1@dont-email.me> <vsjlcp$230a5$1@dont-email.me> <vsjmdl$277bk$1@dont-email.me> <VsdHP.1828827$TBhc.1078002@fx16.iad> <vskjlo$34st8$1@dont-email.me> <20250402220614.431@kylheku.com> <85mscxlqnb.fsf@nosuchdomain.example.com> <vsl9sn$3vdjj$2@dont-email.me> <20250403121946.134@kylheku.com> <vsms75$1i8ud$1@dont-email.me> <vsnhq6$291i3$4@dont-email.me> <20250409124900.00000fa1@yahoo.com> <861pu1ccsg.fsf@linuxsc.com> <87a58pq9ig.fsf@nosuchdomain.example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Mon, 14 Apr 2025 11:10:16 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="94f07fe53fa8e4a0f6a79bf0296fa912";
	logging-data="877446"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18ezxWRtLp3ih2tzDXqd27y2SXAaFyEy64="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:Gbjt5lDHzeAT2oFXwkJfRw+wOOE=
	sha1:m2zYzYzwa84z2J6dZgVDYxuC+wo=
Bytes: 3022

Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:

> Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
> [...]
>
>> Trailing commas in argument lists and/or parameter lists
>> could be accepted as an extension, even without giving a
>> diagnostic as I read the C standard, but implementations
>> are certainly within their rights to reject them.
>
> I believe a diagnotic is required.
>
> C17 5.1.1.3:
>
>     A conforming implementation shall produce at least one
>     diagnostic message (identified in an implementation-defined
>     manner) if a preprocessing translation unit or translation
>     unit contains a violation of any syntax rule or constraint,
>     even if the behavior is also explicitly specified as undefined
>     or implementation-defined.
>
> A trailing comma on an argument or parameter list is a violation
> of a syntax rule.

I believe a diagnostic is not required, because the C standard
explicitly allows extensions.  If such diagnostics were required
even for constructions that are part of extensions, then there is no
reason to allow extensions, because whatever behavior is desired
could be done anyway, under the freedom granted by undefined
behavior.  It would be stupid to explicitly grant permission to do
something if it could be done anyway without the permission.  And
the people who wrote the C standard are not stupid.