+2011-02-23 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (build_private_template): Do not copy the
+ CLASS_HAS_EXCEPTION_ATTR from the class to the struct.
+ * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using
+ TYPE_LANG_SLOT_0.
+
+2011-02-22 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR objc/47832
+ * objc-act.c (flexible_array_type_p): New.
+ (add_instance_variable): Produce an error if an instance variable
+ uses flexible array members.
+ (encode_array): Do not emit an error if encoding a flexible array
+ type while generating instance variables.
+
+2011-02-21 Mike Stump <mikestump@comcast.net>
+
+ * Make-lang.in (check_objc_parallelize): Refine for 4 processor machines.
+
+2011-02-20 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed. Removed
+ usage of padding fields. Do not include tm.h.
+ * objc-act.c (objc_write_global_declaration): Set input_location
+ to BUILTINS_LOCATION while generating runtime metadata.
+
+2011-01-20 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR objc/47784
+ * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side
+ effects, do not use a temporary variable.
+
+2011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-next-runtime-abi-01.c: Updated comments.
+ * objc-next-runtime-abi-02.c: Same.
+
+2011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_init, generate_struct_by_value_array): Updated
+ comments.
+
+2011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c: Updated comments.
+ * objc-next-runtime-abi-02.c: Same.
+ * objc-runtime-shared-support.c: Same.
+ * objc-runtime-hooks.h: Same.
+ * objc-act.h: Same.
+ * objc-gnu-runtime-abi-01.c: Same.
+
+2011-01-19 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do
+ not generate metadata if there is nothing to put into it.
+
+2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
+
+ * config-lang.in (gtfiles): Updated.
+ * Make-lang.in (START_HDRS): New.
+ (OBJC_OBJS): Added new object files.
+ (objc/objc-act.o): Updated prerequisites.
+ (objc/objc-lang.o): Updated prerequisites.
+ (objc/objc-runtime-shared-support.o): New.
+ (objc/objc-gnu-runtime-abi-01.o): New.
+ (objc/objc-next-runtime-abi-01.o): New.
+ (objc/objc-next-runtime-abi-02.o): New.
+ * objc-runtime-hooks.h: New.
+ * objc-runtime-shared-support.h: New.
+ * objc-runtime-shared-support.c: New.
+ * objc-gnu-runtime-abi-01.c: New.
+ * objc-next-metadata-tags.h: New.
+ * objc-next-runtime-abi-01.c: New.
+ * objc-next-runtime-abi-02.c: New.
+ * objc-lang.c: Include c-lang.h.
+ (LANG_HOOKS_EH_PERSONALITY): Removed.
+ * objc-act.h: Moved many declarations and code from objc-act.c
+ into objc-act.h to make them available outside objc-act.c.
+ (objc_eh_runtime_type): Removed.
+ (objc_eh_personality): Removed.
+ (CLASS_HAS_EXCEPTION_ATTR): New.
+ (OCTI_SUPER_SUPERFIELD_ID): New.
+ (OCTI_V1_PROP_LIST_TEMPL): New.
+ (OCTI_V1_PROP_NAME_ATTR_CHAIN): New.
+ (super_superclassfield_id): New.
+ (objc_prop_list_ptr): New.
+ (prop_names_attr_chain): New.
+ * objc-act.c: Include new runtime headers. Moved many #defines
+ and declarations into objc-act.h and
+ objc-runtime-shared-support.h. Made some corresponding functions
+ non-static, and moved some others into
+ objc-runtime-shared-support.c. Moved metadata generation code
+ into the new runtime hook files.
+ (ivar_offset_hash_list): New.
+ (objc_init): Call generate_struct_value_by_array() before doing
+ any runtime initialization. Create the appropriate runtime hook
+ structures.
+ (init_objc): Removed. Code moved directly into objc_init.
+ (finish_objc): Removed. Code moved directly into
+ objc_write_global_declarations.
+ (objc_write_global_declarations): Do the warn_selector checks
+ before emitting metadata. Use a runtime hook to emit the
+ metadata. Do not emit the metadata or do -gen-decls processing if
+ -fsyntax-only or we are producing a PCH.
+ (build_objc_exception_stuff): Renamed to
+ build_common_objc_exception_stuff. Remove TREE_NOTHROW flag from
+ objc_exception_throw_decl.
+ (synth_module_prologue): Call runtime initialize hook instead of
+ building runtime declarations here. Use the
+ default_constant_string_class_name runtime hook to set the
+ constant string class name.
+ (objc_build_string_object): Call the setup_const_string_class_decl
+ runtime hook instead of setup_string_decl. Call the
+ build_const_string_constructor runtime hook instead of building
+ the string object here.
+ (get_objc_string_decl): Added prop_names_attr case. Removed
+ gcc_unreachable() at the end.
+ (objc_begin_catch_clause): Distinguish between @catch (...) and
+ @catch (id x). Call the begin_catch runtime hook instead of
+ building the CATCH_EXPR here.
+ (objc_finish_catch_clause): Call the finish_catch runtime hook
+ instead of adding the catch here.
+ (objc_finish_try_stmt): Call the finish_try_stmt runtime hook
+ instead of doing it here.
+ (objc_build_throw_stmt): Bail out early for error_mark_node. Call
+ the build_exc_ptr runtime hook instead of objc_build_exc_ptr.
+ Call the build_throw_stmt runtime hook instead of building the
+ throw call here.
+ (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime
+ as well.
+ (get_arg_type_list): Call the get_arg_type_list_base runtime hook
+ instead of building the list of arguments here.
+ (receiver_is_class_object): Call the receiver_is_class_object
+ runtime hook instead of doing the check here. Call the
+ tag_getclass runtime hook instead of using TAG_GETCLASS.
+ (objc_finish_message_expr): Call the build_objc_method_call
+ runtime hook.
+ (objc_build_protocol_expr): Call the get_protocol_reference
+ runtime hook.
+ (objc_build_selector_expr): Call the build_selector_reference
+ runtime hook.
+ (build_ivar_reference): Call the build_ivar_reference runtime
+ hook.
+ (hash_init): Set up ivar_offset_hash_list.
+ (start_class): Recognize the objc_exception attribute and store
+ it.
+ (continue_class): Use the class_decl and metaclass_decl runtime
+ hooks.
+ (build_objc_property_accessor_helpers): Renamed to
+ build_common_objc_property_accessor_helpers. Do not build
+ objc_copyStruct_decl, objc_getPropertyStruct_decl and
+ objc_setPropertyStruct_decl.
+ (objc_synthesize_getter): Check what struct setter/getter helper
+ is available instead of checking the type of runtime.
+ (get_super_receiver): Use the super_superclassfield_ident runtime
+ hook. Added assert. Use the get_class_super_ref and
+ get_category_super_ref runtime hooks.
+ (objc_v2_encode_prop_attr): New.
+
+2011-01-17 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR objc/47314
+ * objc-act.c (finish_objc): When calling check_duplicates to check
+ duplicated instance methods, set 'is_class' to 0, not 1.
+
+2011-01-14 Ben Elliston <bje@au.ibm.com>
+
+ PR 19162
+ * objc-act.c (generate_struct_by_value_array): Do not output a
+ definition for struct_forward_array.
+
+2011-01-08 Iain Sandoe <iains@gcc.gnu.org>
+
+ * objc-act.c (objc_finish_foreach_loop): Mark collection expression
+ as read.
+
+2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * objc-act.c (check_that_protocol_is_defined): Fix a typo.
+
+2011-01-02 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (check_that_protocol_is_defined): New.
+ (lookup_protocol): Call check_that_protocol_is_defined.
+
+2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol
+ lists. Check them two-ways to fix comparisons when one protocol
+ implements the other one, or when one list contains duplicated
+ protocols.
+
+2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_add_method): When emitting an error because a
+ method with the same name but conflicting types is found in the
+ same class or category interface, print a note with the location
+ of the original method. Also, improved the error message to
+ clearly state that the conflict is due to conflicting types, and
+ produce it for protocols as well. Emit an error if two identical
+ methods are declared in a protocol, but one is @required and the
+ other one is @optional.
+
+2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (start_class): Warn when a class attribute is
+ ignored.
+ (objc_declare_protocols): Warn when a protocol attribute in a
+ protocol forward-declaration is ignored.
+ (start_protocol): Warn when a protocol attribute is ignored.
+
+2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_set_method_opt): Tidy up error messages. In
+ particular, explicitly mention whether the error is due to the
+ @optional or @required keyword instead of mentioning
+ "@optional/@required".
+
+2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR objc/47118
+ * objc-act.c (objc_build_synchronized): Check the argument of
+ @synchronized and emit an appropriate error if it is not a valid
+ Objective-C object. Deal gracefully with that case. Updated
+ comments and variable names.
+
+2010-12-29 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR objc/47075
+ * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New.
+ * objc-tree.def (PROPERTY_REF): Increased the number of operands
+ from 3 to 4.
+ * objc-act.c (objc_finish_message_expr): Added optional argument
+ allowing to return the deprecated method prototype for deprecated
+ methods, instead of immediately emitting the deprecation warning.
+ (objc_maybe_build_component_ref): Do not warn for a deprecated
+ property. When building the getter call, get the deprecated
+ method prototype from objc_finish_message_expr() and put it into
+ the PROPERTY_REF.
+ (objc_build_class_component_ref): Same change.
+ (finish_class): Mark the getter and setter as deprecated if they
+ are generated from a deprecated property.
+ (objc_gimplify_property_ref): If the getter is deprecated, emit a
+ deprecation warning.
+ (objc_build_setter_call, objc_build_message_expr,
+ objc_finish_foreach_loop): Updated call to
+ objc_finish_message_expr.
+
+2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR objc/47076
+ * objc-act.c (lookup_protocol): Added 'definition_required'
+ argument. If 'definition_required', and the protocol is not
+ defined, emit a warning.
+ (objc_declare_protocols): Updated call to lookup_protocol.
+ (start_protocol): Same change.
+ (check_protocol_recursively): Same change.
+ (objc_build_protocol_expr): Same change.
+ (lookup_and_install_protocols): Added definition_required argument.
+ Pass it to lookup_protocol.
+ (objc_get_protocol_qualified_type): Updated call to
+ lookup_and_install_protocols.
+ (start_class): Updated calls to lookup_and_install_protocols; pass
+ true to 'definition_required' to get the warnings.
+ (start_protocol): Updated calls to lookup_and_install_protocols.
+
+2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_start_category_interface): Produce an error if
+ a class extension is found after the class @implementation.
+
+2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR objc/47073
+ * objc-act.c (encode_method_prototype): Fixed both location and
+ format string of error "type %qT does not have a known size".
+
+2010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c.
+
+2010-12-22 Nathan Froyd <froydnj@codesourcery.com>
+
+ * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p.
+
+2010-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_init): Call using_eh_for_cleanups.
+ (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions. Do
+ not call using_eh_for_cleanups.
+ (objc_begin_try_stmt): Do not call objc_init_exceptions.
+ (objc_build_throw_stmt): Updated call to
+ objc_maybe_warn_exceptions.
+
+2010-12-18 Iain Sandoe <iains@gcc.gnu.org>
+
+ * objc/objc-act.c (objc_eh_personality): Select personality name on
+ runtime.
+ (objc_init_exceptions): New.
+ (objc_begin_try_stmt): Use objc_init_exceptions.
+ (objc_build_throw_stmt): Likewise.
+
+2010-12-10 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_in_class_extension): New.
+ (objc_start_category_interface): If -fobjc-std=objc1
+ was specified, produce an error if a class extension is used.
+ (objc_finish_interface): Reset objc_in_class_extension to false.
+ (objc_add_property_declaration): Allow a class extension to extend
+ readonly properties in the main @interface to be readwrite.
+ (start_class): Added code to deal with class extensions. In that
+ case, return the existing interface after adding any additional
+ protocols to it and setting objc_in_class_extension to true.
+ (continue_class): If in a class extension, do not generate the
+ instance variable template.
+
+2010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_build_throw_stmt): Check that the argument of
+ @throw is an object and emit an error if not.
+
+2010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
+ error() when printing an error about the iterating variable or
+ collection not being an object.
+
+2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_finish_foreach_loop): Mark the
+ object_expression as used.
+
+2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c: Include c-family/c-objc.h.
+ * objc-lang.c: Same change.
+ * Make-lang.in (objc/objc-act.o): Depend on
+ c-family/c-objc.h.
+ (objc/objc-lang.o): Same change.
+ * config-lang.in (gtfiles): Added c-family/c-objc.h.
+
+2010-12-02 Joseph Myers <joseph@codesourcery.com>
+
+ * lang-specs.h: Don't handle -ftraditional.
+
+2010-12-02 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_build_throw_stmt): Return error_mark_node and
+ not NULL_TREE when a @throw is used outside of a @catch block.
+
+2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_build_volatilized_type): Removed.
+ (objc_non_volatilized_type): Removed.
+ (objc_type_quals_match): Removed.
+ (local_variables_to_volatilize): New.
+ (objc_volatilize_decl): Add the decl to volatilize to
+ local_variables_to_volatilize, but don't volatilize it yet.
+ (objc_finish_function): New.
+ * objc-act.h (local_variables_to_volatilize): New.
+
+2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
+ Mike Stump <mikestump@comcast.net>
+
+ Allow 'make check-objc -j2'
+ * Make-lang.in (lang_checks_parallelized): New.
+ (check_objc_parallelize): New.
+
+2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (start_class): When a class is reimplemented,
+ generate an error and avoid adding the class to the list of
+ implemented classes again, but do not return error_mark_node.
+
+2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_maybe_build_component_ref): Removed TODO.
+
+2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node
+ is passed as argument.
+ (objc_begin_catch_clause): Added code to deal with an
+ error_mark_node or NULL_TREE argument. Improved checks for
+ invalid arguments. Added code to traverse typedefs.
+
+2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_demangle): Return immediately if the string is
+ too short. Detect names that do not need demangling, and return
+ them unchanged.
+
2010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented optional properties.
Move to c-objc-common.h.
\f
-Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright