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