Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
[dragonfly.git] / contrib / gcc-3.4 / gcc / hooks.c
CommitLineData
003757ed
MD
1/* General-purpose hooks.
2 Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
3
4This program is free software; you can redistribute it and/or modify it
5under the terms of the GNU General Public License as published by the
6Free Software Foundation; either version 2, or (at your option) any
7later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program; if not, write to the Free Software
16Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18 In other words, you are welcome to use, share and improve this program.
19 You are forbidden to forbid anyone else to use, share and improve
20 what you give them. Help stamp out software-hoarding! */
21
22/* This file contains generic hooks that can be used as defaults for
23 target or language-dependent hook initializers. */
24
25#include "config.h"
26#include "system.h"
27#include "coretypes.h"
28#include "tm.h"
29#include "hooks.h"
30
31/* Generic hook that does absolutely zappo. */
32void
33hook_void_void (void)
34{
35}
36
37/* Generic hook that takes no arguments and returns false. */
38bool
39hook_bool_void_false (void)
40{
41 return false;
42}
43
44/* The same, but formally returning NO_REGS. */
45int
46hook_int_void_no_regs (void)
47{
48 return NO_REGS;
49}
50
51/* Generic hook that takes (bool) and returns false. */
52bool
53hook_bool_bool_false (bool a ATTRIBUTE_UNUSED)
54{
55 return false;
56}
57
58
59/* Generic hook that takes (tree, int) and does nothing. */
60void
61hook_void_tree_int (tree a ATTRIBUTE_UNUSED, int b ATTRIBUTE_UNUSED)
62{
63}
64
65/* Generic hook that takes (FILE *, const char *) and does nothing. */
66void
67hook_void_FILEptr_constcharptr (FILE *a ATTRIBUTE_UNUSED, const char *b ATTRIBUTE_UNUSED)
68{
69}
70
71void
72hook_void_constcharptr (const char *a ATTRIBUTE_UNUSED)
73{
74}
75
76/* Used for the TARGET_ASM_CAN_OUTPUT_MI_THUNK hook. */
77bool
78hook_bool_tree_hwi_hwi_tree_false (tree a ATTRIBUTE_UNUSED,
79 HOST_WIDE_INT b ATTRIBUTE_UNUSED,
80 HOST_WIDE_INT c ATTRIBUTE_UNUSED,
81 tree d ATTRIBUTE_UNUSED)
82{
83 return false;
84}
85
86bool
87hook_bool_tree_hwi_hwi_tree_true (tree a ATTRIBUTE_UNUSED,
88 HOST_WIDE_INT b ATTRIBUTE_UNUSED,
89 HOST_WIDE_INT c ATTRIBUTE_UNUSED,
90 tree d ATTRIBUTE_UNUSED)
91{
92 return true;
93}
94
95bool
96hook_bool_constcharptr_size_t_false (const char *a ATTRIBUTE_UNUSED,
97 size_t b ATTRIBUTE_UNUSED)
98{
99 return false;
100}
101
102bool
103default_can_output_mi_thunk_no_vcall (tree a ATTRIBUTE_UNUSED,
104 HOST_WIDE_INT b ATTRIBUTE_UNUSED,
105 HOST_WIDE_INT c,
106 tree d ATTRIBUTE_UNUSED)
107{
108 return c == 0;
109}
110
111/* ??? Used for comp_type_attributes, which ought to return bool. */
112int
113hook_int_tree_tree_1 (tree a ATTRIBUTE_UNUSED, tree b ATTRIBUTE_UNUSED)
114{
115 return 1;
116}
117
118int
119hook_int_rtx_0 (rtx a ATTRIBUTE_UNUSED)
120{
121 return 0;
122}
123
124int
125hook_int_void_0 (void)
126{
127 return 0;
128}
129
130int
131hook_int_size_t_constcharptr_int_0 (size_t a ATTRIBUTE_UNUSED,
132 const char *b ATTRIBUTE_UNUSED,
133 int c ATTRIBUTE_UNUSED)
134{
135 return 0;
136}
137
138unsigned int
139hook_uint_uint_constcharptrptr_0 (unsigned int a ATTRIBUTE_UNUSED,
140 const char **b ATTRIBUTE_UNUSED)
141{
142 return 0;
143}
144
145void
146hook_void_tree (tree a ATTRIBUTE_UNUSED)
147{
148}
149
150void
151hook_void_tree_treeptr (tree a ATTRIBUTE_UNUSED, tree *b ATTRIBUTE_UNUSED)
152{
153}
154
155bool
156hook_bool_tree_false (tree a ATTRIBUTE_UNUSED)
157{
158 return false;
159}
160
161bool
162hook_bool_tree_true (tree a ATTRIBUTE_UNUSED)
163{
164 return true;
165}
166
167bool
168hook_bool_tree_tree_false (tree a ATTRIBUTE_UNUSED, tree b ATTRIBUTE_UNUSED)
169{
170 return false;
171}
172
173bool
174hook_bool_rtx_false (rtx a ATTRIBUTE_UNUSED)
175{
176 return false;
177}
178
179bool
180hook_bool_uintp_uintp_false (unsigned int *a ATTRIBUTE_UNUSED,
181 unsigned int *b ATTRIBUTE_UNUSED)
182{
183 return false;
184}
185
186bool
187hook_bool_rtx_int_int_intp_false (rtx a ATTRIBUTE_UNUSED,
188 int b ATTRIBUTE_UNUSED,
189 int c ATTRIBUTE_UNUSED,
190 int *d ATTRIBUTE_UNUSED)
191{
192 return false;
193}
194
195/* Generic hook that takes an rtx and returns it. */
196rtx
197hook_rtx_rtx_identity (rtx x)
198{
199 return x;
200}
201
202/* Generic hook that takes an rtx and returns NULL_RTX. */
203rtx
204hook_rtx_rtx_null (rtx x ATTRIBUTE_UNUSED)
205{
206 return NULL;
207}
208
209/* Generic hook that takes a tree and an int and returns NULL_RTX. */
210rtx
211hook_rtx_tree_int_null (tree a ATTRIBUTE_UNUSED, int b ATTRIBUTE_UNUSED)
212{
213 return NULL;
214}
215
3a327f56
JS
216/* Generic hook that takes a tree and returns a NULL string. */
217const char *
218hook_constcharptr_tree_null (tree t ATTRIBUTE_UNUSED)
219{
220 return NULL;
221}