1261188Spfg2010-03-16 Fariborz Jahanian <fjahanian@apple.com> 2260014Spfg 3261188Spfg Radar 7760213 4261188Spfg * c-common.h (HasByrefArray): New decl. 5261188Spfg * c-common.c (HasByrefArray): New definition. 6261188Spfg * c-typeck.c (build_external_ref): Diagnose access of 7261188Spfg __block array. 8261188Spfg 9261188Spfg2010-03-12 Jim Grosbach <grosbach@apple.com> 10261188Spfg 11261188Spfg Radar 7744816 12261188Spfg 13261188Spfg * expmed.c (synth_mult): Remove incorrect special case handling for 14261188Spfg 0xffffffff. 15261188Spfg 16261188Spfg2010-03-12 Fariborz Jahanian <fjahanian@apple.com> 17261188Spfg 18261188Spfg Radar 7735196 19261188Spfg * c-parser.c (build_block_struct_initlist): 20261188Spfg Set BLOCK_USE_STRET flag in block descriptor for 21261188Spfg blocks which return their aggregate value in memory. 22261188Spfg * c-common.h (BLOCK_USE_STRET): New flag. 23261188Spfg 24261188Spfg2010-03-05 Fariborz Jahanian <fjahanian@apple.com> 25261188Spfg 26261188Spfg Radar 7721728 27261188Spfg * c-typeck.c (build_external_ref): Diagnose 28261188Spfg importation of copied-in variables. 29261188Spfg 30261188Spfg2009-03-12 Caroline Tice <ctice@apple.com> 31261188Spfg 32261188Spfg Radar 6144634 33261188Spfg * c-parser.c (c_parser_statement_after_labels): When 34261188Spfg re-setting the expression location at the end, use the input 35261188Spfg location for Block pointer assignments. 36261188Spfg 37261188Spfg2009-02-11 Fariborz Jahanian <fjahanian@apple.com> 38261188Spfg 39261188Spfg Radar 6573923 40261188Spfg * c-decl.c (synth_block_byref_id_object_copy_func, 41261188Spfg synth_block_byref_id_object_dispose_func): Set BLOCK_BYREF_CALLER 42261188Spfg flag in call to copy/dispose helper functions. 43261188Spfg * c-common.h (BLOCK_BYREF_CALLER): New flag. 44261188Spfg 45261188Spfg2008-12-21 Caroline Tice <ctice@apple.com> 46261188Spfg 47261188Spfg Radar 6455678 48261188Spfg * cp/typeck.c (original_type): Stop if the type 49261188Spfg and its DECL_ORIGINAL_TYPE are the same. 50261188Spfg 51261188Spfg2008-12-18 Bill Wendling <wendling@apple.com> 52261188Spfg 53261188Spfg Radar 6457359 54261188Spfg * c-parser.c (build_block_struct_initlist): Changed type. 55261188Spfg * cp/parser.c (build_block_struct_initlist): Ditto. 56261188Spfg 57261188Spfg2008-12-02 Caroline Tice <ctice@apple.com> 58261188Spfg 59261188Spfg Radar 6386976 60261188Spfg * objcp/objcp-decl.h (TYPE_HAS_OBJCXX_INFO): New macro. 61261188Spfg * objcp/objcp-lang.c (objcp-decl.h): New include statement, with 62261188Spfg required define. 63261188Spfg (LANG_HOOKS_IS_RUNTIME_SPECIFIC_TYPE): Redefine for 64261188Spfg obj-c++. 65261188Spfg (objcxx_is_runtime_type): New function. 66261188Spfg 67261188Spfg2008-12-02 Fariborz Jahanian <fjahanian@apple.com> 68261188Spfg 69261188Spfg Radar 6411649 70261188Spfg * funciton.h: Added new field. 71261188Spfg * c-common.c (build_block_helper_name): Produce a unique 72261188Spfg block number per each enclosing function when building 73261188Spfg the block helper function name. 74261188Spfg 75261188Spfg2008-11-18 Stuart Hastings <stuart@apple.com> 76261188Spfg 77261188Spfg Radar 6353006 78261188Spfg * tree.c (generic_block_literal_struct_type): Fix APPLE LOCAL. 79261188Spfg * langhooks-def.h (lhd_build_generic_block_struct_type): Fix 80261188Spfg APPLE LOCAL. 81261188Spfg 82261188Spfg2008-11-07 Fariborz Jahanian <fjahanian@apple.com> 83261188Spfg 84261188Spfg Radar 5847976 85261188Spfg * c-decl.c (synth_block_byref_id_object_copy_func): Takes a new 86261188Spfg 'flag' argument and generates the much simplified API. 87261188Spfg (synth_block_byref_id_object_dispose_func): Ditto. 88261188Spfg (new_block_byref_decl): Hack to prevent issuing bogus warning 89261188Spfg on a field declared as __weak. 90261188Spfg (init_byref_decl): Takes an additional 'flag' argument 91261188Spfg and passes it down to synth_block_byref_id_object_copy_func and 92261188Spfg synth_block_byref_id_object_dispose_func. 93261188Spfg (finish_decl): Computes the flag for the block variable declaration. 94261188Spfg * c-common.c (build_block_byref_release_decl, 95261188Spfg build_block_byref_assign_copy_decl): Removed. 96261188Spfg (build_block_byref_release_exp): Use the new API. 97261188Spfg (build_block_object_assign_decl, build_block_object_assign_call_exp, 98261188Spfg build_block_object_dispose_decl, build_block_object_dispose_call_exp): New. 99261188Spfg (build_indirect_object_id_exp): Fixed a code gen bug which was exposed in 100261188Spfg c/c++ mode, but not in ObjC/ObjC++ mode. 101261188Spfg * c-common.h (build_block_object_assign_call_exp, 102261188Spfg build_block_object_dispose_call_exp, 103261188Spfg objc_is_gcable_type): New decls. 104261188Spfg Declaration of several new flags. 105261188Spfg (cast_to_pointer_to_id): Removed. 106261188Spfg * stub-objc.c (objc_is_gcable_type): New 107261188Spfg (copy_in_object, retain_block_component, release_block_component): Removed. 108261188Spfg (cast_to_pointer_to_id): Removed. 109261188Spfg * c-parser.c (build_block_struct_initlist): Remove call to copy_in_object. 110261188Spfg (synth_copy_helper_block_func): Generates much simplified API. 111261188Spfg (synth_destroy_helper_block_func): Ditto. 112261188Spfg (block_object_dispose): Removed. 113261188Spfg * config/darwin-c.c (darwin_cpp_builtins): Define __weak even when 114261188Spfg -fobjc-gc is off. 115261188Spfg 116261188Spfg2008-10-31 Fariborz Jahanian <fjahanian@apple.com> 117261188Spfg 118261188Spfg Radar 6175959 119261188Spfg * stub-objc.c (block_requires_copying): Object pointers with 120261188Spfg NSObject attribute also require copy/release API. 121261188Spfg * c-parser.c (synth_copy_helper_block_func): Use the new API 122261188Spfg _Block_object_assign for ObjC object copying. 123261188Spfg (block_object_dispose): New 124261188Spfg (synth_destroy_helper_block_func): Call block_object_dispose 125261188Spfg to use new _Block_object_dispose API for ObjC object release. 126261188Spfg 127261188Spfg2008-10-27 Fariborz Jahanian <fjahanian@apple.com> 128261188Spfg 129261188Spfg Radar 6231433 130261188Spfg * c-typeck.c (objc_compare_types, objc_have_common_type): 131261188Spfg Take an extra argument for better diagnostics. 132261188Spfg * c-common.c (objc_compare_types, objc_have_common_type): 133261188Spfg Take extra argument. 134261188Spfg * stub-objc.c: Ditto 135261188Spfg 136261188Spfg2008-10-24 Fariborz Jahanian <fjahanian@apple.com> 137261188Spfg 138261188Spfg Radar 6305545 139261188Spfg * cgraph.h (lower_if_nested_functions): New decl. 140261188Spfg * tree-gimple.h (lower_nested_functions): Takes one more arg. 141261188Spfg * cgraphunit.c (lower_if_nested_functions): New 142261188Spfg * tree-nested.c (lower_nested_functions): Skip structors. 143261188Spfg 144261188Spfg2008-10-24 Fariborz Jahanian <fjahanian@apple.com> 145261188Spfg 146261188Spfg Radar 5847213 (minor tweak) 147261188Spfg * c-decl.c (build_block_descriptor_type): 148261188Spfg Make descriptor_ptr_type and descriptor_ptr_type_with_copydispose 149261188Spfg visible to pch. 150261188Spfg 151261188Spfg2008-10-23 Caroline Tice <ctice@apple.com> 152261188Spfg 153261188Spfg Radar 6300081 154261188Spfg * tree.c(build_block_pointer_type): Add call to 155261188Spfg build_generic_block_struct_type to initialize 156261188Spfg generic_block_literal_struct_type if necessary. 157261188Spfg * cp/parser.c (build_generic_block_struct_type): Update comments. 158261188Spfg (build_block_struct_type): Remove call to 159261188Spfg build_generic_block_struct_type. 160261188Spfg (make_block_pointer_declarator): Likewise. 161261188Spfg * c-decl.c (make_block_pointer_declarator): Likewise. 162261188Spfg * c-parser.c (build_block_struct_type): Likewise. 163261188Spfg (build_generic_block_struct_type): Update comments. 164261188Spfg 165261188Spfg2008-10-22 Caroline Tice <ctice@apple.com> 166261188Spfg 167261188Spfg Radar 6300081 & Radar 6163705 168261188Spfg * tree.h (generic_block_literal_struct_type): Extern global variable 169261188Spfg decl. 170261188Spfg (build_generic_block_struct_type): New extern function decl. 171261188Spfg * cp/parser (build_generic_block_struct_type): New function. 172261188Spfg (build_block_struct_type): Call build_generic_block_struct_type 173261188Spfg to initialize generic_block_literal_struct_type. 174261188Spfg (make_block_pointer_declarator): Likewise. 175261188Spfg (declare_block_prologue_local_vars): Temporarily set input_location 176261188Spfg to 1 before the start of the block function; re-set input_location at 177261188Spfg the end of this function. 178261188Spfg * dwarf2out.c (add_type_attribute): If the type is a 179261188Spfg BLOCK_POINTER_TYPE, assign it to be a pointer to a 180261188Spfg generic_block_literal_struct_type. 181261188Spfg * c-decl.c (make_block_pointer_declarator): Call 182261188Spfg build_generic_block_struct_type to initialize 183261188Spfg generic_block_literal_struct_type. 184261188Spfg * c-common.c (generic_block_literal_struct_type): New global variable. 185261188Spfg * c-parser.c (build_generic_block_struct_type): New function. 186261188Spfg (build_block_struct_type): Call build_generic_block_struct_type 187261188Spfg to initialize generic_block_literal_struct_type. 188261188Spfg * testsuite/gcc.apple/block-debug-1.c: Fix test to work with new 189261188Spfg compiler modifications. 190261188Spfg * testsuite/gcc.apple/block-debug-2.c: Likewise. 191261188Spfg * testsuite/g++.apple/block-debug-1.C: Likewise. 192261188Spfg * testsuite/g++.apple/block-debug-2.C: Likewise. 193261188Spfg 194261188Spfg2008-10-10 Fariborz Jahanian <fjahanian@apple.com> 195261188Spfg 196261188Spfg Radar 5847213 - New Block ABI 197261188Spfg * dwarf2out.c (add_type_attribute): Unusuable code 198261188Spfg for radar 5811943 is removed. 199261188Spfg * c-decl.c (build_block_byref_decl): Removed unneeded 200261188Spfg build of block_original_byref_decl_list. 201261188Spfg (build_block_internal_types): Removed. 202261188Spfg (build_block_descriptor_type): New routine to build the descriptor type. 203261188Spfg (make_block_pointer_declarator): Unused code is removed. 204261188Spfg * c-typeck.c (build_block_call): New code gen for block calls. 205261188Spfg * c-common.c (invoke_impl_ptr_type): Removed. 206261188Spfg * c-common.h (block_original_byref_decl_list, build_block_internal_types): Removed 207261188Spfg (build_block_descriptor_type, BLOCK_HAS_DESCRIPTOR): Decls added. 208261188Spfg * c-parser.c (build_block_struct_type): Block literal expression internal type 209261188Spfg is redeclared into its new layout. 210261188Spfg (build_block_struct_initlist): Initializer list for above type is redone. 211261188Spfg (build_descriptor_block_decl): New routine to declare the descriptor variable 212261188Spfg (build_block_literal_tmp): Modified for the new type and initiazation. 213261188Spfg 214261188Spfg2008-10-06 Fariborz Jahanian <fjahanian@apple.com> 215261188Spfg 216261188Spfg Radar 6268817 217261188Spfg * c-decl.c (check_for_loop_decls): Block helper function 218261188Spfg is OK if declared in a for-loop main statement block. 219261188Spfg 220261188Spfg2008-10-02 Fariborz Jahanian <fjahanian@apple.com> 221261188Spfg 222261188Spfg Radar 6246527 223261188Spfg * attribs.c (decl_attributes): Added support for adding attributes 224261188Spfg on block pointer variable declarations. 225261188Spfg * c-common.c (block_delta_format_args): Add 226261188Spfg (any_recognized_block_attribute): Add 227261188Spfg * c-common.h (any_recognized_block_attribute): New decl. 228261188Spfg * c-parser.c (c_parser_block_literal_expr): Call to do the delta 229261188Spfg on printf attribute. 230261188Spfg 231261188Spfg2008-09-30 Fariborz Jahanian <fjahanian@apple.com> 232261188Spfg 233261188Spfg Radar 6225809 234261188Spfg * c-decl.c (build_block_byref_decl): Add __block vaiables 235261188Spfg to intervening blocks. 236261188Spfg 237261188Spfg2008-09-25 Fariborz Jahanian <fjahanian@apple.com> 238261188Spfg 239261188Spfg Radar 6237713 240261188Spfg * c-common.c (handle_noreturn_attribute): Add 'noreturn' 241261188Spfg attribute to block pointer decls. 242261188Spfg * c-parser.c (c_parser_block_literal_expr): Parse and set 243261188Spfg attributes on block literals. 244261188Spfg 245261188Spfg2008-09-25 Fariborz Jahanian <fjahanian@apple.com> 246261188Spfg 247261188Spfg Radar 6244520 - minor addition 248261188Spfg * c-common.c (build_indirect_object_id_exp): offset needs 249261188Spfg be updated to accomodate addition of the new field. 250261188Spfg 251261188Spfg2008-09-16 Fariborz Jahanian <fjahanian@apple.com> 252261188Spfg 253261188Spfg Radar 6214617 254261188Spfg * c-common: New flag BLOCK_HAS_CXX_OBJ replaces BLOCK_NO_COPY. 255261188Spfg (BlockImportsCxxObjects): New field replaces BlockHasByrefVar. 256261188Spfg * c-parser.c (build_block_struct_type): Remove setting of 257261188Spfg BLOCK_NO_COPY flag. 258261188Spfg 259261188Spfg2008-09-16 Fariborz Jahanian <fjahanian@apple.com> 260261188Spfg 261261188Spfg Radar 6217257 262261188Spfg * c-common.c (handle_blocks_attribute): Diagnose 263261188Spfg vla __block declarations. 264261188Spfg 265261188Spfg2008-09-12 Fariborz Jahanian <fjahanian@apple.com> 266261188Spfg 267261188Spfg Radar 6212722 (tweak) 268261188Spfg * c-decl.c (build_block_ref_decl): Use array_to_pointer_conversion 269261188Spfg and function_to_pointer_conversion. 270261188Spfg * c-typeck.c (array_to_pointer_conversion, function_to_pointer_conversion): 271261188Spfg Made them global. 272261188Spfg * c-common.h (array_to_pointer_conversion, function_to_pointer_conversion): 273261188Spfg Declare. 274261188Spfg 275261188Spfg2008-09-09 Fariborz Jahanian <fjahanian@apple.com> 276261188Spfg 277261188Spfg Radar 6169580 278261188Spfg * c-commmon.c (build_block_helper_name): Fix bug in 279261188Spfg block helper function name mangling. 280261188Spfg 281261188Spfg2008-09-03 Fariborz Jahanian <fjahanian@apple.com> 282261188Spfg 283261188Spfg Radar 6185344 284261188Spfg * c-typeck.c (c_finish_return): Don't do block specific 285261188Spfg stuff when block has a return type. 286261188Spfg * c-common.h (block_sema_info): block_has_return_type is 287261188Spfg a new field. 288261188Spfg * c-parser.c (c_parser_direct_declarator): Terminate type 289261188Spfg parsing for block return types. 290261188Spfg (c_parser_block_literal_expr): Added support to parse and 291261188Spfg handle explicit return type for blocks. 292261188Spfg 293261188Spfg2008-08-28 Fariborz Jahanian <fjahanian@apple.com> 294261188Spfg 295261188Spfg Radar 6160536 296261188Spfg * c-commmon.c (build_block_helper_name): New 297261188Spfg * c-common.h (build_block_helper_name): New decl. 298261188Spfg * c-parser.c (c_parser_block_literal_expr): Call 299261188Spfg build_block_helper_name to build pretty helper function 300261188Spfg name. 301261188Spfg 302261188Spfg2008-08-28 Fariborz Jahanian <fjahanian@apple.com> 303261188Spfg 304261188Spfg Radar 6180456 305261188Spfg * c-decl.c (synth_block_byref_id_object_copy_func): Different 306261188Spfg API for copying __block declared objects in c. 307261188Spfg (synth_block_byref_id_object_dispose_func): Different API 308261188Spfg for releasing __block declared objects in c. 309261188Spfg * c-common.c (block_byref_assign_copy_decl): New 310261188Spfg (build_indirect_object_id_exp): Cast to 'id *' in objective-c 311261188Spfg mode only. 312261188Spfg * c-common.h (build_block_byref_assign_copy_decl): New decl. 313261188Spfg * c-parser.c (synth_copy_helper_block_func): Refactored code 314261188Spfg to call build_block_byref_assign_copy_decl(). 315261188Spfg 316261188Spfg2008-08-24 Caroline Tice <ctice@apple.com> 317261188Spfg 318261188Spfg Radars 6144664, 6145471, 6144634 319261188Spfg c-decl.c (build_block_byref_decl): Assign the source 320261188Spfg location for each byref decl to the source location of 321261188Spfg the helper function decl. 322261188Spfg (build_block_ref_decl): Ditto for ref decls. 323261188Spfg 324261188Spfg2008-08-14 Fariborz Jahanian <fjahanian@apple.com> 325261188Spfg 326261188Spfg Radar 5822844 327261188Spfg * c-typeck.c (digest_init): Handler block as initializer. 328261188Spfg (c_finish_return): check for completed block before 329261188Spfg analyzing block's return expression. 330261188Spfg * varasm.c (output_constant): Allow outputting block data. 331261188Spfg * c-common.h (BLOCK_IS_GLOBAL): New flag. 332261188Spfg (block_is_complete): New field in block data structure. 333261188Spfg * c-parser.c (build_block_struct_initlist): New initializer and 334261188Spfg flag for global block data. 335261188Spfg (build_block_literal_tmp): Temporary data for global block is 336261188Spfg declared as global static. 337261188Spfg (c_parser_block_literal_expr): Removed diagnostics for global blocks. 338261188Spfg Moved fixing helper function type earlier before its tree is built. 339261188Spfg 340261188Spfg2008-08-06 Fariborz Jahanian <fjahanian@apple.com> 341261188Spfg 342261188Spfg Radar 6014138 343261188Spfg * c-decl.c (build_block_byref_decl): In the presence of nested "{" 344261188Spfg move up the scope chain until reaching the main function body's scope. 345261188Spfg 346261188Spfg2008-08-04 Fariborz Jahanian <fjahanian@apple.com> 347261188Spfg 348261188Spfg Radar 6040305 - work in progress. 349261188Spfg * c-decl.c (build_indirect_object_id_exp): Removed. 350261188Spfg * c-common.c (build_indirect_object_id_exp): Added 351261188Spfg * c-common.h (build_indirect_object_id_exp): New decl. 352261188Spfg * config/darwin-c.c (darwin_cpp_builtins): Define __byref 353261188Spfg in c++ mode as well. 354261188Spfg 355261188Spfg2008-07-18 Fariborz Jahanian <fjahanian@apple.com> 356261188Spfg 357261188Spfg Radar 6083129 - twiked 358261188Spfg * c-decl.c (release_all_local_byrefs_at_return): Do not release 359261188Spfg imported __byref variables in the block. 360261188Spfg * c-parser.c (gen_block_byref_release_exp): Do not release __byref 361261188Spfg variables outside of the block when returning from the block. 362261188Spfg 363261188Spfg2008-07-15 Fariborz Jahanian <fjahanian@apple.com> 364261188Spfg 365261188Spfg Radar 5988451 366261188Spfg * c-decl.c (build_block_ref_decl): Insert copied in variable 367261188Spfg in each enclosing block which does not use it. 368261188Spfg (begin_block): Remove setting of "the_scope" field of the block. 369261188Spfg (in_imm_block): Fix effect of changing the "the_scope" field. 370261188Spfg (lookup_name_in_block): Do not skip over copied-in variables when 371261188Spfg looking up a variable in the block. 372261188Spfg * c-parser.c (c_parser_block_literal_expr): Set block's "the_scope" field 373261188Spfg to the helper function's outer-most body scope. 374261188Spfg 375261188Spfg2008-07-08 Fariborz Jahanian <fjahanian@apple.com> 376261188Spfg 377261188Spfg Radar 6048570 378261188Spfg * c-typeck.c (c_finish_return): Error on returning a block on the stack. 379261188Spfg 380261188Spfg2008-06-05 Fariborz Jahanian <fjahanian@apple.com> 381261188Spfg 382261188Spfg Radar 5988995 383261188Spfg * c-typeck.c (types_are_closure_compatible): Nested block pointer 384261188Spfg types must be considered when matching block types. 385261188Spfg 386261188Spfg2008-06-05 Fariborz Jahanian <fjahanian@apple.com> 387261188Spfg 388261188Spfg Radar 5982990 389261188Spfg * c-parser.c (c_parser_objc_synch_compound_statement): New 390261188Spfg (c_parser_objc_synchronized_statement): Call 391261188Spfg c_parser_objc_synch_compound_statement. 392261188Spfg 393261188Spfg2008-06-04 Fariborz Jahanian <fjahanian@apple.com> 394261188Spfg 395261188Spfg Radar 5985368 396261188Spfg * c-parser.c (c_parser_declaration_or_fndef): Better diagnostics for 397261188Spfg a bad block definition. 398261188Spfg 399261188Spfg2008-05-23 Fariborz Jahanian <fjahanian@apple.com> 400261188Spfg 401261188Spfg Radar 5925781 402261188Spfg * c-common.c (handle_nonnull_attribute): Support block pointer 403261188Spfg just like a pointer for nonnull attribute. 404261188Spfg (check_nonnull_arg): Ditto. 405261188Spfg 406261188Spfg2008-05-20 Fariborz Jahanian <fjahanian@apple.com> 407261188Spfg 408261188Spfg Radar 5932809 - minor change for runtime delight. 409261188Spfg * c-parser.c (build_closure_struct_type): Add strcutor fields 410261188Spfg for __byref 'id' object blocks as well. 411261188Spfg (build_closure_struct_initlist): And their initializers. 412261188Spfg 413261188Spfg2008-04-30 Caroline Tice <ctice@apple.com> 414261188Spfg 415261188Spfg Radar 5811961 416261188Spfg * c-decl.c: (declare_closure_prologue_local_vars): Set the source 417261188Spfg location for the new decl expr statement to be the source location of 418261188Spfg the decl tree. 419261188Spfg 420261188Spfg2008-04-25 Fariborz Jahanian <fjahanian@apple.com> 421261188Spfg 422261188Spfg Radar 5803005 (tweaked) 423261188Spfg * c-typeck.c (build_external_ref): Refactored global decl checks. 424261188Spfg 425261188Spfg2008-04-24 Caroline Tice <ctice@apple.com> 426261188Spfg 427261188Spfg Radar 5811943 428261188Spfg * tree.h (TYPE_CLOSURE_IMPL_STRUCT): New macro. 429261188Spfg (lang_flag_2): Use previously unused field in tree_type to indicate 430261188Spfg closure structs. 431261188Spfg * dwarf2out.c (c-common.h): New include statement. 432261188Spfg (dwarf_attr_name): Add case for DW_AT_APPLE_closure. 433261188Spfg (gen_variable_die): Give pointers to closures the 434261188Spfg invoke_impl_ptr_type. 435261188Spfg (gen_struct_or_union_type_die): Add DW_AT_APPLE_closure 436261188Spfg to structs that define closures. 437261188Spfg * dwarf2.h (DW_AT_APPLE_closure): New Dwarf attribute. 438261188Spfg * c-typeck.c (invoke_impl_ptr_type): Move declaration from here to 439261188Spfg c-common.c 440261188Spfg (build_closure_internal_types): Set TYPE_CLOSURE_IMPL_STRUCT 441261188Spfg flag for closure structs. 442261188Spfg * c-common.c (invoke_impl_ptr_type): Move declaration to here from 443261188Spfg c-typeck.c. 444261188Spfg 445261188Spfg2008-04-23 Fariborz Jahanian <fjahanian@apple.com> 446261188Spfg 447261188Spfg Radar 5882266 448261188Spfg * c-typeck.c (types_are_closure_compatible): Check for underlying 449261188Spfg pointer types as well. 450261188Spfg 451261188Spfg2008-04-15 Stuart Hastings <stuart@apple.com> 452261188Spfg 453261188Spfg Radar 5862465 454261188Spfg * tree.h (PTR_OR_REF_CHECK, POINTER_TYPE_P): Add 455261188Spfg CLOSURE_POINTER_TYPE. 456261188Spfg * fold-const.c (fold_convert): Add CLOSURE_POINTER_TYPE. 457261188Spfg * testsuite/gcc.apple/closure-5862465.c: New. 458261188Spfg 459261188Spfg2008-03-31 Fariborz Jahanian <fjahanian@apple.com> 460261188Spfg 461261188Spfg Radar 5831855 462261188Spfg * c-typeck.c (convert_for_assignment): Block and 'id' types 463261188Spfg are interchangeable. 464261188Spfg 465261188Spfg2008-03-28 Fariborz Jahanian <fjahanian@apple.com> 466261188Spfg 467261188Spfg Radar 5809099 468261188Spfg * convert.c (convert_to_pointer): Allow typecast of closure 469261188Spfg pointer to 'id'. 470261188Spfg (convert_to_closure_pointer): Allow typecast of 'id' 471261188Spfg of a closure pointer expression. 472261188Spfg 473261188Spfg2008-03-25 Fariborz Jahanian <fjahanian@apple.com> 474261188Spfg 475261188Spfg Radar 5811887 (minor change) 476261188Spfg * c-opts.c (c_common_post_options): Remove conditional check 477261188Spfg of pedantic when setting flag_blocks. 478261188Spfg 479261188Spfg2008-03-24 Fariborz Jahanian <fjahanian@apple.com> 480261188Spfg 481261188Spfg Radar 5811887 482261188Spfg * c-cppbuiltin.c: flag_closures renamed to flag_blocks 483261188Spfg * c-parser.c: Ditto. 484261188Spfg * c.opt: flag_closures renamed to flag_blocks. flag_blocks 485261188Spfg defaulted to -1. 486261188Spfg * c-opts.c (c_common_post_options): All flavors of c99, blocks are off by 487261188Spfg default unless requested via -fblocks. 488261188Spfg 489261188Spfg2008-03-24 Fariborz Jahanian <fjahanian@apple.com> 490261188Spfg 491261188Spfg Radar 5814025 492261188Spfg * c-tree.h (make_closure_pointer_declarator): Takes 493261188Spfg additional argument. 494261188Spfg * c-decl.c (grokdeclarator): Get 'const'-ness of closure 495261188Spfg pointer. 496261188Spfg (make_closure_pointer_declarator): Takes additional argument for 497261188Spfg const/volatile. 498261188Spfg * c-parser.c (c_parser_declarator): Pass down attribute info. 499261188Spfg to make_closure_pointer_declarator. 500261188Spfg 501261188Spfg2008-03-20 Fariborz Jahanian <fjahanian@apple.com> 502261188Spfg 503261188Spfg Radar 5802025 504261188Spfg * c-common.h (objc_build_property_getter_func_call): New decl. 505261188Spfg * stub-objc.c (objc_build_property_getter_func_call): New stub. 506261188Spfg 507261188Spfg2008-03-18 Fariborz Jahanian <fjahanian@apple.com> 508261188Spfg 509261188Spfg Radar 5803600 510261188Spfg * c-decl.c (add_closure_global_byref_list, 511261188Spfg in_closure_global_byref_list): New defs. 512261188Spfg * c-common.h (add_closure_global_byref_list, 513261188Spfg in_closure_global_byref_list): New decls. 514261188Spfg * c-typeck.c (build_external_ref): global variables 515261188Spfg declared as 'byref' are enterred in their own list 516261188Spfg of such declarations per each closure. 517261188Spfg * c-parser.c (c_parser_postfix_expression): Remove previous fix. 518261188Spfg (c_parser_closure_byref_declaration): Check for global 519261188Spfg 'byref' by calling in_closure_global_byref_list. 520261188Spfg 521261188Spfg2008-03-13 Fariborz Jahanian <fjahanian@apple.com> 522261188Spfg 523261188Spfg Radar 5795493 524261188Spfg * c-typeck.c: Renamed typesAreClosureCompatible to 525261188Spfg types_are_closure_compatible. 526261188Spfg 527261188Spfg2008-03-11 Fariborz Jahanian <fjahanian@apple.com> 528261188Spfg 529261188Spfg Radar 5732232 (Related to change of command option/macro) 530261188Spfg * c-cppbuiltin.c: __CLOSURES__ macro rename __BLOCKS__ 531261188Spfg * c.opt: -fclosures change to -fblocks. 532261188Spfg 533261188Spfg2008-03-10 Fariborz Jahanian <fjahanian@apple.com> 534261188Spfg 535261188Spfg Radar 5782740 - part 2 (bug fix). 536261188Spfg * c-parser.c (synth_copy_helper_closure, 537261188Spfg synth_destroy_helper_closure): set DECL_ARG_TYPE field of input 538261188Spfg arguments for the two synthesized helper functions. 539261188Spfg 540261188Spfg2008-02-21 Caroline Tice <ctice@apple.com> 541261188Spfg 542261188Spfg Radar 5741070 543261188Spfg * objc/objc-act.c (objc_finish_message_expr): Find 544261188Spfg the record-type tree from the class interface, and mark the record 545261188Spfg type as used, for emitting debug info. 546261188Spfg * cp/cp-objcp-common.c (c_return_interface_record_type): New function. 547261188Spfg * cp/cp-tree.h (c_return_interface_record_type): New extern function 548261188Spfg declaration. 549261188Spfg * c-tree.h (c_return_interface_record_type): Likewise 550261188Spfg * c-decl.c (c_return_interface_record_type): New function. 551261188Spfg 552261188Spfg2007-08-22 Fariborz Jahanian <fjahanian@apple.com> 553261188Spfg 554261188Spfg Radar 4947311 555261188Spfg * c-common.h (objc_declare_protocols, objc_start_protocol): Decl changed. 556261188Spfg * stub-objc.c (objc_declare_protocols, objc_start_protocol): Changed. 557261188Spfg * c-parser.c (c_parser_external_declaration): Call to 558261188Spfg c_parser_objc_protocol_definition takes additional argument. 559261188Spfg (c_parser_declaration_or_fndef): Protocols with attributes are processed 560261188Spfg here by passing it to c_parser_objc_protocol_definition. 561261188Spfg (c_parser_objc_protocol_definition): Takes additional argument and passes 562261188Spfg it to objc_declare_protocols or objc_start_protocol. 563261188Spfg 564261188Spfg2007-07-13 Fariborz Jahanian <fjahanian@apple.com> 565261188Spfg 566261188Spfg Radar 5277239 567261188Spfg * c-parser.c (c_parser_next_token_starts_declspecs): Exclude 568261188Spfg objc2's property dot-syntax as a declarator. 569261188Spfg (c_parser_postfix_expression): Convert property dot-syntax on 570261188Spfg class objects into a property reference expression. 571261188Spfg 572261188Spfg2007-07-10 Fariborz Jahanian <fjahanian@apple.com> 573261188Spfg 574261188Spfg Radar 5285911 575261188Spfg * tree.h (CALL_EXPR_OBJC_PROPERTY_GETTER): Macro removed. 576261188Spfg * c-typeck.c (build_component_ref): Call 577261188Spfg objc_build_property_reference_expr instead of objc_build_getter_call. 578261188Spfg (build_modify_expr): Call objc_property_reference_expr instead of 579261188Spfg objc_property_call. 580261188Spfg * c-common.h (objc_build_getter_call, objc_property_call): Decl removed. 581261188Spfg (objc_build_property_reference_expr, objc_property_reference_expr): Decl. 582261188Spfg added. 583261188Spfg * stub-objc.c (objc_build_getter_call, objc_property_call): Stub removed. 584261188Spfg (objc_build_property_reference_expr, objc_property_reference_expr): 585261188Spfg Stub added. 586261188Spfg 587261188Spfg2007-06-29 Fariborz Jahanian <fjahanian@apple.com> 588261188Spfg 589261188Spfg Radar 5276085 590261188Spfg * c-parser.c (c_parser_binary_expression) : objc_generate_weak_read 591261188Spfg replaced with call to objc_build_weak_reference_tree 592261188Spfg * c-typeck.c (build_modify_expr, c_objc_common_truthvalue_conversion): 593261188Spfg objc_remove_weak_read replaced with call to objc_weak_reference_expr. 594261188Spfg * c-common.h (objc_weak_reference_expr, 595261188Spfg objc_build_weak_reference_tree) : New decl. 596261188Spfg (objc_generate_weak_read, objc_remove_weak_read): remove. 597261188Spfg * stub-objc.c (objc_weak_reference_expr, 598261188Spfg objc_build_weak_reference_tree): New stub. 599261188Spfg (objc_generate_weak_read, objc_remove_weak_read): remove. 600261188Spfg 601261188Spfg2007-05-23 Fariborz Jahanian <fjahanian@apple.com> 602261188Spfg 603261188Spfg Radar 5195402 604261188Spfg * c-format.c (handle_format_arg_attribute): Check for NSString * 605261188Spfg and CFStringRef as valid formatting types. 606261188Spfg (check_format_string): Ditto. 607261188Spfg * c-common.h (objc_check_format_nsstring, 608261188Spfg objc_check_cfstringref_type): New decls. 609261188Spfg * stub-objc.c (objc_check_nsstring_pointer_type): New stub. 610261188Spfg * config/darwin-c.c (objc_check_cfstringref_type): New 611261188Spfg (objc_check_format_cfstring): Call objc_check_cfstringref_type 612261188Spfg for valid CFStringRef argument type. 613261188Spfg * config/darwin-protos.h (objc_check_cfstringref_type): New decl. 614261188Spfg * config/darwin.h (CFSTRING_TYPE_CHECK): New macro. 615261188Spfg 616261188Spfg2007-05-18 Fariborz Jahanian <fjahanian@apple.com> 617261188Spfg 618261188Spfg Radar 5202926 619261188Spfg * c-common.h (objc_anonymous_local_objc_name): New decl. 620261188Spfg * config/darwin-protos.h (objc_anonymous_local_objc_name): Decl. 621261188Spfg * stub-objc.c (objc_anonymous_local_objc_name): New stub. 622261188Spfg * config/darwin.h (ASM_OUTPUT_LABELREF) Call 623261188Spfg objc_anonymous_local_objc_name. 624261188Spfg 625261188Spfg2007-05-07 Fariborz Jahanian <fjahanian@apple.com> 626261188Spfg 627261188Spfg Radar 4157812 628261188Spfg * c-common.h (objc_build_keyword_decl): Takes a new argument. 629261188Spfg * stub-objc.c (objc_build_keyword_decl): Ditto. 630261188Spfg * c-parser.c (c_parser_objc_method_decl): Recognize optional 631261188Spfg method's argument attribute. 632261188Spfg (c_parser_objc_method_decl): Handle errornous selector. 633261188Spfg 634261188Spfg2007-05-02 Fariborz Jahanian <fjahanian@apple.com> 635261188Spfg 636261188Spfg Radar 4502186 637261188Spfg * c-typeck.c (convert_for_assignment): Remove synthesized 'volatile' 638261188Spfg type before doing type comparison. 639261188Spfg 640261188Spfg2007-03-29 Fariborz Jahanian <fjahanian@apple.com> 641261188Spfg 642261188Spfg Radar 4564694 643261188Spfg * c-parse.c (c_parser_objc_class_instance_variables): Add @package 644261188Spfg support to syntax. 645261188Spfg * c-common.h (RID_AT_PACKAGE): Add 646261188Spfg 647261188Spfg2007-03-29 Fariborz Jahanian <fjahanian@apple.com> 648261188Spfg 649261188Spfg Radar 4947014 - objc atomic property 650261188Spfg * c-common.h (RID_NONATOMIC): Add 651261188Spfg * c-parse.c (c_parser_objc_property_attribute) : Recognize 'nonatomic' 652261188Spfg as new property. 653261188Spfg 654261188Spfg2007-03-23 Fariborz Jahanian <fjahanian@apple.com> 655261188Spfg 656261188Spfg Radar 4985544 657261188Spfg * c-format.c (enum format_type): New entry for NSString format. 658261188Spfg (format_typ): Has a new entry for NSString format. 659261188Spfg (decode_format_attr): Error on use of NSString format on a 660261188Spfg non-objective-c program. 661261188Spfg (objc_check_nsformat_arg): New. 662261188Spfg (check_format_info): Call back for NSString is objc_check_nsformat_arg 663261188Spfg (handle_format_attribute): Use objc_check_format_nsstring for 664261188Spfg NSString format. 665261188Spfg * c-common.h (objc_NSString_format): New decl. 666261188Spfg (objc_check_format_nsstring): New decl. 667261188Spfg * stub-objc.c (objc_NSString_format, objc_check_format_nsstring): New 668261188Spfg stubs. 669261188Spfg * config/darwin-protos.h (darwin_cfstring_type_node): New decl. 670261188Spfg * config/darwin.c (darwin_cfstring_type_node): New 671261188Spfg * config/darwin.h (TARGET_CFSTRING_P): New macro 672261188Spfg 673261188Spfg2007-03-23 Fariborz Jahanian <fjahanian@apple.com> 674261188Spfg 675261188Spfg Radar 4985544 676261188Spfg * c-format.c (enum format_type): New entry for NSString format. 677261188Spfg (format_typ): Has a new entry for NSString format. 678261188Spfg (decode_format_attr): Error on use of NSString format on a 679261188Spfg non-objective-c program. 680261188Spfg (objc_check_nsformat_arg): New. 681261188Spfg (check_format_info): Call back for NSString is objc_check_nsformat_arg 682261188Spfg (handle_format_attribute): Use objc_check_format_nsstring for 683261188Spfg NSString format. 684261188Spfg * c-common.h (objc_NSString_format): New decl. 685261188Spfg (objc_check_format_nsstring): New decl. 686261188Spfg * stub-objc.c (objc_NSString_format, objc_check_format_nsstring): New 687261188Spfg stubs. 688261188Spfg * config/darwin-protos.h (darwin_cfstring_type_node): New decl. 689261188Spfg * config/darwin.c (darwin_cfstring_type_node): New 690261188Spfg * config/darwin.h (TARGET_CFSTRING_P): New macro 691261188Spfg 692261188Spfg2007-03-22 Fariborz Jahanian <fjahanian@apple.com> 693261188Spfg 694261188Spfg Radar 4965989 695261188Spfg * c-parser.c (c_parser_objc_class_definition): Add supprt for anonymous 696261188Spfg category syntax. 697261188Spfg 698261188Spfg2007-03-21 Fariborz Jahanian <fjahanian@apple.com> 699261188Spfg 700261188Spfg Radar 2848255 701261188Spfg * c-parser.c (c_parser_objc_try_catch_statement): Parse @catch(...). 702261188Spfg * c.opt: Add -fobjc-zerocost-exceptions option. 703261188Spfg * c-opts.c (c_common_post_options): Set the flags for 704261188Spfg -fobjc-zerocost-exceptions. 705261188Spfg * c-common.h: Add some declarations. 706261188Spfg * stub-objc.c (objc2_valid_objc_catch_type, objc2_build_throw_call): 707261188Spfg New stubs. 708261188Spfg * config/darwin.h (OBJC_FLAG_OBJC_ABI): Check for proper 709261188Spfg use of -fobjc-zerocost-exceptions option. 710261188Spfg 711261188Spfg2006-11-06 Fariborz Jahanian <fjahania@apple.com> 712261188Spfg 713261188Spfg Radar 4781080 (part 2) 714261188Spfg * targhooks.c (default_objc_fpreturn_msgcall): Takes 2nd argument. 715261188Spfg * targhooks.h (default_objc_fpreturn_msgcall): Changed Decl. 716261188Spfg * target.h (objc_fpreturn_msgcall): Changed Decl. 717261188Spfg * config/i386/i386.h (OBJC_FPRETURN_MSGCALL): Changed Decl. 718261188Spfg * config/i386/i386-protos.h (ix86_objc_fpreturn_msgcall): Changed Decl. 719261188Spfg * config/i386/i386.c (ix86_objc_fpreturn_msgcall): Changed definition. 720261188Spfg2006-09-15 Fariborz Jahanian <fjahania@apple.com> 721261188Spfg 722261188Spfg Radar 4727659 723261188Spfg * c-common.c (handle_noreturn_attribute): Handle method_decl 724261188Spfg nodes as well. 725261188Spfg 726261188Spfg2006-09-01 Fariborz Jahanian <fjahania@apple.com> 727261188Spfg 728261188Spfg Radar 4712269 729261188Spfg * c-common.h (objc_build_incr_decr_setter_call): New decl. 730261188Spfg * stub-objc.c (objc_build_incr_decr_setter_call): New stub. 731261188Spfg * c-typeck.c (build_unary_op): Call objc_build_incr_decr_setter_call 732261188Spfg for potential ince/decr pre/post expressions involving properties. 733261188Spfg 734261188Spfg2006-08-31 Fariborz Jahanian <fjahanian@apple.com> 735261188Spfg 736261188Spfg Radar 4697411 737261188Spfg * c-common.h (objc_volatilize_component_ref): New decl. 738261188Spfg * c-typeck.c (build_component_ref): Call objc_volatilize_component_ref. 739261188Spfg * stub-objc.c (objc_volatilize_component_ref): New stub. 740261188Spfg 741261188Spfg2006-07-18 Fariborz Jahanian <fjahanian@apple.com> 742261188Spfg 743261188Spfg Radar 4592503 744261188Spfg * c-decl.c (finish_struct): Check on illegal use of __weak 745261188Spfg on struct fields. 746261188Spfg * decl.c (start_decl): Check on illegal use of __weak on 747261188Spfg variable declarations. 748261188Spfg * stub-objc.c (objc_checkon_weak_attribute): New stub. 749261188Spfg * c-common.h (objc_checkon_weak_attribute): New decl. 750261188Spfg 751261188Spfg2006-06-26 Fariborz Jahanian <fjahanian@apple.com> 752261188Spfg 753261188Spfg Radar 4591909 754261188Spfg * c-parse.in: New/modified grammar for new attributes in 755261188Spfg properties. 756261188Spfg (yylexname): Change to recognize new attribute terminals. 757261188Spfg * c-common.h (RID_DYNAMIC): New enum declaration. 758261188Spfg 759261188Spfg2006-07-14 Fariborz Jahanian <fjahanian@apple.com> 760261188Spfg 761261188Spfg Radar 4621020 762261188Spfg * c-parse.in: Added 'weak' attribute keyword for @property. 763261188Spfg * c-common.h: 'weak' related declarations. 764261188Spfg 765261188Spfg2006-05-18 Fariborz Jahanian <fjahanian@apple.com> 766261188Spfg 767261188Spfg Radar 4548636 (objc attributes on class) 768261188Spfg * c-parse.in: Add attribute non-terminal before 769261188Spfg AT_INTERFACE. 770261188Spfg * c-common.h (objc_start_class_interface): New argument added. 771261188Spfg * stub-objc.c (objc_start_class_interface): Ditto. 772261188Spfg 773261188Spfg2006-05-16 Fariborz Jahanian <fjahanian@apple.com> 774261188Spfg 775261188Spfg Radar 4547045 776261188Spfg * c-gimplify.c (obj_reuse_bc_block): Removed. 777261188Spfg (objc_pop_label, objc_push_label): New. 778261188Spfg (gimplify_c_loop): Fix up foreach's innerloop break label. 779261188Spfg 780261188Spfg2006-04-26 Fariborz Jahanian <fjahanian@apple.com> 781261188Spfg 782261188Spfg Radar 3803157 (method attributes) 783261188Spfg * c-parse.in: Add grammar support for declaring 784261188Spfg attribute for objc methods. 785261188Spfg * c-common.c (handle_deprecated_attribute): Recognize 786261188Spfg objc methods as valid declarations. 787261188Spfg (handle_unavailable_attribute): Ditto. 788261188Spfg * c-common.h: Bunch of new extern declarations. 789261188Spfg * stub-objc.c (objc_add_method_declaration, objc_start_method_definition): 790261188Spfg Added new argument. 791261188Spfg (objc_method_decl): New stub. 792261188Spfg 793261188Spfg2006-04-12 Fariborz Jahanian <fjahanian@apple.com> 794261188Spfg 795261188Spfg Radar 4507230 796261188Spfg * c-common.h (objc_type_valid_for_messaging): Declare. 797261188Spfg * stub-objc.c (objc_type_valid_for_messaging): New stub. 798261188Spfg 799261188Spfg2006-04-06 Fariborz Jahanian <fjahanian@apple.com> 800261188Spfg 801261188Spfg Radar 4436866 802261188Spfg (Missing copies attribute) 803261188Spfg * c-parse.in: Add grammer for 'copies' attribute. 804261188Spfg * c-common.h (RID_COPIES): New enumerator. 805261188Spfg 806261188Spfg2006-03-27 Fariborz Jahanian <fjahanian@apple.com> 807261188Spfg 808261188Spfg Radar 4133425 809261188Spfg * c-common.h (objc_diagnose_private_ivar): New decl. 810261188Spfg * stub-objc.c (objc_diagnose_private_ivar): New stub. 811261188Spfg * c-decl.c (undeclared_variable): Issue disnostic on 812261188Spfg private 'ivar' access. 813261188Spfg 814261188Spfg2006-03-27 Fariborz Jahanian <fjahanian@apple.com> 815261188Spfg 816261188Spfg Radar 4491608 817261188Spfg * c-typeck.c (convert_arguments): function name must come from 'selector' 818261188Spfg when diagnosing 'too many arguments'. 819261188Spfg 820261188Spfg2006-03-23 Fariborz Jahanian <fjahanian@apple.com> 821261188Spfg 822261188Spfg Radar 4193359 823261188Spfg * c-typeck.c (convert_for_assignment): Remove Objective-C EH machinery 824261188Spfg 'volatile' qualifier before doing type comparison. 825261188Spfg 826261188Spfg2006-02-28 Fariborz Jahanian <fjahanian@apple.com> 827261188Spfg 828261188Spfg Radar 4441049 829261188Spfg * c-common.h (objc_v2_bitfield_ivar_bitpos): New decl. 830261188Spfg * expr.h (objc_v2_bitfield_ivar_bitpos): New decl. 831261188Spfg * stub-objc.c (objc_v2_bitfield_ivar_bitpos): New stub. 832261188Spfg * expr.c (get_inner_reference): Compute ivar's bitfield bit offset. 833261188Spfg 834261188Spfg2006-02-15 Fariborz Jahanian <fjahanian@apple.com> 835261188Spfg 836260014Spfg Radar 4445586 837260014Spfg * c-common.def (DO_STMT): Takes an extra argument. 838260014Spfg 839261188Spfg2006-02-02 Fariborz Jahanian <fjahanian@apple.com> 840261188Spfg 841261188Spfg Radar 4426814 842261188Spfg * c-parse.in (cast_expr): generate objc_read_weak call on 843261188Spfg each __weak object in the expession. 844261188Spfg * c-typeck.c (build_modify_expr): Undo the call to objc_read_weak 845261188Spfg on LHS expression. 846261188Spfg * c-objc-common.c (c_objc_common_truthvalue_conversion): Generate 847261188Spfg objc_read_weak call before generating tree for !exp, etc. 848261188Spfg * c-common.h (objc_generate_weak_read, objc_remove_weak_read): New decl. 849261188Spfg * stub-objc.c (objc_generate_weak_read, objc_remove_weak_read): New stubs. 850261188Spfg 851261188Spfg2005-12-15 Fariborz Jahanian <fjahanian@apple.com> 852261188Spfg 853261188Spfg Radar 4229905 854261188Spfg * c-typeck.c (build_conditional_expr): Call objc_have_common_type when 855261188Spfg looking for objective-c common pointer types. 856261188Spfg * c-common.h objc_have_common_type): New declaration. 857261188Spfg * stub-objc.c (objc_have_common_type): New stub. 858261188Spfg 859261188Spfg2005-12-05 Mike Stump <mrs@apple.com> 860261188Spfg 861261188Spfg Radar 4357979 862261188Spfg * doc/invoke.texi (C Dialect Options): Improve -fnested-functions wording. 863261188Spfg * doc/extend.texi (Nested Functions): Note that on darwin nested 864261188Spfg functions are off by default. 865261188Spfg 866261188Spfg2005-11-08 Fariborz Jahanian <fjahanian@apple.com> 867261188Spfg 868261188Spfg Radar 4330422 869261188Spfg 870261188Spfg * c-common.h (objc_non_volatilized_type): New declaration 871261188Spfg * stub-objc.c (objc_non_volatilized_type): New stub. 872261188Spfg 873261188Spfg2005-10-12 Fariborz Jahanian <fjahanian@apple.com> 874261188Spfg 875261188Spfg Radar 4291785 876261188Spfg 877261188Spfg * c-common.h (objc_get_interface_ivars): New declaration 878261188Spfg (objc_detect_field_duplicates): Ditto. 879261188Spfg * c-decl.c (finish_struct): Check for duplicate among 880261188Spfg flattened fields if objective-c. 881261188Spfg * stub-objc.c (objc_get_interface_ivars): New stub. 882261188Spfg (objc_detect_field_duplicates): Ditto. 883261188Spfg 884261188Spfg2005-09-28 Devang Patel <dpatel@apple.com> 885261188Spfg 886261188Spfg Radar 4258406 887261188Spfg * c-parse.in (nested_function): Report an error, instead of a warning. 888261188Spfg (nontype_nested_function): Same. 889261188Spfg * c.opt (Wnested-funcs): Remove. 890261188Spfg * doc/invoke.texi: Remove Wnested-funcs documentations. 891261188Spfg 892261188Spfg2005-08-03 Fariborz Jahanian <fjahanian@apple.com> 893261188Spfg 894261188Spfg Radar 4188876 895261188Spfg * c-typeck.c (pop_init_level): Issue diagnostic on non-constant 896261188Spfg vector initializers. 897261188Spfg 898261188Spfg2005-06-22 Ziemowit Laski <zlaski@apple.com> 899261188Spfg 900261188Spfg Radar 4154928 901261188Spfg * c-common.h (objc_common_type): New prototype. 902261188Spfg * c-typeck.c (build_conditional_expr): For two ObjC pointer types, 903261188Spfg use their ObjC common type. 904261188Spfg * stub-objc.c (objc_common_type): New stub. 905261188Spfg 906260014Spfg/* APPLE LOCAL merge marger */ 907260014Spfg/* Stuff under is in fsf mainline, but not in the 4.2 branch */ 908260014Spfg 909260014Spfg2007-08-02 Geoffrey Keating <geoffk@apple.com> 910260014Spfg 911260014Spfg Radar 3274130, 5295549 912260014Spfg * c-parser.c (c_parser_while_statement): Handle attributes. 913260014Spfg (c_parser_do_statement): Handle attributes. 914260014Spfg (c_parser_for_statement): Handle attributes. 915260014Spfg * c-common.c (handle_unused_attribute): Warn if a statement 916260014Spfg is marked as unused. 917260014Spfg * c-tree.h (c_finish_loop): Add extra parameter. 918260014Spfg * c-typeck.c (c_finish_loop): Handle attributes. 919260014Spfg * doc/extend.texi (Attribute Syntax): Document statement attributes. 920260014Spfg (Label Attributes): Explain how they apply to statements. 921260014Spfg * tree-cfg.c (cleanup_dead_labels): Preserve labels with 922260014Spfg user-specified alignment or attributes. 923260014Spfg * stmt.c (expand_label): Update and correct documentation. 924260014Spfg 925260014Spfg * c-common.c (handle_aligned_attribute): Handle LABEL_DECL. 926260014Spfg * rtl.def (CODE_LABEL): Add 8th operand. 927260014Spfg * rtl.h (LABEL_ALIGN_LOG): New. 928260014Spfg (LABEL_MAX_SKIP): New. 929260014Spfg (SET_LABEL_ALIGN): New. 930260014Spfg * emit-rtl.c (gen_label_rtx): Adjust. 931260014Spfg * print-rtl.c (print_rtx): Print LABEL_ALIGN_LOG. 932260014Spfg * stmt.c (label_rtx): Set CODE_LABEL's alignment from DECL_ALIGN. 933260014Spfg (expand_label): Update documentation. 934260014Spfg * final.c (struct label_alignment): Delete. 935260014Spfg (label_align): Delete. 936260014Spfg (min_labelno): Delete. 937260014Spfg (max_labelno): Delete. 938260014Spfg (LABEL_TO_ALIGNMENT): Delete. 939260014Spfg (LABEL_TO_MAX_SKIP): Delete. 940260014Spfg (label_to_alignment): Adjust for LABEL_ALIGN_LOG. 941260014Spfg (align_fuzz): Likewise. 942260014Spfg (compute_alignments): Likewise. 943260014Spfg (shorten_branches): Remove code to set up label_align. 944260014Spfg Adjust for LABEL_ALIGN_LOG. 945260014Spfg (final_scan_insn): Adjust for LABEL_ALIGN_LOG. 946260014Spfg * doc/extend.texi (C Extensions): Add 'Label Attributes' to menu. 947260014Spfg (Attribute Syntax): Move label content to Label Attributes. 948260014Spfg (Function Attributes): Mention label attributes. 949260014Spfg (Variable Attributes): Mention label attributes. 950260014Spfg (Type Attributes): Mention label attributes. 951260014Spfg (Label Attributes): New. 952