2009-04-20 Fariborz Jahanian <fjahanian@apple.com> 
        Radar 6803342
        * objc-act.c (generate_objc_image_info): Set the imfo_info
        flag to 16 (1<<4) when in objc2, setter/getter issues error
        on use of super class synthsized ivar.

2009-01-07  Fariborz Jahanian <fjahanian@apple.com>

        Radar 6379842
	* objc-act.c (objc_add_property_variable): warn on 
	block property with no 'copy' attribute.

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

	Radar 6370136
	* objc-act.c (objc_merge_protocol_methods): Merge copied
	list of protocol's methods into class.

2008-11-13  Fariborz Jahanian <fjahanian@apple.com>

	Radar 6351990 (minor tweak).
	* objc-act.c (build_protocol_list_address_table): Move couple
	of variables out of the loop.

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

	Radar 6351990
	* objc-act.c (build_protocollist_reference_decl): Builds
	a weak visibility hidder symbol for protocol reference
	meta-data symbols.
	(objc_add_to_protocol_list_chain): Takes addition argument
	and builds a tree using this argument.
	(build_protocol_list_address_table): Now builds a list
	of protocol label and address of generated protocol symbol.
	
2008-11-07  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5847976
	* objc-act.c (objc_is_gcable_type): Made global.
	(objc_build_weak_reference_tree): Quick return if
	-fobjc-gc unspecified.
	(objc_checkon_weak_attribute): Ditto.
	(objc_generate_write_barrier): Generate write-barrier for
	a __block variable declared as __weak.
	(retain_block_component, release_block_component,
	 copy_in_object): Removed.
	(cast_to_pointer_to_id): Removed.

2008-10-27  Fariborz Jahanian <fjahanian@apple.com>

        Radar 6231433
	* objc-act.c (objc_compare_types, objc_have_common_type):
	Take an extra argument for better diagnostics.

2008-10-23  Fariborz Jahanian <fjahanian@apple.com>

	Radar 6307941
	* objc-act.c (build_objc_method_call, build_v2_build_objc_method_call,
	get_arg_type_list): Take selector name as new argument.
	(objc_init): Remove check for flag_objc_legacy_dispatch.
	(objc_legacy_dispatched_selector_p): New
	(objc_finish_message_expr): Call objc_legacy_dispatched_selector_p
	to check on legacy dispatch message or objc2 abi.
	
2008-10-16  Fariborz Jahanian <fjahanian@apple.com>

	Radar 6017984
	* objc-act.c (objc_merge_protocol_methods): New
	(finish_class): Call objc_merge_protocol_methods for
	anonymous categories.

2008-10-16  Fariborz Jahanian <fjahanian@apple.com>

	Radar 6285794 (tweak)
	* objc-act.c:  Replace all build_int_cst (NULL_TREE, 0)
		       with integer_zero_node.

2008-10-15  Fariborz Jahanian <fjahanian@apple.com>

        Radar 6285794
	* objc-act.c: All 0 initializers are converted to
	pointer type of the initialized field, to suit
	llvm-gcc restriction.

2008-10-13  Fariborz Jahanian <fjahanian@apple.com>

	Radar 6255913
	* objc-act.c (build_protocollist_translation_table): Generate a
	coalessable name for protocol meta-data reference with "l_OBJC" prefix.
	(build_v2_protocol_reference): declare a 'weak' 'extern hidden'
	symbol for protocol meta-data.

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

	Radar 6267049
	* objc-act.c (objc_get_protocol_qualified_type): Issue error on bogus
	protocol qualified syntax.

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

        Radar 6264448
	* objc-act.c (objc_build_compound_setter_call): Do the default conversion 
	on temporary after it is passed to the setter call.

2008-10-01  Fariborz Jahanian <fjahanian@apple.com>

	Radar 6255671
	* objc-act.c (managed_objc_object_pointer): block pointer
	is also an ObjC pointer for property purposes.
	(objc_add_property_variable): Issue hard error when
	property of block pointer type is defaulted to 
	'assign' attribute.

2008-09-23  Fariborz Jahanian <fjahanian@apple.com>

        Radar 6230701
	* objc-act.c (access_block_ref_self_decl): New
	(build_ivar_reference): Call it, instead of inline code.
	(get_super_receiver): Call access_block_ref_self_decl to get
	copied-in version of 'self' when building 'super'
	messaging.

2008-09-19  Fariborz Jahanian <fjahanian@apple.com>

	Radar 6230800
	* objc-act.c (objc_v2_build_ivar_ref): Better text for diagnostic.

2008-09-19  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4900615
	* objc-act.c (encode_type): Encode long double as 'D'.

2008-09-11  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5839123
	* objc-act.c (objc_compare_types): More detailed error
	reporting.

2008-09-10  Fariborz Jahanian <fjahanian@apple.com>

        Radar 6209554
	* objc-act.c (objc_declare_property_impl): Report on 
	location of previous property decl.
	(error_previous_property_decl): New.
	
2008-09-08 Fariborz Jahanian <fjahanian@apple.com>

        Radar 6064186
	* objc_act.c (generate_v2_property_list,
		      forward_declare_categories,
		      generate_descriptor_table,
		      generate_v2_ivars_list,
		      generate_dispatch_table,
		      generate_v2_dispatch_tables,
		      generate_v2_protocol_list,
		      generate_v2_method_descriptors,
		      newabi_append_ro,
		      generate_v2_shared_structures): Symbols which end up in DATA
	section now start with "l_".
	(build_message_reference_decl): Each message ref symbol is now prefixed
	by "l_". It is also becomes 'private extern'.
		       
2008-08-26  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5595325 (minor addition)
	* objc-act.c (objc_finish_message_expr): Do not warn
	on invalid receiver type if receiver is an
	NSObject.

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

        Radar 5595325
	* objc-act.c (objc_nsobject_attribute_type): New
	(objc_compare_types): Allow NSObject pointers to match 'id'
	(objc_is_object_ptr): An SObject pointer is a valid objective-c
	object.
	
2008-08-20  Fariborz Jahanian <fjahanian@apple.com>

	Radar 6157135
	* objc-act.c (objc_delta_format_args): Don't change
	number of first variarg if it is 0.

2008-08-19  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5435299
	* objc-act.c (objc_synthesize_new_getter): Do not call
	objc_lookup_property_ivar with -fnew-property-ivar-synthesis
	(objc_synthesize_new_setter): Ditto.
	(objc_add_internal_ivar): Synthesize an ivar according to
	new rules.
	(lookup_property_impl_in_list): New
	(lookup_ivar_in_property_list): New
	(objc_declare_property_impl): Diagnose a corner case
	of a missing 'ivar'. Synthesize 'ivar' at point
	of @synthesize declaration. Issue more diagnostics.
		
2008-08-19  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5847641
	* objc-act.c (objc_declare_property_impl): Warn if
	undeclared ivar is specified on @synthesize.

2008-08-18  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5424416
	* objc-act.c (objc_start_method_definition): Issue 
	diagnostics on methods returning array or function.

2008-08-18  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5453108
	* objc-act.c (property_method_in_class): New
	(check_methods): Check on method being a property
	method in current class by calling property_method_in_class.

2008-08-14  Dale Johannesen <dalej@apple.com>

        * objc-act.c (build_objc_string_decl):  Rename to
        build_objc_string_ident throughout.  Make it return an
        identifier instead of building a var_decl which gets
        thrown away.
        (add_objc_string):  Modify for interface change.

2008-08-12  Fariborz Jahanian <fjahanian@apple.com>

        Radar 6133042
	* objc-act.c (block_pointer_strong_value): New
	(objc_build_aggregate_ivar_layout): Find GCability of
	block pointer by calling above routine.
	(objc_is_gcable_type): Ditto.

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

	Radar 6040305 - work in proggress.

	* objc-act.c (build_ivar_reference): treat 'self' as 
	a copied in variable or ObjC++ as well.

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

	Radar 6049617
	* objc-act.c (objc_finish_message_expr): Check and warn
	on depricated/unavilable methods.
	(build_objc_method_call): Removed above checking code.
	(build_v2_build_objc_method_call): Ditto.

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

        Radar 6023694
	* objc-act.h: (IS_SUPER) changed to compare
	against the original type.

2008-07-22  Fariborz Jahanian <fjahanian@apple.com>

        Radar 6029577
	* objc-act.c (objc_build_property_reference_expr):
	Added support for property reference tree build when
	property and/or getter is of a reference type.

2008-07-21  Fariborz Jahanian <fjahanian@apple.com>

        Radar 6029624
	* objc-act.c: (objc_declare_property_impl): Consider property
	of reference type as valid.
	(objc_add_internal_ivar): Type of a synthesized ivar
	of a property reference type is its referenced type.

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

	Radar 6068877
	* objc-act.c: (objc_create_init_utf16_var): Removed.

2008-07-17  Fariborz Jahanian <fjahanian@apple.com>
	Radar 6083530
	* objc-act.c: (objc_build_foreach_components): 'limit' and
	'counter' temporaries must have type unsigned long.

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

        Radar 6061276
	* objc-act.c (objc_compare_types): Resolve a @class decl.
	in type tree to its @interface decl. if can.

2008-06-16  Fariborz Jahanian <fjahanian@apple.com>

	Radar 6003871
	* objc-act.c (objc_build_ivar_layout): Free object after
	its use not before.

2008-06-13  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5996271
	* objc-act.c (encode_type): encode 128-bit int.

2008-06-03  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5982789
	* objc-act.c (buildNSStringType): New
	(objc_build_string_object): Type of a CFString literal is
	now NSString *.
	(objc_check_nsstring_pointer_type): Call buildNSStringType
	to build "NSString" type.

2008-06-03  Fariborz Jahanian <fjahanian@apple.com>
	
	Radar 5887355
	* objc-act.c (objc_build_string_object): Defer tree build
	of cfstrings when in a template declaration.
	(objc-tree.def): OBJC_STRING_REFERENCE is new tree code.
	
2008-05-27  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5962694
	* objc/objc-act.c (finish_class): For categories also merge
	properties from their protocol list.

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

        Radar 5932809
	* objc-act.c (objc_finish_message_expr) Don't warning on
	[id release] or [id retain] messaging synthesized for byref
	variable blocks.
	(build_ivar_reference): build_closure_ref_decl call takes
	on less argument (this is a clean up).
	(retain_closure_component, release_closure_component): Set
	donot_warn_missing_methods flag so we do not issue warning
	on [id release] or [id retain] messaging synthesis.
	(cast_to_pointer_to_id): New.

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

        Radar 5882266 (tweaked).
	* objc-act.c (objc_is_strong_p): Previous patch removed.
	(objc_is_gcable_type): Special handling for finding '__weak'
	attribute on block types.
	
2008-04-23  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5882266
	* objc-act.c (objc_is_strong_p): gc-attribute of 
	closure pointers are on its function type.

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

	Radar 5849129
	* objc-act.c (encode_pointer): encode block pointer as '@'.
	(encode_type): Add sncoding support for block pointer encopding.

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

	Radar 5832193
	* objc-act.c (objc_is_gcable_type): A block type is also gc'able.
	(objc_generate_write_barrier): Allow write-barriers when assigning to
	a block pointer object.

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

	Radar 5831920
	* objc-act.c (objc_type_valid_for_messaging): A block is a valid object for
	messaging.

2008-03-28  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5808305
	* objc-act.c (release_closure_component): Do a plain bitwise copy
	of object pointers of const copied-in object poiners (no more
	retain autorelease thing).

2008-03-28  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5809099
	* objc-act.c (objc_finish_message_expr): Treat closure pointer receiver as
	an 'id' object.

2008-03-26  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5782740 - Minor tweak.
	* objc-act.c (release_closure_component): Message sent is
	"release' instead of "retain".

2008-03-24  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5811191
	* objc-act.c (build_ivar_reference): Warn if an ivar is declared
	inside an |...| block. Treat all ivar access such that their
	implicit 'self' is copied-in const and ivar reference is
	implicit byref.

2008-03-13  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5796058 - Minor change
	* objc-act.c (build_ivar_reference): All 'ivar' in closures
	are now treated as though declared 'byref'.

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

	Radar 5795493 - type matching of closure types
	* objc-act.c (objc_types_are_equivalent): Added case for
	CLOSURE_POINTER_TYPE

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

	Radar 5796058 - ivar in blocks
	* objc-act.c (build_ivar_reference): If 'ivar' is used
	in a block, register it as copied-in or byref ivar.
	(objc_lookup_ivar): If variable representing a copied-in or byref
	ivar just returh it.

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

	Radar 5782740 (ivars)
	* objc-act.c (build_ivar_reference): 'self' will be
	a copied-in variable when implicitly used for an ivar
	reference.

2008-03-06  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5782740
	* objc-act.c (retain_closure_component, release_closure_component,
	copy_in_object, closure_requires_copying): New

2008-04-29  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5893391
	* objc-act.c (objc_build_property_reference_expr): Protocol qualified 'id'
	typed receivers are valid object for property reference expressions.
	(objc_build_getter_call): Generate getter call when receiver is 
	a protocol qualified 'id' experssion.

2008-04-24  Caroline Tice  <ctice@apple.com>

        * objc-act.c (objc_start_function):  Fix APPLE LOCAL markers.

2008-04-23  Caroline Tice  <ctice@apple.com>

        Radar 5839812
        * objc-act.c (objc_start_function):  Add new parameter, 'method';
	if 'method' is non-NULL, give 'fndecl' the same source location as 
	'method'.
	(objc_add_property_setter_method):  Set the source location of 
	'selector' to the source location of 'x'.
	(build_module_initializer_routine):  Pass NULL_TREE to 
	objc_start_function for the new method parameter.
	(objc_synthesize_new_getter):  copy 'decl' and give it the same source 
	location as 'property' before passing it to 
	objc_start_method_definition.
	(objc_synthesize_new_setter):  Likewise.
	(finish_class): Give 'getter_decl' the same source location as 'x'; 
	likewise for 'setter_decl'.
	(really_start_method):  Pass 'method' to objc_start_function.
	(objc_declare_property_impl):  Assign 'property_decl' the current 
	input location.

2008-04-15  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5852190
	* objc-act.c (objc_synthesize_new_setter): Be smarter
	in finding setter method's value argument.

2008-04-03  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5724385 (tweaked for bitfield ivars).
	* objc-act.c (build_v2_ivar_list_initializer): Alignment of
	bitfield ivar is that of its underlying type.

2008-04-01  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5835805
	* objc-act.c (start_class): If using a class alias,
	resolve it to its class.

2008-03-26  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5218071
        * objc-act.c (objc_compare_types): Add special handling for property
        types in base and derived class, to check for more specialization.
        (diagnose_property_mismatch): When type of readonly properties mismatch
        check for specialization.
        (objc_merge_proto_properties_in_class): call to diagnose_property_mismatch
        takes an extra argument.
        (objc_compare_properties_with_super): Ditto

2008-03-20  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5809596
	* objc-act.c (objc_init): For all objc ABIs 
	-fobjc-call-cxx-cdtors is on by default

2008-03-20  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5802025
	* objc-act.c (objc_build_property_getter_func_call): New
	(objc_gimplify_expr): Use objc_build_property_getter_func_call
	
2008-03-19  Fariborz Jahanian <fjahanian@apple.com>

        Radar 5471096
	* objc-act.c (objc_is_public): For cateogies, look for 'ivar'
	in its class.

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

	Radar 5791701
	* objc-act.c (objc_build_aggregate_ivar_layout): Special
	treatment when last field is a bitfield for ivar layout.

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

	Radar 5781140
	* objc-act.c (objc_build_aggregate_ivar_layout): Check on
	no-field and return. 

2008-03-04  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5774213
	* objc-act.c (handle_impent): Output global category name
	for 32bit abi only.

2008-03-03  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5777307
	* objc-act.c (lookup_nested_method): Lookup in protocol list for
	setter/getter declarations.

2008-03-03  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5698469
	* objc-act.c (objc_add_property_variable): Say "default assign"
	when warning.

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

	Radar 5724385
	* objc-act.c (build_v2_ivar_list_initializer): Remove dead code. 
	Fix alignment of fields to the alignment of underlying type.
	(generate_v2_ivar_lists): Compute number of ivars to exclude unnamed 
	bitfields.

2008-02-06  Josh Conner  <jconner@apple.com>

	Radar 5726269
	* objc-act.c (objc_init): Invoke OBJC_TARGET_FLAG_OBJC_ABI.

2008-01-16  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5370783
	* objc-act.c (add_method_to_hash_list): Change argument passed
	to comp_proto_with_proto.
	(objc_add_method): Ditto.
	(objc_process_getter_setter): Change argument passed
	to match_proto_with_proto.
	(match_proto_with_proto): With 'strict' equal 1, allow
	valid object pointer conversion as valid type match.
	(really_start_method): Allow finding prototype in one
	of super classes of current implementation.
	
2008-01-14  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5676962
	* objc-act.c (objc_build_struct): Save and restore 
	TYPE_LANG_SPECIFIC objects.

2008-01-10  Josh Conner  <jconner@apple.com>

	Radar 5675908
	* objc-act.c (objc_synthesize_new_setter): Don't force
	flag_objc_gc to 1 before calling build_modify_expr.

2008-01-10  Josh Conner  <jconner@apple.com>

	Radar 5680184
	* objc-act.c (objc_init): Add support for
	flag_objc_legacy_dispatch with objc-2.0.
	(synth_module_prologue): Likewise.
	(get_arg_type_list): Likewise.
	(objc_finish_message_expr): Likewise.

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

	Radar 5607453
	* objc-act.c (objc_add_property_variable): Exclude 'id' and
	'Class" object types for "NSCopying" protocol warning.

2007-11-28  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5610134
	* objc-act.c (ivar_offset_ref): assertion added.
	(objc_synthesize_new_getter): Produce non-fragile offset tree
	for 64bit ABI.
	(objc_synthesize_new_setter): Ditto.

2007-11-05  Josh Conner  <jconner@apple.com>

	Radar 5569420
	* objc-act.c (build_objc_method_call): Use aggregate_value_p
	to determine dispatch mechanism.

2007-10-26  Josh Conner  <jconner@apple.com>

	Radar 5562046
	* objc-act.c (generate_v2_shared_structures): Fix signedness
	mismatch.

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

	Radar 4947311
	* objc-act.c (objc_start_protocol): Takes attribute list as new argument
	(start_protocol): Takes attribute list as new argument and
	Sets protocol's PROTOCOL_ATTRIBUTES field.
	(objc_declare_protocols): Ditto.
	(objc_handle_protocol_attrs): New routine to warn on 'deprecated' and
	'unavailable' protocols.
	(lookup_and_install_protocols): Call objc_handle_protocol_attrs to warn
	on protocol attributes.
	* objc-act.h (PROTOCOL_ATTRIBUTES): Macro for protocol's attributes.
	
2007-08-21  Fariborz Jahanian <fjahanian@apple.com>

	Radar 5424473
	* objc-act.c (start_method_def): Exclude +finalize from
	warning issuance (was radar 4757423).

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

	Radar 5422751
	* objc-act.c (objc_protocol_implementation): Function removed.

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

	Radar 5376125 (64bit abi)
	* objc-act.c (objc_property_access_info): Warning check for 32bit abi only.
	(objc_v2_build_ivar_ref): Warning for 64bit abi.

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

	Radar 3533972
	* objc-act.c (objc_finish_message_expr): Do the receiver type
	conversion if user has provided one.

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

	Radar 5409313
	* objc-act.c (objc_build_selector_expr): Diagnose empty @selector
	directive.

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

	Radar 5407792
	* objc-act.c (objc_v2_encode_prop_attr): Add 'N' for nonatomic
	property attribute encoding.

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

	Radar 5376125
	* objc-act.c (objc_warn_direct_ivar_access): New
	(objc_build_getter_call): Warn if 'ivar' accessed outside
	property context.
	(objc_synthesize_new_getter): Turn off above warning if 'ivar' is
	accessed for getter synthesis.
	(objc_synthesize_new_setter): Turn off above warning if 'ivar' is
	accessed for setter synthesis.

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

	Radar 5398274
	* objc-act.c (objc_synthesize_new_setter): Set 'used' flag 
	on '_value' argument when doing lhs = _value;

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.
