aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/dwarf2/read.c22
2 files changed, 19 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 90577b7..593ff01 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2020-05-28 Tom de Vries <tdevries@suse.de>
+
+ * dwarf2/read.c (dw2_symtab_iter_next, dw2_expand_marked_cus): Limit
+ PR gold/15646 workaround to symbol kind "type".
+
2020-05-27 Tom Tromey <tromey@adacore.com>
* dwarf2/read.c (load_partial_dies): Use add_partial_symbol.
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index a62224c..25f05fb 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -3522,10 +3522,14 @@ dw2_symtab_iter_next (struct dw2_symtab_iterator *iter)
}
/* Work around gold/15646. */
- if (!is_static && iter->global_seen)
- continue;
- if (!is_static)
- iter->global_seen = 1;
+ if (!is_static
+ && symbol_kind == GDB_INDEX_SYMBOL_KIND_TYPE)
+ {
+ if (iter->global_seen)
+ continue;
+
+ iter->global_seen = 1;
+ }
}
/* Only check the symbol's kind if it has one. */
@@ -4627,12 +4631,14 @@ dw2_expand_marked_cus
&& symbol_kind != GDB_INDEX_SYMBOL_KIND_NONE);
/* Work around gold/15646. */
- if (attrs_valid)
+ if (attrs_valid
+ && !is_static
+ && symbol_kind == GDB_INDEX_SYMBOL_KIND_TYPE)
{
- if (!is_static && global_seen)
+ if (global_seen)
continue;
- if (!is_static)
- global_seen = true;
+
+ global_seen = true;
}
/* Only check the symbol's kind if it has one. */