aboutsummaryrefslogtreecommitdiff
path: root/gcc/cpplex.c
diff options
context:
space:
mode:
authorBranko Cibej <branko.cibej@hermes.si>2000-09-26 00:54:04 +0200
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2000-09-25 22:54:04 +0000
commit317639a81c1c666ab67014d458da7cb57a554a92 (patch)
tree7fc11a6b7a593988efb1e370c5443cd4e490aeb4 /gcc/cpplex.c
parent1c6d33efb4d9725b537e72c7b18efeeb638c55bc (diff)
downloadgcc-317639a81c1c666ab67014d458da7cb57a554a92.zip
gcc-317639a81c1c666ab67014d458da7cb57a554a92.tar.gz
gcc-317639a81c1c666ab67014d458da7cb57a554a92.tar.bz2
flags.h: Declare warning flag warn_system_headers.
2000-09-25 Branko Cibej <branko.cibej@hermes.si> * flags.h: Declare warning flag warn_system_headers. * toplev.c: Define it. (W_options): Add option -Wsystem-headers. * diagnostic.c (count_error): Test warn_system_headers. * invoke.texi: Add description for -Wsystem-headers. * cpplib.h (cpp_options): New member warn_system_headers. * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test CPP_IN_SYSTEM_HEADER. * cpplib.c (do_import, do_pragma_once): Likewise. * cpperror.c (_cpp_begin_message): Test warn_system_headers and CPP_IN_SYSTEM_HEADER. * cppinit.c (handle_option): Recognize -Wsystem_headers. (print_help): Describe -Wsystem_headers. * cpplex.c (lex_line): Reorganize condition so that warnings about C++ comments in system headers can be enabled. Remove label do_line_comment. From-SVN: r36636
Diffstat (limited to 'gcc/cpplex.c')
-rw-r--r--gcc/cpplex.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/gcc/cpplex.c b/gcc/cpplex.c
index 0c31560..47dcdbc 100644
--- a/gcc/cpplex.c
+++ b/gcc/cpplex.c
@@ -1209,10 +1209,24 @@ lex_token (pfile, result)
irrespective of conformance mode, because lots of
broken systems do that and trying to clean it up in
fixincludes is a nightmare. */
- if (!CPP_IN_SYSTEM_HEADER (pfile)
- && CPP_OPTION (pfile, c89) && CPP_PEDANTIC (pfile)
- && !buffer->warned_cplusplus_comments)
+ if (CPP_OPTION (pfile, cplusplus_comments)
+ || CPP_IN_SYSTEM_HEADER (pfile))
{
+ if (CPP_OPTION (pfile, c89) && CPP_PEDANTIC (pfile)
+ && ! buffer->warned_cplusplus_comments)
+ {
+ cpp_pedwarn (pfile,
+ "C++ style comments are not allowed in ISO C89");
+ cpp_pedwarn (pfile,
+ "(this will be reported only once per input file)");
+ buffer->warned_cplusplus_comments = 1;
+ }
+ comment_start = buffer->cur;
+
+ /* Skip_line_comment updates buffer->read_ahead. */
+ if (skip_line_comment (pfile))
+ cpp_warning_with_line (pfile, result->line, result->col,
+ "multi-line comment");
cpp_pedwarn (pfile,
"C++ style comments are not allowed in ISO C89");
cpp_pedwarn (pfile,