1260311Spfg2010-03-16 Fariborz Jahanian <fjahanian@apple.com> 2260014Spfg 3260311Spfg Radar 7760213 4260311Spfg * c-common.h (HasByrefArray): New decl. 5260311Spfg * c-common.c (HasByrefArray): New definition. 6260311Spfg * c-typeck.c (build_external_ref): Diagnose access of 7260311Spfg __block array. 8260311Spfg 9260311Spfg2010-03-12 Jim Grosbach <grosbach@apple.com> 10260311Spfg 11260311Spfg Radar 7744816 12260311Spfg 13260311Spfg * expmed.c (synth_mult): Remove incorrect special case handling for 14260311Spfg 0xffffffff. 15260311Spfg 16260311Spfg2010-03-12 Fariborz Jahanian <fjahanian@apple.com> 17260311Spfg 18260311Spfg Radar 7735196 19260311Spfg * c-parser.c (build_block_struct_initlist): 20260311Spfg Set BLOCK_USE_STRET flag in block descriptor for 21260311Spfg blocks which return their aggregate value in memory. 22260311Spfg * c-common.h (BLOCK_USE_STRET): New flag. 23260311Spfg 24260311Spfg2010-03-05 Fariborz Jahanian <fjahanian@apple.com> 25260311Spfg 26260311Spfg Radar 7721728 27260311Spfg * c-typeck.c (build_external_ref): Diagnose 28260311Spfg importation of copied-in variables. 29260311Spfg 30260311Spfg2009-03-12 Caroline Tice <ctice@apple.com> 31260311Spfg 32260311Spfg Radar 6144634 33260311Spfg * c-parser.c (c_parser_statement_after_labels): When 34260311Spfg re-setting the expression location at the end, use the input 35260311Spfg location for Block pointer assignments. 36260311Spfg 37260311Spfg2009-02-11 Fariborz Jahanian <fjahanian@apple.com> 38260311Spfg 39260311Spfg Radar 6573923 40260311Spfg * c-decl.c (synth_block_byref_id_object_copy_func, 41260311Spfg synth_block_byref_id_object_dispose_func): Set BLOCK_BYREF_CALLER 42260311Spfg flag in call to copy/dispose helper functions. 43260311Spfg * c-common.h (BLOCK_BYREF_CALLER): New flag. 44260311Spfg 45260311Spfg2008-12-21 Caroline Tice <ctice@apple.com> 46260311Spfg 47260311Spfg Radar 6455678 48260311Spfg * cp/typeck.c (original_type): Stop if the type 49260311Spfg and its DECL_ORIGINAL_TYPE are the same. 50260311Spfg 51260311Spfg2008-12-18 Bill Wendling <wendling@apple.com> 52260311Spfg 53260311Spfg Radar 6457359 54260311Spfg * c-parser.c (build_block_struct_initlist): Changed type. 55260311Spfg * cp/parser.c (build_block_struct_initlist): Ditto. 56260311Spfg 57260311Spfg2008-12-02 Caroline Tice <ctice@apple.com> 58260311Spfg 59260311Spfg Radar 6386976 60260311Spfg * objcp/objcp-decl.h (TYPE_HAS_OBJCXX_INFO): New macro. 61260311Spfg * objcp/objcp-lang.c (objcp-decl.h): New include statement, with 62260311Spfg required define. 63260311Spfg (LANG_HOOKS_IS_RUNTIME_SPECIFIC_TYPE): Redefine for 64260311Spfg obj-c++. 65260311Spfg (objcxx_is_runtime_type): New function. 66260311Spfg 67260311Spfg2008-12-02 Fariborz Jahanian <fjahanian@apple.com> 68260311Spfg 69260311Spfg Radar 6411649 70260311Spfg * funciton.h: Added new field. 71260311Spfg * c-common.c (build_block_helper_name): Produce a unique 72260311Spfg block number per each enclosing function when building 73260311Spfg the block helper function name. 74260311Spfg 75260311Spfg2008-11-18 Stuart Hastings <stuart@apple.com> 76260311Spfg 77260311Spfg Radar 6353006 78260311Spfg * tree.c (generic_block_literal_struct_type): Fix APPLE LOCAL. 79260311Spfg * langhooks-def.h (lhd_build_generic_block_struct_type): Fix 80260311Spfg APPLE LOCAL. 81260311Spfg 82260311Spfg2008-11-07 Fariborz Jahanian <fjahanian@apple.com> 83260311Spfg 84260311Spfg Radar 5847976 85260311Spfg * c-decl.c (synth_block_byref_id_object_copy_func): Takes a new 86260311Spfg 'flag' argument and generates the much simplified API. 87260311Spfg (synth_block_byref_id_object_dispose_func): Ditto. 88260311Spfg (new_block_byref_decl): Hack to prevent issuing bogus warning 89260311Spfg on a field declared as __weak. 90260311Spfg (init_byref_decl): Takes an additional 'flag' argument 91260311Spfg and passes it down to synth_block_byref_id_object_copy_func and 92260311Spfg synth_block_byref_id_object_dispose_func. 93260311Spfg (finish_decl): Computes the flag for the block variable declaration. 94260311Spfg * c-common.c (build_block_byref_release_decl, 95260311Spfg build_block_byref_assign_copy_decl): Removed. 96260311Spfg (build_block_byref_release_exp): Use the new API. 97260311Spfg (build_block_object_assign_decl, build_block_object_assign_call_exp, 98260311Spfg build_block_object_dispose_decl, build_block_object_dispose_call_exp): New. 99260311Spfg (build_indirect_object_id_exp): Fixed a code gen bug which was exposed in 100260311Spfg c/c++ mode, but not in ObjC/ObjC++ mode. 101260311Spfg * c-common.h (build_block_object_assign_call_exp, 102260311Spfg build_block_object_dispose_call_exp, 103260311Spfg objc_is_gcable_type): New decls. 104260311Spfg Declaration of several new flags. 105260311Spfg (cast_to_pointer_to_id): Removed. 106260311Spfg * stub-objc.c (objc_is_gcable_type): New 107260311Spfg (copy_in_object, retain_block_component, release_block_component): Removed. 108260311Spfg (cast_to_pointer_to_id): Removed. 109260311Spfg * c-parser.c (build_block_struct_initlist): Remove call to copy_in_object. 110260311Spfg (synth_copy_helper_block_func): Generates much simplified API. 111260311Spfg (synth_destroy_helper_block_func): Ditto. 112260311Spfg (block_object_dispose): Removed. 113260311Spfg * config/darwin-c.c (darwin_cpp_builtins): Define __weak even when 114260311Spfg -fobjc-gc is off. 115260311Spfg 116260311Spfg2008-10-31 Fariborz Jahanian <fjahanian@apple.com> 117260311Spfg 118260311Spfg Radar 6175959 119260311Spfg * stub-objc.c (block_requires_copying): Object pointers with 120260311Spfg NSObject attribute also require copy/release API. 121260311Spfg * c-parser.c (synth_copy_helper_block_func): Use the new API 122260311Spfg _Block_object_assign for ObjC object copying. 123260311Spfg (block_object_dispose): New 124260311Spfg (synth_destroy_helper_block_func): Call block_object_dispose 125260311Spfg to use new _Block_object_dispose API for ObjC object release. 126260311Spfg 127260311Spfg2008-10-27 Fariborz Jahanian <fjahanian@apple.com> 128260311Spfg 129260311Spfg Radar 6231433 130260311Spfg * c-typeck.c (objc_compare_types, objc_have_common_type): 131260311Spfg Take an extra argument for better diagnostics. 132260311Spfg * c-common.c (objc_compare_types, objc_have_common_type): 133260311Spfg Take extra argument. 134260311Spfg * stub-objc.c: Ditto 135260311Spfg 136260311Spfg2008-10-24 Fariborz Jahanian <fjahanian@apple.com> 137260311Spfg 138260311Spfg Radar 6305545 139260311Spfg * cgraph.h (lower_if_nested_functions): New decl. 140260311Spfg * tree-gimple.h (lower_nested_functions): Takes one more arg. 141260311Spfg * cgraphunit.c (lower_if_nested_functions): New 142260311Spfg * tree-nested.c (lower_nested_functions): Skip structors. 143260311Spfg 144260311Spfg2008-10-24 Fariborz Jahanian <fjahanian@apple.com> 145260311Spfg 146260311Spfg Radar 5847213 (minor tweak) 147260311Spfg * c-decl.c (build_block_descriptor_type): 148260311Spfg Make descriptor_ptr_type and descriptor_ptr_type_with_copydispose 149260311Spfg visible to pch. 150260311Spfg 151260311Spfg2008-10-23 Caroline Tice <ctice@apple.com> 152260311Spfg 153260311Spfg Radar 6300081 154260311Spfg * tree.c(build_block_pointer_type): Add call to 155260311Spfg build_generic_block_struct_type to initialize 156260311Spfg generic_block_literal_struct_type if necessary. 157260311Spfg * cp/parser.c (build_generic_block_struct_type): Update comments. 158260311Spfg (build_block_struct_type): Remove call to 159260311Spfg build_generic_block_struct_type. 160260311Spfg (make_block_pointer_declarator): Likewise. 161260311Spfg * c-decl.c (make_block_pointer_declarator): Likewise. 162260311Spfg * c-parser.c (build_block_struct_type): Likewise. 163260311Spfg (build_generic_block_struct_type): Update comments. 164260311Spfg 165260311Spfg2008-10-22 Caroline Tice <ctice@apple.com> 166260311Spfg 167260311Spfg Radar 6300081 & Radar 6163705 168260311Spfg * tree.h (generic_block_literal_struct_type): Extern global variable 169260311Spfg decl. 170260311Spfg (build_generic_block_struct_type): New extern function decl. 171260311Spfg * cp/parser (build_generic_block_struct_type): New function. 172260311Spfg (build_block_struct_type): Call build_generic_block_struct_type 173260311Spfg to initialize generic_block_literal_struct_type. 174260311Spfg (make_block_pointer_declarator): Likewise. 175260311Spfg (declare_block_prologue_local_vars): Temporarily set input_location 176260311Spfg to 1 before the start of the block function; re-set input_location at 177260311Spfg the end of this function. 178260311Spfg * dwarf2out.c (add_type_attribute): If the type is a 179260311Spfg BLOCK_POINTER_TYPE, assign it to be a pointer to a 180260311Spfg generic_block_literal_struct_type. 181260311Spfg * c-decl.c (make_block_pointer_declarator): Call 182260311Spfg build_generic_block_struct_type to initialize 183260311Spfg generic_block_literal_struct_type. 184260311Spfg * c-common.c (generic_block_literal_struct_type): New global variable. 185260311Spfg * c-parser.c (build_generic_block_struct_type): New function. 186260311Spfg (build_block_struct_type): Call build_generic_block_struct_type 187260311Spfg to initialize generic_block_literal_struct_type. 188260311Spfg * testsuite/gcc.apple/block-debug-1.c: Fix test to work with new 189260311Spfg compiler modifications. 190260311Spfg * testsuite/gcc.apple/block-debug-2.c: Likewise. 191260311Spfg * testsuite/g++.apple/block-debug-1.C: Likewise. 192260311Spfg * testsuite/g++.apple/block-debug-2.C: Likewise. 193260311Spfg 194260311Spfg2008-10-10 Fariborz Jahanian <fjahanian@apple.com> 195260311Spfg 196260311Spfg Radar 5847213 - New Block ABI 197260311Spfg * dwarf2out.c (add_type_attribute): Unusuable code 198260311Spfg for radar 5811943 is removed. 199260311Spfg * c-decl.c (build_block_byref_decl): Removed unneeded 200260311Spfg build of block_original_byref_decl_list. 201260311Spfg (build_block_internal_types): Removed. 202260311Spfg (build_block_descriptor_type): New routine to build the descriptor type. 203260311Spfg (make_block_pointer_declarator): Unused code is removed. 204260311Spfg * c-typeck.c (build_block_call): New code gen for block calls. 205260311Spfg * c-common.c (invoke_impl_ptr_type): Removed. 206260311Spfg * c-common.h (block_original_byref_decl_list, build_block_internal_types): Removed 207260311Spfg (build_block_descriptor_type, BLOCK_HAS_DESCRIPTOR): Decls added. 208260311Spfg * c-parser.c (build_block_struct_type): Block literal expression internal type 209260311Spfg is redeclared into its new layout. 210260311Spfg (build_block_struct_initlist): Initializer list for above type is redone. 211260311Spfg (build_descriptor_block_decl): New routine to declare the descriptor variable 212260311Spfg (build_block_literal_tmp): Modified for the new type and initiazation. 213260311Spfg 214260311Spfg2008-10-06 Fariborz Jahanian <fjahanian@apple.com> 215260311Spfg 216260311Spfg Radar 6268817 217260311Spfg * c-decl.c (check_for_loop_decls): Block helper function 218260311Spfg is OK if declared in a for-loop main statement block. 219260311Spfg 220260311Spfg2008-10-02 Fariborz Jahanian <fjahanian@apple.com> 221260311Spfg 222260311Spfg Radar 6246527 223260311Spfg * attribs.c (decl_attributes): Added support for adding attributes 224260311Spfg on block pointer variable declarations. 225260311Spfg * c-common.c (block_delta_format_args): Add 226260311Spfg (any_recognized_block_attribute): Add 227260311Spfg * c-common.h (any_recognized_block_attribute): New decl. 228260311Spfg * c-parser.c (c_parser_block_literal_expr): Call to do the delta 229260311Spfg on printf attribute. 230260311Spfg 231260311Spfg2008-09-30 Fariborz Jahanian <fjahanian@apple.com> 232260311Spfg 233260311Spfg Radar 6225809 234260311Spfg * c-decl.c (build_block_byref_decl): Add __block vaiables 235260311Spfg to intervening blocks. 236260311Spfg 237260311Spfg2008-09-25 Fariborz Jahanian <fjahanian@apple.com> 238260311Spfg 239260311Spfg Radar 6237713 240260311Spfg * c-common.c (handle_noreturn_attribute): Add 'noreturn' 241260311Spfg attribute to block pointer decls. 242260311Spfg * c-parser.c (c_parser_block_literal_expr): Parse and set 243260311Spfg attributes on block literals. 244260311Spfg 245260311Spfg2008-09-25 Fariborz Jahanian <fjahanian@apple.com> 246260311Spfg 247260311Spfg Radar 6244520 - minor addition 248260311Spfg * c-common.c (build_indirect_object_id_exp): offset needs 249260311Spfg be updated to accomodate addition of the new field. 250260311Spfg 251260311Spfg2008-09-16 Fariborz Jahanian <fjahanian@apple.com> 252260311Spfg 253260311Spfg Radar 6214617 254260311Spfg * c-common: New flag BLOCK_HAS_CXX_OBJ replaces BLOCK_NO_COPY. 255260311Spfg (BlockImportsCxxObjects): New field replaces BlockHasByrefVar. 256260311Spfg * c-parser.c (build_block_struct_type): Remove setting of 257260311Spfg BLOCK_NO_COPY flag. 258260311Spfg 259260311Spfg2008-09-16 Fariborz Jahanian <fjahanian@apple.com> 260260311Spfg 261260311Spfg Radar 6217257 262260311Spfg * c-common.c (handle_blocks_attribute): Diagnose 263260311Spfg vla __block declarations. 264260311Spfg 265260311Spfg2008-09-12 Fariborz Jahanian <fjahanian@apple.com> 266260311Spfg 267260311Spfg Radar 6212722 (tweak) 268260311Spfg * c-decl.c (build_block_ref_decl): Use array_to_pointer_conversion 269260311Spfg and function_to_pointer_conversion. 270260311Spfg * c-typeck.c (array_to_pointer_conversion, function_to_pointer_conversion): 271260311Spfg Made them global. 272260311Spfg * c-common.h (array_to_pointer_conversion, function_to_pointer_conversion): 273260311Spfg Declare. 274260311Spfg 275260311Spfg2008-09-09 Fariborz Jahanian <fjahanian@apple.com> 276260311Spfg 277260311Spfg Radar 6169580 278260311Spfg * c-commmon.c (build_block_helper_name): Fix bug in 279260311Spfg block helper function name mangling. 280260311Spfg 281260311Spfg2008-09-03 Fariborz Jahanian <fjahanian@apple.com> 282260311Spfg 283260311Spfg Radar 6185344 284260311Spfg * c-typeck.c (c_finish_return): Don't do block specific 285260311Spfg stuff when block has a return type. 286260311Spfg * c-common.h (block_sema_info): block_has_return_type is 287260311Spfg a new field. 288260311Spfg * c-parser.c (c_parser_direct_declarator): Terminate type 289260311Spfg parsing for block return types. 290260311Spfg (c_parser_block_literal_expr): Added support to parse and 291260311Spfg handle explicit return type for blocks. 292260311Spfg 293260311Spfg2008-08-28 Fariborz Jahanian <fjahanian@apple.com> 294260311Spfg 295260311Spfg Radar 6160536 296260311Spfg * c-commmon.c (build_block_helper_name): New 297260311Spfg * c-common.h (build_block_helper_name): New decl. 298260311Spfg * c-parser.c (c_parser_block_literal_expr): Call 299260311Spfg build_block_helper_name to build pretty helper function 300260311Spfg name. 301260311Spfg 302260311Spfg2008-08-28 Fariborz Jahanian <fjahanian@apple.com> 303260311Spfg 304260311Spfg Radar 6180456 305260311Spfg * c-decl.c (synth_block_byref_id_object_copy_func): Different 306260311Spfg API for copying __block declared objects in c. 307260311Spfg (synth_block_byref_id_object_dispose_func): Different API 308260311Spfg for releasing __block declared objects in c. 309260311Spfg * c-common.c (block_byref_assign_copy_decl): New 310260311Spfg (build_indirect_object_id_exp): Cast to 'id *' in objective-c 311260311Spfg mode only. 312260311Spfg * c-common.h (build_block_byref_assign_copy_decl): New decl. 313260311Spfg * c-parser.c (synth_copy_helper_block_func): Refactored code 314260311Spfg to call build_block_byref_assign_copy_decl(). 315260311Spfg 316260311Spfg2008-08-24 Caroline Tice <ctice@apple.com> 317260311Spfg 318260311Spfg Radars 6144664, 6145471, 6144634 319260311Spfg c-decl.c (build_block_byref_decl): Assign the source 320260311Spfg location for each byref decl to the source location of 321260311Spfg the helper function decl. 322260311Spfg (build_block_ref_decl): Ditto for ref decls. 323260311Spfg 324260311Spfg2008-08-14 Fariborz Jahanian <fjahanian@apple.com> 325260311Spfg 326260311Spfg Radar 5822844 327260311Spfg * c-typeck.c (digest_init): Handler block as initializer. 328260311Spfg (c_finish_return): check for completed block before 329260311Spfg analyzing block's return expression. 330260311Spfg * varasm.c (output_constant): Allow outputting block data. 331260311Spfg * c-common.h (BLOCK_IS_GLOBAL): New flag. 332260311Spfg (block_is_complete): New field in block data structure. 333260311Spfg * c-parser.c (build_block_struct_initlist): New initializer and 334260311Spfg flag for global block data. 335260311Spfg (build_block_literal_tmp): Temporary data for global block is 336260311Spfg declared as global static. 337260311Spfg (c_parser_block_literal_expr): Removed diagnostics for global blocks. 338260311Spfg Moved fixing helper function type earlier before its tree is built. 339260311Spfg 340260311Spfg2008-08-06 Fariborz Jahanian <fjahanian@apple.com> 341260311Spfg 342260311Spfg Radar 6014138 343260311Spfg * c-decl.c (build_block_byref_decl): In the presence of nested "{" 344260311Spfg move up the scope chain until reaching the main function body's scope. 345260311Spfg 346260311Spfg2008-08-04 Fariborz Jahanian <fjahanian@apple.com> 347260311Spfg 348260311Spfg Radar 6040305 - work in progress. 349260311Spfg * c-decl.c (build_indirect_object_id_exp): Removed. 350260311Spfg * c-common.c (build_indirect_object_id_exp): Added 351260311Spfg * c-common.h (build_indirect_object_id_exp): New decl. 352260311Spfg * config/darwin-c.c (darwin_cpp_builtins): Define __byref 353260311Spfg in c++ mode as well. 354260311Spfg 355260311Spfg2008-07-18 Fariborz Jahanian <fjahanian@apple.com> 356260311Spfg 357260311Spfg Radar 6083129 - twiked 358260311Spfg * c-decl.c (release_all_local_byrefs_at_return): Do not release 359260311Spfg imported __byref variables in the block. 360260311Spfg * c-parser.c (gen_block_byref_release_exp): Do not release __byref 361260311Spfg variables outside of the block when returning from the block. 362260311Spfg 363260311Spfg2008-07-15 Fariborz Jahanian <fjahanian@apple.com> 364260311Spfg 365260311Spfg Radar 5988451 366260311Spfg * c-decl.c (build_block_ref_decl): Insert copied in variable 367260311Spfg in each enclosing block which does not use it. 368260311Spfg (begin_block): Remove setting of "the_scope" field of the block. 369260311Spfg (in_imm_block): Fix effect of changing the "the_scope" field. 370260311Spfg (lookup_name_in_block): Do not skip over copied-in variables when 371260311Spfg looking up a variable in the block. 372260311Spfg * c-parser.c (c_parser_block_literal_expr): Set block's "the_scope" field 373260311Spfg to the helper function's outer-most body scope. 374260311Spfg 375260311Spfg2008-07-08 Fariborz Jahanian <fjahanian@apple.com> 376260311Spfg 377260311Spfg Radar 6048570 378260311Spfg * c-typeck.c (c_finish_return): Error on returning a block on the stack. 379260311Spfg 380260311Spfg2008-06-05 Fariborz Jahanian <fjahanian@apple.com> 381260311Spfg 382260311Spfg Radar 5988995 383260311Spfg * c-typeck.c (types_are_closure_compatible): Nested block pointer 384260311Spfg types must be considered when matching block types. 385260311Spfg 386260311Spfg2008-06-05 Fariborz Jahanian <fjahanian@apple.com> 387260311Spfg 388260311Spfg Radar 5982990 389260311Spfg * c-parser.c (c_parser_objc_synch_compound_statement): New 390260311Spfg (c_parser_objc_synchronized_statement): Call 391260311Spfg c_parser_objc_synch_compound_statement. 392260311Spfg 393260311Spfg2008-06-04 Fariborz Jahanian <fjahanian@apple.com> 394260311Spfg 395260311Spfg Radar 5985368 396260311Spfg * c-parser.c (c_parser_declaration_or_fndef): Better diagnostics for 397260311Spfg a bad block definition. 398260311Spfg 399260311Spfg2008-05-23 Fariborz Jahanian <fjahanian@apple.com> 400260311Spfg 401260311Spfg Radar 5925781 402260311Spfg * c-common.c (handle_nonnull_attribute): Support block pointer 403260311Spfg just like a pointer for nonnull attribute. 404260311Spfg (check_nonnull_arg): Ditto. 405260311Spfg 406260311Spfg2008-05-20 Fariborz Jahanian <fjahanian@apple.com> 407260311Spfg 408260311Spfg Radar 5932809 - minor change for runtime delight. 409260311Spfg * c-parser.c (build_closure_struct_type): Add strcutor fields 410260311Spfg for __byref 'id' object blocks as well. 411260311Spfg (build_closure_struct_initlist): And their initializers. 412260311Spfg 413260311Spfg2008-04-30 Caroline Tice <ctice@apple.com> 414260311Spfg 415260311Spfg Radar 5811961 416260311Spfg * c-decl.c: (declare_closure_prologue_local_vars): Set the source 417260311Spfg location for the new decl expr statement to be the source location of 418260311Spfg the decl tree. 419260311Spfg 420260311Spfg2008-04-25 Fariborz Jahanian <fjahanian@apple.com> 421260311Spfg 422260311Spfg Radar 5803005 (tweaked) 423260311Spfg * c-typeck.c (build_external_ref): Refactored global decl checks. 424260311Spfg 425260311Spfg2008-04-24 Caroline Tice <ctice@apple.com> 426260311Spfg 427260311Spfg Radar 5811943 428260311Spfg * tree.h (TYPE_CLOSURE_IMPL_STRUCT): New macro. 429260311Spfg (lang_flag_2): Use previously unused field in tree_type to indicate 430260311Spfg closure structs. 431260311Spfg * dwarf2out.c (c-common.h): New include statement. 432260311Spfg (dwarf_attr_name): Add case for DW_AT_APPLE_closure. 433260311Spfg (gen_variable_die): Give pointers to closures the 434260311Spfg invoke_impl_ptr_type. 435260311Spfg (gen_struct_or_union_type_die): Add DW_AT_APPLE_closure 436260311Spfg to structs that define closures. 437260311Spfg * dwarf2.h (DW_AT_APPLE_closure): New Dwarf attribute. 438260311Spfg * c-typeck.c (invoke_impl_ptr_type): Move declaration from here to 439260311Spfg c-common.c 440260311Spfg (build_closure_internal_types): Set TYPE_CLOSURE_IMPL_STRUCT 441260311Spfg flag for closure structs. 442260311Spfg * c-common.c (invoke_impl_ptr_type): Move declaration to here from 443260311Spfg c-typeck.c. 444260311Spfg 445260311Spfg2008-04-23 Fariborz Jahanian <fjahanian@apple.com> 446260311Spfg 447260311Spfg Radar 5882266 448260311Spfg * c-typeck.c (types_are_closure_compatible): Check for underlying 449260311Spfg pointer types as well. 450260311Spfg 451260311Spfg2008-04-15 Stuart Hastings <stuart@apple.com> 452260311Spfg 453260311Spfg Radar 5862465 454260311Spfg * tree.h (PTR_OR_REF_CHECK, POINTER_TYPE_P): Add 455260311Spfg CLOSURE_POINTER_TYPE. 456260311Spfg * fold-const.c (fold_convert): Add CLOSURE_POINTER_TYPE. 457260311Spfg * testsuite/gcc.apple/closure-5862465.c: New. 458260311Spfg 459260311Spfg2008-03-31 Fariborz Jahanian <fjahanian@apple.com> 460260311Spfg 461260311Spfg Radar 5831855 462260311Spfg * c-typeck.c (convert_for_assignment): Block and 'id' types 463260311Spfg are interchangeable. 464260311Spfg 465260311Spfg2008-03-28 Fariborz Jahanian <fjahanian@apple.com> 466260311Spfg 467260311Spfg Radar 5809099 468260311Spfg * convert.c (convert_to_pointer): Allow typecast of closure 469260311Spfg pointer to 'id'. 470260311Spfg (convert_to_closure_pointer): Allow typecast of 'id' 471260311Spfg of a closure pointer expression. 472260311Spfg 473260311Spfg2008-03-25 Fariborz Jahanian <fjahanian@apple.com> 474260311Spfg 475260311Spfg Radar 5811887 (minor change) 476260311Spfg * c-opts.c (c_common_post_options): Remove conditional check 477260311Spfg of pedantic when setting flag_blocks. 478260311Spfg 479260311Spfg2008-03-24 Fariborz Jahanian <fjahanian@apple.com> 480260311Spfg 481260311Spfg Radar 5811887 482260311Spfg * c-cppbuiltin.c: flag_closures renamed to flag_blocks 483260311Spfg * c-parser.c: Ditto. 484260311Spfg * c.opt: flag_closures renamed to flag_blocks. flag_blocks 485260311Spfg defaulted to -1. 486260311Spfg * c-opts.c (c_common_post_options): All flavors of c99, blocks are off by 487260311Spfg default unless requested via -fblocks. 488260311Spfg 489260311Spfg2008-03-24 Fariborz Jahanian <fjahanian@apple.com> 490260311Spfg 491260311Spfg Radar 5814025 492260311Spfg * c-tree.h (make_closure_pointer_declarator): Takes 493260311Spfg additional argument. 494260311Spfg * c-decl.c (grokdeclarator): Get 'const'-ness of closure 495260311Spfg pointer. 496260311Spfg (make_closure_pointer_declarator): Takes additional argument for 497260311Spfg const/volatile. 498260311Spfg * c-parser.c (c_parser_declarator): Pass down attribute info. 499260311Spfg to make_closure_pointer_declarator. 500260311Spfg 501260311Spfg2008-03-20 Fariborz Jahanian <fjahanian@apple.com> 502260311Spfg 503260311Spfg Radar 5802025 504260311Spfg * c-common.h (objc_build_property_getter_func_call): New decl. 505260311Spfg * stub-objc.c (objc_build_property_getter_func_call): New stub. 506260311Spfg 507260311Spfg2008-03-18 Fariborz Jahanian <fjahanian@apple.com> 508260311Spfg 509260311Spfg Radar 5803600 510260311Spfg * c-decl.c (add_closure_global_byref_list, 511260311Spfg in_closure_global_byref_list): New defs. 512260311Spfg * c-common.h (add_closure_global_byref_list, 513260311Spfg in_closure_global_byref_list): New decls. 514260311Spfg * c-typeck.c (build_external_ref): global variables 515260311Spfg declared as 'byref' are enterred in their own list 516260311Spfg of such declarations per each closure. 517260311Spfg * c-parser.c (c_parser_postfix_expression): Remove previous fix. 518260311Spfg (c_parser_closure_byref_declaration): Check for global 519260311Spfg 'byref' by calling in_closure_global_byref_list. 520260311Spfg 521260311Spfg2008-03-13 Fariborz Jahanian <fjahanian@apple.com> 522260311Spfg 523260311Spfg Radar 5795493 524260311Spfg * c-typeck.c: Renamed typesAreClosureCompatible to 525260311Spfg types_are_closure_compatible. 526260311Spfg 527260311Spfg2008-03-11 Fariborz Jahanian <fjahanian@apple.com> 528260311Spfg 529260311Spfg Radar 5732232 (Related to change of command option/macro) 530260311Spfg * c-cppbuiltin.c: __CLOSURES__ macro rename __BLOCKS__ 531260311Spfg * c.opt: -fclosures change to -fblocks. 532260311Spfg 533260311Spfg2008-03-10 Fariborz Jahanian <fjahanian@apple.com> 534260311Spfg 535260311Spfg Radar 5782740 - part 2 (bug fix). 536260311Spfg * c-parser.c (synth_copy_helper_closure, 537260311Spfg synth_destroy_helper_closure): set DECL_ARG_TYPE field of input 538260311Spfg arguments for the two synthesized helper functions. 539260311Spfg 540260311Spfg2008-02-21 Caroline Tice <ctice@apple.com> 541260311Spfg 542260311Spfg Radar 5741070 543260311Spfg * objc/objc-act.c (objc_finish_message_expr): Find 544260311Spfg the record-type tree from the class interface, and mark the record 545260311Spfg type as used, for emitting debug info. 546260311Spfg * cp/cp-objcp-common.c (c_return_interface_record_type): New function. 547260311Spfg * cp/cp-tree.h (c_return_interface_record_type): New extern function 548260311Spfg declaration. 549260311Spfg * c-tree.h (c_return_interface_record_type): Likewise 550260311Spfg * c-decl.c (c_return_interface_record_type): New function. 551260311Spfg 552260311Spfg2007-08-22 Fariborz Jahanian <fjahanian@apple.com> 553260311Spfg 554260311Spfg Radar 4947311 555260311Spfg * c-common.h (objc_declare_protocols, objc_start_protocol): Decl changed. 556260311Spfg * stub-objc.c (objc_declare_protocols, objc_start_protocol): Changed. 557260311Spfg * c-parser.c (c_parser_external_declaration): Call to 558260311Spfg c_parser_objc_protocol_definition takes additional argument. 559260311Spfg (c_parser_declaration_or_fndef): Protocols with attributes are processed 560260311Spfg here by passing it to c_parser_objc_protocol_definition. 561260311Spfg (c_parser_objc_protocol_definition): Takes additional argument and passes 562260311Spfg it to objc_declare_protocols or objc_start_protocol. 563260311Spfg 564260311Spfg2007-07-13 Fariborz Jahanian <fjahanian@apple.com> 565260311Spfg 566260311Spfg Radar 5277239 567260311Spfg * c-parser.c (c_parser_next_token_starts_declspecs): Exclude 568260311Spfg objc2's property dot-syntax as a declarator. 569260311Spfg (c_parser_postfix_expression): Convert property dot-syntax on 570260311Spfg class objects into a property reference expression. 571260311Spfg 572260311Spfg2007-07-10 Fariborz Jahanian <fjahanian@apple.com> 573260311Spfg 574260311Spfg Radar 5285911 575260311Spfg * tree.h (CALL_EXPR_OBJC_PROPERTY_GETTER): Macro removed. 576260311Spfg * c-typeck.c (build_component_ref): Call 577260311Spfg objc_build_property_reference_expr instead of objc_build_getter_call. 578260311Spfg (build_modify_expr): Call objc_property_reference_expr instead of 579260311Spfg objc_property_call. 580260311Spfg * c-common.h (objc_build_getter_call, objc_property_call): Decl removed. 581260311Spfg (objc_build_property_reference_expr, objc_property_reference_expr): Decl. 582260311Spfg added. 583260311Spfg * stub-objc.c (objc_build_getter_call, objc_property_call): Stub removed. 584260311Spfg (objc_build_property_reference_expr, objc_property_reference_expr): 585260311Spfg Stub added. 586260311Spfg 587260311Spfg2007-06-29 Fariborz Jahanian <fjahanian@apple.com> 588260311Spfg 589260311Spfg Radar 5276085 590260311Spfg * c-parser.c (c_parser_binary_expression) : objc_generate_weak_read 591260311Spfg replaced with call to objc_build_weak_reference_tree 592260311Spfg * c-typeck.c (build_modify_expr, c_objc_common_truthvalue_conversion): 593260311Spfg objc_remove_weak_read replaced with call to objc_weak_reference_expr. 594260311Spfg * c-common.h (objc_weak_reference_expr, 595260311Spfg objc_build_weak_reference_tree) : New decl. 596260311Spfg (objc_generate_weak_read, objc_remove_weak_read): remove. 597260311Spfg * stub-objc.c (objc_weak_reference_expr, 598260311Spfg objc_build_weak_reference_tree): New stub. 599260311Spfg (objc_generate_weak_read, objc_remove_weak_read): remove. 600260311Spfg 601260311Spfg2007-05-23 Fariborz Jahanian <fjahanian@apple.com> 602260311Spfg 603260311Spfg Radar 5195402 604260311Spfg * c-format.c (handle_format_arg_attribute): Check for NSString * 605260311Spfg and CFStringRef as valid formatting types. 606260311Spfg (check_format_string): Ditto. 607260311Spfg * c-common.h (objc_check_format_nsstring, 608260311Spfg objc_check_cfstringref_type): New decls. 609260311Spfg * stub-objc.c (objc_check_nsstring_pointer_type): New stub. 610260311Spfg * config/darwin-c.c (objc_check_cfstringref_type): New 611260311Spfg (objc_check_format_cfstring): Call objc_check_cfstringref_type 612260311Spfg for valid CFStringRef argument type. 613260311Spfg * config/darwin-protos.h (objc_check_cfstringref_type): New decl. 614260311Spfg * config/darwin.h (CFSTRING_TYPE_CHECK): New macro. 615260311Spfg 616260311Spfg2007-05-18 Fariborz Jahanian <fjahanian@apple.com> 617260311Spfg 618260311Spfg Radar 5202926 619260311Spfg * c-common.h (objc_anonymous_local_objc_name): New decl. 620260311Spfg * config/darwin-protos.h (objc_anonymous_local_objc_name): Decl. 621260311Spfg * stub-objc.c (objc_anonymous_local_objc_name): New stub. 622260311Spfg * config/darwin.h (ASM_OUTPUT_LABELREF) Call 623260311Spfg objc_anonymous_local_objc_name. 624260311Spfg 625260311Spfg2007-05-07 Fariborz Jahanian <fjahanian@apple.com> 626260311Spfg 627260311Spfg Radar 4157812 628260311Spfg * c-common.h (objc_build_keyword_decl): Takes a new argument. 629260311Spfg * stub-objc.c (objc_build_keyword_decl): Ditto. 630260311Spfg * c-parser.c (c_parser_objc_method_decl): Recognize optional 631260311Spfg method's argument attribute. 632260311Spfg (c_parser_objc_method_decl): Handle errornous selector. 633260311Spfg 634260311Spfg2007-05-02 Fariborz Jahanian <fjahanian@apple.com> 635260311Spfg 636260311Spfg Radar 4502186 637260311Spfg * c-typeck.c (convert_for_assignment): Remove synthesized 'volatile' 638260311Spfg type before doing type comparison. 639260311Spfg 640260311Spfg2007-03-29 Fariborz Jahanian <fjahanian@apple.com> 641260311Spfg 642260311Spfg Radar 4564694 643260311Spfg * c-parse.c (c_parser_objc_class_instance_variables): Add @package 644260311Spfg support to syntax. 645260311Spfg * c-common.h (RID_AT_PACKAGE): Add 646260311Spfg 647260311Spfg2007-03-29 Fariborz Jahanian <fjahanian@apple.com> 648260311Spfg 649260311Spfg Radar 4947014 - objc atomic property 650260311Spfg * c-common.h (RID_NONATOMIC): Add 651260311Spfg * c-parse.c (c_parser_objc_property_attribute) : Recognize 'nonatomic' 652260311Spfg as new property. 653260311Spfg 654260311Spfg2007-03-23 Fariborz Jahanian <fjahanian@apple.com> 655260311Spfg 656260311Spfg Radar 4985544 657260311Spfg * c-format.c (enum format_type): New entry for NSString format. 658260311Spfg (format_typ): Has a new entry for NSString format. 659260311Spfg (decode_format_attr): Error on use of NSString format on a 660260311Spfg non-objective-c program. 661260311Spfg (objc_check_nsformat_arg): New. 662260311Spfg (check_format_info): Call back for NSString is objc_check_nsformat_arg 663260311Spfg (handle_format_attribute): Use objc_check_format_nsstring for 664260311Spfg NSString format. 665260311Spfg * c-common.h (objc_NSString_format): New decl. 666260311Spfg (objc_check_format_nsstring): New decl. 667260311Spfg * stub-objc.c (objc_NSString_format, objc_check_format_nsstring): New 668260311Spfg stubs. 669260311Spfg * config/darwin-protos.h (darwin_cfstring_type_node): New decl. 670260311Spfg * config/darwin.c (darwin_cfstring_type_node): New 671260311Spfg * config/darwin.h (TARGET_CFSTRING_P): New macro 672260311Spfg 673260311Spfg2007-03-23 Fariborz Jahanian <fjahanian@apple.com> 674260311Spfg 675260311Spfg Radar 4985544 676260311Spfg * c-format.c (enum format_type): New entry for NSString format. 677260311Spfg (format_typ): Has a new entry for NSString format. 678260311Spfg (decode_format_attr): Error on use of NSString format on a 679260311Spfg non-objective-c program. 680260311Spfg (objc_check_nsformat_arg): New. 681260311Spfg (check_format_info): Call back for NSString is objc_check_nsformat_arg 682260311Spfg (handle_format_attribute): Use objc_check_format_nsstring for 683260311Spfg NSString format. 684260311Spfg * c-common.h (objc_NSString_format): New decl. 685260311Spfg (objc_check_format_nsstring): New decl. 686260311Spfg * stub-objc.c (objc_NSString_format, objc_check_format_nsstring): New 687260311Spfg stubs. 688260311Spfg * config/darwin-protos.h (darwin_cfstring_type_node): New decl. 689260311Spfg * config/darwin.c (darwin_cfstring_type_node): New 690260311Spfg * config/darwin.h (TARGET_CFSTRING_P): New macro 691260311Spfg 692260311Spfg2007-03-22 Fariborz Jahanian <fjahanian@apple.com> 693260311Spfg 694260311Spfg Radar 4965989 695260311Spfg * c-parser.c (c_parser_objc_class_definition): Add supprt for anonymous 696260311Spfg category syntax. 697260311Spfg 698260311Spfg2007-03-21 Fariborz Jahanian <fjahanian@apple.com> 699260311Spfg 700260311Spfg Radar 2848255 701260311Spfg * c-parser.c (c_parser_objc_try_catch_statement): Parse @catch(...). 702260311Spfg * c.opt: Add -fobjc-zerocost-exceptions option. 703260311Spfg * c-opts.c (c_common_post_options): Set the flags for 704260311Spfg -fobjc-zerocost-exceptions. 705260311Spfg * c-common.h: Add some declarations. 706260311Spfg * stub-objc.c (objc2_valid_objc_catch_type, objc2_build_throw_call): 707260311Spfg New stubs. 708260311Spfg * config/darwin.h (OBJC_FLAG_OBJC_ABI): Check for proper 709260311Spfg use of -fobjc-zerocost-exceptions option. 710260311Spfg 711260311Spfg2006-11-06 Fariborz Jahanian <fjahania@apple.com> 712260311Spfg 713260311Spfg Radar 4781080 (part 2) 714260311Spfg * targhooks.c (default_objc_fpreturn_msgcall): Takes 2nd argument. 715260311Spfg * targhooks.h (default_objc_fpreturn_msgcall): Changed Decl. 716260311Spfg * target.h (objc_fpreturn_msgcall): Changed Decl. 717260311Spfg * config/i386/i386.h (OBJC_FPRETURN_MSGCALL): Changed Decl. 718260311Spfg * config/i386/i386-protos.h (ix86_objc_fpreturn_msgcall): Changed Decl. 719260311Spfg * config/i386/i386.c (ix86_objc_fpreturn_msgcall): Changed definition. 720260311Spfg2006-09-15 Fariborz Jahanian <fjahania@apple.com> 721260311Spfg 722260311Spfg Radar 4727659 723260311Spfg * c-common.c (handle_noreturn_attribute): Handle method_decl 724260311Spfg nodes as well. 725260311Spfg 726260311Spfg2006-09-01 Fariborz Jahanian <fjahania@apple.com> 727260311Spfg 728260311Spfg Radar 4712269 729260311Spfg * c-common.h (objc_build_incr_decr_setter_call): New decl. 730260311Spfg * stub-objc.c (objc_build_incr_decr_setter_call): New stub. 731260311Spfg * c-typeck.c (build_unary_op): Call objc_build_incr_decr_setter_call 732260311Spfg for potential ince/decr pre/post expressions involving properties. 733260311Spfg 734260311Spfg2006-08-31 Fariborz Jahanian <fjahanian@apple.com> 735260311Spfg 736260311Spfg Radar 4697411 737260311Spfg * c-common.h (objc_volatilize_component_ref): New decl. 738260311Spfg * c-typeck.c (build_component_ref): Call objc_volatilize_component_ref. 739260311Spfg * stub-objc.c (objc_volatilize_component_ref): New stub. 740260311Spfg 741260311Spfg2006-07-18 Fariborz Jahanian <fjahanian@apple.com> 742260311Spfg 743260311Spfg Radar 4592503 744260311Spfg * c-decl.c (finish_struct): Check on illegal use of __weak 745260311Spfg on struct fields. 746260311Spfg * decl.c (start_decl): Check on illegal use of __weak on 747260311Spfg variable declarations. 748260311Spfg * stub-objc.c (objc_checkon_weak_attribute): New stub. 749260311Spfg * c-common.h (objc_checkon_weak_attribute): New decl. 750260311Spfg 751260311Spfg2006-06-26 Fariborz Jahanian <fjahanian@apple.com> 752260311Spfg 753260311Spfg Radar 4591909 754260311Spfg * c-parse.in: New/modified grammar for new attributes in 755260311Spfg properties. 756260311Spfg (yylexname): Change to recognize new attribute terminals. 757260311Spfg * c-common.h (RID_DYNAMIC): New enum declaration. 758260311Spfg 759260311Spfg2006-07-14 Fariborz Jahanian <fjahanian@apple.com> 760260311Spfg 761260311Spfg Radar 4621020 762260311Spfg * c-parse.in: Added 'weak' attribute keyword for @property. 763260311Spfg * c-common.h: 'weak' related declarations. 764260311Spfg 765260311Spfg2006-05-18 Fariborz Jahanian <fjahanian@apple.com> 766260311Spfg 767260311Spfg Radar 4548636 (objc attributes on class) 768260311Spfg * c-parse.in: Add attribute non-terminal before 769260311Spfg AT_INTERFACE. 770260311Spfg * c-common.h (objc_start_class_interface): New argument added. 771260311Spfg * stub-objc.c (objc_start_class_interface): Ditto. 772260311Spfg 773260311Spfg2006-05-16 Fariborz Jahanian <fjahanian@apple.com> 774260311Spfg 775260311Spfg Radar 4547045 776260311Spfg * c-gimplify.c (obj_reuse_bc_block): Removed. 777260311Spfg (objc_pop_label, objc_push_label): New. 778260311Spfg (gimplify_c_loop): Fix up foreach's innerloop break label. 779260311Spfg 780260311Spfg2006-04-26 Fariborz Jahanian <fjahanian@apple.com> 781260311Spfg 782260311Spfg Radar 3803157 (method attributes) 783260311Spfg * c-parse.in: Add grammar support for declaring 784260311Spfg attribute for objc methods. 785260311Spfg * c-common.c (handle_deprecated_attribute): Recognize 786260311Spfg objc methods as valid declarations. 787260311Spfg (handle_unavailable_attribute): Ditto. 788260311Spfg * c-common.h: Bunch of new extern declarations. 789260311Spfg * stub-objc.c (objc_add_method_declaration, objc_start_method_definition): 790260311Spfg Added new argument. 791260311Spfg (objc_method_decl): New stub. 792260311Spfg 793260311Spfg2006-04-12 Fariborz Jahanian <fjahanian@apple.com> 794260311Spfg 795260311Spfg Radar 4507230 796260311Spfg * c-common.h (objc_type_valid_for_messaging): Declare. 797260311Spfg * stub-objc.c (objc_type_valid_for_messaging): New stub. 798260311Spfg 799260311Spfg2006-04-06 Fariborz Jahanian <fjahanian@apple.com> 800260311Spfg 801260311Spfg Radar 4436866 802260311Spfg (Missing copies attribute) 803260311Spfg * c-parse.in: Add grammer for 'copies' attribute. 804260311Spfg * c-common.h (RID_COPIES): New enumerator. 805260311Spfg 806260311Spfg2006-03-27 Fariborz Jahanian <fjahanian@apple.com> 807260311Spfg 808260311Spfg Radar 4133425 809260311Spfg * c-common.h (objc_diagnose_private_ivar): New decl. 810260311Spfg * stub-objc.c (objc_diagnose_private_ivar): New stub. 811260311Spfg * c-decl.c (undeclared_variable): Issue disnostic on 812260311Spfg private 'ivar' access. 813260311Spfg 814260311Spfg2006-03-27 Fariborz Jahanian <fjahanian@apple.com> 815260311Spfg 816260311Spfg Radar 4491608 817260311Spfg * c-typeck.c (convert_arguments): function name must come from 'selector' 818260311Spfg when diagnosing 'too many arguments'. 819260311Spfg 820260311Spfg2006-03-23 Fariborz Jahanian <fjahanian@apple.com> 821260311Spfg 822260311Spfg Radar 4193359 823260311Spfg * c-typeck.c (convert_for_assignment): Remove Objective-C EH machinery 824260311Spfg 'volatile' qualifier before doing type comparison. 825260311Spfg 826260311Spfg2006-02-28 Fariborz Jahanian <fjahanian@apple.com> 827260311Spfg 828260311Spfg Radar 4441049 829260311Spfg * c-common.h (objc_v2_bitfield_ivar_bitpos): New decl. 830260311Spfg * expr.h (objc_v2_bitfield_ivar_bitpos): New decl. 831260311Spfg * stub-objc.c (objc_v2_bitfield_ivar_bitpos): New stub. 832260311Spfg * expr.c (get_inner_reference): Compute ivar's bitfield bit offset. 833260311Spfg 834260311Spfg2006-02-15 Fariborz Jahanian <fjahanian@apple.com> 835260311Spfg 836260014Spfg Radar 4445586 837260014Spfg * c-common.def (DO_STMT): Takes an extra argument. 838260014Spfg 839260311Spfg2006-02-02 Fariborz Jahanian <fjahanian@apple.com> 840260311Spfg 841260311Spfg Radar 4426814 842260311Spfg * c-parse.in (cast_expr): generate objc_read_weak call on 843260311Spfg each __weak object in the expession. 844260311Spfg * c-typeck.c (build_modify_expr): Undo the call to objc_read_weak 845260311Spfg on LHS expression. 846260311Spfg * c-objc-common.c (c_objc_common_truthvalue_conversion): Generate 847260311Spfg objc_read_weak call before generating tree for !exp, etc. 848260311Spfg * c-common.h (objc_generate_weak_read, objc_remove_weak_read): New decl. 849260311Spfg * stub-objc.c (objc_generate_weak_read, objc_remove_weak_read): New stubs. 850260311Spfg 851260311Spfg2005-12-15 Fariborz Jahanian <fjahanian@apple.com> 852260311Spfg 853260311Spfg Radar 4229905 854260311Spfg * c-typeck.c (build_conditional_expr): Call objc_have_common_type when 855260311Spfg looking for objective-c common pointer types. 856260311Spfg * c-common.h objc_have_common_type): New declaration. 857260311Spfg * stub-objc.c (objc_have_common_type): New stub. 858260311Spfg 859260311Spfg2005-12-05 Mike Stump <mrs@apple.com> 860260311Spfg 861260311Spfg Radar 4357979 862260311Spfg * doc/invoke.texi (C Dialect Options): Improve -fnested-functions wording. 863260311Spfg * doc/extend.texi (Nested Functions): Note that on darwin nested 864260311Spfg functions are off by default. 865260311Spfg 866260311Spfg2005-11-08 Fariborz Jahanian <fjahanian@apple.com> 867260311Spfg 868260311Spfg Radar 4330422 869260311Spfg 870260311Spfg * c-common.h (objc_non_volatilized_type): New declaration 871260311Spfg * stub-objc.c (objc_non_volatilized_type): New stub. 872260311Spfg 873260311Spfg2005-10-12 Fariborz Jahanian <fjahanian@apple.com> 874260311Spfg 875260311Spfg Radar 4291785 876260311Spfg 877260311Spfg * c-common.h (objc_get_interface_ivars): New declaration 878260311Spfg (objc_detect_field_duplicates): Ditto. 879260311Spfg * c-decl.c (finish_struct): Check for duplicate among 880260311Spfg flattened fields if objective-c. 881260311Spfg * stub-objc.c (objc_get_interface_ivars): New stub. 882260311Spfg (objc_detect_field_duplicates): Ditto. 883260311Spfg 884260311Spfg2005-09-28 Devang Patel <dpatel@apple.com> 885260311Spfg 886260311Spfg Radar 4258406 887260311Spfg * c-parse.in (nested_function): Report an error, instead of a warning. 888260311Spfg (nontype_nested_function): Same. 889260311Spfg * c.opt (Wnested-funcs): Remove. 890260311Spfg * doc/invoke.texi: Remove Wnested-funcs documentations. 891260311Spfg 892260311Spfg2005-08-03 Fariborz Jahanian <fjahanian@apple.com> 893260311Spfg 894260311Spfg Radar 4188876 895260311Spfg * c-typeck.c (pop_init_level): Issue diagnostic on non-constant 896260311Spfg vector initializers. 897260311Spfg 898260311Spfg2005-06-22 Ziemowit Laski <zlaski@apple.com> 899260311Spfg 900260311Spfg Radar 4154928 901260311Spfg * c-common.h (objc_common_type): New prototype. 902260311Spfg * c-typeck.c (build_conditional_expr): For two ObjC pointer types, 903260311Spfg use their ObjC common type. 904260311Spfg * stub-objc.c (objc_common_type): New stub. 905260311Spfg 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