GDB (xrefs)
/tmp/gdb-7.10/gdb/f-lang.h
Go to the documentation of this file.
1 /* Fortran language support definitions for GDB, the GNU debugger.
2 
3  Copyright (C) 1992-2015 Free Software Foundation, Inc.
4 
5  Contributed by Motorola. Adapted from the C definitions by Farooq Butt
6  (fmbutt@engage.sps.mot.com).
7 
8  This file is part of GDB.
9 
10  This program is free software; you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation; either version 3 of the License, or
13  (at your option) any later version.
14 
15  This program is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with this program. If not, see <http://www.gnu.org/licenses/>. */
22 
23 struct type_print_options;
24 struct parser_state;
25 
26 extern int f_parse (struct parser_state *);
27 
28 extern void f_error (char *); /* Defined in f-exp.y */
29 
30 extern void f_print_type (struct type *, const char *, struct ui_file *, int,
31  int, const struct type_print_options *);
32 
33 extern void f_val_print (struct type *, const gdb_byte *, int, CORE_ADDR,
34  struct ui_file *, int,
35  const struct value *,
36  const struct value_print_options *);
37 
38 /* Language-specific data structures */
39 
40 /* In F90 subrange expression, either bound could be empty, indicating that
41  its value is by default that of the corresponding bound of the array or
42  string. So we have four sorts of subrange in F90. This enumeration type
43  is to identify this. */
44 
46  {
47  BOTH_BOUND_DEFAULT, /* "(:)" */
48  LOW_BOUND_DEFAULT, /* "(:high)" */
49  HIGH_BOUND_DEFAULT, /* "(low:)" */
50  NONE_BOUND_DEFAULT /* "(low:high)" */
51  };
52 
53 /* A common block. */
54 
56 {
57  /* The number of entries in the block. */
58  size_t n_entries;
59 
60  /* The contents of the block, allocated using the struct hack. All
61  pointers in the array are non-NULL. */
62  struct symbol *contents[1];
63 };
64 
65 extern int f77_get_upperbound (struct type *);
66 
67 extern int f77_get_lowerbound (struct type *);
68 
69 extern void f77_get_dynamic_array_length (struct type *);
70 
71 extern int calc_f77_array_dims (struct type *);
72 
73 
74 /* Fortran (F77) types */
75 
77 {
85  struct type *builtin_real;
91  struct type *builtin_void;
92 };
93 
94 /* Return the Fortran type table for the specified architecture. */
95 extern const struct builtin_f_type *builtin_f_type (struct gdbarch *gdbarch);
96 
f90_range_type
Definition: f-lang.h:45
struct type * builtin_real_s8
Definition: f-lang.h:86
bfd_vma CORE_ADDR
Definition: common-types.h:41
struct type * builtin_integer_s2
Definition: f-lang.h:80
struct type * builtin_real_s16
Definition: f-lang.h:87
struct type * builtin_logical_s8
Definition: f-lang.h:84
struct type * builtin_logical_s2
Definition: f-lang.h:83
struct type * builtin_logical
Definition: f-lang.h:81
size_t n_entries
Definition: f-lang.h:58
void f_print_type(struct type *, const char *, struct ui_file *, int, int, const struct type_print_options *)
Definition: f-typeprint.c:50
int f77_get_upperbound(struct type *)
Definition: f-valprint.c:67
struct symbol * contents[1]
Definition: f-lang.h:62
struct type * builtin_complex_s16
Definition: f-lang.h:89
struct type * builtin_complex_s32
Definition: f-lang.h:90
void f77_get_dynamic_array_length(struct type *)
struct type * builtin_character
Definition: f-lang.h:78
struct type * builtin_integer
Definition: f-lang.h:79
void f_error(char *)
int f77_get_lowerbound(struct type *)
Definition: f-valprint.c:58
Definition: gdbtypes.h:749
const struct builtin_f_type * builtin_f_type(struct gdbarch *gdbarch)
Definition: f-lang.c:344
int f_parse(struct parser_state *)
Definition: f-exp.c:2971
Definition: value.c:172
bfd_byte gdb_byte
Definition: common-types.h:38
int calc_f77_array_dims(struct type *)
Definition: eval.c:3119
struct type * builtin_complex_s8
Definition: f-lang.h:88
void f_val_print(struct type *, const gdb_byte *, int, CORE_ADDR, struct ui_file *, int, const struct value *, const struct value_print_options *)
Definition: f-valprint.c:255
struct type * builtin_void
Definition: f-lang.h:91
struct type * builtin_real
Definition: f-lang.h:85
Definition: symtab.h:703
struct type * builtin_logical_s1
Definition: f-lang.h:82