From 0d24affba26f2723201fbbc77dc66b88467a956e Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 7 Dec 2012 20:09:07 +0000 Subject: * ada-lang.c (ada_make_symbol_completion_list): Add 'code' argument, assertion. * c-exp.y (typebase): Add completion productions. * completer.c (expression_completer): Handle tag completion. * expression.h (parse_expression_for_completion): Add argument. * f-lang.c (f_make_symbol_completion_list): Add 'code' argument. * language.h (struct language_defn) : Add 'code' argument. * parse.c (expout_tag_completion_type, expout_completion_name): New globals. (mark_struct_expression): Add assertion. (mark_completion_tag): New function. (parse_exp_in_context): Initialize new globals. (parse_expression_for_completion): Add 'code' argument. Handle tag completion. * parser-defs.h (mark_completion_tag): Declare. * symtab.c (default_make_symbol_completion_list_break_on): Add 'code' argument. Update. (default_make_symbol_completion_list): Add 'code' argument. (make_symbol_completion_list): Update. (make_symbol_completion_type): New function. * symtab.h (default_make_symbol_completion_list_break_on) (default_make_symbol_completion_list): Update. (make_symbol_completion_type): Declare. testsuite * gdb.base/break1.c (enum some_enum, union some_union): New. (some_enum_global, some_union_global, some_value): New globals. * gdb.base/completion.exp: Add tag completion tests. --- gdb/ada-lang.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gdb/ada-lang.c') diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index b03b2a2c7be..f07e4bc0790 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -5802,7 +5802,7 @@ ada_expand_partial_symbol_name (const char *name, void *user_data) the entire command on which completion is made. */ static VEC (char_ptr) * -ada_make_symbol_completion_list (char *text0, char *word) +ada_make_symbol_completion_list (char *text0, char *word, enum type_code code) { char *text; int text_len; @@ -5817,6 +5817,8 @@ ada_make_symbol_completion_list (char *text0, char *word) int i; struct block_iterator iter; + gdb_assert (code == TYPE_CODE_UNDEF); + if (text0[0] == '<') { text = xstrdup (text0); -- cgit v1.2.1