]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/f-lang.h
GDB copyright headers update after running GDB's copyright.py script.
[thirdparty/binutils-gdb.git] / gdb / f-lang.h
CommitLineData
c906108c 1/* Fortran language support definitions for GDB, the GNU debugger.
a2bd3dcd 2
618f726f 3 Copyright (C) 1992-2016 Free Software Foundation, Inc.
a2bd3dcd 4
c906108c
SS
5 Contributed by Motorola. Adapted from the C definitions by Farooq Butt
6 (fmbutt@engage.sps.mot.com).
7
c5aa993b 8 This file is part of GDB.
c906108c 9
c5aa993b
JM
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
a9762ec7 12 the Free Software Foundation; either version 3 of the License, or
c5aa993b 13 (at your option) any later version.
c906108c 14
c5aa993b
JM
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.
c906108c 19
c5aa993b 20 You should have received a copy of the GNU General Public License
a9762ec7 21 along with this program. If not, see <http://www.gnu.org/licenses/>. */
c906108c 22
79d43c61 23struct type_print_options;
410a0ff2 24struct parser_state;
79d43c61 25
410a0ff2 26extern int f_parse (struct parser_state *);
c906108c 27
a14ed312 28extern void f_error (char *); /* Defined in f-exp.y */
c906108c 29
25b524e8 30extern void f_print_type (struct type *, const char *, struct ui_file *, int,
79d43c61 31 int, const struct type_print_options *);
c906108c 32
d3eab38a
TT
33extern 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 *);
c906108c 37
c5aa993b 38/* Language-specific data structures */
c906108c 39
0b4e1325
WZ
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
45enum f90_range_type
46 {
47 BOTH_BOUND_DEFAULT, /* "(:)" */
48 LOW_BOUND_DEFAULT, /* "(:high)" */
49 HIGH_BOUND_DEFAULT, /* "(low:)" */
50 NONE_BOUND_DEFAULT /* "(low:high)" */
51 };
52
4357ac6c 53/* A common block. */
c906108c 54
4357ac6c
TT
55struct common_block
56{
57 /* The number of entries in the block. */
58 size_t n_entries;
c906108c 59
4357ac6c
TT
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};
c906108c 64
d78df370 65extern int f77_get_upperbound (struct type *);
c906108c 66
d78df370 67extern int f77_get_lowerbound (struct type *);
c906108c 68
a14ed312 69extern void f77_get_dynamic_array_length (struct type *);
c906108c 70
a14ed312 71extern int calc_f77_array_dims (struct type *);
4cca3ac9
UW
72
73
74/* Fortran (F77) types */
75
76struct builtin_f_type
77{
78 struct type *builtin_character;
79 struct type *builtin_integer;
80 struct type *builtin_integer_s2;
81 struct type *builtin_logical;
82 struct type *builtin_logical_s1;
83 struct type *builtin_logical_s2;
ce4b0682 84 struct type *builtin_logical_s8;
4cca3ac9
UW
85 struct type *builtin_real;
86 struct type *builtin_real_s8;
87 struct type *builtin_real_s16;
88 struct type *builtin_complex_s8;
89 struct type *builtin_complex_s16;
90 struct type *builtin_complex_s32;
91 struct type *builtin_void;
92};
93
94/* Return the Fortran type table for the specified architecture. */
95extern const struct builtin_f_type *builtin_f_type (struct gdbarch *gdbarch);
96