Add a new function reset_compunit_symtab.
compunit_symtab *symtab)
{
gdb_assert (per_cu->index < this->m_symtabs.size ());
- gdb_assert (this->m_symtabs[per_cu->index] == nullptr);
+ gdb_assert (this->m_symtabs[per_cu->index] == nullptr
+ || symtab == nullptr);
this->m_symtabs[per_cu->index] = symtab;
}
return nullptr;
}
+ void reset_compunit_symtab (struct objfile *objfile) override
+ {
+ }
+
private:
partial_symtab *includer () const
{
return per_objfile->get_symtab (per_cu_data);
}
+void
+dwarf2_psymtab::reset_compunit_symtab (struct objfile *objfile)
+{
+ dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
+ per_objfile->set_symtab (per_cu_data, nullptr);
+}
+
/* Trivial hash function for die_info: the hash value of a DIE
is its offset in .debug_info for this objfile. */
void expand_psymtab (struct objfile *) override;
bool readin_p (struct objfile *) const override;
compunit_symtab *get_compunit_symtab (struct objfile *) const override;
+ void reset_compunit_symtab (struct objfile *) override;
struct dwarf2_per_cu_data *per_cu_data;
};
virtual struct compunit_symtab *get_compunit_symtab
(struct objfile *) const = 0;
+ virtual void reset_compunit_symtab
+ (struct objfile *) = 0;
+
/* Return the raw low text address of this partial_symtab. */
CORE_ADDR raw_text_low () const
{
return compunit_symtab;
}
+ void reset_compunit_symtab (struct objfile *) override
+ {
+ compunit_symtab = nullptr;
+ }
+
/* True if the symtab corresponding to this psymtab has been
readin. */