aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog16
-rw-r--r--gdb/dbxread.c26
-rw-r--r--gdb/main.c4
3 files changed, 38 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e388bda..0448749 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 e9a6c6f..8b39b2f 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 dc1966a..255a411 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");