diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarf2/read.c | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7bb862e..6123270 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2021-03-20 Tom Tromey <tom@tromey.com> + * dwarf2/read.c (dwarf2_build_psymtabs): Set partial_symtabs + earlier. + +2021-03-20 Tom Tromey <tom@tromey.com> + * psympriv.h (psymtab_discarder): Take psymtab_storage parameter. (~psymtab_discarder, keep): Update. <m_objfile>: Remove. diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index aad25f7..9de9e48 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -6137,6 +6137,12 @@ dwarf2_build_psymtabs (struct objfile *objfile) return; } + /* Set the local reference to partial symtabs, so that we don't try + to read them again if reading another objfile with the same BFD. + If we can't in fact share, this won't make a difference anyway as + the dwarf2_per_bfd object won't be shared. */ + per_bfd->partial_symtabs = objfile->partial_symtabs; + try { /* This isn't really ideal: all the data we allocate on the @@ -6155,12 +6161,6 @@ dwarf2_build_psymtabs (struct objfile *objfile) { exception_print (gdb_stderr, except); } - - /* Finish by setting the local reference to partial symtabs, so that - we don't try to read them again if reading another objfile with the same - BFD. If we can't in fact share, this won't make a difference anyway as - the dwarf2_per_bfd object won't be shared. */ - per_bfd->partial_symtabs = objfile->partial_symtabs; } /* Find the base address of the compilation unit for range lists and |