diff options
author | Daniel Jacobowitz <drow@false.org> | 2002-02-04 02:14:46 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2002-02-04 02:14:46 +0000 |
commit | acf5ed49a0160dd452b2004034b847912f23940b (patch) | |
tree | 915285d68d02c2bf49705b5a7fd31042752948fa /gdb/valops.c | |
parent | 493d28d51bca5194de1db46ee372c79de2408975 (diff) | |
download | gdb-acf5ed49a0160dd452b2004034b847912f23940b.zip gdb-acf5ed49a0160dd452b2004034b847912f23940b.tar.gz gdb-acf5ed49a0160dd452b2004034b847912f23940b.tar.bz2 |
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.
Diffstat (limited to 'gdb/valops.c')
-rw-r--r-- | gdb/valops.c | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/gdb/valops.c b/gdb/valops.c index f211753..6f7e251 100644 --- a/gdb/valops.c +++ b/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--; + } } } |