12019-05-03  Release Manager
2
3	* GCC 9.1.0 released.
4
52019-04-05  Martin Liska  <mliska@suse.cz>
6
7	PR translation/89936
8	* objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in
9	order to wrap keywords or arguments.
10	(objc_add_synthesize_declaration_for_property): Likewise.
11
122019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
13
14	PR other/16615
15
16	* objc-act.c: Mechanically replace "can not" with "cannot".
17
182019-01-01  Jakub Jelinek  <jakub@redhat.com>
19
20	Update copyright years.
21
222018-12-19  David Malcolm  <dmalcolm@redhat.com>
23
24	PR c++/43064
25	PR c++/43486
26	* objc-act.c (objc_maybe_build_component_ref): Strip any location
27	wrapper before checking for UOBJC_SUPER_decl and self_decl.
28	(objc_finish_message_expr): Strip any location wrapper.
29	(gen_declaration): Strip location wrappers from "w".
30
312018-10-17  David Malcolm  <dmalcolm@redhat.com>
32
33	* Make-lang.in (selftest-objc): New.
34
352018-04-20  Martin Liska  <mliska@suse.cz>
36
37	PR objc/85476
38	* objc-act.c (finish_class): Do not overflow string buffer.
39
402018-01-03  Jakub Jelinek  <jakub@redhat.com>
41
42	Update copyright years.
43
442017-11-30  Jakub Jelinek  <jakub@redhat.com>
45
46	* objc-next-runtime-abi-01.c (generate_dispatch_table): Use ; instead
47	of ;;.
48
492017-11-10  Martin Sebor  <msebor@redhat.com>
50
51	PR c/81117
52	* objc-encoding.c (encode_type): Use memcpy instead of strncpy.
53
542017-10-31  David Malcolm  <dmalcolm@redhat.com>
55
56	* objc-gnu-runtime-abi-01.c (objc_gnu_runtime_abi_01_init): Use
57	UNKNOWN_LOCATION rather than 0.
58
592017-10-17  Nathan Sidwell  <nathan@acm.org>
60
61	* objc-act.c (objc_common_tree_size): Return size of TYPE nodes.
62
632017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
64
65	* objc-act.c (objc_decl_method_attributes): Use wi::to_wide when
66	operating on trees as wide_ints.
67
682017-09-29  Jakub Jelinek  <jakub@redhat.com>
69
70	* objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at
71	DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.
72
732017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
74	    Alan Hayward  <alan.hayward@arm.com>
75	    David Sherwood  <david.sherwood@arm.com>
76
77	* objc-encoding.c (encode_type): Use SCALAR_INT_TYPE_MODE.
78
792017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
80	    Alan Hayward  <alan.hayward@arm.com>
81	    David Sherwood  <david.sherwood@arm.com>
82
83	* objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE
84	instead of TYPE_MODE.
85
862017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
87	    Alan Hayward  <alan.hayward@arm.com>
88	    David Sherwood  <david.sherwood@arm.com>
89
90	* objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in
91	case statements.
92
932017-08-09  Marek Polacek  <polacek@redhat.com>
94
95	PR c/81417
96	* objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update
97	a call to build_conditional_expr.
98
992017-08-08  Martin Liska  <mliska@suse.cz>
100
101	* objc-gnu-runtime-abi-01.c: Include header files.
102	* objc-next-runtime-abi-01.c: Likewise.
103	* objc-next-runtime-abi-02.c: Likewise.
104
1052017-07-20  Nathan Sidwell  <nathan@acm.org>
106
107	Remove TYPE_METHODS.
108	* objc-runtime-shared-support.c (build_ivar_list_initializer):
109	Don't presume first item is a FIELD_DECL.
110
1112017-07-19  Nathan Sidwell  <nathan@acm.org>
112
113	* objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use
114	TYPE_{MIN,MAX}_VALUE_RAW.
115
1162017-05-16  Sylvestre Ledru  <sylvestre@debian.org>
117
118	* objc-runtime-shared-support.c (build_module_descriptor):
119	Remove unnecessary conditional when building instance of
120	objc_module. CID 1406758
121
1222017-05-09  Nathan Sidwell  <nathan@acm.org>
123
124	* objc-gnu-runtime-abi-01.c (objc_add_static_instance): Use
125	pushdecl lang_hook.
126
1272017-05-04  Martin Sebor  <msebor@redhat.com>
128
129	PR translation/80280
130	* objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing
131	quoting to directives.
132	* objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto.
133	* objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto.
134
1352017-01-01  Jakub Jelinek  <jakub@redhat.com>
136
137	Update copyright years.
138
1392016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
140	    Richard Biener  <rguenther@suse.de>
141
142	* config-lang.in (gtfiles): Add c/c-parser.h.
143
1442016-09-27  Jakub Jelinek  <jakub@redhat.com>
145
146	* objc-act.c (continue_class): Remove break after return.
147	(objc_maybe_printable_name): Likewise.
148
1492016-08-12  Marek Polacek  <polacek@redhat.com>
150
151	PR c/7652
152	* objc-encoding.c (encode_type): Add FALLTHRU.
153
1542016-06-07  David Malcolm  <dmalcolm@redhat.com>
155
156	* objc-act.c (objc_build_component_ref): Update call
157	to build_component_ref for added param, passing UNKNOWN_LOCATION.
158
1592016-04-18  Michael Matz  <matz@suse.de>
160
161	* objc-act.c (objc_build_struct): Use SET_DECL_ALIGN.
162
1632016-02-12  Jakub Jelinek  <jakub@redhat.com>
164
165	* objc-act.c: Spelling fixes - behaviour -> behavior and
166	neighbour -> neighbor.
167	* objc-map.h: Likewise.
168
1692016-01-04  Jakub Jelinek  <jakub@redhat.com>
170
171	Update copyright years.
172
1732015-11-11  Andrew MacLeod  <amacleod@redhat.com>
174
175	* objc-act.c: Remove unused header files.
176	* objc-encoding.c: Likewise.
177	* objc-gnu-runtime-abi-01.c: Likewise.
178	* objc-lang.c: Likewise.
179	* objc-map.c: Likewise.
180	* objc-next-runtime-abi-01.c: Likewise.
181	* objc-next-runtime-abi-02.c: Likewise.
182	* objc-runtime-shared-support.c: Likewise.
183
1842015-11-09  Alan Modra  <amodra@gmail.com>
185
186	* objc-encoding.c (encode_aggregate_within): Cast obstack_next_free
187	return value.
188
1892015-10-29  Andrew MacLeod  <amacleod@redhat.com>
190
191	* objc-lang.c: Reorder #include's and remove duplicates.
192	* objc-map.c: Likewise.
193
1942015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
195
196	* objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h:
197	Remove useless typedefs.
198
1992015-07-12  Aldy Hernandez  <aldyh@redhat.com>
200
201	* objc-map.h: Fix double word typos.
202
2032015-07-07  Andrew MacLeod  <amacleod@redhat.com>
204
205	* objc-act.c: Adjust includes.
206	* objc-encoding.c: Likewise.
207	* objc-gnu-runtime-abi-01.c: Likewise.
208	* objc-lang.c: Likewise.
209	* objc-map.c: Likewise.
210	* objc-next-runtime-abi-01.c: Likewise.
211	* objc-next-runtime-abi-02.c: Likewise.
212	* objc-runtime-shared-support.c: Likewise.
213
2142015-06-25  Andrew MacLeod  <amacleod@redhat.com>
215
216	* objc-act.c: Remove ipa-ref.h and plugin-api.h from include list.
217
2182015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
219
220	* objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash
221	rather than ggc_hasher.
222
2232015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
224
225	* objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather
226	than typed_noop_remove.  Remove redudant typedefs.
227
2282015-06-17  Andrew MacLeod  <amacleod@redhat.com>
229
230	* objc-act.c: Do not include input.h, line-map.h or is-a.h.
231	* objc-encoding.c: Likewise.
232	* objc-gnu-runtime-abi-01.c: Likewise.
233	* objc-lang.c: Likewise.
234	* objc-map.c: Likewise.
235	* objc-next-runtime-abi-01.c: Likewise.
236	* objc-next-runtime-abi-02.c: Likewise.
237	* objc-runtime-shared-support.c: Likewise.
238
2392015-06-08  Andrew MacLeod  <amacleod@redhat.com>
240
241	* objc-act.c : Adjust include files.
242	* objc-encoding.c : Likewise.
243	* objc-gnu-runtime-abi-01.c : Likewise.
244	* objc-lang.c : Likewise.
245	* objc-map.c : Likewise.
246	* objc-next-runtime-abi-01.c : Likewise.
247	* objc-next-runtime-abi-02.c : Likewise.
248	* objc-runtime-shared-support.c : Likewise.
249
2502015-06-08  Aldy Hernandez  <aldyh@redhat.com>
251
252	* objc-runtime-shared-support.c (build_module_descriptor): Set
253	TREE_USED on UOBJC_MODULES_decl.
254
2552015-06-05  Aldy Hernandez  <aldyh@redhat.com>
256
257	* objc-act.c (objc_write_global_declarations): Adjust comment.
258	* objc-gnu-runtime-abi-01.c (build_selector_table_decl): Set
259	TREE_USED bit.
260
2612015-06-04  Andrew MacLeod  <amacleod@redhat.com>
262
263	* objc-act.c: Adjust includes for restructured coretypes.h.
264	* objc-encoding.c: Likewise.
265	* objc-gnu-runtime-abi-01.c: Likewise.
266	* objc-lang.c: Likewise.
267	* objc-map.c: Likewise.
268	* objc-next-runtime-abi-01.c: Likewise.
269	* objc-next-runtime-abi-02.c: Likewise.
270	* objc-runtime-shared-support.c: Likewise.
271
2722015-04-27  Jim Wilson  <jim.wilson@linaro.org>
273
274	* Make-lang.in (objc.mostlyclean): Remove cc1obj.
275
2762015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
277
278	* objc-act.c: Adjust for hash_table changes.
279
2802015-01-09  Michael Collison  <michael.collison@linaro.org>
281
282	* objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
283	input.h, alias.h, symtab.h, options, fold-const.h,
284	wide-int.h, and inchash.h due to flattening of tree.h.
285	* objc-encoding.c: Ditto.
286	* objc-gnu-runtime-abi-01.c: Ditto.
287	* objc-lang.c: Ditto.
288	* objc-map.c: Ditto.
289	* objc-next-runtime-abi-01.c: Ditto.
290	* objc-next-runtime-abi-02.c: Ditto.
291	* objc-runtime-shared-support.c: Ditto.
292
2932015-01-05  Jakub Jelinek  <jakub@redhat.com>
294
295	Update copyright years.
296
2972014-10-28  Andrew MacLeod  <amacleod@redhat.com>
298
299	* objc-act.c: Adjust include files.
300
3012014-10-22  Alan Modra  <amodra@gmail.com>
302
303	* objc-encoding.c (encode_array): Cast result of obstack_base.
304	(encode_type): Likewise.
305
3062014-10-16  Andrew MacLeod  <amacleod@redhat.com>
307
308	* objc-act.c: Adjust include files.
309
3102014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
311
312	* objc-act.c: use hash_table instead of hashtab.
313
3142014-09-15  Jakub Jelinek  <jakub@redhat.com>
315
316	* Make-lang.in (check_objc_parallelize): Change to just an upper
317	bound number.
318
3192014-07-14  Jan Hubicka  <hubicka@ucw.cz>
320
321	* objc-act.c (objc_common_tree_size): New function.
322	* objc-act.h (KEYWORD_KEY_NAME, KEYWORD_ARG_NAME): Add type
323	checking.
324	(INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro.
325	(METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS,
326	METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING,
327	METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking.
328	(METHOD_SEL_ARGS): Use decl_common.size instead of
329	decl_non_common.result.
330	(PROPERTY_NAME, PROPERTY_GETTER_NAME, PROPERTY_SETTER_NAME,
331	PROPERTY_READONLY, PROPERTY_NONATOMIC, PROPERTY_ASSIGN_SEMANTICS,
332	PROPERTY_IVAR_NAME, PROPERTY_DYNAMIC, PROPERTY_HAS_NO_GETTER,
333	PROPERTY_HAS_NO_SETTER, PROPERTY_OPTIONAL): Add type checking.
334	(objc_common_tree_size): Declare.
335	* objc-lang.c (LANG_HOOKS_TREE_SIZE): New macro.
336
3372014-06-24  Jan Hubicka  <hubicka@ucw.cz>
338
339	* objc-act.c (objc_xref_basetypes): Set TYPE_BINFO of type variants,
340	too.
341
3422014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
343
344	* objc-act.c: Adjust.
345
3462014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
347
348	* objc-act.c (objc_build_string_object): Adjust.
349	(continue_class): Likewise.
350	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
351	* objc-map.c (objc_map_alloc_ggc): Likewise.
352	(objc_map_private_resize): Likewise.
353	* objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init):
354	Likewise.
355	(hash_name_enter): Likewise.
356
3572014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
358	    Mike Stump  <mikestump@comcast.net>
359	    Richard Sandiford  <rdsandiford@googlemail.com>
360
361	* objc-act.c: Include wide-int.h.
362	(objc_decl_method_attributes): Use wide-int interfaces.
363
3642014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
365
366	PR objc/56044
367	* objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add.
368	(objc_init): Initialize objc_default_ivar_visibility.
369	(objc_start_class_interface): Use objc_default_ivar_visibility.
370	(objc_start_class_implementation): Likewise.
371	(objc_lookup_ivar): Implement -fno-local-ivars.
372
3732014-01-31  Marek Polacek  <polacek@redhat.com>
374
375	PR c/59963
376	* objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to
377	build_function_call_vec.
378	(finish_catch): Likewise.
379	(next_runtime_abi_02_get_class_reference): Likewise.
380	* objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to
381	build_function_call_vec.
382	(build_throw_stmt): Likewise.
383	* objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to
384	build_function_call_vec.
385	(build_throw_stmt): Likewise.
386
3872014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
388
389	Update copyright years
390
3912013-12-04  Joseph Myers  <joseph@codesourcery.com>
392
393	PR c/52023
394	* objc-act.c (objc_synthesize_getter): Update calls to
395	c_sizeof_or_alignof_type.
396
3972013-11-22  Andrew MacLeod  <amacleod@redhat.com>
398
399	* objc/objc-act.c: Add required include files from gimple.h.
400
4012013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
402
403	* objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi
404	throughout.
405
4062013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
407
408	* objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with
409	tree_to_shwi throughout.
410
4112013-11-14  Andrew MacLeod  <amacleod@redhat.com>
412
413	* objc-act.c: Include only gimplify.h and gimple.h as needed.
414
4152013-11-14  Diego Novillo  <dnovillo@google.com>
416
417	* objc-act.c: Include stringpool.h.
418	Include stor-layout.h.
419	Include attribs.h.
420	* objc-encoding.c: Include stringpool.h.
421	Include stor-layout.h.
422	* objc-gnu-runtime-abi-01.c: Include stringpool.h.
423	* objc-next-runtime-abi-01.c:
424	Include stringpool.h.
425	* objc-next-runtime-abi-02.c: Include stringpool.h.
426	* objc-runtime-shared-support.c: Include stringpool.h.
427
4282013-11-12  Andrew MacLeod  <amacleod@redhat.com>
429
430	* objc-act.c: Include gimplify.h.
431
4322013-11-07  Andrew MacLeod  <amacleod@redhat.com>
433
434	* objc-act.c (objc_push_parm): Handle atomic qualifier.
435
4362013-09-25  Tom Tromey  <tromey@redhat.com>
437
438	* Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o)
439	(objc/objc-runtime-shared-support.o)
440	(objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o)
441	(objc/objc-next-runtime-abi-02.o, objc/objc-act.o)
442	(objc/objc-encoding.o, objc/objc-map.o): Remove.
443
4442013-09-14  Iain Sandoe  <iain@codesourcery.com>
445
446	PR target/48094
447	* objc-next-runtime-abi-01.c (generate_objc_image_info): Remove.
448	(objc_generate_v1_next_metadata): Remove generation of ImageInfo.
449	* objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove.
450	(objc_generate_v2_next_metadata): Remove generation of ImageInfo.
451
4522013-07-21   Ondřej Bílka  <neleai@seznam.cz>
453
454	* objc-act.c: Fix typos.
455	* objc-encoding.c: Likewise.
456	* objc-gnu-runtime-abi-01.c: Likewise.
457	* objc-next-runtime-abi-01.c: Likewise.
458	* objc-next-runtime-abi-02.c: Likewise.
459
4602013-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
461
462	* objc-next-runtime-abi-02.c (build_v2_build_objc_method_call):
463	Fix build_conditional_expr call.
464
4652013-05-16  Jason Merrill  <jason@redhat.com>
466
467	* Make-lang.in (cc1obj$(exeext)): Use link mutex.
468
4692012-11-20  Diego Novillo  <dnovillo@google.com>
470
471	* objc-act.c: Replace all vec<T, A>() initializers with vNULL.
472
4732012-11-16  Diego Novillo  <dnovillo@google.com>
474
475	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
476
477	* objc-act.c: Use new vec API in vec.h.
478	* objc-act.h: Likewise.
479	* objc-gnu-runtime-abi-01.c: Likewise.
480	* objc-next-runtime-abi-01.c: Likewise.
481	* objc-next-runtime-abi-02.c: Likewise.
482	* objc-runtime-hooks.h: Likewise.
483	* objc-runtime-shared-support.c: Likewise.
484	* objc-runtime-shared-support.h: Likewise.
485
4862012-10-01  Lawrence Crowl  <crowl@google.com>
487
488	* Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o.
489	(objc-act.o): Add dependence on hash-table.h.
490	* objc-act.c (objc_detect_field_duplicates): Change to new type-safe
491	hash table.
492
4932012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
494
495	* Make-ang.in: Adjust for move of C front-end files.
496	* config-lang.in: Likewise.
497	* objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h
498	and c-lang.h in c/.
499	* objc-runtime-shared-support.c: Likewise.
500	* objc-next-runtime-abi-01.c: Likewise.
501	* objc-next-runtime-abi-02.c: Likewise.
502	* objc-gnu-runtime-abi-01.c: Likewise.
503	* objc-act.c: Likewise.
504	* objc-lang.c: Likewise.
505
5062012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
507
508	* objc-next-runtime-abi-01.c: Do not include tm.h and output.h.
509	Include c-family/c-target.h.
510	(handle_next_class_ref): Rewrite to emit top-level asm statements.
511	(handle_next_impent): Likewise.
512	* objc/Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o.
513
5142012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
515
516	* objc-act.c: Do not include output.h.
517
5182012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
519
520	PR objc++/53388
521	* objc-act.c (objc_get_class_reference, objc_build_message_expr):
522	Use build_min_nt_loc.
523
5242012-04-20  Jan Hubicka  <jh@suse.cz>
525
526	* objc-act.c (mark_referenced_methods); Use
527	cgraph_mark_force_output_node.
528
5292012-03-21  Steven Bosscher  <steven@gcc.gnu.org>
530
531	* objc-act (objc_build_ivar_assignment): Do not call assemble_external.
532	(objc_build_global_assignment): Likewise.
533	(objc_build_strong_cast_assignment): Likewise.
534	* objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external.
535	* objc-next-runtime-abi-02.c: Likewise.
536	* objc-gnu-runtime-abi-01.c: Likewise.
537
5382012-03-05  Jason Merrill  <jason@redhat.com>
539
540	* objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't
541	call _stat functions without MEM_STAT_INFO.
542
5432011-11-12  Iain Sandoe  <iains@gcc.gnu.org>
544
545	* objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality
546	for Objective-C m32.
547
5482011-10-29  Iain Sandoe  <iains@gcc.gnu.org>
549
550	PR target/47997
551	* objc-act.c (objc_build_string_object): Remove redundant second
552	call to fix_string_type ().  Add a checking assert that we are,
553	indeed, passed a STRING_CST.
554
5552011-10-18  Mikael Pettersson  <mikpe@it.uu.se>
556
557	PR objc/50743
558	* objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to
559	size_t to avoid signed/unsigned
560	comparison.
561	(insert_method_into_method_map): Likewise.
562
5632011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
564
565	* objc-map.h: New file.
566	* objc-map.c: New file.
567	* config-lang.in (gtfiles): Added objc-map.h.
568	* Make-lang.in (OBJC_OBJS): Added objc-map.o.
569	(objc/objc-map.o): New rule.
570	(objc/objc-act.o): Depend on objc/objc-map.h.
571	* objc-next-runtime-abi-02.c: Added a TODO comment.
572	* objc-act.c: Include objc-map.h.
573	(nst_method_hash_list, cls_method_hash_list): Removed.
574	(instance_method_map, class_method_map): New.
575	(cls_name_hash_list, als_name_hash_list): Removed.
576	(class_name_map, alias_name_map): Removed.
577	(ivar_offset_hash_list): Removed.
578	(hash_class_name_enter, hash_class_name_lookup, hash_enter,
579	hash_lookup, hash_add_attr, add_method_to_hash_list): Removed.
580	(interface_hash_init): New.
581	(objc_init): Call interface_hash_init.
582	(objc_write_global_declarations): Iterate over class_method_map
583	and instance_method_map instead of cls_method_hash_list and
584	nst_method_hash_list.
585	(objc_declare_alias): Use alias_name_map instead of
586	cls_name_hash_list.
587	(objc_is_class_name): Use class_name_map and alias_name_map
588	instead of cls_name_hash_list and als_name_hash_list.
589	(interface_tuple, interface_htab, hash_interface, eq_interface):
590	Removed.
591	(interface_map): New.
592	(add_class): Renamed to add_interface.  Use interface_map instead
593	of interface_htab.
594	(lookup_interface): Use interface_map instead of interface_htab.
595	(check_duplicates): Changed first argument to be a tree,
596	potentially a TREE_VEC, instead of a hash.  Changed implementation
597	to match.
598	(lookup_method_in_hash_lists): Use class_method_map and
599	instance_method_map instead of cls_method_hash_list and
600	nst_method_hash_list.
601	(objc_build_selector_expr): Likewise.
602	(hash_func): Removed.
603	(hash_init): Create instance_method_map, class_method_map,
604	class_name_map, and alias_name_map.  Do not create
605	nst_method_hash_list, cls_method_hash_list, cls_name_hash_list,
606	als_name_hash_list, and ivar_offset_hash_list.
607	(insert_method_into_method_map): New.
608	(objc_add_method): Use insert_method_into_method_map instead of
609	add_method_to_hash_list.
610	(start_class): Call add_interface instead of add_class.
611	* objc-act.h (cls_name_hash_list, als_name_hash_list,
612	nst_method_hash_list, cls_method_hash_list): Removed.
613
6142011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
615
616	* objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old
617	interface with two parallel arrays to hold standard builtin
618	declarations, and replace it with a function based interface that
619	can support creating builtins on the fly in the future.  Change
620	all uses, and poison the old names.  Make sure 0 is not a
621	legitimate builtin index.
622	* objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto.
623	* objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto.
624
6252011-07-19  Richard Guenther  <rguenther@suse.de>
626
627	* objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref):
628	Use fold_build_pointer_plus.
629	(objc2_build_ehtype_initializer): Likewise.
630
6312011-07-11  Nicola Pero  <nicola.pero@meta-innovation.com>
632
633	* objc-encoding.h (obstack.h): Do not include.
634	(util_obstack, util_firstobj): Do not declare.
635	(encode_field_decl): Updated prototype to return a tree and take a
636	single tree argument.  Updated comments.
637	* objc-encoding.c (util_obstack, util_firstobj): Made static.
638	(objc_encoding_init): New.
639	(encode_field_decl): Existing function renamed to encode_field and
640	made static.  New encode_field_decl wrapper function added.
641	(encode_aggregate_fields): Update call to encode_field_decl to
642	call encode_field.
643	* objc-next-runtime-abi-02.c (obstack.h): Do not include.
644	(util_obstack, util_firstobj): Do not declare.
645	(build_v2_ivar_list_initializer): Updated call to
646	encode_field_decl.
647	* objc-runtime-shared-support.c (obstack.h): Do not include.
648	(util_obstack, util_firstobj): Do not declare.
649	(build_ivar_list_initializer): Updated call to encode_field_decl.
650	* objc-act.c (objc_init): Use objc_encoding_init.
651	* Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend
652	on OBSTACK_H.
653	(objc/objc-gnu-runtime-abi-01.o): Likewise.
654	(objc/objc-next-runtime-abi-01.o): Likewise.
655	(objc/objc-next-runtime-abi-02.o): Likewise.
656	(objc/objc-act.o): Likewise.
657
6582011-07-04  Nicola Pero  <nicola.pero@meta-innovation.com>
659
660	Refactored encoding code into objc-encoding.h and objc-encoding.c.
661	* objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers,
662	encode_type, generating_instance_variables, objc_method_parm_type,
663	objc_encoded_type_size, encode_method_prototype,
664	objc_build_encode_expr, pointee_is_readonly, encode_pointer,
665	encode_array, encode_vector, encode_aggregate_fields,
666	encode_aggregate_within, encode_next_bitfield,
667	encode_gnu_bitfield, encode_field_decl,
668	objc_v2_encode_property_attr): Moved to objc-encoding.h and
669	objc-encoding.c.  No change in the actual code.
670	Include objc-encoding.h.
671	(objc_init): Added TODO.
672	(objc_build_property_setter_name): Made non-static so it can be
673	called from objc-encoding.c.
674	* objc-act.h (OBJC_ENCODE_INLINE_DEFS,
675	OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h.
676	* objc-runtime-shared-support.h (objc_v2_encode_property_attr,
677	encode_method_prototype, encode_field_decl,
678	generating_instance_variables): Moved to objc-encoding.h.
679	(objc_build_property_setter_name): Declare.
680	* objc-encoding.c: New.
681	* objc-encoding.h: New.
682	* objc-gnu-runtime-abi-01.c: Include objc-encoding.h.
683	* objc-next-runtime-abi-01.c: Likewise.
684	* objc-next-runtime-abi-02.c: Likewise.
685	* objc-runtime-shared-support.c: Likewise.
686	* Make-lang.in (OBJC_OBJS): Added objc-encoding.o.
687	(objc/objc-lang.o): Reordered dependencies.
688	(objc/objc-runtime-shared-support.o): Reordered dependencies.
689	Added dependencies on objc-encoding.h and on $(GGC_H),
690	$(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h.
691	(objc/objc-gnu-runtime-abi-01.o): Likewise.
692	(objc/objc-next-runtime-abi-01.o): Likewise.
693	(objc/objc-next-runtime-abi-02.o): Likewise.
694	(objc/objc-act.o): Reordered dependencies.  Added dependency on
695	objc-encoding.h.
696	(objc/objc-encoding.o): New rule.
697
698	* objc-encoding.c (encode_type): Use "%<%T%>" format when printing
699	warning "unknown type %<%T%> found during Objective-C encoding"
700	instead of using gen_type_name.
701
7022011-06-05  Nicola Pero  <nicola.pero@meta-innovation.com>
703
704	* objc-act.c (receiver_is_class_object): Expanded comment.
705	(objc_finish_message_expr): Likewise.
706
7072011-06-02  Nicola Pero  <nicola.pero@meta-innovation.com>
708
709	PR objc/48539
710	* objc-act.c (objc_finish_message_expr): Warn if messaging a class
711	that was only declared using @class without an @interface.  Warn
712	if messaging an instance of a class that was only declared using
713	@class without an @interface, unless the receiver was also typed
714	with a protocol list.
715
7162011-06-01  Nicola Pero  <nicola.pero@meta-innovation.com>
717
718	* objc-act.c (objc_decl_method_attributes): Implement nonnull
719	attribute for Objective-C methods.
720
7212011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
722
723	* config-lang.in (gtfiles): Updated order of files to fix building
724	when the gcc/cp directory is missing, as in the case of some
725	release tarballs.
726
7272011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
728
729	* objc-act.c (objc_compare_types): Use function_args_iterator
730	instead of TYPE_ARG_TYPES to compare function argument types.
731
7322011-05-13  Toon Moene  <toon@moene.org>
733
734	* objc-next-runtime-abi-02.c (newabi_append_ro):
735	Add const qualifier to constant variable pointer declaration.
736
7372011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
738
739	* objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors.
740	(CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise.
741	(PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise.
742
7432011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
744
745	* objc-runtime-shared-support.h (get_arg_type_list): Delete.
746	(build_function_type_for_method): Declare.
747	* objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change
748	type of get_arg_type_base_list field.
749	* objc-act.h (OBJC_VOID_AT_END): Delete.
750	* objc-act.c (get_arg_type_list): Delete.
751	(build_function_type_for_method): New function.
752	(objc_decl_method_attributes): Call build_function_type_for_method.
753	(really_start_method): Likewise.
754	* objc-gnu-runtime-abi-01.c
755	(gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and
756	adjust function accordingly.  Update header comment.
757	(build_objc_method_call): Call build_function_type_for_method.
758	* objc-next-runtime-abi-01.c
759	(next_runtime_abi_01_get_type_arg_list_base): Change prototype and
760	adjust function accordingly.  Update header comment.
761	(build_objc_method_call): Call build_function_type_for_method.
762	* objc-next-runtime-abi-02.c
763	(next_runtime_abi_02_get_type_arg_list_base): Change prototype and
764	adjust function accordingly.  Update header comment.
765	(objc_copy_to_temp_side_effect_params): Take fntype instead of a
766	typelist.  Use function_args_iterator for traversing fntype.
767	(build_v2_build_objc_method_call): Adjust call to it.
768	Call build_function_type_for_method
769
7702011-05-05  Joseph Myers  <joseph@codesourcery.com>
771
772	* objc-act.c (objc_start_method_definition): Add parameter expr.
773	Update call to start_method_def.
774	(objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter,
775	objc_synthesize_setter) Update calls to
776	objc_start_method_definition.
777	(objc_get_parm_info): Add parameter expr.  Update call to
778	get_parm_info.
779	(start_method_def): Add parameter expr.  Update call to
780	objc_get_parm_info.
781	* objc-gnu-runtime-abi-01.c (build_module_initializer_routine):
782	Update call to objc_get_parm_info.
783	* objc-runtime-shared-support.h (objc_get_parm_info): Add extra
784	parameter.
785
7862011-04-26  Jason Merrill  <jason@redhat.com>
787
788	* objc-act.c (objc_fold_objc_type_ref): Remove.
789	* objc-act.h: Remove prototype.
790
7912011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
792
793	* objc-act.c (synth_module_prologue): Call build_function_type_list
794	instead of build_function_type.
795	* objc-next-runtime-abi-02.c (next_runtime_02_initialize):
796	Likewise.
797
7982011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
799
800	* objc-act.c (ivar_of_class): New.
801	(objc_is_public): Use ivar_of_class.
802
8032011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
804
805	* objc-act.c (objc_get_interface_ivars): Removed.
806	(objc_detect_field_duplicates): New.
807	(hash_instance_variable): New.
808	(eq_instance_variable): New.
809
8102011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
811
812	* objc-act.c (objc_declare_protocols): Renamed to
813	objc_declare_protocol.  Changed first argument to be an identifier
814	instead of a tree chain of identifiers, so that callers don't have
815	to create a temporary tree chain.
816
8172011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
818
819	* objc-act.c (objc_declare_class): Changed to take a single
820	identifier as argument instead of a tree list.  This means callers
821	don't have to build temporary tree lists to call this function.
822	(synth_module_prologue): Updated calls to objc_declare_class.
823
8242011-04-13  Nicola Pero  <nicola.pero@meta-innovation.com>
825
826	* objc-act.c (build_keyword_selector): Use get_identifier_with_length
827	instead of get_identifier.
828
8292011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
830
831	* objc-lang.c (objc_init_ts): Move code for this function...
832	* objc-act.c (objc_common_init_ts): ...here. Define.
833	* objc-act.h (objc_common_init_ts): Declare.
834
8352011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
836
837	* objc-act.c (objc_build_message_expr): Accept two arguments
838	instead of one so that callers can simply pass the arguments
839	without having to create a temporary chain to hold them.
840
8412011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
842
843	* objc-act.c (comp_proto_with_proto): Do not create and use
844	inefficient temporary argument lists.  Compare the arguments
845	directly.  (match_proto_with_proto): Removed; incorporated into
846	comp_proto_with_proto ().
847
8482011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
849
850	* objc-act.c (printable_ivar_name): New.
851	(add_instance_variable): Call printable_ivar_name() when an error
852	message needs to be printed.  Do not prepare the instance variable
853	for printing unless there is an actual error.
854
8552011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
856
857	* objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
858	avoid calling identifier_global_value() multiple times.
859
8602011-04-12  Martin Jambor  <mjambor@suse.cz>
861
862	* objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
863	instead of cgraph_node.
864
8652011-04-06  Joseph Myers  <joseph@codesourcery.com>
866
867	* objc-act.c: Include c-target.h instead of target.h.
868	* Make-lang.in (objc/objc-act.o): Update dependencies.
869
8702011-03-06  Joseph Myers  <joseph@codesourcery.com>
871
872	* lang-specs.h: Match -save-temps* instead of -save-temps.
873
8742011-02-26  Nicola Pero  <nicola.pero@meta-innovation.com>
875
876	* objc-act.c (objc_v2_encode_prop_attr): Rewritten.
877
8782011-02-23  Nicola Pero  <nicola.pero@meta-innovation.com>
879
880	* objc-act.c (build_private_template): Do not copy the
881	CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
882	* objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
883	TYPE_LANG_SLOT_0.
884
8852011-02-22  Nicola Pero  <nicola.pero@meta-innovation.com>
886
887	PR objc/47832
888	* objc-act.c (flexible_array_type_p): New.
889	(add_instance_variable): Produce an error if an instance variable
890	uses flexible array members.
891	(encode_array): Do not emit an error if encoding a flexible array
892	type while generating instance variables.
893
8942011-02-21  Mike Stump  <mikestump@comcast.net>
895
896	* Make-lang.in (check_objc_parallelize): Refine for 4 processor
897	machines.
898
8992011-02-20  Nicola Pero  <nicola.pero@meta-innovation.com>
900
901	* objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed.  Removed
902	usage of padding fields.  Do not include tm.h.
903	* objc-act.c (objc_write_global_declaration): Set input_location
904	to BUILTINS_LOCATION while generating runtime metadata.
905
9062011-01-20  Nicola Pero  <nicola.pero@meta-innovation.com>
907
908	PR objc/47784
909	* objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side
910	effects, do not use a temporary variable.
911
9122011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
913
914	* objc-next-runtime-abi-01.c: Updated comments.
915	* objc-next-runtime-abi-02.c: Same.
916
9172011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
918
919	* objc-act.c (objc_init, generate_struct_by_value_array): Updated
920	comments.
921
9222011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
923
924	* objc-act.c: Updated comments.
925	* objc-next-runtime-abi-02.c: Same.
926	* objc-runtime-shared-support.c: Same.
927	* objc-runtime-hooks.h: Same.
928	* objc-act.h: Same.
929	* objc-gnu-runtime-abi-01.c: Same.
930
9312011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
932
933	* objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do
934	not generate metadata if there is nothing to put into it.
935
9362011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
937
938	* config-lang.in (gtfiles): Updated.
939	* Make-lang.in (START_HDRS): New.
940	(OBJC_OBJS): Added new object files.
941	(objc/objc-act.o): Updated prerequisites.
942	(objc/objc-lang.o): Updated prerequisites.
943	(objc/objc-runtime-shared-support.o): New.
944	(objc/objc-gnu-runtime-abi-01.o): New.
945	(objc/objc-next-runtime-abi-01.o): New.
946	(objc/objc-next-runtime-abi-02.o): New.
947	* objc-runtime-hooks.h: New.
948	* objc-runtime-shared-support.h: New.
949	* objc-runtime-shared-support.c: New.
950	* objc-gnu-runtime-abi-01.c: New.
951	* objc-next-metadata-tags.h: New.
952	* objc-next-runtime-abi-01.c: New.
953	* objc-next-runtime-abi-02.c: New.
954	* objc-lang.c: Include c-lang.h.
955	(LANG_HOOKS_EH_PERSONALITY): Removed.
956	* objc-act.h: Moved many declarations and code from objc-act.c
957	into objc-act.h to make them available outside objc-act.c.
958	(objc_eh_runtime_type): Removed.
959	(objc_eh_personality): Removed.
960	(CLASS_HAS_EXCEPTION_ATTR): New.
961	(OCTI_SUPER_SUPERFIELD_ID): New.
962	(OCTI_V1_PROP_LIST_TEMPL): New.
963	(OCTI_V1_PROP_NAME_ATTR_CHAIN): New.
964	(super_superclassfield_id): New.
965	(objc_prop_list_ptr): New.
966	(prop_names_attr_chain): New.
967	* objc-act.c: Include new runtime headers.  Moved many #defines
968	and declarations into objc-act.h and
969	objc-runtime-shared-support.h.  Made some corresponding functions
970	non-static, and moved some others into
971	objc-runtime-shared-support.c.  Moved metadata generation code
972	into the new runtime hook files.
973	(ivar_offset_hash_list): New.
974	(objc_init): Call generate_struct_value_by_array() before doing
975	any runtime initialization.  Create the appropriate runtime hook
976	structures.
977	(init_objc): Removed.  Code moved directly into objc_init.
978	(finish_objc): Removed.  Code moved directly into
979	objc_write_global_declarations.
980	(objc_write_global_declarations): Do the warn_selector checks
981	before emitting metadata.  Use a runtime hook to emit the
982	metadata.  Do not emit the metadata or do -gen-decls processing if
983	-fsyntax-only or we are producing a PCH.
984	(build_objc_exception_stuff): Renamed to
985	build_common_objc_exception_stuff.  Remove TREE_NOTHROW flag from
986	objc_exception_throw_decl.
987	(synth_module_prologue): Call runtime initialize hook instead of
988	building runtime declarations here.  Use the
989	default_constant_string_class_name runtime hook to set the
990	constant string class name.
991	(objc_build_string_object): Call the setup_const_string_class_decl
992	runtime hook instead of setup_string_decl.  Call the
993	build_const_string_constructor runtime hook instead of building
994	the string object here.
995	(get_objc_string_decl): Added prop_names_attr case.  Removed
996	gcc_unreachable() at the end.
997	(objc_begin_catch_clause): Distinguish between @catch (...) and
998	@catch (id x).  Call the begin_catch runtime hook instead of
999	building the CATCH_EXPR here.
1000	(objc_finish_catch_clause): Call the finish_catch runtime hook
1001	instead of adding the catch here.
1002	(objc_finish_try_stmt): Call the finish_try_stmt runtime hook
1003	instead of doing it here.
1004	(objc_build_throw_stmt): Bail out early for error_mark_node.  Call
1005	the build_exc_ptr runtime hook instead of objc_build_exc_ptr.
1006	Call the build_throw_stmt runtime hook instead of building the
1007	throw call here.
1008	(objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime
1009	as well.
1010	(get_arg_type_list): Call the get_arg_type_list_base runtime hook
1011	instead of building the list of arguments here.
1012	(receiver_is_class_object): Call the receiver_is_class_object
1013	runtime hook instead of doing the check here.  Call the
1014	tag_getclass runtime hook instead of using TAG_GETCLASS.
1015	(objc_finish_message_expr): Call the build_objc_method_call
1016	runtime hook.
1017	(objc_build_protocol_expr): Call the get_protocol_reference
1018	runtime hook.
1019	(objc_build_selector_expr): Call the build_selector_reference
1020	runtime hook.
1021	(build_ivar_reference): Call the build_ivar_reference runtime
1022	hook.
1023	(hash_init): Set up ivar_offset_hash_list.
1024	(start_class): Recognize the objc_exception attribute and store
1025	it.
1026	(continue_class): Use the class_decl and metaclass_decl runtime
1027	hooks.
1028	(build_objc_property_accessor_helpers): Renamed to
1029	build_common_objc_property_accessor_helpers.  Do not build
1030	objc_copyStruct_decl, objc_getPropertyStruct_decl and
1031	objc_setPropertyStruct_decl.
1032	(objc_synthesize_getter): Check what struct setter/getter helper
1033	is available instead of checking the type of runtime.
1034	(get_super_receiver): Use the super_superclassfield_ident runtime
1035	hook.  Added assert.  Use the get_class_super_ref and
1036	get_category_super_ref runtime hooks.
1037	(objc_v2_encode_prop_attr): New.
1038
10392011-01-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1040
1041	PR objc/47314
1042	* objc-act.c (finish_objc): When calling check_duplicates to check
1043	duplicated instance methods, set 'is_class' to 0, not 1.
1044
10452011-01-14  Ben Elliston  <bje@au.ibm.com>
1046
1047	PR 19162
1048	* objc-act.c (generate_struct_by_value_array): Do not output a
1049	definition for struct_forward_array.
1050
10512011-01-08  Iain Sandoe  <iains@gcc.gnu.org>
1052
1053	* objc-act.c (objc_finish_foreach_loop): Mark collection expression
1054	as read.
1055
10562011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
1057
1058	* objc-act.c (check_that_protocol_is_defined): Fix a typo.
1059
10602011-01-02  Nicola Pero  <nicola.pero@meta-innovation.com>
1061
1062	* objc-act.c (check_that_protocol_is_defined): New.
1063	(lookup_protocol): Call check_that_protocol_is_defined.
1064
10652010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1066
1067	* objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
1068	lists.  Check them two-ways to fix comparisons when one protocol
1069	implements the other one, or when one list contains duplicated
1070	protocols.
1071
10722010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1073
1074	* objc-act.c (objc_add_method): When emitting an error because a
1075	method with the same name but conflicting types is found in the
1076	same class or category interface, print a note with the location
1077	of the original method.  Also, improved the error message to
1078	clearly state that the conflict is due to conflicting types, and
1079	produce it for protocols as well.  Emit an error if two identical
1080	methods are declared in a protocol, but one is @required and the
1081	other one is @optional.
1082
10832010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1084
1085	* objc-act.c (start_class): Warn when a class attribute is
1086	ignored.
1087	(objc_declare_protocols): Warn when a protocol attribute in a
1088	protocol forward-declaration is ignored.
1089	(start_protocol): Warn when a protocol attribute is ignored.
1090
10912010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1092
1093	* objc-act.c (objc_set_method_opt): Tidy up error messages.  In
1094	particular, explicitly mention whether the error is due to the
1095	@optional or @required keyword instead of mentioning
1096	"@optional/@required".
1097
10982010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1099
1100	PR objc/47118
1101	* objc-act.c (objc_build_synchronized): Check the argument of
1102	@synchronized and emit an appropriate error if it is not a valid
1103	Objective-C object.  Deal gracefully with that case.  Updated
1104	comments and variable names.
1105
11062010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1107
1108	PR objc/47075
1109	* objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
1110	* objc-tree.def (PROPERTY_REF): Increased the number of operands
1111	from 3 to 4.
1112	* objc-act.c (objc_finish_message_expr): Added optional argument
1113	allowing to return the deprecated method prototype for deprecated
1114	methods, instead of immediately emitting the deprecation warning.
1115	(objc_maybe_build_component_ref): Do not warn for a deprecated
1116	property.  When building the getter call, get the deprecated
1117	method prototype from objc_finish_message_expr() and put it into
1118	the PROPERTY_REF.
1119	(objc_build_class_component_ref): Same change.
1120	(finish_class): Mark the getter and setter as deprecated if they
1121	are generated from a deprecated property.
1122	(objc_gimplify_property_ref): If the getter is deprecated, emit a
1123	deprecation warning.
1124	(objc_build_setter_call, objc_build_message_expr,
1125	objc_finish_foreach_loop): Updated call to
1126	objc_finish_message_expr.
1127
11282010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1129
1130	PR objc/47076
1131	* objc-act.c (lookup_protocol): Added 'definition_required'
1132	argument.  If 'definition_required', and the protocol is not
1133	defined, emit a warning.
1134	(objc_declare_protocols): Updated call to lookup_protocol.
1135	(start_protocol): Same change.
1136	(check_protocol_recursively): Same change.
1137	(objc_build_protocol_expr): Same change.
1138	(lookup_and_install_protocols): Added definition_required argument.
1139	Pass it to lookup_protocol.
1140	(objc_get_protocol_qualified_type): Updated call to
1141	lookup_and_install_protocols.
1142	(start_class): Updated calls to lookup_and_install_protocols; pass
1143	true to 'definition_required' to get the warnings.
1144	(start_protocol): Updated calls to lookup_and_install_protocols.
1145
11462010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1147
1148	* objc-act.c (objc_start_category_interface): Produce an error if
1149	a class extension is found after the class @implementation.
1150
11512010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1152
1153	PR objc/47073
1154	* objc-act.c (encode_method_prototype): Fixed both location and
1155	format string of error "type %qT does not have a known size".
1156
11572010-12-26  Nicola Pero  <nicola.pero@meta-innovation.com>
1158
1159	* config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c.
1160
11612010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
1162
1163	* objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.
1164
11652010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1166
1167	* objc-act.c (objc_init): Call using_eh_for_cleanups.
1168	(objc_init_exceptions): Renamed to objc_maybe_warn_exceptions.  Do
1169	not call using_eh_for_cleanups.
1170	(objc_begin_try_stmt): Do not call objc_init_exceptions.
1171	(objc_build_throw_stmt): Updated call to
1172	objc_maybe_warn_exceptions.
1173
11742010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
1175
1176	* objc/objc-act.c (objc_eh_personality): Select personality name on
1177	runtime.
1178	(objc_init_exceptions): New.
1179	(objc_begin_try_stmt): Use objc_init_exceptions.
1180	(objc_build_throw_stmt): Likewise.
1181
11822010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
1183
1184	* objc-act.c (objc_in_class_extension): New.
1185	(objc_start_category_interface): If -fobjc-std=objc1
1186	was specified, produce an error if a class extension is used.
1187	(objc_finish_interface): Reset objc_in_class_extension to false.
1188	(objc_add_property_declaration): Allow a class extension to extend
1189	readonly properties in the main @interface to be readwrite.
1190	(start_class): Added code to deal with class extensions.  In that
1191	case, return the existing interface after adding any additional
1192	protocols to it and setting objc_in_class_extension to true.
1193	(continue_class): If in a class extension, do not generate the
1194	instance variable template.
1195
11962010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1197
1198	* objc-act.c (objc_build_throw_stmt): Check that the argument of
1199	@throw is an object and emit an error if not.
1200
12012010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1202
1203	* objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
1204	error() when printing an error about the iterating variable or
1205	collection not being an object.
1206
12072010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1208
1209	* objc-act.c (objc_finish_foreach_loop): Mark the
1210	object_expression as used.
1211
12122010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1213
1214	* objc-act.c: Include c-family/c-objc.h.
1215	* objc-lang.c: Same change.
1216	* Make-lang.in (objc/objc-act.o): Depend on
1217	c-family/c-objc.h.
1218	(objc/objc-lang.o): Same change.
1219	* config-lang.in (gtfiles): Added c-family/c-objc.h.
1220
12212010-12-02  Joseph Myers  <joseph@codesourcery.com>
1222
1223	* lang-specs.h: Don't handle -ftraditional.
1224
12252010-12-02  Nicola Pero  <nicola.pero@meta-innovation.com>
1226
1227	* objc-act.c (objc_build_throw_stmt): Return error_mark_node and
1228	not NULL_TREE when a @throw is used outside of a @catch block.
1229
12302010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1231
1232	* objc-act.c (objc_build_volatilized_type): Removed.
1233	(objc_non_volatilized_type): Removed.
1234	(objc_type_quals_match): Removed.
1235	(local_variables_to_volatilize): New.
1236	(objc_volatilize_decl): Add the decl to volatilize to
1237	local_variables_to_volatilize, but don't volatilize it yet.
1238	(objc_finish_function): New.
1239	* objc-act.h (local_variables_to_volatilize): New.
1240
12412010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1242	    Mike Stump  <mikestump@comcast.net>
1243
1244	Allow 'make check-objc -j2'
1245	* Make-lang.in (lang_checks_parallelized): New.
1246	(check_objc_parallelize): New.
1247
12482010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1249
1250	* objc-act.c (start_class): When a class is reimplemented,
1251	generate an error and avoid adding the class to the list of
1252	implemented classes again, but do not return error_mark_node.
1253
12542010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1255
1256	* objc-act.c (objc_maybe_build_component_ref): Removed TODO.
1257
12582010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1259
1260	* objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
1261	is passed as argument.
1262	(objc_begin_catch_clause): Added code to deal with an
1263	error_mark_node or NULL_TREE argument.  Improved checks for
1264	invalid arguments.  Added code to traverse typedefs.
1265
12662010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1267
1268	* objc-act.c (objc_demangle): Return immediately if the string is
1269	too short.  Detect names that do not need demangling, and return
1270	them unchanged.
1271
12722010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1273
1274	Implemented optional properties.
1275	* objc-act.h (PROPERTY_OPTIONAL): New.
1276	* objc-act.c (objc_add_property_declaration): Set
1277	PROPERTY_OPTIONAL if appropriate.
1278	(finish_class): When generating definitions of setter and getter
1279	methods associated with a property for a protocol, mark them as
1280	optional if the property is optional.
1281	(maybe_make_artificial_property_decl): Added 'getter_name'
1282	argument.  Set PROPERTY_OPTIONAL.
1283	(objc_maybe_build_component_ref): Updated calls to
1284	maybe_make_artificial_property_decl.  Added code for optional,
1285	readonly properties.
1286	(objc_build_class_component_ref): Updated call to
1287	maybe_make_artificial_property_decl.
1288
12892010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1290
1291	* objc-act.c (objc_build_struct): Fixed loops that save and
1292	restore TYPE_OBJC_INFO to iterate over all variants of the type; a
1293	special case for the current type is then no longer required.
1294	Duplicate TYPE_LANG_SPECIFIC for each type before restoring
1295	TYPE_OBJC_INFO.
1296	(objc_get_protocol_qualified_type): Updated comments.
1297
12982010-11-25  Nicola Pero  <nicola.pero@meta-innovation.com>
1299
1300	* objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
1301	after finish_struct, not before, otherwise it may be wiped out by
1302	it.  This fixes spurious warnings when a class has more than 15
1303	instance variables.
1304
13052010-11-23  Nicola Pero  <nicola.pero@meta-innovation.com>
1306
1307	PR objc/24358
1308	* lang-specs.h: Added objective-c-cpp-output.  Mapped .mi to
1309	objective-c-cpp-output instead of objc-cpp-output.  Print a
1310	deprecation note every time objc-cpp-output is requested.
1311
13122010-11-22  Joseph Myers  <joseph@codesourcery.com>
1313
1314	* objc-act.c (write_symbols): Don't declare here.
1315
13162010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
1317
1318	PR objc/41108
1319	* objc-act.c (objc_generate_write_barrier): Added assert to make sure
1320	this function is only called with the next runtime.
1321
13222010-11-20  Jakub Jelinek  <jakub@redhat.com>
1323
1324	PR c/46547
1325	* objc-act.c (in_late_binary_op): Remove.
1326
13272010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1328
1329	* objc-act.c (objc_start_class_interface): Do not warn that class
1330	attributes are unimplemented.  Pass the attributes to start_class.
1331	(objc_start_category_interface): Updated call to start_class.
1332	(objc_start_class_implementation): Same change.
1333	(objc_start_category_implementation): Same change.
1334	(objc_build_class_component_ref): Warn if the class is deprecated.
1335	(build_private_template): Mark the template as deprecated if the
1336	class is deprecated.
1337	(start_class): Added 'attributes' argument.  Emit a warning if
1338	using a deprecated class as superclass of a class, or original
1339	class of a category.  Recognize the 'deprecated' attribute when
1340	starting and interface, and mark the interface with
1341	TREE_DEPRECATED if present.  Store attributes in the interface.
1342
13432010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1344
1345	* objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
1346	argument.  If it is 'true' and the protocol is deprecated, emit a
1347	deprecation warning.
1348	(objc_start_protocol): Do not warn that protocol attributes are
1349	unimplemented.  Pass the attributes to start_protocol.
1350	(start_protocol): Added attributes argument.  Recognize the
1351	'deprecated' attribute and mark the protocols with TREE_DEPRECATED
1352	if present.  Store attributes in the protocol.
1353	(objc_declare_protocols): Added 'attributes' argument.  Recognize
1354	the 'deprecated' attribute and mark the protocols with
1355	TREE_DEPRECATED if present.  Store attributes in the protocol.
1356	Updated call to lookup_protocol.
1357	(objc_build_protocol_expr): Updated call to lookup_protocol.
1358	(check_protocol_recursively): Same change.
1359	(lookup_and_install_protocols): Same change.
1360	* objc-act.h: Updated comments.
1361
13622010-11-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1363
1364	* objc-act.c (lookup_method_in_protocol_list): Search methods in
1365	PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
1366	they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
1367
13682010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1369
1370	* objc-act.c (objc_build_setter_call): New.
1371	(objc_maybe_build_modify_expr): Rewritten to build a compound
1372	statement.
1373	(objc_build_incr_expr_for_property_ref): Updated calls to
1374	objc_maybe_build_modify_expr to call objc_build_setter_call
1375	instead.  Use build_modify_expr () instead of build2 (MODIFY_EXPR,
1376	...).  Use convert () instead of build1 (NOP_EXPR, ...).  Use
1377	TREE_NO_WARNING on the final compound statement to silence C++
1378	warnings.
1379
13802010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1381
1382	* objc-act.c (objc_build_incr_expr_for_property_ref): New.
1383	(objc_create_temporary_var): Moved it towards the beginning of the
1384	file so that objc_build_incr_expr_for_property_ref can use it.
1385
13862010-11-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1387
1388	* objc-act.c (objc_add_property_declaration): Check that the decl
1389	we received from the parser is a FIELD_DECL; reject array and
1390	bitfield properties.  Convert the warning when a property is
1391	readonly and a setter is specified into an error.  Convert errors
1392	when a property declaration does not match a property declaration
1393	in a superclass into warnings.
1394	(objc_add_synthesize_declaration_for_property): Use
1395	DECL_BIT_FIELD_TYPE to determine the type of an instance variable
1396	if it is a bitfield.  Throw an error if we are asked to synthesize
1397	setters/getters for a bitfield instance variable but the property
1398	is not appropriate - it must be assign and nonatomic.  If the
1399	property is readonly, allow the instance variable type to be a
1400	specialization of the property type.
1401	(objc_type_valid_for_messaging): Fixed returning 'false' for a
1402	Class qualified with a protocol when the 'accept_classes' argument
1403	is 'false'.
1404
14052010-11-13  Nicola Pero  <nicola.pero@meta-innovation.com>
1406
1407	* objc-act.c (objc_get_protocol_qualified_type): detect cases
1408	where we are asked to attach a protocol to something which is not
1409	an Objective-C object type, and produce an error.
1410
14112010-11-11  Nicola Pero  <nicola.pero@meta-innovation.com>
1412
1413	* objc-act.c (objc_add_property_declaration): Check that the type
1414	of a property and of an inherited property match.
1415	(objc_maybe_build_component_ref): Tidied up indentation and
1416	comments.
1417	(objc_common_type): Added new type of check (-5).
1418	(objc_add_synthesize_declaration_for_property): Check that the
1419	property to synthesize and the instance variable to use have the
1420	same type.
1421
14222010-11-10  Joseph Myers  <joseph@codesourcery.com>
1423
1424	* objc-act.c (objc_init): Use %' in diagnostic.
1425	(objc_set_method_opt): Remove trailing '.' from diagnostic.
1426
14272010-11-10  Joseph Myers  <joseph@codesourcery.com>
1428
1429	* objc-act.c (dump_base_name): Don't declare here.
1430
14312010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1432
1433	* objc-act.c (objc_add_dynamic_declaration_for_property): Do not
1434	search for the @property declation only in the current context,
1435	but also in inherited properties.  Do not mark the original
1436	PROPERTY_DECL in the @interface or @protocol with
1437	PROPERTY_DYNAMIC.
1438	(check_methods): To check if a method is associated with a
1439	@dynamic property, search for the property in IMPL_PROPERTY_DECL.
1440	(check_accessible_methods): Same change.
1441	* objc-act.h: Updated comment.
1442
14432010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1444
1445	* objc-act.c (objc_add_synthesize_declaration_for_property):
1446	Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
1447	checking for an existing @synthesize or @dynamic declaration.
1448	Search for an inherited @property declaration if none is found in
1449	the local interface.  If the required instance variable does not
1450	exist, return instead of trying to continue to prevent a compiler
1451	crash later.  Check that the instance variable is not already
1452	being used by another @synthesize.
1453	(objc_add_dynamic_declaration_for_property): Iterate over
1454	IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
1455	existing @synthesize or @dynamic declaration.
1456	(objc_synthesize_getter): Search for the getter declaration in
1457	protocols and superclasses as well.
1458	(objc_synthesize_setter): Search for the setter declaration in
1459	protocols and superclasses as well.
1460
14612010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1462
1463	* objc-act.c (lookup_property): When checking categories, also
1464	check the protocols attached to each.
1465	(objc_add_property_declaration): Determine the
1466	PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here.  Tidied up
1467	error message.  Search for an existing property declaration with
1468	the same name which would be inherited from the class hiearchy,
1469	and produce an error if it has incompatible attributes.
1470	(check_methods): Changed second parameter.  If the method is a
1471	getter or setter for a property, do not warn if it is inherited as
1472	opposed to implemented directly in the class.
1473	(check_protocol): Updated calls to check_methods.
1474	(finish_class): Do not determine the PROPERTY_SETTER_NAME and
1475	PROPERTY_GETTER_NAME here; this is now done earlier, in
1476	objc_add_property_declaration.
1477	* objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
1478
14792010-11-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1480
1481	Fixed using the Objective-C 2.0 dot-syntax with self and super.
1482	* objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
1483	(maybe_make_artificial_property_decl): Added 'implementation'
1484	argument.  Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
1485	looking up getters or setters for a class.  If an implementation
1486	is specified, search it as well for a getter or setter.
1487	(objc_maybe_build_component_ref): Updated calls to
1488	maybe_make_artificial_property_decl; added code to deal with
1489	'self' and 'super' and with methods declared locally in the
1490	implementation.  Store the getter call expression in the
1491	PROPERTY_REF instead of throwing it away.
1492	(objc_build_class_component_ref): Updated calls to
1493	maybe_make_artificial_property_decl, and store the getter call
1494	expression in PROPERTY_REF instead of throwing it away.
1495	(lookup_method_static): Implemented
1496	OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
1497	(objc_gimplify_property_ref): Do not build the getter method call
1498	here; instead use the one stored in the PROPERTY_REF.  If it's not
1499	there, produce helpful error messages.
1500	* objc-tree.def (PROPERTY_REF): Increased the number of operands
1501	from 2 to 3.  Updated comments.
1502	* objc-act.h (PROPERTY_REF_GETTER_CALL): New.
1503
15042010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
1505
1506	PR target/44981
1507	* objc-act.c (objc_build_string_object): Amend for renamed hook.
1508	(objc_string_ref_type_p): New.
1509	(objc_check_format_arg): New.
1510
15112010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
1512
1513	Fixed using the Objective-C 2.0 dot-syntax with class names.
1514	* objc-act.c (objc_build_class_component_ref): New.
1515
15162010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1517
1518	* objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
1519	category.
1520	(objc_type_valid_for_messaging): Added 'accept_classes' argument;
1521	if set to 'true', return 'true' for Class objects.  Do not remove
1522	more than on pointer indirection.
1523	(objc_add_property_declaration): Only warn about 'assign'
1524	semantics for Objective-C objects if warn_property_assign_default;
1525	and do not warn if the property is readonly or if the type is a Class.
1526	(objc_finish_foreach_loop): Updated calls to
1527	objc_type_valid_for_messaging.
1528
15292010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1530
1531	Implemented -fobjc-std=objc1 flag.
1532	* objc-act.c (objc_start_class_interface): If attributes are
1533	specified when flag_objc1_only is set, print an error.
1534	(objc_start_category_interface): Same change.
1535	(objc_start_protocol): Same change.
1536	(objc_add_method_declaration): Same change.
1537	(objc_start_method_definition): Same change.
1538	(objc_build_keyword_decl): Same change.
1539	(objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when
1540	flag_objc1_set is set, print an error.
1541	(objc_set_method_opt): If flag_objc1_only is set, print an error.
1542	(objc_add_property_declaration): Same change.
1543	(objc_add_synthesize_declaration): Same change.
1544	(objc_add_dynamic_declaration): Same change.
1545	(objc_finish_foreach_loop): Same change.
1546	(objc_maybe_build_component_ref): If flag_objc1_only is set,
1547	return immediately.
1548
15492010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1550
1551	* objc-act.c (maybe_make_artificial_property_decl): New.
1552	(objc_maybe_build_component_ref): Call
1553	maybe_make_artificial_property_decl if a property can not be
1554	found.  Do not call objc_finish_message_expr if
1555	PROPERTY_HAS_NO_GETTER.
1556	* objc-act.h Updated comments.
1557	(PROPERTY_HAS_NO_GETTER): New.
1558	(PROPERTY_HAS_NO_SETTER): New.
1559	* objc-tree.def: Updated comment.
1560
15612010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1562
1563	Implemented format and noreturn attributes for Objective-C methods.
1564	* objc-act.c (objc_start_method_definition): If method attributes
1565	are specified emit a warning and ignore them.
1566	(build_objc_method_call): Moved deprecation warnings from here ...
1567	(objc_finish_message_expr): to here.  Do not emit deprecation
1568	warnings if the receiver is of type 'id'.
1569	(really_start_method): Install 'deprecation' and 'noreturn'
1570	attributes.
1571	(objc_decl_method_attributes): Carefully filter out the list of
1572	attributes, allowing only "noreturn", "format", "sentinel" and
1573	"deprecated".  In the case of "format", adjust the arguments.
1574	Always process the attributes in the same way no matter if
1575	"sentinel" is in the list or not.
1576
15772010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1578
1579	* objc-act.c (objc_maybe_build_component_ref): Warn about using
1580	deprecated properties.
1581	(objc_maybe_printable_name): Support PROPERTY_DECL.
1582
15832010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1584
1585	Implemented Objective-C 2.0 property accessors.
1586	* objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
1587	OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
1588	OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
1589	(objc_getProperty_decl): New.
1590	(objc_setProperty_decl): New.
1591	(objc_copyStruct_decl): New.
1592	(objc_getPropertyStruct_decl): New.
1593	(objc_setPropertyStruct_decl): New.
1594	* objc-act.c (build_objc_property_accessor_helpers): New.
1595	(synth_module_prologue): Call
1596	build_objc_property_accessor_helpers.
1597	(lookup_ivar): New.
1598	(objc_synthesize_getter): Implemented synthesizing getters that
1599	work with properties that are not nonatomic, assign properties.
1600	(objc_synthesize_setter): Implemented synthesizing setters that
1601	work with properties that are not nonatomic, assign properties.
1602
16032010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1604
1605	Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
1606	* objc-tree.def (PROPERTY_REF): New.
1607	* objc-act.h: Added comments for all the PROPERTY_ macros.
1608	(PROPERTY_NAME): Use DECL_NAME.
1609	(PROPERTY_COPIES): Removed.
1610	(PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
1611	(PROPERTY_NONATOMIC): New.
1612	(objc_property_assign_semantics): Make it a typedef.
1613	(PROPERTY_ASSIGN_SEMANTICS): New.
1614	(PROPERTY_DYNAMIC): New.
1615	(PROPERTY_REF_OBJECT): New.
1616	(PROPERTY_REF_PROPERTY_DECL): New.
1617	* objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
1618	(in_objc_property_setter_name_context): Removed.
1619	(objc_add_property_declaration): Removed copies and ivar arguments
1620	and code supporting them.  Fixed recovering when readonly and
1621	setter attributes are specified.  Removed support for @property in
1622	@implementation context.  Updated error message.  Double-check
1623	that a property does not have a DECL_INITIAL.  Validate the
1624	property assign semantics and emit appropriate errors and
1625	warnings.  Check for duplicate property declarations.  Set
1626	DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
1627	PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
1628	PROPERTY_DECL.  Do not set PROPERTY_COPIES.  Set
1629	PROPERTY_IVAR_NAME to NULL_TREE.
1630	(objc_build_getter_call): Renamed to
1631	objc_maybe_build_component_ref.  If the property is not found in
1632	the interface, search in the protocol list.  Do not generate the
1633	getter call; instead, build and return a PROPERTY_REF.
1634	(objc_is_property_ref): New.
1635	(objc_setter_func_call): Removed.
1636	(get_selector_from_reference): Removed.
1637	(is_property): Removed.
1638	(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
1639	Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
1640	the PROPERTY_REF.  Generate an error if the property is read-only.
1641	(build_property_reference): Removed.
1642	(objc_finish_message_expr): Removed check to produce "readonly
1643	property can not be set" error when
1644	in_objc_property_setter_name_context.  We now generate the error
1645	earlier, in objc_maybe_build_modify_expr, which will only generate
1646	the setter call if the property is readwrite.
1647	(check_methods): Recognize dynamic properties.
1648	(check_methods_accessible): Same change.
1649	(objc_build_property_ivar_name): Removed.
1650	(objc_build_property_setter_name): Dropped bool argument.  Always
1651	add the ':' at the end.
1652	(objc_gen_one_property_datum): Removed.
1653	(objc_process_getter_setter): Removed.
1654	(objc_synthesize_getter): Mark 'klass' argument as unused.  Use
1655	PROPERTY_GETTER_NAME instead of PROPERTY_NAME.  Set the
1656	DECL_SOURCE_LOCATION of the new method to be the same as the one
1657	for the @synthesize.  Always use PROPERTY_IVAR_NAME as it is
1658	instead of trying to guess what it should be.  Removed use of
1659	CLASS_IVARS.  Use the location of @synthesize for c_finish_return
1660	and c_end_compound_statement.
1661	(objc_synthesize_setter): Mark 'klass' argument as unused.  Use
1662	PROPERTY_SETTER_NAME instead of trying to guess what it should be.
1663	Set the DECL_SOURCE_LOCATION of the new method to be the same as
1664	the one for the @synthesize.  Always use PROPERTY_IVAR_NAME as it
1665	is instead of trying to guess what it should be.  Removed use of
1666	CLASS_IVARS.  Use the location of @synthesize for c_finish_return
1667	and c_end_compound_statement.  Emit an error and keep going,
1668	instead of aborting, if the setter prototype does not have the
1669	expected argument.
1670	(objc_add_synthesize_declaration_for_property): New.
1671	(objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
1672	all arguments.  Improved error message.  Filled in the rest of the
1673	function, which used to be a placeholder, with an actual
1674	implementation.
1675	(objc_add_dynamic_declaration_for_property): New.
1676	(objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
1677	arguments.  Improved error message.  Filled in the rest of the
1678	function, which used to be a placeholder, with an actual
1679	implementation.
1680	(objc_gen_property_data): Rewritten.
1681	(finish_class): Added explicit switch cases for
1682	CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
1683	PROTOCOL_INTERFACE_TYPE.  Added a default switch case which is
1684	gcc_unreachable.  Rewritten the processing of properties, in
1685	particular to not synthesize prototypes for getters and setters if
1686	they already exist and to install the getter and setter names into
1687	PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME.  Do not generate
1688	warnings about setter, getter and ivar property attributes.
1689	(objc_lookup_ivar): Removed support for properties.
1690	(objc_gimplify_property_ref): New.
1691	(objc_gimplify_expr): Use a switch.  In case of a PROPERTY_REF, call
1692	objc_gimplify_property_ref.
1693
16942010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1695
1696	* objc-act.c (objc_add_property_declaration): Added arguments to
1697	pass the various property attributes that were parsed with the
1698	property declaration.  Process arguments to determine the final
1699	property attributes and produce error messages as appropriate.
1700	Added temporary code to keep the compiler silent about variables
1701	set but not used - for new attributes that are only checked but
1702	have no effect yet.
1703	(property_readonly): Removed.
1704	(property_setter): Removed.
1705	(property_getter): Removed.
1706	(property_ivar): Removed.
1707	(property_copies): Removed.
1708	(objc_set_property_attr): Removed.
1709	* objc-act.h (enum property_assign_semantics): New.
1710
17112010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1712
1713	* objc-act.c (objc_add_property_variable): Renamed to
1714	objc_add_property_declaration.  Added location argument.  Updated
1715	warnings and errors to use it.  Use error, not fatal_error, if a
1716	property declaration is found outside an interface or
1717	implementation context.
1718
17192010-10-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1720
1721	* objc-act.c (objc_build_keyword_decl): Updated comments.  Do not
1722	emit a warning that method parameter attributes are unimplemented.
1723	Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
1724	(start_method_def): Copy attributes from each KEYWORD_DECL into
1725	the corresponding PARM_DECL.
1726	(objc_warn_deprecated_use): Removed.
1727	(build_objc_method_call): Call warn_deprecated_use, not
1728	objc_warn_deprecated_use.
1729	(objc_maybe_printable_name): Do not try to get the identifier name
1730	of DECLs that we don't recognize.  Immediately return NULL for them.
1731	(objc_printable_name): Removed C++-specific case, which is no
1732	longer used.  Updated comments.
1733
17342010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>
1735
1736	* objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
1737	(objc_demangle): Return NULL if demangling can not be done because
1738	the string to demangle is not an Objective-C mangled method name.
1739	Be smarter in demangling method names so that at least for methods
1740	with no arguments we are able to almost always demangle '_' correctly.
1741	Updated comments.
1742	(objc_maybe_printable_name): New.
1743	(objc_printable_name): Call objc_maybe_printable_name.  If it
1744	returns NULL, call cxx_printable_name in Objective-C++.
1745
17462010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
1747
1748	Based on the CFString implementation in FSF apple/trunk branch.
1749
1750	* objc/objc-act.c (objc_build_string_object): Handle CFStrings.
1751
17522010-10-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1753
1754	* objc-act.c (get_objc_string_decl): Use a switch instead of a
1755	chain of ifs.  Use gcc_unreachable instead of abort.
1756	(add_objc_string): Same change.
1757	(generate_protocol_list): Same change - twice.
1758	(synth_id_with_class_suffix): Same change.
1759	(build_keyword_selector): Same change - twice.
1760	(objc_build_message_expr): Same change.
1761	(objc_build_selector_expr): Same change.
1762	(check_methods): Same change - and added missing gcc_unreachable
1763	for default case.
1764	(check_methods_accessible): Same change - twice, and added missing
1765	gcc_unreachable for default case in one of them.
1766	(start_class): Same change - and added missing gcc_unreachable for
1767	default case.
1768	(continue_class): Same change.
1769	(objc_gen_property_data): Same change.
1770	(finish_class): Same change.
1771	(encode_type_qualifiers): Added missing gcc_unreachable.
1772	(encode_type): Small code tidy up to reduce duplicated code.  Use
1773	gcc_unreachable instead of abort - twice.
1774	(encode_gnu_bitfield): Use a switch instead of a chain of ifs -
1775	twice.  Added missing gcc_unreachable for default case - twice.
1776	(dump_interface): Use a switch instead of a chain of ifs.
1777	(handle_impent): Same change.
1778
17792010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1780
1781	* objc-act.h (objc_inherit_code): Removed.
1782	* objc-act.c (objc_inherit_code): Removed.
1783	(objc_set_method_type): Removed.
1784	(objc_build_method_signature): Added is_class_method argument.
1785	Use it instead of the global objc_inherit_code variable.
1786	(objc_add_method_declaration): Same change.
1787	(objc_start_method_definition): Same change.
1788	(objc_generate_cxx_ctor_or_dtor): Updated call to
1789	objc_start_method_definition.  Do not call objc_set_method_type.
1790	(adjust_type_for_id_default): Mark as inline.
1791	(objc_synthesize_getter): Updated call to
1792	objc_start_method_definition.  Do not set objc_inherit_code.
1793	(objc_synthesize_setter): Updated call to
1794	objc_start_method_definition.  Do not set objc_inherit_code.
1795
17962010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1797
1798	Merge from 'apple/trunk' branch on FSF servers.  Obvious updates
1799	to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
1800	get it to compile in the current trunk.
1801
1802	2006-01-27 Fariborz Jahanian  <fjahanian@apple.com>
1803
1804	Radar 4345837
1805	* objc/objc-act.c (hash_class_name_enter): New.
1806	(hash_class_name_lookup): New.
1807	(objc_declare_alias): Enter alias name into hash table.
1808	(objc_declare_class): Enter class name into hash table.
1809	(objc_is_class_name): Do a hash look up of class name.
1810	(hash_init): Initialize the two new hash tables.
1811	* objc-act.h: Added cls_name_hash_list and als_name_hash_list
1812	declarations, removed class_chain and alias_chain.
1813
18142010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1815
1816	* objc-lang.c (finish_file): Removed.
1817	* objc-act.c (objc_finish_file): Renamed to
1818	objc_write_global_declarations.  Do not try to instantiate C++
1819	templates when compiling Objective-C++ as this is now
1820	automatically done before this function is called.  Do not check
1821	for syntax-only run or PCH generation as this is done by the
1822	callers.
1823	* objc-act.h (objc_finish_file): Removed.
1824
18252010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1826
1827	Implemented parsing @synthesize and @dynamic for
1828	Objective-C/Objective-C++.
1829	* objc-act.c (objc_add_synthesize_declaration): New.
1830	(objc_add_dynamic_declaration): New.
1831
18322010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1833
1834	* objc-act.c (lookup_and_install_protocols): Return NULL if passed
1835	error_mark_node.
1836
18372010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1838
1839	Merge from 'apple/trunk' branch on FSF servers.
1840
1841	2006-03-10  Fariborz Jahanian  <fjahanian@apple.com>
1842
1843	Radar 4407151
1844	* objc/objc-act.c (objc_is_class_name): template parameter is not
1845	an objective class name.
1846	(objc_generate_cxx_cdtors): Check for the null
1847	objc_implementation_context.
1848
18492010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1850
1851	Merge from 'apple/trunk' branch on FSF servers.
1852
1853	2005-11-08  Fariborz Jahanian  <fjahanian@apple.com>
1854
1855	Radar 4330422
1856	* objc/objc-act.c (objc_non_volatilized_type): New
1857
1858	2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
1859
1860	Radar 4204796
1861	* objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
1862	types with proper attribute set and correctly.
1863	(objc_volatilize_decl): Remove unneeded code.
1864	(objc_type_quals_match): Use the new attribute to check on
1865	'volatilzed' type.
1866	(hash_init): removed unneeded code.
1867
18682010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1869
1870	Merge from 'apple/trunk' branch on FSF servers.
1871
1872	2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
1873
1874	Radar 4133425
1875	* objc-act.c (objc_diagnose_private_ivar): New.
1876
18772010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
1878
1879	* objc-act.c: Rename 'objc_public_flag' to  objc_ivar_visibility and
1880	make its type 'objc_ivar_visibility_kind'.
1881	(objc_start_class_interface): Update to use visibility enum.
1882	(objc_start_class_implementation): Likewise.
1883	(objc_set_visibility): Update to use visibility enum, warn that
1884	@package is handle as per @public.
1885	(add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
1886	* objc-act.h: Rename 'objc_public_flag' to  objc_ivar_visibility and
1887	make its type 'objc_ivar_visibility_kind'.
1888
18892010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1890
1891	merge from FSF apple 'trunk' branch.
1892	2006 Fariborz Jahanian  <fjahanian@apple.com>
1893
1894	Radars 4436866, 4505126, 4506903, 4517826
1895	* objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New.
1896	property_readonly, property_getter, property_setter, property_ivar,
1897	property_copies, in_objc_property_setter_name_context: New vars.
1898	(objc_set_property_attr): New.
1899	(objc_add_property_variable): New.
1900	(lookup_property_in_list): New.
1901	(lookup_property): New.
1902	(objc_build_getter_call): New.
1903	(objc_setter_func_call): New.
1904	(get_selector_from_reference): New.
1905	(objc_build_setter_call): New.
1906	(is_property): New.
1907	(build_property_reference): New.
1908	(objc_finish_message_expr): Detect readonly property and warn.
1909	(objc_build_property_ivar_name): New.
1910	(objc_build_property_setter_name): New.
1911	(objc_gen_one_property_datum): New.
1912	(objc_process_getter_setter): New.
1913	(objc_synthesize_getter): New.
1914	(objc_synthesize_setter): New.
1915	(objc_gen_property_data): New.
1916	(finish_class): Generate property data.
1917	(comp_proto_with_proto): Separated from ...
1918	(match_proto_with_proto): ... New.
1919	(objc_lookup_ivar): Handle properties.
1920	* objc-tree.def (PROPERTY_DECL): New tree code.
1921	* objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size.
1922	(METHOD_PROPERTY_CONTEXT): New.
1923	(PROPERTY_NAME): New.
1924	(PROPERTY_GETTER_NAME): New.
1925	(PROPERTY_SETTER_NAME): New.
1926	(PROPERTY_IVAR_NAME): New.
1927	(PROPERTY_READONLY): New.
1928	(PROPERTY_COPIES): New.
1929	(TOTAL_CLASS_RAW_IVARS): New.
1930	(CLASS_PROPERTY_DECL): New.
1931	(IMPL_PROPERTY_DECL): New.
1932	* objc-lang.c (objc_init_ts): Update fields for property_decl.
1933
19342010-10-13  Richard Henderson  <rth@redhat.com>
1935
1936	* objc-act.c (objc_eh_personality): Update call to
1937	build_personality_function.
1938
19392010-10-13  Iain Sandoe  <iains@gcc.gnu.org>
1940
1941	merge from FSF apple 'trunk' branch.
1942
1943	2006-04-26 Fariborz Jahanian  <fjahanian@apple.com>
1944	Radar 3803157 (method attributes)
1945	* objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
1946	* objc/objc-act.c (objc_decl_method_attributes): New.
1947	(objc_add_method_declaration): Process method's attribute.
1948	(objc_start_method_definition): Ditto.
1949	(build_objc_method_call): Inject method attribute into
1950	built function type.
1951	(objc_method_decl): New.
1952	(objc_warn_deprecated)use): New.
1953
19542010-10-07  Andi Kleen  <ak@linux.intel.com>
1955
1956	* Make-lang.in (cc1obj-dummy): Remove.
1957	(cc1obj-checksum): Change to run checksum over object files
1958	and options only.
1959
19602010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1961
1962	PR objc/45925
1963	* objc-act.c (objc_finish_foreach_loop): Convert return value of
1964	countByEnumeratingWithState:objects:count: to long unsigned int.
1965
19662010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
1967
1968	* objc-act.c (build_objc_method_call): Replace calls to
1969	build_function_call () with the VEC equivalent.  Construct parameter
1970	lists as VECs.
1971
19722010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
1973
1974	* objc-act.c (objc_build_message_expr):  Call mark_exp_read () to
1975	signal that the receiver has been used.
1976
19772010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1978
1979	* README: Obsolete file removed.
1980
19812010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1982
1983	Implemented fast enumeration for Objective-C.
1984	* objc-act.c (build_fast_enumeration_state_template): New.
1985	(TAG_ENUMERATION_MUTATION): New.
1986	(TAG_FAST_ENUMERATION_STATE): New.
1987	(synth_module_prologue): Call build_fast_enumeration_state_template() and set up
1988	objc_enumeration_mutation_decl.
1989	(objc_create_temporary_var): Allow providing a name to temporary
1990	variables.
1991	(objc_build_exc_ptr): Updated calls to
1992	objc_create_temporary_var().
1993	(next_sjlj_build_try_catch_finally): Same change.
1994	(objc_finish_foreach_loop): New.
1995	* objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
1996	OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
1997	objc_enumeration_mutation_decl.
1998
1999	Merge from 'apple/trunk' branch on FSF servers.
2000
2001	2006-04-12 Fariborz Jahanian  <fjahanian@apple.com>
2002
2003	Radar 4507230
2004	* objc-act.c (objc_type_valid_for_messaging): New routine to check
2005	for valid objc object types.
2006	(objc_finish_foreach_loop): Check for invalid objc objects in
2007	foreach header.
2008
20092010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
2010
2011	Merge from 'apple/trunk' branch on FSF servers.
2012
2013	2005-10-17  Fariborz Jahanian  <fjahanian@apple.com>
2014
2015	Radar 4290840
2016	* objc-act.c (objc_start_method_definition): Check for
2017	error_mark_node for the selector name and make a quick exit.
2018
20192010-10-04  Andi Kleen  <ak@linux.intel.com>
2020
2021	* Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
2022
20232010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
2024
2025	merge from FSF 'apple/trunk' branch.
2026	2006-01-30  Fariborz Jahanian  <fjahanian@apple.com>
2027
2028	Radar 4386773
2029	* objc/objc-act.c (objc_set_method_opt): New function.
2030	(objc_start_protocol, objc_finish_interface): Reset
2031	objc_method_optional_flag flag.
2032	(objc_add_method_declaration): Pass on the new
2033	flag to objc_add_method.
2034	(objc_add_method): Add optional methods to new chain in
2035	the protocol class.
2036	* objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS)
2037	(CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
2038	class's optional method chains.
2039
20402010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2041
2042	Merge from 'apple/trunk' branch on FSF servers.
2043
2044	2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
2045
2046	Radar 4278236
2047	* objc-act.c (objc_declare_class): Pick the right
2048	type tree.
2049
20502010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2051
2052	Merge from 'apple/trunk' branch on FSF servers.
2053
2054	2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
2055
2056	Radar 4281748
2057	* objc-act.c (objc_check_global_decl): New
2058
20592010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2060
2061	* objc-act.c (objc_is_reserved_word): Removed.
2062
20632010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
2064
2065	* objc-act.c (objc_add_method_declaration): Handle and ignore
2066	attributes.
2067	(objc_start_method_definition): Likewise.
2068	(objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor.
2069	(objc_build_keyword_decl): Handle and ignore attributes.
2070
20712010-09-28  Richard Henderson  <rth@redhat.com>
2072
2073	* objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
2074
20752010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
2076
2077	* objc-act.c (objc_start_class_interface): Handle and ignore attributes.
2078	(objc_start_category_interface): Likewise.
2079	(objc_start_protocol): Likewise.
2080
20812010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2082
2083	Merge from 'apple/trunk' branch on FSF servers.
2084
2085	2005-08-23  Stuart Hastings  <stuart@apple.com>
2086		    Ziemowit Laski  <zlaski@apple.com>
2087
2088	Radar 4209854
2089	* objc-act.c (objc_decay_parm_type): New function.
2090	(get_arg_type_list): Decay types for all named arguments.
2091	(objc_push_parm): Rebuild the PARM_DECL if its type has
2092	been decayed.
2093
20942010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2095
2096	* objc-act.c (encode_type): Fixed encoding enums with the next
2097	runtime.
2098
20992010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2100
2101	Merge from 'apple/trunk' branch on FSF servers.
2102
2103	2005-07-18  Ziemowit Laski  <zlaski@apple.com>
2104
2105	Radar 4175534
2106	* objc-act.c (objc_compare_types): A new silent comparison
2107	mode (-4), differing from regular comparison (-3) in that
2108	'false' is returned instead of issuing warnings.
2109
21102010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2111
2112	* objc-act.c (encode_type): Do not add 'r' with the next runtime.
2113	(encode_aggregate_within): Reorganized code to be more readable.
2114	(encode_aggregate_fields): Updated second argument to be 'bool'
2115	instead of 'int'.
2116
21172010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2118
2119	PR objc/45763
2120	PR objc/25450
2121	PR objc/25464
2122	* objc-act.c: Improved comments for encoding functions.
2123	(encode_aggregate_within): For the GNU runtime, rewritten some
2124	obsfuscated code to clarify the various cases.
2125	(encode_aggregate): Function removed.
2126	(encode_array): Generate an error if asked to encode an incomplete
2127	array as part of generating instance variables.  Else, when
2128	encoding an incomplete array inside a structure, encode it as an
2129	array of zero size.
2130	(encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
2131	'^c' instead of '*'.
2132	(encode_gnu_bitfield): Encode enumerated types exactly in the same
2133	type as integer types instead of using a hardcoded 'i'.  If asked
2134	to encode a non-integer type as a bitfield, do not abort
2135	compilation immediately; instead generate an error, then skip the
2136	type.
2137	(encode_type): Use a 'switch' instead of a sequence of 'if's.
2138	Added a 'default' clause that gets executed if the type can not be
2139	matched, and that encodes it as '?' (unknown) and produces a
2140	warning.  For the GNU runtime, encode enumerated types exactly in
2141	the same way as integer types instead of using a hardcoded 'i'.
2142	Encode long double as 'D'.  Encode 128-bit integers as 'T' or 't'.
2143	Encode C++ reference types as pointers.  Call encode_vector to
2144	encode vectors.
2145	(encode_vector): New function.
2146
21472010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2148
2149	Merge from 'apple/trunk' branch on FSF servers.  I modified the
2150	changes to be used only when compiling for the NeXT runtime.
2151
2152	2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
2153
2154	Radar 4301047
2155
2156	* objc-act.c (encode_type): Remove the hack.
2157
2158	2005-07-20  Ziemowit Laski  <zlaski@apple.com>
2159
2160	Radar 4136935
2161	* objc-act.c (pointee_is_readonly): New function.
2162	(encode_pointer, encode_aggregate_within, encode_type):
2163	Attempt to emulate GCC 3.3 when generating type encodings.
2164
21652010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2166
2167	Merge from 'apple/trunk' branch on FSF servers.
2168
2169	2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
2170
2171	Radar 4229905
2172	* objc-act.c (objc_have_common_types): New function.
2173
2174	2005-06-22  Ziemowit Laski  <zlaski@apple.com>
2175
2176	Radar 4154928
2177	* objc-act.c (objc_common_type): New function.
2178
21792010-09-27  Richard Guenther  <rguenther@suse.de>
2180
2181	* objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
2182	(objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
2183
21842010-09-26  Nicola Pero  <nicola.pero@meta-innovation.com>
2185
2186	* objc-act.c: Removed historical, obsolete comment at the top of
2187	the file.
2188
21892010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2190
2191	PR objc/23710
2192	* objc-act.c (objc_start_method_definition): Do not abort upon a
2193	'method definition not in @implementation context' error.  Return
2194	'false' instead.
2195
21962010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2197
2198	PR objc/25965
2199	* objc-act.c (objc_get_interface_ivars): New function.
2200	(objc_collecting_ivars): New variable.
2201	(continue_class): Set and reset objc_collecting_ivars for context.
2202
22032010-09-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2204
2205	Merge from 'apple/trunk' branch on FSF servers.
2206
2207	2006-03-09 Fariborz Jahanian  <fjahanian@apple.com>
2208
2209	Radar 4457381
2210	* objc/objc-act.c (objc_finish_message_expr): Look for message in
2211	@class's protocol list.
2212
2213	2006-02-07  Fariborz Jahanian  <fjahanian@apple.com>
2214
2215	Radar 4219590
2216	* objc/objc-act.c (objc_start_method_definition): Initialize
2217	break/continue labels.
2218
2219	2005-08-22  Ziemowit Laski  <zlaski@apple.com>
2220
2221	Radar 4174166
2222	* objc-act.c (objc_compare_types): Compare function
2223	pointers; indicate success if the right-hand side has
2224	a return type that is covariant, and the argument types
2225	contravariant, with those of the left side.
2226
2227	2005-08-22  Ziemowit Laski  <zlaski@apple.com>
2228
2229	Radar 4216500
2230	* objc-act.c (objc_get_protocol_qualified_type): When looking
2231	at a typedef, retrieve the precise type it describes (rather
2232	than merely looking up a class by name).
2233
22342010-09-10  Nicola Pero  <nicola.pero@meta-innovation.com>
2235
2236	* objc/objc-act.c (objc_begin_try_stmt): Generate an error if
2237	-fobjc-exceptions was not used.  (objc_build_throw_stmt): Same
2238	change.
2239
22402010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2241
2242	* objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2243
22442010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
2245
2246	PR objc/44140
2247	* objc-act.c: build_objc_string_decl() remove declaration.
2248	(finish_var_decl): Remove forcing of var output and marking
2249	as "Used".
2250	(init_def_list): Use integer_zero_node.
2251	(init_objc_symtab): Use integer_zero_node, make the short
2252	integer type specific on relevant nodes.
2253	(generate_objc_symtab_decl): Remove call to
2254	forward_declare_categories().  Use null_pointer_node where
2255	appropriate.
2256	(build_module_descriptor): Comment and mark this item as
2257	DECL_PRESERVE_P.
2258	(generate_static_references): Use gcc_unreachable instead of
2259	abort ().
2260	(diagnose_missing_method): New.
2261	(build_next_selector_translation_table): New.
2262	(build_gnu_selector_translation_table): New.
2263	(add_objc_string): Merge code from build_objc_string_decl...
2264	... and delete build_objc_string_decl().
2265	(generate_dispatch_table): Make integer types explicit.
2266	(generate_category): Pass implent and arrange for the data
2267	to be extracted within the routine.  Do not start new vars,
2268	but finish the ones collcted during parsing.
2269	(generate_shared_structures): Likewise.
2270	(finish_objc):  Reorder code so that we finish variables before
2271	referencing them.  Save the global data before calling meta-data
2272	creation routines, and pass the current reference to the two
2273	main routines.  Only call generate_objc_image_info () for the
2274	NeXT runtime.
2275	(generate_classref_translation_entry): Comment on and make this
2276	item DECL_PRESERVE_P.
2277	(handle_class_ref): Use varpool interfaces, comment on and make
2278	this item DECL_PRESERVE_P.
2279	(handle_impent): Likewise.
2280	(generate_objc_image_info): Only generate when the content is
2281	non-zero.  Make integer types explict.
2282
22832010-07-03  Nathan Froyd  <froydnj@codesourcery.com>
2284
2285	PR objc/24867
2286	* objc-act.c (build_sized_array_type): New function.
2287	(add_objc_string): Use it.
2288	(generate_protocol_list): Likewise.
2289	(generate_objc_image_info): Likewise.
2290	(add_field_decl): New function.
2291	(objc_build_struct): Use a VEC rather than building a TREE_LIST.
2292	(generate_struct_by_value_array): Use add_field_decl.
2293	(build_objc_symtab_template): Likewise.
2294	(build_module_descriptor): Likewise.
2295	(build_objc_exception_stuff): Likewise.
2296	(build_protocol_template): Likewise.
2297	(build_method_prototype_list_template): Likewise.
2298	(build_method_prototype_template): Likewise.
2299	(build_category_template): Likewise.
2300	(build_selector_template): Likewise.
2301	(build_class_template): Likewise.
2302	(build_super_template): Likewise.
2303	(build_ivar_template): Likewise.
2304	(build_ivar_list_template): Likewise.
2305	(build_method_list_template): Likewise.
2306	(build_method_template): Likewise.
2307
23082010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
2309
2310	* objc-act.c: Do not include except.h.
2311
23122010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2313
2314	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
2315	allocation.
2316
2317	* objc-act.c (objc_volatilize_decl): Likewise.
2318	(objc_build_string_object): Likewise.
2319	(hash_init): Likewise.
2320	(hash_enter): Likewise.
2321	(hash_add_attr): Likewise.
2322	(add_class): Likewise.
2323	(start_class): Likewise.
2324
23252010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
2326
2327	* objc-act.c: Update include path for moved files.
2328	* objc-lang.c: Likewise.
2329	* config-lang.in: Update paths in gtfiles for files in c-family/.
2330
23312010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
2332
2333	* objc-act.c (build_next_objc_exception_stuff): Give setjmp a
2334	varargs type instead of a zero-argument type.
2335
23362010-05-30  Nathan Froyd  <froydnj@codesourcery.com>
2337
2338	* objc-act.c (synth_module_prologue): Use build_function_type_list
2339	instead of build_function_type.
2340	(build_module_initializer_routine): Likewise.
2341	(build_next_objc_exception_stuff): Likewise.
2342	(build_objc_exception_stuff): Likewise.
2343
23442010-05-27  Joseph Myers  <joseph@codesourcery.com>
2345
2346	* objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
2347	* Make-lang.in (objc/objc-act.o): Update dependencies.
2348
23492010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2350
2351	* objc-act.h: Do not include gimple.h.
2352	* objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
2353	Include gimple.h.  Explain why except.h has to be included.
2354	* objc-lang.c: Do not include diagnostics.h.
2355	* Make-lang.in: Update dependencies.
2356
23572010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
2358
2359	* objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
2360	mismatch code for VECs.
2361
23622010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
2363
2364	* objc-act.c (objc_build_constructor): Take a VEC instead of a tree.
2365	Use build_constructor instead of build_constructor_from_list.
2366	(objc_build_string_object): Build a VEC argument for
2367	objc_build_constructor.
2368	(init_def_list): Likewise.
2369	(init_objc_symtab): Likewise.
2370	(init_module_descriptor): Likewise.
2371	(generate_static_references): Likewise.
2372	(build_selector_translation_table): Likewise.
2373	(build_descriptor_table_initializer): Likewise.
2374	(generate_descriptor_table): Likewise.
2375	(build_protocol_initializer): Likewise.
2376	(build_ivar_list_initializer): Likewise.
2377	(generate_ivars_list): Likewise.
2378	(build_dispatch_table_initializer): Likewise.
2379	(generate_dispatch_table): Likewise.
2380	(generate_protocol_list): Likewise.
2381	(build_category_initializer): Likewise.
2382	(build_shared_structure_initializer): Likewise.
2383	(generate_objc_image_info): Likewise.
2384
23852010-04-30  Iain Sandoe  <iains@gcc.gnu.org>
2386
2387	PR objc++/32052
2388	* objc-act.c (encode_aggregate_within): Encode structure tags
2389	with template args for ObjC++.
2390
23912010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2392
2393	* objc-act.c: Do not include varray.h.
2394
23952010-04-07  Jakub Jelinek  <jakub@redhat.com>
2396
2397	PR c/18624
2398	* objc-act.c (finish_var_decl, objc_begin_catch_clause,
2399	really_start_method, get_super_receiver, handle_class_ref): Set
2400	DECL_READ_P in addition to TREE_USED.
2401
24022010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
2403
2404	PR objc/35996
2405	* objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
2406	-fgnu-runtime and set flag_objc_gc to zero.
2407
24082010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
2409
2410	PR objc++/23716
2411	* objc-act.c (build_module_initializer_routine): Make the argument
2412	to objc_start_function NULL_TREE when compiling ObjC++.
2413
24142010-02-18  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2415	    Mike Stump  <mikestump@comcast.net>
2416
2417	PR objc/43061
2418	* objc-act.c (finish_var_decl): Set the generated symbols as "used".
2419
24202009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
2421
2422	* objc-act.c (objc_substitute_decl, build_ivar_reference,
2423	get_super_receiver): Update build_indirect_ref calls.
2424
24252009-11-28  Jakub Jelinek  <jakub@redhat.com>
2426
2427	* objc-act.c (generate_shared_structures): Remove unused sc_spec and
2428	decl_specs variables.
2429	(objc_build_message_expr): Remove unused loc variable.
2430	(objc_finish_message_expr): Remove unused saved_rtype variable.
2431	(encode_field_decl): Remove unused type variable.
2432
2433	PR obj-c++/42156
2434	* objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
2435	type variants that don't have it initialized yet.
2436
24372009-09-14  Jan Hubicka  <jh@suse.cz>
2438
2439	* objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
2440
24412009-09-14  Richard Henderson  <rth@redhat.com>
2442
2443	* objc-act.c (objc_init_exceptions): Don't call
2444	default_init_unwind_resume_libfunc.
2445	(objc_build_exc_ptr): Use __builtin_eh_pointer.
2446
24472009-09-13  Richard Guenther  <rguenther@suse.de>
2448	Rafael Avila de Espindola  <espindola@google.com>
2449
2450	* objc-act.c (objc_eh_runtime_type): Export.
2451	(objc_init_exceptions): Remove.  Move warning code ...
2452	(objc_begin_try_stmt): ... here
2453	(objc_build_throw_stmt): ... and here.
2454	(objc_eh_personality_decl): New.
2455	(objc_eh_personality): New function.
2456	* objc-act.h (objc_eh_runtime_type): Declare.
2457	(objc_eh_personality): Likewise.
2458	* objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
2459	(LANG_HOOKS_EH_PERSONALITY): Likewise.
2460
24612009-09-03  Diego Novillo  <dnovillo@google.com>
2462
2463	* objc-lang.c (lang_hooks): Remove const qualifier.
2464
24652009-08-20  Richard Guenther  <rguenther@suse.de>
2466
2467	* objc-act.c: Include c-lang.h
2468	* Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
2469
24702009-07-17  Aldy Hernandez  <aldyh@redhat.com>
2471	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
2472
2473	PR 40435
2474	* objc-act.c: Add location argument to all calls to
2475	build_fold_addr_expr.
2476
24772009-07-14  Taras Glek  <tglek@mozilla.com>
2478	    Rafael Espindola  <espindola@google.com>
2479
2480	* Make-lang.in (objc.install-plugin): New target for
2481	installing plugin headers.
2482
24832009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2484
2485	* objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
2486	EXPR_LOCATION.
2487
24882009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2489
2490	* objc-act.c: Replace %J by an explicit location. Update all
2491	calls.
2492
24932009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2494
2495	* objc-act.c: Replace %H by an explicit location. Update all
2496	calls.
2497
24982009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2499
2500	PR objc/28050
2501	* objc-act.c (objc_build_message_args): Return if ARGS is the
2502	error_mark_node.
2503
25042009-06-19  Ian Lance Taylor  <iant@google.com>
2505
2506	* objc-act.c (objc_in_struct, objc_struct_types): Remove.
2507	(objc_struct_info): New static variable.
2508	(objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
2509	and &objc_struct_types, to start_struct.
2510	(objc_finish_struct): Likewise for finish_struct.
2511
25122009-06-15  Ian Lance Taylor  <iant@google.com>
2513
2514	* objc-act.c (objc_start_function): Don't set
2515	label_context_stack_se or label_context_stack_vm.
2516
25172009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2518
2519	* objc-act.c (finish_var_decl): Pass location to finish_decl.
2520	(objc_get_parm_info): Same.
2521	(get_super_receiver): Same.
2522	* objc-act.c (objc_build_component_ref): Pass location to
2523	build_compound_ref.
2524	(build_module_initializer_routine): Pass location to
2525	c_end_compound_stmt.
2526	(objc_generate_static_init_call): Pass location to build_stmt.
2527	(build_typed_selector_reference): New location argument.
2528	(build_selector_reference): Same.
2529	(objc_substitute_decl): Pass location to build_array_ref.
2530	(next_sjlj_build_try_catch_finally): Pass location to build_stmt.
2531	(objc_begin_catch_clause): Same.
2532	(objc_finish_try_stmt): Same.
2533	(objc_finish_catch_clause): Pass location to c_end_compound_stmt.
2534	(objc_build_throw_stmt): New argument.
2535	(generate_shared_structures): Pass location to build_c_cast.
2536	(objc_build_message_expr): Use local location.
2537	(objc_finish_message_expr): Use input_location.
2538	(build_objc_method_call): New argument.
2539	(objc_build_selector_expr): Same.
2540	(get_super_receiver): Pass location to build_c_cast,
2541	build_modify_expr, build_compound_expr.
2542	* objc-act.c: Add location to all calls to start_struct, build_decl,
2543	finish_struct.
2544
25452009-06-09  Ian Lance Taylor  <iant@google.com>
2546
2547	* objc-act.c (objc_gimplify_expr): Change return type to int.
2548	* objc-act.h: Update declaration.
2549
25502009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2551
2552	* objc-act.c (objc_init): Skip print_struct_values during
2553	-fcompare-debug-second.
2554
25552009-06-03  Ian Lance Taylor  <iant@google.com>
2556
2557	* Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
2558	$(SYSTEM_H).
2559
25602009-05-27  Ian Lance Taylor  <iant@google.com>
2561
2562	* Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
2563	$(LINKER).
2564	(cc1obj$(exeext)): Likewise.
2565
25662009-05-26  Ian Lance Taylor  <iant@google.com>
2567
2568	* Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
2569	(cc1obj$(exeext)): Likewise.
2570
25712009-05-20  Ian Lance Taylor  <iant@google.com>
2572
2573	* objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
2574	than NULL_TREE to build_special_member_call.
2575
25762009-05-10  Ian Lance Taylor  <iant@google.com>
2577
2578	* objc-act.c (objc_building_struct): New static variable.
2579	(objc_in_struct, objc_struct_types): New static variables.
2580	(objc_start_struct, objc_finish_struct): New static functions.
2581	(generate_struct_by_value_array): Call objc_start_struct instead
2582	of start_struct, and call objc_finish_struct instead of
2583	finish_struct.
2584	(objc_build_struct, build_objc_symtab_template): Likewise.
2585	(build_module_descriptor): Likewise.
2586	(build_next_objc_exception_stuff): Likewise.
2587	(build_protocol_template): Likewise.
2588	(build_method_prototype_list_template): Likewise.
2589	(build_method_prototype_template): Likewise.
2590	(build_category_template, build_selector_template): Likewise.
2591	(build_class_template, build_super_template): Likewise.
2592	(build_ivar_template, build_ivar_list_template): Likewise.
2593	(build_method_list_template): Likewise.
2594	(build_method_template): Likewise.
2595
25962009-05-10  Joseph Myers  <joseph@codesourcery.com>
2597
2598	* objc-act.c: Include intl.h.
2599	(objc_lookup_protocol): Use complete sentences for diagnostics
2600	with %qE for identifiers and translating results of
2601	gen_type_name_0 to locale character set.
2602	(objc_check_decl, check_protocol_recursively,
2603	lookup_and_install_protocols, objc_build_string_object,
2604	objc_get_class_reference, objc_declare_alias, objc_declare_class,
2605	objc_get_class_ivars, error_with_ivar, check_duplicates,
2606	objc_finish_message_expr, objc_build_protocol_expr,
2607	objc_build_selector_expr, build_ivar_reference, objc_add_method,
2608	add_category, add_instance_variable, objc_is_public,
2609	check_methods, check_methods_accessible, check_protocol,
2610	start_class, finish_class, start_protocol, really_start_method,
2611	get_super_receiver, objc_lookup_ivar): Use %E and %qE for
2612	identifiers in diagnostics.  Translate generated text to locale
2613	character set as needed.
2614	(check_protocol, check_protocols): Change name parameter to type
2615	tree.
2616	(lang_report_error_function): Remove.
2617
26182009-04-27  Ian Lance Taylor  <iant@google.com>
2619
2620	* objc-act.c (objc_gimplify_expr): Add casts to enum type.
2621
26222009-04-24  Ian Lance Taylor  <iant@google.com>
2623
2624	* objc-act.c (get_super_receiver): Update calls to
2625	build_modify_expr to pass new argument.
2626
26272009-04-21  Taras Glek  <tglek@mozilla.com>
2628
2629	* objc-act.c: Update GTY annotations to new syntax
2630	* objc-act.h: Likewise
2631
26322009-04-21  Joseph Myers  <joseph@codesourcery.com>
2633
2634	* ChangeLog: Add copyright and license notices.
2635
26362009-04-20  Ian Lance Taylor  <iant@google.com>
2637
2638	* objc-act.c (objc_rewrite_function_call): Change parameter from
2639	params to first_param.  Change all callers.
2640
26412009-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
2642
2643	PR bootstrap/39583
2644	* objc-act.c (in_late_binary_op): Define for Objective-C++.
2645
26462009-03-29  Joseph Myers  <joseph@codesourcery.com>
2647
2648	PR c/456
2649	PR c/5675
2650	PR c/19976
2651	PR c/29116
2652	PR c/31871
2653	PR c/35198
2654	* objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
2655
26562008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
2657
2658	PR bootstrap/38262
2659	* Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
2660	remove GMPLIBS.
2661
26622008-10-06  Aldy Hernandez  <aldyh@redhat.com>
2663
2664	* objc-act.c (objc_build_string_object): Pass location to
2665	build_unary_op.
2666	(init_def_list): Same.
2667	(init_objc_symtab): Same.
2668	(init_module_descriptor): Same.
2669	(build_module_initializer_routine): Same.
2670	(generate_static_references): Same.
2671	(build_typed_selector_reference): Same.
2672	(add_objc_string): Same.
2673	(objc_substitute_decl): Same.
2674	(objc_build_ivar_assignment): Same.
2675	(objc_build_global_assignment): Same.
2676	(objc_build_strong_cast_assignment): Same.
2677	(generate_protocols): Same.
2678	(build_protocol_initializer): Same.
2679	(build_dispatch_table_initializer): Same.
2680	(generate_protocol_list): Same.
2681	(build_category_initializer): Same.
2682	(build_shared_structure_initializer): Same.
2683	(generate_shared_structures): Same.
2684	(objc_build_protocol_expr): Same.
2685	(build_ivar_reference): Same.
2686	(get_super_receiver): Same.
2687
26882008-09-23  Aldy Hernandez  <aldyh@redhat.com>
2689
2690	* objc-act.c (next_sjlj_build_enter_and_setjmp): Call
2691	c_common_truthvalue_conversion with location.
2692	(next_sjlj_build_catch_list): Same.
2693	(next_sjlj_build_try_catch_finally): Same.
2694
26952008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2696
2697	PR objc/37460
2698	* objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
2699	* objc-act.h (objc_get_callee_fndecl): Remove prototype.
2700	* objc-act.c (objc_get_callee_fndecl): Kill.
2701
27022008-09-17  Jan Hubicka  <jh@suse.cz>
2703
2704	PR c++/18071
2705	* objc/objc-act.c (objc_finish_method_definition): Do not set
2706	DECL_INLINE.
2707
27082008-09-01  Aldy Hernandez  <aldyh@redhat.com>
2709
2710	* objc-act.c (build_typed_selector_reference): Pass input_location to
2711	build_unary_op calls.
2712	(build_selector_reference): Same, but to build_array_ref.
2713	(objc_substitute_decl): Same.
2714	(build_ivar_reference): Same, but to build_indirect_ref.
2715	(get_super_receiver): Same.
2716
27172008-07-28  Richard Guenther  <rguenther@suse.de>
2718
2719	Merge from gimple-tuples-branch.
2720
2721	2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
2722
2723	* Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
2724	(objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
2725	* objc-act.h: Include gimple.h instead of tree-gimple.h.
2726	* ipa-reference.c: Same.
2727
2728	2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
2729
2730	* objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
2731	* objc-act.h (objc_gimplify_expr): Change prototype accordingly.
2732
27332008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2734
2735	* objc-act.c: Fix comment typos.
2736
27372008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2738
2739	* objc-act.c (objc_start_class_interface,
2740	objc_start_category_interface, objc_start_class_implementation,
2741	objc_start_category_implementation, objc_build_struct,
2742	generate_static_references, build_private_template,
2743	lookup_category, objc_add_method, add_category,
2744	add_instance_variable, objc_is_public, conforms_to_protocol,
2745	start_class, continue_class, finish_class): Avoid C++ keywords.
2746
27472008-07-14  Jason Merrill  <jason@redhat.com>
2748
2749	PR objc++/36723
2750	* objc-act.c (objc_build_constructor): Update C++ tweak.
2751
27522007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
2753
2754	* objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
2755	of DECL_IN_SYSTEM_HEADER.
2756
27572008-07-11  Ian Lance Taylor  <iant@google.com>
2758
2759	* objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
2760	etc., not just when OBJCPLUS is defined.
2761
27622008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2763
2764	* objc-act.c (setup_string_decl, objc_build_string_object,
2765	hash_interface, eq_interface, objc_begin_try_stmt,
2766	encode_method_prototype, build_ivar_list_initializer,
2767	objc_build_encode_expr): Fix for -Wc++-compat.
2768
27692008-05-12  Tomas Bily  <tbily@suse.cz>
2770
2771	* objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
2772	Use CONVERT_EXPR_P.
2773
27742008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2775
2776	* objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
2777
27782008-04-03  Tom Tromey  <tromey@redhat.com>
2779
2780	* Make-lang.in (objc_OBJS): New variable.
2781
27822008-03-27  Tom Tromey  <tromey@redhat.com>
2783
2784	* Make-lang.in: Revert automatic dependency patch.
2785
27862008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
2787
2788	PR obj-c++/35704
2789	* objc-act.c (objc_build_component_ref): Fix call to
2790	finish_class_member_access_expr.
2791	(objc_generate_cxx_ctor_or_dtor): Fix call to
2792	build_special_member_call.
2793
27942008-03-25  Andrew Pinski  <pinskia@gmail.com>
2795
2796	PR objc/29197
2797	* objc-act.c (encode_type): Handle when type is error_mark_node.
2798	(objc_push_parm): Handle when the type of parm is error_mark_node.
2799
28002008-03-25  Tom Tromey  <tromey@redhat.com>
2801
2802	* Make-lang.in (objc_OBJS): New variable.
2803	(cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
2804
28052008-03-21  Andreas Tobler  <a.tobler@schweiz.org>
2806
2807	PR bootstrap/35660
2808	* objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
2809	MAYBE_CLASS_TYPE_P.
2810	(objc_generate_cxx_cdtors): Likewise.
2811	(add_instance_variable): Likewise.
2812
28132008-02-26  Tom Tromey  <tromey@redhat.com>
2814
2815	* objc-act.c (objc_init): Remove old location code.
2816
28172008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2818
2819	PR other/35107
2820	* Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
2821
28222007-07-30  Nick Clifton  <nickc@redhat.com>
2823
2824	* Make-lang.in: Change copyright header to refer to version 3 of
2825	the GNU General Public License and to point readers at the
2826	COPYING3 file and the FSF's license web page.
2827	* lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
2828	config-lang.in, objc-lang.c: Likewise.
2829
28302007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2831
2832	* objc-act.c (objc_get_callee_fndecl): Constify.
2833	* objc-act.h (objc_get_callee_fndecl): Likewise.
2834
28352007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2836
2837	* objc-act.c (volatilized_hash, volatilized_eq, string_hash,
2838	string_eq): Constify.
2839
28402007-04-04  Stuart Hastings  <stuart@apple.com>
2841
2842	PR 31281
2843	* objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
2844
28452007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2846
2847	* Make-lang.in: Add dummy lang.install-pdf target.
2848
28492007-02-18  Kazu Hirata  <kazu@codesourcery.com>
2850
2851	* objc/objc-act.c: Fix comment typos.
2852
28532007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2854	    Brooks Moses  <brooks.moses@codesourcery.com>
2855	    Lee Millward  <lee.millward@codesourcery.com>
2856
2857	* objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
2858	(objc_get_callee_fndecl): Likewise.
2859
28602007-01-23  Andrew Pinski  <pinskia@gmail.com>
2861
2862	PR objc/27438
2863	* objc-act.c (objc_add_static_instance): Mark the decl as
2864	TREE_USED.
2865
28662007-01-20  Andrew Pinski  <pinskia@gmail.com>
2867
2868	PR objc/30479
2869	* objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
2870	of htab_hash_pointer.
2871	(lookup_interface): Likewise.
2872	(add_class): Likewise.
2873
28742007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
2875
2876	* objc-act.c (objc_build_volatilized_type): Keep track of
2877	canonical types.
2878	(objc_get_protocol_qualified_type): Ditto.
2879
28802006-11-02  Andreas Tobler  <a.tobler@schweiz.org>
2881
2882	* objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
2883	content where we called cp_finish_file.
2884
28852006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2886
2887	* objc-act.c (synth_module_prologue): Replace calls to
2888	builtin_function with add_builtin_function.
2889	(build_next_objc_exception_stuff): Replace calls to
2890	builtin_function with add_builtin_function.
2891	(build_objc_exception_stuff): Replace calls to
2892	builtin_function with add_builtin_function.
2893
28942006-10-10  Brooks Moses  <bmoses@stanford.edu>
2895
2896	* Make-lang.in: Added empty "objc.pdf" target.
2897
28982006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>
2899
2900	PR objc/29195
2901	* objc-act.c (objc_push_parm): If we change the type of the
2902	decl, relayout the decl.
2903
29042006-09-19  Eric Christopher  <echristo@apple.com>
2905
2906	* objc-act.c (JBLEN): Rename to OBJC_JBLEN,
2907	default to something innocuous.
2908	(build_next_objc_exception_stuff): Rename JBLEN.
2909
29102006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2911
2912	* Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2913
29142006-07-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2915
2916	PR obj-c++/28434
2917	* objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
2918
29192006-06-06  Mike Stump  <mrs@apple.com>
2920
2921	* objc-act.c: Remove prototype for objc_build_volatilized_type.
2922
29232006-05-24  Mike Stump  <mrs@apple.com>
2924
2925	* objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
2926
29272006-05-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2928
2929	PR objc/27240
2930	* objc-act.c (objc_is_public): Return early on invalid type.
2931
29322006-03-02 Fariborz Jahanian  <fjahanian@apple.com>
2933
2934	* objc-act.c (init_module_descriptor): Remove file name from
2935	module descriptor.
2936	(gen_type_name_0): Fix ICE when issuing warning.
2937
29382006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2939
2940	* Make-lang.in (OBJC): Remove
2941	(OBJECTIVE-C): Remove
2942	(objective-c): Remove
2943	(.PHONY): Remove objective-c and ObjC
2944
29452005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
2946
2947	PR objc/25360
2948	* objc/objc-act.c (encode_type): Encode Complex types as 'j' followed
2949	by the inner type.
2950
29512005-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
2952
2953	PR objc/25348
2954	* objc-act.c (encode_array): Handle arrays to zero sized types.
2955
29562005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2957
2958	* Make-lang.in (objc.all.build, objc.install-normal): Remove.
2959
29602005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2961
2962	* Make-lang.in: Remove all dependencies on s-gtype.
2963
29642005-12-02  Richard Guenther  <rguenther@suse.de>
2965
2966	* objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
2967	next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
2968	next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
2969	build_objc_method_call, objc_rewrite_function_call): Use buildN
2970	instead of build.
2971
29722005-10-20  Geoffrey Keating  <geoffk@apple.com>
2973
2974	* objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
2975	on objc_msgSend and like builtin functions.
2976
29772005-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2978
2979	* objc-act.c (objc_build_component_ref): Adjust call to
2980	finish_class_member_access_expr due to a changed prototype.
2981
29822005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
2983
2984	PR objc/23306
2985	* objc-act.c (generate_strings): Remove and move code to
2986	finish decl to ...
2987	(add_objc_string): here when creating a new string decl.
2988	(finish_objc): Don't call generate_strings.
2989
29902005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
2991
2992	PR objc/23381
2993	* objc-act.c (next_sjlj_build_try_catch_finally): Set
2994	TREE_SIDE_EFFECTS on catch_seq after building it.
2995
29962005-08-09  Andrew Pinski  <pinskia@physics.uc.edu>
2997
2998	part of PR objc/21992
2999	* objc-act.c (handle_class_ref): The ref decl is always referenced.
3000
30012005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
3002
3003	Make CONSTRUCTOR use VEC to store initializers.
3004	* objc-act.c (objc_build_constructor): Use build_constructor_from_list
3005	instead of build_constructor.
3006
30072005-07-08  Daniel Berlin  <dberlin@dberlin.org>
3008
3009	* objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
3010	removed.
3011	* objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
3012	(KEYWORD_KEY_NAME): Use decl_minimal.
3013	(METHOD_SEL_NAME): Ditto..
3014	(METHOD_SEL_ARGS): Use decl_non_common.
3015	(METHOD_ADD_ARGS): Ditto.
3016	(METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
3017	(METHOD_DEFINITION): Ditto.
3018	(METHOD_ENCODING): Ditto.
3019	* objc-lang.c: (objc_init_ts): New function.
3020
30212005-07-07  Ziemowit Laski  <zlaski@apple.com>
3022
3023	* objc-act.c (objc_build_struct): Pass in an actual @interface
3024	instead of its name, and annotate the struct created (and all
3025	existing variants thereof) with the @interface.
3026	(objc_compare_types): Treat forward-declared ObjC classes
3027	as stand-alone (root) classes for purposes of type comparisons.
3028	(build_private_template): Move some code to objc_build_struct().
3029
30302005-07-07  Ziemowit Laski  <zlaski@apple.com>
3031
3032	PR objc/22274
3033	* objc-act.c (objc_build_string_object): For GNU-style constants,
3034	use the @interface type rather than the built-in type.
3035
30362005-07-03  Kazu Hirata  <kazu@codesourcery.com>
3037
3038	* Make-lang.in (cc1plus-checksum.c): Use
3039	build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
3040
30412005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
3042
3043	* objc-act.c: Use %q to quote in diagnostics.
3044
30452005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
3046
3047	* objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
3048	quoting.
3049
30502005-06-30  Ziemowit Laski  <zlaski@apple.com>
3051
3052	* objc-act.c (objc_build_volatilized_type): New function.
3053	(objc_volatilize_decl): Call objc_build_volatilized_type()
3054	instead of build_qualified_type().
3055
30562005-06-29  Ziemowit Laski  <zlaski@apple.com>
3057
3058	* objc-act.c (objc_build_internal_const_str_type): New function.
3059	(check_string_class_template): Use objc_get_class_ivars() instead
3060	of TYPE_FIELDS() to retrieve ivar list.
3061	(AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
3062	than the field itself.
3063	(objc_build_string_object): Synthesize a "__builtin_ObjCString"
3064	type and use it to lay out compile-time string objects.
3065	* objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
3066	New.
3067
30682005-06-28  Paul Brook  <paul@codesourcery.com>
3069
3070	* objc-act.c (objc_init_exceptions): Call
3071	default_init_unwind_resume_libfunc.
3072
30732005-06-27  Ziemowit Laski  <zlaski@apple.com>
3074
3075	* objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
3076	portion of TYPE_LANG_SPECIFIC info for all variants of
3077	a class before calling finish_struct(), and restore
3078	same TYPE_OBJC_INFO afterwards.
3079
30802005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
3081
3082	* all files: Update FSF address in copyright headers.
3083
30842005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
3085
3086	* objc-act.c (my_build_string_pointer): New.
3087	(objc_get_class_reference, get_super_receiver): Call
3088	my_build_string_pointer instead of my_build_string when building
3089	function arguments.
3090
30912005-05-25  Mike Stump  <mrs@mrs.kithrup.com>
3092
3093	* objc-act.c (volatilized_hash): Avoid warnings on 64-bit
3094	machines.
3095
30962005-05-24  Ziemowit Laski  <zlaski@apple.com>
3097
3098	* objc-act.c (objc_build_struct): New function.
3099	(objc_derived_from_p): Likewise.
3100	(objc_build_component_ref): Likewise.
3101	(objc_copy_binfo): Likewise.
3102	(objc_xref_basetypes): Likewise.
3103	(objc_lookup_protocol): Likewise.
3104	(objc_compare_protocols): Likewise.
3105	(objc_volatilize_decl): Likewise.
3106	(encode_aggregate_fields): Likewise.
3107	(volatilized_hash): Likewise.
3108	(volatilized_eq): Likewise.
3109	(objc_compare_types): Likewise.
3110	(objc_type_quals_match): Likewise.
3111	(DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
3112	of same name.
3113	(get_class_ivars): Add second parameter indicating if entire
3114	hierarchy is desired.
3115	(struct volatilized_type): New type.
3116	(volatilized_htab): New hash table.
3117	(objc_types_compatible_p, objc_comptypes): Remove functions.
3118	(synth_module_prologue): Do not initialize 'unused_list'.
3119	(objc_get_class_reference): Fix ObjC++ impedance mismatches.
3120	(objc_declare_alias): Implement as a typedef.
3121	(objc_substitute_decl, objc_gimplify_expr): Reformat.
3122	(objc_get_class_ivars): Adjust call to get_class_ivars().
3123	(next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
3124	build_ivar_reference, get_super_receiver): Call
3125	objc_build_component_ref() instead of build_component_ref().
3126	(objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
3127	objc_comptypes().
3128	(build_private_template): Call objc_build_struct() instead of
3129	start_struct() and finish_struct().
3130	(hash_init): Initialize volatilized_htab.
3131	(objc_is_public): Adjust calls to objc_get_ivars(); adjust
3132	ObjC++ impedance mismatches.
3133	(encode_aggregate_within): Streamline by calling
3134	encode_aggregate_fields().
3135	* objc-act.h (objc_types_compatible_p): Remove prototype.
3136	(OCTI_UNUSED_LIST, unused_list): Remove slot.
3137	* objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
3138
31392005-05-18  Geoffrey Keating  <geoffk@apple.com>
3140
3141	* Make-lang.in (cc1obj-dummy): New.
3142	(cc1obj-checksum.c): New.
3143	(cc1obj-checksum.o): New.
3144	(cc1obj): Add cc1obj-checksum.o.
3145
31462005-05-18  Mike Stump  <mrs@apple.com>
3147
3148	PR objc/21641
3149	* objc-act.c (struct interface_tuple): Mark it up for GC.
3150	(interface_htab): It is really a struct interface_tuple.
3151
31522005-05-17  Ziemowit Laski  <zlaski@apple.com>
3153	    Mike Stump  <mrs@apple.com>
3154
3155	Yet more Objective-C++...
3156
3157	* objc-act.c (objc_finish_try_stmt): Add return value.
3158	(objc_build_synchronized): Likewise.
3159
3160	* objc-act.c (objc_is_gcable_type): Add.
3161	(objc_substitute_decl): Add.
3162	(objc_build_ivar_assignment): Add.
3163	(objc_build_global_assignment): Add.
3164	(objc_build_strong_cast_assignment): Add.
3165	(objc_is_ivar_reference_p): Add.
3166	(objc_is_global_reference_p): Add.
3167	(objc_generate_write_barrier): Add.
3168	(objc_rewrite_function_call): Add.
3169	(objc_gimplify_expr): Add Objective-C++ support.
3170	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
3171	(SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
3172	(INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
3173	(DUP_TYPE_OBJC_INFO): Likewise.
3174	(struct imp_entry): Add field has_cxx_cdtors.
3175	(struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
3176	OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
3177	OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
3178	OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
3179	OCTI_ASSIGN_STRONGCAST_DECL.
3180	(umsg_fast_decl): Add.
3181	(objc_assign_ivar_decl): Add.
3182	(objc_assign_ivar_fast_decl): Add.
3183	(objc_assign_global_decl): Add.
3184	(objc_assign_strong_cast_decl): Add.
3185	(objc_method_list_ptr): Add.
3186	(objc_method_proto_list_ptr): Add.
3187	(objc_ivar_list_ptr): Add.
3188
3189	* objc-act.c (should_call_super_dealloc): Add.
3190	(OBJC_VERSION): Bump to 6.
3191	(objc_is_gcable_type): Add.
3192	(objc_substitute_decl): Add.
3193	(objc_build_ivar_assignment): Add.
3194	(objc_build_global_assignment): Add.
3195	(objc_build_strong_cast_assignment): Add.
3196	(objc_is_gcable_p): Add.
3197	(objc_is_ivar_reference_p): Add.
3198	(objc_is_global_reference_p): Add.
3199	(generate_shared_structures): Add flags parameter.
3200	(objc_generate_cxx_ctor_or_dtor): Add.
3201	(objc_generate_cxx_cdtors): Add.
3202	(add_class): Add name parameter.
3203	(objc_types_share_size_and_alignment): Add.
3204	(comp_proto_with_proto): Add strict parameter.
3205	(CLS_HAS_CXX_STRUCTORS): Add.
3206	(TAG_ASSIGNIVAR): Add.
3207	(TAG_ASSIGNGLOBAL): Add.
3208	(TAG_ASSIGNSTRONGCAST): Add.
3209	(TAG_MSGSEND_FAST): Add.
3210	(TAG_ASSIGNIVAR_FAST): Add.
3211	(TAG_CXX_CONSTRUCT): Add.
3212	(TAG_CXX_DESTRUCT): Add.
3213	(OBJC_LOOKUP_CLASS): Add.
3214	(OBJC_LOOKUP_NO_SUPER): Add.
3215	(objc_finish_file): Add pch support.
3216	(objc_finish_implementation): Add Objective-C++ support.
3217	(synth_module_prologue): Likewise.
3218	(synth_module_prologue): Add fast dispatching.
3219	(objc_get_class_reference): Add Objective-C++ support.
3220	(objc_generate_write_barrier): Likewise.
3221	(next_sjlj_build_enter_and_setjmp): Likewise.
3222	(objc_begin_try_stmt): Likewise.
3223	(build_next_objc_exception_stuff): Add fast ivar support.
3224	(build_private_template): Mark the record as used so debug
3225	information is generated.
3226	(build_protocol_template): Add Objective-C++ support.
3227	(objc_method_parm_type) Likewise.
3228	(objc_generate_cxx_ctor_or_dtor): Likewise.
3229	(objc_generate_cxx_cdtors): Likewise.
3230	(build_protocol_initializer): Likewise.
3231	(build_category_template): Likewise.
3232	(build_class_template): Likewise.
3233	(build_method_list_template): Likewise.
3234	(build_category_initializer): Likewise.
3235	(build_shared_structure_initializer): Likewise.
3236	(objc_finish_message_expr): Likewise.
3237	(build_objc_method_call): Add fast dispatch support.
3238	(lookup_method_static): Add support to end search at superclasses.
3239	(add_method_to_hash_list): Add strict parameter to
3240	comp_proto_with_proto.
3241	(objc_add_method): Likewise.
3242	(objc_add_method): Also set the interface_value.
3243	(add_instance_variable): Add Objective-C++ support.
3244	(objc_is_public): Likewise.
3245	(start_class): Likewise.
3246	(continue_class): Likewise.
3247	(encode_aggregate_within): Likewise.
3248	(start_method_def): Likewise.
3249	(objc_start_function): Clear current_function_returns_value
3250	and current_function_returns_null.
3251	(really_start_method): Add Objective-C++ support.
3252	(objc_finish_method_definition): Add warning for missing
3253	[super dealloc].
3254	(finish_objc): Add Objective-C++ support.
3255	(generate_objc_image_info): Likewise.
3256	(objc_lookup_ivar): Likewise.
3257	* objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
3258	(INIT_TYPE_OBJC_INFO): Likewise.
3259	(DUP_TYPE_OBJC_INFO): Likewise.
3260
32612005-04-23  DJ Delorie  <dj@redhat.com>
3262
3263	* objc-act.c: Adjust warning() callers.
3264
32652005-04-21  Roger Sayle  <roger@eyesopen.com>
3266
3267	* objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
3268	this field of an objc method decl.
3269	* objc-act.c (build_method_decl): Take an additional "ellipsis"
3270	argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
3271	(objc_build_method_signature): Accept additional "ellipsis"
3272	argument and pass it to build_method_decl.
3273	(get_arg_type_list, start_method_def, gen_method_decl): Use
3274	the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
3275	TREE_OVERFLOW field of a TREE_LIST node.
3276
32772005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
3278
3279	PR c/12913
3280	* objc-act.c (objc_start_function): Create stack level for context
3281	of identifiers with variably modified type.
3282
32832005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
3284
3285	PR c/772
3286	PR c/17913
3287	* objc-act.c (objc_start_function): Push context on
3288	label_context_stack.
3289
32902005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3291
3292	* objc-act.c (next_sjlj_build_enter_and_setjmp,
3293	next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
3294	Call c_common_truthvalue_conversion.
3295
32962005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
3297
3298	* Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
3299	objc/objc-parse.c, objc/objc-parse.y): Remove
3300	(OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
3301	objc.distclean, objc.maintainer-clean): Update for new parser.
3302	* config-lang.in (gtfiles): Update for new parser.
3303
33042005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
3305
3306	* lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
3307	copyright.
3308
33092005-01-27  Matt Austern  <austern@apple.com>
3310
3311	* objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
3312	calling instantiate_pending_templates.
3313
33142005-01-26  Alexander Malmberg  <alexander@malmberg.org>
3315
3316	PR objc/18862
3317	* objc-act.c (build_selector_translation_table): Use
3318	input_location in the diagnostic for the GNU runtime or if
3319	TREE_PURPOSE (chain) is NULL.
3320
33212005-01-25  Alexander Malmberg  <alexander@malmberg.org>
3322
3323	PR objc/18408
3324	* objc-act.c (objc_types_compatible_p): New function.
3325	* objc-act.h (objc_types_compatible_p): Declare.
3326	* objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3327
33282005-01-16  Ziemowit Laski  <zlaski@apple.com>
3329
3330	* objc-act.c (objc_push_parm): Call c_type_promotes_to()
3331	via a lang-hook.
3332
33332005-01-15  Ziemowit Laski  <zlaski@apple.com>
3334
3335	PR objc/19321
3336	* objc-act.c (get_arg_type_list): Decay function arguments into
3337	pointers.
3338	(objc_push_parm): Likewise; bring PARM_DECL construction closer
3339	in line with what the C front-end does.
3340	(objc_get_parm_info): Call pushdecl() and finish_decl() on
3341	each PARM_DECL, like the C front-end does.
3342	(start_method_def): Remove redundant ARRAY_TYPE decay.
3343	(objc_start_function): Bring closer in line with what the
3344	C front-end does for functions.
3345
33462005-01-14  Mike Stump  <mrs@apple.com>
3347
3348	* lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
3349	that -fobjc-exceptions is accepted.
3350
33512004-12-30  Ziemowit Laski  <zlaski@apple.com>
3352
3353	PR objc/18971
3354	* objc-act.c (get_arg_type_list, start_method_def): Decay
3355	array arguments into pointers.
3356	(gen_type_name_0): Learn to pretty-print array types.
3357
33582004-12-15  Ziemowit Laski  <zlaski@apple.com>
3359
3360	* objc-act.c (build_private_template): Change to return 'void'; do
3361	not set ivar_context, uprivate_record or objc_instance_type.
3362	(objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
3363	retrieve protocol list from the pointee rather than the pointer itself;
3364	check TYPE_HAS_OBJC_INFO(...) precondition before accessing
3365	TYPE_OBJC_PROTOCOL_LIST.
3366	(objc_get_protocol_qualified_type): For types 'id' and 'Class',
3367	construct a variant of the pointee as well as the pointer, and
3368	store protocol information in the former.  When creating variants
3369	of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
3370	TYPE_OBJC_INTERFACE information.
3371	(objc_declare_class): If a TYPE_DECL is looked up, retrieve the
3372	underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
3373	for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
3374	holding an IDENTIFIER_NODE.
3375	(objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
3376	accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
3377	of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
3378	an IDENTIFIER_NODE (meaning a @class forward-declaration only).
3379	(objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
3380	lookup_interface().
3381	(continue_class): For @implementations, set ivar_context,
3382	uprivate_record and objc_instance_type, for @interfaces, call
3383	build_private_template().
3384	(encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
3385	TYPE_OBJC_INTERFACE.
3386	(objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
3387	accessing TYPE_OBJC_PROTOCOL_LIST.
3388	* objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
3389	DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
3390	SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
3391	(TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
3392	to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
3393	(TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
3394	TYPE_LANG_SPECIFIC(...).
3395	(TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
3396	(IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
3397	TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
3398	adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
3399	instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
3400
34012004-11-29  Joseph Myers  <joseph@codesourcery.com>
3402
3403	PR c/7544
3404	* Make-lang.in (objc/objc-act.o): Update dependencies.
3405	* objc-act.c (objc_finish_file): Call
3406	maybe_apply_pending_pragma_weaks if not OBJCPLUS.
3407
34082004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
3409
3410	PR objc/18406
3411	* obj-act.c (encode_type): 96bits doubles are encoded the
3412	same way as 64bit and 128bit doubles are.
3413
34142004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
3415
3416	* objc-act.c: Use %q, %< and %> for quoting in diagnostics.
3417
34182004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
3419
3420	PR objc/16546
3421	* objc-act.c (generate_method_descriptors): Remove setting
3422	the new decls' type to variable_length_type.
3423	(generate_ivar_lists): Likewise.
3424	(generate_dispatch_tables): Likewise.
3425
34262004-10-30  Ziemowit Laski  <zlaski@apple.com>
3427
3428	* objc-act.c (objc_lookup_ivar): The new OTHER parameter
3429	contains the result of the ID lookup by the C or C++
3430	front-end; in class methods, use OTHER if it exists;
3431	in instance methods, use OTHER only if it is locally
3432	declared.
3433
34342004-10-26  Ziemowit Laski  <zlaski@apple.com>
3435
3436	* objc-act.c (finish_class): Do not synthesize bogus
3437	'extern objc_object *_Foo;' declarations for @interface Foo.
3438
34392004-10-25  Ziemowit Laski  <zlaski@apple.com>
3440	    David Ayers  <d.ayers@inode.at>
3441
3442	* objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
3443	instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
3444	'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
3445	'Class <Protocol> == id' and 'Class <Protocol> == Class'.
3446	(objc_is_id): Add test for 'super'.
3447	(objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
3448	receivers; if class methods are not found in protocol lists, search
3449	for instance methods therein and warn if one is found.  Look in
3450	global hash tables for suitable method as a last resort when messaging
3451	'id <Proto>', 'Class <Proto>' and invalid receiver types.
3452	(objc_add_method): Insert instance methods listed in protocols into
3453	the global class method hash table.
3454	* objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
3455	IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
3456	addition to 'id <Proto>'.
3457
34582004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
3459
3460	PR objc/17923
3461	* objc-act.c (objc_build_string_object): Create a CONST_DECL
3462	for the NeXT runtime case.
3463
34642004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
3465
3466	* objc-act.c: Fix comment typos.
3467
34682004-09-24  Ziemowit Laski  <zlaski@apple.com>
3469
3470	* objc-act.c (init_objc_symtab, init_module_descriptor,
3471	build_shared_structure_initializer): When initializing 'long'
3472	fields, ensure that the initializer value is also 'long'.
3473
34742004-09-24  Zack Weinberg  <zack@codesourcery.com>
3475
3476	* objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
3477	throughout.
3478	(objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
3479	(build_selector_translation_table): Use %J in diagnostic
3480	instead of diddling input_line.  Fix spelling.
3481
34822004-09-21  Ziemowit Laski  <zlaski@apple.com>
3483
3484	* objc-act.c (objc_fold_objc_type_ref): New function.
3485	* objc-act.h (objc_fold_objc_type_ref): New prototype.
3486
34872004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
3488
3489	* objc-act.c (objc_start_function, really_start_method,
3490	objc_get_parm_info, start_method_def): Update to new arg_info
3491	structures.
3492
34932004-09-07  Ziemowit Laski  <zlaski@apple.com>
3494
3495	* Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
3496	objc/objc-act.h.
3497	(objc/objc-act.o): Depend on $(HASHTAB_H).
3498	* objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
3499	objcp-decl.h instead of c-tree.h.
3500	(build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
3501	error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
3502	build_protocol_template): Adjust prototypes.
3503	(build_module_initializer_routine, start_class, continue_class,
3504	finish_class, start_method_def, objc_start_function, start_protocol,
3505	build_method_decl, objc_add_method, add_instance_variable,
3506	build_ivar_reference, is_ivar, is_private, get_super_receiver,
3507	build_selector_table_decl, objc_push_parm, objc_get_parm_info,
3508	gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
3509	create_field_decl): New prototypes.
3510	(objc_expand_function_end, comp_method_with_proto, objc_expr_last,
3511	gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
3512	define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
3513	(TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
3514	(CLASS_TYPEDEF_NAME): New.
3515	(TAG_EXECCLASS): Change from a global variable to a #define.
3516	(TAG_RETURN_STRUCT): Delete.
3517	(TAG_GNUINIT): New, holds '__objc_gnu_init' name.
3518	(objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
3519	(string_descriptor): New struct.
3520	(string_htab): New hash table.
3521	(string_hash, string_eq): New prototypes.
3522	(generate_struct_by_value_array): Call create_field_decl() instead of
3523	create_builtin_decl().
3524	(objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
3525	In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
3526	(objc_finish_file): In ObjC++, call instantiate_pending_templates()
3527	and cp_finish_file().
3528	(define_decl, get_static_reference, get_protocol_reference,
3529	create_builtin_decl): Remove functions.
3530	(objc_start_class_interface, objc_start_category_interface,
3531	objc_start_protocol, objc_continue_interface, objc_finish_interface,
3532	objc_start_class_implementation, objc_start_category_implementation,
3533	objc_continue_implementation, objc_finish_implementation,
3534	objc_set_visibility, objc_set_method_type,
3535	objc_build_method_signature, objc_add_method_declaration,
3536	objc_start_method_definition, objc_add_instance_variable,
3537	objc_get_protocol_qualified_type, create_field_decl,
3538	start_var_decl, finish_var_decl): New functions.
3539	(setup_string_decl): Simplify since it is only called once.
3540	(synth_module_prologue): Call build_class_template(); predefine 'id'
3541	and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
3542	hooks for duration of function; fix GNU runtime messenger signatures
3543	to correspond to reality; forward-declare '__objc_exec_class' for the
3544	GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
3545	'extern "C" { ... }' wrappers around synthesized declarations; call
3546	build_protocol_template() and build_category_template().
3547	(string_hash, string_eq): New functions.
3548	(objc_build_string_object): Check metaclass correctness only once;
3549	store string literals in hash table.
3550	(objc_build_constructor): Do not convert initializer elements;
3551	adjust for ObjC++ impedance mismatch.
3552	(build_objc_symtab_template): Call create_field_decl() instead of
3553	create_builtin_decl().
3554	(init_objc_symtab): Add missing conversion to initializer element.
3555	(build_metadata_decl): Call start_var_decl() instead of define_decl().
3556	(generate_objc_symtab_decl): Do not call build_category_template();
3557	call start_var_decl() and finish_var_decl() instead of start_decl()
3558	and finish_decl().
3559	(build_module_descriptor): Call create_field_decl() instead of
3560	grokfield(); call start_var_decl() and finish_var_decl() instead of
3561	start_decl() and finish_decl(); always mark module descriptor as
3562	used; move GNU runtime-specific functionality to
3563	build_module_initializer_routine().
3564	(build_module_initializer_routine): New function, broken off of
3565	build_module_descriptor().
3566	(objc_static_init_needed_p, objc_generate_static_init_call): New
3567	functions.
3568	(generate_static_references, generate_strings,
3569	build_selector_translation_table, generate_descriptor_table,
3570	generate_ivars_list, generate_dispatch_table, generate_category): Call
3571	start_var_decl() and finish_var_decl() instead of start_decl() and
3572	finish_decl(); build a type directly instead of via groktypename().
3573	(build_selector_reference_decl, build_selector_table_decl,
3574	build_class_reference_decl, build_protocol_reference,
3575	generate_objc_image_info): Call start_var_decl() instead of
3576	build_decl().
3577	(build_selector_reference): For GNU runtime, do not call
3578	build_selector_reference_decl().
3579	(build_selector, build_typed_selector_reference): Always convert
3580	result to the selector type.
3581	(add_objc_string): Cast return value to 'char *'.
3582	(build_method_prototype_template, build_selector_template,
3583	build_method_template): Use actual selector type for fields
3584	pointing to selectors.
3585	(finish_objc): For GNU runtime, call
3586	build_module_initializer_routine() after build_module_descriptor().
3587	(generate_protocol_list, generate_shared_structures): Call
3588	start_var_decl() and finish_var_decl() instead of start_decl() and
3589	finish_decl(); build a type directly instead of via
3590	groktypename().
3591	(synth_id_with_class_suffix): Return a string.
3592	(get_arg_type_list): For instance methods, use the instance type for
3593	'self'; do not call groktypename_in_parm_context().
3594	(build_objc_string_decl): Squash redeclaration errors in ObjC++.
3595	(objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
3596	handle RECORD_TYPEs in ObjC as well as ObjC++.
3597	(objc_is_id): New function.
3598	(objc_is_object_ptr): Return the canonical type node.
3599	(objc_get_class_ivars): Simplify using get_class_ivars().
3600	(get_class_ivars): Remove second parameter; create a fresh copy
3601	of the ivar list for each call; do not check for existence of
3602	super class.
3603	(objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
3604	(objc_init_exceptions): When using SJLJ-style exceptions, require
3605	the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
3606	exceptions.
3607	(objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
3608	objc_object_type instead of objc_id_type.
3609	(objc_begin_catch_clause): Convert the incoming PARM_DECL into
3610	a VAR_DECL before placing it in the appropriate scope; do not
3611	call define_decl(); adjust call to c_begin_compound_stmt();
3612	use objc_object_type instead of objc_id_type.
3613	(build_next_objc_exception_stuff): Call create_field_decl() instead
3614	of create_builtin_decl(); construct type directly instead of calling
3615	groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
3616	(build_private_template): Adjust call to get_class_ivars(); build
3617	a type directly instead of via groktypename().
3618	(build_protocol_template, build_method_prototype_list_template,
3619	build_method_prototype_template, build_category_template,
3620	build_selector_template, build_class_template, build_super_template,
3621	build_ivar_template, build_ivar_list_template,
3622	build_method_list_template, build_method_template):
3623	Call create_field_decl() instead of grokfield().
3624	(objc_method_parm_type): Do not call groktypename().
3625	(generate_descriptor_table): Call start_var_decl() and
3626	finish_var_decl() instead of start_decl() and finish_decl().
3627	(generate_method_descriptors, build_protocol_initializer,
3628	generate_dispatch_tables, build_category_initializer,
3629	build_shared_structure_initializer): Do not call groktypename().
3630	(generate_protocols): Call start_var_decl() and finish_var_decl()
3631	instead of start_decl() and finish_decl(); do not call groktypename().
3632	(error_with_ivar): Remove last parameter.
3633	(check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
3634	to CLASS_IVARS lists; adjust calls to error_with_ivar().
3635	(generate_ivar_lists): Convert one of the initializer elements; do
3636	not call groktypename().
3637	(get_arg_type_list, start_method_def, gen_method_def): Account for
3638	new representation of variable arguments and '...' in Objective-C
3639	methods; add Objective-C++ impedance matching code.
3640	(is_objc_type_qualifier): Remove function.
3641	(adjust_type_for_id_default): Simplify; there is no longer a need to
3642	wade through declspecs.
3643	(lookup_interface, start_class, continue_class,
3644	finish_class, start_method_def, start_protocol, build_method_decl,
3645	objc_add_method, add_instance_variable, build_ivar_reference,
3646	is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
3647	Make into static functions.
3648	(receiver_is_class_object): Use new IS_CLASS() macro.
3649	(objc_build_message_expr): Tweak ObjC++ message argument handling;
3650	call objc_finish_message_expr() instead of finish_message_expr().
3651	(finish_message_expr): Rename to objc_finish_message_expr(); use
3652	OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
3653	call gen_type_name() instead of gen_declaration(); call objc_is_id()
3654	instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
3655	calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
3656	(build_objc_method_call, warn_with_method): Do not call groktypename().
3657	(build_ivar_reference): Call convert() instead of clobbering in a
3658	type.
3659	(hash_init): Initialize string_htab hash table.
3660	(add_instance_variable): Simplify parameter list; do not call grokfield();
3661	do not populate CLASS_IVARS list.
3662	(start_class): Check for the existence of super class, if one was specified.
3663	(continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
3664	call build_class_template(); adjust call to get_class_ivars(); call
3665	build_decl(), pushdecl() and finish_decl() instead of define_decl().
3666	(finish_class): Call build_decl(), pushdecl() and finish_decl() instead
3667	of define_decl().
3668	(add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
3669	(start_protocol): Do not call build_protocol_template(); use
3670	PROTOCOL_BINFO_ELTS for the tree vector size.
3671	(encode_type_qualifiers): Do not handle the 'const' qualifier here.
3672	(encode_pointer): Encode 'const char *' as 'r*', for backwards
3673	compatibility.
3674	(encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
3675	(encode_type): Handle the 'const' qualifier here.
3676	(objc_parmlist): New global variable, sued by objc_push_parm and
3677	objc_get_parm_info().
3678	(objc_push_parm, objc_get_parm_info): New functions.
3679	(objc_expr_last): Remove function.
3680	(synth_self_and_ucmd_args): For instance methods, use the instance
3681	type for 'self'; call objc_push_parm() instead of push_parm_decl().
3682	(start_method_def): Do not call push_scope(), declare_parm_level(),
3683	pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
3684	just use objc_push_parm() and objc_get_parm_info().
3685	(comp_method_with_proto): Remove function.
3686	(objc_types_are_equivalent): Strip away indirections before comparing
3687	underlying types.
3688	(comp_proto_with_proto): Do not call groktypename(); types are no
3689	longer in raw declspec format.
3690	(objc_start_function): New function.
3691	(really_start_method): Call comp_proto_with_proto() instead of
3692	comp_method_with_proto(); call objc_start_function() instead of
3693	hand-crafting a function declarator.
3694	(continue_method_def, objc_expand_function_end): Remove functions.
3695	(get_super_receiver): Call objc_get_current_scope() instead of
3696	get_current_scope(); reference 'super_class' field (instead of
3697	'class').
3698	(finish_method_def): Rename to objc_finish_method_definition() and
3699	add a function decl parameter; move method encoding call from
3700	objc_expand_function_end().
3701	(is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
3702	gen_declaration_1): Remove functions.
3703	(tmpbuf, RAW_DECLSPEC): Remove.
3704	(gen_declaration): Remove second parameter; simplify to deal
3705	with TYPE_P nodes instead of raw declspecs.
3706	(gen_type_name, gen_type_name_0): New functions.
3707	(gen_method_decl): Remove second parameter; call gen_type_name()
3708	instead of gen_declaration_1().
3709	(dump_interface): Adjust calls to gen_declaration() and
3710	gen_method_decl(); do not allocate a separate string buffer.
3711	(init_objc): Allocate a larger string buffer to accommodate
3712	dump_interface(); adjust call to build_module_descriptor();
3713	add call to build_module_initializer_routine() for the GNU
3714	runtime.
3715	(generate_classref_translation_entry): Do not call start_decl(); call
3716	finish_var_decl() instead of finish_decl(); call convert() instead of
3717	build_c_cast().
3718	* objc-act.h (CLASS_OWN_IVARS): Remove accessor.
3719	(CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
3720	gone.
3721	(OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
3722	(OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
3723	(OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
3724	objc_object_type and objc_object_name, respectively.
3725	(OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
3726	objc_class_name): New.
3727	(IS_CLASS): New macro.
3728	(IS_ID, IS_SUPER): Robustify.
3729	(OCTI_EXECCLASS_DECL, execclass_decl): New.
3730	(finish_file, start_class, continue_class, finish_class,
3731	start_method_def, continue_method_def, finish_method_def,
3732	start_protocol, finish_protocol, objc_build_throw_stmt,
3733	objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
3734	objc_build_synchronized_epilogue, objc_build_try_prologue,
3735	objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
3736	objc_build_finally_prologue, objc_build_finally_epilogue,
3737	is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
3738	get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
3739	get_class_reference, get_static_reference, get_object_reference,
3740	build_message_expr, finish_message_expr, build_selector_expr,
3741	build_ivar_reference, build_keyword_decl, build_method_decl,
3742	build_protocol_expr, build_objc_string_object, objc_declare_alias,
3743	objc_declare_class, objc_declare_protocols, objc_comptypes,
3744	objc_check_decl, build_encode_expr): Remove prototypes.
3745	(imp_count, cat_count): Make GGC-aware.
3746	(OBJC_SET_TYPE_NAME): New macro.
3747
37482004-09-03  Ziemowit Laski  <zlaski@apple.com>
3749
3750	* config-lang.in: Update copyright notice.
3751	(lang_requires): Indicate that ObjC requires C to be built first.
3752
37532004-09-01  Ziemowit Laski  <zlaski@apple.com>
3754
3755	* objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
3756	TYPE_NAME.
3757	(build_objc_string_object): Rename to objc_build_string_object().
3758	(get_class_reference): Rename to objc_get_class_reference().
3759	(get_class_ivars_from_name): Rename to objc_get_class_ivars().
3760	(next_sjlj_build_catch_list, get_super_receiver): Call
3761	objc_get_class_reference() instead of get_class_reference().
3762	(build_keyword_decl): Rename to objc_build_keyword_decl().
3763	(build_message_expr): Rename to objc_build_message_expr().
3764	(build_protocol_expr): Rename to objc_build_protocol_expr().
3765	(build_selector_expr): Rename to objc_build_selector_expr().
3766	(build_encode_expr): Rename to objc_build_encode_expr().
3767	* objc-act.h (get_class_ivars_from_name): Rename prototype to
3768	objc_get_class_ivars().
3769	(get_class_reference): Rename prototype to objc_get_class_reference().
3770	(build_message_expr): Rename prototype to objc_build_message_expr().
3771	(build_selector_expr): Rename prototype to objc_build_selector_expr().
3772	(build_keyword_decl): Rename prototype to objc_build_keyword_decl().
3773	(build_protocol_expr): Rename prototype to objc_build_prototype_expr().
3774	(build_objc_string_object): Rename prototype to
3775	objc_build_string_object().
3776
37772004-09-01  Ziemowit Laski  <zlaski@apple.com>
3778
3779	* objc-act.c (lookup_interface): Make function 'static' and add a
3780	local prototype.
3781	(objc_check_decl, get_class_reference, objc_declare_alias,
3782	objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
3783	instead of is_class_name().
3784	(get_super_receiver, objc_clear_super_receiver): Call
3785	objc_get_current_scope() instead of get_current_scope().
3786	(is_class_name): Rename to objc_is_class_name.
3787	(lookup_objc_ivar): Rename to objc_lookup_ivar.
3788
37892004-08-28  Ziemowit Laski  <zlaski@apple.com>
3790
3791	* objc-act.c (objc_is_reserved_word): New function.
3792
37932004-08-15  Ziemowit Laski  <zlaski@apple.com>
3794
3795	* Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
3796	$(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
3797	(objc/objc-parse.o): Do not depend on gtype-objc.h.
3798	* objc-act.c: Do not include gtype-objc.h.
3799	(finish_file): Rename to objc_finish_file().
3800	* objc-act.h (finish_file): Update copyright notice; remove prototype.
3801	* objc-lang.c: Update copyright notice; include diagnostic.h,
3802	c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
3803	toplev.h.
3804	(finish_file): New hook routine.
3805	(LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
3806	LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
3807	LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
3808	LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
3809	LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
3810	LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
3811	LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
3812	LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
3813	LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
3814	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
3815	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
3816	LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3817	LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3818	LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
3819	LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
3820	LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
3821	LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
3822	LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
3823	LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
3824	LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
3825	LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
3826	LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
3827	LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
3828	LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
3829	Move to c-objc-common.h.
3830
3831
3832Copyright (C) 2004-2019 Free Software Foundation, Inc.
3833
3834Copying and distribution of this file, with or without modification,
3835are permitted in any medium without royalty provided the copyright
3836notice and this notice are preserved.
3837