aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.objc-improvements
blob: f8d1e2278106e575232aa55ea4412b8701e0f80d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
2004-08-06  Ziemowit Laski  <zlaski@apple.com>

	* doc/frontends.texi: Mention Objective-C++ in addition to
	Objective-C.
	* doc/install.texi: Add 'obj-c++' to list of configurable
	languages.
	* doc/invoke.texi: Rename Objective-C option headings to
	indicate they also apply to Objective-C++.  List file
	extensions for Objective-C++ sources.  Mention that
	ObjC and ObjC++ compilations may also use C and C++ options,
	respectively.  Point users to doc/standards.texi for
	further info on ObjC and ObjC++.
	* doc/sourcebuild.texi: Mention the objcp/ directory and
	the Objective-C++ sources it contains.
	* doc/standards.texi: Update link to Apple ObjC site;
	add link to gcc readings.html WWW doc.

2004-07-30  Ziemowit Laski  <zlaski@apple.com>

	* c-common.h (objc_is_type_qualifier): Remove prototype.
	(objc_add_instance_variable): Adjust prototype to accept 1 parameter
	and return void.
	* c-parse.in (OBJC_TYPE_QUAL): New %token.
	(ivars, ivar_declarator): Remove nonterminals and their associated
	productions.
	(objc_quals, objc_qual, objc_typename, optellipsis): New nonterminals.
	(ivar_decl): Use component_decl; adjust call to
	objc_add_instance_variable().
	(opt_semi): Add a pedantic-mode warning.
	(objc_catch_prefix): Call grokparm() before calling
	objc_begin_catch_clause().
	(methoddecl, keyworddecl): Use objc_typename instead of typename.
	(optparms): Chain parameters via tree lists, rather than directly.
	(rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF 
	and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
	* c-typeck.c (build_component_ref): Check for ObjC-ness before
	calling objc_is_public().
	(build_c_cast): Retrieve main variant of type before casting to it.
	* stub-objc.c (objc_is_type_qualifier): Remove stub.
	(objc_add_instance_variable): Adjust stub to accept 1 parameter and
	return void.
	(objc_is_public): New stub.

2004-06-25  Ziemowit Laski  <zlaski@apple.com>

	* c-common.h (objc_static_init_needed_p,
	objc_generate_static_init_call): New prototypes.
	* c-objc-common.c (build_cdtor): If present, call the Objective-C
	static initializer before all others.
	* c-parse.in (opt_semi): New nonterminal.
	(methoddef): Allow for an optional semicolon in method definitions.
	* stub-objc.c (objc_static_init_needed_p, 
        objc_generate_static_init_call): New stubs.

2004-06-23  Ziemowit Laski  <zlaski@apple.com>

	* c-common.h (objc_is_id, objc_get_protocol_qualified_type): New
	prototypes.
	(objc_method_ellipsis, objc_get_static_reference,
	objc_get_object_reference, objc_continue_method_definition):
	Remove prototypes.
	* c-parse.in (optparms, optellipsis): New nonterminals.
	(myparms, myparm, myxdecls, mydecls, mydecl, optarglist): Remove.
	(typespec_nonreserved_nonattr): Call objc_get_protocol_qualified_type()
	instead of objc_get_static_reference() or objc_get_object_reference().
	* c-typeck.c (build_c_cast): Preserve the NOP_EXPR when casting
	to an Objective-C type.
	* expr.c (categorize_ctor_elements_1): Check for presence of 
	designated initializer before checking its TREE_CODE.
	* stub_objc.c (objc_is_id, objc_get_protocol_qualified_type): New
	stub functions.
	(objc_method_ellipsis, objc_get_static_reference,
	objc_get_object_reference, objc_continue_method_definition):
	Remove stub functions.

2004-06-09  Ziemowit Laski  <zlaski@apple.com>

	* c-common.h (objc_is_type_qualifier): New prototype.
	* stub-objc.c (objc_is_type_qualifier, objc_clear_super_receiver):
	New stubs.

2004-03-04  Ziemowit Laski  <zlaski@apple.com>

	* Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
	* c-common.h (lookup_interface): Remove prototype.
	(is_class_name): Rename to objc_is_class_name.
	(lookup_objc_ivar): Rename to objc_lookup_ivar.
	(get_current_scope): Rename to objc_get_current_scope.
	(objc_is_reserved_word, objc_lookup_ivar, objc_declare_alias,
	objc_declare_class, objc_declare_protocols, objc_method_ellipsis,
	objc_is_public, objc_build_message_expr, objc_finish_message_expr,
	objc_build_selector_expr, objc_build_protocol_expr,
	objc_build_encode_expr, objc_build_string_object, 
	objc_get_static_reference, objc_get_object_reference,
	objc_get_class_reference, objc_get_class_ivars,
	objc_start_class_interface, objc_start_category_interface,
	objc_start_protocol, objc_continue_interface, 
	objc_finish_interface, objc_start_class_implementation,
	objc_start_category_implementation, objc_continue_implementation,
	objc_finish_implementation, objc_set_visibility,
	objc_set_method_type, objc_build_method_signature,
	objc_add_method_declaration, objc_start_method_definition,
	objc_continue_method_definition, objc_finish_method_definition,
	objc_add_instance_variable, objc_clear_super_receiver,
	objc_build_keyword_decl, objc_build_throw_stmt, 
	objc_build_try_prologue, objc_build_try_epilogue,
	objc_build_catch_stmt, objc_build_catch_epilogue,
	objc_build_finally_prologue, objc_build_synchronized_prologue,
	objc_build_synchronized_epilogue,
	objc_build_try_catch_finally_stmt): New prototypes.
	* c-decl.c (get_current_scope): Rename to objc_get_current_scope.
	* c-lex.c (c_lex_with_flags): Call objc_is_reserved_word()
	instead of using macros.
	* c-parse.in: Include c-common.h instead of objc-act.h.
	(methodtype): Specify %type; remove (explicit) semantic actions.
	(objc_inherit_code, objc_public_flag): Remove.
	(primary): Call objc_is_public() instead of is_public(),
	objc_build_message_expr() instead of build_message_expr(),
	objc_build_selector_expr() instead of build_selector_expr(),
	objc_build_protocol_expr() instead of build_protocol_expr(),
	objc_build_encode_expr() instead of build_encode_expr(),
	objc_build_string_object() instead of build_objc_string_object().
	(typespec_nonreserved_nonattr): Call objc_get_static_reference()
	instead of get_static_reference(), objc_get_object_reference()
	instead of get_object_reference().
	(component_decl_list2): Call objc_get_class_ivars() instead of
	get_class_ivars_from_name().
	(objcdef): Move semantic action to objc_finish_implementation(),
	and call it.
	(classdef): Move semantic actions to objc_start_class_interface(),
	objc_continue_interface(), objc_finish_interface(),
	objc_start_class_implementation(), objc_continue_implementation(),
	objc_start_category_interface() and objc_start_category_implementation()
	and call them.
	(protocoldef): Move semantic actions to objc_start_protocol() and
	objc_finish_interface() and call them.
	(visibility_spec): Move semantic actions to objc_set_visibility() and
	call it.
	(ivar_declarator): Call objc_add_instance_variable() instead of
	add_instance_variable().
	(methoddef): Move semantic actions to objc_set_method_type() and
	objc_start_method_definition(), objc_continue_method_definition()
	and objc_finish_method_definition() and call them.
	(methodproto): Move semantic actions to objc_set_method_type() and
	objc_add_method_declaration() and call them.
	(methoddecl): Call objc_build_method_signature() instead of
	build_method_decl().
	(optparmlist): Call objc_method_ellipsis().
	(keyworddecl): Call objc_build_keyword_decl() instead of
	build_keyword_decl().
	(receiver): Call objc_get_class_reference() instead of 
	get_class_reference().
	(yylexname): Call objc_is_class_name() instead of is_class_name().
	* c-typeck.c (build_external_ref): Call objc_lookup_ivar() instead of
	lookup_objc_ivar().
	* gengtype.c (get_file_basename): Actually check lang subdirectory
	name instead of merely its length.
	* stub-objc.c (lookup_interface): Remove stub.
	(is_class_name): Rename to objc_is_class_name.
	(lookup_objc_ivar): Rename to objc_lookup_ivar.
	(objc_is_reserved_word, objc_declare_alias, objc_declare_class,
	objc_declare_protocols, objc_start_protocol, objc_method_ellipsis,
	objc_start_class_interface, objc_start_category_interface,
	objc_continue_interface, objc_finish_interface,
	objc_add_instance_variable, objc_set_visibility,
	objc_set_method_type, objc_start_class_implementation,
	objc_start_category_implementation, objc_continue_implementation,
	objc_finish_implementation, objc_add_method_declaration,
	objc_start_method_definition, objc_continue_method_definition,
	objc_finish_method_definition, objc_build_keyword_decl,
	objc_build_method_signature, objc_build_encode_expr, objc_build_protocol_expr,
	objc_build_selector_expr, objc_build_message_expr,
	objc_build_string_object, objc_get_class_reference, objc_get_object_reference,
	objc_get_static_reference): New stubs.

2004-03-02  Ziemowit Laski  <zlaski@apple.com>

	* gengtype.c (get_base_file_bitmap): Allow for file found
	in a language subdirectory to also be used by other languages.

2004-01-30  Ziemowit Laski  <zlaski@apple.com>

	* Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
	(C_AND_OBJC_OBJS): Add c-pretty-print.o.
	(C_OBJC): Remove c-pretty-print.o.
	(c-lang.o): Depend on c-objc-common.h.
	(c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and 
	c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
	* c-decl.c (groktypename_in_parm_context): Remove.
	* c-lang.c: Include c-objc-common.h.
	(LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
	LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
	LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
	LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, 
	LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, 
	LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
	LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
	LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, 
	LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
	LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
	LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
	LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
	LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
	LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
	LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
	LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
	LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
	LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
	LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
	LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
	LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
	LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
	Move to c-objc-common.h.
	(c_initialize_diagnostics): Move to c-objc-common.c.
	* c-objc-common.c: Include c-pretty-print.h and c-objc-common.h.
	(c_tree_printer): Use pp_base_string() macro instead of pp_string().
	(c_initialize_diagnostics): Moved from c-lang.c.
	* c-objc-common.h: New file.
	* c-tree.h (groktypename_in_parm_context, get_current_scope,
	objc_mark_locals_volatile): Remove prototypes.
	* doc/invoke.texi (-x option): Rename 'cpp-output' and 'objc-cpp-output'
	to 'c-cpp-output' and 'objective-c-cpp-output', respectively.  Add
	'objective-c++', 'objective-c++-header' and 'objective-c++-cpp-output'.
	* gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
	Objective-C++ extensions; rename 'cpp-output' to 'c-cpp-output'.
	* gengtype.c (get_file_basename): Match entire subdirectory name
	('cp', 'objc', 'objcp') rather than just its suffix.
	(get_output_file_with_visibility): Add more special cases for headers
	used by more than one front-end.