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.