options that control warnings
James K. Lowden
jklowden@schemamania.org
Thu Nov 20 22:14:39 GMT 2025
It may be time I updated gccint.texi. I found an error and a mystery.
The error seems to be:
> 'Warning'
> This is a warning option and should be shown as such in '--help'
> output. This flag does not currently affect anything other than
> '--help'.
In fact, experimentation today shows that without the Warning property,
a warning cannot be elevated to an error:
$ gcobol -Werror=move-corresponding nist/NC/NC209A.cbl
cobol1: error: ?-Werror=move-corresponding?: ?-Wmove-corresponding? is
not an option that controls warnings
IIUC this flag indicates whether the option controls a warning.
The mystery is how kind to be.
I haven't found any documentation for <lang>_langhook_handle_option
and its parameters. Many FEs mark some of the parameters with
ATTRIBUTE_UNUSED. (I note that if a parameter is so marked, but is
used, I see no diagnostic.) ISTR reading documentation, but maybe I
just remember comments somewhere.
In gdb I see with -Werror=move-corresponding on the command line,
cobol_langhook_handle_option gets the option and its
variable, with the "kind" parameter set to 4. It seems to be set from
enable_warning_as_error() which casts diagnostics::kind as an int. If I
cast it back, sure enough I have diagnostics::kind::error. That's what
I'm depending on now.
A spot check with my favorite example, m2/gm2-lang.cc, shows that it
doesn't use "kind". That means either it doesn't support -Werror= or
that there's another way.
I would like to know:
1. Is testing "kind" as good a way as any?
2. Is now a good time to document the function or point me to the
documentation?
Solving this will allow me to close a couple PRs and make happy at
least one user.
--jkl
More information about the Gcc
mailing list