1 2008-11-07 Fariborz Jahanian <fjahanian@apple.com>
4 * decl.c (synth_block_byref_id_object_copy_func): Takes new 'flag' argument
5 and produces the new much simplified API.
6 (synth_block_byref_id_object_dispose_func): Ditto.
7 (new_block_byref_decl): Turn off -fobjc-gc so we don't get
8 bogus warning on field declared as __weak.
9 (init_byref_decl): Takes a new 'flag' argument and passes
10 it down to synth_block_byref_id_object_copy_func and
11 synth_block_byref_id_object_dispose_func.
12 (cp_finish_decl): Calculates the flag for the block
13 variable declaration and passes it down to init_byref_decl.
14 * parser.c (build_block_struct_initlist): Removes call to
15 copy_in_object (not needed).
16 (synth_copy_helper_block_func): Produce the new, simplified
18 (synth_destroy_helper_block_func): Ditto.
19 (build_block_byref_decl): Copy over COPYABLE_WEAK_BLOCK flag.
21 2008-10-31 Fariborz Jahanian <fjahanian@apple.com>
24 * parser.c (synth_copy_helper_block_func): Use the new API
25 _Block_object_assign for ObjC object copying.
26 (block_object_dispose): New
27 (synth_destroy_helper_block_func): Call block_object_dispose
28 to use new _Block_object_dispose API for ObjC object release.
30 2008-10-27 Fariborz Jahanian <fjahanian@apple.com>
33 * typeck.c (objc_compare_types, objc_have_common_type):
34 Take an extra argument for better diagnostics.
37 2010-03-16 Fariborz Jahanian <fjahanian@apple.com>
40 * semantics.c (get_final_block_variable): Diagnose
41 access of __block array.
43 2010-03-12 Fariborz Jahanian <fjahanian@apple.com>
46 * cp/parser.c (build_block_struct_initlist):
47 Set BLOCK_USE_STRET flag in block descriptor for
48 blocks which return their aggregate value in memory.
50 2010-03-05 Fariborz Jahanian <fjahanian@apple.com>
53 * semantics.c (get_final_block_variable): Diagnose
54 importation of copied-in variables.
56 2009-02-11 Fariborz Jahanian <fjahanian@apple.com>
59 * decl.c (synth_block_byref_id_object_copy_func,
60 synth_block_byref_id_object_dispose_func): Set BLOCK_BYREF_CALLER
61 flag in call to copy/dispose helper functions.
63 2009-02-11 Fariborz Jahanian <fjahanian@apple.com>
66 * semantics.c (get_final_block_variable): New
67 (finish_id_expression): Call get_final_block_variable.
69 2008-10-27 Fariborz Jahanian <fjahanian@apple.com>
72 * parser.c (objc_cp_parser_at_property): Warn on missing
73 ',' separator for property attribute list.
75 2008-10-24 Fariborz Jahanian <fjahanian@apple.com>
78 * semantics.c (expand_or_defer_fn): Lower nested function
81 2008-10-24 Fariborz Jahanian <fjahanian@apple.com>
83 Radar 5847213 (minor tweak)
84 * parser.c (build_block_descriptor_type):
85 Make descriptor_ptr_type and descriptor_ptr_type_with_copydispose
88 2008-10-17 Fariborz Jahanian <fjahanian@apple.com>
91 * decl.c: Removed all code related to
92 radar 6083129 (byref escapes).
94 2008-10-15 Fariborz Jahanian <fjahanian@apple.com>
97 * parser.c (cp_parser_objc_method_definition_list): Method
98 definition always start with '{', or it is error.
100 2008-10-14 Fariborz Jahanian <fjahanian@apple.com>
103 * semantics.c (finish_this_expr): Reference to "this" in a block
106 2008-10-10 Fariborz Jahanian <fjahanian@apple.com>
108 Radar 5847213 - New Block ABI
110 * typeck.c (build_block_call): New code gen for block call.
111 * parser.c (build_descriptor_block_decl) New
112 (build_block_struct_type): New block literal type.
113 (build_block_struct_initlist): New block literal initializers.
114 (build_block_literal_tmp): New block literal variable initialization.
115 (synth_copy_helper_block_func): Fixed a minor bug (unrelated to this radar).
116 (build_block_internal_types): Removed.
117 (build_block_descriptor_type): New routine to build build descriptor type.
118 (make_block_pointer_declarator): Unnecessary code is removed.
120 2008-10-02 Fariborz Jahanian <fjahanian@apple.com>
123 * parser.c (cp_parser_block_literal_expr): Call to do the delta
126 2008-09-30 Fariborz Jahanian <fjahanian@apple.com>
129 * c-parser.c (build_block_struct_initlist): 'trivial'
130 block temporary can be static as well.
131 (build_block_literal_tmp): Accomodate 'trivial' block
132 literal temporary variable as static.
134 2008-09-30 Fariborz Jahanian <fjahanian@apple.com>
137 * parser.c (build_block_struct_initlist): 'trivial'
138 block temporary can be static as well.
139 (build_block_literal_tmp): Accomodate 'trivial' block
140 literal temporary variable as static.
142 2008-09-30 Fariborz Jahanian <fjahanian@apple.com>
145 * parser.c (build_block_byref_decl): Add __block vaiables
146 to intervening blocks.
148 2008-09-29 Fariborz Jahanian <fjahanian@apple.com>
151 tree.c (maybe_dummy_object): Build expression for
152 copied in "this" in the block.
154 2008-09-26 Fariborz Jahanian <fjahanian@apple.com>
157 * parser.c (build_block_struct_type): Mostly rewritten
158 to use C++'s API for building block's main struct so structors
159 for those data members requiring them are synthesized and
162 2008-09-25 Fariborz Jahanian <fjahanian@apple.com>
165 * decl.c (new_block_byref_decl): New field added to
166 struct __Block_byref_x.
167 (init_byref_decl): Above field initialized to NULL.
169 2008-09-25 Fariborz Jahanian <fjahanian@apple.com>
172 * parser.c (cp_parser_block_literal_expr): Parse
173 and set attribute on block literals.
175 2008-09-16 Fariborz Jahanian <fjahanian@apple.com>
178 * parser.c (cp_block_requires_copying): New
179 (build_block_struct_type): Set BlockImportsCxxObjects flag.
180 (build_block_struct_initlist): Set BLOCK_HAS_CXX_OBJ if need be.
181 (synth_copy_helper_block_func): Call copy ctor if copied in object has one.
182 (synth_destroy_helper_block_func): Call dtor on cxx object.
184 2008-09-12 Fariborz Jahanian <fjahanian@apple.com>
186 Radar 6212722 (tweak)
187 * parser.c (build_block_ref_decl): Use decay_conversion.
189 2008-09-09 Fariborz Jahanian <fjahanian@apple.com>
192 * decl.c (synth_block_byref_id_object_copy_func): Pass new flag
194 (synth_block_byref_id_object_): Ditto.
195 (finish_function): Don't pop the nested class when synthesizing
197 * semantics.c (finish_id_expression): Added logic to attach
198 copied-in "this" to stand-alone field reference in a block.
199 * parser.c (synth_copy_helper_block_func, synth_destroy_helper_block_func):
200 Pass new flag to finish_function.
201 (cp_parser_block_literal_expr): When block is in non-static member
202 function, need to import "this" as a read-only copied in variable.
204 2008-09-05 Fariborz Jahanian <fjahanian@apple.com>
207 * parser.c (build_block_struct_type): Set CLASSTYPE_AS_BASE.
208 (build_block_internal_types): Ditto.
209 (build_block_struct_initlist): Rewritten.
210 (build_block_literal_tmp): Rewritten.
211 (build_block_ref_decl): Just add copied-in variable to
213 (declare_block_prologue_local_vars): Rewritten.
214 (declare_block_prologue_local_byref_vars): New
215 (block_build_prologue): Call declare_block_prologue_local_byref_vars
218 2008-09-03 Fariborz Jahanian <fjahanian@apple.com>
221 * typeck.c (check_return_expr): Added extra check
222 for return type checking.
223 * parser.c (cp_parser_direct_declarator): Added
224 extra check for type used as block return type.
225 (cp_parser_block_literal_expr): Parse and handle
226 user provided block return type syntax.
228 2008-08-28 Fariborz Jahanian <fjahanian@apple.com>
231 * parser.c (cp_parser_block_literal_expr): Call build_block_helper_name
232 to get pretty name for block helper function.
234 2008-08-28 Fariborz Jahanian <fjahanian@apple.com>
237 * decl.c (synth_block_byref_id_object_copy_func): Use different
238 API when copying __block object in c language.
239 (synth_block_byref_id_object_dispose_func): Use different
240 API when releasing a __block object in c.
241 * parser.c (synth_copy_helper_block_func): Refactored to
242 call build_block_byref_assign_copy_decl().
244 2008-08-27 Fariborz Jahanian <fjahanian@apple.com>
247 * typeck.c (convert_arguments): Takes an extra argument
248 for distiguinsing block call to function calls.
249 (build_function_call): Tell convert_arguments if we
252 2008-08-24 Caroline Tice <ctice@apple.com.
255 * parser.c (build_block_byref_decl): Assign the
256 source location for each byref decl to the source
257 location of the helper function decl.
258 (build_block_ref_decl): Ditto for ref decls.
260 2008-07-21 Fariborz Jahanian <fjahanian@apple.com>
263 * call.c (objcp_reference_related_p): New
264 * cp-tree.h (objcp_reference_related_p): New decl.
266 2008-06-05 Fariborz Jahanian <fjahanian@apple.com>
269 * parser.c (cp_parser_compound_statement): Take a new
270 argument which is used to call objc_mark_locals_volatile.
271 (cp_parser_primary_expression, cp_parser_statement,
272 etc.): add extra argument in calling cp_parser_compound_statement.
273 (cp_parser_objc_synchronized_statement): Passes
274 flag_objc_sjlj_exceptions as last argument in calling
275 cp_parser_compound_statement.
277 2008-03-20 Fariborz Jahanian <fjahanian@apple.com>
280 * typeck.c (finish_class_member_access_expr): Generate getter call
281 from an OBJC_PROPERTY_REFERENCE_EXPR.
283 2008-03-19 Fariborz Jahanian <fjahanian@apple.com>
286 * decl.c (expand_static_init): Generate write barrier for
287 static initialization in objective-c++ mode.
289 2008-02-20 Fariborz Jahanian <fjahanian@apple.com>
291 Radar 5732232 - code gen part 2.
292 * cp-lang.c (c_finish_return): Defined these
293 templates to get a clean compile.
295 2007-08-22 Fariborz Jahanian <fjahanian@apple.com>
298 * parser.c (cp_parser_objc_protocol_declaration): Takes attribute list
299 as extra argument and passes it down to
300 objc_declare_protocols/objc_start_protocol.
301 (cp_parser_objc_class_interface): Now receives attribute list as input.
302 (cp_parser_objc_declaration): Parses attribute list and passes it down
303 to cp_parser_objc_class_interface/cp_parser_objc_protocol_declaration.
305 2007-07-13 Fariborz Jahanian <fjahanian@apple.com>
308 * parser.c (cp_parser_objc_reference_expression): New routine to
309 build a property reference expression.
310 (cp_objc_property_reference_prefix): New routine to recognize a
312 (cp_parser_primary_expression): Build a property reference expression
313 when a property dot-syntax is recognized.
314 (cp_parser_type_name): Exclude property dot-syntax from being recognized
316 (cp_parser_class_name): Exclude property dot-syntax from being recognized
319 2007-07-10 Fariborz Jahanian <fjahanian@apple.com>
322 * typeck.c (finish_class_member_access_expr): Call
323 objc_build_property_reference_expr instead of objc_build_getter_call.
325 2007-06-29 Fariborz Jahanian <fjahanian@apple.com>
328 * typeck.c (build_modify_expr): Call objc_weak_reference_expr
329 instead of objc_remove_weak_read.
330 * parser.c (cp_parser_cast_expression): Call
331 objc_build_weak_reference_tree instead of objc_generate_weak_read.
332 (cp_parser_cast_expression): Ditto.
334 2007-05-18 Fariborz Jahanian <fjahanian@apple.com>
337 * mangle.c (write_mangled_name): Removed suppression in last patch.
339 2007-04-20 Fariborz Jahanian <fjahanian@apple.com>
342 * c-common.h (enum lvalue_use): New enumerator lv_foreach
344 * c-common.c (lvalue_error): Diagnose on lv_foreach.
346 2007-04-20 Fariborz Jahanian <fjahanian@apple.com>
349 * parser.c (cp_parser_parse_foreach_stmt): Parse selector expression
351 (objc_foreach_stmt): Issue diagnostic on non-lavlue selector
354 2007-03-29 Fariborz Jahanian <fjahanian@apple.com>
356 Radar 4947014 - objc atomic property
357 * lex.c (RID_NONATOMIC): Add
358 * parser.c (objc_cp_parser_at_property): Recognize 'nonatomic' as
359 new property attribute.
361 2007-03-29 Fariborz Jahanian <fjahanian@apple.com>
364 * lex.c (RID_AT_PACKAGE): Add
365 * parser.c (cp_lexer_get_preprocessor_token): Parse @package.
367 2006-12-14 Fariborz Jahanian <fjahania@apple.com>
370 * parser.c (objc_foreach_stmt): Set iterator
373 2006-09-01 Fariborz Jahanian <fjahania@apple.com>
376 * typeck.c (build_unary_op): Call objc_build_incr_decr_setter_call
377 for potential ince/decr pre/post expressions involving properties.
379 2006-07-21 Fariborz Jahanian <fjahanian@apple.com>
382 * parser.c (cp_parser_parse_foreach_stmt): New.
383 (cp_parser_iteration_statement): Remove old code.
384 Replace it with call to cp_parser_parse_foreach_stmt.
385 (cp_parser_simple_declaration): Remove old code.
386 (cp_parser_init_declarator): Remove old code.
388 2006-08-31 Fariborz Jahanian <fjahanian@apple.com>
391 * typeck.c (build_class_member_access_expr): Call
392 objc_volatilize_component_ref.
394 2006-07-18 Fariborz Jahanian <fjahanian@apple.com>
397 * class.c (layout_class_type): Check on illegal use of __weak
399 * decl.c (start_decl): Check on illegal use of __weak on
400 variable declarations.
402 2006-07-14 Fariborz Jahanian <fjahanian@apple.com>
405 * lex.c (reswords): Added entry for 'weak' attribute keyword.
406 * parser.c (objc_cp_parser_at_property): Recorgnize 'weak'attribute.
408 2006-06-26 Fariborz Jahanian <fjahanian@apple.com>
411 * lex.c (reswords): New entry for 'dynamic' attribute.
412 * parser.c (objc_cp_parser_at_property): Change to parse new
415 2006-05-18 Fariborz Jahanian <fjahanian@apple.com>
417 Radar 4548636 (objc attributes on class)
418 * parser.c (objc_attr_follwed_by_at_keyword): New routine to disambiguate
419 attribute before a type and attribute before an @interface declaration..
420 (cp_parser_declaration): Handle case of attribute list which can be
421 followed by an @interface.
422 (cp_parser_objc_class_interface): Parse possible attribute list before
424 (cp_parser_objc_declaration): Recognize 'attribute' as a valid token which
425 can start an @interface declaration.
427 2006-05-16 Fariborz Jahanian <fjahanian@apple.com>
430 * parser.c (objc_foreach_stmt): Fix a thinko.
432 2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
435 * parser.c (objc_foreach_stmt): Check for valid objc
436 objects in foreach header.
438 2006-04-06 Fariborz Jahanian <fjahanian@apple.com>
441 (Missing copies attribute)
442 * lex.c (reswords): New keyword 'copies' added.
443 * parser.c (objc_cp_parser_at_property): Parse 'copies'
446 2006-02-15 Fariborz Jahanian <fjahanian@apple.com>
449 * semantics.c (begin_do_stmt): DO_STMT nodes take an
450 extra argument to build.
452 2005-11-08 Fariborz Jahanian <fjahanian@apple.com>
456 * typeck.c (comp_ptr_ttypes_real): Remove the hack. un-volatize the
457 artificially 'volatized' type before doing pointer comparison.
459 2005-08-15 Ziemowit Laski <zlaski@apple.com>
462 * parser.c (cp_parser_objc_interstitial_code): Catch stray
463 '{' and '}' tokens and issue appropriate errors.
464 (cp_parser_objc_method_prototype_list,
465 cp_parser_objc_method_definition_list): Bail out if end-of-file
466 is seen; issue error if trailing '@end' is not seen.
468 2008-08-06 Fariborz Jahanian <fjahanian@apple.com>
470 Radar 6040305 - work in progress.
471 * parser.c (clean_and_exit): Clean up if inside
473 (cp_parser_block_literal_expr): Set DECL_NO_STATIC_CHAIN
474 if inside a function.
476 2008-08-05 Fariborz Jahanian <fjahanian@apple.com>
478 Radar 6040305 - work in progress.
479 * decl.c (init_byref_decl): Generate c-style helper
480 functions for compose/dispose helpers.
482 2008-08-04 Fariborz Jahanian <fjahanian@apple.com>
484 Radar 6040305 - work in progress.
485 * decl.c (synth_block_byref_id_object_copy_func,
486 synth_block_byref_id_object_dispose_func,
487 block_start_struct, block_finish_struct,
488 new_block_byref_decl, init_byref_decl): New routines.
489 (cp_finish_decl): Build the APIed version of
490 a __byref local vriable.
491 * semantics.c (finish_id_expression): Add a __byref
492 variable to the list of such variables for current
494 * parser.c (build_component_ref): Fix to make it work.
495 (cp_parser_block_literal_expr): Push/pop language-c,
496 set context of the helper function.
497 (declare_block_prologue_local_vars): Mend tree for
498 the built-in local variables in the helper prologue.
500 2008-07-30 Fariborz Jahanian <fjahanian@apple.com>
503 * call.c (standard_conversion): Allow conversion of 'id'
504 type to a block pointer.
506 2008-07-30 Fariborz Jahanian <fjahanian@apple.com>
509 * typeck.c (build_block_call): New
510 (build_function_call): Call build_block_call
512 * call.c (standard_conversion): Remove "void *" to
513 block pointer conversion.
515 2008-07-29 Fariborz Jahanian <fjahanian@apple.com>
518 * call.c (standard_conversion): Allow assignment of
519 "void *" to block pointer object.
521 2008-07-28 Fariborz Jahanian <fjahanian@apple.com>
524 * typeck.c (comptypes): block-pointer types'
525 return type get special treatment.
527 2008-07-16 Eugene Marinelli <marinelli@apple.com>
530 * decl.c (cxx_maybe_build_cleanup): When considering whether to
531 build a cleanup for a class type, use
532 CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY and
533 CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE instead of
534 TYPE_HAS_NONTRIVIAL_DESTRUCTOR to determine whether it must be
537 2008-07-15 Eugene Marinelli <marinelli@apple.com>
540 * cp-tree.h (struct lang_type_class): Add destructor_triviality_final
541 flag to mark when has_nontrivial_destructor_body and
542 destructor_nontrivial_because_of_base are final. Add accessor for
544 * parser.c (cp_parser_statement_seq_opt): Use
545 CLASSTYPE_DESTRUCTOR_TRIVIALITY_FINAL to determine if
546 destructor should be checked for being empty, and set it if
547 CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY is changed.
549 2008-07-10 Eugene Marinelli <marinelli@apple.com>
552 * init.c (push_base_cleanups): Check flags indicating whether
553 destructor of base class has a nontrivial body, has a base destructor
554 that must be called, or is private to determine whether it should be
555 called by the derived class. Set
556 CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE to 1 if it has
557 members that must be deleted.
558 * class.c (check_bases, finish_struct_bits,
559 add_implicitly_declared_members): Set
560 CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE and
561 CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY based on base classes.
562 (check_methods): Set CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY to 1
563 whenever a user-declared destructor is seen as a conservative
565 * cp-tree.h (struct lang_type_class): Add
566 has_nontrivial_destructor_body and
567 destructor_nontrivial_because_of_base flags. Decrement remaining
568 dummy bits. Add accessors for these flags.
569 * parser.c (cp_parser_statement_seq_opt): Unmark
570 CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY and then set it again only if
571 a statement is parsed.
573 2007-05-07 Fariborz Jahanian <fjahanian@apple.com>
576 * parser.c (cp_parser_objc_method_keyword_params): Recognize optional
577 method argument attribute.
579 2007-03-21 Fariborz Jahanian <fjahanian@apple.com>
582 * except.c (do_begin_catch): Take a new argument to decide
583 to call objc_begin_catch for objc exceptions.
584 (objcp_build_eh_type_type): New.
585 (do_end_catch): Call objc_end_catch for objc type
587 (expand_start_catch_block): Add new argument to do_begin_catch call.
588 (build_throw): Call objc_throw_exception for throwing objc type objects.
589 * cp-tree.h (objc2_valid_objc_catch_type, objcp_build_eh_type_type):
591 * parser.c (cp_parser_objc_try_catch_finally_stateme): Add syntax for
594 2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
596 Radar 3803157 (method attributes)
597 * parser.c (cp_parser_objc_maybe_attributes): New.
598 (cp_parser_objc_method_keyword_params): Parse attributes at end
599 of method declaration.
600 (cp_parser_objc_method_tail_params_opt): Parse attributes after
602 (cp_parser_objc_method_signature): Retreive method attribute for
604 (cp_parser_objc_method_prototype_list): Pass new arg. to
605 cp_parser_objc_method_signature and pass attributes to
606 objc_add_method_declaration.
607 (cp_parser_objc_method_definition_list): Pass new arg. to
608 cp_parser_objc_method_signature and pass attributes to
609 objc_start_method_definition.
611 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
614 * lex.c (unqualified_name_lookup_error): Issue diagnostic
615 for private 'ivar' access.
617 2006-02-02 Fariborz Jahanian <fjahanian@apple.com>
620 * typeck.c (build_modify_expr): Undo call to objc_read_weak
621 on LHS of the assignment.
622 * parser.c (cp_parser_cast_expression): Central place to add
623 objc_read_weak call on expressions of __weak objects.
625 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
628 * typeck.c (composite_pointer_type): Call objc_have_common_type
629 when comparing two objective-c pointer types.
631 2005-10-17 Fariborz Jahanian <fjahanian@apple.com>
635 * parser.c (cp_parser_objc_method_keyword_params): Check for valid
636 method parameters and issue error.
637 (cp_parser_objc_method_definition_list): Check for invalid tokens
638 which cannot start a function definition.
640 2005-08-02 Ziemowit Laski <zlaski@apple.com>
643 * parser.c (cp_parser_compound_statement): Continue
644 parsing even if the initial '{' is missing; an error
645 message is already being produced.
646 (cp_parser_statement_seq_opt): In addition to '}' and
647 end-of-file, a statement sequence may also be terminated
648 by a stray 'else' or '@end'.
650 # APPLE LOCAL begin for-fsf-4_4 3274130 5295549
651 2007-08-03 Geoffrey Keating <geoffk@apple.com>
654 * parser.c (cp_parser_iteration_statement): Handle attributes.
655 * semantics.c (begin_for_stmt): Put attributes in built tree.
656 (begin_while_stmt): Put attributes in built tree.
657 (begin_do_stmt): Put attributes in built tree.
658 * pt.c (tsubst_expr): Handle attributes for FOR_STMT, WHILE_STMT,
660 * cp-gimplify.c (gimplify_cp_loop): Handle attributes.
661 (gimplify_for_stmt): Pass attributes to gimplify_cp_loop.
662 (gimplify_while_stmt): Pass attributes to gimplify_cp_loop.
663 (gimplify_do_stmt): Pass attributes to gimplify_cp_loop.
664 * dump.c (cp_dump_tree): Dump attributes for FOR_STMT, WHILE_STMT,
666 * cp-tree.h (begin_while_stmt): Update prototype.
667 (begin_do_stmt): Likewise.
668 (begin_for_stmt): Likewise.
669 * cp-tree.def (FOR_STMT): Add extra parameter.
670 (WHILE_STMT): Likewise.
672 * init.c (build_vec_init): Update for change to begin_for_stmt.
674 # APPLE LOCAL end for-fsf-4_4 3274130 5295549