summaryrefslogtreecommitdiff
path: root/libcpp/internal.h
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-21 23:43:53 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-21 23:43:53 +0000
commit248dfc421d6e30bdeb86fba2ff4c682ea5ada460 (patch)
tree8192afa5cfab60d4b4ee6d27b517d13b9f66f4fd /libcpp/internal.h
parent9c77efff7733012da96d583a9d037298f7317612 (diff)
downloadgcc-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.h4
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;