aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2020-12-14 08:14:06 -0700
committerTom Tromey <tromey@adacore.com>2020-12-14 08:14:06 -0700
commit25a1127be7d6923904b2346ff76e7e9658620bf5 (patch)
treead7729292a03fa5498abbeb71f73b6d016630a38 /gdb
parente26624c669037529816f89ce1b9c78954c389ca1 (diff)
downloadgdb-25a1127be7d6923904b2346ff76e7e9658620bf5.zip
gdb-25a1127be7d6923904b2346ff76e7e9658620bf5.tar.gz
gdb-25a1127be7d6923904b2346ff76e7e9658620bf5.tar.bz2
Use exact match in get_var_value
get_var_value is only used when an exact match is needed. This changes this function to ensure this sort of matching is done. gdb/ChangeLog 2020-12-14 Tom Tromey <tromey@adacore.com> * ada-lang.c (get_var_value): Only consider exact matches.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/ada-lang.c8
2 files changed, 9 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f87f6df..21a6b97 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2020-12-14 Tom Tromey <tromey@adacore.com>
+ * ada-lang.c (get_var_value): Only consider exact matches.
+
+2020-12-14 Tom Tromey <tromey@adacore.com>
+
* dwarf2/read.c (rewrite_array_type): New function.
(quirk_ada_thick_pointer_struct): Use rewrite_array_type.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index b41d2bf..ca66642 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -11351,14 +11351,16 @@ scan_discrim_bound (const char *str, int k, struct value *dval, LONGEST * px,
return 1;
}
-/* Value of variable named NAME in the current environment. If
- no such variable found, then if ERR_MSG is null, returns 0, and
+/* Value of variable named NAME. Only exact matches are considered.
+ If no such variable found, then if ERR_MSG is null, returns 0, and
otherwise causes an error with message ERR_MSG. */
static struct value *
get_var_value (const char *name, const char *err_msg)
{
- lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
+ std::string quoted_name = add_angle_brackets (name);
+
+ lookup_name_info lookup_name (quoted_name, symbol_name_match_type::FULL);
std::vector<struct block_symbol> syms;
int nsyms = ada_lookup_symbol_list_worker (lookup_name,