diff options
author | Zack Weinberg <zack@wolery.cumb.org> | 2000-06-21 18:33:51 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2000-06-21 18:33:51 +0000 |
commit | c31a6508eedf17dc50388f1694bc131bd965004f (patch) | |
tree | eb5aadb8fbe401846a1ceb69f99c1b4e7af8d929 /gcc/cpplib.h | |
parent | e3cd9945cbe33d50af459b6b4951d3dcb12a33f7 (diff) | |
download | gcc-c31a6508eedf17dc50388f1694bc131bd965004f.zip gcc-c31a6508eedf17dc50388f1694bc131bd965004f.tar.gz gcc-c31a6508eedf17dc50388f1694bc131bd965004f.tar.bz2 |
cppfiles.c: Include splay-tree.h, not hashtab.h.
* cppfiles.c: Include splay-tree.h, not hashtab.h.
(redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
(destroy_include_file_node): New.
(_cpp_init_include_hash): Rename _cpp_init_include_table.
Create a splay tree, not a hash table.
(open_include_file): Look up the path in the include table,
do the multiple include optimization here, etc.
(cpp_included): Walk the path.
(find_include_file): Just walk the path calling
open_include_file, or call it directly for an absolute path.
(_cpp_fake_ihash): Rename _cpp_fake_include and update for new
scheme.
(read_include_file): Update for new scheme. Don't close the
file unless reading fails.
(_cpp_execute_include, cpp_read_file): Tweak for new scheme.
* cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
(struct include_file): New.
(NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
macros.
(CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
Update prototypes.
* cppinit.c: Include splay-tree.h.
(cpp_reader_init, cpp_cleanup): Update.
* cpplib.h (struct cpp_buffer): Change ihash field to
'struct include_file *inc'. Remove system_header_p.
(struct cpp_reader): Change all_include_files to a
struct splay_tree_s *.
* cpplex.c: Update all references to cpp_buffer->ihash and/or
cpp_buffer->system_header_p.
(cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
From-SVN: r34636
Diffstat (limited to 'gcc/cpplib.h')
-rw-r--r-- | gcc/cpplib.h | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/gcc/cpplib.h b/gcc/cpplib.h index c2f95f5..e79c2c8 100644 --- a/gcc/cpplib.h +++ b/gcc/cpplib.h @@ -233,9 +233,9 @@ struct cpp_buffer /* Actual directory of this file, used only for "" includes */ struct file_name_list *actual_dir; - /* Pointer into the include hash table. Used for include_next and + /* Pointer into the include table. Used for include_next and to record control macros. */ - struct ihash *ihash; + struct include_file *inc; /* If the buffer is the expansion of a macro, this points to the macro's hash table entry. */ @@ -248,9 +248,6 @@ struct cpp_buffer /* Line number at line_base (above). */ unsigned int lineno; - /* True if this is a header file included using <FILENAME>. */ - char system_header_p; - /* True if buffer contains escape sequences. Currently there are two kinds: "\r-" means following identifier should not be macro-expanded. @@ -499,7 +496,7 @@ struct cpp_reader struct htab *hashtab; /* Hash table of other included files. See cppfiles.c */ - struct htab *all_include_files; + struct splay_tree_s *all_include_files; /* Chain of `actual directory' file_name_list entries, for "" inclusion. */ |