This is the mail archive of the gdb-patches@sources.redhat.com 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: [rfa] teach lookup_symbol about namespace scope


On Tue, 20 May 2003 07:10:41 -0400 (EDT), Paul Hilfinger <hilfingr@gnat.com> said:

>> > 3. Linkage (mangled) names have the form 
>> >         <prefix>__<simple name><optional suffic>
>> >    and we need to be able to match this name given either
>> >    either <prefix>__<simple name> or <simple name>.  
>> 
>> I'm curious: how frequent is this optional suffix?  Because this looks
>> so simple that it seems like the time costs for demangling would be
>> very small: all you have to do is skip "prefix__" and then check for
>> the optional suffix (which I assume is easy to recognize?), and it
>> seems to me that other costs in building symbol information would
>> swamp that.  And we could design a scheme where, if the suffix was
>> absent, the mangled and demangled names would share memory, since the
>> demangled name is a final substring of the mangled name. 

> Sorry; I was unclear.  The MANGLED names have the form shown, but
> <prefix>__<simple name> is NOT the demangled name.  Binary operators
> get renamed and "." goes to "__".

I guess I'd been assuming/hoping that <simple name> was normally the
demangled name.  Binary operators don't worry me so much, but is "."
some sort of package/module/etc. operator that shows up all over the
place?  If so, I guess there's no way around making a copy.

>> Do Ada symbols have both the demangled and linkage name set?  Because
>> if you're never setting the demangled name, I would think that you
>> wouldn't have to use a special macro in the Ada case.  (By the way, we
>> used to have a different macro called SYMBOL_SEARCH_NAME, but that's a
>> separate issue.)

> I'm not sure which of your macros then would yield the right value for 
> all languages.  The idea was for SYMBOL_SEARCH_NAME to return the form 
> of name for a symbol that a specific language does searches on.  We still
> need SYMBOL_NATURAL_NAME and SYMBOL_PRINT_NAME to print out demangled
> forms of the name (which for Ada would involve a procedure call).  

Ah, interesting.  That does sound like a consistent and reasonable way
to do things, given your desire to not store demangled names.

Thanks for the info!

David Carlton
carlton@math.stanford.edu


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