12010-03-16 Fariborz Jahanian <fjahanian@apple.com> 2 3 Radar 7760213 4 * c-common.h (HasByrefArray): New decl. 5 * c-common.c (HasByrefArray): New definition. 6 * c-typeck.c (build_external_ref): Diagnose access of 7 __block array. 8 92010-03-12 Jim Grosbach <grosbach@apple.com> 10 11 Radar 7744816 12 13 * expmed.c (synth_mult): Remove incorrect special case handling for 14 0xffffffff. 15 162010-03-12 Fariborz Jahanian <fjahanian@apple.com> 17 18 Radar 7735196 19 * c-parser.c (build_block_struct_initlist): 20 Set BLOCK_USE_STRET flag in block descriptor for 21 blocks which return their aggregate value in memory. 22 * c-common.h (BLOCK_USE_STRET): New flag. 23 242010-03-05 Fariborz Jahanian <fjahanian@apple.com> 25 26 Radar 7721728 27 * c-typeck.c (build_external_ref): Diagnose 28 importation of copied-in variables. 29 302009-03-12 Caroline Tice <ctice@apple.com> 31 32 Radar 6144634 33 * c-parser.c (c_parser_statement_after_labels): When 34 re-setting the expression location at the end, use the input 35 location for Block pointer assignments. 36 372009-02-11 Fariborz Jahanian <fjahanian@apple.com> 38 39 Radar 6573923 40 * c-decl.c (synth_block_byref_id_object_copy_func, 41 synth_block_byref_id_object_dispose_func): Set BLOCK_BYREF_CALLER 42 flag in call to copy/dispose helper functions. 43 * c-common.h (BLOCK_BYREF_CALLER): New flag. 44 452008-12-21 Caroline Tice <ctice@apple.com> 46 47 Radar 6455678 48 * cp/typeck.c (original_type): Stop if the type 49 and its DECL_ORIGINAL_TYPE are the same. 50 512008-12-18 Bill Wendling <wendling@apple.com> 52 53 Radar 6457359 54 * c-parser.c (build_block_struct_initlist): Changed type. 55 * cp/parser.c (build_block_struct_initlist): Ditto. 56 572008-12-02 Caroline Tice <ctice@apple.com> 58 59 Radar 6386976 60 * objcp/objcp-decl.h (TYPE_HAS_OBJCXX_INFO): New macro. 61 * objcp/objcp-lang.c (objcp-decl.h): New include statement, with 62 required define. 63 (LANG_HOOKS_IS_RUNTIME_SPECIFIC_TYPE): Redefine for 64 obj-c++. 65 (objcxx_is_runtime_type): New function. 66 672008-12-02 Fariborz Jahanian <fjahanian@apple.com> 68 69 Radar 6411649 70 * funciton.h: Added new field. 71 * c-common.c (build_block_helper_name): Produce a unique 72 block number per each enclosing function when building 73 the block helper function name. 74 752008-11-18 Stuart Hastings <stuart@apple.com> 76 77 Radar 6353006 78 * tree.c (generic_block_literal_struct_type): Fix APPLE LOCAL. 79 * langhooks-def.h (lhd_build_generic_block_struct_type): Fix 80 APPLE LOCAL. 81 822008-11-07 Fariborz Jahanian <fjahanian@apple.com> 83 84 Radar 5847976 85 * c-decl.c (synth_block_byref_id_object_copy_func): Takes a new 86 'flag' argument and generates the much simplified API. 87 (synth_block_byref_id_object_dispose_func): Ditto. 88 (new_block_byref_decl): Hack to prevent issuing bogus warning 89 on a field declared as __weak. 90 (init_byref_decl): Takes an additional 'flag' argument 91 and passes it down to synth_block_byref_id_object_copy_func and 92 synth_block_byref_id_object_dispose_func. 93 (finish_decl): Computes the flag for the block variable declaration. 94 * c-common.c (build_block_byref_release_decl, 95 build_block_byref_assign_copy_decl): Removed. 96 (build_block_byref_release_exp): Use the new API. 97 (build_block_object_assign_decl, build_block_object_assign_call_exp, 98 build_block_object_dispose_decl, build_block_object_dispose_call_exp): New. 99 (build_indirect_object_id_exp): Fixed a code gen bug which was exposed in 100 c/c++ mode, but not in ObjC/ObjC++ mode. 101 * c-common.h (build_block_object_assign_call_exp, 102 build_block_object_dispose_call_exp, 103 objc_is_gcable_type): New decls. 104 Declaration of several new flags. 105 (cast_to_pointer_to_id): Removed. 106 * stub-objc.c (objc_is_gcable_type): New 107 (copy_in_object, retain_block_component, release_block_component): Removed. 108 (cast_to_pointer_to_id): Removed. 109 * c-parser.c (build_block_struct_initlist): Remove call to copy_in_object. 110 (synth_copy_helper_block_func): Generates much simplified API. 111 (synth_destroy_helper_block_func): Ditto. 112 (block_object_dispose): Removed. 113 * config/darwin-c.c (darwin_cpp_builtins): Define __weak even when 114 -fobjc-gc is off. 115 1162008-10-31 Fariborz Jahanian <fjahanian@apple.com> 117 118 Radar 6175959 119 * stub-objc.c (block_requires_copying): Object pointers with 120 NSObject attribute also require copy/release API. 121 * c-parser.c (synth_copy_helper_block_func): Use the new API 122 _Block_object_assign for ObjC object copying. 123 (block_object_dispose): New 124 (synth_destroy_helper_block_func): Call block_object_dispose 125 to use new _Block_object_dispose API for ObjC object release. 126 1272008-10-27 Fariborz Jahanian <fjahanian@apple.com> 128 129 Radar 6231433 130 * c-typeck.c (objc_compare_types, objc_have_common_type): 131 Take an extra argument for better diagnostics. 132 * c-common.c (objc_compare_types, objc_have_common_type): 133 Take extra argument. 134 * stub-objc.c: Ditto 135 1362008-10-24 Fariborz Jahanian <fjahanian@apple.com> 137 138 Radar 6305545 139 * cgraph.h (lower_if_nested_functions): New decl. 140 * tree-gimple.h (lower_nested_functions): Takes one more arg. 141 * cgraphunit.c (lower_if_nested_functions): New 142 * tree-nested.c (lower_nested_functions): Skip structors. 143 1442008-10-24 Fariborz Jahanian <fjahanian@apple.com> 145 146 Radar 5847213 (minor tweak) 147 * c-decl.c (build_block_descriptor_type): 148 Make descriptor_ptr_type and descriptor_ptr_type_with_copydispose 149 visible to pch. 150 1512008-10-23 Caroline Tice <ctice@apple.com> 152 153 Radar 6300081 154 * tree.c(build_block_pointer_type): Add call to 155 build_generic_block_struct_type to initialize 156 generic_block_literal_struct_type if necessary. 157 * cp/parser.c (build_generic_block_struct_type): Update comments. 158 (build_block_struct_type): Remove call to 159 build_generic_block_struct_type. 160 (make_block_pointer_declarator): Likewise. 161 * c-decl.c (make_block_pointer_declarator): Likewise. 162 * c-parser.c (build_block_struct_type): Likewise. 163 (build_generic_block_struct_type): Update comments. 164 1652008-10-22 Caroline Tice <ctice@apple.com> 166 167 Radar 6300081 & Radar 6163705 168 * tree.h (generic_block_literal_struct_type): Extern global variable 169 decl. 170 (build_generic_block_struct_type): New extern function decl. 171 * cp/parser (build_generic_block_struct_type): New function. 172 (build_block_struct_type): Call build_generic_block_struct_type 173 to initialize generic_block_literal_struct_type. 174 (make_block_pointer_declarator): Likewise. 175 (declare_block_prologue_local_vars): Temporarily set input_location 176 to 1 before the start of the block function; re-set input_location at 177 the end of this function. 178 * dwarf2out.c (add_type_attribute): If the type is a 179 BLOCK_POINTER_TYPE, assign it to be a pointer to a 180 generic_block_literal_struct_type. 181 * c-decl.c (make_block_pointer_declarator): Call 182 build_generic_block_struct_type to initialize 183 generic_block_literal_struct_type. 184 * c-common.c (generic_block_literal_struct_type): New global variable. 185 * c-parser.c (build_generic_block_struct_type): New function. 186 (build_block_struct_type): Call build_generic_block_struct_type 187 to initialize generic_block_literal_struct_type. 188 * testsuite/gcc.apple/block-debug-1.c: Fix test to work with new 189 compiler modifications. 190 * testsuite/gcc.apple/block-debug-2.c: Likewise. 191 * testsuite/g++.apple/block-debug-1.C: Likewise. 192 * testsuite/g++.apple/block-debug-2.C: Likewise. 193 1942008-10-10 Fariborz Jahanian <fjahanian@apple.com> 195 196 Radar 5847213 - New Block ABI 197 * dwarf2out.c (add_type_attribute): Unusuable code 198 for radar 5811943 is removed. 199 * c-decl.c (build_block_byref_decl): Removed unneeded 200 build of block_original_byref_decl_list. 201 (build_block_internal_types): Removed. 202 (build_block_descriptor_type): New routine to build the descriptor type. 203 (make_block_pointer_declarator): Unused code is removed. 204 * c-typeck.c (build_block_call): New code gen for block calls. 205 * c-common.c (invoke_impl_ptr_type): Removed. 206 * c-common.h (block_original_byref_decl_list, build_block_internal_types): Removed 207 (build_block_descriptor_type, BLOCK_HAS_DESCRIPTOR): Decls added. 208 * c-parser.c (build_block_struct_type): Block literal expression internal type 209 is redeclared into its new layout. 210 (build_block_struct_initlist): Initializer list for above type is redone. 211 (build_descriptor_block_decl): New routine to declare the descriptor variable 212 (build_block_literal_tmp): Modified for the new type and initiazation. 213 2142008-10-06 Fariborz Jahanian <fjahanian@apple.com> 215 216 Radar 6268817 217 * c-decl.c (check_for_loop_decls): Block helper function 218 is OK if declared in a for-loop main statement block. 219 2202008-10-02 Fariborz Jahanian <fjahanian@apple.com> 221 222 Radar 6246527 223 * attribs.c (decl_attributes): Added support for adding attributes 224 on block pointer variable declarations. 225 * c-common.c (block_delta_format_args): Add 226 (any_recognized_block_attribute): Add 227 * c-common.h (any_recognized_block_attribute): New decl. 228 * c-parser.c (c_parser_block_literal_expr): Call to do the delta 229 on printf attribute. 230 2312008-09-30 Fariborz Jahanian <fjahanian@apple.com> 232 233 Radar 6225809 234 * c-decl.c (build_block_byref_decl): Add __block vaiables 235 to intervening blocks. 236 2372008-09-25 Fariborz Jahanian <fjahanian@apple.com> 238 239 Radar 6237713 240 * c-common.c (handle_noreturn_attribute): Add 'noreturn' 241 attribute to block pointer decls. 242 * c-parser.c (c_parser_block_literal_expr): Parse and set 243 attributes on block literals. 244 2452008-09-25 Fariborz Jahanian <fjahanian@apple.com> 246 247 Radar 6244520 - minor addition 248 * c-common.c (build_indirect_object_id_exp): offset needs 249 be updated to accomodate addition of the new field. 250 2512008-09-16 Fariborz Jahanian <fjahanian@apple.com> 252 253 Radar 6214617 254 * c-common: New flag BLOCK_HAS_CXX_OBJ replaces BLOCK_NO_COPY. 255 (BlockImportsCxxObjects): New field replaces BlockHasByrefVar. 256 * c-parser.c (build_block_struct_type): Remove setting of 257 BLOCK_NO_COPY flag. 258 2592008-09-16 Fariborz Jahanian <fjahanian@apple.com> 260 261 Radar 6217257 262 * c-common.c (handle_blocks_attribute): Diagnose 263 vla __block declarations. 264 2652008-09-12 Fariborz Jahanian <fjahanian@apple.com> 266 267 Radar 6212722 (tweak) 268 * c-decl.c (build_block_ref_decl): Use array_to_pointer_conversion 269 and function_to_pointer_conversion. 270 * c-typeck.c (array_to_pointer_conversion, function_to_pointer_conversion): 271 Made them global. 272 * c-common.h (array_to_pointer_conversion, function_to_pointer_conversion): 273 Declare. 274 2752008-09-09 Fariborz Jahanian <fjahanian@apple.com> 276 277 Radar 6169580 278 * c-commmon.c (build_block_helper_name): Fix bug in 279 block helper function name mangling. 280 2812008-09-03 Fariborz Jahanian <fjahanian@apple.com> 282 283 Radar 6185344 284 * c-typeck.c (c_finish_return): Don't do block specific 285 stuff when block has a return type. 286 * c-common.h (block_sema_info): block_has_return_type is 287 a new field. 288 * c-parser.c (c_parser_direct_declarator): Terminate type 289 parsing for block return types. 290 (c_parser_block_literal_expr): Added support to parse and 291 handle explicit return type for blocks. 292 2932008-08-28 Fariborz Jahanian <fjahanian@apple.com> 294 295 Radar 6160536 296 * c-commmon.c (build_block_helper_name): New 297 * c-common.h (build_block_helper_name): New decl. 298 * c-parser.c (c_parser_block_literal_expr): Call 299 build_block_helper_name to build pretty helper function 300 name. 301 3022008-08-28 Fariborz Jahanian <fjahanian@apple.com> 303 304 Radar 6180456 305 * c-decl.c (synth_block_byref_id_object_copy_func): Different 306 API for copying __block declared objects in c. 307 (synth_block_byref_id_object_dispose_func): Different API 308 for releasing __block declared objects in c. 309 * c-common.c (block_byref_assign_copy_decl): New 310 (build_indirect_object_id_exp): Cast to 'id *' in objective-c 311 mode only. 312 * c-common.h (build_block_byref_assign_copy_decl): New decl. 313 * c-parser.c (synth_copy_helper_block_func): Refactored code 314 to call build_block_byref_assign_copy_decl(). 315 3162008-08-24 Caroline Tice <ctice@apple.com> 317 318 Radars 6144664, 6145471, 6144634 319 c-decl.c (build_block_byref_decl): Assign the source 320 location for each byref decl to the source location of 321 the helper function decl. 322 (build_block_ref_decl): Ditto for ref decls. 323 3242008-08-14 Fariborz Jahanian <fjahanian@apple.com> 325 326 Radar 5822844 327 * c-typeck.c (digest_init): Handler block as initializer. 328 (c_finish_return): check for completed block before 329 analyzing block's return expression. 330 * varasm.c (output_constant): Allow outputting block data. 331 * c-common.h (BLOCK_IS_GLOBAL): New flag. 332 (block_is_complete): New field in block data structure. 333 * c-parser.c (build_block_struct_initlist): New initializer and 334 flag for global block data. 335 (build_block_literal_tmp): Temporary data for global block is 336 declared as global static. 337 (c_parser_block_literal_expr): Removed diagnostics for global blocks. 338 Moved fixing helper function type earlier before its tree is built. 339 3402008-08-06 Fariborz Jahanian <fjahanian@apple.com> 341 342 Radar 6014138 343 * c-decl.c (build_block_byref_decl): In the presence of nested "{" 344 move up the scope chain until reaching the main function body's scope. 345 3462008-08-04 Fariborz Jahanian <fjahanian@apple.com> 347 348 Radar 6040305 - work in progress. 349 * c-decl.c (build_indirect_object_id_exp): Removed. 350 * c-common.c (build_indirect_object_id_exp): Added 351 * c-common.h (build_indirect_object_id_exp): New decl. 352 * config/darwin-c.c (darwin_cpp_builtins): Define __byref 353 in c++ mode as well. 354 3552008-07-18 Fariborz Jahanian <fjahanian@apple.com> 356 357 Radar 6083129 - twiked 358 * c-decl.c (release_all_local_byrefs_at_return): Do not release 359 imported __byref variables in the block. 360 * c-parser.c (gen_block_byref_release_exp): Do not release __byref 361 variables outside of the block when returning from the block. 362 3632008-07-15 Fariborz Jahanian <fjahanian@apple.com> 364 365 Radar 5988451 366 * c-decl.c (build_block_ref_decl): Insert copied in variable 367 in each enclosing block which does not use it. 368 (begin_block): Remove setting of "the_scope" field of the block. 369 (in_imm_block): Fix effect of changing the "the_scope" field. 370 (lookup_name_in_block): Do not skip over copied-in variables when 371 looking up a variable in the block. 372 * c-parser.c (c_parser_block_literal_expr): Set block's "the_scope" field 373 to the helper function's outer-most body scope. 374 3752008-07-08 Fariborz Jahanian <fjahanian@apple.com> 376 377 Radar 6048570 378 * c-typeck.c (c_finish_return): Error on returning a block on the stack. 379 3802008-06-05 Fariborz Jahanian <fjahanian@apple.com> 381 382 Radar 5988995 383 * c-typeck.c (types_are_closure_compatible): Nested block pointer 384 types must be considered when matching block types. 385 3862008-06-05 Fariborz Jahanian <fjahanian@apple.com> 387 388 Radar 5982990 389 * c-parser.c (c_parser_objc_synch_compound_statement): New 390 (c_parser_objc_synchronized_statement): Call 391 c_parser_objc_synch_compound_statement. 392 3932008-06-04 Fariborz Jahanian <fjahanian@apple.com> 394 395 Radar 5985368 396 * c-parser.c (c_parser_declaration_or_fndef): Better diagnostics for 397 a bad block definition. 398 3992008-05-23 Fariborz Jahanian <fjahanian@apple.com> 400 401 Radar 5925781 402 * c-common.c (handle_nonnull_attribute): Support block pointer 403 just like a pointer for nonnull attribute. 404 (check_nonnull_arg): Ditto. 405 4062008-05-20 Fariborz Jahanian <fjahanian@apple.com> 407 408 Radar 5932809 - minor change for runtime delight. 409 * c-parser.c (build_closure_struct_type): Add strcutor fields 410 for __byref 'id' object blocks as well. 411 (build_closure_struct_initlist): And their initializers. 412 4132008-04-30 Caroline Tice <ctice@apple.com> 414 415 Radar 5811961 416 * c-decl.c: (declare_closure_prologue_local_vars): Set the source 417 location for the new decl expr statement to be the source location of 418 the decl tree. 419 4202008-04-25 Fariborz Jahanian <fjahanian@apple.com> 421 422 Radar 5803005 (tweaked) 423 * c-typeck.c (build_external_ref): Refactored global decl checks. 424 4252008-04-24 Caroline Tice <ctice@apple.com> 426 427 Radar 5811943 428 * tree.h (TYPE_CLOSURE_IMPL_STRUCT): New macro. 429 (lang_flag_2): Use previously unused field in tree_type to indicate 430 closure structs. 431 * dwarf2out.c (c-common.h): New include statement. 432 (dwarf_attr_name): Add case for DW_AT_APPLE_closure. 433 (gen_variable_die): Give pointers to closures the 434 invoke_impl_ptr_type. 435 (gen_struct_or_union_type_die): Add DW_AT_APPLE_closure 436 to structs that define closures. 437 * dwarf2.h (DW_AT_APPLE_closure): New Dwarf attribute. 438 * c-typeck.c (invoke_impl_ptr_type): Move declaration from here to 439 c-common.c 440 (build_closure_internal_types): Set TYPE_CLOSURE_IMPL_STRUCT 441 flag for closure structs. 442 * c-common.c (invoke_impl_ptr_type): Move declaration to here from 443 c-typeck.c. 444 4452008-04-23 Fariborz Jahanian <fjahanian@apple.com> 446 447 Radar 5882266 448 * c-typeck.c (types_are_closure_compatible): Check for underlying 449 pointer types as well. 450 4512008-04-15 Stuart Hastings <stuart@apple.com> 452 453 Radar 5862465 454 * tree.h (PTR_OR_REF_CHECK, POINTER_TYPE_P): Add 455 CLOSURE_POINTER_TYPE. 456 * fold-const.c (fold_convert): Add CLOSURE_POINTER_TYPE. 457 * testsuite/gcc.apple/closure-5862465.c: New. 458 4592008-03-31 Fariborz Jahanian <fjahanian@apple.com> 460 461 Radar 5831855 462 * c-typeck.c (convert_for_assignment): Block and 'id' types 463 are interchangeable. 464 4652008-03-28 Fariborz Jahanian <fjahanian@apple.com> 466 467 Radar 5809099 468 * convert.c (convert_to_pointer): Allow typecast of closure 469 pointer to 'id'. 470 (convert_to_closure_pointer): Allow typecast of 'id' 471 of a closure pointer expression. 472 4732008-03-25 Fariborz Jahanian <fjahanian@apple.com> 474 475 Radar 5811887 (minor change) 476 * c-opts.c (c_common_post_options): Remove conditional check 477 of pedantic when setting flag_blocks. 478 4792008-03-24 Fariborz Jahanian <fjahanian@apple.com> 480 481 Radar 5811887 482 * c-cppbuiltin.c: flag_closures renamed to flag_blocks 483 * c-parser.c: Ditto. 484 * c.opt: flag_closures renamed to flag_blocks. flag_blocks 485 defaulted to -1. 486 * c-opts.c (c_common_post_options): All flavors of c99, blocks are off by 487 default unless requested via -fblocks. 488 4892008-03-24 Fariborz Jahanian <fjahanian@apple.com> 490 491 Radar 5814025 492 * c-tree.h (make_closure_pointer_declarator): Takes 493 additional argument. 494 * c-decl.c (grokdeclarator): Get 'const'-ness of closure 495 pointer. 496 (make_closure_pointer_declarator): Takes additional argument for 497 const/volatile. 498 * c-parser.c (c_parser_declarator): Pass down attribute info. 499 to make_closure_pointer_declarator. 500 5012008-03-20 Fariborz Jahanian <fjahanian@apple.com> 502 503 Radar 5802025 504 * c-common.h (objc_build_property_getter_func_call): New decl. 505 * stub-objc.c (objc_build_property_getter_func_call): New stub. 506 5072008-03-18 Fariborz Jahanian <fjahanian@apple.com> 508 509 Radar 5803600 510 * c-decl.c (add_closure_global_byref_list, 511 in_closure_global_byref_list): New defs. 512 * c-common.h (add_closure_global_byref_list, 513 in_closure_global_byref_list): New decls. 514 * c-typeck.c (build_external_ref): global variables 515 declared as 'byref' are enterred in their own list 516 of such declarations per each closure. 517 * c-parser.c (c_parser_postfix_expression): Remove previous fix. 518 (c_parser_closure_byref_declaration): Check for global 519 'byref' by calling in_closure_global_byref_list. 520 5212008-03-13 Fariborz Jahanian <fjahanian@apple.com> 522 523 Radar 5795493 524 * c-typeck.c: Renamed typesAreClosureCompatible to 525 types_are_closure_compatible. 526 5272008-03-11 Fariborz Jahanian <fjahanian@apple.com> 528 529 Radar 5732232 (Related to change of command option/macro) 530 * c-cppbuiltin.c: __CLOSURES__ macro rename __BLOCKS__ 531 * c.opt: -fclosures change to -fblocks. 532 5332008-03-10 Fariborz Jahanian <fjahanian@apple.com> 534 535 Radar 5782740 - part 2 (bug fix). 536 * c-parser.c (synth_copy_helper_closure, 537 synth_destroy_helper_closure): set DECL_ARG_TYPE field of input 538 arguments for the two synthesized helper functions. 539 5402008-02-21 Caroline Tice <ctice@apple.com> 541 542 Radar 5741070 543 * objc/objc-act.c (objc_finish_message_expr): Find 544 the record-type tree from the class interface, and mark the record 545 type as used, for emitting debug info. 546 * cp/cp-objcp-common.c (c_return_interface_record_type): New function. 547 * cp/cp-tree.h (c_return_interface_record_type): New extern function 548 declaration. 549 * c-tree.h (c_return_interface_record_type): Likewise 550 * c-decl.c (c_return_interface_record_type): New function. 551 5522007-08-22 Fariborz Jahanian <fjahanian@apple.com> 553 554 Radar 4947311 555 * c-common.h (objc_declare_protocols, objc_start_protocol): Decl changed. 556 * stub-objc.c (objc_declare_protocols, objc_start_protocol): Changed. 557 * c-parser.c (c_parser_external_declaration): Call to 558 c_parser_objc_protocol_definition takes additional argument. 559 (c_parser_declaration_or_fndef): Protocols with attributes are processed 560 here by passing it to c_parser_objc_protocol_definition. 561 (c_parser_objc_protocol_definition): Takes additional argument and passes 562 it to objc_declare_protocols or objc_start_protocol. 563 5642007-07-13 Fariborz Jahanian <fjahanian@apple.com> 565 566 Radar 5277239 567 * c-parser.c (c_parser_next_token_starts_declspecs): Exclude 568 objc2's property dot-syntax as a declarator. 569 (c_parser_postfix_expression): Convert property dot-syntax on 570 class objects into a property reference expression. 571 5722007-07-10 Fariborz Jahanian <fjahanian@apple.com> 573 574 Radar 5285911 575 * tree.h (CALL_EXPR_OBJC_PROPERTY_GETTER): Macro removed. 576 * c-typeck.c (build_component_ref): Call 577 objc_build_property_reference_expr instead of objc_build_getter_call. 578 (build_modify_expr): Call objc_property_reference_expr instead of 579 objc_property_call. 580 * c-common.h (objc_build_getter_call, objc_property_call): Decl removed. 581 (objc_build_property_reference_expr, objc_property_reference_expr): Decl. 582 added. 583 * stub-objc.c (objc_build_getter_call, objc_property_call): Stub removed. 584 (objc_build_property_reference_expr, objc_property_reference_expr): 585 Stub added. 586 5872007-06-29 Fariborz Jahanian <fjahanian@apple.com> 588 589 Radar 5276085 590 * c-parser.c (c_parser_binary_expression) : objc_generate_weak_read 591 replaced with call to objc_build_weak_reference_tree 592 * c-typeck.c (build_modify_expr, c_objc_common_truthvalue_conversion): 593 objc_remove_weak_read replaced with call to objc_weak_reference_expr. 594 * c-common.h (objc_weak_reference_expr, 595 objc_build_weak_reference_tree) : New decl. 596 (objc_generate_weak_read, objc_remove_weak_read): remove. 597 * stub-objc.c (objc_weak_reference_expr, 598 objc_build_weak_reference_tree): New stub. 599 (objc_generate_weak_read, objc_remove_weak_read): remove. 600 6012007-05-23 Fariborz Jahanian <fjahanian@apple.com> 602 603 Radar 5195402 604 * c-format.c (handle_format_arg_attribute): Check for NSString * 605 and CFStringRef as valid formatting types. 606 (check_format_string): Ditto. 607 * c-common.h (objc_check_format_nsstring, 608 objc_check_cfstringref_type): New decls. 609 * stub-objc.c (objc_check_nsstring_pointer_type): New stub. 610 * config/darwin-c.c (objc_check_cfstringref_type): New 611 (objc_check_format_cfstring): Call objc_check_cfstringref_type 612 for valid CFStringRef argument type. 613 * config/darwin-protos.h (objc_check_cfstringref_type): New decl. 614 * config/darwin.h (CFSTRING_TYPE_CHECK): New macro. 615 6162007-05-18 Fariborz Jahanian <fjahanian@apple.com> 617 618 Radar 5202926 619 * c-common.h (objc_anonymous_local_objc_name): New decl. 620 * config/darwin-protos.h (objc_anonymous_local_objc_name): Decl. 621 * stub-objc.c (objc_anonymous_local_objc_name): New stub. 622 * config/darwin.h (ASM_OUTPUT_LABELREF) Call 623 objc_anonymous_local_objc_name. 624 6252007-05-07 Fariborz Jahanian <fjahanian@apple.com> 626 627 Radar 4157812 628 * c-common.h (objc_build_keyword_decl): Takes a new argument. 629 * stub-objc.c (objc_build_keyword_decl): Ditto. 630 * c-parser.c (c_parser_objc_method_decl): Recognize optional 631 method's argument attribute. 632 (c_parser_objc_method_decl): Handle errornous selector. 633 6342007-05-02 Fariborz Jahanian <fjahanian@apple.com> 635 636 Radar 4502186 637 * c-typeck.c (convert_for_assignment): Remove synthesized 'volatile' 638 type before doing type comparison. 639 6402007-03-29 Fariborz Jahanian <fjahanian@apple.com> 641 642 Radar 4564694 643 * c-parse.c (c_parser_objc_class_instance_variables): Add @package 644 support to syntax. 645 * c-common.h (RID_AT_PACKAGE): Add 646 6472007-03-29 Fariborz Jahanian <fjahanian@apple.com> 648 649 Radar 4947014 - objc atomic property 650 * c-common.h (RID_NONATOMIC): Add 651 * c-parse.c (c_parser_objc_property_attribute) : Recognize 'nonatomic' 652 as new property. 653 6542007-03-23 Fariborz Jahanian <fjahanian@apple.com> 655 656 Radar 4985544 657 * c-format.c (enum format_type): New entry for NSString format. 658 (format_typ): Has a new entry for NSString format. 659 (decode_format_attr): Error on use of NSString format on a 660 non-objective-c program. 661 (objc_check_nsformat_arg): New. 662 (check_format_info): Call back for NSString is objc_check_nsformat_arg 663 (handle_format_attribute): Use objc_check_format_nsstring for 664 NSString format. 665 * c-common.h (objc_NSString_format): New decl. 666 (objc_check_format_nsstring): New decl. 667 * stub-objc.c (objc_NSString_format, objc_check_format_nsstring): New 668 stubs. 669 * config/darwin-protos.h (darwin_cfstring_type_node): New decl. 670 * config/darwin.c (darwin_cfstring_type_node): New 671 * config/darwin.h (TARGET_CFSTRING_P): New macro 672 6732007-03-23 Fariborz Jahanian <fjahanian@apple.com> 674 675 Radar 4985544 676 * c-format.c (enum format_type): New entry for NSString format. 677 (format_typ): Has a new entry for NSString format. 678 (decode_format_attr): Error on use of NSString format on a 679 non-objective-c program. 680 (objc_check_nsformat_arg): New. 681 (check_format_info): Call back for NSString is objc_check_nsformat_arg 682 (handle_format_attribute): Use objc_check_format_nsstring for 683 NSString format. 684 * c-common.h (objc_NSString_format): New decl. 685 (objc_check_format_nsstring): New decl. 686 * stub-objc.c (objc_NSString_format, objc_check_format_nsstring): New 687 stubs. 688 * config/darwin-protos.h (darwin_cfstring_type_node): New decl. 689 * config/darwin.c (darwin_cfstring_type_node): New 690 * config/darwin.h (TARGET_CFSTRING_P): New macro 691 6922007-03-22 Fariborz Jahanian <fjahanian@apple.com> 693 694 Radar 4965989 695 * c-parser.c (c_parser_objc_class_definition): Add supprt for anonymous 696 category syntax. 697 6982007-03-21 Fariborz Jahanian <fjahanian@apple.com> 699 700 Radar 2848255 701 * c-parser.c (c_parser_objc_try_catch_statement): Parse @catch(...). 702 * c.opt: Add -fobjc-zerocost-exceptions option. 703 * c-opts.c (c_common_post_options): Set the flags for 704 -fobjc-zerocost-exceptions. 705 * c-common.h: Add some declarations. 706 * stub-objc.c (objc2_valid_objc_catch_type, objc2_build_throw_call): 707 New stubs. 708 * config/darwin.h (OBJC_FLAG_OBJC_ABI): Check for proper 709 use of -fobjc-zerocost-exceptions option. 710 7112006-11-06 Fariborz Jahanian <fjahania@apple.com> 712 713 Radar 4781080 (part 2) 714 * targhooks.c (default_objc_fpreturn_msgcall): Takes 2nd argument. 715 * targhooks.h (default_objc_fpreturn_msgcall): Changed Decl. 716 * target.h (objc_fpreturn_msgcall): Changed Decl. 717 * config/i386/i386.h (OBJC_FPRETURN_MSGCALL): Changed Decl. 718 * config/i386/i386-protos.h (ix86_objc_fpreturn_msgcall): Changed Decl. 719 * config/i386/i386.c (ix86_objc_fpreturn_msgcall): Changed definition. 7202006-09-15 Fariborz Jahanian <fjahania@apple.com> 721 722 Radar 4727659 723 * c-common.c (handle_noreturn_attribute): Handle method_decl 724 nodes as well. 725 7262006-09-01 Fariborz Jahanian <fjahania@apple.com> 727 728 Radar 4712269 729 * c-common.h (objc_build_incr_decr_setter_call): New decl. 730 * stub-objc.c (objc_build_incr_decr_setter_call): New stub. 731 * c-typeck.c (build_unary_op): Call objc_build_incr_decr_setter_call 732 for potential ince/decr pre/post expressions involving properties. 733 7342006-08-31 Fariborz Jahanian <fjahanian@apple.com> 735 736 Radar 4697411 737 * c-common.h (objc_volatilize_component_ref): New decl. 738 * c-typeck.c (build_component_ref): Call objc_volatilize_component_ref. 739 * stub-objc.c (objc_volatilize_component_ref): New stub. 740 7412006-07-18 Fariborz Jahanian <fjahanian@apple.com> 742 743 Radar 4592503 744 * c-decl.c (finish_struct): Check on illegal use of __weak 745 on struct fields. 746 * decl.c (start_decl): Check on illegal use of __weak on 747 variable declarations. 748 * stub-objc.c (objc_checkon_weak_attribute): New stub. 749 * c-common.h (objc_checkon_weak_attribute): New decl. 750 7512006-06-26 Fariborz Jahanian <fjahanian@apple.com> 752 753 Radar 4591909 754 * c-parse.in: New/modified grammar for new attributes in 755 properties. 756 (yylexname): Change to recognize new attribute terminals. 757 * c-common.h (RID_DYNAMIC): New enum declaration. 758 7592006-07-14 Fariborz Jahanian <fjahanian@apple.com> 760 761 Radar 4621020 762 * c-parse.in: Added 'weak' attribute keyword for @property. 763 * c-common.h: 'weak' related declarations. 764 7652006-05-18 Fariborz Jahanian <fjahanian@apple.com> 766 767 Radar 4548636 (objc attributes on class) 768 * c-parse.in: Add attribute non-terminal before 769 AT_INTERFACE. 770 * c-common.h (objc_start_class_interface): New argument added. 771 * stub-objc.c (objc_start_class_interface): Ditto. 772 7732006-05-16 Fariborz Jahanian <fjahanian@apple.com> 774 775 Radar 4547045 776 * c-gimplify.c (obj_reuse_bc_block): Removed. 777 (objc_pop_label, objc_push_label): New. 778 (gimplify_c_loop): Fix up foreach's innerloop break label. 779 7802006-04-26 Fariborz Jahanian <fjahanian@apple.com> 781 782 Radar 3803157 (method attributes) 783 * c-parse.in: Add grammar support for declaring 784 attribute for objc methods. 785 * c-common.c (handle_deprecated_attribute): Recognize 786 objc methods as valid declarations. 787 (handle_unavailable_attribute): Ditto. 788 * c-common.h: Bunch of new extern declarations. 789 * stub-objc.c (objc_add_method_declaration, objc_start_method_definition): 790 Added new argument. 791 (objc_method_decl): New stub. 792 7932006-04-12 Fariborz Jahanian <fjahanian@apple.com> 794 795 Radar 4507230 796 * c-common.h (objc_type_valid_for_messaging): Declare. 797 * stub-objc.c (objc_type_valid_for_messaging): New stub. 798 7992006-04-06 Fariborz Jahanian <fjahanian@apple.com> 800 801 Radar 4436866 802 (Missing copies attribute) 803 * c-parse.in: Add grammer for 'copies' attribute. 804 * c-common.h (RID_COPIES): New enumerator. 805 8062006-03-27 Fariborz Jahanian <fjahanian@apple.com> 807 808 Radar 4133425 809 * c-common.h (objc_diagnose_private_ivar): New decl. 810 * stub-objc.c (objc_diagnose_private_ivar): New stub. 811 * c-decl.c (undeclared_variable): Issue disnostic on 812 private 'ivar' access. 813 8142006-03-27 Fariborz Jahanian <fjahanian@apple.com> 815 816 Radar 4491608 817 * c-typeck.c (convert_arguments): function name must come from 'selector' 818 when diagnosing 'too many arguments'. 819 8202006-03-23 Fariborz Jahanian <fjahanian@apple.com> 821 822 Radar 4193359 823 * c-typeck.c (convert_for_assignment): Remove Objective-C EH machinery 824 'volatile' qualifier before doing type comparison. 825 8262006-02-28 Fariborz Jahanian <fjahanian@apple.com> 827 828 Radar 4441049 829 * c-common.h (objc_v2_bitfield_ivar_bitpos): New decl. 830 * expr.h (objc_v2_bitfield_ivar_bitpos): New decl. 831 * stub-objc.c (objc_v2_bitfield_ivar_bitpos): New stub. 832 * expr.c (get_inner_reference): Compute ivar's bitfield bit offset. 833 8342006-02-15 Fariborz Jahanian <fjahanian@apple.com> 835 836 Radar 4445586 837 * c-common.def (DO_STMT): Takes an extra argument. 838 8392006-02-02 Fariborz Jahanian <fjahanian@apple.com> 840 841 Radar 4426814 842 * c-parse.in (cast_expr): generate objc_read_weak call on 843 each __weak object in the expession. 844 * c-typeck.c (build_modify_expr): Undo the call to objc_read_weak 845 on LHS expression. 846 * c-objc-common.c (c_objc_common_truthvalue_conversion): Generate 847 objc_read_weak call before generating tree for !exp, etc. 848 * c-common.h (objc_generate_weak_read, objc_remove_weak_read): New decl. 849 * stub-objc.c (objc_generate_weak_read, objc_remove_weak_read): New stubs. 850 8512005-12-15 Fariborz Jahanian <fjahanian@apple.com> 852 853 Radar 4229905 854 * c-typeck.c (build_conditional_expr): Call objc_have_common_type when 855 looking for objective-c common pointer types. 856 * c-common.h objc_have_common_type): New declaration. 857 * stub-objc.c (objc_have_common_type): New stub. 858 8592005-12-05 Mike Stump <mrs@apple.com> 860 861 Radar 4357979 862 * doc/invoke.texi (C Dialect Options): Improve -fnested-functions wording. 863 * doc/extend.texi (Nested Functions): Note that on darwin nested 864 functions are off by default. 865 8662005-11-08 Fariborz Jahanian <fjahanian@apple.com> 867 868 Radar 4330422 869 870 * c-common.h (objc_non_volatilized_type): New declaration 871 * stub-objc.c (objc_non_volatilized_type): New stub. 872 8732005-10-12 Fariborz Jahanian <fjahanian@apple.com> 874 875 Radar 4291785 876 877 * c-common.h (objc_get_interface_ivars): New declaration 878 (objc_detect_field_duplicates): Ditto. 879 * c-decl.c (finish_struct): Check for duplicate among 880 flattened fields if objective-c. 881 * stub-objc.c (objc_get_interface_ivars): New stub. 882 (objc_detect_field_duplicates): Ditto. 883 8842005-09-28 Devang Patel <dpatel@apple.com> 885 886 Radar 4258406 887 * c-parse.in (nested_function): Report an error, instead of a warning. 888 (nontype_nested_function): Same. 889 * c.opt (Wnested-funcs): Remove. 890 * doc/invoke.texi: Remove Wnested-funcs documentations. 891 8922005-08-03 Fariborz Jahanian <fjahanian@apple.com> 893 894 Radar 4188876 895 * c-typeck.c (pop_init_level): Issue diagnostic on non-constant 896 vector initializers. 897 8982005-06-22 Ziemowit Laski <zlaski@apple.com> 899 900 Radar 4154928 901 * c-common.h (objc_common_type): New prototype. 902 * c-typeck.c (build_conditional_expr): For two ObjC pointer types, 903 use their ObjC common type. 904 * stub-objc.c (objc_common_type): New stub. 905 906/* APPLE LOCAL merge marger */ 907/* Stuff under is in fsf mainline, but not in the 4.2 branch */ 908 9092007-08-02 Geoffrey Keating <geoffk@apple.com> 910 911 Radar 3274130, 5295549 912 * c-parser.c (c_parser_while_statement): Handle attributes. 913 (c_parser_do_statement): Handle attributes. 914 (c_parser_for_statement): Handle attributes. 915 * c-common.c (handle_unused_attribute): Warn if a statement 916 is marked as unused. 917 * c-tree.h (c_finish_loop): Add extra parameter. 918 * c-typeck.c (c_finish_loop): Handle attributes. 919 * doc/extend.texi (Attribute Syntax): Document statement attributes. 920 (Label Attributes): Explain how they apply to statements. 921 * tree-cfg.c (cleanup_dead_labels): Preserve labels with 922 user-specified alignment or attributes. 923 * stmt.c (expand_label): Update and correct documentation. 924 925 * c-common.c (handle_aligned_attribute): Handle LABEL_DECL. 926 * rtl.def (CODE_LABEL): Add 8th operand. 927 * rtl.h (LABEL_ALIGN_LOG): New. 928 (LABEL_MAX_SKIP): New. 929 (SET_LABEL_ALIGN): New. 930 * emit-rtl.c (gen_label_rtx): Adjust. 931 * print-rtl.c (print_rtx): Print LABEL_ALIGN_LOG. 932 * stmt.c (label_rtx): Set CODE_LABEL's alignment from DECL_ALIGN. 933 (expand_label): Update documentation. 934 * final.c (struct label_alignment): Delete. 935 (label_align): Delete. 936 (min_labelno): Delete. 937 (max_labelno): Delete. 938 (LABEL_TO_ALIGNMENT): Delete. 939 (LABEL_TO_MAX_SKIP): Delete. 940 (label_to_alignment): Adjust for LABEL_ALIGN_LOG. 941 (align_fuzz): Likewise. 942 (compute_alignments): Likewise. 943 (shorten_branches): Remove code to set up label_align. 944 Adjust for LABEL_ALIGN_LOG. 945 (final_scan_insn): Adjust for LABEL_ALIGN_LOG. 946 * doc/extend.texi (C Extensions): Add 'Label Attributes' to menu. 947 (Attribute Syntax): Move label content to Label Attributes. 948 (Function Attributes): Mention label attributes. 949 (Variable Attributes): Mention label attributes. 950 (Type Attributes): Mention label attributes. 951 (Label Attributes): New. 952