From 6d783f5d7d980989b16a480fb7e103ee50fdcd15 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 19 Jul 2017 00:39:26 +0100 Subject: lookup_encoded --- gdb/ada-lang.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index db3e344d681..2b42f3695f0 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -5891,11 +5891,20 @@ ada_lookup_encoded_symbol (const char *name, const struct block *block, { struct block_symbol *candidates; int n_candidates; + std::string verbatim; + + /* Since we already have an encoded name, force a verbatim match, to + avoid a double encoding. */ + verbatim.reserve (1 + strlen (name) + 1); + verbatim += "<"; + verbatim += name; + verbatim += ">"; gdb_assert (info != NULL); memset (info, 0, sizeof (struct block_symbol)); - n_candidates = ada_lookup_symbol_list (name, block, domain, &candidates); + n_candidates = ada_lookup_symbol_list (verbatim.c_str (), + block, domain, &candidates); if (n_candidates == 0) return; -- cgit v1.2.1