*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / p-typeprint.c
index d8ea0d4b68c7bd10dccedd93d5705d4d9d36a6a2..697a2b9ec4ec76f530d546c232f794a536f15700 100644 (file)
@@ -1,5 +1,5 @@
 /* Support for printing Pascal types for GDB, the GNU debugger.
-   Copyright 2000
+   Copyright (C) 2000, 2001, 2002
    Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    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.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 /* This file is derived from p-typeprint.c */
 
 #include "defs.h"
-#include "obstack.h"
+#include "gdb_obstack.h"
 #include "bfd.h"               /* Binary File Description */
 #include "symtab.h"
 #include "gdbtypes.h"
 #include "value.h"
 #include "gdbcore.h"
 #include "target.h"
-#include "command.h"
-#include "gdbcmd.h"
 #include "language.h"
-#include "demangle.h"
 #include "p-lang.h"
 #include "typeprint.h"
 
@@ -40,8 +38,6 @@
 #include <errno.h>
 #include <ctype.h>
 
-static void pascal_type_print_args (struct type *, struct ui_file *);
-
 static void pascal_type_print_varspec_suffix (struct type *, struct ui_file *, int, int, int);
 
 static void pascal_type_print_derivation_info (struct ui_file *, struct type *);
@@ -52,14 +48,10 @@ void pascal_type_print_varspec_prefix (struct type *, struct ui_file *, int, int
 /* LEVEL is the depth to indent lines by.  */
 
 void
-pascal_print_type (type, varstring, stream, show, level)
-     struct type *type;
-     char *varstring;
-     struct ui_file *stream;
-     int show;
-     int level;
+pascal_print_type (struct type *type, char *varstring, struct ui_file *stream,
+                  int show, int level)
 {
-  register enum type_code code;
+  enum type_code code;
   int demangled_args;
 
   code = TYPE_CODE (type);
@@ -122,9 +114,7 @@ pascal_print_type (type, varstring, stream, show, level)
    the form that they appear in the source code. */
 
 static void
-pascal_type_print_derivation_info (stream, type)
-     struct ui_file *stream;
-     struct type *type;
+pascal_type_print_derivation_info (struct ui_file *stream, struct type *type)
 {
   char *name;
   int i;
@@ -147,13 +137,11 @@ pascal_type_print_derivation_info (stream, type)
 /* Print the Pascal method arguments ARGS to the file STREAM.  */
 
 void
-pascal_type_print_method_args (physname, methodname, stream)
-     char *physname;
-     char *methodname;
-     struct ui_file *stream;
+pascal_type_print_method_args (char *physname, char *methodname,
+                              struct ui_file *stream)
 {
-  int is_constructor = STREQN (physname, "__ct__", 6);
-  int is_destructor = STREQN (physname, "__dt__", 6);
+  int is_constructor = DEPRECATED_STREQN (physname, "__ct__", 6);
+  int is_destructor = DEPRECATED_STREQN (physname, "__dt__", 6);
 
   if (is_constructor || is_destructor)
     {
@@ -201,11 +189,8 @@ pascal_type_print_method_args (physname, methodname, stream)
    SHOW is always zero on recursive calls.  */
 
 void
-pascal_type_print_varspec_prefix (type, stream, show, passed_a_ptr)
-     struct type *type;
-     struct ui_file *stream;
-     int show;
-     int passed_a_ptr;
+pascal_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
+                                 int show, int passed_a_ptr)
 {
   char *name;
   if (type == 0)
@@ -310,59 +295,11 @@ pascal_type_print_varspec_prefix (type, stream, show, passed_a_ptr)
          gcc -Wall will reveal any types that haven't been handled.  */
       break;
     default:
-      error ("type not handled in pascal_type_print_varspec_prefix()");
+      error (_("type not handled in pascal_type_print_varspec_prefix()"));
       break;
     }
 }
 
-static void
-pascal_type_print_args (type, stream)
-     struct type *type;
-     struct ui_file *stream;
-{
-  int i;
-  struct type **args;
-
-  /*  fprintf_filtered (stream, "(");
-     no () for procedures !! */
-  args = TYPE_ARG_TYPES (type);
-  if (args != NULL)
-    {
-      if ((args[1] != NULL && args[1]->code != TYPE_CODE_VOID) ||
-         (args[2] != NULL))
-       {
-         fprintf_filtered (stream, "(");
-       }
-      if (args[1] == NULL)
-       {
-         fprintf_filtered (stream, "...");
-       }
-      else
-       {
-         for (i = 1;
-              args[i] != NULL && args[i]->code != TYPE_CODE_VOID;
-              i++)
-           {
-             pascal_print_type (args[i], "", stream, -1, 0);
-             if (args[i + 1] == NULL)
-               {
-                 fprintf_filtered (stream, "...");
-               }
-             else if (args[i + 1]->code != TYPE_CODE_VOID)
-               {
-                 fprintf_filtered (stream, ",");
-                 wrap_here ("    ");
-               }
-           }
-       }
-      if ((args[1] != NULL && args[1]->code != TYPE_CODE_VOID) ||
-         (args[2] != NULL))
-       {
-         fprintf_filtered (stream, ")");
-       }
-    }
-}
-
 static void
 pascal_print_func_args (struct type *type, struct ui_file *stream)
 {
@@ -397,12 +334,9 @@ pascal_print_func_args (struct type *type, struct ui_file *stream)
    Args work like pascal_type_print_varspec_prefix.  */
 
 static void
-pascal_type_print_varspec_suffix (type, stream, show, passed_a_ptr, demangled_args)
-     struct type *type;
-     struct ui_file *stream;
-     int show;
-     int passed_a_ptr;
-     int demangled_args;
+pascal_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
+                                 int show, int passed_a_ptr,
+                                 int demangled_args)
 {
   if (type == 0)
     return;
@@ -431,7 +365,6 @@ pascal_type_print_varspec_suffix (type, stream, show, passed_a_ptr, demangled_ar
       pascal_type_print_method_args ("",
                                     "",
                                     stream);
-      /* pascal_type_print_args (type, stream); */
       if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
        {
          fprintf_filtered (stream, " : ");
@@ -483,7 +416,7 @@ pascal_type_print_varspec_suffix (type, stream, show, passed_a_ptr, demangled_ar
          gcc -Wall will report types that may not have been considered.  */
       break;
     default:
-      error ("type not handled in pascal_type_print_varspec_suffix()");
+      error (_("type not handled in pascal_type_print_varspec_suffix()"));
       break;
     }
 }
@@ -505,15 +438,12 @@ pascal_type_print_varspec_suffix (type, stream, show, passed_a_ptr, demangled_ar
    We increase it for some recursive calls.  */
 
 void
-pascal_type_print_base (type, stream, show, level)
-     struct type *type;
-     struct ui_file *stream;
-     int show;
-     int level;
+pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
+                       int level)
 {
-  register int i;
-  register int len;
-  register int lastval;
+  int i;
+  int len;
+  int lastval;
   enum
     {
       s_none, s_public, s_private, s_protected
@@ -531,8 +461,8 @@ pascal_type_print_base (type, stream, show, level)
   /* void pointer */
   if ((TYPE_CODE (type) == TYPE_CODE_PTR) && (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_VOID))
     {
-      fprintf_filtered (stream,
-                       TYPE_NAME (type) ? TYPE_NAME (type) : "pointer");
+      fputs_filtered (TYPE_NAME (type) ? TYPE_NAME (type) : "pointer",
+                     stream);
       return;
     }
   /* When SHOW is zero or less, and there is a valid type name, then always
@@ -610,7 +540,7 @@ pascal_type_print_base (type, stream, show, level)
          fprintf_filtered (stream, "\n");
          if ((TYPE_NFIELDS (type) == 0) && (TYPE_NFN_FIELDS (type) == 0))
            {
-             if (TYPE_FLAGS (type) & TYPE_FLAG_STUB)
+             if (TYPE_STUB (type))
                fprintfi_filtered (level + 4, stream, "<incomplete type>\n");
              else
                fprintfi_filtered (level + 4, stream, "<no data fields>\n");
@@ -630,7 +560,7 @@ pascal_type_print_base (type, stream, show, level)
            {
              QUIT;
              /* Don't print out virtual function table.  */
-             if (STREQN (TYPE_FIELD_NAME (type, i), "_vptr", 5)
+             if (DEPRECATED_STREQN (TYPE_FIELD_NAME (type, i), "_vptr", 5)
                  && is_cplus_marker ((TYPE_FIELD_NAME (type, i))[5]))
                continue;
 
@@ -708,8 +638,8 @@ pascal_type_print_base (type, stream, show, level)
                {
                  char *physname = TYPE_FN_FIELD_PHYSNAME (f, j);
 
-                 int is_constructor = STREQN (physname, "__ct__", 6);
-                 int is_destructor = STREQN (physname, "__dt__", 6);
+                 int is_constructor = DEPRECATED_STREQN (physname, "__ct__", 6);
+                 int is_destructor = DEPRECATED_STREQN (physname, "__dt__", 6);
 
                  QUIT;
                  if (TYPE_FN_FIELD_PROTECTED (f, j))
@@ -859,6 +789,14 @@ pascal_type_print_base (type, stream, show, level)
                         show - 1, level);
       break;
 
+    case TYPE_CODE_BITSTRING:
+      fputs_filtered ("BitString", stream);
+      break;
+
+    case TYPE_CODE_STRING:
+      fputs_filtered ("String", stream);
+      break;
+
     default:
       /* Handle types not explicitly handled by the other cases,
          such as fundamental types.  For these, just print whatever
This page took 0.027137 seconds and 4 git commands to generate.