diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-07-25 21:02:10 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-07-25 21:02:10 +0000 |
commit | a28d16c04c2a18ba995d6d34610d23b2423e688b (patch) | |
tree | ada350f089f1e4c6136bd4c8d2b3cba9658a0a1b /gcc/cpplib.c | |
parent | b8cc01708ace9b71bbf459c90562ab640cd5fa21 (diff) | |
download | gcc-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.c | 31 |
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]; } |