From 9107291db4840152f7ecff059d89f659965be4b2 Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Wed, 24 Apr 1991 00:08:50 +0000 Subject: [PATCH] * main.c (cd_command): Call dont_repeat. * dbxread.c (read_struct_type): If const/volatile character is missing, don't complain, just continue. * dbxread.c (read_struct_type): Only try to read the fcontext if it is there. Also change "error_type " to "return error_type ". values.c (value_virtual_fn_field): If there is no fcontext, then do things the way GDB 3.x did. valops.c (search_struct_method): Add type to value_virtual_fn_field arguments. * dbxread.c (read_struct_type): Fix typo: *pp != '\0' -> **pp != '\0'. --- gdb/ChangeLog | 16 ++++++++++++++++ gdb/dbxread.c | 26 ++++++++++++++++++-------- gdb/main.c | 4 ++++ 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e388bdabf9e..0448749e464 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,19 @@ +Tue Apr 23 10:38:41 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * main.c (cd_command): Call dont_repeat. + + * dbxread.c (read_struct_type): If const/volatile character is + missing, don't complain, just continue. + + * dbxread.c (read_struct_type): Only try to read the fcontext if + it is there. Also change "error_type " to "return error_type ". + values.c (value_virtual_fn_field): If there is no fcontext, + then do things the way GDB 3.x did. + valops.c (search_struct_method): Add type to value_virtual_fn_field + arguments. + + * dbxread.c (read_struct_type): Fix typo: *pp != '\0' -> **pp != '\0'. + Mon Apr 22 00:02:43 1991 Jim Kingdon (kingdon at cygint.cygnus.com) * printcmd.c (print_scalar_formatted): Add 't' for binary. diff --git a/gdb/dbxread.c b/gdb/dbxread.c index e9a6c6f35b8..8b39b2fba37 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -4588,8 +4588,12 @@ read_struct_type (pp, type) D for `const volatile' member functions. */ if (**pp == 'A' || **pp == 'B' || **pp == 'C' || **pp == 'D') (*pp)++; +#if 0 + /* This probably just means we're processing a file compiled + with g++ version 1. */ else complain(&const_vol_complaint, **pp); +#endif /* 0 */ switch (*(*pp)++) { @@ -4604,14 +4608,20 @@ read_struct_type (pp, type) new_sublist->fn_field.voffset = (0x7fffffff & read_number (pp, ';')) + 1; - /* Figure out from whence this virtual function came. - It may belong to virtual function table of - one of its baseclasses. */ - new_sublist->fn_field.fcontext = read_type (pp); - if (**pp != ';') - error_type (pp); + if (**pp == ';' || **pp == '\0') + /* Must be g++ version 1. */ + new_sublist->fn_field.fcontext = 0; else - ++*pp; + { + /* Figure out from whence this virtual function came. + It may belong to virtual function table of + one of its baseclasses. */ + new_sublist->fn_field.fcontext = read_type (pp); + if (**pp != ';') + return error_type (pp); + else + ++*pp; + } break; case '?': @@ -4629,7 +4639,7 @@ read_struct_type (pp, type) sublist = new_sublist; length++; } - while (**pp != ';' && *pp != '\0'); + while (**pp != ';' && **pp != '\0'); *pp += 1; diff --git a/gdb/main.c b/gdb/main.c index dc1966a80b9..255a411f5ff 100644 --- a/gdb/main.c +++ b/gdb/main.c @@ -1652,6 +1652,10 @@ cd_command (dir, from_tty) int len; int change; + /* If the new directory is absolute, repeat is a no-op; if relative, + repeat might be useful but is more likely to be a mistake. */ + dont_repeat (); + if (dir == 0) error_no_arg ("new working directory"); -- 2.30.2