*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / cp-valprint.c
index 60a209343128446de7715dd85b22d42bdb9452da..42a48f55676f1e611c7d8d300b0772b211e56b3a 100644 (file)
@@ -143,7 +143,7 @@ cp_print_class_method (char *valaddr,
       char *demangled_name;
 
       fprintf_filtered (stream, "&");
-      fprintf_filtered (stream, kind);
+      fputs_filtered (kind, stream);
       demangled_name = cplus_demangle (TYPE_FN_FIELD_PHYSNAME (f, j),
                                       DMGL_ANSI | DMGL_PARAMS);
       if (demangled_name == NULL)
@@ -554,7 +554,7 @@ cp_print_value (struct type *type, struct type *real_type, char *valaddr,
        {
          boffset = baseclass_offset (type, i,
                                      valaddr + offset,
-                                     address + offset);
+                                     address);
          skip = ((boffset == -1) || (boffset + offset) < 0) ? 1 : -1;
 
          if (BASETYPE_VIA_VIRTUAL (type, i))
@@ -569,9 +569,10 @@ cp_print_value (struct type *type, struct type *real_type, char *valaddr,
                {
                  /* FIXME (alloca): unsafe if baseclass is really really large. */
                  base_valaddr = (char *) alloca (TYPE_LENGTH (baseclass));
-                 if (target_read_memory (address + offset + boffset, base_valaddr,
+                 if (target_read_memory (address + boffset, base_valaddr,
                                          TYPE_LENGTH (baseclass)) != 0)
                    skip = 1;
+                 address = address + boffset;
                  thisoffset = 0;
                  boffset = 0;
                  thistype = baseclass;
@@ -600,7 +601,8 @@ cp_print_value (struct type *type, struct type *real_type, char *valaddr,
        fprintf_filtered (stream, "<invalid address>");
       else
        cp_print_value_fields (baseclass, thistype, base_valaddr,
-                              thisoffset + boffset, address, stream, format,
+                              thisoffset + boffset, address + boffset,
+                              stream, format,
                               recurse, pretty,
                               ((struct type **)
                                obstack_base (&dont_print_vb_obstack)),
@@ -684,7 +686,7 @@ cp_print_class_member (char *valaddr, struct type *domain,
      print it.  */
   int extra = 0;
   int bits = 0;
-  register unsigned int i;
+  unsigned int i;
   unsigned len = TYPE_NFIELDS (domain);
 
   /* @@ Make VAL into bit offset */
@@ -718,7 +720,7 @@ cp_print_class_member (char *valaddr, struct type *domain,
   if (i < len)
     {
       char *name;
-      fprintf_filtered (stream, prefix);
+      fputs_filtered (prefix, stream);
       name = type_name_no_tag (domain);
       if (name)
        fputs_filtered (name, stream);
This page took 0.024 seconds and 4 git commands to generate.