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