This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA/7.8 blocker] Revert c++/16253
- From: Doug Evans <dje at google dot com>
- To: Keith Seitz <keiths at redhat dot com>
- Cc: "gdb-patches at sourceware dot org ml" <gdb-patches at sourceware dot org>
- Date: Fri, 6 Jun 2014 14:20:23 -0700
- Subject: Re: [RFA/7.8 blocker] Revert c++/16253
- Authentication-results: sourceware.org; auth=none
- References: <5390ABAA dot 2080209 at redhat dot com>
On Thu, Jun 5, 2014 at 10:40 AM, Keith Seitz <keiths@redhat.com> wrote:
> Hi,
>
> We decided to revert my earlier patch for c++/16253 (variable name/tag name
> collision) because Doug reports that it causes a sizable performance
> regression:
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=16253
>
> This patch reverts the whole thing.
>
> Tested on Fedora 20, x86_64 and native-gdbserver.
>
> Keith
>
> ChangeLog
> 2014-06-05 Keith Seitz <keiths@redhat.com>
>
> Revert:
> PR c++/16253
> * ada-lang.c (ada_symbol_matches_domain): Moved here and renamed
> from symbol_matches_domain in symtab.c. All local callers
> of symbol_matches_domain updated.
> (standard_lookup): If DOMAIN is VAR_DOMAIN and no symbol is found,
> search STRUCT_DOMAIN.
> (ada_find_any_type_symbol): Do not search STRUCT_DOMAIN
> independently. standard_lookup will do that automatically.
> * cp-namespace.c (cp_lookup_symbol_nonlocal): Explain when/why
> VAR_DOMAIN searches may return a STRUCT_DOMAIN match.
> (cp_lookup_symbol_in_namespace): Likewise.
> If no VAR_DOMAIN symbol is found, search STRUCT_DOMAIN.
> (cp_lookup_symbol_exports): Explain when/why VAR_DOMAIN searches
> may return a STRUCT_DOMAIN match.
> (lookup_symbol_file): Search for the class name in STRUCT_DOMAIN.
> * cp-support.c: Include language.h.
> (inspect_type): Explicitly search STRUCT_DOMAIN before searching
> VAR_DOMAIN.
> * psymtab.c (match_partial_symbol): Compare the requested
> domain with the symbol's domain directly.
> (lookup_partial_symbol): Likewise.
> * symtab.c (lookup_symbol_in_language): Explain when/why
> VAR_DOMAIN searches may return a STRUCT_DOMAIN match.
> If no VAR_DOMAIN symbol is found, search STRUCT_DOMAIN for
> appropriate languages.
> (symbol_matches_domain): Renamed `ada_symbol_matches_domain'
> and moved to ada-lang.c
> (lookup_block_symbol): Explain that this function only returns
> symbol matching the requested DOMAIN.
> Compare the requested domain with the symbol's domain directly.
> (iterate_over_symbols): Compare the requested domain with the
> symbol's domain directly.
> * symtab.h (symbol_matches_domain): Remove.
>
> testsuite/ChangeLog
> 2014-06-05 Keith Seitz <keiths@redhat.com>
>
> Revert:
> PR c++/16253
> * gdb.cp/var-tag.cc: New file.
> * gdb.cp/var-tag.exp: New file.
> * gdb.dwarf2/dw2-ada-ffffffff.exp: Set the language to C++.
> * gdb.dwarf2/dw2-anon-mptr.exp: Likewise.
> * gdb.dwarf2/dw2-double-set-die-type.exp: Likewise.
> * gdb.dwarf2/dw2-inheritance.exp: Likewise.
Thanks!
I've reverified my perf regression with HEAD, and then verified this
patch makes it go away.
[gotta love looking up "int64" 10 thousand times. 1/2 :-)]