Daily bump.
[official-gcc.git] / gcc / objc / ChangeLog
blob811bb49de7c7c5108a0a796837bd62ed9ee2002c
1 2021-12-05  Iain Sandoe  <iain@sandoe.co.uk>
3         * objc-next-metadata-tags.h (objc_rt_trees): Declare here.
4         * objc-next-runtime-abi-01.c: Remove from here.
5         * objc-next-runtime-abi-02.c: Likewise.
6         * objc-runtime-shared-support.c: Reorder headers, provide
7         a GTY declaration the definition of objc_rt_trees.
9 2021-11-30  Richard Biener  <rguenther@suse.de>
11         * objc-act.c (objc_build_setter_call): Remove unreachable
12         return.
14 2021-11-29  Eric Gallager  <egallager@gcc.gnu.org>
16         PR other/103021
17         * Make-lang.in: Use ETAGS variable in TAGS target.
19 2021-10-22  Eric Gallager  <egallager@gcc.gnu.org>
21         PR other/102663
22         * Make-lang.in: Add dummy objc.install-dvi target.
24 2021-10-08  Martin Liska  <mliska@suse.cz>
26         * objc-next-runtime-abi-01.c: Add missing include.
27         * objc-next-runtime-abi-02.c: Likewise.
29 2021-10-08  Martin Liska  <mliska@suse.cz>
31         * objc-next-runtime-abi-01.c: Use new macro
32         OPTION_SET_P.
33         * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Likewise.
35 2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>
37         PR objc/101718
38         * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call):
39         Revise for cases where scalar objects use an sret parameter.
40         (next_runtime_abi_02_build_objc_method_call): Likwise.
42 2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>
44         * objc-act.c (objc_add_property_declaration): Register unavailable
45         attribute.
46         (maybe_make_artificial_property_decl): Set available.
47         (objc_maybe_build_component_ref): Generalise to the method prototype
48         to count availability.
49         (objc_build_class_component_ref): Likewise.
50         (build_private_template): Likewise.
51         (objc_decl_method_attributes): Handle unavailable attribute.
52         (lookup_method_in_hash_lists): Amend comments.
53         (objc_finish_message_expr): Handle unavailability in addition to
54         deprecation.
55         (start_class): Likewise.
56         (finish_class): Likewise.
57         (lookup_protocol): Likewise.
58         (objc_declare_protocol): Likewise.
59         (start_protocol): Register unavailable attribute.
60         (really_start_method): Likewise.
61         (objc_gimplify_property_ref): Emit error on encountering an
62         unavailable entity (and a warning for a deprecated one).
64 2021-08-19  Iain Sandoe  <iain@sandoe.co.uk>
66         * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init):
67         Default receiver nilchecks on.
69 2021-08-18  Iain Sandoe  <iain@sandoe.co.uk>
70             Matt Jacobson   <mhjacobson@me.com>
72         PR objc/101666
73         * objc-act.c (objc_build_constructor): Handle empty constructor
74         lists.
75         * objc-next-runtime-abi-02.c (build_v2_objc_method_fixup_call):
76         Handle nil receivers.
77         (build_v2_build_objc_method_call): Likewise.
79 2021-08-17  Matt Jacobson  <mhjacobson@me.com>
81         * objc-next-runtime-abi-02.c
82         (objc_next_runtime_abi_02_init): Warn about and reset
83         flag_objc_sjlj_exceptions regardless of flag_objc_exceptions.
84         (next_runtime_02_initialize): Use a checking assert that
85         flag_objc_sjlj_exceptions is off.
87 2021-06-28  Martin Sebor  <msebor@redhat.com>
89         * objc-act.c (objc_maybe_build_modify_expr): Replace direct uses
90         of TREE_NO_WARNING with warning_suppressed_p, and suppress_warning.
91         (objc_build_incr_expr_for_property_ref): Same.
92         (objc_build_struct): Same.
93         (synth_module_prologue): Same.
94         * objc-gnu-runtime-abi-01.c (gnu_runtime_01_initialize): Same.
95         * objc-next-runtime-abi-01.c (next_runtime_01_initialize): Same.
96         * objc-next-runtime-abi-02.c (next_runtime_02_initialize): Same.
98 2021-06-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
100         * Make-lang.in (cc1-obj-checksum.c): Check previous
101         stage checksum exists.
103 2021-06-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>
105         * Make-lang.in (cc1obj-checksum.c): For stage-final re-use
106         the checksum from the previous stage.
108 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
110         * objc-act.c (synth_module_prologue): Use uint32_t instead of enum
111         debug_info_type.
113 2021-05-10  Martin Liska  <mliska@suse.cz>
115         * objc-act.c (objc_string_ref_type_p): Use startswith
116         function instead of strncmp.
117         * objc-encoding.c (encode_type): Likewise.
118         * objc-next-runtime-abi-02.c (has_load_impl): Likewise.
120 2020-11-20  Jakub Jelinek  <jakub@redhat.com>
122         PR other/97911
123         * Make-lang.in (objc.serial): Change from goal to a variable.
124         (.PHONY): Drop objc.serial and objc.prev.
125         (cc1obj$(exeext)): Depend on $(objc.serial) rather than objc.serial.
127 2020-11-18  Jakub Jelinek  <jakub@redhat.com>
129         * Make-lang.in (objc.serial): New goal.
130         (.PHONY): Add objc.serial objc.prev.
131         (cc1obj$(exeext)): Depend on objc.prev.  Call LINK_PROGRESS.
133 2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>
135         PR objc/90707
136         * objc-act.c (objc_prop_attr_kind_for_rid): Handle nullability.
137         (objc_add_property_declaration): Handle nullability attributes.
138         Check that these are applicable to the property type.
139         * objc-act.h (enum objc_property_nullability): New.
141 2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>
143         PR objc/77404
144         * objc-act.c (objc_start_class_interface): Accept the location
145         of the class name, use it in existing diagnostic.
146         (start_class): Accept obj_root_class type attributes.  Warn when
147         the interface for an implementation does not contain a super
148         class (unless the diagnostic is suppressed by the the command
149         line flag or the objc_root_class type attribute).
151 2020-11-08  Iain Sandoe  <iain@sandoe.co.uk>
153         * objc-act.c (objc_prop_attr_kind_for_rid): Handle class
154         attribute.
155         (objc_add_property_declaration): Likewise.
156         * objc-act.h (PROPERTY_CLASS): Record class attribute state.
158 2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>
160         * objc-act.c (objc_prop_attr_kind_for_rid): Handle
161         RID_PROPATOMIC.
163 2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>
165         * objc-act.c (objc_compare_types): Handle NSObject type
166         attributes.
167         (objc_type_valid_for_messaging): Likewise.
169 2020-11-06  Iain Sandoe  <iain@sandoe.co.uk>
171         * objc-act.c (start_class): Accept visibility attributes
172         without warning.
174 2020-11-06  Iain Sandoe  <iain@sandoe.co.uk>
176         * objc-act.c (objc_prop_attr_kind_for_rid): New.
177         (objc_add_property_declaration): Adjust to consume the
178         parser output using a vector of parsed attributes.
180 2020-11-04  Iain Sandoe  <iain@sandoe.co.uk>
182         * objc-act.c (objc_non_constant_expr_p): New.
184 2020-11-01  Iain Sandoe  <iain@sandoe.co.uk>
186         * objc-act.c (synth_module_prologue): Get the SEL identifier.
187         * objc-act.h (enum objc_tree_index): Add OCTI_SEL_NAME.
188         (objc_selector_name): New.
189         (SEL_TYPEDEF_NAME): New.
190         * objc-gnu-runtime-abi-01.c
191         (gnu_runtime_01_initialize): Initialize SEL typedef.
192         * objc-next-runtime-abi-01.c
193         (next_runtime_01_initialize): Likewise.
194         * objc-next-runtime-abi-02.c
196 2020-10-11  Iain Sandoe  <iain@sandoe.co.uk>
198         * objc-next-runtime-abi-02.c
199         (create_global_decl): Update to allow the caller to
200         specify declaration or definition.
201         (create_hidden_decl): Likewise.
202         (next_runtime_abi_02_protocol_decl): Make the symbol
203         weak and hidden for later OS runtime versions.
204         (build_v2_protocol_list_address_table): Likewise.
206 2020-10-11  Iain Sandoe  <iain@sandoe.co.uk>
208         * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): Test
209         DECL_C_BIT_FIELD to detect that an ivar is a bitfield.
211 2020-10-11  Iain Sandoe  <iain@sandoe.co.uk>
213         * objc-next-runtime-abi-02.c (FIXUP_NEEDED): Rename ...
214         (USE_FIXUP_BEFORE): ... to this.
215         (next_runtime_02_initialize): Likewise.
216         (next_runtime_abi_02_get_arg_type_list_base): Likewise.
217         (next_runtime_abi_02_build_objc_method_call): Likewise.
219 2020-10-11  Iain Sandoe  <iain@sandoe.co.uk>
221         * objc-next-runtime-abi-02.c (TAG_MSGSENDSUPER): Revised
222         spelling.
223         (TAG_MSGSENDID): Likewise.
224         (TAG_MSGSENDSUPER_STRET): Likewise.
225         (TAG_MSGSENDID_STRET): Likewise.
226         (FIXUP_NEEDED): Likewise.
227         (TAG_FIXUP): New.
228         (next_runtime_02_initialize): Adjust message calls to use
229         fixup variants only when required.
230         (next_runtime_abi_02_get_arg_type_list_base): Correct
231         indent.
232         (build_v2_build_objc_method_call): New.
233         (build_v2_objc_method_fixup_call): Split out from ...
234         (next_runtime_abi_02_build_objc_method_call): ... here.
235         Arrange to adjust the call on the basis of the target
236         runtime.
238 2020-10-11  Iain Sandoe  <iain@sandoe.co.uk>
240         * objc-runtime-shared-support.c (start_var_decl): Make the
241         decl_assembler_name follow the metadata name for C++ on NeXT
242         runtime platforms.
244 2020-10-11  Iain Sandoe  <iain@sandoe.co.uk>
246         * objc-next-runtime-abi-02.c
247         (next_runtime_abi_02_category_decl): Adjust category
248         superclass name ordering.
250 2020-10-11  Iain Sandoe  <iain@sandoe.co.uk>
252         * objc-next-runtime-abi-02.c (build_v2_super_template): Add new
253         fields to the template.
254         (build_v2_protocol_template): Build new field entries.
255         (generate_v2_meth_descriptor_table): Adjust to allow recording all
256         method types.
257         (generate_v2_meth_type_list): New.
258         (build_v2_protocol_initializer): Initialize the additional fields.
259         (generate_v2_protocols): Record method types for all entries and
260         generate the additional method type table.
262 2020-10-10  Iain Sandoe  <iain@sandoe.co.uk>
264         * objc-next-runtime-abi-02.c
265         (objc_get_superclass_ref_decl): Split this code out.
266         (next_runtime_abi_02_get_class_super_ref): Compute
267         super refs using the objc_get_superclass_ref_decl().
268         (next_runtime_abi_02_get_category_super_ref): Likewise.
270 2020-10-10  Iain Sandoe  <iain@sandoe.co.uk>
272         * objc-next-runtime-abi-02.c
273         (next_runtime_abi_02_init_metadata_attributes): Make protocol
274         refs a distinct section.
276 2020-10-10  Iain Sandoe  <iain@sandoe.co.uk>
278         * objc-next-runtime-abi-02.c
279         (next_runtime_abi_02_init_metadata_attributes): Attach metadata
280         for the special string sections to class, method and method type
281         string sections.
283 2020-10-10  Iain Sandoe  <iain@sandoe.co.uk>
285         * objc-gnu-runtime-abi-01.c
286         (build_shared_structure_initializer): Remove references to
287         the NeXT runtime.
288         (generate_static_references): Likewise.
290 2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>
292         * objc-act.c (objc_start_method_definition): Update to reflect
293         changes to break/continue state bookkeeping in C front end.
295 2020-09-17  Patrick Palka  <ppalka@redhat.com>
297         PR c/80076
298         * objc-gnu-runtime-abi-01.c
299         (gnu_runtime_abi_01_get_class_super_ref): Reduce indentation of
300         misleadingly indented return statements.
301         * objc-next-runtime-abi-01.c
302         (next_runtime_abi_01_get_class_super_ref): Likewise.
304 2020-01-01  Jakub Jelinek  <jakub@redhat.com>
306         Update copyright years.
308 2019-10-10  Iain Sandoe  <iain@sandoe.co.uk>
310         * objc-next-metadata-tags.h (OCTI_RT_META_IVAR_REF): New.
311         (meta_ivar_ref): New.
312         * objc-next-runtime-abi-02.c
313         (next_runtime_abi_02_init_metadata_attributes): Create the
314         IVAR ref metadata identifier.
315         (ivar_offset_ref): Tag IVAR refs with specific metadata.
317 2019-06-05  Martin Sebor  <msebor@redhat.com>
319         * objc-act.c (objc_build_setter_call): Adjust quoting and hyphenation.
320         * objc-encoding.c (encode_gnu_bitfield): Same.
322 2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
324         * objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New.
325         (objc_global_trees): Add instance type and name.
326         (INSTANCE_TYPEDEF_NAME): New.
327         * objc-act.c (synth_module_prologue): Build decls for
328         objc_instancetype_type and objc_instancetype_name.
330 2019-05-16  Martin Sebor  <msebor@redhat.com>
332         * objc-act.c (objc_begin_catch_clause): Quote keywords and options
333         in diagnostics.
334         (objc_build_throw_stmt): Same.
335         (objc_finish_message_expr): Same.
336         (get_super_receiver): Same.
337         * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell
338         out "less than" in English./
339         * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell
340         out "greater" in English.
342 2019-05-10  Jakub Jelinek  <jakub@redhat.com>
344         PR pch/90326
345         * config-lang.in (gtfiles): Add c-family/c-format.c.
347 2019-04-05  Martin Liska  <mliska@suse.cz>
349         PR translation/89936
350         * objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in
351         order to wrap keywords or arguments.
352         (objc_add_synthesize_declaration_for_property): Likewise.
354 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
356         PR other/16615
358         * objc-act.c: Mechanically replace "can not" with "cannot".
360 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
362         Update copyright years.
364 2018-12-19  David Malcolm  <dmalcolm@redhat.com>
366         PR c++/43064
367         PR c++/43486
368         * objc-act.c (objc_maybe_build_component_ref): Strip any location
369         wrapper before checking for UOBJC_SUPER_decl and self_decl.
370         (objc_finish_message_expr): Strip any location wrapper.
371         (gen_declaration): Strip location wrappers from "w".
373 2018-10-17  David Malcolm  <dmalcolm@redhat.com>
375         * Make-lang.in (selftest-objc): New.
377 2018-04-20  Martin Liska  <mliska@suse.cz>
379         PR objc/85476
380         * objc-act.c (finish_class): Do not overflow string buffer.
382 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
384         Update copyright years.
386 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
388         * objc-next-runtime-abi-01.c (generate_dispatch_table): Use ; instead
389         of ;;.
391 2017-11-10  Martin Sebor  <msebor@redhat.com>
393         PR c/81117
394         * objc-encoding.c (encode_type): Use memcpy instead of strncpy.
396 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
398         * objc-gnu-runtime-abi-01.c (objc_gnu_runtime_abi_01_init): Use
399         UNKNOWN_LOCATION rather than 0.
401 2017-10-17  Nathan Sidwell  <nathan@acm.org>
403         * objc-act.c (objc_common_tree_size): Return size of TYPE nodes.
405 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
407         * objc-act.c (objc_decl_method_attributes): Use wi::to_wide when
408         operating on trees as wide_ints.
410 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
412         * objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at
413         DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.
415 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
416             Alan Hayward  <alan.hayward@arm.com>
417             David Sherwood  <david.sherwood@arm.com>
419         * objc-encoding.c (encode_type): Use SCALAR_INT_TYPE_MODE.
421 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
422             Alan Hayward  <alan.hayward@arm.com>
423             David Sherwood  <david.sherwood@arm.com>
425         * objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE
426         instead of TYPE_MODE.
428 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
429             Alan Hayward  <alan.hayward@arm.com>
430             David Sherwood  <david.sherwood@arm.com>
432         * objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in
433         case statements.
435 2017-08-09  Marek Polacek  <polacek@redhat.com>
437         PR c/81417
438         * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update
439         a call to build_conditional_expr.
441 2017-08-08  Martin Liska  <mliska@suse.cz>
443         * objc-gnu-runtime-abi-01.c: Include header files.
444         * objc-next-runtime-abi-01.c: Likewise.
445         * objc-next-runtime-abi-02.c: Likewise.
447 2017-07-20  Nathan Sidwell  <nathan@acm.org>
449         Remove TYPE_METHODS.
450         * objc-runtime-shared-support.c (build_ivar_list_initializer):
451         Don't presume first item is a FIELD_DECL.
453 2017-07-19  Nathan Sidwell  <nathan@acm.org>
455         * objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use
456         TYPE_{MIN,MAX}_VALUE_RAW.
458 2017-05-16  Sylvestre Ledru  <sylvestre@debian.org>
460         * objc-runtime-shared-support.c (build_module_descriptor):
461         Remove unnecessary conditional when building instance of
462         objc_module. CID 1406758
464 2017-05-09  Nathan Sidwell  <nathan@acm.org>
466         * objc-gnu-runtime-abi-01.c (objc_add_static_instance): Use
467         pushdecl lang_hook.
469 2017-05-04  Martin Sebor  <msebor@redhat.com>
471         PR translation/80280
472         * objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing
473         quoting to directives.
474         * objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto.
475         * objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto.
477 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
479         Update copyright years.
481 2016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
482             Richard Biener  <rguenther@suse.de>
484         * config-lang.in (gtfiles): Add c/c-parser.h.
486 2016-09-27  Jakub Jelinek  <jakub@redhat.com>
488         * objc-act.c (continue_class): Remove break after return.
489         (objc_maybe_printable_name): Likewise.
491 2016-08-12  Marek Polacek  <polacek@redhat.com>
493         PR c/7652
494         * objc-encoding.c (encode_type): Add FALLTHRU.
496 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
498         * objc-act.c (objc_build_component_ref): Update call
499         to build_component_ref for added param, passing UNKNOWN_LOCATION.
501 2016-04-18  Michael Matz  <matz@suse.de>
503         * objc-act.c (objc_build_struct): Use SET_DECL_ALIGN.
505 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
507         * objc-act.c: Spelling fixes - behaviour -> behavior and
508         neighbour -> neighbor.
509         * objc-map.h: Likewise.
511 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
513         Update copyright years.
515 2015-11-11  Andrew MacLeod  <amacleod@redhat.com>
517         * objc-act.c: Remove unused header files.
518         * objc-encoding.c: Likewise.
519         * objc-gnu-runtime-abi-01.c: Likewise.
520         * objc-lang.c: Likewise.
521         * objc-map.c: Likewise.
522         * objc-next-runtime-abi-01.c: Likewise.
523         * objc-next-runtime-abi-02.c: Likewise.
524         * objc-runtime-shared-support.c: Likewise.
526 2015-11-09  Alan Modra  <amodra@gmail.com>
528         * objc-encoding.c (encode_aggregate_within): Cast obstack_next_free
529         return value.
531 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
533         * objc-lang.c: Reorder #include's and remove duplicates.
534         * objc-map.c: Likewise.
536 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
538         * objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h:
539         Remove useless typedefs.
541 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
543         * objc-map.h: Fix double word typos.
545 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
547         * objc-act.c: Adjust includes.
548         * objc-encoding.c: Likewise.
549         * objc-gnu-runtime-abi-01.c: Likewise.
550         * objc-lang.c: Likewise.
551         * objc-map.c: Likewise.
552         * objc-next-runtime-abi-01.c: Likewise.
553         * objc-next-runtime-abi-02.c: Likewise.
554         * objc-runtime-shared-support.c: Likewise.
556 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
558         * objc-act.c: Remove ipa-ref.h and plugin-api.h from include list.
560 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
562         * objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash
563         rather than ggc_hasher.
565 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
567         * objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather
568         than typed_noop_remove.  Remove redudant typedefs.
570 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
572         * objc-act.c: Do not include input.h, line-map.h or is-a.h.
573         * objc-encoding.c: Likewise.
574         * objc-gnu-runtime-abi-01.c: Likewise.
575         * objc-lang.c: Likewise.
576         * objc-map.c: Likewise.
577         * objc-next-runtime-abi-01.c: Likewise.
578         * objc-next-runtime-abi-02.c: Likewise.
579         * objc-runtime-shared-support.c: Likewise.
581 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
583         * objc-act.c : Adjust include files.
584         * objc-encoding.c : Likewise.
585         * objc-gnu-runtime-abi-01.c : Likewise.
586         * objc-lang.c : Likewise.
587         * objc-map.c : Likewise.
588         * objc-next-runtime-abi-01.c : Likewise.
589         * objc-next-runtime-abi-02.c : Likewise.
590         * objc-runtime-shared-support.c : Likewise.
592 2015-06-08  Aldy Hernandez  <aldyh@redhat.com>
594         * objc-runtime-shared-support.c (build_module_descriptor): Set
595         TREE_USED on UOBJC_MODULES_decl.
597 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
599         * objc-act.c (objc_write_global_declarations): Adjust comment.
600         * objc-gnu-runtime-abi-01.c (build_selector_table_decl): Set
601         TREE_USED bit.
603 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
605         * objc-act.c: Adjust includes for restructured coretypes.h.
606         * objc-encoding.c: Likewise.
607         * objc-gnu-runtime-abi-01.c: Likewise.
608         * objc-lang.c: Likewise.
609         * objc-map.c: Likewise.
610         * objc-next-runtime-abi-01.c: Likewise.
611         * objc-next-runtime-abi-02.c: Likewise.
612         * objc-runtime-shared-support.c: Likewise.
614 2015-04-27  Jim Wilson  <jim.wilson@linaro.org>
616         * Make-lang.in (objc.mostlyclean): Remove cc1obj.
618 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
620         * objc-act.c: Adjust for hash_table changes.
622 2015-01-09  Michael Collison  <michael.collison@linaro.org>
624         * objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
625         input.h, alias.h, symtab.h, options, fold-const.h,
626         wide-int.h, and inchash.h due to flattening of tree.h.
627         * objc-encoding.c: Ditto.
628         * objc-gnu-runtime-abi-01.c: Ditto.
629         * objc-lang.c: Ditto.
630         * objc-map.c: Ditto.
631         * objc-next-runtime-abi-01.c: Ditto.
632         * objc-next-runtime-abi-02.c: Ditto.
633         * objc-runtime-shared-support.c: Ditto.
635 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
637         Update copyright years.
639 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
641         * objc-act.c: Adjust include files.
643 2014-10-22  Alan Modra  <amodra@gmail.com>
645         * objc-encoding.c (encode_array): Cast result of obstack_base.
646         (encode_type): Likewise.
648 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
650         * objc-act.c: Adjust include files.
652 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
654         * objc-act.c: use hash_table instead of hashtab.
656 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
658         * Make-lang.in (check_objc_parallelize): Change to just an upper
659         bound number.
661 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
663         * objc-act.c (objc_common_tree_size): New function.
664         * objc-act.h (KEYWORD_KEY_NAME, KEYWORD_ARG_NAME): Add type
665         checking.
666         (INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro.
667         (METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS,
668         METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING,
669         METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking.
670         (METHOD_SEL_ARGS): Use decl_common.size instead of
671         decl_non_common.result.
672         (PROPERTY_NAME, PROPERTY_GETTER_NAME, PROPERTY_SETTER_NAME,
673         PROPERTY_READONLY, PROPERTY_NONATOMIC, PROPERTY_ASSIGN_SEMANTICS,
674         PROPERTY_IVAR_NAME, PROPERTY_DYNAMIC, PROPERTY_HAS_NO_GETTER,
675         PROPERTY_HAS_NO_SETTER, PROPERTY_OPTIONAL): Add type checking.
676         (objc_common_tree_size): Declare.
677         * objc-lang.c (LANG_HOOKS_TREE_SIZE): New macro.
679 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
681         * objc-act.c (objc_xref_basetypes): Set TYPE_BINFO of type variants,
682         too.
684 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
686         * objc-act.c: Adjust.
688 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
690         * objc-act.c (objc_build_string_object): Adjust.
691         (continue_class): Likewise.
692         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
693         * objc-map.c (objc_map_alloc_ggc): Likewise.
694         (objc_map_private_resize): Likewise.
695         * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init):
696         Likewise.
697         (hash_name_enter): Likewise.
699 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
700             Mike Stump  <mikestump@comcast.net>
701             Richard Sandiford  <rdsandiford@googlemail.com>
703         * objc-act.c: Include wide-int.h.
704         (objc_decl_method_attributes): Use wide-int interfaces.
706 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
708         PR objc/56044
709         * objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add.
710         (objc_init): Initialize objc_default_ivar_visibility.
711         (objc_start_class_interface): Use objc_default_ivar_visibility.
712         (objc_start_class_implementation): Likewise.
713         (objc_lookup_ivar): Implement -fno-local-ivars.
715 2014-01-31  Marek Polacek  <polacek@redhat.com>
717         PR c/59963
718         * objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to
719         build_function_call_vec.
720         (finish_catch): Likewise.
721         (next_runtime_abi_02_get_class_reference): Likewise.
722         * objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to
723         build_function_call_vec.
724         (build_throw_stmt): Likewise.
725         * objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to
726         build_function_call_vec.
727         (build_throw_stmt): Likewise.
729 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
731         Update copyright years
733 2013-12-04  Joseph Myers  <joseph@codesourcery.com>
735         PR c/52023
736         * objc-act.c (objc_synthesize_getter): Update calls to
737         c_sizeof_or_alignof_type.
739 2013-11-22  Andrew MacLeod  <amacleod@redhat.com>
741         * objc-act.c: Add required include files from gimple.h.
743 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
745         * objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi
746         throughout.
748 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
750         * objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with
751         tree_to_shwi throughout.
753 2013-11-14  Andrew MacLeod  <amacleod@redhat.com>
755         * objc-act.c: Include only gimplify.h and gimple.h as needed.
757 2013-11-14  Diego Novillo  <dnovillo@google.com>
759         * objc-act.c: Include stringpool.h.
760         Include stor-layout.h.
761         Include attribs.h.
762         * objc-encoding.c: Include stringpool.h.
763         Include stor-layout.h.
764         * objc-gnu-runtime-abi-01.c: Include stringpool.h.
765         * objc-next-runtime-abi-01.c:
766         Include stringpool.h.
767         * objc-next-runtime-abi-02.c: Include stringpool.h.
768         * objc-runtime-shared-support.c: Include stringpool.h.
770 2013-11-12  Andrew MacLeod  <amacleod@redhat.com>
772         * objc-act.c: Include gimplify.h.
774 2013-11-07  Andrew MacLeod  <amacleod@redhat.com>
776         * objc-act.c (objc_push_parm): Handle atomic qualifier.
778 2013-09-25  Tom Tromey  <tromey@redhat.com>
780         * Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o)
781         (objc/objc-runtime-shared-support.o)
782         (objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o)
783         (objc/objc-next-runtime-abi-02.o, objc/objc-act.o)
784         (objc/objc-encoding.o, objc/objc-map.o): Remove.
786 2013-09-14  Iain Sandoe  <iain@codesourcery.com>
788         PR target/48094
789         * objc-next-runtime-abi-01.c (generate_objc_image_info): Remove.
790         (objc_generate_v1_next_metadata): Remove generation of ImageInfo.
791         * objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove.
792         (objc_generate_v2_next_metadata): Remove generation of ImageInfo.
794 2013-07-21   Ondřej Bílka  <neleai@seznam.cz>
796         * objc-act.c: Fix typos.
797         * objc-encoding.c: Likewise.
798         * objc-gnu-runtime-abi-01.c: Likewise.
799         * objc-next-runtime-abi-01.c: Likewise.
800         * objc-next-runtime-abi-02.c: Likewise.
802 2013-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
804         * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call):
805         Fix build_conditional_expr call.
807 2013-05-16  Jason Merrill  <jason@redhat.com>
809         * Make-lang.in (cc1obj$(exeext)): Use link mutex.
811 2012-11-20  Diego Novillo  <dnovillo@google.com>
813         * objc-act.c: Replace all vec<T, A>() initializers with vNULL.
815 2012-11-16  Diego Novillo  <dnovillo@google.com>
817         Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
819         * objc-act.c: Use new vec API in vec.h.
820         * objc-act.h: Likewise.
821         * objc-gnu-runtime-abi-01.c: Likewise.
822         * objc-next-runtime-abi-01.c: Likewise.
823         * objc-next-runtime-abi-02.c: Likewise.
824         * objc-runtime-hooks.h: Likewise.
825         * objc-runtime-shared-support.c: Likewise.
826         * objc-runtime-shared-support.h: Likewise.
828 2012-10-01  Lawrence Crowl  <crowl@google.com>
830         * Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o.
831         (objc-act.o): Add dependence on hash-table.h.
832         * objc-act.c (objc_detect_field_duplicates): Change to new type-safe
833         hash table.
835 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
837         * Make-ang.in: Adjust for move of C front-end files.
838         * config-lang.in: Likewise.
839         * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h
840         and c-lang.h in c/.
841         * objc-runtime-shared-support.c: Likewise.
842         * objc-next-runtime-abi-01.c: Likewise.
843         * objc-next-runtime-abi-02.c: Likewise.
844         * objc-gnu-runtime-abi-01.c: Likewise.
845         * objc-act.c: Likewise.
846         * objc-lang.c: Likewise.
848 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
850         * objc-next-runtime-abi-01.c: Do not include tm.h and output.h.
851         Include c-family/c-target.h.
852         (handle_next_class_ref): Rewrite to emit top-level asm statements.
853         (handle_next_impent): Likewise.
854         * Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o.
856 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
858         * objc-act.c: Do not include output.h.
860 2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
862         PR objc++/53388
863         * objc-act.c (objc_get_class_reference, objc_build_message_expr):
864         Use build_min_nt_loc.
866 2012-04-20  Jan Hubicka  <jh@suse.cz>
868         * objc-act.c (mark_referenced_methods); Use
869         cgraph_mark_force_output_node.
871 2012-03-21  Steven Bosscher  <steven@gcc.gnu.org>
873         * objc-act (objc_build_ivar_assignment): Do not call assemble_external.
874         (objc_build_global_assignment): Likewise.
875         (objc_build_strong_cast_assignment): Likewise.
876         * objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external.
877         * objc-next-runtime-abi-02.c: Likewise.
878         * objc-gnu-runtime-abi-01.c: Likewise.
880 2012-03-05  Jason Merrill  <jason@redhat.com>
882         * objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't
883         call _stat functions without MEM_STAT_INFO.
885 2011-11-12  Iain Sandoe  <iains@gcc.gnu.org>
887         * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality
888         for Objective-C m32.
890 2011-10-29  Iain Sandoe  <iains@gcc.gnu.org>
892         PR target/47997
893         * objc-act.c (objc_build_string_object): Remove redundant second
894         call to fix_string_type ().  Add a checking assert that we are,
895         indeed, passed a STRING_CST.
897 2011-10-18  Mikael Pettersson  <mikpe@it.uu.se>
899         PR objc/50743
900         * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to
901         size_t to avoid signed/unsigned
902         comparison.
903         (insert_method_into_method_map): Likewise.
905 2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
907         * objc-map.h: New file.
908         * objc-map.c: New file.
909         * config-lang.in (gtfiles): Added objc-map.h.
910         * Make-lang.in (OBJC_OBJS): Added objc-map.o.
911         (objc/objc-map.o): New rule.
912         (objc/objc-act.o): Depend on objc/objc-map.h.
913         * objc-next-runtime-abi-02.c: Added a TODO comment.
914         * objc-act.c: Include objc-map.h.
915         (nst_method_hash_list, cls_method_hash_list): Removed.
916         (instance_method_map, class_method_map): New.
917         (cls_name_hash_list, als_name_hash_list): Removed.
918         (class_name_map, alias_name_map): Removed.
919         (ivar_offset_hash_list): Removed.
920         (hash_class_name_enter, hash_class_name_lookup, hash_enter,
921         hash_lookup, hash_add_attr, add_method_to_hash_list): Removed.
922         (interface_hash_init): New.
923         (objc_init): Call interface_hash_init.
924         (objc_write_global_declarations): Iterate over class_method_map
925         and instance_method_map instead of cls_method_hash_list and
926         nst_method_hash_list.
927         (objc_declare_alias): Use alias_name_map instead of
928         cls_name_hash_list.
929         (objc_is_class_name): Use class_name_map and alias_name_map
930         instead of cls_name_hash_list and als_name_hash_list.
931         (interface_tuple, interface_htab, hash_interface, eq_interface):
932         Removed.
933         (interface_map): New.
934         (add_class): Renamed to add_interface.  Use interface_map instead
935         of interface_htab.
936         (lookup_interface): Use interface_map instead of interface_htab.
937         (check_duplicates): Changed first argument to be a tree,
938         potentially a TREE_VEC, instead of a hash.  Changed implementation
939         to match.
940         (lookup_method_in_hash_lists): Use class_method_map and
941         instance_method_map instead of cls_method_hash_list and
942         nst_method_hash_list.
943         (objc_build_selector_expr): Likewise.
944         (hash_func): Removed.
945         (hash_init): Create instance_method_map, class_method_map,
946         class_name_map, and alias_name_map.  Do not create
947         nst_method_hash_list, cls_method_hash_list, cls_name_hash_list,
948         als_name_hash_list, and ivar_offset_hash_list.
949         (insert_method_into_method_map): New.
950         (objc_add_method): Use insert_method_into_method_map instead of
951         add_method_to_hash_list.
952         (start_class): Call add_interface instead of add_class.
953         * objc-act.h (cls_name_hash_list, als_name_hash_list,
954         nst_method_hash_list, cls_method_hash_list): Removed.
956 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
958         * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old
959         interface with two parallel arrays to hold standard builtin
960         declarations, and replace it with a function based interface that
961         can support creating builtins on the fly in the future.  Change
962         all uses, and poison the old names.  Make sure 0 is not a
963         legitimate builtin index.
964         * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto.
965         * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto.
967 2011-07-19  Richard Guenther  <rguenther@suse.de>
969         * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref):
970         Use fold_build_pointer_plus.
971         (objc2_build_ehtype_initializer): Likewise.
973 2011-07-11  Nicola Pero  <nicola.pero@meta-innovation.com>
975         * objc-encoding.h (obstack.h): Do not include.
976         (util_obstack, util_firstobj): Do not declare.
977         (encode_field_decl): Updated prototype to return a tree and take a
978         single tree argument.  Updated comments.
979         * objc-encoding.c (util_obstack, util_firstobj): Made static.
980         (objc_encoding_init): New.
981         (encode_field_decl): Existing function renamed to encode_field and
982         made static.  New encode_field_decl wrapper function added.
983         (encode_aggregate_fields): Update call to encode_field_decl to
984         call encode_field.
985         * objc-next-runtime-abi-02.c (obstack.h): Do not include.
986         (util_obstack, util_firstobj): Do not declare.
987         (build_v2_ivar_list_initializer): Updated call to
988         encode_field_decl.
989         * objc-runtime-shared-support.c (obstack.h): Do not include.
990         (util_obstack, util_firstobj): Do not declare.
991         (build_ivar_list_initializer): Updated call to encode_field_decl.
992         * objc-act.c (objc_init): Use objc_encoding_init.
993         * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend
994         on OBSTACK_H.
995         (objc/objc-gnu-runtime-abi-01.o): Likewise.
996         (objc/objc-next-runtime-abi-01.o): Likewise.
997         (objc/objc-next-runtime-abi-02.o): Likewise.
998         (objc/objc-act.o): Likewise.
1000 2011-07-04  Nicola Pero  <nicola.pero@meta-innovation.com>
1002         Refactored encoding code into objc-encoding.h and objc-encoding.c.
1003         * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers,
1004         encode_type, generating_instance_variables, objc_method_parm_type,
1005         objc_encoded_type_size, encode_method_prototype,
1006         objc_build_encode_expr, pointee_is_readonly, encode_pointer,
1007         encode_array, encode_vector, encode_aggregate_fields,
1008         encode_aggregate_within, encode_next_bitfield,
1009         encode_gnu_bitfield, encode_field_decl,
1010         objc_v2_encode_property_attr): Moved to objc-encoding.h and
1011         objc-encoding.c.  No change in the actual code.
1012         Include objc-encoding.h.
1013         (objc_init): Added TODO.
1014         (objc_build_property_setter_name): Made non-static so it can be
1015         called from objc-encoding.c.
1016         * objc-act.h (OBJC_ENCODE_INLINE_DEFS,
1017         OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h.
1018         * objc-runtime-shared-support.h (objc_v2_encode_property_attr,
1019         encode_method_prototype, encode_field_decl,
1020         generating_instance_variables): Moved to objc-encoding.h.
1021         (objc_build_property_setter_name): Declare.
1022         * objc-encoding.c: New.
1023         * objc-encoding.h: New.
1024         * objc-gnu-runtime-abi-01.c: Include objc-encoding.h.
1025         * objc-next-runtime-abi-01.c: Likewise.
1026         * objc-next-runtime-abi-02.c: Likewise.
1027         * objc-runtime-shared-support.c: Likewise.
1028         * Make-lang.in (OBJC_OBJS): Added objc-encoding.o.
1029         (objc/objc-lang.o): Reordered dependencies.
1030         (objc/objc-runtime-shared-support.o): Reordered dependencies.
1031         Added dependencies on objc-encoding.h and on $(GGC_H),
1032         $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h.
1033         (objc/objc-gnu-runtime-abi-01.o): Likewise.
1034         (objc/objc-next-runtime-abi-01.o): Likewise.
1035         (objc/objc-next-runtime-abi-02.o): Likewise.
1036         (objc/objc-act.o): Reordered dependencies.  Added dependency on
1037         objc-encoding.h.
1038         (objc/objc-encoding.o): New rule.
1040         * objc-encoding.c (encode_type): Use "%<%T%>" format when printing
1041         warning "unknown type %<%T%> found during Objective-C encoding"
1042         instead of using gen_type_name.
1044 2011-06-05  Nicola Pero  <nicola.pero@meta-innovation.com>
1046         * objc-act.c (receiver_is_class_object): Expanded comment.
1047         (objc_finish_message_expr): Likewise.
1049 2011-06-02  Nicola Pero  <nicola.pero@meta-innovation.com>
1051         PR objc/48539
1052         * objc-act.c (objc_finish_message_expr): Warn if messaging a class
1053         that was only declared using @class without an @interface.  Warn
1054         if messaging an instance of a class that was only declared using
1055         @class without an @interface, unless the receiver was also typed
1056         with a protocol list.
1058 2011-06-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1060         * objc-act.c (objc_decl_method_attributes): Implement nonnull
1061         attribute for Objective-C methods.
1063 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1065         * config-lang.in (gtfiles): Updated order of files to fix building
1066         when the gcc/cp directory is missing, as in the case of some
1067         release tarballs.
1069 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
1071         * objc-act.c (objc_compare_types): Use function_args_iterator
1072         instead of TYPE_ARG_TYPES to compare function argument types.
1074 2011-05-13  Toon Moene  <toon@moene.org>
1076         * objc-next-runtime-abi-02.c (newabi_append_ro):
1077         Add const qualifier to constant variable pointer declaration.
1079 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
1081         * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors.
1082         (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise.
1083         (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise.
1085 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1087         * objc-runtime-shared-support.h (get_arg_type_list): Delete.
1088         (build_function_type_for_method): Declare.
1089         * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change
1090         type of get_arg_type_base_list field.
1091         * objc-act.h (OBJC_VOID_AT_END): Delete.
1092         * objc-act.c (get_arg_type_list): Delete.
1093         (build_function_type_for_method): New function.
1094         (objc_decl_method_attributes): Call build_function_type_for_method.
1095         (really_start_method): Likewise.
1096         * objc-gnu-runtime-abi-01.c
1097         (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and
1098         adjust function accordingly.  Update header comment.
1099         (build_objc_method_call): Call build_function_type_for_method.
1100         * objc-next-runtime-abi-01.c
1101         (next_runtime_abi_01_get_type_arg_list_base): Change prototype and
1102         adjust function accordingly.  Update header comment.
1103         (build_objc_method_call): Call build_function_type_for_method.
1104         * objc-next-runtime-abi-02.c
1105         (next_runtime_abi_02_get_type_arg_list_base): Change prototype and
1106         adjust function accordingly.  Update header comment.
1107         (objc_copy_to_temp_side_effect_params): Take fntype instead of a
1108         typelist.  Use function_args_iterator for traversing fntype.
1109         (build_v2_build_objc_method_call): Adjust call to it.
1110         Call build_function_type_for_method
1112 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1114         * objc-act.c (objc_start_method_definition): Add parameter expr.
1115         Update call to start_method_def.
1116         (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter,
1117         objc_synthesize_setter) Update calls to
1118         objc_start_method_definition.
1119         (objc_get_parm_info): Add parameter expr.  Update call to
1120         get_parm_info.
1121         (start_method_def): Add parameter expr.  Update call to
1122         objc_get_parm_info.
1123         * objc-gnu-runtime-abi-01.c (build_module_initializer_routine):
1124         Update call to objc_get_parm_info.
1125         * objc-runtime-shared-support.h (objc_get_parm_info): Add extra
1126         parameter.
1128 2011-04-26  Jason Merrill  <jason@redhat.com>
1130         * objc-act.c (objc_fold_objc_type_ref): Remove.
1131         * objc-act.h: Remove prototype.
1133 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
1135         * objc-act.c (synth_module_prologue): Call build_function_type_list
1136         instead of build_function_type.
1137         * objc-next-runtime-abi-02.c (next_runtime_02_initialize):
1138         Likewise.
1140 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1142         * objc-act.c (ivar_of_class): New.
1143         (objc_is_public): Use ivar_of_class.
1145 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1147         * objc-act.c (objc_get_interface_ivars): Removed.
1148         (objc_detect_field_duplicates): New.
1149         (hash_instance_variable): New.
1150         (eq_instance_variable): New.
1152 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1154         * objc-act.c (objc_declare_protocols): Renamed to
1155         objc_declare_protocol.  Changed first argument to be an identifier
1156         instead of a tree chain of identifiers, so that callers don't have
1157         to create a temporary tree chain.
1159 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1161         * objc-act.c (objc_declare_class): Changed to take a single
1162         identifier as argument instead of a tree list.  This means callers
1163         don't have to build temporary tree lists to call this function.
1164         (synth_module_prologue): Updated calls to objc_declare_class.
1166 2011-04-13  Nicola Pero  <nicola.pero@meta-innovation.com>
1168         * objc-act.c (build_keyword_selector): Use get_identifier_with_length
1169         instead of get_identifier.
1171 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
1173         * objc-lang.c (objc_init_ts): Move code for this function...
1174         * objc-act.c (objc_common_init_ts): ...here. Define.
1175         * objc-act.h (objc_common_init_ts): Declare.
1177 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1179         * objc-act.c (objc_build_message_expr): Accept two arguments
1180         instead of one so that callers can simply pass the arguments
1181         without having to create a temporary chain to hold them.
1183 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1185         * objc-act.c (comp_proto_with_proto): Do not create and use
1186         inefficient temporary argument lists.  Compare the arguments
1187         directly.  (match_proto_with_proto): Removed; incorporated into
1188         comp_proto_with_proto ().
1190 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1192         * objc-act.c (printable_ivar_name): New.
1193         (add_instance_variable): Call printable_ivar_name() when an error
1194         message needs to be printed.  Do not prepare the instance variable
1195         for printing unless there is an actual error.
1197 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1199         * objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
1200         avoid calling identifier_global_value() multiple times.
1202 2011-04-12  Martin Jambor  <mjambor@suse.cz>
1204         * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
1205         instead of cgraph_node.
1207 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
1209         * objc-act.c: Include c-target.h instead of target.h.
1210         * Make-lang.in (objc/objc-act.o): Update dependencies.
1212 2011-03-06  Joseph Myers  <joseph@codesourcery.com>
1214         * lang-specs.h: Match -save-temps* instead of -save-temps.
1216 2011-02-26  Nicola Pero  <nicola.pero@meta-innovation.com>
1218         * objc-act.c (objc_v2_encode_prop_attr): Rewritten.
1220 2011-02-23  Nicola Pero  <nicola.pero@meta-innovation.com>
1222         * objc-act.c (build_private_template): Do not copy the
1223         CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
1224         * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
1225         TYPE_LANG_SLOT_0.
1227 2011-02-22  Nicola Pero  <nicola.pero@meta-innovation.com>
1229         PR objc/47832
1230         * objc-act.c (flexible_array_type_p): New.
1231         (add_instance_variable): Produce an error if an instance variable
1232         uses flexible array members.
1233         (encode_array): Do not emit an error if encoding a flexible array
1234         type while generating instance variables.
1236 2011-02-21  Mike Stump  <mikestump@comcast.net>
1238         * Make-lang.in (check_objc_parallelize): Refine for 4 processor
1239         machines.
1241 2011-02-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1243         * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed.  Removed
1244         usage of padding fields.  Do not include tm.h.
1245         * objc-act.c (objc_write_global_declaration): Set input_location
1246         to BUILTINS_LOCATION while generating runtime metadata.
1248 2011-01-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1250         PR objc/47784
1251         * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side
1252         effects, do not use a temporary variable.
1254 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1256         * objc-next-runtime-abi-01.c: Updated comments.
1257         * objc-next-runtime-abi-02.c: Same.
1259 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1261         * objc-act.c (objc_init, generate_struct_by_value_array): Updated
1262         comments.
1264 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1266         * objc-act.c: Updated comments.
1267         * objc-next-runtime-abi-02.c: Same.
1268         * objc-runtime-shared-support.c: Same.
1269         * objc-runtime-hooks.h: Same.
1270         * objc-act.h: Same.
1271         * objc-gnu-runtime-abi-01.c: Same.
1273 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1275         * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do
1276         not generate metadata if there is nothing to put into it.
1278 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
1280         * config-lang.in (gtfiles): Updated.
1281         * Make-lang.in (START_HDRS): New.
1282         (OBJC_OBJS): Added new object files.
1283         (objc/objc-act.o): Updated prerequisites.
1284         (objc/objc-lang.o): Updated prerequisites.
1285         (objc/objc-runtime-shared-support.o): New.
1286         (objc/objc-gnu-runtime-abi-01.o): New.
1287         (objc/objc-next-runtime-abi-01.o): New.
1288         (objc/objc-next-runtime-abi-02.o): New.
1289         * objc-runtime-hooks.h: New.
1290         * objc-runtime-shared-support.h: New.
1291         * objc-runtime-shared-support.c: New.
1292         * objc-gnu-runtime-abi-01.c: New.
1293         * objc-next-metadata-tags.h: New.
1294         * objc-next-runtime-abi-01.c: New.
1295         * objc-next-runtime-abi-02.c: New.
1296         * objc-lang.c: Include c-lang.h.
1297         (LANG_HOOKS_EH_PERSONALITY): Removed.
1298         * objc-act.h: Moved many declarations and code from objc-act.c
1299         into objc-act.h to make them available outside objc-act.c.
1300         (objc_eh_runtime_type): Removed.
1301         (objc_eh_personality): Removed.
1302         (CLASS_HAS_EXCEPTION_ATTR): New.
1303         (OCTI_SUPER_SUPERFIELD_ID): New.
1304         (OCTI_V1_PROP_LIST_TEMPL): New.
1305         (OCTI_V1_PROP_NAME_ATTR_CHAIN): New.
1306         (super_superclassfield_id): New.
1307         (objc_prop_list_ptr): New.
1308         (prop_names_attr_chain): New.
1309         * objc-act.c: Include new runtime headers.  Moved many #defines
1310         and declarations into objc-act.h and
1311         objc-runtime-shared-support.h.  Made some corresponding functions
1312         non-static, and moved some others into
1313         objc-runtime-shared-support.c.  Moved metadata generation code
1314         into the new runtime hook files.
1315         (ivar_offset_hash_list): New.
1316         (objc_init): Call generate_struct_value_by_array() before doing
1317         any runtime initialization.  Create the appropriate runtime hook
1318         structures.
1319         (init_objc): Removed.  Code moved directly into objc_init.
1320         (finish_objc): Removed.  Code moved directly into
1321         objc_write_global_declarations.
1322         (objc_write_global_declarations): Do the warn_selector checks
1323         before emitting metadata.  Use a runtime hook to emit the
1324         metadata.  Do not emit the metadata or do -gen-decls processing if
1325         -fsyntax-only or we are producing a PCH.
1326         (build_objc_exception_stuff): Renamed to
1327         build_common_objc_exception_stuff.  Remove TREE_NOTHROW flag from
1328         objc_exception_throw_decl.
1329         (synth_module_prologue): Call runtime initialize hook instead of
1330         building runtime declarations here.  Use the
1331         default_constant_string_class_name runtime hook to set the
1332         constant string class name.
1333         (objc_build_string_object): Call the setup_const_string_class_decl
1334         runtime hook instead of setup_string_decl.  Call the
1335         build_const_string_constructor runtime hook instead of building
1336         the string object here.
1337         (get_objc_string_decl): Added prop_names_attr case.  Removed
1338         gcc_unreachable() at the end.
1339         (objc_begin_catch_clause): Distinguish between @catch (...) and
1340         @catch (id x).  Call the begin_catch runtime hook instead of
1341         building the CATCH_EXPR here.
1342         (objc_finish_catch_clause): Call the finish_catch runtime hook
1343         instead of adding the catch here.
1344         (objc_finish_try_stmt): Call the finish_try_stmt runtime hook
1345         instead of doing it here.
1346         (objc_build_throw_stmt): Bail out early for error_mark_node.  Call
1347         the build_exc_ptr runtime hook instead of objc_build_exc_ptr.
1348         Call the build_throw_stmt runtime hook instead of building the
1349         throw call here.
1350         (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime
1351         as well.
1352         (get_arg_type_list): Call the get_arg_type_list_base runtime hook
1353         instead of building the list of arguments here.
1354         (receiver_is_class_object): Call the receiver_is_class_object
1355         runtime hook instead of doing the check here.  Call the
1356         tag_getclass runtime hook instead of using TAG_GETCLASS.
1357         (objc_finish_message_expr): Call the build_objc_method_call
1358         runtime hook.
1359         (objc_build_protocol_expr): Call the get_protocol_reference
1360         runtime hook.
1361         (objc_build_selector_expr): Call the build_selector_reference
1362         runtime hook.
1363         (build_ivar_reference): Call the build_ivar_reference runtime
1364         hook.
1365         (hash_init): Set up ivar_offset_hash_list.
1366         (start_class): Recognize the objc_exception attribute and store
1367         it.
1368         (continue_class): Use the class_decl and metaclass_decl runtime
1369         hooks.
1370         (build_objc_property_accessor_helpers): Renamed to
1371         build_common_objc_property_accessor_helpers.  Do not build
1372         objc_copyStruct_decl, objc_getPropertyStruct_decl and
1373         objc_setPropertyStruct_decl.
1374         (objc_synthesize_getter): Check what struct setter/getter helper
1375         is available instead of checking the type of runtime.
1376         (get_super_receiver): Use the super_superclassfield_ident runtime
1377         hook.  Added assert.  Use the get_class_super_ref and
1378         get_category_super_ref runtime hooks.
1379         (objc_v2_encode_prop_attr): New.
1381 2011-01-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1383         PR objc/47314
1384         * objc-act.c (finish_objc): When calling check_duplicates to check
1385         duplicated instance methods, set 'is_class' to 0, not 1.
1387 2011-01-14  Ben Elliston  <bje@au.ibm.com>
1389         PR 19162
1390         * objc-act.c (generate_struct_by_value_array): Do not output a
1391         definition for struct_forward_array.
1393 2011-01-08  Iain Sandoe  <iains@gcc.gnu.org>
1395         * objc-act.c (objc_finish_foreach_loop): Mark collection expression
1396         as read.
1398 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
1400         * objc-act.c (check_that_protocol_is_defined): Fix a typo.
1402 2011-01-02  Nicola Pero  <nicola.pero@meta-innovation.com>
1404         * objc-act.c (check_that_protocol_is_defined): New.
1405         (lookup_protocol): Call check_that_protocol_is_defined.
1407 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1409         * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
1410         lists.  Check them two-ways to fix comparisons when one protocol
1411         implements the other one, or when one list contains duplicated
1412         protocols.
1414 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1416         * objc-act.c (objc_add_method): When emitting an error because a
1417         method with the same name but conflicting types is found in the
1418         same class or category interface, print a note with the location
1419         of the original method.  Also, improved the error message to
1420         clearly state that the conflict is due to conflicting types, and
1421         produce it for protocols as well.  Emit an error if two identical
1422         methods are declared in a protocol, but one is @required and the
1423         other one is @optional.
1425 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1427         * objc-act.c (start_class): Warn when a class attribute is
1428         ignored.
1429         (objc_declare_protocols): Warn when a protocol attribute in a
1430         protocol forward-declaration is ignored.
1431         (start_protocol): Warn when a protocol attribute is ignored.
1433 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1435         * objc-act.c (objc_set_method_opt): Tidy up error messages.  In
1436         particular, explicitly mention whether the error is due to the
1437         @optional or @required keyword instead of mentioning
1438         "@optional/@required".
1440 2010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1442         PR objc/47118
1443         * objc-act.c (objc_build_synchronized): Check the argument of
1444         @synchronized and emit an appropriate error if it is not a valid
1445         Objective-C object.  Deal gracefully with that case.  Updated
1446         comments and variable names.
1448 2010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1450         PR objc/47075
1451         * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
1452         * objc-tree.def (PROPERTY_REF): Increased the number of operands
1453         from 3 to 4.
1454         * objc-act.c (objc_finish_message_expr): Added optional argument
1455         allowing to return the deprecated method prototype for deprecated
1456         methods, instead of immediately emitting the deprecation warning.
1457         (objc_maybe_build_component_ref): Do not warn for a deprecated
1458         property.  When building the getter call, get the deprecated
1459         method prototype from objc_finish_message_expr() and put it into
1460         the PROPERTY_REF.
1461         (objc_build_class_component_ref): Same change.
1462         (finish_class): Mark the getter and setter as deprecated if they
1463         are generated from a deprecated property.
1464         (objc_gimplify_property_ref): If the getter is deprecated, emit a
1465         deprecation warning.
1466         (objc_build_setter_call, objc_build_message_expr,
1467         objc_finish_foreach_loop): Updated call to
1468         objc_finish_message_expr.
1470 2010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1472         PR objc/47076
1473         * objc-act.c (lookup_protocol): Added 'definition_required'
1474         argument.  If 'definition_required', and the protocol is not
1475         defined, emit a warning.
1476         (objc_declare_protocols): Updated call to lookup_protocol.
1477         (start_protocol): Same change.
1478         (check_protocol_recursively): Same change.
1479         (objc_build_protocol_expr): Same change.
1480         (lookup_and_install_protocols): Added definition_required argument.
1481         Pass it to lookup_protocol.
1482         (objc_get_protocol_qualified_type): Updated call to
1483         lookup_and_install_protocols.
1484         (start_class): Updated calls to lookup_and_install_protocols; pass
1485         true to 'definition_required' to get the warnings.
1486         (start_protocol): Updated calls to lookup_and_install_protocols.
1488 2010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1490         * objc-act.c (objc_start_category_interface): Produce an error if
1491         a class extension is found after the class @implementation.
1493 2010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1495         PR objc/47073
1496         * objc-act.c (encode_method_prototype): Fixed both location and
1497         format string of error "type %qT does not have a known size".
1499 2010-12-26  Nicola Pero  <nicola.pero@meta-innovation.com>
1501         * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c.
1503 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
1505         * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.
1507 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1509         * objc-act.c (objc_init): Call using_eh_for_cleanups.
1510         (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions.  Do
1511         not call using_eh_for_cleanups.
1512         (objc_begin_try_stmt): Do not call objc_init_exceptions.
1513         (objc_build_throw_stmt): Updated call to
1514         objc_maybe_warn_exceptions.
1516 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
1518         * objc-act.c (objc_eh_personality): Select personality name on
1519         runtime.
1520         (objc_init_exceptions): New.
1521         (objc_begin_try_stmt): Use objc_init_exceptions.
1522         (objc_build_throw_stmt): Likewise.
1524 2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
1526         * objc-act.c (objc_in_class_extension): New.
1527         (objc_start_category_interface): If -fobjc-std=objc1
1528         was specified, produce an error if a class extension is used.
1529         (objc_finish_interface): Reset objc_in_class_extension to false.
1530         (objc_add_property_declaration): Allow a class extension to extend
1531         readonly properties in the main @interface to be readwrite.
1532         (start_class): Added code to deal with class extensions.  In that
1533         case, return the existing interface after adding any additional
1534         protocols to it and setting objc_in_class_extension to true.
1535         (continue_class): If in a class extension, do not generate the
1536         instance variable template.
1538 2010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1540         * objc-act.c (objc_build_throw_stmt): Check that the argument of
1541         @throw is an object and emit an error if not.
1543 2010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1545         * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
1546         error() when printing an error about the iterating variable or
1547         collection not being an object.
1549 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1551         * objc-act.c (objc_finish_foreach_loop): Mark the
1552         object_expression as used.
1554 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1556         * objc-act.c: Include c-family/c-objc.h.
1557         * objc-lang.c: Same change.
1558         * Make-lang.in (objc/objc-act.o): Depend on
1559         c-family/c-objc.h.
1560         (objc/objc-lang.o): Same change.
1561         * config-lang.in (gtfiles): Added c-family/c-objc.h.
1563 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1565         * lang-specs.h: Don't handle -ftraditional.
1567 2010-12-02  Nicola Pero  <nicola.pero@meta-innovation.com>
1569         * objc-act.c (objc_build_throw_stmt): Return error_mark_node and
1570         not NULL_TREE when a @throw is used outside of a @catch block.
1572 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1574         * objc-act.c (objc_build_volatilized_type): Removed.
1575         (objc_non_volatilized_type): Removed.
1576         (objc_type_quals_match): Removed.
1577         (local_variables_to_volatilize): New.
1578         (objc_volatilize_decl): Add the decl to volatilize to
1579         local_variables_to_volatilize, but don't volatilize it yet.
1580         (objc_finish_function): New.
1581         * objc-act.h (local_variables_to_volatilize): New.
1583 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1584             Mike Stump  <mikestump@comcast.net>
1586         Allow 'make check-objc -j2'
1587         * Make-lang.in (lang_checks_parallelized): New.
1588         (check_objc_parallelize): New.
1590 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1592         * objc-act.c (start_class): When a class is reimplemented,
1593         generate an error and avoid adding the class to the list of
1594         implemented classes again, but do not return error_mark_node.
1596 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1598         * objc-act.c (objc_maybe_build_component_ref): Removed TODO.
1600 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1602         * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
1603         is passed as argument.
1604         (objc_begin_catch_clause): Added code to deal with an
1605         error_mark_node or NULL_TREE argument.  Improved checks for
1606         invalid arguments.  Added code to traverse typedefs.
1608 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1610         * objc-act.c (objc_demangle): Return immediately if the string is
1611         too short.  Detect names that do not need demangling, and return
1612         them unchanged.
1614 2010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1616         Implemented optional properties.
1617         * objc-act.h (PROPERTY_OPTIONAL): New.
1618         * objc-act.c (objc_add_property_declaration): Set
1619         PROPERTY_OPTIONAL if appropriate.
1620         (finish_class): When generating definitions of setter and getter
1621         methods associated with a property for a protocol, mark them as
1622         optional if the property is optional.
1623         (maybe_make_artificial_property_decl): Added 'getter_name'
1624         argument.  Set PROPERTY_OPTIONAL.
1625         (objc_maybe_build_component_ref): Updated calls to
1626         maybe_make_artificial_property_decl.  Added code for optional,
1627         readonly properties.
1628         (objc_build_class_component_ref): Updated call to
1629         maybe_make_artificial_property_decl.
1631 2010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1633         * objc-act.c (objc_build_struct): Fixed loops that save and
1634         restore TYPE_OBJC_INFO to iterate over all variants of the type; a
1635         special case for the current type is then no longer required.
1636         Duplicate TYPE_LANG_SPECIFIC for each type before restoring
1637         TYPE_OBJC_INFO.
1638         (objc_get_protocol_qualified_type): Updated comments.
1640 2010-11-25  Nicola Pero  <nicola.pero@meta-innovation.com>
1642         * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
1643         after finish_struct, not before, otherwise it may be wiped out by
1644         it.  This fixes spurious warnings when a class has more than 15
1645         instance variables.
1647 2010-11-23  Nicola Pero  <nicola.pero@meta-innovation.com>
1649         PR objc/24358
1650         * lang-specs.h: Added objective-c-cpp-output.  Mapped .mi to
1651         objective-c-cpp-output instead of objc-cpp-output.  Print a
1652         deprecation note every time objc-cpp-output is requested.
1654 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1656         * objc-act.c (write_symbols): Don't declare here.
1658 2010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
1660         PR objc/41108
1661         * objc-act.c (objc_generate_write_barrier): Added assert to make sure
1662         this function is only called with the next runtime.
1664 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1666         PR c/46547
1667         * objc-act.c (in_late_binary_op): Remove.
1669 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1671         * objc-act.c (objc_start_class_interface): Do not warn that class
1672         attributes are unimplemented.  Pass the attributes to start_class.
1673         (objc_start_category_interface): Updated call to start_class.
1674         (objc_start_class_implementation): Same change.
1675         (objc_start_category_implementation): Same change.
1676         (objc_build_class_component_ref): Warn if the class is deprecated.
1677         (build_private_template): Mark the template as deprecated if the
1678         class is deprecated.
1679         (start_class): Added 'attributes' argument.  Emit a warning if
1680         using a deprecated class as superclass of a class, or original
1681         class of a category.  Recognize the 'deprecated' attribute when
1682         starting and interface, and mark the interface with
1683         TREE_DEPRECATED if present.  Store attributes in the interface.
1685 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1687         * objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
1688         argument.  If it is 'true' and the protocol is deprecated, emit a
1689         deprecation warning.
1690         (objc_start_protocol): Do not warn that protocol attributes are
1691         unimplemented.  Pass the attributes to start_protocol.
1692         (start_protocol): Added attributes argument.  Recognize the
1693         'deprecated' attribute and mark the protocols with TREE_DEPRECATED
1694         if present.  Store attributes in the protocol.
1695         (objc_declare_protocols): Added 'attributes' argument.  Recognize
1696         the 'deprecated' attribute and mark the protocols with
1697         TREE_DEPRECATED if present.  Store attributes in the protocol.
1698         Updated call to lookup_protocol.
1699         (objc_build_protocol_expr): Updated call to lookup_protocol.
1700         (check_protocol_recursively): Same change.
1701         (lookup_and_install_protocols): Same change.
1702         * objc-act.h: Updated comments.
1704 2010-11-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1706         * objc-act.c (lookup_method_in_protocol_list): Search methods in
1707         PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
1708         they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
1710 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1712         * objc-act.c (objc_build_setter_call): New.
1713         (objc_maybe_build_modify_expr): Rewritten to build a compound
1714         statement.
1715         (objc_build_incr_expr_for_property_ref): Updated calls to
1716         objc_maybe_build_modify_expr to call objc_build_setter_call
1717         instead.  Use build_modify_expr () instead of build2 (MODIFY_EXPR,
1718         ...).  Use convert () instead of build1 (NOP_EXPR, ...).  Use
1719         TREE_NO_WARNING on the final compound statement to silence C++
1720         warnings.
1722 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1724         * objc-act.c (objc_build_incr_expr_for_property_ref): New.
1725         (objc_create_temporary_var): Moved it towards the beginning of the
1726         file so that objc_build_incr_expr_for_property_ref can use it.
1728 2010-11-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1730         * objc-act.c (objc_add_property_declaration): Check that the decl
1731         we received from the parser is a FIELD_DECL; reject array and
1732         bitfield properties.  Convert the warning when a property is
1733         readonly and a setter is specified into an error.  Convert errors
1734         when a property declaration does not match a property declaration
1735         in a superclass into warnings.
1736         (objc_add_synthesize_declaration_for_property): Use
1737         DECL_BIT_FIELD_TYPE to determine the type of an instance variable
1738         if it is a bitfield.  Throw an error if we are asked to synthesize
1739         setters/getters for a bitfield instance variable but the property
1740         is not appropriate - it must be assign and nonatomic.  If the
1741         property is readonly, allow the instance variable type to be a
1742         specialization of the property type.
1743         (objc_type_valid_for_messaging): Fixed returning 'false' for a
1744         Class qualified with a protocol when the 'accept_classes' argument
1745         is 'false'.
1747 2010-11-13  Nicola Pero  <nicola.pero@meta-innovation.com>
1749         * objc-act.c (objc_get_protocol_qualified_type): detect cases
1750         where we are asked to attach a protocol to something which is not
1751         an Objective-C object type, and produce an error.
1753 2010-11-11  Nicola Pero  <nicola.pero@meta-innovation.com>
1755         * objc-act.c (objc_add_property_declaration): Check that the type
1756         of a property and of an inherited property match.
1757         (objc_maybe_build_component_ref): Tidied up indentation and
1758         comments.
1759         (objc_common_type): Added new type of check (-5).
1760         (objc_add_synthesize_declaration_for_property): Check that the
1761         property to synthesize and the instance variable to use have the
1762         same type.
1764 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1766         * objc-act.c (objc_init): Use %' in diagnostic.
1767         (objc_set_method_opt): Remove trailing '.' from diagnostic.
1769 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1771         * objc-act.c (dump_base_name): Don't declare here.
1773 2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1775         * objc-act.c (objc_add_dynamic_declaration_for_property): Do not
1776         search for the @property declation only in the current context,
1777         but also in inherited properties.  Do not mark the original
1778         PROPERTY_DECL in the @interface or @protocol with
1779         PROPERTY_DYNAMIC.
1780         (check_methods): To check if a method is associated with a
1781         @dynamic property, search for the property in IMPL_PROPERTY_DECL.
1782         (check_accessible_methods): Same change.
1783         * objc-act.h: Updated comment.
1785 2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1787         * objc-act.c (objc_add_synthesize_declaration_for_property):
1788         Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
1789         checking for an existing @synthesize or @dynamic declaration.
1790         Search for an inherited @property declaration if none is found in
1791         the local interface.  If the required instance variable does not
1792         exist, return instead of trying to continue to prevent a compiler
1793         crash later.  Check that the instance variable is not already
1794         being used by another @synthesize.
1795         (objc_add_dynamic_declaration_for_property): Iterate over
1796         IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
1797         existing @synthesize or @dynamic declaration.
1798         (objc_synthesize_getter): Search for the getter declaration in
1799         protocols and superclasses as well.
1800         (objc_synthesize_setter): Search for the setter declaration in
1801         protocols and superclasses as well.
1803 2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1805         * objc-act.c (lookup_property): When checking categories, also
1806         check the protocols attached to each.
1807         (objc_add_property_declaration): Determine the
1808         PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here.  Tidied up
1809         error message.  Search for an existing property declaration with
1810         the same name which would be inherited from the class hiearchy,
1811         and produce an error if it has incompatible attributes.
1812         (check_methods): Changed second parameter.  If the method is a
1813         getter or setter for a property, do not warn if it is inherited as
1814         opposed to implemented directly in the class.
1815         (check_protocol): Updated calls to check_methods.
1816         (finish_class): Do not determine the PROPERTY_SETTER_NAME and
1817         PROPERTY_GETTER_NAME here; this is now done earlier, in
1818         objc_add_property_declaration.
1819         * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
1821 2010-11-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1823         Fixed using the Objective-C 2.0 dot-syntax with self and super.
1824         * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
1825         (maybe_make_artificial_property_decl): Added 'implementation'
1826         argument.  Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
1827         looking up getters or setters for a class.  If an implementation
1828         is specified, search it as well for a getter or setter.
1829         (objc_maybe_build_component_ref): Updated calls to
1830         maybe_make_artificial_property_decl; added code to deal with
1831         'self' and 'super' and with methods declared locally in the
1832         implementation.  Store the getter call expression in the
1833         PROPERTY_REF instead of throwing it away.
1834         (objc_build_class_component_ref): Updated calls to
1835         maybe_make_artificial_property_decl, and store the getter call
1836         expression in PROPERTY_REF instead of throwing it away.
1837         (lookup_method_static): Implemented
1838         OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
1839         (objc_gimplify_property_ref): Do not build the getter method call
1840         here; instead use the one stored in the PROPERTY_REF.  If it's not
1841         there, produce helpful error messages.
1842         * objc-tree.def (PROPERTY_REF): Increased the number of operands
1843         from 2 to 3.  Updated comments.
1844         * objc-act.h (PROPERTY_REF_GETTER_CALL): New.
1846 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
1848         PR target/44981
1849         * objc-act.c (objc_build_string_object): Amend for renamed hook.
1850         (objc_string_ref_type_p): New.
1851         (objc_check_format_arg): New.
1853 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
1855         Fixed using the Objective-C 2.0 dot-syntax with class names.
1856         * objc-act.c (objc_build_class_component_ref): New.
1858 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1860         * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
1861         category.
1862         (objc_type_valid_for_messaging): Added 'accept_classes' argument;
1863         if set to 'true', return 'true' for Class objects.  Do not remove
1864         more than on pointer indirection.
1865         (objc_add_property_declaration): Only warn about 'assign'
1866         semantics for Objective-C objects if warn_property_assign_default;
1867         and do not warn if the property is readonly or if the type is a Class.
1868         (objc_finish_foreach_loop): Updated calls to
1869         objc_type_valid_for_messaging.
1871 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1873         Implemented -fobjc-std=objc1 flag.
1874         * objc-act.c (objc_start_class_interface): If attributes are
1875         specified when flag_objc1_only is set, print an error.
1876         (objc_start_category_interface): Same change.
1877         (objc_start_protocol): Same change.
1878         (objc_add_method_declaration): Same change.
1879         (objc_start_method_definition): Same change.
1880         (objc_build_keyword_decl): Same change.
1881         (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when
1882         flag_objc1_set is set, print an error.
1883         (objc_set_method_opt): If flag_objc1_only is set, print an error.
1884         (objc_add_property_declaration): Same change.
1885         (objc_add_synthesize_declaration): Same change.
1886         (objc_add_dynamic_declaration): Same change.
1887         (objc_finish_foreach_loop): Same change.
1888         (objc_maybe_build_component_ref): If flag_objc1_only is set,
1889         return immediately.
1891 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1893         * objc-act.c (maybe_make_artificial_property_decl): New.
1894         (objc_maybe_build_component_ref): Call
1895         maybe_make_artificial_property_decl if a property can not be
1896         found.  Do not call objc_finish_message_expr if
1897         PROPERTY_HAS_NO_GETTER.
1898         * objc-act.h Updated comments.
1899         (PROPERTY_HAS_NO_GETTER): New.
1900         (PROPERTY_HAS_NO_SETTER): New.
1901         * objc-tree.def: Updated comment.
1903 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1905         Implemented format and noreturn attributes for Objective-C methods.
1906         * objc-act.c (objc_start_method_definition): If method attributes
1907         are specified emit a warning and ignore them.
1908         (build_objc_method_call): Moved deprecation warnings from here ...
1909         (objc_finish_message_expr): to here.  Do not emit deprecation
1910         warnings if the receiver is of type 'id'.
1911         (really_start_method): Install 'deprecation' and 'noreturn'
1912         attributes.
1913         (objc_decl_method_attributes): Carefully filter out the list of
1914         attributes, allowing only "noreturn", "format", "sentinel" and
1915         "deprecated".  In the case of "format", adjust the arguments.
1916         Always process the attributes in the same way no matter if
1917         "sentinel" is in the list or not.
1919 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1921         * objc-act.c (objc_maybe_build_component_ref): Warn about using
1922         deprecated properties.
1923         (objc_maybe_printable_name): Support PROPERTY_DECL.
1925 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
1927         Implemented Objective-C 2.0 property accessors.
1928         * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
1929         OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
1930         OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
1931         (objc_getProperty_decl): New.
1932         (objc_setProperty_decl): New.
1933         (objc_copyStruct_decl): New.
1934         (objc_getPropertyStruct_decl): New.
1935         (objc_setPropertyStruct_decl): New.
1936         * objc-act.c (build_objc_property_accessor_helpers): New.
1937         (synth_module_prologue): Call
1938         build_objc_property_accessor_helpers.
1939         (lookup_ivar): New.
1940         (objc_synthesize_getter): Implemented synthesizing getters that
1941         work with properties that are not nonatomic, assign properties.
1942         (objc_synthesize_setter): Implemented synthesizing setters that
1943         work with properties that are not nonatomic, assign properties.
1945 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1947         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
1948         * objc-tree.def (PROPERTY_REF): New.
1949         * objc-act.h: Added comments for all the PROPERTY_ macros.
1950         (PROPERTY_NAME): Use DECL_NAME.
1951         (PROPERTY_COPIES): Removed.
1952         (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
1953         (PROPERTY_NONATOMIC): New.
1954         (objc_property_assign_semantics): Make it a typedef.
1955         (PROPERTY_ASSIGN_SEMANTICS): New.
1956         (PROPERTY_DYNAMIC): New.
1957         (PROPERTY_REF_OBJECT): New.
1958         (PROPERTY_REF_PROPERTY_DECL): New.
1959         * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
1960         (in_objc_property_setter_name_context): Removed.
1961         (objc_add_property_declaration): Removed copies and ivar arguments
1962         and code supporting them.  Fixed recovering when readonly and
1963         setter attributes are specified.  Removed support for @property in
1964         @implementation context.  Updated error message.  Double-check
1965         that a property does not have a DECL_INITIAL.  Validate the
1966         property assign semantics and emit appropriate errors and
1967         warnings.  Check for duplicate property declarations.  Set
1968         DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
1969         PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
1970         PROPERTY_DECL.  Do not set PROPERTY_COPIES.  Set
1971         PROPERTY_IVAR_NAME to NULL_TREE.
1972         (objc_build_getter_call): Renamed to
1973         objc_maybe_build_component_ref.  If the property is not found in
1974         the interface, search in the protocol list.  Do not generate the
1975         getter call; instead, build and return a PROPERTY_REF.
1976         (objc_is_property_ref): New.
1977         (objc_setter_func_call): Removed.
1978         (get_selector_from_reference): Removed.
1979         (is_property): Removed.
1980         (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
1981         Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
1982         the PROPERTY_REF.  Generate an error if the property is read-only.
1983         (build_property_reference): Removed.
1984         (objc_finish_message_expr): Removed check to produce "readonly
1985         property can not be set" error when
1986         in_objc_property_setter_name_context.  We now generate the error
1987         earlier, in objc_maybe_build_modify_expr, which will only generate
1988         the setter call if the property is readwrite.
1989         (check_methods): Recognize dynamic properties.
1990         (check_methods_accessible): Same change.
1991         (objc_build_property_ivar_name): Removed.
1992         (objc_build_property_setter_name): Dropped bool argument.  Always
1993         add the ':' at the end.
1994         (objc_gen_one_property_datum): Removed.
1995         (objc_process_getter_setter): Removed.
1996         (objc_synthesize_getter): Mark 'klass' argument as unused.  Use
1997         PROPERTY_GETTER_NAME instead of PROPERTY_NAME.  Set the
1998         DECL_SOURCE_LOCATION of the new method to be the same as the one
1999         for the @synthesize.  Always use PROPERTY_IVAR_NAME as it is
2000         instead of trying to guess what it should be.  Removed use of
2001         CLASS_IVARS.  Use the location of @synthesize for c_finish_return
2002         and c_end_compound_statement.
2003         (objc_synthesize_setter): Mark 'klass' argument as unused.  Use
2004         PROPERTY_SETTER_NAME instead of trying to guess what it should be.
2005         Set the DECL_SOURCE_LOCATION of the new method to be the same as
2006         the one for the @synthesize.  Always use PROPERTY_IVAR_NAME as it
2007         is instead of trying to guess what it should be.  Removed use of
2008         CLASS_IVARS.  Use the location of @synthesize for c_finish_return
2009         and c_end_compound_statement.  Emit an error and keep going,
2010         instead of aborting, if the setter prototype does not have the
2011         expected argument.
2012         (objc_add_synthesize_declaration_for_property): New.
2013         (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
2014         all arguments.  Improved error message.  Filled in the rest of the
2015         function, which used to be a placeholder, with an actual
2016         implementation.
2017         (objc_add_dynamic_declaration_for_property): New.
2018         (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
2019         arguments.  Improved error message.  Filled in the rest of the
2020         function, which used to be a placeholder, with an actual
2021         implementation.
2022         (objc_gen_property_data): Rewritten.
2023         (finish_class): Added explicit switch cases for
2024         CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
2025         PROTOCOL_INTERFACE_TYPE.  Added a default switch case which is
2026         gcc_unreachable.  Rewritten the processing of properties, in
2027         particular to not synthesize prototypes for getters and setters if
2028         they already exist and to install the getter and setter names into
2029         PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME.  Do not generate
2030         warnings about setter, getter and ivar property attributes.
2031         (objc_lookup_ivar): Removed support for properties.
2032         (objc_gimplify_property_ref): New.
2033         (objc_gimplify_expr): Use a switch.  In case of a PROPERTY_REF, call
2034         objc_gimplify_property_ref.
2036 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2038         * objc-act.c (objc_add_property_declaration): Added arguments to
2039         pass the various property attributes that were parsed with the
2040         property declaration.  Process arguments to determine the final
2041         property attributes and produce error messages as appropriate.
2042         Added temporary code to keep the compiler silent about variables
2043         set but not used - for new attributes that are only checked but
2044         have no effect yet.
2045         (property_readonly): Removed.
2046         (property_setter): Removed.
2047         (property_getter): Removed.
2048         (property_ivar): Removed.
2049         (property_copies): Removed.
2050         (objc_set_property_attr): Removed.
2051         * objc-act.h (enum property_assign_semantics): New.
2053 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2055         * objc-act.c (objc_add_property_variable): Renamed to
2056         objc_add_property_declaration.  Added location argument.  Updated
2057         warnings and errors to use it.  Use error, not fatal_error, if a
2058         property declaration is found outside an interface or
2059         implementation context.
2061 2010-10-24  Nicola Pero  <nicola.pero@meta-innovation.com>
2063         * objc-act.c (objc_build_keyword_decl): Updated comments.  Do not
2064         emit a warning that method parameter attributes are unimplemented.
2065         Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
2066         (start_method_def): Copy attributes from each KEYWORD_DECL into
2067         the corresponding PARM_DECL.
2068         (objc_warn_deprecated_use): Removed.
2069         (build_objc_method_call): Call warn_deprecated_use, not
2070         objc_warn_deprecated_use.
2071         (objc_maybe_printable_name): Do not try to get the identifier name
2072         of DECLs that we don't recognize.  Immediately return NULL for them.
2073         (objc_printable_name): Removed C++-specific case, which is no
2074         longer used.  Updated comments.
2076 2010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>
2078         * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
2079         (objc_demangle): Return NULL if demangling can not be done because
2080         the string to demangle is not an Objective-C mangled method name.
2081         Be smarter in demangling method names so that at least for methods
2082         with no arguments we are able to almost always demangle '_' correctly.
2083         Updated comments.
2084         (objc_maybe_printable_name): New.
2085         (objc_printable_name): Call objc_maybe_printable_name.  If it
2086         returns NULL, call cxx_printable_name in Objective-C++.
2088 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
2090         Based on the CFString implementation in FSF apple/trunk branch.
2092         * objc-act.c (objc_build_string_object): Handle CFStrings.
2094 2010-10-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2096         * objc-act.c (get_objc_string_decl): Use a switch instead of a
2097         chain of ifs.  Use gcc_unreachable instead of abort.
2098         (add_objc_string): Same change.
2099         (generate_protocol_list): Same change - twice.
2100         (synth_id_with_class_suffix): Same change.
2101         (build_keyword_selector): Same change - twice.
2102         (objc_build_message_expr): Same change.
2103         (objc_build_selector_expr): Same change.
2104         (check_methods): Same change - and added missing gcc_unreachable
2105         for default case.
2106         (check_methods_accessible): Same change - twice, and added missing
2107         gcc_unreachable for default case in one of them.
2108         (start_class): Same change - and added missing gcc_unreachable for
2109         default case.
2110         (continue_class): Same change.
2111         (objc_gen_property_data): Same change.
2112         (finish_class): Same change.
2113         (encode_type_qualifiers): Added missing gcc_unreachable.
2114         (encode_type): Small code tidy up to reduce duplicated code.  Use
2115         gcc_unreachable instead of abort - twice.
2116         (encode_gnu_bitfield): Use a switch instead of a chain of ifs -
2117         twice.  Added missing gcc_unreachable for default case - twice.
2118         (dump_interface): Use a switch instead of a chain of ifs.
2119         (handle_impent): Same change.
2121 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
2123         * objc-act.h (objc_inherit_code): Removed.
2124         * objc-act.c (objc_inherit_code): Removed.
2125         (objc_set_method_type): Removed.
2126         (objc_build_method_signature): Added is_class_method argument.
2127         Use it instead of the global objc_inherit_code variable.
2128         (objc_add_method_declaration): Same change.
2129         (objc_start_method_definition): Same change.
2130         (objc_generate_cxx_ctor_or_dtor): Updated call to
2131         objc_start_method_definition.  Do not call objc_set_method_type.
2132         (adjust_type_for_id_default): Mark as inline.
2133         (objc_synthesize_getter): Updated call to
2134         objc_start_method_definition.  Do not set objc_inherit_code.
2135         (objc_synthesize_setter): Updated call to
2136         objc_start_method_definition.  Do not set objc_inherit_code.
2138 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
2140         Merge from 'apple/trunk' branch on FSF servers.  Obvious updates
2141         to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
2142         get it to compile in the current trunk.
2144         2006-01-27  Fariborz Jahanian  <fjahanian@apple.com>
2146         Radar 4345837
2147         * objc-act.c (hash_class_name_enter): New.
2148         (hash_class_name_lookup): New.
2149         (objc_declare_alias): Enter alias name into hash table.
2150         (objc_declare_class): Enter class name into hash table.
2151         (objc_is_class_name): Do a hash look up of class name.
2152         (hash_init): Initialize the two new hash tables.
2153         * objc-act.h: Added cls_name_hash_list and als_name_hash_list
2154         declarations, removed class_chain and alias_chain.
2156 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
2158         * objc-lang.c (finish_file): Removed.
2159         * objc-act.c (objc_finish_file): Renamed to
2160         objc_write_global_declarations.  Do not try to instantiate C++
2161         templates when compiling Objective-C++ as this is now
2162         automatically done before this function is called.  Do not check
2163         for syntax-only run or PCH generation as this is done by the
2164         callers.
2165         * objc-act.h (objc_finish_file): Removed.
2167 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2169         Implemented parsing @synthesize and @dynamic for
2170         Objective-C/Objective-C++.
2171         * objc-act.c (objc_add_synthesize_declaration): New.
2172         (objc_add_dynamic_declaration): New.
2174 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2176         * objc-act.c (lookup_and_install_protocols): Return NULL if passed
2177         error_mark_node.
2179 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2181         Merge from 'apple/trunk' branch on FSF servers.
2183         2006-03-10  Fariborz Jahanian  <fjahanian@apple.com>
2185         Radar 4407151
2186         * objc-act.c (objc_is_class_name): template parameter is not
2187         an objective class name.
2188         (objc_generate_cxx_cdtors): Check for the null
2189         objc_implementation_context.
2191 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2193         Merge from 'apple/trunk' branch on FSF servers.
2195         2005-11-08  Fariborz Jahanian  <fjahanian@apple.com>
2197         Radar 4330422
2198         * objc-act.c (objc_non_volatilized_type): New
2200         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
2202         Radar 4204796
2203         * objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
2204         types with proper attribute set and correctly.
2205         (objc_volatilize_decl): Remove unneeded code.
2206         (objc_type_quals_match): Use the new attribute to check on
2207         'volatilzed' type.
2208         (hash_init): removed unneeded code.
2210 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
2212         Merge from 'apple/trunk' branch on FSF servers.
2214         2006-03-27  Fariborz Jahanian  <fjahanian@apple.com>
2216         Radar 4133425
2217         * objc-act.c (objc_diagnose_private_ivar): New.
2219 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
2221         * objc-act.c: Rename 'objc_public_flag' to  objc_ivar_visibility and
2222         make its type 'objc_ivar_visibility_kind'.
2223         (objc_start_class_interface): Update to use visibility enum.
2224         (objc_start_class_implementation): Likewise.
2225         (objc_set_visibility): Update to use visibility enum, warn that
2226         @package is handle as per @public.
2227         (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
2228         * objc-act.h: Rename 'objc_public_flag' to  objc_ivar_visibility and
2229         make its type 'objc_ivar_visibility_kind'.
2231 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
2233         merge from FSF apple 'trunk' branch.
2234         2006 Fariborz Jahanian  <fjahanian@apple.com>
2236         Radars 4436866, 4505126, 4506903, 4517826
2237         * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New.
2238         property_readonly, property_getter, property_setter, property_ivar,
2239         property_copies, in_objc_property_setter_name_context: New vars.
2240         (objc_set_property_attr): New.
2241         (objc_add_property_variable): New.
2242         (lookup_property_in_list): New.
2243         (lookup_property): New.
2244         (objc_build_getter_call): New.
2245         (objc_setter_func_call): New.
2246         (get_selector_from_reference): New.
2247         (objc_build_setter_call): New.
2248         (is_property): New.
2249         (build_property_reference): New.
2250         (objc_finish_message_expr): Detect readonly property and warn.
2251         (objc_build_property_ivar_name): New.
2252         (objc_build_property_setter_name): New.
2253         (objc_gen_one_property_datum): New.
2254         (objc_process_getter_setter): New.
2255         (objc_synthesize_getter): New.
2256         (objc_synthesize_setter): New.
2257         (objc_gen_property_data): New.
2258         (finish_class): Generate property data.
2259         (comp_proto_with_proto): Separated from ...
2260         (match_proto_with_proto): ... New.
2261         (objc_lookup_ivar): Handle properties.
2262         * objc-tree.def (PROPERTY_DECL): New tree code.
2263         * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size.
2264         (METHOD_PROPERTY_CONTEXT): New.
2265         (PROPERTY_NAME): New.
2266         (PROPERTY_GETTER_NAME): New.
2267         (PROPERTY_SETTER_NAME): New.
2268         (PROPERTY_IVAR_NAME): New.
2269         (PROPERTY_READONLY): New.
2270         (PROPERTY_COPIES): New.
2271         (TOTAL_CLASS_RAW_IVARS): New.
2272         (CLASS_PROPERTY_DECL): New.
2273         (IMPL_PROPERTY_DECL): New.
2274         * objc-lang.c (objc_init_ts): Update fields for property_decl.
2276 2010-10-13  Richard Henderson  <rth@redhat.com>
2278         * objc-act.c (objc_eh_personality): Update call to
2279         build_personality_function.
2281 2010-10-13  Iain Sandoe  <iains@gcc.gnu.org>
2283         merge from FSF apple 'trunk' branch.
2285         2006-04-26  Fariborz Jahanian  <fjahanian@apple.com>
2286         Radar 3803157 (method attributes)
2287         * objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
2288         * objc-act.c (objc_decl_method_attributes): New.
2289         (objc_add_method_declaration): Process method's attribute.
2290         (objc_start_method_definition): Ditto.
2291         (build_objc_method_call): Inject method attribute into
2292         built function type.
2293         (objc_method_decl): New.
2294         (objc_warn_deprecated)use): New.
2296 2010-10-07  Andi Kleen  <ak@linux.intel.com>
2298         * Make-lang.in (cc1obj-dummy): Remove.
2299         (cc1obj-checksum): Change to run checksum over object files
2300         and options only.
2302 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
2304         PR objc/45925
2305         * objc-act.c (objc_finish_foreach_loop): Convert return value of
2306         countByEnumeratingWithState:objects:count: to long unsigned int.
2308 2010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
2310         * objc-act.c (build_objc_method_call): Replace calls to
2311         build_function_call () with the VEC equivalent.  Construct parameter
2312         lists as VECs.
2314 2010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
2316         * objc-act.c (objc_build_message_expr): Call mark_exp_read () to
2317         signal that the receiver has been used.
2319 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
2321         * README: Obsolete file removed.
2323 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
2325         Implemented fast enumeration for Objective-C.
2326         * objc-act.c (build_fast_enumeration_state_template): New.
2327         (TAG_ENUMERATION_MUTATION): New.
2328         (TAG_FAST_ENUMERATION_STATE): New.
2329         (synth_module_prologue): Call build_fast_enumeration_state_template() and set up
2330         objc_enumeration_mutation_decl.
2331         (objc_create_temporary_var): Allow providing a name to temporary
2332         variables.
2333         (objc_build_exc_ptr): Updated calls to
2334         objc_create_temporary_var().
2335         (next_sjlj_build_try_catch_finally): Same change.
2336         (objc_finish_foreach_loop): New.
2337         * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
2338         OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
2339         objc_enumeration_mutation_decl.
2341         Merge from 'apple/trunk' branch on FSF servers.
2343         2006-04-12  Fariborz Jahanian  <fjahanian@apple.com>
2345         Radar 4507230
2346         * objc-act.c (objc_type_valid_for_messaging): New routine to check
2347         for valid objc object types.
2348         (objc_finish_foreach_loop): Check for invalid objc objects in
2349         foreach header.
2351 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
2353         Merge from 'apple/trunk' branch on FSF servers.
2355         2005-10-17  Fariborz Jahanian  <fjahanian@apple.com>
2357         Radar 4290840
2358         * objc-act.c (objc_start_method_definition): Check for
2359         error_mark_node for the selector name and make a quick exit.
2361 2010-10-04  Andi Kleen  <ak@linux.intel.com>
2363         * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
2365 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
2367         merge from FSF 'apple/trunk' branch.
2368         2006-01-30  Fariborz Jahanian  <fjahanian@apple.com>
2370         Radar 4386773
2371         * objc-act.c (objc_set_method_opt): New function.
2372         (objc_start_protocol, objc_finish_interface): Reset
2373         objc_method_optional_flag flag.
2374         (objc_add_method_declaration): Pass on the new
2375         flag to objc_add_method.
2376         (objc_add_method): Add optional methods to new chain in
2377         the protocol class.
2378         * objc-act.h (CLASS_OPTIONAL_CLS_METHODS)
2379         (CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
2380         class's optional method chains.
2382 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2384         Merge from 'apple/trunk' branch on FSF servers.
2386         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
2388         Radar 4278236
2389         * objc-act.c (objc_declare_class): Pick the right
2390         type tree.
2392 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2394         Merge from 'apple/trunk' branch on FSF servers.
2396         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
2398         Radar 4281748
2399         * objc-act.c (objc_check_global_decl): New
2401 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2403         * objc-act.c (objc_is_reserved_word): Removed.
2405 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
2407         * objc-act.c (objc_add_method_declaration): Handle and ignore
2408         attributes.
2409         (objc_start_method_definition): Likewise.
2410         (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor.
2411         (objc_build_keyword_decl): Handle and ignore attributes.
2413 2010-09-28  Richard Henderson  <rth@redhat.com>
2415         * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
2417 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
2419         * objc-act.c (objc_start_class_interface): Handle and ignore attributes.
2420         (objc_start_category_interface): Likewise.
2421         (objc_start_protocol): Likewise.
2423 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2425         Merge from 'apple/trunk' branch on FSF servers.
2427         2005-08-23  Stuart Hastings  <stuart@apple.com>
2428                     Ziemowit Laski  <zlaski@apple.com>
2430         Radar 4209854
2431         * objc-act.c (objc_decay_parm_type): New function.
2432         (get_arg_type_list): Decay types for all named arguments.
2433         (objc_push_parm): Rebuild the PARM_DECL if its type has
2434         been decayed.
2436 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2438         * objc-act.c (encode_type): Fixed encoding enums with the next
2439         runtime.
2441 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2443         Merge from 'apple/trunk' branch on FSF servers.
2445         2005-07-18  Ziemowit Laski  <zlaski@apple.com>
2447         Radar 4175534
2448         * objc-act.c (objc_compare_types): A new silent comparison
2449         mode (-4), differing from regular comparison (-3) in that
2450         'false' is returned instead of issuing warnings.
2452 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2454         * objc-act.c (encode_type): Do not add 'r' with the next runtime.
2455         (encode_aggregate_within): Reorganized code to be more readable.
2456         (encode_aggregate_fields): Updated second argument to be 'bool'
2457         instead of 'int'.
2459 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2461         PR objc/45763
2462         PR objc/25450
2463         PR objc/25464
2464         * objc-act.c: Improved comments for encoding functions.
2465         (encode_aggregate_within): For the GNU runtime, rewritten some
2466         obsfuscated code to clarify the various cases.
2467         (encode_aggregate): Function removed.
2468         (encode_array): Generate an error if asked to encode an incomplete
2469         array as part of generating instance variables.  Else, when
2470         encoding an incomplete array inside a structure, encode it as an
2471         array of zero size.
2472         (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
2473         '^c' instead of '*'.
2474         (encode_gnu_bitfield): Encode enumerated types exactly in the same
2475         type as integer types instead of using a hardcoded 'i'.  If asked
2476         to encode a non-integer type as a bitfield, do not abort
2477         compilation immediately; instead generate an error, then skip the
2478         type.
2479         (encode_type): Use a 'switch' instead of a sequence of 'if's.
2480         Added a 'default' clause that gets executed if the type can not be
2481         matched, and that encodes it as '?' (unknown) and produces a
2482         warning.  For the GNU runtime, encode enumerated types exactly in
2483         the same way as integer types instead of using a hardcoded 'i'.
2484         Encode long double as 'D'.  Encode 128-bit integers as 'T' or 't'.
2485         Encode C++ reference types as pointers.  Call encode_vector to
2486         encode vectors.
2487         (encode_vector): New function.
2489 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2491         Merge from 'apple/trunk' branch on FSF servers.  I modified the
2492         changes to be used only when compiling for the NeXT runtime.
2494         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
2496         Radar 4301047
2498         * objc-act.c (encode_type): Remove the hack.
2500         2005-07-20  Ziemowit Laski  <zlaski@apple.com>
2502         Radar 4136935
2503         * objc-act.c (pointee_is_readonly): New function.
2504         (encode_pointer, encode_aggregate_within, encode_type):
2505         Attempt to emulate GCC 3.3 when generating type encodings.
2507 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2509         Merge from 'apple/trunk' branch on FSF servers.
2511         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
2513         Radar 4229905
2514         * objc-act.c (objc_have_common_types): New function.
2516         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
2518         Radar 4154928
2519         * objc-act.c (objc_common_type): New function.
2521 2010-09-27  Richard Guenther  <rguenther@suse.de>
2523         * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
2524         (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
2526 2010-09-26  Nicola Pero  <nicola.pero@meta-innovation.com>
2528         * objc-act.c: Removed historical, obsolete comment at the top of
2529         the file.
2531 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2533         PR objc/23710
2534         * objc-act.c (objc_start_method_definition): Do not abort upon a
2535         'method definition not in @implementation context' error.  Return
2536         'false' instead.
2538 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2540         PR objc/25965
2541         * objc-act.c (objc_get_interface_ivars): New function.
2542         (objc_collecting_ivars): New variable.
2543         (continue_class): Set and reset objc_collecting_ivars for context.
2545 2010-09-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2547         Merge from 'apple/trunk' branch on FSF servers.
2549         2006-03-09  Fariborz Jahanian  <fjahanian@apple.com>
2551         Radar 4457381
2552         * objc-act.c (objc_finish_message_expr): Look for message in
2553         @class's protocol list.
2555         2006-02-07  Fariborz Jahanian  <fjahanian@apple.com>
2557         Radar 4219590
2558         * objc-act.c (objc_start_method_definition): Initialize
2559         break/continue labels.
2561         2005-08-22  Ziemowit Laski  <zlaski@apple.com>
2563         Radar 4174166
2564         * objc-act.c (objc_compare_types): Compare function
2565         pointers; indicate success if the right-hand side has
2566         a return type that is covariant, and the argument types
2567         contravariant, with those of the left side.
2569         2005-08-22  Ziemowit Laski  <zlaski@apple.com>
2571         Radar 4216500
2572         * objc-act.c (objc_get_protocol_qualified_type): When looking
2573         at a typedef, retrieve the precise type it describes (rather
2574         than merely looking up a class by name).
2576 2010-09-10  Nicola Pero  <nicola.pero@meta-innovation.com>
2578         * objc-act.c (objc_begin_try_stmt): Generate an error if
2579         -fobjc-exceptions was not used.  (objc_build_throw_stmt): Same
2580         change.
2582 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2584         * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2586 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
2588         PR objc/44140
2589         * objc-act.c: build_objc_string_decl() remove declaration.
2590         (finish_var_decl): Remove forcing of var output and marking
2591         as "Used".
2592         (init_def_list): Use integer_zero_node.
2593         (init_objc_symtab): Use integer_zero_node, make the short
2594         integer type specific on relevant nodes.
2595         (generate_objc_symtab_decl): Remove call to
2596         forward_declare_categories().  Use null_pointer_node where
2597         appropriate.
2598         (build_module_descriptor): Comment and mark this item as
2599         DECL_PRESERVE_P.
2600         (generate_static_references): Use gcc_unreachable instead of
2601         abort ().
2602         (diagnose_missing_method): New.
2603         (build_next_selector_translation_table): New.
2604         (build_gnu_selector_translation_table): New.
2605         (add_objc_string): Merge code from build_objc_string_decl...
2606         ... and delete build_objc_string_decl().
2607         (generate_dispatch_table): Make integer types explicit.
2608         (generate_category): Pass implent and arrange for the data
2609         to be extracted within the routine.  Do not start new vars,
2610         but finish the ones collcted during parsing.
2611         (generate_shared_structures): Likewise.
2612         (finish_objc): Reorder code so that we finish variables before
2613         referencing them.  Save the global data before calling meta-data
2614         creation routines, and pass the current reference to the two
2615         main routines.  Only call generate_objc_image_info () for the
2616         NeXT runtime.
2617         (generate_classref_translation_entry): Comment on and make this
2618         item DECL_PRESERVE_P.
2619         (handle_class_ref): Use varpool interfaces, comment on and make
2620         this item DECL_PRESERVE_P.
2621         (handle_impent): Likewise.
2622         (generate_objc_image_info): Only generate when the content is
2623         non-zero.  Make integer types explict.
2625 2010-07-03  Nathan Froyd  <froydnj@codesourcery.com>
2627         PR objc/24867
2628         * objc-act.c (build_sized_array_type): New function.
2629         (add_objc_string): Use it.
2630         (generate_protocol_list): Likewise.
2631         (generate_objc_image_info): Likewise.
2632         (add_field_decl): New function.
2633         (objc_build_struct): Use a VEC rather than building a TREE_LIST.
2634         (generate_struct_by_value_array): Use add_field_decl.
2635         (build_objc_symtab_template): Likewise.
2636         (build_module_descriptor): Likewise.
2637         (build_objc_exception_stuff): Likewise.
2638         (build_protocol_template): Likewise.
2639         (build_method_prototype_list_template): Likewise.
2640         (build_method_prototype_template): Likewise.
2641         (build_category_template): Likewise.
2642         (build_selector_template): Likewise.
2643         (build_class_template): Likewise.
2644         (build_super_template): Likewise.
2645         (build_ivar_template): Likewise.
2646         (build_ivar_list_template): Likewise.
2647         (build_method_list_template): Likewise.
2648         (build_method_template): Likewise.
2650 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
2652         * objc-act.c: Do not include except.h.
2654 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2656         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
2657         allocation.
2659         * objc-act.c (objc_volatilize_decl): Likewise.
2660         (objc_build_string_object): Likewise.
2661         (hash_init): Likewise.
2662         (hash_enter): Likewise.
2663         (hash_add_attr): Likewise.
2664         (add_class): Likewise.
2665         (start_class): Likewise.
2667 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
2669         * objc-act.c: Update include path for moved files.
2670         * objc-lang.c: Likewise.
2671         * config-lang.in: Update paths in gtfiles for files in c-family/.
2673 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
2675         * objc-act.c (build_next_objc_exception_stuff): Give setjmp a
2676         varargs type instead of a zero-argument type.
2678 2010-05-30  Nathan Froyd  <froydnj@codesourcery.com>
2680         * objc-act.c (synth_module_prologue): Use build_function_type_list
2681         instead of build_function_type.
2682         (build_module_initializer_routine): Likewise.
2683         (build_next_objc_exception_stuff): Likewise.
2684         (build_objc_exception_stuff): Likewise.
2686 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
2688         * objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
2689         * Make-lang.in (objc/objc-act.o): Update dependencies.
2691 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2693         * objc-act.h: Do not include gimple.h.
2694         * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
2695         Include gimple.h.  Explain why except.h has to be included.
2696         * objc-lang.c: Do not include diagnostics.h.
2697         * Make-lang.in: Update dependencies.
2699 2010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
2701         * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
2702         mismatch code for VECs.
2704 2010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
2706         * objc-act.c (objc_build_constructor): Take a VEC instead of a tree.
2707         Use build_constructor instead of build_constructor_from_list.
2708         (objc_build_string_object): Build a VEC argument for
2709         objc_build_constructor.
2710         (init_def_list): Likewise.
2711         (init_objc_symtab): Likewise.
2712         (init_module_descriptor): Likewise.
2713         (generate_static_references): Likewise.
2714         (build_selector_translation_table): Likewise.
2715         (build_descriptor_table_initializer): Likewise.
2716         (generate_descriptor_table): Likewise.
2717         (build_protocol_initializer): Likewise.
2718         (build_ivar_list_initializer): Likewise.
2719         (generate_ivars_list): Likewise.
2720         (build_dispatch_table_initializer): Likewise.
2721         (generate_dispatch_table): Likewise.
2722         (generate_protocol_list): Likewise.
2723         (build_category_initializer): Likewise.
2724         (build_shared_structure_initializer): Likewise.
2725         (generate_objc_image_info): Likewise.
2727 2010-04-30  Iain Sandoe  <iains@gcc.gnu.org>
2729         PR objc++/32052
2730         * objc-act.c (encode_aggregate_within): Encode structure tags
2731         with template args for ObjC++.
2733 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2735         * objc-act.c: Do not include varray.h.
2737 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2739         PR c/18624
2740         * objc-act.c (finish_var_decl, objc_begin_catch_clause,
2741         really_start_method, get_super_receiver, handle_class_ref): Set
2742         DECL_READ_P in addition to TREE_USED.
2744 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
2746         PR objc/35996
2747         * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
2748         -fgnu-runtime and set flag_objc_gc to zero.
2750 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
2752         PR objc++/23716
2753         * objc-act.c (build_module_initializer_routine): Make the argument
2754         to objc_start_function NULL_TREE when compiling ObjC++.
2756 2010-02-18  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2757             Mike Stump  <mikestump@comcast.net>
2759         PR objc/43061
2760         * objc-act.c (finish_var_decl): Set the generated symbols as "used".
2762 2009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
2764         * objc-act.c (objc_substitute_decl, build_ivar_reference,
2765         get_super_receiver): Update build_indirect_ref calls.
2767 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
2769         * objc-act.c (generate_shared_structures): Remove unused sc_spec and
2770         decl_specs variables.
2771         (objc_build_message_expr): Remove unused loc variable.
2772         (objc_finish_message_expr): Remove unused saved_rtype variable.
2773         (encode_field_decl): Remove unused type variable.
2775         PR obj-c++/42156
2776         * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
2777         type variants that don't have it initialized yet.
2779 2009-09-14  Jan Hubicka  <jh@suse.cz>
2781         * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
2783 2009-09-14  Richard Henderson  <rth@redhat.com>
2785         * objc-act.c (objc_init_exceptions): Don't call
2786         default_init_unwind_resume_libfunc.
2787         (objc_build_exc_ptr): Use __builtin_eh_pointer.
2789 2009-09-13  Richard Guenther  <rguenther@suse.de>
2790             Rafael Avila de Espindola  <espindola@google.com>
2792         * objc-act.c (objc_eh_runtime_type): Export.
2793         (objc_init_exceptions): Remove.  Move warning code ...
2794         (objc_begin_try_stmt): ... here
2795         (objc_build_throw_stmt): ... and here.
2796         (objc_eh_personality_decl): New.
2797         (objc_eh_personality): New function.
2798         * objc-act.h (objc_eh_runtime_type): Declare.
2799         (objc_eh_personality): Likewise.
2800         * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
2801         (LANG_HOOKS_EH_PERSONALITY): Likewise.
2803 2009-09-03  Diego Novillo  <dnovillo@google.com>
2805         * objc-lang.c (lang_hooks): Remove const qualifier.
2807 2009-08-20  Richard Guenther  <rguenther@suse.de>
2809         * objc-act.c: Include c-lang.h
2810         * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
2812 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
2813             Manuel López-Ibáñez  <manu@gcc.gnu.org>
2815         PR 40435
2816         * objc-act.c: Add location argument to all calls to
2817         build_fold_addr_expr.
2819 2009-07-14  Taras Glek  <tglek@mozilla.com>
2820             Rafael Espindola  <espindola@google.com>
2822         * Make-lang.in (objc.install-plugin): New target for
2823         installing plugin headers.
2825 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2827         * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
2828         EXPR_LOCATION.
2830 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2832         * objc-act.c: Replace %J by an explicit location. Update all
2833         calls.
2835 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2837         * objc-act.c: Replace %H by an explicit location. Update all
2838         calls.
2840 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2842         PR objc/28050
2843         * objc-act.c (objc_build_message_args): Return if ARGS is the
2844         error_mark_node.
2846 2009-06-19  Ian Lance Taylor  <iant@google.com>
2848         * objc-act.c (objc_in_struct, objc_struct_types): Remove.
2849         (objc_struct_info): New static variable.
2850         (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
2851         and &objc_struct_types, to start_struct.
2852         (objc_finish_struct): Likewise for finish_struct.
2854 2009-06-15  Ian Lance Taylor  <iant@google.com>
2856         * objc-act.c (objc_start_function): Don't set
2857         label_context_stack_se or label_context_stack_vm.
2859 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2861         * objc-act.c (finish_var_decl): Pass location to finish_decl.
2862         (objc_get_parm_info): Same.
2863         (get_super_receiver): Same.
2864         * objc-act.c (objc_build_component_ref): Pass location to
2865         build_compound_ref.
2866         (build_module_initializer_routine): Pass location to
2867         c_end_compound_stmt.
2868         (objc_generate_static_init_call): Pass location to build_stmt.
2869         (build_typed_selector_reference): New location argument.
2870         (build_selector_reference): Same.
2871         (objc_substitute_decl): Pass location to build_array_ref.
2872         (next_sjlj_build_try_catch_finally): Pass location to build_stmt.
2873         (objc_begin_catch_clause): Same.
2874         (objc_finish_try_stmt): Same.
2875         (objc_finish_catch_clause): Pass location to c_end_compound_stmt.
2876         (objc_build_throw_stmt): New argument.
2877         (generate_shared_structures): Pass location to build_c_cast.
2878         (objc_build_message_expr): Use local location.
2879         (objc_finish_message_expr): Use input_location.
2880         (build_objc_method_call): New argument.
2881         (objc_build_selector_expr): Same.
2882         (get_super_receiver): Pass location to build_c_cast,
2883         build_modify_expr, build_compound_expr.
2884         * objc-act.c: Add location to all calls to start_struct, build_decl,
2885         finish_struct.
2887 2009-06-09  Ian Lance Taylor  <iant@google.com>
2889         * objc-act.c (objc_gimplify_expr): Change return type to int.
2890         * objc-act.h: Update declaration.
2892 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2894         * objc-act.c (objc_init): Skip print_struct_values during
2895         -fcompare-debug-second.
2897 2009-06-03  Ian Lance Taylor  <iant@google.com>
2899         * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
2900         $(SYSTEM_H).
2902 2009-05-27  Ian Lance Taylor  <iant@google.com>
2904         * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
2905         $(LINKER).
2906         (cc1obj$(exeext)): Likewise.
2908 2009-05-26  Ian Lance Taylor  <iant@google.com>
2910         * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
2911         (cc1obj$(exeext)): Likewise.
2913 2009-05-20  Ian Lance Taylor  <iant@google.com>
2915         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
2916         than NULL_TREE to build_special_member_call.
2918 2009-05-10  Ian Lance Taylor  <iant@google.com>
2920         * objc-act.c (objc_building_struct): New static variable.
2921         (objc_in_struct, objc_struct_types): New static variables.
2922         (objc_start_struct, objc_finish_struct): New static functions.
2923         (generate_struct_by_value_array): Call objc_start_struct instead
2924         of start_struct, and call objc_finish_struct instead of
2925         finish_struct.
2926         (objc_build_struct, build_objc_symtab_template): Likewise.
2927         (build_module_descriptor): Likewise.
2928         (build_next_objc_exception_stuff): Likewise.
2929         (build_protocol_template): Likewise.
2930         (build_method_prototype_list_template): Likewise.
2931         (build_method_prototype_template): Likewise.
2932         (build_category_template, build_selector_template): Likewise.
2933         (build_class_template, build_super_template): Likewise.
2934         (build_ivar_template, build_ivar_list_template): Likewise.
2935         (build_method_list_template): Likewise.
2936         (build_method_template): Likewise.
2938 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
2940         * objc-act.c: Include intl.h.
2941         (objc_lookup_protocol): Use complete sentences for diagnostics
2942         with %qE for identifiers and translating results of
2943         gen_type_name_0 to locale character set.
2944         (objc_check_decl, check_protocol_recursively,
2945         lookup_and_install_protocols, objc_build_string_object,
2946         objc_get_class_reference, objc_declare_alias, objc_declare_class,
2947         objc_get_class_ivars, error_with_ivar, check_duplicates,
2948         objc_finish_message_expr, objc_build_protocol_expr,
2949         objc_build_selector_expr, build_ivar_reference, objc_add_method,
2950         add_category, add_instance_variable, objc_is_public,
2951         check_methods, check_methods_accessible, check_protocol,
2952         start_class, finish_class, start_protocol, really_start_method,
2953         get_super_receiver, objc_lookup_ivar): Use %E and %qE for
2954         identifiers in diagnostics.  Translate generated text to locale
2955         character set as needed.
2956         (check_protocol, check_protocols): Change name parameter to type
2957         tree.
2958         (lang_report_error_function): Remove.
2960 2009-04-27  Ian Lance Taylor  <iant@google.com>
2962         * objc-act.c (objc_gimplify_expr): Add casts to enum type.
2964 2009-04-24  Ian Lance Taylor  <iant@google.com>
2966         * objc-act.c (get_super_receiver): Update calls to
2967         build_modify_expr to pass new argument.
2969 2009-04-21  Taras Glek  <tglek@mozilla.com>
2971         * objc-act.c: Update GTY annotations to new syntax.
2972         * objc-act.h: Likewise.
2974 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
2976         * ChangeLog: Add copyright and license notices.
2978 2009-04-20  Ian Lance Taylor  <iant@google.com>
2980         * objc-act.c (objc_rewrite_function_call): Change parameter from
2981         params to first_param.  Change all callers.
2983 2009-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
2985         PR bootstrap/39583
2986         * objc-act.c (in_late_binary_op): Define for Objective-C++.
2988 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2990         PR c/456
2991         PR c/5675
2992         PR c/19976
2993         PR c/29116
2994         PR c/31871
2995         PR c/35198
2996         * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
2998 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
3000         PR bootstrap/38262
3001         * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
3002         remove GMPLIBS.
3004 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
3006         * objc-act.c (objc_build_string_object): Pass location to
3007         build_unary_op.
3008         (init_def_list): Same.
3009         (init_objc_symtab): Same.
3010         (init_module_descriptor): Same.
3011         (build_module_initializer_routine): Same.
3012         (generate_static_references): Same.
3013         (build_typed_selector_reference): Same.
3014         (add_objc_string): Same.
3015         (objc_substitute_decl): Same.
3016         (objc_build_ivar_assignment): Same.
3017         (objc_build_global_assignment): Same.
3018         (objc_build_strong_cast_assignment): Same.
3019         (generate_protocols): Same.
3020         (build_protocol_initializer): Same.
3021         (build_dispatch_table_initializer): Same.
3022         (generate_protocol_list): Same.
3023         (build_category_initializer): Same.
3024         (build_shared_structure_initializer): Same.
3025         (generate_shared_structures): Same.
3026         (objc_build_protocol_expr): Same.
3027         (build_ivar_reference): Same.
3028         (get_super_receiver): Same.
3030 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
3032         * objc-act.c (next_sjlj_build_enter_and_setjmp): Call
3033         c_common_truthvalue_conversion with location.
3034         (next_sjlj_build_catch_list): Same.
3035         (next_sjlj_build_try_catch_finally): Same.
3037 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3039         PR objc/37460
3040         * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
3041         * objc-act.h (objc_get_callee_fndecl): Remove prototype.
3042         * objc-act.c (objc_get_callee_fndecl): Kill.
3044 2008-09-17  Jan Hubicka  <jh@suse.cz>
3046         PR c++/18071
3047         * objc-act.c (objc_finish_method_definition): Do not set
3048         DECL_INLINE.
3050 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
3052         * objc-act.c (build_typed_selector_reference): Pass input_location to
3053         build_unary_op calls.
3054         (build_selector_reference): Same, but to build_array_ref.
3055         (objc_substitute_decl): Same.
3056         (build_ivar_reference): Same, but to build_indirect_ref.
3057         (get_super_receiver): Same.
3059 2008-07-28  Richard Guenther  <rguenther@suse.de>
3061         Merge from gimple-tuples-branch.
3063         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
3065         * Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
3066         (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
3067         * objc-act.h: Include gimple.h instead of tree-gimple.h.
3068         * ipa-reference.c: Same.
3070         2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
3072         * objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
3073         * objc-act.h (objc_gimplify_expr): Change prototype accordingly.
3075 2008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3077         * objc-act.c: Fix comment typos.
3079 2008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3081         * objc-act.c (objc_start_class_interface,
3082         objc_start_category_interface, objc_start_class_implementation,
3083         objc_start_category_implementation, objc_build_struct,
3084         generate_static_references, build_private_template,
3085         lookup_category, objc_add_method, add_category,
3086         add_instance_variable, objc_is_public, conforms_to_protocol,
3087         start_class, continue_class, finish_class): Avoid C++ keywords.
3089 2008-07-14  Jason Merrill  <jason@redhat.com>
3091         PR objc++/36723
3092         * objc-act.c (objc_build_constructor): Update C++ tweak.
3094 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
3096         * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
3097         of DECL_IN_SYSTEM_HEADER.
3099 2008-07-11  Ian Lance Taylor  <iant@google.com>
3101         * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
3102         etc., not just when OBJCPLUS is defined.
3104 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3106         * objc-act.c (setup_string_decl, objc_build_string_object,
3107         hash_interface, eq_interface, objc_begin_try_stmt,
3108         encode_method_prototype, build_ivar_list_initializer,
3109         objc_build_encode_expr): Fix for -Wc++-compat.
3111 2008-05-12  Tomas Bily  <tbily@suse.cz>
3113         * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
3114         Use CONVERT_EXPR_P.
3116 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3118         * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
3120 2008-04-03  Tom Tromey  <tromey@redhat.com>
3122         * Make-lang.in (objc_OBJS): New variable.
3124 2008-03-27  Tom Tromey  <tromey@redhat.com>
3126         * Make-lang.in: Revert automatic dependency patch.
3128 2008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
3130         PR obj-c++/35704
3131         * objc-act.c (objc_build_component_ref): Fix call to
3132         finish_class_member_access_expr.
3133         (objc_generate_cxx_ctor_or_dtor): Fix call to
3134         build_special_member_call.
3136 2008-03-25  Andrew Pinski  <pinskia@gmail.com>
3138         PR objc/29197
3139         * objc-act.c (encode_type): Handle when type is error_mark_node.
3140         (objc_push_parm): Handle when the type of parm is error_mark_node.
3142 2008-03-25  Tom Tromey  <tromey@redhat.com>
3144         * Make-lang.in (objc_OBJS): New variable.
3145         (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
3147 2008-03-21  Andreas Tobler  <a.tobler@schweiz.org>
3149         PR bootstrap/35660
3150         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
3151         MAYBE_CLASS_TYPE_P.
3152         (objc_generate_cxx_cdtors): Likewise.
3153         (add_instance_variable): Likewise.
3155 2008-02-26  Tom Tromey  <tromey@redhat.com>
3157         * objc-act.c (objc_init): Remove old location code.
3159 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3161         PR other/35107
3162         * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
3164 2007-07-30  Nick Clifton  <nickc@redhat.com>
3166         * Make-lang.in: Change copyright header to refer to version 3 of
3167         the GNU General Public License and to point readers at the
3168         COPYING3 file and the FSF's license web page.
3169         * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
3170         config-lang.in, objc-lang.c: Likewise.
3172 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3174         * objc-act.c (objc_get_callee_fndecl): Constify.
3175         * objc-act.h (objc_get_callee_fndecl): Likewise.
3177 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3179         * objc-act.c (volatilized_hash, volatilized_eq, string_hash,
3180         string_eq): Constify.
3182 2007-04-04  Stuart Hastings  <stuart@apple.com>
3184         PR 31281
3185         * objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
3187 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
3189         * Make-lang.in: Add dummy lang.install-pdf target.
3191 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
3193         * objc-act.c: Fix comment typos.
3195 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
3196             Brooks Moses  <brooks.moses@codesourcery.com>
3197             Lee Millward  <lee.millward@codesourcery.com>
3199         * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
3200         (objc_get_callee_fndecl): Likewise.
3202 2007-01-23  Andrew Pinski  <pinskia@gmail.com>
3204         PR objc/27438
3205         * objc-act.c (objc_add_static_instance): Mark the decl as
3206         TREE_USED.
3208 2007-01-20  Andrew Pinski  <pinskia@gmail.com>
3210         PR objc/30479
3211         * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
3212         of htab_hash_pointer.
3213         (lookup_interface): Likewise.
3214         (add_class): Likewise.
3216 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
3218         * objc-act.c (objc_build_volatilized_type): Keep track of
3219         canonical types.
3220         (objc_get_protocol_qualified_type): Ditto.
3222 2006-11-02  Andreas Tobler  <a.tobler@schweiz.org>
3224         * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
3225         content where we called cp_finish_file.
3227 2006-10-23  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
3229         * objc-act.c (synth_module_prologue): Replace calls to
3230         builtin_function with add_builtin_function.
3231         (build_next_objc_exception_stuff): Replace calls to
3232         builtin_function with add_builtin_function.
3233         (build_objc_exception_stuff): Replace calls to
3234         builtin_function with add_builtin_function.
3236 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
3238         * Make-lang.in: Added empty "objc.pdf" target.
3240 2006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>
3242         PR objc/29195
3243         * objc-act.c (objc_push_parm): If we change the type of the
3244         decl, relayout the decl.
3246 2006-09-19  Eric Christopher  <echristo@apple.com>
3248         * objc-act.c (JBLEN): Rename to OBJC_JBLEN,
3249         default to something innocuous.
3250         (build_next_objc_exception_stuff): Rename JBLEN.
3252 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3254         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
3256 2006-07-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3258         PR obj-c++/28434
3259         * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
3261 2006-06-06  Mike Stump  <mrs@apple.com>
3263         * objc-act.c: Remove prototype for objc_build_volatilized_type.
3265 2006-05-24  Mike Stump  <mrs@apple.com>
3267         * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
3269 2006-05-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3271         PR objc/27240
3272         * objc-act.c (objc_is_public): Return early on invalid type.
3274 2006-03-02  Fariborz Jahanian  <fjahanian@apple.com>
3276         * objc-act.c (init_module_descriptor): Remove file name from
3277         module descriptor.
3278         (gen_type_name_0): Fix ICE when issuing warning.
3280 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
3282         * Make-lang.in (OBJC): Remove.
3283         (OBJECTIVE-C): Remove.
3284         (objective-c): Remove.
3285         (.PHONY): Remove objective-c and ObjC.
3287 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
3289         PR objc/25360
3290         * objc-act.c (encode_type): Encode Complex types as 'j' followed
3291         by the inner type.
3293 2005-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
3295         PR objc/25348
3296         * objc-act.c (encode_array): Handle arrays to zero sized types.
3298 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
3300         * Make-lang.in (objc.all.build, objc.install-normal): Remove.
3302 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
3304         * Make-lang.in: Remove all dependencies on s-gtype.
3306 2005-12-02  Richard Guenther  <rguenther@suse.de>
3308         * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
3309         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
3310         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
3311         build_objc_method_call, objc_rewrite_function_call): Use buildN
3312         instead of build.
3314 2005-10-20  Geoffrey Keating  <geoffk@apple.com>
3316         * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
3317         on objc_msgSend and like builtin functions.
3319 2005-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3321         * objc-act.c (objc_build_component_ref): Adjust call to
3322         finish_class_member_access_expr due to a changed prototype.
3324 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
3326         PR objc/23306
3327         * objc-act.c (generate_strings): Remove and move code to
3328         finish decl to ...
3329         (add_objc_string): here when creating a new string decl.
3330         (finish_objc): Don't call generate_strings.
3332 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
3334         PR objc/23381
3335         * objc-act.c (next_sjlj_build_try_catch_finally): Set
3336         TREE_SIDE_EFFECTS on catch_seq after building it.
3338 2005-08-09  Andrew Pinski  <pinskia@physics.uc.edu>
3340         part of PR objc/21992
3341         * objc-act.c (handle_class_ref): The ref decl is always referenced.
3343 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
3345         Make CONSTRUCTOR use VEC to store initializers.
3346         * objc-act.c (objc_build_constructor): Use build_constructor_from_list
3347         instead of build_constructor.
3349 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
3351         * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
3352         removed.
3353         * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
3354         (KEYWORD_KEY_NAME): Use decl_minimal.
3355         (METHOD_SEL_NAME): Ditto..
3356         (METHOD_SEL_ARGS): Use decl_non_common.
3357         (METHOD_ADD_ARGS): Ditto.
3358         (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
3359         (METHOD_DEFINITION): Ditto.
3360         (METHOD_ENCODING): Ditto.
3361         * objc-lang.c: (objc_init_ts): New function.
3363 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
3365         * objc-act.c (objc_build_struct): Pass in an actual @interface
3366         instead of its name, and annotate the struct created (and all
3367         existing variants thereof) with the @interface.
3368         (objc_compare_types): Treat forward-declared ObjC classes
3369         as stand-alone (root) classes for purposes of type comparisons.
3370         (build_private_template): Move some code to objc_build_struct().
3372 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
3374         PR objc/22274
3375         * objc-act.c (objc_build_string_object): For GNU-style constants,
3376         use the @interface type rather than the built-in type.
3378 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
3380         * Make-lang.in (cc1plus-checksum.c): Use
3381         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
3383 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
3385         * objc-act.c: Use %q to quote in diagnostics.
3387 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
3389         * objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
3390         quoting.
3392 2005-06-30  Ziemowit Laski  <zlaski@apple.com>
3394         * objc-act.c (objc_build_volatilized_type): New function.
3395         (objc_volatilize_decl): Call objc_build_volatilized_type()
3396         instead of build_qualified_type().
3398 2005-06-29  Ziemowit Laski  <zlaski@apple.com>
3400         * objc-act.c (objc_build_internal_const_str_type): New function.
3401         (check_string_class_template): Use objc_get_class_ivars() instead
3402         of TYPE_FIELDS() to retrieve ivar list.
3403         (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
3404         than the field itself.
3405         (objc_build_string_object): Synthesize a "__builtin_ObjCString"
3406         type and use it to lay out compile-time string objects.
3407         * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
3408         New.
3410 2005-06-28  Paul Brook  <paul@codesourcery.com>
3412         * objc-act.c (objc_init_exceptions): Call
3413         default_init_unwind_resume_libfunc.
3415 2005-06-27  Ziemowit Laski  <zlaski@apple.com>
3417         * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
3418         portion of TYPE_LANG_SPECIFIC info for all variants of
3419         a class before calling finish_struct(), and restore
3420         same TYPE_OBJC_INFO afterwards.
3422 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
3424         * all files: Update FSF address in copyright headers.
3426 2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
3428         * objc-act.c (my_build_string_pointer): New.
3429         (objc_get_class_reference, get_super_receiver): Call
3430         my_build_string_pointer instead of my_build_string when building
3431         function arguments.
3433 2005-05-25  Mike Stump  <mrs@mrs.kithrup.com>
3435         * objc-act.c (volatilized_hash): Avoid warnings on 64-bit
3436         machines.
3438 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
3440         * objc-act.c (objc_build_struct): New function.
3441         (objc_derived_from_p): Likewise.
3442         (objc_build_component_ref): Likewise.
3443         (objc_copy_binfo): Likewise.
3444         (objc_xref_basetypes): Likewise.
3445         (objc_lookup_protocol): Likewise.
3446         (objc_compare_protocols): Likewise.
3447         (objc_volatilize_decl): Likewise.
3448         (encode_aggregate_fields): Likewise.
3449         (volatilized_hash): Likewise.
3450         (volatilized_eq): Likewise.
3451         (objc_compare_types): Likewise.
3452         (objc_type_quals_match): Likewise.
3453         (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
3454         of same name.
3455         (get_class_ivars): Add second parameter indicating if entire
3456         hierarchy is desired.
3457         (struct volatilized_type): New type.
3458         (volatilized_htab): New hash table.
3459         (objc_types_compatible_p, objc_comptypes): Remove functions.
3460         (synth_module_prologue): Do not initialize 'unused_list'.
3461         (objc_get_class_reference): Fix ObjC++ impedance mismatches.
3462         (objc_declare_alias): Implement as a typedef.
3463         (objc_substitute_decl, objc_gimplify_expr): Reformat.
3464         (objc_get_class_ivars): Adjust call to get_class_ivars().
3465         (next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
3466         build_ivar_reference, get_super_receiver): Call
3467         objc_build_component_ref() instead of build_component_ref().
3468         (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
3469         objc_comptypes().
3470         (build_private_template): Call objc_build_struct() instead of
3471         start_struct() and finish_struct().
3472         (hash_init): Initialize volatilized_htab.
3473         (objc_is_public): Adjust calls to objc_get_ivars(); adjust
3474         ObjC++ impedance mismatches.
3475         (encode_aggregate_within): Streamline by calling
3476         encode_aggregate_fields().
3477         * objc-act.h (objc_types_compatible_p): Remove prototype.
3478         (OCTI_UNUSED_LIST, unused_list): Remove slot.
3479         * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
3481 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
3483         * Make-lang.in (cc1obj-dummy): New.
3484         (cc1obj-checksum.c): New.
3485         (cc1obj-checksum.o): New.
3486         (cc1obj): Add cc1obj-checksum.o.
3488 2005-05-18  Mike Stump  <mrs@apple.com>
3490         PR objc/21641
3491         * objc-act.c (struct interface_tuple): Mark it up for GC.
3492         (interface_htab): It is really a struct interface_tuple.
3494 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
3495             Mike Stump  <mrs@apple.com>
3497         Yet more Objective-C++...
3499         * objc-act.c (objc_finish_try_stmt): Add return value.
3500         (objc_build_synchronized): Likewise.
3502         * objc-act.c (objc_is_gcable_type): Add.
3503         (objc_substitute_decl): Add.
3504         (objc_build_ivar_assignment): Add.
3505         (objc_build_global_assignment): Add.
3506         (objc_build_strong_cast_assignment): Add.
3507         (objc_is_ivar_reference_p): Add.
3508         (objc_is_global_reference_p): Add.
3509         (objc_generate_write_barrier): Add.
3510         (objc_rewrite_function_call): Add.
3511         (objc_gimplify_expr): Add Objective-C++ support.
3512         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
3513         (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
3514         (INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
3515         (DUP_TYPE_OBJC_INFO): Likewise.
3516         (struct imp_entry): Add field has_cxx_cdtors.
3517         (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
3518         OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
3519         OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
3520         OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
3521         OCTI_ASSIGN_STRONGCAST_DECL.
3522         (umsg_fast_decl): Add.
3523         (objc_assign_ivar_decl): Add.
3524         (objc_assign_ivar_fast_decl): Add.
3525         (objc_assign_global_decl): Add.
3526         (objc_assign_strong_cast_decl): Add.
3527         (objc_method_list_ptr): Add.
3528         (objc_method_proto_list_ptr): Add.
3529         (objc_ivar_list_ptr): Add.
3531         * objc-act.c (should_call_super_dealloc): Add.
3532         (OBJC_VERSION): Bump to 6.
3533         (objc_is_gcable_type): Add.
3534         (objc_substitute_decl): Add.
3535         (objc_build_ivar_assignment): Add.
3536         (objc_build_global_assignment): Add.
3537         (objc_build_strong_cast_assignment): Add.
3538         (objc_is_gcable_p): Add.
3539         (objc_is_ivar_reference_p): Add.
3540         (objc_is_global_reference_p): Add.
3541         (generate_shared_structures): Add flags parameter.
3542         (objc_generate_cxx_ctor_or_dtor): Add.
3543         (objc_generate_cxx_cdtors): Add.
3544         (add_class): Add name parameter.
3545         (objc_types_share_size_and_alignment): Add.
3546         (comp_proto_with_proto): Add strict parameter.
3547         (CLS_HAS_CXX_STRUCTORS): Add.
3548         (TAG_ASSIGNIVAR): Add.
3549         (TAG_ASSIGNGLOBAL): Add.
3550         (TAG_ASSIGNSTRONGCAST): Add.
3551         (TAG_MSGSEND_FAST): Add.
3552         (TAG_ASSIGNIVAR_FAST): Add.
3553         (TAG_CXX_CONSTRUCT): Add.
3554         (TAG_CXX_DESTRUCT): Add.
3555         (OBJC_LOOKUP_CLASS): Add.
3556         (OBJC_LOOKUP_NO_SUPER): Add.
3557         (objc_finish_file): Add pch support.
3558         (objc_finish_implementation): Add Objective-C++ support.
3559         (synth_module_prologue): Likewise.
3560         (synth_module_prologue): Add fast dispatching.
3561         (objc_get_class_reference): Add Objective-C++ support.
3562         (objc_generate_write_barrier): Likewise.
3563         (next_sjlj_build_enter_and_setjmp): Likewise.
3564         (objc_begin_try_stmt): Likewise.
3565         (build_next_objc_exception_stuff): Add fast ivar support.
3566         (build_private_template): Mark the record as used so debug
3567         information is generated.
3568         (build_protocol_template): Add Objective-C++ support.
3569         (objc_method_parm_type) Likewise.
3570         (objc_generate_cxx_ctor_or_dtor): Likewise.
3571         (objc_generate_cxx_cdtors): Likewise.
3572         (build_protocol_initializer): Likewise.
3573         (build_category_template): Likewise.
3574         (build_class_template): Likewise.
3575         (build_method_list_template): Likewise.
3576         (build_category_initializer): Likewise.
3577         (build_shared_structure_initializer): Likewise.
3578         (objc_finish_message_expr): Likewise.
3579         (build_objc_method_call): Add fast dispatch support.
3580         (lookup_method_static): Add support to end search at superclasses.
3581         (add_method_to_hash_list): Add strict parameter to
3582         comp_proto_with_proto.
3583         (objc_add_method): Likewise.
3584         (objc_add_method): Also set the interface_value.
3585         (add_instance_variable): Add Objective-C++ support.
3586         (objc_is_public): Likewise.
3587         (start_class): Likewise.
3588         (continue_class): Likewise.
3589         (encode_aggregate_within): Likewise.
3590         (start_method_def): Likewise.
3591         (objc_start_function): Clear current_function_returns_value
3592         and current_function_returns_null.
3593         (really_start_method): Add Objective-C++ support.
3594         (objc_finish_method_definition): Add warning for missing
3595         [super dealloc].
3596         (finish_objc): Add Objective-C++ support.
3597         (generate_objc_image_info): Likewise.
3598         (objc_lookup_ivar): Likewise.
3599         * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
3600         (INIT_TYPE_OBJC_INFO): Likewise.
3601         (DUP_TYPE_OBJC_INFO): Likewise.
3603 2005-04-23  DJ Delorie  <dj@redhat.com>
3605         * objc-act.c: Adjust warning() callers.
3607 2005-04-21  Roger Sayle  <roger@eyesopen.com>
3609         * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
3610         this field of an objc method decl.
3611         * objc-act.c (build_method_decl): Take an additional "ellipsis"
3612         argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
3613         (objc_build_method_signature): Accept additional "ellipsis"
3614         argument and pass it to build_method_decl.
3615         (get_arg_type_list, start_method_def, gen_method_decl): Use
3616         the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
3617         TREE_OVERFLOW field of a TREE_LIST node.
3619 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
3621         PR c/12913
3622         * objc-act.c (objc_start_function): Create stack level for context
3623         of identifiers with variably modified type.
3625 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
3627         PR c/772
3628         PR c/17913
3629         * objc-act.c (objc_start_function): Push context on
3630         label_context_stack.
3632 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3634         * objc-act.c (next_sjlj_build_enter_and_setjmp,
3635         next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
3636         Call c_common_truthvalue_conversion.
3638 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
3640         * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
3641         objc/objc-parse.c, objc/objc-parse.y): Remove.
3642         (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
3643         objc.distclean, objc.maintainer-clean): Update for new parser.
3644         * config-lang.in (gtfiles): Update for new parser.
3646 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
3648         * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
3649         copyright.
3651 2005-01-27  Matt Austern  <austern@apple.com>
3653         * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
3654         calling instantiate_pending_templates.
3656 2005-01-26  Alexander Malmberg  <alexander@malmberg.org>
3658         PR objc/18862
3659         * objc-act.c (build_selector_translation_table): Use
3660         input_location in the diagnostic for the GNU runtime or if
3661         TREE_PURPOSE (chain) is NULL.
3663 2005-01-25  Alexander Malmberg  <alexander@malmberg.org>
3665         PR objc/18408
3666         * objc-act.c (objc_types_compatible_p): New function.
3667         * objc-act.h (objc_types_compatible_p): Declare.
3668         * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3670 2005-01-16  Ziemowit Laski  <zlaski@apple.com>
3672         * objc-act.c (objc_push_parm): Call c_type_promotes_to()
3673         via a lang-hook.
3675 2005-01-15  Ziemowit Laski  <zlaski@apple.com>
3677         PR objc/19321
3678         * objc-act.c (get_arg_type_list): Decay function arguments into
3679         pointers.
3680         (objc_push_parm): Likewise; bring PARM_DECL construction closer
3681         in line with what the C front-end does.
3682         (objc_get_parm_info): Call pushdecl() and finish_decl() on
3683         each PARM_DECL, like the C front-end does.
3684         (start_method_def): Remove redundant ARRAY_TYPE decay.
3685         (objc_start_function): Bring closer in line with what the
3686         C front-end does for functions.
3688 2005-01-14  Mike Stump  <mrs@apple.com>
3690         * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
3691         that -fobjc-exceptions is accepted.
3693 2004-12-30  Ziemowit Laski  <zlaski@apple.com>
3695         PR objc/18971
3696         * objc-act.c (get_arg_type_list, start_method_def): Decay
3697         array arguments into pointers.
3698         (gen_type_name_0): Learn to pretty-print array types.
3700 2004-12-15  Ziemowit Laski  <zlaski@apple.com>
3702         * objc-act.c (build_private_template): Change to return 'void'; do
3703         not set ivar_context, uprivate_record or objc_instance_type.
3704         (objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
3705         retrieve protocol list from the pointee rather than the pointer itself;
3706         check TYPE_HAS_OBJC_INFO(...) precondition before accessing
3707         TYPE_OBJC_PROTOCOL_LIST.
3708         (objc_get_protocol_qualified_type): For types 'id' and 'Class',
3709         construct a variant of the pointee as well as the pointer, and
3710         store protocol information in the former.  When creating variants
3711         of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
3712         TYPE_OBJC_INTERFACE information.
3713         (objc_declare_class): If a TYPE_DECL is looked up, retrieve the
3714         underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
3715         for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
3716         holding an IDENTIFIER_NODE.
3717         (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
3718         accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
3719         of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
3720         an IDENTIFIER_NODE (meaning a @class forward-declaration only).
3721         (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
3722         lookup_interface().
3723         (continue_class): For @implementations, set ivar_context,
3724         uprivate_record and objc_instance_type, for @interfaces, call
3725         build_private_template().
3726         (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
3727         TYPE_OBJC_INTERFACE.
3728         (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
3729         accessing TYPE_OBJC_PROTOCOL_LIST.
3730         * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
3731         DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
3732         SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
3733         (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
3734         to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
3735         (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
3736         TYPE_LANG_SPECIFIC(...).
3737         (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
3738         (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
3739         TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
3740         adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
3741         instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
3743 2004-11-29  Joseph Myers  <joseph@codesourcery.com>
3745         PR c/7544
3746         * Make-lang.in (objc/objc-act.o): Update dependencies.
3747         * objc-act.c (objc_finish_file): Call
3748         maybe_apply_pending_pragma_weaks if not OBJCPLUS.
3750 2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
3752         PR objc/18406
3753         * obj-act.c (encode_type): 96bits doubles are encoded the
3754         same way as 64bit and 128bit doubles are.
3756 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
3758         * objc-act.c: Use %q, %< and %> for quoting in diagnostics.
3760 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
3762         PR objc/16546
3763         * objc-act.c (generate_method_descriptors): Remove setting
3764         the new decls' type to variable_length_type.
3765         (generate_ivar_lists): Likewise.
3766         (generate_dispatch_tables): Likewise.
3768 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
3770         * objc-act.c (objc_lookup_ivar): The new OTHER parameter
3771         contains the result of the ID lookup by the C or C++
3772         front-end; in class methods, use OTHER if it exists;
3773         in instance methods, use OTHER only if it is locally
3774         declared.
3776 2004-10-26  Ziemowit Laski  <zlaski@apple.com>
3778         * objc-act.c (finish_class): Do not synthesize bogus
3779         'extern objc_object *_Foo;' declarations for @interface Foo.
3781 2004-10-25  Ziemowit Laski  <zlaski@apple.com>
3782             David Ayers  <d.ayers@inode.at>
3784         * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
3785         instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
3786         'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
3787         'Class <Protocol> == id' and 'Class <Protocol> == Class'.
3788         (objc_is_id): Add test for 'super'.
3789         (objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
3790         receivers; if class methods are not found in protocol lists, search
3791         for instance methods therein and warn if one is found.  Look in
3792         global hash tables for suitable method as a last resort when messaging
3793         'id <Proto>', 'Class <Proto>' and invalid receiver types.
3794         (objc_add_method): Insert instance methods listed in protocols into
3795         the global class method hash table.
3796         * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
3797         IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
3798         addition to 'id <Proto>'.
3800 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
3802         PR objc/17923
3803         * objc-act.c (objc_build_string_object): Create a CONST_DECL
3804         for the NeXT runtime case.
3806 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
3808         * objc-act.c: Fix comment typos.
3810 2004-09-24  Ziemowit Laski  <zlaski@apple.com>
3812         * objc-act.c (init_objc_symtab, init_module_descriptor,
3813         build_shared_structure_initializer): When initializing 'long'
3814         fields, ensure that the initializer value is also 'long'.
3816 2004-09-24  Zack Weinberg  <zack@codesourcery.com>
3818         * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
3819         throughout.
3820         (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
3821         (build_selector_translation_table): Use %J in diagnostic
3822         instead of diddling input_line.  Fix spelling.
3824 2004-09-21  Ziemowit Laski  <zlaski@apple.com>
3826         * objc-act.c (objc_fold_objc_type_ref): New function.
3827         * objc-act.h (objc_fold_objc_type_ref): New prototype.
3829 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
3831         * objc-act.c (objc_start_function, really_start_method,
3832         objc_get_parm_info, start_method_def): Update to new arg_info
3833         structures.
3835 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
3837         * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
3838         objc/objc-act.h.
3839         (objc/objc-act.o): Depend on $(HASHTAB_H).
3840         * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
3841         objcp-decl.h instead of c-tree.h.
3842         (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
3843         error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
3844         build_protocol_template): Adjust prototypes.
3845         (build_module_initializer_routine, start_class, continue_class,
3846         finish_class, start_method_def, objc_start_function, start_protocol,
3847         build_method_decl, objc_add_method, add_instance_variable,
3848         build_ivar_reference, is_ivar, is_private, get_super_receiver,
3849         build_selector_table_decl, objc_push_parm, objc_get_parm_info,
3850         gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
3851         create_field_decl): New prototypes.
3852         (objc_expand_function_end, comp_method_with_proto, objc_expr_last,
3853         gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
3854         define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
3855         (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
3856         (CLASS_TYPEDEF_NAME): New.
3857         (TAG_EXECCLASS): Change from a global variable to a #define.
3858         (TAG_RETURN_STRUCT): Delete.
3859         (TAG_GNUINIT): New, holds '__objc_gnu_init' name.
3860         (objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
3861         (string_descriptor): New struct.
3862         (string_htab): New hash table.
3863         (string_hash, string_eq): New prototypes.
3864         (generate_struct_by_value_array): Call create_field_decl() instead of
3865         create_builtin_decl().
3866         (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
3867         In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
3868         (objc_finish_file): In ObjC++, call instantiate_pending_templates()
3869         and cp_finish_file().
3870         (define_decl, get_static_reference, get_protocol_reference,
3871         create_builtin_decl): Remove functions.
3872         (objc_start_class_interface, objc_start_category_interface,
3873         objc_start_protocol, objc_continue_interface, objc_finish_interface,
3874         objc_start_class_implementation, objc_start_category_implementation,
3875         objc_continue_implementation, objc_finish_implementation,
3876         objc_set_visibility, objc_set_method_type,
3877         objc_build_method_signature, objc_add_method_declaration,
3878         objc_start_method_definition, objc_add_instance_variable,
3879         objc_get_protocol_qualified_type, create_field_decl,
3880         start_var_decl, finish_var_decl): New functions.
3881         (setup_string_decl): Simplify since it is only called once.
3882         (synth_module_prologue): Call build_class_template(); predefine 'id'
3883         and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
3884         hooks for duration of function; fix GNU runtime messenger signatures
3885         to correspond to reality; forward-declare '__objc_exec_class' for the
3886         GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
3887         'extern "C" { ... }' wrappers around synthesized declarations; call
3888         build_protocol_template() and build_category_template().
3889         (string_hash, string_eq): New functions.
3890         (objc_build_string_object): Check metaclass correctness only once;
3891         store string literals in hash table.
3892         (objc_build_constructor): Do not convert initializer elements;
3893         adjust for ObjC++ impedance mismatch.
3894         (build_objc_symtab_template): Call create_field_decl() instead of
3895         create_builtin_decl().
3896         (init_objc_symtab): Add missing conversion to initializer element.
3897         (build_metadata_decl): Call start_var_decl() instead of define_decl().
3898         (generate_objc_symtab_decl): Do not call build_category_template();
3899         call start_var_decl() and finish_var_decl() instead of start_decl()
3900         and finish_decl().
3901         (build_module_descriptor): Call create_field_decl() instead of
3902         grokfield(); call start_var_decl() and finish_var_decl() instead of
3903         start_decl() and finish_decl(); always mark module descriptor as
3904         used; move GNU runtime-specific functionality to
3905         build_module_initializer_routine().
3906         (build_module_initializer_routine): New function, broken off of
3907         build_module_descriptor().
3908         (objc_static_init_needed_p, objc_generate_static_init_call): New
3909         functions.
3910         (generate_static_references, generate_strings,
3911         build_selector_translation_table, generate_descriptor_table,
3912         generate_ivars_list, generate_dispatch_table, generate_category): Call
3913         start_var_decl() and finish_var_decl() instead of start_decl() and
3914         finish_decl(); build a type directly instead of via groktypename().
3915         (build_selector_reference_decl, build_selector_table_decl,
3916         build_class_reference_decl, build_protocol_reference,
3917         generate_objc_image_info): Call start_var_decl() instead of
3918         build_decl().
3919         (build_selector_reference): For GNU runtime, do not call
3920         build_selector_reference_decl().
3921         (build_selector, build_typed_selector_reference): Always convert
3922         result to the selector type.
3923         (add_objc_string): Cast return value to 'char *'.
3924         (build_method_prototype_template, build_selector_template,
3925         build_method_template): Use actual selector type for fields
3926         pointing to selectors.
3927         (finish_objc): For GNU runtime, call
3928         build_module_initializer_routine() after build_module_descriptor().
3929         (generate_protocol_list, generate_shared_structures): Call
3930         start_var_decl() and finish_var_decl() instead of start_decl() and
3931         finish_decl(); build a type directly instead of via
3932         groktypename().
3933         (synth_id_with_class_suffix): Return a string.
3934         (get_arg_type_list): For instance methods, use the instance type for
3935         'self'; do not call groktypename_in_parm_context().
3936         (build_objc_string_decl): Squash redeclaration errors in ObjC++.
3937         (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
3938         handle RECORD_TYPEs in ObjC as well as ObjC++.
3939         (objc_is_id): New function.
3940         (objc_is_object_ptr): Return the canonical type node.
3941         (objc_get_class_ivars): Simplify using get_class_ivars().
3942         (get_class_ivars): Remove second parameter; create a fresh copy
3943         of the ivar list for each call; do not check for existence of
3944         super class.
3945         (objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
3946         (objc_init_exceptions): When using SJLJ-style exceptions, require
3947         the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
3948         exceptions.
3949         (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
3950         objc_object_type instead of objc_id_type.
3951         (objc_begin_catch_clause): Convert the incoming PARM_DECL into
3952         a VAR_DECL before placing it in the appropriate scope; do not
3953         call define_decl(); adjust call to c_begin_compound_stmt();
3954         use objc_object_type instead of objc_id_type.
3955         (build_next_objc_exception_stuff): Call create_field_decl() instead
3956         of create_builtin_decl(); construct type directly instead of calling
3957         groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
3958         (build_private_template): Adjust call to get_class_ivars(); build
3959         a type directly instead of via groktypename().
3960         (build_protocol_template, build_method_prototype_list_template,
3961         build_method_prototype_template, build_category_template,
3962         build_selector_template, build_class_template, build_super_template,
3963         build_ivar_template, build_ivar_list_template,
3964         build_method_list_template, build_method_template):
3965         Call create_field_decl() instead of grokfield().
3966         (objc_method_parm_type): Do not call groktypename().
3967         (generate_descriptor_table): Call start_var_decl() and
3968         finish_var_decl() instead of start_decl() and finish_decl().
3969         (generate_method_descriptors, build_protocol_initializer,
3970         generate_dispatch_tables, build_category_initializer,
3971         build_shared_structure_initializer): Do not call groktypename().
3972         (generate_protocols): Call start_var_decl() and finish_var_decl()
3973         instead of start_decl() and finish_decl(); do not call groktypename().
3974         (error_with_ivar): Remove last parameter.
3975         (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
3976         to CLASS_IVARS lists; adjust calls to error_with_ivar().
3977         (generate_ivar_lists): Convert one of the initializer elements; do
3978         not call groktypename().
3979         (get_arg_type_list, start_method_def, gen_method_def): Account for
3980         new representation of variable arguments and '...' in Objective-C
3981         methods; add Objective-C++ impedance matching code.
3982         (is_objc_type_qualifier): Remove function.
3983         (adjust_type_for_id_default): Simplify; there is no longer a need to
3984         wade through declspecs.
3985         (lookup_interface, start_class, continue_class,
3986         finish_class, start_method_def, start_protocol, build_method_decl,
3987         objc_add_method, add_instance_variable, build_ivar_reference,
3988         is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
3989         Make into static functions.
3990         (receiver_is_class_object): Use new IS_CLASS() macro.
3991         (objc_build_message_expr): Tweak ObjC++ message argument handling;
3992         call objc_finish_message_expr() instead of finish_message_expr().
3993         (finish_message_expr): Rename to objc_finish_message_expr(); use
3994         OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
3995         call gen_type_name() instead of gen_declaration(); call objc_is_id()
3996         instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
3997         calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
3998         (build_objc_method_call, warn_with_method): Do not call groktypename().
3999         (build_ivar_reference): Call convert() instead of clobbering in a
4000         type.
4001         (hash_init): Initialize string_htab hash table.
4002         (add_instance_variable): Simplify parameter list; do not call grokfield();
4003         do not populate CLASS_IVARS list.
4004         (start_class): Check for the existence of super class, if one was specified.
4005         (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
4006         call build_class_template(); adjust call to get_class_ivars(); call
4007         build_decl(), pushdecl() and finish_decl() instead of define_decl().
4008         (finish_class): Call build_decl(), pushdecl() and finish_decl() instead
4009         of define_decl().
4010         (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
4011         (start_protocol): Do not call build_protocol_template(); use
4012         PROTOCOL_BINFO_ELTS for the tree vector size.
4013         (encode_type_qualifiers): Do not handle the 'const' qualifier here.
4014         (encode_pointer): Encode 'const char *' as 'r*', for backwards
4015         compatibility.
4016         (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
4017         (encode_type): Handle the 'const' qualifier here.
4018         (objc_parmlist): New global variable, sued by objc_push_parm and
4019         objc_get_parm_info().
4020         (objc_push_parm, objc_get_parm_info): New functions.
4021         (objc_expr_last): Remove function.
4022         (synth_self_and_ucmd_args): For instance methods, use the instance
4023         type for 'self'; call objc_push_parm() instead of push_parm_decl().
4024         (start_method_def): Do not call push_scope(), declare_parm_level(),
4025         pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
4026         just use objc_push_parm() and objc_get_parm_info().
4027         (comp_method_with_proto): Remove function.
4028         (objc_types_are_equivalent): Strip away indirections before comparing
4029         underlying types.
4030         (comp_proto_with_proto): Do not call groktypename(); types are no
4031         longer in raw declspec format.
4032         (objc_start_function): New function.
4033         (really_start_method): Call comp_proto_with_proto() instead of
4034         comp_method_with_proto(); call objc_start_function() instead of
4035         hand-crafting a function declarator.
4036         (continue_method_def, objc_expand_function_end): Remove functions.
4037         (get_super_receiver): Call objc_get_current_scope() instead of
4038         get_current_scope(); reference 'super_class' field (instead of
4039         'class').
4040         (finish_method_def): Rename to objc_finish_method_definition() and
4041         add a function decl parameter; move method encoding call from
4042         objc_expand_function_end().
4043         (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
4044         gen_declaration_1): Remove functions.
4045         (tmpbuf, RAW_DECLSPEC): Remove.
4046         (gen_declaration): Remove second parameter; simplify to deal
4047         with TYPE_P nodes instead of raw declspecs.
4048         (gen_type_name, gen_type_name_0): New functions.
4049         (gen_method_decl): Remove second parameter; call gen_type_name()
4050         instead of gen_declaration_1().
4051         (dump_interface): Adjust calls to gen_declaration() and
4052         gen_method_decl(); do not allocate a separate string buffer.
4053         (init_objc): Allocate a larger string buffer to accommodate
4054         dump_interface(); adjust call to build_module_descriptor();
4055         add call to build_module_initializer_routine() for the GNU
4056         runtime.
4057         (generate_classref_translation_entry): Do not call start_decl(); call
4058         finish_var_decl() instead of finish_decl(); call convert() instead of
4059         build_c_cast().
4060         * objc-act.h (CLASS_OWN_IVARS): Remove accessor.
4061         (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
4062         gone.
4063         (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
4064         (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
4065         (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
4066         objc_object_type and objc_object_name, respectively.
4067         (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
4068         objc_class_name): New.
4069         (IS_CLASS): New macro.
4070         (IS_ID, IS_SUPER): Robustify.
4071         (OCTI_EXECCLASS_DECL, execclass_decl): New.
4072         (finish_file, start_class, continue_class, finish_class,
4073         start_method_def, continue_method_def, finish_method_def,
4074         start_protocol, finish_protocol, objc_build_throw_stmt,
4075         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
4076         objc_build_synchronized_epilogue, objc_build_try_prologue,
4077         objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
4078         objc_build_finally_prologue, objc_build_finally_epilogue,
4079         is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
4080         get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
4081         get_class_reference, get_static_reference, get_object_reference,
4082         build_message_expr, finish_message_expr, build_selector_expr,
4083         build_ivar_reference, build_keyword_decl, build_method_decl,
4084         build_protocol_expr, build_objc_string_object, objc_declare_alias,
4085         objc_declare_class, objc_declare_protocols, objc_comptypes,
4086         objc_check_decl, build_encode_expr): Remove prototypes.
4087         (imp_count, cat_count): Make GGC-aware.
4088         (OBJC_SET_TYPE_NAME): New macro.
4090 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
4092         * config-lang.in: Update copyright notice.
4093         (lang_requires): Indicate that ObjC requires C to be built first.
4095 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
4097         * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
4098         TYPE_NAME.
4099         (build_objc_string_object): Rename to objc_build_string_object().
4100         (get_class_reference): Rename to objc_get_class_reference().
4101         (get_class_ivars_from_name): Rename to objc_get_class_ivars().
4102         (next_sjlj_build_catch_list, get_super_receiver): Call
4103         objc_get_class_reference() instead of get_class_reference().
4104         (build_keyword_decl): Rename to objc_build_keyword_decl().
4105         (build_message_expr): Rename to objc_build_message_expr().
4106         (build_protocol_expr): Rename to objc_build_protocol_expr().
4107         (build_selector_expr): Rename to objc_build_selector_expr().
4108         (build_encode_expr): Rename to objc_build_encode_expr().
4109         * objc-act.h (get_class_ivars_from_name): Rename prototype to
4110         objc_get_class_ivars().
4111         (get_class_reference): Rename prototype to objc_get_class_reference().
4112         (build_message_expr): Rename prototype to objc_build_message_expr().
4113         (build_selector_expr): Rename prototype to objc_build_selector_expr().
4114         (build_keyword_decl): Rename prototype to objc_build_keyword_decl().
4115         (build_protocol_expr): Rename prototype to objc_build_prototype_expr().
4116         (build_objc_string_object): Rename prototype to
4117         objc_build_string_object().
4119 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
4121         * objc-act.c (lookup_interface): Make function 'static' and add a
4122         local prototype.
4123         (objc_check_decl, get_class_reference, objc_declare_alias,
4124         objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
4125         instead of is_class_name().
4126         (get_super_receiver, objc_clear_super_receiver): Call
4127         objc_get_current_scope() instead of get_current_scope().
4128         (is_class_name): Rename to objc_is_class_name.
4129         (lookup_objc_ivar): Rename to objc_lookup_ivar.
4131 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
4133         * objc-act.c (objc_is_reserved_word): New function.
4135 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
4137         * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
4138         $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
4139         (objc/objc-parse.o): Do not depend on gtype-objc.h.
4140         * objc-act.c: Do not include gtype-objc.h.
4141         (finish_file): Rename to objc_finish_file().
4142         * objc-act.h (finish_file): Update copyright notice; remove prototype.
4143         * objc-lang.c: Update copyright notice; include diagnostic.h,
4144         c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
4145         toplev.h.
4146         (finish_file): New hook routine.
4147         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
4148         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
4149         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
4150         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
4151         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
4152         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
4153         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
4154         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
4155         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
4156         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
4157         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
4158         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4159         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
4160         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
4161         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
4162         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
4163         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
4164         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
4165         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
4166         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
4167         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
4168         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
4169         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
4170         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
4171         Move to c-objc-common.h.
4174 Copyright (C) 2004-2021 Free Software Foundation, Inc.
4176 Copying and distribution of this file, with or without modification,
4177 are permitted in any medium without royalty provided the copyright
4178 notice and this notice are preserved.