OSDN Git Service

2011-01-14 Ben Elliston <bje@au.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / objc / ChangeLog
index d60e2fb..780553a 100644 (file)
@@ -1,3 +1,379 @@
+2011-01-14  Ben Elliston  <bje@au.ibm.com>
+
+       * 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.
+       * 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.
 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
 
        * objc-act.c (objc_init): Use %' in diagnostic.
        
 2010-11-06  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        
 2010-11-06  Nicola Pero  <nicola.pero@meta-innovation.com>
 
-       Fixed using the Objective-C 2.0 syntax with self and super.
+       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
        * 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
        (objc_push_parm): Rebuild the PARM_DECL if its type has
        been decayed.   
 
        (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.
 
        * objc-act.c (encode_type): Fixed encoding enums with the next
        runtime.
        Move to c-objc-common.h.
 
 \f
        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
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright