aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1-5666.3/gcc/objc/ChangeLog.apple
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.2.1-5666.3/gcc/objc/ChangeLog.apple')
-rw-r--r--gcc-4.2.1-5666.3/gcc/objc/ChangeLog.apple3465
1 files changed, 3465 insertions, 0 deletions
diff --git a/gcc-4.2.1-5666.3/gcc/objc/ChangeLog.apple b/gcc-4.2.1-5666.3/gcc/objc/ChangeLog.apple
new file mode 100644
index 000000000..c003e8d1a
--- /dev/null
+++ b/gcc-4.2.1-5666.3/gcc/objc/ChangeLog.apple
@@ -0,0 +1,3465 @@
+2010-04-18 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 7865106 - Take two
+ * objc-act.c (objc_class_weak_import,
+ objc_build_weak_reference_internal_classname): New.
+ (objc_start_class_interface): For weak_import
+ class declaration generate asm(.weak_reference ...)
+ statement.
+ (objc_warn_on_class_attributes): Do not warn on existance
+ of 'weak_import' attribute on a class.
+
+2010-04-15 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 7865106
+ * objc-act.c (objc_class_weak_import): New
+ (objc_create_global_decl_for_class): Tag metaclass
+ with weak_import attribute if class has one.
+ (ivar_offset_ref): Call to objc_create_global_decl_for_class takes
+ extra flag arg.
+ (generate_v2_shared_structures): Ditto.
+ (objc_warn_on_class_attributes): Do not warn on existance
+ of 'weak_import' attribute on a class.
+
+2010-04-02 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 7591784
+ * objc-act.c (objc_build_compound_setter_call): Issue unimplemented
+ error attempting to use dot-syntax on a RHS which is c++ object
+ requiring construction.
+
+2019-03-17 Jim Grosbach <grosbach@apple.com>
+
+ Radar 6671703
+ * objc-act.c (objc_synthesize_new_getter, objc_synthesize_new_setter):
+ On ARM, for atomic access to any type of larger than 4 bytes, use
+ objc_copyStruct().
+
+2010-02-15 Fariborz Jahanian <fjahanian@apple.com>
+ Radar 7178651
+ * objc-act.c: renamed all incarnations of implemenation
+ with implementation to fix spelling.
+
+2009-05-06 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 6083666
+ * objc-act.c (objc_build_property_reference_expr): Never
+ issue diagnostics on use of an 'ivar' with property type
+ mismatch. Issue warning in all other cases and only in
+ legitimate property/user declared type mismatches.
+ (objc_build_property_reference_expr): Do not issue any
+ warning or error when property is more specialized than
+ its user declared accessor.
+
+2009-04-24 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 6825962
+ * objc-act.c (objc_declare_property_impl): Issue property in
+ super class diagnostic even if explicitly asked for.
+
+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.