diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 90577b7e61e..593ff01cc9d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-05-28 Tom de Vries + + * 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 * dwarf2/read.c (load_partial_dies): Use add_partial_symbol. diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index a62224c0be2..25f05fb9930 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. */