12020-07-23  Release Manager
2
3	* GCC 10.2.0 released.
4
52020-05-07  Release Manager
6
7	* GCC 10.1.0 released.
8
92020-01-01  Jakub Jelinek  <jakub@redhat.com>
10
11	Update copyright years.
12
132019-10-10  Iain Sandoe  <iain@sandoe.co.uk>
14
15	* objc-next-metadata-tags.h (OCTI_RT_META_IVAR_REF): New.
16	(meta_ivar_ref): New.
17	* objc-next-runtime-abi-02.c
18	(next_runtime_abi_02_init_metadata_attributes): Create the
19	IVAR ref metadata identifier.
20	(ivar_offset_ref): Tag IVAR refs with specific metadata.
21
222019-06-05  Martin Sebor  <msebor@redhat.com>
23
24	* objc-act.c (objc_build_setter_call): Adjust quoting and hyphenation.
25	* objc-encoding.c (encode_gnu_bitfield): Same.
26
272019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
28
29	* objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New.
30	(objc_global_trees): Add instance type and name.
31	(INSTANCE_TYPEDEF_NAME): New.
32	* objc-act.c (synth_module_prologue): Build decls for
33	objc_instancetype_type and objc_instancetype_name.
34
352019-05-16  Martin Sebor  <msebor@redhat.com>
36
37	* objc-act.c (objc_begin_catch_clause): Quote keywords and options
38	in diagnostics.
39	(objc_build_throw_stmt): Same.
40	(objc_finish_message_expr): Same.
41	(get_super_receiver): Same.
42	* objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell
43	out "less than" in English./
44	* objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell
45	out "greater" in English.
46
472019-05-10  Jakub Jelinek  <jakub@redhat.com>
48
49	PR pch/90326
50	* config-lang.in (gtfiles): Add c-family/c-format.c.
51
522019-04-05  Martin Liska  <mliska@suse.cz>
53
54	PR translation/89936
55	* objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in
56	order to wrap keywords or arguments.
57	(objc_add_synthesize_declaration_for_property): Likewise.
58
592019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
60
61	PR other/16615
62
63	* objc-act.c: Mechanically replace "can not" with "cannot".
64
652019-01-01  Jakub Jelinek  <jakub@redhat.com>
66
67	Update copyright years.
68
692018-12-19  David Malcolm  <dmalcolm@redhat.com>
70
71	PR c++/43064
72	PR c++/43486
73	* objc-act.c (objc_maybe_build_component_ref): Strip any location
74	wrapper before checking for UOBJC_SUPER_decl and self_decl.
75	(objc_finish_message_expr): Strip any location wrapper.
76	(gen_declaration): Strip location wrappers from "w".
77
782018-10-17  David Malcolm  <dmalcolm@redhat.com>
79
80	* Make-lang.in (selftest-objc): New.
81
822018-04-20  Martin Liska  <mliska@suse.cz>
83
84	PR objc/85476
85	* objc-act.c (finish_class): Do not overflow string buffer.
86
872018-01-03  Jakub Jelinek  <jakub@redhat.com>
88
89	Update copyright years.
90
912017-11-30  Jakub Jelinek  <jakub@redhat.com>
92
93	* objc-next-runtime-abi-01.c (generate_dispatch_table): Use ; instead
94	of ;;.
95
962017-11-10  Martin Sebor  <msebor@redhat.com>
97
98	PR c/81117
99	* objc-encoding.c (encode_type): Use memcpy instead of strncpy.
100
1012017-10-31  David Malcolm  <dmalcolm@redhat.com>
102
103	* objc-gnu-runtime-abi-01.c (objc_gnu_runtime_abi_01_init): Use
104	UNKNOWN_LOCATION rather than 0.
105
1062017-10-17  Nathan Sidwell  <nathan@acm.org>
107
108	* objc-act.c (objc_common_tree_size): Return size of TYPE nodes.
109
1102017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
111
112	* objc-act.c (objc_decl_method_attributes): Use wi::to_wide when
113	operating on trees as wide_ints.
114
1152017-09-29  Jakub Jelinek  <jakub@redhat.com>
116
117	* objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at
118	DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.
119
1202017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
121	    Alan Hayward  <alan.hayward@arm.com>
122	    David Sherwood  <david.sherwood@arm.com>
123
124	* objc-encoding.c (encode_type): Use SCALAR_INT_TYPE_MODE.
125
1262017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
127	    Alan Hayward  <alan.hayward@arm.com>
128	    David Sherwood  <david.sherwood@arm.com>
129
130	* objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE
131	instead of TYPE_MODE.
132
1332017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
134	    Alan Hayward  <alan.hayward@arm.com>
135	    David Sherwood  <david.sherwood@arm.com>
136
137	* objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in
138	case statements.
139
1402017-08-09  Marek Polacek  <polacek@redhat.com>
141
142	PR c/81417
143	* objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update
144	a call to build_conditional_expr.
145
1462017-08-08  Martin Liska  <mliska@suse.cz>
147
148	* objc-gnu-runtime-abi-01.c: Include header files.
149	* objc-next-runtime-abi-01.c: Likewise.
150	* objc-next-runtime-abi-02.c: Likewise.
151
1522017-07-20  Nathan Sidwell  <nathan@acm.org>
153
154	Remove TYPE_METHODS.
155	* objc-runtime-shared-support.c (build_ivar_list_initializer):
156	Don't presume first item is a FIELD_DECL.
157
1582017-07-19  Nathan Sidwell  <nathan@acm.org>
159
160	* objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use
161	TYPE_{MIN,MAX}_VALUE_RAW.
162
1632017-05-16  Sylvestre Ledru  <sylvestre@debian.org>
164
165	* objc-runtime-shared-support.c (build_module_descriptor):
166	Remove unnecessary conditional when building instance of
167	objc_module. CID 1406758
168
1692017-05-09  Nathan Sidwell  <nathan@acm.org>
170
171	* objc-gnu-runtime-abi-01.c (objc_add_static_instance): Use
172	pushdecl lang_hook.
173
1742017-05-04  Martin Sebor  <msebor@redhat.com>
175
176	PR translation/80280
177	* objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing
178	quoting to directives.
179	* objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto.
180	* objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto.
181
1822017-01-01  Jakub Jelinek  <jakub@redhat.com>
183
184	Update copyright years.
185
1862016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
187	    Richard Biener  <rguenther@suse.de>
188
189	* config-lang.in (gtfiles): Add c/c-parser.h.
190
1912016-09-27  Jakub Jelinek  <jakub@redhat.com>
192
193	* objc-act.c (continue_class): Remove break after return.
194	(objc_maybe_printable_name): Likewise.
195
1962016-08-12  Marek Polacek  <polacek@redhat.com>
197
198	PR c/7652
199	* objc-encoding.c (encode_type): Add FALLTHRU.
200
2012016-06-07  David Malcolm  <dmalcolm@redhat.com>
202
203	* objc-act.c (objc_build_component_ref): Update call
204	to build_component_ref for added param, passing UNKNOWN_LOCATION.
205
2062016-04-18  Michael Matz  <matz@suse.de>
207
208	* objc-act.c (objc_build_struct): Use SET_DECL_ALIGN.
209
2102016-02-12  Jakub Jelinek  <jakub@redhat.com>
211
212	* objc-act.c: Spelling fixes - behaviour -> behavior and
213	neighbour -> neighbor.
214	* objc-map.h: Likewise.
215
2162016-01-04  Jakub Jelinek  <jakub@redhat.com>
217
218	Update copyright years.
219
2202015-11-11  Andrew MacLeod  <amacleod@redhat.com>
221
222	* objc-act.c: Remove unused header files.
223	* objc-encoding.c: Likewise.
224	* objc-gnu-runtime-abi-01.c: Likewise.
225	* objc-lang.c: Likewise.
226	* objc-map.c: Likewise.
227	* objc-next-runtime-abi-01.c: Likewise.
228	* objc-next-runtime-abi-02.c: Likewise.
229	* objc-runtime-shared-support.c: Likewise.
230
2312015-11-09  Alan Modra  <amodra@gmail.com>
232
233	* objc-encoding.c (encode_aggregate_within): Cast obstack_next_free
234	return value.
235
2362015-10-29  Andrew MacLeod  <amacleod@redhat.com>
237
238	* objc-lang.c: Reorder #include's and remove duplicates.
239	* objc-map.c: Likewise.
240
2412015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
242
243	* objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h:
244	Remove useless typedefs.
245
2462015-07-12  Aldy Hernandez  <aldyh@redhat.com>
247
248	* objc-map.h: Fix double word typos.
249
2502015-07-07  Andrew MacLeod  <amacleod@redhat.com>
251
252	* objc-act.c: Adjust includes.
253	* objc-encoding.c: Likewise.
254	* objc-gnu-runtime-abi-01.c: Likewise.
255	* objc-lang.c: Likewise.
256	* objc-map.c: Likewise.
257	* objc-next-runtime-abi-01.c: Likewise.
258	* objc-next-runtime-abi-02.c: Likewise.
259	* objc-runtime-shared-support.c: Likewise.
260
2612015-06-25  Andrew MacLeod  <amacleod@redhat.com>
262
263	* objc-act.c: Remove ipa-ref.h and plugin-api.h from include list.
264
2652015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
266
267	* objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash
268	rather than ggc_hasher.
269
2702015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
271
272	* objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather
273	than typed_noop_remove.  Remove redudant typedefs.
274
2752015-06-17  Andrew MacLeod  <amacleod@redhat.com>
276
277	* objc-act.c: Do not include input.h, line-map.h or is-a.h.
278	* objc-encoding.c: Likewise.
279	* objc-gnu-runtime-abi-01.c: Likewise.
280	* objc-lang.c: Likewise.
281	* objc-map.c: Likewise.
282	* objc-next-runtime-abi-01.c: Likewise.
283	* objc-next-runtime-abi-02.c: Likewise.
284	* objc-runtime-shared-support.c: Likewise.
285
2862015-06-08  Andrew MacLeod  <amacleod@redhat.com>
287
288	* objc-act.c : Adjust include files.
289	* objc-encoding.c : Likewise.
290	* objc-gnu-runtime-abi-01.c : Likewise.
291	* objc-lang.c : Likewise.
292	* objc-map.c : Likewise.
293	* objc-next-runtime-abi-01.c : Likewise.
294	* objc-next-runtime-abi-02.c : Likewise.
295	* objc-runtime-shared-support.c : Likewise.
296
2972015-06-08  Aldy Hernandez  <aldyh@redhat.com>
298
299	* objc-runtime-shared-support.c (build_module_descriptor): Set
300	TREE_USED on UOBJC_MODULES_decl.
301
3022015-06-05  Aldy Hernandez  <aldyh@redhat.com>
303
304	* objc-act.c (objc_write_global_declarations): Adjust comment.
305	* objc-gnu-runtime-abi-01.c (build_selector_table_decl): Set
306	TREE_USED bit.
307
3082015-06-04  Andrew MacLeod  <amacleod@redhat.com>
309
310	* objc-act.c: Adjust includes for restructured coretypes.h.
311	* objc-encoding.c: Likewise.
312	* objc-gnu-runtime-abi-01.c: Likewise.
313	* objc-lang.c: Likewise.
314	* objc-map.c: Likewise.
315	* objc-next-runtime-abi-01.c: Likewise.
316	* objc-next-runtime-abi-02.c: Likewise.
317	* objc-runtime-shared-support.c: Likewise.
318
3192015-04-27  Jim Wilson  <jim.wilson@linaro.org>
320
321	* Make-lang.in (objc.mostlyclean): Remove cc1obj.
322
3232015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
324
325	* objc-act.c: Adjust for hash_table changes.
326
3272015-01-09  Michael Collison  <michael.collison@linaro.org>
328
329	* objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
330	input.h, alias.h, symtab.h, options, fold-const.h,
331	wide-int.h, and inchash.h due to flattening of tree.h.
332	* objc-encoding.c: Ditto.
333	* objc-gnu-runtime-abi-01.c: Ditto.
334	* objc-lang.c: Ditto.
335	* objc-map.c: Ditto.
336	* objc-next-runtime-abi-01.c: Ditto.
337	* objc-next-runtime-abi-02.c: Ditto.
338	* objc-runtime-shared-support.c: Ditto.
339
3402015-01-05  Jakub Jelinek  <jakub@redhat.com>
341
342	Update copyright years.
343
3442014-10-28  Andrew MacLeod  <amacleod@redhat.com>
345
346	* objc-act.c: Adjust include files.
347
3482014-10-22  Alan Modra  <amodra@gmail.com>
349
350	* objc-encoding.c (encode_array): Cast result of obstack_base.
351	(encode_type): Likewise.
352
3532014-10-16  Andrew MacLeod  <amacleod@redhat.com>
354
355	* objc-act.c: Adjust include files.
356
3572014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
358
359	* objc-act.c: use hash_table instead of hashtab.
360
3612014-09-15  Jakub Jelinek  <jakub@redhat.com>
362
363	* Make-lang.in (check_objc_parallelize): Change to just an upper
364	bound number.
365
3662014-07-14  Jan Hubicka  <hubicka@ucw.cz>
367
368	* objc-act.c (objc_common_tree_size): New function.
369	* objc-act.h (KEYWORD_KEY_NAME, KEYWORD_ARG_NAME): Add type
370	checking.
371	(INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro.
372	(METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS,
373	METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING,
374	METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking.
375	(METHOD_SEL_ARGS): Use decl_common.size instead of
376	decl_non_common.result.
377	(PROPERTY_NAME, PROPERTY_GETTER_NAME, PROPERTY_SETTER_NAME,
378	PROPERTY_READONLY, PROPERTY_NONATOMIC, PROPERTY_ASSIGN_SEMANTICS,
379	PROPERTY_IVAR_NAME, PROPERTY_DYNAMIC, PROPERTY_HAS_NO_GETTER,
380	PROPERTY_HAS_NO_SETTER, PROPERTY_OPTIONAL): Add type checking.
381	(objc_common_tree_size): Declare.
382	* objc-lang.c (LANG_HOOKS_TREE_SIZE): New macro.
383
3842014-06-24  Jan Hubicka  <hubicka@ucw.cz>
385
386	* objc-act.c (objc_xref_basetypes): Set TYPE_BINFO of type variants,
387	too.
388
3892014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
390
391	* objc-act.c: Adjust.
392
3932014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
394
395	* objc-act.c (objc_build_string_object): Adjust.
396	(continue_class): Likewise.
397	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
398	* objc-map.c (objc_map_alloc_ggc): Likewise.
399	(objc_map_private_resize): Likewise.
400	* objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init):
401	Likewise.
402	(hash_name_enter): Likewise.
403
4042014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
405	    Mike Stump  <mikestump@comcast.net>
406	    Richard Sandiford  <rdsandiford@googlemail.com>
407
408	* objc-act.c: Include wide-int.h.
409	(objc_decl_method_attributes): Use wide-int interfaces.
410
4112014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
412
413	PR objc/56044
414	* objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add.
415	(objc_init): Initialize objc_default_ivar_visibility.
416	(objc_start_class_interface): Use objc_default_ivar_visibility.
417	(objc_start_class_implementation): Likewise.
418	(objc_lookup_ivar): Implement -fno-local-ivars.
419
4202014-01-31  Marek Polacek  <polacek@redhat.com>
421
422	PR c/59963
423	* objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to
424	build_function_call_vec.
425	(finish_catch): Likewise.
426	(next_runtime_abi_02_get_class_reference): Likewise.
427	* objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to
428	build_function_call_vec.
429	(build_throw_stmt): Likewise.
430	* objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to
431	build_function_call_vec.
432	(build_throw_stmt): Likewise.
433
4342014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
435
436	Update copyright years
437
4382013-12-04  Joseph Myers  <joseph@codesourcery.com>
439
440	PR c/52023
441	* objc-act.c (objc_synthesize_getter): Update calls to
442	c_sizeof_or_alignof_type.
443
4442013-11-22  Andrew MacLeod  <amacleod@redhat.com>
445
446	* objc-act.c: Add required include files from gimple.h.
447
4482013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
449
450	* objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi
451	throughout.
452
4532013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
454
455	* objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with
456	tree_to_shwi throughout.
457
4582013-11-14  Andrew MacLeod  <amacleod@redhat.com>
459
460	* objc-act.c: Include only gimplify.h and gimple.h as needed.
461
4622013-11-14  Diego Novillo  <dnovillo@google.com>
463
464	* objc-act.c: Include stringpool.h.
465	Include stor-layout.h.
466	Include attribs.h.
467	* objc-encoding.c: Include stringpool.h.
468	Include stor-layout.h.
469	* objc-gnu-runtime-abi-01.c: Include stringpool.h.
470	* objc-next-runtime-abi-01.c:
471	Include stringpool.h.
472	* objc-next-runtime-abi-02.c: Include stringpool.h.
473	* objc-runtime-shared-support.c: Include stringpool.h.
474
4752013-11-12  Andrew MacLeod  <amacleod@redhat.com>
476
477	* objc-act.c: Include gimplify.h.
478
4792013-11-07  Andrew MacLeod  <amacleod@redhat.com>
480
481	* objc-act.c (objc_push_parm): Handle atomic qualifier.
482
4832013-09-25  Tom Tromey  <tromey@redhat.com>
484
485	* Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o)
486	(objc/objc-runtime-shared-support.o)
487	(objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o)
488	(objc/objc-next-runtime-abi-02.o, objc/objc-act.o)
489	(objc/objc-encoding.o, objc/objc-map.o): Remove.
490
4912013-09-14  Iain Sandoe  <iain@codesourcery.com>
492
493	PR target/48094
494	* objc-next-runtime-abi-01.c (generate_objc_image_info): Remove.
495	(objc_generate_v1_next_metadata): Remove generation of ImageInfo.
496	* objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove.
497	(objc_generate_v2_next_metadata): Remove generation of ImageInfo.
498
4992013-07-21   Ondřej Bílka  <neleai@seznam.cz>
500
501	* objc-act.c: Fix typos.
502	* objc-encoding.c: Likewise.
503	* objc-gnu-runtime-abi-01.c: Likewise.
504	* objc-next-runtime-abi-01.c: Likewise.
505	* objc-next-runtime-abi-02.c: Likewise.
506
5072013-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
508
509	* objc-next-runtime-abi-02.c (build_v2_build_objc_method_call):
510	Fix build_conditional_expr call.
511
5122013-05-16  Jason Merrill  <jason@redhat.com>
513
514	* Make-lang.in (cc1obj$(exeext)): Use link mutex.
515
5162012-11-20  Diego Novillo  <dnovillo@google.com>
517
518	* objc-act.c: Replace all vec<T, A>() initializers with vNULL.
519
5202012-11-16  Diego Novillo  <dnovillo@google.com>
521
522	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
523
524	* objc-act.c: Use new vec API in vec.h.
525	* objc-act.h: Likewise.
526	* objc-gnu-runtime-abi-01.c: Likewise.
527	* objc-next-runtime-abi-01.c: Likewise.
528	* objc-next-runtime-abi-02.c: Likewise.
529	* objc-runtime-hooks.h: Likewise.
530	* objc-runtime-shared-support.c: Likewise.
531	* objc-runtime-shared-support.h: Likewise.
532
5332012-10-01  Lawrence Crowl  <crowl@google.com>
534
535	* Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o.
536	(objc-act.o): Add dependence on hash-table.h.
537	* objc-act.c (objc_detect_field_duplicates): Change to new type-safe
538	hash table.
539
5402012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
541
542	* Make-ang.in: Adjust for move of C front-end files.
543	* config-lang.in: Likewise.
544	* objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h
545	and c-lang.h in c/.
546	* objc-runtime-shared-support.c: Likewise.
547	* objc-next-runtime-abi-01.c: Likewise.
548	* objc-next-runtime-abi-02.c: Likewise.
549	* objc-gnu-runtime-abi-01.c: Likewise.
550	* objc-act.c: Likewise.
551	* objc-lang.c: Likewise.
552
5532012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
554
555	* objc-next-runtime-abi-01.c: Do not include tm.h and output.h.
556	Include c-family/c-target.h.
557	(handle_next_class_ref): Rewrite to emit top-level asm statements.
558	(handle_next_impent): Likewise.
559	* Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o.
560
5612012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
562
563	* objc-act.c: Do not include output.h.
564
5652012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
566
567	PR objc++/53388
568	* objc-act.c (objc_get_class_reference, objc_build_message_expr):
569	Use build_min_nt_loc.
570
5712012-04-20  Jan Hubicka  <jh@suse.cz>
572
573	* objc-act.c (mark_referenced_methods); Use
574	cgraph_mark_force_output_node.
575
5762012-03-21  Steven Bosscher  <steven@gcc.gnu.org>
577
578	* objc-act (objc_build_ivar_assignment): Do not call assemble_external.
579	(objc_build_global_assignment): Likewise.
580	(objc_build_strong_cast_assignment): Likewise.
581	* objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external.
582	* objc-next-runtime-abi-02.c: Likewise.
583	* objc-gnu-runtime-abi-01.c: Likewise.
584
5852012-03-05  Jason Merrill  <jason@redhat.com>
586
587	* objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't
588	call _stat functions without MEM_STAT_INFO.
589
5902011-11-12  Iain Sandoe  <iains@gcc.gnu.org>
591
592	* objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality
593	for Objective-C m32.
594
5952011-10-29  Iain Sandoe  <iains@gcc.gnu.org>
596
597	PR target/47997
598	* objc-act.c (objc_build_string_object): Remove redundant second
599	call to fix_string_type ().  Add a checking assert that we are,
600	indeed, passed a STRING_CST.
601
6022011-10-18  Mikael Pettersson  <mikpe@it.uu.se>
603
604	PR objc/50743
605	* objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to
606	size_t to avoid signed/unsigned
607	comparison.
608	(insert_method_into_method_map): Likewise.
609
6102011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
611
612	* objc-map.h: New file.
613	* objc-map.c: New file.
614	* config-lang.in (gtfiles): Added objc-map.h.
615	* Make-lang.in (OBJC_OBJS): Added objc-map.o.
616	(objc/objc-map.o): New rule.
617	(objc/objc-act.o): Depend on objc/objc-map.h.
618	* objc-next-runtime-abi-02.c: Added a TODO comment.
619	* objc-act.c: Include objc-map.h.
620	(nst_method_hash_list, cls_method_hash_list): Removed.
621	(instance_method_map, class_method_map): New.
622	(cls_name_hash_list, als_name_hash_list): Removed.
623	(class_name_map, alias_name_map): Removed.
624	(ivar_offset_hash_list): Removed.
625	(hash_class_name_enter, hash_class_name_lookup, hash_enter,
626	hash_lookup, hash_add_attr, add_method_to_hash_list): Removed.
627	(interface_hash_init): New.
628	(objc_init): Call interface_hash_init.
629	(objc_write_global_declarations): Iterate over class_method_map
630	and instance_method_map instead of cls_method_hash_list and
631	nst_method_hash_list.
632	(objc_declare_alias): Use alias_name_map instead of
633	cls_name_hash_list.
634	(objc_is_class_name): Use class_name_map and alias_name_map
635	instead of cls_name_hash_list and als_name_hash_list.
636	(interface_tuple, interface_htab, hash_interface, eq_interface):
637	Removed.
638	(interface_map): New.
639	(add_class): Renamed to add_interface.  Use interface_map instead
640	of interface_htab.
641	(lookup_interface): Use interface_map instead of interface_htab.
642	(check_duplicates): Changed first argument to be a tree,
643	potentially a TREE_VEC, instead of a hash.  Changed implementation
644	to match.
645	(lookup_method_in_hash_lists): Use class_method_map and
646	instance_method_map instead of cls_method_hash_list and
647	nst_method_hash_list.
648	(objc_build_selector_expr): Likewise.
649	(hash_func): Removed.
650	(hash_init): Create instance_method_map, class_method_map,
651	class_name_map, and alias_name_map.  Do not create
652	nst_method_hash_list, cls_method_hash_list, cls_name_hash_list,
653	als_name_hash_list, and ivar_offset_hash_list.
654	(insert_method_into_method_map): New.
655	(objc_add_method): Use insert_method_into_method_map instead of
656	add_method_to_hash_list.
657	(start_class): Call add_interface instead of add_class.
658	* objc-act.h (cls_name_hash_list, als_name_hash_list,
659	nst_method_hash_list, cls_method_hash_list): Removed.
660
6612011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
662
663	* objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old
664	interface with two parallel arrays to hold standard builtin
665	declarations, and replace it with a function based interface that
666	can support creating builtins on the fly in the future.  Change
667	all uses, and poison the old names.  Make sure 0 is not a
668	legitimate builtin index.
669	* objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto.
670	* objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto.
671
6722011-07-19  Richard Guenther  <rguenther@suse.de>
673
674	* objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref):
675	Use fold_build_pointer_plus.
676	(objc2_build_ehtype_initializer): Likewise.
677
6782011-07-11  Nicola Pero  <nicola.pero@meta-innovation.com>
679
680	* objc-encoding.h (obstack.h): Do not include.
681	(util_obstack, util_firstobj): Do not declare.
682	(encode_field_decl): Updated prototype to return a tree and take a
683	single tree argument.  Updated comments.
684	* objc-encoding.c (util_obstack, util_firstobj): Made static.
685	(objc_encoding_init): New.
686	(encode_field_decl): Existing function renamed to encode_field and
687	made static.  New encode_field_decl wrapper function added.
688	(encode_aggregate_fields): Update call to encode_field_decl to
689	call encode_field.
690	* objc-next-runtime-abi-02.c (obstack.h): Do not include.
691	(util_obstack, util_firstobj): Do not declare.
692	(build_v2_ivar_list_initializer): Updated call to
693	encode_field_decl.
694	* objc-runtime-shared-support.c (obstack.h): Do not include.
695	(util_obstack, util_firstobj): Do not declare.
696	(build_ivar_list_initializer): Updated call to encode_field_decl.
697	* objc-act.c (objc_init): Use objc_encoding_init.
698	* Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend
699	on OBSTACK_H.
700	(objc/objc-gnu-runtime-abi-01.o): Likewise.
701	(objc/objc-next-runtime-abi-01.o): Likewise.
702	(objc/objc-next-runtime-abi-02.o): Likewise.
703	(objc/objc-act.o): Likewise.
704
7052011-07-04  Nicola Pero  <nicola.pero@meta-innovation.com>
706
707	Refactored encoding code into objc-encoding.h and objc-encoding.c.
708	* objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers,
709	encode_type, generating_instance_variables, objc_method_parm_type,
710	objc_encoded_type_size, encode_method_prototype,
711	objc_build_encode_expr, pointee_is_readonly, encode_pointer,
712	encode_array, encode_vector, encode_aggregate_fields,
713	encode_aggregate_within, encode_next_bitfield,
714	encode_gnu_bitfield, encode_field_decl,
715	objc_v2_encode_property_attr): Moved to objc-encoding.h and
716	objc-encoding.c.  No change in the actual code.
717	Include objc-encoding.h.
718	(objc_init): Added TODO.
719	(objc_build_property_setter_name): Made non-static so it can be
720	called from objc-encoding.c.
721	* objc-act.h (OBJC_ENCODE_INLINE_DEFS,
722	OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h.
723	* objc-runtime-shared-support.h (objc_v2_encode_property_attr,
724	encode_method_prototype, encode_field_decl,
725	generating_instance_variables): Moved to objc-encoding.h.
726	(objc_build_property_setter_name): Declare.
727	* objc-encoding.c: New.
728	* objc-encoding.h: New.
729	* objc-gnu-runtime-abi-01.c: Include objc-encoding.h.
730	* objc-next-runtime-abi-01.c: Likewise.
731	* objc-next-runtime-abi-02.c: Likewise.
732	* objc-runtime-shared-support.c: Likewise.
733	* Make-lang.in (OBJC_OBJS): Added objc-encoding.o.
734	(objc/objc-lang.o): Reordered dependencies.
735	(objc/objc-runtime-shared-support.o): Reordered dependencies.
736	Added dependencies on objc-encoding.h and on $(GGC_H),
737	$(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h.
738	(objc/objc-gnu-runtime-abi-01.o): Likewise.
739	(objc/objc-next-runtime-abi-01.o): Likewise.
740	(objc/objc-next-runtime-abi-02.o): Likewise.
741	(objc/objc-act.o): Reordered dependencies.  Added dependency on
742	objc-encoding.h.
743	(objc/objc-encoding.o): New rule.
744
745	* objc-encoding.c (encode_type): Use "%<%T%>" format when printing
746	warning "unknown type %<%T%> found during Objective-C encoding"
747	instead of using gen_type_name.
748
7492011-06-05  Nicola Pero  <nicola.pero@meta-innovation.com>
750
751	* objc-act.c (receiver_is_class_object): Expanded comment.
752	(objc_finish_message_expr): Likewise.
753
7542011-06-02  Nicola Pero  <nicola.pero@meta-innovation.com>
755
756	PR objc/48539
757	* objc-act.c (objc_finish_message_expr): Warn if messaging a class
758	that was only declared using @class without an @interface.  Warn
759	if messaging an instance of a class that was only declared using
760	@class without an @interface, unless the receiver was also typed
761	with a protocol list.
762
7632011-06-01  Nicola Pero  <nicola.pero@meta-innovation.com>
764
765	* objc-act.c (objc_decl_method_attributes): Implement nonnull
766	attribute for Objective-C methods.
767
7682011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
769
770	* config-lang.in (gtfiles): Updated order of files to fix building
771	when the gcc/cp directory is missing, as in the case of some
772	release tarballs.
773
7742011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
775
776	* objc-act.c (objc_compare_types): Use function_args_iterator
777	instead of TYPE_ARG_TYPES to compare function argument types.
778
7792011-05-13  Toon Moene  <toon@moene.org>
780
781	* objc-next-runtime-abi-02.c (newabi_append_ro):
782	Add const qualifier to constant variable pointer declaration.
783
7842011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
785
786	* objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors.
787	(CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise.
788	(PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise.
789
7902011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
791
792	* objc-runtime-shared-support.h (get_arg_type_list): Delete.
793	(build_function_type_for_method): Declare.
794	* objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change
795	type of get_arg_type_base_list field.
796	* objc-act.h (OBJC_VOID_AT_END): Delete.
797	* objc-act.c (get_arg_type_list): Delete.
798	(build_function_type_for_method): New function.
799	(objc_decl_method_attributes): Call build_function_type_for_method.
800	(really_start_method): Likewise.
801	* objc-gnu-runtime-abi-01.c
802	(gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and
803	adjust function accordingly.  Update header comment.
804	(build_objc_method_call): Call build_function_type_for_method.
805	* objc-next-runtime-abi-01.c
806	(next_runtime_abi_01_get_type_arg_list_base): Change prototype and
807	adjust function accordingly.  Update header comment.
808	(build_objc_method_call): Call build_function_type_for_method.
809	* objc-next-runtime-abi-02.c
810	(next_runtime_abi_02_get_type_arg_list_base): Change prototype and
811	adjust function accordingly.  Update header comment.
812	(objc_copy_to_temp_side_effect_params): Take fntype instead of a
813	typelist.  Use function_args_iterator for traversing fntype.
814	(build_v2_build_objc_method_call): Adjust call to it.
815	Call build_function_type_for_method
816
8172011-05-05  Joseph Myers  <joseph@codesourcery.com>
818
819	* objc-act.c (objc_start_method_definition): Add parameter expr.
820	Update call to start_method_def.
821	(objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter,
822	objc_synthesize_setter) Update calls to
823	objc_start_method_definition.
824	(objc_get_parm_info): Add parameter expr.  Update call to
825	get_parm_info.
826	(start_method_def): Add parameter expr.  Update call to
827	objc_get_parm_info.
828	* objc-gnu-runtime-abi-01.c (build_module_initializer_routine):
829	Update call to objc_get_parm_info.
830	* objc-runtime-shared-support.h (objc_get_parm_info): Add extra
831	parameter.
832
8332011-04-26  Jason Merrill  <jason@redhat.com>
834
835	* objc-act.c (objc_fold_objc_type_ref): Remove.
836	* objc-act.h: Remove prototype.
837
8382011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
839
840	* objc-act.c (synth_module_prologue): Call build_function_type_list
841	instead of build_function_type.
842	* objc-next-runtime-abi-02.c (next_runtime_02_initialize):
843	Likewise.
844
8452011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
846
847	* objc-act.c (ivar_of_class): New.
848	(objc_is_public): Use ivar_of_class.
849
8502011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
851
852	* objc-act.c (objc_get_interface_ivars): Removed.
853	(objc_detect_field_duplicates): New.
854	(hash_instance_variable): New.
855	(eq_instance_variable): New.
856
8572011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
858
859	* objc-act.c (objc_declare_protocols): Renamed to
860	objc_declare_protocol.  Changed first argument to be an identifier
861	instead of a tree chain of identifiers, so that callers don't have
862	to create a temporary tree chain.
863
8642011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
865
866	* objc-act.c (objc_declare_class): Changed to take a single
867	identifier as argument instead of a tree list.  This means callers
868	don't have to build temporary tree lists to call this function.
869	(synth_module_prologue): Updated calls to objc_declare_class.
870
8712011-04-13  Nicola Pero  <nicola.pero@meta-innovation.com>
872
873	* objc-act.c (build_keyword_selector): Use get_identifier_with_length
874	instead of get_identifier.
875
8762011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
877
878	* objc-lang.c (objc_init_ts): Move code for this function...
879	* objc-act.c (objc_common_init_ts): ...here. Define.
880	* objc-act.h (objc_common_init_ts): Declare.
881
8822011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
883
884	* objc-act.c (objc_build_message_expr): Accept two arguments
885	instead of one so that callers can simply pass the arguments
886	without having to create a temporary chain to hold them.
887
8882011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
889
890	* objc-act.c (comp_proto_with_proto): Do not create and use
891	inefficient temporary argument lists.  Compare the arguments
892	directly.  (match_proto_with_proto): Removed; incorporated into
893	comp_proto_with_proto ().
894
8952011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
896
897	* objc-act.c (printable_ivar_name): New.
898	(add_instance_variable): Call printable_ivar_name() when an error
899	message needs to be printed.  Do not prepare the instance variable
900	for printing unless there is an actual error.
901
9022011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
903
904	* objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
905	avoid calling identifier_global_value() multiple times.
906
9072011-04-12  Martin Jambor  <mjambor@suse.cz>
908
909	* objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
910	instead of cgraph_node.
911
9122011-04-06  Joseph Myers  <joseph@codesourcery.com>
913
914	* objc-act.c: Include c-target.h instead of target.h.
915	* Make-lang.in (objc/objc-act.o): Update dependencies.
916
9172011-03-06  Joseph Myers  <joseph@codesourcery.com>
918
919	* lang-specs.h: Match -save-temps* instead of -save-temps.
920
9212011-02-26  Nicola Pero  <nicola.pero@meta-innovation.com>
922
923	* objc-act.c (objc_v2_encode_prop_attr): Rewritten.
924
9252011-02-23  Nicola Pero  <nicola.pero@meta-innovation.com>
926
927	* objc-act.c (build_private_template): Do not copy the
928	CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
929	* objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
930	TYPE_LANG_SLOT_0.
931
9322011-02-22  Nicola Pero  <nicola.pero@meta-innovation.com>
933
934	PR objc/47832
935	* objc-act.c (flexible_array_type_p): New.
936	(add_instance_variable): Produce an error if an instance variable
937	uses flexible array members.
938	(encode_array): Do not emit an error if encoding a flexible array
939	type while generating instance variables.
940
9412011-02-21  Mike Stump  <mikestump@comcast.net>
942
943	* Make-lang.in (check_objc_parallelize): Refine for 4 processor
944	machines.
945
9462011-02-20  Nicola Pero  <nicola.pero@meta-innovation.com>
947
948	* objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed.  Removed
949	usage of padding fields.  Do not include tm.h.
950	* objc-act.c (objc_write_global_declaration): Set input_location
951	to BUILTINS_LOCATION while generating runtime metadata.
952
9532011-01-20  Nicola Pero  <nicola.pero@meta-innovation.com>
954
955	PR objc/47784
956	* objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side
957	effects, do not use a temporary variable.
958
9592011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
960
961	* objc-next-runtime-abi-01.c: Updated comments.
962	* objc-next-runtime-abi-02.c: Same.
963
9642011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
965
966	* objc-act.c (objc_init, generate_struct_by_value_array): Updated
967	comments.
968
9692011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
970
971	* objc-act.c: Updated comments.
972	* objc-next-runtime-abi-02.c: Same.
973	* objc-runtime-shared-support.c: Same.
974	* objc-runtime-hooks.h: Same.
975	* objc-act.h: Same.
976	* objc-gnu-runtime-abi-01.c: Same.
977
9782011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
979
980	* objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do
981	not generate metadata if there is nothing to put into it.
982
9832011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
984
985	* config-lang.in (gtfiles): Updated.
986	* Make-lang.in (START_HDRS): New.
987	(OBJC_OBJS): Added new object files.
988	(objc/objc-act.o): Updated prerequisites.
989	(objc/objc-lang.o): Updated prerequisites.
990	(objc/objc-runtime-shared-support.o): New.
991	(objc/objc-gnu-runtime-abi-01.o): New.
992	(objc/objc-next-runtime-abi-01.o): New.
993	(objc/objc-next-runtime-abi-02.o): New.
994	* objc-runtime-hooks.h: New.
995	* objc-runtime-shared-support.h: New.
996	* objc-runtime-shared-support.c: New.
997	* objc-gnu-runtime-abi-01.c: New.
998	* objc-next-metadata-tags.h: New.
999	* objc-next-runtime-abi-01.c: New.
1000	* objc-next-runtime-abi-02.c: New.
1001	* objc-lang.c: Include c-lang.h.
1002	(LANG_HOOKS_EH_PERSONALITY): Removed.
1003	* objc-act.h: Moved many declarations and code from objc-act.c
1004	into objc-act.h to make them available outside objc-act.c.
1005	(objc_eh_runtime_type): Removed.
1006	(objc_eh_personality): Removed.
1007	(CLASS_HAS_EXCEPTION_ATTR): New.
1008	(OCTI_SUPER_SUPERFIELD_ID): New.
1009	(OCTI_V1_PROP_LIST_TEMPL): New.
1010	(OCTI_V1_PROP_NAME_ATTR_CHAIN): New.
1011	(super_superclassfield_id): New.
1012	(objc_prop_list_ptr): New.
1013	(prop_names_attr_chain): New.
1014	* objc-act.c: Include new runtime headers.  Moved many #defines
1015	and declarations into objc-act.h and
1016	objc-runtime-shared-support.h.  Made some corresponding functions
1017	non-static, and moved some others into
1018	objc-runtime-shared-support.c.  Moved metadata generation code
1019	into the new runtime hook files.
1020	(ivar_offset_hash_list): New.
1021	(objc_init): Call generate_struct_value_by_array() before doing
1022	any runtime initialization.  Create the appropriate runtime hook
1023	structures.
1024	(init_objc): Removed.  Code moved directly into objc_init.
1025	(finish_objc): Removed.  Code moved directly into
1026	objc_write_global_declarations.
1027	(objc_write_global_declarations): Do the warn_selector checks
1028	before emitting metadata.  Use a runtime hook to emit the
1029	metadata.  Do not emit the metadata or do -gen-decls processing if
1030	-fsyntax-only or we are producing a PCH.
1031	(build_objc_exception_stuff): Renamed to
1032	build_common_objc_exception_stuff.  Remove TREE_NOTHROW flag from
1033	objc_exception_throw_decl.
1034	(synth_module_prologue): Call runtime initialize hook instead of
1035	building runtime declarations here.  Use the
1036	default_constant_string_class_name runtime hook to set the
1037	constant string class name.
1038	(objc_build_string_object): Call the setup_const_string_class_decl
1039	runtime hook instead of setup_string_decl.  Call the
1040	build_const_string_constructor runtime hook instead of building
1041	the string object here.
1042	(get_objc_string_decl): Added prop_names_attr case.  Removed
1043	gcc_unreachable() at the end.
1044	(objc_begin_catch_clause): Distinguish between @catch (...) and
1045	@catch (id x).  Call the begin_catch runtime hook instead of
1046	building the CATCH_EXPR here.
1047	(objc_finish_catch_clause): Call the finish_catch runtime hook
1048	instead of adding the catch here.
1049	(objc_finish_try_stmt): Call the finish_try_stmt runtime hook
1050	instead of doing it here.
1051	(objc_build_throw_stmt): Bail out early for error_mark_node.  Call
1052	the build_exc_ptr runtime hook instead of objc_build_exc_ptr.
1053	Call the build_throw_stmt runtime hook instead of building the
1054	throw call here.
1055	(objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime
1056	as well.
1057	(get_arg_type_list): Call the get_arg_type_list_base runtime hook
1058	instead of building the list of arguments here.
1059	(receiver_is_class_object): Call the receiver_is_class_object
1060	runtime hook instead of doing the check here.  Call the
1061	tag_getclass runtime hook instead of using TAG_GETCLASS.
1062	(objc_finish_message_expr): Call the build_objc_method_call
1063	runtime hook.
1064	(objc_build_protocol_expr): Call the get_protocol_reference
1065	runtime hook.
1066	(objc_build_selector_expr): Call the build_selector_reference
1067	runtime hook.
1068	(build_ivar_reference): Call the build_ivar_reference runtime
1069	hook.
1070	(hash_init): Set up ivar_offset_hash_list.
1071	(start_class): Recognize the objc_exception attribute and store
1072	it.
1073	(continue_class): Use the class_decl and metaclass_decl runtime
1074	hooks.
1075	(build_objc_property_accessor_helpers): Renamed to
1076	build_common_objc_property_accessor_helpers.  Do not build
1077	objc_copyStruct_decl, objc_getPropertyStruct_decl and
1078	objc_setPropertyStruct_decl.
1079	(objc_synthesize_getter): Check what struct setter/getter helper
1080	is available instead of checking the type of runtime.
1081	(get_super_receiver): Use the super_superclassfield_ident runtime
1082	hook.  Added assert.  Use the get_class_super_ref and
1083	get_category_super_ref runtime hooks.
1084	(objc_v2_encode_prop_attr): New.
1085
10862011-01-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1087
1088	PR objc/47314
1089	* objc-act.c (finish_objc): When calling check_duplicates to check
1090	duplicated instance methods, set 'is_class' to 0, not 1.
1091
10922011-01-14  Ben Elliston  <bje@au.ibm.com>
1093
1094	PR 19162
1095	* objc-act.c (generate_struct_by_value_array): Do not output a
1096	definition for struct_forward_array.
1097
10982011-01-08  Iain Sandoe  <iains@gcc.gnu.org>
1099
1100	* objc-act.c (objc_finish_foreach_loop): Mark collection expression
1101	as read.
1102
11032011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
1104
1105	* objc-act.c (check_that_protocol_is_defined): Fix a typo.
1106
11072011-01-02  Nicola Pero  <nicola.pero@meta-innovation.com>
1108
1109	* objc-act.c (check_that_protocol_is_defined): New.
1110	(lookup_protocol): Call check_that_protocol_is_defined.
1111
11122010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1113
1114	* objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
1115	lists.  Check them two-ways to fix comparisons when one protocol
1116	implements the other one, or when one list contains duplicated
1117	protocols.
1118
11192010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1120
1121	* objc-act.c (objc_add_method): When emitting an error because a
1122	method with the same name but conflicting types is found in the
1123	same class or category interface, print a note with the location
1124	of the original method.  Also, improved the error message to
1125	clearly state that the conflict is due to conflicting types, and
1126	produce it for protocols as well.  Emit an error if two identical
1127	methods are declared in a protocol, but one is @required and the
1128	other one is @optional.
1129
11302010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1131
1132	* objc-act.c (start_class): Warn when a class attribute is
1133	ignored.
1134	(objc_declare_protocols): Warn when a protocol attribute in a
1135	protocol forward-declaration is ignored.
1136	(start_protocol): Warn when a protocol attribute is ignored.
1137
11382010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1139
1140	* objc-act.c (objc_set_method_opt): Tidy up error messages.  In
1141	particular, explicitly mention whether the error is due to the
1142	@optional or @required keyword instead of mentioning
1143	"@optional/@required".
1144
11452010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1146
1147	PR objc/47118
1148	* objc-act.c (objc_build_synchronized): Check the argument of
1149	@synchronized and emit an appropriate error if it is not a valid
1150	Objective-C object.  Deal gracefully with that case.  Updated
1151	comments and variable names.
1152
11532010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1154
1155	PR objc/47075
1156	* objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
1157	* objc-tree.def (PROPERTY_REF): Increased the number of operands
1158	from 3 to 4.
1159	* objc-act.c (objc_finish_message_expr): Added optional argument
1160	allowing to return the deprecated method prototype for deprecated
1161	methods, instead of immediately emitting the deprecation warning.
1162	(objc_maybe_build_component_ref): Do not warn for a deprecated
1163	property.  When building the getter call, get the deprecated
1164	method prototype from objc_finish_message_expr() and put it into
1165	the PROPERTY_REF.
1166	(objc_build_class_component_ref): Same change.
1167	(finish_class): Mark the getter and setter as deprecated if they
1168	are generated from a deprecated property.
1169	(objc_gimplify_property_ref): If the getter is deprecated, emit a
1170	deprecation warning.
1171	(objc_build_setter_call, objc_build_message_expr,
1172	objc_finish_foreach_loop): Updated call to
1173	objc_finish_message_expr.
1174
11752010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1176
1177	PR objc/47076
1178	* objc-act.c (lookup_protocol): Added 'definition_required'
1179	argument.  If 'definition_required', and the protocol is not
1180	defined, emit a warning.
1181	(objc_declare_protocols): Updated call to lookup_protocol.
1182	(start_protocol): Same change.
1183	(check_protocol_recursively): Same change.
1184	(objc_build_protocol_expr): Same change.
1185	(lookup_and_install_protocols): Added definition_required argument.
1186	Pass it to lookup_protocol.
1187	(objc_get_protocol_qualified_type): Updated call to
1188	lookup_and_install_protocols.
1189	(start_class): Updated calls to lookup_and_install_protocols; pass
1190	true to 'definition_required' to get the warnings.
1191	(start_protocol): Updated calls to lookup_and_install_protocols.
1192
11932010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1194
1195	* objc-act.c (objc_start_category_interface): Produce an error if
1196	a class extension is found after the class @implementation.
1197
11982010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1199
1200	PR objc/47073
1201	* objc-act.c (encode_method_prototype): Fixed both location and
1202	format string of error "type %qT does not have a known size".
1203
12042010-12-26  Nicola Pero  <nicola.pero@meta-innovation.com>
1205
1206	* config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c.
1207
12082010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
1209
1210	* objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.
1211
12122010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1213
1214	* objc-act.c (objc_init): Call using_eh_for_cleanups.
1215	(objc_init_exceptions): Renamed to objc_maybe_warn_exceptions.  Do
1216	not call using_eh_for_cleanups.
1217	(objc_begin_try_stmt): Do not call objc_init_exceptions.
1218	(objc_build_throw_stmt): Updated call to
1219	objc_maybe_warn_exceptions.
1220
12212010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
1222
1223	* objc-act.c (objc_eh_personality): Select personality name on
1224	runtime.
1225	(objc_init_exceptions): New.
1226	(objc_begin_try_stmt): Use objc_init_exceptions.
1227	(objc_build_throw_stmt): Likewise.
1228
12292010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
1230
1231	* objc-act.c (objc_in_class_extension): New.
1232	(objc_start_category_interface): If -fobjc-std=objc1
1233	was specified, produce an error if a class extension is used.
1234	(objc_finish_interface): Reset objc_in_class_extension to false.
1235	(objc_add_property_declaration): Allow a class extension to extend
1236	readonly properties in the main @interface to be readwrite.
1237	(start_class): Added code to deal with class extensions.  In that
1238	case, return the existing interface after adding any additional
1239	protocols to it and setting objc_in_class_extension to true.
1240	(continue_class): If in a class extension, do not generate the
1241	instance variable template.
1242
12432010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1244
1245	* objc-act.c (objc_build_throw_stmt): Check that the argument of
1246	@throw is an object and emit an error if not.
1247
12482010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1249
1250	* objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
1251	error() when printing an error about the iterating variable or
1252	collection not being an object.
1253
12542010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1255
1256	* objc-act.c (objc_finish_foreach_loop): Mark the
1257	object_expression as used.
1258
12592010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1260
1261	* objc-act.c: Include c-family/c-objc.h.
1262	* objc-lang.c: Same change.
1263	* Make-lang.in (objc/objc-act.o): Depend on
1264	c-family/c-objc.h.
1265	(objc/objc-lang.o): Same change.
1266	* config-lang.in (gtfiles): Added c-family/c-objc.h.
1267
12682010-12-02  Joseph Myers  <joseph@codesourcery.com>
1269
1270	* lang-specs.h: Don't handle -ftraditional.
1271
12722010-12-02  Nicola Pero  <nicola.pero@meta-innovation.com>
1273
1274	* objc-act.c (objc_build_throw_stmt): Return error_mark_node and
1275	not NULL_TREE when a @throw is used outside of a @catch block.
1276
12772010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1278
1279	* objc-act.c (objc_build_volatilized_type): Removed.
1280	(objc_non_volatilized_type): Removed.
1281	(objc_type_quals_match): Removed.
1282	(local_variables_to_volatilize): New.
1283	(objc_volatilize_decl): Add the decl to volatilize to
1284	local_variables_to_volatilize, but don't volatilize it yet.
1285	(objc_finish_function): New.
1286	* objc-act.h (local_variables_to_volatilize): New.
1287
12882010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1289	    Mike Stump  <mikestump@comcast.net>
1290
1291	Allow 'make check-objc -j2'
1292	* Make-lang.in (lang_checks_parallelized): New.
1293	(check_objc_parallelize): New.
1294
12952010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1296
1297	* objc-act.c (start_class): When a class is reimplemented,
1298	generate an error and avoid adding the class to the list of
1299	implemented classes again, but do not return error_mark_node.
1300
13012010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1302
1303	* objc-act.c (objc_maybe_build_component_ref): Removed TODO.
1304
13052010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1306
1307	* objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
1308	is passed as argument.
1309	(objc_begin_catch_clause): Added code to deal with an
1310	error_mark_node or NULL_TREE argument.  Improved checks for
1311	invalid arguments.  Added code to traverse typedefs.
1312
13132010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1314
1315	* objc-act.c (objc_demangle): Return immediately if the string is
1316	too short.  Detect names that do not need demangling, and return
1317	them unchanged.
1318
13192010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1320
1321	Implemented optional properties.
1322	* objc-act.h (PROPERTY_OPTIONAL): New.
1323	* objc-act.c (objc_add_property_declaration): Set
1324	PROPERTY_OPTIONAL if appropriate.
1325	(finish_class): When generating definitions of setter and getter
1326	methods associated with a property for a protocol, mark them as
1327	optional if the property is optional.
1328	(maybe_make_artificial_property_decl): Added 'getter_name'
1329	argument.  Set PROPERTY_OPTIONAL.
1330	(objc_maybe_build_component_ref): Updated calls to
1331	maybe_make_artificial_property_decl.  Added code for optional,
1332	readonly properties.
1333	(objc_build_class_component_ref): Updated call to
1334	maybe_make_artificial_property_decl.
1335
13362010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1337
1338	* objc-act.c (objc_build_struct): Fixed loops that save and
1339	restore TYPE_OBJC_INFO to iterate over all variants of the type; a
1340	special case for the current type is then no longer required.
1341	Duplicate TYPE_LANG_SPECIFIC for each type before restoring
1342	TYPE_OBJC_INFO.
1343	(objc_get_protocol_qualified_type): Updated comments.
1344
13452010-11-25  Nicola Pero  <nicola.pero@meta-innovation.com>
1346
1347	* objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
1348	after finish_struct, not before, otherwise it may be wiped out by
1349	it.  This fixes spurious warnings when a class has more than 15
1350	instance variables.
1351
13522010-11-23  Nicola Pero  <nicola.pero@meta-innovation.com>
1353
1354	PR objc/24358
1355	* lang-specs.h: Added objective-c-cpp-output.  Mapped .mi to
1356	objective-c-cpp-output instead of objc-cpp-output.  Print a
1357	deprecation note every time objc-cpp-output is requested.
1358
13592010-11-22  Joseph Myers  <joseph@codesourcery.com>
1360
1361	* objc-act.c (write_symbols): Don't declare here.
1362
13632010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
1364
1365	PR objc/41108
1366	* objc-act.c (objc_generate_write_barrier): Added assert to make sure
1367	this function is only called with the next runtime.
1368
13692010-11-20  Jakub Jelinek  <jakub@redhat.com>
1370
1371	PR c/46547
1372	* objc-act.c (in_late_binary_op): Remove.
1373
13742010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1375
1376	* objc-act.c (objc_start_class_interface): Do not warn that class
1377	attributes are unimplemented.  Pass the attributes to start_class.
1378	(objc_start_category_interface): Updated call to start_class.
1379	(objc_start_class_implementation): Same change.
1380	(objc_start_category_implementation): Same change.
1381	(objc_build_class_component_ref): Warn if the class is deprecated.
1382	(build_private_template): Mark the template as deprecated if the
1383	class is deprecated.
1384	(start_class): Added 'attributes' argument.  Emit a warning if
1385	using a deprecated class as superclass of a class, or original
1386	class of a category.  Recognize the 'deprecated' attribute when
1387	starting and interface, and mark the interface with
1388	TREE_DEPRECATED if present.  Store attributes in the interface.
1389
13902010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1391
1392	* objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
1393	argument.  If it is 'true' and the protocol is deprecated, emit a
1394	deprecation warning.
1395	(objc_start_protocol): Do not warn that protocol attributes are
1396	unimplemented.  Pass the attributes to start_protocol.
1397	(start_protocol): Added attributes argument.  Recognize the
1398	'deprecated' attribute and mark the protocols with TREE_DEPRECATED
1399	if present.  Store attributes in the protocol.
1400	(objc_declare_protocols): Added 'attributes' argument.  Recognize
1401	the 'deprecated' attribute and mark the protocols with
1402	TREE_DEPRECATED if present.  Store attributes in the protocol.
1403	Updated call to lookup_protocol.
1404	(objc_build_protocol_expr): Updated call to lookup_protocol.
1405	(check_protocol_recursively): Same change.
1406	(lookup_and_install_protocols): Same change.
1407	* objc-act.h: Updated comments.
1408
14092010-11-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1410
1411	* objc-act.c (lookup_method_in_protocol_list): Search methods in
1412	PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
1413	they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
1414
14152010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1416
1417	* objc-act.c (objc_build_setter_call): New.
1418	(objc_maybe_build_modify_expr): Rewritten to build a compound
1419	statement.
1420	(objc_build_incr_expr_for_property_ref): Updated calls to
1421	objc_maybe_build_modify_expr to call objc_build_setter_call
1422	instead.  Use build_modify_expr () instead of build2 (MODIFY_EXPR,
1423	...).  Use convert () instead of build1 (NOP_EXPR, ...).  Use
1424	TREE_NO_WARNING on the final compound statement to silence C++
1425	warnings.
1426
14272010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1428
1429	* objc-act.c (objc_build_incr_expr_for_property_ref): New.
1430	(objc_create_temporary_var): Moved it towards the beginning of the
1431	file so that objc_build_incr_expr_for_property_ref can use it.
1432
14332010-11-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1434
1435	* objc-act.c (objc_add_property_declaration): Check that the decl
1436	we received from the parser is a FIELD_DECL; reject array and
1437	bitfield properties.  Convert the warning when a property is
1438	readonly and a setter is specified into an error.  Convert errors
1439	when a property declaration does not match a property declaration
1440	in a superclass into warnings.
1441	(objc_add_synthesize_declaration_for_property): Use
1442	DECL_BIT_FIELD_TYPE to determine the type of an instance variable
1443	if it is a bitfield.  Throw an error if we are asked to synthesize
1444	setters/getters for a bitfield instance variable but the property
1445	is not appropriate - it must be assign and nonatomic.  If the
1446	property is readonly, allow the instance variable type to be a
1447	specialization of the property type.
1448	(objc_type_valid_for_messaging): Fixed returning 'false' for a
1449	Class qualified with a protocol when the 'accept_classes' argument
1450	is 'false'.
1451
14522010-11-13  Nicola Pero  <nicola.pero@meta-innovation.com>
1453
1454	* objc-act.c (objc_get_protocol_qualified_type): detect cases
1455	where we are asked to attach a protocol to something which is not
1456	an Objective-C object type, and produce an error.
1457
14582010-11-11  Nicola Pero  <nicola.pero@meta-innovation.com>
1459
1460	* objc-act.c (objc_add_property_declaration): Check that the type
1461	of a property and of an inherited property match.
1462	(objc_maybe_build_component_ref): Tidied up indentation and
1463	comments.
1464	(objc_common_type): Added new type of check (-5).
1465	(objc_add_synthesize_declaration_for_property): Check that the
1466	property to synthesize and the instance variable to use have the
1467	same type.
1468
14692010-11-10  Joseph Myers  <joseph@codesourcery.com>
1470
1471	* objc-act.c (objc_init): Use %' in diagnostic.
1472	(objc_set_method_opt): Remove trailing '.' from diagnostic.
1473
14742010-11-10  Joseph Myers  <joseph@codesourcery.com>
1475
1476	* objc-act.c (dump_base_name): Don't declare here.
1477
14782010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1479
1480	* objc-act.c (objc_add_dynamic_declaration_for_property): Do not
1481	search for the @property declation only in the current context,
1482	but also in inherited properties.  Do not mark the original
1483	PROPERTY_DECL in the @interface or @protocol with
1484	PROPERTY_DYNAMIC.
1485	(check_methods): To check if a method is associated with a
1486	@dynamic property, search for the property in IMPL_PROPERTY_DECL.
1487	(check_accessible_methods): Same change.
1488	* objc-act.h: Updated comment.
1489
14902010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1491
1492	* objc-act.c (objc_add_synthesize_declaration_for_property):
1493	Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
1494	checking for an existing @synthesize or @dynamic declaration.
1495	Search for an inherited @property declaration if none is found in
1496	the local interface.  If the required instance variable does not
1497	exist, return instead of trying to continue to prevent a compiler
1498	crash later.  Check that the instance variable is not already
1499	being used by another @synthesize.
1500	(objc_add_dynamic_declaration_for_property): Iterate over
1501	IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
1502	existing @synthesize or @dynamic declaration.
1503	(objc_synthesize_getter): Search for the getter declaration in
1504	protocols and superclasses as well.
1505	(objc_synthesize_setter): Search for the setter declaration in
1506	protocols and superclasses as well.
1507
15082010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1509
1510	* objc-act.c (lookup_property): When checking categories, also
1511	check the protocols attached to each.
1512	(objc_add_property_declaration): Determine the
1513	PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here.  Tidied up
1514	error message.  Search for an existing property declaration with
1515	the same name which would be inherited from the class hiearchy,
1516	and produce an error if it has incompatible attributes.
1517	(check_methods): Changed second parameter.  If the method is a
1518	getter or setter for a property, do not warn if it is inherited as
1519	opposed to implemented directly in the class.
1520	(check_protocol): Updated calls to check_methods.
1521	(finish_class): Do not determine the PROPERTY_SETTER_NAME and
1522	PROPERTY_GETTER_NAME here; this is now done earlier, in
1523	objc_add_property_declaration.
1524	* objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
1525
15262010-11-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1527
1528	Fixed using the Objective-C 2.0 dot-syntax with self and super.
1529	* objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
1530	(maybe_make_artificial_property_decl): Added 'implementation'
1531	argument.  Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
1532	looking up getters or setters for a class.  If an implementation
1533	is specified, search it as well for a getter or setter.
1534	(objc_maybe_build_component_ref): Updated calls to
1535	maybe_make_artificial_property_decl; added code to deal with
1536	'self' and 'super' and with methods declared locally in the
1537	implementation.  Store the getter call expression in the
1538	PROPERTY_REF instead of throwing it away.
1539	(objc_build_class_component_ref): Updated calls to
1540	maybe_make_artificial_property_decl, and store the getter call
1541	expression in PROPERTY_REF instead of throwing it away.
1542	(lookup_method_static): Implemented
1543	OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
1544	(objc_gimplify_property_ref): Do not build the getter method call
1545	here; instead use the one stored in the PROPERTY_REF.  If it's not
1546	there, produce helpful error messages.
1547	* objc-tree.def (PROPERTY_REF): Increased the number of operands
1548	from 2 to 3.  Updated comments.
1549	* objc-act.h (PROPERTY_REF_GETTER_CALL): New.
1550
15512010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
1552
1553	PR target/44981
1554	* objc-act.c (objc_build_string_object): Amend for renamed hook.
1555	(objc_string_ref_type_p): New.
1556	(objc_check_format_arg): New.
1557
15582010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
1559
1560	Fixed using the Objective-C 2.0 dot-syntax with class names.
1561	* objc-act.c (objc_build_class_component_ref): New.
1562
15632010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1564
1565	* objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
1566	category.
1567	(objc_type_valid_for_messaging): Added 'accept_classes' argument;
1568	if set to 'true', return 'true' for Class objects.  Do not remove
1569	more than on pointer indirection.
1570	(objc_add_property_declaration): Only warn about 'assign'
1571	semantics for Objective-C objects if warn_property_assign_default;
1572	and do not warn if the property is readonly or if the type is a Class.
1573	(objc_finish_foreach_loop): Updated calls to
1574	objc_type_valid_for_messaging.
1575
15762010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1577
1578	Implemented -fobjc-std=objc1 flag.
1579	* objc-act.c (objc_start_class_interface): If attributes are
1580	specified when flag_objc1_only is set, print an error.
1581	(objc_start_category_interface): Same change.
1582	(objc_start_protocol): Same change.
1583	(objc_add_method_declaration): Same change.
1584	(objc_start_method_definition): Same change.
1585	(objc_build_keyword_decl): Same change.
1586	(objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when
1587	flag_objc1_set is set, print an error.
1588	(objc_set_method_opt): If flag_objc1_only is set, print an error.
1589	(objc_add_property_declaration): Same change.
1590	(objc_add_synthesize_declaration): Same change.
1591	(objc_add_dynamic_declaration): Same change.
1592	(objc_finish_foreach_loop): Same change.
1593	(objc_maybe_build_component_ref): If flag_objc1_only is set,
1594	return immediately.
1595
15962010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1597
1598	* objc-act.c (maybe_make_artificial_property_decl): New.
1599	(objc_maybe_build_component_ref): Call
1600	maybe_make_artificial_property_decl if a property can not be
1601	found.  Do not call objc_finish_message_expr if
1602	PROPERTY_HAS_NO_GETTER.
1603	* objc-act.h Updated comments.
1604	(PROPERTY_HAS_NO_GETTER): New.
1605	(PROPERTY_HAS_NO_SETTER): New.
1606	* objc-tree.def: Updated comment.
1607
16082010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1609
1610	Implemented format and noreturn attributes for Objective-C methods.
1611	* objc-act.c (objc_start_method_definition): If method attributes
1612	are specified emit a warning and ignore them.
1613	(build_objc_method_call): Moved deprecation warnings from here ...
1614	(objc_finish_message_expr): to here.  Do not emit deprecation
1615	warnings if the receiver is of type 'id'.
1616	(really_start_method): Install 'deprecation' and 'noreturn'
1617	attributes.
1618	(objc_decl_method_attributes): Carefully filter out the list of
1619	attributes, allowing only "noreturn", "format", "sentinel" and
1620	"deprecated".  In the case of "format", adjust the arguments.
1621	Always process the attributes in the same way no matter if
1622	"sentinel" is in the list or not.
1623
16242010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1625
1626	* objc-act.c (objc_maybe_build_component_ref): Warn about using
1627	deprecated properties.
1628	(objc_maybe_printable_name): Support PROPERTY_DECL.
1629
16302010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1631
1632	Implemented Objective-C 2.0 property accessors.
1633	* objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
1634	OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
1635	OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
1636	(objc_getProperty_decl): New.
1637	(objc_setProperty_decl): New.
1638	(objc_copyStruct_decl): New.
1639	(objc_getPropertyStruct_decl): New.
1640	(objc_setPropertyStruct_decl): New.
1641	* objc-act.c (build_objc_property_accessor_helpers): New.
1642	(synth_module_prologue): Call
1643	build_objc_property_accessor_helpers.
1644	(lookup_ivar): New.
1645	(objc_synthesize_getter): Implemented synthesizing getters that
1646	work with properties that are not nonatomic, assign properties.
1647	(objc_synthesize_setter): Implemented synthesizing setters that
1648	work with properties that are not nonatomic, assign properties.
1649
16502010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1651
1652	Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
1653	* objc-tree.def (PROPERTY_REF): New.
1654	* objc-act.h: Added comments for all the PROPERTY_ macros.
1655	(PROPERTY_NAME): Use DECL_NAME.
1656	(PROPERTY_COPIES): Removed.
1657	(PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
1658	(PROPERTY_NONATOMIC): New.
1659	(objc_property_assign_semantics): Make it a typedef.
1660	(PROPERTY_ASSIGN_SEMANTICS): New.
1661	(PROPERTY_DYNAMIC): New.
1662	(PROPERTY_REF_OBJECT): New.
1663	(PROPERTY_REF_PROPERTY_DECL): New.
1664	* objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
1665	(in_objc_property_setter_name_context): Removed.
1666	(objc_add_property_declaration): Removed copies and ivar arguments
1667	and code supporting them.  Fixed recovering when readonly and
1668	setter attributes are specified.  Removed support for @property in
1669	@implementation context.  Updated error message.  Double-check
1670	that a property does not have a DECL_INITIAL.  Validate the
1671	property assign semantics and emit appropriate errors and
1672	warnings.  Check for duplicate property declarations.  Set
1673	DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
1674	PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
1675	PROPERTY_DECL.  Do not set PROPERTY_COPIES.  Set
1676	PROPERTY_IVAR_NAME to NULL_TREE.
1677	(objc_build_getter_call): Renamed to
1678	objc_maybe_build_component_ref.  If the property is not found in
1679	the interface, search in the protocol list.  Do not generate the
1680	getter call; instead, build and return a PROPERTY_REF.
1681	(objc_is_property_ref): New.
1682	(objc_setter_func_call): Removed.
1683	(get_selector_from_reference): Removed.
1684	(is_property): Removed.
1685	(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
1686	Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
1687	the PROPERTY_REF.  Generate an error if the property is read-only.
1688	(build_property_reference): Removed.
1689	(objc_finish_message_expr): Removed check to produce "readonly
1690	property can not be set" error when
1691	in_objc_property_setter_name_context.  We now generate the error
1692	earlier, in objc_maybe_build_modify_expr, which will only generate
1693	the setter call if the property is readwrite.
1694	(check_methods): Recognize dynamic properties.
1695	(check_methods_accessible): Same change.
1696	(objc_build_property_ivar_name): Removed.
1697	(objc_build_property_setter_name): Dropped bool argument.  Always
1698	add the ':' at the end.
1699	(objc_gen_one_property_datum): Removed.
1700	(objc_process_getter_setter): Removed.
1701	(objc_synthesize_getter): Mark 'klass' argument as unused.  Use
1702	PROPERTY_GETTER_NAME instead of PROPERTY_NAME.  Set the
1703	DECL_SOURCE_LOCATION of the new method to be the same as the one
1704	for the @synthesize.  Always use PROPERTY_IVAR_NAME as it is
1705	instead of trying to guess what it should be.  Removed use of
1706	CLASS_IVARS.  Use the location of @synthesize for c_finish_return
1707	and c_end_compound_statement.
1708	(objc_synthesize_setter): Mark 'klass' argument as unused.  Use
1709	PROPERTY_SETTER_NAME instead of trying to guess what it should be.
1710	Set the DECL_SOURCE_LOCATION of the new method to be the same as
1711	the one for the @synthesize.  Always use PROPERTY_IVAR_NAME as it
1712	is instead of trying to guess what it should be.  Removed use of
1713	CLASS_IVARS.  Use the location of @synthesize for c_finish_return
1714	and c_end_compound_statement.  Emit an error and keep going,
1715	instead of aborting, if the setter prototype does not have the
1716	expected argument.
1717	(objc_add_synthesize_declaration_for_property): New.
1718	(objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
1719	all arguments.  Improved error message.  Filled in the rest of the
1720	function, which used to be a placeholder, with an actual
1721	implementation.
1722	(objc_add_dynamic_declaration_for_property): New.
1723	(objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
1724	arguments.  Improved error message.  Filled in the rest of the
1725	function, which used to be a placeholder, with an actual
1726	implementation.
1727	(objc_gen_property_data): Rewritten.
1728	(finish_class): Added explicit switch cases for
1729	CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
1730	PROTOCOL_INTERFACE_TYPE.  Added a default switch case which is
1731	gcc_unreachable.  Rewritten the processing of properties, in
1732	particular to not synthesize prototypes for getters and setters if
1733	they already exist and to install the getter and setter names into
1734	PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME.  Do not generate
1735	warnings about setter, getter and ivar property attributes.
1736	(objc_lookup_ivar): Removed support for properties.
1737	(objc_gimplify_property_ref): New.
1738	(objc_gimplify_expr): Use a switch.  In case of a PROPERTY_REF, call
1739	objc_gimplify_property_ref.
1740
17412010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1742
1743	* objc-act.c (objc_add_property_declaration): Added arguments to
1744	pass the various property attributes that were parsed with the
1745	property declaration.  Process arguments to determine the final
1746	property attributes and produce error messages as appropriate.
1747	Added temporary code to keep the compiler silent about variables
1748	set but not used - for new attributes that are only checked but
1749	have no effect yet.
1750	(property_readonly): Removed.
1751	(property_setter): Removed.
1752	(property_getter): Removed.
1753	(property_ivar): Removed.
1754	(property_copies): Removed.
1755	(objc_set_property_attr): Removed.
1756	* objc-act.h (enum property_assign_semantics): New.
1757
17582010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1759
1760	* objc-act.c (objc_add_property_variable): Renamed to
1761	objc_add_property_declaration.  Added location argument.  Updated
1762	warnings and errors to use it.  Use error, not fatal_error, if a
1763	property declaration is found outside an interface or
1764	implementation context.
1765
17662010-10-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1767
1768	* objc-act.c (objc_build_keyword_decl): Updated comments.  Do not
1769	emit a warning that method parameter attributes are unimplemented.
1770	Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
1771	(start_method_def): Copy attributes from each KEYWORD_DECL into
1772	the corresponding PARM_DECL.
1773	(objc_warn_deprecated_use): Removed.
1774	(build_objc_method_call): Call warn_deprecated_use, not
1775	objc_warn_deprecated_use.
1776	(objc_maybe_printable_name): Do not try to get the identifier name
1777	of DECLs that we don't recognize.  Immediately return NULL for them.
1778	(objc_printable_name): Removed C++-specific case, which is no
1779	longer used.  Updated comments.
1780
17812010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>
1782
1783	* objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
1784	(objc_demangle): Return NULL if demangling can not be done because
1785	the string to demangle is not an Objective-C mangled method name.
1786	Be smarter in demangling method names so that at least for methods
1787	with no arguments we are able to almost always demangle '_' correctly.
1788	Updated comments.
1789	(objc_maybe_printable_name): New.
1790	(objc_printable_name): Call objc_maybe_printable_name.  If it
1791	returns NULL, call cxx_printable_name in Objective-C++.
1792
17932010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
1794
1795	Based on the CFString implementation in FSF apple/trunk branch.
1796
1797	* objc-act.c (objc_build_string_object): Handle CFStrings.
1798
17992010-10-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1800
1801	* objc-act.c (get_objc_string_decl): Use a switch instead of a
1802	chain of ifs.  Use gcc_unreachable instead of abort.
1803	(add_objc_string): Same change.
1804	(generate_protocol_list): Same change - twice.
1805	(synth_id_with_class_suffix): Same change.
1806	(build_keyword_selector): Same change - twice.
1807	(objc_build_message_expr): Same change.
1808	(objc_build_selector_expr): Same change.
1809	(check_methods): Same change - and added missing gcc_unreachable
1810	for default case.
1811	(check_methods_accessible): Same change - twice, and added missing
1812	gcc_unreachable for default case in one of them.
1813	(start_class): Same change - and added missing gcc_unreachable for
1814	default case.
1815	(continue_class): Same change.
1816	(objc_gen_property_data): Same change.
1817	(finish_class): Same change.
1818	(encode_type_qualifiers): Added missing gcc_unreachable.
1819	(encode_type): Small code tidy up to reduce duplicated code.  Use
1820	gcc_unreachable instead of abort - twice.
1821	(encode_gnu_bitfield): Use a switch instead of a chain of ifs -
1822	twice.  Added missing gcc_unreachable for default case - twice.
1823	(dump_interface): Use a switch instead of a chain of ifs.
1824	(handle_impent): Same change.
1825
18262010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1827
1828	* objc-act.h (objc_inherit_code): Removed.
1829	* objc-act.c (objc_inherit_code): Removed.
1830	(objc_set_method_type): Removed.
1831	(objc_build_method_signature): Added is_class_method argument.
1832	Use it instead of the global objc_inherit_code variable.
1833	(objc_add_method_declaration): Same change.
1834	(objc_start_method_definition): Same change.
1835	(objc_generate_cxx_ctor_or_dtor): Updated call to
1836	objc_start_method_definition.  Do not call objc_set_method_type.
1837	(adjust_type_for_id_default): Mark as inline.
1838	(objc_synthesize_getter): Updated call to
1839	objc_start_method_definition.  Do not set objc_inherit_code.
1840	(objc_synthesize_setter): Updated call to
1841	objc_start_method_definition.  Do not set objc_inherit_code.
1842
18432010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1844
1845	Merge from 'apple/trunk' branch on FSF servers.  Obvious updates
1846	to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
1847	get it to compile in the current trunk.
1848
1849	2006-01-27  Fariborz Jahanian  <fjahanian@apple.com>
1850
1851	Radar 4345837
1852	* objc-act.c (hash_class_name_enter): New.
1853	(hash_class_name_lookup): New.
1854	(objc_declare_alias): Enter alias name into hash table.
1855	(objc_declare_class): Enter class name into hash table.
1856	(objc_is_class_name): Do a hash look up of class name.
1857	(hash_init): Initialize the two new hash tables.
1858	* objc-act.h: Added cls_name_hash_list and als_name_hash_list
1859	declarations, removed class_chain and alias_chain.
1860
18612010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1862
1863	* objc-lang.c (finish_file): Removed.
1864	* objc-act.c (objc_finish_file): Renamed to
1865	objc_write_global_declarations.  Do not try to instantiate C++
1866	templates when compiling Objective-C++ as this is now
1867	automatically done before this function is called.  Do not check
1868	for syntax-only run or PCH generation as this is done by the
1869	callers.
1870	* objc-act.h (objc_finish_file): Removed.
1871
18722010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1873
1874	Implemented parsing @synthesize and @dynamic for
1875	Objective-C/Objective-C++.
1876	* objc-act.c (objc_add_synthesize_declaration): New.
1877	(objc_add_dynamic_declaration): New.
1878
18792010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1880
1881	* objc-act.c (lookup_and_install_protocols): Return NULL if passed
1882	error_mark_node.
1883
18842010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1885
1886	Merge from 'apple/trunk' branch on FSF servers.
1887
1888	2006-03-10  Fariborz Jahanian  <fjahanian@apple.com>
1889
1890	Radar 4407151
1891	* objc-act.c (objc_is_class_name): template parameter is not
1892	an objective class name.
1893	(objc_generate_cxx_cdtors): Check for the null
1894	objc_implementation_context.
1895
18962010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1897
1898	Merge from 'apple/trunk' branch on FSF servers.
1899
1900	2005-11-08  Fariborz Jahanian  <fjahanian@apple.com>
1901
1902	Radar 4330422
1903	* objc-act.c (objc_non_volatilized_type): New
1904
1905	2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
1906
1907	Radar 4204796
1908	* objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
1909	types with proper attribute set and correctly.
1910	(objc_volatilize_decl): Remove unneeded code.
1911	(objc_type_quals_match): Use the new attribute to check on
1912	'volatilzed' type.
1913	(hash_init): removed unneeded code.
1914
19152010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1916
1917	Merge from 'apple/trunk' branch on FSF servers.
1918
1919	2006-03-27  Fariborz Jahanian  <fjahanian@apple.com>
1920
1921	Radar 4133425
1922	* objc-act.c (objc_diagnose_private_ivar): New.
1923
19242010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
1925
1926	* objc-act.c: Rename 'objc_public_flag' to  objc_ivar_visibility and
1927	make its type 'objc_ivar_visibility_kind'.
1928	(objc_start_class_interface): Update to use visibility enum.
1929	(objc_start_class_implementation): Likewise.
1930	(objc_set_visibility): Update to use visibility enum, warn that
1931	@package is handle as per @public.
1932	(add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
1933	* objc-act.h: Rename 'objc_public_flag' to  objc_ivar_visibility and
1934	make its type 'objc_ivar_visibility_kind'.
1935
19362010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1937
1938	merge from FSF apple 'trunk' branch.
1939	2006 Fariborz Jahanian  <fjahanian@apple.com>
1940
1941	Radars 4436866, 4505126, 4506903, 4517826
1942	* objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New.
1943	property_readonly, property_getter, property_setter, property_ivar,
1944	property_copies, in_objc_property_setter_name_context: New vars.
1945	(objc_set_property_attr): New.
1946	(objc_add_property_variable): New.
1947	(lookup_property_in_list): New.
1948	(lookup_property): New.
1949	(objc_build_getter_call): New.
1950	(objc_setter_func_call): New.
1951	(get_selector_from_reference): New.
1952	(objc_build_setter_call): New.
1953	(is_property): New.
1954	(build_property_reference): New.
1955	(objc_finish_message_expr): Detect readonly property and warn.
1956	(objc_build_property_ivar_name): New.
1957	(objc_build_property_setter_name): New.
1958	(objc_gen_one_property_datum): New.
1959	(objc_process_getter_setter): New.
1960	(objc_synthesize_getter): New.
1961	(objc_synthesize_setter): New.
1962	(objc_gen_property_data): New.
1963	(finish_class): Generate property data.
1964	(comp_proto_with_proto): Separated from ...
1965	(match_proto_with_proto): ... New.
1966	(objc_lookup_ivar): Handle properties.
1967	* objc-tree.def (PROPERTY_DECL): New tree code.
1968	* objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size.
1969	(METHOD_PROPERTY_CONTEXT): New.
1970	(PROPERTY_NAME): New.
1971	(PROPERTY_GETTER_NAME): New.
1972	(PROPERTY_SETTER_NAME): New.
1973	(PROPERTY_IVAR_NAME): New.
1974	(PROPERTY_READONLY): New.
1975	(PROPERTY_COPIES): New.
1976	(TOTAL_CLASS_RAW_IVARS): New.
1977	(CLASS_PROPERTY_DECL): New.
1978	(IMPL_PROPERTY_DECL): New.
1979	* objc-lang.c (objc_init_ts): Update fields for property_decl.
1980
19812010-10-13  Richard Henderson  <rth@redhat.com>
1982
1983	* objc-act.c (objc_eh_personality): Update call to
1984	build_personality_function.
1985
19862010-10-13  Iain Sandoe  <iains@gcc.gnu.org>
1987
1988	merge from FSF apple 'trunk' branch.
1989
1990	2006-04-26  Fariborz Jahanian  <fjahanian@apple.com>
1991	Radar 3803157 (method attributes)
1992	* objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
1993	* objc-act.c (objc_decl_method_attributes): New.
1994	(objc_add_method_declaration): Process method's attribute.
1995	(objc_start_method_definition): Ditto.
1996	(build_objc_method_call): Inject method attribute into
1997	built function type.
1998	(objc_method_decl): New.
1999	(objc_warn_deprecated)use): New.
2000
20012010-10-07  Andi Kleen  <ak@linux.intel.com>
2002
2003	* Make-lang.in (cc1obj-dummy): Remove.
2004	(cc1obj-checksum): Change to run checksum over object files
2005	and options only.
2006
20072010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
2008
2009	PR objc/45925
2010	* objc-act.c (objc_finish_foreach_loop): Convert return value of
2011	countByEnumeratingWithState:objects:count: to long unsigned int.
2012
20132010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
2014
2015	* objc-act.c (build_objc_method_call): Replace calls to
2016	build_function_call () with the VEC equivalent.  Construct parameter
2017	lists as VECs.
2018
20192010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
2020
2021	* objc-act.c (objc_build_message_expr): Call mark_exp_read () to
2022	signal that the receiver has been used.
2023
20242010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
2025
2026	* README: Obsolete file removed.
2027
20282010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
2029
2030	Implemented fast enumeration for Objective-C.
2031	* objc-act.c (build_fast_enumeration_state_template): New.
2032	(TAG_ENUMERATION_MUTATION): New.
2033	(TAG_FAST_ENUMERATION_STATE): New.
2034	(synth_module_prologue): Call build_fast_enumeration_state_template() and set up
2035	objc_enumeration_mutation_decl.
2036	(objc_create_temporary_var): Allow providing a name to temporary
2037	variables.
2038	(objc_build_exc_ptr): Updated calls to
2039	objc_create_temporary_var().
2040	(next_sjlj_build_try_catch_finally): Same change.
2041	(objc_finish_foreach_loop): New.
2042	* objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
2043	OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
2044	objc_enumeration_mutation_decl.
2045
2046	Merge from 'apple/trunk' branch on FSF servers.
2047
2048	2006-04-12  Fariborz Jahanian  <fjahanian@apple.com>
2049
2050	Radar 4507230
2051	* objc-act.c (objc_type_valid_for_messaging): New routine to check
2052	for valid objc object types.
2053	(objc_finish_foreach_loop): Check for invalid objc objects in
2054	foreach header.
2055
20562010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
2057
2058	Merge from 'apple/trunk' branch on FSF servers.
2059
2060	2005-10-17  Fariborz Jahanian  <fjahanian@apple.com>
2061
2062	Radar 4290840
2063	* objc-act.c (objc_start_method_definition): Check for
2064	error_mark_node for the selector name and make a quick exit.
2065
20662010-10-04  Andi Kleen  <ak@linux.intel.com>
2067
2068	* Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
2069
20702010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
2071
2072	merge from FSF 'apple/trunk' branch.
2073	2006-01-30  Fariborz Jahanian  <fjahanian@apple.com>
2074
2075	Radar 4386773
2076	* objc-act.c (objc_set_method_opt): New function.
2077	(objc_start_protocol, objc_finish_interface): Reset
2078	objc_method_optional_flag flag.
2079	(objc_add_method_declaration): Pass on the new
2080	flag to objc_add_method.
2081	(objc_add_method): Add optional methods to new chain in
2082	the protocol class.
2083	* objc-act.h (CLASS_OPTIONAL_CLS_METHODS)
2084	(CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
2085	class's optional method chains.
2086
20872010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2088
2089	Merge from 'apple/trunk' branch on FSF servers.
2090
2091	2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
2092
2093	Radar 4278236
2094	* objc-act.c (objc_declare_class): Pick the right
2095	type tree.
2096
20972010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2098
2099	Merge from 'apple/trunk' branch on FSF servers.
2100
2101	2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
2102
2103	Radar 4281748
2104	* objc-act.c (objc_check_global_decl): New
2105
21062010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2107
2108	* objc-act.c (objc_is_reserved_word): Removed.
2109
21102010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
2111
2112	* objc-act.c (objc_add_method_declaration): Handle and ignore
2113	attributes.
2114	(objc_start_method_definition): Likewise.
2115	(objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor.
2116	(objc_build_keyword_decl): Handle and ignore attributes.
2117
21182010-09-28  Richard Henderson  <rth@redhat.com>
2119
2120	* objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
2121
21222010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
2123
2124	* objc-act.c (objc_start_class_interface): Handle and ignore attributes.
2125	(objc_start_category_interface): Likewise.
2126	(objc_start_protocol): Likewise.
2127
21282010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2129
2130	Merge from 'apple/trunk' branch on FSF servers.
2131
2132	2005-08-23  Stuart Hastings  <stuart@apple.com>
2133		    Ziemowit Laski  <zlaski@apple.com>
2134
2135	Radar 4209854
2136	* objc-act.c (objc_decay_parm_type): New function.
2137	(get_arg_type_list): Decay types for all named arguments.
2138	(objc_push_parm): Rebuild the PARM_DECL if its type has
2139	been decayed.
2140
21412010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2142
2143	* objc-act.c (encode_type): Fixed encoding enums with the next
2144	runtime.
2145
21462010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2147
2148	Merge from 'apple/trunk' branch on FSF servers.
2149
2150	2005-07-18  Ziemowit Laski  <zlaski@apple.com>
2151
2152	Radar 4175534
2153	* objc-act.c (objc_compare_types): A new silent comparison
2154	mode (-4), differing from regular comparison (-3) in that
2155	'false' is returned instead of issuing warnings.
2156
21572010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2158
2159	* objc-act.c (encode_type): Do not add 'r' with the next runtime.
2160	(encode_aggregate_within): Reorganized code to be more readable.
2161	(encode_aggregate_fields): Updated second argument to be 'bool'
2162	instead of 'int'.
2163
21642010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2165
2166	PR objc/45763
2167	PR objc/25450
2168	PR objc/25464
2169	* objc-act.c: Improved comments for encoding functions.
2170	(encode_aggregate_within): For the GNU runtime, rewritten some
2171	obsfuscated code to clarify the various cases.
2172	(encode_aggregate): Function removed.
2173	(encode_array): Generate an error if asked to encode an incomplete
2174	array as part of generating instance variables.  Else, when
2175	encoding an incomplete array inside a structure, encode it as an
2176	array of zero size.
2177	(encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
2178	'^c' instead of '*'.
2179	(encode_gnu_bitfield): Encode enumerated types exactly in the same
2180	type as integer types instead of using a hardcoded 'i'.  If asked
2181	to encode a non-integer type as a bitfield, do not abort
2182	compilation immediately; instead generate an error, then skip the
2183	type.
2184	(encode_type): Use a 'switch' instead of a sequence of 'if's.
2185	Added a 'default' clause that gets executed if the type can not be
2186	matched, and that encodes it as '?' (unknown) and produces a
2187	warning.  For the GNU runtime, encode enumerated types exactly in
2188	the same way as integer types instead of using a hardcoded 'i'.
2189	Encode long double as 'D'.  Encode 128-bit integers as 'T' or 't'.
2190	Encode C++ reference types as pointers.  Call encode_vector to
2191	encode vectors.
2192	(encode_vector): New function.
2193
21942010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2195
2196	Merge from 'apple/trunk' branch on FSF servers.  I modified the
2197	changes to be used only when compiling for the NeXT runtime.
2198
2199	2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
2200
2201	Radar 4301047
2202
2203	* objc-act.c (encode_type): Remove the hack.
2204
2205	2005-07-20  Ziemowit Laski  <zlaski@apple.com>
2206
2207	Radar 4136935
2208	* objc-act.c (pointee_is_readonly): New function.
2209	(encode_pointer, encode_aggregate_within, encode_type):
2210	Attempt to emulate GCC 3.3 when generating type encodings.
2211
22122010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2213
2214	Merge from 'apple/trunk' branch on FSF servers.
2215
2216	2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
2217
2218	Radar 4229905
2219	* objc-act.c (objc_have_common_types): New function.
2220
2221	2005-06-22  Ziemowit Laski  <zlaski@apple.com>
2222
2223	Radar 4154928
2224	* objc-act.c (objc_common_type): New function.
2225
22262010-09-27  Richard Guenther  <rguenther@suse.de>
2227
2228	* objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
2229	(objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
2230
22312010-09-26  Nicola Pero  <nicola.pero@meta-innovation.com>
2232
2233	* objc-act.c: Removed historical, obsolete comment at the top of
2234	the file.
2235
22362010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2237
2238	PR objc/23710
2239	* objc-act.c (objc_start_method_definition): Do not abort upon a
2240	'method definition not in @implementation context' error.  Return
2241	'false' instead.
2242
22432010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2244
2245	PR objc/25965
2246	* objc-act.c (objc_get_interface_ivars): New function.
2247	(objc_collecting_ivars): New variable.
2248	(continue_class): Set and reset objc_collecting_ivars for context.
2249
22502010-09-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2251
2252	Merge from 'apple/trunk' branch on FSF servers.
2253
2254	2006-03-09  Fariborz Jahanian  <fjahanian@apple.com>
2255
2256	Radar 4457381
2257	* objc-act.c (objc_finish_message_expr): Look for message in
2258	@class's protocol list.
2259
2260	2006-02-07  Fariborz Jahanian  <fjahanian@apple.com>
2261
2262	Radar 4219590
2263	* objc-act.c (objc_start_method_definition): Initialize
2264	break/continue labels.
2265
2266	2005-08-22  Ziemowit Laski  <zlaski@apple.com>
2267
2268	Radar 4174166
2269	* objc-act.c (objc_compare_types): Compare function
2270	pointers; indicate success if the right-hand side has
2271	a return type that is covariant, and the argument types
2272	contravariant, with those of the left side.
2273
2274	2005-08-22  Ziemowit Laski  <zlaski@apple.com>
2275
2276	Radar 4216500
2277	* objc-act.c (objc_get_protocol_qualified_type): When looking
2278	at a typedef, retrieve the precise type it describes (rather
2279	than merely looking up a class by name).
2280
22812010-09-10  Nicola Pero  <nicola.pero@meta-innovation.com>
2282
2283	* objc-act.c (objc_begin_try_stmt): Generate an error if
2284	-fobjc-exceptions was not used.  (objc_build_throw_stmt): Same
2285	change.
2286
22872010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2288
2289	* objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2290
22912010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
2292
2293	PR objc/44140
2294	* objc-act.c: build_objc_string_decl() remove declaration.
2295	(finish_var_decl): Remove forcing of var output and marking
2296	as "Used".
2297	(init_def_list): Use integer_zero_node.
2298	(init_objc_symtab): Use integer_zero_node, make the short
2299	integer type specific on relevant nodes.
2300	(generate_objc_symtab_decl): Remove call to
2301	forward_declare_categories().  Use null_pointer_node where
2302	appropriate.
2303	(build_module_descriptor): Comment and mark this item as
2304	DECL_PRESERVE_P.
2305	(generate_static_references): Use gcc_unreachable instead of
2306	abort ().
2307	(diagnose_missing_method): New.
2308	(build_next_selector_translation_table): New.
2309	(build_gnu_selector_translation_table): New.
2310	(add_objc_string): Merge code from build_objc_string_decl...
2311	... and delete build_objc_string_decl().
2312	(generate_dispatch_table): Make integer types explicit.
2313	(generate_category): Pass implent and arrange for the data
2314	to be extracted within the routine.  Do not start new vars,
2315	but finish the ones collcted during parsing.
2316	(generate_shared_structures): Likewise.
2317	(finish_objc): Reorder code so that we finish variables before
2318	referencing them.  Save the global data before calling meta-data
2319	creation routines, and pass the current reference to the two
2320	main routines.  Only call generate_objc_image_info () for the
2321	NeXT runtime.
2322	(generate_classref_translation_entry): Comment on and make this
2323	item DECL_PRESERVE_P.
2324	(handle_class_ref): Use varpool interfaces, comment on and make
2325	this item DECL_PRESERVE_P.
2326	(handle_impent): Likewise.
2327	(generate_objc_image_info): Only generate when the content is
2328	non-zero.  Make integer types explict.
2329
23302010-07-03  Nathan Froyd  <froydnj@codesourcery.com>
2331
2332	PR objc/24867
2333	* objc-act.c (build_sized_array_type): New function.
2334	(add_objc_string): Use it.
2335	(generate_protocol_list): Likewise.
2336	(generate_objc_image_info): Likewise.
2337	(add_field_decl): New function.
2338	(objc_build_struct): Use a VEC rather than building a TREE_LIST.
2339	(generate_struct_by_value_array): Use add_field_decl.
2340	(build_objc_symtab_template): Likewise.
2341	(build_module_descriptor): Likewise.
2342	(build_objc_exception_stuff): Likewise.
2343	(build_protocol_template): Likewise.
2344	(build_method_prototype_list_template): Likewise.
2345	(build_method_prototype_template): Likewise.
2346	(build_category_template): Likewise.
2347	(build_selector_template): Likewise.
2348	(build_class_template): Likewise.
2349	(build_super_template): Likewise.
2350	(build_ivar_template): Likewise.
2351	(build_ivar_list_template): Likewise.
2352	(build_method_list_template): Likewise.
2353	(build_method_template): Likewise.
2354
23552010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
2356
2357	* objc-act.c: Do not include except.h.
2358
23592010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2360
2361	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
2362	allocation.
2363
2364	* objc-act.c (objc_volatilize_decl): Likewise.
2365	(objc_build_string_object): Likewise.
2366	(hash_init): Likewise.
2367	(hash_enter): Likewise.
2368	(hash_add_attr): Likewise.
2369	(add_class): Likewise.
2370	(start_class): Likewise.
2371
23722010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
2373
2374	* objc-act.c: Update include path for moved files.
2375	* objc-lang.c: Likewise.
2376	* config-lang.in: Update paths in gtfiles for files in c-family/.
2377
23782010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
2379
2380	* objc-act.c (build_next_objc_exception_stuff): Give setjmp a
2381	varargs type instead of a zero-argument type.
2382
23832010-05-30  Nathan Froyd  <froydnj@codesourcery.com>
2384
2385	* objc-act.c (synth_module_prologue): Use build_function_type_list
2386	instead of build_function_type.
2387	(build_module_initializer_routine): Likewise.
2388	(build_next_objc_exception_stuff): Likewise.
2389	(build_objc_exception_stuff): Likewise.
2390
23912010-05-27  Joseph Myers  <joseph@codesourcery.com>
2392
2393	* objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
2394	* Make-lang.in (objc/objc-act.o): Update dependencies.
2395
23962010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2397
2398	* objc-act.h: Do not include gimple.h.
2399	* objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
2400	Include gimple.h.  Explain why except.h has to be included.
2401	* objc-lang.c: Do not include diagnostics.h.
2402	* Make-lang.in: Update dependencies.
2403
24042010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
2405
2406	* objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
2407	mismatch code for VECs.
2408
24092010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
2410
2411	* objc-act.c (objc_build_constructor): Take a VEC instead of a tree.
2412	Use build_constructor instead of build_constructor_from_list.
2413	(objc_build_string_object): Build a VEC argument for
2414	objc_build_constructor.
2415	(init_def_list): Likewise.
2416	(init_objc_symtab): Likewise.
2417	(init_module_descriptor): Likewise.
2418	(generate_static_references): Likewise.
2419	(build_selector_translation_table): Likewise.
2420	(build_descriptor_table_initializer): Likewise.
2421	(generate_descriptor_table): Likewise.
2422	(build_protocol_initializer): Likewise.
2423	(build_ivar_list_initializer): Likewise.
2424	(generate_ivars_list): Likewise.
2425	(build_dispatch_table_initializer): Likewise.
2426	(generate_dispatch_table): Likewise.
2427	(generate_protocol_list): Likewise.
2428	(build_category_initializer): Likewise.
2429	(build_shared_structure_initializer): Likewise.
2430	(generate_objc_image_info): Likewise.
2431
24322010-04-30  Iain Sandoe  <iains@gcc.gnu.org>
2433
2434	PR objc++/32052
2435	* objc-act.c (encode_aggregate_within): Encode structure tags
2436	with template args for ObjC++.
2437
24382010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2439
2440	* objc-act.c: Do not include varray.h.
2441
24422010-04-07  Jakub Jelinek  <jakub@redhat.com>
2443
2444	PR c/18624
2445	* objc-act.c (finish_var_decl, objc_begin_catch_clause,
2446	really_start_method, get_super_receiver, handle_class_ref): Set
2447	DECL_READ_P in addition to TREE_USED.
2448
24492010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
2450
2451	PR objc/35996
2452	* objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
2453	-fgnu-runtime and set flag_objc_gc to zero.
2454
24552010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
2456
2457	PR objc++/23716
2458	* objc-act.c (build_module_initializer_routine): Make the argument
2459	to objc_start_function NULL_TREE when compiling ObjC++.
2460
24612010-02-18  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2462	    Mike Stump  <mikestump@comcast.net>
2463
2464	PR objc/43061
2465	* objc-act.c (finish_var_decl): Set the generated symbols as "used".
2466
24672009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
2468
2469	* objc-act.c (objc_substitute_decl, build_ivar_reference,
2470	get_super_receiver): Update build_indirect_ref calls.
2471
24722009-11-28  Jakub Jelinek  <jakub@redhat.com>
2473
2474	* objc-act.c (generate_shared_structures): Remove unused sc_spec and
2475	decl_specs variables.
2476	(objc_build_message_expr): Remove unused loc variable.
2477	(objc_finish_message_expr): Remove unused saved_rtype variable.
2478	(encode_field_decl): Remove unused type variable.
2479
2480	PR obj-c++/42156
2481	* objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
2482	type variants that don't have it initialized yet.
2483
24842009-09-14  Jan Hubicka  <jh@suse.cz>
2485
2486	* objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
2487
24882009-09-14  Richard Henderson  <rth@redhat.com>
2489
2490	* objc-act.c (objc_init_exceptions): Don't call
2491	default_init_unwind_resume_libfunc.
2492	(objc_build_exc_ptr): Use __builtin_eh_pointer.
2493
24942009-09-13  Richard Guenther  <rguenther@suse.de>
2495	    Rafael Avila de Espindola  <espindola@google.com>
2496
2497	* objc-act.c (objc_eh_runtime_type): Export.
2498	(objc_init_exceptions): Remove.  Move warning code ...
2499	(objc_begin_try_stmt): ... here
2500	(objc_build_throw_stmt): ... and here.
2501	(objc_eh_personality_decl): New.
2502	(objc_eh_personality): New function.
2503	* objc-act.h (objc_eh_runtime_type): Declare.
2504	(objc_eh_personality): Likewise.
2505	* objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
2506	(LANG_HOOKS_EH_PERSONALITY): Likewise.
2507
25082009-09-03  Diego Novillo  <dnovillo@google.com>
2509
2510	* objc-lang.c (lang_hooks): Remove const qualifier.
2511
25122009-08-20  Richard Guenther  <rguenther@suse.de>
2513
2514	* objc-act.c: Include c-lang.h
2515	* Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
2516
25172009-07-17  Aldy Hernandez  <aldyh@redhat.com>
2518	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
2519
2520	PR 40435
2521	* objc-act.c: Add location argument to all calls to
2522	build_fold_addr_expr.
2523
25242009-07-14  Taras Glek  <tglek@mozilla.com>
2525	    Rafael Espindola  <espindola@google.com>
2526
2527	* Make-lang.in (objc.install-plugin): New target for
2528	installing plugin headers.
2529
25302009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2531
2532	* objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
2533	EXPR_LOCATION.
2534
25352009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2536
2537	* objc-act.c: Replace %J by an explicit location. Update all
2538	calls.
2539
25402009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2541
2542	* objc-act.c: Replace %H by an explicit location. Update all
2543	calls.
2544
25452009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2546
2547	PR objc/28050
2548	* objc-act.c (objc_build_message_args): Return if ARGS is the
2549	error_mark_node.
2550
25512009-06-19  Ian Lance Taylor  <iant@google.com>
2552
2553	* objc-act.c (objc_in_struct, objc_struct_types): Remove.
2554	(objc_struct_info): New static variable.
2555	(objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
2556	and &objc_struct_types, to start_struct.
2557	(objc_finish_struct): Likewise for finish_struct.
2558
25592009-06-15  Ian Lance Taylor  <iant@google.com>
2560
2561	* objc-act.c (objc_start_function): Don't set
2562	label_context_stack_se or label_context_stack_vm.
2563
25642009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2565
2566	* objc-act.c (finish_var_decl): Pass location to finish_decl.
2567	(objc_get_parm_info): Same.
2568	(get_super_receiver): Same.
2569	* objc-act.c (objc_build_component_ref): Pass location to
2570	build_compound_ref.
2571	(build_module_initializer_routine): Pass location to
2572	c_end_compound_stmt.
2573	(objc_generate_static_init_call): Pass location to build_stmt.
2574	(build_typed_selector_reference): New location argument.
2575	(build_selector_reference): Same.
2576	(objc_substitute_decl): Pass location to build_array_ref.
2577	(next_sjlj_build_try_catch_finally): Pass location to build_stmt.
2578	(objc_begin_catch_clause): Same.
2579	(objc_finish_try_stmt): Same.
2580	(objc_finish_catch_clause): Pass location to c_end_compound_stmt.
2581	(objc_build_throw_stmt): New argument.
2582	(generate_shared_structures): Pass location to build_c_cast.
2583	(objc_build_message_expr): Use local location.
2584	(objc_finish_message_expr): Use input_location.
2585	(build_objc_method_call): New argument.
2586	(objc_build_selector_expr): Same.
2587	(get_super_receiver): Pass location to build_c_cast,
2588	build_modify_expr, build_compound_expr.
2589	* objc-act.c: Add location to all calls to start_struct, build_decl,
2590	finish_struct.
2591
25922009-06-09  Ian Lance Taylor  <iant@google.com>
2593
2594	* objc-act.c (objc_gimplify_expr): Change return type to int.
2595	* objc-act.h: Update declaration.
2596
25972009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2598
2599	* objc-act.c (objc_init): Skip print_struct_values during
2600	-fcompare-debug-second.
2601
26022009-06-03  Ian Lance Taylor  <iant@google.com>
2603
2604	* Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
2605	$(SYSTEM_H).
2606
26072009-05-27  Ian Lance Taylor  <iant@google.com>
2608
2609	* Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
2610	$(LINKER).
2611	(cc1obj$(exeext)): Likewise.
2612
26132009-05-26  Ian Lance Taylor  <iant@google.com>
2614
2615	* Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
2616	(cc1obj$(exeext)): Likewise.
2617
26182009-05-20  Ian Lance Taylor  <iant@google.com>
2619
2620	* objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
2621	than NULL_TREE to build_special_member_call.
2622
26232009-05-10  Ian Lance Taylor  <iant@google.com>
2624
2625	* objc-act.c (objc_building_struct): New static variable.
2626	(objc_in_struct, objc_struct_types): New static variables.
2627	(objc_start_struct, objc_finish_struct): New static functions.
2628	(generate_struct_by_value_array): Call objc_start_struct instead
2629	of start_struct, and call objc_finish_struct instead of
2630	finish_struct.
2631	(objc_build_struct, build_objc_symtab_template): Likewise.
2632	(build_module_descriptor): Likewise.
2633	(build_next_objc_exception_stuff): Likewise.
2634	(build_protocol_template): Likewise.
2635	(build_method_prototype_list_template): Likewise.
2636	(build_method_prototype_template): Likewise.
2637	(build_category_template, build_selector_template): Likewise.
2638	(build_class_template, build_super_template): Likewise.
2639	(build_ivar_template, build_ivar_list_template): Likewise.
2640	(build_method_list_template): Likewise.
2641	(build_method_template): Likewise.
2642
26432009-05-10  Joseph Myers  <joseph@codesourcery.com>
2644
2645	* objc-act.c: Include intl.h.
2646	(objc_lookup_protocol): Use complete sentences for diagnostics
2647	with %qE for identifiers and translating results of
2648	gen_type_name_0 to locale character set.
2649	(objc_check_decl, check_protocol_recursively,
2650	lookup_and_install_protocols, objc_build_string_object,
2651	objc_get_class_reference, objc_declare_alias, objc_declare_class,
2652	objc_get_class_ivars, error_with_ivar, check_duplicates,
2653	objc_finish_message_expr, objc_build_protocol_expr,
2654	objc_build_selector_expr, build_ivar_reference, objc_add_method,
2655	add_category, add_instance_variable, objc_is_public,
2656	check_methods, check_methods_accessible, check_protocol,
2657	start_class, finish_class, start_protocol, really_start_method,
2658	get_super_receiver, objc_lookup_ivar): Use %E and %qE for
2659	identifiers in diagnostics.  Translate generated text to locale
2660	character set as needed.
2661	(check_protocol, check_protocols): Change name parameter to type
2662	tree.
2663	(lang_report_error_function): Remove.
2664
26652009-04-27  Ian Lance Taylor  <iant@google.com>
2666
2667	* objc-act.c (objc_gimplify_expr): Add casts to enum type.
2668
26692009-04-24  Ian Lance Taylor  <iant@google.com>
2670
2671	* objc-act.c (get_super_receiver): Update calls to
2672	build_modify_expr to pass new argument.
2673
26742009-04-21  Taras Glek  <tglek@mozilla.com>
2675
2676	* objc-act.c: Update GTY annotations to new syntax.
2677	* objc-act.h: Likewise.
2678
26792009-04-21  Joseph Myers  <joseph@codesourcery.com>
2680
2681	* ChangeLog: Add copyright and license notices.
2682
26832009-04-20  Ian Lance Taylor  <iant@google.com>
2684
2685	* objc-act.c (objc_rewrite_function_call): Change parameter from
2686	params to first_param.  Change all callers.
2687
26882009-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
2689
2690	PR bootstrap/39583
2691	* objc-act.c (in_late_binary_op): Define for Objective-C++.
2692
26932009-03-29  Joseph Myers  <joseph@codesourcery.com>
2694
2695	PR c/456
2696	PR c/5675
2697	PR c/19976
2698	PR c/29116
2699	PR c/31871
2700	PR c/35198
2701	* objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
2702
27032008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
2704
2705	PR bootstrap/38262
2706	* Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
2707	remove GMPLIBS.
2708
27092008-10-06  Aldy Hernandez  <aldyh@redhat.com>
2710
2711	* objc-act.c (objc_build_string_object): Pass location to
2712	build_unary_op.
2713	(init_def_list): Same.
2714	(init_objc_symtab): Same.
2715	(init_module_descriptor): Same.
2716	(build_module_initializer_routine): Same.
2717	(generate_static_references): Same.
2718	(build_typed_selector_reference): Same.
2719	(add_objc_string): Same.
2720	(objc_substitute_decl): Same.
2721	(objc_build_ivar_assignment): Same.
2722	(objc_build_global_assignment): Same.
2723	(objc_build_strong_cast_assignment): Same.
2724	(generate_protocols): Same.
2725	(build_protocol_initializer): Same.
2726	(build_dispatch_table_initializer): Same.
2727	(generate_protocol_list): Same.
2728	(build_category_initializer): Same.
2729	(build_shared_structure_initializer): Same.
2730	(generate_shared_structures): Same.
2731	(objc_build_protocol_expr): Same.
2732	(build_ivar_reference): Same.
2733	(get_super_receiver): Same.
2734
27352008-09-23  Aldy Hernandez  <aldyh@redhat.com>
2736
2737	* objc-act.c (next_sjlj_build_enter_and_setjmp): Call
2738	c_common_truthvalue_conversion with location.
2739	(next_sjlj_build_catch_list): Same.
2740	(next_sjlj_build_try_catch_finally): Same.
2741
27422008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2743
2744	PR objc/37460
2745	* objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
2746	* objc-act.h (objc_get_callee_fndecl): Remove prototype.
2747	* objc-act.c (objc_get_callee_fndecl): Kill.
2748
27492008-09-17  Jan Hubicka  <jh@suse.cz>
2750
2751	PR c++/18071
2752	* objc-act.c (objc_finish_method_definition): Do not set
2753	DECL_INLINE.
2754
27552008-09-01  Aldy Hernandez  <aldyh@redhat.com>
2756
2757	* objc-act.c (build_typed_selector_reference): Pass input_location to
2758	build_unary_op calls.
2759	(build_selector_reference): Same, but to build_array_ref.
2760	(objc_substitute_decl): Same.
2761	(build_ivar_reference): Same, but to build_indirect_ref.
2762	(get_super_receiver): Same.
2763
27642008-07-28  Richard Guenther  <rguenther@suse.de>
2765
2766	Merge from gimple-tuples-branch.
2767
2768	2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
2769
2770	* Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
2771	(objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
2772	* objc-act.h: Include gimple.h instead of tree-gimple.h.
2773	* ipa-reference.c: Same.
2774
2775	2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
2776
2777	* objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
2778	* objc-act.h (objc_gimplify_expr): Change prototype accordingly.
2779
27802008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2781
2782	* objc-act.c: Fix comment typos.
2783
27842008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2785
2786	* objc-act.c (objc_start_class_interface,
2787	objc_start_category_interface, objc_start_class_implementation,
2788	objc_start_category_implementation, objc_build_struct,
2789	generate_static_references, build_private_template,
2790	lookup_category, objc_add_method, add_category,
2791	add_instance_variable, objc_is_public, conforms_to_protocol,
2792	start_class, continue_class, finish_class): Avoid C++ keywords.
2793
27942008-07-14  Jason Merrill  <jason@redhat.com>
2795
2796	PR objc++/36723
2797	* objc-act.c (objc_build_constructor): Update C++ tweak.
2798
27992007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
2800
2801	* objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
2802	of DECL_IN_SYSTEM_HEADER.
2803
28042008-07-11  Ian Lance Taylor  <iant@google.com>
2805
2806	* objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
2807	etc., not just when OBJCPLUS is defined.
2808
28092008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2810
2811	* objc-act.c (setup_string_decl, objc_build_string_object,
2812	hash_interface, eq_interface, objc_begin_try_stmt,
2813	encode_method_prototype, build_ivar_list_initializer,
2814	objc_build_encode_expr): Fix for -Wc++-compat.
2815
28162008-05-12  Tomas Bily  <tbily@suse.cz>
2817
2818	* objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
2819	Use CONVERT_EXPR_P.
2820
28212008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2822
2823	* objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
2824
28252008-04-03  Tom Tromey  <tromey@redhat.com>
2826
2827	* Make-lang.in (objc_OBJS): New variable.
2828
28292008-03-27  Tom Tromey  <tromey@redhat.com>
2830
2831	* Make-lang.in: Revert automatic dependency patch.
2832
28332008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
2834
2835	PR obj-c++/35704
2836	* objc-act.c (objc_build_component_ref): Fix call to
2837	finish_class_member_access_expr.
2838	(objc_generate_cxx_ctor_or_dtor): Fix call to
2839	build_special_member_call.
2840
28412008-03-25  Andrew Pinski  <pinskia@gmail.com>
2842
2843	PR objc/29197
2844	* objc-act.c (encode_type): Handle when type is error_mark_node.
2845	(objc_push_parm): Handle when the type of parm is error_mark_node.
2846
28472008-03-25  Tom Tromey  <tromey@redhat.com>
2848
2849	* Make-lang.in (objc_OBJS): New variable.
2850	(cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
2851
28522008-03-21  Andreas Tobler  <a.tobler@schweiz.org>
2853
2854	PR bootstrap/35660
2855	* objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
2856	MAYBE_CLASS_TYPE_P.
2857	(objc_generate_cxx_cdtors): Likewise.
2858	(add_instance_variable): Likewise.
2859
28602008-02-26  Tom Tromey  <tromey@redhat.com>
2861
2862	* objc-act.c (objc_init): Remove old location code.
2863
28642008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2865
2866	PR other/35107
2867	* Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
2868
28692007-07-30  Nick Clifton  <nickc@redhat.com>
2870
2871	* Make-lang.in: Change copyright header to refer to version 3 of
2872	the GNU General Public License and to point readers at the
2873	COPYING3 file and the FSF's license web page.
2874	* lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
2875	config-lang.in, objc-lang.c: Likewise.
2876
28772007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2878
2879	* objc-act.c (objc_get_callee_fndecl): Constify.
2880	* objc-act.h (objc_get_callee_fndecl): Likewise.
2881
28822007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2883
2884	* objc-act.c (volatilized_hash, volatilized_eq, string_hash,
2885	string_eq): Constify.
2886
28872007-04-04  Stuart Hastings  <stuart@apple.com>
2888
2889	PR 31281
2890	* objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
2891
28922007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2893
2894	* Make-lang.in: Add dummy lang.install-pdf target.
2895
28962007-02-18  Kazu Hirata  <kazu@codesourcery.com>
2897
2898	* objc-act.c: Fix comment typos.
2899
29002007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2901	    Brooks Moses  <brooks.moses@codesourcery.com>
2902	    Lee Millward  <lee.millward@codesourcery.com>
2903
2904	* objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
2905	(objc_get_callee_fndecl): Likewise.
2906
29072007-01-23  Andrew Pinski  <pinskia@gmail.com>
2908
2909	PR objc/27438
2910	* objc-act.c (objc_add_static_instance): Mark the decl as
2911	TREE_USED.
2912
29132007-01-20  Andrew Pinski  <pinskia@gmail.com>
2914
2915	PR objc/30479
2916	* objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
2917	of htab_hash_pointer.
2918	(lookup_interface): Likewise.
2919	(add_class): Likewise.
2920
29212007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
2922
2923	* objc-act.c (objc_build_volatilized_type): Keep track of
2924	canonical types.
2925	(objc_get_protocol_qualified_type): Ditto.
2926
29272006-11-02  Andreas Tobler  <a.tobler@schweiz.org>
2928
2929	* objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
2930	content where we called cp_finish_file.
2931
29322006-10-23  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2933
2934	* objc-act.c (synth_module_prologue): Replace calls to
2935	builtin_function with add_builtin_function.
2936	(build_next_objc_exception_stuff): Replace calls to
2937	builtin_function with add_builtin_function.
2938	(build_objc_exception_stuff): Replace calls to
2939	builtin_function with add_builtin_function.
2940
29412006-10-10  Brooks Moses  <bmoses@stanford.edu>
2942
2943	* Make-lang.in: Added empty "objc.pdf" target.
2944
29452006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>
2946
2947	PR objc/29195
2948	* objc-act.c (objc_push_parm): If we change the type of the
2949	decl, relayout the decl.
2950
29512006-09-19  Eric Christopher  <echristo@apple.com>
2952
2953	* objc-act.c (JBLEN): Rename to OBJC_JBLEN,
2954	default to something innocuous.
2955	(build_next_objc_exception_stuff): Rename JBLEN.
2956
29572006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2958
2959	* Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2960
29612006-07-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2962
2963	PR obj-c++/28434
2964	* objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
2965
29662006-06-06  Mike Stump  <mrs@apple.com>
2967
2968	* objc-act.c: Remove prototype for objc_build_volatilized_type.
2969
29702006-05-24  Mike Stump  <mrs@apple.com>
2971
2972	* objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
2973
29742006-05-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2975
2976	PR objc/27240
2977	* objc-act.c (objc_is_public): Return early on invalid type.
2978
29792006-03-02  Fariborz Jahanian  <fjahanian@apple.com>
2980
2981	* objc-act.c (init_module_descriptor): Remove file name from
2982	module descriptor.
2983	(gen_type_name_0): Fix ICE when issuing warning.
2984
29852006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2986
2987	* Make-lang.in (OBJC): Remove.
2988	(OBJECTIVE-C): Remove.
2989	(objective-c): Remove.
2990	(.PHONY): Remove objective-c and ObjC.
2991
29922005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
2993
2994	PR objc/25360
2995	* objc-act.c (encode_type): Encode Complex types as 'j' followed
2996	by the inner type.
2997
29982005-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
2999
3000	PR objc/25348
3001	* objc-act.c (encode_array): Handle arrays to zero sized types.
3002
30032005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
3004
3005	* Make-lang.in (objc.all.build, objc.install-normal): Remove.
3006
30072005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
3008
3009	* Make-lang.in: Remove all dependencies on s-gtype.
3010
30112005-12-02  Richard Guenther  <rguenther@suse.de>
3012
3013	* objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
3014	next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
3015	next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
3016	build_objc_method_call, objc_rewrite_function_call): Use buildN
3017	instead of build.
3018
30192005-10-20  Geoffrey Keating  <geoffk@apple.com>
3020
3021	* objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
3022	on objc_msgSend and like builtin functions.
3023
30242005-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3025
3026	* objc-act.c (objc_build_component_ref): Adjust call to
3027	finish_class_member_access_expr due to a changed prototype.
3028
30292005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
3030
3031	PR objc/23306
3032	* objc-act.c (generate_strings): Remove and move code to
3033	finish decl to ...
3034	(add_objc_string): here when creating a new string decl.
3035	(finish_objc): Don't call generate_strings.
3036
30372005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
3038
3039	PR objc/23381
3040	* objc-act.c (next_sjlj_build_try_catch_finally): Set
3041	TREE_SIDE_EFFECTS on catch_seq after building it.
3042
30432005-08-09  Andrew Pinski  <pinskia@physics.uc.edu>
3044
3045	part of PR objc/21992
3046	* objc-act.c (handle_class_ref): The ref decl is always referenced.
3047
30482005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
3049
3050	Make CONSTRUCTOR use VEC to store initializers.
3051	* objc-act.c (objc_build_constructor): Use build_constructor_from_list
3052	instead of build_constructor.
3053
30542005-07-08  Daniel Berlin  <dberlin@dberlin.org>
3055
3056	* objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
3057	removed.
3058	* objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
3059	(KEYWORD_KEY_NAME): Use decl_minimal.
3060	(METHOD_SEL_NAME): Ditto..
3061	(METHOD_SEL_ARGS): Use decl_non_common.
3062	(METHOD_ADD_ARGS): Ditto.
3063	(METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
3064	(METHOD_DEFINITION): Ditto.
3065	(METHOD_ENCODING): Ditto.
3066	* objc-lang.c: (objc_init_ts): New function.
3067
30682005-07-07  Ziemowit Laski  <zlaski@apple.com>
3069
3070	* objc-act.c (objc_build_struct): Pass in an actual @interface
3071	instead of its name, and annotate the struct created (and all
3072	existing variants thereof) with the @interface.
3073	(objc_compare_types): Treat forward-declared ObjC classes
3074	as stand-alone (root) classes for purposes of type comparisons.
3075	(build_private_template): Move some code to objc_build_struct().
3076
30772005-07-07  Ziemowit Laski  <zlaski@apple.com>
3078
3079	PR objc/22274
3080	* objc-act.c (objc_build_string_object): For GNU-style constants,
3081	use the @interface type rather than the built-in type.
3082
30832005-07-03  Kazu Hirata  <kazu@codesourcery.com>
3084
3085	* Make-lang.in (cc1plus-checksum.c): Use
3086	build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
3087
30882005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
3089
3090	* objc-act.c: Use %q to quote in diagnostics.
3091
30922005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
3093
3094	* objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
3095	quoting.
3096
30972005-06-30  Ziemowit Laski  <zlaski@apple.com>
3098
3099	* objc-act.c (objc_build_volatilized_type): New function.
3100	(objc_volatilize_decl): Call objc_build_volatilized_type()
3101	instead of build_qualified_type().
3102
31032005-06-29  Ziemowit Laski  <zlaski@apple.com>
3104
3105	* objc-act.c (objc_build_internal_const_str_type): New function.
3106	(check_string_class_template): Use objc_get_class_ivars() instead
3107	of TYPE_FIELDS() to retrieve ivar list.
3108	(AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
3109	than the field itself.
3110	(objc_build_string_object): Synthesize a "__builtin_ObjCString"
3111	type and use it to lay out compile-time string objects.
3112	* objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
3113	New.
3114
31152005-06-28  Paul Brook  <paul@codesourcery.com>
3116
3117	* objc-act.c (objc_init_exceptions): Call
3118	default_init_unwind_resume_libfunc.
3119
31202005-06-27  Ziemowit Laski  <zlaski@apple.com>
3121
3122	* objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
3123	portion of TYPE_LANG_SPECIFIC info for all variants of
3124	a class before calling finish_struct(), and restore
3125	same TYPE_OBJC_INFO afterwards.
3126
31272005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
3128
3129	* all files: Update FSF address in copyright headers.
3130
31312005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
3132
3133	* objc-act.c (my_build_string_pointer): New.
3134	(objc_get_class_reference, get_super_receiver): Call
3135	my_build_string_pointer instead of my_build_string when building
3136	function arguments.
3137
31382005-05-25  Mike Stump  <mrs@mrs.kithrup.com>
3139
3140	* objc-act.c (volatilized_hash): Avoid warnings on 64-bit
3141	machines.
3142
31432005-05-24  Ziemowit Laski  <zlaski@apple.com>
3144
3145	* objc-act.c (objc_build_struct): New function.
3146	(objc_derived_from_p): Likewise.
3147	(objc_build_component_ref): Likewise.
3148	(objc_copy_binfo): Likewise.
3149	(objc_xref_basetypes): Likewise.
3150	(objc_lookup_protocol): Likewise.
3151	(objc_compare_protocols): Likewise.
3152	(objc_volatilize_decl): Likewise.
3153	(encode_aggregate_fields): Likewise.
3154	(volatilized_hash): Likewise.
3155	(volatilized_eq): Likewise.
3156	(objc_compare_types): Likewise.
3157	(objc_type_quals_match): Likewise.
3158	(DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
3159	of same name.
3160	(get_class_ivars): Add second parameter indicating if entire
3161	hierarchy is desired.
3162	(struct volatilized_type): New type.
3163	(volatilized_htab): New hash table.
3164	(objc_types_compatible_p, objc_comptypes): Remove functions.
3165	(synth_module_prologue): Do not initialize 'unused_list'.
3166	(objc_get_class_reference): Fix ObjC++ impedance mismatches.
3167	(objc_declare_alias): Implement as a typedef.
3168	(objc_substitute_decl, objc_gimplify_expr): Reformat.
3169	(objc_get_class_ivars): Adjust call to get_class_ivars().
3170	(next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
3171	build_ivar_reference, get_super_receiver): Call
3172	objc_build_component_ref() instead of build_component_ref().
3173	(objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
3174	objc_comptypes().
3175	(build_private_template): Call objc_build_struct() instead of
3176	start_struct() and finish_struct().
3177	(hash_init): Initialize volatilized_htab.
3178	(objc_is_public): Adjust calls to objc_get_ivars(); adjust
3179	ObjC++ impedance mismatches.
3180	(encode_aggregate_within): Streamline by calling
3181	encode_aggregate_fields().
3182	* objc-act.h (objc_types_compatible_p): Remove prototype.
3183	(OCTI_UNUSED_LIST, unused_list): Remove slot.
3184	* objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
3185
31862005-05-18  Geoffrey Keating  <geoffk@apple.com>
3187
3188	* Make-lang.in (cc1obj-dummy): New.
3189	(cc1obj-checksum.c): New.
3190	(cc1obj-checksum.o): New.
3191	(cc1obj): Add cc1obj-checksum.o.
3192
31932005-05-18  Mike Stump  <mrs@apple.com>
3194
3195	PR objc/21641
3196	* objc-act.c (struct interface_tuple): Mark it up for GC.
3197	(interface_htab): It is really a struct interface_tuple.
3198
31992005-05-17  Ziemowit Laski  <zlaski@apple.com>
3200	    Mike Stump  <mrs@apple.com>
3201
3202	Yet more Objective-C++...
3203
3204	* objc-act.c (objc_finish_try_stmt): Add return value.
3205	(objc_build_synchronized): Likewise.
3206
3207	* objc-act.c (objc_is_gcable_type): Add.
3208	(objc_substitute_decl): Add.
3209	(objc_build_ivar_assignment): Add.
3210	(objc_build_global_assignment): Add.
3211	(objc_build_strong_cast_assignment): Add.
3212	(objc_is_ivar_reference_p): Add.
3213	(objc_is_global_reference_p): Add.
3214	(objc_generate_write_barrier): Add.
3215	(objc_rewrite_function_call): Add.
3216	(objc_gimplify_expr): Add Objective-C++ support.
3217	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
3218	(SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
3219	(INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
3220	(DUP_TYPE_OBJC_INFO): Likewise.
3221	(struct imp_entry): Add field has_cxx_cdtors.
3222	(struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
3223	OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
3224	OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
3225	OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
3226	OCTI_ASSIGN_STRONGCAST_DECL.
3227	(umsg_fast_decl): Add.
3228	(objc_assign_ivar_decl): Add.
3229	(objc_assign_ivar_fast_decl): Add.
3230	(objc_assign_global_decl): Add.
3231	(objc_assign_strong_cast_decl): Add.
3232	(objc_method_list_ptr): Add.
3233	(objc_method_proto_list_ptr): Add.
3234	(objc_ivar_list_ptr): Add.
3235
3236	* objc-act.c (should_call_super_dealloc): Add.
3237	(OBJC_VERSION): Bump to 6.
3238	(objc_is_gcable_type): Add.
3239	(objc_substitute_decl): Add.
3240	(objc_build_ivar_assignment): Add.
3241	(objc_build_global_assignment): Add.
3242	(objc_build_strong_cast_assignment): Add.
3243	(objc_is_gcable_p): Add.
3244	(objc_is_ivar_reference_p): Add.
3245	(objc_is_global_reference_p): Add.
3246	(generate_shared_structures): Add flags parameter.
3247	(objc_generate_cxx_ctor_or_dtor): Add.
3248	(objc_generate_cxx_cdtors): Add.
3249	(add_class): Add name parameter.
3250	(objc_types_share_size_and_alignment): Add.
3251	(comp_proto_with_proto): Add strict parameter.
3252	(CLS_HAS_CXX_STRUCTORS): Add.
3253	(TAG_ASSIGNIVAR): Add.
3254	(TAG_ASSIGNGLOBAL): Add.
3255	(TAG_ASSIGNSTRONGCAST): Add.
3256	(TAG_MSGSEND_FAST): Add.
3257	(TAG_ASSIGNIVAR_FAST): Add.
3258	(TAG_CXX_CONSTRUCT): Add.
3259	(TAG_CXX_DESTRUCT): Add.
3260	(OBJC_LOOKUP_CLASS): Add.
3261	(OBJC_LOOKUP_NO_SUPER): Add.
3262	(objc_finish_file): Add pch support.
3263	(objc_finish_implementation): Add Objective-C++ support.
3264	(synth_module_prologue): Likewise.
3265	(synth_module_prologue): Add fast dispatching.
3266	(objc_get_class_reference): Add Objective-C++ support.
3267	(objc_generate_write_barrier): Likewise.
3268	(next_sjlj_build_enter_and_setjmp): Likewise.
3269	(objc_begin_try_stmt): Likewise.
3270	(build_next_objc_exception_stuff): Add fast ivar support.
3271	(build_private_template): Mark the record as used so debug
3272	information is generated.
3273	(build_protocol_template): Add Objective-C++ support.
3274	(objc_method_parm_type) Likewise.
3275	(objc_generate_cxx_ctor_or_dtor): Likewise.
3276	(objc_generate_cxx_cdtors): Likewise.
3277	(build_protocol_initializer): Likewise.
3278	(build_category_template): Likewise.
3279	(build_class_template): Likewise.
3280	(build_method_list_template): Likewise.
3281	(build_category_initializer): Likewise.
3282	(build_shared_structure_initializer): Likewise.
3283	(objc_finish_message_expr): Likewise.
3284	(build_objc_method_call): Add fast dispatch support.
3285	(lookup_method_static): Add support to end search at superclasses.
3286	(add_method_to_hash_list): Add strict parameter to
3287	comp_proto_with_proto.
3288	(objc_add_method): Likewise.
3289	(objc_add_method): Also set the interface_value.
3290	(add_instance_variable): Add Objective-C++ support.
3291	(objc_is_public): Likewise.
3292	(start_class): Likewise.
3293	(continue_class): Likewise.
3294	(encode_aggregate_within): Likewise.
3295	(start_method_def): Likewise.
3296	(objc_start_function): Clear current_function_returns_value
3297	and current_function_returns_null.
3298	(really_start_method): Add Objective-C++ support.
3299	(objc_finish_method_definition): Add warning for missing
3300	[super dealloc].
3301	(finish_objc): Add Objective-C++ support.
3302	(generate_objc_image_info): Likewise.
3303	(objc_lookup_ivar): Likewise.
3304	* objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
3305	(INIT_TYPE_OBJC_INFO): Likewise.
3306	(DUP_TYPE_OBJC_INFO): Likewise.
3307
33082005-04-23  DJ Delorie  <dj@redhat.com>
3309
3310	* objc-act.c: Adjust warning() callers.
3311
33122005-04-21  Roger Sayle  <roger@eyesopen.com>
3313
3314	* objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
3315	this field of an objc method decl.
3316	* objc-act.c (build_method_decl): Take an additional "ellipsis"
3317	argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
3318	(objc_build_method_signature): Accept additional "ellipsis"
3319	argument and pass it to build_method_decl.
3320	(get_arg_type_list, start_method_def, gen_method_decl): Use
3321	the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
3322	TREE_OVERFLOW field of a TREE_LIST node.
3323
33242005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
3325
3326	PR c/12913
3327	* objc-act.c (objc_start_function): Create stack level for context
3328	of identifiers with variably modified type.
3329
33302005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
3331
3332	PR c/772
3333	PR c/17913
3334	* objc-act.c (objc_start_function): Push context on
3335	label_context_stack.
3336
33372005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3338
3339	* objc-act.c (next_sjlj_build_enter_and_setjmp,
3340	next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
3341	Call c_common_truthvalue_conversion.
3342
33432005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
3344
3345	* Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
3346	objc/objc-parse.c, objc/objc-parse.y): Remove.
3347	(OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
3348	objc.distclean, objc.maintainer-clean): Update for new parser.
3349	* config-lang.in (gtfiles): Update for new parser.
3350
33512005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
3352
3353	* lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
3354	copyright.
3355
33562005-01-27  Matt Austern  <austern@apple.com>
3357
3358	* objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
3359	calling instantiate_pending_templates.
3360
33612005-01-26  Alexander Malmberg  <alexander@malmberg.org>
3362
3363	PR objc/18862
3364	* objc-act.c (build_selector_translation_table): Use
3365	input_location in the diagnostic for the GNU runtime or if
3366	TREE_PURPOSE (chain) is NULL.
3367
33682005-01-25  Alexander Malmberg  <alexander@malmberg.org>
3369
3370	PR objc/18408
3371	* objc-act.c (objc_types_compatible_p): New function.
3372	* objc-act.h (objc_types_compatible_p): Declare.
3373	* objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3374
33752005-01-16  Ziemowit Laski  <zlaski@apple.com>
3376
3377	* objc-act.c (objc_push_parm): Call c_type_promotes_to()
3378	via a lang-hook.
3379
33802005-01-15  Ziemowit Laski  <zlaski@apple.com>
3381
3382	PR objc/19321
3383	* objc-act.c (get_arg_type_list): Decay function arguments into
3384	pointers.
3385	(objc_push_parm): Likewise; bring PARM_DECL construction closer
3386	in line with what the C front-end does.
3387	(objc_get_parm_info): Call pushdecl() and finish_decl() on
3388	each PARM_DECL, like the C front-end does.
3389	(start_method_def): Remove redundant ARRAY_TYPE decay.
3390	(objc_start_function): Bring closer in line with what the
3391	C front-end does for functions.
3392
33932005-01-14  Mike Stump  <mrs@apple.com>
3394
3395	* lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
3396	that -fobjc-exceptions is accepted.
3397
33982004-12-30  Ziemowit Laski  <zlaski@apple.com>
3399
3400	PR objc/18971
3401	* objc-act.c (get_arg_type_list, start_method_def): Decay
3402	array arguments into pointers.
3403	(gen_type_name_0): Learn to pretty-print array types.
3404
34052004-12-15  Ziemowit Laski  <zlaski@apple.com>
3406
3407	* objc-act.c (build_private_template): Change to return 'void'; do
3408	not set ivar_context, uprivate_record or objc_instance_type.
3409	(objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
3410	retrieve protocol list from the pointee rather than the pointer itself;
3411	check TYPE_HAS_OBJC_INFO(...) precondition before accessing
3412	TYPE_OBJC_PROTOCOL_LIST.
3413	(objc_get_protocol_qualified_type): For types 'id' and 'Class',
3414	construct a variant of the pointee as well as the pointer, and
3415	store protocol information in the former.  When creating variants
3416	of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
3417	TYPE_OBJC_INTERFACE information.
3418	(objc_declare_class): If a TYPE_DECL is looked up, retrieve the
3419	underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
3420	for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
3421	holding an IDENTIFIER_NODE.
3422	(objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
3423	accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
3424	of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
3425	an IDENTIFIER_NODE (meaning a @class forward-declaration only).
3426	(objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
3427	lookup_interface().
3428	(continue_class): For @implementations, set ivar_context,
3429	uprivate_record and objc_instance_type, for @interfaces, call
3430	build_private_template().
3431	(encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
3432	TYPE_OBJC_INTERFACE.
3433	(objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
3434	accessing TYPE_OBJC_PROTOCOL_LIST.
3435	* objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
3436	DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
3437	SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
3438	(TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
3439	to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
3440	(TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
3441	TYPE_LANG_SPECIFIC(...).
3442	(TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
3443	(IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
3444	TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
3445	adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
3446	instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
3447
34482004-11-29  Joseph Myers  <joseph@codesourcery.com>
3449
3450	PR c/7544
3451	* Make-lang.in (objc/objc-act.o): Update dependencies.
3452	* objc-act.c (objc_finish_file): Call
3453	maybe_apply_pending_pragma_weaks if not OBJCPLUS.
3454
34552004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
3456
3457	PR objc/18406
3458	* obj-act.c (encode_type): 96bits doubles are encoded the
3459	same way as 64bit and 128bit doubles are.
3460
34612004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
3462
3463	* objc-act.c: Use %q, %< and %> for quoting in diagnostics.
3464
34652004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
3466
3467	PR objc/16546
3468	* objc-act.c (generate_method_descriptors): Remove setting
3469	the new decls' type to variable_length_type.
3470	(generate_ivar_lists): Likewise.
3471	(generate_dispatch_tables): Likewise.
3472
34732004-10-30  Ziemowit Laski  <zlaski@apple.com>
3474
3475	* objc-act.c (objc_lookup_ivar): The new OTHER parameter
3476	contains the result of the ID lookup by the C or C++
3477	front-end; in class methods, use OTHER if it exists;
3478	in instance methods, use OTHER only if it is locally
3479	declared.
3480
34812004-10-26  Ziemowit Laski  <zlaski@apple.com>
3482
3483	* objc-act.c (finish_class): Do not synthesize bogus
3484	'extern objc_object *_Foo;' declarations for @interface Foo.
3485
34862004-10-25  Ziemowit Laski  <zlaski@apple.com>
3487	    David Ayers  <d.ayers@inode.at>
3488
3489	* objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
3490	instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
3491	'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
3492	'Class <Protocol> == id' and 'Class <Protocol> == Class'.
3493	(objc_is_id): Add test for 'super'.
3494	(objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
3495	receivers; if class methods are not found in protocol lists, search
3496	for instance methods therein and warn if one is found.  Look in
3497	global hash tables for suitable method as a last resort when messaging
3498	'id <Proto>', 'Class <Proto>' and invalid receiver types.
3499	(objc_add_method): Insert instance methods listed in protocols into
3500	the global class method hash table.
3501	* objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
3502	IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
3503	addition to 'id <Proto>'.
3504
35052004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
3506
3507	PR objc/17923
3508	* objc-act.c (objc_build_string_object): Create a CONST_DECL
3509	for the NeXT runtime case.
3510
35112004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
3512
3513	* objc-act.c: Fix comment typos.
3514
35152004-09-24  Ziemowit Laski  <zlaski@apple.com>
3516
3517	* objc-act.c (init_objc_symtab, init_module_descriptor,
3518	build_shared_structure_initializer): When initializing 'long'
3519	fields, ensure that the initializer value is also 'long'.
3520
35212004-09-24  Zack Weinberg  <zack@codesourcery.com>
3522
3523	* objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
3524	throughout.
3525	(objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
3526	(build_selector_translation_table): Use %J in diagnostic
3527	instead of diddling input_line.  Fix spelling.
3528
35292004-09-21  Ziemowit Laski  <zlaski@apple.com>
3530
3531	* objc-act.c (objc_fold_objc_type_ref): New function.
3532	* objc-act.h (objc_fold_objc_type_ref): New prototype.
3533
35342004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
3535
3536	* objc-act.c (objc_start_function, really_start_method,
3537	objc_get_parm_info, start_method_def): Update to new arg_info
3538	structures.
3539
35402004-09-07  Ziemowit Laski  <zlaski@apple.com>
3541
3542	* Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
3543	objc/objc-act.h.
3544	(objc/objc-act.o): Depend on $(HASHTAB_H).
3545	* objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
3546	objcp-decl.h instead of c-tree.h.
3547	(build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
3548	error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
3549	build_protocol_template): Adjust prototypes.
3550	(build_module_initializer_routine, start_class, continue_class,
3551	finish_class, start_method_def, objc_start_function, start_protocol,
3552	build_method_decl, objc_add_method, add_instance_variable,
3553	build_ivar_reference, is_ivar, is_private, get_super_receiver,
3554	build_selector_table_decl, objc_push_parm, objc_get_parm_info,
3555	gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
3556	create_field_decl): New prototypes.
3557	(objc_expand_function_end, comp_method_with_proto, objc_expr_last,
3558	gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
3559	define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
3560	(TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
3561	(CLASS_TYPEDEF_NAME): New.
3562	(TAG_EXECCLASS): Change from a global variable to a #define.
3563	(TAG_RETURN_STRUCT): Delete.
3564	(TAG_GNUINIT): New, holds '__objc_gnu_init' name.
3565	(objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
3566	(string_descriptor): New struct.
3567	(string_htab): New hash table.
3568	(string_hash, string_eq): New prototypes.
3569	(generate_struct_by_value_array): Call create_field_decl() instead of
3570	create_builtin_decl().
3571	(objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
3572	In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
3573	(objc_finish_file): In ObjC++, call instantiate_pending_templates()
3574	and cp_finish_file().
3575	(define_decl, get_static_reference, get_protocol_reference,
3576	create_builtin_decl): Remove functions.
3577	(objc_start_class_interface, objc_start_category_interface,
3578	objc_start_protocol, objc_continue_interface, objc_finish_interface,
3579	objc_start_class_implementation, objc_start_category_implementation,
3580	objc_continue_implementation, objc_finish_implementation,
3581	objc_set_visibility, objc_set_method_type,
3582	objc_build_method_signature, objc_add_method_declaration,
3583	objc_start_method_definition, objc_add_instance_variable,
3584	objc_get_protocol_qualified_type, create_field_decl,
3585	start_var_decl, finish_var_decl): New functions.
3586	(setup_string_decl): Simplify since it is only called once.
3587	(synth_module_prologue): Call build_class_template(); predefine 'id'
3588	and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
3589	hooks for duration of function; fix GNU runtime messenger signatures
3590	to correspond to reality; forward-declare '__objc_exec_class' for the
3591	GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
3592	'extern "C" { ... }' wrappers around synthesized declarations; call
3593	build_protocol_template() and build_category_template().
3594	(string_hash, string_eq): New functions.
3595	(objc_build_string_object): Check metaclass correctness only once;
3596	store string literals in hash table.
3597	(objc_build_constructor): Do not convert initializer elements;
3598	adjust for ObjC++ impedance mismatch.
3599	(build_objc_symtab_template): Call create_field_decl() instead of
3600	create_builtin_decl().
3601	(init_objc_symtab): Add missing conversion to initializer element.
3602	(build_metadata_decl): Call start_var_decl() instead of define_decl().
3603	(generate_objc_symtab_decl): Do not call build_category_template();
3604	call start_var_decl() and finish_var_decl() instead of start_decl()
3605	and finish_decl().
3606	(build_module_descriptor): Call create_field_decl() instead of
3607	grokfield(); call start_var_decl() and finish_var_decl() instead of
3608	start_decl() and finish_decl(); always mark module descriptor as
3609	used; move GNU runtime-specific functionality to
3610	build_module_initializer_routine().
3611	(build_module_initializer_routine): New function, broken off of
3612	build_module_descriptor().
3613	(objc_static_init_needed_p, objc_generate_static_init_call): New
3614	functions.
3615	(generate_static_references, generate_strings,
3616	build_selector_translation_table, generate_descriptor_table,
3617	generate_ivars_list, generate_dispatch_table, generate_category): Call
3618	start_var_decl() and finish_var_decl() instead of start_decl() and
3619	finish_decl(); build a type directly instead of via groktypename().
3620	(build_selector_reference_decl, build_selector_table_decl,
3621	build_class_reference_decl, build_protocol_reference,
3622	generate_objc_image_info): Call start_var_decl() instead of
3623	build_decl().
3624	(build_selector_reference): For GNU runtime, do not call
3625	build_selector_reference_decl().
3626	(build_selector, build_typed_selector_reference): Always convert
3627	result to the selector type.
3628	(add_objc_string): Cast return value to 'char *'.
3629	(build_method_prototype_template, build_selector_template,
3630	build_method_template): Use actual selector type for fields
3631	pointing to selectors.
3632	(finish_objc): For GNU runtime, call
3633	build_module_initializer_routine() after build_module_descriptor().
3634	(generate_protocol_list, generate_shared_structures): Call
3635	start_var_decl() and finish_var_decl() instead of start_decl() and
3636	finish_decl(); build a type directly instead of via
3637	groktypename().
3638	(synth_id_with_class_suffix): Return a string.
3639	(get_arg_type_list): For instance methods, use the instance type for
3640	'self'; do not call groktypename_in_parm_context().
3641	(build_objc_string_decl): Squash redeclaration errors in ObjC++.
3642	(objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
3643	handle RECORD_TYPEs in ObjC as well as ObjC++.
3644	(objc_is_id): New function.
3645	(objc_is_object_ptr): Return the canonical type node.
3646	(objc_get_class_ivars): Simplify using get_class_ivars().
3647	(get_class_ivars): Remove second parameter; create a fresh copy
3648	of the ivar list for each call; do not check for existence of
3649	super class.
3650	(objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
3651	(objc_init_exceptions): When using SJLJ-style exceptions, require
3652	the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
3653	exceptions.
3654	(objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
3655	objc_object_type instead of objc_id_type.
3656	(objc_begin_catch_clause): Convert the incoming PARM_DECL into
3657	a VAR_DECL before placing it in the appropriate scope; do not
3658	call define_decl(); adjust call to c_begin_compound_stmt();
3659	use objc_object_type instead of objc_id_type.
3660	(build_next_objc_exception_stuff): Call create_field_decl() instead
3661	of create_builtin_decl(); construct type directly instead of calling
3662	groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
3663	(build_private_template): Adjust call to get_class_ivars(); build
3664	a type directly instead of via groktypename().
3665	(build_protocol_template, build_method_prototype_list_template,
3666	build_method_prototype_template, build_category_template,
3667	build_selector_template, build_class_template, build_super_template,
3668	build_ivar_template, build_ivar_list_template,
3669	build_method_list_template, build_method_template):
3670	Call create_field_decl() instead of grokfield().
3671	(objc_method_parm_type): Do not call groktypename().
3672	(generate_descriptor_table): Call start_var_decl() and
3673	finish_var_decl() instead of start_decl() and finish_decl().
3674	(generate_method_descriptors, build_protocol_initializer,
3675	generate_dispatch_tables, build_category_initializer,
3676	build_shared_structure_initializer): Do not call groktypename().
3677	(generate_protocols): Call start_var_decl() and finish_var_decl()
3678	instead of start_decl() and finish_decl(); do not call groktypename().
3679	(error_with_ivar): Remove last parameter.
3680	(check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
3681	to CLASS_IVARS lists; adjust calls to error_with_ivar().
3682	(generate_ivar_lists): Convert one of the initializer elements; do
3683	not call groktypename().
3684	(get_arg_type_list, start_method_def, gen_method_def): Account for
3685	new representation of variable arguments and '...' in Objective-C
3686	methods; add Objective-C++ impedance matching code.
3687	(is_objc_type_qualifier): Remove function.
3688	(adjust_type_for_id_default): Simplify; there is no longer a need to
3689	wade through declspecs.
3690	(lookup_interface, start_class, continue_class,
3691	finish_class, start_method_def, start_protocol, build_method_decl,
3692	objc_add_method, add_instance_variable, build_ivar_reference,
3693	is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
3694	Make into static functions.
3695	(receiver_is_class_object): Use new IS_CLASS() macro.
3696	(objc_build_message_expr): Tweak ObjC++ message argument handling;
3697	call objc_finish_message_expr() instead of finish_message_expr().
3698	(finish_message_expr): Rename to objc_finish_message_expr(); use
3699	OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
3700	call gen_type_name() instead of gen_declaration(); call objc_is_id()
3701	instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
3702	calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
3703	(build_objc_method_call, warn_with_method): Do not call groktypename().
3704	(build_ivar_reference): Call convert() instead of clobbering in a
3705	type.
3706	(hash_init): Initialize string_htab hash table.
3707	(add_instance_variable): Simplify parameter list; do not call grokfield();
3708	do not populate CLASS_IVARS list.
3709	(start_class): Check for the existence of super class, if one was specified.
3710	(continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
3711	call build_class_template(); adjust call to get_class_ivars(); call
3712	build_decl(), pushdecl() and finish_decl() instead of define_decl().
3713	(finish_class): Call build_decl(), pushdecl() and finish_decl() instead
3714	of define_decl().
3715	(add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
3716	(start_protocol): Do not call build_protocol_template(); use
3717	PROTOCOL_BINFO_ELTS for the tree vector size.
3718	(encode_type_qualifiers): Do not handle the 'const' qualifier here.
3719	(encode_pointer): Encode 'const char *' as 'r*', for backwards
3720	compatibility.
3721	(encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
3722	(encode_type): Handle the 'const' qualifier here.
3723	(objc_parmlist): New global variable, sued by objc_push_parm and
3724	objc_get_parm_info().
3725	(objc_push_parm, objc_get_parm_info): New functions.
3726	(objc_expr_last): Remove function.
3727	(synth_self_and_ucmd_args): For instance methods, use the instance
3728	type for 'self'; call objc_push_parm() instead of push_parm_decl().
3729	(start_method_def): Do not call push_scope(), declare_parm_level(),
3730	pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
3731	just use objc_push_parm() and objc_get_parm_info().
3732	(comp_method_with_proto): Remove function.
3733	(objc_types_are_equivalent): Strip away indirections before comparing
3734	underlying types.
3735	(comp_proto_with_proto): Do not call groktypename(); types are no
3736	longer in raw declspec format.
3737	(objc_start_function): New function.
3738	(really_start_method): Call comp_proto_with_proto() instead of
3739	comp_method_with_proto(); call objc_start_function() instead of
3740	hand-crafting a function declarator.
3741	(continue_method_def, objc_expand_function_end): Remove functions.
3742	(get_super_receiver): Call objc_get_current_scope() instead of
3743	get_current_scope(); reference 'super_class' field (instead of
3744	'class').
3745	(finish_method_def): Rename to objc_finish_method_definition() and
3746	add a function decl parameter; move method encoding call from
3747	objc_expand_function_end().
3748	(is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
3749	gen_declaration_1): Remove functions.
3750	(tmpbuf, RAW_DECLSPEC): Remove.
3751	(gen_declaration): Remove second parameter; simplify to deal
3752	with TYPE_P nodes instead of raw declspecs.
3753	(gen_type_name, gen_type_name_0): New functions.
3754	(gen_method_decl): Remove second parameter; call gen_type_name()
3755	instead of gen_declaration_1().
3756	(dump_interface): Adjust calls to gen_declaration() and
3757	gen_method_decl(); do not allocate a separate string buffer.
3758	(init_objc): Allocate a larger string buffer to accommodate
3759	dump_interface(); adjust call to build_module_descriptor();
3760	add call to build_module_initializer_routine() for the GNU
3761	runtime.
3762	(generate_classref_translation_entry): Do not call start_decl(); call
3763	finish_var_decl() instead of finish_decl(); call convert() instead of
3764	build_c_cast().
3765	* objc-act.h (CLASS_OWN_IVARS): Remove accessor.
3766	(CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
3767	gone.
3768	(OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
3769	(OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
3770	(OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
3771	objc_object_type and objc_object_name, respectively.
3772	(OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
3773	objc_class_name): New.
3774	(IS_CLASS): New macro.
3775	(IS_ID, IS_SUPER): Robustify.
3776	(OCTI_EXECCLASS_DECL, execclass_decl): New.
3777	(finish_file, start_class, continue_class, finish_class,
3778	start_method_def, continue_method_def, finish_method_def,
3779	start_protocol, finish_protocol, objc_build_throw_stmt,
3780	objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
3781	objc_build_synchronized_epilogue, objc_build_try_prologue,
3782	objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
3783	objc_build_finally_prologue, objc_build_finally_epilogue,
3784	is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
3785	get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
3786	get_class_reference, get_static_reference, get_object_reference,
3787	build_message_expr, finish_message_expr, build_selector_expr,
3788	build_ivar_reference, build_keyword_decl, build_method_decl,
3789	build_protocol_expr, build_objc_string_object, objc_declare_alias,
3790	objc_declare_class, objc_declare_protocols, objc_comptypes,
3791	objc_check_decl, build_encode_expr): Remove prototypes.
3792	(imp_count, cat_count): Make GGC-aware.
3793	(OBJC_SET_TYPE_NAME): New macro.
3794
37952004-09-03  Ziemowit Laski  <zlaski@apple.com>
3796
3797	* config-lang.in: Update copyright notice.
3798	(lang_requires): Indicate that ObjC requires C to be built first.
3799
38002004-09-01  Ziemowit Laski  <zlaski@apple.com>
3801
3802	* objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
3803	TYPE_NAME.
3804	(build_objc_string_object): Rename to objc_build_string_object().
3805	(get_class_reference): Rename to objc_get_class_reference().
3806	(get_class_ivars_from_name): Rename to objc_get_class_ivars().
3807	(next_sjlj_build_catch_list, get_super_receiver): Call
3808	objc_get_class_reference() instead of get_class_reference().
3809	(build_keyword_decl): Rename to objc_build_keyword_decl().
3810	(build_message_expr): Rename to objc_build_message_expr().
3811	(build_protocol_expr): Rename to objc_build_protocol_expr().
3812	(build_selector_expr): Rename to objc_build_selector_expr().
3813	(build_encode_expr): Rename to objc_build_encode_expr().
3814	* objc-act.h (get_class_ivars_from_name): Rename prototype to
3815	objc_get_class_ivars().
3816	(get_class_reference): Rename prototype to objc_get_class_reference().
3817	(build_message_expr): Rename prototype to objc_build_message_expr().
3818	(build_selector_expr): Rename prototype to objc_build_selector_expr().
3819	(build_keyword_decl): Rename prototype to objc_build_keyword_decl().
3820	(build_protocol_expr): Rename prototype to objc_build_prototype_expr().
3821	(build_objc_string_object): Rename prototype to
3822	objc_build_string_object().
3823
38242004-09-01  Ziemowit Laski  <zlaski@apple.com>
3825
3826	* objc-act.c (lookup_interface): Make function 'static' and add a
3827	local prototype.
3828	(objc_check_decl, get_class_reference, objc_declare_alias,
3829	objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
3830	instead of is_class_name().
3831	(get_super_receiver, objc_clear_super_receiver): Call
3832	objc_get_current_scope() instead of get_current_scope().
3833	(is_class_name): Rename to objc_is_class_name.
3834	(lookup_objc_ivar): Rename to objc_lookup_ivar.
3835
38362004-08-28  Ziemowit Laski  <zlaski@apple.com>
3837
3838	* objc-act.c (objc_is_reserved_word): New function.
3839
38402004-08-15  Ziemowit Laski  <zlaski@apple.com>
3841
3842	* Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
3843	$(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
3844	(objc/objc-parse.o): Do not depend on gtype-objc.h.
3845	* objc-act.c: Do not include gtype-objc.h.
3846	(finish_file): Rename to objc_finish_file().
3847	* objc-act.h (finish_file): Update copyright notice; remove prototype.
3848	* objc-lang.c: Update copyright notice; include diagnostic.h,
3849	c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
3850	toplev.h.
3851	(finish_file): New hook routine.
3852	(LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
3853	LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
3854	LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
3855	LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
3856	LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
3857	LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
3858	LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
3859	LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
3860	LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
3861	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
3862	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
3863	LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3864	LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3865	LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
3866	LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
3867	LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
3868	LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
3869	LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
3870	LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
3871	LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
3872	LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
3873	LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
3874	LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
3875	LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
3876	Move to c-objc-common.h.
3877
3878
3879Copyright (C) 2004-2020 Free Software Foundation, Inc.
3880
3881Copying and distribution of this file, with or without modification,
3882are permitted in any medium without royalty provided the copyright
3883notice and this notice are preserved.
3884