This is the mail archive of the gdb-patches@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]

Re: [rfc] get rid of redundant data in c++ and java


> > 	* dwarf2read.c (add_partial_symbol): Do not add new psym for
> > 	STRUCT_DOMAIN. Make sure you recognize c++ struct and java and ada  
> > 	class as typedefs. See lookup_partial_symbol function.
> > 	(new_symbol): Similar to add_partial_symbol, do not create 	symbol for 
> > the typedef. See lookup_block_symbol.
> > 	* symtab.c (symbol_matches_domain): New function, takes care
> > 	of dual meaning of STRUCT_DOMAIN symbol for c++, ada and java.
> > 	(lookup_partial_symbol): Use symbol_matches_domain to see if the
> > 	found psym domain matches the given domain.
> > 	(lookup_block_symbol): Likewise.
> 
> Thanks.  Joel, could you give this a try with GNAT?  If it works for
> Joel, it's OK to commit.

This is a nice welcome space saver! I missed the patch when it was sent.

There was a piece missing, however. The Ada module has its own bunch
of symbol lookup routines, and some of them were checking the symbol
domain.  So I had to make the symbol_matches_domain routine non-static,
and add a declaration in symtab.h.  I also took the opportunity to fix
an indentation issue, spell "C++" instead of "c++" as well as extend
a comment to explain the Ada situation.

        * ada-lang.c: Update throughout to use symbol_matches_domain
        instead of matching the symbol domain explictly.

I tested the above on x86-linux against the AdaCore testsuite and
the gdb.ada section of our testsuite.

-- 
Joel

Attachment: sym-dups.diff
Description: Text document


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