From 74ccd7f58b78303b1de7c7823d39821119592c20 Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Thu, 26 Jan 2012 04:20:36 +0000 Subject: Ada: allow unqualified function names in linespecs This is the meat, where we replace the old la_symbol_name_compare language method with the new ada_get_symbol_name_match_p. It fixes the problem when trying to insert a breakpoint on "+". gdb/ChangeLog: * language.h (symbol_name_match_p_ftype): New typedef. (struct language_defn): Replace field la_symbol_name_compare by la_get_symbol_name_match_p. * ada-lang.c (ada_get_symbol_name_match_p): New function. (ada_language_defn): Use it. * linespec.c (struct symbol_matcher_data): New type. (iterate_name_matcher): Rewrite. (iterate_over_all_matching_symtabs): Pass a pointer to a symbol_matcher_data struct to expand_symtabs_matching instead of just the lookup name. * c-lang.c, d-lang.c, jv-lang.c, m2-lang.c, objc-lang.c, opencl-lang.c, p-lang.c, language.c: Delete field la_symbol_name_compare, and replace by NULL for new field la_get_symbol_name_match_p. * symfile.h (struct quick_symbol_functions): Update comment. --- gdb/ada-lang.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'gdb/ada-lang.c') diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 11ff73f..2f70980 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -12319,6 +12319,18 @@ static const struct exp_descriptor ada_exp_descriptor = { ada_evaluate_subexp }; +/* Implement the "la_get_symbol_name_match_p" language_defn method + for Ada. */ + +static symbol_name_match_p_ftype +ada_get_symbol_name_match_p (const char *lookup_name) +{ + if (should_use_wild_match (lookup_name)) + return wild_match; + else + return compare_names; +} + const struct language_defn ada_language_defn = { "ada", /* Language name */ language_ada, @@ -12355,7 +12367,7 @@ const struct language_defn ada_language_defn = { ada_print_array_index, default_pass_by_reference, c_get_string, - compare_names, + ada_get_symbol_name_match_p, /* la_get_symbol_name_match_p */ ada_iterate_over_symbols, LANG_MAGIC }; -- cgit v1.1