Line data Source code
1 : /* Copyright (C) 2006-2026 Free Software Foundation, Inc.
2 :
3 : This file is part of GCC.
4 :
5 : GCC is free software; you can redistribute it and/or modify it under
6 : the terms of the GNU General Public License as published by the Free
7 : Software Foundation; either version 3, or (at your option) any later
8 : version.
9 :
10 : GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11 : WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 : FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 : for more details.
14 :
15 : You should have received a copy of the GNU General Public License
16 : along with GCC; see the file COPYING3. If not see
17 : <http://www.gnu.org/licenses/>. */
18 :
19 : /* This file contains the definition of the named integer constants provided
20 : by the Fortran 2003 ISO_FORTRAN_ENV intrinsic module. The ordering of
21 : the entries matters for the *.mod backwards compatibility. */
22 :
23 : #ifndef NAMED_INTCST
24 : # define NAMED_INTCST(a,b,c,d)
25 : #endif
26 :
27 : #ifndef NAMED_UINTCST
28 : # define NAMED_UINTCST(a,b,c,d)
29 : #endif
30 :
31 : #ifndef NAMED_KINDARRAY
32 : # define NAMED_KINDARRAY(a,b,c,d)
33 : #endif
34 :
35 : #ifndef NAMED_SUBROUTINE
36 : # define NAMED_SUBROUTINE(a,b,c,d)
37 : #endif
38 :
39 : #ifndef NAMED_FUNCTION
40 : # define NAMED_FUNCTION(a,b,c,d)
41 : #endif
42 :
43 : /* The arguments to NAMED_INTCST are:
44 : -- an internal name
45 : -- the symbol name in the module, as seen by Fortran code
46 : -- the value it has
47 : -- the standard that supports this type */
48 :
49 10390 : NAMED_INTCST (ISOFORTRANENV_FILE_ATOMIC_INT_KIND, "atomic_int_kind", \
50 : gfc_atomic_int_kind, GFC_STD_F2008)
51 10390 : NAMED_INTCST (ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND, "atomic_logical_kind", \
52 : gfc_atomic_logical_kind, GFC_STD_F2008)
53 10390 : NAMED_INTCST (ISOFORTRANENV_CHARACTER_STORAGE_SIZE, "character_storage_size", \
54 : gfc_character_storage_size, GFC_STD_F2003)
55 10390 : NAMED_INTCST (ISOFORTRANENV_ERROR_UNIT, "error_unit", GFC_STDERR_UNIT_NUMBER, \
56 : GFC_STD_F2003)
57 10390 : NAMED_INTCST (ISOFORTRANENV_FILE_STORAGE_SIZE, "file_storage_size", 8, \
58 : GFC_STD_F2003)
59 10390 : NAMED_INTCST (ISOFORTRANENV_INPUT_UNIT, "input_unit", GFC_STDIN_UNIT_NUMBER, \
60 : GFC_STD_F2003)
61 602 : NAMED_INTCST (ISOFORTRANENV_INT8, "int8", \
62 : gfc_get_int_kind_from_width_isofortranenv (8), GFC_STD_F2008)
63 602 : NAMED_INTCST (ISOFORTRANENV_INT16, "int16", \
64 : gfc_get_int_kind_from_width_isofortranenv (16), GFC_STD_F2008)
65 602 : NAMED_INTCST (ISOFORTRANENV_INT32, "int32", \
66 : gfc_get_int_kind_from_width_isofortranenv (32), GFC_STD_F2008)
67 602 : NAMED_INTCST (ISOFORTRANENV_INT64, "int64", \
68 : gfc_get_int_kind_from_width_isofortranenv (64), GFC_STD_F2008)
69 10390 : NAMED_INTCST (ISOFORTRANENV_IOSTAT_END, "iostat_end", LIBERROR_END, \
70 : GFC_STD_F2003)
71 10390 : NAMED_INTCST (ISOFORTRANENV_IOSTAT_EOR, "iostat_eor", LIBERROR_EOR, \
72 : GFC_STD_F2003)
73 10390 : NAMED_INTCST (ISOFORTRANENV_IOSTAT_INQUIRE_INTERNAL_UNIT, \
74 : "iostat_inquire_internal_unit", LIBERROR_INQUIRE_INTERNAL_UNIT, \
75 : GFC_STD_F2008)
76 10390 : NAMED_INTCST (ISOFORTRANENV_NUMERIC_STORAGE_SIZE, "numeric_storage_size", \
77 : gfc_numeric_storage_size, GFC_STD_F2003)
78 10390 : NAMED_INTCST (ISOFORTRANENV_OUTPUT_UNIT, "output_unit", GFC_STDOUT_UNIT_NUMBER, \
79 : GFC_STD_F2003)
80 602 : NAMED_INTCST (ISOFORTRANENV_REAL32, "real32", \
81 : gfc_get_real_kind_from_width_isofortranenv (32), GFC_STD_F2008)
82 602 : NAMED_INTCST (ISOFORTRANENV_REAL64, "real64", \
83 : gfc_get_real_kind_from_width_isofortranenv (64), GFC_STD_F2008)
84 602 : NAMED_INTCST (ISOFORTRANENV_REAL128, "real128", \
85 : gfc_get_real_kind_from_width_isofortranenv (128), GFC_STD_F2008)
86 10390 : NAMED_INTCST (ISOFORTRANENV_STAT_LOCKED, "stat_locked", \
87 : GFC_STAT_LOCKED, GFC_STD_F2008)
88 10390 : NAMED_INTCST (ISOFORTRANENV_STAT_LOCKED_OTHER_IMAGE, \
89 : "stat_locked_other_image", \
90 : GFC_STAT_LOCKED_OTHER_IMAGE, GFC_STD_F2008)
91 10390 : NAMED_INTCST (ISOFORTRANENV_STAT_STOPPED_IMAGE, "stat_stopped_image", \
92 : GFC_STAT_STOPPED_IMAGE, GFC_STD_F2008)
93 10390 : NAMED_INTCST (ISOFORTRANENV_STAT_FAILED_IMAGE, "stat_failed_image", \
94 : GFC_STAT_FAILED_IMAGE, GFC_STD_F2018)
95 10390 : NAMED_INTCST (ISOFORTRANENV_STAT_UNLOCKED, "stat_unlocked", \
96 : GFC_STAT_UNLOCKED, GFC_STD_F2008)
97 10390 : NAMED_INTCST (ISOFORTRANENV_INITIAL_TEAM, "initial_team", \
98 : GFC_CAF_INITIAL_TEAM, GFC_STD_F2018)
99 10390 : NAMED_INTCST (ISOFORTRANENV_PARENT_TEAM, "parent_team", \
100 : GFC_CAF_PARENT_TEAM, GFC_STD_F2018)
101 10390 : NAMED_INTCST (ISOFORTRANENV_CURRENT_TEAM, "current_team", \
102 : GFC_CAF_CURRENT_TEAM, GFC_STD_F2018)
103 :
104 :
105 : /* The arguments to NAMED_KINDARRAY are:
106 : -- an internal name
107 : -- the symbol name in the module, as seen by Fortran code
108 : -- the gfortran variable containing the information
109 : -- the Fortran standard */
110 :
111 936 : NAMED_KINDARRAY (ISOFORTRAN_CHARACTER_KINDS, "character_kinds", \
112 : gfc_character_kinds, GFC_STD_F2008)
113 1884 : NAMED_KINDARRAY (ISOFORTRAN_INTEGER_KINDS, "integer_kinds", \
114 : gfc_integer_kinds, GFC_STD_F2008)
115 1830 : NAMED_KINDARRAY (ISOFORTRAN_LOGICAL_KINDS, "logical_kinds", \
116 : gfc_logical_kinds, GFC_STD_F2008)
117 1625 : NAMED_KINDARRAY (ISOFORTRAN_REAL_KINDS, "real_kinds", \
118 : gfc_real_kinds, GFC_STD_F2008)
119 :
120 : /* The arguments to NAMED_FUNCTIONS are:
121 : -- the ISYM
122 : -- the symbol name in the module, as seen by Fortran code
123 : -- the Fortran standard */
124 :
125 1226 : NAMED_FUNCTION (ISOFORTRAN_COMPILER_OPTIONS, "compiler_options", \
126 : GFC_ISYM_COMPILER_OPTIONS, GFC_STD_F2008)
127 1260 : NAMED_FUNCTION (ISOFORTRAN_COMPILER_VERSION, "compiler_version", \
128 : GFC_ISYM_COMPILER_VERSION, GFC_STD_F2008)
129 :
130 : #ifndef NAMED_DERIVED_TYPE
131 : # define NAMED_DERIVED_TYPE(a,b,c,d)
132 : #endif
133 :
134 1602 : NAMED_DERIVED_TYPE (ISOFORTRAN_LOCK_TYPE, "lock_type", \
135 : get_int_kind_from_node (ptr_type_node), GFC_STD_F2008)
136 :
137 1602 : NAMED_DERIVED_TYPE (ISOFORTRAN_EVENT_TYPE, "event_type", \
138 : flag_coarray == GFC_FCOARRAY_LIB
139 : ? get_int_kind_from_node (ptr_type_node)
140 : : gfc_default_integer_kind, GFC_STD_F2018)
141 :
142 1000 : NAMED_DERIVED_TYPE (ISOFORTRAN_TEAM_TYPE, "team_type", \
143 : get_int_kind_from_node (ptr_type_node), GFC_STD_F2018)
144 :
145 602 : NAMED_INTCST (ISOFORTRANENV_LOGICAL8, "logical8", \
146 : gfc_get_int_kind_from_width_isofortranenv (8), GFC_STD_F2023)
147 602 : NAMED_INTCST (ISOFORTRANENV_LOGICAL16, "logical16", \
148 : gfc_get_int_kind_from_width_isofortranenv (16), GFC_STD_F2023)
149 602 : NAMED_INTCST (ISOFORTRANENV_LOGICAL32, "logical32", \
150 : gfc_get_int_kind_from_width_isofortranenv (32), GFC_STD_F2023)
151 602 : NAMED_INTCST (ISOFORTRANENV_LOGICAL64, "logical64", \
152 : gfc_get_int_kind_from_width_isofortranenv (64), GFC_STD_F2023)
153 10390 : NAMED_INTCST (ISOFORTRANENV_REAL16, "real16", \
154 : gfc_get_real_kind_from_width_isofortranenv (16), GFC_STD_F2023)
155 :
156 602 : NAMED_UINTCST (ISOFORTRANENV_UINT8, "uint8", \
157 : gfc_get_uint_kind_from_width_isofortranenv (8), GFC_STD_UNSIGNED)
158 602 : NAMED_UINTCST (ISOFORTRANENV_UINT16, "uint16", \
159 : gfc_get_uint_kind_from_width_isofortranenv (16), GFC_STD_UNSIGNED)
160 602 : NAMED_UINTCST (ISOFORTRANENV_UINT32, "uint32", \
161 : gfc_get_uint_kind_from_width_isofortranenv (32), GFC_STD_UNSIGNED)
162 636 : NAMED_UINTCST (ISOFORTRANENV_UINT64, "uint64", \
163 : gfc_get_uint_kind_from_width_isofortranenv (64), GFC_STD_UNSIGNED)
164 :
165 : #undef NAMED_INTCST
166 : #undef NAMED_UINTCST
167 : #undef NAMED_KINDARRAY
168 : #undef NAMED_FUNCTION
169 : #undef NAMED_SUBROUTINE
170 : #undef NAMED_DERIVED_TYPE
|