From: Doug Evans Date: Tue, 11 Sep 2012 22:42:22 +0000 (+0000) Subject: * dwarf2read.c (dw2_do_expand_symtabs_matching): Don't examine X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=83a788b8b1c6398d0504c99bc3da0de8aca0039c;p=binutils-gdb.git * dwarf2read.c (dw2_do_expand_symtabs_matching): Don't examine .gdb_index symbol attributes if there are none. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 333eb6e0e83..037ff294034 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2012-09-11 Doug Evans + + * dwarf2read.c (dw2_do_expand_symtabs_matching): Don't examine + .gdb_index symbol attributes if there are none. + 2012-09-11 Joel Brobecker * symtab.h (struct minimal_symbol) [has_size]: New field. diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index ba5427c1e82..5541b692b59 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -3133,15 +3133,21 @@ dw2_do_expand_symtabs_matching (struct objfile *objfile, int is_static = GDB_INDEX_SYMBOL_STATIC_VALUE (cu_index_and_attrs); gdb_index_symbol_kind symbol_kind = GDB_INDEX_SYMBOL_KIND_VALUE (cu_index_and_attrs); - - if (want_specific_block - && index->version >= 7 + /* Only check the symbol attributes if they're present. + Indices prior to version 7 don't record them, + and indices >= 7 may elide them for certain symbols + (gold does this). */ + int attrs_valid = + (index->version >= 7 + && symbol_kind != GDB_INDEX_SYMBOL_KIND_NONE); + + if (attrs_valid + && want_specific_block && want_static != is_static) continue; - /* Only check the symbol's kind if it has one. - Indices prior to version 7 don't record it. */ - if (index->version >= 7) + /* Only check the symbol's kind if it has one. */ + if (attrs_valid) { switch (domain) {