ChangeLog.apple   [plain text]


2007-08-08  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5389292
	* objc-act.c (objc_declare_property_impl): For ivar decl. get the 
	underlying bitfield type for comparison.

2007-08-07  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5390587
	* objc-act.c (objc_build_property_reference_expr): Preserve the original
	receiver.property_name information.
	(objc_resolve_build_property_setter_name): Get 'setter' name from original property name.
	(objc_finish_message_expr): return error_mark_node on error.
	(finish_class): Set property context field only when new getter is
	introduced (but not when existing one is found).

2007-07-31  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5259868
	* objc-act.c (objc_build_ivar_layout): Compress ivar layout nibbles
	if can.

2007-07-27  Fariborz Jahanian <fjahanian@apple.com>

	Radar 3742561
	* objc-act.h (objc_memmove_collectable_decl): New declaration
	* objc-act.c (objc_build_memmove_collectable): New
	(objc_aggr_type_strong): New
	(objc_generate_write_barrier): Generate write barrier call for
	structs holding object pointers (or __strong pointers).
	(build_next_objc_exception_stuff): Generate the write barrier function
	declaration.

2007-07-24  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5355344
	* objc-act.c (cp_objc_protocol_id_list): New

2007-07-17  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5338634
	* objc-act.c (finish_class): Fix check for name conflict between
	property name and its setter name.

2007-07-16  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5333233
	* objc-act.c (generate_v2_shared_structures): If class has no
	'ivar', set 'field' to class's hiden field (for its super class).

2007-07-13  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5277239
	* objc-act.c (lookup_method_static): Takes a new argument.
	(objc_property_access_info): Now recognizes 'receiver' when 
	it is a class object.
	(objc_build_property_reference_expr): Can now build property
	reference expression for class-name.class-method syntax as well.
	(objc_build_getter_call): Can now build method-call expression from
	property reference expression.
	(objc_resolve_build_property_setter_name): Can now build a setter name
	(which should be a class method) for a property dot-syntax used on a
	class object.
	(objc_finish_message_expr): Add argument in call to lookup_method_static.
	(really_start_method): Ditto.
	(lookup_method_static): Has a new argument which when true only finds class
	methods.
	
2007-07-10  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5285911
	* objc-tree.def (OBJC_PROPERTY_REFERENCE_EXPR): New code tree.
	* objc-act.c (objc_property_access_info): New
	(objc_build_property_reference_expr): New
	(objc_property_reference_expr): New
	(objc_property_call): Removed
	(objc_v2_build_setter_call): Removed
	(objc_v2_build_incr_decl_setter_call): Removed
	(objc_build_getter_call): Revised and greatly simplified.
	(objc_build_setter_call): Revised and greatly simplified.
	(objc_build_incr_decr_setter_call): Revised and greatly simplified.
	(objc_gimplify_expr): Build getter for OBJC_PROPERTY_REFERENCE_EXPR
	tree before gimplification.

2007-06-29  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5082000
        * lang-specs.h (print-objc-ivar-layout): Add
        * objc-act.c (total_type_elements): New
        (OUTPUT_LAYOUT_BYTE): New macro
        (adjust_max_layout_buf_size): New
        (objc_build_aggregate_ivar_layout): Add support to handle
        layout for ivar of array type.
        (objc_build_ivar_layout): Modified to support dynamic
        buffer allocation and printing of gc ivar layout on demand.

2007-06-29  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5251019
        * objc-act.c (objc_build_ivar_layout): ivar layout nibble string
        must include count of words to skip at the end.


2007-06-29  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5276085

        * objc-tree.def (OBJC_WEAK_REFERENCE_EXPR): New tree code.
        (objc_tree_is_weak_expr): New routine to decide if expression
        is 'weak' reference.
        (objc_build_weak_reference_tree): New routine to build a
        'weak' reference tree.
        (objc_weak_reference_expr): New routine to return the 'weak'
        reference expression tree.
	(objc_synthesize_getter, objc_synthesize_new_getter): Call
	objc_build_weak_reference_tree.
        (objc_generate_weak_read): Removed.
        (objc_remove_weak_read): Removed.
        (objc_gimplify_expr): Take a OBJC_WEAK_REFERENCE_EXPR
        tree and covert it into a 'weak' reference API before
        gimplification.

2007-06-29  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5279122
	* objc-act.c (objc_build_compound_setter_call): Decay rhs before using it in
	a setter call generation.

2007-06-18  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5265737
        * objc-act.c (objc_v2_build_setter_call, objc_build_setter_call):
        Look into rhs of TARGET_EXPR for the getter tree (c++ only).

2007-06-18  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5265608
        * objc-act.c (objc_declare_property_impl): Error reporting
        replaces gcc_assert.

2007-06-06  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5250860 (Remove old property)
	* objc/objc-act.c (objc_set_property_attr,
	objc_add_property_variable, objc_build_getter_call,
	objc_setter_func_call, objc_v2_encode_prop_attr, 
	objc_v2_merge_property, declare_atomic_property_api,
	aggregate_contains_objc_pointer, synth_module_prologue,
	objc_finish_message_expr, objc_merge_proto_properties_in_class,
	objc_process_getter_setter, objc_synthesize_getter,
	objc_synthesize_setter, objc_gen_property_data,
	objc_add_internal_ivar, finish_class): Remove code related to old
	property.
	* objc/objc-act.h: Remove all declarations related to old
	property.

2007-05-31  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5172645
	* objc-act.c (objc_add_property_variable): Check 
	for warn_property_assign_default flag added.

2007-05-30  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5232840
	* objc-act.c (objc_synthesize_new_setter): Set TREE_USED
	flag on parameter being used.

2007-05-29  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5217964
        * objc-act.c (objc_build_ivar_layout): Skip count bits must all
        come before the scan count bits.

2007-05-23 Fariborz Jahanian <fjahanian@apple.com>

        Radar 5195402
	* objc-act.c (objc_check_nsstring_pointer_type): New
	(objc_check_format_nsstring): Call objc_check_nsstring_pointer_type

2007-05-18  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5202926
	* objc-act.c (build_metadata_decl): Takes a new argument.
	(forward_declare_categories, synth_v2_forward_declarations,
	generate_v2_shared_structures): Pass false/true to 
	build_metadata_decl.
	(objc_anonymous_local_objc_name): New.

2007-05-17  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5207415
        * objc-act.c (objc_synthesize_new_getter): Use existing getter name for
        synthesis.
        (objc_synthesize_new_setter): Use existing setter name for synthesis.

2007-05-16  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5207415
        * objc-act.c (objc_synthesize_new_getter): Use existing getter name for
        synthesis.
        (objc_synthesize_new_setter): Use existing setter name for synthesis.

2007-05-12  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5192466
        * objc-act.c (build_v2_protocol_template): Define two new fields
        for 'struct protocol_t'.
        (build_protocol_initializer): Initialize the two new fields.

2007-05-07  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4157812
	* objc-act.c (objc_add_property_setter_method): Call to objc_build_keyword_decl
	has new argument.
	(finish_class): Ditto.
	(objc_add_method_declaration): Quick return on errornous selector.
	(objc_build_keyword_decl): Save argument attribute passed to objc_build_keyword_decl
	in newly built argument node.
	(start_method_def): Process selector argument's attribute.
	* objc-act.h (KEYWORD_ARG_ATTRIBUTE): New macro
	
2007-05-03  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5180172
        * objc-act.c (objc_declare_property_impl): Issue error on use of @synthesize
        in a category implementation.

2007-05-03  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4874626
	* objc-act.c (objc_finish_file): Pass current input_location
	to emit_instantiate_pending_templates.

2007-04-30  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5159695
	* objc-act.c (objc_add_property_variable): Warn on mismatched attribute
	in class continuation property declaration.

2007-04-30  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5168496
	* objc-act.c (managed_objc_object_pointer): New
	(objc_add_property_setter_method): Call it instead
	of objc_type_valid_for_messaging.
	(objc_add_property_variable): Ditto.
	(objc2_valid_objc_catch_type): Replaced inline code
	with call to managed_objc_object_pointer.
	
2007-04-25  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5159707
	* objc-act.c (objc_add_property_variable): Warn on mismatched type of
	property in class continuation and its main class.

2007-04-23  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5153561
        * objc-act.c (objc_init): Initialize data structures needed in
        objc2_eh_runtime_type routine.

2007-04-23  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5142207
        * objc-act.c (IS_CLS_META, CLS_HIDDEN, OBJC2_CLS_HIDDEN): New macros.
        (build_shared_structure_initializer): Use IS_CLS_META.
        (generate_v2_shared_structures): Add CLS_HIDDEN flag to 'info' field
        of class's meta-data.
        (generate_v2_shared_structures): Use OBJC2_CLS_HIDDEN instead of numeric
        value.

2007-04-20 Fariborz Jahanian <fjahanian@apple.com>

        Radar 5130983
        * objc-act.c (objc_finish_foreach_loop): Issue error on non-lvalue
        selector expression.

2007-03-12  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5023725
        * objc-act.c (OBJC_FLAG_ZEROCOST_EXCEPTIONS): New macro
        (objc_init_exceptions): Use it.

2007-04-19 Fariborz Jahanian <fjahanian@apple.com>

        Radar 5140757
        * objc-act.c (objc_build_compound_setter_call): Use save_expr 
        instead of copy_node for rhs.

2007-04-18 Fariborz Jahanian <fjahanian@apple.com>

        Radar 5128402
        * objc-act.c (objc_finish_foreach_loop): Set elem to nil at the else part 
        of the outer if-stmt instead of at the begining.

2007-04-09 Fariborz Jahanian <fjahanian@apple.com>

        Radar 5096648
        * objc-act.c (TARGET_CFSTRING_P): Removed
        (objc_NSString_format): Removed

2007-04-05 Fariborz Jahanian <fjahanian@apple.com>

        Radar 5109807
        * objc-act.c (objc_build_ivar_layout): skip the gap

2007-04-02  Fariborz Jahanian <fjahania@apple.com>

	Radar 4929049
	(objc_remove_weak_read): Modify how typecast is applied.

Change code because input tree has changed.

2007-03-30  Fariborz Jahanian <fjahania@apple.com>

        Radar 4727191 (tweaked)
        (objc_build_compound_setter_call): Set DECL_SEEN_IN_BIND_EXPR_P
        on Dupe'd local variable.

2007-03-29 Fariborz Jahanian <fjahanian@apple.com>

        Radar 5096644 
        * objc-act.c (objc_add_property_variable): Check for forward class
        use of property type before doing some checking.

2007-03-29 Fariborz Jahanian <fjahanian@apple.com>
        
        Radar 5080710
        * objc-act.c (objc_finish_message_expr, build_objc_method_call,
        objc_synthesize_new_getter, objc_synthesize_new_setter): Added check
        for TREE_ADDRESSABLE flag in deciding if method returns its structure
        value in memory.

2007-03-29  Fariborz Jahanian <fjahanian@apple.com>
        Radar 4947014 - objc atomic property

        * objc-act.h (umsg_GetAtomicProperty, umsg_SetAtomicProperty,
        umsg_CopyAtomicStruct, umsg_NSCopying_Type): New decl.
        (ATOMIC_PROPERTY, PROPERTY): New macros.
        * objc-act.c (objc_set_property_attr): Register atomic/nonatomic
        properties.
        (objc_add_property_variable): Issue new warning for -fobjc-gc-only
        when default 'assign' property's object implements '<NSCopying>'.
        (declare_atomic_property_api): New routine
        (build_id_NSCopying_type): New routine
        (declare_prototype_property_bycopy): Clean up to call build_id_NSCopying_type.
        (aggregate_contains_objc_pointer): New routine
        (diagnose_property_mismatch): Diagnose on atomic/nonatomic mismatch.
        (objc_synthesize_new_getter): Generate atomic 'helper's in getters for
        'copy'/'retain', as well as those struct objects passed in memory under
        a variety of situations.
        (objc_synthesize_new_setter): Generate atomic 'helper's in setters for
        'copy'/'retain', as well as those struct objects passed in memory under
        a variety of situations.

2007-03-29 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4564694
        * objc-act.c (objc_is_reserved_word): @package is new objc keyword.
        (add_instance_variable): Treat @package ivar same as @public (32bit)
        and same as @private (64bit) for linkage purposes.

2007-03-27 Fariborz Jahanian <fjahanian@apple.com>

        Radar 5040740
        * objc-act.c (lookup_nested_method): New
        (objc_synthesize_new_getter): Call lookup_nested_method.
        (objc_synthesize_new_setter): Ditto.
        (lookup_nested_property): New
        (objc_declare_property_impl): Call lookup_nested_property.

2007-03-23  Fariborz Jahanian <fjahanian@apple.com>
                                       
        Radar 5060975
        * objc-act.c (build_objc_exception_stuff):  objc_exception_throw (id)
        claims that it may throw an exception

2007-03-27  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5025001
        * objc-act.c (objc_build_struct): Inser a new char :0 bf if last ivar
        was a bitfield.
        (build_v2_ivar_list_initializer): Fix an unrelated objctivec-c++ bug.

2007-03-27  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5005756
        * objc-act.c (build_objc_method_call, build_v2_build_objc_method_call):
        Don't check on method attributes sent to receiver of 'id' or 'Class'
        types.

2007-03-23  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5002848
        * objc-act.c (generating_property_type_encoding): Declare
        (objc_v2_encode_prop_attr): Set generating_property_type_encoding.
        (encode_pointer): Get underlying type of a type name for encoding.

2007-03-23  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4985544
        * objc-act.c (objc_check_format_nsstring): New
        (objc_NSString_format): New

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4994854
        * objc-act.c (objc_start_category_interface): If anonymous category
        already declared, then use it.
        (objc_add_property_variable): Insert new property into primary class.

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4965989
        * objc-act.h (ANONYMOUS_CATEGORY): New macro.
        * objc-act.c (objc_add_property_variable): Add merging of
        property in anonymous category into primary class.
        (objc_merge_methods): New.
        (finish_class): Merge methods from anonymous categories into
        primary class.

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Removed objc2 hybrid abi
        * objc-act.c: All code and checking related to hybrid abi
        is removed.

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4995942
        * objc-act.c (objc2_build_ehtype_initializer): Change setting of
        _objc_ehtype_vtable field.

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4995066
        * objc-act.c (objc_build_ivar_assignment): Takes new argument.
        (objc_build_ivar_assignment): Call objc2_outervar for valid
        'non-fragile' ivars only.
        (objc_generate_write_barrier): Add objc2_ivar_ref as 2nd argument.

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4982951
        * objc-act.c (objc2_outervar): New
        (objc2_build_indirect_ref_ivar2): New
        (objc_substitute_decl): Handle objc2's 'non-fragile' ivar reference.
        (objc_build_ivar_assignment): Get the outervar for objc2
        (objc_v2_ivar_reference): Now returns the objc2's ivar offset variable
        upon success.
        (objc_strip_off_indirection, objc_generate_write_barrier): Calls
        objc_v2_ivar_reference differently.

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4957534
        * objc-act.c (objc2_build_throw_call): Call objc_exception_rethrow
        for @throw in objc2's abi.
        (build_objc_exception_stuff): Define objc_rethrow_exception_decl.
        * objc-act.h (objc_rethrow_exception_decl): Renamed from
        objc_rethrow_exception (previously unsed).

2007-03-22   Fariborz Jahanian <fjahanian@apple.com>

        Radar 5008110 - part2 (minor tweak)
        * objc-act.c (init_UOBJC2_EHTYPE_decls): Moved up.
        (objc2_build_ehtype_initializer): Call init_UOBJC2_EHTYPE_decls.

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5008110
        * objc-act.c (objc2_build_ehtype_var_decl): Takes two new argument.
        (objc2_objc_exception_attr): New
        (objc2_eh_runtime_type): Generate extern or weak EHTYPE meta-data
        depending on setting of __objc_exception__ attribute.
        (generate_v2_shared_structures): Generate EHTYPE meta-data depending on setting
        of __objc_exception__ attribute.

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4951324
        * objc-act.c (objc2_eh_runtime_type): Remove call to
        init_UOBJC2_EHTYPE_decls.
        (objc_init_exceptions): Call init_UOBJC2_EHTYPE_decls here.
        (objc2_build_extern_decl_catch_object): New
        (objc_begin_catch_clause): Call objc2_build_extern_decl_catch_object
        to declare objc2's new typeinfo declarations.

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4995967
        * objc-act.c (objc_begin_catch_clause) Assume 'id obj' for
        the @catch (...) expression.

2007-03-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 2848255
        * objc-act.h: New declaratons for objc2 exception APIs.
        * objc-act.c (objc_init): Use objc2_eh_runtime_type with
        -fobjc-zerocost-exceptions for exception type mangling.
        (create_weak_decl): New.
        (objc2_build_ehtype): New.
        objc2_build_ehtype_initializer): New.
        (objc2_build_ehtype_var_decl): New.
        (objc2_valid_objc_catch_type): New.
        (objc2_eh_runtime_type): New.
        (objc_init_exceptions): New objc2 exception initialization,
        declare __objc_personality_v0 personality function.
        (objc_begin_catch_clause): Add support for objc2 catch ABI and
        new @catch(...) syntax.
        (objc2_liteweight_finish_try_stmt): New.
        (objc_finish_catch_clause): Add support for insertion of
        new control for objc2 catch.
        (objc_build_throw_stmt): Now calls objc2_build_throw_call.
        (objc2_build_throw_call): New routine to call for the throw ABI.
        (build_objc_exception_stuff): Declares vaiours objc2 new ABI functions.

2007-02-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4894756
        * objc-act.c (STRING_V2_IVAR_OFFSET_PREFIX): New macro.
        (objc_v2_ivar_reference): New routine.
        (objc_strip_off_indirection): Don't strip off an objc2 ivar
        reference tree.
        (objc_is_ivar_reference_p): Check for objc2 ivar tree.
        (objc_generate_write_barrier): Added support for generation
        of write barrier for new objc2 ivar reference tree.
        (objc_class_visibility): Use STRING_V2_IVAR_OFFSET_PREFIX.

2007-02-06  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4966565
        * objc-act.c (get_category_base_class_impl): New.
        (lookup_accessor_in_base_class_impl): New.
        (objc_gen_property_data): Further look into base class
        implementation before issuing warning on unimplemented
        accessor.

2007-02-06  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4963113
        * objc-act.c (check_methods_accessible): Do not warn of unimplemmented

2007-02-06  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4968128
        * objc-act.c (strip_end_colon): New
        (finish_class): Call strip_end_colon to strip ':'
        for setter method name declaration.

2007-02-06  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4959107
        * objc-act.c (objc_build_getter_call): Lookup in protocol list also.

2007-02-06  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4951615
        * objc-act.h (IVAR_PUBLIC_OR_PROTECTED): New macro.
        * objc-act.c (ivar_offset_ref): Use IVAR_PUBLIC_OR_PROTECTED to
        decide if 'ivar' offset variable is 'private extern' or not.
        (add_instance_variable): Set IVAR_PUBLIC_OR_PROTECTED flag.

2007-02-06  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4954480
        * objc-act.c (objc_v2_build_ivar_ref): Check for bad 'ivar' use.

2007-02-06  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4949034
        * objc-act.c (objc_init): Set default setting
        for flag_objc_call_cxx_cdtors.

2007-02-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4923634
        * objc-act.c (finish_objc): Use correct value for objc2's
        CLS_HAS_CXX_STRUCTORS flag.

2007-02-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4945770
        * objc-act.c (objc_build_struct): Check for corner cases before
        building the TYPE_OBJC_INFO tree list.

2007-02-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4897159
        * objc-act.c (objc_synthesize_new_setter): Get the first argument
        of setter in a fail-safe manner.

2007-02-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4899564
        * objc-act.c (finish_class): Diagnose __weak on 'retain'/'copy'.

2007-02-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4903391
        * objc-act.c (objc_common_type): Take a new value for argno
        for property @synthesize type comparison.
        (objc_declare_property_impl): Call objc_compare_types to
        compare ivar and property's type according to objc's type
        conversion rules.

2007-02-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4879524
        * objc-act.c (objc_add_property_variable): typo in warning fixed.

2007-02-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4781080
        * objc-act.c (objc_finish_message_expr): Use umsg_fixup_decl for
        float/double returning methods.

2006-12-18  Fariborz Jahanian <fjahania@apple.com>

	Radar 4888238
	* objc-act.c (generate_objc_image_info): Declare _OBJC_IMAGE_INFO
	as a local symbol.

2006-12-15  Fariborz Jahanian <fjahania@apple.com>

        Radar 4449535
        * objc-act.c (objc_impl_forwardInvocation): New
        (check_protocol): Call objc_impl_forwardInvocation

2006-12-16  Fariborz Jahanian <fjahania@apple.com>

        Radar 4838528
        * objc-act.c (objc_setter_func_call): Check type of
        setter method.

2006-12-14  Fariborz Jahanian <fjahania@apple.com>

        Radar 4841013
        * objc-act.h (PROPERTY_ASSIGN): Modified
        * objc-act.c (objc_add_property_variable): No 'assign'
        warning for 'readonly' property decl.

2006-12-14  Fariborz Jahanian <fjahania@apple.com>

        Radar 4712415
        * objc-act.c (objc_add_property_variable): Carry deprecated attribute
        into property node.
        (objc_add_property_setter_method): Carry deprecated attribute from
        property node into instance method node.
        (finish_class): Ditto

2006-12-14  Fariborz Jahanian <fjahania@apple.com>

        Radar 4854605
        * objc-act.c (objc_finish_foreach_loop): Set iterator
        to nil.

2006-12-14  Fariborz Jahanian <fjahania@apple.com>

        Radar 4855821
        * objc-act.c (objc_add_property_variable): Don't warn if 'assign'
        storage attribute is explicit.

2006-12-13  Fariborz Jahanian <fjahania@apple.com>

        Radar 4531086
        * objc-act.c (OBJC_WARN_OBJC2_FEATURES): New macro to warn on
        use of objc2 features for older OS's.
        (objc_init): Warn
        (objc_add_property_variable): Warn
        (objc_build_foreach_components): Warn

2006-12-13  Fariborz Jahanian <fjahania@apple.com>

        Radar 4862848
        * objc-act.c (OBJC_FLAG_OBJC_ABI): define macro if undefined.
        (objc_init): Use OBJC_FLAG_OBJC_ABI
        (objc_is_public): Error recovery found by accident.

2006-12-11  Fariborz Jahanian <fjahania@apple.com>

        Radar 4869979
        * objc-act.c (objc_type_has_bycopy_attr): New
        (objc_diagnose_bycopy_type): New
        (objc_add_method_declaration): Call objc_diagnose_bycopy_type

2006-12-07  Fariborz Jahanian <fjahanian@apple.com>

	Addendum to Radar 4810587

	* objc-act.c (generate_objc_image_info): Remove what was done
	for 4.0 and replace it with force symbol generation for
	_OBJC_IMAGE_INFO object.

2006-12-01  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4859096
	* objc-act.c (objc_property_call): New function.

2006-11-17  Fariborz Jahanian <fjahania@apple.com>

        Radar 4843145
        * objc-act.c (objc_visibly_hidden_class): Removed.
        (objc_class_visibility): New
        (objc_create_global_decl_for_class): New
        (ivar_offset_ref): Call objc_create_global_decl_for_class.
        (generate_v2_shared_structures): Call 
        objc_create_global_decl_for_class.
        (objc_warn_on_class_attributes): Don't warn on "default"
        visibility either.

2006-11-10  Fariborz Jahanian <fjahania@apple.com>

	Radar 4829803
	* objc-act.c (objc_is_gcable_type): Make quick return
	of C++'s unknown type.

2006-11-09  Fariborz Jahanian <fjahania@apple.com>

        Radar 4810609
	* objc-act.c (objc_init): Set flag_objc_gc if 
	flag_objc_gc_only is set.
	(generate_objc_image_info): For generate_objc_image_info
	flag bits are 11x with flag_objc_gc_only.

2006-11-08  Fariborz Jahanian <fjahania@apple.com>

        Radar 4810587
	* objc-act.c (finish_objc): Generate objc section info.
	in all cases.
	(generate_objc_image_info): Force zeros in objc section not to
	go to bss section. 

2006-11-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4781080 (part 2)
	* objc-act.c (synth_module_prologue): Removed TARGET_i386 switch.
	(objc_finish_message_expr): Call objc_fpreturn_msgcall in new place.
	(build_objc_method_call) : Ditto

2006-11-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4781080
	* objc-act.c (objc_finish_message_expr): Call objc_fpreturn_msgcall
	(build_objc_method_call) : Ditto

2006-11-03  Fariborz Jahanian  <fjahanian@apple.com>

        Radar 4805612
	* objc-act.c (objc_is_public): Check for accessibility of 'ivar'
	in a c-function nested in an objective-c class.

2006-11-02  Fariborz Jahanian  <stuart@apple.com>

        Radar 4817072
	* objc-act.c (objc_lookup_property_ivar): New
	(objc_synthesize_new_getter, objc_synthesize_new_setter): 
	Call objc_lookup_property_ivar.
	(objc_declare_property_impl): Remove code which diagnosed missing ivar
	and inserted it (too soon).
	
2006-11-02  Fariborz Jahanian <fjahania@apple.com>

	Radar 4815054
	* objc-act.c (finish_class): Change text of diagnostic.
	
2006-11-02  Fariborz Jahanian <fjahania@apple.com>

	Radar 4815061
	* objc-act.c (diagnose_property_mismatch): Warn when readwrite is restricted
	to readonly in derived class.

2006-11-02  Fariborz Jahanian <fjahania@apple.com>

	Radar 4816280
	* objc-act.c (objc_gen_property_data): Warn when @implementation does not
	implemented property.

2006-11-01  Fariborz Jahanian <fjahania@apple.com>

       	Radar 4805321 (new property).

	* objc-act.h (PROPERTY_COPY, PROPERTY_RETAIN,
	PROPERTY_ASSIGN, PROPERTY_READWRITE): Add property macros.
	* objc-act.c (objc_set_property_attr): Add cases for new
	property attrbutes added. 
	(objc_resolve_build_property_setter_name): Add.
	(diagnose_property_mismatch): Add.
	(objc_compare_properties_with_super): Add.
	(objc_synthesize_new_getter): Add. 
	(objc_synthesize_new_setter): Add.
	(objc_declare_property_impl): Add.
	(objc_add_property_variable): Big change to support addition of new
	property declarations.
	(objc_build_getter_call): Several changes to support the new 
	property getter call semantics.
	(objc_setter_func_call): Support for new setter call in 
	new property.
	(objc_v2_build_setter_call): Fix a bug found on the side-line
	when setter is called on 'super'.
	(objc_v2_encode_prop_attr): Added support for new property in the
	metadata for properties.
	(objc_build_aggregate_ivar_layout): Fixed bug found on side line
	when several objective-c property test cases compiled as objective-c++.
	(objc_v2_merge_property): Added support for new property merge of data.
	(objc_finish_message_expr): Better diagnostic for new property error.
	(lookup_method_static): Added argument to facilitate new property lookup.
	(objc_merge_proto_properties_in_class): Added support for new property
	and diagnosis when merging protocol properties into adoptin class.
	(objc_gen_property_data): Added supprt for synthesis of getter
	or setter in new property.
	(objc_add_internal_ivar): Modified to support synthesis of 'ivar'
	in new property.
	(finish_class): Support for the new property.
	
2006-10-23  Fariborz Jahanian <fjahania@apple.com>

	Radar 4783068
	* objc-act.c (objc_build_ivar_assignment): Turn off Winvalid-offsetof 
	for synthesized null-pointer dereferencing expression.

2006-10-06  Fariborz Jahanian <fjahania@apple.com>

        Radar 4725660
	* objc-act.c (objc_build_getter_call): Check for a valid class.

2006-09-29  Fariborz Jahanian <fjahania@apple.com>

        Radar 4757423
	* objc-act.c (should_call_super_finalize): New flag.
	(objc_finish_message_expr): if [super finalize]
	reset the flag.
 	(start_method_def): flag that method is a 'finalize'
	definition.
	(objc_finish_method_definition): If flag is still true
	then warn.	
	
2006-09-28  Fariborz Jahanian <fjahania@apple.com>

        Radar 4477797
	* objc-act.c (objc_build_struct): Set DECL_IGNORED_P flag in
	'super' class.

2006-09-22  Fariborz Jahanian <fjahania@apple.com>

	Radar 3904139
	* objc-act.c (objc_demangle): Use exclusively
	cxx_printable_name for obj-c++ name demangling.

2006-09-21  Fariborz Jahanian <fjahania@apple.com>

        Radar 4695274
	* objc-act.c (objc_add_internal_ivar): Insert property ivar before
	c++'s inserted type_decl field node.

2006-09-20  Fariborz Jahanian <fjahania@apple.com>

	Radar 4738176
	* objc-act.c (objc_build_compound_setter_call): Set 
	TREE_NO_WARNING on synthesized compound expression.

2006-09-19  Fariborz Jahanian <fjahania@apple.com>

        Radar 4734562
	* objc-act.c (objc_demangle): Takes new argument
	to decide if doing 'pretty' printing or not.
	(objc_printable_name): Pass down previously
	unused argument to objc_demangle.

2006-09-18  Fariborz Jahanian <fjahania@apple.com>

        Radar 4667060
        * objc-act.c (objc_finish_foreach_loop): Add support for
        setting of foreach loop controlling variable to 'nil' on
        normal loop exit.

2006-09-15  Fariborz Jahanian <fjahania@apple.com>

        Radar 4727659
	* objc-act.c (really_start_method): Copy 'noreturn'
	attribute flag into FUNCTION_DECL node.

2006-09-14  Fariborz Jahanian <fjahania@apple.com>

        Radar 4724822
	* objc-act.c (lookup_property): Check for incomplete
	class.

2006-09-11  Fariborz Jahanian <fjahania@apple.com>

	Radar 4727191
	(objc_build_compound_setter_call): Set DECL_SEEN_IN_BIND_EXPR_P
	on Dupe'd local temp node.

2006-09-11  Fariborz Jahanian <fjahania@apple.com>

        Radar 4625843 - part2
	* objc-act.c (object_setProperty_bycopy): New.
	(synth_module_prologue): Remove prototype declaration of
	object_getProperty_bycopy and object_setProperty_bycopy builtins.
	(objc_build_getter_retval): Check for existance of 
	umsg_getProperty_bycopy prototype.
	(objc_synthesize_getter): Build prototype declaration for 
	umsg_getProperty_bycopy.
	(objc_build_setter_stmt): Check for existance of 
	umsg_setProperty_bycopy.
	(objc_synthesize_setter): Build prototype declaration for 
	umsg_setProperty_bycopy.	

2006-09-07  Fariborz Jahanian <fjahania@apple.com>

        Radar 4660569
	* objc-act.c (objc_synthesize_getter): Look up for accessors in categories
	before issuing the warning.
	* (objc_synthesize_setter): Ditto.

2006-09-07  Fariborz Jahanian <fjahania@apple.com>

	Radar 4719165
	* objc-act.c (setup_string_decl): In new objc2 abi use
	NSConstantString metadata in setting up the constant
	string structure.

2006-09-01  Fariborz Jahanian <fjahania@apple.com>

        Radar 4712269
        * objc-act.c (objc_build_compound_incr_decr_setter_call): New.
        (objc_v2_build_incr_decl_setter_call): New.
        (objc_build_incr_decr_setter_call): New.

2006-08-31  Fariborz Jahanian  <fjahanian@apple.com>

        Radar 4712188
	* objc-act.c (objc_build_compound_setter_call): Set
	TREE_NO_WARNING to suppress c++ warning.

2006-08-31  Fariborz Jahanian  <fjahanian@apple.com>

        Radar 4697411
        * objc-act.c (objc_volatilize_component_ref): New function.

2006-08-29  Fariborz Jahanian  <fjahanian@apple.com>

        Radar 4705298 
	* objc-act.c (objc_visibly_hidden_class): New.
	(ivar_offset_ref): Select function to declare the symbol
         according to setting of the 'visibility' attribute.
	(generate_v2_shared_structures): Ditto.
	(objc_warn_on_class_attributes): Recognize 
	visibility("hidden") setting attribute on a class.
	
2006-08-29  Fariborz Jahanian <fjahania@apple.com>

	Radar 4705214
	* objc-act.c (build_v2_class_template): Move 'superclass' from 
	'class_ro_t' to 'class_t' metadata.
	Move 'ro' field to last of 'class_t's data member.
	(build_class_t_initializer): Corresponding changes to initialization 
	of the fields.
	(build_class_ro_t_initializer): Corresponding changes to initialization 
	of the fields.
	(generate_v2_shared_structures): Caller of build_class_t_initializer
	and build_class_ro_t_initializer with new argument list.

2006-08-28  Fariborz Jahanian <fjahania@apple.com>

	Radar 4702359
	* objc-act.c (generate_v2_shared_structures): instanceStart, instanceSize
	is now sizeof (struct class_t).

2006-08-25  Fariborz Jahanian <fjahania@apple.com>

        Radar 4689268
	* objc-act.c (start_class): On duplicate class implementation
	error, return the old class for graceful recovery.

2006-08-25  Fariborz Jahanian <fjahania@apple.com>

        Radar 4699834
	* objc-act.c (synth_module_prologue): Removed _rtp suffix from 
	objc_msgSend_fixup_rtp and variants.

2006-08-25  Fariborz Jahanian <fjahania@apple.com>

        Radar 4698856
	* objc-act.c (synth_module_prologue): Initialization of UOBJC_V2_CACHE_decl,
	UOBJC_V2_VTABLE_decl moved.
	(build_empty_cache_vtable_vars): New routine to declare UOBJC_V2_CACHE_decl
	and UOBJC_V2_VTABLE_decl.
	(generate_v2_shared_structures): Call build_empty_cache_vtable_vars.

2006-08-24  Fariborz Jahanian <fjahania@apple.com>

        Radar 4695101
	* objc-act.h (PROTOCOL_IMPL_OBJ): Removed.
	* objc-act.c (build_v2_class_template): weakIvarLayout is the new
	field.
	(build_class_ro_t_initializer): Takes weakIvarLayout as new
	argument and initializes the 'weakIvarLayout' field.
	(generate_v2_shared_structures): Construct and pass ivarLayout and
	weakIvarLayout to build_class_ro_t_initializer.
	(generate_v2_protocols): Construct property table and pass its 
	pointer to build_protocol_initializer.

2006-08-24  Fariborz Jahanian <fjahania@apple.com>

        Radar 4695109
	* objc/objc-tree.def (PROTOCOL_IMPLEMENTATION_TYPE): Removed.
	* objc-act.c (objc_protocol_implementation): Now just issue error.
	(build_v2_protocol_template): New fields for optionalInstanceMethods and
	optionalClassMethods added to protocol_t, First field renamed to 'isa'.
	(generate_v2_protocol_references): No longer needed code for implementation
	of protocols is removed.
	(generate_method_descriptors): optional method list pointers must have
	unique names.
	(build_protocol_initializer): Routine modified to accomodate initialization
	of new and modified fields in 'struct protocl_t'.
	(generate_v2_method_descriptors): Routine takes a new 'is_optional' argument and
	uses that to set values for UOBJC_PROTOCOL_OPT_CLS_METHODS_decl and
	UOBJC_PROTOCOL_OPT_NST_METHODS_decl variables.
	(generate_v2_category): Remove last argument in call to generate_v2_protocol_list.
	(objc_add_to_protocol_list_chain): Changed global_protocol_decl to
	protocol_decl to reflect that it is no longer global.
	(build_protocollist_translation_table): Pointer to protocol meta-data is now local.
	(build_v2_protocol_reference): Variable which holds protocol meta-data is now
	local.
	(generate_v2_protocols): Remove conditional on variable being extern.
	Code added for encoding optional methods.
	(objc_build_protocol_expr): build_v2_protocol_reference takes one less argument.

2006-08-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4491211
	* objc-act.c (build_objc_method_call): Method return type
	must be complete (instantiated) before determining if it is
	memory bound.

2006-08-17  Fariborz Jahanian

        Radar 4590221
	* objc-act.c (OFFS_MSGSEND_FAST, OFFS_ASSIGNIVAR_FAST): Moved to
	darwin.h.
	(synth_module_prologue): Replace POWERPC64 with check for OFFS_MSGSEND_FAST flag.
        Move setting of umsg_fpret_decl to the top.
	Remove setting of flag_objc_direct_dispatch.
	(objc_build_ivar_assignment): Use objc_assign_ivar_decl unconditionally. 
	(build_next_objc_exception_stuff): Replace TARGET_POWERPC with check
	for OFFS_ASSIGNIVAR_FAST flag. Remove setting of objc_assign_ivar_fast_decl
	in favor of setting of objc_assign_ivar_decl in both branch.
	(build_objc_method_call): Use umsg_decl unconditionally.
	* objc-act.h: Remove umsg_fast_decl and objc_assign_ivar_fast_decl decl.
	
2006-08-16  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4660579
	* objc/objc-act.c (objc_add_property_setter_method): New.
	(objc_add_property_variable): Resolve conflict between
	'readonly' interface property and writable implementation
	property.
	(is_property): Removed (unrelated to this radar).
	(finish_class): Call objc_add_property_setter_method instead of
	inlined code.

2006-08-15  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4668023
	* objc/objc-act.c (build_property_reference): Removed.
	(objc_lookup_ivar): Supert for property name access without
	use of 'self' qualifier is removed.

2006-08-14  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4666559
	* objc/objc-act.c (objc_continue_interface): Postpone outputting
	debug info. for objective-c classes.
	(objc_finish_interface): Output debug info. for objective-c classes.
	(build_private_template): Postpone setting TREE_USED flag until after
	debug info. is output.

2006-08-04  Mike Stump  <mrs@apple.com>

	Radar 4669052
	* Make-lang.in (objc-parse.y): Ensure that we don't rebuild.

2006-08-03  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4664707
	* objc/objc-act.c (objc_create_named_tmp_var): Takes extra argument.
	(objc_build_compound_setter_call): New.
	(objc_v2_build_setter_call): Call objc_build_compound_setter_call to
	generate compound version of call to setter function.
	(objc_build_setter_call): Ditto.
	(objc_build_foreach_components): call objc_create_named_tmp_var
	with prefix argument.
		
2006-08-01  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4660366
	* objc/objc-act.c (objc_build_setter_stmt): Set flag_objc_gc so
	objc_assign_weak is generated on 'weak' setter ivar.

2006-08-01  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4660569
	* objc/objc-act.c (objc_synthesize_getter): Warn if no synthesized 
	or user getter.
	(objc_synthesize_setter): Warn if no synthesized or user setter.

2006-07-31  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4653319
	* objc/objc-act.c (objc_add_property_variable): Issue diagnostic if class has no
	ivar attribute and implementation does not refer to a specific 'ivar' in the
	interface.
	(objc_build_getter_call): Support super.property.
	(nested_ivar_lookup): New.
	(objc_gen_one_property_data): Call nested_ivar_lookup to look for ivar
	in current and base class hierarchy.
	(objc_build_getter_retval): Ditto.
	(objc_build_setter_stmt): Ditto.
	(finish_class): Ditto.

2006-07-28  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4656712
	* objc/objc-act.c (objc_build_setter_stmt): Recover when synthesized 
	argument not found.
	(finish_class): Issue error when user declared accessor and compiler 
	is trying to synthesize one.

2006-07-26  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4649718, 4651088
	* objc/objc-act.c (objc_add_property_variable): err on bad property
	declarations.

2006-07-26  Fariborz Jahanian <fjahanian@apple.com>
    
        Radar 4653242
	* objc/objc-act.c (objc_gen_one_property_data): Check for missing 
	setter/getter in @implementation is removed.

006-07-26  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4649701
	* objc/objc-act.c (objc_gen_one_property_data): Also look in
	class's protocol-list for user-declared setter/getter names.

006-07-25  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4649663
	* objc/objc-act.c (objc_build_getter_retval): Remove meth_decl argument.
	Use argument passed after 'self', called '_cmd' to build getter call.
	(objc_synthesize_getter): Remove method_decl argument in call to
	objc_build_getter_retval.
	(objc_build_setter_stmt): Remove meth_decl argument.
        Use argument passed after 'self', called '_cmd' to build setter call.
	(objc_synthesize_setter): Remove method_decl argument in call to
	objc_build_setter_stmt.

006-07-25  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4590191
	* objc/objc-act.c (objc_init_exceptions): Issue warning on use of 
	@try/@catch and for Mac OS X version 10.2 and lower.

006-07-19  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4638467
	* objc/objc-act.c (objc_demangle): Changed argument to tree decl.
	call c++'s cxx_printable_name for demangling c++ names. 
	(objc_printable_name): Pass tree decl for the name to objc_demangle.

006-07-18  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4592503
	* objc/objc-act.c (objc_checkon_weak_attribute): New routine to check for
	__weak attribute use on declarations.

2006-07-17  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4631814
	* objc-act.c (build_property_reference): Preserve original 'self' tree in
	generated call to property's 'getter'.

2006-07-17  Fariborz Jahanian <fjahanian@apple.com>
	Radar 4621020 - small change
	* objc-act.c (objc_set_property_attr): Supprt 'weak' attribute
	unconditionally.

2006-07-14  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4621020
        * objc-act.c (objc_set_property_attr): Gather 'weak' attribute setting.
        (objc_add_property_variable): 'weak' attribute setting into property node.
        Diagnose a variety of mis-use.
        (objc_v2_encode_prop_attr): Encode 'weak attribute as 'W'.
	( objc_synthesize_getter): Call to objc_generate_weak_read for possible
	call to objc_read_weak of a __weak return ivar.
        (objc_add_internal_ivar): For 'weak' property, declare inserted 'ivar' as
	__weak.
	(finish_class): Diagnose if 'weak', 'bycopy' and 'byref' are not mutually
	exclusive. On an existin 'ivar', make sure that it is declared weak.	
	
2006-07-13  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4625843
	* objc-act.c (objc_add_property_variable): Issue diagnostic if
	category's 'ivar' attribute does not include an ivar name.
	(synth_module_prologue): Generate protocol qualified type for
	object_getProperty_bycopy and object_setProperty_bycopy.
	(finish_class): For categories, look for 'ivar' name in its
	class.

2006-07-12  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4625635
	* objc-act.c (objc_add_property_variable): Make 'byref' the dafault
	attribute for pointer-to-object properties.

2006-07-11  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4623423
	* objc-act.c (objc_type_valid_for_messaging): 'Class' is a valid
	selector type as well.

2006-07-10  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4398221
	* objc-act.c (lookup_and_install_protocols): Takes a new
	argument and warns on use of incomplete protocol in a 
	class definition.
	(objc_get_protocol_qualified_type, 
	 start_class, start_protocol): Pass the extra argument 'true' 
	or 'false' in call to lookup_and_install_protocols.

2006-06-29  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4585769
	* objc-act.h: Variety of new global declarations.
	* objc-act.c (OBJC_VERSION): Bump version to 7.
	(ivar_bytepos_cmp): New call back routine for qsort.
	(objc_build_aggregate_ivar_layout): New routine to compute
	byte offset position of 'gc' scannable and 'gc' skipped
	ivar fields.
	(objc_build_ivar_layout): New routine to build the layout map of
	'gc' skipped and scanned ivar fields. 
	(build_objc_protocol_extension_template): New.
	(generate_objc_protocol_extension): New.
	(build_objc_class_ext_template): New.
	(generate_objc_class_ext): New.
	(synth_module_prologue): Moved build of "struct _prop_list_t*" type
	uncoditional.
	(generate_v2_protocol_references): Type of "isa" is now
	"struct _objc_protocol_extension*".
	(generate_method_descriptors): takes on a new argument used to
	generate "optional" method descriptors.
	(generate_protocol_references): Calls generate_method_descriptors with
	extra argument.
	(generate_protocols): Build "objc_protocol_extension" metadata.
	(build_protocol_initializer): Set the "isa" field of objc_class to
	"_objc_protocol_extension" metadata.
	(build_category_template): New fields added to "objc_category". They are
	objc_category.size and objc_category.instance_properties.
	(build_v2_class_template): objc_class has two new fields 
	objc_class.ivar_layout and objc_class.ext	
	(build_class_template): Accomodate build of these two new
	fields.
	(build_category_initializer): Initialize the two new field for
	"objc_category".
	(build_shared_structure_initializer): Takes new arguement for the
	new field objc_class_ext addded to objc_class.
	Calls objc_build_ivar_layout to get the tree to fill in objc_class.ivar_layout.
	Initializes objc_class.objc_class_ext.	
	(generate_category): Pass UOBJC_V2_PROPERTY_decl to build_category_initializer.
	(generate_shared_structures): Pass extra argument to build_shared_structure_initializer.
	(generate_v2_protocols): Pass extra argument to build_protocol_initializer.
	(finish_objc): Generate declaraton for "objc_class_ext" metadata.
	Call generate_v2_property_tables in default (current) abi.
		
2006-06-29  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4577849
	* objc-act.c: (encode_protocol_list): New routine to encode
	protocol list.
	(encode_pointer): Call encode_protocol_list.

2006-06-29  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4606233
	* objc-act.c: (really_start_method): Remove check for missing
	attribute on @implementation methods.

2006-06-26  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4591909
	* objc-act.h: New declarations to supprot the new
	property spec.
	* objc-act.c: (objc_set_property_attr): Changed to support
	new attributes and change in the 'ivar' attribute spec.
	(objc_add_property_variable): Ditto.
	(objc_add_property_variable): Changed to support the new attribute
	semantics and issue a variety of errors for their mis-use.
	(objc_v2_encode_prop_attr): Encoding of attributes had changed.
	(objc_v2_merge_property): Use to be called objc_v2_merge_dynamic_property.
	(synth_module_prologue): Added declaration of bycopy and byref objc2
	library calls.
	(objc_gen_one_property_data): Removed generation of internal 'ivar'.
	(objc_build_getter_retval): New.
	(objc_synthesize_getter): Call objc_build_getter_retval to get the getter's
	ivar.
	(objc_build_setter_stmt): New.
	(objc_synthesize_setter): call objc_build_setter_stmt.
	(objc_gen_property_data): Do the merge of class's property
	list into the implementation first.
	(objc_add_internal_ivar): New.
	(finish_class): A variety of semantics check for the new
	and improved property attributes.
		
006-06-24 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4591756
        * objc-act.c (objc_build_weak_read): Pass address of 'id' expr
        to objc_read_weak.
        (objc_remove_weak_read): dereference 'exp'.
        (objc_strip_off_indirection): New.
        (objc_generate_write_barrier): Strip off tree
        added in objc_remove_weak_read.
        (build_next_objc_exception_stuff): Type of objc_read_weak is now
        objc_read_weak(*id).

2006-06-12 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4582997
	* objc-act.c (is_property): Lookup property in the interface,
	not in its implementation.

2006-06-12 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4582204
	* objc-act.c (build_message_ref_translation_table): Initializer tree-list
	is fixed.

2006-06-12 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4581680
	* objc-act.c (objc_start_method_definition): Generate nonlazy section
	for 'hybrid' abi as well.

2006-06-08 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4359757
	* objc-act.h: Several declaration of new hash tables.
	* objc-act.c (hash_ident_lookup, hash_ident_enter): New. 
	(get_objc_string_decl): Replaces linear search with hash lookup.
	(add_objc_string): Ditto.
	(build_next_runtime_selector_reference): New. replaces 
	build_selector_reference to do hash lookup instead of
        linear search.
	(objc_finish_message_expr): Call the new 
	build_next_runtime_selector_reference.
	(hash_init): Initialize new hash tables.
	(class_method_hash_lookup): New routine to do a scope qualified
	hash lookup.
	(add_class_method_hash): New to add to methods to hash table.
	(fast_lookup_method): Replaces lookup_method to do hash look
	up of methods.
	(lookup_method_static): Call fast_lookup_method instead of
	lookup_method.
	(objc_add_method): Ditto.
	(check_methods): Ditto. Also LIST argument is removed.
	(check_protocol): Remove unneeded argument from check_methods
	calls.
	(finish_class): Ditto.

2006-06-09 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4292049
	* objc-act.c (objc_generate_write_barrier): Turn on warning on pointer
	arithmatic of gc objects.

2006-06-07 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4576123
	* objc-act.c (build_v2_property_table_initializer): Set/Reset
	generating_instance_variables.

2006-06-02 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4568791
	* objc-act.c (objc_method_inherited): New.
	(check_methods): Warn only if method is not
	declared in the inheritance hierarchy.
	(check_protocol, check_protocols): Take interface as
	new argument and pass it down to check_methods.

2006-05-31 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4563333
	* objc-act.c (objc_finish_foreach_loop): Set input_location to
	foreach's location

2006-05-31 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4564386
	* objc-act.c (objc_merge_proto_properties_in_class): New.
	(finish_class): Merge properties from protocol(s) of the
	class into the class.

2006-05-30 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4476365
	* objc-act.c (encode_type): Encode c++'s reference type.

2006-05-30 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4547918
	* objc-act.c (objc_finish_message_expr): Issue warning on sending
	message to a forward class declaration.

2006-05-25 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4561192
	* objc-act.c (objc_set_alignment_attribute):
	(build_class_list_address_table, build_category_list_address_table,
	build_protocol_list_address_table): Set the alignment attribute to
	align to array's element alignment.

2006-05-24  Mike Stump  <mrs@apple.com>

	* objc-act.c (JBLEN): Update for x86_64.

2006-05-23 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4559114
	* objc-act.h (PROTOCOL_IMPL_OBJ): New macro for 
	PROTOCOL_INTERFACE_TYPE nodes.
	* objc-act.c (generate_v2_property_tables): Takes a new argument to
	know if generating metadata for protocol's declared properties.
	(build_v2_protocol_reference): Changed name of last argument.
	For each protocol implementation, generate its meta-data.
	(generate_v2_protocols): Use the property meta-data name saved
	in its PROTOCOL_INTERFACE_TYPE node.
	
2006-05-23 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4558088 - revised
	* objc-act.c (objc_add_property_variable): Diagnose mismatched
	property declarations by calling comptypes.

2006-05-23 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4558088
	* objc-act.c (objc_add_property_variable): Diagnose mismatched
	property declarations.

2006-05-22 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4557598
	* objc-act.c (objc_add_property_variable): Fix typo.
	(synth_module_prologue): Declare objc_msgSend_fpret_fixup_rtp
	function.
	(objc_finish_message_expr): Use it.
	* objc-act.h: Declare umsg_fpret_fixup_decl.

2006-05-19 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4550413 (optional protocol)
	* objc-act.c (lookup_method_in_protocol_list): Also search for methods 
	in list of optional protocols.

2006-05-18 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4548636 (objc attributes on class)
	* objc-act.h (CLASS_ATTRIBUTES): New macro to access interface's
	attribute list.
	* objc-act.c (objc_warn_on_class_attributes): New.
	(objc_attach_attrs_to_type): New.
	(objc_start_class_interface): takes attributes as new argument
	and sets it to class's CLASS_ATTRIBUTES field.
	(build_private_template): Updates 'record' of the class with 
	unavailable/deprecated attributes.
	(add_category): Warn on use of deprecated class in declaring a new
	category.
	(start_class): Warn on use of a deprecated class as a super class.	

2006-05-17 Fariborz Jahanian <fjahanian@apple.com>

	radar 4551602
	* objc-act.c (continue_class): Use ggc_alloc_cleared to allocate
	and clear out 'struct imp_entry' objects.
	Change radar number 5433974 to 4533974 in apple local markers.

2006-05-15 Fariborz Jahanian <fjahanian@apple.com>

        radar 4529765
	* objc-act.c (objc_delta_format_args): New.
	* (objc_any_recognized_attribute): New.
	* (objc_start_method_definition): Warn on attribute decl.
	on method implementation.
	* (objc_decl_method_attributes): Call objc_any_recognized_attribute.
	
2006-05-10 Fariborz Jahanian <fjahanian@apple.com>

	radar 4180592
	* objc-act.c (objc_finish_message_expr): Check for error node.

2006-05-09 Fariborz Jahanian <fjahanian@apple.com>

	radar 4538105
	* objc-act.c (objc_finish_foreach_loop): Mark element 
	selector as being used.

2006-05-08 Fariborz Jahanian <fjahanian@apple.com>

	radar 4533107
	* objc/objc-act.c (lookup_property_in_list): Lookup
	further in main property list.

2006-05-08 Fariborz Jahanian <fjahanian@apple.com>

        radar 4540451
	* objc/objc-act.c (create_ivar_offset_name): Change ivar offset 
	symbol name.

2006-05-08 Fariborz Jahanian <fjahanian@apple.com>

	radar 4535676
	* objc/objc-act.c (objc_v2_get_class_super_reference,
	build_classlist_super_reference_decl,
	build_classlist_super_translation_table): New.
	(get_super_receiver): Build classlist_super_ref_chain or
	metaclasslist_super_ref_chain class list chain.
	(finish_objc): Build the class list table found in
	classlist_super_ref_chain/metaclasslist_super_ref_chain
	chains.
	* objc-act.h: (classlist_super_ref_chain, metaclasslist_super_ref_chain):
	New declarations.

2006-05-05 Fariborz Jahanian <fjahanian@apple.com>

        radar 4533974 - ObjC new protocol
	* objc/objc-tree.def (PROTOCOL_IMPLEMENTATION_TYPE): New tree node.
	* objc/objc-act.h: Bunch of new global decls and enums.
	* objc/objc-act.c (objc_add_to_protocol_list_chain,
	build_protocol_list_address_table, build_protocollist_translation_table,
	objc_v2_get_protocol_reference, build_protocollist_reference_decl): New.
	(objc_protocol_implementation): Top-level routine to implement new
	protocol meta-data generation syntax.
	(synth_module_prologue): Remove build of getProtocol_decl function.
	(build_v2_protocol_template): New 'version' field added to protocol_t
	table.
	(generate_v2_protocol_references): Takes a new argument to generate
	only the first protocol if argument is true.
	(build_protocol_initializer): Added initialization for 'version'
	field.
	(build_category_initializer): Fixed up a initializer type for the
	'protocol_list_ptr' field initialization which caused c++ to complain.
	(generate_v2_category): New argument addded to call to
	generate_v2_protocol_references.
	(generate_v2_shared_structures): Ditto.
	(build_v2_protocol_reference): Takes a new argument to generate extern
	or global variable for protocol meta-data table.	
	(generate_v2_protocols): Generate extern variables for protocol meta-data
	indirectly referenced in a generated protocol meta-data. Add generated 
	protocol meta-data to the list for later generation.
	(objc_build_protocol_expr): Generate new abi for @protocol(proto)
	expression.
	(start_class): For PROTOCOL_IMPLEMENTATION_TYPE install protocols
	to its list.
	(continue_class): Add protocol implementation to the to-be-implemented
	list.	
	(finish_class): Ignore PROTOCOL_IMPLEMENTATION_TYPE.
	(finish_objc): Generate meta-data table. Generate content of
	__protocol_list and __protocol_refs section.
			   
2006-05-01 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4531482
	* objc/objc-act.c (generate_objc_symtab_decl): Generate
	_OBJC_SYMBOLS metadata for hybrid abi.
	(finish_objc): Generate MODULE descriptor for hybrid abi.

2006-04-28 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4512786
	* objc/objc-act.c (objc_init_exceptions): Remove warning.

2006-04-26 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4523837
	* objc/objc-act.c (objc_build_getter_call): Restore 'receiver' 
	to its original tree in call tree.

2006-04-26 Fariborz Jahanian <fjahanian@apple.com>

        Radar 3803157 (method attributes)
	* objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro.
	* objc/objc-act.c (objc_decl_method_attributes): New.
	(objc_add_method_declaration): Process method's attribute.
	(objc_start_method_definition): Ditto.
	(build_objc_method_call): Inject method attribute into
	built function type.
	(build_v2_build_objc_method_call): Ditto.
	(objc_synthesize_getter): objc_start_method_definition takes
	an extra argument.
	(objc_synthesize_setter): Ditto.
	(really_start_method): Check for consistant attribute
	declaration on method decl. and method def.
	(objc_method_decl): New.

2006-04-19 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4517826
	* objc/objc-act.c (objc_build_getter_call): Check for null tree(s)
	before accessing their fields.

2006-04-12 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4506893
	* objc/objc-act.c (objc_setter_func_call): Set
	in_objc_property_setter_name_context.
	(objc_finish_message_expr): Issue proper error 
	when setter not found and only when property
	is used to call setter.

2006-04-13 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4512937
	* objc/objc-act.c (objc_build_foreach_components): Use an existing
	declaration of 'NSFastEnumerationState' if one is available.

2006-04-10 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4506903
	* objc/objc-act.c (objc_build_getter_call): Lookup property in
	id<protocol>.property as well.

2006-04-12 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4507230
	* objc-act.c (objc_finish_message_expr): Don't warn on 
	calling the internal objc runtime routine.
	(objc_type_valid_for_messaging): New routine to check for valid
	objc object types.
	(objc_finish_foreach_loop): Check for invalid objc objects
	in foreach header.

2006-04-07 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4505126
	* objc-act.c (lookup_property, lookup_property_in_list,
	lookup_property_in_protocol_list): New.
	(objc_build_getter_call): Call lookup_property to find a property.
	Also fix a minor C* property bug uncovered.
	
2006-04-06 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4436866
        (Missing copies attribute)
	* objc-act.h (PROPERTY_COPIES): New field in property node.
	* objc-act.c (objc_set_property_attr): Set property_copies
	flag.
	(objc_add_property_variable): Update field PROPERTY_COPIES
	corresponding to 'copies' attribute.
	(objc_v2_encode_prop_attr): Ancode 'copies' attribute in
	attribute field of metadata.
	(objc_v2_merge_dynamic_property): Merge 'copies' attribute.
	
2006-04-04 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4498373
        (Metadata for objective-c properties)
	* objc-act.h (objc_v2_property_template, UOBJC_V2_PROPERTY_decl,
	prop_names_attr_chain, objc_prop_list_ptr): New global 
	declarations.
	* objc-act.c (build_v2_property_template, build_v2_property_list_template,
	generate_v2_property_tables, build_v2_property_table_initializer, 
	objc_v2_encode_prop_attr, generate_v2_property_list,
	objc_v2_merge_dynamic_property): New functions for property's
	meta-data generation.
	(string_section): prop_names_attr is the new enum for property
	name/attribute strings section.
	(objc_add_property_variable): Fix a latentbug to prevent crash on user
	error.
	(synth_module_prologue): Define a new type for _prop_list_t*.
	(build_objc_string_decl): Add property name/attributes to their own
        list.
	(add_objc_string): Add support for property name/attribute names. 
	(get_objc_string_decl): Add list of property name/attributes among
	those to search for.
	(generate_strings): Generate the property name/attribute data.
	(build_v2_protocol_template): Add the new field "properties"
	to 'struct protocol_t'.
	(build_protocol_initializer): Add the initializer for "properties"
	field.
	(build_v2_category_template): Add the new field "properties"
	to 'struct category_t'.
	(build_category_initializer): Add the initializer for "properties"
	field.
	(build_v2_class_template): Add the new field "properties"
	to 'struct class_ro_t'.
	(build_class_ro_t_initializer): Add the new field "properties"
	to 'struct class_ro_t'.
	(generate_v2_shared_structures): Fixed a latent bug.
	(check_methods): Don't issue error if synthesize declarations
	found in interface don't have an implementation.
	(objc_gen_property_data): Merege 'dynamic' properties into 
	class's implementation.
	(finish_class): Set the context for synthesized instance methods.
	(finish_objc): Call to generate_v2_property_tables to generate
	property metadata.

2006-03-31 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4494634
	* objc-act.c (objc_build_string_object): Call build1 directly.

2006-03-31 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4494634
	* objc-act.c (objc_build_string_object): Suppress strict-alias
	warning when converting to type 'id'.

2006-03-27 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4133425
	* objc-act.c (objc_diagnose_private_ivar): New.

2006-03-22 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4436866
	* objc-act.c (objc_gen_one_property_data): New.
	(objc_gen_property_datae): New.
	(objc_synthesize_getter): New.
	(objc_process_getter_setter): New.
	(objc_synthesize_setter): New.
	(objc_build_property_ivar_name): New.
	(objc_build_property_setter_name): New.
	(objc_v2_build_setter_call): New.
	(objc_setter_func_call): New.
	(build_property_reference): New.
	(match_proto_with_proto): New.
	(is_property): New.
	(finish_class): Generate what needed for property in class
	and category.
	(comp_proto_with_proto): Bulk of code moved to match_proto_with_proto.
	(objc_lookup_ivar): Added support to lookup property name.
	* objc-tree.def (PROPERTY_DECL): New tree node.
	* objc-act.h: Several new macros to access various @property 
	fields.

2006-03-22 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4486614
	* objc/objc-act.c (objc_generate_weak_read): Don't attempt
	to generate 'weak' barriers in templates.

2005-03-10 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4466530
	* objc/objc-act.c (synth_module_prologue): -fobjc-direct-dispatch 
	should be a no-op on ppc64

2005-03-09 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4457381
	* objc/objc-act.c (objc_finish_message_expr): Look for message in
	@class's protocol list.

2005-03-08 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4468456
	* objc/objc-act.c (objc_finish_foreach_loop): 'continue' label belongs 
	to current (inner) while-do loop.

2005-02-28 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4156731
	* objc/objc-act.c (gen_type_name_0): Handle Error reporting of
	nameless types.

2005-02-28 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4441049
	* objc/objc-act.c (objc_v2_bitfield_ivar_bitpos): New routine to
	compute ivar bitfield bit position from start of its starting byte.
	(ivar_offset_ref): ivar bitfield byte position recomputed.

2006-02-15   Fariborz Jahanian <fjahanian@apple.com>

        Radar 4439126
        * objc/objc-act.c (objc_finish_file): call cp_finish_file before
	genertating any meta-data so all instantiation have taken place
	(some metadata (such as selectors) may go missing otherwise).

2006-02-15   Fariborz Jahanian <fjahanian@apple.com>

        Radar 4441551
	* objc/objc-act.c (diagnose_selector_cast): New function definition.

2006-02-14   Fariborz Jahanian <fjahanian@apple.com>

	Radar 4445586
	* objc/objc-act.h: PROTOCOL_LANG_SLOT_ELTS has two new slots.
	(PROTOCOL_OPTIONAL_CLS_METHODS, PROTOCOL_OPTIONAL_NST_METHODS): Renamed to
	reflect the slot they belong to.
	* objc/objc-act.c ((PROTOCOL_OPTIONAL_CLS_METHODS, 
	PROTOCOL_OPTIONAL_NST_METHODS): Ditto.
	
2006-02-14   Fariborz Jahanian <fjahanian@apple.com>

	Radar 4441049
	* objc/objc-act.h: ivar_offset_hash_list new decl.
	* objc/objc-act.c (hash_name_enter, hash_name_lookup): New functions.
	(create_global_decl, create_extern_decl): Use the hash tables for looking
	up the global/extern variables used to represent various meta-data.
	(build_classlist_translation_table, generate_v2_category): Create a 
	new extern variable not global.
	(objc_generate_weak_read): For C++ template expressions type
	is NULL. Ignore such expressions.
	(objc_v2_build_ivar_ref): This routine cannot handle bitfields.
	(build_v2_ivar_t_template, ivar_offset_ref): Use correct type for
	field offsets which match that of the middle-end.
	(hash_init): New hash table initialization.	

2006-02-08   Fariborz Jahanian <fjahanian@apple.com>

	Radar 4437670 (new abi stuff)
	* objc/objc-act.c: Use internale names for pre-defined types
	for the new abi.
	(synth_module_prologue): Declare new builtin function objc_getProtocol.
	(objc_finish_message_expr): Use the new API for @protocol usage.
	(generate_v2_protocol_list): Use correct protocol list name.
	(build_v2_protocol_reference): Ue correct protocol reference name.
	
2006-02-3   Fariborz Jahanian <fjahanian@apple.com>

	Radar 4431864
	* objc/objc-act.c (objc_set_global_decl_fields): New routine to set 
	the flags for a new global declaration.
	(start_var_decl): Call objc_set_global_decl_fields to set the global flags.
	(create_global_decl): Use the pre-existinig extern declaration, if one 
	exists, to declare the new global declaration.

2006-02-02   Fariborz Jahanian <fjahanian@apple.com>

        Radar 4426814
	* objc/objc-act.h (objc_assign_weak_decl, objc_read_weak_decl): New globals
	for two weak function calls; objc_read_weak and objc_assign_weak.
	* objc/objc-act.c (objc_build_weak_read, objc_build_weak_read,
	objc_generate_weak_read, objc_remove_weak_read): New functions defs.
	(objc_build_global_assignment): Takes an added argument for generation
	of 'strong' or 'weak' assignment calls.
	(objc_is_gcable_type): Now returns 1(strong), -1(weak) or 0(neither).
	(objc_is_strong_p): Now returns 1(strong), -1(weak) or 0(neither).
	(objc_generate_write_barrier): Is not capable of generating both
	weak and strong write barriers.
	(build_next_objc_exception_stuff): Declare the new functions.

2006-01-30  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4386773
	* objc/objc-act.c (objc_set_method_opt): New function.
	(objc_start_protocol, objc_finish_interface): Reset 
	objc_method_optional_flag flag.
	(objc_add_method_declaration): Pass on the new 
	flag to objc_add_method.
	(objc_add_method): Add optional methods to new chain in
	the protocol class.
	* objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS, 
	CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol
	class's optional method chains.
	
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.

2006-01-24 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4310884
	* objc/objc-act.c (objc_build_struct): Rebuild TYPE_LANG_SPECIFIC for
	new class type after call to finish_struct.

2006-01-23 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4360146
	* objc/objc-act.h: (metaclasslist_ref_chain): New global declaration.
	* objc/objc-act.c (build_v2_method_list_template): New routine to
	declare "struct method_list_t".
	(objc_v2_get_metaclass_reference): New routine to build list
	of metaclass references.
	(objc_build_internal_classname): Takes new argument to build
	either internal class or metaclass name.
	(synth_module_prologue, objc_get_class_reference, 
	objc_build_protocol_expr, continue_class): Generate new meta-data in 
	hybrid abi as well.
	(init_v2_def_list): Routine is removed.
	(init_objc_symtab): New abi dependent code is removed since objc_symtab is
	not generated in new and hybrid abi.
	(forward_declare_categories): For hybrid abi generate both new and old 
	category meta-data names.
	(generate_objc_symtab_decl, objc_v2_build_ivar_ref, 
	build_private_template, build_super_template, synth_id_with_class_suffix): Add 
	test for hybrid abi.
	(build_classlist_translation_table): New argument to check for generation
	of metaclass reference table.
	(build_method_list_template): Remove dependency on abi flag.
	(generate_v2_dispatch_tables, generate_v2_method_descriptors): Call 
	build_v2_method_list_template.
	(get_super_receiver): For super call in class method add metaclass name to 
	reference chain.
	(finish_objc): Generate new and old metadata/declarations for hybrid abi. 
	Build metaclass reference table.

2006-01-18  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4294910
	* objc/objc-act.c (build_objc_fast_enum_state_type, 
	objc_create_named_tmp_var, objc_finish_foreach_loop, 
	objc_build_foreach_components): New functions.
	(objc_build_component_ref): Made global.
	(synth_module_prologue): Define 'struct __objcFastEnumerationState'
	type and objc_enumerationMutation functions.
	* objc/objc-act.h (objc_fast_enum_state_type, 
	objc_enum_mutation_decl): New declarations.
	
2006-01-18 Fariborz Jahanian <fjahanian@apple.com>

	Radar 4360146
	* objc/objc-act.c (objc_add_to_class_list_chain,
	build_class_list_address_table, objc_add_to_category_list_chain,
	build_category_list_address_table, 
	objc_add_to_nonlazy_category_list_chain, 
	objc_add_to_nonlazy_class_list_chain): New functions.
	(objc_start_method_definition): Insert declaration of class 
	method "load" in one of the __nonlazy_class or __nonlazy_category 
	lists.
	(forward_declare_categories): Change name of category meta-data so
	it ends up in its correct section.
	(synth_forward_declarations): Comment changed.
	(generate_v2_dispatch_tables): Correct name of meta-data
	table for category methods.
	(generate_v2_category): Add to list of pointers in 
	__category_list section.
	(generate_v2_shared_structures): Fix the bug whereby offset of 
	first ivar was not computed correctly. 
	(synth_id_with_class_suffix): Fix the problem with duplicate category 
	symbol names.
	(finish_objc): Generate various new symbol lists. 
	* objc/objc-act.h: Assortment of new global declarations.
		
2006-01-10 Fariborz Jahanian <fjahanian@apple.com>

       Radar 4404766
       * objc/objc-act.c (JBLEN): define 64bit version of this macro as well.

2005-12-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4360146
        * objc/objc-act.c (generate_v2_ivar_lists): Remove generation of class 
	variabe offset for the root of inheritance in new abi.

2005-12-21  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4360146
	* objc/objc-act.c (create_hidden_decl): New.
	(ivar_offset_ref): Visibility of private ivar offset 
	variables must be "hidden".

2005-12-21  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4360146
        * objc/objc-act.c (objc_is_ivar): Perform correct name lookup for
	ivar names when generating ivar offset variables.
	(finish_objc): Don't generate objc_module meta-data in new abi.
	(generate_objc_symtab_decl): Don't generate objc_symtab meta-data 
	in new abi.
	(generate_v2_ivar_lists): Change names of class and instance ivars 
	in new abi so they end up in .data section.
	(generate_v2_dispatch_tables): Change names of method meta-data
	in new abi so they end up in .data section.
	(generate_v2_method_descriptors): Ditto.

2005-12-16  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4360146
	* objc/objc-act.c (ivar_offset_ref): Uniquify ivar offset variable 
	names not based on offect value but based on their name.
	(generate_v2_ivar_lists): Use OBJC_TYPE_NAME macro so c++ works as well.
	(generate_v2_protocol_list): Use objc_v2_protocol_template and not
	objc_protocol_template.
	(build_class_ro_t_initializer): Type of class_ro_t.baseProtocols
	initializer must be protocol_list_t*.
	(generate_v2_protocols): Type of protocol_t.protocol_list 
	initizlier is protocol_list_t *.


	
2005-12-15  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4229905
	* objc/objc-act.c (objc_compare_types): New.

2005-12-09  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4360146

	* objc/objc-act.h (PROTOCOL_LANG_SLOT_ELTS): Bump it by one.
	(PROTOCOL_V2_FORWARD_DECL): Correct its definition.
	(OCTI_V2_CAT_TEMPL): New definition.
	(objc_v2_category_template): New declaration.

	* objc/objc-act.c (OBJC_VERSION): Internal version number is 10
	for objc abi version 2.0.
	(build_classlist_reference): This function is removed.
	(synth_v2_forward_declarations): New
	(init_v2_def_list): New
	(objc_v2_get_class_reference): New
	(objc_build_internal_classname): New
	(build_v2_category_template): New
	(generate_v2_category): New
	(synth_module_prologue): Now build all built-in messaging functions for
	abi version 2.0 as well.
	Build new protocol_t type for abi version 2.0.
	(init_objc_symtab): For abi vesion 2.0, initialize _objc_symtab.defs field 
	to the new definition of ivars.
	(forward_declare_categories): For abi version 2.0 declare a new object
	for category metadata.
	(build_classlist_reference_decl): New name for visible pointer to class_t meta
	data for abi version 2.0.
	(build_classlist_translation_table): Build initializers for each externally 
	visible class reference.
	(objc_get_class_reference): Call objc_v2_get_class_reference to add a new 
	visible class reference to the classlist_ref_chain chain.
	(objc_v2_build_ivar_ref): Remove call to objc_is_public to avoid duplicate
	error reporting.
	(objc_v2_build_ivar_ref): Preserve type of the field on the new abi's
	ivar reference expression.
	(synth_forward_declarations): Remove version 2.0 specfic code (it now goes 
	in its own routine).
	(build_super_template): Build the second field, renamed to "cls", for abi version
	1.0 or 2.0 with different types.
	(ivar_offset_ref): New logic to avoid duplicate generation of offset variables
	with identical offset values.
	(build_v2_ivar_list_initializer): Skip over unnamed bitfields.
	(generate_v2_shared_structures): Remove call to build_classlist_reference.
	(receiver_is_class_object): Search 'classlist_ref_chain' or 'cls_ref_chain'
	list, dependending on the abi, for the identifier node for the referenced class. 	
	(objc_finish_message_expr): New messaging is also generated for abi version 2.0.
	(generate_v2_protocols):  Add class name to the list of visible classes whose 
	metadata address must be exported.
	(objc_build_protocol_expr): When generating @protocol expression, for abi version 2.0,
	the version 2.0 protocol meta-data need be generated.
	(continue_class): Separate the work depending on abi version.
	(objc_declare_protocols): Initialize PROTOCOL_V2_FORWARD_DECL.
	(start_protocol): Ditto.
	(get_super_receiver): In code generation for [super self], set super_t.cls field properly
	for abi version 2.0.
	(finish_objc): Top-level meta-data generation routine. Depending on abi version, call the
	version 1.0 or version 2.0 version of routines for various meta data generation.
	
2005-12-06  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4360146

        * objc/objc-act.c (objc_is_ivar, create_ivar_offset_name):
        New utility routines.
        (objc_v2_build_ivar_ref): Main routine to generate the new ivar
        reference code.
        (create_extern_decl): Modified to generate unique 'extern' variable
        declarations at file scope.
        (synth_module_prologue):Type of UOBJC_V2_VTABLE_decl is corrected.
        (ivar_offset_ref): Use create_ivar_offset_name to create name for ivar
        offset variable. Create global offset variables for public/protected
        ivars.
        (generate_v2_shared_structures): Miscellanous type correction and
        cleanups.
        (build_ivar_reference): For ivar references call objc_v2_build_ivar_ref
        to generate ivar references using ivar offset variable.

2006-05-24  Mike Stump  <mrs@apple.com>

	* objc-act.c (JBLEN): Update for x86_64.

2006-05-18  Stuart Hastings  <stuart@apple.com>

	Radar 4385273
	* gcc/objc/objc-act.c (objc_build_synchronized): Update JBLEN
	for 64-bit.

2006-04-27  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4399973
	Radar 4327263
	* objc/objc-act.c (init_module_descriptor): Remove file name
	from module descriptors.

2006-03-10  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4407151
        * objc/objc-act.c (objc_is_class_name): template parameter is not
        an objective class name.
        (objc_generate_cxx_cdtors): Check for the null
        objc_implementation_context.
	
2006-02-07  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4219590
	* objc/objc-act.c (objc_start_method_definition): Initialize break/continue
	labels.

2005-11-29  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4349690

	* objc/objc-act.c (update_var_decl): New.
	(generate_strings, generate_shared_structures): Reuse old decl 
	and update it.
	(generate_category): A new argument added so the old
	decl can be updated and used.
	
2005-11-29  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4349670

	* objc/objc-act.c (init_objc_symtab): Use 'short' type for constant
	initializer initializing a 'short' field.

2005-11-18  Fariborz Jahanian <fjahanian@apple.com>

	objc new meta-data definitions - part 2

	* objc/objc-act.c (build_v2_ivar_t_template): New
	(build_v2_ivar_list_t_template): New
	(generate_v2_ivar_lists): New
	(build_v2_ivar_list_initializer): New
	(generate_v2_ivars_list): New
	(generate_v2_dispatch_tables): New
	(ivar_offset_ref): New
	(generate_v2_ivar_offset_ref_lists): New
	(generate_v2_protocol_list): New
	(build_v2_protocol_reference): New
	(generate_v2_protocol_references): New
	(generate_v2_protocols): New
	(build_v2_descriptor_table_initializer): New
	(generate_v2_method_descriptors): New
	(synth_module_prologue): Declare type 'struct ivar_list_t*'
        (build_message_reference_decl): Use a new indexing for building
     	message_ref names.
	(generate_descriptor_table): Added the 'newabi' arg to initilize the
	'entsize' field for 'method_list_t' meta data.	
	(build_protocol_initializer): Added the 'newabi' arg so as not
	to initialize the non-existing 'isa' field for 'struct protocol_t'
	meta data in the new abi.
	(build_method_list_template): For new abi add 'entsize' field to
	'struct method_list_t'.
	(generate_dispatch_table): Added the 'newabi' argument so for new
	abi we set the 'entsize' field of 'struct method_list_t'.	
	(generate_protocol_list): Removed the 'newabi' argument and its use.
	New abi now has its own generate_v2_protocol_list routine.
	(generate_v2_shared_structures): Call generate_v2_protocol_references
	and generate_v2_protocol_list. 
	(finish_objc): Generate new ivar-list, method-list, protocol-list
	meta data.

	* objc/objc-act.h: Assortment of new macro and global variable declarations.

2005-11-14  Fariborz Jahanian <fjahanian@apple.com>

	objc new messaging - part 3

	* objc/objc-act.c (build_message_reference_decl): New
	(build_selector_messenger_reference): Declare the variable
	with type "struct message_ref_t" for later initialization.
	(build_message_ref_translation_table): Initialize the 
	variable of type "struct message_ref_t" with the {message_name,
	selector}.
	(objc_copy_to_temp_side_effect_params): Fix gcc_assert(...).

2005-11-11  Fariborz Jahanian <fjahanian@apple.com>

	objc new messaging - part 2

	* objc/objc-act.c (build_selector_messenger_reference): New
	(build_message_ref_translation_table): New
	(objc_copy_to_temp_side_effect_params): New
	(objc_create_temporary_var): New
	(build_message_ref_template): Reorder fields in message_ref_t
	struct for better code gen.
	(objc_finish_message_expr): Initialization of message_ref_t table
	is now done at link-time. Also, check conditions for object comparison
	with 'nil'. 
	(build_newabi_build_objc_method_call): Check for object being 'nil' before
	making the call to message handlers.
	(finish_objc): Generate 'struct message_ref_t' translation table.

	* objc/objc-act.h: Assortment of new macro and global variable declarations.

2005-11-08  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4330422

	* objc/objc-act.c (objc_non_volatilized_type): New

2005-11-07  Fariborz Jahanian <fjahanian@apple.com>

	objc new messaging - part 1

	* objc/objc-act.c (synth_module_prologue): Generate builtin function 
	decls for all messaging calls.
	(build_message_ref_template): Declare 'struct _message_ref_t' and
	'struct _super_message_ref_t' types.
	(generate_newabi_shared_structures): Fix reported bugs on 'instanceStart' 
	and 'ivars' fields of the class meta data.
	(get_arg_type_list): For new abi, select objc_newabi_super_selector_type or
	objc_newabi_selector_type for selector type.
	(objc_finish_message_expr): For new abi, generate new messaging run-time 
	calls.
	(build_objc_method_call): New.
	* objc/objc-act.h: Assorment of new defines and new global declaration in
	support of new messaging calls.

2005-11-01  Fariborz Jahanian <fjahanian@apple.com>

	objc new meta-data definitions - part 1

	* objc/objc-act.c (create_global_decl): New
	(create_extern_decl): New
	(build_classlist_reference_decl): New
	(build_classlist_translation_table): New
	(build_newabi_protocol_template): New
	(build_newabi_class_template): New
	(newabi_append_ro): New
	(build_class_t_initializer): New
	(generate_newabi_shared_structures): New
	(synth_module_prologue): Declare IMP type objc_imp_type
        and use it as needed.
	Declare new globals and call build_newabi_protocol_template(...) when
	-fobjc-newabi is specified.
	(build_private_template): Save type of an Interface in CLASS_TYPE field.
	(generate_protocol_list): New argument added.
	(synth_forward_declarations): With -fabj-newabi build new class and metaclass 
	"class_t" types.
	(continue_class): Save class and metaclass declarations.
	(finish_objc): Restore global class and metaclass declarations.
	With -fobjc-newabi call generate_newabi_shared_structures(...).
	Also build classlist translation table if needed.
	* objc/objc-act.h (imp_entry): class_newabi_decl and meta_newabi_decl fields 
	added.	
	(enum objc_tree_index): New enumerators added.
	Several global variables declared.
	* config/darwin-protos.h (objc_classlist_section, objc_data_section): New declarations.
	* config/darwin.c (machopic_select_section): Added conditional calls to
	objc_classlist_section() and objc_data_section().
	* config/darwin.h: (objc_classlist_section, objc_data_section): New functions.
	(objc_section_init): New sections to initialize.
	
2005-10-10  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4301047

	* objc-act.c (encode_type): Remove the hack.

2005-10-17  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4290840

	* objc-act.c (objc_start_method_definition): Check for error_mark_node for
	the selector name and make a quick exit.

2005-10-12  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4291785

	* objc-act.c (objc_get_interface_ivars): New function.
	(objc_detect_field_duplicates): Ditto.
	(objc_collecting_ivars): New flag.
	(continue_class): Set and reset objc_collecting_ivars for context.
	* objc-act.h (TOTAL_CLASS_RAW_IVARS): New field for interface types.
	
2005-10-10  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4291099
	* objc-act.c (objc_generate_write_barrier): Add write-barriers for 
	c++'s ctor initializer list.

2005-10-07  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4204796
	* objc-act.c (objc_build_volatilized_type): Build 'volatilzed'
	types with proper attribute set and correctly.
	(objc_volatilize_decl): Remove unneeded code.
	(objc_type_quals_match): Use the new attribute to check on
	'volatilzed' type.
	(hash_init): removed unneeded code.
	
2005-10-04  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4278236
	* objc-act.c (objc_declare_class): Pick the right
	type tree.

2005-10-04  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4281748
	* objc-act.c (objc_check_global_decl): New

2005-10-07  Fariborz Jahanian <fjahanian@apple.com>

	radar 4292010
	* objc-act.c (objc_generate_write_barrier): Turn off gc-specific 
	warning till post chardonnay.

2005-10-06  Fariborz Jahanian <fjahanian@apple.com>

	Radar 4280641
	* objc-act.c (TAG_MSGSEND_FPRET): New objc runtime call name.
	(synth_module_prologue): Build bultin function for this runtime
	function (x86 only).
	(build_objc_method_call): Call this runtime for methods returning
	floats and if not call to super receiver.
	* objc-act.h (OCTI_UMSG_FPRET_DECL): New definition.
	(umsg_fpret_decl): New definition.
	
2005-09-29  Ziemowit Laski  <zlaski@apple.com>

	Radar 4136489
	* objc-act.c (objc_is_gcable_type): Remove second parameter;
	handle __weak attribute.
	(objc_is_strong_p): New function.
	(objc_is_object_ptr): Check main variant of pointee.
	(objc_is_gcable_p): Hande __weak attribute.
	(objc_generate_write_barrier): For GC-able objects, always generate
	a strong-cast write barrier as a last resort, unless the object's
	type is marked __weak.

2005-08-23  Stuart Hastings <stuart@apple.com>
	    Ziemowit Laski  <zlaski@apple.com>

	Radar 4209854
	* objc-act.c (objc_decay_parm_type): New function.
	(get_arg_type_list): Decay types for all named arguments.
	(objc_push_parm): Rebuild the PARM_DECL if its type has
	been decayed.

2005-08-22  Ziemowit Laski  <zlaski@apple.com>

	Radar 4174166
	* objc-act.c (objc_compare_types): Compare function
	pointers; indicate success if the right-hand side has
	a return type that is covariant, and the argument types
	contravariant, with those of the left side.

2005-08-22  Ziemowit Laski  <zlaski@apple.com>

	Radar 4216500
	* objc-act.c (objc_get_protocol_qualified_type): When looking
	at a typedef, retrieve the precise type it describes (rather
	than merely looking up a class by name).

2005-07-20  Ziemowit Laski  <zlaski@apple.com>

	Radar 4136935
	* objc-act.c (pointee_is_readonly): New function.
	(encode_pointer, encode_aggregate_within, encode_type):
	Attempt to emulate GCC 3.3 when generating type encodings.

2005-07-18  Ziemowit Laski  <zlaski@apple.com>

	Radar 4175534
	* objc-act.c (objc_compare_types): A new silent comparison
	mode (-4), differing from regular comparison (-3) in that
	'false' is returned instead of issuing warnings.

2005-07-08  Ziemowit Laski  <zlaski@apple.com>

	Radar 4168740 (via mainline)
	* objc-act.c (objc_build_struct): Pass in an actual @interface
	instead of its name, and annotate the struct created (and all
	existing variants thereof) with the @interface.
	(objc_compare_types): Treat forward-declared ObjC classes
	as stand-alone (root) classes for purposes of type comparisons.
	(build_private_template): Move some code to objc_build_struct().

2005-07-07  Ziemowit Laski  <zlaski@apple.com>

	PR objc/22274
 	* objc-act.c (objc_build_string_object): For GNU-style constants,
	use the @interface type rather than the built-in type.

2005-07-05 Devang Patel  <dpatel@apple.com>

	Radar 4168086	
	* lang-specs.h: While making PCH, invoke as if -fsave-repository
	is used when -save-temps is not used.

2005-07-01  Ziemowit Laski  <zlaski@apple.com>

	Radar 4153181
	* objc-act.c (objc_build_volatilized_type): New function.
	(objc_volatilize_decl): Call objc_build_volatilized_type()
	instead of build_qualified_type().

2005-06-30 Devang Patel  <dpatel@apple.com>

	* lang-specs.h: While making PCH, invoke as if -fsave-repository
	is used.

2005-06-28  Ziemowit Laski  <zlaski@apple.com>

	Radar 4140824
	* objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
	portion of TYPE_LANG_SPECIFIC info for all variants of
	a class before calling finish_struct(), and restore
	same TYPE_OBJC_INFO afterwards.

2005-06-22  Ziemowit Laski  <zlaski@apple.com>

	Radar 4154928
	* objc-act.c (objc_common_type): New function.

2005-06-21  Ziemowit Laski  <zlaski@apple.com>

	Radar 4149909
	* objc-act.c (objc_build_internal_const_str_type): New function.
	(check_string_class_template): Use objc_get_class_ivars() instead
	of TYPE_FIELDS() to retrieve ivar list.
	(AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
	than the field itself.
	(objc_build_string_object): Synthesize a "__builtin_ObjCString"
	type and use it to lay out compile-time string objects.
	* objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
	New.

2005-05-19  Ziemowit Laski  <zlaski@apple.com>

	Radar 4035492
	* objc-act.c (objc_build_struct, objc_derived_from_p,
	objc_build_component_ref, objc_copy_binfo, objc_xref_basetypes,
	objc_lookup_protocol, objc_compare_protocols, objc_volatilize_decl,
	encode_aggregate_fields, volatilized_hash, volatilized_eq,
	objc_compare_types, objc_type_quals_match):
	New functions.
	(DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
	of same name.
	(get_class_ivars): Add second parameter indicating if entire
	hierarchy is desired.
	(struct volatilized_type): New type.
	(volatilized_htab): New hash table.
	(objc_types_compatible_p, objc_comptypes): Remove functions.
	(synth_module_prologue): Do not initialize 'unused_list'.
	(objc_get_class_reference): Fix ObjC++ impedance mismatches.
	(objc_declare_alias): Implement as a typedef.
	(objc_substitute_decl, objc_gimplify_expr): Reformat.
	(objc_get_class_ivars): Adjust call to get_class_ivars().
	(next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
	build_ivar_reference, get_super_receiver): Call
	objc_build_component_ref() instead of build_component_ref().
	(objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
	objc_comptypes().
	(build_private_template): Call objc_build_struct() instead of
	start_struct() and finish_struct().
	(hash_init): Initialize volatilized_htab.
	(objc_is_public): Adjust calls to objc_get_ivars(); adjust
	ObjC++ impedance mismatches.
	(encode_aggregate_within): Streamline by calling
	encode_aggregate_fields().
	* objc-act.h (objc_types_compatible_p): Remove prototype.
	(OCTI_UNUSED_LIST, unused_list): Remove slot.
	* objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.

2005-04-19  Ziemowit Laski  <zlaski@apple.com>

	Radar 4056870
	* objc-act.c (start_class): Traverse @compatibility_alias
	declaration when looking up super class; produce error
	message if super class only has a @class declaration.

2005-04-11  Ziemowit Laski  <zlaski@apple.com>

	Radar 4073569
	* objc-act.c (objc_finish_message_expr): When sending
	messages to classes that were _only_ forward-declared
	(via '@class'), do not issue "may not respond" to
	warnings.

2005-04-08  Ziemowit Laski  <zlaski@apple.com>

	Radar 4055183
	* objc-act.c (objc_rewrite_function_call): New function.

2005-03-11  Ziemowit Laski  <zlaski@apple.com>

	Radar 3995882
	* objc-act.c (objc_begin_try_stmt): When doing _setjmp()/
	_longjmp() EH, call objc_mark_locals_volatile().

2005-02-17  Ziemowit Laski  <zlaski@apple.com>

	Radar 4006978
	* objc-act.c (objc_is_public): Remove unneeded code.

2005-02-17  Ziemowit Laski  <zlaski@apple.com>

	Radar 3635843, 3922342
	* objc-act.c (OBJC_VERSION): Bump to '6' for the NeXT.
	(objc_is_gcable_type, objc_substitute_decl, 
	objc_build_ivar_assignment, objc_build_global_assignment,
	objc_build_strong_cast_assignment, objc_is_gcable_p,
	objc_is_ivar_reference_p, objc_is_global_reference_p,
	objc_generate_write_barrier): New functions.
	(TAG_ASSIGNIVAR, TAG_ASSIGNGLOBAL, TAG_ASSIGNSTRONGCAST,
	TAG_MSGSEND_FAST, TAG_ASSIGNIVAR_FAST, OFFS_MSGSEND_FAST,
	OFFS_ASSIGNIVAR_FAST): New macros.
	(synth_module_prologue): Synthesize 'objc_msgSend_Fast'
	function prototype.
	(build_next_objc_exception_stuff): Synthesize
	'objc_assign_ivar', 'objc_assign_ivar_Fast',
	'objc_assign_global' and 'objc_assign_strongCast'
	function prototypes.
	(build_objc_method_call): Call 'objc_msgSend_Fast'
	instead of 'objc_msgSend' if '-fobjc-direct-dispatch'
	has been specified.
	(finish_objc): Generate image info if '-fobjc-gc'
	has been specified.
	(generate_objc_image_info): Set a bit indicating if
	'-fobjc-gc' has been specified.
	* objc-act.h (OCTI_UMSG_FAST_DECL, OCTI_ASSIGN_IVAR_DECL,
	OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
	OCTI_ASSIGN_STRONGCAST_DECL): New enum slots.
	(umsg_fast_decl, objc_assign_ivar_decl, 
	objc_assign_ivar_fast_decl, objc_assign_global_decl,
	objc_assign_strong_cast_decl): New slot accessors.

2005-02-11  Ziemowit Laski  <zlaski@apple.com>

	Radar 3962013 (Part 2)
	* objc-act.c (objc_types_share_size_and_alignment): New
	function.
	(check_duplicates): Update comment.
	(comp_proto_with_proto): If types do not match, call
	objc_types_share_size_and_alignment() as a fallback in
	non-strict mode.

2005-02-11  Ziemowit Laski  <zlaski@apple.com>

	Radar 3978619
	* objc-act.c (should_call_super_dealloc): New variable.
	(objc_finish_message_expr): If calling [super dealloc],
	clear the should_call_super_dealloc variable.
	(start_method_def): If defining a 'dealloc' method in a
	non-root class, set the should_call_super_dealloc variable.
	(objc_finish_method_definition): Print a warning if
	the should_call_super_dealloc is set.

2005-02-10  Ziemowit Laski  <zlaski@apple.com>

	Radar 3982256
	* objc-act.c: Update copyright notice; include langhooks-def.h.
	(objc_types_compatible_p): New lang hook function.
	* objc-act.h: Update copyright notice.
	(objc_types_compatible_p): New prototype.
	* objc-lang.c: Update copyright notice.
	(LANG_HOOKS_TYPES_COMPATIBLE_P): Point at objc_types_compatible_p().

2005-02-08  Ziemowit Laski  <zlaski@apple.com>

	Radar 3987972
	* objc-act.c (objc_start_function): Reset
	'current_function_returns_value' and 'current_function_returns_null'
	global flags.

2005-01-30  Ziemowit Laski  <zlaski@apple.com>

	Radar 3962013
	* objc-act.c (comp_proto_with_proto): Add a STRICT parameter
	to allow for relaxed type comparisons.
	(check_duplicates): If '-Wno-strict-selector-match' is specified,
	do not warn about multiple method signatures if they differ only
	in their ObjC types.
	(add_method_to_hash_list, objc_add_method, really_start_method):
	Adjust calls to comp_proto_with_proto().

2005-01-27  Matt Austern  <austern@apple.com>

	Radar 3971445
	* objc-act.c (objc_finish_file): In Objective-C++ mode, set at_eof
	before calling instantiate_pending_templates. 

2005-01-17  Ziemowit Laski  <zlaski@apple.com>

	* objc-act.c (objc_get_class_reference): Move stray 
	APPLE LOCAL marker.

2005-01-17  Ziemowit Laski  <zlaski@apple.com>

	Radar 3955336
	* objc-act.c (objc_get_class_reference): In Objective-C++,
	make sure a type is declared in the global namespace before
	looking it up as an ObjC class.

2005-01-17  Ziemowit Laski  <zlaski@apple.com>

	Radar 3953044 (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-17  Ziemowit Laski  <zlaski@apple.com>

	Radar 3951689
	* objc-act.c (next_sjlj_build_enter_and_setjmp): For
	Objective-C++, convert _setjmp() argument to type the
	function expects.
	(objc_finish_try_stmt, objc_build_synchronized): Return
	the resulting statement	node.

2005-01-14  Mike Stump  <mrs@apple.com>

	Radar 3948135
	* lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
	that -fzero-link is accepted.

2005-01-12  Ziemowit Laski  <zlaski@apple.com>

	Radar 3882153
	* objc-act.c (objc_finish_file): Do not synthesize metadata
	when generating a PCH file.

2005-01-11  Ziemowit Laski  <zlaski@apple.com>

	Radar 3918079
	* objc-act.c (OBJC_LOOKUP_CLASS, OBJC_LOOKUP_NO_SUPER): New
	flags.
	(lookup_method_static): Generalize third argument to indicate
	whether to search superclasses for a method.
	(really_start_method): When looking for matching method in
	the @interface, do not look in superclasses.

2005-01-06  Ziemowit Laski  <zlaski@apple.com>

	Radar 3925982
	* objc-act.c (objc_method_parm_type): Return the type found
	rather than its main variant.
	(encode_aggregate_within): Streamline util_obstack accesses;
	allow for records and/or pointers thereto to be const-qualified.

2005-01-03  Ziemowit Laski  <zlaski@apple.com>

	Radar 3926282 (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-11-10  Ziemowit Laski  <zlaski@apple.com>

	Radar 3761423
	* objc-act.c (build_private_template): Return 'void';
	move fix for Radar 3261135 from continue_class().
	(objc_is_public): Robustify for use with ObjC++; examine
	"raw" ivars of the ObjC class instead of side-effected 
	fields of the underlying struct.
	(continue_class): Return "raw" ivar list instead of
	struct field list; move Radar 3261135 to
	build_private_template(), and call it.

2004-11-01  Ziemowit Laski  <zlaski@apple.com>

	Radar 2810013 (fix from mainline)
	* objc-act.c (objc_lookup_ivar): The new OTHER parameter
	contains the result of the ID lookup by the C or C++
	front-end; in class methods, use OTHER if it exists;
	in instance methods, use OTHER only if it is locally
	declared.

2004-10-27  Ziemowit Laski  <zlaski@apple.com>

	Radar 3854155
	* objc-act.c (generate_shared_structures): Add a CLS_FLAGS
	parameter whose value gets ORed into the INFO field of
	the class descriptor.
	(CLS_HAS_CXX_STRUCTORS): New metadata bit.
	(objc_generate_cxx_cdtors): Set flag in current imp_entry
	if either '-.cxx_construct' or '-.cxx_destruct' were
	synthesized...
	(continue_class): ...after initially clearing it herre.
	(finish_objc): Adjust call to generate_shared_structures(),
	passing in CLS_HAS_CXX_STRUCTORS for classes with non-POD
	ivars.
	* objc-act.h (struct imp_entry): New has_cxx_cdtors field.

2004-10-26  Ziemowit Laski  <zlaski@apple.com>

	Radar 3833116 (fix from mainline)
	* objc-act.c (finish_class): Do not synthesize bogus
	'extern objc_object *_Foo;' declarations for @interface Foo.

2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>

	Radar 3845826 (PR objc/17923)
	* objc-act.c (objc_build_string_object): Create a CONST_DECL
	for the NeXT runtime case.

2004-10-21  Ziemowit Laski  <zlaski@apple.com>

	Radar 3540965
	* objc-act.c (objc_generate_cxx_ctor_or_dtor,
	objc_generate_cxx_cdtors): New functions.
	(TAG_CXX_CONSTRUCT, TAG_CXX_DESTRUCT): New macros.
	(objc_finish_implementation): Call objc_generate_cxx_cdtors()
	if -fobjc-call-cxx-cdtors has been specified.
	(add_instance_variable): Emit different diagnostics for
	-fobjc-call-cxx-cdtors than for -fno-objc-call-cxx-cdtors.

2004-10-13  Ziemowit Laski  <zlaski@apple.com>

	Radar 3677258
	* objc-act.c (add_class): Add a 'name' parameter, and point it
	back at 'class' via IDENTIFIER_INTERFACE_VALUE accessor.
	(lookup_interface): Look in IDENTIFIER_INTERFACE_VALUE accessor
	instead of searching for class in a list.
	(start_class): Adjust calls to add_class().
	* objc-act.h (IDENTIFIER_INTERFACE_VALUE): Reformat.