OSDN Git Service

PR objc/21641
[pf3gnuchains/gcc-fork.git] / gcc / objc / ChangeLog
index 6eaa964..9e65d6c 100644 (file)
@@ -1,3 +1,264 @@
+2005-05-18  Mike Stump  <mrs@apple.com>
+
+       PR objc/21641
+       * objc-act.c (struct interface_tuple): Mark it up for GC.
+       (interface_htab): It is really a struct interface_tuple.
+
+2005-05-17  Mike Stump  <mrs@apple.com>
+
+       Yet more Objective-C++...
+
+       * objc-act.c (objc_finish_try_stmt): Add return value.
+       (objc_build_synchronized): Likewise.
+
+       * objc-act.c (objc_is_gcable_type): Add.
+       (objc_substitute_decl): Add.
+       (objc_build_ivar_assignment): Add.
+       (objc_build_global_assignment): Add.
+       (objc_build_strong_cast_assignment): Add.
+       (objc_is_ivar_reference_p): Add.
+       (objc_is_global_reference_p): Add.
+       (objc_generate_write_barrier): Add.
+       (objc_rewrite_function_call): Add.
+       (objc_gimplify_expr): Add Objective-C++ support.
+       * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
+       (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
+       (INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
+       (DUP_TYPE_OBJC_INFO): Likewise.
+       (struct imp_entry): Add field has_cxx_cdtors.
+       (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
+       OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
+       OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
+       OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
+       OCTI_ASSIGN_STRONGCAST_DECL.
+       (umsg_fast_decl): Add.
+       (objc_assign_ivar_decl): Add.
+       (objc_assign_ivar_fast_decl): Add.
+       (objc_assign_global_decl): Add.
+       (objc_assign_strong_cast_decl): Add.
+       (objc_method_list_ptr): Add.
+       (objc_method_proto_list_ptr): Add.
+       (objc_ivar_list_ptr): Add.
+
+       * objc-act.c (should_call_super_dealloc): Add.
+       (OBJC_VERSION): Bump to 6.
+       (objc_is_gcable_type): Add.
+       (objc_substitute_decl): Add.
+       (objc_build_ivar_assignment): Add.
+       (objc_build_global_assignment): Add.
+       (objc_build_strong_cast_assignment): Add.
+       (objc_is_gcable_p): Add.
+       (objc_is_ivar_reference_p): Add.
+       (objc_is_global_reference_p): Add.
+       (generate_shared_structures): Add flags parameter.
+       (objc_generate_cxx_ctor_or_dtor): Add.
+       (objc_generate_cxx_cdtors): Add.
+       (add_class): Add name parameter.
+       (objc_types_share_size_and_alignment): Add.
+       (comp_proto_with_proto): Add strict parameter.
+       (CLS_HAS_CXX_STRUCTORS): Add.
+       (TAG_ASSIGNIVAR): Add.
+       (TAG_ASSIGNGLOBAL): Add.
+       (TAG_ASSIGNSTRONGCAST): Add.
+       (TAG_MSGSEND_FAST): Add.
+       (TAG_ASSIGNIVAR_FAST): Add.
+       (TAG_CXX_CONSTRUCT): Add.
+       (TAG_CXX_DESTRUCT): Add.
+       (OBJC_LOOKUP_CLASS): Add.
+       (OBJC_LOOKUP_NO_SUPER): Add.
+       (objc_finish_file): Add pch support.
+       (objc_finish_implementation): Add Objective-C++ support.
+       (synth_module_prologue): Likewise.
+       (synth_module_prologue): Add fast dispatching.
+       (objc_get_class_reference): Add Objective-C++ support.
+       (objc_generate_write_barrier): Likewise.
+       (next_sjlj_build_enter_and_setjmp): Likewise.
+       (objc_begin_try_stmt): Likewise.
+       (build_next_objc_exception_stuff): Add fast ivar support.
+       (build_private_template): Mark the record as used so debug
+       information is generated.
+       (build_protocol_template): Add Objective-C++ support.
+       (objc_method_parm_type) Likewise.
+       (objc_generate_cxx_ctor_or_dtor): Likewise.
+       (objc_generate_cxx_cdtors): Likewise.
+       (build_protocol_initializer): Likewise.
+       (build_category_template): Likewise.
+       (build_class_template): Likewise.
+       (build_method_list_template): Likewise.
+       (build_category_initializer): Likewise.
+       (build_shared_structure_initializer): Likewise.
+       (objc_finish_message_expr): Likewise.
+       (build_objc_method_call): Add fast dispatch support.
+       (lookup_method_static): Add support to end search at superclasses.
+       (add_method_to_hash_list): Add strict parameter to
+       comp_proto_with_proto.
+       (objc_add_method): Likewise.
+       (objc_add_method): Also set the interface_value.
+       (add_instance_variable): Add Objective-C++ support.
+       (objc_is_public): Likewise.
+       (start_class): Likewise.
+       (continue_class): Likewise.
+       (encode_aggregate_within): Likewise.
+       (start_method_def): Likewise.
+       (objc_start_function): Clear current_function_returns_value
+       and current_function_returns_null.
+       (really_start_method): Add Objective-C++ support.
+       (objc_finish_method_definition): Add warning for missing
+       [super dealloc].
+       (finish_objc): Add Objective-C++ support.
+       (generate_objc_image_info): Likewise.
+       (objc_lookup_ivar): Likewise.
+       * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
+       (INIT_TYPE_OBJC_INFO): Likewise.
+       (DUP_TYPE_OBJC_INFO): Likewise.
+
+2005-04-23  DJ Delorie  <dj@redhat.com>
+
+       * objc-act.c: Adjust warning() callers.
+
+2005-04-21  Roger Sayle  <roger@eyesopen.com>
+
+       * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing
+       this field of an objc method decl.
+       * objc-act.c (build_method_decl): Take an additional "ellipsis"
+       argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate.
+       (objc_build_method_signature): Accept additional "ellipsis"
+       argument and pass it to build_method_decl.
+       (get_arg_type_list, start_method_def, gen_method_decl): Use
+       the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the
+       TREE_OVERFLOW field of a TREE_LIST node.
+
+2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/12913
+       * objc-act.c (objc_start_function): Create stack level for context
+       of identifiers with variably modified type.
+
+2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/772
+       PR c/17913
+       * objc-act.c (objc_start_function): Push context on
+       label_context_stack.
+
+2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * objc-act.c (next_sjlj_build_enter_and_setjmp,
+       next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
+       Call c_common_truthvalue_conversion.
+
+2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o,
+       objc/objc-parse.c, objc/objc-parse.y): Remove
+       (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean,
+       objc.distclean, objc.maintainer-clean): Update for new parser.
+       * config-lang.in (gtfiles): Update for new parser.
+
+2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
+       copyright.
+
+2005-01-27  Matt Austern  <austern@apple.com>
+
+       * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before
+       calling instantiate_pending_templates.
+       
+2005-01-26  Alexander Malmberg  <alexander@malmberg.org>
+
+       PR objc/18862
+       * objc-act.c (build_selector_translation_table): Use
+       input_location in the diagnostic for the GNU runtime or if
+       TREE_PURPOSE (chain) is NULL.
+
+2005-01-25  Alexander Malmberg  <alexander@malmberg.org>
+
+       PR objc/18408
+       * objc-act.c (objc_types_compatible_p): New function.
+       * objc-act.h (objc_types_compatible_p): Declare.
+       * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
+
+2005-01-16  Ziemowit Laski  <zlaski@apple.com>
+
+       * objc-act.c (objc_push_parm): Call c_type_promotes_to()
+       via a lang-hook.
+
+2005-01-15  Ziemowit Laski  <zlaski@apple.com>
+
+       PR objc/19321
+       * objc-act.c (get_arg_type_list): Decay function arguments into
+       pointers.
+       (objc_push_parm): Likewise; bring PARM_DECL construction closer
+       in line with what the C front-end does.
+       (objc_get_parm_info): Call pushdecl() and finish_decl() on
+       each PARM_DECL, like the C front-end does.
+       (start_method_def): Remove redundant ARRAY_TYPE decay.
+       (objc_start_function): Bring closer in line with what the
+       C front-end does for functions.
+
+2005-01-14  Mike Stump  <mrs@apple.com>
+
+       * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
+       that -fobjc-exceptions is accepted.
+
+2004-12-30  Ziemowit Laski  <zlaski@apple.com>
+
+       PR objc/18971
+       * objc-act.c (get_arg_type_list, start_method_def): Decay
+       array arguments into pointers.
+       (gen_type_name_0): Learn to pretty-print array types.
+
+2004-12-15  Ziemowit Laski  <zlaski@apple.com>
+
+       * objc-act.c (build_private_template): Change to return 'void'; do
+       not set ivar_context, uprivate_record or objc_instance_type.
+       (objc_comptypes, gen_type_name_0): For types 'id' and 'Class',
+       retrieve protocol list from the pointee rather than the pointer itself;
+       check TYPE_HAS_OBJC_INFO(...) precondition before accessing
+       TYPE_OBJC_PROTOCOL_LIST.
+       (objc_get_protocol_qualified_type): For types 'id' and 'Class',
+       construct a variant of the pointee as well as the pointer, and
+       store protocol information in the former.  When creating variants
+       of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate
+       TYPE_OBJC_INTERFACE information.
+       (objc_declare_class): If a TYPE_DECL is looked up, retrieve the
+       underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE;
+       for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE
+       holding an IDENTIFIER_NODE.
+       (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before
+       accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead
+       of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding
+       an IDENTIFIER_NODE (meaning a @class forward-declaration only).
+       (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling
+       lookup_interface().
+       (continue_class): For @implementations, set ivar_context,
+       uprivate_record and objc_instance_type, for @interfaces, call
+       build_private_template().
+       (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing
+       TYPE_OBJC_INTERFACE.
+       (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before
+       accessing TYPE_OBJC_PROTOCOL_LIST.
+       * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO,
+       DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC, 
+       SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros.
+       (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points
+       to an actual @interface; stored in TYPE_LANG_SPECIFIC(...).
+       (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in
+       TYPE_LANG_SPECIFIC(...).
+       (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete.
+       (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER,
+       TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P;
+       adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST
+       instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST.
+
+2004-11-29  Joseph Myers  <joseph@codesourcery.com>
+
+       PR c/7544
+       * Make-lang.in (objc/objc-act.o): Update dependencies.
+       * objc-act.c (objc_finish_file): Call
+       maybe_apply_pending_pragma_weaks if not OBJCPLUS.
+
 2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR objc/18406