]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/gcc/cp/ChangeLog.apple
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / gcc / cp / ChangeLog.apple
1 2008-11-07  Fariborz Jahanian <fjahanian@apple.com>
2
3          Radar 5847976
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
17         API.
18         (synth_destroy_helper_block_func): Ditto.
19         (build_block_byref_decl): Copy over COPYABLE_WEAK_BLOCK flag.
20         
21 2008-10-31  Fariborz Jahanian <fjahanian@apple.com>
22
23          Radar 6175959
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.
29
30 2008-10-27  Fariborz Jahanian <fjahanian@apple.com>
31
32          Radar 6231433
33          * typeck.c (objc_compare_types, objc_have_common_type):
34          Take an extra argument for better diagnostics.
35         * call.c: Ditto
36
37 2010-03-16  Fariborz Jahanian <fjahanian@apple.com>
38
39          Radar 7760213
40          * semantics.c (get_final_block_variable): Diagnose 
41         access of __block array.
42         
43 2010-03-12  Fariborz Jahanian <fjahanian@apple.com>
44
45         Radar 7735196
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.
49
50 2010-03-05  Fariborz Jahanian <fjahanian@apple.com>
51
52          Radar 7721728
53          * semantics.c  (get_final_block_variable): Diagnose
54          importation of copied-in variables.
55
56 2009-02-11  Fariborz Jahanian <fjahanian@apple.com>
57
58          Radar 6573923
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.
62
63 2009-02-11  Fariborz Jahanian <fjahanian@apple.com>
64
65          Radar 6545782
66         * semantics.c (get_final_block_variable): New
67         (finish_id_expression): Call get_final_block_variable.
68
69 2008-10-27  Fariborz Jahanian <fjahanian@apple.com>
70
71          Radar 6302949
72          * parser.c (objc_cp_parser_at_property): Warn on missing
73          ',' separator for property attribute list.
74
75 2008-10-24  Fariborz Jahanian <fjahanian@apple.com>
76
77          Radar 6305545
78         * semantics.c (expand_or_defer_fn): Lower nested function
79         of the structors.
80
81 2008-10-24  Fariborz Jahanian <fjahanian@apple.com>
82
83          Radar 5847213 (minor tweak)
84          * parser.c (build_block_descriptor_type):
85          Make descriptor_ptr_type and descriptor_ptr_type_with_copydispose
86          visible to pch.
87
88 2008-10-17  Fariborz Jahanian <fjahanian@apple.com>
89
90          Radar 6289031
91          * decl.c: Removed all code related to
92          radar 6083129 (byref escapes).
93
94 2008-10-15  Fariborz Jahanian <fjahanian@apple.com>
95
96          Radar 6271728
97         * parser.c (cp_parser_objc_method_definition_list): Method
98         definition always start with '{', or it is error.
99
100 2008-10-14  Fariborz Jahanian <fjahanian@apple.com>
101
102          Radar 6275956
103         * semantics.c (finish_this_expr): Reference to "this" in a block
104         must be looked up.
105
106 2008-10-10  Fariborz Jahanian <fjahanian@apple.com>
107
108         Radar 5847213 - New Block ABI
109         
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.
119         
120 2008-10-02  Fariborz Jahanian <fjahanian@apple.com>
121
122          Radar 6246527
123          * parser.c (cp_parser_block_literal_expr): Call to do the delta
124          on printf attribute.
125
126 2008-09-30  Fariborz Jahanian <fjahanian@apple.com>
127
128          Radar 6230297
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.
133
134 2008-09-30  Fariborz Jahanian <fjahanian@apple.com>
135
136          Radar 6230297
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.
141
142 2008-09-30  Fariborz Jahanian <fjahanian@apple.com>
143
144          Radar 6225809
145          * parser.c (build_block_byref_decl): Add __block vaiables
146          to intervening blocks.
147
148 2008-09-29  Fariborz Jahanian <fjahanian@apple.com>
149
150          Radar 6154598
151         tree.c (maybe_dummy_object): Build expression for
152          copied in "this" in the block.
153
154 2008-09-26  Fariborz Jahanian <fjahanian@apple.com>
155
156         Radar 6243400
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
160         used.
161
162 2008-09-25  Fariborz Jahanian <fjahanian@apple.com>
163
164          Radar 6244520
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.
168
169 2008-09-25  Fariborz Jahanian <fjahanian@apple.com>
170
171          Radar 6237713
172         * parser.c (cp_parser_block_literal_expr): Parse
173         and set attribute on block literals.
174
175 2008-09-16  Fariborz Jahanian <fjahanian@apple.com>
176
177          Radar 6214617
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.
183         
184 2008-09-12  Fariborz Jahanian <fjahanian@apple.com>
185
186          Radar 6212722 (tweak)
187         * parser.c (build_block_ref_decl): Use decay_conversion.
188
189 2008-09-09  Fariborz Jahanian <fjahanian@apple.com>
190
191          Radar 6169580
192         * decl.c (synth_block_byref_id_object_copy_func): Pass new flag 
193         to finish_function.
194         (synth_block_byref_id_object_): Ditto.
195         (finish_function): Don't pop the nested class when synthesizing
196         block helpers.
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.
203         
204 2008-09-05  Fariborz Jahanian <fjahanian@apple.com>
205
206          Radar 6169527
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
212         the scope.
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
216         for byref variables.
217
218 2008-09-03  Fariborz Jahanian <fjahanian@apple.com>
219
220          Radar 6185344
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.
227
228 2008-08-28  Fariborz Jahanian <fjahanian@apple.com>
229
230         Radar 6160536
231         * parser.c (cp_parser_block_literal_expr): Call build_block_helper_name
232         to get pretty name for block helper function.
233
234 2008-08-28  Fariborz Jahanian <fjahanian@apple.com>
235
236          Radar 6180456
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().
243
244 2008-08-27  Fariborz Jahanian <fjahanian@apple.com>
245
246          Radar 6087117
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
250         are calling a block.
251
252 2008-08-24  Caroline Tice  <ctice@apple.com.
253
254          Radar 6144664
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.
259
260 2008-07-21  Fariborz Jahanian <fjahanian@apple.com>
261
262          Radar 6029624
263         * call.c (objcp_reference_related_p): New
264         * cp-tree.h (objcp_reference_related_p): New decl.
265
266 2008-06-05  Fariborz Jahanian <fjahanian@apple.com>
267
268          Radar 5982990
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.
276
277 2008-03-20  Fariborz Jahanian <fjahanian@apple.com>
278
279          Radar 5802025
280         * typeck.c (finish_class_member_access_expr): Generate getter call
281         from an OBJC_PROPERTY_REFERENCE_EXPR.
282
283 2008-03-19  Fariborz Jahanian <fjahanian@apple.com>
284
285          Radar 5733674
286          * decl.c (expand_static_init): Generate write barrier for
287          static initialization in objective-c++ mode.
288
289 2008-02-20  Fariborz Jahanian <fjahanian@apple.com>
290
291          Radar 5732232 - code gen part 2.
292         * cp-lang.c (c_finish_return): Defined these
293         templates to get a clean compile.
294
295 2007-08-22  Fariborz Jahanian <fjahanian@apple.com>
296
297          Radar 4947311
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.
304         
305 2007-07-13  Fariborz Jahanian <fjahanian@apple.com>
306
307          Radar 5277239
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 
311         property dot syntax.
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
315         as a type name.
316         (cp_parser_class_name): Exclude property dot-syntax from being recognized
317         as a class name.
318
319 2007-07-10  Fariborz Jahanian <fjahanian@apple.com>
320
321          Radar 5285911
322         * typeck.c (finish_class_member_access_expr): Call
323         objc_build_property_reference_expr instead of objc_build_getter_call.
324
325 2007-06-29  Fariborz Jahanian <fjahanian@apple.com>
326
327          Radar 5276085
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.
333
334 2007-05-18  Fariborz Jahanian <fjahanian@apple.com>
335
336          Radar 5202926
337         * mangle.c (write_mangled_name): Removed suppression in last patch.
338
339 2007-04-20 Fariborz Jahanian <fjahanian@apple.com>
340
341         Radar 5130983
342         * c-common.h (enum lvalue_use): New enumerator lv_foreach
343         added.
344         * c-common.c (lvalue_error): Diagnose on lv_foreach.
345
346 2007-04-20 Fariborz Jahanian <fjahanian@apple.com>
347
348          Radar 5130983
349          * parser.c (cp_parser_parse_foreach_stmt): Parse selector expression
350          as an expression.
351          (objc_foreach_stmt): Issue diagnostic on non-lavlue selector 
352          expression.
353
354 2007-03-29  Fariborz Jahanian <fjahanian@apple.com>
355
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.
360
361 2007-03-29 Fariborz Jahanian <fjahanian@apple.com>
362          
363          Radar 4564694
364          * lex.c (RID_AT_PACKAGE): Add
365          * parser.c (cp_lexer_get_preprocessor_token): Parse @package.
366
367 2006-12-14  Fariborz Jahanian <fjahania@apple.com>
368
369          Radar 4854605
370          * parser.c (objc_foreach_stmt): Set iterator 
371          to nil.
372
373 2006-09-01  Fariborz Jahanian <fjahania@apple.com>
374
375          Radar 4712269
376          * typeck.c (build_unary_op): Call objc_build_incr_decr_setter_call
377          for potential ince/decr pre/post expressions involving properties.
378
379 2006-07-21  Fariborz Jahanian <fjahanian@apple.com>
380
381         Radar 4631818
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.
387         
388 2006-08-31  Fariborz Jahanian  <fjahanian@apple.com>
389
390          Radar 4697411
391         * typeck.c (build_class_member_access_expr): Call 
392         objc_volatilize_component_ref.
393
394 2006-07-18  Fariborz Jahanian <fjahanian@apple.com>
395
396          Radar 4592503
397         * class.c (layout_class_type): Check on illegal use of __weak
398         on struct fields.
399         * decl.c (start_decl): Check on illegal use of __weak on
400         variable declarations.
401
402 2006-07-14  Fariborz Jahanian <fjahanian@apple.com>
403
404          Radar 4621020
405         * lex.c (reswords): Added entry for 'weak' attribute keyword.
406         * parser.c (objc_cp_parser_at_property): Recorgnize 'weak'attribute.
407
408 2006-06-26  Fariborz Jahanian <fjahanian@apple.com>
409
410          Radar 4591909
411         * lex.c (reswords): New entry for 'dynamic' attribute.
412         * parser.c (objc_cp_parser_at_property): Change to parse new
413         attribute syntax.
414         
415 2006-05-18 Fariborz Jahanian <fjahanian@apple.com>
416
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
423         parsing @interface.
424         (cp_parser_objc_declaration): Recognize 'attribute' as a valid token which
425         can start an @interface declaration.
426         
427 2006-05-16 Fariborz Jahanian <fjahanian@apple.com>
428
429          Radar 4547045
430         * parser.c (objc_foreach_stmt): Fix a thinko.
431
432 2006-04-12 Fariborz Jahanian <fjahanian@apple.com>
433
434          Radar 4507230
435         * parser.c (objc_foreach_stmt): Check for valid objc
436         objects in foreach header.
437
438 2006-04-06 Fariborz Jahanian <fjahanian@apple.com>
439
440          Radar 4436866 
441         (Missing copies attribute)
442         * lex.c (reswords): New keyword 'copies' added.
443         * parser.c (objc_cp_parser_at_property): Parse 'copies'
444         attribute.
445
446 2006-02-15   Fariborz Jahanian <fjahanian@apple.com>
447
448         Radar 4445586
449         * semantics.c (begin_do_stmt): DO_STMT nodes take an
450         extra argument to build.
451
452 2005-11-08  Fariborz Jahanian <fjahanian@apple.com>
453
454         Radar 4330422
455
456         * typeck.c (comp_ptr_ttypes_real): Remove the hack. un-volatize the
457         artificially 'volatized' type before doing pointer comparison.
458
459 2005-08-15  Ziemowit Laski  <zlaski@apple.com>
460
461         Radar 4093475
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.
467
468 2008-08-06  Fariborz Jahanian <fjahanian@apple.com>
469
470          Radar 6040305 - work in progress.
471         * parser.c (clean_and_exit): Clean up if inside
472         a function.
473         (cp_parser_block_literal_expr): Set DECL_NO_STATIC_CHAIN
474         if inside a function.
475
476 2008-08-05  Fariborz Jahanian <fjahanian@apple.com>
477
478          Radar 6040305 - work in progress.
479         * decl.c (init_byref_decl): Generate c-style helper
480         functions for compose/dispose helpers.
481
482 2008-08-04  Fariborz Jahanian <fjahanian@apple.com>
483
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
493         block.
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.
499
500 2008-07-30  Fariborz Jahanian <fjahanian@apple.com>
501
502          Radar 6040305
503         * call.c (standard_conversion): Allow conversion of 'id'
504         type to a block pointer.
505
506 2008-07-30  Fariborz Jahanian <fjahanian@apple.com>
507
508          Radar 6040305
509         * typeck.c (build_block_call): New
510         (build_function_call): Call build_block_call
511         for block calls.
512         * call.c (standard_conversion): Remove "void *" to
513         block pointer conversion.
514
515 2008-07-29  Fariborz Jahanian <fjahanian@apple.com>
516
517          Radar 6040305
518         * call.c (standard_conversion): Allow assignment of
519         "void *" to block pointer object.
520
521 2008-07-28  Fariborz Jahanian <fjahanian@apple.com>
522
523          Radar 6040305
524         * typeck.c (comptypes): block-pointer types'
525         return type get special treatment.
526
527 2008-07-16  Eugene Marinelli <marinelli@apple.com>
528
529         Radar 5559195
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
535         output.
536
537 2008-07-15  Eugene Marinelli <marinelli@apple.com>
538
539         Radar 5559195
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
543         this flag.
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.
548
549 2008-07-10  Eugene Marinelli <marinelli@apple.com>
550
551         Radar 5559195
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
564         assumption.
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.
572
573 2007-05-07  Fariborz Jahanian <fjahanian@apple.com>
574
575          Radar 4157812
576         * parser.c (cp_parser_objc_method_keyword_params): Recognize optional
577         method argument attribute.
578
579 2007-03-21  Fariborz Jahanian <fjahanian@apple.com>
580
581          Radar 2848255
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
586          exceptions.
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):
590          New extern decl.
591          * parser.c (cp_parser_objc_try_catch_finally_stateme): Add syntax for
592          @catch(...).
593
594 2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
595
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
601         '...'.
602         (cp_parser_objc_method_signature): Retreive method attribute for
603         the caller.
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.
610         
611 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
612
613          Radar 4133425
614         * lex.c (unqualified_name_lookup_error): Issue diagnostic
615         for private 'ivar' access.
616
617 2006-02-02   Fariborz Jahanian <fjahanian@apple.com>
618
619          Radar 4426814
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.
624
625 2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
626
627         Radar 4229905
628         * typeck.c (composite_pointer_type): Call objc_have_common_type
629         when comparing two objective-c pointer types.
630
631 2005-10-17  Fariborz Jahanian <fjahanian@apple.com>
632
633         Radar 4290840
634         
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.
639
640 2005-08-02  Ziemowit Laski  <zlaski@apple.com>
641
642         Radar 4185810
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'.
649
650  # APPLE LOCAL begin for-fsf-4_4 3274130 5295549
651 2007-08-03  Geoffrey Keating  <geoffk@apple.com>
652
653         Radar 5295549
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,
659         DO_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,
665         DO_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.
671         (DO_STMT): Likewise.
672         * init.c (build_vec_init): Update for change to begin_for_stmt.
673
674  # APPLE LOCAL end for-fsf-4_4 3274130 5295549