/* Support for printing Fortran types for GDB, the GNU debugger.
- Copyright 1986, 1988, 1989, 1991, 1993, 1994, 1995, 1996, 1998, 2000
- Free Software Foundation, Inc.
+
+ Copyright 1986, 1988, 1989, 1991, 1993, 1994, 1995, 1996, 1998,
+ 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
Contributed by Motorola. Adapted from the C version by Farooq Butt
(fmbutt@engage.sps.mot.com).
Boston, MA 02111-1307, USA. */
#include "defs.h"
-#include "obstack.h"
+#include "gdb_obstack.h"
#include "bfd.h"
#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 "f-lang.h"
-#include "typeprint.h"
-#include "frame.h" /* ??? */
#include "gdb_string.h"
#include <errno.h>
f_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;
f_type_print_base (type, stream, show, level);
}
}
-#if 0 /* Currently unused */
-
-static void
-f_type_print_args (struct type *type, struct ui_file *stream)
-{
- int i;
- struct type **args;
-
- fprintf_filtered (stream, "(");
- args = TYPE_ARG_TYPES (type);
- if (args != NULL)
- {
- if (args[1] == NULL)
- {
- fprintf_filtered (stream, "...");
- }
- else
- {
- for (i = 1; args[i] != NULL && args[i]->code != TYPE_CODE_VOID; i++)
- {
- f_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 (" ");
- }
- }
- }
- }
- fprintf_filtered (stream, ")");
-}
-
-#endif /* 0 */
-
/* Print any array sizes, function arguments or close parentheses
needed after the variable name (to describe its type).
Args work like c_type_print_varspec_prefix. */
f_type_print_base (TYPE_TARGET_TYPE (type), stream, 0, level);
break;
+ case TYPE_CODE_REF:
+ fprintf_filtered (stream, "REF TO -> ( ");
+ f_type_print_base (TYPE_TARGET_TYPE (type), stream, 0, level);
+ break;
+
case TYPE_CODE_VOID:
fprintf_filtered (stream, "VOID");
break;
through as TYPE_CODE_INT since dbxstclass.h is so
C-oriented, we must change these to "character" from "char". */
- if (STREQ (TYPE_NAME (type), "char"))
+ if (strcmp (TYPE_NAME (type), "char") == 0)
fprintf_filtered (stream, "character");
else
goto default_case;