Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c,comp.lang.c++ Subject: Re: Compile time checking of standards conformance Date: Thu, 23 May 2024 15:32:06 -0700 Organization: None to speak of Lines: 25 Message-ID: <87a5kg40t5.fsf@nosuchdomain.example.com> References: MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Fri, 24 May 2024 00:32:09 +0200 (CEST) Injection-Info: dont-email.me; posting-host="9bf1a2728fa7020763691602348055f5"; logging-data="2067311"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+8zIO4+3im3/jWfuKwMNuu" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) Cancel-Lock: sha1:JH+XW342vZsFZVuIOpecFd3Gjdc= sha1:KgAbba1MJKTWwy9HL8YF7eloW0Y= Bytes: 2056 Paavo Helde writes: > On 23.05.2024 02:44, olcott wrote: >> Does enables conformance mean: Flags non conformance? > > No. Enabling conformance means enabling support for the conforming features. > > Flagging non-conformance is not possible in general as there are more > creative fools out there than there are compiler writers. > > There are zillions of ways to write non-conforming code, for example > an endless loop is not conforming in C++. The compiler is not obliged > to diagnose it, but it is allowed for the compiler to silently > optimize the non-conforming code away, assuming it is never called. At > least that's what g++ folks think. A conforming C compiler must produce a diagnostic for any violation of any syntax rule or constraint. Many C constructs (for example signed integer overflow) have *undefined behavior*, which need not be diagnosed. C++ has similar rules. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com void Void(void) { Void(); } /* The recursive call of the void */