Re: Baby X is bor nagain

Liste des GroupesRevenir à cl c  
Sujet : Re: Baby X is bor nagain
De : david.brown (at) *nospam* hesbynett.no (David Brown)
Groupes : comp.lang.c
Date : 30. Jun 2024, 16:54:14
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v5rv37$j79k$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
On 30/06/2024 11:18, Michael S wrote:
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 dont 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.
 
gcc -Wpedantic makes very little sense without specifying a C standard (rather than a gnu C standard).
But why would you expect a warning from code that is perfectly legal and well-defined C code, without explicitly enabling warnings that check for particular style issues?  Non-prototype function declarations are deprecated (since C99), but not removed from the language until C23 (where that declaration is now a function prototype).

Date Sujet#  Auteur
28 Jun 24 * Re: Baby X is bor nagain20Kaz Kylheku
29 Jun 24 `* Re: Baby X is bor nagain19bart
29 Jun 24  +* Re: Baby X is bor nagain10Tim Rentsch
29 Jun 24  i`* Re: Baby X is bor nagain9bart
29 Jun 24  i +* Re: Baby X is bor nagain5David Brown
29 Jun 24  i i`* Re: Baby X is bor nagain4Michael S
29 Jun 24  i i +- Re: Baby X is bor nagain1Keith Thompson
30 Jun 24  i i +- Re: Baby X is bor nagain1Tim Rentsch
30 Jun 24  i i `- Re: Baby X is bor nagain1David Brown
30 Jun 24  i +* Re: Baby X is bor nagain2Kaz Kylheku
3 Jul 24  i i`- Re: Baby X is bor nagain1James Kuyper
30 Jun 24  i `- Re: Baby X is bor nagain1Tim Rentsch
29 Jun 24  +* Re: Baby X is bor nagain7Richard Harnden
29 Jun 24  i`* Re: Baby X is bor nagain6bart
30 Jun 24  i `* Re: Baby X is bor nagain5Michael S
30 Jun 24  i  `* Re: Baby X is bor nagain4David Brown
30 Jun 24  i   `* Re: Baby X is bor nagain3Michael S
30 Jun 24  i    +- Re: Baby X is bor nagain1David Brown
9 Jul 24  i    `- Re: Baby X is bor nagain1Tim Rentsch
30 Jun 24  `- Re: Baby X is bor nagain1Keith Thompson

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal