8a6d423 Change representation of psymbol to flush out accessors

Authored and Committed by Tom Tromey 5 years ago
    Change representation of psymbol to flush out accessors
    
    This is the psymbol analog to the patch to change the representation
    of minimal symbols:
    
        https://sourceware.org/ml/gdb-patches/2013-10/msg00524.html
    
    It has the same rationale: namely, that we're going to change the code
    to apply psymbol offsets at runtime.  This will be done by adding an
    argument to the SYMBOL_VALUE_ADDRESS macro -- but since we can't
    convert all the symbol types at once, we need a new approach.
    
    Because gdb now is in C++, this patch changes partial_symbol to
    inherit from general_symbol_info, rather than renaming the field.
    This simplifies code in some places.
    
    Also, as noted before, these macros implement a kind of "phony
    polymorphism" that is not actually useful in practice; so this patch
    removes the macros in favor of simply referring directly to members.
    In a few cases -- obj_section in this patch and the symbol address in
    the future -- methods will be used instead.
    
    Note that this removes the blanket memset from add_psymbol_to_bcache.
    This hasn't really been needed since bcache was modified to allow
    holes in objects and since psymtab took advantage of that.  This
    deletion was required due to changing partial_symbol to derive from
    general_symbol_info.
    
    gdb/ChangeLog
    2018-07-26  Tom Tromey  <tom@tromey.com>
    
    	* dwarf-index-write.c (write_psymbols, debug_names::insert)
    	(debug_names::write_psymbols): Update.
    	* psympriv.h (struct partial_symbol): Derive from
    	general_symbol_info.
    	<obj_section>: New method.
    	(PSYMBOL_DOMAIN, PSYMBOL_CLASS): Remove.n
    	* psymtab.c (find_pc_sect_psymtab_closer, find_pc_sect_psymtab)
    	(find_pc_sect_psymbol, fixup_psymbol_section)
    	(match_partial_symbol, lookup_partial_symbol, relocate_psymtabs)
    	(print_partial_symbols, recursively_search_psymtabs)
    	(compare_psymbols, psymbol_hash, psymbol_compare)
    	(add_psymbol_to_bcache, maintenance_check_psymtabs)
    	(psymbol_name_matches, psym_fill_psymbol_map): Update.
    
        
file modified
+16 -0
file modified
+8 -8
file modified
+9 -7
file modified
+82 -86