aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2024-06-05 09:06:30 -0600
committerTom Tromey <tromey@adacore.com>2024-06-24 09:11:30 -0600
commitf59be2ed3946b69a969c65dd7093b4e865bba003 (patch)
tree35da0da91ac3d4e01849b3e57572cfac60628db9 /gdb
parent440897605540c0703c29a84450ab3e5eccda91bd (diff)
downloadgdb-f59be2ed3946b69a969c65dd7093b4e865bba003.zip
gdb-f59be2ed3946b69a969c65dd7093b4e865bba003.tar.gz
gdb-f59be2ed3946b69a969c65dd7093b4e865bba003.tar.bz2
Add compunit_symtab::forget_cached_source_info
It seemed cleaner to me for compunit_symtab to have a forget_cached_source_info method, then for the objfile to know how to do this.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/symfile-debug.c5
-rw-r--r--gdb/symtab.c9
-rw-r--r--gdb/symtab.h3
3 files changed, 13 insertions, 4 deletions
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index 3912889..3a223d0 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -154,10 +154,7 @@ objfile::forget_cached_source_info ()
objfile_debug_name (this));
for (compunit_symtab *cu : compunits ())
- {
- for (symtab *s : cu->filetabs ())
- s->release_fullname ();
- }
+ cu->forget_cached_source_info ();
for (const auto &iter : qf)
iter->forget_cached_source_info (this);
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 4888ebc..39a6915 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -485,6 +485,15 @@ compunit_symtab::language () const
return symtab->language ();
}
+/* See symtab.h. */
+
+void
+compunit_symtab::forget_cached_source_info ()
+{
+ for (symtab *s : filetabs ())
+ s->release_fullname ();
+}
+
/* The relocated address of the minimal symbol, using the section
offsets from OBJFILE. */
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 19bb697..d0b599f 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -1965,6 +1965,9 @@ struct compunit_symtab
/* Return the language of this compunit_symtab. */
enum language language () const;
+ /* Clear any cached source file names. */
+ void forget_cached_source_info ();
+
/* Unordered chain of all compunit symtabs of this objfile. */
struct compunit_symtab *next;