ChangeLog.apple revision 261188
12008-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 212008-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 302008-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 372010-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 432010-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 502010-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 562009-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 632009-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 692008-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 752008-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 812008-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 882008-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 942008-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 1002008-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 1062008-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 1202008-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 1262008-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 1342008-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 1422008-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 1482008-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 1542008-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 1622008-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 1692008-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 1752008-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 1842008-09-12 Fariborz Jahanian <fjahanian@apple.com> 185 186 Radar 6212722 (tweak) 187 * parser.c (build_block_ref_decl): Use decay_conversion. 188 1892008-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 2042008-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 2182008-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 2282008-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 2342008-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 2442008-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 2522008-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 2602008-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 2662008-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 2772008-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 2832008-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 2892008-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 2952007-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 3052007-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 3192007-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 3252007-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 3342007-05-18 Fariborz Jahanian <fjahanian@apple.com> 335 336 Radar 5202926 337 * mangle.c (write_mangled_name): Removed suppression in last patch. 338 3392007-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 3462007-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 3542007-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 3612007-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 3672006-12-14 Fariborz Jahanian <fjahania@apple.com> 368 369 Radar 4854605 370 * parser.c (objc_foreach_stmt): Set iterator 371 to nil. 372 3732006-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 3792006-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 3882006-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 3942006-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 4022006-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 4082006-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 4152006-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 4272006-05-16 Fariborz Jahanian <fjahanian@apple.com> 428 429 Radar 4547045 430 * parser.c (objc_foreach_stmt): Fix a thinko. 431 4322006-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 4382006-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 4462006-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 4522005-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 4592005-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 4682008-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 4762008-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 4822008-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 5002008-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 5062008-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 5152008-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 5212008-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 5272008-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 5372008-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 5492008-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 5732007-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 5792007-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 5942006-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 6112006-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 6172006-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 6252005-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 6312005-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 6402005-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 6512007-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 675