diff options
author | Zack Weinberg <zack@wolery.cumb.org> | 2000-05-29 16:19:32 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2000-05-29 16:19:32 +0000 |
commit | ea4a453b8909eb0f3612bbf98fe2e6a2a8ee4114 (patch) | |
tree | 05d62231cd71e2302cbbf76f31135f52a6e77ba9 /gcc/cpphash.h | |
parent | 1b50716d21794f2f69aa2939045fbf1489ff3c19 (diff) | |
download | gcc-ea4a453b8909eb0f3612bbf98fe2e6a2a8ee4114.zip gcc-ea4a453b8909eb0f3612bbf98fe2e6a2a8ee4114.tar.gz gcc-ea4a453b8909eb0f3612bbf98fe2e6a2a8ee4114.tar.bz2 |
cpplib.h (cpp_reader): Remove if_stack.
* cpplib.h (cpp_reader): Remove if_stack. Change
potential_control_macro to a cpp_hashnode *. Add skipping flag.
* cpphash.h (struct ihash): Change control_macro to a
cpp_hashnode * and shorten name to cmacro.
Add NEVER_REINCLUDE constant.
* cppfiles.c (redundant_include_p): Drop cpp_reader argument.
Examine the cmacro node directly, no need to call cpp_defined.
(_cpp_execute_include, read_include_file): Set cmacro to
NEVER_REINCLUDE, not U"".
* cpplex.c (cpp_push_buffer): Don't set new->if_stack.
(cpp_get_token): If pfile->skipping is true, discard text and
keep scanning until we hit a directive; don't expand macros.
* cpplib.c (struct if_stack): Remove if_succeeded, add
was_skipping. Change control_macro to a cpp_hashnode * and
shorten name to cmacro. Remove typedef IF_STACK.
(parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
(conditional_skip, skip_if_group,
consider_directive_while_skipping): Delete.
(push_conditional): New.
(_cpp_handle_directive): Don't process directives other than
conditionals if we are skipping.
(do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
Update to new scheme.
(validate_else): Skip rest of line here, unconditionally.
(_cpp_unwind_if_stack): The stack is per-buffer. Force
pfile->skipping off.
(all): Remove `scare quotes' from error messages.
* gcc.dg/cpp-mi.c: Add another case, cpp-mix.h, where the
guard macro is already defined when the header is first
included.
* gcc.dg/cpp-mix.h: New file.
* gcc.dg/endif-label.c: Update patterns to match compiler.
* g++.brendan/complex1.C: Declare abort.
* g++.law/refs4.C: Remove XFAIL.
* g++.oliva/expr2.C: Declare abort and exit.
From-SVN: r34253
Diffstat (limited to 'gcc/cpphash.h')
-rw-r--r-- | gcc/cpphash.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cpphash.h b/gcc/cpphash.h index c590de6..28761c7 100644 --- a/gcc/cpphash.h +++ b/gcc/cpphash.h @@ -69,10 +69,11 @@ struct ihash unsigned int hash; /* save hash value for future reference */ const char *nshort; /* name of file as referenced in #include; points into name[] */ - const U_CHAR *control_macro; /* macro, if any, preventing reinclusion. */ + const cpp_hashnode *cmacro; /* macro, if any, preventing reinclusion. */ const char name[1]; /* (partial) pathname of file */ }; typedef struct ihash IHASH; +#define NEVER_REINCLUDE ((const cpp_hashnode *)-1) /* Character classes. If the definition of `numchar' looks odd to you, please look up the |