Path: csiph.com!eternal-september.org!feeder.eternal-september.org!nntp.eternal-september.org!.POSTED!not-for-mail From: Tim Rentsch Newsgroups: comp.lang.c Subject: Re: switch/extension for see below strongly needed Date: Fri, 05 Jun 2026 08:45:17 -0700 Organization: A noiseless patient Spider Lines: 34 Message-ID: <864ijhat4i.fsf@linuxsc.com> References: <10uapjs$19723$1@dont-email.me> <10v17h4$18mp3$1@dont-email.me> <10v49ic$3fq$1@reader1.panix.com> <86se72bd74.fsf@linuxsc.com> <10vsc1i$iht$1@reader1.panix.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Fri, 05 Jun 2026 15:45:18 +0000 (UTC) Injection-Info: dont-email.me; logging-data="1322738"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1829JC7cB97yO0w3k4j25B1CWHXlTxjdhM="; posting-host="ab312f3c60546a52db3a021dc13141bd" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:39Oc8Cy/MKIwIdGSgvxkce5/AjA= sha1:+KC8aUx6+TNdRylbqAVyMDKg7S0= sha256:uWDZSPKDIr3fnszQzVAqFtYFYQ/qz2aUpQHKsaIc4tE= sha1:hoZ7dZuwOFxbxpBfsvuloANLyVY= Xref: csiph.com comp.lang.c:399751 cross@spitfire.i.gajendra.net (Dan Cross) writes: > In article <86se72bd74.fsf@linuxsc.com>, > Tim Rentsch wrote: > >> cross@spitfire.i.gajendra.net (Dan Cross) writes: >> >>> [...] An observation pointed out to me at my last gig, and that >>> I now point out occasionally myself, is that Linux (for example) >>> is not so much written in C but rather in Linux C, which is the >>> dialect of the language defined by the compilers they use and >>> the specific behaviors they force using flags, pragmas, etc, for >>> those compilers. >> >> Any program accepted by a conforming implementation is a C program. >> That remains true even if the program relies on compiler options >> such as -fwrap or -fno-strict-aliasing, or takes advantage of >> specific behaviors chosen by the compiler in situations that the C >> standard deems undefined behavior, or uses non-standard #pragmas >> that the implementation has chosen to define. As long as the >> implementation stays inside the bounds of being conforming, any >> program it accepts is written in C. Writing in a subset of the full >> language doesn't change that: a C program that has no 'goto' >> statements in it is still a C program. The same reasoning applies >> to programs that make use of -fwrapv, etc. > > This is quibbling, but for the record, Linux is written in an > _extended_ subset of ISO C, and makes use of a number of > non-conforming extensions (e.g., GCC-style function attributes > and so on). The C standard allows extensions. As long as the extensions don't change the meaning of any strictly conforming program, the extended language still counts as C.