aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cpplib.c14
-rw-r--r--gcc/cpplib.h6
3 files changed, 17 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d8b64b4..799ca9e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2000-03-02 Jason Merrill <jason@casey.cygnus.com>
+ * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
+ for the buffer.
+ (SET_CPP_PEDANTIC): New macro.
+ * cpplib.c (do_include): Don't bother checking system_header_p.
+ (do_warning, do_ident, do_assert, do_unassert): Likewise.
+
* function.h (struct expr_status): Add x_arg_space_so_far.
(arg_space_so_far): New macro.
* expr.c (init_expr): Initialize it.
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index c5cf674..96f2ca9 100644
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -1068,7 +1068,7 @@ do_include (pfile, keyword)
int fd;
- if (CPP_PEDANTIC (pfile) && !CPP_BUFFER (pfile)->system_header_p)
+ if (CPP_PEDANTIC (pfile))
{
if (importing)
cpp_pedwarn (pfile, "ANSI C does not allow `#import'");
@@ -1555,7 +1555,7 @@ do_warning (pfile, keyword)
skip_rest_of_line (pfile);
limit = CPP_BUFFER (pfile)->cur;
- if (CPP_PEDANTIC (pfile) && !CPP_BUFFER (pfile)->system_header_p)
+ if (CPP_PEDANTIC (pfile))
cpp_pedwarn (pfile, "ANSI C does not allow `#warning'");
cpp_warning (pfile, "#warning %.*s", (int)(limit - text), text);
@@ -1572,7 +1572,7 @@ do_ident (pfile, keyword)
long old_written = CPP_WRITTEN (pfile);
/* Allow #ident in system headers, since that's not user's fault. */
- if (CPP_PEDANTIC (pfile) && !CPP_BUFFER (pfile)->system_header_p)
+ if (CPP_PEDANTIC (pfile))
cpp_pedwarn (pfile, "ANSI C does not allow `#ident'");
CPP_PUTS (pfile, "#ident ", 7);
@@ -2292,7 +2292,7 @@ validate_else (pfile, directive)
cpp_reader *pfile;
const char *directive;
{
- if (! CPP_PEDANTIC (pfile) || CPP_BUFFER (pfile)->system_header_p)
+ if (! CPP_PEDANTIC (pfile))
return;
cpp_skip_hspace (pfile);
@@ -3060,8 +3060,7 @@ do_assert (pfile, keyword)
HASHNODE *base, *this;
int baselen, thislen;
- if (CPP_PEDANTIC (pfile) && CPP_OPTIONS (pfile)->done_initializing
- && !CPP_BUFFER (pfile)->system_header_p)
+ if (CPP_PEDANTIC (pfile) && CPP_OPTIONS (pfile)->done_initializing)
cpp_pedwarn (pfile, "ANSI C does not allow `#assert'");
cpp_skip_hspace (pfile);
@@ -3125,8 +3124,7 @@ do_unassert (pfile, keyword)
long baselen, thislen;
HASHNODE *base, *this, *next;
- if (CPP_PEDANTIC (pfile) && CPP_OPTIONS (pfile)->done_initializing
- && !CPP_BUFFER (pfile)->system_header_p)
+ if (CPP_PEDANTIC (pfile) && CPP_OPTIONS (pfile)->done_initializing)
cpp_pedwarn (pfile, "ANSI C does not allow `#unassert'");
cpp_skip_hspace (pfile);
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index 60d0eed..5a69064 100644
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -508,10 +508,14 @@ struct cpp_options {
#define CPP_TRADITIONAL(PFILE) (CPP_OPTIONS(PFILE)-> traditional)
#define CPP_WARN_UNDEF(PFILE) (CPP_OPTIONS(PFILE)->warn_undef)
#define CPP_C89(PFILE) (CPP_OPTIONS(PFILE)->c89)
-#define CPP_PEDANTIC(PFILE) (CPP_OPTIONS (PFILE)->pedantic)
#define CPP_PREPROCESSED(PFILE) (CPP_OPTIONS (PFILE)->preprocessed)
#define CPP_PRINT_DEPS(PFILE) (CPP_OPTIONS (PFILE)->print_deps)
+#define CPP_PEDANTIC(PFILE) \
+ (CPP_OPTIONS (PFILE)->pedantic && !CPP_BUFFER (pfile)->system_header_p)
+
+#define SET_CPP_PEDANTIC(PFILE) (CPP_OPTIONS (PFILE)->pedantic = 1)
+
/* List of directories to look for include files in. */
struct file_name_list
{