diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-21 23:43:53 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-21 23:43:53 +0000 |
commit | 248dfc421d6e30bdeb86fba2ff4c682ea5ada460 (patch) | |
tree | 8192afa5cfab60d4b4ee6d27b517d13b9f66f4fd /libcpp/internal.h | |
parent | 9c77efff7733012da96d583a9d037298f7317612 (diff) | |
download | gcc-248dfc421d6e30bdeb86fba2ff4c682ea5ada460.tar.gz |
* internal.h (struct cpp_reader): Add new fields:
nonexistent_file_hash and nonexistent_file_ob.
* files.c: Include "obstack.h".
(find_file_in_dir): Before trying to open the file, look up the
path name in the hash table of nonexistent files. After failing
to open the file, add the path name to the hash table.
(_cpp_find_file): Cache the results of looking up the file name
starting with the quote and bracket chain heads, if we can.
(nonexistent_file_hash_eq): New static function.
(_cpp_init_files): Initialize pfile->nonexistent_file_hash and
pfile->nonexistent_file_ob.
(_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
pfile->nonexistent_file_ob.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124929 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libcpp/internal.h')
-rw-r--r-- | libcpp/internal.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libcpp/internal.h b/libcpp/internal.h index 20f42358051..9395f6aa10e 100644 --- a/libcpp/internal.h +++ b/libcpp/internal.h @@ -355,6 +355,10 @@ struct cpp_reader struct file_hash_entry *file_hash_entries; unsigned int file_hash_entries_allocated, file_hash_entries_used; + /* Negative path lookup hash table. */ + struct htab *nonexistent_file_hash; + struct obstack nonexistent_file_ob; + /* Nonzero means don't look for #include "foo" the source-file directory. */ bool quote_ignores_source_dir; |