OSDN Git Service

2011-01-14 Ben Elliston <bje@au.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / objc / ChangeLog
index 54f08a2..780553a 100644 (file)
@@ -1,3 +1,325 @@
+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.
        
 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
        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