summaryrefslogtreecommitdiff
path: root/gcc/cpplib.c
diff options
context:
space:
mode:
authorzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-25 21:02:10 +0000
committerzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-25 21:02:10 +0000
commita28d16c04c2a18ba995d6d34610d23b2423e688b (patch)
treeada350f089f1e4c6136bd4c8d2b3cba9658a0a1b /gcc/cpplib.c
parentb8cc01708ace9b71bbf459c90562ab640cd5fa21 (diff)
downloadgcc-a28d16c04c2a18ba995d6d34610d23b2423e688b.tar.gz
* cpplib.c (_cpp_check_directive): Issue -Wtraditional
warnings for indented directives even if we are skipping. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35256 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cpplib.c')
-rw-r--r--gcc/cpplib.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index f39ff0e89d3..7d7bbc2fb1a 100644
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -154,28 +154,33 @@ _cpp_check_directive (pfile, token, bol)
for (i = 0; i < N_DIRECTIVES; i++)
if (pfile->spec_nodes->dirs[i] == token->val.node)
{
+ /* In -traditional mode, a directive is ignored unless its #
+ is in column 1. In code intended to work with K+R compilers,
+ therefore, directives added by C89 must have their # indented,
+ and directives present in traditional C must not. This is true
+ even of directives in skipped conditional blocks. */
+ if (CPP_WTRADITIONAL (pfile))
+ {
+ if (!bol && dtable[i].origin == KANDR)
+ cpp_warning (pfile,
+ "traditional C ignores #%s with the # indented",
+ dtable[i].name);
+
+ if (bol && dtable[i].origin != KANDR)
+ cpp_warning (pfile,
+ "suggest hiding #%s from traditional C with an indented #",
+ dtable[i].name);
+ }
+
/* If we are skipping a failed conditional group, all non-conditional
directives are ignored. */
if (pfile->skipping && !(dtable[i].flags & COND))
return 0;
- /* In -traditional mode, a directive is ignored unless its #
- is in column 1. */
- if (!bol && dtable[i].origin == KANDR && CPP_WTRADITIONAL (pfile))
- cpp_warning (pfile, "traditional C ignores #%s with the # indented",
- dtable[i].name);
-
/* Issue -pedantic warnings for extended directives. */
if (CPP_PEDANTIC (pfile) && dtable[i].origin == EXTENSION)
cpp_pedwarn (pfile, "ISO C does not allow #%s", dtable[i].name);
- /* -Wtraditional gives warnings about directives with inappropriate
- indentation of #. */
- if (bol && dtable[i].origin != KANDR && CPP_WTRADITIONAL (pfile))
- cpp_warning (pfile,
- "suggest hiding #%s from traditional C with an indented #",
- dtable[i].name);
-
return &dtable[i];
}