(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
This commit is contained in:
parent
31418d3513
commit
cfb3ee16db
12
gcc/cccp.c
12
gcc/cccp.c
@ -4220,6 +4220,14 @@ do_include (buf, limit, op, keyword)
|
|||||||
char *pcfbuflimit;
|
char *pcfbuflimit;
|
||||||
int pcfnum;
|
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
|
if (importing && warn_import && !inhibit_warnings
|
||||||
&& !instack[indepth].system_header_p && !import_warning) {
|
&& !instack[indepth].system_header_p && !import_warning) {
|
||||||
import_warning = 1;
|
import_warning = 1;
|
||||||
@ -6752,7 +6760,9 @@ do_warning (buf, limit, op, keyword)
|
|||||||
bcopy ((char *) buf, (char *) copy, length);
|
bcopy ((char *) buf, (char *) copy, length);
|
||||||
copy[length] = 0;
|
copy[length] = 0;
|
||||||
SKIP_WHITE_SPACE (copy);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
gcc/cpplib.c
12
gcc/cpplib.c
@ -3112,6 +3112,14 @@ do_include (pfile, keyword, unused1, unused2)
|
|||||||
int pcfnum;
|
int pcfnum;
|
||||||
f= -1; /* JF we iz paranoid! */
|
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
|
if (importing && CPP_OPTIONS (pfile)->warn_import
|
||||||
&& !CPP_OPTIONS (pfile)->inhibit_warnings
|
&& !CPP_OPTIONS (pfile)->inhibit_warnings
|
||||||
&& !CPP_BUFFER (pfile)->system_header_p && !pfile->import_warning)
|
&& !CPP_BUFFER (pfile)->system_header_p && !pfile->import_warning)
|
||||||
@ -3905,7 +3913,9 @@ do_warning (pfile, keyword, buf, limit)
|
|||||||
bcopy (buf, copy, length);
|
bcopy (buf, copy, length);
|
||||||
copy[length] = 0;
|
copy[length] = 0;
|
||||||
SKIP_WHITE_SPACE (copy);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user