]>
Commit | Line | Data |
---|---|---|
d23c55c2 NB |
1 | /* Default macros to initialize the lang_hooks data structure. |
2 | Copyright 2001 Free Software Foundation, Inc. | |
3 | Contributed by Alexandre Oliva <aoliva@redhat.com> | |
4 | ||
5 | This file is part of GNU CC. | |
6 | ||
7 | GNU CC is free software; you can redistribute it and/or modify | |
8 | it under the terms of the GNU General Public License as published by | |
9 | the Free Software Foundation; either version 2, or (at your option) | |
10 | any later version. | |
11 | ||
12 | GNU CC is distributed in the hope that it will be useful, | |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | GNU General Public License for more details. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
18 | along with GNU CC; see the file COPYING. If not, write to | |
19 | the Free Software Foundation, 59 Temple Place - Suite 330, | |
20 | Boston, MA 02111-1307, USA. */ | |
21 | ||
22 | #ifndef GCC_LANG_HOOKS_DEF_H | |
23 | #define GCC_LANG_HOOKS_DEF_H | |
24 | ||
25 | /* Provide a hook routine for alias sets that always returns 1. This is | |
26 | used by languages that haven't deal with alias sets yet. */ | |
27 | extern HOST_WIDE_INT hook_get_alias_set_0 PARAMS ((tree)); | |
28 | ||
29 | /* Note to creators of new hooks: | |
30 | ||
31 | The macros in this file should NOT be surrounded by a | |
32 | #ifdef...#endif pair, since this file declares the defaults. Each | |
33 | front end overrides any hooks it wishes to, in the file containing | |
34 | its struct lang_hooks, AFTER including this file. | |
35 | ||
36 | Prefix all default hooks with "lhd_". */ | |
37 | ||
38 | /* See langhooks.h for the definition and documentation of each hook. */ | |
39 | ||
40 | extern void lhd_do_nothing PARAMS ((void)); | |
63e1b1c4 | 41 | extern void lhd_do_nothing_t PARAMS ((tree)); |
d23c55c2 NB |
42 | extern int lhd_decode_option PARAMS ((int, char **)); |
43 | extern HOST_WIDE_INT lhd_get_alias_set PARAMS ((tree)); | |
ac79cd5a RK |
44 | extern tree lhd_return_tree PARAMS ((tree)); |
45 | extern int lhd_safe_from_p PARAMS ((rtx, tree)); | |
d062a680 | 46 | extern int lhd_staticp PARAMS ((tree)); |
d23c55c2 | 47 | extern void lhd_clear_binding_stack PARAMS ((void)); |
5d69f816 NB |
48 | extern void lhd_print_tree_nothing PARAMS ((FILE *, tree, int)); |
49 | extern void lhd_set_yydebug PARAMS ((int)); | |
d23c55c2 NB |
50 | |
51 | /* Declarations of default tree inlining hooks. */ | |
52 | tree lhd_tree_inlining_walk_subtrees PARAMS ((tree *, int *, | |
53 | walk_tree_fn, | |
54 | void *, void *)); | |
55 | int lhd_tree_inlining_cannot_inline_tree_fn PARAMS ((tree *)); | |
56 | int lhd_tree_inlining_disregard_inline_limits PARAMS ((tree)); | |
57 | tree lhd_tree_inlining_add_pending_fn_decls PARAMS ((void *, tree)); | |
58 | int lhd_tree_inlining_tree_chain_matters_p PARAMS ((tree)); | |
59 | int lhd_tree_inlining_auto_var_in_fn_p PARAMS ((tree, tree)); | |
60 | tree lhd_tree_inlining_copy_res_decl_for_inlining PARAMS ((tree, tree, | |
61 | tree, void *, | |
62 | int *, void *)); | |
63 | int lhd_tree_inlining_anon_aggr_type_p PARAMS ((tree)); | |
742a37d5 JM |
64 | int lhd_tree_inlining_start_inlining PARAMS ((tree)); |
65 | void lhd_tree_inlining_end_inlining PARAMS ((tree)); | |
f735a153 | 66 | tree lhd_tree_inlining_convert_parm_for_inlining PARAMS ((tree, tree, tree)); |
d23c55c2 | 67 | |
3ac88239 NB |
68 | #define LANG_HOOKS_NAME "GNU unknown" |
69 | #define LANG_HOOKS_IDENTIFIER_SIZE sizeof (struct lang_identifier) | |
d23c55c2 NB |
70 | #define LANG_HOOKS_INIT lhd_do_nothing |
71 | #define LANG_HOOKS_FINISH lhd_do_nothing | |
52dabb6c | 72 | #define LANG_HOOKS_PARSE_FILE lhd_do_nothing |
d23c55c2 NB |
73 | #define LANG_HOOKS_CLEAR_BINDING_STACK lhd_clear_binding_stack |
74 | #define LANG_HOOKS_INIT_OPTIONS lhd_do_nothing | |
75 | #define LANG_HOOKS_DECODE_OPTION lhd_decode_option | |
76 | #define LANG_HOOKS_POST_OPTIONS lhd_do_nothing | |
77 | #define LANG_HOOKS_GET_ALIAS_SET lhd_get_alias_set | |
ac79cd5a RK |
78 | #define LANG_HOOKS_EXPAND_CONSTANT lhd_return_tree |
79 | #define LANG_HOOKS_SAFE_FROM_P lhd_safe_from_p | |
d062a680 | 80 | #define LANG_HOOKS_STATICP lhd_staticp |
63e1b1c4 | 81 | #define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL lhd_do_nothing_t |
24965e7a | 82 | #define LANG_HOOKS_UNSAVE_EXPR_NOW lhd_unsave_expr_now |
d23c55c2 | 83 | #define LANG_HOOKS_HONOR_READONLY false |
5d69f816 NB |
84 | #define LANG_HOOKS_PRINT_STATISTICS lhd_do_nothing |
85 | #define LANG_HOOKS_PRINT_XNODE lhd_print_tree_nothing | |
86 | #define LANG_HOOKS_PRINT_DECL lhd_print_tree_nothing | |
87 | #define LANG_HOOKS_PRINT_TYPE lhd_print_tree_nothing | |
88 | #define LANG_HOOKS_PRINT_IDENTIFIER lhd_print_tree_nothing | |
89 | #define LANG_HOOKS_SET_YYDEBUG lhd_set_yydebug | |
d23c55c2 NB |
90 | |
91 | /* Tree inlining hooks. */ | |
92 | #define LANG_HOOKS_TREE_INLINING_WALK_SUBTREES lhd_tree_inlining_walk_subtrees | |
93 | #define LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN \ | |
94 | lhd_tree_inlining_cannot_inline_tree_fn | |
95 | #define LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS \ | |
96 | lhd_tree_inlining_disregard_inline_limits | |
97 | #define LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS \ | |
98 | lhd_tree_inlining_add_pending_fn_decls | |
99 | #define LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P \ | |
100 | lhd_tree_inlining_tree_chain_matters_p | |
101 | #define LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P \ | |
102 | lhd_tree_inlining_auto_var_in_fn_p | |
103 | #define LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING \ | |
104 | lhd_tree_inlining_copy_res_decl_for_inlining | |
105 | #define LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P \ | |
106 | lhd_tree_inlining_anon_aggr_type_p | |
742a37d5 JM |
107 | #define LANG_HOOKS_TREE_INLINING_START_INLINING \ |
108 | lhd_tree_inlining_start_inlining | |
109 | #define LANG_HOOKS_TREE_INLINING_END_INLINING \ | |
110 | lhd_tree_inlining_end_inlining | |
f735a153 JJ |
111 | #define LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING \ |
112 | lhd_tree_inlining_convert_parm_for_inlining | |
d23c55c2 NB |
113 | |
114 | #define LANG_HOOKS_TREE_INLINING_INITIALIZER { \ | |
115 | LANG_HOOKS_TREE_INLINING_WALK_SUBTREES, \ | |
116 | LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, \ | |
117 | LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, \ | |
118 | LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS, \ | |
119 | LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P, \ | |
120 | LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P, \ | |
121 | LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING, \ | |
742a37d5 JM |
122 | LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, \ |
123 | LANG_HOOKS_TREE_INLINING_START_INLINING, \ | |
f735a153 JJ |
124 | LANG_HOOKS_TREE_INLINING_END_INLINING, \ |
125 | LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING \ | |
d23c55c2 NB |
126 | } \ |
127 | ||
89d684bb BM |
128 | /* Tree dump hooks. */ |
129 | int lhd_tree_dump_dump_tree PARAMS ((void *, tree)); | |
130 | int lhd_tree_dump_type_quals PARAMS ((tree)); | |
131 | ||
132 | #define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN lhd_tree_dump_dump_tree | |
133 | #define LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN lhd_tree_dump_type_quals | |
134 | ||
135 | #define LANG_HOOKS_TREE_DUMP_INITIALIZER { \ | |
136 | LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, \ | |
137 | LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN \ | |
138 | } \ | |
139 | ||
140 | /* The whole thing. The structure is defined in langhooks.h. */ | |
d23c55c2 | 141 | #define LANG_HOOKS_INITIALIZER { \ |
3ac88239 NB |
142 | LANG_HOOKS_NAME, \ |
143 | LANG_HOOKS_IDENTIFIER_SIZE, \ | |
d23c55c2 NB |
144 | LANG_HOOKS_INIT_OPTIONS, \ |
145 | LANG_HOOKS_DECODE_OPTION, \ | |
146 | LANG_HOOKS_POST_OPTIONS, \ | |
4d6baafa NB |
147 | LANG_HOOKS_INIT, \ |
148 | LANG_HOOKS_FINISH, \ | |
52dabb6c | 149 | LANG_HOOKS_PARSE_FILE, \ |
4d6baafa | 150 | LANG_HOOKS_CLEAR_BINDING_STACK, \ |
d23c55c2 | 151 | LANG_HOOKS_GET_ALIAS_SET, \ |
ac79cd5a RK |
152 | LANG_HOOKS_EXPAND_CONSTANT, \ |
153 | LANG_HOOKS_SAFE_FROM_P, \ | |
d062a680 | 154 | LANG_HOOKS_STATICP, \ |
63e1b1c4 | 155 | LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, \ |
24965e7a | 156 | LANG_HOOKS_UNSAVE_EXPR_NOW, \ |
d23c55c2 | 157 | LANG_HOOKS_HONOR_READONLY, \ |
5d69f816 NB |
158 | LANG_HOOKS_PRINT_STATISTICS, \ |
159 | LANG_HOOKS_PRINT_XNODE, \ | |
160 | LANG_HOOKS_PRINT_DECL, \ | |
161 | LANG_HOOKS_PRINT_TYPE, \ | |
162 | LANG_HOOKS_PRINT_IDENTIFIER, \ | |
163 | LANG_HOOKS_SET_YYDEBUG, \ | |
89d684bb BM |
164 | LANG_HOOKS_TREE_INLINING_INITIALIZER, \ |
165 | LANG_HOOKS_TREE_DUMP_INITIALIZER \ | |
d23c55c2 NB |
166 | } |
167 | ||
168 | #endif /* GCC_LANG_HOOKS_DEF_H */ |