]> gcc.gnu.org Git - gcc.git/blame - gcc/objc/objc-lang.c
* g++.dg/parse/operator1.C: New test.
[gcc.git] / gcc / objc / objc-lang.c
CommitLineData
4e089a75 1/* Language-dependent hooks for Objective-C.
e5f3b786 2 Copyright 2001, 2002 Free Software Foundation, Inc.
4e089a75
ZL
3 Contributed by Ziemowit Laski <zlaski@apple.com>
4
5This file is part of GNU CC.
6
7GNU CC is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 2, or (at your option)
10any later version.
11
12GNU CC is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU CC; see the file COPYING. If not, write to
19the Free Software Foundation, 59 Temple Place - Suite 330,
20Boston, MA 02111-1307, USA. */
21
22#include "config.h"
23#include "system.h"
4977bab6
ZW
24#include "coretypes.h"
25#include "tm.h"
4e089a75
ZL
26#include "tree.h"
27#include "c-tree.h"
28#include "c-common.h"
29#include "toplev.h"
30#include "objc-act.h"
31#include "langhooks.h"
32#include "langhooks-def.h"
33
34static void objc_init_options PARAMS ((void));
4e089a75
ZL
35
36#undef LANG_HOOKS_NAME
4b65dba1 37#define LANG_HOOKS_NAME "GNU Objective-C"
4e089a75
ZL
38#undef LANG_HOOKS_INIT
39#define LANG_HOOKS_INIT objc_init
40#undef LANG_HOOKS_FINISH
41#define LANG_HOOKS_FINISH c_common_finish
42#undef LANG_HOOKS_INIT_OPTIONS
43#define LANG_HOOKS_INIT_OPTIONS objc_init_options
44#undef LANG_HOOKS_DECODE_OPTION
0b6f2917 45#define LANG_HOOKS_DECODE_OPTION c_common_decode_option
4e089a75 46#undef LANG_HOOKS_POST_OPTIONS
e5f3b786 47#define LANG_HOOKS_POST_OPTIONS c_common_post_options
4b65dba1
NP
48#undef LANG_HOOKS_GET_ALIAS_SET
49#define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set
50#undef LANG_HOOKS_SAFE_FROM_P
51#define LANG_HOOKS_SAFE_FROM_P c_safe_from_p
52dabb6c
NB
52#undef LANG_HOOKS_PARSE_FILE
53#define LANG_HOOKS_PARSE_FILE c_common_parse_file
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
78ef5b89
NB
58#undef LANG_HOOKS_TRUTHVALUE_CONVERSION
59#define LANG_HOOKS_TRUTHVALUE_CONVERSION c_common_truthvalue_conversion
7ffb4fd2
NB
60#undef LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES
61#define LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES c_insert_default_attributes
48a7a235
NB
62#undef LANG_HOOKS_FINISH_INCOMPLETE_DECL
63#define LANG_HOOKS_FINISH_INCOMPLETE_DECL c_finish_incomplete_decl
64#undef LANG_HOOKS_UNSAFE_FOR_REEVAL
65#define LANG_HOOKS_UNSAFE_FOR_REEVAL c_common_unsafe_for_reeval
db3acfa5
JM
66#undef LANG_HOOKS_STATICP
67#define LANG_HOOKS_STATICP c_staticp
63e1b1c4
NB
68#undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL
69#define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL c_dup_lang_specific_decl
4e089a75
ZL
70#undef LANG_HOOKS_PRINT_IDENTIFIER
71#define LANG_HOOKS_PRINT_IDENTIFIER c_print_identifier
7afff7cf
NB
72#undef LANG_HOOKS_DECL_PRINTABLE_NAME
73#define LANG_HOOKS_DECL_PRINTABLE_NAME objc_printable_name
ef4f94ac
RH
74#undef LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL
75#define LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL c_warn_unused_global_decl
76
b03e38e1
NB
77#undef LANG_HOOKS_FUNCTION_ENTER_NESTED
78#define LANG_HOOKS_FUNCTION_ENTER_NESTED c_push_function_context
79#undef LANG_HOOKS_FUNCTION_LEAVE_NESTED
80#define LANG_HOOKS_FUNCTION_LEAVE_NESTED c_pop_function_context
b03e38e1 81
349ae713
NB
82/* Attribute hooks. */
83#undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE
84#define LANG_HOOKS_COMMON_ATTRIBUTE_TABLE c_common_attribute_table
85#undef LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE
86#define LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE c_common_format_attribute_table
87
4e089a75
ZL
88/* Inlining hooks same as the C front end. */
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
4e089a75 101
b0c48229
NB
102#undef LANG_HOOKS_TYPE_FOR_MODE
103#define LANG_HOOKS_TYPE_FOR_MODE c_common_type_for_mode
104#undef LANG_HOOKS_TYPE_FOR_SIZE
105#define LANG_HOOKS_TYPE_FOR_SIZE c_common_type_for_size
ceef8ce4
NB
106#undef LANG_HOOKS_SIGNED_TYPE
107#define LANG_HOOKS_SIGNED_TYPE c_common_signed_type
108#undef LANG_HOOKS_UNSIGNED_TYPE
109#define LANG_HOOKS_UNSIGNED_TYPE c_common_unsigned_type
110#undef LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE
111#define LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE c_common_signed_or_unsigned_type
7a228918
NB
112#undef LANG_HOOKS_INCOMPLETE_TYPE_ERROR
113#define LANG_HOOKS_INCOMPLETE_TYPE_ERROR c_incomplete_type_error
ab393bf1
NB
114#undef LANG_HOOKS_TYPE_PROMOTES_TO
115#define LANG_HOOKS_TYPE_PROMOTES_TO c_type_promotes_to
b0c48229 116
4e089a75
ZL
117/* Each front end provides its own hooks, for toplev.c. */
118const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
119
2f9834e8
KG
120/* Define the special tree codes that we use. */
121
122/* Table indexed by tree code giving a string containing a character
123 classifying the tree code. */
124
125#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE,
126
127const char tree_code_type[] = {
128#include "tree.def"
129 'x',
130#include "c-common.def"
131 'x',
132#include "objc-tree.def"
133};
134#undef DEFTREECODE
135
136/* Table indexed by tree code giving number of expression
137 operands beyond the fixed part of the node structure.
138 Not used for types or decls. */
139
140#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH,
141
142const unsigned char tree_code_length[] = {
143#include "tree.def"
144 0,
145#include "c-common.def"
146 0,
147#include "objc-tree.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 "@@dummy",
160#include "objc-tree.def"
161};
162#undef DEFTREECODE
163
4e089a75
ZL
164static void
165objc_init_options ()
166{
0f7866e7
ZL
167 flag_objc = 1;
168 c_common_init_options (clk_c);
169}
This page took 0.391711 seconds and 5 git commands to generate.