Finish implementing --warnings=error, which should not be implied by

--warnings=all (or by its synonyms -W and --warnings without
subarguments).
* src/complain.c (set_warning_issued): New function to report that
warnings are being treated as errors and to record an error if so.
Invoke...
(warn_at, warn): ... here.
* src/getargs.c (warnings_args, warnings_types): Reorder so that
"error - warnings are errors" does not appear above "all - all of the
above".
(getargs): For -W and --warnings without subarguments, don't let
FLAGS_ARGMATCH set warnings_error in warnings_flag.
* src/getargs.h (enum warnings): Unset warnings_error in warnings_all.
This commit is contained in:
Joel E. Denny
2006-11-01 01:47:44 +00:00
parent ba7560e26b
commit 89eb3c7653
4 changed files with 39 additions and 5 deletions

View File

@@ -112,7 +112,7 @@ enum warnings
warnings_none = 0, /**< Issue no warnings. */
warnings_error = 1 << 0, /**< Warnings are treated as errors. */
warnings_yacc = 1 << 1, /**< POSIXME. */
warnings_all = ~0 /**< All of the above. */
warnings_all = ~warnings_error /**< All above warnings. */
};
/** What warnings are issued. */
extern int warnings_flag;