* symtab.c (check_field): Now static. Move from...
* valops.c (check_field): ... here. Remove. * value.h (check_field): Don't declare.
This commit is contained in:
parent
451b7c33cb
commit
2dc3df72a7
4 changed files with 42 additions and 38 deletions
|
@ -1,3 +1,9 @@
|
|||
2012-12-14 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* symtab.c (check_field): Now static. Move from...
|
||||
* valops.c (check_field): ... here. Remove.
|
||||
* value.h (check_field): Don't declare.
|
||||
|
||||
2012-12-14 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* NEWS: Mention "info proc" and core files.
|
||||
|
|
36
gdb/symtab.c
36
gdb/symtab.c
|
@ -1278,6 +1278,42 @@ lookup_language_this (const struct language_defn *lang,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* Given TYPE, a structure/union,
|
||||
return 1 if the component named NAME from the ultimate target
|
||||
structure/union is defined, otherwise, return 0. */
|
||||
|
||||
static int
|
||||
check_field (struct type *type, const char *name)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* The type may be a stub. */
|
||||
CHECK_TYPEDEF (type);
|
||||
|
||||
for (i = TYPE_NFIELDS (type) - 1; i >= TYPE_N_BASECLASSES (type); i--)
|
||||
{
|
||||
const char *t_field_name = TYPE_FIELD_NAME (type, i);
|
||||
|
||||
if (t_field_name && (strcmp_iw (t_field_name, name) == 0))
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* C++: If it was not found as a data field, then try to return it
|
||||
as a pointer to a method. */
|
||||
|
||||
for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; --i)
|
||||
{
|
||||
if (strcmp_iw (TYPE_FN_FIELDLIST_NAME (type, i), name) == 0)
|
||||
return 1;
|
||||
}
|
||||
|
||||
for (i = TYPE_N_BASECLASSES (type) - 1; i >= 0; i--)
|
||||
if (check_field (TYPE_BASECLASS (type, i), name))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Behave like lookup_symbol except that NAME is the natural name
|
||||
(e.g., demangled name) of the symbol that we're looking for. */
|
||||
|
||||
|
|
36
gdb/valops.c
36
gdb/valops.c
|
@ -3180,42 +3180,6 @@ destructor_name_p (const char *name, struct type *type)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Given TYPE, a structure/union,
|
||||
return 1 if the component named NAME from the ultimate target
|
||||
structure/union is defined, otherwise, return 0. */
|
||||
|
||||
int
|
||||
check_field (struct type *type, const char *name)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* The type may be a stub. */
|
||||
CHECK_TYPEDEF (type);
|
||||
|
||||
for (i = TYPE_NFIELDS (type) - 1; i >= TYPE_N_BASECLASSES (type); i--)
|
||||
{
|
||||
const char *t_field_name = TYPE_FIELD_NAME (type, i);
|
||||
|
||||
if (t_field_name && (strcmp_iw (t_field_name, name) == 0))
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* C++: If it was not found as a data field, then try to return it
|
||||
as a pointer to a method. */
|
||||
|
||||
for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; --i)
|
||||
{
|
||||
if (strcmp_iw (TYPE_FN_FIELDLIST_NAME (type, i), name) == 0)
|
||||
return 1;
|
||||
}
|
||||
|
||||
for (i = TYPE_N_BASECLASSES (type) - 1; i >= 0; i--)
|
||||
if (check_field (TYPE_BASECLASS (type, i), name))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* C++: Given an aggregate type CURTYPE, and a member name NAME,
|
||||
return the appropriate member (or the address of the member, if
|
||||
WANT_ADDRESS). This function is used to resolve user expressions
|
||||
|
|
|
@ -913,8 +913,6 @@ extern void print_variable_and_value (const char *name,
|
|||
struct ui_file *stream,
|
||||
int indent);
|
||||
|
||||
extern int check_field (struct type *, const char *);
|
||||
|
||||
extern void typedef_print (struct type *type, struct symbol *news,
|
||||
struct ui_file *stream);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue