[Bug c++/106572] New: A programmatic list of all possible compiler warnings

2022-08-09 Thread j.badwaik--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106572

Bug ID: 106572
   Summary: A programmatic list of all possible compiler warnings
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: j.badw...@fz-juelich.de
  Target Milestone: ---

It would be an excellent workflow to run your code with `-Weverything` once in
a while just to check which new warnings are triggered by your code. Then,
depending on whether they are useful or not, one can incorporate those warnings
in their normal workflow. 

The alternative is to go through the release notes of every GCC release
everytime and then try to see if there is a warning which interests you. While
this is doable, it requires manual effort, with a possibility that you find no
warning which is useful. Also, depending on the code, it might not be possible
to play with all compiler warnings as soon as the compiler is released, since
you might want to wait for your code to be able to compile with the compiler
before you go there.
All of this makes for a very clumsy workflow with a lot of manual reminders
about what needs to be done.

The `-Weverything` allows for someone to schedule say a monthly CI job which
automatically runs the build with `-Weverything -Werror`. Any new compilers
added and any new warning which affects the current code will automatically be
detected. The user can then make a decision on whether the warning makes enough
sense for them to be used in their production runs.  

Currently, the way to get a list of all warning is very cumbersome. One has to
do:
> g++ -Q --help=warnings | tail -n +2 | awk '{print $1}' | tr '\n' ' '

which blows up the command line for the compilation. 

The request would be to provide either a `-Weverything` flag like clang does or
a `g++ --list-every-warning` to list all warnings in a format which can then be
passed to the compiler.

[Bug c++/106572] A programmatic list of all possible compiler warnings

2022-08-09 Thread j.badwaik--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106572

--- Comment #3 from Jayesh Badwaik  ---
I don't think any of the previous bug reports address the requirements that
this bug report does. This is not about production runs, this is about
development workflow. Unless the position is that users should not use any
warnings apart from `-Wall -Wextra` ever, the user has to look at what warnings
the compiler offers. 

The current method is a very manual method where I have to browse through the
whole GCC page and get the list of warnings and then manually put them into my
command line to see if any of the code in my repository triggers those
warnings. It will save everyone's time and effort if there was a switch to do
that.

[Bug c++/106572] A programmatic list of all possible compiler warnings

2022-08-09 Thread j.badwaik--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106572

--- Comment #4 from Jayesh Badwaik  ---
I don't think any of the previous bug reports address the requirements that
this bug report does. This is not about production runs, this is about
development workflow. Unless the position is that users should not use any
warnings apart from `-Wall -Wextra` ever, the user has to look at what warnings
the compiler offers. 

The current method is a very manual method where I have to browse through the
whole GCC page and get the list of warnings and then manually put them into my
command line to see if any of the code in my repository triggers those
warnings. It will save everyone's time and effort if there was a switch to do
that. It is therefore, actually very useful.

[Bug c++/106572] A programmatic list of all possible compiler warnings

2022-08-22 Thread j.badwaik--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106572

--- Comment #8 from Jayesh Badwaik  ---
> Oh and you don't need the tr either that is any whitespace in a response
> file is will be treated as a seperator.
> So just:
> g++ -Q --help=warnings | tail -n +2 | awk '{print $1}' > cxxflags.opt

Okay, so, now that we do have a use case for it,what criteria does this use
case have to satisfy for it to be an actual option like
"-WIreallywanteverything"?