]> gcc.gnu.org Git - gcc.git/blame - gcc/c-lang.c
postreload.c (reload_cse_simplify_set): Call cselib_lookup earlier.
[gcc.git] / gcc / c-lang.c
CommitLineData
c0f940ef 1/* Language-specific hook definitions for C front end.
517cbe13 2 Copyright (C) 1991, 1995, 1997, 1998,
3346b668 3 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
c0f940ef 4
1322177d 5This file is part of GCC.
c0f940ef 6
1322177d
LB
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 2, or (at your option) any later
10version.
c0f940ef 11
1322177d
LB
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15for more details.
c0f940ef
RS
16
17You should have received a copy of the GNU General Public License
1322177d
LB
18along with GCC; see the file COPYING. If not, write to the Free
19Software Foundation, 59 Temple Place - Suite 330, Boston, MA
2002111-1307, USA. */
c0f940ef
RS
21
22
23#include "config.h"
670ee920 24#include "system.h"
4977bab6
ZW
25#include "coretypes.h"
26#include "tm.h"
c0f940ef 27#include "tree.h"
8f17b5c5 28#include "c-tree.h"
52dabb6c 29#include "c-common.h"
e2500fed 30#include "ggc.h"
69dcadff 31#include "langhooks.h"
d23c55c2 32#include "langhooks-def.h"
a32f2771 33
3346b668 34static int c_init_options (void);
0abc6a6a
NB
35
36/* ### When changing hooks, consider if ObjC needs changing too!! ### */
cd2a3ba2 37
3ac88239
NB
38#undef LANG_HOOKS_NAME
39#define LANG_HOOKS_NAME "GNU C"
69dcadff 40#undef LANG_HOOKS_INIT
460bd0e3 41#define LANG_HOOKS_INIT c_objc_common_init
22703ccc
NB
42#undef LANG_HOOKS_FINISH
43#define LANG_HOOKS_FINISH c_common_finish
69dcadff
AO
44#undef LANG_HOOKS_INIT_OPTIONS
45#define LANG_HOOKS_INIT_OPTIONS c_init_options
2772ef3e
NB
46#undef LANG_HOOKS_HANDLE_OPTION
47#define LANG_HOOKS_HANDLE_OPTION c_common_handle_option
69dcadff 48#undef LANG_HOOKS_POST_OPTIONS
e5f3b786 49#define LANG_HOOKS_POST_OPTIONS c_common_post_options
8ac61af7
RK
50#undef LANG_HOOKS_GET_ALIAS_SET
51#define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set
ac79cd5a
RK
52#undef LANG_HOOKS_SAFE_FROM_P
53#define LANG_HOOKS_SAFE_FROM_P c_safe_from_p
c9d892a8
NB
54#undef LANG_HOOKS_EXPAND_EXPR
55#define LANG_HOOKS_EXPAND_EXPR c_expand_expr
dffd7eb6
NB
56#undef LANG_HOOKS_MARK_ADDRESSABLE
57#define LANG_HOOKS_MARK_ADDRESSABLE c_mark_addressable
52dabb6c
NB
58#undef LANG_HOOKS_PARSE_FILE
59#define LANG_HOOKS_PARSE_FILE c_common_parse_file
78ef5b89
NB
60#undef LANG_HOOKS_TRUTHVALUE_CONVERSION
61#define LANG_HOOKS_TRUTHVALUE_CONVERSION c_common_truthvalue_conversion
7ffb4fd2
NB
62#undef LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES
63#define LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES c_insert_default_attributes
48a7a235
NB
64#undef LANG_HOOKS_FINISH_INCOMPLETE_DECL
65#define LANG_HOOKS_FINISH_INCOMPLETE_DECL c_finish_incomplete_decl
66#undef LANG_HOOKS_UNSAFE_FOR_REEVAL
67#define LANG_HOOKS_UNSAFE_FOR_REEVAL c_common_unsafe_for_reeval
db3acfa5
JM
68#undef LANG_HOOKS_STATICP
69#define LANG_HOOKS_STATICP c_staticp
2896d056
ZW
70#undef LANG_HOOKS_NO_BODY_BLOCKS
71#define LANG_HOOKS_NO_BODY_BLOCKS true
ef4f94ac
RH
72#undef LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL
73#define LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL c_warn_unused_global_decl
5d69f816
NB
74#undef LANG_HOOKS_PRINT_IDENTIFIER
75#define LANG_HOOKS_PRINT_IDENTIFIER c_print_identifier
b03e38e1
NB
76#undef LANG_HOOKS_FUNCTION_ENTER_NESTED
77#define LANG_HOOKS_FUNCTION_ENTER_NESTED c_push_function_context
78#undef LANG_HOOKS_FUNCTION_LEAVE_NESTED
79#define LANG_HOOKS_FUNCTION_LEAVE_NESTED c_pop_function_context
63e1b1c4
NB
80#undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL
81#define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL c_dup_lang_specific_decl
8ac61af7 82
349ae713
NB
83/* Attribute hooks. */
84#undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE
85#define LANG_HOOKS_COMMON_ATTRIBUTE_TABLE c_common_attribute_table
86#undef LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE
87#define LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE c_common_format_attribute_table
88
69dcadff
AO
89#undef LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN
90#define LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN \
91 c_cannot_inline_tree_fn
92#undef LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS
93#define LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS \
94 c_disregard_inline_limits
95#undef LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P
96#define LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P \
97 anon_aggr_type_p
f735a153
JJ
98#undef LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING
99#define LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING \
100 c_convert_parm_for_inlining
558ee214
JM
101#undef LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN
102#define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN c_dump_tree
69dcadff 103
e72fcfe8
JH
104#undef LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION
105#define LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION c_expand_body
106
b0c48229
NB
107#undef LANG_HOOKS_TYPE_FOR_MODE
108#define LANG_HOOKS_TYPE_FOR_MODE c_common_type_for_mode
109#undef LANG_HOOKS_TYPE_FOR_SIZE
110#define LANG_HOOKS_TYPE_FOR_SIZE c_common_type_for_size
ceef8ce4
NB
111#undef LANG_HOOKS_SIGNED_TYPE
112#define LANG_HOOKS_SIGNED_TYPE c_common_signed_type
113#undef LANG_HOOKS_UNSIGNED_TYPE
114#define LANG_HOOKS_UNSIGNED_TYPE c_common_unsigned_type
115#undef LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE
116#define LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE c_common_signed_or_unsigned_type
7a228918
NB
117#undef LANG_HOOKS_INCOMPLETE_TYPE_ERROR
118#define LANG_HOOKS_INCOMPLETE_TYPE_ERROR c_incomplete_type_error
ab393bf1
NB
119#undef LANG_HOOKS_TYPE_PROMOTES_TO
120#define LANG_HOOKS_TYPE_PROMOTES_TO c_type_promotes_to
b0c48229 121
0abc6a6a
NB
122/* ### When changing hooks, consider if ObjC needs changing too!! ### */
123
cd2a3ba2 124/* Each front end provides its own. */
3ac88239 125const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
cd2a3ba2 126
2f9834e8
KG
127/* Tree code classes. */
128
129#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE,
130
131const char tree_code_type[] = {
132#include "tree.def"
133 'x',
134#include "c-common.def"
135};
136#undef DEFTREECODE
137
138/* Table indexed by tree code giving number of expression
139 operands beyond the fixed part of the node structure.
140 Not used for types or decls. */
141
142#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH,
143
144const unsigned char tree_code_length[] = {
145#include "tree.def"
146 0,
147#include "c-common.def"
148};
149#undef DEFTREECODE
150
151/* Names of tree components.
152 Used for printing out the tree and error messages. */
153#define DEFTREECODE(SYM, NAME, TYPE, LEN) NAME,
154
155const char *const tree_code_name[] = {
156#include "tree.def"
157 "@@dummy",
158#include "c-common.def"
159};
160#undef DEFTREECODE
161
2772ef3e 162static int
3346b668 163c_init_options (void)
b53beeb2 164{
2772ef3e 165 return c_common_init_options (clk_c);
b53beeb2
RH
166}
167
c0f940ef 168/* Used by c-lex.c, but only for objc. */
a604ca26 169
c0f940ef 170tree
3346b668 171lookup_interface (tree arg ATTRIBUTE_UNUSED)
c0f940ef
RS
172{
173 return 0;
174}
175
a604ca26 176tree
3346b668 177is_class_name (tree arg ATTRIBUTE_UNUSED)
a604ca26
TW
178{
179 return 0;
180}
181
370ce32a 182tree
3346b668 183objc_is_id (tree arg ATTRIBUTE_UNUSED)
370ce32a
ZL
184{
185 return 0;
186}
187
c0f940ef 188void
3346b668 189objc_check_decl (tree decl ATTRIBUTE_UNUSED)
c0f940ef
RS
190{
191}
192
193int
3346b668
AJ
194objc_comptypes (tree lhs ATTRIBUTE_UNUSED, tree rhs ATTRIBUTE_UNUSED,
195 int reflexive ATTRIBUTE_UNUSED)
a604ca26 196{
a0825a7f 197 return -1;
a604ca26
TW
198}
199
c0f940ef 200tree
3346b668 201objc_message_selector (void)
c0f940ef
RS
202{
203 return 0;
204}
205
7e585d16
ZW
206/* Used by c-typeck.c (build_external_ref), but only for objc. */
207
208tree
3346b668 209lookup_objc_ivar (tree id ATTRIBUTE_UNUSED)
7e585d16
ZW
210{
211 return 0;
212}
213
2c5f4139 214void
3346b668 215finish_file (void)
2c5f4139 216{
3b27886e 217 c_objc_common_finish_file ();
2c5f4139 218}
e2500fed
GK
219
220#include "gtype-c.h"
This page took 1.089144 seconds and 5 git commands to generate.