OSDN Git Service

Removed conflict in usage of TYPE_LANG_SLOT_0 between Objective-C and C
[pf3gnuchains/gcc-fork.git] / gcc / objc / ChangeLog
index 1ebff02..e5cff3f 100644 (file)
@@ -1,3 +1,396 @@
+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