From cfb3ee16db4fc9138f2df3524c32c580bb505460 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sun, 13 Apr 1997 14:30:13 -0400 Subject: [PATCH] (do_include): Diagnose #import and #include_next if pedantic and if not in a system header. (do_include): Diagnose #import and #include_next if pedantic and if not in a system header. (do_warning): #warning now causes an error if -pedantic-errors is given; this is needed since #warning isn't ANSI. From-SVN: r13887 --- gcc/cccp.c | 12 +++++++++++- gcc/cpplib.c | 12 +++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/gcc/cccp.c b/gcc/cccp.c index 5baa257d282..0725465841c 100644 --- a/gcc/cccp.c +++ b/gcc/cccp.c @@ -4220,6 +4220,14 @@ do_include (buf, limit, op, keyword) char *pcfbuflimit; int pcfnum; + if (pedantic && !instack[indepth].system_header_p) + { + if (importing) + pedwarn ("ANSI C does not allow `#import'"); + if (skip_dirs) + pedwarn ("ANSI C does not allow `#include_next'"); + } + if (importing && warn_import && !inhibit_warnings && !instack[indepth].system_header_p && !import_warning) { import_warning = 1; @@ -6752,7 +6760,9 @@ do_warning (buf, limit, op, keyword) bcopy ((char *) buf, (char *) copy, length); copy[length] = 0; SKIP_WHITE_SPACE (copy); - warning ("#warning %s", copy); + /* Use `pedwarn' not `warning', because #warning isn't in the C Standard; + if -pedantic-errors is given, #warning should cause an error. */ + pedwarn ("#warning %s", copy); return 0; } diff --git a/gcc/cpplib.c b/gcc/cpplib.c index 6e2177e3003..697cea8f71f 100644 --- a/gcc/cpplib.c +++ b/gcc/cpplib.c @@ -3112,6 +3112,14 @@ do_include (pfile, keyword, unused1, unused2) int pcfnum; f= -1; /* JF we iz paranoid! */ + if (CPP_PEDANTIC (pfile) && !CPP_BUFFER (pfile)->system_header_p) + { + if (importing) + cpp_pedwarn (pfile, "ANSI C does not allow `#import'"); + if (skip_dirs) + cpp_pedwarn (pfile, "ANSI C does not allow `#include_next'"); + } + if (importing && CPP_OPTIONS (pfile)->warn_import && !CPP_OPTIONS (pfile)->inhibit_warnings && !CPP_BUFFER (pfile)->system_header_p && !pfile->import_warning) @@ -3905,7 +3913,9 @@ do_warning (pfile, keyword, buf, limit) bcopy (buf, copy, length); copy[length] = 0; SKIP_WHITE_SPACE (copy); - cpp_warning (pfile, "#warning %s", copy); + /* Use `pedwarn' not `warning', because #warning isn't in the C Standard; + if -pedantic-errors is given, #warning should cause an error. */ + cpp_pedwarn (pfile, "#warning %s", copy); return 0; } -- 2.30.2