Suggested by Stewart Brown <sb24@avaya.com>:
authorDaniel Jacobowitz <drow@false.org>
Sat, 4 Jan 2003 21:51:53 +0000 (21:51 +0000)
committerDaniel Jacobowitz <drow@false.org>
Sat, 4 Jan 2003 21:51:53 +0000 (21:51 +0000)
* c-typeprint.c (c_type_print_varspec_prefix): Pass value of show
in recursive calls.  Handle TYPE_CODE_TYPEDEF.
(c_type_print_varspec_suffix): Likewise.

gdb/ChangeLog
gdb/c-typeprint.c

index 5ca304793a555596723575a5908f4222f04fc8d0..2d03f1875599ba06d7f7741a0404de8ac83b42a0 100644 (file)
@@ -1,3 +1,10 @@
+2003-01-04  Daniel Jacobowitz  <drow@mvista.com>
+
+       Suggested by Stewart Brown <sb24@avaya.com>:
+       * c-typeprint.c (c_type_print_varspec_prefix): Pass value of show
+       in recursive calls.  Handle TYPE_CODE_TYPEDEF.
+       (c_type_print_varspec_suffix): Likewise.
+
 2003-01-04  Mark Kettenis  <kettenis@gnu.org>
 
        * configure.in: Don't set and AC_SUBST SUBDIRS.
index fa4683a862637865338b6e37e579c547d1644b7c..e0218a49529f8629b019068727327f584cf1796e 100644 (file)
@@ -216,7 +216,7 @@ c_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
   switch (TYPE_CODE (type))
     {
     case TYPE_CODE_PTR:
-      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 1, 1);
+      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, show, 1, 1);
       fprintf_filtered (stream, "*");
       c_type_print_modifier (type, stream, 1, need_post_space);
       break;
@@ -224,7 +224,7 @@ c_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
     case TYPE_CODE_MEMBER:
       if (passed_a_ptr)
        fprintf_filtered (stream, "(");
-      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 0, 0);
+      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, show, 0, 0);
       fprintf_filtered (stream, " ");
       name = type_name_no_tag (TYPE_DOMAIN_TYPE (type));
       if (name)
@@ -237,7 +237,7 @@ c_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
     case TYPE_CODE_METHOD:
       if (passed_a_ptr)
        fprintf_filtered (stream, "(");
-      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 0, 0);
+      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, show, 0, 0);
       if (passed_a_ptr)
        {
          fprintf_filtered (stream, " ");
@@ -247,23 +247,27 @@ c_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
       break;
 
     case TYPE_CODE_REF:
-      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 1, 0);
+      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, show, 1, 0);
       fprintf_filtered (stream, "&");
       c_type_print_modifier (type, stream, 1, need_post_space);
       break;
 
     case TYPE_CODE_FUNC:
-      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 0, 0);
+      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, show, 0, 0);
       if (passed_a_ptr)
        fprintf_filtered (stream, "(");
       break;
 
     case TYPE_CODE_ARRAY:
-      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 0, 0);
+      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, show, 0, 0);
       if (passed_a_ptr)
        fprintf_filtered (stream, "(");
       break;
 
+    case TYPE_CODE_TYPEDEF:
+      c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, show, 0, 0);
+      break;
+
     case TYPE_CODE_UNDEF:
     case TYPE_CODE_STRUCT:
     case TYPE_CODE_UNION:
@@ -279,7 +283,6 @@ c_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
     case TYPE_CODE_STRING:
     case TYPE_CODE_BITSTRING:
     case TYPE_CODE_COMPLEX:
-    case TYPE_CODE_TYPEDEF:
     case TYPE_CODE_TEMPLATE:
       /* These types need no prefix.  They are listed here so that
          gcc -Wall will reveal any types that haven't been handled.  */
@@ -543,19 +546,22 @@ c_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
                           / TYPE_LENGTH (TYPE_TARGET_TYPE (type))));
       fprintf_filtered (stream, "]");
 
-      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 0, 0);
+      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, show,
+                                  0, 0);
       break;
 
     case TYPE_CODE_MEMBER:
       if (passed_a_ptr)
        fprintf_filtered (stream, ")");
-      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 0, 0);
+      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, show,
+                                  0, 0);
       break;
 
     case TYPE_CODE_METHOD:
       if (passed_a_ptr)
        fprintf_filtered (stream, ")");
-      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 0, 0);
+      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, show,
+                                  0, 0);
       if (passed_a_ptr)
        {
          c_type_print_args (type, stream);
@@ -564,7 +570,8 @@ c_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
 
     case TYPE_CODE_PTR:
     case TYPE_CODE_REF:
-      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 1, 0);
+      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, show,
+                                  1, 0);
       break;
 
     case TYPE_CODE_FUNC:
@@ -592,7 +599,12 @@ c_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
              }
          fprintf_filtered (stream, ")");
        }
-      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0,
+      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, show,
+                                  passed_a_ptr, 0);
+      break;
+
+    case TYPE_CODE_TYPEDEF:
+      c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, show,
                                   passed_a_ptr, 0);
       break;
 
@@ -611,7 +623,6 @@ c_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
     case TYPE_CODE_STRING:
     case TYPE_CODE_BITSTRING:
     case TYPE_CODE_COMPLEX:
-    case TYPE_CODE_TYPEDEF:
     case TYPE_CODE_TEMPLATE:
       /* These types do not need a suffix.  They are listed so that
          gcc -Wall will report types that may not have been considered.  */