This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb and binutils branch master updated. 5e3c72e6b817a4d40a9ba551ed3c397098cdbfd4


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
       via  5e3c72e6b817a4d40a9ba551ed3c397098cdbfd4 (commit)
      from  cc485e620197e6db42d942820d499b01794aeb00 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5e3c72e6b817a4d40a9ba551ed3c397098cdbfd4

commit 5e3c72e6b817a4d40a9ba551ed3c397098cdbfd4
Author: Doug Evans <xdje42@gmail.com>
Date:   Wed Dec 17 00:30:29 2014 -0800

    value_maybe_namespace_elt: Remove redundant call to lookup_static_symbol.
    
    Anytime you can remove a symbol lookup that loops over all objfiles
    is A Good Thing.
    
    The call to lookup_static_symbol in valops.c:value_maybe_namespace_elt
    is redundant with this call in cp_lookup_nested_symbol:
    
    	/* Now search all static file-level symbols.  We have to do this
    	   for things like typedefs in the class.  We do not try to
    	   guess any imported namespace as even the fully specified
    	   namespace search is already not C++ compliant and more
    	   assumptions could make it too magic.  */
    
    	size = strlen (parent_name) + 2 + strlen (nested_name) + 1;
    	concatenated_name = alloca (size);
    	xsnprintf (concatenated_name, size, "%s::%s",
    		 parent_name, nested_name);
    	sym = lookup_static_symbol (concatenated_name, VAR_DOMAIN);
    	if (sym != NULL)
    	  return sym;
    
    Earlier in value_maybe_namespace_elt we do this:
    
      sym = cp_lookup_symbol_namespace (namespace_name, name,
    				    get_selected_block (0), VAR_DOMAIN);
    
    That sequence goes like:
    
    value_maybe_namespace_elt
    -> cp_lookup_symbol_namespace
    -> cp_lookup_symbol_in_namespace
    -> lookup_symbol_file
    -> cp_lookup_nested_symbol
    -> lookup_static_symbol
    
    The call was added in commit 41f62f3939b1c69e68ef5652feb44fef90eb85c9.
    https://sourceware.org/ml/gdb-patches/2010-06/msg00663.html
    With a part 2 here:
    https://sourceware.org/ml/gdb-patches/2010-06/msg00664.html
    
    At the time the call to lookup_static_symbol (spelled
    lookup_static_symbol_aux at the time) was needed.
    
    However, this patch, 8dea366bbed7986295681c101dcfbd35aeb6dfc4,
    https://sourceware.org/ml/gdb-patches/2012-11/msg00387.html
    augmented lookup_symbol_file to call cp_lookup_nested_symbol
    and introduced the redundancy.
    
    It's kinda buried, so it's totally not unexpected that this happened.
    
    gdb/ChangeLog:
    
    	* valops.c (value_maybe_namespace_elt): Remove redundant call to
    	lookup_static_symbol.

-----------------------------------------------------------------------

Summary of changes:
 gdb/ChangeLog |    5 +++++
 gdb/valops.c  |    9 ---------
 2 files changed, 5 insertions(+), 9 deletions(-)


hooks/post-receive
-- 
gdb and binutils


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]