GDB (API)
/home/stan/gdb/src/gdb/f-lang.h
Go to the documentation of this file.
00001 /* Fortran language support definitions for GDB, the GNU debugger.
00002 
00003    Copyright (C) 1992-2013 Free Software Foundation, Inc.
00004 
00005    Contributed by Motorola.  Adapted from the C definitions by Farooq Butt
00006    (fmbutt@engage.sps.mot.com).
00007 
00008    This file is part of GDB.
00009 
00010    This program is free software; you can redistribute it and/or modify
00011    it under the terms of the GNU General Public License as published by
00012    the Free Software Foundation; either version 3 of the License, or
00013    (at your option) any later version.
00014 
00015    This program is distributed in the hope that it will be useful,
00016    but WITHOUT ANY WARRANTY; without even the implied warranty of
00017    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018    GNU General Public License for more details.
00019 
00020    You should have received a copy of the GNU General Public License
00021    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
00022 
00023 struct type_print_options;
00024 
00025 extern int f_parse (void);
00026 
00027 extern void f_error (char *);   /* Defined in f-exp.y */
00028 
00029 extern void f_print_type (struct type *, const char *, struct ui_file *, int,
00030                           int, const struct type_print_options *);
00031 
00032 extern void f_val_print (struct type *, const gdb_byte *, int, CORE_ADDR,
00033                          struct ui_file *, int,
00034                          const struct value *,
00035                          const struct value_print_options *);
00036 
00037 /* Language-specific data structures */
00038 
00039 /* In F90 subrange expression, either bound could be empty, indicating that
00040    its value is by default that of the corresponding bound of the array or
00041    string.  So we have four sorts of subrange in F90.  This enumeration type
00042    is to identify this.  */
00043    
00044 enum f90_range_type
00045   {
00046     BOTH_BOUND_DEFAULT,         /* "(:)"  */
00047     LOW_BOUND_DEFAULT,          /* "(:high)"  */
00048     HIGH_BOUND_DEFAULT,         /* "(low:)"  */
00049     NONE_BOUND_DEFAULT          /* "(low:high)"  */
00050   };
00051 
00052 /* A common block.  */
00053 
00054 struct common_block
00055 {
00056   /* The number of entries in the block.  */
00057   size_t n_entries;
00058 
00059   /* The contents of the block, allocated using the struct hack.  All
00060      pointers in the array are non-NULL.  */
00061   struct symbol *contents[1];
00062 };
00063 
00064 extern int f77_get_upperbound (struct type *);
00065 
00066 extern int f77_get_lowerbound (struct type *);
00067 
00068 extern void f77_get_dynamic_array_length (struct type *);
00069 
00070 extern int calc_f77_array_dims (struct type *);
00071 
00072 
00073 /* Fortran (F77) types */
00074 
00075 struct builtin_f_type
00076 {
00077   struct type *builtin_character;
00078   struct type *builtin_integer;
00079   struct type *builtin_integer_s2;
00080   struct type *builtin_logical;
00081   struct type *builtin_logical_s1;
00082   struct type *builtin_logical_s2;
00083   struct type *builtin_logical_s8;
00084   struct type *builtin_real;
00085   struct type *builtin_real_s8;
00086   struct type *builtin_real_s16;
00087   struct type *builtin_complex_s8;
00088   struct type *builtin_complex_s16;
00089   struct type *builtin_complex_s32;
00090   struct type *builtin_void;
00091 };
00092 
00093 /* Return the Fortran type table for the specified architecture.  */
00094 extern const struct builtin_f_type *builtin_f_type (struct gdbarch *gdbarch);
00095 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines