search_struct_field: remove OFFSET parameter
I was trying to understand what the OFFSET parameter was for, and realized it was set to 0 in every call to search_struct_field. I assume that it was used at some point, but some subsequent changes made it useless. gdb/ChangeLog: * valops.c (search_struct_field): Remove OFFSET parameter. (value_cast_structs): Adjust calls to search_struct_field. (value_struct_elt): Same. (find_overload_match): Same.
This commit is contained in:
parent
a844296a98
commit
8a13d42d99
2 changed files with 18 additions and 12 deletions
|
@ -1,3 +1,10 @@
|
|||
2015-07-06 Simon Marchi <simon.marchi@ericsson.com>
|
||||
|
||||
* valops.c (search_struct_field): Remove OFFSET parameter.
|
||||
(value_cast_structs): Adjust calls to search_struct_field.
|
||||
(value_struct_elt): Same.
|
||||
(find_overload_match): Same.
|
||||
|
||||
2015-07-06 Simon Marchi <simon.marchi@ericsson.com>
|
||||
|
||||
* value.c (value_fetch_lazy): Update comment, change return
|
||||
|
|
23
gdb/valops.c
23
gdb/valops.c
|
@ -47,7 +47,7 @@ static int typecmp (int staticp, int varargs, int nargs,
|
|||
struct field t1[], struct value *t2[]);
|
||||
|
||||
static struct value *search_struct_field (const char *, struct value *,
|
||||
int, struct type *, int);
|
||||
struct type *, int);
|
||||
|
||||
static struct value *search_struct_method (const char *, struct value **,
|
||||
struct value **,
|
||||
|
@ -245,7 +245,7 @@ value_cast_structs (struct type *type, struct value *v2)
|
|||
if (TYPE_NAME (t1) != NULL)
|
||||
{
|
||||
v = search_struct_field (type_name_no_tag (t1),
|
||||
v2, 0, t2, 1);
|
||||
v2, t2, 1);
|
||||
if (v)
|
||||
return v;
|
||||
}
|
||||
|
@ -272,7 +272,7 @@ value_cast_structs (struct type *type, struct value *v2)
|
|||
&& !strcmp (TYPE_NAME (real_type), TYPE_NAME (t1)))
|
||||
return v;
|
||||
|
||||
v = search_struct_field (type_name_no_tag (t2), v, 0, real_type, 1);
|
||||
v = search_struct_field (type_name_no_tag (t2), v, real_type, 1);
|
||||
if (v)
|
||||
return v;
|
||||
}
|
||||
|
@ -281,7 +281,7 @@ value_cast_structs (struct type *type, struct value *v2)
|
|||
T2. This wouldn't work properly for classes with virtual
|
||||
bases, but those were handled above. */
|
||||
v = search_struct_field (type_name_no_tag (t2),
|
||||
value_zero (t1, not_lval), 0, t1, 1);
|
||||
value_zero (t1, not_lval), t1, 1);
|
||||
if (v)
|
||||
{
|
||||
/* Downcasting is possible (t1 is superclass of v2). */
|
||||
|
@ -1949,21 +1949,20 @@ do_search_struct_field (const char *name, struct value *arg1, int offset,
|
|||
}
|
||||
|
||||
/* Helper function used by value_struct_elt to recurse through
|
||||
baseclasses. Look for a field NAME in ARG1. Adjust the address of
|
||||
ARG1 by OFFSET bytes, and search in it assuming it has (class) type
|
||||
TYPE. If found, return value, else return NULL.
|
||||
baseclasses. Look for a field NAME in ARG1. Search in it assuming
|
||||
it has (class) type TYPE. If found, return value, else return NULL.
|
||||
|
||||
If LOOKING_FOR_BASECLASS, then instead of looking for struct
|
||||
fields, look for a baseclass named NAME. */
|
||||
|
||||
static struct value *
|
||||
search_struct_field (const char *name, struct value *arg1, int offset,
|
||||
search_struct_field (const char *name, struct value *arg1,
|
||||
struct type *type, int looking_for_baseclass)
|
||||
{
|
||||
struct value *result = NULL;
|
||||
int boffset = 0;
|
||||
|
||||
do_search_struct_field (name, arg1, offset, type, looking_for_baseclass,
|
||||
do_search_struct_field (name, arg1, 0, type, looking_for_baseclass,
|
||||
&result, &boffset, type);
|
||||
return result;
|
||||
}
|
||||
|
@ -2162,7 +2161,7 @@ value_struct_elt (struct value **argp, struct value **args,
|
|||
|
||||
/* Try as a field first, because if we succeed, there is less
|
||||
work to be done. */
|
||||
v = search_struct_field (name, *argp, 0, t, 0);
|
||||
v = search_struct_field (name, *argp, t, 0);
|
||||
if (v)
|
||||
return v;
|
||||
|
||||
|
@ -2196,7 +2195,7 @@ value_struct_elt (struct value **argp, struct value **args,
|
|||
/* See if user tried to invoke data as function. If so, hand it
|
||||
back. If it's not callable (i.e., a pointer to function),
|
||||
gdb should give an error. */
|
||||
v = search_struct_field (name, *argp, 0, t, 0);
|
||||
v = search_struct_field (name, *argp, t, 0);
|
||||
/* If we found an ordinary field, then it is not a method call.
|
||||
So, treat it as if it were a static member function. */
|
||||
if (v && static_memfuncp)
|
||||
|
@ -2519,7 +2518,7 @@ find_overload_match (struct value **args, int nargs,
|
|||
a function. */
|
||||
if (TYPE_CODE (check_typedef (value_type (obj))) == TYPE_CODE_STRUCT)
|
||||
{
|
||||
*valp = search_struct_field (name, obj, 0,
|
||||
*valp = search_struct_field (name, obj,
|
||||
check_typedef (value_type (obj)), 0);
|
||||
if (*valp)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue