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.