C89 question: Do we need to accept -Wint-conversion warnings
Florian Weimer
fweimer@redhat.com
Wed Oct 11 08:10:21 GMT 2023
* 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.
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 suspect (again with numbers taken from thin air) that the proportion
> of C programmers or projects that actively choose C11 or C17 modes, as
> distinct from using the compiler defaults, will be less than 1%. C99
> (or gnu99) is the most commonly chosen standard for small-systems
> embedded programming, combining C90 libraries, stacks, and RTOS's with
> user code in C99. So again, my preference is towards stricter
> control, not more permissive tools.
I don't think the estimate is accurate. Several upstream build systems
I've seen enable -std=gnu11 and similar options once they are supported.
Usually, it's an attempt to upgrade to newer language standards that
hasn't aged well, not a downgrade. It's probably quite bit more than
1%.
Thanks,
Florian
More information about the Gcc
mailing list