aboutsummaryrefslogtreecommitdiff
path: root/gcc/cpplib.h
diff options
context:
space:
mode:
authorZack Weinberg <zack@wolery.cumb.org>2000-06-21 18:33:51 +0000
committerZack Weinberg <zack@gcc.gnu.org>2000-06-21 18:33:51 +0000
commitc31a6508eedf17dc50388f1694bc131bd965004f (patch)
treeeb5aadb8fbe401846a1ceb69f99c1b4e7af8d929 /gcc/cpplib.h
parente3cd9945cbe33d50af459b6b4951d3dcb12a33f7 (diff)
downloadgcc-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.h9
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. */