From: Florian Weimer <fweimer@redhat.com>
To: David Brown <david@westcontrol.com>
Cc: Jason Merrill <jason@redhat.com>, gcc@gcc.gnu.org
Subject: Re: C89 question: Do we need to accept -Wint-conversion warnings
Date: Wed, 11 Oct 2023 12:17:36 +0200 [thread overview]
Message-ID: <87lec9wji7.fsf@oldenburg.str.redhat.com> (raw)
In-Reply-To: <e7dc13e4-4aac-8e0b-47f4-0f4b86595531@westcontrol.com> (David Brown's message of "Wed, 11 Oct 2023 10:51:37 +0200")
* David Brown:
> On 11/10/2023 10:10, Florian Weimer wrote:
>> * David Brown:
>>
>>> So IMHO (and as I am not a code contributor to GCC, my opinion really
>>> is humble) it is better to be stricter than permissive, even in old
>>> standards. It is particularly important for "-std=c89", while
>>> "-std=gnu89" is naturally more permissive. (I have seen more than
>>> enough terrible code in embedded programs - I don't want to make it
>>> easier for them to write even worse code!)
>> We can probably make (say) -std=gnu89 -fno-permissive work, in a way
>> that is a bit less picky than -std=gnu89 -pedantic-errors today.
>>
>
> The gcc manual has "-permissive" under "C++ Dialect Options". Are you
> planning to have it for C as well?
Yes, I've got local patches on top of Jason's permerror enhancement:
[PATCH v2 RFA] diagnostic: add permerror variants with opt
<https://inbox.sourceware.org/gcc-patches/20231003210916.1027930-1-jason@redhat.com/>
> That sounds like a good idea (perhaps with some examples in the
> documentation?). Ideally (and I realise I like stricter checking than
> many people) some long-obsolescent features like non-prototype
> function declarations could be marked as errors unless "-permissive"
> were used, even in C89 standards.
For some of such declarations, this falls out of the implicit-int
removal.
C23 changes meaning of of extern foo(); to match the C++ interpretation
of extern foo(void);. I don't think we should warn about that. If we
warn, it would be at the call site.
> (As a side note, I wonder if "-fwrapv" and "-fno-strict-aliasing"
> should be listed under "C Dialect Options", as they give specific
> semantics to normally undefined behaviour.)
They are code generation options, too.
>> And of course there's still -Werror, that's not going to go away. So if
>> you are using -Werror=implicit-function-declaration today (as you
>> probably should 8-), nothing changes for you in GCC 14.
>
> I have long lists of explicit warnings and flags in my makefiles, so I
> am not concerned for my own projects. But I always worry about the
> less vigilant users - the ones who don't know the details of the
> language or the features of the compiler, and don't bother finding
> out. I don't want default settings to be less strict for them, as it
> means higher risks of bugs escaping out to released code.
We have a tension regarding support for legacy software, and ongoing
development. I think we should draw the line at C99. That's the first
language standard that removes most of these obsolescent features, after
all.
Thanks,
Florian
next prev parent reply other threads:[~2023-10-11 10:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-10 11:29 Florian Weimer
2023-10-10 16:30 ` Jason Merrill
2023-10-10 16:38 ` Jakub Jelinek
2023-10-10 17:06 ` Florian Weimer
2023-10-10 17:38 ` Joel Sherrill
2023-10-11 7:36 ` David Brown
2023-10-11 8:10 ` Florian Weimer
2023-10-11 8:51 ` David Brown
2023-10-11 10:17 ` Florian Weimer [this message]
2023-10-11 11:28 ` David Brown
2023-10-11 11:38 ` Florian Weimer
2023-10-10 16:38 ` Joseph Myers
2023-10-10 17:07 ` Florian Weimer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87lec9wji7.fsf@oldenburg.str.redhat.com \
--to=fweimer@redhat.com \
--cc=david@westcontrol.com \
--cc=gcc@gcc.gnu.org \
--cc=jason@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).