]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/builtin-types.def
re PR fortran/30876 (Array valued recursive function rejected)
[thirdparty/gcc.git] / gcc / builtin-types.def
CommitLineData
e701a32a
RH
1/* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
2 Free Software Foundation, Inc.
10841285 3
1322177d 4This file is part of GCC.
10841285 5
1322177d
LB
6GCC is free software; you can redistribute it and/or modify it under
7the terms of the GNU General Public License as published by the Free
8Software Foundation; either version 2, or (at your option) any later
9version.
10841285 10
1322177d
LB
11GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12WARRANTY; without even the implied warranty of MERCHANTABILITY or
13FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14for more details.
10841285
MM
15
16You should have received a copy of the GNU General Public License
1322177d 17along with GCC; see the file COPYING. If not, write to the Free
366ccddb
KC
18Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
1902110-1301, USA. */
10841285 20
a457ee07 21/* This header provides a declarative way of describing the types that
10841285
MM
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)
10a0d495 36 DEF_FUNCTION_TYPE_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)
953ff289
DN
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)
10841285
MM
39
40 These macros describe function types. ENUM is as above. The
41 RETURN type is one of the enumerals already defined. ARG1, ARG2,
8225879c 42 etc, give the types of the arguments, similarly.
10841285
MM
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)
08291658 47 DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
10a0d495 48 DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4)
8225879c 49 DEF_FUNCTION_TYPE_VAR_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)
10841285
MM
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, ...)'.
c22cacf3 62
10841285
MM
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
68DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
48ae6c13 69DEF_PRIMITIVE_TYPE (BT_BOOL, boolean_type_node)
10841285 70DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
2319a1d1 71DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node)
10841285 72DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
2319a1d1 73DEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node)
10841285 74DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
2319a1d1
JB
75DEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node)
76DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
77DEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node)
167fa32c
EC
78DEF_PRIMITIVE_TYPE (BT_UINT32, uint32_type_node)
79DEF_PRIMITIVE_TYPE (BT_UINT64, uint64_type_node)
8893239d 80DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 1))
10841285 81DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
10841285 82DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
3c260e1d 83DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
10841285
MM
84DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
85DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
3c260e1d 86DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
10841285
MM
87
88DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
498c0f27 89DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
10841285 90DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
48ae6c13
RH
91DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR,
92 build_pointer_type
93 (build_qualified_type (void_type_node,
94 TYPE_QUAL_VOLATILE)))
b0c48229 95DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
a2a919aa
KG
96DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
97DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
98DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
99DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
d1c38823 100DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
c9f8536c 101DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
178b2b9f 102DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
ca4944e1 103DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
10841285
MM
104DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
105DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
10841285 106
9a8ce21f
JG
107DEF_PRIMITIVE_TYPE (BT_DFLOAT32, dfloat32_type_node)
108DEF_PRIMITIVE_TYPE (BT_DFLOAT64, dfloat64_type_node)
109DEF_PRIMITIVE_TYPE (BT_DFLOAT128, dfloat128_type_node)
110DEF_PRIMITIVE_TYPE (BT_DFLOAT32_PTR, dfloat32_ptr_type_node)
111DEF_PRIMITIVE_TYPE (BT_DFLOAT64_PTR, dfloat64_ptr_type_node)
112DEF_PRIMITIVE_TYPE (BT_DFLOAT128_PTR, dfloat128_ptr_type_node)
113
10841285
MM
114DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
115DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
116
48ae6c13
RH
117DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
118DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
119DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
120DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
a0274e3e 121DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1))
48ae6c13 122
d1c38823 123DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
953ff289
DN
124DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG)
125DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR)
d1c38823 126
10841285 127DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
953ff289 128DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL)
10841285 129DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
d1c38823 130DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
953ff289 131DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT)
2319a1d1 132DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
ab5e2615
RH
133DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
134DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
3c260e1d
KG
135/* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
136 distinguish it from two types in sequence, "long" followed by
137 "double". */
138DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
9a8ce21f
JG
139DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT32, BT_DFLOAT32)
140DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64, BT_DFLOAT64)
141DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT128, BT_DFLOAT128)
10841285
MM
142
143DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
144DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
145DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
146DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
147DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
c22cacf3
MS
148DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
149 BT_LONGDOUBLE, BT_LONGDOUBLE)
150DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
10841285 151 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
c22cacf3 152DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
10841285 153 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
c22cacf3
MS
154DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
155 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
156DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
157 BT_FLOAT, BT_COMPLEX_FLOAT)
10841285 158DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
c22cacf3 159 BT_DOUBLE, BT_COMPLEX_DOUBLE)
3c260e1d 160DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
c22cacf3 161 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
75c7c595
RG
162DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_FLOAT,
163 BT_COMPLEX_FLOAT, BT_FLOAT)
164DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_DOUBLE,
165 BT_COMPLEX_DOUBLE, BT_DOUBLE)
166DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE,
167 BT_COMPLEX_LONGDOUBLE, BT_LONGDOUBLE)
2319a1d1 168DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
10841285
MM
169DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
170DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
2319a1d1 171DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
2928cd7a 172DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
2319a1d1 173DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
2928cd7a 174DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
2319a1d1
JB
175DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
176DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
177DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
10841285 178DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
98ff7c4d
KG
179DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
180DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
181DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
9a8ce21f
JG
182DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT32, BT_INT, BT_DFLOAT32)
183DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT64, BT_INT, BT_DFLOAT64)
184DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT128, BT_INT, BT_DFLOAT128)
98ff7c4d
KG
185DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
186DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
187DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
188DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
189DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
190DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
10841285 191DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
f458d1d5 192DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
10841285
MM
193DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
194DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
195DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
196DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
1472e41c
RH
197DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
198DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
3c260e1d
KG
199DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
200 BT_LONGDOUBLE, BT_CONST_STRING)
9a8ce21f
JG
201DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONST_STRING, BT_DFLOAT32, BT_CONST_STRING)
202DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING)
203DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING,
204 BT_DFLOAT128, BT_CONST_STRING)
1331d16f 205DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
c76362b4 206DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR)
ca4944e1
KG
207DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
208DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
9a8ce21f
JG
209DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32)
210DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64)
211DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128)
48ae6c13 212DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
953ff289
DN
213DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
214DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT)
167fa32c
EC
215DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG)
216DEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
217DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_UINT32, BT_UINT32, BT_UINT32)
218DEF_FUNCTION_TYPE_1 (BT_FN_UINT64_UINT64, BT_UINT64, BT_UINT64)
953ff289
DN
219
220DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR)
10841285
MM
221
222DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
c22cacf3
MS
223DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
224 BT_STRING, BT_STRING, BT_CONST_STRING)
10841285 225DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
c22cacf3 226 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
10841285
MM
227DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
228 BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
229DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
c22cacf3 230 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
10841285 231DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
c22cacf3 232 BT_STRING, BT_CONST_STRING, BT_INT)
1ad81c8e 233DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
c22cacf3 234 BT_STRING, BT_CONST_STRING, BT_SIZE)
498c0f27
JJ
235DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
236 BT_INT, BT_CONST_STRING, BT_FILEPTR)
237DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
238 BT_INT, BT_INT, BT_FILEPTR)
10841285
MM
239DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
240 BT_VOID, BT_PTRMODE, BT_PTR)
c22cacf3 241DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
10841285
MM
242 BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
243DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
244 BT_LONG, BT_LONG, BT_LONG)
245DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
246 BT_INT, BT_PTR, BT_CONST_STRING)
f458d1d5
ZW
247DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
248 BT_VOID, BT_PTR, BT_SIZE)
46847aa6
RS
249DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
250 BT_FLOAT, BT_FLOAT, BT_FLOAT)
251DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
252 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
3c260e1d
KG
253DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
254 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
a2a919aa
KG
255DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
256 BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
257DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
258 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
259DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
260 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
98ff7c4d
KG
261DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
262 BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
263DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
264 BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
265DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
266 BT_FLOAT, BT_FLOAT, BT_INT)
267DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
268 BT_DOUBLE, BT_DOUBLE, BT_INT)
269DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
270 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
a2a919aa
KG
271DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
272 BT_FLOAT, BT_FLOAT, BT_INT_PTR)
273DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
274 BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
275DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
276 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
488f17e1
KG
277DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
278 BT_FLOAT, BT_INT, BT_FLOAT)
279DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
280 BT_DOUBLE, BT_INT, BT_DOUBLE)
281DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
282 BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
98ff7c4d
KG
283DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
284 BT_FLOAT, BT_FLOAT, BT_LONG)
285DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
286 BT_DOUBLE, BT_DOUBLE, BT_LONG)
287DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
288 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
08291658
RS
289DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
290 BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
1331d16f
RS
291DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
292 BT_PTR, BT_SIZE, BT_SIZE)
c22cacf3 293DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT,
11bf0eb0 294 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
c22cacf3 295DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
11bf0eb0 296 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
c22cacf3
MS
297DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
298 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
6de9cd9a 299DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
d1c38823
ZD
300DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
301 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
10a0d495 302DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT)
48ae6c13
RH
303DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
304DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
305DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
306DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
a0274e3e 307DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16)
953ff289
DN
308DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR,
309 BT_BOOL, BT_PTR_LONG, BT_PTR_LONG)
10841285
MM
310
311DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
312 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
313DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
314 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
f458d1d5
ZW
315DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
316 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
10841285 317DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
c22cacf3 318 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
f458d1d5 319DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
c22cacf3 320 BT_PTR, BT_PTR, BT_INT, BT_SIZE)
08291658
RS
321DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
322 BT_VOID, BT_PTR, BT_INT, BT_INT)
e31603c4
JJ
323DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
324 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
08291658
RS
325DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
326 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
327DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
328 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
498c0f27
JJ
329DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
330 BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
178b2b9f
RS
331DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
332 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
98ff7c4d
KG
333DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
334 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
335DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
336 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
337DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
338 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
a2a919aa
KG
339DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
340 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
341DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
342 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
343DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
344 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
345DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
346 BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
347DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
348 BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
349DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
350 BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
6de9cd9a 351DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
d1c38823
ZD
352DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
353 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
10a0d495
JJ
354DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
355 BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
48ae6c13
RH
356DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
357 BT_I1, BT_I1)
358DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
359 BT_I2, BT_I2)
360DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
361 BT_I4, BT_I4)
362DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
363 BT_I8, BT_I8)
a0274e3e
JJ
364DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR,
365 BT_I16, BT_I16)
48ae6c13
RH
366DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
367DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
368DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
369DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
a0274e3e
JJ
370DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR,
371 BT_I16, BT_I16)
953ff289
DN
372DEF_FUNCTION_TYPE_3 (BT_FN_VOID_OMPFN_PTR_UINT, BT_VOID, BT_PTR_FN_VOID_PTR,
373 BT_PTR, BT_UINT)
10841285 374
498c0f27
JJ
375DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
376 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
08291658
RS
377DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
378 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
178b2b9f
RS
379DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
380 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
10a0d495
JJ
381DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE,
382 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
383DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
384 BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
385DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
386 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
387DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
388 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
953ff289
DN
389DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
390 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
8893239d
RH
391DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
392 BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
10a0d495
JJ
393
394DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
395 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
396 BT_VALIST_ARG)
953ff289
DN
397DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
398 BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
399 BT_PTR_LONG, BT_PTR_LONG)
10a0d495
JJ
400
401DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
402 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
403 BT_CONST_STRING, BT_VALIST_ARG)
953ff289
DN
404DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
405 BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
406 BT_PTR_LONG, BT_PTR_LONG)
407DEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
408 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
409 BT_LONG, BT_LONG, BT_LONG)
410
411DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
412 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
413 BT_LONG, BT_LONG, BT_LONG, BT_LONG)
10841285
MM
414
415DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
416DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
417DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
418
c22cacf3 419DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
10841285 420 BT_VOID, BT_VALIST_REF)
3bca17dd
PK
421DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
422 BT_VOID, BT_CONST_PTR)
10841285 423DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
c22cacf3 424 BT_INT, BT_CONST_STRING)
10841285 425
498c0f27 426DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
c22cacf3 427 BT_INT, BT_FILEPTR, BT_CONST_STRING)
08291658
RS
428DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
429 BT_INT, BT_STRING, BT_CONST_STRING)
430DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
431 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
10a0d495
JJ
432DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
433 BT_INT, BT_INT, BT_CONST_STRING)
08291658
RS
434
435DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
436 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
178b2b9f
RS
437DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
438 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
10a0d495
JJ
439DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
440 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
441
442DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
443 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING)
444
445DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR,
446 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
447 BT_CONST_STRING)
10841285
MM
448
449DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
450DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
451 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)