freebsd-skq/contrib/gcc/cp/ChangeLog.apple
Pedro F. Giffuni 3cb44b3f65 gcc: Drop useless objc change from r260311.
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
2014-01-17 21:21:28 +00:00

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