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
