cpplib.h (struct cpp_options): New member, warn_endif_labels.
2002-03-22 Phil Edwards <pme@gcc.gnu.org> * cpplib.h (struct cpp_options): New member, warn_endif_labels. * cppinit.c (cpp_create_reader): On by default. (cpp_handle_option): Handle -W[no-]endif-labels. (cpp_post_options): Also enable if -pedantic. * cpplib.c (do_else): Use it. (do_endif): Likewise. * doc/cppopts.texi: Document new option. * doc/invoke.texi: Document new option. From-SVN: r51190
This commit is contained in:
parent
4299b4e14e
commit
909de5da19
6 changed files with 47 additions and 3 deletions
|
@ -1,3 +1,14 @@
|
|||
2002-03-22 Phil Edwards <pme@gcc.gnu.org>
|
||||
|
||||
* cpplib.h (struct cpp_options): New member, warn_endif_labels.
|
||||
* cppinit.c (cpp_create_reader): On by default.
|
||||
(cpp_handle_option): Handle -W[no-]endif-labels.
|
||||
(cpp_post_options): Also enable if -pedantic.
|
||||
* cpplib.c (do_else): Use it.
|
||||
(do_endif): Likewise.
|
||||
* doc/cppopts.texi: Document new option.
|
||||
* doc/invoke.texi: Document new option.
|
||||
|
||||
2002-03-22 Lars Brinkhoff <lars@nocrew.org>
|
||||
|
||||
* config/i386/i386.c, config/i386/i386.md: Change all occurences
|
||||
|
|
|
@ -491,6 +491,7 @@ cpp_create_reader (lang)
|
|||
CPP_OPTION (pfile, show_column) = 1;
|
||||
CPP_OPTION (pfile, tabstop) = 8;
|
||||
CPP_OPTION (pfile, operator_names) = 1;
|
||||
CPP_OPTION (pfile, warn_endif_labels) = 1;
|
||||
#if DEFAULT_SIGNED_CHAR
|
||||
CPP_OPTION (pfile, signed_char) = 1;
|
||||
#else
|
||||
|
@ -1735,6 +1736,8 @@ cpp_handle_option (pfile, argc, argv, ignore)
|
|||
CPP_OPTION (pfile, warnings_are_errors) = 1;
|
||||
else if (!strcmp (argv[i], "-Wsystem-headers"))
|
||||
CPP_OPTION (pfile, warn_system_headers) = 1;
|
||||
else if (!strcmp (argv[i], "-Wendif-labels"))
|
||||
CPP_OPTION (pfile, warn_endif_labels) = 1;
|
||||
else if (!strcmp (argv[i], "-Wno-traditional"))
|
||||
CPP_OPTION (pfile, warn_traditional) = 0;
|
||||
else if (!strcmp (argv[i], "-Wno-trigraphs"))
|
||||
|
@ -1751,6 +1754,8 @@ cpp_handle_option (pfile, argc, argv, ignore)
|
|||
CPP_OPTION (pfile, warnings_are_errors) = 0;
|
||||
else if (!strcmp (argv[i], "-Wno-system-headers"))
|
||||
CPP_OPTION (pfile, warn_system_headers) = 0;
|
||||
else if (!strcmp (argv[i], "-Wno-endif-labels"))
|
||||
CPP_OPTION (pfile, warn_endif_labels) = 0;
|
||||
else if (! ignore)
|
||||
return i;
|
||||
break;
|
||||
|
@ -1832,6 +1837,10 @@ cpp_post_options (pfile)
|
|||
|| CPP_OPTION (pfile, deps_file)
|
||||
|| CPP_OPTION (pfile, deps_phony_targets)))
|
||||
cpp_fatal (pfile, "you must additionally specify either -M or -MM");
|
||||
|
||||
/* Some things should always be on in pedantic mode. */
|
||||
if (CPP_OPTION (pfile, pedantic) == 1)
|
||||
CPP_OPTION (pfile, warn_endif_labels) = 1;
|
||||
}
|
||||
|
||||
/* Set up dependency-file output. On exit, if print_deps is non-zero
|
||||
|
|
|
@ -1375,7 +1375,7 @@ do_else (pfile)
|
|||
ifs->mi_cmacro = 0;
|
||||
|
||||
/* Only check EOL if was not originally skipping. */
|
||||
if (!ifs->was_skipping)
|
||||
if (!ifs->was_skipping && CPP_OPTION (pfile, warn_endif_labels))
|
||||
check_eol (pfile);
|
||||
}
|
||||
}
|
||||
|
@ -1430,7 +1430,7 @@ do_endif (pfile)
|
|||
else
|
||||
{
|
||||
/* Only check EOL if was not originally skipping. */
|
||||
if (!ifs->was_skipping)
|
||||
if (!ifs->was_skipping && CPP_OPTION (pfile, warn_endif_labels))
|
||||
check_eol (pfile);
|
||||
|
||||
/* If potential control macro, we go back outside again. */
|
||||
|
|
|
@ -308,6 +308,9 @@ struct cpp_options
|
|||
traditional C. */
|
||||
unsigned char warn_traditional;
|
||||
|
||||
/* Nonzero means warn about text after an #endif (or #else). */
|
||||
unsigned char warn_endif_labels;
|
||||
|
||||
/* Nonzero means turn warnings into errors. */
|
||||
unsigned char warnings_are_errors;
|
||||
|
||||
|
|
|
@ -110,6 +110,23 @@ Warn whenever an identifier which is not a macro is encountered in an
|
|||
@samp{#if} directive, outside of @samp{defined}. Such identifiers are
|
||||
replaced with zero.
|
||||
|
||||
@item -Wendif-labels
|
||||
@opindex Wendif-labels
|
||||
Warn whenever an @samp{#else} or an @samp{#endif} are followed by text.
|
||||
This usually happens in code of the form
|
||||
|
||||
@smallexample
|
||||
#if FOO
|
||||
@dots{}
|
||||
#else FOO
|
||||
@dots{}
|
||||
#endif FOO
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
The second and third @code{FOO} should be in comments, but often are not
|
||||
in older programs. This warning is on by default.
|
||||
|
||||
@item -Werror
|
||||
@opindex Werror
|
||||
Make all warnings into hard errors. Source code which triggers warnings
|
||||
|
|
|
@ -220,7 +220,7 @@ in the following sections.
|
|||
-Wimplicit -Wimplicit-int @gol
|
||||
-Wimplicit-function-declaration @gol
|
||||
-Werror-implicit-function-declaration @gol
|
||||
-Wimport -Winline @gol
|
||||
-Wimport -Winline -Wno-endif-labels @gol
|
||||
-Wlarger-than-@var{len} -Wlong-long @gol
|
||||
-Wmain -Wmissing-braces -Wmissing-declarations @gol
|
||||
-Wmissing-format-attribute -Wmissing-noreturn @gol
|
||||
|
@ -2384,6 +2384,10 @@ conversion warnings, for the full set use @option{-Wconversion}.
|
|||
@opindex Wundef
|
||||
Warn if an undefined identifier is evaluated in an @samp{#if} directive.
|
||||
|
||||
@item -Wendif-labels
|
||||
@opindex Wendif-labels
|
||||
Warn whenever an @samp{#else} or an @samp{#endif} are followed by text.
|
||||
|
||||
@item -Wshadow
|
||||
@opindex Wshadow
|
||||
Warn whenever a local variable shadows another local variable, parameter or
|
||||
|
|
Loading…
Add table
Reference in a new issue