public inbox for gdb-prs@sourceware.org help / color / mirror / Atom feed
* [Bug symtab/18258] New: Non-opaque type preference needs to take into account included symtabs @ 2015-04-13 19:32 dje at google dot com 2015-04-17 0:03 ` [Bug symtab/18258] " dje at google dot com ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: dje at google dot com @ 2015-04-13 19:32 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=18258 Bug ID: 18258 Summary: Non-opaque type preference needs to take into account included symtabs Product: gdb Version: HEAD Status: NEW Severity: normal Priority: P2 Component: symtab Assignee: unassigned at sourceware dot org Reporter: dje at google dot com I don't have a reportable testcase for this, but I want to write this down while it's fresh. This loop in dw2_lookup_symbol: while ((per_cu = dw2_symtab_iter_next (&iter)) != NULL) { struct symbol *sym = NULL; struct compunit_symtab *stab = dw2_instantiate_symtab (per_cu); const struct blockvector *bv = COMPUNIT_BLOCKVECTOR (stab); struct block *block = BLOCKVECTOR_BLOCK (bv, block_index); /* Some caution must be observed with overloaded functions and methods, since the index will not contain any overload information (but NAME might contain it). */ sym = block_lookup_symbol (block, name, domain); if (sym && strcmp_iw (SYMBOL_SEARCH_NAME (sym), name) == 0) { if (!TYPE_IS_OPAQUE (SYMBOL_TYPE (sym))) return stab; stab_best = stab; } /* Keep looking through other CUs. */ } doesn't take into account the fact that "stab" can actually be a list of multiple symbol tables (stab->includes). In the program where I'm seeing the problem: (top-gdb) p stab->includes[0]@5 $161 = {[0] = 0x1810cd0, [1] = 0xa94ed90, <<< has opaque definition [2] = 0x10bfb7b0, <<< has full definition [3] = 0x10e4ba90, [4] = 0x0} So we find the opaque definition, and will never see the full definition, unless the user happens to do something that causes 0x10bfb7b0 to be read in via another symtab. -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug symtab/18258] Non-opaque type preference needs to take into account included symtabs 2015-04-13 19:32 [Bug symtab/18258] New: Non-opaque type preference needs to take into account included symtabs dje at google dot com @ 2015-04-17 0:03 ` dje at google dot com 2015-05-27 18:53 ` cvs-commit at gcc dot gnu.org 2015-05-27 18:54 ` dje at google dot com 2 siblings, 0 replies; 4+ messages in thread From: dje at google dot com @ 2015-04-17 0:03 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=18258 --- Comment #1 from dje at google dot com --- Patch submitted: https://sourceware.org/ml/gdb-patches/2015-04/msg00636.html -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug symtab/18258] Non-opaque type preference needs to take into account included symtabs 2015-04-13 19:32 [Bug symtab/18258] New: Non-opaque type preference needs to take into account included symtabs dje at google dot com 2015-04-17 0:03 ` [Bug symtab/18258] " dje at google dot com @ 2015-05-27 18:53 ` cvs-commit at gcc dot gnu.org 2015-05-27 18:54 ` dje at google dot com 2 siblings, 0 replies; 4+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2015-05-27 18:53 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=18258 --- Comment #2 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Doug Evans <devans@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b2e2f908b863c27abb00108a03ebe2598baec55c commit b2e2f908b863c27abb00108a03ebe2598baec55c Author: Doug Evans <dje@google.com> Date: Wed May 27 11:50:38 2015 -0700 PR symtab/18258 gdb/ChangeLog: * block.c (block_find_symbol): New function. (block_find_non_opaque_type): Ditto. (block_find_non_opaque_type_preferred): Ditto. * block.h (block_symbol_matcher_ftype): New typedef. (block_find_symbol): Declare. (block_find_non_opaque_type): Ditto. (block_find_non_opaque_type_preferred): Ditto. * dwarf2read.c (dw2_lookup_symbol): Call block_find_symbol. * psymtab.c (psym_lookup_symbol): Ditto. * symtab.c (basic_lookup_transparent_type_1): New function. (basic_lookup_transparent_type): Call it. gdb/testsuite/ChangeLog: * gdb.dwarf2/opaque-type-lookup-2.c: New file. * gdb.dwarf2/opaque-type-lookup.c: New file. * gdb.dwarf2/opaque-type-lookup.exp: New file. -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug symtab/18258] Non-opaque type preference needs to take into account included symtabs 2015-04-13 19:32 [Bug symtab/18258] New: Non-opaque type preference needs to take into account included symtabs dje at google dot com 2015-04-17 0:03 ` [Bug symtab/18258] " dje at google dot com 2015-05-27 18:53 ` cvs-commit at gcc dot gnu.org @ 2015-05-27 18:54 ` dje at google dot com 2 siblings, 0 replies; 4+ messages in thread From: dje at google dot com @ 2015-05-27 18:54 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=18258 dje at google dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #3 from dje at google dot com --- patch committed -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-05-27 18:54 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-04-13 19:32 [Bug symtab/18258] New: Non-opaque type preference needs to take into account included symtabs dje at google dot com 2015-04-17 0:03 ` [Bug symtab/18258] " dje at google dot com 2015-05-27 18:53 ` cvs-commit at gcc dot gnu.org 2015-05-27 18:54 ` dje at google dot com
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).