ChangeLog.apple revision 260311
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-24 Fariborz Jahanian <fjahanian@apple.com> 306 307 Radar 5355344 308 * cp-tree.h (cp_objc_protocol_id_list): New declaration 309 * cp-lang.c (cp_objc_protocol_id_list): New stub 310 * parser.c (cp_parser_type_name): Added code to disambiguate 311 conditional from a protocol type. 312 (cp_parser_objc_tentative_protocol_refs_opt): New 313 3142007-07-13 Fariborz Jahanian <fjahanian@apple.com> 315 316 Radar 5277239 317 * parser.c (cp_parser_objc_reference_expression): New routine to 318 build a property reference expression. 319 (cp_objc_property_reference_prefix): New routine to recognize a 320 property dot syntax. 321 (cp_parser_primary_expression): Build a property reference expression 322 when a property dot-syntax is recognized. 323 (cp_parser_type_name): Exclude property dot-syntax from being recognized 324 as a type name. 325 (cp_parser_class_name): Exclude property dot-syntax from being recognized 326 as a class name. 327 3282007-07-10 Fariborz Jahanian <fjahanian@apple.com> 329 330 Radar 5285911 331 * typeck.c (finish_class_member_access_expr): Call 332 objc_build_property_reference_expr instead of objc_build_getter_call. 333 3342007-06-29 Fariborz Jahanian <fjahanian@apple.com> 335 336 Radar 5276085 337 * typeck.c (build_modify_expr): Call objc_weak_reference_expr 338 instead of objc_remove_weak_read. 339 * parser.c (cp_parser_cast_expression): Call 340 objc_build_weak_reference_tree instead of objc_generate_weak_read. 341 (cp_parser_cast_expression): Ditto. 342 3432007-05-18 Fariborz Jahanian <fjahanian@apple.com> 344 345 Radar 5202926 346 * mangle.c (write_mangled_name): Removed suppression in last patch. 347 3482007-04-20 Fariborz Jahanian <fjahanian@apple.com> 349 350 Radar 5130983 351 * c-common.h (enum lvalue_use): New enumerator lv_foreach 352 added. 353 * c-common.c (lvalue_error): Diagnose on lv_foreach. 354 3552007-04-20 Fariborz Jahanian <fjahanian@apple.com> 356 357 Radar 5130983 358 * parser.c (cp_parser_parse_foreach_stmt): Parse selector expression 359 as an expression. 360 (objc_foreach_stmt): Issue diagnostic on non-lavlue selector 361 expression. 362 3632007-03-29 Fariborz Jahanian <fjahanian@apple.com> 364 365 Radar 4947014 - objc atomic property 366 * lex.c (RID_NONATOMIC): Add 367 * parser.c (objc_cp_parser_at_property): Recognize 'nonatomic' as 368 new property attribute. 369 3702007-03-29 Fariborz Jahanian <fjahanian@apple.com> 371 372 Radar 4564694 373 * lex.c (RID_AT_PACKAGE): Add 374 * parser.c (cp_lexer_get_preprocessor_token): Parse @package. 375 3762006-12-14 Fariborz Jahanian <fjahania@apple.com> 377 378 Radar 4854605 379 * parser.c (objc_foreach_stmt): Set iterator 380 to nil. 381 3822006-09-01 Fariborz Jahanian <fjahania@apple.com> 383 384 Radar 4712269 385 * typeck.c (build_unary_op): Call objc_build_incr_decr_setter_call 386 for potential ince/decr pre/post expressions involving properties. 387 3882006-07-21 Fariborz Jahanian <fjahanian@apple.com> 389 390 Radar 4631818 391 * parser.c (cp_parser_parse_foreach_stmt): New. 392 (cp_parser_iteration_statement): Remove old code. 393 Replace it with call to cp_parser_parse_foreach_stmt. 394 (cp_parser_simple_declaration): Remove old code. 395 (cp_parser_init_declarator): Remove old code. 396 3972006-08-31 Fariborz Jahanian <fjahanian@apple.com> 398 399 Radar 4697411 400 * typeck.c (build_class_member_access_expr): Call 401 objc_volatilize_component_ref. 402 4032006-07-18 Fariborz Jahanian <fjahanian@apple.com> 404 405 Radar 4592503 406 * class.c (layout_class_type): Check on illegal use of __weak 407 on struct fields. 408 * decl.c (start_decl): Check on illegal use of __weak on 409 variable declarations. 410 4112006-07-14 Fariborz Jahanian <fjahanian@apple.com> 412 413 Radar 4621020 414 * lex.c (reswords): Added entry for 'weak' attribute keyword. 415 * parser.c (objc_cp_parser_at_property): Recorgnize 'weak'attribute. 416 4172006-06-26 Fariborz Jahanian <fjahanian@apple.com> 418 419 Radar 4591909 420 * lex.c (reswords): New entry for 'dynamic' attribute. 421 * parser.c (objc_cp_parser_at_property): Change to parse new 422 attribute syntax. 423 4242006-05-18 Fariborz Jahanian <fjahanian@apple.com> 425 426 Radar 4548636 (objc attributes on class) 427 * parser.c (objc_attr_follwed_by_at_keyword): New routine to disambiguate 428 attribute before a type and attribute before an @interface declaration.. 429 (cp_parser_declaration): Handle case of attribute list which can be 430 followed by an @interface. 431 (cp_parser_objc_class_interface): Parse possible attribute list before 432 parsing @interface. 433 (cp_parser_objc_declaration): Recognize 'attribute' as a valid token which 434 can start an @interface declaration. 435 4362006-05-16 Fariborz Jahanian <fjahanian@apple.com> 437 438 Radar 4547045 439 * parser.c (objc_foreach_stmt): Fix a thinko. 440 4412006-04-12 Fariborz Jahanian <fjahanian@apple.com> 442 443 Radar 4507230 444 * parser.c (objc_foreach_stmt): Check for valid objc 445 objects in foreach header. 446 4472006-04-06 Fariborz Jahanian <fjahanian@apple.com> 448 449 Radar 4436866 450 (Missing copies attribute) 451 * lex.c (reswords): New keyword 'copies' added. 452 * parser.c (objc_cp_parser_at_property): Parse 'copies' 453 attribute. 454 4552006-02-15 Fariborz Jahanian <fjahanian@apple.com> 456 457 Radar 4445586 458 * semantics.c (begin_do_stmt): DO_STMT nodes take an 459 extra argument to build. 460 4612005-11-08 Fariborz Jahanian <fjahanian@apple.com> 462 463 Radar 4330422 464 465 * typeck.c (comp_ptr_ttypes_real): Remove the hack. un-volatize the 466 artificially 'volatized' type before doing pointer comparison. 467 4682005-08-15 Ziemowit Laski <zlaski@apple.com> 469 470 Radar 4093475 471 * parser.c (cp_parser_objc_interstitial_code): Catch stray 472 '{' and '}' tokens and issue appropriate errors. 473 (cp_parser_objc_method_prototype_list, 474 cp_parser_objc_method_definition_list): Bail out if end-of-file 475 is seen; issue error if trailing '@end' is not seen. 476 4772008-08-06 Fariborz Jahanian <fjahanian@apple.com> 478 479 Radar 6040305 - work in progress. 480 * parser.c (clean_and_exit): Clean up if inside 481 a function. 482 (cp_parser_block_literal_expr): Set DECL_NO_STATIC_CHAIN 483 if inside a function. 484 4852008-08-05 Fariborz Jahanian <fjahanian@apple.com> 486 487 Radar 6040305 - work in progress. 488 * decl.c (init_byref_decl): Generate c-style helper 489 functions for compose/dispose helpers. 490 4912008-08-04 Fariborz Jahanian <fjahanian@apple.com> 492 493 Radar 6040305 - work in progress. 494 * decl.c (synth_block_byref_id_object_copy_func, 495 synth_block_byref_id_object_dispose_func, 496 block_start_struct, block_finish_struct, 497 new_block_byref_decl, init_byref_decl): New routines. 498 (cp_finish_decl): Build the APIed version of 499 a __byref local vriable. 500 * semantics.c (finish_id_expression): Add a __byref 501 variable to the list of such variables for current 502 block. 503 * parser.c (build_component_ref): Fix to make it work. 504 (cp_parser_block_literal_expr): Push/pop language-c, 505 set context of the helper function. 506 (declare_block_prologue_local_vars): Mend tree for 507 the built-in local variables in the helper prologue. 508 5092008-07-30 Fariborz Jahanian <fjahanian@apple.com> 510 511 Radar 6040305 512 * call.c (standard_conversion): Allow conversion of 'id' 513 type to a block pointer. 514 5152008-07-30 Fariborz Jahanian <fjahanian@apple.com> 516 517 Radar 6040305 518 * typeck.c (build_block_call): New 519 (build_function_call): Call build_block_call 520 for block calls. 521 * call.c (standard_conversion): Remove "void *" to 522 block pointer conversion. 523 5242008-07-29 Fariborz Jahanian <fjahanian@apple.com> 525 526 Radar 6040305 527 * call.c (standard_conversion): Allow assignment of 528 "void *" to block pointer object. 529 5302008-07-28 Fariborz Jahanian <fjahanian@apple.com> 531 532 Radar 6040305 533 * typeck.c (comptypes): block-pointer types' 534 return type get special treatment. 535 5362008-07-16 Eugene Marinelli <marinelli@apple.com> 537 538 Radar 5559195 539 * decl.c (cxx_maybe_build_cleanup): When considering whether to 540 build a cleanup for a class type, use 541 CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY and 542 CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE instead of 543 TYPE_HAS_NONTRIVIAL_DESTRUCTOR to determine whether it must be 544 output. 545 5462008-07-15 Eugene Marinelli <marinelli@apple.com> 547 548 Radar 5559195 549 * cp-tree.h (struct lang_type_class): Add destructor_triviality_final 550 flag to mark when has_nontrivial_destructor_body and 551 destructor_nontrivial_because_of_base are final. Add accessor for 552 this flag. 553 * parser.c (cp_parser_statement_seq_opt): Use 554 CLASSTYPE_DESTRUCTOR_TRIVIALITY_FINAL to determine if 555 destructor should be checked for being empty, and set it if 556 CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY is changed. 557 5582008-07-10 Eugene Marinelli <marinelli@apple.com> 559 560 Radar 5559195 561 * init.c (push_base_cleanups): Check flags indicating whether 562 destructor of base class has a nontrivial body, has a base destructor 563 that must be called, or is private to determine whether it should be 564 called by the derived class. Set 565 CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE to 1 if it has 566 members that must be deleted. 567 * class.c (check_bases, finish_struct_bits, 568 add_implicitly_declared_members): Set 569 CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE and 570 CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY based on base classes. 571 (check_methods): Set CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY to 1 572 whenever a user-declared destructor is seen as a conservative 573 assumption. 574 * cp-tree.h (struct lang_type_class): Add 575 has_nontrivial_destructor_body and 576 destructor_nontrivial_because_of_base flags. Decrement remaining 577 dummy bits. Add accessors for these flags. 578 * parser.c (cp_parser_statement_seq_opt): Unmark 579 CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY and then set it again only if 580 a statement is parsed. 581 5822007-05-07 Fariborz Jahanian <fjahanian@apple.com> 583 584 Radar 4157812 585 * parser.c (cp_parser_objc_method_keyword_params): Recognize optional 586 method argument attribute. 587 5882007-03-21 Fariborz Jahanian <fjahanian@apple.com> 589 590 Radar 2848255 591 * except.c (do_begin_catch): Take a new argument to decide 592 to call objc_begin_catch for objc exceptions. 593 (objcp_build_eh_type_type): New. 594 (do_end_catch): Call objc_end_catch for objc type 595 exceptions. 596 (expand_start_catch_block): Add new argument to do_begin_catch call. 597 (build_throw): Call objc_throw_exception for throwing objc type objects. 598 * cp-tree.h (objc2_valid_objc_catch_type, objcp_build_eh_type_type): 599 New extern decl. 600 * parser.c (cp_parser_objc_try_catch_finally_stateme): Add syntax for 601 @catch(...). 602 6032006-04-26 Fariborz Jahanian <fjahanian@apple.com> 604 605 Radar 3803157 (method attributes) 606 * parser.c (cp_parser_objc_maybe_attributes): New. 607 (cp_parser_objc_method_keyword_params): Parse attributes at end 608 of method declaration. 609 (cp_parser_objc_method_tail_params_opt): Parse attributes after 610 '...'. 611 (cp_parser_objc_method_signature): Retreive method attribute for 612 the caller. 613 (cp_parser_objc_method_prototype_list): Pass new arg. to 614 cp_parser_objc_method_signature and pass attributes to 615 objc_add_method_declaration. 616 (cp_parser_objc_method_definition_list): Pass new arg. to 617 cp_parser_objc_method_signature and pass attributes to 618 objc_start_method_definition. 619 6202006-03-27 Fariborz Jahanian <fjahanian@apple.com> 621 622 Radar 4133425 623 * lex.c (unqualified_name_lookup_error): Issue diagnostic 624 for private 'ivar' access. 625 6262006-02-02 Fariborz Jahanian <fjahanian@apple.com> 627 628 Radar 4426814 629 * typeck.c (build_modify_expr): Undo call to objc_read_weak 630 on LHS of the assignment. 631 * parser.c (cp_parser_cast_expression): Central place to add 632 objc_read_weak call on expressions of __weak objects. 633 6342005-12-15 Fariborz Jahanian <fjahanian@apple.com> 635 636 Radar 4229905 637 * typeck.c (composite_pointer_type): Call objc_have_common_type 638 when comparing two objective-c pointer types. 639 6402005-10-17 Fariborz Jahanian <fjahanian@apple.com> 641 642 Radar 4290840 643 644 * parser.c (cp_parser_objc_method_keyword_params): Check for valid 645 method parameters and issue error. 646 (cp_parser_objc_method_definition_list): Check for invalid tokens 647 which cannot start a function definition. 648 6492005-08-02 Ziemowit Laski <zlaski@apple.com> 650 651 Radar 4185810 652 * parser.c (cp_parser_compound_statement): Continue 653 parsing even if the initial '{' is missing; an error 654 message is already being produced. 655 (cp_parser_statement_seq_opt): In addition to '}' and 656 end-of-file, a statement sequence may also be terminated 657 by a stray 'else' or '@end'. 658 659 # APPLE LOCAL begin for-fsf-4_4 3274130 5295549 6602007-08-03 Geoffrey Keating <geoffk@apple.com> 661 662 Radar 5295549 663 * parser.c (cp_parser_iteration_statement): Handle attributes. 664 * semantics.c (begin_for_stmt): Put attributes in built tree. 665 (begin_while_stmt): Put attributes in built tree. 666 (begin_do_stmt): Put attributes in built tree. 667 * pt.c (tsubst_expr): Handle attributes for FOR_STMT, WHILE_STMT, 668 DO_STMT. 669 * cp-gimplify.c (gimplify_cp_loop): Handle attributes. 670 (gimplify_for_stmt): Pass attributes to gimplify_cp_loop. 671 (gimplify_while_stmt): Pass attributes to gimplify_cp_loop. 672 (gimplify_do_stmt): Pass attributes to gimplify_cp_loop. 673 * dump.c (cp_dump_tree): Dump attributes for FOR_STMT, WHILE_STMT, 674 DO_STMT. 675 * cp-tree.h (begin_while_stmt): Update prototype. 676 (begin_do_stmt): Likewise. 677 (begin_for_stmt): Likewise. 678 * cp-tree.def (FOR_STMT): Add extra parameter. 679 (WHILE_STMT): Likewise. 680 (DO_STMT): Likewise. 681 * init.c (build_vec_init): Update for change to begin_for_stmt. 682 683 # APPLE LOCAL end for-fsf-4_4 3274130 5295549 684