In gcc/objc/: 2011-06-02 Nicola Pero <nicola.pero@meta-innovation.com>
[official-gcc.git] / gcc / objc / ChangeLog
blob50c80b5c7cb91cba7cf0a0cd4908db976c1a63f4
1 2011-06-02  Nicola Pero  <nicola.pero@meta-innovation.com>
3         PR objc/48539
4         * objc-act.c (objc_finish_message_expr): Warn if messaging a class
5         that was only declared using @class without an @interface.  Warn
6         if messaging an instance of a class that was only declared using
7         @class without an @interface, unless the receiver was also typed
8         with a protocol list.
10 2011-06-01  Nicola Pero  <nicola.pero@meta-innovation.com>
12         * objc-act.c (objc_decl_method_attributes): Implement nonnull
13         attribute for Objective-C methods.
15 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
17         * config-lang.in (gtfiles): Updated order of files to fix building
18         when the gcc/cp directory is missing, as in the case of some
19         release tarballs.
21 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
23         * objc-act.c (objc_compare_types): Use function_args_iterator
24         instead of TYPE_ARG_TYPES to compare function argument types.
26 2011-05-13  Toon Moene  <toon@moene.org>
28         * objc-next-runtime-abi-02.c (newabi_append_ro):
29         Add const qualifier to constant variable pointer declaration.
31 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
33         * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors.
34         (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise.
35         (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise.
37 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
39         * objc-runtime-shared-support.h (get_arg_type_list): Delete.
40         (build_function_type_for_method): Declare.
41         * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change
42         type of get_arg_type_base_list field.
43         * objc-act.h (OBJC_VOID_AT_END): Delete.
44         * objc-act.c (get_arg_type_list): Delete.
45         (build_function_type_for_method): New function.
46         (objc_decl_method_attributes): Call build_function_type_for_method.
47         (really_start_method): Likewise.
48         * objc-gnu-runtime-abi-01.c
49         (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and
50         adjust function accordingly.  Update header comment.
51         (build_objc_method_call): Call build_function_type_for_method.
52         * objc-next-runtime-abi-01.c
53         (next_runtime_abi_01_get_type_arg_list_base): Change prototype and
54         adjust function accordingly.  Update header comment.
55         (build_objc_method_call): Call build_function_type_for_method.
56         * objc-next-runtime-abi-02.c
57         (next_runtime_abi_02_get_type_arg_list_base): Change prototype and
58         adjust function accordingly.  Update header comment.
59         (objc_copy_to_temp_side_effect_params): Take fntype instead of a
60         typelist.  Use function_args_iterator for traversing fntype.
61         (build_v2_build_objc_method_call): Adjust call to it.
62         Call build_function_type_for_method
64 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
66         * objc-act.c (objc_start_method_definition): Add parameter expr.
67         Update call to start_method_def.
68         (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter,
69         objc_synthesize_setter) Update calls to
70         objc_start_method_definition.
71         (objc_get_parm_info): Add parameter expr.  Update call to
72         get_parm_info.
73         (start_method_def): Add parameter expr.  Update call to
74         objc_get_parm_info.
75         * objc-gnu-runtime-abi-01.c (build_module_initializer_routine):
76         Update call to objc_get_parm_info.
77         * objc-runtime-shared-support.h (objc_get_parm_info): Add extra
78         parameter.
80 2011-04-26  Jason Merrill  <jason@redhat.com>
82         * objc-act.c (objc_fold_objc_type_ref): Remove.
83         * objc-act.h: Remove prototype.
85 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
87         * objc-act.c (synth_module_prologue): Call build_function_type_list
88         instead of build_function_type.
89         * objc-next-runtime-abi-02.c (next_runtime_02_initialize):
90         Likewise.
92 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
94         * objc-act.c (ivar_of_class): New.
95         (objc_is_public): Use ivar_of_class.
97 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
99         * objc-act.c (objc_get_interface_ivars): Removed.
100         (objc_detect_field_duplicates): New.
101         (hash_instance_variable): New.
102         (eq_instance_variable): New.
104 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
106         * objc-act.c (objc_declare_protocols): Renamed to
107         objc_declare_protocol.  Changed first argument to be an identifier
108         instead of a tree chain of identifiers, so that callers don't have
109         to create a temporary tree chain.
111 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
113         * objc-act.c (objc_declare_class): Changed to take a single
114         identifier as argument instead of a tree list.  This means callers
115         don't have to build temporary tree lists to call this function.
116         (synth_module_prologue): Updated calls to objc_declare_class.
118 2011-04-13  Nicola Pero  <nicola.pero@meta-innovation.com>
120         * objc-act.c (build_keyword_selector): Use get_identifier_with_length
121         instead of get_identifier.
123 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
125         * objc-lang.c (objc_init_ts): Move code for this function...
126         * objc-act.c (objc_common_init_ts): ...here. Define.
127         * objc-act.h (objc_common_init_ts): Declare.
129 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
131         * objc-act.c (objc_build_message_expr): Accept two arguments
132         instead of one so that callers can simply pass the arguments
133         without having to create a temporary chain to hold them.
135 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
137         * objc-act.c (comp_proto_with_proto): Do not create and use
138         inefficient temporary argument lists.  Compare the arguments
139         directly.  (match_proto_with_proto): Removed; incorporated into
140         comp_proto_with_proto ().
142 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
144         * objc-act.c (printable_ivar_name): New.
145         (add_instance_variable): Call printable_ivar_name() when an error
146         message needs to be printed.  Do not prepare the instance variable
147         for printing unless there is an actual error.
149 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
151         * objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
152         avoid calling identifier_global_value() multiple times.
154 2011-04-12  Martin Jambor  <mjambor@suse.cz>
156         * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
157         instead of cgraph_node.
159 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
161         * objc-act.c: Include c-target.h instead of target.h.
162         * Make-lang.in (objc/objc-act.o): Update dependencies.
164 2011-03-06  Joseph Myers  <joseph@codesourcery.com>
166         * lang-specs.h: Match -save-temps* instead of -save-temps.
168 2011-02-26  Nicola Pero  <nicola.pero@meta-innovation.com>
170         * objc-act.c (objc_v2_encode_prop_attr): Rewritten.
172 2011-02-23  Nicola Pero  <nicola.pero@meta-innovation.com>
174         * objc-act.c (build_private_template): Do not copy the
175         CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
176         * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
177         TYPE_LANG_SLOT_0.
179 2011-02-22  Nicola Pero  <nicola.pero@meta-innovation.com>
181         PR objc/47832
182         * objc-act.c (flexible_array_type_p): New.
183         (add_instance_variable): Produce an error if an instance variable
184         uses flexible array members.
185         (encode_array): Do not emit an error if encoding a flexible array
186         type while generating instance variables.
188 2011-02-21  Mike Stump  <mikestump@comcast.net>
190         * Make-lang.in (check_objc_parallelize): Refine for 4 processor
191         machines.
193 2011-02-20  Nicola Pero  <nicola.pero@meta-innovation.com>
195         * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed.  Removed
196         usage of padding fields.  Do not include tm.h.
197         * objc-act.c (objc_write_global_declaration): Set input_location
198         to BUILTINS_LOCATION while generating runtime metadata.
200 2011-01-20  Nicola Pero  <nicola.pero@meta-innovation.com>
202         PR objc/47784
203         * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side
204         effects, do not use a temporary variable.
206 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
208         * objc-next-runtime-abi-01.c: Updated comments.
209         * objc-next-runtime-abi-02.c: Same.
211 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
213         * objc-act.c (objc_init, generate_struct_by_value_array): Updated
214         comments.
216 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
218         * objc-act.c: Updated comments.
219         * objc-next-runtime-abi-02.c: Same.
220         * objc-runtime-shared-support.c: Same.
221         * objc-runtime-hooks.h: Same.
222         * objc-act.h: Same.
223         * objc-gnu-runtime-abi-01.c: Same.
225 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
227         * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do
228         not generate metadata if there is nothing to put into it.
230 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
232         * config-lang.in (gtfiles): Updated.
233         * Make-lang.in (START_HDRS): New.
234         (OBJC_OBJS): Added new object files.
235         (objc/objc-act.o): Updated prerequisites.
236         (objc/objc-lang.o): Updated prerequisites.
237         (objc/objc-runtime-shared-support.o): New.
238         (objc/objc-gnu-runtime-abi-01.o): New.
239         (objc/objc-next-runtime-abi-01.o): New.
240         (objc/objc-next-runtime-abi-02.o): New.
241         * objc-runtime-hooks.h: New.
242         * objc-runtime-shared-support.h: New.
243         * objc-runtime-shared-support.c: New.
244         * objc-gnu-runtime-abi-01.c: New.
245         * objc-next-metadata-tags.h: New.
246         * objc-next-runtime-abi-01.c: New.
247         * objc-next-runtime-abi-02.c: New.
248         * objc-lang.c: Include c-lang.h.
249         (LANG_HOOKS_EH_PERSONALITY): Removed.
250         * objc-act.h: Moved many declarations and code from objc-act.c
251         into objc-act.h to make them available outside objc-act.c.
252         (objc_eh_runtime_type): Removed.
253         (objc_eh_personality): Removed.
254         (CLASS_HAS_EXCEPTION_ATTR): New.
255         (OCTI_SUPER_SUPERFIELD_ID): New.
256         (OCTI_V1_PROP_LIST_TEMPL): New.
257         (OCTI_V1_PROP_NAME_ATTR_CHAIN): New.
258         (super_superclassfield_id): New.
259         (objc_prop_list_ptr): New.
260         (prop_names_attr_chain): New.
261         * objc-act.c: Include new runtime headers.  Moved many #defines
262         and declarations into objc-act.h and
263         objc-runtime-shared-support.h.  Made some corresponding functions
264         non-static, and moved some others into
265         objc-runtime-shared-support.c.  Moved metadata generation code
266         into the new runtime hook files.
267         (ivar_offset_hash_list): New.
268         (objc_init): Call generate_struct_value_by_array() before doing
269         any runtime initialization.  Create the appropriate runtime hook
270         structures.
271         (init_objc): Removed.  Code moved directly into objc_init.
272         (finish_objc): Removed.  Code moved directly into
273         objc_write_global_declarations.
274         (objc_write_global_declarations): Do the warn_selector checks
275         before emitting metadata.  Use a runtime hook to emit the
276         metadata.  Do not emit the metadata or do -gen-decls processing if
277         -fsyntax-only or we are producing a PCH.
278         (build_objc_exception_stuff): Renamed to
279         build_common_objc_exception_stuff.  Remove TREE_NOTHROW flag from
280         objc_exception_throw_decl.
281         (synth_module_prologue): Call runtime initialize hook instead of
282         building runtime declarations here.  Use the
283         default_constant_string_class_name runtime hook to set the
284         constant string class name.
285         (objc_build_string_object): Call the setup_const_string_class_decl
286         runtime hook instead of setup_string_decl.  Call the
287         build_const_string_constructor runtime hook instead of building
288         the string object here.
289         (get_objc_string_decl): Added prop_names_attr case.  Removed
290         gcc_unreachable() at the end.
291         (objc_begin_catch_clause): Distinguish between @catch (...) and
292         @catch (id x).  Call the begin_catch runtime hook instead of
293         building the CATCH_EXPR here.
294         (objc_finish_catch_clause): Call the finish_catch runtime hook
295         instead of adding the catch here.
296         (objc_finish_try_stmt): Call the finish_try_stmt runtime hook
297         instead of doing it here.
298         (objc_build_throw_stmt): Bail out early for error_mark_node.  Call
299         the build_exc_ptr runtime hook instead of objc_build_exc_ptr.
300         Call the build_throw_stmt runtime hook instead of building the
301         throw call here.
302         (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime
303         as well.
304         (get_arg_type_list): Call the get_arg_type_list_base runtime hook
305         instead of building the list of arguments here.
306         (receiver_is_class_object): Call the receiver_is_class_object
307         runtime hook instead of doing the check here.  Call the
308         tag_getclass runtime hook instead of using TAG_GETCLASS.
309         (objc_finish_message_expr): Call the build_objc_method_call
310         runtime hook.
311         (objc_build_protocol_expr): Call the get_protocol_reference
312         runtime hook.
313         (objc_build_selector_expr): Call the build_selector_reference
314         runtime hook.
315         (build_ivar_reference): Call the build_ivar_reference runtime
316         hook.
317         (hash_init): Set up ivar_offset_hash_list.
318         (start_class): Recognize the objc_exception attribute and store
319         it.
320         (continue_class): Use the class_decl and metaclass_decl runtime
321         hooks.
322         (build_objc_property_accessor_helpers): Renamed to
323         build_common_objc_property_accessor_helpers.  Do not build
324         objc_copyStruct_decl, objc_getPropertyStruct_decl and
325         objc_setPropertyStruct_decl.
326         (objc_synthesize_getter): Check what struct setter/getter helper
327         is available instead of checking the type of runtime.
328         (get_super_receiver): Use the super_superclassfield_ident runtime
329         hook.  Added assert.  Use the get_class_super_ref and
330         get_category_super_ref runtime hooks.
331         (objc_v2_encode_prop_attr): New.
333 2011-01-17  Nicola Pero  <nicola.pero@meta-innovation.com>
335         PR objc/47314
336         * objc-act.c (finish_objc): When calling check_duplicates to check
337         duplicated instance methods, set 'is_class' to 0, not 1.
339 2011-01-14  Ben Elliston  <bje@au.ibm.com>
341         PR 19162
342         * objc-act.c (generate_struct_by_value_array): Do not output a
343         definition for struct_forward_array.
345 2011-01-08  Iain Sandoe  <iains@gcc.gnu.org>
347         * objc-act.c (objc_finish_foreach_loop): Mark collection expression
348         as read.
350 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
352         * objc-act.c (check_that_protocol_is_defined): Fix a typo.
354 2011-01-02  Nicola Pero  <nicola.pero@meta-innovation.com>
356         * objc-act.c (check_that_protocol_is_defined): New.
357         (lookup_protocol): Call check_that_protocol_is_defined.
359 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
361         * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
362         lists.  Check them two-ways to fix comparisons when one protocol
363         implements the other one, or when one list contains duplicated
364         protocols.
366 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
368         * objc-act.c (objc_add_method): When emitting an error because a
369         method with the same name but conflicting types is found in the
370         same class or category interface, print a note with the location
371         of the original method.  Also, improved the error message to
372         clearly state that the conflict is due to conflicting types, and
373         produce it for protocols as well.  Emit an error if two identical
374         methods are declared in a protocol, but one is @required and the
375         other one is @optional.
377 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
379         * objc-act.c (start_class): Warn when a class attribute is
380         ignored.
381         (objc_declare_protocols): Warn when a protocol attribute in a
382         protocol forward-declaration is ignored.
383         (start_protocol): Warn when a protocol attribute is ignored.
385 2010-12-30  Nicola Pero  <nicola.pero@meta-innovation.com>
387         * objc-act.c (objc_set_method_opt): Tidy up error messages.  In
388         particular, explicitly mention whether the error is due to the
389         @optional or @required keyword instead of mentioning
390         "@optional/@required".
392 2010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
394         PR objc/47118
395         * objc-act.c (objc_build_synchronized): Check the argument of
396         @synchronized and emit an appropriate error if it is not a valid
397         Objective-C object.  Deal gracefully with that case.  Updated
398         comments and variable names.
400 2010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
402         PR objc/47075
403         * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
404         * objc-tree.def (PROPERTY_REF): Increased the number of operands
405         from 3 to 4.
406         * objc-act.c (objc_finish_message_expr): Added optional argument
407         allowing to return the deprecated method prototype for deprecated
408         methods, instead of immediately emitting the deprecation warning.
409         (objc_maybe_build_component_ref): Do not warn for a deprecated
410         property.  When building the getter call, get the deprecated
411         method prototype from objc_finish_message_expr() and put it into
412         the PROPERTY_REF.
413         (objc_build_class_component_ref): Same change.
414         (finish_class): Mark the getter and setter as deprecated if they
415         are generated from a deprecated property.
416         (objc_gimplify_property_ref): If the getter is deprecated, emit a
417         deprecation warning.
418         (objc_build_setter_call, objc_build_message_expr,
419         objc_finish_foreach_loop): Updated call to
420         objc_finish_message_expr.
422 2010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
424         PR objc/47076
425         * objc-act.c (lookup_protocol): Added 'definition_required'
426         argument.  If 'definition_required', and the protocol is not
427         defined, emit a warning.
428         (objc_declare_protocols): Updated call to lookup_protocol.
429         (start_protocol): Same change.
430         (check_protocol_recursively): Same change.
431         (objc_build_protocol_expr): Same change.
432         (lookup_and_install_protocols): Added definition_required argument.
433         Pass it to lookup_protocol.
434         (objc_get_protocol_qualified_type): Updated call to
435         lookup_and_install_protocols.
436         (start_class): Updated calls to lookup_and_install_protocols; pass
437         true to 'definition_required' to get the warnings.
438         (start_protocol): Updated calls to lookup_and_install_protocols.
440 2010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
442         * objc-act.c (objc_start_category_interface): Produce an error if
443         a class extension is found after the class @implementation.
445 2010-12-28  Nicola Pero  <nicola.pero@meta-innovation.com>
447         PR objc/47073
448         * objc-act.c (encode_method_prototype): Fixed both location and
449         format string of error "type %qT does not have a known size".
451 2010-12-26  Nicola Pero  <nicola.pero@meta-innovation.com>
453         * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c.
455 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
457         * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.
459 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
461         * objc-act.c (objc_init): Call using_eh_for_cleanups.
462         (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions.  Do
463         not call using_eh_for_cleanups.
464         (objc_begin_try_stmt): Do not call objc_init_exceptions.
465         (objc_build_throw_stmt): Updated call to
466         objc_maybe_warn_exceptions.
468 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
470         * objc/objc-act.c (objc_eh_personality): Select personality name on
471         runtime.
472         (objc_init_exceptions): New.
473         (objc_begin_try_stmt): Use objc_init_exceptions.
474         (objc_build_throw_stmt): Likewise.
476 2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
478         * objc-act.c (objc_in_class_extension): New.
479         (objc_start_category_interface): If -fobjc-std=objc1
480         was specified, produce an error if a class extension is used.
481         (objc_finish_interface): Reset objc_in_class_extension to false.
482         (objc_add_property_declaration): Allow a class extension to extend
483         readonly properties in the main @interface to be readwrite.
484         (start_class): Added code to deal with class extensions.  In that
485         case, return the existing interface after adding any additional
486         protocols to it and setting objc_in_class_extension to true.
487         (continue_class): If in a class extension, do not generate the
488         instance variable template.
490 2010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
492         * objc-act.c (objc_build_throw_stmt): Check that the argument of
493         @throw is an object and emit an error if not.
495 2010-12-08  Nicola Pero  <nicola.pero@meta-innovation.com>
497         * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
498         error() when printing an error about the iterating variable or
499         collection not being an object.
501 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
503         * objc-act.c (objc_finish_foreach_loop): Mark the
504         object_expression as used.
506 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
508         * objc-act.c: Include c-family/c-objc.h.
509         * objc-lang.c: Same change.
510         * Make-lang.in (objc/objc-act.o): Depend on
511         c-family/c-objc.h.
512         (objc/objc-lang.o): Same change.
513         * config-lang.in (gtfiles): Added c-family/c-objc.h.
515 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
517         * lang-specs.h: Don't handle -ftraditional.
519 2010-12-02  Nicola Pero  <nicola.pero@meta-innovation.com>
521         * objc-act.c (objc_build_throw_stmt): Return error_mark_node and
522         not NULL_TREE when a @throw is used outside of a @catch block.
524 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
526         * objc-act.c (objc_build_volatilized_type): Removed.
527         (objc_non_volatilized_type): Removed.
528         (objc_type_quals_match): Removed.
529         (local_variables_to_volatilize): New.
530         (objc_volatilize_decl): Add the decl to volatilize to
531         local_variables_to_volatilize, but don't volatilize it yet.
532         (objc_finish_function): New.
533         * objc-act.h (local_variables_to_volatilize): New.
535 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
536             Mike Stump  <mikestump@comcast.net>
538         Allow 'make check-objc -j2'
539         * Make-lang.in (lang_checks_parallelized): New.
540         (check_objc_parallelize): New.
542 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
544         * objc-act.c (start_class): When a class is reimplemented,
545         generate an error and avoid adding the class to the list of
546         implemented classes again, but do not return error_mark_node.
548 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
550         * objc-act.c (objc_maybe_build_component_ref): Removed TODO.
552 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
554         * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
555         is passed as argument.
556         (objc_begin_catch_clause): Added code to deal with an
557         error_mark_node or NULL_TREE argument.  Improved checks for
558         invalid arguments.  Added code to traverse typedefs.
560 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
562         * objc-act.c (objc_demangle): Return immediately if the string is
563         too short.  Detect names that do not need demangling, and return
564         them unchanged.
566 2010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
568         Implemented optional properties.
569         * objc-act.h (PROPERTY_OPTIONAL): New.
570         * objc-act.c (objc_add_property_declaration): Set
571         PROPERTY_OPTIONAL if appropriate.
572         (finish_class): When generating definitions of setter and getter
573         methods associated with a property for a protocol, mark them as
574         optional if the property is optional.
575         (maybe_make_artificial_property_decl): Added 'getter_name'
576         argument.  Set PROPERTY_OPTIONAL.
577         (objc_maybe_build_component_ref): Updated calls to
578         maybe_make_artificial_property_decl.  Added code for optional,
579         readonly properties.
580         (objc_build_class_component_ref): Updated call to
581         maybe_make_artificial_property_decl.
583 2010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
585         * objc-act.c (objc_build_struct): Fixed loops that save and
586         restore TYPE_OBJC_INFO to iterate over all variants of the type; a
587         special case for the current type is then no longer required.
588         Duplicate TYPE_LANG_SPECIFIC for each type before restoring
589         TYPE_OBJC_INFO.
590         (objc_get_protocol_qualified_type): Updated comments.
592 2010-11-25  Nicola Pero  <nicola.pero@meta-innovation.com>
594         * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
595         after finish_struct, not before, otherwise it may be wiped out by
596         it.  This fixes spurious warnings when a class has more than 15
597         instance variables.
599 2010-11-23  Nicola Pero  <nicola.pero@meta-innovation.com>
601         PR objc/24358
602         * lang-specs.h: Added objective-c-cpp-output.  Mapped .mi to
603         objective-c-cpp-output instead of objc-cpp-output.  Print a
604         deprecation note every time objc-cpp-output is requested.
606 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
608         * objc-act.c (write_symbols): Don't declare here.
610 2010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
612         PR objc/41108
613         * objc-act.c (objc_generate_write_barrier): Added assert to make sure
614         this function is only called with the next runtime.
616 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
618         PR c/46547
619         * objc-act.c (in_late_binary_op): Remove.
621 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
623         * objc-act.c (objc_start_class_interface): Do not warn that class
624         attributes are unimplemented.  Pass the attributes to start_class.
625         (objc_start_category_interface): Updated call to start_class.
626         (objc_start_class_implementation): Same change.
627         (objc_start_category_implementation): Same change.
628         (objc_build_class_component_ref): Warn if the class is deprecated.
629         (build_private_template): Mark the template as deprecated if the
630         class is deprecated.
631         (start_class): Added 'attributes' argument.  Emit a warning if
632         using a deprecated class as superclass of a class, or original
633         class of a category.  Recognize the 'deprecated' attribute when
634         starting and interface, and mark the interface with
635         TREE_DEPRECATED if present.  Store attributes in the interface.
637 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
639         * objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
640         argument.  If it is 'true' and the protocol is deprecated, emit a
641         deprecation warning.
642         (objc_start_protocol): Do not warn that protocol attributes are
643         unimplemented.  Pass the attributes to start_protocol.
644         (start_protocol): Added attributes argument.  Recognize the
645         'deprecated' attribute and mark the protocols with TREE_DEPRECATED
646         if present.  Store attributes in the protocol.
647         (objc_declare_protocols): Added 'attributes' argument.  Recognize
648         the 'deprecated' attribute and mark the protocols with
649         TREE_DEPRECATED if present.  Store attributes in the protocol.
650         Updated call to lookup_protocol.
651         (objc_build_protocol_expr): Updated call to lookup_protocol.
652         (check_protocol_recursively): Same change.
653         (lookup_and_install_protocols): Same change.
654         * objc-act.h: Updated comments.
656 2010-11-17  Nicola Pero  <nicola.pero@meta-innovation.com>
658         * objc-act.c (lookup_method_in_protocol_list): Search methods in
659         PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
660         they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
662 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
664         * objc-act.c (objc_build_setter_call): New.
665         (objc_maybe_build_modify_expr): Rewritten to build a compound
666         statement.
667         (objc_build_incr_expr_for_property_ref): Updated calls to
668         objc_maybe_build_modify_expr to call objc_build_setter_call
669         instead.  Use build_modify_expr () instead of build2 (MODIFY_EXPR,
670         ...).  Use convert () instead of build1 (NOP_EXPR, ...).  Use
671         TREE_NO_WARNING on the final compound statement to silence C++
672         warnings.
674 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
676         * objc-act.c (objc_build_incr_expr_for_property_ref): New.
677         (objc_create_temporary_var): Moved it towards the beginning of the
678         file so that objc_build_incr_expr_for_property_ref can use it.
680 2010-11-14  Nicola Pero  <nicola.pero@meta-innovation.com>
682         * objc-act.c (objc_add_property_declaration): Check that the decl
683         we received from the parser is a FIELD_DECL; reject array and
684         bitfield properties.  Convert the warning when a property is
685         readonly and a setter is specified into an error.  Convert errors
686         when a property declaration does not match a property declaration
687         in a superclass into warnings.
688         (objc_add_synthesize_declaration_for_property): Use
689         DECL_BIT_FIELD_TYPE to determine the type of an instance variable
690         if it is a bitfield.  Throw an error if we are asked to synthesize
691         setters/getters for a bitfield instance variable but the property
692         is not appropriate - it must be assign and nonatomic.  If the
693         property is readonly, allow the instance variable type to be a
694         specialization of the property type.
695         (objc_type_valid_for_messaging): Fixed returning 'false' for a
696         Class qualified with a protocol when the 'accept_classes' argument
697         is 'false'.
699 2010-11-13  Nicola Pero  <nicola.pero@meta-innovation.com>
701         * objc-act.c (objc_get_protocol_qualified_type): detect cases
702         where we are asked to attach a protocol to something which is not
703         an Objective-C object type, and produce an error.
705 2010-11-11  Nicola Pero  <nicola.pero@meta-innovation.com>
707         * objc-act.c (objc_add_property_declaration): Check that the type
708         of a property and of an inherited property match.
709         (objc_maybe_build_component_ref): Tidied up indentation and
710         comments.
711         (objc_common_type): Added new type of check (-5).
712         (objc_add_synthesize_declaration_for_property): Check that the
713         property to synthesize and the instance variable to use have the
714         same type.
716 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
718         * objc-act.c (objc_init): Use %' in diagnostic.
719         (objc_set_method_opt): Remove trailing '.' from diagnostic.
721 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
723         * objc-act.c (dump_base_name): Don't declare here.
725 2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
727         * objc-act.c (objc_add_dynamic_declaration_for_property): Do not
728         search for the @property declation only in the current context,
729         but also in inherited properties.  Do not mark the original
730         PROPERTY_DECL in the @interface or @protocol with
731         PROPERTY_DYNAMIC.
732         (check_methods): To check if a method is associated with a
733         @dynamic property, search for the property in IMPL_PROPERTY_DECL.
734         (check_accessible_methods): Same change.
735         * objc-act.h: Updated comment.
737 2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
739         * objc-act.c (objc_add_synthesize_declaration_for_property):
740         Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
741         checking for an existing @synthesize or @dynamic declaration.
742         Search for an inherited @property declaration if none is found in
743         the local interface.  If the required instance variable does not
744         exist, return instead of trying to continue to prevent a compiler
745         crash later.  Check that the instance variable is not already
746         being used by another @synthesize.
747         (objc_add_dynamic_declaration_for_property): Iterate over
748         IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
749         existing @synthesize or @dynamic declaration.
750         (objc_synthesize_getter): Search for the getter declaration in
751         protocols and superclasses as well.
752         (objc_synthesize_setter): Search for the setter declaration in
753         protocols and superclasses as well.
755 2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
757         * objc-act.c (lookup_property): When checking categories, also
758         check the protocols attached to each.
759         (objc_add_property_declaration): Determine the
760         PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here.  Tidied up
761         error message.  Search for an existing property declaration with
762         the same name which would be inherited from the class hiearchy,
763         and produce an error if it has incompatible attributes.
764         (check_methods): Changed second parameter.  If the method is a
765         getter or setter for a property, do not warn if it is inherited as
766         opposed to implemented directly in the class.
767         (check_protocol): Updated calls to check_methods.
768         (finish_class): Do not determine the PROPERTY_SETTER_NAME and
769         PROPERTY_GETTER_NAME here; this is now done earlier, in
770         objc_add_property_declaration.
771         * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
773 2010-11-06  Nicola Pero  <nicola.pero@meta-innovation.com>
775         Fixed using the Objective-C 2.0 dot-syntax with self and super.
776         * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
777         (maybe_make_artificial_property_decl): Added 'implementation'
778         argument.  Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
779         looking up getters or setters for a class.  If an implementation
780         is specified, search it as well for a getter or setter.
781         (objc_maybe_build_component_ref): Updated calls to
782         maybe_make_artificial_property_decl; added code to deal with
783         'self' and 'super' and with methods declared locally in the
784         implementation.  Store the getter call expression in the
785         PROPERTY_REF instead of throwing it away.
786         (objc_build_class_component_ref): Updated calls to
787         maybe_make_artificial_property_decl, and store the getter call
788         expression in PROPERTY_REF instead of throwing it away.
789         (lookup_method_static): Implemented
790         OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
791         (objc_gimplify_property_ref): Do not build the getter method call
792         here; instead use the one stored in the PROPERTY_REF.  If it's not
793         there, produce helpful error messages.
794         * objc-tree.def (PROPERTY_REF): Increased the number of operands
795         from 2 to 3.  Updated comments.
796         * objc-act.h (PROPERTY_REF_GETTER_CALL): New.
798 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
800         PR target/44981
801         * objc-act.c (objc_build_string_object): Amend for renamed hook.
802         (objc_string_ref_type_p): New.
803         (objc_check_format_arg): New.
805 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
807         Fixed using the Objective-C 2.0 dot-syntax with class names.
808         * objc-act.c (objc_build_class_component_ref): New.
810 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
812         * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
813         category.
814         (objc_type_valid_for_messaging): Added 'accept_classes' argument;
815         if set to 'true', return 'true' for Class objects.  Do not remove
816         more than on pointer indirection.
817         (objc_add_property_declaration): Only warn about 'assign'
818         semantics for Objective-C objects if warn_property_assign_default;
819         and do not warn if the property is readonly or if the type is a Class.
820         (objc_finish_foreach_loop): Updated calls to
821         objc_type_valid_for_messaging.
823 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
825         Implemented -fobjc-std=objc1 flag.
826         * objc-act.c (objc_start_class_interface): If attributes are
827         specified when flag_objc1_only is set, print an error.
828         (objc_start_category_interface): Same change.
829         (objc_start_protocol): Same change.
830         (objc_add_method_declaration): Same change.
831         (objc_start_method_definition): Same change.
832         (objc_build_keyword_decl): Same change.
833         (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when
834         flag_objc1_set is set, print an error.
835         (objc_set_method_opt): If flag_objc1_only is set, print an error.
836         (objc_add_property_declaration): Same change.
837         (objc_add_synthesize_declaration): Same change.
838         (objc_add_dynamic_declaration): Same change.
839         (objc_finish_foreach_loop): Same change.
840         (objc_maybe_build_component_ref): If flag_objc1_only is set,
841         return immediately.
843 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
845         * objc-act.c (maybe_make_artificial_property_decl): New.
846         (objc_maybe_build_component_ref): Call
847         maybe_make_artificial_property_decl if a property can not be
848         found.  Do not call objc_finish_message_expr if
849         PROPERTY_HAS_NO_GETTER.
850         * objc-act.h Updated comments.
851         (PROPERTY_HAS_NO_GETTER): New.
852         (PROPERTY_HAS_NO_SETTER): New.
853         * objc-tree.def: Updated comment.
855 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
857         Implemented format and noreturn attributes for Objective-C methods.
858         * objc-act.c (objc_start_method_definition): If method attributes
859         are specified emit a warning and ignore them.
860         (build_objc_method_call): Moved deprecation warnings from here ...
861         (objc_finish_message_expr): to here.  Do not emit deprecation
862         warnings if the receiver is of type 'id'.
863         (really_start_method): Install 'deprecation' and 'noreturn'
864         attributes.
865         (objc_decl_method_attributes): Carefully filter out the list of
866         attributes, allowing only "noreturn", "format", "sentinel" and
867         "deprecated".  In the case of "format", adjust the arguments.
868         Always process the attributes in the same way no matter if
869         "sentinel" is in the list or not.
871 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
873         * objc-act.c (objc_maybe_build_component_ref): Warn about using
874         deprecated properties.
875         (objc_maybe_printable_name): Support PROPERTY_DECL.
877 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
879         Implemented Objective-C 2.0 property accessors.
880         * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
881         OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
882         OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
883         (objc_getProperty_decl): New.
884         (objc_setProperty_decl): New.
885         (objc_copyStruct_decl): New.
886         (objc_getPropertyStruct_decl): New.
887         (objc_setPropertyStruct_decl): New.
888         * objc-act.c (build_objc_property_accessor_helpers): New.
889         (synth_module_prologue): Call
890         build_objc_property_accessor_helpers.
891         (lookup_ivar): New.
892         (objc_synthesize_getter): Implemented synthesizing getters that
893         work with properties that are not nonatomic, assign properties.
894         (objc_synthesize_setter): Implemented synthesizing setters that
895         work with properties that are not nonatomic, assign properties.
897 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
899         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
900         * objc-tree.def (PROPERTY_REF): New.
901         * objc-act.h: Added comments for all the PROPERTY_ macros.
902         (PROPERTY_NAME): Use DECL_NAME.
903         (PROPERTY_COPIES): Removed.
904         (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
905         (PROPERTY_NONATOMIC): New.
906         (objc_property_assign_semantics): Make it a typedef.
907         (PROPERTY_ASSIGN_SEMANTICS): New.
908         (PROPERTY_DYNAMIC): New.
909         (PROPERTY_REF_OBJECT): New.
910         (PROPERTY_REF_PROPERTY_DECL): New.
911         * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
912         (in_objc_property_setter_name_context): Removed.
913         (objc_add_property_declaration): Removed copies and ivar arguments
914         and code supporting them.  Fixed recovering when readonly and
915         setter attributes are specified.  Removed support for @property in
916         @implementation context.  Updated error message.  Double-check
917         that a property does not have a DECL_INITIAL.  Validate the
918         property assign semantics and emit appropriate errors and
919         warnings.  Check for duplicate property declarations.  Set
920         DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
921         PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
922         PROPERTY_DECL.  Do not set PROPERTY_COPIES.  Set
923         PROPERTY_IVAR_NAME to NULL_TREE.
924         (objc_build_getter_call): Renamed to
925         objc_maybe_build_component_ref.  If the property is not found in
926         the interface, search in the protocol list.  Do not generate the
927         getter call; instead, build and return a PROPERTY_REF.
928         (objc_is_property_ref): New.
929         (objc_setter_func_call): Removed.
930         (get_selector_from_reference): Removed.
931         (is_property): Removed.
932         (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
933         Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
934         the PROPERTY_REF.  Generate an error if the property is read-only.
935         (build_property_reference): Removed.
936         (objc_finish_message_expr): Removed check to produce "readonly
937         property can not be set" error when
938         in_objc_property_setter_name_context.  We now generate the error
939         earlier, in objc_maybe_build_modify_expr, which will only generate
940         the setter call if the property is readwrite.
941         (check_methods): Recognize dynamic properties.
942         (check_methods_accessible): Same change.
943         (objc_build_property_ivar_name): Removed.
944         (objc_build_property_setter_name): Dropped bool argument.  Always
945         add the ':' at the end.
946         (objc_gen_one_property_datum): Removed.
947         (objc_process_getter_setter): Removed.
948         (objc_synthesize_getter): Mark 'klass' argument as unused.  Use
949         PROPERTY_GETTER_NAME instead of PROPERTY_NAME.  Set the
950         DECL_SOURCE_LOCATION of the new method to be the same as the one
951         for the @synthesize.  Always use PROPERTY_IVAR_NAME as it is
952         instead of trying to guess what it should be.  Removed use of
953         CLASS_IVARS.  Use the location of @synthesize for c_finish_return
954         and c_end_compound_statement.
955         (objc_synthesize_setter): Mark 'klass' argument as unused.  Use
956         PROPERTY_SETTER_NAME instead of trying to guess what it should be.
957         Set the DECL_SOURCE_LOCATION of the new method to be the same as
958         the one for the @synthesize.  Always use PROPERTY_IVAR_NAME as it
959         is instead of trying to guess what it should be.  Removed use of
960         CLASS_IVARS.  Use the location of @synthesize for c_finish_return
961         and c_end_compound_statement.  Emit an error and keep going,
962         instead of aborting, if the setter prototype does not have the
963         expected argument.
964         (objc_add_synthesize_declaration_for_property): New.
965         (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
966         all arguments.  Improved error message.  Filled in the rest of the
967         function, which used to be a placeholder, with an actual
968         implementation.
969         (objc_add_dynamic_declaration_for_property): New.
970         (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
971         arguments.  Improved error message.  Filled in the rest of the
972         function, which used to be a placeholder, with an actual
973         implementation.
974         (objc_gen_property_data): Rewritten.
975         (finish_class): Added explicit switch cases for
976         CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
977         PROTOCOL_INTERFACE_TYPE.  Added a default switch case which is
978         gcc_unreachable.  Rewritten the processing of properties, in
979         particular to not synthesize prototypes for getters and setters if
980         they already exist and to install the getter and setter names into
981         PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME.  Do not generate
982         warnings about setter, getter and ivar property attributes.
983         (objc_lookup_ivar): Removed support for properties.
984         (objc_gimplify_property_ref): New.
985         (objc_gimplify_expr): Use a switch.  In case of a PROPERTY_REF, call
986         objc_gimplify_property_ref.
988 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
990         * objc-act.c (objc_add_property_declaration): Added arguments to
991         pass the various property attributes that were parsed with the
992         property declaration.  Process arguments to determine the final
993         property attributes and produce error messages as appropriate.
994         Added temporary code to keep the compiler silent about variables
995         set but not used - for new attributes that are only checked but
996         have no effect yet.
997         (property_readonly): Removed.
998         (property_setter): Removed.
999         (property_getter): Removed.
1000         (property_ivar): Removed.
1001         (property_copies): Removed.
1002         (objc_set_property_attr): Removed.
1003         * objc-act.h (enum property_assign_semantics): New.
1005 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1007         * objc-act.c (objc_add_property_variable): Renamed to
1008         objc_add_property_declaration.  Added location argument.  Updated
1009         warnings and errors to use it.  Use error, not fatal_error, if a
1010         property declaration is found outside an interface or
1011         implementation context.
1013 2010-10-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1015         * objc-act.c (objc_build_keyword_decl): Updated comments.  Do not
1016         emit a warning that method parameter attributes are unimplemented.
1017         Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
1018         (start_method_def): Copy attributes from each KEYWORD_DECL into
1019         the corresponding PARM_DECL.
1020         (objc_warn_deprecated_use): Removed.
1021         (build_objc_method_call): Call warn_deprecated_use, not
1022         objc_warn_deprecated_use.
1023         (objc_maybe_printable_name): Do not try to get the identifier name
1024         of DECLs that we don't recognize.  Immediately return NULL for them.
1025         (objc_printable_name): Removed C++-specific case, which is no
1026         longer used.  Updated comments.
1028 2010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>
1030         * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
1031         (objc_demangle): Return NULL if demangling can not be done because
1032         the string to demangle is not an Objective-C mangled method name.
1033         Be smarter in demangling method names so that at least for methods
1034         with no arguments we are able to almost always demangle '_' correctly.
1035         Updated comments.
1036         (objc_maybe_printable_name): New.
1037         (objc_printable_name): Call objc_maybe_printable_name.  If it
1038         returns NULL, call cxx_printable_name in Objective-C++.
1040 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
1042         Based on the CFString implementation in FSF apple/trunk branch.
1044         * objc/objc-act.c (objc_build_string_object): Handle CFStrings.
1046 2010-10-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1048         * objc-act.c (get_objc_string_decl): Use a switch instead of a
1049         chain of ifs.  Use gcc_unreachable instead of abort.
1050         (add_objc_string): Same change.
1051         (generate_protocol_list): Same change - twice.
1052         (synth_id_with_class_suffix): Same change.
1053         (build_keyword_selector): Same change - twice.
1054         (objc_build_message_expr): Same change.
1055         (objc_build_selector_expr): Same change.
1056         (check_methods): Same change - and added missing gcc_unreachable
1057         for default case.
1058         (check_methods_accessible): Same change - twice, and added missing
1059         gcc_unreachable for default case in one of them.
1060         (start_class): Same change - and added missing gcc_unreachable for
1061         default case.
1062         (continue_class): Same change.
1063         (objc_gen_property_data): Same change.
1064         (finish_class): Same change.
1065         (encode_type_qualifiers): Added missing gcc_unreachable.
1066         (encode_type): Small code tidy up to reduce duplicated code.  Use
1067         gcc_unreachable instead of abort - twice.
1068         (encode_gnu_bitfield): Use a switch instead of a chain of ifs -
1069         twice.  Added missing gcc_unreachable for default case - twice.
1070         (dump_interface): Use a switch instead of a chain of ifs.
1071         (handle_impent): Same change.
1073 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1075         * objc-act.h (objc_inherit_code): Removed.
1076         * objc-act.c (objc_inherit_code): Removed.
1077         (objc_set_method_type): Removed.
1078         (objc_build_method_signature): Added is_class_method argument.
1079         Use it instead of the global objc_inherit_code variable.
1080         (objc_add_method_declaration): Same change.
1081         (objc_start_method_definition): Same change.
1082         (objc_generate_cxx_ctor_or_dtor): Updated call to
1083         objc_start_method_definition.  Do not call objc_set_method_type.
1084         (adjust_type_for_id_default): Mark as inline.
1085         (objc_synthesize_getter): Updated call to
1086         objc_start_method_definition.  Do not set objc_inherit_code.
1087         (objc_synthesize_setter): Updated call to
1088         objc_start_method_definition.  Do not set objc_inherit_code.
1090 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1092         Merge from 'apple/trunk' branch on FSF servers.  Obvious updates
1093         to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
1094         get it to compile in the current trunk.
1096         2006-01-27 Fariborz Jahanian <fjahanian@apple.com>
1098         Radar 4345837
1099         * objc/objc-act.c (hash_class_name_enter): New.
1100         (hash_class_name_lookup): New.
1101         (objc_declare_alias): Enter alias name into hash table.
1102         (objc_declare_class): Enter class name into hash table.
1103         (objc_is_class_name): Do a hash look up of class name.
1104         (hash_init): Initialize the two new hash tables.
1105         * objc-act.h: Added cls_name_hash_list and als_name_hash_list
1106         declarations, removed class_chain and alias_chain.
1108 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1110         * objc-lang.c (finish_file): Removed.
1111         * objc-act.c (objc_finish_file): Renamed to
1112         objc_write_global_declarations.  Do not try to instantiate C++
1113         templates when compiling Objective-C++ as this is now
1114         automatically done before this function is called.  Do not check
1115         for syntax-only run or PCH generation as this is done by the
1116         callers.
1117         * objc-act.h (objc_finish_file): Removed.
1119 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1121         Implemented parsing @synthesize and @dynamic for
1122         Objective-C/Objective-C++.
1123         * objc-act.c (objc_add_synthesize_declaration): New.
1124         (objc_add_dynamic_declaration): New.
1126 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1128         * objc-act.c (lookup_and_install_protocols): Return NULL if passed
1129         error_mark_node.
1131 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1133         Merge from 'apple/trunk' branch on FSF servers.
1135         2006-03-10  Fariborz Jahanian <fjahanian@apple.com>
1137         Radar 4407151
1138         * objc/objc-act.c (objc_is_class_name): template parameter is not
1139         an objective class name.
1140         (objc_generate_cxx_cdtors): Check for the null
1141         objc_implementation_context.
1143 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1145         Merge from 'apple/trunk' branch on FSF servers.
1147         2005-11-08  Fariborz Jahanian <fjahanian@apple.com>
1149         Radar 4330422
1150         * objc/objc-act.c (objc_non_volatilized_type): New
1152         2005-10-07  Fariborz Jahanian <fjahanian@apple.com>
1154         Radar 4204796
1155         * objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
1156         types with proper attribute set and correctly.
1157         (objc_volatilize_decl): Remove unneeded code.
1158         (objc_type_quals_match): Use the new attribute to check on
1159         'volatilzed' type.
1160         (hash_init): removed unneeded code.
1162 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1164         Merge from 'apple/trunk' branch on FSF servers.
1166         2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1168         Radar 4133425
1169         * objc-act.c (objc_diagnose_private_ivar): New.
1171 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
1173         * objc-act.c: Rename 'objc_public_flag' to  objc_ivar_visibility and
1174         make its type 'objc_ivar_visibility_kind'.
1175         (objc_start_class_interface): Update to use visibility enum.
1176         (objc_start_class_implementation): Likewise.
1177         (objc_set_visibility): Update to use visibility enum, warn that
1178         @package is handle as per @public.
1179         (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
1180         * objc-act.h: Rename 'objc_public_flag' to  objc_ivar_visibility and
1181         make its type 'objc_ivar_visibility_kind'.
1183 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1185         merge from FSF apple 'trunk' branch.
1186         2006 Fariborz Jahanian <fjahanian@apple.com>
1188         Radars 4436866, 4505126, 4506903, 4517826
1189         * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New.
1190         property_readonly, property_getter, property_setter, property_ivar,
1191         property_copies, in_objc_property_setter_name_context: New vars.
1192         (objc_set_property_attr): New.
1193         (objc_add_property_variable): New.
1194         (lookup_property_in_list): New.
1195         (lookup_property): New.
1196         (objc_build_getter_call): New.
1197         (objc_setter_func_call): New.
1198         (get_selector_from_reference): New.
1199         (objc_build_setter_call): New.
1200         (is_property): New.
1201         (build_property_reference): New.
1202         (objc_finish_message_expr): Detect readonly property and warn.
1203         (objc_build_property_ivar_name): New.
1204         (objc_build_property_setter_name): New.
1205         (objc_gen_one_property_datum): New.
1206         (objc_process_getter_setter): New.
1207         (objc_synthesize_getter): New.
1208         (objc_synthesize_setter): New.
1209         (objc_gen_property_data): New.
1210         (finish_class): Generate property data.
1211         (comp_proto_with_proto): Separated from ...
1212         (match_proto_with_proto): ... New.
1213         (objc_lookup_ivar): Handle properties.
1214         * objc-tree.def (PROPERTY_DECL): New tree code.
1215         * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size.
1216         (METHOD_PROPERTY_CONTEXT): New.
1217         (PROPERTY_NAME): New.
1218         (PROPERTY_GETTER_NAME): New.
1219         (PROPERTY_SETTER_NAME): New.
1220         (PROPERTY_IVAR_NAME): New.
1221         (PROPERTY_READONLY): New.
1222         (PROPERTY_COPIES): New.
1223         (TOTAL_CLASS_RAW_IVARS): New.
1224         (CLASS_PROPERTY_DECL): New.
1225         (IMPL_PROPERTY_DECL): New.
1226         * objc-lang.c (objc_init_ts): Update fields for property_decl.
1228 2010-10-13  Richard Henderson  <rth@redhat.com>
1230         * objc-act.c (objc_eh_personality): Update call to
1231         build_personality_function.
1233 2010-10-13  Iain Sandoe  <iains@gcc.gnu.org>
1235         merge from FSF apple 'trunk' branch.
1237         2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
1238         Radar 3803157 (method attributes)
1239         * objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
1240         * objc/objc-act.c (objc_decl_method_attributes): New.
1241         (objc_add_method_declaration): Process method's attribute.
1242         (objc_start_method_definition): Ditto.
1243         (build_objc_method_call): Inject method attribute into
1244         built function type.
1245         (objc_method_decl): New.
1246         (objc_warn_deprecated)use): New.
1248 2010-10-07  Andi Kleen  <ak@linux.intel.com>
1250         * Make-lang.in (cc1obj-dummy): Remove.
1251         (cc1obj-checksum): Change to run checksum over object files
1252         and options only.
1254 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1256         PR objc/45925
1257         * objc-act.c (objc_finish_foreach_loop): Convert return value of
1258         countByEnumeratingWithState:objects:count: to long unsigned int.
1260 2010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
1262         * objc-act.c (build_objc_method_call): Replace calls to
1263         build_function_call () with the VEC equivalent.  Construct parameter
1264         lists as VECs.
1266 2010-10-07  Iain Sandoe  <iains@gcc.gnu.org>
1268         * objc-act.c (objc_build_message_expr):  Call mark_exp_read () to
1269         signal that the receiver has been used.
1271 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1273         * README: Obsolete file removed.
1275 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1277         Implemented fast enumeration for Objective-C.
1278         * objc-act.c (build_fast_enumeration_state_template): New.
1279         (TAG_ENUMERATION_MUTATION): New.
1280         (TAG_FAST_ENUMERATION_STATE): New.
1281         (synth_module_prologue): Call build_fast_enumeration_state_template() and set up
1282         objc_enumeration_mutation_decl.
1283         (objc_create_temporary_var): Allow providing a name to temporary
1284         variables.
1285         (objc_build_exc_ptr): Updated calls to
1286         objc_create_temporary_var().
1287         (next_sjlj_build_try_catch_finally): Same change.
1288         (objc_finish_foreach_loop): New.
1289         * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
1290         OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
1291         objc_enumeration_mutation_decl.
1293         Merge from 'apple/trunk' branch on FSF servers.
1295         2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
1297         Radar 4507230
1298         * objc-act.c (objc_type_valid_for_messaging): New routine to check
1299         for valid objc object types.
1300         (objc_finish_foreach_loop): Check for invalid objc objects in
1301         foreach header.
1303 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
1305         Merge from 'apple/trunk' branch on FSF servers.
1307         2005-10-17  Fariborz Jahanian <fjahanian@apple.com>
1309         Radar 4290840
1310         * objc-act.c (objc_start_method_definition): Check for
1311         error_mark_node for the selector name and make a quick exit.
1313 2010-10-04  Andi Kleen <ak@linux.intel.com>
1315         * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
1317 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
1319         merge from FSF 'apple/trunk' branch.
1320         2006-01-30  Fariborz Jahanian <fjahanian@apple.com>
1322        Radar 4386773
1323        * objc/objc-act.c (objc_set_method_opt): New function.
1324        (objc_start_protocol, objc_finish_interface): Reset
1325        objc_method_optional_flag flag.
1326        (objc_add_method_declaration): Pass on the new
1327        flag to objc_add_method.
1328        (objc_add_method): Add optional methods to new chain in
1329        the protocol class.
1330        * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS,
1331        CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
1332        class's optional method chains.
1334 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1336         Merge from 'apple/trunk' branch on FSF servers.
1338         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
1340         Radar 4278236
1341         * objc-act.c (objc_declare_class): Pick the right
1342         type tree.
1344 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1346         Merge from 'apple/trunk' branch on FSF servers.
1348         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
1350         Radar 4281748
1351         * objc-act.c (objc_check_global_decl): New
1353 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1355         * objc-act.c (objc_is_reserved_word): Removed.
1357 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
1359         * objc-act.c (objc_add_method_declaration): Handle and ignore
1360         attributes.
1361         (objc_start_method_definition): Likewise.
1362         (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor.
1363         (objc_build_keyword_decl): Handle and ignore attributes.
1365 2010-09-28  Richard Henderson  <rth@redhat.com>
1367         * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info.
1369 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
1371         * objc-act.c (objc_start_class_interface): Handle and ignore attributes.
1372         (objc_start_category_interface): Likewise.
1373         (objc_start_protocol): Likewise.
1375 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1377         Merge from 'apple/trunk' branch on FSF servers.
1379         2005-08-23  Stuart Hastings <stuart@apple.com>
1380                     Ziemowit Laski  <zlaski@apple.com>
1382         Radar 4209854
1383         * objc-act.c (objc_decay_parm_type): New function.
1384         (get_arg_type_list): Decay types for all named arguments.
1385         (objc_push_parm): Rebuild the PARM_DECL if its type has
1386         been decayed.
1388 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1390         * objc-act.c (encode_type): Fixed encoding enums with the next
1391         runtime.
1393 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1395         Merge from 'apple/trunk' branch on FSF servers.
1397         2005-07-18  Ziemowit Laski  <zlaski@apple.com>
1399         Radar 4175534
1400         * objc-act.c (objc_compare_types): A new silent comparison
1401         mode (-4), differing from regular comparison (-3) in that
1402         'false' is returned instead of issuing warnings.
1404 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1406         * objc-act.c (encode_type): Do not add 'r' with the next runtime.
1407         (encode_aggregate_within): Reorganized code to be more readable.
1408         (encode_aggregate_fields): Updated second argument to be 'bool'
1409         instead of 'int'.
1411 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1413         PR objc/45763
1414         PR objc/25450
1415         PR objc/25464
1416         * objc-act.c: Improved comments for encoding functions.
1417         (encode_aggregate_within): For the GNU runtime, rewritten some
1418         obsfuscated code to clarify the various cases.
1419         (encode_aggregate): Function removed.
1420         (encode_array): Generate an error if asked to encode an incomplete
1421         array as part of generating instance variables.  Else, when
1422         encoding an incomplete array inside a structure, encode it as an
1423         array of zero size.
1424         (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
1425         '^c' instead of '*'.
1426         (encode_gnu_bitfield): Encode enumerated types exactly in the same
1427         type as integer types instead of using a hardcoded 'i'.  If asked
1428         to encode a non-integer type as a bitfield, do not abort
1429         compilation immediately; instead generate an error, then skip the
1430         type.
1431         (encode_type): Use a 'switch' instead of a sequence of 'if's.
1432         Added a 'default' clause that gets executed if the type can not be
1433         matched, and that encodes it as '?' (unknown) and produces a
1434         warning.  For the GNU runtime, encode enumerated types exactly in
1435         the same way as integer types instead of using a hardcoded 'i'.
1436         Encode long double as 'D'.  Encode 128-bit integers as 'T' or 't'.
1437         Encode C++ reference types as pointers.  Call encode_vector to
1438         encode vectors.
1439         (encode_vector): New function.
1441 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1443         Merge from 'apple/trunk' branch on FSF servers.  I modified the
1444         changes to be used only when compiling for the NeXT runtime.
1446         2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
1448         Radar 4301047
1450         * objc-act.c (encode_type): Remove the hack.
1452         2005-07-20  Ziemowit Laski  <zlaski@apple.com>
1454         Radar 4136935
1455         * objc-act.c (pointee_is_readonly): New function.
1456         (encode_pointer, encode_aggregate_within, encode_type):
1457         Attempt to emulate GCC 3.3 when generating type encodings.
1459 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1461         Merge from 'apple/trunk' branch on FSF servers.
1463         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
1465         Radar 4229905
1466         * objc-act.c (objc_have_common_types): New function.
1468         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
1470         Radar 4154928
1471         * objc-act.c (objc_common_type): New function.
1473 2010-09-27  Richard Guenther  <rguenther@suse.de>
1475         * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT.
1476         (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P.
1478 2010-09-26  Nicola Pero  <nicola.pero@meta-innovation.com>
1480         * objc-act.c: Removed historical, obsolete comment at the top of
1481         the file.
1483 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1485         PR objc/23710
1486         * objc-act.c (objc_start_method_definition): Do not abort upon a
1487         'method definition not in @implementation context' error.  Return
1488         'false' instead.
1490 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1492         PR objc/25965
1493         * objc-act.c (objc_get_interface_ivars): New function.
1494         (objc_collecting_ivars): New variable.
1495         (continue_class): Set and reset objc_collecting_ivars for context.
1497 2010-09-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1499         Merge from 'apple/trunk' branch on FSF servers.
1501         2006-03-09 Fariborz Jahanian <fjahanian@apple.com>
1503         Radar 4457381
1504         * objc/objc-act.c (objc_finish_message_expr): Look for message in
1505         @class's protocol list.
1507         2006-02-07  Fariborz Jahanian <fjahanian@apple.com>
1509         Radar 4219590
1510         * objc/objc-act.c (objc_start_method_definition): Initialize
1511         break/continue labels.
1513         2005-08-22  Ziemowit Laski  <zlaski@apple.com>
1515         Radar 4174166
1516         * objc-act.c (objc_compare_types): Compare function
1517         pointers; indicate success if the right-hand side has
1518         a return type that is covariant, and the argument types
1519         contravariant, with those of the left side.
1521         2005-08-22  Ziemowit Laski  <zlaski@apple.com>
1523         Radar 4216500
1524         * objc-act.c (objc_get_protocol_qualified_type): When looking
1525         at a typedef, retrieve the precise type it describes (rather
1526         than merely looking up a class by name).
1528 2010-09-10  Nicola Pero  <nicola.pero@meta-innovation.com>
1530         * objc/objc-act.c (objc_begin_try_stmt): Generate an error if
1531         -fobjc-exceptions was not used.  (objc_build_throw_stmt): Same
1532         change.
1534 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
1536         * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
1538 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
1540         PR objc/44140
1541         * objc-act.c: build_objc_string_decl() remove declaration.
1542         (finish_var_decl): Remove forcing of var output and marking
1543         as "Used".
1544         (init_def_list): Use integer_zero_node.
1545         (init_objc_symtab): Use integer_zero_node, make the short
1546         integer type specific on relevant nodes.
1547         (generate_objc_symtab_decl): Remove call to
1548         forward_declare_categories().  Use null_pointer_node where
1549         appropriate.
1550         (build_module_descriptor): Comment and mark this item as
1551         DECL_PRESERVE_P.
1552         (generate_static_references): Use gcc_unreachable instead of
1553         abort ().
1554         (diagnose_missing_method): New.
1555         (build_next_selector_translation_table): New.
1556         (build_gnu_selector_translation_table): New.
1557         (add_objc_string): Merge code from build_objc_string_decl...
1558         ... and delete build_objc_string_decl().
1559         (generate_dispatch_table): Make integer types explicit.
1560         (generate_category): Pass implent and arrange for the data
1561         to be extracted within the routine.  Do not start new vars,
1562         but finish the ones collcted during parsing.
1563         (generate_shared_structures): Likewise.
1564         (finish_objc):  Reorder code so that we finish variables before
1565         referencing them.  Save the global data before calling meta-data
1566         creation routines, and pass the current reference to the two
1567         main routines.  Only call generate_objc_image_info () for the
1568         NeXT runtime.
1569         (generate_classref_translation_entry): Comment on and make this
1570         item DECL_PRESERVE_P.
1571         (handle_class_ref): Use varpool interfaces, comment on and make
1572         this item DECL_PRESERVE_P.
1573         (handle_impent): Likewise.
1574         (generate_objc_image_info): Only generate when the content is
1575         non-zero.  Make integer types explict.
1577 2010-07-03  Nathan Froyd  <froydnj@codesourcery.com>
1579         PR objc/24867
1580         * objc-act.c (build_sized_array_type): New function.
1581         (add_objc_string): Use it.
1582         (generate_protocol_list): Likewise.
1583         (generate_objc_image_info): Likewise.
1584         (add_field_decl): New function.
1585         (objc_build_struct): Use a VEC rather than building a TREE_LIST.
1586         (generate_struct_by_value_array): Use add_field_decl.
1587         (build_objc_symtab_template): Likewise.
1588         (build_module_descriptor): Likewise.
1589         (build_objc_exception_stuff): Likewise.
1590         (build_protocol_template): Likewise.
1591         (build_method_prototype_list_template): Likewise.
1592         (build_method_prototype_template): Likewise.
1593         (build_category_template): Likewise.
1594         (build_selector_template): Likewise.
1595         (build_class_template): Likewise.
1596         (build_super_template): Likewise.
1597         (build_ivar_template): Likewise.
1598         (build_ivar_list_template): Likewise.
1599         (build_method_list_template): Likewise.
1600         (build_method_template): Likewise.
1602 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
1604         * objc-act.c: Do not include except.h.
1606 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1608         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
1609         allocation.
1611         * objc-act.c (objc_volatilize_decl): Likewise.
1612         (objc_build_string_object): Likewise.
1613         (hash_init): Likewise.
1614         (hash_enter): Likewise.
1615         (hash_add_attr): Likewise.
1616         (add_class): Likewise.
1617         (start_class): Likewise.
1619 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
1621         * objc-act.c: Update include path for moved files.
1622         * objc-lang.c: Likewise.
1623         * config-lang.in: Update paths in gtfiles for files in c-family/.
1625 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
1627         * objc-act.c (build_next_objc_exception_stuff): Give setjmp a
1628         varargs type instead of a zero-argument type.
1630 2010-05-30  Nathan Froyd  <froydnj@codesourcery.com>
1632         * objc-act.c (synth_module_prologue): Use build_function_type_list
1633         instead of build_function_type.
1634         (build_module_initializer_routine): Likewise.
1635         (build_next_objc_exception_stuff): Likewise.
1636         (build_objc_exception_stuff): Likewise.
1638 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
1640         * objc-act.c: Include diagnostic-core.h instead of diagnostic.h.
1641         * Make-lang.in (objc/objc-act.o): Update dependencies.
1643 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
1645         * objc-act.h: Do not include gimple.h.
1646         * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h.
1647         Include gimple.h.  Explain why except.h has to be included.
1648         * objc-lang.c: Do not include diagnostics.h.
1649         * Make-lang.in: Update dependencies.
1651 2010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
1653         * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance
1654         mismatch code for VECs.
1656 2010-05-25  Nathan Froyd  <froydnj@codesourcery.com>
1658         * objc-act.c (objc_build_constructor): Take a VEC instead of a tree.
1659         Use build_constructor instead of build_constructor_from_list.
1660         (objc_build_string_object): Build a VEC argument for
1661         objc_build_constructor.
1662         (init_def_list): Likewise.
1663         (init_objc_symtab): Likewise.
1664         (init_module_descriptor): Likewise.
1665         (generate_static_references): Likewise.
1666         (build_selector_translation_table): Likewise.
1667         (build_descriptor_table_initializer): Likewise.
1668         (generate_descriptor_table): Likewise.
1669         (build_protocol_initializer): Likewise.
1670         (build_ivar_list_initializer): Likewise.
1671         (generate_ivars_list): Likewise.
1672         (build_dispatch_table_initializer): Likewise.
1673         (generate_dispatch_table): Likewise.
1674         (generate_protocol_list): Likewise.
1675         (build_category_initializer): Likewise.
1676         (build_shared_structure_initializer): Likewise.
1677         (generate_objc_image_info): Likewise.
1679 2010-04-30  Iain Sandoe  <iains@gcc.gnu.org>
1681         PR objc++/32052
1682         * objc-act.c (encode_aggregate_within): Encode structure tags
1683         with template args for ObjC++.
1685 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1687         * objc-act.c: Do not include varray.h.
1689 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
1691         PR c/18624
1692         * objc-act.c (finish_var_decl, objc_begin_catch_clause,
1693         really_start_method, get_super_receiver, handle_class_ref): Set
1694         DECL_READ_P in addition to TREE_USED.
1696 2010-04-07  Iain Sandoe <iains@gcc.gnu.org>
1698         PR objc/35996
1699         * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
1700         -fgnu-runtime and set flag_objc_gc to zero.
1702 2010-04-07  Iain Sandoe <iains@gcc.gnu.org>
1704         PR objc++/23716
1705         * objc-act.c (build_module_initializer_routine): Make the argument
1706         to objc_start_function NULL_TREE when compiling ObjC++.
1708 2010-02-18  Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1709             Mike Stump  <mikestump@comcast.net>
1711         PR objc/43061
1712         * objc-act.c (finish_var_decl): Set the generated symbols as "used".
1714 2009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
1716         * objc-act.c (objc_substitute_decl, build_ivar_reference,
1717         get_super_receiver): Update build_indirect_ref calls.
1719 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
1721         * objc-act.c (generate_shared_structures): Remove unused sc_spec and
1722         decl_specs variables.
1723         (objc_build_message_expr): Remove unused loc variable.
1724         (objc_finish_message_expr): Remove unused saved_rtype variable.
1725         (encode_field_decl): Remove unused type variable.
1727         PR obj-c++/42156
1728         * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for
1729         type variants that don't have it initialized yet.
1731 2009-09-14  Jan Hubicka  <jh@suse.cz>
1733         * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON.
1735 2009-09-14  Richard Henderson  <rth@redhat.com>
1737         * objc-act.c (objc_init_exceptions): Don't call
1738         default_init_unwind_resume_libfunc.
1739         (objc_build_exc_ptr): Use __builtin_eh_pointer.
1741 2009-09-13  Richard Guenther  <rguenther@suse.de>
1742         Rafael Avila de Espindola  <espindola@google.com>
1744         * objc-act.c (objc_eh_runtime_type): Export.
1745         (objc_init_exceptions): Remove.  Move warning code ...
1746         (objc_begin_try_stmt): ... here
1747         (objc_build_throw_stmt): ... and here.
1748         (objc_eh_personality_decl): New.
1749         (objc_eh_personality): New function.
1750         * objc-act.h (objc_eh_runtime_type): Declare.
1751         (objc_eh_personality): Likewise.
1752         * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
1753         (LANG_HOOKS_EH_PERSONALITY): Likewise.
1755 2009-09-03  Diego Novillo  <dnovillo@google.com>
1757         * objc-lang.c (lang_hooks): Remove const qualifier.
1759 2009-08-20  Richard Guenther  <rguenther@suse.de>
1761         * objc-act.c: Include c-lang.h
1762         * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency.
1764 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
1765             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1767         PR 40435
1768         * objc-act.c: Add location argument to all calls to
1769         build_fold_addr_expr.
1771 2009-07-14  Taras Glek  <tglek@mozilla.com>
1772             Rafael Espindola  <espindola@google.com>
1774         * Make-lang.in (objc.install-plugin): New target for
1775         installing plugin headers.
1777 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1779         * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by
1780         EXPR_LOCATION.
1782 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1784         * objc-act.c: Replace %J by an explicit location. Update all
1785         calls.
1787 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1789         * objc-act.c: Replace %H by an explicit location. Update all
1790         calls.
1792 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
1794         PR objc/28050
1795         * objc-act.c (objc_build_message_args): Return if ARGS is the
1796         error_mark_node.
1798 2009-06-19  Ian Lance Taylor  <iant@google.com>
1800         * objc-act.c (objc_in_struct, objc_struct_types): Remove.
1801         (objc_struct_info): New static variable.
1802         (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
1803         and &objc_struct_types, to start_struct.
1804         (objc_finish_struct): Likewise for finish_struct.
1806 2009-06-15  Ian Lance Taylor  <iant@google.com>
1808         * objc-act.c (objc_start_function): Don't set
1809         label_context_stack_se or label_context_stack_vm.
1811 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
1813         * objc-act.c (finish_var_decl): Pass location to finish_decl.
1814         (objc_get_parm_info): Same.
1815         (get_super_receiver): Same.
1816         * objc-act.c (objc_build_component_ref): Pass location to
1817         build_compound_ref.
1818         (build_module_initializer_routine): Pass location to
1819         c_end_compound_stmt.
1820         (objc_generate_static_init_call): Pass location to build_stmt.
1821         (build_typed_selector_reference): New location argument.
1822         (build_selector_reference): Same.
1823         (objc_substitute_decl): Pass location to build_array_ref.
1824         (next_sjlj_build_try_catch_finally): Pass location to build_stmt.
1825         (objc_begin_catch_clause): Same.
1826         (objc_finish_try_stmt): Same.
1827         (objc_finish_catch_clause): Pass location to c_end_compound_stmt.
1828         (objc_build_throw_stmt): New argument.
1829         (generate_shared_structures): Pass location to build_c_cast.
1830         (objc_build_message_expr): Use local location.
1831         (objc_finish_message_expr): Use input_location.
1832         (build_objc_method_call): New argument.
1833         (objc_build_selector_expr): Same.
1834         (get_super_receiver): Pass location to build_c_cast,
1835         build_modify_expr, build_compound_expr.
1836         * objc-act.c: Add location to all calls to start_struct, build_decl,
1837         finish_struct.
1839 2009-06-09  Ian Lance Taylor  <iant@google.com>
1841         * objc-act.c (objc_gimplify_expr): Change return type to int.
1842         * objc-act.h: Update declaration.
1844 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
1846         * objc-act.c (objc_init): Skip print_struct_values during
1847         -fcompare-debug-second.
1849 2009-06-03  Ian Lance Taylor  <iant@google.com>
1851         * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
1852         $(SYSTEM_H).
1854 2009-05-27  Ian Lance Taylor  <iant@google.com>
1856         * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to
1857         $(LINKER).
1858         (cc1obj$(exeext)): Likewise.
1860 2009-05-26  Ian Lance Taylor  <iant@google.com>
1862         * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER).
1863         (cc1obj$(exeext)): Likewise.
1865 2009-05-20  Ian Lance Taylor  <iant@google.com>
1867         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
1868         than NULL_TREE to build_special_member_call.
1870 2009-05-10  Ian Lance Taylor  <iant@google.com>
1872         * objc-act.c (objc_building_struct): New static variable.
1873         (objc_in_struct, objc_struct_types): New static variables.
1874         (objc_start_struct, objc_finish_struct): New static functions.
1875         (generate_struct_by_value_array): Call objc_start_struct instead
1876         of start_struct, and call objc_finish_struct instead of
1877         finish_struct.
1878         (objc_build_struct, build_objc_symtab_template): Likewise.
1879         (build_module_descriptor): Likewise.
1880         (build_next_objc_exception_stuff): Likewise.
1881         (build_protocol_template): Likewise.
1882         (build_method_prototype_list_template): Likewise.
1883         (build_method_prototype_template): Likewise.
1884         (build_category_template, build_selector_template): Likewise.
1885         (build_class_template, build_super_template): Likewise.
1886         (build_ivar_template, build_ivar_list_template): Likewise.
1887         (build_method_list_template): Likewise.
1888         (build_method_template): Likewise.
1890 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1892         * objc-act.c: Include intl.h.
1893         (objc_lookup_protocol): Use complete sentences for diagnostics
1894         with %qE for identifiers and translating results of
1895         gen_type_name_0 to locale character set.
1896         (objc_check_decl, check_protocol_recursively,
1897         lookup_and_install_protocols, objc_build_string_object,
1898         objc_get_class_reference, objc_declare_alias, objc_declare_class,
1899         objc_get_class_ivars, error_with_ivar, check_duplicates,
1900         objc_finish_message_expr, objc_build_protocol_expr,
1901         objc_build_selector_expr, build_ivar_reference, objc_add_method,
1902         add_category, add_instance_variable, objc_is_public,
1903         check_methods, check_methods_accessible, check_protocol,
1904         start_class, finish_class, start_protocol, really_start_method,
1905         get_super_receiver, objc_lookup_ivar): Use %E and %qE for
1906         identifiers in diagnostics.  Translate generated text to locale
1907         character set as needed.
1908         (check_protocol, check_protocols): Change name parameter to type
1909         tree.
1910         (lang_report_error_function): Remove.
1912 2009-04-27  Ian Lance Taylor  <iant@google.com>
1914         * objc-act.c (objc_gimplify_expr): Add casts to enum type.
1916 2009-04-24  Ian Lance Taylor  <iant@google.com>
1918         * objc-act.c (get_super_receiver): Update calls to
1919         build_modify_expr to pass new argument.
1921 2009-04-21  Taras Glek <tglek@mozilla.com>
1923         * objc-act.c: Update GTY annotations to new syntax
1924         * objc-act.h: Likewise
1926 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
1928         * ChangeLog: Add copyright and license notices.
1930 2009-04-20  Ian Lance Taylor  <iant@google.com>
1932         * objc-act.c (objc_rewrite_function_call): Change parameter from
1933         params to first_param.  Change all callers.
1935 2009-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
1937         PR bootstrap/39583
1938         * objc-act.c (in_late_binary_op): Define for Objective-C++.
1940 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
1942         PR c/456
1943         PR c/5675
1944         PR c/19976
1945         PR c/29116
1946         PR c/31871
1947         PR c/35198
1948         * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op.
1950 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
1952         PR bootstrap/38262
1953         * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS,
1954         remove GMPLIBS.
1956 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1958         * objc-act.c (objc_build_string_object): Pass location to
1959         build_unary_op.
1960         (init_def_list): Same.
1961         (init_objc_symtab): Same.
1962         (init_module_descriptor): Same.
1963         (build_module_initializer_routine): Same.
1964         (generate_static_references): Same.
1965         (build_typed_selector_reference): Same.
1966         (add_objc_string): Same.
1967         (objc_substitute_decl): Same.
1968         (objc_build_ivar_assignment): Same.
1969         (objc_build_global_assignment): Same.
1970         (objc_build_strong_cast_assignment): Same.
1971         (generate_protocols): Same.
1972         (build_protocol_initializer): Same.
1973         (build_dispatch_table_initializer): Same.
1974         (generate_protocol_list): Same.
1975         (build_category_initializer): Same.
1976         (build_shared_structure_initializer): Same.
1977         (generate_shared_structures): Same.
1978         (objc_build_protocol_expr): Same.
1979         (build_ivar_reference): Same.
1980         (get_super_receiver): Same.
1982 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
1984         * objc-act.c (next_sjlj_build_enter_and_setjmp): Call
1985         c_common_truthvalue_conversion with location.
1986         (next_sjlj_build_catch_list): Same.
1987         (next_sjlj_build_try_catch_finally): Same.
1989 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1991         PR objc/37460
1992         * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
1993         * objc-act.h (objc_get_callee_fndecl): Remove prototype.
1994         * objc-act.c (objc_get_callee_fndecl): Kill.
1996 2008-09-17  Jan Hubicka  <jh@suse.cz>
1998         PR c++/18071
1999         * objc/objc-act.c (objc_finish_method_definition): Do not set
2000         DECL_INLINE.
2002 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
2004         * objc-act.c (build_typed_selector_reference): Pass input_location to
2005         build_unary_op calls.
2006         (build_selector_reference): Same, but to build_array_ref.
2007         (objc_substitute_decl): Same.
2008         (build_ivar_reference): Same, but to build_indirect_ref.
2009         (get_super_receiver): Same.
2011 2008-07-28  Richard Guenther  <rguenther@suse.de>
2013         Merge from gimple-tuples-branch.
2015         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
2017         * Make-lang.in (objc-lang.o): Depend on GIMPLE_H.
2018         (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H.
2019         * objc-act.h: Include gimple.h instead of tree-gimple.h.
2020         * ipa-reference.c: Same.
2022         2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
2024         * objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
2025         * objc-act.h (objc_gimplify_expr): Change prototype accordingly.
2027 2008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2029         * objc-act.c: Fix comment typos.
2031 2008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2033         * objc-act.c (objc_start_class_interface,
2034         objc_start_category_interface, objc_start_class_implementation,
2035         objc_start_category_implementation, objc_build_struct,
2036         generate_static_references, build_private_template,
2037         lookup_category, objc_add_method, add_category,
2038         add_instance_variable, objc_is_public, conforms_to_protocol,
2039         start_class, continue_class, finish_class): Avoid C++ keywords.
2041 2008-07-14  Jason Merrill  <jason@redhat.com>
2043         PR objc++/36723
2044         * objc-act.c (objc_build_constructor): Update C++ tweak.
2046 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
2048         * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead
2049         of DECL_IN_SYSTEM_HEADER.
2051 2008-07-11  Ian Lance Taylor  <iant@google.com>
2053         * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
2054         etc., not just when OBJCPLUS is defined.
2056 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2058         * objc-act.c (setup_string_decl, objc_build_string_object,
2059         hash_interface, eq_interface, objc_begin_try_stmt,
2060         encode_method_prototype, build_ivar_list_initializer,
2061         objc_build_encode_expr): Fix for -Wc++-compat.
2063 2008-05-12  Tomas Bily  <tbily@suse.cz>
2065         * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr):
2066         Use CONVERT_EXPR_P.
2068 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2070         * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
2072 2008-04-03  Tom Tromey  <tromey@redhat.com>
2074         * Make-lang.in (objc_OBJS): New variable.
2076 2008-03-27  Tom Tromey  <tromey@redhat.com>
2078         * Make-lang.in: Revert automatic dependency patch.
2080 2008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
2082         PR obj-c++/35704
2083         * objc-act.c (objc_build_component_ref): Fix call to
2084         finish_class_member_access_expr.
2085         (objc_generate_cxx_ctor_or_dtor): Fix call to
2086         build_special_member_call.
2088 2008-03-25  Andrew Pinski  <pinskia@gmail.com>
2090         PR objc/29197
2091         * objc-act.c (encode_type): Handle when type is error_mark_node.
2092         (objc_push_parm): Handle when the type of parm is error_mark_node.
2094 2008-03-25  Tom Tromey  <tromey@redhat.com>
2096         * Make-lang.in (objc_OBJS): New variable.
2097         (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove.
2099 2008-03-21  Andreas Tobler  <a.tobler@schweiz.org>
2101         PR bootstrap/35660
2102         * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to
2103         MAYBE_CLASS_TYPE_P.
2104         (objc_generate_cxx_cdtors): Likewise.
2105         (add_instance_variable): Likewise.
2107 2008-02-26  Tom Tromey  <tromey@redhat.com>
2109         * objc-act.c (objc_init): Remove old location code.
2111 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2113         PR other/35107
2114         * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS).
2116 2007-07-30  Nick Clifton  <nickc@redhat.com>
2118         * Make-lang.in: Change copyright header to refer to version 3 of
2119         the GNU General Public License and to point readers at the
2120         COPYING3 file and the FSF's license web page.
2121         * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h,
2122         config-lang.in, objc-lang.c: Likewise.
2124 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2126         * objc-act.c (objc_get_callee_fndecl): Constify.
2127         * objc-act.h (objc_get_callee_fndecl): Likewise.
2129 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2131         * objc-act.c (volatilized_hash, volatilized_eq, string_hash,
2132         string_eq): Constify.
2134 2007-04-04  Stuart Hastings  <stuart@apple.com>
2136         PR 31281
2137         * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
2139 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2141         * Make-lang.in: Add dummy lang.install-pdf target.
2143 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
2145         * objc/objc-act.c: Fix comment typos.
2147 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2148             Brooks Moses  <brooks.moses@codesourcery.com>
2149             Lee Millward  <lee.millward@codesourcery.com>
2151         * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
2152         (objc_get_callee_fndecl): Likewise.
2154 2007-01-23  Andrew Pinski  <pinskia@gmail.com>
2156         PR objc/27438
2157         * objc-act.c (objc_add_static_instance): Mark the decl as
2158         TREE_USED.
2160 2007-01-20  Andrew Pinski  <pinskia@gmail.com>
2162         PR objc/30479
2163         * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
2164         of htab_hash_pointer.
2165         (lookup_interface): Likewise.
2166         (add_class): Likewise.
2168 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
2170         * objc-act.c (objc_build_volatilized_type): Keep track of
2171         canonical types.
2172         (objc_get_protocol_qualified_type): Ditto.
2174 2006-11-02  Andreas Tobler  <a.tobler@schweiz.org>
2176         * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and
2177         content where we called cp_finish_file.
2179 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2181         * objc-act.c (synth_module_prologue): Replace calls to
2182         builtin_function with add_builtin_function.
2183         (build_next_objc_exception_stuff): Replace calls to
2184         builtin_function with add_builtin_function.
2185         (build_objc_exception_stuff): Replace calls to
2186         builtin_function with add_builtin_function.
2188 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
2190         * Make-lang.in: Added empty "objc.pdf" target.
2192 2006-09-26  Andrew Pinski  <pinskia@physics.uc.edu>
2194         PR objc/29195
2195         * objc-act.c (objc_push_parm): If we change the type of the
2196         decl, relayout the decl.
2198 2006-09-19  Eric Christopher  <echristo@apple.com>
2200         * objc-act.c (JBLEN): Rename to OBJC_JBLEN,
2201         default to something innocuous.
2202         (build_next_objc_exception_stuff): Rename JBLEN.
2204 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2206         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2208 2006-07-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2210         PR obj-c++/28434
2211         * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
2213 2006-06-06  Mike Stump  <mrs@apple.com>
2215         * objc-act.c: Remove prototype for objc_build_volatilized_type.
2217 2006-05-24  Mike Stump  <mrs@apple.com>
2219         * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN.
2221 2006-05-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2223         PR objc/27240
2224         * objc-act.c (objc_is_public): Return early on invalid type.
2226 2006-03-02 Fariborz Jahanian <fjahanian@apple.com>
2228         * objc-act.c (init_module_descriptor): Remove file name from
2229         module descriptor.
2230         (gen_type_name_0): Fix ICE when issuing warning.
2232 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2233         * Make-lang.in (OBJC): Remove
2234         (OBJECTIVE-C): Remove
2235         (objective-c): Remove
2236         (.PHONY): Remove objective-c and ObjC
2238 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
2240         PR objc/25360
2241         * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed
2242         by the inner type.
2244 2005-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
2246         PR objc/25348
2247         * objc-act.c (encode_array): Handle arrays to zero sized types.
2249 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2251         * Make-lang.in (objc.all.build, objc.install-normal): Remove.
2253 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2255         * Make-lang.in: Remove all dependencies on s-gtype.
2257 2005-12-02  Richard Guenther  <rguenther@suse.de>
2259         * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp
2260         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
2261         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
2262         build_objc_method_call, objc_rewrite_function_call): Use buildN
2263         instead of build.
2265 2005-10-20  Geoffrey Keating  <geoffk@apple.com>
2267         * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW
2268         on objc_msgSend and like builtin functions.
2270 2005-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2272         * objc-act.c (objc_build_component_ref): Adjust call to
2273         finish_class_member_access_expr due to a changed prototype.
2275 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
2277         PR objc/23306
2278         * objc-act.c (generate_strings): Remove and move code to
2279         finish decl to ...
2280         (add_objc_string): here when creating a new string decl.
2281         (finish_objc): Don't call generate_strings.
2283 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
2285         PR objc/23381
2286         * objc-act.c (next_sjlj_build_try_catch_finally): Set
2287         TREE_SIDE_EFFECTS on catch_seq after building it.
2289 2005-08-09  Andrew Pinski  <pinskia@physics.uc.edu>
2291         part of PR objc/21992
2292         * objc-act.c (handle_class_ref): The ref decl is always referenced.
2294 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
2296         Make CONSTRUCTOR use VEC to store initializers.
2297         * objc-act.c (objc_build_constructor): Use build_constructor_from_list
2298         instead of build_constructor.
2300 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
2302         * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
2303         removed.
2304         * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
2305         (KEYWORD_KEY_NAME): Use decl_minimal.
2306         (METHOD_SEL_NAME): Ditto..
2307         (METHOD_SEL_ARGS): Use decl_non_common.
2308         (METHOD_ADD_ARGS): Ditto.
2309         (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
2310         (METHOD_DEFINITION): Ditto.
2311         (METHOD_ENCODING): Ditto.
2312         * objc-lang.c: (objc_init_ts): New function.
2314 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
2316         * objc-act.c (objc_build_struct): Pass in an actual @interface
2317         instead of its name, and annotate the struct created (and all
2318         existing variants thereof) with the @interface.
2319         (objc_compare_types): Treat forward-declared ObjC classes
2320         as stand-alone (root) classes for purposes of type comparisons.
2321         (build_private_template): Move some code to objc_build_struct().
2323 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
2325         PR objc/22274
2326         * objc-act.c (objc_build_string_object): For GNU-style constants,
2327         use the @interface type rather than the built-in type.
2329 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
2331         * Make-lang.in (cc1plus-checksum.c): Use
2332         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
2334 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
2336         * objc-act.c: Use %q to quote in diagnostics.
2338 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
2340         * objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
2341         quoting.
2343 2005-06-30  Ziemowit Laski  <zlaski@apple.com>
2345         * objc-act.c (objc_build_volatilized_type): New function.
2346         (objc_volatilize_decl): Call objc_build_volatilized_type()
2347         instead of build_qualified_type().
2349 2005-06-29  Ziemowit Laski  <zlaski@apple.com>
2351         * objc-act.c (objc_build_internal_const_str_type): New function.
2352         (check_string_class_template): Use objc_get_class_ivars() instead
2353         of TYPE_FIELDS() to retrieve ivar list.
2354         (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
2355         than the field itself.
2356         (objc_build_string_object): Synthesize a "__builtin_ObjCString"
2357         type and use it to lay out compile-time string objects.
2358         * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
2359         New.
2361 2005-06-28  Paul Brook  <paul@codesourcery.com>
2363         * objc-act.c (objc_init_exceptions): Call
2364         default_init_unwind_resume_libfunc.
2366 2005-06-27  Ziemowit Laski  <zlaski@apple.com>
2368         * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
2369         portion of TYPE_LANG_SPECIFIC info for all variants of
2370         a class before calling finish_struct(), and restore
2371         same TYPE_OBJC_INFO afterwards.
2373 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
2375         * all files: Update FSF address in copyright headers.
2377 2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
2379         * objc-act.c (my_build_string_pointer): New.
2380         (objc_get_class_reference, get_super_receiver): Call
2381         my_build_string_pointer instead of my_build_string when building
2382         function arguments.
2384 2005-05-25  Mike Stump  <mrs@mrs.kithrup.com>
2386         * objc-act.c (volatilized_hash): Avoid warnings on 64-bit
2387         machines.
2389 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
2391         * objc-act.c (objc_build_struct): New function.
2392         (objc_derived_from_p): Likewise.
2393         (objc_build_component_ref): Likewise.
2394         (objc_copy_binfo): Likewise.
2395         (objc_xref_basetypes): Likewise.
2396         (objc_lookup_protocol): Likewise.
2397         (objc_compare_protocols): Likewise.
2398         (objc_volatilize_decl): Likewise.
2399         (encode_aggregate_fields): Likewise.
2400         (volatilized_hash): Likewise.
2401         (volatilized_eq): Likewise.
2402         (objc_compare_types): Likewise.
2403         (objc_type_quals_match): Likewise.
2404         (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
2405         of same name.
2406         (get_class_ivars): Add second parameter indicating if entire
2407         hierarchy is desired.
2408         (struct volatilized_type): New type.
2409         (volatilized_htab): New hash table.
2410         (objc_types_compatible_p, objc_comptypes): Remove functions.
2411         (synth_module_prologue): Do not initialize 'unused_list'.
2412         (objc_get_class_reference): Fix ObjC++ impedance mismatches.
2413         (objc_declare_alias): Implement as a typedef.
2414         (objc_substitute_decl, objc_gimplify_expr): Reformat.
2415         (objc_get_class_ivars): Adjust call to get_class_ivars().
2416         (next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
2417         build_ivar_reference, get_super_receiver): Call
2418         objc_build_component_ref() instead of build_component_ref().
2419         (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
2420         objc_comptypes().
2421         (build_private_template): Call objc_build_struct() instead of
2422         start_struct() and finish_struct().
2423         (hash_init): Initialize volatilized_htab.
2424         (objc_is_public): Adjust calls to objc_get_ivars(); adjust
2425         ObjC++ impedance mismatches.
2426         (encode_aggregate_within): Streamline by calling
2427         encode_aggregate_fields().
2428         * objc-act.h (objc_types_compatible_p): Remove prototype.
2429         (OCTI_UNUSED_LIST, unused_list): Remove slot.
2430         * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
2432 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
2434         * Make-lang.in (cc1obj-dummy): New.
2435         (cc1obj-checksum.c): New.
2436         (cc1obj-checksum.o): New.
2437         (cc1obj): Add cc1obj-checksum.o.
2439 2005-05-18  Mike Stump  <mrs@apple.com>
2441         PR objc/21641
2442         * objc-act.c (struct interface_tuple): Mark it up for GC.
2443         (interface_htab): It is really a struct interface_tuple.
2445 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
2446             Mike Stump  <mrs@apple.com>
2448         Yet more Objective-C++...
2450         * objc-act.c (objc_finish_try_stmt): Add return value.
2451         (objc_build_synchronized): Likewise.
2453         * objc-act.c (objc_is_gcable_type): Add.
2454         (objc_substitute_decl): Add.
2455         (objc_build_ivar_assignment): Add.
2456         (objc_build_global_assignment): Add.
2457         (objc_build_strong_cast_assignment): Add.
2458         (objc_is_ivar_reference_p): Add.
2459         (objc_is_global_reference_p): Add.
2460         (objc_generate_write_barrier): Add.
2461         (objc_rewrite_function_call): Add.
2462         (objc_gimplify_expr): Add Objective-C++ support.
2463         * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
2464         (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
2465         (INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
2466         (DUP_TYPE_OBJC_INFO): Likewise.
2467         (struct imp_entry): Add field has_cxx_cdtors.
2468         (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
2469         OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
2470         OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
2471         OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
2472         OCTI_ASSIGN_STRONGCAST_DECL.
2473         (umsg_fast_decl): Add.
2474         (objc_assign_ivar_decl): Add.
2475         (objc_assign_ivar_fast_decl): Add.
2476         (objc_assign_global_decl): Add.
2477         (objc_assign_strong_cast_decl): Add.
2478         (objc_method_list_ptr): Add.
2479         (objc_method_proto_list_ptr): Add.
2480         (objc_ivar_list_ptr): Add.
2482         * objc-act.c (should_call_super_dealloc): Add.
2483         (OBJC_VERSION): Bump to 6.
2484         (objc_is_gcable_type): Add.
2485         (objc_substitute_decl): Add.
2486         (objc_build_ivar_assignment): Add.
2487         (objc_build_global_assignment): Add.
2488         (objc_build_strong_cast_assignment): Add.
2489         (objc_is_gcable_p): Add.
2490         (objc_is_ivar_reference_p): Add.
2491         (objc_is_global_reference_p): Add.
2492         (generate_shared_structures): Add flags parameter.
2493         (objc_generate_cxx_ctor_or_dtor): Add.
2494         (objc_generate_cxx_cdtors): Add.
2495         (add_class): Add name parameter.
2496         (objc_types_share_size_and_alignment): Add.
2497         (comp_proto_with_proto): Add strict parameter.
2498         (CLS_HAS_CXX_STRUCTORS): Add.
2499         (TAG_ASSIGNIVAR): Add.
2500         (TAG_ASSIGNGLOBAL): Add.
2501         (TAG_ASSIGNSTRONGCAST): Add.
2502         (TAG_MSGSEND_FAST): Add.
2503         (TAG_ASSIGNIVAR_FAST): Add.
2504         (TAG_CXX_CONSTRUCT): Add.
2505         (TAG_CXX_DESTRUCT): Add.
2506         (OBJC_LOOKUP_CLASS): Add.
2507         (OBJC_LOOKUP_NO_SUPER): Add.
2508         (objc_finish_file): Add pch support.
2509         (objc_finish_implementation): Add Objective-C++ support.
2510         (synth_module_prologue): Likewise.
2511         (synth_module_prologue): Add fast dispatching.
2512         (objc_get_class_reference): Add Objective-C++ support.
2513         (objc_generate_write_barrier): Likewise.
2514         (next_sjlj_build_enter_and_setjmp): Likewise.
2515         (objc_begin_try_stmt): Likewise.
2516         (build_next_objc_exception_stuff): Add fast ivar support.
2517         (build_private_template): Mark the record as used so debug
2518         information is generated.
2519         (build_protocol_template): Add Objective-C++ support.
2520         (objc_method_parm_type) Likewise.
2521         (objc_generate_cxx_ctor_or_dtor): Likewise.
2522         (objc_generate_cxx_cdtors): Likewise.
2523         (build_protocol_initializer): Likewise.
2524         (build_category_template): Likewise.
2525         (build_class_template): Likewise.
2526         (build_method_list_template): Likewise.
2527         (build_category_initializer): Likewise.
2528         (build_shared_structure_initializer): Likewise.
2529         (objc_finish_message_expr): Likewise.
2530         (build_objc_method_call): Add fast dispatch support.
2531         (lookup_method_static): Add support to end search at superclasses.
2532         (add_method_to_hash_list): Add strict parameter to
2533         comp_proto_with_proto.
2534         (objc_add_method): Likewise.
2535         (objc_add_method): Also set the interface_value.
2536         (add_instance_variable): Add Objective-C++ support.
2537         (objc_is_public): Likewise.
2538         (start_class): Likewise.
2539         (continue_class): Likewise.
2540         (encode_aggregate_within): Likewise.
2541         (start_method_def): Likewise.
2542         (objc_start_function): Clear current_function_returns_value
2543         and current_function_returns_null.
2544         (really_start_method): Add Objective-C++ support.
2545         (objc_finish_method_definition): Add warning for missing
2546         [super dealloc].
2547         (finish_objc): Add Objective-C++ support.
2548         (generate_objc_image_info): Likewise.
2549         (objc_lookup_ivar): Likewise.
2550         * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
2551         (INIT_TYPE_OBJC_INFO): Likewise.
2552         (DUP_TYPE_OBJC_INFO): Likewise.
2554 2005-04-23  DJ Delorie  <dj@redhat.com>
2556         * objc-act.c: Adjust warning() callers.
2558 2005-04-21  Roger Sayle  <roger@eyesopen.com>
2560         * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
2561         this field of an objc method decl.
2562         * objc-act.c (build_method_decl): Take an additional "ellipsis"
2563         argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
2564         (objc_build_method_signature): Accept additional "ellipsis"
2565         argument and pass it to build_method_decl.
2566         (get_arg_type_list, start_method_def, gen_method_decl): Use
2567         the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
2568         TREE_OVERFLOW field of a TREE_LIST node.
2570 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
2572         PR c/12913
2573         * objc-act.c (objc_start_function): Create stack level for context
2574         of identifiers with variably modified type.
2576 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
2578         PR c/772
2579         PR c/17913
2580         * objc-act.c (objc_start_function): Push context on
2581         label_context_stack.
2583 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2585         * objc-act.c (next_sjlj_build_enter_and_setjmp,
2586         next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
2587         Call c_common_truthvalue_conversion.
2589 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
2591         * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
2592         objc/objc-parse.c, objc/objc-parse.y): Remove
2593         (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
2594         objc.distclean, objc.maintainer-clean): Update for new parser.
2595         * config-lang.in (gtfiles): Update for new parser.
2597 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
2599         * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
2600         copyright.
2602 2005-01-27  Matt Austern  <austern@apple.com>
2604         * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
2605         calling instantiate_pending_templates.
2607 2005-01-26  Alexander Malmberg  <alexander@malmberg.org>
2609         PR objc/18862
2610         * objc-act.c (build_selector_translation_table): Use
2611         input_location in the diagnostic for the GNU runtime or if
2612         TREE_PURPOSE (chain) is NULL.
2614 2005-01-25  Alexander Malmberg  <alexander@malmberg.org>
2616         PR objc/18408
2617         * objc-act.c (objc_types_compatible_p): New function.
2618         * objc-act.h (objc_types_compatible_p): Declare.
2619         * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2621 2005-01-16  Ziemowit Laski  <zlaski@apple.com>
2623         * objc-act.c (objc_push_parm): Call c_type_promotes_to()
2624         via a lang-hook.
2626 2005-01-15  Ziemowit Laski  <zlaski@apple.com>
2628         PR objc/19321
2629         * objc-act.c (get_arg_type_list): Decay function arguments into
2630         pointers.
2631         (objc_push_parm): Likewise; bring PARM_DECL construction closer
2632         in line with what the C front-end does.
2633         (objc_get_parm_info): Call pushdecl() and finish_decl() on
2634         each PARM_DECL, like the C front-end does.
2635         (start_method_def): Remove redundant ARRAY_TYPE decay.
2636         (objc_start_function): Bring closer in line with what the
2637         C front-end does for functions.
2639 2005-01-14  Mike Stump  <mrs@apple.com>
2641         * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
2642         that -fobjc-exceptions is accepted.
2644 2004-12-30  Ziemowit Laski  <zlaski@apple.com>
2646         PR objc/18971
2647         * objc-act.c (get_arg_type_list, start_method_def): Decay
2648         array arguments into pointers.
2649         (gen_type_name_0): Learn to pretty-print array types.
2651 2004-12-15  Ziemowit Laski  <zlaski@apple.com>
2653         * objc-act.c (build_private_template): Change to return 'void'; do
2654         not set ivar_context, uprivate_record or objc_instance_type.
2655         (objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
2656         retrieve protocol list from the pointee rather than the pointer itself;
2657         check TYPE_HAS_OBJC_INFO(...) precondition before accessing
2658         TYPE_OBJC_PROTOCOL_LIST.
2659         (objc_get_protocol_qualified_type): For types 'id' and 'Class',
2660         construct a variant of the pointee as well as the pointer, and
2661         store protocol information in the former.  When creating variants
2662         of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
2663         TYPE_OBJC_INTERFACE information.
2664         (objc_declare_class): If a TYPE_DECL is looked up, retrieve the
2665         underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
2666         for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
2667         holding an IDENTIFIER_NODE.
2668         (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
2669         accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
2670         of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
2671         an IDENTIFIER_NODE (meaning a @class forward-declaration only).
2672         (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
2673         lookup_interface().
2674         (continue_class): For @implementations, set ivar_context,
2675         uprivate_record and objc_instance_type, for @interfaces, call
2676         build_private_template().
2677         (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
2678         TYPE_OBJC_INTERFACE.
2679         (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
2680         accessing TYPE_OBJC_PROTOCOL_LIST.
2681         * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
2682         DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC,
2683         SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
2684         (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
2685         to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
2686         (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
2687         TYPE_LANG_SPECIFIC(...).
2688         (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
2689         (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
2690         TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
2691         adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
2692         instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
2694 2004-11-29  Joseph Myers  <joseph@codesourcery.com>
2696         PR c/7544
2697         * Make-lang.in (objc/objc-act.o): Update dependencies.
2698         * objc-act.c (objc_finish_file): Call
2699         maybe_apply_pending_pragma_weaks if not OBJCPLUS.
2701 2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
2703         PR objc/18406
2704         * obj-act.c (encode_type): 96bits doubles are encoded the
2705         same way as 64bit and 128bit doubles are.
2707 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
2709         * objc-act.c: Use %q, %< and %> for quoting in diagnostics.
2711 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
2713         PR objc/16546
2714         * objc-act.c (generate_method_descriptors): Remove setting
2715         the new decls' type to variable_length_type.
2716         (generate_ivar_lists): Likewise.
2717         (generate_dispatch_tables): Likewise.
2719 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
2721         * objc-act.c (objc_lookup_ivar): The new OTHER parameter
2722         contains the result of the ID lookup by the C or C++
2723         front-end; in class methods, use OTHER if it exists;
2724         in instance methods, use OTHER only if it is locally
2725         declared.
2727 2004-10-26  Ziemowit Laski  <zlaski@apple.com>
2729         * objc-act.c (finish_class): Do not synthesize bogus
2730         'extern objc_object *_Foo;' declarations for @interface Foo.
2732 2004-10-25  Ziemowit Laski  <zlaski@apple.com>
2733             David Ayers  <d.ayers@inode.at>
2735         * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
2736         instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
2737         'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
2738         'Class <Protocol> == id' and 'Class <Protocol> == Class'.
2739         (objc_is_id): Add test for 'super'.
2740         (objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
2741         receivers; if class methods are not found in protocol lists, search
2742         for instance methods therein and warn if one is found.  Look in
2743         global hash tables for suitable method as a last resort when messaging
2744         'id <Proto>', 'Class <Proto>' and invalid receiver types.
2745         (objc_add_method): Insert instance methods listed in protocols into
2746         the global class method hash table.
2747         * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
2748         IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
2749         addition to 'id <Proto>'.
2751 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
2753         PR objc/17923
2754         * objc-act.c (objc_build_string_object): Create a CONST_DECL
2755         for the NeXT runtime case.
2757 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2759         * objc-act.c: Fix comment typos.
2761 2004-09-24  Ziemowit Laski  <zlaski@apple.com>
2763         * objc-act.c (init_objc_symtab, init_module_descriptor,
2764         build_shared_structure_initializer): When initializing 'long'
2765         fields, ensure that the initializer value is also 'long'.
2767 2004-09-24  Zack Weinberg  <zack@codesourcery.com>
2769         * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
2770         throughout.
2771         (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
2772         (build_selector_translation_table): Use %J in diagnostic
2773         instead of diddling input_line.  Fix spelling.
2775 2004-09-21  Ziemowit Laski  <zlaski@apple.com>
2777         * objc-act.c (objc_fold_objc_type_ref): New function.
2778         * objc-act.h (objc_fold_objc_type_ref): New prototype.
2780 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
2782         * objc-act.c (objc_start_function, really_start_method,
2783         objc_get_parm_info, start_method_def): Update to new arg_info
2784         structures.
2786 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
2788         * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
2789         objc/objc-act.h.
2790         (objc/objc-act.o): Depend on $(HASHTAB_H).
2791         * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
2792         objcp-decl.h instead of c-tree.h.
2793         (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
2794         error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
2795         build_protocol_template): Adjust prototypes.
2796         (build_module_initializer_routine, start_class, continue_class,
2797         finish_class, start_method_def, objc_start_function, start_protocol,
2798         build_method_decl, objc_add_method, add_instance_variable,
2799         build_ivar_reference, is_ivar, is_private, get_super_receiver,
2800         build_selector_table_decl, objc_push_parm, objc_get_parm_info,
2801         gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
2802         create_field_decl): New prototypes.
2803         (objc_expand_function_end, comp_method_with_proto, objc_expr_last,
2804         gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
2805         define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
2806         (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
2807         (CLASS_TYPEDEF_NAME): New.
2808         (TAG_EXECCLASS): Change from a global variable to a #define.
2809         (TAG_RETURN_STRUCT): Delete.
2810         (TAG_GNUINIT): New, holds '__objc_gnu_init' name.
2811         (objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
2812         (string_descriptor): New struct.
2813         (string_htab): New hash table.
2814         (string_hash, string_eq): New prototypes.
2815         (generate_struct_by_value_array): Call create_field_decl() instead of
2816         create_builtin_decl().
2817         (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
2818         In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
2819         (objc_finish_file): In ObjC++, call instantiate_pending_templates()
2820         and cp_finish_file().
2821         (define_decl, get_static_reference, get_protocol_reference,
2822         create_builtin_decl): Remove functions.
2823         (objc_start_class_interface, objc_start_category_interface,
2824         objc_start_protocol, objc_continue_interface, objc_finish_interface,
2825         objc_start_class_implementation, objc_start_category_implementation,
2826         objc_continue_implementation, objc_finish_implementation,
2827         objc_set_visibility, objc_set_method_type,
2828         objc_build_method_signature, objc_add_method_declaration,
2829         objc_start_method_definition, objc_add_instance_variable,
2830         objc_get_protocol_qualified_type, create_field_decl,
2831         start_var_decl, finish_var_decl): New functions.
2832         (setup_string_decl): Simplify since it is only called once.
2833         (synth_module_prologue): Call build_class_template(); predefine 'id'
2834         and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
2835         hooks for duration of function; fix GNU runtime messenger signatures
2836         to correspond to reality; forward-declare '__objc_exec_class' for the
2837         GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
2838         'extern "C" { ... }' wrappers around synthesized declarations; call
2839         build_protocol_template() and build_category_template().
2840         (string_hash, string_eq): New functions.
2841         (objc_build_string_object): Check metaclass correctness only once;
2842         store string literals in hash table.
2843         (objc_build_constructor): Do not convert initializer elements;
2844         adjust for ObjC++ impedance mismatch.
2845         (build_objc_symtab_template): Call create_field_decl() instead of
2846         create_builtin_decl().
2847         (init_objc_symtab): Add missing conversion to initializer element.
2848         (build_metadata_decl): Call start_var_decl() instead of define_decl().
2849         (generate_objc_symtab_decl): Do not call build_category_template();
2850         call start_var_decl() and finish_var_decl() instead of start_decl()
2851         and finish_decl().
2852         (build_module_descriptor): Call create_field_decl() instead of
2853         grokfield(); call start_var_decl() and finish_var_decl() instead of
2854         start_decl() and finish_decl(); always mark module descriptor as
2855         used; move GNU runtime-specific functionality to
2856         build_module_initializer_routine().
2857         (build_module_initializer_routine): New function, broken off of
2858         build_module_descriptor().
2859         (objc_static_init_needed_p, objc_generate_static_init_call): New
2860         functions.
2861         (generate_static_references, generate_strings,
2862         build_selector_translation_table, generate_descriptor_table,
2863         generate_ivars_list, generate_dispatch_table, generate_category): Call
2864         start_var_decl() and finish_var_decl() instead of start_decl() and
2865         finish_decl(); build a type directly instead of via groktypename().
2866         (build_selector_reference_decl, build_selector_table_decl,
2867         build_class_reference_decl, build_protocol_reference,
2868         generate_objc_image_info): Call start_var_decl() instead of
2869         build_decl().
2870         (build_selector_reference): For GNU runtime, do not call
2871         build_selector_reference_decl().
2872         (build_selector, build_typed_selector_reference): Always convert
2873         result to the selector type.
2874         (add_objc_string): Cast return value to 'char *'.
2875         (build_method_prototype_template, build_selector_template,
2876         build_method_template): Use actual selector type for fields
2877         pointing to selectors.
2878         (finish_objc): For GNU runtime, call
2879         build_module_initializer_routine() after build_module_descriptor().
2880         (generate_protocol_list, generate_shared_structures): Call
2881         start_var_decl() and finish_var_decl() instead of start_decl() and
2882         finish_decl(); build a type directly instead of via
2883         groktypename().
2884         (synth_id_with_class_suffix): Return a string.
2885         (get_arg_type_list): For instance methods, use the instance type for
2886         'self'; do not call groktypename_in_parm_context().
2887         (build_objc_string_decl): Squash redeclaration errors in ObjC++.
2888         (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
2889         handle RECORD_TYPEs in ObjC as well as ObjC++.
2890         (objc_is_id): New function.
2891         (objc_is_object_ptr): Return the canonical type node.
2892         (objc_get_class_ivars): Simplify using get_class_ivars().
2893         (get_class_ivars): Remove second parameter; create a fresh copy
2894         of the ivar list for each call; do not check for existence of
2895         super class.
2896         (objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
2897         (objc_init_exceptions): When using SJLJ-style exceptions, require
2898         the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
2899         exceptions.
2900         (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
2901         objc_object_type instead of objc_id_type.
2902         (objc_begin_catch_clause): Convert the incoming PARM_DECL into
2903         a VAR_DECL before placing it in the appropriate scope; do not
2904         call define_decl(); adjust call to c_begin_compound_stmt();
2905         use objc_object_type instead of objc_id_type.
2906         (build_next_objc_exception_stuff): Call create_field_decl() instead
2907         of create_builtin_decl(); construct type directly instead of calling
2908         groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
2909         (build_private_template): Adjust call to get_class_ivars(); build
2910         a type directly instead of via groktypename().
2911         (build_protocol_template, build_method_prototype_list_template,
2912         build_method_prototype_template, build_category_template,
2913         build_selector_template, build_class_template, build_super_template,
2914         build_ivar_template, build_ivar_list_template,
2915         build_method_list_template, build_method_template):
2916         Call create_field_decl() instead of grokfield().
2917         (objc_method_parm_type): Do not call groktypename().
2918         (generate_descriptor_table): Call start_var_decl() and
2919         finish_var_decl() instead of start_decl() and finish_decl().
2920         (generate_method_descriptors, build_protocol_initializer,
2921         generate_dispatch_tables, build_category_initializer,
2922         build_shared_structure_initializer): Do not call groktypename().
2923         (generate_protocols): Call start_var_decl() and finish_var_decl()
2924         instead of start_decl() and finish_decl(); do not call groktypename().
2925         (error_with_ivar): Remove last parameter.
2926         (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
2927         to CLASS_IVARS lists; adjust calls to error_with_ivar().
2928         (generate_ivar_lists): Convert one of the initializer elements; do
2929         not call groktypename().
2930         (get_arg_type_list, start_method_def, gen_method_def): Account for
2931         new representation of variable arguments and '...' in Objective-C
2932         methods; add Objective-C++ impedance matching code.
2933         (is_objc_type_qualifier): Remove function.
2934         (adjust_type_for_id_default): Simplify; there is no longer a need to
2935         wade through declspecs.
2936         (lookup_interface, start_class, continue_class,
2937         finish_class, start_method_def, start_protocol, build_method_decl,
2938         objc_add_method, add_instance_variable, build_ivar_reference,
2939         is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
2940         Make into static functions.
2941         (receiver_is_class_object): Use new IS_CLASS() macro.
2942         (objc_build_message_expr): Tweak ObjC++ message argument handling;
2943         call objc_finish_message_expr() instead of finish_message_expr().
2944         (finish_message_expr): Rename to objc_finish_message_expr(); use
2945         OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
2946         call gen_type_name() instead of gen_declaration(); call objc_is_id()
2947         instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
2948         calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
2949         (build_objc_method_call, warn_with_method): Do not call groktypename().
2950         (build_ivar_reference): Call convert() instead of clobbering in a
2951         type.
2952         (hash_init): Initialize string_htab hash table.
2953         (add_instance_variable): Simplify parameter list; do not call grokfield();
2954         do not populate CLASS_IVARS list.
2955         (start_class): Check for the existence of super class, if one was specified.
2956         (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
2957         call build_class_template(); adjust call to get_class_ivars(); call
2958         build_decl(), pushdecl() and finish_decl() instead of define_decl().
2959         (finish_class): Call build_decl(), pushdecl() and finish_decl() instead
2960         of define_decl().
2961         (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
2962         (start_protocol): Do not call build_protocol_template(); use
2963         PROTOCOL_BINFO_ELTS for the tree vector size.
2964         (encode_type_qualifiers): Do not handle the 'const' qualifier here.
2965         (encode_pointer): Encode 'const char *' as 'r*', for backwards
2966         compatibility.
2967         (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
2968         (encode_type): Handle the 'const' qualifier here.
2969         (objc_parmlist): New global variable, sued by objc_push_parm and
2970         objc_get_parm_info().
2971         (objc_push_parm, objc_get_parm_info): New functions.
2972         (objc_expr_last): Remove function.
2973         (synth_self_and_ucmd_args): For instance methods, use the instance
2974         type for 'self'; call objc_push_parm() instead of push_parm_decl().
2975         (start_method_def): Do not call push_scope(), declare_parm_level(),
2976         pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
2977         just use objc_push_parm() and objc_get_parm_info().
2978         (comp_method_with_proto): Remove function.
2979         (objc_types_are_equivalent): Strip away indirections before comparing
2980         underlying types.
2981         (comp_proto_with_proto): Do not call groktypename(); types are no
2982         longer in raw declspec format.
2983         (objc_start_function): New function.
2984         (really_start_method): Call comp_proto_with_proto() instead of
2985         comp_method_with_proto(); call objc_start_function() instead of
2986         hand-crafting a function declarator.
2987         (continue_method_def, objc_expand_function_end): Remove functions.
2988         (get_super_receiver): Call objc_get_current_scope() instead of
2989         get_current_scope(); reference 'super_class' field (instead of
2990         'class').
2991         (finish_method_def): Rename to objc_finish_method_definition() and
2992         add a function decl parameter; move method encoding call from
2993         objc_expand_function_end().
2994         (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
2995         gen_declaration_1): Remove functions.
2996         (tmpbuf, RAW_DECLSPEC): Remove.
2997         (gen_declaration): Remove second parameter; simplify to deal
2998         with TYPE_P nodes instead of raw declspecs.
2999         (gen_type_name, gen_type_name_0): New functions.
3000         (gen_method_decl): Remove second parameter; call gen_type_name()
3001         instead of gen_declaration_1().
3002         (dump_interface): Adjust calls to gen_declaration() and
3003         gen_method_decl(); do not allocate a separate string buffer.
3004         (init_objc): Allocate a larger string buffer to accommodate
3005         dump_interface(); adjust call to build_module_descriptor();
3006         add call to build_module_initializer_routine() for the GNU
3007         runtime.
3008         (generate_classref_translation_entry): Do not call start_decl(); call
3009         finish_var_decl() instead of finish_decl(); call convert() instead of
3010         build_c_cast().
3011         * objc-act.h (CLASS_OWN_IVARS): Remove accessor.
3012         (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
3013         gone.
3014         (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
3015         (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
3016         (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
3017         objc_object_type and objc_object_name, respectively.
3018         (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
3019         objc_class_name): New.
3020         (IS_CLASS): New macro.
3021         (IS_ID, IS_SUPER): Robustify.
3022         (OCTI_EXECCLASS_DECL, execclass_decl): New.
3023         (finish_file, start_class, continue_class, finish_class,
3024         start_method_def, continue_method_def, finish_method_def,
3025         start_protocol, finish_protocol, objc_build_throw_stmt,
3026         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
3027         objc_build_synchronized_epilogue, objc_build_try_prologue,
3028         objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
3029         objc_build_finally_prologue, objc_build_finally_epilogue,
3030         is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
3031         get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
3032         get_class_reference, get_static_reference, get_object_reference,
3033         build_message_expr, finish_message_expr, build_selector_expr,
3034         build_ivar_reference, build_keyword_decl, build_method_decl,
3035         build_protocol_expr, build_objc_string_object, objc_declare_alias,
3036         objc_declare_class, objc_declare_protocols, objc_comptypes,
3037         objc_check_decl, build_encode_expr): Remove prototypes.
3038         (imp_count, cat_count): Make GGC-aware.
3039         (OBJC_SET_TYPE_NAME): New macro.
3041 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
3043         * config-lang.in: Update copyright notice.
3044         (lang_requires): Indicate that ObjC requires C to be built first.
3046 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
3048         * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
3049         TYPE_NAME.
3050         (build_objc_string_object): Rename to objc_build_string_object().
3051         (get_class_reference): Rename to objc_get_class_reference().
3052         (get_class_ivars_from_name): Rename to objc_get_class_ivars().
3053         (next_sjlj_build_catch_list, get_super_receiver): Call
3054         objc_get_class_reference() instead of get_class_reference().
3055         (build_keyword_decl): Rename to objc_build_keyword_decl().
3056         (build_message_expr): Rename to objc_build_message_expr().
3057         (build_protocol_expr): Rename to objc_build_protocol_expr().
3058         (build_selector_expr): Rename to objc_build_selector_expr().
3059         (build_encode_expr): Rename to objc_build_encode_expr().
3060         * objc-act.h (get_class_ivars_from_name): Rename prototype to
3061         objc_get_class_ivars().
3062         (get_class_reference): Rename prototype to objc_get_class_reference().
3063         (build_message_expr): Rename prototype to objc_build_message_expr().
3064         (build_selector_expr): Rename prototype to objc_build_selector_expr().
3065         (build_keyword_decl): Rename prototype to objc_build_keyword_decl().
3066         (build_protocol_expr): Rename prototype to objc_build_prototype_expr().
3067         (build_objc_string_object): Rename prototype to
3068         objc_build_string_object().
3070 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
3072         * objc-act.c (lookup_interface): Make function 'static' and add a
3073         local prototype.
3074         (objc_check_decl, get_class_reference, objc_declare_alias,
3075         objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
3076         instead of is_class_name().
3077         (get_super_receiver, objc_clear_super_receiver): Call
3078         objc_get_current_scope() instead of get_current_scope().
3079         (is_class_name): Rename to objc_is_class_name.
3080         (lookup_objc_ivar): Rename to objc_lookup_ivar.
3082 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
3084         * objc-act.c (objc_is_reserved_word): New function.
3086 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
3088         * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
3089         $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
3090         (objc/objc-parse.o): Do not depend on gtype-objc.h.
3091         * objc-act.c: Do not include gtype-objc.h.
3092         (finish_file): Rename to objc_finish_file().
3093         * objc-act.h (finish_file): Update copyright notice; remove prototype.
3094         * objc-lang.c: Update copyright notice; include diagnostic.h,
3095         c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
3096         toplev.h.
3097         (finish_file): New hook routine.
3098         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
3099         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
3100         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
3101         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
3102         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
3103         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
3104         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
3105         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
3106         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
3107         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
3108         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
3109         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3110         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3111         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
3112         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
3113         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
3114         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
3115         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
3116         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
3117         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
3118         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
3119         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
3120         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
3121         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
3122         Move to c-objc-common.h.
3125 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
3126 Free Software Foundation, Inc.
3128 Copying and distribution of this file, with or without modification,
3129 are permitted in any medium without royalty provided the copyright
3130 notice and this notice are preserved.