* symtab.c (symbol_set_names): Do not add an entry in the demangling
hash table for Ada symbols. Just store the linkage name as is, and leave the demangled_name as NULL.
This commit is contained in:
parent
92273c8de8
commit
b06ead72a9
|
@ -1,3 +1,9 @@
|
|||
2008-02-01 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* symtab.c (symbol_set_names): Do not add an entry in the demangling
|
||||
hash table for Ada symbols. Just store the linkage name as is,
|
||||
and leave the demangled_name as NULL.
|
||||
|
||||
2007-02-01 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* dwarf2read.c (add_partial_symbol): Always store all Ada subprograms
|
||||
|
|
18
gdb/symtab.c
18
gdb/symtab.c
|
@ -517,6 +517,24 @@ symbol_set_names (struct general_symbol_info *gsymbol,
|
|||
if (objfile->demangled_names_hash == NULL)
|
||||
create_demangled_names_hash (objfile);
|
||||
|
||||
if (gsymbol->language == language_ada)
|
||||
{
|
||||
/* In Ada, we do the symbol lookups using the mangled name, so
|
||||
we can save some space by not storing the demangled name.
|
||||
|
||||
As a side note, we have also observed some overlap between
|
||||
the C++ mangling and Ada mangling, similarly to what has
|
||||
been observed with Java. Because we don't store the demangled
|
||||
name with the symbol, we don't need to use the same trick
|
||||
as Java. */
|
||||
gsymbol->name = obstack_alloc (&objfile->objfile_obstack, len + 1);
|
||||
memcpy (gsymbol->name, linkage_name, len);
|
||||
gsymbol->name[len] = '\0';
|
||||
gsymbol->language_specific.cplus_specific.demangled_name = NULL;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* The stabs reader generally provides names that are not
|
||||
NUL-terminated; most of the other readers don't do this, so we
|
||||
can just use the given copy, unless we're in the Java case. */
|
||||
|
|
Loading…
Reference in New Issue