[4/5] gdb/23712: Remove dw2_add_symbol_to_list

Message ID 20181109022847.32049-4-keiths@redhat.com
State New, archived
Headers

Commit Message

Keith Seitz Nov. 9, 2018, 2:28 a.m. UTC
  Finally, we can remove dw2_add_symbol_to_list since the wrapper function
originally introduced to catch this multi-language scenario is no longer
needed.  With multi-language dictionaries, we can now support adding
symbols of multiple languages, negating the need for the assertion
entirely.

This patch should now fix gdb/23712 (and symtab/23010).  At least it will
if the NULL buildsym_compunit problem doesn't strike first (see gdb/23773).

gdb/ChangeLog:

	PR gdb/23712
	* dwarf2read.c (dw2_add_symbol_to_list): Remove.
	(fixup_go_packaging, new_symbol): Use add_symbol_to_list.
---
 gdb/ChangeLog    |  6 ++++++
 gdb/dwarf2read.c | 25 ++++---------------------
 2 files changed, 10 insertions(+), 21 deletions(-)
  

Comments

Tom Tromey Nov. 30, 2018, 8:58 p.m. UTC | #1
>>>>> "Keith" == Keith Seitz <keiths@redhat.com> writes:

Keith> Finally, we can remove dw2_add_symbol_to_list since the wrapper function
Keith> originally introduced to catch this multi-language scenario is no longer
Keith> needed.  With multi-language dictionaries, we can now support adding
Keith> symbols of multiple languages, negating the need for the assertion
Keith> entirely.

Keith> This patch should now fix gdb/23712 (and symtab/23010).  At least it will
Keith> if the NULL buildsym_compunit problem doesn't strike first (see gdb/23773).

Keith> gdb/ChangeLog:

Keith> 	PR gdb/23712
Keith> 	* dwarf2read.c (dw2_add_symbol_to_list): Remove.
Keith> 	(fixup_go_packaging, new_symbol): Use add_symbol_to_list.

Thanks, this is ok.
Maybe the ChangeLog should mention symtab/23010?

Tom
  

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 32c58ed1e1..0534f7843a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@ 
+YYYY-MM-DD  Keith Seitz  <keiths@redhat.com>
+
+	PR gdb/23712
+	* dwarf2read.c (dw2_add_symbol_to_list): Remove.
+	(fixup_go_packaging, new_symbol): Use add_symbol_to_list.
+
 YYYY-MM-DD  Keith Seitz  <keiths@redhat.com>
 
 	PR gdb/23712
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index d2a8cd44f9..e0676d7777 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -9788,23 +9788,6 @@  compute_delayed_physnames (struct dwarf2_cu *cu)
   cu->method_list.clear ();
 }
 
-/* A wrapper for add_symbol_to_list to ensure that SYMBOL's language is
-   the same as all other symbols in LISTHEAD.  If a new symbol is added
-   with a different language, this function asserts.  */
-
-static inline void
-dw2_add_symbol_to_list (struct symbol *symbol, struct pending **listhead)
-{
-  /* Only assert if LISTHEAD already contains symbols of a different
-     language (dict_create_hashed/insert_symbol_hashed requires that all
-     symbols in this list are of the same language).  */
-  gdb_assert ((*listhead) == NULL
-	      || (SYMBOL_LANGUAGE ((*listhead)->symbol[0])
-		  == SYMBOL_LANGUAGE (symbol)));
-
-  add_symbol_to_list (symbol, listhead);
-}
-
 /* Go objects should be embedded in a DW_TAG_module DIE,
    and it's not clear if/how imported objects will appear.
    To keep Go support simple until that's worked out,
@@ -9878,7 +9861,7 @@  fixup_go_packaging (struct dwarf2_cu *cu)
       SYMBOL_ACLASS_INDEX (sym) = LOC_TYPEDEF;
       SYMBOL_TYPE (sym) = type;
 
-      dw2_add_symbol_to_list (sym, cu->builder->get_global_symbols ());
+      add_symbol_to_list (sym, cu->builder->get_global_symbols ());
 
       xfree (package_name);
     }
@@ -21437,7 +21420,7 @@  new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
 	  SYMBOL_TYPE (sym) = objfile_type (objfile)->builtin_core_addr;
 	  SYMBOL_DOMAIN (sym) = LABEL_DOMAIN;
 	  SYMBOL_ACLASS_INDEX (sym) = LOC_LABEL;
-	  dw2_add_symbol_to_list (sym, cu->list_in_scope);
+	  add_symbol_to_list (sym, cu->list_in_scope);
 	  break;
 	case DW_TAG_subprogram:
 	  /* SYMBOL_BLOCK_VALUE (sym) will be filled in later by
@@ -21706,7 +21689,7 @@  new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
 	case DW_TAG_common_block:
 	  SYMBOL_ACLASS_INDEX (sym) = LOC_COMMON_BLOCK;
 	  SYMBOL_DOMAIN (sym) = COMMON_BLOCK_DOMAIN;
-	  dw2_add_symbol_to_list (sym, cu->list_in_scope);
+	  add_symbol_to_list (sym, cu->list_in_scope);
 	  break;
 	default:
 	  /* Not a tag we recognize.  Hopefully we aren't processing
@@ -21726,7 +21709,7 @@  new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
 	}
 
       if (list_to_add != NULL)
-	dw2_add_symbol_to_list (sym, list_to_add);
+	add_symbol_to_list (sym, list_to_add);
 
       /* For the benefit of old versions of GCC, check for anonymous
 	 namespaces based on the demangled name.  */