* 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)
	<la_make_symbol_completion_list>: 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.
This commit is contained in:
Tom Tromey 2012-12-07 20:09:11 +00:00
parent 155da5173d
commit 2f68a89553
14 changed files with 244 additions and 33 deletions

View file

@ -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);