* main.c (cd_command): Call dont_repeat.
authorJim Kingdon <jkingdon@engr.sgi.com>
Wed, 24 Apr 1991 00:08:50 +0000 (00:08 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Wed, 24 Apr 1991 00:08:50 +0000 (00:08 +0000)
* 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
gdb/dbxread.c
gdb/main.c

index e388bdabf9eea246c954546290ee076214424d28..0448749e464a191055d0ac0fe4de86a8e3bfb704 100644 (file)
@@ -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.
index e9a6c6f35b86462a2add40d02937ce2968949cf9..8b39b2fba37af34396c7c0a01b7eb0c1ef609edd 100644 (file)
@@ -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;
 
index dc1966a80b9777fcd63431d83873f5fc62d2a60a..255a411f5ff24de7af985d744b607ab5ceb16a36 100644 (file)
@@ -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");