aboutsummaryrefslogtreecommitdiff
path: root/gdb/ada-lang.c
diff options
context:
space:
mode:
authorAleksandar Ristovski <aristovski@qnx.com>2008-05-05 14:37:32 +0000
committerAleksandar Ristovski <aristovski@qnx.com>2008-05-05 14:37:32 +0000
commit5eeb2539423ce5e7241bce403f48b8babb3670b0 (patch)
treecc6f859e82b96a7c8554b3ca90847ca96b571fe9 /gdb/ada-lang.c
parente8db345894127db4220b2b97275034e71bcbac37 (diff)
downloadgdb-5eeb2539423ce5e7241bce403f48b8babb3670b0.zip
gdb-5eeb2539423ce5e7241bce403f48b8babb3670b0.tar.gz
gdb-5eeb2539423ce5e7241bce403f48b8babb3670b0.tar.bz2
* ada-lang.c: Update throughout to use symbol_matches_domain
instead of matching the symbol domain explictly. * 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.
Diffstat (limited to 'gdb/ada-lang.c')
-rw-r--r--gdb/ada-lang.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 3508a62..8206f94 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -4177,7 +4177,8 @@ ada_lookup_partial_symbol (struct partial_symtab *pst, const char *name,
{
struct partial_symbol *psym = start[i];
- if (SYMBOL_DOMAIN (psym) == namespace
+ if (symbol_matches_domain (SYMBOL_LANGUAGE (psym),
+ SYMBOL_DOMAIN (psym), namespace)
&& wild_match (name, name_len, SYMBOL_LINKAGE_NAME (psym)))
return psym;
}
@@ -4211,7 +4212,8 @@ ada_lookup_partial_symbol (struct partial_symtab *pst, const char *name,
{
struct partial_symbol *psym = start[i];
- if (SYMBOL_DOMAIN (psym) == namespace)
+ if (symbol_matches_domain (SYMBOL_LANGUAGE (psym),
+ SYMBOL_DOMAIN (psym), namespace))
{
int cmp = strncmp (name, SYMBOL_LINKAGE_NAME (psym), name_len);
@@ -4254,7 +4256,8 @@ ada_lookup_partial_symbol (struct partial_symtab *pst, const char *name,
{
struct partial_symbol *psym = start[i];
- if (SYMBOL_DOMAIN (psym) == namespace)
+ if (symbol_matches_domain (SYMBOL_LANGUAGE (psym),
+ SYMBOL_DOMAIN (psym), namespace))
{
int cmp;
@@ -5254,7 +5257,8 @@ ada_add_block_symbols (struct obstack *obstackp,
struct symbol *sym;
ALL_BLOCK_SYMBOLS (block, iter, sym)
{
- if (SYMBOL_DOMAIN (sym) == domain
+ if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
+ SYMBOL_DOMAIN (sym), domain)
&& wild_match (name, name_len, SYMBOL_LINKAGE_NAME (sym)))
{
switch (SYMBOL_CLASS (sym))
@@ -5284,7 +5288,8 @@ ada_add_block_symbols (struct obstack *obstackp,
{
ALL_BLOCK_SYMBOLS (block, iter, sym)
{
- if (SYMBOL_DOMAIN (sym) == domain)
+ if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
+ SYMBOL_DOMAIN (sym), domain))
{
int cmp = strncmp (name, SYMBOL_LINKAGE_NAME (sym), name_len);
if (cmp == 0
@@ -5329,7 +5334,8 @@ ada_add_block_symbols (struct obstack *obstackp,
ALL_BLOCK_SYMBOLS (block, iter, sym)
{
- if (SYMBOL_DOMAIN (sym) == domain)
+ if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
+ SYMBOL_DOMAIN (sym), domain))
{
int cmp;