Deutsch English Français Italiano |
<20240630121835.00000e48@yahoo.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Michael S <already5chosen@yahoo.com> Newsgroups: comp.lang.c Subject: Re: Baby X is bor nagain Date: Sun, 30 Jun 2024 12:18:35 +0300 Organization: A noiseless patient Spider Lines: 52 Message-ID: <20240630121835.00000e48@yahoo.com> References: <v494f9$von8$1@dont-email.me> <v53lf7$34huc$1@dont-email.me> <v53vh6$368vf$1@dont-email.me> <v54se1$3bqsk$1@dont-email.me> <20240624160941.0000646a@yahoo.com> <v5bu5r$va3a$1@dont-email.me> <20240624181006.00003b94@yahoo.com> <v5c86d$11ac7$1@dont-email.me> <JEheO.108086$ED9b.74955@fx11.iad> <v5cblg$11q0j$1@dont-email.me> <gEieO.108089$ED9b.25598@fx11.iad> <20240625113616.000075e0@yahoo.com> <mUzeO.141609$Cqra.55051@fx10.iad> <v5elql$1jmii$1@dont-email.me> <m3BeO.24907$Gurd.16179@fx34.iad> <v5empd$1jndv$2@dont-email.me> <v5eph4$1k6a9$1@dont-email.me> <87ed8jnbmf.fsf@bsb.me.uk> <v5jhls$2m7np$1@dont-email.me> <v5jm32$2nqvp$1@dont-email.me> <v5k3v2$2qllm$1@dont-email.me> <v5kfst$2svt3$1@dont-email.me> <v5kmlm$2u918$1@dont-email.me> <20240627201830.854@kylheku.com> <v5m2nl$39qob$3@dont-email.me> <20240628032211.403@kylheku.com> <v5p4rv$3u92q$1@dont-email.me> <v5phah$168u$1@dont-email.me> <v5posa$2kq0$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Injection-Date: Sun, 30 Jun 2024 11:18:14 +0200 (CEST) Injection-Info: dont-email.me; posting-host="878897f5e23d7e00958d040114fc15f1"; logging-data="456208"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18NiMwekv03ZuiAlTwIvBHJ87kQxs/dtys=" Cancel-Lock: sha1:NajqFFFJhr0aIQnk10HD6e4zMRI= X-Newsreader: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-w64-mingw32) Bytes: 3760 On Sat, 29 Jun 2024 20:55:54 +0100 bart <bc@freeuk.com> wrote: > On 29/06/2024 18:46, Richard Harnden wrote: > > On 29/06/2024 15:14, bart wrote: > > [...] > >> My older bcc compiler reported 4 as a hard error unless an > >> override was used. > > > > But you didn't say anything about main's args. > > I did, indirectly. The actual error was the use of "()" as an empty > parameter list (for any function, not just main, but my example could > also have been 'void H(){H(123);}'). If you tried to compile: > > int main() { > main(123); > } > > then it wouldn't get past the () to the call. > > Eventually I dropped that restriction, and the reason was that so > much code used such parameter lists, for any function. > > Not because they wanted unchecked args (there are some legitimate > use-cases within function pointer types), but because so many people > assumed () meant zero parameters like (void). > > Why was such code so common? Presumably because compilers said > nothing; and they couldn't because the language allowed it. If they > had required an override like mine did, more would have got the > message. > I tried following code: int foo() { return 1; } Both MSVC and clang warn about it at high warnings level (-Wall for MSVC, -Wpedantic for clang). But they don't warn at levels that most people use in practice (-W3 or -W4 for MSVC, -Wall for clang). gcc13 produces no warning even at -Wpedantic. It does produce warning with '-Wpedantic -std=xxx' for all values of xxx except c23 and gnu23. The absence of warning for c23/gnu23 makes sense, the rest of gcc behavior - less so. > Now it's too late because apparently the meaning of () is changing to > mean (void). All those people who got it wrong (and introduced a > dangerous bug) have won! >