]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/hooks.c
Remove trailing white spaces.
[thirdparty/gcc.git] / gcc / hooks.c
CommitLineData
e4ec2cac 1/* General-purpose hooks.
81f40b79 2 Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
66647d44 3 Free Software Foundation, Inc.
e4ec2cac 4
9dcd6f09
NC
5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by the
7 Free Software Foundation; either version 3, or (at your option) any
8 later version.
e4ec2cac 9
9dcd6f09
NC
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
e4ec2cac 14
9dcd6f09
NC
15 You should have received a copy of the GNU General Public License
16 along with this program; see the file COPYING3. If not see
b8698a0f 17 <http://www.gnu.org/licenses/>.
e4ec2cac 18
9dcd6f09
NC
19 In other words, you are welcome to use, share and improve this program.
20 You are forbidden to forbid anyone else to use, share and improve
21 what you give them. Help stamp out software-hoarding! */
e4ec2cac
AO
22
23/* This file contains generic hooks that can be used as defaults for
24 target or language-dependent hook initializers. */
25
26#include "config.h"
27#include "system.h"
4977bab6
ZW
28#include "coretypes.h"
29#include "tm.h"
e4ec2cac
AO
30#include "hooks.h"
31
e5f3b786
NB
32/* Generic hook that does absolutely zappo. */
33void
1d088dee 34hook_void_void (void)
e5f3b786
NB
35{
36}
37
e4ec2cac
AO
38/* Generic hook that takes no arguments and returns false. */
39bool
1d088dee 40hook_bool_void_false (void)
ae46c4e0
RH
41{
42 return false;
43}
fb49053f 44
af287697
MM
45/* Generic hook that takes no arguments and returns true. */
46bool
47hook_bool_void_true (void)
48{
49 return true;
50}
51
fe3ad572
SC
52/* Generic hook that takes (bool) and returns false. */
53bool
54hook_bool_bool_false (bool a ATTRIBUTE_UNUSED)
55{
56 return false;
57}
58
7b5cbb57
AS
59/* Generic hook that takes const int, const int) and returns true. */
60bool hook_bool_const_int_const_int_true (const int a ATTRIBUTE_UNUSED,
61 const int b ATTRIBUTE_UNUSED)
62{
63 return true;
64}
65
f676971a
EC
66/* Generic hook that takes (enum machine_mode) and returns false. */
67bool
68hook_bool_mode_false (enum machine_mode mode ATTRIBUTE_UNUSED)
69{
70 return false;
71}
72
aacd3885
RS
73/* Generic hook that takes (enum machine_mode, rtx) and returns false. */
74bool
3101faab
KG
75hook_bool_mode_const_rtx_false (enum machine_mode mode ATTRIBUTE_UNUSED,
76 const_rtx value ATTRIBUTE_UNUSED)
aacd3885
RS
77{
78 return false;
79}
80
1d3dbd99
RS
81/* Generic hook that takes (enum machine_mode, rtx) and returns true. */
82bool
3101faab
KG
83hook_bool_mode_const_rtx_true (enum machine_mode mode ATTRIBUTE_UNUSED,
84 const_rtx value ATTRIBUTE_UNUSED)
1d3dbd99
RS
85{
86 return true;
87}
88
5eb99654
KG
89/* Generic hook that takes (FILE *, const char *) and does nothing. */
90void
1d088dee 91hook_void_FILEptr_constcharptr (FILE *a ATTRIBUTE_UNUSED, const char *b ATTRIBUTE_UNUSED)
5eb99654
KG
92{
93}
3961e8fe
RH
94
95/* Used for the TARGET_ASM_CAN_OUTPUT_MI_THUNK hook. */
96bool
3101faab
KG
97hook_bool_const_tree_hwi_hwi_const_tree_false (const_tree a ATTRIBUTE_UNUSED,
98 HOST_WIDE_INT b ATTRIBUTE_UNUSED,
99 HOST_WIDE_INT c ATTRIBUTE_UNUSED,
100 const_tree d ATTRIBUTE_UNUSED)
3961e8fe
RH
101{
102 return false;
103}
104
105bool
3101faab
KG
106hook_bool_const_tree_hwi_hwi_const_tree_true (const_tree a ATTRIBUTE_UNUSED,
107 HOST_WIDE_INT b ATTRIBUTE_UNUSED,
108 HOST_WIDE_INT c ATTRIBUTE_UNUSED,
109 const_tree d ATTRIBUTE_UNUSED)
3961e8fe
RH
110{
111 return true;
112}
113
cb66e385
NB
114bool
115hook_bool_constcharptr_size_t_false (const char *a ATTRIBUTE_UNUSED,
116 size_t b ATTRIBUTE_UNUSED)
117{
118 return false;
119}
120
75685792
RS
121bool
122hook_bool_size_t_constcharptr_int_true (size_t a ATTRIBUTE_UNUSED,
123 const char *b ATTRIBUTE_UNUSED,
124 int c ATTRIBUTE_UNUSED)
125{
126 return true;
127}
128
3961e8fe 129bool
3101faab 130default_can_output_mi_thunk_no_vcall (const_tree a ATTRIBUTE_UNUSED,
1d088dee
AJ
131 HOST_WIDE_INT b ATTRIBUTE_UNUSED,
132 HOST_WIDE_INT c,
3101faab 133 const_tree d ATTRIBUTE_UNUSED)
3961e8fe
RH
134{
135 return c == 0;
136}
7b1bd3c5 137
a1c496cb 138int
3101faab 139hook_int_const_tree_0 (const_tree a ATTRIBUTE_UNUSED)
a1c496cb
EC
140{
141 return 0;
142}
143
7b1bd3c5
RH
144/* ??? Used for comp_type_attributes, which ought to return bool. */
145int
3101faab 146hook_int_const_tree_const_tree_1 (const_tree a ATTRIBUTE_UNUSED, const_tree b ATTRIBUTE_UNUSED)
7b1bd3c5
RH
147{
148 return 1;
149}
150
dcefdf67 151int
1d088dee 152hook_int_rtx_0 (rtx a ATTRIBUTE_UNUSED)
dcefdf67
RH
153{
154 return 0;
155}
156
f40751dd
JH
157int
158hook_int_rtx_bool_0 (rtx a ATTRIBUTE_UNUSED, bool b ATTRIBUTE_UNUSED)
159{
160 return 0;
161}
162
7fb26bb0
NB
163int
164hook_int_size_t_constcharptr_int_0 (size_t a ATTRIBUTE_UNUSED,
165 const char *b ATTRIBUTE_UNUSED,
166 int c ATTRIBUTE_UNUSED)
167{
168 return 0;
169}
170
b86f6cd9
NB
171unsigned int
172hook_uint_uint_constcharptrptr_0 (unsigned int a ATTRIBUTE_UNUSED,
173 const char **b ATTRIBUTE_UNUSED)
174{
175 return 0;
176}
177
7b1bd3c5 178void
1d088dee 179hook_void_tree (tree a ATTRIBUTE_UNUSED)
7b1bd3c5
RH
180{
181}
182
94d1613b 183void
8e3e233b 184hook_void_constcharptr (const char *a ATTRIBUTE_UNUSED)
94d1613b
MS
185{
186}
187
7b1bd3c5 188void
1d088dee 189hook_void_tree_treeptr (tree a ATTRIBUTE_UNUSED, tree *b ATTRIBUTE_UNUSED)
7b1bd3c5
RH
190{
191}
192
193bool
1d088dee 194hook_bool_tree_false (tree a ATTRIBUTE_UNUSED)
7b1bd3c5
RH
195{
196 return false;
197}
3a04ff64 198
ac7d7749
KG
199bool
200hook_bool_const_tree_false (const_tree a ATTRIBUTE_UNUSED)
201{
202 return false;
203}
204
c6e8c921
GK
205bool
206hook_bool_tree_true (tree a ATTRIBUTE_UNUSED)
207{
208 return true;
209}
210
586de218
KG
211bool
212hook_bool_const_tree_true (const_tree a ATTRIBUTE_UNUSED)
213{
214 return true;
215}
216
4977bab6 217bool
1d088dee 218hook_bool_tree_tree_false (tree a ATTRIBUTE_UNUSED, tree b ATTRIBUTE_UNUSED)
4977bab6
ZW
219{
220 return false;
221}
222
953ff289
DN
223bool
224hook_bool_tree_bool_false (tree a ATTRIBUTE_UNUSED, bool b ATTRIBUTE_UNUSED)
225{
226 return false;
227}
228
3a04ff64 229bool
1d088dee 230hook_bool_rtx_false (rtx a ATTRIBUTE_UNUSED)
3a04ff64
RH
231{
232 return false;
233}
3c50106f 234
e129d93a
ILT
235bool
236hook_bool_uintp_uintp_false (unsigned int *a ATTRIBUTE_UNUSED,
237 unsigned int *b ATTRIBUTE_UNUSED)
238{
239 return false;
240}
241
3c50106f 242bool
f40751dd
JH
243hook_bool_rtx_int_int_intp_bool_false (rtx a ATTRIBUTE_UNUSED,
244 int b ATTRIBUTE_UNUSED,
245 int c ATTRIBUTE_UNUSED,
246 int *d ATTRIBUTE_UNUSED,
247 bool speed_p ATTRIBUTE_UNUSED)
3c50106f
RH
248{
249 return false;
250}
251
7daebb7a
RS
252/* Generic hook that takes an rtx and returns it. */
253rtx
1d088dee 254hook_rtx_rtx_identity (rtx x)
7daebb7a
RS
255{
256 return x;
257}
258
96714395
AH
259/* Generic hook that takes an rtx and returns NULL_RTX. */
260rtx
1d088dee 261hook_rtx_rtx_null (rtx x ATTRIBUTE_UNUSED)
96714395 262{
c6e8c921
GK
263 return NULL;
264}
265
266/* Generic hook that takes a tree and an int and returns NULL_RTX. */
267rtx
268hook_rtx_tree_int_null (tree a ATTRIBUTE_UNUSED, int b ATTRIBUTE_UNUSED)
269{
270 return NULL;
96714395 271}
18c81520 272
61158923 273/* Generic hook that takes three trees and returns the last one as is. */
67dfe110 274tree
61158923
HPN
275hook_tree_tree_tree_tree_3rd_identity (tree a ATTRIBUTE_UNUSED,
276 tree b ATTRIBUTE_UNUSED, tree c)
67dfe110 277{
61158923 278 return c;
67dfe110 279}
f18eca82
ZL
280
281/* Generic hook that takes a tree and returns a NULL string. */
282const char *
3101faab 283hook_constcharptr_const_tree_null (const_tree t ATTRIBUTE_UNUSED)
f18eca82
ZL
284{
285 return NULL;
286}
55e74277 287
6b889d89
UB
288tree
289hook_tree_tree_tree_bool_null (tree t0 ATTRIBUTE_UNUSED,
290 tree t1 ATTRIBUTE_UNUSED,
a05a80fc 291 bool ignore ATTRIBUTE_UNUSED)
55e74277
PB
292{
293 return NULL;
294}
e7e64a25 295
953ff289
DN
296tree
297hook_tree_tree_tree_null (tree t0 ATTRIBUTE_UNUSED, tree t1 ATTRIBUTE_UNUSED)
298{
299 return NULL;
300}
301
a68ab351
JJ
302tree
303hook_tree_tree_tree_tree_null (tree t0 ATTRIBUTE_UNUSED,
304 tree t1 ATTRIBUTE_UNUSED,
305 tree t2 ATTRIBUTE_UNUSED)
306{
307 return NULL;
308}
309
e7e64a25
AS
310/* Generic hook that takes a rtx and returns a NULL string. */
311const char *
3101faab 312hook_constcharptr_const_rtx_null (const_rtx r ATTRIBUTE_UNUSED)
e7e64a25
AS
313{
314 return NULL;
315}
4de67c26
JM
316
317const char *
3101faab
KG
318hook_constcharptr_const_tree_const_tree_null (const_tree t0 ATTRIBUTE_UNUSED,
319 const_tree t1 ATTRIBUTE_UNUSED)
4de67c26
JM
320{
321 return NULL;
322}
323
324const char *
3101faab
KG
325hook_constcharptr_int_const_tree_null (int i ATTRIBUTE_UNUSED,
326 const_tree t0 ATTRIBUTE_UNUSED)
4de67c26
JM
327{
328 return NULL;
329}
330
331const char *
3101faab
KG
332hook_constcharptr_int_const_tree_const_tree_null (int i ATTRIBUTE_UNUSED,
333 const_tree t0 ATTRIBUTE_UNUSED,
334 const_tree t1 ATTRIBUTE_UNUSED)
4de67c26
JM
335{
336 return NULL;
337}
40449a90
SL
338
339/* Generic hook that takes a const_tree and returns NULL_TREE. */
340tree
341hook_tree_const_tree_null (const_tree t ATTRIBUTE_UNUSED)
342{
343 return NULL;
344}