]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/c-typeprint.c
import gdb-1999-07-07 post reformat
[thirdparty/binutils-gdb.git] / gdb / c-typeprint.c
index 52569f8fc53c6ba37c4567d4704b4ec25cb0c633..d6eca3042b7846e04b0c5cd04618f873d30cebfd 100644 (file)
@@ -2,21 +2,22 @@
    Copyright 1986, 1988, 1989, 1991, 1993, 1994, 1995, 1996, 1998, 1999
    Free Software Foundation, Inc.
 
-This file is part of GDB.
+   This file is part of GDB.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
 #include "obstack.h"
@@ -41,7 +42,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 /* Flag indicating target was compiled by HP compiler */
 extern int hp_som_som_object_present;
 
-static void cp_type_print_method_args PARAMS ((struct type **args, char *prefix, char *varstring, int staticp, GDB_FILE *stream));
+static void cp_type_print_method_args PARAMS ((struct type ** args, char *prefix, char *varstring, int staticp, GDB_FILE * stream));
 
 static void
 c_type_print_args PARAMS ((struct type *, GDB_FILE *));
@@ -54,58 +55,58 @@ c_type_print_varspec_prefix PARAMS ((struct type *, GDB_FILE *, int, int));
 
 static void
 c_type_print_cv_qualifier PARAMS ((struct type *, GDB_FILE *, int, int));
+\f
 
 
-\f
 /* Print a description of a type in the format of a 
    typedef for the current language.
    NEW is the new name for a type TYPE. */
 
 void
 c_typedef_print (type, new, stream)
-   struct type *type;
-   struct symbol *new;
-   GDB_FILE *stream;
+     struct type *type;
+     struct symbol *new;
+     GDB_FILE *stream;
 {
   CHECK_TYPEDEF (type);
-   switch (current_language->la_language)
-   {
+  switch (current_language->la_language)
+    {
 #ifdef _LANG_c
-   case language_c:
-   case language_cplus:
-      fprintf_filtered(stream, "typedef ");
-      type_print(type,"",stream,0);
-      if(TYPE_NAME ((SYMBOL_TYPE (new))) == 0
-        || !STREQ (TYPE_NAME ((SYMBOL_TYPE (new))), SYMBOL_NAME (new)))
-       fprintf_filtered(stream,  " %s", SYMBOL_SOURCE_NAME(new));
+    case language_c:
+    case language_cplus:
+      fprintf_filtered (stream, "typedef ");
+      type_print (type, "", stream, 0);
+      if (TYPE_NAME ((SYMBOL_TYPE (new))) == 0
+         || !STREQ (TYPE_NAME ((SYMBOL_TYPE (new))), SYMBOL_NAME (new)))
+       fprintf_filtered (stream, " %s", SYMBOL_SOURCE_NAME (new));
       break;
 #endif
 #ifdef _LANG_m2
-   case language_m2:
-      fprintf_filtered(stream, "TYPE ");
-      if(!TYPE_NAME(SYMBOL_TYPE(new)) ||
-        !STREQ (TYPE_NAME(SYMBOL_TYPE(new)), SYMBOL_NAME(new)))
-       fprintf_filtered(stream, "%s = ", SYMBOL_SOURCE_NAME(new));
+    case language_m2:
+      fprintf_filtered (stream, "TYPE ");
+      if (!TYPE_NAME (SYMBOL_TYPE (new)) ||
+         !STREQ (TYPE_NAME (SYMBOL_TYPE (new)), SYMBOL_NAME (new)))
+       fprintf_filtered (stream, "%s = ", SYMBOL_SOURCE_NAME (new));
       else
-        fprintf_filtered(stream, "<builtin> = ");
-      type_print(type,"",stream,0);
+       fprintf_filtered (stream, "<builtin> = ");
+      type_print (type, "", stream, 0);
       break;
 #endif
 #ifdef _LANG_chill
-   case language_chill:
-      fprintf_filtered(stream, "SYNMODE ");
-      if(!TYPE_NAME(SYMBOL_TYPE(new)) ||
-        !STREQ (TYPE_NAME(SYMBOL_TYPE(new)), SYMBOL_NAME(new)))
-       fprintf_filtered(stream, "%s = ", SYMBOL_SOURCE_NAME(new));
+    case language_chill:
+      fprintf_filtered (stream, "SYNMODE ");
+      if (!TYPE_NAME (SYMBOL_TYPE (new)) ||
+         !STREQ (TYPE_NAME (SYMBOL_TYPE (new)), SYMBOL_NAME (new)))
+       fprintf_filtered (stream, "%s = ", SYMBOL_SOURCE_NAME (new));
       else
-        fprintf_filtered(stream, "<builtin> = ");
-      type_print(type,"",stream,0);
+       fprintf_filtered (stream, "<builtin> = ");
+      type_print (type, "", stream, 0);
       break;
 #endif
-   default:
-      error("Language not supported.");
-   }
-   fprintf_filtered(stream, ";\n");
+    default:
+      error ("Language not supported.");
+    }
+  fprintf_filtered (stream, ";\n");
 }
 
 
@@ -129,8 +130,8 @@ c_print_type (type, varstring, stream, show, level)
   code = TYPE_CODE (type);
   if ((varstring != NULL && *varstring != '\0')
       ||
-      /* Need a space if going to print stars or brackets;
-        but not if we will print just a type name.  */
+  /* Need a space if going to print stars or brackets;
+     but not if we will print just a type name.  */
       ((show > 0 || TYPE_NAME (type) == 0)
        &&
        (code == TYPE_CODE_PTR || code == TYPE_CODE_FUNC
@@ -146,33 +147,33 @@ c_print_type (type, varstring, stream, show, level)
       fputs_filtered (varstring, stream);
 
       /* For demangled function names, we have the arglist as part of the name,
-        so don't print an additional pair of ()'s */
+         so don't print an additional pair of ()'s */
 
-      demangled_args = strchr(varstring, '(') != NULL;
+      demangled_args = strchr (varstring, '(') != NULL;
       c_type_print_varspec_suffix (type, stream, show, 0, demangled_args);
     }
 }
-  
+
 /* If TYPE is a derived type, then print out derivation information.
    Print only the actual base classes of this type, not the base classes
    of the base classes.  I.E.  for the derivation hierarchy:
 
-       class A { int a; };
-       class B : public A {int b; };
-       class C : public B {int c; };
+   class A { int a; };
+   class B : public A {int b; };
+   class C : public B {int c; };
 
    Print the type of class C as:
 
-       class C : public B {
-               int c;
-       }
+   class C : public B {
+   int c;
+   }
 
    Not as the following (like gdb used to), which is not legal C++ syntax for
    derived types and may be confused with the multiple inheritance form:
 
-       class C : public B : public A {
-               int c;
-       }
+   class C : public B : public A {
+   int c;
+   }
 
    In general, gdb should try to print the types as closely as possible to
    the form that they appear in the source code. 
@@ -192,9 +193,9 @@ cp_type_print_derivation_info (stream, type)
     {
       fputs_filtered (i == 0 ? ": " : ", ", stream);
       fprintf_filtered (stream, "%s%s ",
-                       BASETYPE_VIA_PUBLIC (type, i) ? "public" 
-                       : (TYPE_FIELD_PROTECTED (type, i) ? "protected" : "private"),
-                       BASETYPE_VIA_VIRTUAL(type, i) ? " virtual" : "");
+                       BASETYPE_VIA_PUBLIC (type, i) ? "public"
+              : (TYPE_FIELD_PROTECTED (type, i) ? "protected" : "private"),
+                       BASETYPE_VIA_VIRTUAL (type, i) ? " virtual" : "");
       name = type_name_no_tag (TYPE_BASECLASS (type, i));
       fprintf_filtered (stream, "%s", name ? name : "(null)");
     }
@@ -204,7 +205,7 @@ cp_type_print_derivation_info (stream, type)
     }
 }
 /* Print the C++ method arguments ARGS to the file STREAM.  */
+
 static void
 cp_type_print_method_args (args, prefix, varstring, staticp, stream)
      struct type **args;
@@ -214,33 +215,34 @@ cp_type_print_method_args (args, prefix, varstring, staticp, stream)
      GDB_FILE *stream;
 {
   int i;
+
   fprintf_symbol_filtered (stream, prefix, language_cplus, DMGL_ANSI);
   fprintf_symbol_filtered (stream, varstring, language_cplus, DMGL_ANSI);
   fputs_filtered ("(", stream);
   if (args && args[!staticp] && args[!staticp]->code != TYPE_CODE_VOID)
     {
-      i = !staticp;             /* skip the class variable */
+      i = !staticp;            /* skip the class variable */
       while (1)
-        {
-          type_print (args[i++], "", stream, 0);
-          if (!args[i])
-            {
-              fprintf_filtered (stream, " ...");
-              break;
-            }
-          else if (args[i]->code != TYPE_CODE_VOID)
-            {
-              fprintf_filtered (stream, ", ");
-            }
-          else break;
-        }
+       {
+         type_print (args[i++], "", stream, 0);
+         if (!args[i])
+           {
+             fprintf_filtered (stream, " ...");
+             break;
+           }
+         else if (args[i]->code != TYPE_CODE_VOID)
+           {
+             fprintf_filtered (stream, ", ");
+           }
+         else
+           break;
+       }
     }
   else if (current_language->la_language == language_cplus)
     {
       fprintf_filtered (stream, "void");
     }
+
   fprintf_filtered (stream, ")");
 }
 
@@ -286,7 +288,7 @@ c_type_print_varspec_prefix (type, stream, show, passed_a_ptr)
       if (name)
        fputs_filtered (name, stream);
       else
-        c_type_print_base (TYPE_DOMAIN_TYPE (type), stream, 0, passed_a_ptr);
+       c_type_print_base (TYPE_DOMAIN_TYPE (type), stream, 0, passed_a_ptr);
       fprintf_filtered (stream, "::");
       break;
 
@@ -337,7 +339,7 @@ c_type_print_varspec_prefix (type, stream, show, passed_a_ptr)
     case TYPE_CODE_COMPLEX:
     case TYPE_CODE_TYPEDEF:
       /* These types need no prefix.  They are listed here so that
-        gcc -Wall will reveal any types that haven't been handled.  */
+         gcc -Wall will reveal any types that haven't been handled.  */
       break;
     }
 }
@@ -349,25 +351,25 @@ c_type_print_varspec_prefix (type, stream, show, passed_a_ptr)
 
 static void
 c_type_print_cv_qualifier (type, stream, need_pre_space, need_post_space)
-  struct type *type;
-  GDB_FILE *stream;
-  int need_pre_space;
-  int need_post_space;
+     struct type *type;
+     GDB_FILE *stream;
+     int need_pre_space;
+     int need_post_space;
 {
   int flag = 0;
-  
+
   if (TYPE_CONST (type))
     {
       if (need_pre_space)
-        fprintf_filtered (stream, " ");
+       fprintf_filtered (stream, " ");
       fprintf_filtered (stream, "const");
       flag = 1;
     }
-  
+
   if (TYPE_VOLATILE (type))
     {
       if (flag || need_pre_space)
-        fprintf_filtered (stream, " ");
+       fprintf_filtered (stream, " ");
       fprintf_filtered (stream, "volatile");
       flag = 1;
     }
@@ -396,10 +398,10 @@ c_type_print_args (type, stream)
          fprintf_filtered (stream, "...");
        }
       else if ((args[1]->code == TYPE_CODE_VOID) &&
-               (current_language->la_language == language_cplus))
-        {
-          fprintf_filtered (stream, "void");
-        }
+              (current_language->la_language == language_cplus))
+       {
+         fprintf_filtered (stream, "void");
+       }
       else
        {
          for (i = 1;
@@ -407,11 +409,11 @@ c_type_print_args (type, stream)
               i++)
            {
              c_print_type (args[i], "", stream, -1, 0);
-             if (args[i+1] == NULL)
+             if (args[i + 1] == NULL)
                {
                  fprintf_filtered (stream, "...");
                }
-             else if (args[i+1]->code != TYPE_CODE_VOID)
+             else if (args[i + 1]->code != TYPE_CODE_VOID)
                {
                  fprintf_filtered (stream, ",");
                  wrap_here ("    ");
@@ -423,7 +425,7 @@ c_type_print_args (type, stream)
     {
       fprintf_filtered (stream, "void");
     }
-  
+
   fprintf_filtered (stream, ")");
 }
 
@@ -452,15 +454,15 @@ c_type_print_varspec_suffix (type, stream, show, passed_a_ptr, demangled_args)
     case TYPE_CODE_ARRAY:
       if (passed_a_ptr)
        fprintf_filtered (stream, ")");
-      
+
       fprintf_filtered (stream, "[");
       if (TYPE_LENGTH (type) >= 0 && TYPE_LENGTH (TYPE_TARGET_TYPE (type)) > 0
-         && TYPE_ARRAY_UPPER_BOUND_TYPE(type) != BOUND_CANNOT_BE_DETERMINED)
+       && TYPE_ARRAY_UPPER_BOUND_TYPE (type) != BOUND_CANNOT_BE_DETERMINED)
        fprintf_filtered (stream, "%d",
                          (TYPE_LENGTH (type)
                           / TYPE_LENGTH (TYPE_TARGET_TYPE (type))));
       fprintf_filtered (stream, "]");
-      
+
       c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 0, 0);
       break;
 
@@ -489,22 +491,23 @@ c_type_print_varspec_suffix (type, stream, show, passed_a_ptr, demangled_args)
       if (passed_a_ptr)
        fprintf_filtered (stream, ")");
       if (!demangled_args)
-       { int i, len = TYPE_NFIELDS (type);
+       {
+         int i, len = TYPE_NFIELDS (type);
          fprintf_filtered (stream, "(");
-          if ((len == 0) && (current_language->la_language == language_cplus))
-            {
-              fprintf_filtered (stream, "void");
-            }
-          else
-            for (i = 0; i < len; i++)
-              {
-                if (i > 0)
-                  {
-                    fputs_filtered (", ", stream);
-                    wrap_here ("    ");
-                  }
-                c_print_type (TYPE_FIELD_TYPE (type, i), "", stream, -1, 0);
-              }
+         if ((len == 0) && (current_language->la_language == language_cplus))
+           {
+             fprintf_filtered (stream, "void");
+           }
+         else
+           for (i = 0; i < len; i++)
+             {
+               if (i > 0)
+                 {
+                   fputs_filtered (", ", stream);
+                   wrap_here ("    ");
+                 }
+               c_print_type (TYPE_FIELD_TYPE (type, i), "", stream, -1, 0);
+             }
          fprintf_filtered (stream, ")");
        }
       c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0,
@@ -528,7 +531,7 @@ c_type_print_varspec_suffix (type, stream, show, passed_a_ptr, demangled_args)
     case TYPE_CODE_COMPLEX:
     case TYPE_CODE_TYPEDEF:
       /* These types do not need a suffix.  They are listed so that
-        gcc -Wall will report types that may not have been considered.  */
+         gcc -Wall will report types that may not have been considered.  */
       break;
     }
 }
@@ -562,7 +565,11 @@ c_type_print_base (type, stream, show, level)
   char *mangled_name;
   char *demangled_name;
   char *demangled_no_static;
-  enum {s_none, s_public, s_private, s_protected} section_type;
+  enum
+    {
+      s_none, s_public, s_private, s_protected
+    }
+  section_type;
   int need_access_label = 0;
   int j, len2;
 
@@ -590,7 +597,7 @@ c_type_print_base (type, stream, show, level)
     }
 
   CHECK_TYPEDEF (type);
-         
+
   switch (TYPE_CODE (type))
     {
     case TYPE_CODE_TYPEDEF:
@@ -608,28 +615,32 @@ c_type_print_base (type, stream, show, level)
       /* Note TYPE_CODE_STRUCT and TYPE_CODE_CLASS have the same value,
        * so we use another means for distinguishing them.
        */
-      if (HAVE_CPLUS_STRUCT (type)) {
-        switch (TYPE_DECLARED_TYPE(type)) {
-          case DECLARED_TYPE_CLASS:
-           fprintf_filtered (stream, "class ");
-            break;
-          case DECLARED_TYPE_UNION:
-            fprintf_filtered (stream, "union ");
-            break;
-          case DECLARED_TYPE_STRUCT:
-            fprintf_filtered (stream, "struct ");
-            break;
-          default:
-            /* If there is a CPLUS_STRUCT, assume class if not
-             * otherwise specified in the declared_type field.
-             */
-           fprintf_filtered (stream, "class ");
-            break;
-        } /* switch */
-      } else {
-        /* If not CPLUS_STRUCT, then assume it's a C struct */ 
-        fprintf_filtered (stream, "struct ");
-      }
+      if (HAVE_CPLUS_STRUCT (type))
+       {
+         switch (TYPE_DECLARED_TYPE (type))
+           {
+           case DECLARED_TYPE_CLASS:
+             fprintf_filtered (stream, "class ");
+             break;
+           case DECLARED_TYPE_UNION:
+             fprintf_filtered (stream, "union ");
+             break;
+           case DECLARED_TYPE_STRUCT:
+             fprintf_filtered (stream, "struct ");
+             break;
+           default:
+             /* If there is a CPLUS_STRUCT, assume class if not
+              * otherwise specified in the declared_type field.
+              */
+             fprintf_filtered (stream, "class ");
+             break;
+           }                   /* switch */
+       }
+      else
+       {
+         /* If not CPLUS_STRUCT, then assume it's a C struct */
+         fprintf_filtered (stream, "struct ");
+       }
       goto struct_union;
 
     case TYPE_CODE_UNION:
@@ -645,7 +656,7 @@ c_type_print_base (type, stream, show, level)
        * want to print.
        */
       if (TYPE_TAG_NAME (type) != NULL &&
-          strncmp(TYPE_TAG_NAME(type), "{unnamed", 8))
+         strncmp (TYPE_TAG_NAME (type), "{unnamed", 8))
        {
          fputs_filtered (TYPE_TAG_NAME (type), stream);
          if (show > 0)
@@ -661,7 +672,7 @@ c_type_print_base (type, stream, show, level)
       else if (show > 0 || TYPE_TAG_NAME (type) == NULL)
        {
          cp_type_print_derivation_info (stream, type);
-         
+
          fprintf_filtered (stream, "{\n");
          if ((TYPE_NFIELDS (type) == 0) && (TYPE_NFN_FIELDS (type) == 0))
            {
@@ -677,71 +688,71 @@ c_type_print_base (type, stream, show, level)
 
          section_type = s_none;
 
-          /* For a class, if all members are private, there's no need
-             for a "private:" label; similarly, for a struct or union
-             masquerading as a class, if all members are public, there's
-             no need for a "public:" label. */ 
-
-          if ((TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_CLASS) ||
-               (TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_TEMPLATE))
-            {
-              QUIT;
-              len = TYPE_NFIELDS (type);
-              for (i = TYPE_N_BASECLASSES (type); i < len; i++)
-                if (!TYPE_FIELD_PRIVATE (type, i))
-                  {
-                    need_access_label = 1;
-                    break;
-                  }
-              QUIT;
-              if (!need_access_label)
-                {
-                  len2 = TYPE_NFN_FIELDS (type);
-                  for (j = 0; j < len2; j++)
-                    {
-                      len = TYPE_FN_FIELDLIST_LENGTH (type, j);
-                      for (i = 0; i < len; i++)
-                        if (!TYPE_FN_FIELD_PRIVATE (TYPE_FN_FIELDLIST1 (type, j), i))
-                          {
-                            need_access_label = 1;
-                            break;
-                          }
-                      if (need_access_label)
-                        break;
-                    }
-                }
-            }
-          else if ((TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_STRUCT) ||
-                   (TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_UNION))
-            {
-              QUIT;
-              len = TYPE_NFIELDS (type);
-              for (i = TYPE_N_BASECLASSES (type); i < len; i++)
-                if (TYPE_FIELD_PRIVATE (type, i) || TYPE_FIELD_PROTECTED (type, i))
-                  {
-                    need_access_label = 1;
-                    break;
-                  }
-              QUIT;
-              if (!need_access_label)
-                {
-                  len2 = TYPE_NFN_FIELDS (type);
-                  for (j = 0; j < len2; j++)
-                    {
-                      QUIT;
-                      len = TYPE_FN_FIELDLIST_LENGTH (type, j);
-                      for (i = 0; i < len; i++)
-                        if (TYPE_FN_FIELD_PRIVATE (TYPE_FN_FIELDLIST1 (type, j), i) ||
-                            TYPE_FN_FIELD_PROTECTED (TYPE_FN_FIELDLIST1 (type, j), i))
-                          {
-                            need_access_label = 1;
-                            break;
-                          }
-                      if (need_access_label)
-                        break;
-                    }
-                }
-            }
+         /* For a class, if all members are private, there's no need
+            for a "private:" label; similarly, for a struct or union
+            masquerading as a class, if all members are public, there's
+            no need for a "public:" label. */
+
+         if ((TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_CLASS) ||
+             (TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_TEMPLATE))
+           {
+             QUIT;
+             len = TYPE_NFIELDS (type);
+             for (i = TYPE_N_BASECLASSES (type); i < len; i++)
+               if (!TYPE_FIELD_PRIVATE (type, i))
+                 {
+                   need_access_label = 1;
+                   break;
+                 }
+             QUIT;
+             if (!need_access_label)
+               {
+                 len2 = TYPE_NFN_FIELDS (type);
+                 for (j = 0; j < len2; j++)
+                   {
+                     len = TYPE_FN_FIELDLIST_LENGTH (type, j);
+                     for (i = 0; i < len; i++)
+                       if (!TYPE_FN_FIELD_PRIVATE (TYPE_FN_FIELDLIST1 (type, j), i))
+                         {
+                           need_access_label = 1;
+                           break;
+                         }
+                     if (need_access_label)
+                       break;
+                   }
+               }
+           }
+         else if ((TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_STRUCT) ||
+                  (TYPE_DECLARED_TYPE (type) == DECLARED_TYPE_UNION))
+           {
+             QUIT;
+             len = TYPE_NFIELDS (type);
+             for (i = TYPE_N_BASECLASSES (type); i < len; i++)
+               if (TYPE_FIELD_PRIVATE (type, i) || TYPE_FIELD_PROTECTED (type, i))
+                 {
+                   need_access_label = 1;
+                   break;
+                 }
+             QUIT;
+             if (!need_access_label)
+               {
+                 len2 = TYPE_NFN_FIELDS (type);
+                 for (j = 0; j < len2; j++)
+                   {
+                     QUIT;
+                     len = TYPE_FN_FIELDLIST_LENGTH (type, j);
+                     for (i = 0; i < len; i++)
+                       if (TYPE_FN_FIELD_PRIVATE (TYPE_FN_FIELDLIST1 (type, j), i) ||
+                           TYPE_FN_FIELD_PROTECTED (TYPE_FN_FIELDLIST1 (type, j), i))
+                         {
+                           need_access_label = 1;
+                           break;
+                         }
+                     if (need_access_label)
+                       break;
+                   }
+               }
+           }
 
          /* If there is a base class for this type,
             do not print the field that it occupies.  */
@@ -751,17 +762,17 @@ c_type_print_base (type, stream, show, level)
            {
              QUIT;
              /* Don't print out virtual function table.  */
-              /* HP ANSI C++ case */
-              if (TYPE_HAS_VTABLE(type) && (STREQN (TYPE_FIELD_NAME (type, i), "__vfp", 5)))
-                 continue;
-              /* Other compilers */
-              /* pai:: FIXME : check for has_vtable < 0 */
+             /* HP ANSI C++ case */
+             if (TYPE_HAS_VTABLE (type) && (STREQN (TYPE_FIELD_NAME (type, i), "__vfp", 5)))
+               continue;
+             /* Other compilers */
+             /* pai:: FIXME : check for has_vtable < 0 */
              if (STREQN (TYPE_FIELD_NAME (type, i), "_vptr", 5)
                  && is_cplus_marker ((TYPE_FIELD_NAME (type, i))[5]))
                continue;
 
              /* If this is a C++ class we can print the various C++ section
-                labels. */
+                labels. */
 
              if (HAVE_CPLUS_STRUCT (type) && need_access_label)
                {
@@ -817,7 +828,7 @@ c_type_print_base (type, stream, show, level)
          /* If there are both fields and methods, put a space between. */
          len = TYPE_NFN_FIELDS (type);
          if (len && section_type != s_none)
-            fprintf_filtered (stream, "\n");
+           fprintf_filtered (stream, "\n");
 
          /* C++: print out the methods */
          for (i = 0; i < len; i++)
@@ -826,16 +837,16 @@ c_type_print_base (type, stream, show, level)
              int j, len2 = TYPE_FN_FIELDLIST_LENGTH (type, i);
              char *method_name = TYPE_FN_FIELDLIST_NAME (type, i);
              char *name = type_name_no_tag (type);
-             int is_constructor = name && STREQ(method_name, name);
+             int is_constructor = name && STREQ (method_name, name);
              for (j = 0; j < len2; j++)
                {
                  char *physname = TYPE_FN_FIELD_PHYSNAME (f, j);
-                 int is_full_physname_constructor = 
-                   ((physname[0] == '_' && physname[1] == '_'
-                     && strchr ("0123456789Qt", physname[2]))
-                    || STREQN (physname, "__ct__", 6)
-                    || DESTRUCTOR_PREFIX_P (physname)
-                    || STREQN (physname, "__dt__", 6));
+                 int is_full_physname_constructor =
+                 ((physname[0] == '_' && physname[1] == '_'
+                   && strchr ("0123456789Qt", physname[2]))
+                  || STREQN (physname, "__ct__", 6)
+                  || DESTRUCTOR_PREFIX_P (physname)
+                  || STREQN (physname, "__dt__", 6));
 
                  QUIT;
                  if (TYPE_FN_FIELD_PROTECTED (f, j))
@@ -873,13 +884,13 @@ c_type_print_base (type, stream, show, level)
                    {
                      /* Keep GDB from crashing here.  */
                      fprintf_filtered (stream, "<undefined type> %s;\n",
-                              TYPE_FN_FIELD_PHYSNAME (f, j));
+                                       TYPE_FN_FIELD_PHYSNAME (f, j));
                      break;
                    }
-                 else if (!is_constructor &&                  /* constructors don't have declared types */
-                           !is_full_physname_constructor &&    /*    " "  */ 
-                           !strstr (method_name, "operator ")) /* Not a type conversion operator */
-                                                               /* (note space -- other operators don't have it) */ 
+                 else if (!is_constructor &&   /* constructors don't have declared types */
+                          !is_full_physname_constructor &&     /*    " "  */
+                          !strstr (method_name, "operator "))  /* Not a type conversion operator */
+                   /* (note space -- other operators don't have it) */
                    {
                      type_print (TYPE_TARGET_TYPE (TYPE_FN_FIELD_TYPE (f, j)),
                                  "", stream, -1);
@@ -897,14 +908,14 @@ c_type_print_base (type, stream, show, level)
                  if (demangled_name == NULL)
                    {
                      /* in some cases (for instance with the HP demangling),
-                        if a function has more than 10 arguments, 
-                        the demangling will fail.
-                        Let's try to reconstruct the function signature from 
-                        the symbol information */
+                        if a function has more than 10 arguments, 
+                        the demangling will fail.
+                        Let's try to reconstruct the function signature from 
+                        the symbol information */
                      if (!TYPE_FN_FIELD_STUB (f, j))
                        cp_type_print_method_args (TYPE_FN_FIELD_ARGS (f, j), "",
                                                   method_name,
-                                                  TYPE_FN_FIELD_STATIC_P (f, j),
+                                             TYPE_FN_FIELD_STATIC_P (f, j),
                                                   stream);
                      else
                        fprintf_filtered (stream, "<badly mangled name '%s'>",
@@ -914,7 +925,7 @@ c_type_print_base (type, stream, show, level)
                    {
                      char *p;
                      char *demangled_no_class = demangled_name;
-                     
+
                      while ((p = strchr (demangled_no_class, ':')))
                        {
                          demangled_no_class = p;
@@ -928,7 +939,7 @@ c_type_print_base (type, stream, show, level)
                          int length = p - demangled_no_class;
                          demangled_no_static = (char *) xmalloc (length + 1);
                          strncpy (demangled_no_static, demangled_no_class, length);
-                          *(demangled_no_static + length) = '\0';
+                         *(demangled_no_static + length) = '\0';
                          fputs_filtered (demangled_no_static, stream);
                          free (demangled_no_static);
                        }
@@ -944,40 +955,40 @@ c_type_print_base (type, stream, show, level)
                }
            }
 
-      if (TYPE_LOCALTYPE_PTR (type) && show >= 0)
-        fprintfi_filtered (level, stream, " (Local at %s:%d)\n",
-                           TYPE_LOCALTYPE_FILE (type),
-                           TYPE_LOCALTYPE_LINE (type));
+         if (TYPE_LOCALTYPE_PTR (type) && show >= 0)
+           fprintfi_filtered (level, stream, " (Local at %s:%d)\n",
+                              TYPE_LOCALTYPE_FILE (type),
+                              TYPE_LOCALTYPE_LINE (type));
 
          fprintfi_filtered (level, stream, "}");
        }
-      if (TYPE_CODE(type) == TYPE_CODE_TEMPLATE)
-        goto go_back;
+      if (TYPE_CODE (type) == TYPE_CODE_TEMPLATE)
+       goto go_back;
       break;
 
     case TYPE_CODE_ENUM:
       c_type_print_cv_qualifier (type, stream, 0, 1);
       /* HP C supports sized enums */
       if (hp_som_som_object_present)
-        switch (TYPE_LENGTH (type))
-          {
-            case 1:
-              fputs_filtered ("char ", stream);
-              break;
-            case 2:
-              fputs_filtered ("short ", stream);
-              break;
-            default:
-              break;
-          }
-       fprintf_filtered (stream, "enum ");
+       switch (TYPE_LENGTH (type))
+         {
+         case 1:
+           fputs_filtered ("char ", stream);
+           break;
+         case 2:
+           fputs_filtered ("short ", stream);
+           break;
+         default:
+           break;
+         }
+      fprintf_filtered (stream, "enum ");
       /* Print the tag name if it exists.
          The aCC compiler emits a spurious 
          "{unnamed struct}"/"{unnamed union}"/"{unnamed enum}"
          tag for unnamed struct/union/enum's, which we don't
          want to print. */
       if (TYPE_TAG_NAME (type) != NULL &&
-          strncmp(TYPE_TAG_NAME(type), "{unnamed", 8))
+         strncmp (TYPE_TAG_NAME (type), "{unnamed", 8))
        {
          fputs_filtered (TYPE_TAG_NAME (type), stream);
          if (show > 0)
@@ -999,7 +1010,8 @@ c_type_print_base (type, stream, show, level)
          for (i = 0; i < len; i++)
            {
              QUIT;
-             if (i) fprintf_filtered (stream, ", ");
+             if (i)
+               fprintf_filtered (stream, ", ");
              wrap_here ("    ");
              fputs_filtered (TYPE_FIELD_NAME (type, i), stream);
              if (lastval != TYPE_FIELD_BITPOS (type, i))
@@ -1033,41 +1045,45 @@ c_type_print_base (type, stream, show, level)
     case TYPE_CODE_TEMPLATE:
       /* Called on "ptype t" where "t" is a template.
          Prints the template header (with args), e.g.:
-           template <class T1, class T2> class "
+         template <class T1, class T2> class "
          and then merges with the struct/union/class code to
          print the rest of the definition. */
       c_type_print_cv_qualifier (type, stream, 0, 1);
       fprintf_filtered (stream, "template <");
-      for (i = 0; i < TYPE_NTEMPLATE_ARGS(type); i++) {
-        struct template_arg templ_arg;
-        templ_arg = TYPE_TEMPLATE_ARG(type, i);
-        fprintf_filtered (stream, "class %s", templ_arg.name);
-        if (i < TYPE_NTEMPLATE_ARGS(type)-1)
-          fprintf_filtered (stream, ", ");
-      }
+      for (i = 0; i < TYPE_NTEMPLATE_ARGS (type); i++)
+       {
+         struct template_arg templ_arg;
+         templ_arg = TYPE_TEMPLATE_ARG (type, i);
+         fprintf_filtered (stream, "class %s", templ_arg.name);
+         if (i < TYPE_NTEMPLATE_ARGS (type) - 1)
+           fprintf_filtered (stream, ", ");
+       }
       fprintf_filtered (stream, "> class ");
       /* Yuck, factor this out to a subroutine so we can call
          it and return to the point marked with the "goback:" label... - RT */
-      goto struct_union; 
-go_back:
-      if (TYPE_NINSTANTIATIONS(type) > 0) {
-        fprintf_filtered (stream, "\ntemplate instantiations:\n");
-        for (i = 0; i < TYPE_NINSTANTIATIONS(type); i++) {
-          fprintf_filtered(stream, "  ");
-          c_type_print_base (TYPE_INSTANTIATION(type, i), stream, 0, level);
-          if (i < TYPE_NINSTANTIATIONS(type)-1) fprintf_filtered(stream, "\n");
-        }
-      }
+      goto struct_union;
+    go_back:
+      if (TYPE_NINSTANTIATIONS (type) > 0)
+       {
+         fprintf_filtered (stream, "\ntemplate instantiations:\n");
+         for (i = 0; i < TYPE_NINSTANTIATIONS (type); i++)
+           {
+             fprintf_filtered (stream, "  ");
+             c_type_print_base (TYPE_INSTANTIATION (type, i), stream, 0, level);
+             if (i < TYPE_NINSTANTIATIONS (type) - 1)
+               fprintf_filtered (stream, "\n");
+           }
+       }
       break;
-       
+
     default:
       /* Handle types not explicitly handled by the other cases,
-        such as fundamental types.  For these, just print whatever
-        the type name is, as recorded in the type itself.  If there
-        is no type name, then complain. */
+         such as fundamental types.  For these, just print whatever
+         the type name is, as recorded in the type itself.  If there
+         is no type name, then complain. */
       if (TYPE_NAME (type) != NULL)
        {
-          c_type_print_cv_qualifier (type, stream, 0, 1);
+         c_type_print_cv_qualifier (type, stream, 0, 1);
          fputs_filtered (TYPE_NAME (type), stream);
        }
       else
@@ -1080,12 +1096,3 @@ go_back:
       break;
     }
 }
-
-
-
-
-
-
-
-
-