diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/cp-valprint.c | 2 | ||||
-rw-r--r-- | gdb/stabsread.c | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fcc450b..65475e0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +Wed Apr 14 12:49:29 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * stabsread.c (read_member_functions): Initialize domain for stubbed + member functions to avoid gdb core dumps when printing pointers + to member functions. + * cp-valprint.c (cp_print_class_method): Check for stubbed member + functions. + Tue Apr 13 08:28:26 1993 Jim Kingdon (kingdon@cygnus.com) * expprint.c (print_subexp): If opcode not found in op_print_tab, diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c index 3e40685..680a75d 100644 --- a/gdb/cp-valprint.c +++ b/gdb/cp-valprint.c @@ -116,6 +116,8 @@ cp_print_class_method (valaddr, type, stream) for (j = 0; j < len2; j++) { QUIT; + if (TYPE_FN_FIELD_STUB (f, j)) + check_stub_method (domain, i, j); if (STREQ (SYMBOL_NAME (sym), TYPE_FN_FIELD_PHYSNAME (f, j))) { goto common; diff --git a/gdb/stabsread.c b/gdb/stabsread.c index 52c6c72..0061d20 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -1566,6 +1566,8 @@ read_member_functions (fip, pp, type, objfile) if (TYPE_FLAGS (new_sublist -> fn_field.type) & TYPE_FLAG_STUB) { + if (!TYPE_DOMAIN_TYPE (new_sublist -> fn_field.type)) + TYPE_DOMAIN_TYPE (new_sublist -> fn_field.type) = type; new_sublist -> fn_field.is_stub = 1; } new_sublist -> fn_field.physname = savestring (*pp, p - *pp); |