[gdb/symtab] Add assert in free_cached_comp_units constructor

I wrote a patch containing:
...
      dw2_instantiate_symtab (cu->per_cu, ...);
...
and ran into a use-after-free at a following use of cu.

The problem is that dw2_instantiate_symtab contains:
...
      free_cached_comp_units freer (per_objfile);
...
and that the destructor does:
...
  ~free_cached_comp_units ()
  {
    m_per_objfile->remove_all_cus ();
  }
...
which also frees the cu we used in the cu->per_cu argument to
dw2_instantiate_symtab.

Detect this situation using an assert in the free_cached_comp_units
constructor.

Tested on aarch64-linux.

Approved-By: Tom Tromey <tom@tromey.com>
2 files changed