Modified Files:
authorKung Hsu <kung@cygnus>
Wed, 29 Sep 1993 17:02:10 +0000 (17:02 +0000)
committerKung Hsu <kung@cygnus>
Wed, 29 Sep 1993 17:02:10 +0000 (17:02 +0000)
  c-valprint.c

Log messages:
       * c-valprint.c: to fix virtual table print bug (pr2695)

gdb/c-valprint.c

index 2d5a82658989c177b932fe4bb65c0a36808910d9..bcf0a28767323776b11bb010d7b6dfe18cb805b9 100644 (file)
@@ -200,8 +200,25 @@ c_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
              if (vtblprint)
                {
                  value vt_val;
+                 struct symbol *wsym = (struct symbol *)NULL;
+                 struct type *wtype;
+                 struct symtab *s;
+                 struct block *block = (struct block *)NULL;
+                 int is_this_fld;
 
-                 vt_val = value_at (TYPE_TARGET_TYPE (type), vt_address);
+
+                 wsym = lookup_symbol (SYMBOL_NAME(msymbol), block, 
+                               VAR_NAMESPACE, &is_this_fld, &s);
+                 if (wsym)
+                   {
+                     wtype = SYMBOL_TYPE(wsym);
+                   }
+                 else
+                   {
+                     wtype = TYPE_TARGET_TYPE(type);
+                   }
+                 vt_val = value_at (wtype, vt_address);
                  val_print (VALUE_TYPE (vt_val), VALUE_CONTENTS (vt_val),
                             VALUE_ADDRESS (vt_val), stream, format,
                             deref_ref, recurse + 1, pretty);