diff options
Diffstat (limited to 'contrib/gcc/cp/ChangeLog.apple')
-rw-r--r-- | contrib/gcc/cp/ChangeLog.apple | 643 |
1 files changed, 643 insertions, 0 deletions
diff --git a/contrib/gcc/cp/ChangeLog.apple b/contrib/gcc/cp/ChangeLog.apple index a3eb812..a2cecaa 100644 --- a/contrib/gcc/cp/ChangeLog.apple +++ b/contrib/gcc/cp/ChangeLog.apple @@ -1,9 +1,652 @@ +2008-11-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5847976 + * decl.c (synth_block_byref_id_object_copy_func): Takes new 'flag' argument + and produces the new much simplified API. + (synth_block_byref_id_object_dispose_func): Ditto. + (new_block_byref_decl): Turn off -fobjc-gc so we don't get + bogus warning on field declared as __weak. + (init_byref_decl): Takes a new 'flag' argument and passes + it down to synth_block_byref_id_object_copy_func and + synth_block_byref_id_object_dispose_func. + (cp_finish_decl): Calculates the flag for the block + variable declaration and passes it down to init_byref_decl. + * parser.c (build_block_struct_initlist): Removes call to + copy_in_object (not needed). + (synth_copy_helper_block_func): Produce the new, simplified + API. + (synth_destroy_helper_block_func): Ditto. + (build_block_byref_decl): Copy over COPYABLE_WEAK_BLOCK flag. + +2008-10-31 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6175959 + * parser.c (synth_copy_helper_block_func): Use the new API + _Block_object_assign for ObjC object copying. + (block_object_dispose): New + (synth_destroy_helper_block_func): Call block_object_dispose + to use new _Block_object_dispose API for ObjC object release. + +2008-10-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6231433 + * typeck.c (objc_compare_types, objc_have_common_type): + Take an extra argument for better diagnostics. + * call.c: Ditto + +2010-03-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 7760213 + * semantics.c (get_final_block_variable): Diagnose + access of __block array. + +2010-03-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 7735196 + * cp/parser.c (build_block_struct_initlist): + Set BLOCK_USE_STRET flag in block descriptor for + blocks which return their aggregate value in memory. + +2010-03-05 Fariborz Jahanian <fjahanian@apple.com> + + Radar 7721728 + * semantics.c (get_final_block_variable): Diagnose + importation of copied-in variables. + +2009-02-11 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6573923 + * decl.c (synth_block_byref_id_object_copy_func, + synth_block_byref_id_object_dispose_func): Set BLOCK_BYREF_CALLER + flag in call to copy/dispose helper functions. + +2009-02-11 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6545782 + * semantics.c (get_final_block_variable): New + (finish_id_expression): Call get_final_block_variable. + +2008-10-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6302949 + * parser.c (objc_cp_parser_at_property): Warn on missing + ',' separator for property attribute list. + +2008-10-24 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6305545 + * semantics.c (expand_or_defer_fn): Lower nested function + of the structors. + +2008-10-24 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5847213 (minor tweak) + * parser.c (build_block_descriptor_type): + Make descriptor_ptr_type and descriptor_ptr_type_with_copydispose + visible to pch. + +2008-10-17 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6289031 + * decl.c: Removed all code related to + radar 6083129 (byref escapes). + +2008-10-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6271728 + * parser.c (cp_parser_objc_method_definition_list): Method + definition always start with '{', or it is error. + +2008-10-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6275956 + * semantics.c (finish_this_expr): Reference to "this" in a block + must be looked up. + +2008-10-10 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5847213 - New Block ABI + + * typeck.c (build_block_call): New code gen for block call. + * parser.c (build_descriptor_block_decl) New + (build_block_struct_type): New block literal type. + (build_block_struct_initlist): New block literal initializers. + (build_block_literal_tmp): New block literal variable initialization. + (synth_copy_helper_block_func): Fixed a minor bug (unrelated to this radar). + (build_block_internal_types): Removed. + (build_block_descriptor_type): New routine to build build descriptor type. + (make_block_pointer_declarator): Unnecessary code is removed. + +2008-10-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6246527 + * parser.c (cp_parser_block_literal_expr): Call to do the delta + on printf attribute. + +2008-09-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6230297 + * c-parser.c (build_block_struct_initlist): 'trivial' + block temporary can be static as well. + (build_block_literal_tmp): Accomodate 'trivial' block + literal temporary variable as static. + +2008-09-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6230297 + * parser.c (build_block_struct_initlist): 'trivial' + block temporary can be static as well. + (build_block_literal_tmp): Accomodate 'trivial' block + literal temporary variable as static. + +2008-09-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6225809 + * parser.c (build_block_byref_decl): Add __block vaiables + to intervening blocks. + +2008-09-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6154598 + tree.c (maybe_dummy_object): Build expression for + copied in "this" in the block. + +2008-09-26 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6243400 + * parser.c (build_block_struct_type): Mostly rewritten + to use C++'s API for building block's main struct so structors + for those data members requiring them are synthesized and + used. + +2008-09-25 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6244520 + * decl.c (new_block_byref_decl): New field added to + struct __Block_byref_x. + (init_byref_decl): Above field initialized to NULL. + +2008-09-25 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6237713 + * parser.c (cp_parser_block_literal_expr): Parse + and set attribute on block literals. + +2008-09-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6214617 + * parser.c (cp_block_requires_copying): New + (build_block_struct_type): Set BlockImportsCxxObjects flag. + (build_block_struct_initlist): Set BLOCK_HAS_CXX_OBJ if need be. + (synth_copy_helper_block_func): Call copy ctor if copied in object has one. + (synth_destroy_helper_block_func): Call dtor on cxx object. + +2008-09-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6212722 (tweak) + * parser.c (build_block_ref_decl): Use decay_conversion. + +2008-09-09 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6169580 + * decl.c (synth_block_byref_id_object_copy_func): Pass new flag + to finish_function. + (synth_block_byref_id_object_): Ditto. + (finish_function): Don't pop the nested class when synthesizing + block helpers. + * semantics.c (finish_id_expression): Added logic to attach + copied-in "this" to stand-alone field reference in a block. + * parser.c (synth_copy_helper_block_func, synth_destroy_helper_block_func): + Pass new flag to finish_function. + (cp_parser_block_literal_expr): When block is in non-static member + function, need to import "this" as a read-only copied in variable. + +2008-09-05 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6169527 + * parser.c (build_block_struct_type): Set CLASSTYPE_AS_BASE. + (build_block_internal_types): Ditto. + (build_block_struct_initlist): Rewritten. + (build_block_literal_tmp): Rewritten. + (build_block_ref_decl): Just add copied-in variable to + the scope. + (declare_block_prologue_local_vars): Rewritten. + (declare_block_prologue_local_byref_vars): New + (block_build_prologue): Call declare_block_prologue_local_byref_vars + for byref variables. + +2008-09-03 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6185344 + * typeck.c (check_return_expr): Added extra check + for return type checking. + * parser.c (cp_parser_direct_declarator): Added + extra check for type used as block return type. + (cp_parser_block_literal_expr): Parse and handle + user provided block return type syntax. + +2008-08-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6160536 + * parser.c (cp_parser_block_literal_expr): Call build_block_helper_name + to get pretty name for block helper function. + +2008-08-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6180456 + * decl.c (synth_block_byref_id_object_copy_func): Use different + API when copying __block object in c language. + (synth_block_byref_id_object_dispose_func): Use different + API when releasing a __block object in c. + * parser.c (synth_copy_helper_block_func): Refactored to + call build_block_byref_assign_copy_decl(). + +2008-08-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6087117 + * typeck.c (convert_arguments): Takes an extra argument + for distiguinsing block call to function calls. + (build_function_call): Tell convert_arguments if we + are calling a block. + +2008-08-24 Caroline Tice <ctice@apple.com. + + Radar 6144664 + * parser.c (build_block_byref_decl): Assign the + source location for each byref decl to the source + location of the helper function decl. + (build_block_ref_decl): Ditto for ref decls. + +2008-07-21 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6029624 + * call.c (objcp_reference_related_p): New + * cp-tree.h (objcp_reference_related_p): New decl. + +2008-06-05 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5982990 + * parser.c (cp_parser_compound_statement): Take a new + argument which is used to call objc_mark_locals_volatile. + (cp_parser_primary_expression, cp_parser_statement, + etc.): add extra argument in calling cp_parser_compound_statement. + (cp_parser_objc_synchronized_statement): Passes + flag_objc_sjlj_exceptions as last argument in calling + cp_parser_compound_statement. + +2008-03-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5802025 + * typeck.c (finish_class_member_access_expr): Generate getter call + from an OBJC_PROPERTY_REFERENCE_EXPR. + +2008-03-19 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5733674 + * decl.c (expand_static_init): Generate write barrier for + static initialization in objective-c++ mode. + +2008-02-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - code gen part 2. + * cp-lang.c (c_finish_return): Defined these + templates to get a clean compile. + +2007-08-22 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4947311 + * parser.c (cp_parser_objc_protocol_declaration): Takes attribute list + as extra argument and passes it down to + objc_declare_protocols/objc_start_protocol. + (cp_parser_objc_class_interface): Now receives attribute list as input. + (cp_parser_objc_declaration): Parses attribute list and passes it down + to cp_parser_objc_class_interface/cp_parser_objc_protocol_declaration. + +2007-07-13 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5277239 + * parser.c (cp_parser_objc_reference_expression): New routine to + build a property reference expression. + (cp_objc_property_reference_prefix): New routine to recognize a + property dot syntax. + (cp_parser_primary_expression): Build a property reference expression + when a property dot-syntax is recognized. + (cp_parser_type_name): Exclude property dot-syntax from being recognized + as a type name. + (cp_parser_class_name): Exclude property dot-syntax from being recognized + as a class name. + +2007-07-10 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5285911 + * typeck.c (finish_class_member_access_expr): Call + objc_build_property_reference_expr instead of objc_build_getter_call. + +2007-06-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5276085 + * typeck.c (build_modify_expr): Call objc_weak_reference_expr + instead of objc_remove_weak_read. + * parser.c (cp_parser_cast_expression): Call + objc_build_weak_reference_tree instead of objc_generate_weak_read. + (cp_parser_cast_expression): Ditto. + +2007-05-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5202926 + * mangle.c (write_mangled_name): Removed suppression in last patch. + +2007-04-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5130983 + * c-common.h (enum lvalue_use): New enumerator lv_foreach + added. + * c-common.c (lvalue_error): Diagnose on lv_foreach. + +2007-04-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5130983 + * parser.c (cp_parser_parse_foreach_stmt): Parse selector expression + as an expression. + (objc_foreach_stmt): Issue diagnostic on non-lavlue selector + expression. + +2007-03-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4947014 - objc atomic property + * lex.c (RID_NONATOMIC): Add + * parser.c (objc_cp_parser_at_property): Recognize 'nonatomic' as + new property attribute. + +2007-03-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4564694 + * lex.c (RID_AT_PACKAGE): Add + * parser.c (cp_lexer_get_preprocessor_token): Parse @package. + +2006-12-14 Fariborz Jahanian <fjahania@apple.com> + + Radar 4854605 + * parser.c (objc_foreach_stmt): Set iterator + to nil. + +2006-09-01 Fariborz Jahanian <fjahania@apple.com> + + Radar 4712269 + * typeck.c (build_unary_op): Call objc_build_incr_decr_setter_call + for potential ince/decr pre/post expressions involving properties. + +2006-07-21 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4631818 + * parser.c (cp_parser_parse_foreach_stmt): New. + (cp_parser_iteration_statement): Remove old code. + Replace it with call to cp_parser_parse_foreach_stmt. + (cp_parser_simple_declaration): Remove old code. + (cp_parser_init_declarator): Remove old code. + +2006-08-31 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4697411 + * typeck.c (build_class_member_access_expr): Call + objc_volatilize_component_ref. + +2006-07-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4592503 + * class.c (layout_class_type): Check on illegal use of __weak + on struct fields. + * decl.c (start_decl): Check on illegal use of __weak on + variable declarations. + +2006-07-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4621020 + * lex.c (reswords): Added entry for 'weak' attribute keyword. + * parser.c (objc_cp_parser_at_property): Recorgnize 'weak'attribute. + +2006-06-26 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4591909 + * lex.c (reswords): New entry for 'dynamic' attribute. + * parser.c (objc_cp_parser_at_property): Change to parse new + attribute syntax. + +2006-05-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4548636 (objc attributes on class) + * parser.c (objc_attr_follwed_by_at_keyword): New routine to disambiguate + attribute before a type and attribute before an @interface declaration.. + (cp_parser_declaration): Handle case of attribute list which can be + followed by an @interface. + (cp_parser_objc_class_interface): Parse possible attribute list before + parsing @interface. + (cp_parser_objc_declaration): Recognize 'attribute' as a valid token which + can start an @interface declaration. + +2006-05-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4547045 + * parser.c (objc_foreach_stmt): Fix a thinko. + +2006-04-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4507230 + * parser.c (objc_foreach_stmt): Check for valid objc + objects in foreach header. + +2006-04-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4436866 + (Missing copies attribute) + * lex.c (reswords): New keyword 'copies' added. + * parser.c (objc_cp_parser_at_property): Parse 'copies' + attribute. + 2006-02-15 Fariborz Jahanian <fjahanian@apple.com> Radar 4445586 * semantics.c (begin_do_stmt): DO_STMT nodes take an extra argument to build. +2005-11-08 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4330422 + + * typeck.c (comp_ptr_ttypes_real): Remove the hack. un-volatize the + artificially 'volatized' type before doing pointer comparison. + +2005-08-15 Ziemowit Laski <zlaski@apple.com> + + Radar 4093475 + * parser.c (cp_parser_objc_interstitial_code): Catch stray + '{' and '}' tokens and issue appropriate errors. + (cp_parser_objc_method_prototype_list, + cp_parser_objc_method_definition_list): Bail out if end-of-file + is seen; issue error if trailing '@end' is not seen. + +2008-08-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6040305 - work in progress. + * parser.c (clean_and_exit): Clean up if inside + a function. + (cp_parser_block_literal_expr): Set DECL_NO_STATIC_CHAIN + if inside a function. + +2008-08-05 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6040305 - work in progress. + * decl.c (init_byref_decl): Generate c-style helper + functions for compose/dispose helpers. + +2008-08-04 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6040305 - work in progress. + * decl.c (synth_block_byref_id_object_copy_func, + synth_block_byref_id_object_dispose_func, + block_start_struct, block_finish_struct, + new_block_byref_decl, init_byref_decl): New routines. + (cp_finish_decl): Build the APIed version of + a __byref local vriable. + * semantics.c (finish_id_expression): Add a __byref + variable to the list of such variables for current + block. + * parser.c (build_component_ref): Fix to make it work. + (cp_parser_block_literal_expr): Push/pop language-c, + set context of the helper function. + (declare_block_prologue_local_vars): Mend tree for + the built-in local variables in the helper prologue. + +2008-07-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6040305 + * call.c (standard_conversion): Allow conversion of 'id' + type to a block pointer. + +2008-07-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6040305 + * typeck.c (build_block_call): New + (build_function_call): Call build_block_call + for block calls. + * call.c (standard_conversion): Remove "void *" to + block pointer conversion. + +2008-07-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6040305 + * call.c (standard_conversion): Allow assignment of + "void *" to block pointer object. + +2008-07-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6040305 + * typeck.c (comptypes): block-pointer types' + return type get special treatment. + +2008-07-16 Eugene Marinelli <marinelli@apple.com> + + Radar 5559195 + * decl.c (cxx_maybe_build_cleanup): When considering whether to + build a cleanup for a class type, use + CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY and + CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE instead of + TYPE_HAS_NONTRIVIAL_DESTRUCTOR to determine whether it must be + output. + +2008-07-15 Eugene Marinelli <marinelli@apple.com> + + Radar 5559195 + * cp-tree.h (struct lang_type_class): Add destructor_triviality_final + flag to mark when has_nontrivial_destructor_body and + destructor_nontrivial_because_of_base are final. Add accessor for + this flag. + * parser.c (cp_parser_statement_seq_opt): Use + CLASSTYPE_DESTRUCTOR_TRIVIALITY_FINAL to determine if + destructor should be checked for being empty, and set it if + CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY is changed. + +2008-07-10 Eugene Marinelli <marinelli@apple.com> + + Radar 5559195 + * init.c (push_base_cleanups): Check flags indicating whether + destructor of base class has a nontrivial body, has a base destructor + that must be called, or is private to determine whether it should be + called by the derived class. Set + CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE to 1 if it has + members that must be deleted. + * class.c (check_bases, finish_struct_bits, + add_implicitly_declared_members): Set + CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE and + CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY based on base classes. + (check_methods): Set CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY to 1 + whenever a user-declared destructor is seen as a conservative + assumption. + * cp-tree.h (struct lang_type_class): Add + has_nontrivial_destructor_body and + destructor_nontrivial_because_of_base flags. Decrement remaining + dummy bits. Add accessors for these flags. + * parser.c (cp_parser_statement_seq_opt): Unmark + CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY and then set it again only if + a statement is parsed. + +2007-05-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4157812 + * parser.c (cp_parser_objc_method_keyword_params): Recognize optional + method argument attribute. + +2007-03-21 Fariborz Jahanian <fjahanian@apple.com> + + Radar 2848255 + * except.c (do_begin_catch): Take a new argument to decide + to call objc_begin_catch for objc exceptions. + (objcp_build_eh_type_type): New. + (do_end_catch): Call objc_end_catch for objc type + exceptions. + (expand_start_catch_block): Add new argument to do_begin_catch call. + (build_throw): Call objc_throw_exception for throwing objc type objects. + * cp-tree.h (objc2_valid_objc_catch_type, objcp_build_eh_type_type): + New extern decl. + * parser.c (cp_parser_objc_try_catch_finally_stateme): Add syntax for + @catch(...). + +2006-04-26 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3803157 (method attributes) + * parser.c (cp_parser_objc_maybe_attributes): New. + (cp_parser_objc_method_keyword_params): Parse attributes at end + of method declaration. + (cp_parser_objc_method_tail_params_opt): Parse attributes after + '...'. + (cp_parser_objc_method_signature): Retreive method attribute for + the caller. + (cp_parser_objc_method_prototype_list): Pass new arg. to + cp_parser_objc_method_signature and pass attributes to + objc_add_method_declaration. + (cp_parser_objc_method_definition_list): Pass new arg. to + cp_parser_objc_method_signature and pass attributes to + objc_start_method_definition. + +2006-03-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4133425 + * lex.c (unqualified_name_lookup_error): Issue diagnostic + for private 'ivar' access. + +2006-02-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4426814 + * typeck.c (build_modify_expr): Undo call to objc_read_weak + on LHS of the assignment. + * parser.c (cp_parser_cast_expression): Central place to add + objc_read_weak call on expressions of __weak objects. + +2005-12-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4229905 + * typeck.c (composite_pointer_type): Call objc_have_common_type + when comparing two objective-c pointer types. + +2005-10-17 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4290840 + + * parser.c (cp_parser_objc_method_keyword_params): Check for valid + method parameters and issue error. + (cp_parser_objc_method_definition_list): Check for invalid tokens + which cannot start a function definition. + +2005-08-02 Ziemowit Laski <zlaski@apple.com> + + Radar 4185810 + * parser.c (cp_parser_compound_statement): Continue + parsing even if the initial '{' is missing; an error + message is already being produced. + (cp_parser_statement_seq_opt): In addition to '}' and + end-of-file, a statement sequence may also be terminated + by a stray 'else' or '@end'. + # APPLE LOCAL begin for-fsf-4_4 3274130 5295549 2007-08-03 Geoffrey Keating <geoffk@apple.com> |