aboutsummaryrefslogtreecommitdiff
path: root/libcpp/lex.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2018-07-17 20:10:57 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2018-07-17 20:10:57 +0200
commit0c86a39db2888ddd17b21d0822b0907e4661d8b6 (patch)
treef900c8a020892d4af02d171ffe5ed7c3a00eb702 /libcpp/lex.c
parent0ef03fe3d09f799b457eccf83247976e9a6da77d (diff)
lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN...
* lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN, CPP_DL_WARNING or CPP_DL_ERROR for note that diagnostics for C++ style comments is reported only once per file and guard those calls on the preceding cpp_error returning true. * gcc.dg/cpp/pr61854-c90.c (foo): Expect a note, rather than error. * gcc.dg/cpp/pr61854-c94.c (foo): Likewise. * gcc.dg/cpp/pr61854-4.c (foo): Likewise. * gcc.dg/cpp/pr61854-8.c: New test. From-SVN: r262832
Diffstat (limited to 'libcpp/lex.c')
-rw-r--r--libcpp/lex.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/libcpp/lex.c b/libcpp/lex.c
index 37c365a3560..a2592e045d2 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -2872,10 +2872,10 @@ _cpp_lex_direct (cpp_reader *pfile)
&& CPP_PEDANTIC (pfile)
&& ! buffer->warned_cplusplus_comments)
{
- cpp_error (pfile, CPP_DL_PEDWARN,
- "C++ style comments are not allowed in ISO C90");
- cpp_error (pfile, CPP_DL_PEDWARN,
- "(this will be reported only once per input file)");
+ if (cpp_error (pfile, CPP_DL_PEDWARN,
+ "C++ style comments are not allowed in ISO C90"))
+ cpp_error (pfile, CPP_DL_NOTE,
+ "(this will be reported only once per input file)");
buffer->warned_cplusplus_comments = 1;
}
/* Or if specifically desired via -Wc90-c99-compat. */
@@ -2883,10 +2883,10 @@ _cpp_lex_direct (cpp_reader *pfile)
&& ! CPP_OPTION (pfile, cplusplus)
&& ! buffer->warned_cplusplus_comments)
{
- cpp_error (pfile, CPP_DL_WARNING,
- "C++ style comments are incompatible with C90");
- cpp_error (pfile, CPP_DL_WARNING,
- "(this will be reported only once per input file)");
+ if (cpp_error (pfile, CPP_DL_WARNING,
+ "C++ style comments are incompatible with C90"))
+ cpp_error (pfile, CPP_DL_NOTE,
+ "(this will be reported only once per input file)");
buffer->warned_cplusplus_comments = 1;
}
/* In C89/C94, C++ style comments are forbidden. */
@@ -2906,11 +2906,12 @@ _cpp_lex_direct (cpp_reader *pfile)
}
else if (! buffer->warned_cplusplus_comments)
{
- cpp_error (pfile, CPP_DL_ERROR,
- "C++ style comments are not allowed in ISO C90");
- cpp_error (pfile, CPP_DL_ERROR,
- "(this will be reported only once per input "
- "file)");
+ if (cpp_error (pfile, CPP_DL_ERROR,
+ "C++ style comments are not allowed in "
+ "ISO C90"))
+ cpp_error (pfile, CPP_DL_NOTE,
+ "(this will be reported only once per input "
+ "file)");
buffer->warned_cplusplus_comments = 1;
}
}