On 5/9/23, Jonathan Wakely via Gcc <gcc@gcc.gnu.org> wrote: > On Tue, 9 May 2023 at 23:38, Joel Sherrill wrote: >> We are currently using gcc 12 and specifying C11. To experiment with >> these stricter warnings and slowly address them, would we need to build >> with a newer C version? > > No, the proposed changes are to give errors (instead of warnings) for > rules introduced in C99. GCC is just two decades late in enforcing the > C99 rules properly! > > >> What practices might the GCC community recommend to a project >> wanting to discover the issues uncovered and slowly address them? I > > -Werror=implicit-int > -Werror=implicit-function-declaration > -Werror=int-conversion >
Idea for a compromise: What if, instead of flipping the switch on all 3 of these at once, we staggered them so that each one becomes a default in a separate release? i.e., something like: - GCC 14: -Werror=implicit-function-declaration gets added to the defaults - GCC 15: -Werror=implicit-int gets added to the defaults - GCC 16: -Werror=int-conversion gets added to the defaults That would give people more time to catch up on a particular warning, rather than overwhelming them with a whole bunch all at once. Just an idea. >> i am a bit gun shy because I remember the move from GCC 3.3 to 3.4 >> where the improved strict alias checking gave us a LOT of warnings to >> deal with and it felt overwhelming. I don't want to do that again. >> >> But I believe in letting the compiler get stricter and find things. >> Defaulting >> to stricter checking is a good thing. > > The checks are already done, they're just warnings by default, and so > easily missed/ignored when compiling large code bases. >