OSDN Git Service

In gcc/objc/:
[pf3gnuchains/gcc-fork.git] / gcc / objc / ChangeLog
index fd8f15d..0997727 100644 (file)
@@ -1,3 +1,639 @@
+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.
+       * objc-act.h (PROPERTY_OPTIONAL): New.
+       * objc-act.c (objc_add_property_declaration): Set
+       PROPERTY_OPTIONAL if appropriate.
+       (finish_class): When generating definitions of setter and getter
+       methods associated with a property for a protocol, mark them as
+       optional if the property is optional.
+       (maybe_make_artificial_property_decl): Added 'getter_name'
+       argument.  Set PROPERTY_OPTIONAL.
+       (objc_maybe_build_component_ref): Updated calls to
+       maybe_make_artificial_property_decl.  Added code for optional,
+       readonly properties.
+       (objc_build_class_component_ref): Updated call to
+       maybe_make_artificial_property_decl.
+       
+2010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_build_struct): Fixed loops that save and
+       restore TYPE_OBJC_INFO to iterate over all variants of the type; a
+       special case for the current type is then no longer required.
+       Duplicate TYPE_LANG_SPECIFIC for each type before restoring
+       TYPE_OBJC_INFO.
+       (objc_get_protocol_qualified_type): Updated comments.
+       
+2010-11-25  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE
+       after finish_struct, not before, otherwise it may be wiped out by
+       it.  This fixes spurious warnings when a class has more than 15
+       instance variables.
+
+2010-11-23  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR objc/24358
+       * lang-specs.h: Added objective-c-cpp-output.  Mapped .mi to
+       objective-c-cpp-output instead of objc-cpp-output.  Print a
+       deprecation note every time objc-cpp-output is requested.
+
+2010-11-22  Joseph Myers  <joseph@codesourcery.com>
+
+       * objc-act.c (write_symbols): Don't declare here.
+
+2010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR objc/41108
+       * objc-act.c (objc_generate_write_barrier): Added assert to make sure
+       this function is only called with the next runtime.
+
+2010-11-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/46547
+       * objc-act.c (in_late_binary_op): Remove.
+
+2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_start_class_interface): Do not warn that class
+       attributes are unimplemented.  Pass the attributes to start_class.
+       (objc_start_category_interface): Updated call to start_class.
+       (objc_start_class_implementation): Same change.
+       (objc_start_category_implementation): Same change.
+       (objc_build_class_component_ref): Warn if the class is deprecated.
+       (build_private_template): Mark the template as deprecated if the
+       class is deprecated.
+       (start_class): Added 'attributes' argument.  Emit a warning if
+       using a deprecated class as superclass of a class, or original
+       class of a category.  Recognize the 'deprecated' attribute when
+       starting and interface, and mark the interface with
+       TREE_DEPRECATED if present.  Store attributes in the interface.
+       
+2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>     
+
+       * objc-act.c (lookup_protocol): Added 'warn_if_deprecated'
+       argument.  If it is 'true' and the protocol is deprecated, emit a
+       deprecation warning.
+       (objc_start_protocol): Do not warn that protocol attributes are
+       unimplemented.  Pass the attributes to start_protocol.
+       (start_protocol): Added attributes argument.  Recognize the
+       'deprecated' attribute and mark the protocols with TREE_DEPRECATED
+       if present.  Store attributes in the protocol.
+       (objc_declare_protocols): Added 'attributes' argument.  Recognize
+       the 'deprecated' attribute and mark the protocols with
+       TREE_DEPRECATED if present.  Store attributes in the protocol.
+       Updated call to lookup_protocol.
+       (objc_build_protocol_expr): Updated call to lookup_protocol.
+       (check_protocol_recursively): Same change.
+       (lookup_and_install_protocols): Same change.
+       * objc-act.h: Updated comments.
+       
+2010-11-17  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (lookup_method_in_protocol_list): Search methods in
+       PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if
+       they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS.
+
+2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_build_setter_call): New.
+       (objc_maybe_build_modify_expr): Rewritten to build a compound
+       statement.
+       (objc_build_incr_expr_for_property_ref): Updated calls to
+       objc_maybe_build_modify_expr to call objc_build_setter_call
+       instead.  Use build_modify_expr () instead of build2 (MODIFY_EXPR,
+       ...).  Use convert () instead of build1 (NOP_EXPR, ...).  Use
+       TREE_NO_WARNING on the final compound statement to silence C++
+       warnings.
+
+2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_build_incr_expr_for_property_ref): New.
+       (objc_create_temporary_var): Moved it towards the beginning of the
+       file so that objc_build_incr_expr_for_property_ref can use it.
+
+2010-11-14  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_add_property_declaration): Check that the decl
+       we received from the parser is a FIELD_DECL; reject array and
+       bitfield properties.  Convert the warning when a property is
+       readonly and a setter is specified into an error.  Convert errors
+       when a property declaration does not match a property declaration
+       in a superclass into warnings.
+       (objc_add_synthesize_declaration_for_property): Use
+       DECL_BIT_FIELD_TYPE to determine the type of an instance variable
+       if it is a bitfield.  Throw an error if we are asked to synthesize
+       setters/getters for a bitfield instance variable but the property
+       is not appropriate - it must be assign and nonatomic.  If the
+       property is readonly, allow the instance variable type to be a
+       specialization of the property type.
+       (objc_type_valid_for_messaging): Fixed returning 'false' for a
+       Class qualified with a protocol when the 'accept_classes' argument
+       is 'false'.
+
+2010-11-13  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_get_protocol_qualified_type): detect cases
+       where we are asked to attach a protocol to something which is not
+       an Objective-C object type, and produce an error.
+
+2010-11-11  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_add_property_declaration): Check that the type
+       of a property and of an inherited property match.
+       (objc_maybe_build_component_ref): Tidied up indentation and
+       comments.
+       (objc_common_type): Added new type of check (-5).
+       (objc_add_synthesize_declaration_for_property): Check that the
+       property to synthesize and the instance variable to use have the
+       same type.
+       
+2010-11-10  Joseph Myers  <joseph@codesourcery.com>
+
+       * objc-act.c (objc_init): Use %' in diagnostic.
+       (objc_set_method_opt): Remove trailing '.' from diagnostic.
+
+2010-11-10  Joseph Myers  <joseph@codesourcery.com>
+
+       * objc-act.c (dump_base_name): Don't declare here.
+
+2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_add_dynamic_declaration_for_property): Do not
+       search for the @property declation only in the current context,
+       but also in inherited properties.  Do not mark the original
+       PROPERTY_DECL in the @interface or @protocol with
+       PROPERTY_DYNAMIC.
+       (check_methods): To check if a method is associated with a
+       @dynamic property, search for the property in IMPL_PROPERTY_DECL.
+       (check_accessible_methods): Same change.
+       * objc-act.h: Updated comment.
+
+2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_add_synthesize_declaration_for_property):
+       Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when
+       checking for an existing @synthesize or @dynamic declaration.
+       Search for an inherited @property declaration if none is found in
+       the local interface.  If the required instance variable does not
+       exist, return instead of trying to continue to prevent a compiler
+       crash later.  Check that the instance variable is not already
+       being used by another @synthesize.
+       (objc_add_dynamic_declaration_for_property): Iterate over
+       IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an
+       existing @synthesize or @dynamic declaration.
+       (objc_synthesize_getter): Search for the getter declaration in
+       protocols and superclasses as well.
+       (objc_synthesize_setter): Search for the setter declaration in
+       protocols and superclasses as well.
+       
+2010-11-08  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (lookup_property): When checking categories, also
+       check the protocols attached to each.
+       (objc_add_property_declaration): Determine the
+       PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here.  Tidied up
+       error message.  Search for an existing property declaration with
+       the same name which would be inherited from the class hiearchy,
+       and produce an error if it has incompatible attributes.
+       (check_methods): Changed second parameter.  If the method is a
+       getter or setter for a property, do not warn if it is inherited as
+       opposed to implemented directly in the class.
+       (check_protocol): Updated calls to check_methods.
+       (finish_class): Do not determine the PROPERTY_SETTER_NAME and
+       PROPERTY_GETTER_NAME here; this is now done earlier, in
+       objc_add_property_declaration.
+       * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments.
+       
+2010-11-06  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Fixed using the Objective-C 2.0 dot-syntax with self and super.
+       * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New.
+       (maybe_make_artificial_property_decl): Added 'implementation'
+       argument.  Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when
+       looking up getters or setters for a class.  If an implementation
+       is specified, search it as well for a getter or setter.
+       (objc_maybe_build_component_ref): Updated calls to
+       maybe_make_artificial_property_decl; added code to deal with
+       'self' and 'super' and with methods declared locally in the
+       implementation.  Store the getter call expression in the
+       PROPERTY_REF instead of throwing it away.
+       (objc_build_class_component_ref): Updated calls to
+       maybe_make_artificial_property_decl, and store the getter call
+       expression in PROPERTY_REF instead of throwing it away.
+       (lookup_method_static): Implemented
+       OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option.
+       (objc_gimplify_property_ref): Do not build the getter method call
+       here; instead use the one stored in the PROPERTY_REF.  If it's not
+       there, produce helpful error messages.
+       * objc-tree.def (PROPERTY_REF): Increased the number of operands
+       from 2 to 3.  Updated comments.
+       * objc-act.h (PROPERTY_REF_GETTER_CALL): New.
+       
+2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
+
+       PR target/44981
+       * objc-act.c (objc_build_string_object): Amend for renamed hook.
+       (objc_string_ref_type_p): New.
+       (objc_check_format_arg): New.
+
+2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Fixed using the Objective-C 2.0 dot-syntax with class names.    
+       * objc-act.c (objc_build_class_component_ref): New.
+
+2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a
+       category.
+       (objc_type_valid_for_messaging): Added 'accept_classes' argument;
+       if set to 'true', return 'true' for Class objects.  Do not remove
+       more than on pointer indirection.
+       (objc_add_property_declaration): Only warn about 'assign'
+       semantics for Objective-C objects if warn_property_assign_default;
+       and do not warn if the property is readonly or if the type is a Class.
+       (objc_finish_foreach_loop): Updated calls to
+       objc_type_valid_for_messaging.
+       
+2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Implemented -fobjc-std=objc1 flag.
+       * objc-act.c (objc_start_class_interface): If attributes are
+       specified when flag_objc1_only is set, print an error.
+       (objc_start_category_interface): Same change.
+       (objc_start_protocol): Same change.
+       (objc_add_method_declaration): Same change.
+       (objc_start_method_definition): Same change.
+       (objc_build_keyword_decl): Same change.
+       (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when
+       flag_objc1_set is set, print an error.
+       (objc_set_method_opt): If flag_objc1_only is set, print an error.
+       (objc_add_property_declaration): Same change.
+       (objc_add_synthesize_declaration): Same change.
+       (objc_add_dynamic_declaration): Same change.
+       (objc_finish_foreach_loop): Same change.
+       (objc_maybe_build_component_ref): If flag_objc1_only is set,
+       return immediately.
+
+2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (maybe_make_artificial_property_decl): New.
+       (objc_maybe_build_component_ref): Call
+       maybe_make_artificial_property_decl if a property can not be
+       found.  Do not call objc_finish_message_expr if
+       PROPERTY_HAS_NO_GETTER.
+       * objc-act.h Updated comments.
+       (PROPERTY_HAS_NO_GETTER): New.
+       (PROPERTY_HAS_NO_SETTER): New.
+       * objc-tree.def: Updated comment.
+       
+2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Implemented format and noreturn attributes for Objective-C methods.
+       * objc-act.c (objc_start_method_definition): If method attributes
+       are specified emit a warning and ignore them.
+       (build_objc_method_call): Moved deprecation warnings from here ...
+       (objc_finish_message_expr): to here.  Do not emit deprecation
+       warnings if the receiver is of type 'id'.
+       (really_start_method): Install 'deprecation' and 'noreturn'
+       attributes.
+       (objc_decl_method_attributes): Carefully filter out the list of
+       attributes, allowing only "noreturn", "format", "sentinel" and
+       "deprecated".  In the case of "format", adjust the arguments.
+       Always process the attributes in the same way no matter if
+       "sentinel" is in the list or not.
+       
+2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_maybe_build_component_ref): Warn about using
+       deprecated properties.
+       (objc_maybe_printable_name): Support PROPERTY_DECL.
+       
+2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Implemented Objective-C 2.0 property accessors. 
+       * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
+       OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
+       OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
+       (objc_getProperty_decl): New.
+       (objc_setProperty_decl): New.
+       (objc_copyStruct_decl): New.
+       (objc_getPropertyStruct_decl): New.
+       (objc_setPropertyStruct_decl): New.
+       * objc-act.c (build_objc_property_accessor_helpers): New.
+       (synth_module_prologue): Call
+       build_objc_property_accessor_helpers.
+       (lookup_ivar): New.
+       (objc_synthesize_getter): Implemented synthesizing getters that
+       work with properties that are not nonatomic, assign properties.
+       (objc_synthesize_setter): Implemented synthesizing setters that
+       work with properties that are not nonatomic, assign properties.
+       
+2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
+       * objc-tree.def (PROPERTY_REF): New.
+       * objc-act.h: Added comments for all the PROPERTY_ macros.
+       (PROPERTY_NAME): Use DECL_NAME.
+       (PROPERTY_COPIES): Removed.
+       (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
+       (PROPERTY_NONATOMIC): New.
+       (objc_property_assign_semantics): Make it a typedef.
+       (PROPERTY_ASSIGN_SEMANTICS): New.
+       (PROPERTY_DYNAMIC): New.
+       (PROPERTY_REF_OBJECT): New.
+       (PROPERTY_REF_PROPERTY_DECL): New.
+       * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
+       (in_objc_property_setter_name_context): Removed.
+       (objc_add_property_declaration): Removed copies and ivar arguments
+       and code supporting them.  Fixed recovering when readonly and
+       setter attributes are specified.  Removed support for @property in
+       @implementation context.  Updated error message.  Double-check
+       that a property does not have a DECL_INITIAL.  Validate the
+       property assign semantics and emit appropriate errors and
+       warnings.  Check for duplicate property declarations.  Set
+       DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
+       PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
+       PROPERTY_DECL.  Do not set PROPERTY_COPIES.  Set
+       PROPERTY_IVAR_NAME to NULL_TREE.
+       (objc_build_getter_call): Renamed to
+       objc_maybe_build_component_ref.  If the property is not found in
+       the interface, search in the protocol list.  Do not generate the
+       getter call; instead, build and return a PROPERTY_REF.
+       (objc_is_property_ref): New.
+       (objc_setter_func_call): Removed.
+       (get_selector_from_reference): Removed.
+       (is_property): Removed.
+       (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
+       Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
+       the PROPERTY_REF.  Generate an error if the property is read-only.
+       (build_property_reference): Removed.
+       (objc_finish_message_expr): Removed check to produce "readonly
+       property can not be set" error when
+       in_objc_property_setter_name_context.  We now generate the error
+       earlier, in objc_maybe_build_modify_expr, which will only generate
+       the setter call if the property is readwrite.
+       (check_methods): Recognize dynamic properties.
+       (check_methods_accessible): Same change.
+       (objc_build_property_ivar_name): Removed.
+       (objc_build_property_setter_name): Dropped bool argument.  Always
+       add the ':' at the end.
+       (objc_gen_one_property_datum): Removed.
+       (objc_process_getter_setter): Removed.
+       (objc_synthesize_getter): Mark 'klass' argument as unused.  Use
+       PROPERTY_GETTER_NAME instead of PROPERTY_NAME.  Set the
+       DECL_SOURCE_LOCATION of the new method to be the same as the one
+       for the @synthesize.  Always use PROPERTY_IVAR_NAME as it is
+       instead of trying to guess what it should be.  Removed use of
+       CLASS_IVARS.  Use the location of @synthesize for c_finish_return
+       and c_end_compound_statement.
+       (objc_synthesize_setter): Mark 'klass' argument as unused.  Use
+       PROPERTY_SETTER_NAME instead of trying to guess what it should be.
+       Set the DECL_SOURCE_LOCATION of the new method to be the same as
+       the one for the @synthesize.  Always use PROPERTY_IVAR_NAME as it
+       is instead of trying to guess what it should be.  Removed use of
+       CLASS_IVARS.  Use the location of @synthesize for c_finish_return
+       and c_end_compound_statement.  Emit an error and keep going,
+       instead of aborting, if the setter prototype does not have the
+       expected argument.
+       (objc_add_synthesize_declaration_for_property): New.
+       (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
+       all arguments.  Improved error message.  Filled in the rest of the
+       function, which used to be a placeholder, with an actual
+       implementation.
+       (objc_add_dynamic_declaration_for_property): New.
+       (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
+       arguments.  Improved error message.  Filled in the rest of the
+       function, which used to be a placeholder, with an actual
+       implementation.
+       (objc_gen_property_data): Rewritten.
+       (finish_class): Added explicit switch cases for
+       CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
+       PROTOCOL_INTERFACE_TYPE.  Added a default switch case which is
+       gcc_unreachable.  Rewritten the processing of properties, in
+       particular to not synthesize prototypes for getters and setters if
+       they already exist and to install the getter and setter names into
+       PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME.  Do not generate
+       warnings about setter, getter and ivar property attributes.
+       (objc_lookup_ivar): Removed support for properties.
+       (objc_gimplify_property_ref): New.
+       (objc_gimplify_expr): Use a switch.  In case of a PROPERTY_REF, call
+       objc_gimplify_property_ref.
+       
+2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_add_property_declaration): Added arguments to
+       pass the various property attributes that were parsed with the
+       property declaration.  Process arguments to determine the final
+       property attributes and produce error messages as appropriate.
+       Added temporary code to keep the compiler silent about variables
+       set but not used - for new attributes that are only checked but
+       have no effect yet.
+       (property_readonly): Removed.
+       (property_setter): Removed.
+       (property_getter): Removed.
+       (property_ivar): Removed.
+       (property_copies): Removed.     
+       (objc_set_property_attr): Removed.
+       * objc-act.h (enum property_assign_semantics): New.
+       
+2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_add_property_variable): Renamed to
+       objc_add_property_declaration.  Added location argument.  Updated
+       warnings and errors to use it.  Use error, not fatal_error, if a
+       property declaration is found outside an interface or
+       implementation context.
+       
+2010-10-24  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_build_keyword_decl): Updated comments.  Do not
+       emit a warning that method parameter attributes are unimplemented.
+       Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL.
+       (start_method_def): Copy attributes from each KEYWORD_DECL into
+       the corresponding PARM_DECL.
+       (objc_warn_deprecated_use): Removed.
+       (build_objc_method_call): Call warn_deprecated_use, not
+       objc_warn_deprecated_use.
+       (objc_maybe_printable_name): Do not try to get the identifier name
+       of DECLs that we don't recognize.  Immediately return NULL for them.
+       (objc_printable_name): Removed C++-specific case, which is no
+       longer used.  Updated comments.
+       
+2010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments.
+       (objc_demangle): Return NULL if demangling can not be done because
+       the string to demangle is not an Objective-C mangled method name.
+       Be smarter in demangling method names so that at least for methods
+       with no arguments we are able to almost always demangle '_' correctly.
+       Updated comments.
+       (objc_maybe_printable_name): New.
+       (objc_printable_name): Call objc_maybe_printable_name.  If it
+       returns NULL, call cxx_printable_name in Objective-C++.
+
+2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
+
+       Based on the CFString implementation in FSF apple/trunk branch.
+       
+       * objc/objc-act.c (objc_build_string_object): Handle CFStrings.
+
+2010-10-21  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (get_objc_string_decl): Use a switch instead of a
+       chain of ifs.  Use gcc_unreachable instead of abort.
+       (add_objc_string): Same change.
+       (generate_protocol_list): Same change - twice.
+       (synth_id_with_class_suffix): Same change.
+       (build_keyword_selector): Same change - twice.
+       (objc_build_message_expr): Same change.
+       (objc_build_selector_expr): Same change.
+       (check_methods): Same change - and added missing gcc_unreachable
+       for default case.
+       (check_methods_accessible): Same change - twice, and added missing
+       gcc_unreachable for default case in one of them.
+       (start_class): Same change - and added missing gcc_unreachable for
+       default case.
+       (continue_class): Same change.
+       (objc_gen_property_data): Same change.
+       (finish_class): Same change.
+       (encode_type_qualifiers): Added missing gcc_unreachable.
+       (encode_type): Small code tidy up to reduce duplicated code.  Use
+       gcc_unreachable instead of abort - twice.
+       (encode_gnu_bitfield): Use a switch instead of a chain of ifs -
+       twice.  Added missing gcc_unreachable for default case - twice.
+       (dump_interface): Use a switch instead of a chain of ifs.
+       (handle_impent): Same change.
+       
+2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.h (objc_inherit_code): Removed.
+       * objc-act.c (objc_inherit_code): Removed.
+       (objc_set_method_type): Removed.
+       (objc_build_method_signature): Added is_class_method argument.
+       Use it instead of the global objc_inherit_code variable.
+       (objc_add_method_declaration): Same change.
+       (objc_start_method_definition): Same change.
+       (objc_generate_cxx_ctor_or_dtor): Updated call to
+       objc_start_method_definition.  Do not call objc_set_method_type.
+       (adjust_type_for_id_default): Mark as inline.
+       (objc_synthesize_getter): Updated call to
+       objc_start_method_definition.  Do not set objc_inherit_code.
+       (objc_synthesize_setter): Updated call to
+       objc_start_method_definition.  Do not set objc_inherit_code.    
+       
+2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Merge from 'apple/trunk' branch on FSF servers.  Obvious updates
+       to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to
+       get it to compile in the current trunk.
+
+       2006-01-27 Fariborz Jahanian <fjahanian@apple.com>
+
+       Radar 4345837
+       * objc/objc-act.c (hash_class_name_enter): New.
+       (hash_class_name_lookup): New.
+       (objc_declare_alias): Enter alias name into hash table.
+       (objc_declare_class): Enter class name into hash table.
+       (objc_is_class_name): Do a hash look up of class name.
+       (hash_init): Initialize the two new hash tables.
+       * objc-act.h: Added cls_name_hash_list and als_name_hash_list 
+       declarations, removed class_chain and alias_chain.      
+
+2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-lang.c (finish_file): Removed.
+       * objc-act.c (objc_finish_file): Renamed to
+       objc_write_global_declarations.  Do not try to instantiate C++
+       templates when compiling Objective-C++ as this is now
+       automatically done before this function is called.  Do not check
+       for syntax-only run or PCH generation as this is done by the
+       callers.
+       * objc-act.h (objc_finish_file): Removed.
+       
+2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Implemented parsing @synthesize and @dynamic for
+       Objective-C/Objective-C++.
+       * objc-act.c (objc_add_synthesize_declaration): New.
+       (objc_add_dynamic_declaration): New.
+
+2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>     
+
+       * objc-act.c (lookup_and_install_protocols): Return NULL if passed
+       error_mark_node.
+       
 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        Merge from 'apple/trunk' branch on FSF servers.
        (objc_push_parm): Rebuild the PARM_DECL if its type has
        been decayed.   
 
-2010-09-28  Nicola Pero  <nicola@nicola.brainstorm.co.uk>
+2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        * objc-act.c (encode_type): Fixed encoding enums with the next
        runtime.