* cse.c (cse_insn): Fix loop to stop at VOIDmode.
[official-gcc.git] / gcc / builtin-types.def
blob4676dd7641b282c04de717f2438783abd6e64b27
1 /* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
2 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free
8 Software Foundation; either version 3, or (at your option) any later
9 version.
11 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 for more details.
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3. If not see
18 <http://www.gnu.org/licenses/>. */
20 /* This header provides a declarative way of describing the types that
21 are used when declaring builtin functions.
23 Before including this header, you must define the following macros:
25 DEF_PRIMITIVE_TYPE (ENUM, TYPE)
27 The ENUM is an identifier indicating which type is being defined.
28 TYPE is an expression for a `tree' that represents the type.
30 DEF_FUNCTION_TYPE_0 (ENUM, RETURN)
31 DEF_FUNCTION_TYPE_1 (ENUM, RETURN, ARG1)
32 DEF_FUNCTION_TYPE_2 (ENUM, RETURN, ARG1, ARG2)
33 DEF_FUNCTION_TYPE_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
34 DEF_FUNCTION_TYPE_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4)
35 DEF_FUNCTION_TYPE_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)
36 DEF_FUNCTION_TYPE_6 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6)
37 DEF_FUNCTION_TYPE_7 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7)
39 These macros describe function types. ENUM is as above. The
40 RETURN type is one of the enumerals already defined. ARG1, ARG2,
41 etc, give the types of the arguments, similarly.
43 DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN)
44 DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1)
45 DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2)
46 DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
47 DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4)
48 DEF_FUNCTION_TYPE_VAR_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)
50 Similar, but for function types that take variable arguments.
51 For example:
53 DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE)
55 describes the type `int ()(double)', using the enumeral
56 BT_INT_DOUBLE, whereas:
58 DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE)
60 describes the type `int ()(double, ...)'.
62 DEF_POINTER_TYPE (ENUM, TYPE)
64 This macro describes a pointer type. ENUM is as above; TYPE is
65 the type pointed to. */
67 DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
68 DEF_PRIMITIVE_TYPE (BT_BOOL, boolean_type_node)
69 DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
70 DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node)
71 DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
72 DEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node)
73 DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
74 DEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node)
75 DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
76 DEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node)
77 DEF_PRIMITIVE_TYPE (BT_UINT32, uint32_type_node)
78 DEF_PRIMITIVE_TYPE (BT_UINT64, uint64_type_node)
79 DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 1))
80 DEF_PRIMITIVE_TYPE (BT_UNWINDWORD, (*lang_hooks.types.type_for_mode)
81 (targetm.unwind_word_mode (), 1))
82 DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
83 DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
84 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
85 DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
86 DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
87 DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
89 DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
90 DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
91 DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
92 DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR,
93 build_pointer_type
94 (build_qualified_type (void_type_node,
95 TYPE_QUAL_VOLATILE)))
96 DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
97 DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
98 DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
99 DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
100 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
101 DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
102 DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
103 DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
104 DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
105 DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
106 DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
108 DEF_PRIMITIVE_TYPE (BT_DFLOAT32, dfloat32_type_node)
109 DEF_PRIMITIVE_TYPE (BT_DFLOAT64, dfloat64_type_node)
110 DEF_PRIMITIVE_TYPE (BT_DFLOAT128, dfloat128_type_node)
111 DEF_PRIMITIVE_TYPE (BT_DFLOAT32_PTR, dfloat32_ptr_type_node)
112 DEF_PRIMITIVE_TYPE (BT_DFLOAT64_PTR, dfloat64_ptr_type_node)
113 DEF_PRIMITIVE_TYPE (BT_DFLOAT128_PTR, dfloat128_ptr_type_node)
115 DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
116 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
118 DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
119 DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
120 DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
121 DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
122 DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1))
124 DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
125 DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG)
126 DEF_POINTER_TYPE (BT_PTR_ULONGLONG, BT_ULONGLONG)
127 DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR)
129 DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
130 DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL)
131 DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
132 DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
133 DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT)
134 DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
135 DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
136 DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
137 /* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
138 distinguish it from two types in sequence, "long" followed by
139 "double". */
140 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
141 DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT32, BT_DFLOAT32)
142 DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64, BT_DFLOAT64)
143 DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT128, BT_DFLOAT128)
145 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
146 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
147 DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
148 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
149 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
150 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
151 BT_LONGDOUBLE, BT_LONGDOUBLE)
152 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
153 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
154 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
155 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
156 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
157 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
158 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
159 BT_FLOAT, BT_COMPLEX_FLOAT)
160 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
161 BT_DOUBLE, BT_COMPLEX_DOUBLE)
162 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
163 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
164 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_FLOAT,
165 BT_COMPLEX_FLOAT, BT_FLOAT)
166 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_DOUBLE,
167 BT_COMPLEX_DOUBLE, BT_DOUBLE)
168 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE,
169 BT_COMPLEX_LONGDOUBLE, BT_LONGDOUBLE)
170 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
171 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
172 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
173 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
174 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
175 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
176 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
177 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
178 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
179 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
180 DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
181 DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
182 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
183 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
184 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT32, BT_INT, BT_DFLOAT32)
185 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT64, BT_INT, BT_DFLOAT64)
186 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT128, BT_INT, BT_DFLOAT128)
187 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
188 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
189 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
190 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
191 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
192 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
193 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
194 DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
195 DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
196 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
197 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
198 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
199 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
200 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
201 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
202 BT_LONGDOUBLE, BT_CONST_STRING)
203 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONST_STRING, BT_DFLOAT32, BT_CONST_STRING)
204 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING)
205 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING,
206 BT_DFLOAT128, BT_CONST_STRING)
207 DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
208 DEF_FUNCTION_TYPE_1 (BT_FN_UNWINDWORD_PTR, BT_UNWINDWORD, BT_PTR)
209 DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
210 DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
211 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32)
212 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64)
213 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128)
214 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
215 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
216 DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT)
217 DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG)
218 DEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
219 DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_UINT32, BT_UINT32, BT_UINT32)
220 DEF_FUNCTION_TYPE_1 (BT_FN_UINT64_UINT64, BT_UINT64, BT_UINT64)
222 DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR)
224 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
225 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
226 BT_STRING, BT_STRING, BT_CONST_STRING)
227 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
228 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
229 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
230 BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
231 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
232 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
233 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
234 BT_STRING, BT_CONST_STRING, BT_INT)
235 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
236 BT_STRING, BT_CONST_STRING, BT_SIZE)
237 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
238 BT_INT, BT_CONST_STRING, BT_FILEPTR)
239 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
240 BT_INT, BT_INT, BT_FILEPTR)
241 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
242 BT_VOID, BT_PTRMODE, BT_PTR)
243 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
244 BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
245 DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
246 BT_LONG, BT_LONG, BT_LONG)
247 DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
248 BT_INT, BT_PTR, BT_CONST_STRING)
249 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
250 BT_VOID, BT_PTR, BT_SIZE)
251 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
252 BT_FLOAT, BT_FLOAT, BT_FLOAT)
253 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
254 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
255 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
256 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
257 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
258 BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
259 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
260 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
261 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
262 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
263 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
264 BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
265 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
266 BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
267 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
268 BT_FLOAT, BT_FLOAT, BT_INT)
269 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
270 BT_DOUBLE, BT_DOUBLE, BT_INT)
271 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
272 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
273 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
274 BT_FLOAT, BT_FLOAT, BT_INT_PTR)
275 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
276 BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
277 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
278 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
279 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
280 BT_FLOAT, BT_INT, BT_FLOAT)
281 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
282 BT_DOUBLE, BT_INT, BT_DOUBLE)
283 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
284 BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
285 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
286 BT_FLOAT, BT_FLOAT, BT_LONG)
287 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
288 BT_DOUBLE, BT_DOUBLE, BT_LONG)
289 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
290 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
291 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
292 BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
293 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
294 BT_PTR, BT_SIZE, BT_SIZE)
295 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_PTR_SIZE,
296 BT_PTR, BT_PTR, BT_SIZE)
297 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT,
298 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
299 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
300 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
301 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
302 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
303 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
304 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
305 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
306 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT)
307 DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
308 DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
309 DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
310 DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
311 DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16)
312 DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR,
313 BT_BOOL, BT_PTR_LONG, BT_PTR_LONG)
314 DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
315 BT_BOOL, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
317 DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
319 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
320 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
321 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
322 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
323 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
324 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
325 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
326 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
327 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
328 BT_PTR, BT_PTR, BT_INT, BT_SIZE)
329 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
330 BT_VOID, BT_PTR, BT_INT, BT_INT)
331 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
332 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
333 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
334 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
335 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
336 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
337 DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
338 BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
339 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
340 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
341 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
342 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
343 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
344 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
345 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
346 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
347 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
348 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
349 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
350 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
351 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
352 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
353 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
354 BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
355 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
356 BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
357 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
358 BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
359 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
360 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
361 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
362 DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
363 BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
364 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
365 BT_I1, BT_I1)
366 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
367 BT_I2, BT_I2)
368 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
369 BT_I4, BT_I4)
370 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
371 BT_I8, BT_I8)
372 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR,
373 BT_I16, BT_I16)
374 DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
375 DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
376 DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
377 DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
378 DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR,
379 BT_I16, BT_I16)
380 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_OMPFN_PTR_UINT, BT_VOID, BT_PTR_FN_VOID_PTR,
381 BT_PTR, BT_UINT)
382 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_CONST_PTR_INT_SIZE, BT_PTR,
383 BT_CONST_PTR, BT_INT, BT_SIZE)
385 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
386 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
387 DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
388 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
389 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
390 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
391 DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE,
392 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
393 DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
394 BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
395 DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
396 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
397 DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
398 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
399 DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
400 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
401 DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
402 BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
404 DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
405 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
406 BT_VALIST_ARG)
407 DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
408 BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
409 BT_PTR_LONG, BT_PTR_LONG)
411 DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
412 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
413 BT_CONST_STRING, BT_VALIST_ARG)
414 DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
415 BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
416 BT_PTR_LONG, BT_PTR_LONG)
417 DEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
418 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
419 BT_LONG, BT_LONG, BT_LONG)
420 DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
421 BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
422 BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
424 DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
425 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
426 BT_LONG, BT_LONG, BT_LONG, BT_LONG)
427 DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT,
428 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
429 BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
430 BT_BOOL, BT_UINT)
431 DEF_FUNCTION_TYPE_7 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
432 BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
433 BT_ULONGLONG, BT_ULONGLONG,
434 BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
436 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
437 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
438 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
440 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
441 BT_VOID, BT_VALIST_REF)
442 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
443 BT_VOID, BT_CONST_PTR)
444 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
445 BT_INT, BT_CONST_STRING)
447 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
448 BT_INT, BT_FILEPTR, BT_CONST_STRING)
449 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
450 BT_INT, BT_STRING, BT_CONST_STRING)
451 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
452 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
453 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
454 BT_INT, BT_INT, BT_CONST_STRING)
456 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
457 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
458 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
459 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
460 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
461 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
463 DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
464 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING)
466 DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR,
467 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
468 BT_CONST_STRING)
470 DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_INT_INT_INT_INT_INT_VAR,
471 BT_INT, BT_INT, BT_INT, BT_INT, BT_INT, BT_INT)
473 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
474 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
475 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)