Set list_in_scope later in DWARF reader

Currently the DWARF reader sets the list_in_scope member of the CU
when first starting to process symbols.  Future changes will make this
assert -- code will not be able to refer to these lists until after
start_symtab has been called.  This patch prepares for the problem by
arranging to initialize list_in_scope in dwarf2_start_symtab.

gdb/ChangeLog
2018-07-20  Tom Tromey  <tom@tromey.com>

	* dwarf2read.c (process_full_comp_unit): Do not set list_in_scope.
	(process_full_type_unit): Likewise.
	(dwarf2_start_symtab): Set list_in_scope.
This commit is contained in:
Tom Tromey
2018-05-21 23:30:47 -06:00
parent f62f6af5da
commit 93b8bea414
2 changed files with 8 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2018-07-20 Tom Tromey <tom@tromey.com>
* dwarf2read.c (process_full_comp_unit): Do not set list_in_scope.
(process_full_type_unit): Likewise.
(dwarf2_start_symtab): Set list_in_scope.
2018-07-20 Tom Tromey <tom@tromey.com> 2018-07-20 Tom Tromey <tom@tromey.com>
* dwarf2read.c (process_psymtab_comp_unit_reader) * dwarf2read.c (process_psymtab_comp_unit_reader)

View File

@ -10247,8 +10247,6 @@ process_full_comp_unit (struct dwarf2_per_cu_data *per_cu,
/* Clear the list here in case something was left over. */ /* Clear the list here in case something was left over. */
cu->method_list.clear (); cu->method_list.clear ();
cu->list_in_scope = &file_symbols;
cu->language = pretend_language; cu->language = pretend_language;
cu->language_defn = language_def (cu->language); cu->language_defn = language_def (cu->language);
@ -10352,8 +10350,6 @@ process_full_type_unit (struct dwarf2_per_cu_data *per_cu,
/* Clear the list here in case something was left over. */ /* Clear the list here in case something was left over. */
cu->method_list.clear (); cu->method_list.clear ();
cu->list_in_scope = &file_symbols;
cu->language = pretend_language; cu->language = pretend_language;
cu->language_defn = language_def (cu->language); cu->language_defn = language_def (cu->language);
@ -21019,6 +21015,8 @@ dwarf2_start_symtab (struct dwarf2_cu *cu,
= start_symtab (cu->per_cu->dwarf2_per_objfile->objfile, name, comp_dir, = start_symtab (cu->per_cu->dwarf2_per_objfile->objfile, name, comp_dir,
low_pc, cu->language); low_pc, cu->language);
cu->list_in_scope = &file_symbols;
record_debugformat ("DWARF 2"); record_debugformat ("DWARF 2");
record_producer (cu->producer); record_producer (cu->producer);