diff options
-rw-r--r-- | gdb/ada-lang.c | 4 | ||||
-rw-r--r-- | gdb/ada-lang.h | 4 | ||||
-rw-r--r-- | gdb/symtab.c | 1 |
3 files changed, 7 insertions, 2 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index d77fa3c..51112a1 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -4690,9 +4690,9 @@ make_array_descriptor (struct type *type, struct value *arr) even in this case, some expensive name-based symbol searches are still sometimes necessary - to find an XVZ variable, mostly. */ -/* Clear all entries from the symbol cache. */ +/* See ada-lang.h. */ -static void +void ada_clear_symbol_cache (program_space *pspace) { ada_pspace_data_handle.clear (pspace); diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h index 77193ef..050d298 100644 --- a/gdb/ada-lang.h +++ b/gdb/ada-lang.h @@ -433,4 +433,8 @@ extern block_symbol ada_resolve_variable (struct symbol *sym, extern struct type *ada_index_type (struct type *type, int n, const char *name); +/* Clear the Ada symbol cache. */ + +extern void ada_clear_symbol_cache (program_space *pspace); + #endif diff --git a/gdb/symtab.c b/gdb/symtab.c index ce5e252..b955cc8 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -1563,6 +1563,7 @@ symbol_cache_mark_not_found (struct block_symbol_cache *bsc, static void symbol_cache_flush (struct program_space *pspace) { + ada_clear_symbol_cache (pspace); struct symbol_cache *cache = symbol_cache_key.get (pspace); int pass; |