]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/builtin-types.def
natInetAddressWin32.cc, [...]: Removed code enclosed in DISABLE_JAVA_NET defines.
[thirdparty/gcc.git] / gcc / builtin-types.def
CommitLineData
46847aa6 1/* Copyright (C) 2001, 2002, 2003 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
LB
16along with GCC; see the file COPYING. If not, write to the Free
17Software Foundation, 59 Temple Place - Suite 330, Boston, MA
1802111-1307, USA. */
10841285
MM
19
20/* This header provides a declaritive way of describing the types that
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)
35
36 These macros describe function types. ENUM is as above. The
37 RETURN type is one of the enumerals already defined. ARG1, ARG2,
38 and ARG3 give the types of the arguments, similarly.
39
40 DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN)
41 DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1)
42 DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2)
08291658 43 DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
10841285
MM
44
45 Similar, but for function types that take variable arguments.
46 For example:
47
48 DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE)
49
50 describes the type `int ()(double)', using the enumeral
51 BT_INT_DOUBLE, whereas:
52
53 DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE)
54
55 describes the type `int ()(double, ...)'.
56
57 DEF_POINTER_TYPE (ENUM, TYPE)
58
59 This macro describes a pointer type. ENUM is as above; TYPE is
60 the type pointed to. */
61
62DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
63DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
64DEF_PRIMITIVE_TYPE (BT_UNSIGNED, unsigned_type_node)
65DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
66DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
67DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
68DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
69DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
3c260e1d 70DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
10841285
MM
71DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
72DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
3c260e1d 73DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
10841285
MM
74
75DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
76DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
b0c48229 77DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
c9f8536c 78DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
178b2b9f 79DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
10841285
MM
80DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
81DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
10841285
MM
82
83DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
84DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
85
86DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
87DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
88DEF_FUNCTION_TYPE_0 (BT_FN_UNSIGNED, BT_UNSIGNED)
ab5e2615
RH
89DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
90DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
3c260e1d
KG
91/* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
92 distinguish it from two types in sequence, "long" followed by
93 "double". */
94DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
10841285
MM
95
96DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
97DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
98DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
99DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
100DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
3c260e1d
KG
101DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
102 BT_LONGDOUBLE, BT_LONGDOUBLE)
10841285
MM
103DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
104 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
105DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
106 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
3c260e1d
KG
107DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
108 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
10841285
MM
109DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
110 BT_FLOAT, BT_COMPLEX_FLOAT)
111DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
112 BT_DOUBLE, BT_COMPLEX_DOUBLE)
3c260e1d
KG
113DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
114 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
10841285
MM
115DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UNSIGNED, BT_PTR, BT_UNSIGNED)
116DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
117DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
2928cd7a
RH
118DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
119DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
10841285
MM
120DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
121DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
f458d1d5 122DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
10841285
MM
123DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
124DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
125DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
126DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
1472e41c
RH
127DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
128DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
3c260e1d
KG
129DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
130 BT_LONGDOUBLE, BT_CONST_STRING)
1331d16f 131DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
10841285
MM
132
133DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
134DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
135 BT_STRING, BT_STRING, BT_CONST_STRING)
136DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
137 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
138DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
139 BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
140DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
141 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
142DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
143 BT_STRING, BT_CONST_STRING, BT_INT)
144DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR,
145 BT_INT, BT_CONST_STRING, BT_PTR)
146DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_PTR,
147 BT_INT, BT_INT, BT_PTR)
148DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
149 BT_VOID, BT_PTRMODE, BT_PTR)
150DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
151 BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
152DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
153 BT_LONG, BT_LONG, BT_LONG)
154DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
155 BT_INT, BT_PTR, BT_CONST_STRING)
f458d1d5
ZW
156DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
157 BT_VOID, BT_PTR, BT_SIZE)
46847aa6
RS
158DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
159 BT_FLOAT, BT_FLOAT, BT_FLOAT)
160DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
161 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
3c260e1d
KG
162DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
163 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
08291658
RS
164DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
165 BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
1331d16f
RS
166DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
167 BT_PTR, BT_SIZE, BT_SIZE)
10841285
MM
168
169DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
170 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
171DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
172 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
f458d1d5
ZW
173DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
174 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
10841285
MM
175DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
176 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
f458d1d5
ZW
177DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
178 BT_PTR, BT_PTR, BT_INT, BT_SIZE)
08291658
RS
179DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
180 BT_VOID, BT_PTR, BT_INT, BT_INT)
e31603c4
JJ
181DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
182 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
08291658
RS
183DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
184 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
185DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
186 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
178b2b9f
RS
187DEF_FUNCTION_TYPE_3 (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG,
188 BT_INT, BT_PTR, BT_CONST_STRING, BT_VALIST_ARG)
189DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
190 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
10841285
MM
191
192DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
193 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_PTR)
08291658
RS
194DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
195 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
178b2b9f
RS
196DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
197 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
10841285
MM
198
199DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
200DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
201DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
202
203DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
204 BT_VOID, BT_VALIST_REF)
3bca17dd
PK
205DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
206 BT_VOID, BT_CONST_PTR)
10841285
MM
207DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
208 BT_INT, BT_CONST_STRING)
209
210DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_PTR_CONST_STRING_VAR,
211 BT_INT, BT_PTR, BT_CONST_STRING)
08291658
RS
212DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
213 BT_INT, BT_STRING, BT_CONST_STRING)
214DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
215 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
216
217DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
218 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
178b2b9f
RS
219DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
220 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
10841285
MM
221
222DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
223DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
224 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)