2002-02-03 Daniel Jacobowitz <drow@mvista.com>
* c-valprint.c (c_val_print): Pass a proper valaddr to cp_print_class_method. * valops.c (search_struct_method): If there is only one method and args is NULL, return that method.
This commit is contained in:
parent
493d28d51b
commit
acf5ed49a0
3 changed files with 35 additions and 15 deletions
35
gdb/valops.c
35
gdb/valops.c
|
@ -2274,23 +2274,32 @@ search_struct_method (char *name, struct value **arg1p,
|
|||
|
||||
if (j > 0 && args == 0)
|
||||
error ("cannot resolve overloaded method `%s': no arguments supplied", name);
|
||||
while (j >= 0)
|
||||
else if (j == 0 && args == 0)
|
||||
{
|
||||
if (TYPE_FN_FIELD_STUB (f, j))
|
||||
check_stub_method (type, i, j);
|
||||
if (!typecmp (TYPE_FN_FIELD_STATIC_P (f, j),
|
||||
TYPE_FN_FIELD_ARGS (f, j), args))
|
||||
{
|
||||
if (TYPE_FN_FIELD_VIRTUAL_P (f, j))
|
||||
return value_virtual_fn_field (arg1p, f, j, type, offset);
|
||||
if (TYPE_FN_FIELD_STATIC_P (f, j) && static_memfuncp)
|
||||
*static_memfuncp = 1;
|
||||
v = value_fn_field (arg1p, f, j, type, offset);
|
||||
if (v != NULL)
|
||||
return v;
|
||||
}
|
||||
j--;
|
||||
v = value_fn_field (arg1p, f, j, type, offset);
|
||||
if (v != NULL)
|
||||
return v;
|
||||
}
|
||||
else
|
||||
while (j >= 0)
|
||||
{
|
||||
if (TYPE_FN_FIELD_STUB (f, j))
|
||||
check_stub_method (type, i, j);
|
||||
if (!typecmp (TYPE_FN_FIELD_STATIC_P (f, j),
|
||||
TYPE_FN_FIELD_ARGS (f, j), args))
|
||||
{
|
||||
if (TYPE_FN_FIELD_VIRTUAL_P (f, j))
|
||||
return value_virtual_fn_field (arg1p, f, j, type, offset);
|
||||
if (TYPE_FN_FIELD_STATIC_P (f, j) && static_memfuncp)
|
||||
*static_memfuncp = 1;
|
||||
v = value_fn_field (arg1p, f, j, type, offset);
|
||||
if (v != NULL)
|
||||
return v;
|
||||
}
|
||||
j--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue