2014-01-05 00:43:28 +00:00
|
|
|
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.
|
|
|
|
|
2013-12-28 20:30:31 +00:00
|
|
|
2006-02-15 Fariborz Jahanian <fjahanian@apple.com>
|
|
|
|
|
|
|
|
Radar 4445586
|
|
|
|
* semantics.c (begin_do_stmt): DO_STMT nodes take an
|
|
|
|
extra argument to build.
|
|
|
|
|
2014-01-05 00:43:28 +00:00
|
|
|
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'.
|
|
|
|
|
2013-12-28 20:30:31 +00:00
|
|
|
# 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
|