[Bug c++/106572] New: A programmatic list of all possible compiler warnings
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
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
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
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"?