]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/fortran/types.def
stdfix.h [...]: Include <stdfix-avrlibc.h>.
[thirdparty/gcc.git] / gcc / fortran / types.def
CommitLineData
5624e564 1/* Copyright (C) 2001-2015 Free Software Foundation, Inc.
6c7a4dfd
JJ
2
3This file is part of GCC.
4
5GCC is free software; you can redistribute it and/or modify it under
6the terms of the GNU General Public License as published by the Free
d234d788 7Software Foundation; either version 3, or (at your option) any later
6c7a4dfd
JJ
8version.
9
10GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11WARRANTY; without even the implied warranty of MERCHANTABILITY or
12FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13for more details.
14
15You should have received a copy of the GNU General Public License
d234d788
NC
16along with GCC; see the file COPYING3. If not see
17<http://www.gnu.org/licenses/>. */
6c7a4dfd
JJ
18
19/* This header contains a subset of ../builtin-types.def needed for
20 Fortran frontend builtins.
21
22 Before including this header, you must define the following macros:
23
24 DEF_PRIMITIVE_TYPE (ENUM, TYPE)
25
26 The ENUM is an identifier indicating which type is being defined.
27 TYPE is an expression for a `tree' that represents the type.
28
29 DEF_FUNCTION_TYPE_0 (ENUM, RETURN)
30 DEF_FUNCTION_TYPE_1 (ENUM, RETURN, ARG1)
31 DEF_FUNCTION_TYPE_2 (ENUM, RETURN, ARG1, ARG2)
f6a7cffc 32 [...]
6c7a4dfd
JJ
33
34 These macros describe function types. ENUM is as above. The
35 RETURN type is one of the enumerals already defined. ARG1, ARG2,
36 and ARG3 give the types of the arguments, similarly.
37
38 DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN)
39
40 Similar, but for function types that take variable arguments.
41
42 DEF_POINTER_TYPE (ENUM, TYPE)
43
44 This macro describes a pointer type. ENUM is as above; TYPE is
45 the type pointed to. */
46
47DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
a68ab351
JJ
48DEF_PRIMITIVE_TYPE (BT_BOOL,
49 (*lang_hooks.types.type_for_size) (BOOL_TYPE_SIZE, 1))
6c7a4dfd
JJ
50DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
51DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node)
52DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
a68ab351 53DEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node)
8893239d 54DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 1))
86951993 55DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
6c7a4dfd
JJ
56
57DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
58DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
59DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
60DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
61DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1))
62
63DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
64DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
65DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR,
66 build_pointer_type
67 (build_qualified_type (void_type_node,
68 TYPE_QUAL_VOLATILE)))
86951993
AM
69DEF_PRIMITIVE_TYPE (BT_CONST_VOLATILE_PTR,
70 build_pointer_type
71 (build_qualified_type (void_type_node,
72 TYPE_QUAL_VOLATILE|TYPE_QUAL_CONST)))
6c7a4dfd 73DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG)
a68ab351 74DEF_POINTER_TYPE (BT_PTR_ULONGLONG, BT_ULONGLONG)
6c7a4dfd
JJ
75DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR)
76DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL)
77DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
78DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT)
79DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
80DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
81
82DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
83DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
84DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
41dbbb37 85DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
6c7a4dfd 86DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT)
8893239d 87DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
86951993 88DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
acf0174b 89DEF_FUNCTION_TYPE_1 (BT_FN_BOOL_INT, BT_BOOL, BT_INT)
6c7a4dfd
JJ
90
91DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR)
92
93DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR,
94 BT_BOOL, BT_PTR_LONG, BT_PTR_LONG)
a68ab351
JJ
95DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
96 BT_BOOL, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
6c7a4dfd
JJ
97DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
98DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
99DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
100DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
101DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16)
a68ab351 102DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
86951993
AM
103DEF_FUNCTION_TYPE_2 (BT_FN_I1_CONST_VPTR_INT, BT_I1, BT_CONST_VOLATILE_PTR,
104 BT_INT)
105DEF_FUNCTION_TYPE_2 (BT_FN_I2_CONST_VPTR_INT, BT_I2, BT_CONST_VOLATILE_PTR,
106 BT_INT)
107DEF_FUNCTION_TYPE_2 (BT_FN_I4_CONST_VPTR_INT, BT_I4, BT_CONST_VOLATILE_PTR,
108 BT_INT)
109DEF_FUNCTION_TYPE_2 (BT_FN_I8_CONST_VPTR_INT, BT_I8, BT_CONST_VOLATILE_PTR,
110 BT_INT)
111DEF_FUNCTION_TYPE_2 (BT_FN_I16_CONST_VPTR_INT, BT_I16, BT_CONST_VOLATILE_PTR,
112 BT_INT)
113DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_INT, BT_VOID, BT_VOLATILE_PTR, BT_INT)
114DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_VPTR_INT, BT_BOOL, BT_VOLATILE_PTR, BT_INT)
115DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_SIZE_CONST_VPTR, BT_BOOL, BT_SIZE,
116 BT_CONST_VOLATILE_PTR)
acf0174b
JJ
117DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_INT_BOOL, BT_BOOL, BT_INT, BT_BOOL)
118DEF_FUNCTION_TYPE_2 (BT_FN_VOID_UINT_UINT, BT_VOID, BT_UINT, BT_UINT)
a68ab351
JJ
119
120DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
6c7a4dfd
JJ
121
122DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
123 BT_I1, BT_I1)
124DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
125 BT_I2, BT_I2)
126DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
127 BT_I4, BT_I4)
128DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
129 BT_I8, BT_I8)
130DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR,
131 BT_I16, BT_I16)
132DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
133DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
134DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
135DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
136DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR,
137 BT_I16, BT_I16)
86951993
AM
138DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_INT, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_INT)
139DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_INT, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_INT)
140DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_INT, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_INT)
141DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_INT, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_INT)
142DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_INT, BT_I16, BT_VOLATILE_PTR, BT_I16, BT_INT)
143DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I1_INT, BT_VOID, BT_VOLATILE_PTR, BT_I1, BT_INT)
144DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I2_INT, BT_VOID, BT_VOLATILE_PTR, BT_I2, BT_INT)
145DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I4_INT, BT_VOID, BT_VOLATILE_PTR, BT_I4, BT_INT)
146DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I8_INT, BT_VOID, BT_VOLATILE_PTR, BT_I8, BT_INT)
147DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I16_INT, BT_VOID, BT_VOLATILE_PTR, BT_I16, BT_INT)
6c7a4dfd
JJ
148
149DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
150 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
8893239d
RH
151DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
152 BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
86951993
AM
153DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_VPTR_PTR_INT, BT_VOID, BT_SIZE,
154 BT_VOLATILE_PTR, BT_PTR, BT_INT)
155DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_VOID, BT_SIZE,
156 BT_CONST_VOLATILE_PTR, BT_PTR, BT_INT)
6c7a4dfd 157
acf0174b
JJ
158DEF_FUNCTION_TYPE_5 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
159 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT,
160 BT_UINT)
6c7a4dfd
JJ
161DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
162 BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
163 BT_PTR_LONG, BT_PTR_LONG)
86951993
AM
164DEF_FUNCTION_TYPE_5 (BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, BT_VOID, BT_SIZE,
165 BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT)
6c7a4dfd
JJ
166
167DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
168 BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
169 BT_PTR_LONG, BT_PTR_LONG)
a68ab351
JJ
170DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
171 BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
172 BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
86951993
AM
173DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT,
174 BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
175 BT_INT)
176DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT,
177 BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
178 BT_INT)
179DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT,
180 BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
181 BT_INT)
182DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT,
183 BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
184 BT_INT)
185DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT,
186 BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
187 BT_INT)
188DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
189 BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT)
acf0174b
JJ
190DEF_FUNCTION_TYPE_6 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
191 BT_VOID, BT_INT, BT_PTR, BT_SIZE, BT_PTR, BT_PTR, BT_PTR)
6c7a4dfd 192
acf0174b 193DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
6c7a4dfd 194 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
acf0174b 195 BT_LONG, BT_LONG, BT_LONG, BT_UINT)
a68ab351
JJ
196DEF_FUNCTION_TYPE_7 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
197 BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
198 BT_ULONGLONG, BT_ULONGLONG,
199 BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
acf0174b
JJ
200DEF_FUNCTION_TYPE_7 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
201 BT_VOID, BT_INT, BT_PTR_FN_VOID_PTR, BT_PTR, BT_SIZE,
202 BT_PTR, BT_PTR, BT_PTR)
203
204DEF_FUNCTION_TYPE_8 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
205 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
206 BT_LONG, BT_LONG, BT_LONG, BT_LONG, BT_UINT)
207DEF_FUNCTION_TYPE_8 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR,
208 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
209 BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
210 BT_BOOL, BT_UINT, BT_PTR)
6c7a4dfd
JJ
211
212DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
41dbbb37
TS
213
214DEF_FUNCTION_TYPE_VAR_2 (BT_FN_VOID_INT_INT_VAR, BT_VOID, BT_INT, BT_INT)
215
216DEF_FUNCTION_TYPE_VAR_8 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR,
217 BT_VOID, BT_INT, BT_PTR, BT_SIZE, BT_PTR, BT_PTR,
218 BT_PTR, BT_INT, BT_INT)
219
220DEF_FUNCTION_TYPE_VAR_12 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR,
221 BT_VOID, BT_INT, BT_PTR_FN_VOID_PTR, BT_PTR, BT_SIZE,
222 BT_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT, BT_INT,
223 BT_INT, BT_INT)