12014-10-30  Release Manager
2
3	* GCC 4.9.2 released.
4
52014-07-16  Release Manager
6
7	* GCC 4.9.1 released.
8
92014-04-22  Release Manager
10
11	* GCC 4.9.0 released.
12
132014-01-31  Marek Polacek  <polacek@redhat.com>
14
15	PR c/59963
16	* objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to
17	build_function_call_vec.
18	(finish_catch): Likewise.
19	(next_runtime_abi_02_get_class_reference): Likewise.
20	* objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to
21	build_function_call_vec.
22	(build_throw_stmt): Likewise.
23	* objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to
24	build_function_call_vec.
25	(build_throw_stmt): Likewise.
26
272014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
28
29	Update copyright years
30
312013-12-04  Joseph Myers  <joseph@codesourcery.com>
32
33	PR c/52023
34	* objc-act.c (objc_synthesize_getter): Update calls to
35	c_sizeof_or_alignof_type.
36
372013-11-22  Andrew MacLeod  <amacleod@redhat.com>
38
39	* objc/objc-act.c: Add required include files from gimple.h.
40
412013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
42
43	* objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi
44	throughout.
45
462013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
47
48	* objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with
49	tree_to_shwi throughout.
50
512013-11-14  Andrew MacLeod  <amacleod@redhat.com>
52
53	* objc-act.c: Include only gimplify.h and gimple.h as needed.
54
552013-11-14  Diego Novillo  <dnovillo@google.com>
56
57	* objc-act.c: Include stringpool.h.
58	Include stor-layout.h.
59	Include attribs.h.
60	* objc-encoding.c: Include stringpool.h.
61	Include stor-layout.h.
62	* objc-gnu-runtime-abi-01.c: Include stringpool.h.
63	* objc-next-runtime-abi-01.c:
64	Include stringpool.h.
65	* objc-next-runtime-abi-02.c: Include stringpool.h.
66	* objc-runtime-shared-support.c: Include stringpool.h.
67
682013-11-12  Andrew MacLeod  <amacleod@redhat.com>
69
70	* objc-act.c: Include gimplify.h.
71
722013-11-07  Andrew MacLeod  <amacleod@redhat.com>
73
74	* objc-act.c (objc_push_parm): Handle atomic qualifier.
75
762013-09-25  Tom Tromey  <tromey@redhat.com>
77
78	* Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o)
79	(objc/objc-runtime-shared-support.o)
80	(objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o)
81	(objc/objc-next-runtime-abi-02.o, objc/objc-act.o)
82	(objc/objc-encoding.o, objc/objc-map.o): Remove.
83
842013-09-14  Iain Sandoe  <iain@codesourcery.com>
85
86	PR target/48094
87	* objc-next-runtime-abi-01.c (generate_objc_image_info): Remove.
88	(objc_generate_v1_next_metadata): Remove generation of ImageInfo.
89	* objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove.
90	(objc_generate_v2_next_metadata): Remove generation of ImageInfo.
91
922013-07-21   Ondřej Bílka  <neleai@seznam.cz>
93
94	* objc-act.c: Fix typos.
95	* objc-encoding.c: Likewise.
96	* objc-gnu-runtime-abi-01.c: Likewise.
97	* objc-next-runtime-abi-01.c: Likewise.
98	* objc-next-runtime-abi-02.c: Likewise.
99
1002013-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
101
102	* objc-next-runtime-abi-02.c (build_v2_build_objc_method_call):
103	Fix build_conditional_expr call.
104
1052013-05-16  Jason Merrill  <jason@redhat.com>
106
107	* Make-lang.in (cc1obj$(exeext)): Use link mutex.
108
1092012-11-20  Diego Novillo  <dnovillo@google.com>
110
111	* objc-act.c: Replace all vec<T, A>() initializers with vNULL.
112
1132012-11-16  Diego Novillo  <dnovillo@google.com>
114
115	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
116
117	* objc-act.c: Use new vec API in vec.h.
118	* objc-act.h: Likewise.
119	* objc-gnu-runtime-abi-01.c: Likewise.
120	* objc-next-runtime-abi-01.c: Likewise.
121	* objc-next-runtime-abi-02.c: Likewise.
122	* objc-runtime-hooks.h: Likewise.
123	* objc-runtime-shared-support.c: Likewise.
124	* objc-runtime-shared-support.h: Likewise.
125
1262012-10-01  Lawrence Crowl  <crowl@google.com>
127
128	* Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o.
129	(objc-act.o): Add dependence on hash-table.h.
130	* objc-act.c (objc_detect_field_duplicates): Change to new type-safe
131	hash table.
132
1332012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
134
135	* Make-ang.in: Adjust for move of C front-end files.
136	* config-lang.in: Likewise.
137	* objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h
138	and c-lang.h in c/.
139	* objc-runtime-shared-support.c: Likewise.
140	* objc-next-runtime-abi-01.c: Likewise.
141	* objc-next-runtime-abi-02.c: Likewise.
142	* objc-gnu-runtime-abi-01.c: Likewise.
143	* objc-act.c: Likewise.
144	* objc-lang.c: Likewise.
145
1462012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
147
148	* objc-next-runtime-abi-01.c: Do not include tm.h and output.h.
149	Include c-family/c-target.h.
150	(handle_next_class_ref): Rewrite to emit top-level asm statements.
151	(handle_next_impent): Likewise.
152	* objc/Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o.
153
1542012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
155
156	* objc-act.c: Do not include output.h.
157
1582012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
159
160	PR objc++/53388
161	* objc-act.c (objc_get_class_reference, objc_build_message_expr):
162	Use build_min_nt_loc.
163
1642012-04-20  Jan Hubicka  <jh@suse.cz>
165
166	* objc-act.c (mark_referenced_methods); Use
167	cgraph_mark_force_output_node.
168
1692012-03-21  Steven Bosscher  <steven@gcc.gnu.org>
170
171	* objc-act (objc_build_ivar_assignment): Do not call assemble_external.
172	(objc_build_global_assignment): Likewise.
173	(objc_build_strong_cast_assignment): Likewise.
174	* objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external.
175	* objc-next-runtime-abi-02.c: Likewise.
176	* objc-gnu-runtime-abi-01.c: Likewise.
177
1782012-03-05  Jason Merrill  <jason@redhat.com>
179
180	* objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't
181	call _stat functions without MEM_STAT_INFO.
182
1832011-11-12  Iain Sandoe  <iains@gcc.gnu.org>
184
185	* objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality
186	for Objective-C m32.
187
1882011-10-29  Iain Sandoe  <iains@gcc.gnu.org>
189
190	PR target/47997
191	* objc-act.c (objc_build_string_object): Remove redundant second
192	call to fix_string_type ().  Add a checking assert that we are,
193	indeed, passed a STRING_CST.
194
1952011-10-18  Mikael Pettersson  <mikpe@it.uu.se>
196
197	PR objc/50743
198	* objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to
199	size_t to avoid signed/unsigned
200	comparison.
201	(insert_method_into_method_map): Likewise.
202
2032011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
204
205	* objc-map.h: New file.
206	* objc-map.c: New file.
207	* config-lang.in (gtfiles): Added objc-map.h.
208	* Make-lang.in (OBJC_OBJS): Added objc-map.o.
209	(objc/objc-map.o): New rule.
210	(objc/objc-act.o): Depend on objc/objc-map.h.
211	* objc-next-runtime-abi-02.c: Added a TODO comment.
212	* objc-act.c: Include objc-map.h.
213	(nst_method_hash_list, cls_method_hash_list): Removed.
214	(instance_method_map, class_method_map): New.
215	(cls_name_hash_list, als_name_hash_list): Removed.
216	(class_name_map, alias_name_map): Removed.
217	(ivar_offset_hash_list): Removed.
218	(hash_class_name_enter, hash_class_name_lookup, hash_enter,
219	hash_lookup, hash_add_attr, add_method_to_hash_list): Removed.
220	(interface_hash_init): New.
221	(objc_init): Call interface_hash_init.
222	(objc_write_global_declarations): Iterate over class_method_map
223	and instance_method_map instead of cls_method_hash_list and
224	nst_method_hash_list.
225	(objc_declare_alias): Use alias_name_map instead of
226	cls_name_hash_list.
227	(objc_is_class_name): Use class_name_map and alias_name_map
228	instead of cls_name_hash_list and als_name_hash_list.
229	(interface_tuple, interface_htab, hash_interface, eq_interface):
230	Removed.
231	(interface_map): New.
232	(add_class): Renamed to add_interface.  Use interface_map instead
233	of interface_htab.
234	(lookup_interface): Use interface_map instead of interface_htab.
235	(check_duplicates): Changed first argument to be a tree,
236	potentially a TREE_VEC, instead of a hash.  Changed implementation
237	to match.
238	(lookup_method_in_hash_lists): Use class_method_map and
239	instance_method_map instead of cls_method_hash_list and
240	nst_method_hash_list.
241	(objc_build_selector_expr): Likewise.
242	(hash_func): Removed.
243	(hash_init): Create instance_method_map, class_method_map,
244	class_name_map, and alias_name_map.  Do not create
245	nst_method_hash_list, cls_method_hash_list, cls_name_hash_list,
246	als_name_hash_list, and ivar_offset_hash_list.
247	(insert_method_into_method_map): New.
248	(objc_add_method): Use insert_method_into_method_map instead of
249	add_method_to_hash_list.
250	(start_class): Call add_interface instead of add_class.
251	* objc-act.h (cls_name_hash_list, als_name_hash_list,
252	nst_method_hash_list, cls_method_hash_list): Removed.
253
2542011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
255
256	* objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old
257	interface with two parallel arrays to hold standard builtin
258	declarations, and replace it with a function based interface that
259	can support creating builtins on the fly in the future.  Change
260	all uses, and poison the old names.  Make sure 0 is not a
261	legitimate builtin index.
262	* objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto.
263	* objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto.
264
2652011-07-19  Richard Guenther  <rguenther@suse.de>
266
267	* objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref):
268	Use fold_build_pointer_plus.
269	(objc2_build_ehtype_initializer): Likewise.
270
2712011-07-11  Nicola Pero  <nicola.pero@meta-innovation.com>
272
273	* objc-encoding.h (obstack.h): Do not include.
274	(util_obstack, util_firstobj): Do not declare.
275	(encode_field_decl): Updated prototype to return a tree and take a
276	single tree argument.  Updated comments.
277	* objc-encoding.c (util_obstack, util_firstobj): Made static.
278	(objc_encoding_init): New.
279	(encode_field_decl): Existing function renamed to encode_field and
280	made static.  New encode_field_decl wrapper function added.
281	(encode_aggregate_fields): Update call to encode_field_decl to
282	call encode_field.
283	* objc-next-runtime-abi-02.c (obstack.h): Do not include.
284	(util_obstack, util_firstobj): Do not declare.
285	(build_v2_ivar_list_initializer): Updated call to
286	encode_field_decl.
287	* objc-runtime-shared-support.c (obstack.h): Do not include.
288	(util_obstack, util_firstobj): Do not declare.
289	(build_ivar_list_initializer): Updated call to encode_field_decl.
290	* objc-act.c (objc_init): Use objc_encoding_init.
291	* Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend
292	on OBSTACK_H.
293	(objc/objc-gnu-runtime-abi-01.o): Likewise.
294	(objc/objc-next-runtime-abi-01.o): Likewise.
295	(objc/objc-next-runtime-abi-02.o): Likewise.
296	(objc/objc-act.o): Likewise.
297
2982011-07-04  Nicola Pero  <nicola.pero@meta-innovation.com>
299
300	Refactored encoding code into objc-encoding.h and objc-encoding.c.
301	* objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers,
302	encode_type, generating_instance_variables, objc_method_parm_type,
303	objc_encoded_type_size, encode_method_prototype,
304	objc_build_encode_expr, pointee_is_readonly, encode_pointer,
305	encode_array, encode_vector, encode_aggregate_fields,
306	encode_aggregate_within, encode_next_bitfield,
307	encode_gnu_bitfield, encode_field_decl,
308	objc_v2_encode_property_attr): Moved to objc-encoding.h and
309	objc-encoding.c.  No change in the actual code.
310	Include objc-encoding.h.
311	(objc_init): Added TODO.
312	(objc_build_property_setter_name): Made non-static so it can be
313	called from objc-encoding.c.
314	* objc-act.h (OBJC_ENCODE_INLINE_DEFS,
315	OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h.
316	* objc-runtime-shared-support.h (objc_v2_encode_property_attr,
317	encode_method_prototype, encode_field_decl,
318	generating_instance_variables): Moved to objc-encoding.h.
319	(objc_build_property_setter_name): Declare.
320	* objc-encoding.c: New.
321	* objc-encoding.h: New.
322	* objc-gnu-runtime-abi-01.c: Include objc-encoding.h.
323	* objc-next-runtime-abi-01.c: Likewise.
324	* objc-next-runtime-abi-02.c: Likewise.
325	* objc-runtime-shared-support.c: Likewise.
326	* Make-lang.in (OBJC_OBJS): Added objc-encoding.o.
327	(objc/objc-lang.o): Reordered dependencies.
328	(objc/objc-runtime-shared-support.o): Reordered dependencies.
329	Added dependencies on objc-encoding.h and on $(GGC_H),
330	$(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h.
331	(objc/objc-gnu-runtime-abi-01.o): Likewise.
332	(objc/objc-next-runtime-abi-01.o): Likewise.
333	(objc/objc-next-runtime-abi-02.o): Likewise.
334	(objc/objc-act.o): Reordered dependencies.  Added dependency on
335	objc-encoding.h.
336	(objc/objc-encoding.o): New rule.
337
338	* objc-encoding.c (encode_type): Use "%<%T%>" format when printing
339	warning "unknown type %<%T%> found during Objective-C encoding"
340	instead of using gen_type_name.
341
3422011-06-05  Nicola Pero  <nicola.pero@meta-innovation.com>
343
344	* objc-act.c (receiver_is_class_object): Expanded comment.
345	(objc_finish_message_expr): Likewise.
346
3472011-06-02  Nicola Pero  <nicola.pero@meta-innovation.com>
348
349	PR objc/48539
350	* objc-act.c (objc_finish_message_expr): Warn if messaging a class
351	that was only declared using @class without an @interface.  Warn
352	if messaging an instance of a class that was only declared using
353	@class without an @interface, unless the receiver was also typed
354	with a protocol list.
355
3562011-06-01  Nicola Pero  <nicola.pero@meta-innovation.com>
357
358	* objc-act.c (objc_decl_method_attributes): Implement nonnull
359	attribute for Objective-C methods.
360
3612011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
362
363	* config-lang.in (gtfiles): Updated order of files to fix building
364	when the gcc/cp directory is missing, as in the case of some
365	release tarballs.
366
3672011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
368
369	* objc-act.c (objc_compare_types): Use function_args_iterator
370	instead of TYPE_ARG_TYPES to compare function argument types.
371
3722011-05-13  Toon Moene  <toon@moene.org>
373
374	* objc-next-runtime-abi-02.c (newabi_append_ro):
375	Add const qualifier to constant variable pointer declaration.
376
3772011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
378
379	* objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors.
380	(CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise.
381	(PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise.
382
3832011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
384
385	* objc-runtime-shared-support.h (get_arg_type_list): Delete.
386	(build_function_type_for_method): Declare.
387	* objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change
388	type of get_arg_type_base_list field.
389	* objc-act.h (OBJC_VOID_AT_END): Delete.
390	* objc-act.c (get_arg_type_list): Delete.
391	(build_function_type_for_method): New function.
392	(objc_decl_method_attributes): Call build_function_type_for_method.
393	(really_start_method): Likewise.
394	* objc-gnu-runtime-abi-01.c
395	(gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and
396	adjust function accordingly.  Update header comment.
397	(build_objc_method_call): Call build_function_type_for_method.
398	* objc-next-runtime-abi-01.c
399	(next_runtime_abi_01_get_type_arg_list_base): Change prototype and
400	adjust function accordingly.  Update header comment.
401	(build_objc_method_call): Call build_function_type_for_method.
402	* objc-next-runtime-abi-02.c
403	(next_runtime_abi_02_get_type_arg_list_base): Change prototype and
404	adjust function accordingly.  Update header comment.
405	(objc_copy_to_temp_side_effect_params): Take fntype instead of a
406	typelist.  Use function_args_iterator for traversing fntype.
407	(build_v2_build_objc_method_call): Adjust call to it.
408	Call build_function_type_for_method
409
4102011-05-05  Joseph Myers  <joseph@codesourcery.com>
411
412	* objc-act.c (objc_start_method_definition): Add parameter expr.
413	Update call to start_method_def.
414	(objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter,
415	objc_synthesize_setter) Update calls to
416	objc_start_method_definition.
417	(objc_get_parm_info): Add parameter expr.  Update call to
418	get_parm_info.
419	(start_method_def): Add parameter expr.  Update call to
420	objc_get_parm_info.
421	* objc-gnu-runtime-abi-01.c (build_module_initializer_routine):
422	Update call to objc_get_parm_info.
423	* objc-runtime-shared-support.h (objc_get_parm_info): Add extra
424	parameter.
425
4262011-04-26  Jason Merrill  <jason@redhat.com>
427
428	* objc-act.c (objc_fold_objc_type_ref): Remove.
429	* objc-act.h: Remove prototype.
430
4312011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
432
433	* objc-act.c (synth_module_prologue): Call build_function_type_list
434	instead of build_function_type.
435	* objc-next-runtime-abi-02.c (next_runtime_02_initialize):
436	Likewise.
437
4382011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
439
440	* objc-act.c (ivar_of_class): New.
441	(objc_is_public): Use ivar_of_class.
442
4432011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
444
445	* objc-act.c (objc_get_interface_ivars): Removed.
446	(objc_detect_field_duplicates): New.
447	(hash_instance_variable): New.
448	(eq_instance_variable): New.
449
4502011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
451
452	* objc-act.c (objc_declare_protocols): Renamed to
453	objc_declare_protocol.  Changed first argument to be an identifier
454	instead of a tree chain of identifiers, so that callers don't have
455	to create a temporary tree chain.
456
4572011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
458
459	* objc-act.c (objc_declare_class): Changed to take a single
460	identifier as argument instead of a tree list.  This means callers
461	don't have to build temporary tree lists to call this function.
462	(synth_module_prologue): Updated calls to objc_declare_class.
463
4642011-04-13  Nicola Pero  <nicola.pero@meta-innovation.com>
465
466	* objc-act.c (build_keyword_selector): Use get_identifier_with_length
467	instead of get_identifier.
468
4692011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
470
471	* objc-lang.c (objc_init_ts): Move code for this function...
472	* objc-act.c (objc_common_init_ts): ...here. Define.
473	* objc-act.h (objc_common_init_ts): Declare.
474
4752011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
476
477	* objc-act.c (objc_build_message_expr): Accept two arguments
478	instead of one so that callers can simply pass the arguments
479	without having to create a temporary chain to hold them.
480
4812011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
482
483	* objc-act.c (comp_proto_with_proto): Do not create and use
484	inefficient temporary argument lists.  Compare the arguments
485	directly.  (match_proto_with_proto): Removed; incorporated into
486	comp_proto_with_proto ().
487
4882011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
489
490	* objc-act.c (printable_ivar_name): New.
491	(add_instance_variable): Call printable_ivar_name() when an error
492	message needs to be printed.  Do not prepare the instance variable
493	for printing unless there is an actual error.
494
4952011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
496
497	* objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
498	avoid calling identifier_global_value() multiple times.
499
5002011-04-12  Martin Jambor  <mjambor@suse.cz>
501
502	* objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
503	instead of cgraph_node.
504
5052011-04-06  Joseph Myers  <joseph@codesourcery.com>
506
507	* objc-act.c: Include c-target.h instead of target.h.
508	* Make-lang.in (objc/objc-act.o): Update dependencies.
509
5102011-03-06  Joseph Myers  <joseph@codesourcery.com>
511
512	* lang-specs.h: Match -save-temps* instead of -save-temps.
513
5142011-02-26  Nicola Pero  <nicola.pero@meta-innovation.com>
515
516	* objc-act.c (objc_v2_encode_prop_attr): Rewritten.
517
5182011-02-23  Nicola Pero  <nicola.pero@meta-innovation.com>
519
520	* objc-act.c (build_private_template): Do not copy the
521	CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
522	* objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
523	TYPE_LANG_SLOT_0.
524
5252011-02-22  Nicola Pero  <nicola.pero@meta-innovation.com>
526
527	PR objc/47832
528	* objc-act.c (flexible_array_type_p): New.
529	(add_instance_variable): Produce an error if an instance variable
530	uses flexible array members.
531	(encode_array): Do not emit an error if encoding a flexible array
532	type while generating instance variables.
533
5342011-02-21  Mike Stump  <mikestump@comcast.net>
535
536	* Make-lang.in (check_objc_parallelize): Refine for 4 processor
537	machines.
538
5392011-02-20  Nicola Pero  <nicola.pero@meta-innovation.com>
540
541	* objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed.  Removed
542	usage of padding fields.  Do not include tm.h.
543	* objc-act.c (objc_write_global_declaration): Set input_location
544	to BUILTINS_LOCATION while generating runtime metadata.
545
5462011-01-20  Nicola Pero  <nicola.pero@meta-innovation.com>
547
548	PR objc/47784
549	* objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side
550	effects, do not use a temporary variable.
551
5522011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
553
554	* objc-next-runtime-abi-01.c: Updated comments.
555	* objc-next-runtime-abi-02.c: Same.
556
5572011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
558
559	* objc-act.c (objc_init, generate_struct_by_value_array): Updated
560	comments.
561
5622011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
563
564	* objc-act.c: Updated comments.
565	* objc-next-runtime-abi-02.c: Same.
566	* objc-runtime-shared-support.c: Same.
567	* objc-runtime-hooks.h: Same.
568	* objc-act.h: Same.
569	* objc-gnu-runtime-abi-01.c: Same.
570
5712011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
572
573	* objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do
574	not generate metadata if there is nothing to put into it.
575
5762011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
577
578	* config-lang.in (gtfiles): Updated.
579	* Make-lang.in (START_HDRS): New.
580	(OBJC_OBJS): Added new object files.
581	(objc/objc-act.o): Updated prerequisites.
582	(objc/objc-lang.o): Updated prerequisites.
583	(objc/objc-runtime-shared-support.o): New.
584	(objc/objc-gnu-runtime-abi-01.o): New.
585	(objc/objc-next-runtime-abi-01.o): New.
586	(objc/objc-next-runtime-abi-02.o): New.
587	* objc-runtime-hooks.h: New.
588	* objc-runtime-shared-support.h: New.
589	* objc-runtime-shared-support.c: New.
590	* objc-gnu-runtime-abi-01.c: New.
591	* objc-next-metadata-tags.h: New.
592	* objc-next-runtime-abi-01.c: New.
593	* objc-next-runtime-abi-02.c: New.
594	* objc-lang.c: Include c-lang.h.
595	(LANG_HOOKS_EH_PERSONALITY): Removed.
596	* objc-act.h: Moved many declarations and code from objc-act.c
597	into objc-act.h to make them available outside objc-act.c.
598	(objc_eh_runtime_type): Removed.
599	(objc_eh_personality): Removed.
600	(CLASS_HAS_EXCEPTION_ATTR): New.
601	(OCTI_SUPER_SUPERFIELD_ID): New.
602	(OCTI_V1_PROP_LIST_TEMPL): New.
603	(OCTI_V1_PROP_NAME_ATTR_CHAIN): New.
604	(super_superclassfield_id): New.
605	(objc_prop_list_ptr): New.
606	(prop_names_attr_chain): New.
607	* objc-act.c: Include new runtime headers.  Moved many #defines
608	and declarations into objc-act.h and
609	objc-runtime-shared-support.h.  Made some corresponding functions
610	non-static, and moved some others into
611	objc-runtime-shared-support.c.  Moved metadata generation code
612	into the new runtime hook files.
613	(ivar_offset_hash_list): New.
614	(objc_init): Call generate_struct_value_by_array() before doing
615	any runtime initialization.  Create the appropriate runtime hook
616	structures.
617	(init_objc): Removed.  Code moved directly into objc_init.
618	(finish_objc): Removed.  Code moved directly into
619	objc_write_global_declarations.
620	(objc_write_global_declarations): Do the warn_selector checks
621	before emitting metadata.  Use a runtime hook to emit the
622	metadata.  Do not emit the metadata or do -gen-decls processing if
623	-fsyntax-only or we are producing a PCH.
624	(build_objc_exception_stuff): Renamed to
625	build_common_objc_exception_stuff.  Remove TREE_NOTHROW flag from
626	objc_exception_throw_decl.
627	(synth_module_prologue): Call runtime initialize hook instead of
628	building runtime declarations here.  Use the
629	default_constant_string_class_name runtime hook to set the
630	constant string class name.
631	(objc_build_string_object): Call the setup_const_string_class_decl
632	runtime hook instead of setup_string_decl.  Call the
633	build_const_string_constructor runtime hook instead of building
634	the string object here.
635	(get_objc_string_decl): Added prop_names_attr case.  Removed
636	gcc_unreachable() at the end.
637	(objc_begin_catch_clause): Distinguish between @catch (...) and
638	@catch (id x).  Call the begin_catch runtime hook instead of
639	building the CATCH_EXPR here.
640	(objc_finish_catch_clause): Call the finish_catch runtime hook
641	instead of adding the catch here.
642	(objc_finish_try_stmt): Call the finish_try_stmt runtime hook
643	instead of doing it here.
644	(objc_build_throw_stmt): Bail out early for error_mark_node.  Call
645	the build_exc_ptr runtime hook instead of objc_build_exc_ptr.
646	Call the build_throw_stmt runtime hook instead of building the
647	throw call here.
648	(objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime
649	as well.
650	(get_arg_type_list): Call the get_arg_type_list_base runtime hook
651	instead of building the list of arguments here.
652	(receiver_is_class_object): Call the receiver_is_class_object
653	runtime hook instead of doing the check here.  Call the
654	tag_getclass runtime hook instead of using TAG_GETCLASS.
655	(objc_finish_message_expr): Call the build_objc_method_call
656	runtime hook.
657	(objc_build_protocol_expr): Call the get_protocol_reference
658	runtime hook.
659	(objc_build_selector_expr): Call the build_selector_reference
660	runtime hook.
661	(build_ivar_reference): Call the build_ivar_reference runtime
662	hook.
663	(hash_init): Set up ivar_offset_hash_list.
664	(start_class): Recognize the objc_exception attribute and store
665	it.
666	(continue_class): Use the class_decl and metaclass_decl runtime
667	hooks.
668	(build_objc_property_accessor_helpers): Renamed to
669	build_common_objc_property_accessor_helpers.  Do not build
670	objc_copyStruct_decl, objc_getPropertyStruct_decl and
671	objc_setPropertyStruct_decl.
672	(objc_synthesize_getter): Check what struct setter/getter helper
673	is available instead of checking the type of runtime.
674	(get_super_receiver): Use the super_superclassfield_ident runtime
675	hook.  Added assert.  Use the get_class_super_ref and
676	get_category_super_ref runtime hooks.
677	(objc_v2_encode_prop_attr): New.
678
6792011-01-17  Nicola Pero  <nicola.pero@meta-innovation.com>
680
681	PR objc/47314
682	* objc-act.c (finish_objc): When calling check_duplicates to check
683	duplicated instance methods, set 'is_class' to 0, not 1.
684
6852011-01-14  Ben Elliston  <bje@au.ibm.com>
686
687	PR 19162
688	* objc-act.c (generate_struct_by_value_array): Do not output a
689	definition for struct_forward_array.
690
6912011-01-08  Iain Sandoe  <iains@gcc.gnu.org>
692
693	* objc-act.c (objc_finish_foreach_loop): Mark collection expression
694	as read.
695
6962011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
697
698	* objc-act.c (check_that_protocol_is_defined): Fix a typo.
699
7002011-01-02  Nicola Pero  <nicola.pero@meta-innovation.com>
701
702	* objc-act.c (check_that_protocol_is_defined): New.
703	(lookup_protocol): Call check_that_protocol_is_defined.
704
7052010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
706
707	* objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
708	lists.  Check them two-ways to fix comparisons when one protocol
709	implements the other one, or when one list contains duplicated
710	protocols.
711
7122010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
713
714	* objc-act.c (objc_add_method): When emitting an error because a
715	method with the same name but conflicting types is found in the
716	same class or category interface, print a note with the location
717	of the original method.  Also, improved the error message to
718	clearly state that the conflict is due to conflicting types, and
719	produce it for protocols as well.  Emit an error if two identical
720	methods are declared in a protocol, but one is @required and the
721	other one is @optional.
722
7232010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
724
725	* objc-act.c (start_class): Warn when a class attribute is
726	ignored.
727	(objc_declare_protocols): Warn when a protocol attribute in a
728	protocol forward-declaration is ignored.
729	(start_protocol): Warn when a protocol attribute is ignored.
730
7312010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
732
733	* objc-act.c (objc_set_method_opt): Tidy up error messages.  In
734	particular, explicitly mention whether the error is due to the
735	@optional or @required keyword instead of mentioning
736	"@optional/@required".
737
7382010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
739
740	PR objc/47118
741	* objc-act.c (objc_build_synchronized): Check the argument of
742	@synchronized and emit an appropriate error if it is not a valid
743	Objective-C object.  Deal gracefully with that case.  Updated
744	comments and variable names.
745
7462010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
747
748	PR objc/47075
749	* objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
750	* objc-tree.def (PROPERTY_REF): Increased the number of operands
751	from 3 to 4.
752	* objc-act.c (objc_finish_message_expr): Added optional argument
753	allowing to return the deprecated method prototype for deprecated
754	methods, instead of immediately emitting the deprecation warning.
755	(objc_maybe_build_component_ref): Do not warn for a deprecated
756	property.  When building the getter call, get the deprecated
757	method prototype from objc_finish_message_expr() and put it into
758	the PROPERTY_REF.
759	(objc_build_class_component_ref): Same change.
760	(finish_class): Mark the getter and setter as deprecated if they
761	are generated from a deprecated property.
762	(objc_gimplify_property_ref): If the getter is deprecated, emit a
763	deprecation warning.
764	(objc_build_setter_call, objc_build_message_expr,
765	objc_finish_foreach_loop): Updated call to
766	objc_finish_message_expr.
767
7682010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
769
770	PR objc/47076
771	* objc-act.c (lookup_protocol): Added 'definition_required'
772	argument.  If 'definition_required', and the protocol is not
773	defined, emit a warning.
774	(objc_declare_protocols): Updated call to lookup_protocol.
775	(start_protocol): Same change.
776	(check_protocol_recursively): Same change.
777	(objc_build_protocol_expr): Same change.
778	(lookup_and_install_protocols): Added definition_required argument.
779	Pass it to lookup_protocol.
780	(objc_get_protocol_qualified_type): Updated call to
781	lookup_and_install_protocols.
782	(start_class): Updated calls to lookup_and_install_protocols; pass
783	true to 'definition_required' to get the warnings.
784	(start_protocol): Updated calls to lookup_and_install_protocols.
785
7862010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
787
788	* objc-act.c (objc_start_category_interface): Produce an error if
789	a class extension is found after the class @implementation.
790
7912010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
792
793	PR objc/47073
794	* objc-act.c (encode_method_prototype): Fixed both location and
795	format string of error "type %qT does not have a known size".
796
7972010-12-26  Nicola Pero  <nicola.pero@meta-innovation.com>
798
799	* config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c.
800
8012010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
802
803	* objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.
804
8052010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
806
807	* objc-act.c (objc_init): Call using_eh_for_cleanups.
808	(objc_init_exceptions): Renamed to objc_maybe_warn_exceptions.  Do
809	not call using_eh_for_cleanups.
810	(objc_begin_try_stmt): Do not call objc_init_exceptions.
811	(objc_build_throw_stmt): Updated call to
812	objc_maybe_warn_exceptions.
813
8142010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
815
816	* objc/objc-act.c (objc_eh_personality): Select personality name on
817	runtime.
818	(objc_init_exceptions): New.
819	(objc_begin_try_stmt): Use objc_init_exceptions.
820	(objc_build_throw_stmt): Likewise.
821
8222010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
823
824	* objc-act.c (objc_in_class_extension): New.
825	(objc_start_category_interface): If -fobjc-std=objc1
826	was specified, produce an error if a class extension is used.
827	(objc_finish_interface): Reset objc_in_class_extension to false.
828	(objc_add_property_declaration): Allow a class extension to extend
829	readonly properties in the main @interface to be readwrite.
830	(start_class): Added code to deal with class extensions.  In that
831	case, return the existing interface after adding any additional
832	protocols to it and setting objc_in_class_extension to true.
833	(continue_class): If in a class extension, do not generate the
834	instance variable template.
835
8362010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
837
838	* objc-act.c (objc_build_throw_stmt): Check that the argument of
839	@throw is an object and emit an error if not.
840
8412010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
842
843	* objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
844	error() when printing an error about the iterating variable or
845	collection not being an object.
846
8472010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
848
849	* objc-act.c (objc_finish_foreach_loop): Mark the
850	object_expression as used.
851
8522010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
853
854	* objc-act.c: Include c-family/c-objc.h.
855	* objc-lang.c: Same change.
856	* Make-lang.in (objc/objc-act.o): Depend on
857	c-family/c-objc.h.
858	(objc/objc-lang.o): Same change.
859	* config-lang.in (gtfiles): Added c-family/c-objc.h.
860
8612010-12-02  Joseph Myers  <joseph@codesourcery.com>
862
863	* lang-specs.h: Don't handle -ftraditional.
864
8652010-12-02  Nicola Pero  <nicola.pero@meta-innovation.com>
866
867	* objc-act.c (objc_build_throw_stmt): Return error_mark_node and
868	not NULL_TREE when a @throw is used outside of a @catch block.
869
8702010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
871
872	* objc-act.c (objc_build_volatilized_type): Removed.
873	(objc_non_volatilized_type): Removed.
874	(objc_type_quals_match): Removed.
875	(local_variables_to_volatilize): New.
876	(objc_volatilize_decl): Add the decl to volatilize to
877	local_variables_to_volatilize, but don't volatilize it yet.
878	(objc_finish_function): New.
879	* objc-act.h (local_variables_to_volatilize): New.
880
8812010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
882	    Mike Stump  <mikestump@comcast.net>
883
884	Allow 'make check-objc -j2'
885	* Make-lang.in (lang_checks_parallelized): New.
886	(check_objc_parallelize): New.
887
8882010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
889
890	* objc-act.c (start_class): When a class is reimplemented,
891	generate an error and avoid adding the class to the list of
892	implemented classes again, but do not return error_mark_node.
893
8942010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
895
896	* objc-act.c (objc_maybe_build_component_ref): Removed TODO.
897
8982010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
899
900	* objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
901	is passed as argument.
902	(objc_begin_catch_clause): Added code to deal with an
903	error_mark_node or NULL_TREE argument.  Improved checks for
904	invalid arguments.  Added code to traverse typedefs.
905
9062010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
907
908	* objc-act.c (objc_demangle): Return immediately if the string is
909	too short.  Detect names that do not need demangling, and return
910	them unchanged.
911
9122010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
913
914	Implemented optional properties.
915	* objc-act.h (PROPERTY_OPTIONAL): New.
916	* objc-act.c (objc_add_property_declaration): Set
917	PROPERTY_OPTIONAL if appropriate.
918	(finish_class): When generating definitions of setter and getter
919	methods associated with a property for a protocol, mark them as
920	optional if the property is optional.
921	(maybe_make_artificial_property_decl): Added 'getter_name'
922	argument.  Set PROPERTY_OPTIONAL.
923	(objc_maybe_build_component_ref): Updated calls to
924	maybe_make_artificial_property_decl.  Added code for optional,
925	readonly properties.
926	(objc_build_class_component_ref): Updated call to
927	maybe_make_artificial_property_decl.
928
9292010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
930
931	* objc-act.c (objc_build_struct): Fixed loops that save and
932	restore TYPE_OBJC_INFO to iterate over all variants of the type; a
933	special case for the current type is then no longer required.
934	Duplicate TYPE_LANG_SPECIFIC for each type before restoring
935	TYPE_OBJC_INFO.
936	(objc_get_protocol_qualified_type): Updated comments.
937
9382010-11-25  Nicola Pero  <nicola.pero@meta-innovation.com>
939
940	* objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
941	after finish_struct, not before, otherwise it may be wiped out by
942	it.  This fixes spurious warnings when a class has more than 15
943	instance variables.
944
9452010-11-23  Nicola Pero  <nicola.pero@meta-innovation.com>
946
947	PR objc/24358
948	* lang-specs.h: Added objective-c-cpp-output.  Mapped .mi to
949	objective-c-cpp-output instead of objc-cpp-output.  Print a
950	deprecation note every time objc-cpp-output is requested.
951
9522010-11-22  Joseph Myers  <joseph@codesourcery.com>
953
954	* objc-act.c (write_symbols): Don't declare here.
955
9562010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
957
958	PR objc/41108
959	* objc-act.c (objc_generate_write_barrier): Added assert to make sure
960	this function is only called with the next runtime.
961
9622010-11-20  Jakub Jelinek  <jakub@redhat.com>
963
964	PR c/46547
965	* objc-act.c (in_late_binary_op): Remove.
966
9672010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
968
969	* objc-act.c (objc_start_class_interface): Do not warn that class
970	attributes are unimplemented.  Pass the attributes to start_class.
971	(objc_start_category_interface): Updated call to start_class.
972	(objc_start_class_implementation): Same change.
973	(objc_start_category_implementation): Same change.
974	(objc_build_class_component_ref): Warn if the class is deprecated.
975	(build_private_template): Mark the template as deprecated if the
976	class is deprecated.
977	(start_class): Added 'attributes' argument.  Emit a warning if
978	using a deprecated class as superclass of a class, or original
979	class of a category.  Recognize the 'deprecated' attribute when
980	starting and interface, and mark the interface with
981	TREE_DEPRECATED if present.  Store attributes in the interface.
982
9832010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
984
985	* objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
986	argument.  If it is 'true' and the protocol is deprecated, emit a
987	deprecation warning.
988	(objc_start_protocol): Do not warn that protocol attributes are
989	unimplemented.  Pass the attributes to start_protocol.
990	(start_protocol): Added attributes argument.  Recognize the
991	'deprecated' attribute and mark the protocols with TREE_DEPRECATED
992	if present.  Store attributes in the protocol.
993	(objc_declare_protocols): Added 'attributes' argument.  Recognize
994	the 'deprecated' attribute and mark the protocols with
995	TREE_DEPRECATED if present.  Store attributes in the protocol.
996	Updated call to lookup_protocol.
997	(objc_build_protocol_expr): Updated call to lookup_protocol.
998	(check_protocol_recursively): Same change.
999	(lookup_and_install_protocols): Same change.
1000	* objc-act.h: Updated comments.
1001
10022010-11-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1003
1004	* objc-act.c (lookup_method_in_protocol_list): Search methods in
1005	PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
1006	they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
1007
10082010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1009
1010	* objc-act.c (objc_build_setter_call): New.
1011	(objc_maybe_build_modify_expr): Rewritten to build a compound
1012	statement.
1013	(objc_build_incr_expr_for_property_ref): Updated calls to
1014	objc_maybe_build_modify_expr to call objc_build_setter_call
1015	instead.  Use build_modify_expr () instead of build2 (MODIFY_EXPR,
1016	...).  Use convert () instead of build1 (NOP_EXPR, ...).  Use
1017	TREE_NO_WARNING on the final compound statement to silence C++
1018	warnings.
1019
10202010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1021
1022	* objc-act.c (objc_build_incr_expr_for_property_ref): New.
1023	(objc_create_temporary_var): Moved it towards the beginning of the
1024	file so that objc_build_incr_expr_for_property_ref can use it.
1025
10262010-11-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1027
1028	* objc-act.c (objc_add_property_declaration): Check that the decl
1029	we received from the parser is a FIELD_DECL; reject array and
1030	bitfield properties.  Convert the warning when a property is
1031	readonly and a setter is specified into an error.  Convert errors
1032	when a property declaration does not match a property declaration
1033	in a superclass into warnings.
1034	(objc_add_synthesize_declaration_for_property): Use
1035	DECL_BIT_FIELD_TYPE to determine the type of an instance variable
1036	if it is a bitfield.  Throw an error if we are asked to synthesize
1037	setters/getters for a bitfield instance variable but the property
1038	is not appropriate - it must be assign and nonatomic.  If the
1039	property is readonly, allow the instance variable type to be a
1040	specialization of the property type.
1041	(objc_type_valid_for_messaging): Fixed returning 'false' for a
1042	Class qualified with a protocol when the 'accept_classes' argument
1043	is 'false'.
1044
10452010-11-13  Nicola Pero  <nicola.pero@meta-innovation.com>
1046
1047	* objc-act.c (objc_get_protocol_qualified_type): detect cases
1048	where we are asked to attach a protocol to something which is not
1049	an Objective-C object type, and produce an error.
1050
10512010-11-11  Nicola Pero  <nicola.pero@meta-innovation.com>
1052
1053	* objc-act.c (objc_add_property_declaration): Check that the type
1054	of a property and of an inherited property match.
1055	(objc_maybe_build_component_ref): Tidied up indentation and
1056	comments.
1057	(objc_common_type): Added new type of check (-5).
1058	(objc_add_synthesize_declaration_for_property): Check that the
1059	property to synthesize and the instance variable to use have the
1060	same type.
1061
10622010-11-10  Joseph Myers  <joseph@codesourcery.com>
1063
1064	* objc-act.c (objc_init): Use %' in diagnostic.
1065	(objc_set_method_opt): Remove trailing '.' from diagnostic.
1066
10672010-11-10  Joseph Myers  <joseph@codesourcery.com>
1068
1069	* objc-act.c (dump_base_name): Don't declare here.
1070
10712010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1072
1073	* objc-act.c (objc_add_dynamic_declaration_for_property): Do not
1074	search for the @property declation only in the current context,
1075	but also in inherited properties.  Do not mark the original
1076	PROPERTY_DECL in the @interface or @protocol with
1077	PROPERTY_DYNAMIC.
1078	(check_methods): To check if a method is associated with a
1079	@dynamic property, search for the property in IMPL_PROPERTY_DECL.
1080	(check_accessible_methods): Same change.
1081	* objc-act.h: Updated comment.
1082
10832010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1084
1085	* objc-act.c (objc_add_synthesize_declaration_for_property):
1086	Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
1087	checking for an existing @synthesize or @dynamic declaration.
1088	Search for an inherited @property declaration if none is found in
1089	the local interface.  If the required instance variable does not
1090	exist, return instead of trying to continue to prevent a compiler
1091	crash later.  Check that the instance variable is not already
1092	being used by another @synthesize.
1093	(objc_add_dynamic_declaration_for_property): Iterate over
1094	IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
1095	existing @synthesize or @dynamic declaration.
1096	(objc_synthesize_getter): Search for the getter declaration in
1097	protocols and superclasses as well.
1098	(objc_synthesize_setter): Search for the setter declaration in
1099	protocols and superclasses as well.
1100
11012010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1102
1103	* objc-act.c (lookup_property): When checking categories, also
1104	check the protocols attached to each.
1105	(objc_add_property_declaration): Determine the
1106	PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here.  Tidied up
1107	error message.  Search for an existing property declaration with
1108	the same name which would be inherited from the class hiearchy,
1109	and produce an error if it has incompatible attributes.
1110	(check_methods): Changed second parameter.  If the method is a
1111	getter or setter for a property, do not warn if it is inherited as
1112	opposed to implemented directly in the class.
1113	(check_protocol): Updated calls to check_methods.
1114	(finish_class): Do not determine the PROPERTY_SETTER_NAME and
1115	PROPERTY_GETTER_NAME here; this is now done earlier, in
1116	objc_add_property_declaration.
1117	* objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
1118
11192010-11-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1120
1121	Fixed using the Objective-C 2.0 dot-syntax with self and super.
1122	* objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
1123	(maybe_make_artificial_property_decl): Added 'implementation'
1124	argument.  Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
1125	looking up getters or setters for a class.  If an implementation
1126	is specified, search it as well for a getter or setter.
1127	(objc_maybe_build_component_ref): Updated calls to
1128	maybe_make_artificial_property_decl; added code to deal with
1129	'self' and 'super' and with methods declared locally in the
1130	implementation.  Store the getter call expression in the
1131	PROPERTY_REF instead of throwing it away.
1132	(objc_build_class_component_ref): Updated calls to
1133	maybe_make_artificial_property_decl, and store the getter call
1134	expression in PROPERTY_REF instead of throwing it away.
1135	(lookup_method_static): Implemented
1136	OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
1137	(objc_gimplify_property_ref): Do not build the getter method call
1138	here; instead use the one stored in the PROPERTY_REF.  If it's not
1139	there, produce helpful error messages.
1140	* objc-tree.def (PROPERTY_REF): Increased the number of operands
1141	from 2 to 3.  Updated comments.
1142	* objc-act.h (PROPERTY_REF_GETTER_CALL): New.
1143
11442010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
1145
1146	PR target/44981
1147	* objc-act.c (objc_build_string_object): Amend for renamed hook.
1148	(objc_string_ref_type_p): New.
1149	(objc_check_format_arg): New.
1150
11512010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
1152
1153	Fixed using the Objective-C 2.0 dot-syntax with class names.
1154	* objc-act.c (objc_build_class_component_ref): New.
1155
11562010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1157
1158	* objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
1159	category.
1160	(objc_type_valid_for_messaging): Added 'accept_classes' argument;
1161	if set to 'true', return 'true' for Class objects.  Do not remove
1162	more than on pointer indirection.
1163	(objc_add_property_declaration): Only warn about 'assign'
1164	semantics for Objective-C objects if warn_property_assign_default;
1165	and do not warn if the property is readonly or if the type is a Class.
1166	(objc_finish_foreach_loop): Updated calls to
1167	objc_type_valid_for_messaging.
1168
11692010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1170
1171	Implemented -fobjc-std=objc1 flag.
1172	* objc-act.c (objc_start_class_interface): If attributes are
1173	specified when flag_objc1_only is set, print an error.
1174	(objc_start_category_interface): Same change.
1175	(objc_start_protocol): Same change.
1176	(objc_add_method_declaration): Same change.
1177	(objc_start_method_definition): Same change.
1178	(objc_build_keyword_decl): Same change.
1179	(objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when
1180	flag_objc1_set is set, print an error.
1181	(objc_set_method_opt): If flag_objc1_only is set, print an error.
1182	(objc_add_property_declaration): Same change.
1183	(objc_add_synthesize_declaration): Same change.
1184	(objc_add_dynamic_declaration): Same change.
1185	(objc_finish_foreach_loop): Same change.
1186	(objc_maybe_build_component_ref): If flag_objc1_only is set,
1187	return immediately.
1188
11892010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1190
1191	* objc-act.c (maybe_make_artificial_property_decl): New.
1192	(objc_maybe_build_component_ref): Call
1193	maybe_make_artificial_property_decl if a property can not be
1194	found.  Do not call objc_finish_message_expr if
1195	PROPERTY_HAS_NO_GETTER.
1196	* objc-act.h Updated comments.
1197	(PROPERTY_HAS_NO_GETTER): New.
1198	(PROPERTY_HAS_NO_SETTER): New.
1199	* objc-tree.def: Updated comment.
1200
12012010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1202
1203	Implemented format and noreturn attributes for Objective-C methods.
1204	* objc-act.c (objc_start_method_definition): If method attributes
1205	are specified emit a warning and ignore them.
1206	(build_objc_method_call): Moved deprecation warnings from here ...
1207	(objc_finish_message_expr): to here.  Do not emit deprecation
1208	warnings if the receiver is of type 'id'.
1209	(really_start_method): Install 'deprecation' and 'noreturn'
1210	attributes.
1211	(objc_decl_method_attributes): Carefully filter out the list of
1212	attributes, allowing only "noreturn", "format", "sentinel" and
1213	"deprecated".  In the case of "format", adjust the arguments.
1214	Always process the attributes in the same way no matter if
1215	"sentinel" is in the list or not.
1216
12172010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1218
1219	* objc-act.c (objc_maybe_build_component_ref): Warn about using
1220	deprecated properties.
1221	(objc_maybe_printable_name): Support PROPERTY_DECL.
1222
12232010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1224
1225	Implemented Objective-C 2.0 property accessors.
1226	* objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
1227	OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
1228	OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
1229	(objc_getProperty_decl): New.
1230	(objc_setProperty_decl): New.
1231	(objc_copyStruct_decl): New.
1232	(objc_getPropertyStruct_decl): New.
1233	(objc_setPropertyStruct_decl): New.
1234	* objc-act.c (build_objc_property_accessor_helpers): New.
1235	(synth_module_prologue): Call
1236	build_objc_property_accessor_helpers.
1237	(lookup_ivar): New.
1238	(objc_synthesize_getter): Implemented synthesizing getters that
1239	work with properties that are not nonatomic, assign properties.
1240	(objc_synthesize_setter): Implemented synthesizing setters that
1241	work with properties that are not nonatomic, assign properties.
1242
12432010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1244
1245	Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
1246	* objc-tree.def (PROPERTY_REF): New.
1247	* objc-act.h: Added comments for all the PROPERTY_ macros.
1248	(PROPERTY_NAME): Use DECL_NAME.
1249	(PROPERTY_COPIES): Removed.
1250	(PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
1251	(PROPERTY_NONATOMIC): New.
1252	(objc_property_assign_semantics): Make it a typedef.
1253	(PROPERTY_ASSIGN_SEMANTICS): New.
1254	(PROPERTY_DYNAMIC): New.
1255	(PROPERTY_REF_OBJECT): New.
1256	(PROPERTY_REF_PROPERTY_DECL): New.
1257	* objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
1258	(in_objc_property_setter_name_context): Removed.
1259	(objc_add_property_declaration): Removed copies and ivar arguments
1260	and code supporting them.  Fixed recovering when readonly and
1261	setter attributes are specified.  Removed support for @property in
1262	@implementation context.  Updated error message.  Double-check
1263	that a property does not have a DECL_INITIAL.  Validate the
1264	property assign semantics and emit appropriate errors and
1265	warnings.  Check for duplicate property declarations.  Set
1266	DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
1267	PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
1268	PROPERTY_DECL.  Do not set PROPERTY_COPIES.  Set
1269	PROPERTY_IVAR_NAME to NULL_TREE.
1270	(objc_build_getter_call): Renamed to
1271	objc_maybe_build_component_ref.  If the property is not found in
1272	the interface, search in the protocol list.  Do not generate the
1273	getter call; instead, build and return a PROPERTY_REF.
1274	(objc_is_property_ref): New.
1275	(objc_setter_func_call): Removed.
1276	(get_selector_from_reference): Removed.
1277	(is_property): Removed.
1278	(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
1279	Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
1280	the PROPERTY_REF.  Generate an error if the property is read-only.
1281	(build_property_reference): Removed.
1282	(objc_finish_message_expr): Removed check to produce "readonly
1283	property can not be set" error when
1284	in_objc_property_setter_name_context.  We now generate the error
1285	earlier, in objc_maybe_build_modify_expr, which will only generate
1286	the setter call if the property is readwrite.
1287	(check_methods): Recognize dynamic properties.
1288	(check_methods_accessible): Same change.
1289	(objc_build_property_ivar_name): Removed.
1290	(objc_build_property_setter_name): Dropped bool argument.  Always
1291	add the ':' at the end.
1292	(objc_gen_one_property_datum): Removed.
1293	(objc_process_getter_setter): Removed.
1294	(objc_synthesize_getter): Mark 'klass' argument as unused.  Use
1295	PROPERTY_GETTER_NAME instead of PROPERTY_NAME.  Set the
1296	DECL_SOURCE_LOCATION of the new method to be the same as the one
1297	for the @synthesize.  Always use PROPERTY_IVAR_NAME as it is
1298	instead of trying to guess what it should be.  Removed use of
1299	CLASS_IVARS.  Use the location of @synthesize for c_finish_return
1300	and c_end_compound_statement.
1301	(objc_synthesize_setter): Mark 'klass' argument as unused.  Use
1302	PROPERTY_SETTER_NAME instead of trying to guess what it should be.
1303	Set the DECL_SOURCE_LOCATION of the new method to be the same as
1304	the one for the @synthesize.  Always use PROPERTY_IVAR_NAME as it
1305	is instead of trying to guess what it should be.  Removed use of
1306	CLASS_IVARS.  Use the location of @synthesize for c_finish_return
1307	and c_end_compound_statement.  Emit an error and keep going,
1308	instead of aborting, if the setter prototype does not have the
1309	expected argument.
1310	(objc_add_synthesize_declaration_for_property): New.
1311	(objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
1312	all arguments.  Improved error message.  Filled in the rest of the
1313	function, which used to be a placeholder, with an actual
1314	implementation.
1315	(objc_add_dynamic_declaration_for_property): New.
1316	(objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
1317	arguments.  Improved error message.  Filled in the rest of the
1318	function, which used to be a placeholder, with an actual
1319	implementation.
1320	(objc_gen_property_data): Rewritten.
1321	(finish_class): Added explicit switch cases for
1322	CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
1323	PROTOCOL_INTERFACE_TYPE.  Added a default switch case which is
1324	gcc_unreachable.  Rewritten the processing of properties, in
1325	particular to not synthesize prototypes for getters and setters if
1326	they already exist and to install the getter and setter names into
1327	PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME.  Do not generate
1328	warnings about setter, getter and ivar property attributes.
1329	(objc_lookup_ivar): Removed support for properties.
1330	(objc_gimplify_property_ref): New.
1331	(objc_gimplify_expr): Use a switch.  In case of a PROPERTY_REF, call
1332	objc_gimplify_property_ref.
1333
13342010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1335
1336	* objc-act.c (objc_add_property_declaration): Added arguments to
1337	pass the various property attributes that were parsed with the
1338	property declaration.  Process arguments to determine the final
1339	property attributes and produce error messages as appropriate.
1340	Added temporary code to keep the compiler silent about variables
1341	set but not used - for new attributes that are only checked but
1342	have no effect yet.
1343	(property_readonly): Removed.
1344	(property_setter): Removed.
1345	(property_getter): Removed.
1346	(property_ivar): Removed.
1347	(property_copies): Removed.
1348	(objc_set_property_attr): Removed.
1349	* objc-act.h (enum property_assign_semantics): New.
1350
13512010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1352
1353	* objc-act.c (objc_add_property_variable): Renamed to
1354	objc_add_property_declaration.  Added location argument.  Updated
1355	warnings and errors to use it.  Use error, not fatal_error, if a
1356	property declaration is found outside an interface or
1357	implementation context.
1358
13592010-10-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1360
1361	* objc-act.c (objc_build_keyword_decl): Updated comments.  Do not
1362	emit a warning that method parameter attributes are unimplemented.
1363	Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
1364	(start_method_def): Copy attributes from each KEYWORD_DECL into
1365	the corresponding PARM_DECL.
1366	(objc_warn_deprecated_use): Removed.
1367	(build_objc_method_call): Call warn_deprecated_use, not
1368	objc_warn_deprecated_use.
1369	(objc_maybe_printable_name): Do not try to get the identifier name
1370	of DECLs that we don't recognize.  Immediately return NULL for them.
1371	(objc_printable_name): Removed C++-specific case, which is no
1372	longer used.  Updated comments.
1373
13742010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>
1375
1376	* objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
1377	(objc_demangle): Return NULL if demangling can not be done because
1378	the string to demangle is not an Objective-C mangled method name.
1379	Be smarter in demangling method names so that at least for methods
1380	with no arguments we are able to almost always demangle '_' correctly.
1381	Updated comments.
1382	(objc_maybe_printable_name): New.
1383	(objc_printable_name): Call objc_maybe_printable_name.  If it
1384	returns NULL, call cxx_printable_name in Objective-C++.
1385
13862010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
1387
1388	Based on the CFString implementation in FSF apple/trunk branch.
1389
1390	* objc/objc-act.c (objc_build_string_object): Handle CFStrings.
1391
13922010-10-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1393
1394	* objc-act.c (get_objc_string_decl): Use a switch instead of a
1395	chain of ifs.  Use gcc_unreachable instead of abort.
1396	(add_objc_string): Same change.
1397	(generate_protocol_list): Same change - twice.
1398	(synth_id_with_class_suffix): Same change.
1399	(build_keyword_selector): Same change - twice.
1400	(objc_build_message_expr): Same change.
1401	(objc_build_selector_expr): Same change.
1402	(check_methods): Same change - and added missing gcc_unreachable
1403	for default case.
1404	(check_methods_accessible): Same change - twice, and added missing
1405	gcc_unreachable for default case in one of them.
1406	(start_class): Same change - and added missing gcc_unreachable for
1407	default case.
1408	(continue_class): Same change.
1409	(objc_gen_property_data): Same change.
1410	(finish_class): Same change.
1411	(encode_type_qualifiers): Added missing gcc_unreachable.
1412	(encode_type): Small code tidy up to reduce duplicated code.  Use
1413	gcc_unreachable instead of abort - twice.
1414	(encode_gnu_bitfield): Use a switch instead of a chain of ifs -
1415	twice.  Added missing gcc_unreachable for default case - twice.
1416	(dump_interface): Use a switch instead of a chain of ifs.
1417	(handle_impent): Same change.
1418
14192010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1420
1421	* objc-act.h (objc_inherit_code): Removed.
1422	* objc-act.c (objc_inherit_code): Removed.
1423	(objc_set_method_type): Removed.
1424	(objc_build_method_signature): Added is_class_method argument.
1425	Use it instead of the global objc_inherit_code variable.
1426	(objc_add_method_declaration): Same change.
1427	(objc_start_method_definition): Same change.
1428	(objc_generate_cxx_ctor_or_dtor): Updated call to
1429	objc_start_method_definition.  Do not call objc_set_method_type.
1430	(adjust_type_for_id_default): Mark as inline.
1431	(objc_synthesize_getter): Updated call to
1432	objc_start_method_definition.  Do not set objc_inherit_code.
1433	(objc_synthesize_setter): Updated call to
1434	objc_start_method_definition.  Do not set objc_inherit_code.
1435
14362010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1437
1438	Merge from 'apple/trunk' branch on FSF servers.  Obvious updates
1439	to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
1440	get it to compile in the current trunk.
1441
1442	2006-01-27 Fariborz Jahanian <fjahanian@apple.com>
1443
1444	Radar 4345837
1445	* objc/objc-act.c (hash_class_name_enter): New.
1446	(hash_class_name_lookup): New.
1447	(objc_declare_alias): Enter alias name into hash table.
1448	(objc_declare_class): Enter class name into hash table.
1449	(objc_is_class_name): Do a hash look up of class name.
1450	(hash_init): Initialize the two new hash tables.
1451	* objc-act.h: Added cls_name_hash_list and als_name_hash_list
1452	declarations, removed class_chain and alias_chain.
1453
14542010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1455
1456	* objc-lang.c (finish_file): Removed.
1457	* objc-act.c (objc_finish_file): Renamed to
1458	objc_write_global_declarations.  Do not try to instantiate C++
1459	templates when compiling Objective-C++ as this is now
1460	automatically done before this function is called.  Do not check
1461	for syntax-only run or PCH generation as this is done by the
1462	callers.
1463	* objc-act.h (objc_finish_file): Removed.
1464
14652010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1466
1467	Implemented parsing @synthesize and @dynamic for
1468	Objective-C/Objective-C++.
1469	* objc-act.c (objc_add_synthesize_declaration): New.
1470	(objc_add_dynamic_declaration): New.
1471
14722010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1473
1474	* objc-act.c (lookup_and_install_protocols): Return NULL if passed
1475	error_mark_node.
1476
14772010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1478
1479	Merge from 'apple/trunk' branch on FSF servers.
1480
1481	2006-03-10  Fariborz Jahanian <fjahanian@apple.com>
1482
1483        Radar 4407151
1484	* objc/objc-act.c (objc_is_class_name): template parameter is not
1485        an objective class name.
1486        (objc_generate_cxx_cdtors): Check for the null
1487        objc_implementation_context.
1488
14892010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1490
1491	Merge from 'apple/trunk' branch on FSF servers.
1492
1493	2005-11-08  Fariborz Jahanian <fjahanian@apple.com>
1494
1495	Radar 4330422
1496	* objc/objc-act.c (objc_non_volatilized_type): New
1497
1498	2005-10-07  Fariborz Jahanian <fjahanian@apple.com>
1499
1500        Radar 4204796
1501	* objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
1502	types with proper attribute set and correctly.
1503	(objc_volatilize_decl): Remove unneeded code.
1504	(objc_type_quals_match): Use the new attribute to check on
1505	'volatilzed' type.
1506	(hash_init): removed unneeded code.
1507
15082010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1509
1510	Merge from 'apple/trunk' branch on FSF servers.
1511
1512	2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1513
1514	Radar 4133425
1515	* objc-act.c (objc_diagnose_private_ivar): New.
1516
15172010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
1518
1519	* objc-act.c: Rename 'objc_public_flag' to  objc_ivar_visibility and
1520	make its type 'objc_ivar_visibility_kind'.
1521	(objc_start_class_interface): Update to use visibility enum.
1522	(objc_start_class_implementation): Likewise.
1523	(objc_set_visibility): Update to use visibility enum, warn that
1524	@package is handle as per @public.
1525	(add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
1526	* objc-act.h: Rename 'objc_public_flag' to  objc_ivar_visibility and
1527	make its type 'objc_ivar_visibility_kind'.
1528
15292010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1530
1531	merge from FSF apple 'trunk' branch.
1532	2006 Fariborz Jahanian <fjahanian@apple.com>
1533
1534	Radars 4436866, 4505126, 4506903, 4517826
1535	* objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New.
1536	property_readonly, property_getter, property_setter, property_ivar,
1537	property_copies, in_objc_property_setter_name_context: New vars.
1538	(objc_set_property_attr): New.
1539	(objc_add_property_variable): New.
1540	(lookup_property_in_list): New.
1541	(lookup_property): New.
1542	(objc_build_getter_call): New.
1543	(objc_setter_func_call): New.
1544	(get_selector_from_reference): New.
1545	(objc_build_setter_call): New.
1546	(is_property): New.
1547	(build_property_reference): New.
1548	(objc_finish_message_expr): Detect readonly property and warn.
1549	(objc_build_property_ivar_name): New.
1550	(objc_build_property_setter_name): New.
1551	(objc_gen_one_property_datum): New.
1552	(objc_process_getter_setter): New.
1553	(objc_synthesize_getter): New.
1554	(objc_synthesize_setter): New.
1555	(objc_gen_property_data): New.
1556	(finish_class): Generate property data.
1557	(comp_proto_with_proto): Separated from ...
1558	(match_proto_with_proto): ... New.
1559	(objc_lookup_ivar): Handle properties.
1560	* objc-tree.def (PROPERTY_DECL): New tree code.
1561	* objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size.
1562	(METHOD_PROPERTY_CONTEXT): New.
1563	(PROPERTY_NAME): New.
1564	(PROPERTY_GETTER_NAME): New.
1565	(PROPERTY_SETTER_NAME): New.
1566	(PROPERTY_IVAR_NAME): New.
1567	(PROPERTY_READONLY): New.
1568	(PROPERTY_COPIES): New.
1569	(TOTAL_CLASS_RAW_IVARS): New.
1570	(CLASS_PROPERTY_DECL): New.
1571	(IMPL_PROPERTY_DECL): New.
1572	* objc-lang.c (objc_init_ts): Update fields for property_decl.
1573
15742010-10-13  Richard Henderson  <rth@redhat.com>
1575
1576	* objc-act.c (objc_eh_personality): Update call to
1577	build_personality_function.
1578
15792010-10-13  Iain Sandoe  <iains@gcc.gnu.org>
1580
1581	merge from FSF apple 'trunk' branch.
1582
1583	2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
1584	Radar 3803157 (method attributes)
1585	* objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
1586	* objc/objc-act.c (objc_decl_method_attributes): New.
1587	(objc_add_method_declaration): Process method's attribute.
1588	(objc_start_method_definition): Ditto.
1589	(build_objc_method_call): Inject method attribute into
1590	built function type.
1591	(objc_method_decl): New.
1592	(objc_warn_deprecated)use): New.
1593
15942010-10-07  Andi Kleen  <ak@linux.intel.com>
1595
1596	* Make-lang.in (cc1obj-dummy): Remove.
1597	(cc1obj-checksum): Change to run checksum over object files
1598        and options only.
1599
16002010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1601
1602	PR objc/45925
1603	* objc-act.c (objc_finish_foreach_loop): Convert return value of
1604	countByEnumeratingWithState:objects:count: to long unsigned int.
1605
16062010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
1607
1608	* objc-act.c (build_objc_method_call): Replace calls to
1609	build_function_call () with the VEC equivalent.  Construct parameter
1610	lists as VECs.
1611
16122010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
1613
1614	* objc-act.c (objc_build_message_expr):  Call mark_exp_read () to
1615	signal that the receiver has been used.
1616
16172010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1618
1619	* README: Obsolete file removed.
1620
16212010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1622
1623	Implemented fast enumeration for Objective-C.
1624	* objc-act.c (build_fast_enumeration_state_template): New.
1625	(TAG_ENUMERATION_MUTATION): New.
1626	(TAG_FAST_ENUMERATION_STATE): New.
1627	(synth_module_prologue): Call build_fast_enumeration_state_template() and set up
1628	objc_enumeration_mutation_decl.
1629	(objc_create_temporary_var): Allow providing a name to temporary
1630	variables.
1631	(objc_build_exc_ptr): Updated calls to
1632	objc_create_temporary_var().
1633	(next_sjlj_build_try_catch_finally): Same change.
1634	(objc_finish_foreach_loop): New.
1635	* objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
1636	OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
1637	objc_enumeration_mutation_decl.
1638
1639	Merge from 'apple/trunk' branch on FSF servers.
1640
1641	2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
1642
1643        Radar 4507230
1644	* objc-act.c (objc_type_valid_for_messaging): New routine to check
1645	for valid objc object types.
1646	(objc_finish_foreach_loop): Check for invalid objc objects in
1647	foreach header.
1648
16492010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
1650
1651	Merge from 'apple/trunk' branch on FSF servers.
1652
1653	2005-10-17  Fariborz Jahanian <fjahanian@apple.com>
1654
1655        Radar 4290840
1656	* objc-act.c (objc_start_method_definition): Check for
1657	error_mark_node for the selector name and make a quick exit.
1658
16592010-10-04  Andi Kleen <ak@linux.intel.com>
1660
1661	* Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
1662
16632010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
1664
1665	merge from FSF 'apple/trunk' branch.
1666	2006-01-30  Fariborz Jahanian <fjahanian@apple.com>
1667
1668       Radar 4386773
1669       * objc/objc-act.c (objc_set_method_opt): New function.
1670       (objc_start_protocol, objc_finish_interface): Reset
1671       objc_method_optional_flag flag.
1672       (objc_add_method_declaration): Pass on the new
1673       flag to objc_add_method.
1674       (objc_add_method): Add optional methods to new chain in
1675       the protocol class.
1676       * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS,
1677       CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
1678       class's optional method chains.
1679
16802010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1681
1682	Merge from 'apple/trunk' branch on FSF servers.
1683
1684	2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
1685
1686	Radar 4278236
1687	* objc-act.c (objc_declare_class): Pick the right
1688	type tree.
1689
16902010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1691
1692	Merge from 'apple/trunk' branch on FSF servers.
1693
1694	2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
1695
1696	Radar 4281748
1697	* objc-act.c (objc_check_global_decl): New
1698
16992010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1700
1701	* objc-act.c (objc_is_reserved_word): Removed.
1702
17032010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
1704
1705	* objc-act.c (objc_add_method_declaration): Handle and ignore
1706	attributes.
1707	(objc_start_method_definition): Likewise.
1708	(objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor.
1709	(objc_build_keyword_decl): Handle and ignore attributes.
1710
17112010-09-28  Richard Henderson  <rth@redhat.com>
1712
1713	* objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
1714
17152010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
1716
1717	* objc-act.c (objc_start_class_interface): Handle and ignore attributes.
1718	(objc_start_category_interface): Likewise.
1719	(objc_start_protocol): Likewise.
1720
17212010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1722
1723	Merge from 'apple/trunk' branch on FSF servers.
1724
1725	2005-08-23  Stuart Hastings <stuart@apple.com>
1726	            Ziemowit Laski  <zlaski@apple.com>
1727
1728	Radar 4209854
1729	* objc-act.c (objc_decay_parm_type): New function.
1730	(get_arg_type_list): Decay types for all named arguments.
1731	(objc_push_parm): Rebuild the PARM_DECL if its type has
1732	been decayed.
1733
17342010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1735
1736	* objc-act.c (encode_type): Fixed encoding enums with the next
1737	runtime.
1738
17392010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1740
1741	Merge from 'apple/trunk' branch on FSF servers.
1742
1743	2005-07-18  Ziemowit Laski  <zlaski@apple.com>
1744
1745	Radar 4175534
1746	* objc-act.c (objc_compare_types): A new silent comparison
1747	mode (-4), differing from regular comparison (-3) in that
1748	'false' is returned instead of issuing warnings.
1749
17502010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1751
1752	* objc-act.c (encode_type): Do not add 'r' with the next runtime.
1753	(encode_aggregate_within): Reorganized code to be more readable.
1754	(encode_aggregate_fields): Updated second argument to be 'bool'
1755	instead of 'int'.
1756
17572010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1758
1759	PR objc/45763
1760	PR objc/25450
1761	PR objc/25464
1762	* objc-act.c: Improved comments for encoding functions.
1763	(encode_aggregate_within): For the GNU runtime, rewritten some
1764	obsfuscated code to clarify the various cases.
1765	(encode_aggregate): Function removed.
1766	(encode_array): Generate an error if asked to encode an incomplete
1767	array as part of generating instance variables.  Else, when
1768	encoding an incomplete array inside a structure, encode it as an
1769	array of zero size.
1770	(encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
1771	'^c' instead of '*'.
1772	(encode_gnu_bitfield): Encode enumerated types exactly in the same
1773	type as integer types instead of using a hardcoded 'i'.  If asked
1774	to encode a non-integer type as a bitfield, do not abort
1775	compilation immediately; instead generate an error, then skip the
1776	type.
1777	(encode_type): Use a 'switch' instead of a sequence of 'if's.
1778	Added a 'default' clause that gets executed if the type can not be
1779	matched, and that encodes it as '?' (unknown) and produces a
1780	warning.  For the GNU runtime, encode enumerated types exactly in
1781	the same way as integer types instead of using a hardcoded 'i'.
1782	Encode long double as 'D'.  Encode 128-bit integers as 'T' or 't'.
1783	Encode C++ reference types as pointers.  Call encode_vector to
1784	encode vectors.
1785	(encode_vector): New function.
1786
17872010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1788
1789	Merge from 'apple/trunk' branch on FSF servers.  I modified the
1790	changes to be used only when compiling for the NeXT runtime.
1791
1792	2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
1793
1794        Radar 4301047
1795
1796	* objc-act.c (encode_type): Remove the hack.
1797
1798	2005-07-20  Ziemowit Laski  <zlaski@apple.com>
1799
1800	Radar 4136935
1801	* objc-act.c (pointee_is_readonly): New function.
1802	(encode_pointer, encode_aggregate_within, encode_type):
1803	Attempt to emulate GCC 3.3 when generating type encodings.
1804
18052010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1806
1807	Merge from 'apple/trunk' branch on FSF servers.
1808
1809	2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
1810
1811	Radar 4229905
1812	* objc-act.c (objc_have_common_types): New function.
1813
1814	2005-06-22  Ziemowit Laski  <zlaski@apple.com>
1815
1816	Radar 4154928
1817	* objc-act.c (objc_common_type): New function.
1818
18192010-09-27  Richard Guenther  <rguenther@suse.de>
1820
1821	* objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
1822	(objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
1823
18242010-09-26  Nicola Pero  <nicola.pero@meta-innovation.com>
1825
1826	* objc-act.c: Removed historical, obsolete comment at the top of
1827	the file.
1828
18292010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1830
1831	PR objc/23710
1832	* objc-act.c (objc_start_method_definition): Do not abort upon a
1833	'method definition not in @implementation context' error.  Return
1834	'false' instead.
1835
18362010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1837
1838	PR objc/25965
1839	* objc-act.c (objc_get_interface_ivars): New function.
1840	(objc_collecting_ivars): New variable.
1841	(continue_class): Set and reset objc_collecting_ivars for context.
1842
18432010-09-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1844
1845	Merge from 'apple/trunk' branch on FSF servers.
1846
1847	2006-03-09 Fariborz Jahanian <fjahanian@apple.com>
1848
1849        Radar 4457381
1850	* objc/objc-act.c (objc_finish_message_expr): Look for message in
1851	@class's protocol list.
1852
1853	2006-02-07  Fariborz Jahanian <fjahanian@apple.com>
1854
1855	Radar 4219590
1856	* objc/objc-act.c (objc_start_method_definition): Initialize
1857	break/continue labels.
1858
1859	2005-08-22  Ziemowit Laski  <zlaski@apple.com>
1860
1861	Radar 4174166
1862	* objc-act.c (objc_compare_types): Compare function
1863	pointers; indicate success if the right-hand side has
1864	a return type that is covariant, and the argument types
1865	contravariant, with those of the left side.
1866
1867	2005-08-22  Ziemowit Laski  <zlaski@apple.com>
1868
1869	Radar 4216500
1870	* objc-act.c (objc_get_protocol_qualified_type): When looking
1871	at a typedef, retrieve the precise type it describes (rather
1872	than merely looking up a class by name).
1873
18742010-09-10  Nicola Pero  <nicola.pero@meta-innovation.com>
1875
1876	* objc/objc-act.c (objc_begin_try_stmt): Generate an error if
1877	-fobjc-exceptions was not used.  (objc_build_throw_stmt): Same
1878	change.
1879
18802010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
1881
1882	* objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
1883
18842010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
1885
1886	PR objc/44140
1887	* objc-act.c: build_objc_string_decl() remove declaration.
1888	(finish_var_decl): Remove forcing of var output and marking
1889	as "Used".
1890	(init_def_list): Use integer_zero_node.
1891	(init_objc_symtab): Use integer_zero_node, make the short
1892	integer type specific on relevant nodes.
1893	(generate_objc_symtab_decl): Remove call to
1894	forward_declare_categories().  Use null_pointer_node where
1895	appropriate.
1896	(build_module_descriptor): Comment and mark this item as
1897	DECL_PRESERVE_P.
1898	(generate_static_references): Use gcc_unreachable instead of
1899	abort ().
1900	(diagnose_missing_method): New.
1901	(build_next_selector_translation_table): New.
1902	(build_gnu_selector_translation_table): New.
1903	(add_objc_string): Merge code from build_objc_string_decl...
1904	... and delete build_objc_string_decl().
1905	(generate_dispatch_table): Make integer types explicit.
1906	(generate_category): Pass implent and arrange for the data
1907	to be extracted within the routine.  Do not start new vars,
1908	but finish the ones collcted during parsing.
1909	(generate_shared_structures): Likewise.
1910	(finish_objc):  Reorder code so that we finish variables before
1911	referencing them.  Save the global data before calling meta-data
1912	creation routines, and pass the current reference to the two
1913	main routines.  Only call generate_objc_image_info () for the
1914	NeXT runtime.
1915	(generate_classref_translation_entry): Comment on and make this
1916	item DECL_PRESERVE_P.
1917	(handle_class_ref): Use varpool interfaces, comment on and make
1918	this item DECL_PRESERVE_P.
1919	(handle_impent): Likewise.
1920	(generate_objc_image_info): Only generate when the content is
1921	non-zero.  Make integer types explict.
1922
19232010-07-03  Nathan Froyd  <froydnj@codesourcery.com>
1924
1925	PR objc/24867
1926	* objc-act.c (build_sized_array_type): New function.
1927	(add_objc_string): Use it.
1928	(generate_protocol_list): Likewise.
1929	(generate_objc_image_info): Likewise.
1930	(add_field_decl): New function.
1931	(objc_build_struct): Use a VEC rather than building a TREE_LIST.
1932	(generate_struct_by_value_array): Use add_field_decl.
1933	(build_objc_symtab_template): Likewise.
1934	(build_module_descriptor): Likewise.
1935	(build_objc_exception_stuff): Likewise.
1936	(build_protocol_template): Likewise.
1937	(build_method_prototype_list_template): Likewise.
1938	(build_method_prototype_template): Likewise.
1939	(build_category_template): Likewise.
1940	(build_selector_template): Likewise.
1941	(build_class_template): Likewise.
1942	(build_super_template): Likewise.
1943	(build_ivar_template): Likewise.
1944	(build_ivar_list_template): Likewise.
1945	(build_method_list_template): Likewise.
1946	(build_method_template): Likewise.
1947
19482010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
1949
1950	* objc-act.c: Do not include except.h.
1951
19522010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1953
1954	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
1955	allocation.
1956
1957	* objc-act.c (objc_volatilize_decl): Likewise.
1958	(objc_build_string_object): Likewise.
1959	(hash_init): Likewise.
1960	(hash_enter): Likewise.
1961	(hash_add_attr): Likewise.
1962	(add_class): Likewise.
1963	(start_class): Likewise.
1964
19652010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
1966
1967	* objc-act.c: Update include path for moved files.
1968	* objc-lang.c: Likewise.
1969	* config-lang.in: Update paths in gtfiles for files in c-family/.
1970
19712010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
1972
1973	* objc-act.c (build_next_objc_exception_stuff): Give setjmp a
1974	varargs type instead of a zero-argument type.
1975
19762010-05-30  Nathan Froyd  <froydnj@codesourcery.com>
1977
1978	* objc-act.c (synth_module_prologue): Use build_function_type_list
1979	instead of build_function_type.
1980	(build_module_initializer_routine): Likewise.
1981	(build_next_objc_exception_stuff): Likewise.
1982	(build_objc_exception_stuff): Likewise.
1983
19842010-05-27  Joseph Myers  <joseph@codesourcery.com>
1985
1986	* objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
1987	* Make-lang.in (objc/objc-act.o): Update dependencies.
1988
19892010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
1990
1991	* objc-act.h: Do not include gimple.h.
1992	* objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
1993	Include gimple.h.  Explain why except.h has to be included.
1994	* objc-lang.c: Do not include diagnostics.h.
1995	* Make-lang.in: Update dependencies.
1996
19972010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
1998
1999	* objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
2000	mismatch code for VECs.
2001
20022010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
2003
2004	* objc-act.c (objc_build_constructor): Take a VEC instead of a tree.
2005	Use build_constructor instead of build_constructor_from_list.
2006	(objc_build_string_object): Build a VEC argument for
2007	objc_build_constructor.
2008	(init_def_list): Likewise.
2009	(init_objc_symtab): Likewise.
2010	(init_module_descriptor): Likewise.
2011	(generate_static_references): Likewise.
2012	(build_selector_translation_table): Likewise.
2013	(build_descriptor_table_initializer): Likewise.
2014	(generate_descriptor_table): Likewise.
2015	(build_protocol_initializer): Likewise.
2016	(build_ivar_list_initializer): Likewise.
2017	(generate_ivars_list): Likewise.
2018	(build_dispatch_table_initializer): Likewise.
2019	(generate_dispatch_table): Likewise.
2020	(generate_protocol_list): Likewise.
2021	(build_category_initializer): Likewise.
2022	(build_shared_structure_initializer): Likewise.
2023	(generate_objc_image_info): Likewise.
2024
20252010-04-30  Iain Sandoe  <iains@gcc.gnu.org>
2026
2027	PR objc++/32052
2028	* objc-act.c (encode_aggregate_within): Encode structure tags
2029	with template args for ObjC++.
2030
20312010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2032
2033	* objc-act.c: Do not include varray.h.
2034
20352010-04-07  Jakub Jelinek  <jakub@redhat.com>
2036
2037	PR c/18624
2038	* objc-act.c (finish_var_decl, objc_begin_catch_clause,
2039	really_start_method, get_super_receiver, handle_class_ref): Set
2040	DECL_READ_P in addition to TREE_USED.
2041
20422010-04-07  Iain Sandoe <iains@gcc.gnu.org>
2043
2044	PR objc/35996
2045	* objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
2046	-fgnu-runtime and set flag_objc_gc to zero.
2047
20482010-04-07  Iain Sandoe <iains@gcc.gnu.org>
2049
2050	PR objc++/23716
2051	* objc-act.c (build_module_initializer_routine): Make the argument
2052	to objc_start_function NULL_TREE when compiling ObjC++.
2053
20542010-02-18  Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
2055	    Mike Stump  <mikestump@comcast.net>
2056
2057	PR objc/43061
2058	* objc-act.c (finish_var_decl): Set the generated symbols as "used".
2059
20602009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
2061
2062	* objc-act.c (objc_substitute_decl, build_ivar_reference,
2063	get_super_receiver): Update build_indirect_ref calls.
2064
20652009-11-28  Jakub Jelinek  <jakub@redhat.com>
2066
2067	* objc-act.c (generate_shared_structures): Remove unused sc_spec and
2068	decl_specs variables.
2069	(objc_build_message_expr): Remove unused loc variable.
2070	(objc_finish_message_expr): Remove unused saved_rtype variable.
2071	(encode_field_decl): Remove unused type variable.
2072
2073	PR obj-c++/42156
2074	* objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
2075	type variants that don't have it initialized yet.
2076
20772009-09-14  Jan Hubicka  <jh@suse.cz>
2078
2079	* objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
2080
20812009-09-14  Richard Henderson  <rth@redhat.com>
2082
2083	* objc-act.c (objc_init_exceptions): Don't call
2084	default_init_unwind_resume_libfunc.
2085	(objc_build_exc_ptr): Use __builtin_eh_pointer.
2086
20872009-09-13  Richard Guenther  <rguenther@suse.de>
2088	Rafael Avila de Espindola  <espindola@google.com>
2089
2090	* objc-act.c (objc_eh_runtime_type): Export.
2091	(objc_init_exceptions): Remove.  Move warning code ...
2092	(objc_begin_try_stmt): ... here
2093	(objc_build_throw_stmt): ... and here.
2094	(objc_eh_personality_decl): New.
2095	(objc_eh_personality): New function.
2096	* objc-act.h (objc_eh_runtime_type): Declare.
2097	(objc_eh_personality): Likewise.
2098	* objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
2099	(LANG_HOOKS_EH_PERSONALITY): Likewise.
2100
21012009-09-03  Diego Novillo  <dnovillo@google.com>
2102
2103	* objc-lang.c (lang_hooks): Remove const qualifier.
2104
21052009-08-20  Richard Guenther  <rguenther@suse.de>
2106
2107	* objc-act.c: Include c-lang.h
2108	* Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
2109
21102009-07-17  Aldy Hernandez  <aldyh@redhat.com>
2111	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
2112
2113	PR 40435
2114	* objc-act.c: Add location argument to all calls to
2115	build_fold_addr_expr.
2116
21172009-07-14  Taras Glek  <tglek@mozilla.com>
2118	    Rafael Espindola  <espindola@google.com>
2119
2120	* Make-lang.in (objc.install-plugin): New target for
2121	installing plugin headers.
2122
21232009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2124
2125	* objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
2126	EXPR_LOCATION.
2127
21282009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2129
2130	* objc-act.c: Replace %J by an explicit location. Update all
2131	calls.
2132
21332009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2134
2135	* objc-act.c: Replace %H by an explicit location. Update all
2136	calls.
2137
21382009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2139
2140	PR objc/28050
2141	* objc-act.c (objc_build_message_args): Return if ARGS is the
2142	error_mark_node.
2143
21442009-06-19  Ian Lance Taylor  <iant@google.com>
2145
2146	* objc-act.c (objc_in_struct, objc_struct_types): Remove.
2147	(objc_struct_info): New static variable.
2148	(objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
2149	and &objc_struct_types, to start_struct.
2150	(objc_finish_struct): Likewise for finish_struct.
2151
21522009-06-15  Ian Lance Taylor  <iant@google.com>
2153
2154	* objc-act.c (objc_start_function): Don't set
2155	label_context_stack_se or label_context_stack_vm.
2156
21572009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2158
2159	* objc-act.c (finish_var_decl): Pass location to finish_decl.
2160	(objc_get_parm_info): Same.
2161	(get_super_receiver): Same.
2162	* objc-act.c (objc_build_component_ref): Pass location to
2163	build_compound_ref.
2164	(build_module_initializer_routine): Pass location to
2165	c_end_compound_stmt.
2166	(objc_generate_static_init_call): Pass location to build_stmt.
2167	(build_typed_selector_reference): New location argument.
2168	(build_selector_reference): Same.
2169	(objc_substitute_decl): Pass location to build_array_ref.
2170	(next_sjlj_build_try_catch_finally): Pass location to build_stmt.
2171	(objc_begin_catch_clause): Same.
2172	(objc_finish_try_stmt): Same.
2173	(objc_finish_catch_clause): Pass location to c_end_compound_stmt.
2174	(objc_build_throw_stmt): New argument.
2175	(generate_shared_structures): Pass location to build_c_cast.
2176	(objc_build_message_expr): Use local location.
2177	(objc_finish_message_expr): Use input_location.
2178	(build_objc_method_call): New argument.
2179	(objc_build_selector_expr): Same.
2180	(get_super_receiver): Pass location to build_c_cast,
2181	build_modify_expr, build_compound_expr.
2182	* objc-act.c: Add location to all calls to start_struct, build_decl,
2183	finish_struct.
2184
21852009-06-09  Ian Lance Taylor  <iant@google.com>
2186
2187	* objc-act.c (objc_gimplify_expr): Change return type to int.
2188	* objc-act.h: Update declaration.
2189
21902009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2191
2192	* objc-act.c (objc_init): Skip print_struct_values during
2193	-fcompare-debug-second.
2194
21952009-06-03  Ian Lance Taylor  <iant@google.com>
2196
2197	* Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
2198	$(SYSTEM_H).
2199
22002009-05-27  Ian Lance Taylor  <iant@google.com>
2201
2202	* Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
2203	$(LINKER).
2204	(cc1obj$(exeext)): Likewise.
2205
22062009-05-26  Ian Lance Taylor  <iant@google.com>
2207
2208	* Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
2209	(cc1obj$(exeext)): Likewise.
2210
22112009-05-20  Ian Lance Taylor  <iant@google.com>
2212
2213	* objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
2214	than NULL_TREE to build_special_member_call.
2215
22162009-05-10  Ian Lance Taylor  <iant@google.com>
2217
2218	* objc-act.c (objc_building_struct): New static variable.
2219	(objc_in_struct, objc_struct_types): New static variables.
2220	(objc_start_struct, objc_finish_struct): New static functions.
2221	(generate_struct_by_value_array): Call objc_start_struct instead
2222	of start_struct, and call objc_finish_struct instead of
2223	finish_struct.
2224	(objc_build_struct, build_objc_symtab_template): Likewise.
2225	(build_module_descriptor): Likewise.
2226	(build_next_objc_exception_stuff): Likewise.
2227	(build_protocol_template): Likewise.
2228	(build_method_prototype_list_template): Likewise.
2229	(build_method_prototype_template): Likewise.
2230	(build_category_template, build_selector_template): Likewise.
2231	(build_class_template, build_super_template): Likewise.
2232	(build_ivar_template, build_ivar_list_template): Likewise.
2233	(build_method_list_template): Likewise.
2234	(build_method_template): Likewise.
2235
22362009-05-10  Joseph Myers  <joseph@codesourcery.com>
2237
2238	* objc-act.c: Include intl.h.
2239	(objc_lookup_protocol): Use complete sentences for diagnostics
2240	with %qE for identifiers and translating results of
2241	gen_type_name_0 to locale character set.
2242	(objc_check_decl, check_protocol_recursively,
2243	lookup_and_install_protocols, objc_build_string_object,
2244	objc_get_class_reference, objc_declare_alias, objc_declare_class,
2245	objc_get_class_ivars, error_with_ivar, check_duplicates,
2246	objc_finish_message_expr, objc_build_protocol_expr,
2247	objc_build_selector_expr, build_ivar_reference, objc_add_method,
2248	add_category, add_instance_variable, objc_is_public,
2249	check_methods, check_methods_accessible, check_protocol,
2250	start_class, finish_class, start_protocol, really_start_method,
2251	get_super_receiver, objc_lookup_ivar): Use %E and %qE for
2252	identifiers in diagnostics.  Translate generated text to locale
2253	character set as needed.
2254	(check_protocol, check_protocols): Change name parameter to type
2255	tree.
2256	(lang_report_error_function): Remove.
2257
22582009-04-27  Ian Lance Taylor  <iant@google.com>
2259
2260	* objc-act.c (objc_gimplify_expr): Add casts to enum type.
2261
22622009-04-24  Ian Lance Taylor  <iant@google.com>
2263
2264	* objc-act.c (get_super_receiver): Update calls to
2265	build_modify_expr to pass new argument.
2266
22672009-04-21  Taras Glek <tglek@mozilla.com>
2268
2269	* objc-act.c: Update GTY annotations to new syntax
2270	* objc-act.h: Likewise
2271
22722009-04-21  Joseph Myers  <joseph@codesourcery.com>
2273
2274	* ChangeLog: Add copyright and license notices.
2275
22762009-04-20  Ian Lance Taylor  <iant@google.com>
2277
2278	* objc-act.c (objc_rewrite_function_call): Change parameter from
2279	params to first_param.  Change all callers.
2280
22812009-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
2282
2283	PR bootstrap/39583
2284	* objc-act.c (in_late_binary_op): Define for Objective-C++.
2285
22862009-03-29  Joseph Myers  <joseph@codesourcery.com>
2287
2288	PR c/456
2289	PR c/5675
2290	PR c/19976
2291	PR c/29116
2292	PR c/31871
2293	PR c/35198
2294	* objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
2295
22962008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
2297
2298	PR bootstrap/38262
2299	* Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
2300	remove GMPLIBS.
2301
23022008-10-06  Aldy Hernandez  <aldyh@redhat.com>
2303
2304	* objc-act.c (objc_build_string_object): Pass location to
2305	build_unary_op.
2306	(init_def_list): Same.
2307	(init_objc_symtab): Same.
2308	(init_module_descriptor): Same.
2309	(build_module_initializer_routine): Same.
2310	(generate_static_references): Same.
2311	(build_typed_selector_reference): Same.
2312	(add_objc_string): Same.
2313	(objc_substitute_decl): Same.
2314	(objc_build_ivar_assignment): Same.
2315	(objc_build_global_assignment): Same.
2316	(objc_build_strong_cast_assignment): Same.
2317	(generate_protocols): Same.
2318	(build_protocol_initializer): Same.
2319	(build_dispatch_table_initializer): Same.
2320	(generate_protocol_list): Same.
2321	(build_category_initializer): Same.
2322	(build_shared_structure_initializer): Same.
2323	(generate_shared_structures): Same.
2324	(objc_build_protocol_expr): Same.
2325	(build_ivar_reference): Same.
2326	(get_super_receiver): Same.
2327
23282008-09-23  Aldy Hernandez  <aldyh@redhat.com>
2329
2330	* objc-act.c (next_sjlj_build_enter_and_setjmp): Call
2331	c_common_truthvalue_conversion with location.
2332	(next_sjlj_build_catch_list): Same.
2333	(next_sjlj_build_try_catch_finally): Same.
2334
23352008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2336
2337	PR objc/37460
2338	* objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
2339	* objc-act.h (objc_get_callee_fndecl): Remove prototype.
2340	* objc-act.c (objc_get_callee_fndecl): Kill.
2341
23422008-09-17  Jan Hubicka  <jh@suse.cz>
2343
2344	PR c++/18071
2345	* objc/objc-act.c (objc_finish_method_definition): Do not set
2346	DECL_INLINE.
2347
23482008-09-01  Aldy Hernandez  <aldyh@redhat.com>
2349
2350	* objc-act.c (build_typed_selector_reference): Pass input_location to
2351	build_unary_op calls.
2352	(build_selector_reference): Same, but to build_array_ref.
2353	(objc_substitute_decl): Same.
2354	(build_ivar_reference): Same, but to build_indirect_ref.
2355	(get_super_receiver): Same.
2356
23572008-07-28  Richard Guenther  <rguenther@suse.de>
2358
2359	Merge from gimple-tuples-branch.
2360
2361	2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
2362
2363	* Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
2364	(objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
2365	* objc-act.h: Include gimple.h instead of tree-gimple.h.
2366	* ipa-reference.c: Same.
2367
2368	2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
2369
2370	* objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
2371	* objc-act.h (objc_gimplify_expr): Change prototype accordingly.
2372
23732008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2374
2375	* objc-act.c: Fix comment typos.
2376
23772008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2378
2379	* objc-act.c (objc_start_class_interface,
2380	objc_start_category_interface, objc_start_class_implementation,
2381	objc_start_category_implementation, objc_build_struct,
2382	generate_static_references, build_private_template,
2383	lookup_category, objc_add_method, add_category,
2384	add_instance_variable, objc_is_public, conforms_to_protocol,
2385	start_class, continue_class, finish_class): Avoid C++ keywords.
2386
23872008-07-14  Jason Merrill  <jason@redhat.com>
2388
2389	PR objc++/36723
2390	* objc-act.c (objc_build_constructor): Update C++ tweak.
2391
23922007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
2393
2394	* objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
2395	of DECL_IN_SYSTEM_HEADER.
2396
23972008-07-11  Ian Lance Taylor  <iant@google.com>
2398
2399	* objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
2400	etc., not just when OBJCPLUS is defined.
2401
24022008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2403
2404	* objc-act.c (setup_string_decl, objc_build_string_object,
2405	hash_interface, eq_interface, objc_begin_try_stmt,
2406	encode_method_prototype, build_ivar_list_initializer,
2407	objc_build_encode_expr): Fix for -Wc++-compat.
2408
24092008-05-12  Tomas Bily  <tbily@suse.cz>
2410
2411        * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
2412        Use CONVERT_EXPR_P.
2413
24142008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2415
2416	* objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
2417
24182008-04-03  Tom Tromey  <tromey@redhat.com>
2419
2420	* Make-lang.in (objc_OBJS): New variable.
2421
24222008-03-27  Tom Tromey  <tromey@redhat.com>
2423
2424	* Make-lang.in: Revert automatic dependency patch.
2425
24262008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
2427
2428	PR obj-c++/35704
2429	* objc-act.c (objc_build_component_ref): Fix call to
2430	finish_class_member_access_expr.
2431	(objc_generate_cxx_ctor_or_dtor): Fix call to
2432	build_special_member_call.
2433
24342008-03-25  Andrew Pinski  <pinskia@gmail.com>
2435
2436	PR objc/29197
2437	* objc-act.c (encode_type): Handle when type is error_mark_node.
2438	(objc_push_parm): Handle when the type of parm is error_mark_node.
2439
24402008-03-25  Tom Tromey  <tromey@redhat.com>
2441
2442	* Make-lang.in (objc_OBJS): New variable.
2443	(cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
2444
24452008-03-21  Andreas Tobler  <a.tobler@schweiz.org>
2446
2447	PR bootstrap/35660
2448	* objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
2449	MAYBE_CLASS_TYPE_P.
2450	(objc_generate_cxx_cdtors): Likewise.
2451	(add_instance_variable): Likewise.
2452
24532008-02-26  Tom Tromey  <tromey@redhat.com>
2454
2455	* objc-act.c (objc_init): Remove old location code.
2456
24572008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2458
2459	PR other/35107
2460	* Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
2461
24622007-07-30  Nick Clifton  <nickc@redhat.com>
2463
2464	* Make-lang.in: Change copyright header to refer to version 3 of
2465	the GNU General Public License and to point readers at the
2466	COPYING3 file and the FSF's license web page.
2467	* lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
2468	config-lang.in, objc-lang.c: Likewise.
2469
24702007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2471
2472	* objc-act.c (objc_get_callee_fndecl): Constify.
2473	* objc-act.h (objc_get_callee_fndecl): Likewise.
2474
24752007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2476
2477	* objc-act.c (volatilized_hash, volatilized_eq, string_hash,
2478	string_eq): Constify.
2479
24802007-04-04  Stuart Hastings  <stuart@apple.com>
2481
2482	PR 31281
2483	* objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
2484
24852007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2486
2487	* Make-lang.in: Add dummy lang.install-pdf target.
2488
24892007-02-18  Kazu Hirata  <kazu@codesourcery.com>
2490
2491	* objc/objc-act.c: Fix comment typos.
2492
24932007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2494	    Brooks Moses  <brooks.moses@codesourcery.com>
2495	    Lee Millward  <lee.millward@codesourcery.com>
2496
2497	* objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
2498	(objc_get_callee_fndecl): Likewise.
2499
25002007-01-23  Andrew Pinski  <pinskia@gmail.com>
2501
2502	PR objc/27438
2503	* objc-act.c (objc_add_static_instance): Mark the decl as
2504	TREE_USED.
2505
25062007-01-20  Andrew Pinski  <pinskia@gmail.com>
2507
2508	PR objc/30479
2509	* objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
2510	of htab_hash_pointer.
2511	(lookup_interface): Likewise.
2512	(add_class): Likewise.
2513
25142007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
2515
2516	* objc-act.c (objc_build_volatilized_type): Keep track of
2517	canonical types.
2518	(objc_get_protocol_qualified_type): Ditto.
2519
25202006-11-02  Andreas Tobler  <a.tobler@schweiz.org>
2521
2522	* objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
2523	content where we called cp_finish_file.
2524
25252006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2526
2527	* objc-act.c (synth_module_prologue): Replace calls to
2528	builtin_function with add_builtin_function.
2529	(build_next_objc_exception_stuff): Replace calls to
2530	builtin_function with add_builtin_function.
2531	(build_objc_exception_stuff): Replace calls to
2532	builtin_function with add_builtin_function.
2533
25342006-10-10  Brooks Moses  <bmoses@stanford.edu>
2535
2536	* Make-lang.in: Added empty "objc.pdf" target.
2537
25382006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>
2539
2540	PR objc/29195
2541	* objc-act.c (objc_push_parm): If we change the type of the
2542	decl, relayout the decl.
2543
25442006-09-19  Eric Christopher  <echristo@apple.com>
2545
2546	* objc-act.c (JBLEN): Rename to OBJC_JBLEN,
2547	default to something innocuous.
2548	(build_next_objc_exception_stuff): Rename JBLEN.
2549
25502006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2551
2552	* Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2553
25542006-07-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2555
2556	PR obj-c++/28434
2557	* objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
2558
25592006-06-06  Mike Stump  <mrs@apple.com>
2560
2561	* objc-act.c: Remove prototype for objc_build_volatilized_type.
2562
25632006-05-24  Mike Stump  <mrs@apple.com>
2564
2565	* objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
2566
25672006-05-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2568
2569	PR objc/27240
2570	* objc-act.c (objc_is_public): Return early on invalid type.
2571
25722006-03-02 Fariborz Jahanian <fjahanian@apple.com>
2573
2574	* objc-act.c (init_module_descriptor): Remove file name from
2575	module descriptor.
2576	(gen_type_name_0): Fix ICE when issuing warning.
2577
25782006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2579	* Make-lang.in (OBJC): Remove
2580	(OBJECTIVE-C): Remove
2581	(objective-c): Remove
2582	(.PHONY): Remove objective-c and ObjC
2583
25842005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
2585
2586	PR objc/25360
2587	* objc/objc-act.c (encode_type): Encode Complex types as 'j' followed
2588	by the inner type.
2589
25902005-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
2591
2592	PR objc/25348
2593	* objc-act.c (encode_array): Handle arrays to zero sized types.
2594
25952005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2596
2597	* Make-lang.in (objc.all.build, objc.install-normal): Remove.
2598
25992005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2600
2601	* Make-lang.in: Remove all dependencies on s-gtype.
2602
26032005-12-02  Richard Guenther  <rguenther@suse.de>
2604
2605	* objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
2606	next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
2607	next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
2608	build_objc_method_call, objc_rewrite_function_call): Use buildN
2609	instead of build.
2610
26112005-10-20  Geoffrey Keating  <geoffk@apple.com>
2612
2613	* objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
2614	on objc_msgSend and like builtin functions.
2615
26162005-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2617
2618	* objc-act.c (objc_build_component_ref): Adjust call to
2619	finish_class_member_access_expr due to a changed prototype.
2620
26212005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
2622
2623	PR objc/23306
2624	* objc-act.c (generate_strings): Remove and move code to
2625	finish decl to ...
2626	(add_objc_string): here when creating a new string decl.
2627	(finish_objc): Don't call generate_strings.
2628
26292005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
2630
2631	PR objc/23381
2632	* objc-act.c (next_sjlj_build_try_catch_finally): Set
2633	TREE_SIDE_EFFECTS on catch_seq after building it.
2634
26352005-08-09  Andrew Pinski  <pinskia@physics.uc.edu>
2636
2637	part of PR objc/21992
2638	* objc-act.c (handle_class_ref): The ref decl is always referenced.
2639
26402005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
2641
2642	Make CONSTRUCTOR use VEC to store initializers.
2643	* objc-act.c (objc_build_constructor): Use build_constructor_from_list
2644	instead of build_constructor.
2645
26462005-07-08  Daniel Berlin  <dberlin@dberlin.org>
2647
2648	* objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
2649	removed.
2650	* objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
2651	(KEYWORD_KEY_NAME): Use decl_minimal.
2652	(METHOD_SEL_NAME): Ditto..
2653	(METHOD_SEL_ARGS): Use decl_non_common.
2654	(METHOD_ADD_ARGS): Ditto.
2655	(METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
2656	(METHOD_DEFINITION): Ditto.
2657	(METHOD_ENCODING): Ditto.
2658	* objc-lang.c: (objc_init_ts): New function.
2659
26602005-07-07  Ziemowit Laski  <zlaski@apple.com>
2661
2662	* objc-act.c (objc_build_struct): Pass in an actual @interface
2663	instead of its name, and annotate the struct created (and all
2664	existing variants thereof) with the @interface.
2665	(objc_compare_types): Treat forward-declared ObjC classes
2666	as stand-alone (root) classes for purposes of type comparisons.
2667	(build_private_template): Move some code to objc_build_struct().
2668
26692005-07-07  Ziemowit Laski  <zlaski@apple.com>
2670
2671	PR objc/22274
2672	* objc-act.c (objc_build_string_object): For GNU-style constants,
2673	use the @interface type rather than the built-in type.
2674
26752005-07-03  Kazu Hirata  <kazu@codesourcery.com>
2676
2677	* Make-lang.in (cc1plus-checksum.c): Use
2678	build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
2679
26802005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
2681
2682	* objc-act.c: Use %q to quote in diagnostics.
2683
26842005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
2685
2686	* objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
2687	quoting.
2688
26892005-06-30  Ziemowit Laski  <zlaski@apple.com>
2690
2691	* objc-act.c (objc_build_volatilized_type): New function.
2692	(objc_volatilize_decl): Call objc_build_volatilized_type()
2693	instead of build_qualified_type().
2694
26952005-06-29  Ziemowit Laski  <zlaski@apple.com>
2696
2697	* objc-act.c (objc_build_internal_const_str_type): New function.
2698	(check_string_class_template): Use objc_get_class_ivars() instead
2699	of TYPE_FIELDS() to retrieve ivar list.
2700	(AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
2701	than the field itself.
2702	(objc_build_string_object): Synthesize a "__builtin_ObjCString"
2703	type and use it to lay out compile-time string objects.
2704	* objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
2705	New.
2706
27072005-06-28  Paul Brook  <paul@codesourcery.com>
2708
2709	* objc-act.c (objc_init_exceptions): Call
2710	default_init_unwind_resume_libfunc.
2711
27122005-06-27  Ziemowit Laski  <zlaski@apple.com>
2713
2714	* objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
2715	portion of TYPE_LANG_SPECIFIC info for all variants of
2716	a class before calling finish_struct(), and restore
2717	same TYPE_OBJC_INFO afterwards.
2718
27192005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
2720
2721	* all files: Update FSF address in copyright headers.
2722
27232005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
2724
2725	* objc-act.c (my_build_string_pointer): New.
2726	(objc_get_class_reference, get_super_receiver): Call
2727	my_build_string_pointer instead of my_build_string when building
2728	function arguments.
2729
27302005-05-25  Mike Stump  <mrs@mrs.kithrup.com>
2731
2732	* objc-act.c (volatilized_hash): Avoid warnings on 64-bit
2733	machines.
2734
27352005-05-24  Ziemowit Laski  <zlaski@apple.com>
2736
2737	* objc-act.c (objc_build_struct): New function.
2738	(objc_derived_from_p): Likewise.
2739	(objc_build_component_ref): Likewise.
2740	(objc_copy_binfo): Likewise.
2741	(objc_xref_basetypes): Likewise.
2742	(objc_lookup_protocol): Likewise.
2743	(objc_compare_protocols): Likewise.
2744	(objc_volatilize_decl): Likewise.
2745	(encode_aggregate_fields): Likewise.
2746	(volatilized_hash): Likewise.
2747	(volatilized_eq): Likewise.
2748	(objc_compare_types): Likewise.
2749	(objc_type_quals_match): Likewise.
2750	(DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
2751	of same name.
2752	(get_class_ivars): Add second parameter indicating if entire
2753	hierarchy is desired.
2754	(struct volatilized_type): New type.
2755	(volatilized_htab): New hash table.
2756	(objc_types_compatible_p, objc_comptypes): Remove functions.
2757	(synth_module_prologue): Do not initialize 'unused_list'.
2758	(objc_get_class_reference): Fix ObjC++ impedance mismatches.
2759	(objc_declare_alias): Implement as a typedef.
2760	(objc_substitute_decl, objc_gimplify_expr): Reformat.
2761	(objc_get_class_ivars): Adjust call to get_class_ivars().
2762	(next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
2763	build_ivar_reference, get_super_receiver): Call
2764	objc_build_component_ref() instead of build_component_ref().
2765	(objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
2766	objc_comptypes().
2767	(build_private_template): Call objc_build_struct() instead of
2768	start_struct() and finish_struct().
2769	(hash_init): Initialize volatilized_htab.
2770	(objc_is_public): Adjust calls to objc_get_ivars(); adjust
2771	ObjC++ impedance mismatches.
2772	(encode_aggregate_within): Streamline by calling
2773	encode_aggregate_fields().
2774	* objc-act.h (objc_types_compatible_p): Remove prototype.
2775	(OCTI_UNUSED_LIST, unused_list): Remove slot.
2776	* objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
2777
27782005-05-18  Geoffrey Keating  <geoffk@apple.com>
2779
2780	* Make-lang.in (cc1obj-dummy): New.
2781	(cc1obj-checksum.c): New.
2782	(cc1obj-checksum.o): New.
2783	(cc1obj): Add cc1obj-checksum.o.
2784
27852005-05-18  Mike Stump  <mrs@apple.com>
2786
2787	PR objc/21641
2788	* objc-act.c (struct interface_tuple): Mark it up for GC.
2789	(interface_htab): It is really a struct interface_tuple.
2790
27912005-05-17  Ziemowit Laski  <zlaski@apple.com>
2792	    Mike Stump  <mrs@apple.com>
2793
2794	Yet more Objective-C++...
2795
2796	* objc-act.c (objc_finish_try_stmt): Add return value.
2797	(objc_build_synchronized): Likewise.
2798
2799	* objc-act.c (objc_is_gcable_type): Add.
2800	(objc_substitute_decl): Add.
2801	(objc_build_ivar_assignment): Add.
2802	(objc_build_global_assignment): Add.
2803	(objc_build_strong_cast_assignment): Add.
2804	(objc_is_ivar_reference_p): Add.
2805	(objc_is_global_reference_p): Add.
2806	(objc_generate_write_barrier): Add.
2807	(objc_rewrite_function_call): Add.
2808	(objc_gimplify_expr): Add Objective-C++ support.
2809	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
2810	(SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
2811	(INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
2812	(DUP_TYPE_OBJC_INFO): Likewise.
2813	(struct imp_entry): Add field has_cxx_cdtors.
2814	(struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
2815	OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
2816	OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
2817	OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
2818	OCTI_ASSIGN_STRONGCAST_DECL.
2819	(umsg_fast_decl): Add.
2820	(objc_assign_ivar_decl): Add.
2821	(objc_assign_ivar_fast_decl): Add.
2822	(objc_assign_global_decl): Add.
2823	(objc_assign_strong_cast_decl): Add.
2824	(objc_method_list_ptr): Add.
2825	(objc_method_proto_list_ptr): Add.
2826	(objc_ivar_list_ptr): Add.
2827
2828	* objc-act.c (should_call_super_dealloc): Add.
2829	(OBJC_VERSION): Bump to 6.
2830	(objc_is_gcable_type): Add.
2831	(objc_substitute_decl): Add.
2832	(objc_build_ivar_assignment): Add.
2833	(objc_build_global_assignment): Add.
2834	(objc_build_strong_cast_assignment): Add.
2835	(objc_is_gcable_p): Add.
2836	(objc_is_ivar_reference_p): Add.
2837	(objc_is_global_reference_p): Add.
2838	(generate_shared_structures): Add flags parameter.
2839	(objc_generate_cxx_ctor_or_dtor): Add.
2840	(objc_generate_cxx_cdtors): Add.
2841	(add_class): Add name parameter.
2842	(objc_types_share_size_and_alignment): Add.
2843	(comp_proto_with_proto): Add strict parameter.
2844	(CLS_HAS_CXX_STRUCTORS): Add.
2845	(TAG_ASSIGNIVAR): Add.
2846	(TAG_ASSIGNGLOBAL): Add.
2847	(TAG_ASSIGNSTRONGCAST): Add.
2848	(TAG_MSGSEND_FAST): Add.
2849	(TAG_ASSIGNIVAR_FAST): Add.
2850	(TAG_CXX_CONSTRUCT): Add.
2851	(TAG_CXX_DESTRUCT): Add.
2852	(OBJC_LOOKUP_CLASS): Add.
2853	(OBJC_LOOKUP_NO_SUPER): Add.
2854	(objc_finish_file): Add pch support.
2855	(objc_finish_implementation): Add Objective-C++ support.
2856	(synth_module_prologue): Likewise.
2857	(synth_module_prologue): Add fast dispatching.
2858	(objc_get_class_reference): Add Objective-C++ support.
2859	(objc_generate_write_barrier): Likewise.
2860	(next_sjlj_build_enter_and_setjmp): Likewise.
2861	(objc_begin_try_stmt): Likewise.
2862	(build_next_objc_exception_stuff): Add fast ivar support.
2863	(build_private_template): Mark the record as used so debug
2864	information is generated.
2865	(build_protocol_template): Add Objective-C++ support.
2866	(objc_method_parm_type) Likewise.
2867	(objc_generate_cxx_ctor_or_dtor): Likewise.
2868	(objc_generate_cxx_cdtors): Likewise.
2869	(build_protocol_initializer): Likewise.
2870	(build_category_template): Likewise.
2871	(build_class_template): Likewise.
2872	(build_method_list_template): Likewise.
2873	(build_category_initializer): Likewise.
2874	(build_shared_structure_initializer): Likewise.
2875	(objc_finish_message_expr): Likewise.
2876	(build_objc_method_call): Add fast dispatch support.
2877	(lookup_method_static): Add support to end search at superclasses.
2878	(add_method_to_hash_list): Add strict parameter to
2879	comp_proto_with_proto.
2880	(objc_add_method): Likewise.
2881	(objc_add_method): Also set the interface_value.
2882	(add_instance_variable): Add Objective-C++ support.
2883	(objc_is_public): Likewise.
2884	(start_class): Likewise.
2885	(continue_class): Likewise.
2886	(encode_aggregate_within): Likewise.
2887	(start_method_def): Likewise.
2888	(objc_start_function): Clear current_function_returns_value
2889	and current_function_returns_null.
2890	(really_start_method): Add Objective-C++ support.
2891	(objc_finish_method_definition): Add warning for missing
2892	[super dealloc].
2893	(finish_objc): Add Objective-C++ support.
2894	(generate_objc_image_info): Likewise.
2895	(objc_lookup_ivar): Likewise.
2896	* objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
2897	(INIT_TYPE_OBJC_INFO): Likewise.
2898	(DUP_TYPE_OBJC_INFO): Likewise.
2899
29002005-04-23  DJ Delorie  <dj@redhat.com>
2901
2902	* objc-act.c: Adjust warning() callers.
2903
29042005-04-21  Roger Sayle  <roger@eyesopen.com>
2905
2906	* objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
2907	this field of an objc method decl.
2908	* objc-act.c (build_method_decl): Take an additional "ellipsis"
2909	argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
2910	(objc_build_method_signature): Accept additional "ellipsis"
2911	argument and pass it to build_method_decl.
2912	(get_arg_type_list, start_method_def, gen_method_decl): Use
2913	the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
2914	TREE_OVERFLOW field of a TREE_LIST node.
2915
29162005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
2917
2918	PR c/12913
2919	* objc-act.c (objc_start_function): Create stack level for context
2920	of identifiers with variably modified type.
2921
29222005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
2923
2924	PR c/772
2925	PR c/17913
2926	* objc-act.c (objc_start_function): Push context on
2927	label_context_stack.
2928
29292005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2930
2931	* objc-act.c (next_sjlj_build_enter_and_setjmp,
2932	next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
2933	Call c_common_truthvalue_conversion.
2934
29352005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
2936
2937	* Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
2938	objc/objc-parse.c, objc/objc-parse.y): Remove
2939	(OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
2940	objc.distclean, objc.maintainer-clean): Update for new parser.
2941	* config-lang.in (gtfiles): Update for new parser.
2942
29432005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
2944
2945	* lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
2946	copyright.
2947
29482005-01-27  Matt Austern  <austern@apple.com>
2949
2950	* objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
2951	calling instantiate_pending_templates.
2952
29532005-01-26  Alexander Malmberg  <alexander@malmberg.org>
2954
2955	PR objc/18862
2956	* objc-act.c (build_selector_translation_table): Use
2957	input_location in the diagnostic for the GNU runtime or if
2958	TREE_PURPOSE (chain) is NULL.
2959
29602005-01-25  Alexander Malmberg  <alexander@malmberg.org>
2961
2962	PR objc/18408
2963	* objc-act.c (objc_types_compatible_p): New function.
2964	* objc-act.h (objc_types_compatible_p): Declare.
2965	* objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2966
29672005-01-16  Ziemowit Laski  <zlaski@apple.com>
2968
2969	* objc-act.c (objc_push_parm): Call c_type_promotes_to()
2970	via a lang-hook.
2971
29722005-01-15  Ziemowit Laski  <zlaski@apple.com>
2973
2974	PR objc/19321
2975	* objc-act.c (get_arg_type_list): Decay function arguments into
2976	pointers.
2977	(objc_push_parm): Likewise; bring PARM_DECL construction closer
2978	in line with what the C front-end does.
2979	(objc_get_parm_info): Call pushdecl() and finish_decl() on
2980	each PARM_DECL, like the C front-end does.
2981	(start_method_def): Remove redundant ARRAY_TYPE decay.
2982	(objc_start_function): Bring closer in line with what the
2983	C front-end does for functions.
2984
29852005-01-14  Mike Stump  <mrs@apple.com>
2986
2987	* lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
2988	that -fobjc-exceptions is accepted.
2989
29902004-12-30  Ziemowit Laski  <zlaski@apple.com>
2991
2992	PR objc/18971
2993	* objc-act.c (get_arg_type_list, start_method_def): Decay
2994	array arguments into pointers.
2995	(gen_type_name_0): Learn to pretty-print array types.
2996
29972004-12-15  Ziemowit Laski  <zlaski@apple.com>
2998
2999	* objc-act.c (build_private_template): Change to return 'void'; do
3000	not set ivar_context, uprivate_record or objc_instance_type.
3001	(objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
3002	retrieve protocol list from the pointee rather than the pointer itself;
3003	check TYPE_HAS_OBJC_INFO(...) precondition before accessing
3004	TYPE_OBJC_PROTOCOL_LIST.
3005	(objc_get_protocol_qualified_type): For types 'id' and 'Class',
3006	construct a variant of the pointee as well as the pointer, and
3007	store protocol information in the former.  When creating variants
3008	of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
3009	TYPE_OBJC_INTERFACE information.
3010	(objc_declare_class): If a TYPE_DECL is looked up, retrieve the
3011	underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
3012	for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
3013	holding an IDENTIFIER_NODE.
3014	(objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
3015	accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
3016	of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
3017	an IDENTIFIER_NODE (meaning a @class forward-declaration only).
3018	(objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
3019	lookup_interface().
3020	(continue_class): For @implementations, set ivar_context,
3021	uprivate_record and objc_instance_type, for @interfaces, call
3022	build_private_template().
3023	(encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
3024	TYPE_OBJC_INTERFACE.
3025	(objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
3026	accessing TYPE_OBJC_PROTOCOL_LIST.
3027	* objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
3028	DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
3029	SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
3030	(TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
3031	to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
3032	(TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
3033	TYPE_LANG_SPECIFIC(...).
3034	(TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
3035	(IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
3036	TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
3037	adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
3038	instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
3039
30402004-11-29  Joseph Myers  <joseph@codesourcery.com>
3041
3042	PR c/7544
3043	* Make-lang.in (objc/objc-act.o): Update dependencies.
3044	* objc-act.c (objc_finish_file): Call
3045	maybe_apply_pending_pragma_weaks if not OBJCPLUS.
3046
30472004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
3048
3049	PR objc/18406
3050	* obj-act.c (encode_type): 96bits doubles are encoded the
3051	same way as 64bit and 128bit doubles are.
3052
30532004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
3054
3055	* objc-act.c: Use %q, %< and %> for quoting in diagnostics.
3056
30572004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
3058
3059	PR objc/16546
3060	* objc-act.c (generate_method_descriptors): Remove setting
3061	the new decls' type to variable_length_type.
3062	(generate_ivar_lists): Likewise.
3063	(generate_dispatch_tables): Likewise.
3064
30652004-10-30  Ziemowit Laski  <zlaski@apple.com>
3066
3067	* objc-act.c (objc_lookup_ivar): The new OTHER parameter
3068	contains the result of the ID lookup by the C or C++
3069	front-end; in class methods, use OTHER if it exists;
3070	in instance methods, use OTHER only if it is locally
3071	declared.
3072
30732004-10-26  Ziemowit Laski  <zlaski@apple.com>
3074
3075	* objc-act.c (finish_class): Do not synthesize bogus
3076	'extern objc_object *_Foo;' declarations for @interface Foo.
3077
30782004-10-25  Ziemowit Laski  <zlaski@apple.com>
3079	    David Ayers  <d.ayers@inode.at>
3080
3081	* objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
3082	instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
3083	'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
3084	'Class <Protocol> == id' and 'Class <Protocol> == Class'.
3085	(objc_is_id): Add test for 'super'.
3086	(objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
3087	receivers; if class methods are not found in protocol lists, search
3088	for instance methods therein and warn if one is found.  Look in
3089	global hash tables for suitable method as a last resort when messaging
3090	'id <Proto>', 'Class <Proto>' and invalid receiver types.
3091	(objc_add_method): Insert instance methods listed in protocols into
3092	the global class method hash table.
3093	* objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
3094	IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
3095	addition to 'id <Proto>'.
3096
30972004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
3098
3099	PR objc/17923
3100	* objc-act.c (objc_build_string_object): Create a CONST_DECL
3101	for the NeXT runtime case.
3102
31032004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
3104
3105	* objc-act.c: Fix comment typos.
3106
31072004-09-24  Ziemowit Laski  <zlaski@apple.com>
3108
3109	* objc-act.c (init_objc_symtab, init_module_descriptor,
3110	build_shared_structure_initializer): When initializing 'long'
3111	fields, ensure that the initializer value is also 'long'.
3112
31132004-09-24  Zack Weinberg  <zack@codesourcery.com>
3114
3115	* objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
3116	throughout.
3117	(objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
3118	(build_selector_translation_table): Use %J in diagnostic
3119	instead of diddling input_line.  Fix spelling.
3120
31212004-09-21  Ziemowit Laski  <zlaski@apple.com>
3122
3123	* objc-act.c (objc_fold_objc_type_ref): New function.
3124	* objc-act.h (objc_fold_objc_type_ref): New prototype.
3125
31262004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
3127
3128	* objc-act.c (objc_start_function, really_start_method,
3129	objc_get_parm_info, start_method_def): Update to new arg_info
3130	structures.
3131
31322004-09-07  Ziemowit Laski  <zlaski@apple.com>
3133
3134	* Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
3135	objc/objc-act.h.
3136	(objc/objc-act.o): Depend on $(HASHTAB_H).
3137	* objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
3138	objcp-decl.h instead of c-tree.h.
3139	(build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
3140	error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
3141	build_protocol_template): Adjust prototypes.
3142	(build_module_initializer_routine, start_class, continue_class,
3143	finish_class, start_method_def, objc_start_function, start_protocol,
3144	build_method_decl, objc_add_method, add_instance_variable,
3145	build_ivar_reference, is_ivar, is_private, get_super_receiver,
3146	build_selector_table_decl, objc_push_parm, objc_get_parm_info,
3147	gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
3148	create_field_decl): New prototypes.
3149	(objc_expand_function_end, comp_method_with_proto, objc_expr_last,
3150	gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
3151	define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
3152	(TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
3153	(CLASS_TYPEDEF_NAME): New.
3154	(TAG_EXECCLASS): Change from a global variable to a #define.
3155	(TAG_RETURN_STRUCT): Delete.
3156	(TAG_GNUINIT): New, holds '__objc_gnu_init' name.
3157	(objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
3158	(string_descriptor): New struct.
3159	(string_htab): New hash table.
3160	(string_hash, string_eq): New prototypes.
3161	(generate_struct_by_value_array): Call create_field_decl() instead of
3162	create_builtin_decl().
3163	(objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
3164	In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
3165	(objc_finish_file): In ObjC++, call instantiate_pending_templates()
3166	and cp_finish_file().
3167	(define_decl, get_static_reference, get_protocol_reference,
3168	create_builtin_decl): Remove functions.
3169	(objc_start_class_interface, objc_start_category_interface,
3170	objc_start_protocol, objc_continue_interface, objc_finish_interface,
3171	objc_start_class_implementation, objc_start_category_implementation,
3172	objc_continue_implementation, objc_finish_implementation,
3173	objc_set_visibility, objc_set_method_type,
3174	objc_build_method_signature, objc_add_method_declaration,
3175	objc_start_method_definition, objc_add_instance_variable,
3176	objc_get_protocol_qualified_type, create_field_decl,
3177	start_var_decl, finish_var_decl): New functions.
3178	(setup_string_decl): Simplify since it is only called once.
3179	(synth_module_prologue): Call build_class_template(); predefine 'id'
3180	and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
3181	hooks for duration of function; fix GNU runtime messenger signatures
3182	to correspond to reality; forward-declare '__objc_exec_class' for the
3183	GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
3184	'extern "C" { ... }' wrappers around synthesized declarations; call
3185	build_protocol_template() and build_category_template().
3186	(string_hash, string_eq): New functions.
3187	(objc_build_string_object): Check metaclass correctness only once;
3188	store string literals in hash table.
3189	(objc_build_constructor): Do not convert initializer elements;
3190	adjust for ObjC++ impedance mismatch.
3191	(build_objc_symtab_template): Call create_field_decl() instead of
3192	create_builtin_decl().
3193	(init_objc_symtab): Add missing conversion to initializer element.
3194	(build_metadata_decl): Call start_var_decl() instead of define_decl().
3195	(generate_objc_symtab_decl): Do not call build_category_template();
3196	call start_var_decl() and finish_var_decl() instead of start_decl()
3197	and finish_decl().
3198	(build_module_descriptor): Call create_field_decl() instead of
3199	grokfield(); call start_var_decl() and finish_var_decl() instead of
3200	start_decl() and finish_decl(); always mark module descriptor as
3201	used; move GNU runtime-specific functionality to
3202	build_module_initializer_routine().
3203	(build_module_initializer_routine): New function, broken off of
3204	build_module_descriptor().
3205	(objc_static_init_needed_p, objc_generate_static_init_call): New
3206	functions.
3207	(generate_static_references, generate_strings,
3208	build_selector_translation_table, generate_descriptor_table,
3209	generate_ivars_list, generate_dispatch_table, generate_category): Call
3210	start_var_decl() and finish_var_decl() instead of start_decl() and
3211	finish_decl(); build a type directly instead of via groktypename().
3212	(build_selector_reference_decl, build_selector_table_decl,
3213	build_class_reference_decl, build_protocol_reference,
3214	generate_objc_image_info): Call start_var_decl() instead of
3215	build_decl().
3216	(build_selector_reference): For GNU runtime, do not call
3217	build_selector_reference_decl().
3218	(build_selector, build_typed_selector_reference): Always convert
3219	result to the selector type.
3220	(add_objc_string): Cast return value to 'char *'.
3221	(build_method_prototype_template, build_selector_template,
3222	build_method_template): Use actual selector type for fields
3223	pointing to selectors.
3224	(finish_objc): For GNU runtime, call
3225	build_module_initializer_routine() after build_module_descriptor().
3226	(generate_protocol_list, generate_shared_structures): Call
3227	start_var_decl() and finish_var_decl() instead of start_decl() and
3228	finish_decl(); build a type directly instead of via
3229	groktypename().
3230	(synth_id_with_class_suffix): Return a string.
3231	(get_arg_type_list): For instance methods, use the instance type for
3232	'self'; do not call groktypename_in_parm_context().
3233	(build_objc_string_decl): Squash redeclaration errors in ObjC++.
3234	(objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
3235	handle RECORD_TYPEs in ObjC as well as ObjC++.
3236	(objc_is_id): New function.
3237	(objc_is_object_ptr): Return the canonical type node.
3238	(objc_get_class_ivars): Simplify using get_class_ivars().
3239	(get_class_ivars): Remove second parameter; create a fresh copy
3240	of the ivar list for each call; do not check for existence of
3241	super class.
3242	(objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
3243	(objc_init_exceptions): When using SJLJ-style exceptions, require
3244	the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
3245	exceptions.
3246	(objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
3247	objc_object_type instead of objc_id_type.
3248	(objc_begin_catch_clause): Convert the incoming PARM_DECL into
3249	a VAR_DECL before placing it in the appropriate scope; do not
3250	call define_decl(); adjust call to c_begin_compound_stmt();
3251	use objc_object_type instead of objc_id_type.
3252	(build_next_objc_exception_stuff): Call create_field_decl() instead
3253	of create_builtin_decl(); construct type directly instead of calling
3254	groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
3255	(build_private_template): Adjust call to get_class_ivars(); build
3256	a type directly instead of via groktypename().
3257	(build_protocol_template, build_method_prototype_list_template,
3258	build_method_prototype_template, build_category_template,
3259	build_selector_template, build_class_template, build_super_template,
3260	build_ivar_template, build_ivar_list_template,
3261	build_method_list_template, build_method_template):
3262	Call create_field_decl() instead of grokfield().
3263	(objc_method_parm_type): Do not call groktypename().
3264	(generate_descriptor_table): Call start_var_decl() and
3265	finish_var_decl() instead of start_decl() and finish_decl().
3266	(generate_method_descriptors, build_protocol_initializer,
3267	generate_dispatch_tables, build_category_initializer,
3268	build_shared_structure_initializer): Do not call groktypename().
3269	(generate_protocols): Call start_var_decl() and finish_var_decl()
3270	instead of start_decl() and finish_decl(); do not call groktypename().
3271	(error_with_ivar): Remove last parameter.
3272	(check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
3273	to CLASS_IVARS lists; adjust calls to error_with_ivar().
3274	(generate_ivar_lists): Convert one of the initializer elements; do
3275	not call groktypename().
3276	(get_arg_type_list, start_method_def, gen_method_def): Account for
3277	new representation of variable arguments and '...' in Objective-C
3278	methods; add Objective-C++ impedance matching code.
3279	(is_objc_type_qualifier): Remove function.
3280	(adjust_type_for_id_default): Simplify; there is no longer a need to
3281	wade through declspecs.
3282	(lookup_interface, start_class, continue_class,
3283	finish_class, start_method_def, start_protocol, build_method_decl,
3284	objc_add_method, add_instance_variable, build_ivar_reference,
3285	is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
3286	Make into static functions.
3287	(receiver_is_class_object): Use new IS_CLASS() macro.
3288	(objc_build_message_expr): Tweak ObjC++ message argument handling;
3289	call objc_finish_message_expr() instead of finish_message_expr().
3290	(finish_message_expr): Rename to objc_finish_message_expr(); use
3291	OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
3292	call gen_type_name() instead of gen_declaration(); call objc_is_id()
3293	instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
3294	calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
3295	(build_objc_method_call, warn_with_method): Do not call groktypename().
3296	(build_ivar_reference): Call convert() instead of clobbering in a
3297	type.
3298	(hash_init): Initialize string_htab hash table.
3299	(add_instance_variable): Simplify parameter list; do not call grokfield();
3300	do not populate CLASS_IVARS list.
3301	(start_class): Check for the existence of super class, if one was specified.
3302	(continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
3303	call build_class_template(); adjust call to get_class_ivars(); call
3304	build_decl(), pushdecl() and finish_decl() instead of define_decl().
3305	(finish_class): Call build_decl(), pushdecl() and finish_decl() instead
3306	of define_decl().
3307	(add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
3308	(start_protocol): Do not call build_protocol_template(); use
3309	PROTOCOL_BINFO_ELTS for the tree vector size.
3310	(encode_type_qualifiers): Do not handle the 'const' qualifier here.
3311	(encode_pointer): Encode 'const char *' as 'r*', for backwards
3312	compatibility.
3313	(encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
3314	(encode_type): Handle the 'const' qualifier here.
3315	(objc_parmlist): New global variable, sued by objc_push_parm and
3316	objc_get_parm_info().
3317	(objc_push_parm, objc_get_parm_info): New functions.
3318	(objc_expr_last): Remove function.
3319	(synth_self_and_ucmd_args): For instance methods, use the instance
3320	type for 'self'; call objc_push_parm() instead of push_parm_decl().
3321	(start_method_def): Do not call push_scope(), declare_parm_level(),
3322	pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
3323	just use objc_push_parm() and objc_get_parm_info().
3324	(comp_method_with_proto): Remove function.
3325	(objc_types_are_equivalent): Strip away indirections before comparing
3326	underlying types.
3327	(comp_proto_with_proto): Do not call groktypename(); types are no
3328	longer in raw declspec format.
3329	(objc_start_function): New function.
3330	(really_start_method): Call comp_proto_with_proto() instead of
3331	comp_method_with_proto(); call objc_start_function() instead of
3332	hand-crafting a function declarator.
3333	(continue_method_def, objc_expand_function_end): Remove functions.
3334	(get_super_receiver): Call objc_get_current_scope() instead of
3335	get_current_scope(); reference 'super_class' field (instead of
3336	'class').
3337	(finish_method_def): Rename to objc_finish_method_definition() and
3338	add a function decl parameter; move method encoding call from
3339	objc_expand_function_end().
3340	(is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
3341	gen_declaration_1): Remove functions.
3342	(tmpbuf, RAW_DECLSPEC): Remove.
3343	(gen_declaration): Remove second parameter; simplify to deal
3344	with TYPE_P nodes instead of raw declspecs.
3345	(gen_type_name, gen_type_name_0): New functions.
3346	(gen_method_decl): Remove second parameter; call gen_type_name()
3347	instead of gen_declaration_1().
3348	(dump_interface): Adjust calls to gen_declaration() and
3349	gen_method_decl(); do not allocate a separate string buffer.
3350	(init_objc): Allocate a larger string buffer to accommodate
3351	dump_interface(); adjust call to build_module_descriptor();
3352	add call to build_module_initializer_routine() for the GNU
3353	runtime.
3354	(generate_classref_translation_entry): Do not call start_decl(); call
3355	finish_var_decl() instead of finish_decl(); call convert() instead of
3356	build_c_cast().
3357	* objc-act.h (CLASS_OWN_IVARS): Remove accessor.
3358	(CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
3359	gone.
3360	(OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
3361	(OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
3362	(OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
3363	objc_object_type and objc_object_name, respectively.
3364	(OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
3365	objc_class_name): New.
3366	(IS_CLASS): New macro.
3367	(IS_ID, IS_SUPER): Robustify.
3368	(OCTI_EXECCLASS_DECL, execclass_decl): New.
3369	(finish_file, start_class, continue_class, finish_class,
3370	start_method_def, continue_method_def, finish_method_def,
3371	start_protocol, finish_protocol, objc_build_throw_stmt,
3372	objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
3373	objc_build_synchronized_epilogue, objc_build_try_prologue,
3374	objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
3375	objc_build_finally_prologue, objc_build_finally_epilogue,
3376	is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
3377	get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
3378	get_class_reference, get_static_reference, get_object_reference,
3379	build_message_expr, finish_message_expr, build_selector_expr,
3380	build_ivar_reference, build_keyword_decl, build_method_decl,
3381	build_protocol_expr, build_objc_string_object, objc_declare_alias,
3382	objc_declare_class, objc_declare_protocols, objc_comptypes,
3383	objc_check_decl, build_encode_expr): Remove prototypes.
3384	(imp_count, cat_count): Make GGC-aware.
3385	(OBJC_SET_TYPE_NAME): New macro.
3386
33872004-09-03  Ziemowit Laski  <zlaski@apple.com>
3388
3389	* config-lang.in: Update copyright notice.
3390	(lang_requires): Indicate that ObjC requires C to be built first.
3391
33922004-09-01  Ziemowit Laski  <zlaski@apple.com>
3393
3394	* objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
3395	TYPE_NAME.
3396	(build_objc_string_object): Rename to objc_build_string_object().
3397	(get_class_reference): Rename to objc_get_class_reference().
3398	(get_class_ivars_from_name): Rename to objc_get_class_ivars().
3399	(next_sjlj_build_catch_list, get_super_receiver): Call
3400	objc_get_class_reference() instead of get_class_reference().
3401	(build_keyword_decl): Rename to objc_build_keyword_decl().
3402	(build_message_expr): Rename to objc_build_message_expr().
3403	(build_protocol_expr): Rename to objc_build_protocol_expr().
3404	(build_selector_expr): Rename to objc_build_selector_expr().
3405	(build_encode_expr): Rename to objc_build_encode_expr().
3406	* objc-act.h (get_class_ivars_from_name): Rename prototype to
3407	objc_get_class_ivars().
3408	(get_class_reference): Rename prototype to objc_get_class_reference().
3409	(build_message_expr): Rename prototype to objc_build_message_expr().
3410	(build_selector_expr): Rename prototype to objc_build_selector_expr().
3411	(build_keyword_decl): Rename prototype to objc_build_keyword_decl().
3412	(build_protocol_expr): Rename prototype to objc_build_prototype_expr().
3413	(build_objc_string_object): Rename prototype to
3414	objc_build_string_object().
3415
34162004-09-01  Ziemowit Laski  <zlaski@apple.com>
3417
3418	* objc-act.c (lookup_interface): Make function 'static' and add a
3419	local prototype.
3420	(objc_check_decl, get_class_reference, objc_declare_alias,
3421	objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
3422	instead of is_class_name().
3423	(get_super_receiver, objc_clear_super_receiver): Call
3424	objc_get_current_scope() instead of get_current_scope().
3425	(is_class_name): Rename to objc_is_class_name.
3426	(lookup_objc_ivar): Rename to objc_lookup_ivar.
3427
34282004-08-28  Ziemowit Laski  <zlaski@apple.com>
3429
3430	* objc-act.c (objc_is_reserved_word): New function.
3431
34322004-08-15  Ziemowit Laski  <zlaski@apple.com>
3433
3434	* Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
3435	$(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
3436	(objc/objc-parse.o): Do not depend on gtype-objc.h.
3437	* objc-act.c: Do not include gtype-objc.h.
3438	(finish_file): Rename to objc_finish_file().
3439	* objc-act.h (finish_file): Update copyright notice; remove prototype.
3440	* objc-lang.c: Update copyright notice; include diagnostic.h,
3441	c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
3442	toplev.h.
3443	(finish_file): New hook routine.
3444	(LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
3445	LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
3446	LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
3447	LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
3448	LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
3449	LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
3450	LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
3451	LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
3452	LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
3453	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
3454	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
3455	LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3456	LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3457	LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
3458	LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
3459	LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
3460	LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
3461	LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
3462	LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
3463	LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
3464	LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
3465	LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
3466	LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
3467	LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
3468	Move to c-objc-common.h.
3469
3470
3471Copyright (C) 2004-2014 Free Software Foundation, Inc.
3472
3473Copying and distribution of this file, with or without modification,
3474are permitted in any medium without royalty provided the copyright
3475notice and this notice are preserved.
3476