X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Ff-lang.c;h=bee4063c9d0e466f4022447a524946e0a1f1e3ac;hb=9733f989bbfcefd612a9712683eeebff74329bf4;hp=6e67fbce9d93fb018765d6baeed220f807886c74;hpb=dc9e099fc0eced486ae2b49455c9da113c11f4ff;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/f-lang.c b/gdb/f-lang.c index 6e67fbce9d..bee4063c9d 100644 --- a/gdb/f-lang.c +++ b/gdb/f-lang.c @@ -1,5 +1,6 @@ /* Fortran language support routines for GDB, the GNU debugger. - Copyright 1993, 1994, 1996 Free Software Foundation, Inc. + Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 + Free Software Foundation, Inc. Contributed by Motorola. Adapted from the C parser by Farooq Butt (fmbutt@engage.sps.mot.com). @@ -28,6 +29,7 @@ #include "parser-defs.h" #include "language.h" #include "f-lang.h" +#include "valprint.h" /* The built-in types of F77. FIXME: integer*4 is missing, plain logical is missing (builtin_type_logical is logical*4). */ @@ -67,26 +69,28 @@ typedef struct saved_bf_symnum SAVED_BF, *SAVED_BF_PTR; /* Local functions */ -extern void _initialize_f_language PARAMS ((void)); +extern void _initialize_f_language (void); #if 0 -static void clear_function_list PARAMS ((void)); -static long get_bf_for_fcn PARAMS ((long)); -static void clear_bf_list PARAMS ((void)); -static void patch_all_commons_by_name PARAMS ((char *, CORE_ADDR, int)); -static SAVED_F77_COMMON_PTR find_first_common_named PARAMS ((char *)); -static void add_common_entry PARAMS ((struct symbol *)); -static void add_common_block PARAMS ((char *, CORE_ADDR, int, char *)); -static SAVED_FUNCTION *allocate_saved_function_node PARAMS ((void)); -static SAVED_BF_PTR allocate_saved_bf_node PARAMS ((void)); -static COMMON_ENTRY_PTR allocate_common_entry_node PARAMS ((void)); -static SAVED_F77_COMMON_PTR allocate_saved_f77_common_node PARAMS ((void)); -static void patch_common_entries PARAMS ((SAVED_F77_COMMON_PTR, CORE_ADDR, int)); +static void clear_function_list (void); +static long get_bf_for_fcn (long); +static void clear_bf_list (void); +static void patch_all_commons_by_name (char *, CORE_ADDR, int); +static SAVED_F77_COMMON_PTR find_first_common_named (char *); +static void add_common_entry (struct symbol *); +static void add_common_block (char *, CORE_ADDR, int, char *); +static SAVED_FUNCTION *allocate_saved_function_node (void); +static SAVED_BF_PTR allocate_saved_bf_node (void); +static COMMON_ENTRY_PTR allocate_common_entry_node (void); +static SAVED_F77_COMMON_PTR allocate_saved_f77_common_node (void); +static void patch_common_entries (SAVED_F77_COMMON_PTR, CORE_ADDR, int); #endif -static struct type *f_create_fundamental_type PARAMS ((struct objfile *, int)); -static void f_printstr PARAMS ((GDB_FILE * stream, char *string, unsigned int length, int width, int force_ellipses)); -static void f_printchar PARAMS ((int c, GDB_FILE * stream)); -static void f_emit_char PARAMS ((int c, GDB_FILE * stream, int quoter)); +static struct type *f_create_fundamental_type (struct objfile *, int); +static void f_printstr (struct ui_file * stream, char *string, + unsigned int length, int width, + int force_ellipses); +static void f_printchar (int c, struct ui_file * stream); +static void f_emit_char (int c, struct ui_file * stream, int quoter); /* Print the character C on STREAM as part of the contents of a literal string whose delimiter is QUOTER. Note that that format for printing @@ -95,10 +99,7 @@ static void f_emit_char PARAMS ((int c, GDB_FILE * stream, int quoter)); be replaced with a true F77 version. */ static void -f_emit_char (c, stream, quoter) - register int c; - GDB_FILE *stream; - int quoter; +f_emit_char (register int c, struct ui_file *stream, int quoter) { c &= 0xFF; /* Avoid sign bit follies */ @@ -144,9 +145,7 @@ f_emit_char (c, stream, quoter) be replaced with a true F77version. */ static void -f_printchar (c, stream) - int c; - GDB_FILE *stream; +f_printchar (int c, struct ui_file *stream) { fputs_filtered ("'", stream); LA_EMIT_CHAR (c, stream, '\''); @@ -161,20 +160,14 @@ f_printchar (c, stream) be replaced with a true F77 version. */ static void -f_printstr (stream, string, length, width, force_ellipses) - GDB_FILE *stream; - char *string; - unsigned int length; - int width; - int force_ellipses; +f_printstr (struct ui_file *stream, char *string, unsigned int length, + int width, int force_ellipses) { register unsigned int i; unsigned int things_printed = 0; int in_quotes = 0; int need_comma = 0; extern int inspect_it; - extern int repeat_count_threshold; - extern int print_max; if (length == 0) { @@ -255,9 +248,7 @@ f_printstr (stream, string, length, width, force_ellipses) by an experienced F77 programmer. */ static struct type * -f_create_fundamental_type (objfile, typeid) - struct objfile *objfile; - int typeid; +f_create_fundamental_type (struct objfile *objfile, int typeid) { register struct type *type = NULL; @@ -460,8 +451,8 @@ struct type **CONST_PTR (f_builtin_types[]) = /* This is declared in c-lang.h but it is silly to import that file for what is already just a hack. */ -extern int -c_value_print PARAMS ((struct value *, GDB_FILE *, int, enum val_prettyprint)); +extern int c_value_print (struct value *, struct ui_file *, int, + enum val_prettyprint); const struct language_defn f_language_defn = { @@ -470,6 +461,7 @@ const struct language_defn f_language_defn = f_builtin_types, range_check_on, type_check_on, + case_sensitive_off, f_parse, /* parser */ f_error, /* parser error function */ evaluate_subexp_standard, @@ -492,7 +484,7 @@ const struct language_defn f_language_defn = }; void -_initialize_f_language () +_initialize_f_language (void) { builtin_type_f_void = init_type (TYPE_CODE_VOID, 1, @@ -575,7 +567,7 @@ _initialize_f_language () #if 0 static SAVED_BF_PTR -allocate_saved_bf_node () +allocate_saved_bf_node (void) { SAVED_BF_PTR new; @@ -584,7 +576,7 @@ allocate_saved_bf_node () } static SAVED_FUNCTION * -allocate_saved_function_node () +allocate_saved_function_node (void) { SAVED_FUNCTION *new; @@ -593,7 +585,7 @@ allocate_saved_function_node () } static SAVED_F77_COMMON_PTR -allocate_saved_f77_common_node () +allocate_saved_f77_common_node (void) { SAVED_F77_COMMON_PTR new; @@ -602,7 +594,7 @@ allocate_saved_f77_common_node () } static COMMON_ENTRY_PTR -allocate_common_entry_node () +allocate_common_entry_node (void) { COMMON_ENTRY_PTR new; @@ -629,11 +621,7 @@ static SAVED_BF_PTR tmp_bf_ptr; /* Generic temporary for use the global common block chain */ static void -add_common_block (name, offset, secnum, func_stab) - char *name; - CORE_ADDR offset; - int secnum; - char *func_stab; +add_common_block (char *name, CORE_ADDR offset, int secnum, char *func_stab) { SAVED_F77_COMMON_PTR tmp; char *c, *local_copy_func_stab; @@ -648,7 +636,7 @@ add_common_block (name, offset, secnum, func_stab) STREQ (name, BLANK_COMMON_NAME_MF77)) { - free (name); + xfree (name); name = alloca (strlen (BLANK_COMMON_NAME_LOCAL) + 1); strcpy (name, BLANK_COMMON_NAME_LOCAL); } @@ -702,8 +690,7 @@ add_common_block (name, offset, secnum, func_stab) #if 0 static void -add_common_entry (entry_sym_ptr) - struct symbol *entry_sym_ptr; +add_common_entry (struct symbol *entry_sym_ptr) { COMMON_ENTRY_PTR tmp; @@ -740,8 +727,7 @@ add_common_entry (entry_sym_ptr) #if 0 static SAVED_F77_COMMON_PTR -find_first_common_named (name) - char *name; +find_first_common_named (char *name) { SAVED_F77_COMMON_PTR tmp; @@ -763,9 +749,7 @@ find_first_common_named (name) that belongs to function funcname */ SAVED_F77_COMMON_PTR -find_common_for_function (name, funcname) - char *name; - char *funcname; +find_common_for_function (char *name, char *funcname) { SAVED_F77_COMMON_PTR tmp; @@ -790,10 +774,7 @@ find_common_for_function (name, funcname) "name." */ static void -patch_common_entries (blk, offset, secnum) - SAVED_F77_COMMON_PTR blk; - CORE_ADDR offset; - int secnum; +patch_common_entries (SAVED_F77_COMMON_PTR blk, CORE_ADDR offset, int secnum) { COMMON_ENTRY_PTR entry; @@ -818,10 +799,7 @@ patch_common_entries (blk, offset, secnum) (which is where common data lives). */ static void -patch_all_commons_by_name (name, offset, secnum) - char *name; - CORE_ADDR offset; - int secnum; +patch_all_commons_by_name (char *name, CORE_ADDR offset, int secnum) { SAVED_F77_COMMON_PTR tmp; @@ -832,7 +810,7 @@ patch_all_commons_by_name (name, offset, secnum) if ((STREQ (name, BLANK_COMMON_NAME_ORIGINAL)) || (STREQ (name, BLANK_COMMON_NAME_MF77))) { - free (name); + xfree (name); name = alloca (strlen (BLANK_COMMON_NAME_LOCAL) + 1); strcpy (name, BLANK_COMMON_NAME_LOCAL); } @@ -889,7 +867,7 @@ else \ #if 0 static void -clear_bf_list () +clear_bf_list (void) { SAVED_BF_PTR tmp = saved_bf_list; @@ -898,7 +876,7 @@ clear_bf_list () while (tmp != NULL) { next = tmp->next; - free (tmp); + xfree (tmp); tmp = next; } saved_bf_list = NULL; @@ -910,8 +888,7 @@ int global_remote_debug; #if 0 static long -get_bf_for_fcn (the_function) - long the_function; +get_bf_for_fcn (long the_function) { SAVED_BF_PTR tmp; int nprobes = 0; @@ -920,7 +897,8 @@ get_bf_for_fcn (the_function) item at the head of the queue is the one you want) */ if (saved_bf_list == NULL) - fatal ("cannot get .bf node off empty list"); + internal_error (__FILE__, __LINE__, + "cannot get .bf node off empty list"); if (current_head_bf_list != NULL) if (current_head_bf_list->symnum_fcn == the_function) @@ -962,7 +940,7 @@ static SAVED_FUNCTION_PTR saved_function_list = NULL; static SAVED_FUNCTION_PTR saved_function_list_end = NULL; static void -clear_function_list () +clear_function_list (void) { SAVED_FUNCTION_PTR tmp = saved_function_list; SAVED_FUNCTION_PTR next = NULL; @@ -970,7 +948,7 @@ clear_function_list () while (tmp != NULL) { next = tmp->next; - free (tmp); + xfree (tmp); tmp = next; }