/* YACC parser for Ada expressions, for GDB.
- Copyright (C) 1986, 1989, 1990, 1991, 1993, 1994, 1997, 2000, 2003, 2004,
- 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1989-1991, 1993-1994, 1997, 2000, 2003-2004,
+ 2007-2012 Free Software Foundation, Inc.
This file is part of GDB.
else
name = ada_encode (raw_name);
- nsyms = ada_lookup_symbol_list (name, context, VAR_DOMAIN, &syms);
+ nsyms = ada_lookup_symbol_list (name, context, VAR_DOMAIN, &syms, 1);
if (context == NULL
&& (nsyms == 0 || SYMBOL_CLASS (syms[0].sym) != LOC_BLOCK))
symtab = lookup_symtab (name);
encoded_name[tail_index] = '\0';
nsyms = ada_lookup_symbol_list (encoded_name, block,
- VAR_DOMAIN, &syms);
+ VAR_DOMAIN, &syms, 1);
encoded_name[tail_index] = terminator;
/* A single symbol may rename a package or object. */
FIXME pnh 7/20/2007. */
if (nsyms == 1)
{
- struct symbol *renaming =
- ada_find_renaming_symbol (SYMBOL_LINKAGE_NAME (syms[0].sym),
- syms[0].block);
+ struct symbol *ren_sym =
+ ada_find_renaming_symbol (syms[0].sym, syms[0].block);
- if (renaming != NULL)
- syms[0].sym = renaming;
+ if (ren_sym != NULL)
+ syms[0].sym = ren_sym;
}
type_sym = select_possible_type_sym (syms, nsyms);
{
struct ada_symbol_info *syms;
int nsyms = ada_lookup_symbol_list (name.ptr, expression_context_block,
- VAR_DOMAIN, &syms);
+ VAR_DOMAIN, &syms, 1);
if (nsyms != 1 || SYMBOL_CLASS (syms[0].sym) == LOC_TYPEDEF)
write_exp_op_with_string (OP_NAME, name);
else
char name[7];
int f;
- if (type == NULL || TYPE_CODE (type) != TYPE_CODE_ENUM)
+ if (type == NULL)
return val;
+ type = check_typedef (type);
+ if (TYPE_CODE (type) != TYPE_CODE_ENUM)
+ return val;
+
xsnprintf (name, sizeof (name), "QU%02x", (int) val);
for (f = 0; f < TYPE_NFIELDS (type); f += 1)
{