diff options
author | Tom Tromey <tom@tromey.com> | 2023-11-16 18:02:14 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2024-01-28 10:58:16 -0700 |
commit | 54d186cf6554099057d76c7a4df730423eefe977 (patch) | |
tree | a86127bf5778dacd1f21124ab9a9a17014c3e99e /gdb | |
parent | 974b36c2ae2b351d022cc62579656f722da6e17a (diff) | |
download | gdb-54d186cf6554099057d76c7a4df730423eefe977.zip gdb-54d186cf6554099057d76c7a4df730423eefe977.tar.gz gdb-54d186cf6554099057d76c7a4df730423eefe977.tar.bz2 |
Simplify some symbol searches in Ada code
This changes some of the Ada code to simplify symbol searches. For
example, if a function is being looked for, the search is narrowed to
use SEARCH_FUNCTION_DOMAIN rather than SEARCH_VFT. In one spot, a
search of the "struct" domain is removed, because Ada does not have a
tag domain.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ada-exp.y | 4 | ||||
-rw-r--r-- | gdb/ada-lang.c | 10 | ||||
-rw-r--r-- | gdb/dwarf2/ada-imported.c | 2 |
3 files changed, 5 insertions, 11 deletions
diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index 1f439b3..ab936ae 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -1404,7 +1404,7 @@ block_lookup (const struct block *context, const char *raw_name) } std::vector<struct block_symbol> syms - = ada_lookup_symbol_list (name, context, SEARCH_VFT); + = ada_lookup_symbol_list (name, context, SEARCH_FUNCTION_DOMAIN); if (context == NULL && (syms.empty () || syms[0].symbol->aclass () != LOC_BLOCK)) @@ -1483,7 +1483,7 @@ find_primitive_type (struct parser_state *par_state, const char *name) (char *) alloca (strlen (name) + sizeof ("standard__")); strcpy (expanded_name, "standard__"); strcat (expanded_name, name); - sym = ada_lookup_symbol (expanded_name, NULL, SEARCH_VFT).symbol; + sym = ada_lookup_symbol (expanded_name, NULL, SEARCH_TYPE_DOMAIN).symbol; if (sym != NULL && sym->aclass () == LOC_TYPEDEF) type = sym->type (); } diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index a15ea7b..f1d01ec 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -7436,14 +7436,8 @@ field_alignment (struct type *type, int f) static struct symbol * ada_find_any_type_symbol (const char *name) { - struct symbol *sym; - - sym = standard_lookup (name, get_selected_block (NULL), SEARCH_VFT); - if (sym != NULL && sym->aclass () == LOC_TYPEDEF) - return sym; - - sym = standard_lookup (name, NULL, SEARCH_STRUCT_DOMAIN); - return sym; + return standard_lookup (name, get_selected_block (nullptr), + SEARCH_TYPE_DOMAIN); } /* Find a type named NAME. Ignores ambiguity. This routine will look diff --git a/gdb/dwarf2/ada-imported.c b/gdb/dwarf2/ada-imported.c index 21f81bb..1a0bc1d 100644 --- a/gdb/dwarf2/ada-imported.c +++ b/gdb/dwarf2/ada-imported.c @@ -103,7 +103,7 @@ ada_alias_get_block_value (const struct symbol *sym) { const char *name = get_imported_name (sym); block_symbol real_symbol = lookup_global_symbol (name, nullptr, - SEARCH_VFT); + SEARCH_FUNCTION_DOMAIN); if (real_symbol.symbol == nullptr) error (_("could not find alias '%s' for function '%s'"), name, sym->print_name ()); |