mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-27 11:55:06 +00:00
3cb44b3f65
Among some of the objc changes from Apple that crept into r260311, Radar 5355344 is incomplete and is not used since we don't carry ObjC in the base system. The dead code seems to have caused issues in some Tinderboxes so get rid of it altogether. Reported by: luigi MFC after: 9 days
675 lines
22 KiB
Plaintext
675 lines
22 KiB
Plaintext
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>
|
|
|
|
Radar 5295549
|
|
* parser.c (cp_parser_iteration_statement): Handle attributes.
|
|
* semantics.c (begin_for_stmt): Put attributes in built tree.
|
|
(begin_while_stmt): Put attributes in built tree.
|
|
(begin_do_stmt): Put attributes in built tree.
|
|
* pt.c (tsubst_expr): Handle attributes for FOR_STMT, WHILE_STMT,
|
|
DO_STMT.
|
|
* cp-gimplify.c (gimplify_cp_loop): Handle attributes.
|
|
(gimplify_for_stmt): Pass attributes to gimplify_cp_loop.
|
|
(gimplify_while_stmt): Pass attributes to gimplify_cp_loop.
|
|
(gimplify_do_stmt): Pass attributes to gimplify_cp_loop.
|
|
* dump.c (cp_dump_tree): Dump attributes for FOR_STMT, WHILE_STMT,
|
|
DO_STMT.
|
|
* cp-tree.h (begin_while_stmt): Update prototype.
|
|
(begin_do_stmt): Likewise.
|
|
(begin_for_stmt): Likewise.
|
|
* cp-tree.def (FOR_STMT): Add extra parameter.
|
|
(WHILE_STMT): Likewise.
|
|
(DO_STMT): Likewise.
|
|
* init.c (build_vec_init): Update for change to begin_for_stmt.
|
|
|
|
# APPLE LOCAL end for-fsf-4_4 3274130 5295549
|