]>
Commit | Line | Data |
---|---|---|
c0f940ef | 1 | /* Language-specific hook definitions for C front end. |
517cbe13 | 2 | Copyright (C) 1991, 1995, 1997, 1998, |
21c7361e | 3 | 1999, 2000, 2001 Free Software Foundation, Inc. |
c0f940ef | 4 | |
1322177d | 5 | This file is part of GCC. |
c0f940ef | 6 | |
1322177d LB |
7 | GCC is free software; you can redistribute it and/or modify it under |
8 | the terms of the GNU General Public License as published by the Free | |
9 | Software Foundation; either version 2, or (at your option) any later | |
10 | version. | |
c0f940ef | 11 | |
1322177d LB |
12 | GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
13 | WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 | for more details. | |
c0f940ef RS |
16 | |
17 | You should have received a copy of the GNU General Public License | |
1322177d LB |
18 | along with GCC; see the file COPYING. If not, write to the Free |
19 | Software Foundation, 59 Temple Place - Suite 330, Boston, MA | |
20 | 02111-1307, USA. */ | |
c0f940ef RS |
21 | |
22 | ||
23 | #include "config.h" | |
670ee920 | 24 | #include "system.h" |
c0f940ef | 25 | #include "tree.h" |
8f17b5c5 | 26 | #include "c-tree.h" |
52dabb6c | 27 | #include "c-common.h" |
69dcadff | 28 | #include "langhooks.h" |
d23c55c2 | 29 | #include "langhooks-def.h" |
a32f2771 | 30 | |
f5e99456 | 31 | static const char *c_init PARAMS ((const char *)); |
ee811cfd | 32 | static void c_init_options PARAMS ((void)); |
cd2a3ba2 | 33 | static void c_post_options PARAMS ((void)); |
0abc6a6a NB |
34 | |
35 | /* ### When changing hooks, consider if ObjC needs changing too!! ### */ | |
cd2a3ba2 | 36 | |
3ac88239 NB |
37 | #undef LANG_HOOKS_NAME |
38 | #define LANG_HOOKS_NAME "GNU C" | |
69dcadff AO |
39 | #undef LANG_HOOKS_INIT |
40 | #define LANG_HOOKS_INIT c_init | |
22703ccc NB |
41 | #undef LANG_HOOKS_FINISH |
42 | #define LANG_HOOKS_FINISH c_common_finish | |
69dcadff AO |
43 | #undef LANG_HOOKS_INIT_OPTIONS |
44 | #define LANG_HOOKS_INIT_OPTIONS c_init_options | |
45 | #undef LANG_HOOKS_DECODE_OPTION | |
46 | #define LANG_HOOKS_DECODE_OPTION c_decode_option | |
47 | #undef LANG_HOOKS_POST_OPTIONS | |
48 | #define LANG_HOOKS_POST_OPTIONS c_post_options | |
8ac61af7 RK |
49 | #undef LANG_HOOKS_GET_ALIAS_SET |
50 | #define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set | |
ac79cd5a RK |
51 | #undef LANG_HOOKS_SAFE_FROM_P |
52 | #define LANG_HOOKS_SAFE_FROM_P c_safe_from_p | |
4f0ade92 NB |
53 | #undef LANG_HOOKS_MARK_TREE |
54 | #define LANG_HOOKS_MARK_TREE c_mark_tree | |
c9d892a8 NB |
55 | #undef LANG_HOOKS_EXPAND_EXPR |
56 | #define LANG_HOOKS_EXPAND_EXPR c_expand_expr | |
52dabb6c NB |
57 | #undef LANG_HOOKS_PARSE_FILE |
58 | #define LANG_HOOKS_PARSE_FILE c_common_parse_file | |
7ffb4fd2 NB |
59 | #undef LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES |
60 | #define LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES c_insert_default_attributes | |
db3acfa5 JM |
61 | #undef LANG_HOOKS_STATICP |
62 | #define LANG_HOOKS_STATICP c_staticp | |
5d69f816 NB |
63 | #undef LANG_HOOKS_PRINT_IDENTIFIER |
64 | #define LANG_HOOKS_PRINT_IDENTIFIER c_print_identifier | |
65 | #undef LANG_HOOKS_SET_YYDEBUG | |
66 | #define LANG_HOOKS_SET_YYDEBUG c_set_yydebug | |
63e1b1c4 NB |
67 | #undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL |
68 | #define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL c_dup_lang_specific_decl | |
8ac61af7 | 69 | |
69dcadff AO |
70 | #undef LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN |
71 | #define LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN \ | |
72 | c_cannot_inline_tree_fn | |
73 | #undef LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS | |
74 | #define LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS \ | |
75 | c_disregard_inline_limits | |
76 | #undef LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P | |
77 | #define LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P \ | |
78 | anon_aggr_type_p | |
f735a153 JJ |
79 | #undef LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING |
80 | #define LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING \ | |
81 | c_convert_parm_for_inlining | |
69dcadff | 82 | |
0abc6a6a NB |
83 | /* ### When changing hooks, consider if ObjC needs changing too!! ### */ |
84 | ||
cd2a3ba2 | 85 | /* Each front end provides its own. */ |
3ac88239 | 86 | const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; |
cd2a3ba2 | 87 | |
2f9834e8 KG |
88 | /* Tree code classes. */ |
89 | ||
90 | #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE, | |
91 | ||
92 | const char tree_code_type[] = { | |
93 | #include "tree.def" | |
94 | 'x', | |
95 | #include "c-common.def" | |
96 | }; | |
97 | #undef DEFTREECODE | |
98 | ||
99 | /* Table indexed by tree code giving number of expression | |
100 | operands beyond the fixed part of the node structure. | |
101 | Not used for types or decls. */ | |
102 | ||
103 | #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH, | |
104 | ||
105 | const unsigned char tree_code_length[] = { | |
106 | #include "tree.def" | |
107 | 0, | |
108 | #include "c-common.def" | |
109 | }; | |
110 | #undef DEFTREECODE | |
111 | ||
112 | /* Names of tree components. | |
113 | Used for printing out the tree and error messages. */ | |
114 | #define DEFTREECODE(SYM, NAME, TYPE, LEN) NAME, | |
115 | ||
116 | const char *const tree_code_name[] = { | |
117 | #include "tree.def" | |
118 | "@@dummy", | |
119 | #include "c-common.def" | |
120 | }; | |
121 | #undef DEFTREECODE | |
122 | ||
cd2a3ba2 NB |
123 | /* Post-switch processing. */ |
124 | static void | |
125 | c_post_options () | |
126 | { | |
4d6baafa | 127 | c_common_post_options (); |
cd2a3ba2 | 128 | } |
add7091b | 129 | |
ee811cfd NB |
130 | static void |
131 | c_init_options () | |
b53beeb2 | 132 | { |
4d6baafa | 133 | c_common_init_options (clk_c); |
b53beeb2 RH |
134 | } |
135 | ||
f5e99456 NB |
136 | static const char * |
137 | c_init (filename) | |
138 | const char *filename; | |
c0f940ef | 139 | { |
3b27886e | 140 | return c_objc_common_init (filename); |
c0f940ef RS |
141 | } |
142 | ||
c0f940ef | 143 | /* Used by c-lex.c, but only for objc. */ |
a604ca26 | 144 | |
c0f940ef RS |
145 | tree |
146 | lookup_interface (arg) | |
d6f4ec51 | 147 | tree arg ATTRIBUTE_UNUSED; |
c0f940ef RS |
148 | { |
149 | return 0; | |
150 | } | |
151 | ||
a604ca26 TW |
152 | tree |
153 | is_class_name (arg) | |
d6f4ec51 | 154 | tree arg ATTRIBUTE_UNUSED; |
a604ca26 TW |
155 | { |
156 | return 0; | |
157 | } | |
158 | ||
c0f940ef RS |
159 | void |
160 | maybe_objc_check_decl (decl) | |
d6f4ec51 | 161 | tree decl ATTRIBUTE_UNUSED; |
c0f940ef RS |
162 | { |
163 | } | |
164 | ||
165 | int | |
a604ca26 | 166 | maybe_objc_comptypes (lhs, rhs, reflexive) |
d6f4ec51 KG |
167 | tree lhs ATTRIBUTE_UNUSED; |
168 | tree rhs ATTRIBUTE_UNUSED; | |
169 | int reflexive ATTRIBUTE_UNUSED; | |
a604ca26 | 170 | { |
a0825a7f | 171 | return -1; |
a604ca26 TW |
172 | } |
173 | ||
c0f940ef RS |
174 | tree |
175 | maybe_building_objc_message_expr () | |
176 | { | |
177 | return 0; | |
178 | } | |
179 | ||
180 | int | |
181 | recognize_objc_keyword () | |
182 | { | |
183 | return 0; | |
184 | } | |
185 | ||
7e585d16 ZW |
186 | /* Used by c-typeck.c (build_external_ref), but only for objc. */ |
187 | ||
188 | tree | |
189 | lookup_objc_ivar (id) | |
190 | tree id ATTRIBUTE_UNUSED; | |
191 | { | |
192 | return 0; | |
193 | } | |
194 | ||
2c5f4139 JM |
195 | void |
196 | finish_file () | |
197 | { | |
3b27886e | 198 | c_objc_common_finish_file (); |
2c5f4139 | 199 | } |