2002-04-09 Daniel Jacobowitz <drow@mvista.com>
[deliverable/binutils-gdb.git] / gdb / c-valprint.c
index c9109f0fb808b337d2319568ee03403593b01ec9..9361067ceaac55e93e7e59a61d5f237a1b846933 100644 (file)
@@ -441,8 +441,12 @@ c_val_print (struct type *type, char *valaddr, int embedded_offset,
       break;
 
     case TYPE_CODE_METHOD:
-      cp_print_class_method (valaddr + embedded_offset, lookup_pointer_type (type), stream);
-      break;
+      {
+       struct value *v = value_at (type, address, NULL);
+       cp_print_class_method (VALUE_CONTENTS (value_addr (v)),
+                              lookup_pointer_type (type), stream);
+       break;
+      }
 
     case TYPE_CODE_VOID:
       fprintf_filtered (stream, "void");
@@ -459,6 +463,28 @@ c_val_print (struct type *type, char *valaddr, int embedded_offset,
       fprintf_filtered (stream, "<incomplete type>");
       break;
 
+    case TYPE_CODE_COMPLEX:
+      if (format)
+       print_scalar_formatted (valaddr + embedded_offset,
+                               TYPE_TARGET_TYPE (type),
+                               format, 0, stream);
+      else
+       print_floating (valaddr + embedded_offset, TYPE_TARGET_TYPE (type),
+                       stream);
+      fprintf_filtered (stream, " + ");
+      if (format)
+       print_scalar_formatted (valaddr + embedded_offset
+                               + TYPE_LENGTH (TYPE_TARGET_TYPE (type)),
+                               TYPE_TARGET_TYPE (type),
+                               format, 0, stream);
+      else
+       print_floating (valaddr + embedded_offset
+                       + TYPE_LENGTH (TYPE_TARGET_TYPE (type)),
+                       TYPE_TARGET_TYPE (type),
+                       stream);
+      fprintf_filtered (stream, " * I");
+      break;
+
     default:
       error ("Invalid C/C++ type code %d in symbol table.", TYPE_CODE (type));
     }
This page took 0.024389 seconds and 4 git commands to generate.