aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-05-21 23:30:47 -0600
committerTom Tromey <tom@tromey.com>2018-07-20 09:42:46 -0600
commit93b8bea4143cafae79076076c64aaa4c46a9b73c (patch)
treed4079f449410946158bf5e421bea21953e7bb24c
parentf62f6af5da07eba0ac5425365da3d82c43f3445c (diff)
downloadgdb-93b8bea4143cafae79076076c64aaa4c46a9b73c.zip
gdb-93b8bea4143cafae79076076c64aaa4c46a9b73c.tar.gz
gdb-93b8bea4143cafae79076076c64aaa4c46a9b73c.tar.bz2
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.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/dwarf2read.c6
2 files changed, 8 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 96b54fb..08c7390 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
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>
+
* dwarf2read.c (process_psymtab_comp_unit_reader)
(build_type_psymtabs_reader): Do not set list_in_scope.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index bdd1c9a..b73c06e 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -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. */
cu->method_list.clear ();
- cu->list_in_scope = &file_symbols;
-
cu->language = pretend_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. */
cu->method_list.clear ();
- cu->list_in_scope = &file_symbols;
-
cu->language = pretend_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,
low_pc, cu->language);
+ cu->list_in_scope = &file_symbols;
+
record_debugformat ("DWARF 2");
record_producer (cu->producer);