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