Refactor warning flag parsing to add missing flags
This adds -Werror=<group>
and -fwarn-<group>
flags for warning
groups as well as individual warnings. Previously these were defined
on an ad hoc basis so for example we had -Werror=compat
but not
-Werror=unused-binds
, whereas we had -fwarn-unused-binds
but not
-fwarn-compat
. Fixes #22182 (closed).
This is preparatory work for #17209 (closed) (see !9684 (closed)). I've updated the user's guide section on warnings with these changes and some general cleanup.