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
|
@ -1,3 +1,10 @@
|
||||||
|
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.
|
||||||
|
|
||||||
2002-02-03 Daniel Jacobowitz <drow@mvista.com>
|
2002-02-03 Daniel Jacobowitz <drow@mvista.com>
|
||||||
|
|
||||||
* gdbtypes.c (init_simd_type): Use TYPE_TAG_NAME instead of
|
* gdbtypes.c (init_simd_type): Use TYPE_TAG_NAME instead of
|
||||||
|
|
|
@ -441,8 +441,12 @@ c_val_print (struct type *type, char *valaddr, int embedded_offset,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_CODE_METHOD:
|
case TYPE_CODE_METHOD:
|
||||||
cp_print_class_method (valaddr + embedded_offset, lookup_pointer_type (type), stream);
|
{
|
||||||
break;
|
struct value *v = value_at (type, address, NULL);
|
||||||
|
cp_print_class_method (VALUE_CONTENTS (value_addr (v)),
|
||||||
|
lookup_pointer_type (type), stream);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case TYPE_CODE_VOID:
|
case TYPE_CODE_VOID:
|
||||||
fprintf_filtered (stream, "void");
|
fprintf_filtered (stream, "void");
|
||||||
|
|
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)
|
if (j > 0 && args == 0)
|
||||||
error ("cannot resolve overloaded method `%s': no arguments supplied", name);
|
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))
|
if (TYPE_FN_FIELD_STUB (f, j))
|
||||||
check_stub_method (type, i, j);
|
check_stub_method (type, i, j);
|
||||||
if (!typecmp (TYPE_FN_FIELD_STATIC_P (f, j),
|
v = value_fn_field (arg1p, f, j, type, offset);
|
||||||
TYPE_FN_FIELD_ARGS (f, j), args))
|
if (v != NULL)
|
||||||
{
|
return v;
|
||||||
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--;
|
|
||||||
}
|
}
|
||||||
|
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