On Thu, Oct 30, 2025 at 2:56 AM Richard Biener <[email protected]>
wrote:

> On Wed, Oct 29, 2025 at 11:20 PM Jonathan Wakely via Gcc
> <[email protected]> wrote:
> >
> > On Wed, 29 Oct 2025 at 22:09, Jonathan Wakely <[email protected]>
> wrote:
> > >
> > > On Wed, 29 Oct 2025 at 21:53, Jonathan Wakely <[email protected]>
> wrote:
> > > >
> > > > On Wed, 29 Oct 2025 at 21:47, Jonathan Wakely <[email protected]>
> wrote:
> > > > >
> > > > > On Wed, 29 Oct 2025 at 21:31, Joel Sherrill <
> [email protected]> wrote:
> > > > > >
> > > > > > Hi
> > > > > >
> > > > > > I am starting a new thread on
> https://gcc.gnu.org/wiki/WarningHistory. It looks useful but in need of
> an update. Before I spend more itme on it, I wanted to make sure I am doing
> the archeology correctly.
> > > > > >
> > > > > > Use git diff with pairs of "adjacent" release tags. I did this
> for 8.2.0->8.3.0->8.4.0->8.5.0 but didn't see any. This is the command for
> what's new in 9.1.0.
> > > > > >
> > > > > > $ git diff releases/gcc-8.1.0 releases/gcc-9.1.0 -- common.opt
> > > > > >
> > > > > > And after wading through the output, I think this is the new set
> of warnings in gcc 9.1.0.
> > > > > >
> > > > > > New in 9.1.0
> > > > > > ============
> > > > > > -Wattribute-alias
> > > > > > -Wattribute-warning
> > > > > > -Wcannot-profile
> > > > > > -Wdeprecated
> > > > > > -Wmissing-profile
> > > > > >
> > > > > > Does this process look correct to everyone? If so, I will update
> the wiki page.
> > > > >
> > > > > -Wdeprecated is much older than GCC 9. You can check the manual for
> > > > > GCC 8.5.0 to see if the new warnings really are new, or were
> already
> > > > > documented for 8.5.0, and that shows -Wno-deprecated was present
> > > > > already.
> > > > >
> > > > > https://gcc.gnu.org/gcc-9/changes.html#c-family suggests that
> > > > > -Wattribute-alias already existed and was "enhanced" in gcc-9.
> > > > >
> > > > > That page also lists -Waddress-of-packed-member and
> -Wabsolute-value
> > > > > as new warnings, and five new C++ warnings, which weren't found by
> > > > > your method. Maybe there are other .opt files to consider, for
> > > > > C-specific and C++-specific warnings?
> > > >
> > > > Ah, I think I remembered the method I used for creating the content
> of
> > > > that page:
> > > > diff <( ~/gcc/8.5.0/bin/gcc --help=warnings -Q | sort) <(
> > > > ~/gcc/9.1.0/bin/gcc --help=warnings -Q | sort)
> > > >
> > > > Of course, this means you need to have every version of GCC
> installed!
> > > >
> > > > For the command above I get this output:
> > > >
> > > > 7a8
> > > > >   -Wabsolute-value                            [disabled]
> > > > 8a10
> > > > >   -Waddress-of-packed-member                  [enabled]
> > > > 15c17
> > > > <   -Walloc-size-larger-than=
> > > > ---
> > > > >   -Walloc-size-larger-than=                   -1
> > > > 18c20
> > > > <   -Walloca-larger-than=<number>       0
> > > > ---
> > > > >   -Walloca-larger-than=<number>       -1
> > > > 25c27,29
> > > > <   -Wattribute-alias                           [enabled]
> > > > ---
> > > > >   -Wattribute-alias
> > > > >   -Wattribute-alias=<0,2>                     1
> > > > >   -Wattribute-warning                         [enabled]
> > > > 38a43
> > > > >   -Wc11-c2x-compat                            [enabled]
> > > > 40a46
> > > > >   -Wcannot-profile                            [enabled]
> > > > 44a51
> > > > >   -Wcast-result                               [disabled]
> > > > 49c56,57
> > > > <   -Wchkp                                      [disabled]
> > > > ---
> > > > >   -Wchkp
> > > > >   -Wclass-conversion                          [enabled]
> > > > 67a76,77
> > > > >   -Wdeprecated-copy                           [disabled]
> > > > >   -Wdeprecated-copy-dtor                      [disabled]
> > > > 103c113
> > > > <   -Wframe-larger-than=<number>
> > > > ---
> > > > >   -Wframe-larger-than=<byte-size>     -1
> > > > 118a129
> > > > >   -Winit-list-lifetime                        [enabled]
> > > > 132c143
> > > > <   -Wlarger-than=<number>
> > > > ---
> > > > >   -Wlarger-than=<byte-size>                   -1
> > > > 151a163
> > > > >   -Wmissing-profile                           [enabled]
> > > > 158a171,173
> > > > >   -Wno-alloc-size-larger-than
> > > > >   -Wno-alloca-larger-than
> > > > >   -Wno-vla-larger-than
> > > > 183a199
> > > > >   -Wpessimizing-move                          [disabled]
> > > > 191a208
> > > > >   -Wprio-ctor-dtor                            [enabled]
> > > > 198a216
> > > > >   -Wredundant-move                            [disabled]
> > > > 227c245
> > > > <   -Wstack-usage=<number>                      0
> > > > ---
> > > > >   -Wstack-usage=<byte-size>                   -1
> > > > 298c316
> > > > <   -Wvla-larger-than=<number>                  0
> > > > ---
> > > > >   -Wvla-larger-than=<number>                  -1
> > > >
> > > > Some of these are changes to the default values, so not new warnings,
> > > > but it tells me these are new:
> > > >
> > > > -Wabsolute-value
> > > >  -Waddress-of-packed-member
> > > >  -Wattribute-warning
> > > > -Wc11-c2x-compat
> > > > -Wcannot-profile
> > > > -Wcast-result
> > > >  -Wclass-conversion
> > > > -Wdeprecated-copy
> > > >  -Wdeprecated-copy-dtor
> > > >  -Winit-list-lifetime
> > > > -Wmissing-profile
> > > > -Wno-alloc-size-larger-than
> > > > -Wno-alloca-larger-than
> > > > -Wno-vla-larger-than
> > > > -Wpessimizing-move
> > > > -Wprio-ctor-dtor
> > > > -Wredundant-move
> > >
> > > I've added everything up to 13.1
> >
> > And now everything up to current trunk.
>

Wow! Thanks! I did have most of those installed also. But I do appreciate
the
magic of waking up to find this done! Thank you!

>
> I wonder if it would be generally useful to know when options were
> introduced
> and whether we should document that in the manual even?  OTOH that suggests
> version checks in configure when functional testing is what should be done.
>

I think this would be useful. I tripped across the warnings/version issue
while adding
more warning flags to RTEMS builds. We use GCC 15 primarily but some
targets
have to use slightly older versions (e.g. GCC 14 for nios2, microblaze is
13, etc.).
I would add a warning and someone would notice quickly that it wasn't in
GCC x.
This is without considering release branches which are locked onto a
specific
less than current GCC version.

Isn't functional testing for a new flag/feature added at the same time? Why
would
you have to test for supporting a feature?

--joel

>
> Richard.
>

Reply via email to