/* Fortran language support definitions for GDB, the GNU debugger.
- Copyright 1992, 1993, 1994, 2000 Free Software Foundation, Inc.
+
+ Copyright (C) 1992, 1993, 1994, 1995, 1998, 2000, 2005 Free Software
+ Foundation, Inc.
+
Contributed by Motorola. Adapted from the C definitions by Farooq Butt
(fmbutt@engage.sps.mot.com).
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. */
-extern int f_parse PARAMS ((void));
+extern int f_parse (void);
-extern void f_error PARAMS ((char *)); /* Defined in f-exp.y */
+extern void f_error (char *); /* Defined in f-exp.y */
extern void f_print_type (struct type *, char *, struct ui_file *, int,
int);
-extern int f_val_print (struct type *, char *, int, CORE_ADDR,
+extern int f_val_print (struct type *, const gdb_byte *, int, CORE_ADDR,
struct ui_file *, int, int, int,
enum val_prettyprint);
/* Language-specific data structures */
+/* In F90 subrange expression, either bound could be empty, indicating that
+ its value is by default that of the corresponding bound of the array or
+ string. So we have four sorts of subrange in F90. This enumeration type
+ is to identify this. */
+
+enum f90_range_type
+ {
+ BOTH_BOUND_DEFAULT, /* "(:)" */
+ LOW_BOUND_DEFAULT, /* "(:high)" */
+ HIGH_BOUND_DEFAULT, /* "(low:)" */
+ NONE_BOUND_DEFAULT /* "(low:high)" */
+ };
+
struct common_entry
{
struct symbol *symbol; /* The symbol node corresponding
extern SAVED_F77_COMMON_PTR tail_common_list; /* Ptr to last saved COMMON */
extern SAVED_F77_COMMON_PTR current_common; /* Ptr to current COMMON */
-extern SAVED_F77_COMMON_PTR find_common_for_function PARAMS ((char *, char *));
+extern SAVED_F77_COMMON_PTR find_common_for_function (char *, char *);
#define UNINITIALIZED_SECNUM -1
#define COMMON_NEEDS_PATCHING(blk) ((blk)->secnum == UNINITIALIZED_SECNUM)
extern char *real_main_name; /* Name of main function */
extern int real_main_c_value; /* C_value field of main function */
-extern int f77_get_dynamic_upperbound PARAMS ((struct type *, int *));
+extern int f77_get_dynamic_upperbound (struct type *, int *);
-extern int f77_get_dynamic_lowerbound PARAMS ((struct type *, int *));
+extern int f77_get_dynamic_lowerbound (struct type *, int *);
-extern void f77_get_dynamic_array_length PARAMS ((struct type *));
+extern void f77_get_dynamic_array_length (struct type *);
-extern int calc_f77_array_dims PARAMS ((struct type *));
+extern int calc_f77_array_dims (struct type *);
#define DEFAULT_DOTMAIN_NAME_IN_MF77 ".MAIN_"
#define DEFAULT_MAIN_NAME_IN_MF77 "MAIN_"