12021-04-08 Release Manager 2 3 * GCC 10.3.0 released. 4 52021-03-24 Iain Sandoe <iain@sandoe.co.uk> 6 7 Backported from master: 8 2020-11-01 Iain Sandoe <iain@sandoe.co.uk> 9 10 * objc-act.c (synth_module_prologue): Get the SEL identifier. 11 * objc-act.h (enum objc_tree_index): Add OCTI_SEL_NAME. 12 (objc_selector_name): New. 13 (SEL_TYPEDEF_NAME): New. 14 * objc-gnu-runtime-abi-01.c 15 (gnu_runtime_01_initialize): Initialize SEL typedef. 16 * objc-next-runtime-abi-01.c 17 (next_runtime_01_initialize): Likewise. 18 * objc-next-runtime-abi-02.c 19 202021-03-24 Iain Sandoe <iain@sandoe.co.uk> 21 22 Backported from master: 23 2020-11-06 Iain Sandoe <iain@sandoe.co.uk> 24 25 * objc-act.c (start_class): Accept visibility attributes 26 without warning. 27 282021-03-24 Iain Sandoe <iain@sandoe.co.uk> 29 30 * objc-act.c (objc_prop_attr_kind_for_rid): Handle 31 RID_PROPATOMIC. 32 332021-03-24 Iain Sandoe <iain@sandoe.co.uk> 34 35 * objc-act.c (objc_prop_attr_kind_for_rid): New. 36 (objc_add_property_declaration): Adjust to consume the 37 parser output using a vector of parsed attributes. 38 392021-03-24 Iain Sandoe <iain@sandoe.co.uk> 40 41 Backported from master: 42 2020-10-11 Iain Sandoe <iain@sandoe.co.uk> 43 44 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): Test 45 DECL_C_BIT_FIELD to detect that an ivar is a bitfield. 46 472021-03-24 Iain Sandoe <iain@sandoe.co.uk> 48 49 * objc-next-runtime-abi-02.c 50 (objc_get_superclass_ref_decl): Split this code out. 51 (next_runtime_abi_02_get_class_super_ref): Compute 52 super refs using the objc_get_superclass_ref_decl(). 53 (next_runtime_abi_02_get_category_super_ref): Likewise. 54 (build_v2_super_template): Add new 55 fields to the template. 56 (build_v2_protocol_template): Build new field entries. 57 (generate_v2_meth_descriptor_table): Adjust to allow recording all 58 method types. 59 (generate_v2_meth_type_list): New. 60 (build_v2_protocol_initializer): Initialize the additional fields. 61 (generate_v2_protocols): Record method types for all entries and 62 generate the additional method type table. 63 * objc-runtime-shared-support.c (start_var_decl): Make the 64 decl_assembler_name follow the metadata name for C++ on NeXT 65 runtime platforms. 66 (TAG_MSGSENDSUPER, TAG_MSGSENDID, TAG_MSGSENDSUPER_STRET, 67 TAG_MSGSENDID_STRET, FIXUP_NEEDED): Revised spelling. 68 (TAG_FIXUP): New. 69 Rename FIXUP_NEEDED to USE_FIXUP_BEFORE 70 (next_runtime_02_initialize): Adjust message calls to use 71 fixup variants only when required. Use renamed macros. 72 (next_runtime_abi_02_get_arg_type_list_base): Likewise. 73 (next_runtime_abi_02_build_objc_method_call): Likewise. 74 (next_runtime_abi_02_get_arg_type_list_base): Correct indent. 75 (build_v2_build_objc_method_call): New. 76 (build_v2_objc_method_fixup_call): Split out from ... 77 (next_runtime_abi_02_build_objc_method_call): ... here. 78 Arrange to adjust the call on the basis of the target 79 runtime. 80 (create_global_decl): Update to allow the caller to 81 specify declaration or definition. 82 (create_hidden_decl): Likewise. 83 (next_runtime_abi_02_protocol_decl): Make the symbol 84 weak and hidden for later OS runtime versions. 85 (build_v2_protocol_list_address_table): Likewise. 86 872021-03-22 Iain Sandoe <iain@sandoe.co.uk> 88 89 Backported from master: 90 2020-10-10 Iain Sandoe <iain@sandoe.co.uk> 91 92 * objc-next-runtime-abi-02.c 93 (next_runtime_abi_02_init_metadata_attributes): Make protocol 94 refs a distinct section. 95 962021-03-22 Iain Sandoe <iain@sandoe.co.uk> 97 98 Backported from master: 99 2020-10-10 Iain Sandoe <iain@sandoe.co.uk> 100 101 * objc-next-runtime-abi-02.c 102 (next_runtime_abi_02_init_metadata_attributes): Attach metadata 103 for the special string sections to class, method and method type 104 string sections. 105 1062021-01-14 Iain Sandoe <iain@sandoe.co.uk> 107 108 Backported from master: 109 2020-11-04 Iain Sandoe <iain@sandoe.co.uk> 110 111 * objc-act.c (objc_non_constant_expr_p): New. 112 1132020-07-23 Release Manager 114 115 * GCC 10.2.0 released. 116 1172020-05-07 Release Manager 118 119 * GCC 10.1.0 released. 120 1212020-01-01 Jakub Jelinek <jakub@redhat.com> 122 123 Update copyright years. 124 1252019-10-10 Iain Sandoe <iain@sandoe.co.uk> 126 127 * objc-next-metadata-tags.h (OCTI_RT_META_IVAR_REF): New. 128 (meta_ivar_ref): New. 129 * objc-next-runtime-abi-02.c 130 (next_runtime_abi_02_init_metadata_attributes): Create the 131 IVAR ref metadata identifier. 132 (ivar_offset_ref): Tag IVAR refs with specific metadata. 133 1342019-06-05 Martin Sebor <msebor@redhat.com> 135 136 * objc-act.c (objc_build_setter_call): Adjust quoting and hyphenation. 137 * objc-encoding.c (encode_gnu_bitfield): Same. 138 1392019-05-18 Iain Sandoe <iain@sandoe.co.uk> 140 141 * objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New. 142 (objc_global_trees): Add instance type and name. 143 (INSTANCE_TYPEDEF_NAME): New. 144 * objc-act.c (synth_module_prologue): Build decls for 145 objc_instancetype_type and objc_instancetype_name. 146 1472019-05-16 Martin Sebor <msebor@redhat.com> 148 149 * objc-act.c (objc_begin_catch_clause): Quote keywords and options 150 in diagnostics. 151 (objc_build_throw_stmt): Same. 152 (objc_finish_message_expr): Same. 153 (get_super_receiver): Same. 154 * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell 155 out "less than" in English./ 156 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell 157 out "greater" in English. 158 1592019-05-10 Jakub Jelinek <jakub@redhat.com> 160 161 PR pch/90326 162 * config-lang.in (gtfiles): Add c-family/c-format.c. 163 1642019-04-05 Martin Liska <mliska@suse.cz> 165 166 PR translation/89936 167 * objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in 168 order to wrap keywords or arguments. 169 (objc_add_synthesize_declaration_for_property): Likewise. 170 1712019-01-09 Sandra Loosemore <sandra@codesourcery.com> 172 173 PR other/16615 174 175 * objc-act.c: Mechanically replace "can not" with "cannot". 176 1772019-01-01 Jakub Jelinek <jakub@redhat.com> 178 179 Update copyright years. 180 1812018-12-19 David Malcolm <dmalcolm@redhat.com> 182 183 PR c++/43064 184 PR c++/43486 185 * objc-act.c (objc_maybe_build_component_ref): Strip any location 186 wrapper before checking for UOBJC_SUPER_decl and self_decl. 187 (objc_finish_message_expr): Strip any location wrapper. 188 (gen_declaration): Strip location wrappers from "w". 189 1902018-10-17 David Malcolm <dmalcolm@redhat.com> 191 192 * Make-lang.in (selftest-objc): New. 193 1942018-04-20 Martin Liska <mliska@suse.cz> 195 196 PR objc/85476 197 * objc-act.c (finish_class): Do not overflow string buffer. 198 1992018-01-03 Jakub Jelinek <jakub@redhat.com> 200 201 Update copyright years. 202 2032017-11-30 Jakub Jelinek <jakub@redhat.com> 204 205 * objc-next-runtime-abi-01.c (generate_dispatch_table): Use ; instead 206 of ;;. 207 2082017-11-10 Martin Sebor <msebor@redhat.com> 209 210 PR c/81117 211 * objc-encoding.c (encode_type): Use memcpy instead of strncpy. 212 2132017-10-31 David Malcolm <dmalcolm@redhat.com> 214 215 * objc-gnu-runtime-abi-01.c (objc_gnu_runtime_abi_01_init): Use 216 UNKNOWN_LOCATION rather than 0. 217 2182017-10-17 Nathan Sidwell <nathan@acm.org> 219 220 * objc-act.c (objc_common_tree_size): Return size of TYPE nodes. 221 2222017-10-10 Richard Sandiford <richard.sandiford@linaro.org> 223 224 * objc-act.c (objc_decl_method_attributes): Use wi::to_wide when 225 operating on trees as wide_ints. 226 2272017-09-29 Jakub Jelinek <jakub@redhat.com> 228 229 * objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at 230 DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL. 231 2322017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 233 Alan Hayward <alan.hayward@arm.com> 234 David Sherwood <david.sherwood@arm.com> 235 236 * objc-encoding.c (encode_type): Use SCALAR_INT_TYPE_MODE. 237 2382017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 239 Alan Hayward <alan.hayward@arm.com> 240 David Sherwood <david.sherwood@arm.com> 241 242 * objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE 243 instead of TYPE_MODE. 244 2452017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 246 Alan Hayward <alan.hayward@arm.com> 247 David Sherwood <david.sherwood@arm.com> 248 249 * objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in 250 case statements. 251 2522017-08-09 Marek Polacek <polacek@redhat.com> 253 254 PR c/81417 255 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update 256 a call to build_conditional_expr. 257 2582017-08-08 Martin Liska <mliska@suse.cz> 259 260 * objc-gnu-runtime-abi-01.c: Include header files. 261 * objc-next-runtime-abi-01.c: Likewise. 262 * objc-next-runtime-abi-02.c: Likewise. 263 2642017-07-20 Nathan Sidwell <nathan@acm.org> 265 266 Remove TYPE_METHODS. 267 * objc-runtime-shared-support.c (build_ivar_list_initializer): 268 Don't presume first item is a FIELD_DECL. 269 2702017-07-19 Nathan Sidwell <nathan@acm.org> 271 272 * objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use 273 TYPE_{MIN,MAX}_VALUE_RAW. 274 2752017-05-16 Sylvestre Ledru <sylvestre@debian.org> 276 277 * objc-runtime-shared-support.c (build_module_descriptor): 278 Remove unnecessary conditional when building instance of 279 objc_module. CID 1406758 280 2812017-05-09 Nathan Sidwell <nathan@acm.org> 282 283 * objc-gnu-runtime-abi-01.c (objc_add_static_instance): Use 284 pushdecl lang_hook. 285 2862017-05-04 Martin Sebor <msebor@redhat.com> 287 288 PR translation/80280 289 * objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing 290 quoting to directives. 291 * objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto. 292 * objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto. 293 2942017-01-01 Jakub Jelinek <jakub@redhat.com> 295 296 Update copyright years. 297 2982016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com> 299 Richard Biener <rguenther@suse.de> 300 301 * config-lang.in (gtfiles): Add c/c-parser.h. 302 3032016-09-27 Jakub Jelinek <jakub@redhat.com> 304 305 * objc-act.c (continue_class): Remove break after return. 306 (objc_maybe_printable_name): Likewise. 307 3082016-08-12 Marek Polacek <polacek@redhat.com> 309 310 PR c/7652 311 * objc-encoding.c (encode_type): Add FALLTHRU. 312 3132016-06-07 David Malcolm <dmalcolm@redhat.com> 314 315 * objc-act.c (objc_build_component_ref): Update call 316 to build_component_ref for added param, passing UNKNOWN_LOCATION. 317 3182016-04-18 Michael Matz <matz@suse.de> 319 320 * objc-act.c (objc_build_struct): Use SET_DECL_ALIGN. 321 3222016-02-12 Jakub Jelinek <jakub@redhat.com> 323 324 * objc-act.c: Spelling fixes - behaviour -> behavior and 325 neighbour -> neighbor. 326 * objc-map.h: Likewise. 327 3282016-01-04 Jakub Jelinek <jakub@redhat.com> 329 330 Update copyright years. 331 3322015-11-11 Andrew MacLeod <amacleod@redhat.com> 333 334 * objc-act.c: Remove unused header files. 335 * objc-encoding.c: Likewise. 336 * objc-gnu-runtime-abi-01.c: Likewise. 337 * objc-lang.c: Likewise. 338 * objc-map.c: Likewise. 339 * objc-next-runtime-abi-01.c: Likewise. 340 * objc-next-runtime-abi-02.c: Likewise. 341 * objc-runtime-shared-support.c: Likewise. 342 3432015-11-09 Alan Modra <amodra@gmail.com> 344 345 * objc-encoding.c (encode_aggregate_within): Cast obstack_next_free 346 return value. 347 3482015-10-29 Andrew MacLeod <amacleod@redhat.com> 349 350 * objc-lang.c: Reorder #include's and remove duplicates. 351 * objc-map.c: Likewise. 352 3532015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org> 354 355 * objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h: 356 Remove useless typedefs. 357 3582015-07-12 Aldy Hernandez <aldyh@redhat.com> 359 360 * objc-map.h: Fix double word typos. 361 3622015-07-07 Andrew MacLeod <amacleod@redhat.com> 363 364 * objc-act.c: Adjust includes. 365 * objc-encoding.c: Likewise. 366 * objc-gnu-runtime-abi-01.c: Likewise. 367 * objc-lang.c: Likewise. 368 * objc-map.c: Likewise. 369 * objc-next-runtime-abi-01.c: Likewise. 370 * objc-next-runtime-abi-02.c: Likewise. 371 * objc-runtime-shared-support.c: Likewise. 372 3732015-06-25 Andrew MacLeod <amacleod@redhat.com> 374 375 * objc-act.c: Remove ipa-ref.h and plugin-api.h from include list. 376 3772015-06-25 Richard Sandiford <richard.sandiford@arm.com> 378 379 * objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash 380 rather than ggc_hasher. 381 3822015-06-25 Richard Sandiford <richard.sandiford@arm.com> 383 384 * objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather 385 than typed_noop_remove. Remove redudant typedefs. 386 3872015-06-17 Andrew MacLeod <amacleod@redhat.com> 388 389 * objc-act.c: Do not include input.h, line-map.h or is-a.h. 390 * objc-encoding.c: Likewise. 391 * objc-gnu-runtime-abi-01.c: Likewise. 392 * objc-lang.c: Likewise. 393 * objc-map.c: Likewise. 394 * objc-next-runtime-abi-01.c: Likewise. 395 * objc-next-runtime-abi-02.c: Likewise. 396 * objc-runtime-shared-support.c: Likewise. 397 3982015-06-08 Andrew MacLeod <amacleod@redhat.com> 399 400 * objc-act.c : Adjust include files. 401 * objc-encoding.c : Likewise. 402 * objc-gnu-runtime-abi-01.c : Likewise. 403 * objc-lang.c : Likewise. 404 * objc-map.c : Likewise. 405 * objc-next-runtime-abi-01.c : Likewise. 406 * objc-next-runtime-abi-02.c : Likewise. 407 * objc-runtime-shared-support.c : Likewise. 408 4092015-06-08 Aldy Hernandez <aldyh@redhat.com> 410 411 * objc-runtime-shared-support.c (build_module_descriptor): Set 412 TREE_USED on UOBJC_MODULES_decl. 413 4142015-06-05 Aldy Hernandez <aldyh@redhat.com> 415 416 * objc-act.c (objc_write_global_declarations): Adjust comment. 417 * objc-gnu-runtime-abi-01.c (build_selector_table_decl): Set 418 TREE_USED bit. 419 4202015-06-04 Andrew MacLeod <amacleod@redhat.com> 421 422 * objc-act.c: Adjust includes for restructured coretypes.h. 423 * objc-encoding.c: Likewise. 424 * objc-gnu-runtime-abi-01.c: Likewise. 425 * objc-lang.c: Likewise. 426 * objc-map.c: Likewise. 427 * objc-next-runtime-abi-01.c: Likewise. 428 * objc-next-runtime-abi-02.c: Likewise. 429 * objc-runtime-shared-support.c: Likewise. 430 4312015-04-27 Jim Wilson <jim.wilson@linaro.org> 432 433 * Make-lang.in (objc.mostlyclean): Remove cc1obj. 434 4352015-04-18 Trevor Saunders <tsaunders@mozilla.com> 436 437 * objc-act.c: Adjust for hash_table changes. 438 4392015-01-09 Michael Collison <michael.collison@linaro.org> 440 441 * objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 442 input.h, alias.h, symtab.h, options, fold-const.h, 443 wide-int.h, and inchash.h due to flattening of tree.h. 444 * objc-encoding.c: Ditto. 445 * objc-gnu-runtime-abi-01.c: Ditto. 446 * objc-lang.c: Ditto. 447 * objc-map.c: Ditto. 448 * objc-next-runtime-abi-01.c: Ditto. 449 * objc-next-runtime-abi-02.c: Ditto. 450 * objc-runtime-shared-support.c: Ditto. 451 4522015-01-05 Jakub Jelinek <jakub@redhat.com> 453 454 Update copyright years. 455 4562014-10-28 Andrew MacLeod <amacleod@redhat.com> 457 458 * objc-act.c: Adjust include files. 459 4602014-10-22 Alan Modra <amodra@gmail.com> 461 462 * objc-encoding.c (encode_array): Cast result of obstack_base. 463 (encode_type): Likewise. 464 4652014-10-16 Andrew MacLeod <amacleod@redhat.com> 466 467 * objc-act.c: Adjust include files. 468 4692014-10-12 Trevor Saunders <tsaunders@mozilla.com> 470 471 * objc-act.c: use hash_table instead of hashtab. 472 4732014-09-15 Jakub Jelinek <jakub@redhat.com> 474 475 * Make-lang.in (check_objc_parallelize): Change to just an upper 476 bound number. 477 4782014-07-14 Jan Hubicka <hubicka@ucw.cz> 479 480 * objc-act.c (objc_common_tree_size): New function. 481 * objc-act.h (KEYWORD_KEY_NAME, KEYWORD_ARG_NAME): Add type 482 checking. 483 (INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro. 484 (METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS, 485 METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING, 486 METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking. 487 (METHOD_SEL_ARGS): Use decl_common.size instead of 488 decl_non_common.result. 489 (PROPERTY_NAME, PROPERTY_GETTER_NAME, PROPERTY_SETTER_NAME, 490 PROPERTY_READONLY, PROPERTY_NONATOMIC, PROPERTY_ASSIGN_SEMANTICS, 491 PROPERTY_IVAR_NAME, PROPERTY_DYNAMIC, PROPERTY_HAS_NO_GETTER, 492 PROPERTY_HAS_NO_SETTER, PROPERTY_OPTIONAL): Add type checking. 493 (objc_common_tree_size): Declare. 494 * objc-lang.c (LANG_HOOKS_TREE_SIZE): New macro. 495 4962014-06-24 Jan Hubicka <hubicka@ucw.cz> 497 498 * objc-act.c (objc_xref_basetypes): Set TYPE_BINFO of type variants, 499 too. 500 5012014-06-24 Trevor Saunders <tsaunders@mozilla.com> 502 503 * objc-act.c: Adjust. 504 5052014-05-17 Trevor Saunders <tsaunders@mozilla.com> 506 507 * objc-act.c (objc_build_string_object): Adjust. 508 (continue_class): Likewise. 509 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 510 * objc-map.c (objc_map_alloc_ggc): Likewise. 511 (objc_map_private_resize): Likewise. 512 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): 513 Likewise. 514 (hash_name_enter): Likewise. 515 5162014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> 517 Mike Stump <mikestump@comcast.net> 518 Richard Sandiford <rdsandiford@googlemail.com> 519 520 * objc-act.c: Include wide-int.h. 521 (objc_decl_method_attributes): Use wide-int interfaces. 522 5232014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com> 524 525 PR objc/56044 526 * objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add. 527 (objc_init): Initialize objc_default_ivar_visibility. 528 (objc_start_class_interface): Use objc_default_ivar_visibility. 529 (objc_start_class_implementation): Likewise. 530 (objc_lookup_ivar): Implement -fno-local-ivars. 531 5322014-01-31 Marek Polacek <polacek@redhat.com> 533 534 PR c/59963 535 * objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to 536 build_function_call_vec. 537 (finish_catch): Likewise. 538 (next_runtime_abi_02_get_class_reference): Likewise. 539 * objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to 540 build_function_call_vec. 541 (build_throw_stmt): Likewise. 542 * objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to 543 build_function_call_vec. 544 (build_throw_stmt): Likewise. 545 5462014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 547 548 Update copyright years 549 5502013-12-04 Joseph Myers <joseph@codesourcery.com> 551 552 PR c/52023 553 * objc-act.c (objc_synthesize_getter): Update calls to 554 c_sizeof_or_alignof_type. 555 5562013-11-22 Andrew MacLeod <amacleod@redhat.com> 557 558 * objc-act.c: Add required include files from gimple.h. 559 5602013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 561 562 * objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi 563 throughout. 564 5652013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 566 567 * objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with 568 tree_to_shwi throughout. 569 5702013-11-14 Andrew MacLeod <amacleod@redhat.com> 571 572 * objc-act.c: Include only gimplify.h and gimple.h as needed. 573 5742013-11-14 Diego Novillo <dnovillo@google.com> 575 576 * objc-act.c: Include stringpool.h. 577 Include stor-layout.h. 578 Include attribs.h. 579 * objc-encoding.c: Include stringpool.h. 580 Include stor-layout.h. 581 * objc-gnu-runtime-abi-01.c: Include stringpool.h. 582 * objc-next-runtime-abi-01.c: 583 Include stringpool.h. 584 * objc-next-runtime-abi-02.c: Include stringpool.h. 585 * objc-runtime-shared-support.c: Include stringpool.h. 586 5872013-11-12 Andrew MacLeod <amacleod@redhat.com> 588 589 * objc-act.c: Include gimplify.h. 590 5912013-11-07 Andrew MacLeod <amacleod@redhat.com> 592 593 * objc-act.c (objc_push_parm): Handle atomic qualifier. 594 5952013-09-25 Tom Tromey <tromey@redhat.com> 596 597 * Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o) 598 (objc/objc-runtime-shared-support.o) 599 (objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o) 600 (objc/objc-next-runtime-abi-02.o, objc/objc-act.o) 601 (objc/objc-encoding.o, objc/objc-map.o): Remove. 602 6032013-09-14 Iain Sandoe <iain@codesourcery.com> 604 605 PR target/48094 606 * objc-next-runtime-abi-01.c (generate_objc_image_info): Remove. 607 (objc_generate_v1_next_metadata): Remove generation of ImageInfo. 608 * objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove. 609 (objc_generate_v2_next_metadata): Remove generation of ImageInfo. 610 6112013-07-21 OndÅej BÃlka <neleai@seznam.cz> 612 613 * objc-act.c: Fix typos. 614 * objc-encoding.c: Likewise. 615 * objc-gnu-runtime-abi-01.c: Likewise. 616 * objc-next-runtime-abi-01.c: Likewise. 617 * objc-next-runtime-abi-02.c: Likewise. 618 6192013-05-22 Paolo Carlini <paolo.carlini@oracle.com> 620 621 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): 622 Fix build_conditional_expr call. 623 6242013-05-16 Jason Merrill <jason@redhat.com> 625 626 * Make-lang.in (cc1obj$(exeext)): Use link mutex. 627 6282012-11-20 Diego Novillo <dnovillo@google.com> 629 630 * objc-act.c: Replace all vec<T, A>() initializers with vNULL. 631 6322012-11-16 Diego Novillo <dnovillo@google.com> 633 634 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 635 636 * objc-act.c: Use new vec API in vec.h. 637 * objc-act.h: Likewise. 638 * objc-gnu-runtime-abi-01.c: Likewise. 639 * objc-next-runtime-abi-01.c: Likewise. 640 * objc-next-runtime-abi-02.c: Likewise. 641 * objc-runtime-hooks.h: Likewise. 642 * objc-runtime-shared-support.c: Likewise. 643 * objc-runtime-shared-support.h: Likewise. 644 6452012-10-01 Lawrence Crowl <crowl@google.com> 646 647 * Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o. 648 (objc-act.o): Add dependence on hash-table.h. 649 * objc-act.c (objc_detect_field_duplicates): Change to new type-safe 650 hash table. 651 6522012-06-29 Steven Bosscher <steven@gcc.gnu.org> 653 654 * Make-ang.in: Adjust for move of C front-end files. 655 * config-lang.in: Likewise. 656 * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h 657 and c-lang.h in c/. 658 * objc-runtime-shared-support.c: Likewise. 659 * objc-next-runtime-abi-01.c: Likewise. 660 * objc-next-runtime-abi-02.c: Likewise. 661 * objc-gnu-runtime-abi-01.c: Likewise. 662 * objc-act.c: Likewise. 663 * objc-lang.c: Likewise. 664 6652012-06-19 Steven Bosscher <steven@gcc.gnu.org> 666 667 * objc-next-runtime-abi-01.c: Do not include tm.h and output.h. 668 Include c-family/c-target.h. 669 (handle_next_class_ref): Rewrite to emit top-level asm statements. 670 (handle_next_impent): Likewise. 671 * Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o. 672 6732012-05-31 Steven Bosscher <steven@gcc.gnu.org> 674 675 * objc-act.c: Do not include output.h. 676 6772012-05-17 Paolo Carlini <paolo.carlini@oracle.com> 678 679 PR objc++/53388 680 * objc-act.c (objc_get_class_reference, objc_build_message_expr): 681 Use build_min_nt_loc. 682 6832012-04-20 Jan Hubicka <jh@suse.cz> 684 685 * objc-act.c (mark_referenced_methods); Use 686 cgraph_mark_force_output_node. 687 6882012-03-21 Steven Bosscher <steven@gcc.gnu.org> 689 690 * objc-act (objc_build_ivar_assignment): Do not call assemble_external. 691 (objc_build_global_assignment): Likewise. 692 (objc_build_strong_cast_assignment): Likewise. 693 * objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external. 694 * objc-next-runtime-abi-02.c: Likewise. 695 * objc-gnu-runtime-abi-01.c: Likewise. 696 6972012-03-05 Jason Merrill <jason@redhat.com> 698 699 * objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't 700 call _stat functions without MEM_STAT_INFO. 701 7022011-11-12 Iain Sandoe <iains@gcc.gnu.org> 703 704 * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality 705 for Objective-C m32. 706 7072011-10-29 Iain Sandoe <iains@gcc.gnu.org> 708 709 PR target/47997 710 * objc-act.c (objc_build_string_object): Remove redundant second 711 call to fix_string_type (). Add a checking assert that we are, 712 indeed, passed a STRING_CST. 713 7142011-10-18 Mikael Pettersson <mikpe@it.uu.se> 715 716 PR objc/50743 717 * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to 718 size_t to avoid signed/unsigned 719 comparison. 720 (insert_method_into_method_map): Likewise. 721 7222011-10-14 Nicola Pero <nicola.pero@meta-innovation.com> 723 724 * objc-map.h: New file. 725 * objc-map.c: New file. 726 * config-lang.in (gtfiles): Added objc-map.h. 727 * Make-lang.in (OBJC_OBJS): Added objc-map.o. 728 (objc/objc-map.o): New rule. 729 (objc/objc-act.o): Depend on objc/objc-map.h. 730 * objc-next-runtime-abi-02.c: Added a TODO comment. 731 * objc-act.c: Include objc-map.h. 732 (nst_method_hash_list, cls_method_hash_list): Removed. 733 (instance_method_map, class_method_map): New. 734 (cls_name_hash_list, als_name_hash_list): Removed. 735 (class_name_map, alias_name_map): Removed. 736 (ivar_offset_hash_list): Removed. 737 (hash_class_name_enter, hash_class_name_lookup, hash_enter, 738 hash_lookup, hash_add_attr, add_method_to_hash_list): Removed. 739 (interface_hash_init): New. 740 (objc_init): Call interface_hash_init. 741 (objc_write_global_declarations): Iterate over class_method_map 742 and instance_method_map instead of cls_method_hash_list and 743 nst_method_hash_list. 744 (objc_declare_alias): Use alias_name_map instead of 745 cls_name_hash_list. 746 (objc_is_class_name): Use class_name_map and alias_name_map 747 instead of cls_name_hash_list and als_name_hash_list. 748 (interface_tuple, interface_htab, hash_interface, eq_interface): 749 Removed. 750 (interface_map): New. 751 (add_class): Renamed to add_interface. Use interface_map instead 752 of interface_htab. 753 (lookup_interface): Use interface_map instead of interface_htab. 754 (check_duplicates): Changed first argument to be a tree, 755 potentially a TREE_VEC, instead of a hash. Changed implementation 756 to match. 757 (lookup_method_in_hash_lists): Use class_method_map and 758 instance_method_map instead of cls_method_hash_list and 759 nst_method_hash_list. 760 (objc_build_selector_expr): Likewise. 761 (hash_func): Removed. 762 (hash_init): Create instance_method_map, class_method_map, 763 class_name_map, and alias_name_map. Do not create 764 nst_method_hash_list, cls_method_hash_list, cls_name_hash_list, 765 als_name_hash_list, and ivar_offset_hash_list. 766 (insert_method_into_method_map): New. 767 (objc_add_method): Use insert_method_into_method_map instead of 768 add_method_to_hash_list. 769 (start_class): Call add_interface instead of add_class. 770 * objc-act.h (cls_name_hash_list, als_name_hash_list, 771 nst_method_hash_list, cls_method_hash_list): Removed. 772 7732011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> 774 775 * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old 776 interface with two parallel arrays to hold standard builtin 777 declarations, and replace it with a function based interface that 778 can support creating builtins on the fly in the future. Change 779 all uses, and poison the old names. Make sure 0 is not a 780 legitimate builtin index. 781 * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto. 782 * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto. 783 7842011-07-19 Richard Guenther <rguenther@suse.de> 785 786 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): 787 Use fold_build_pointer_plus. 788 (objc2_build_ehtype_initializer): Likewise. 789 7902011-07-11 Nicola Pero <nicola.pero@meta-innovation.com> 791 792 * objc-encoding.h (obstack.h): Do not include. 793 (util_obstack, util_firstobj): Do not declare. 794 (encode_field_decl): Updated prototype to return a tree and take a 795 single tree argument. Updated comments. 796 * objc-encoding.c (util_obstack, util_firstobj): Made static. 797 (objc_encoding_init): New. 798 (encode_field_decl): Existing function renamed to encode_field and 799 made static. New encode_field_decl wrapper function added. 800 (encode_aggregate_fields): Update call to encode_field_decl to 801 call encode_field. 802 * objc-next-runtime-abi-02.c (obstack.h): Do not include. 803 (util_obstack, util_firstobj): Do not declare. 804 (build_v2_ivar_list_initializer): Updated call to 805 encode_field_decl. 806 * objc-runtime-shared-support.c (obstack.h): Do not include. 807 (util_obstack, util_firstobj): Do not declare. 808 (build_ivar_list_initializer): Updated call to encode_field_decl. 809 * objc-act.c (objc_init): Use objc_encoding_init. 810 * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend 811 on OBSTACK_H. 812 (objc/objc-gnu-runtime-abi-01.o): Likewise. 813 (objc/objc-next-runtime-abi-01.o): Likewise. 814 (objc/objc-next-runtime-abi-02.o): Likewise. 815 (objc/objc-act.o): Likewise. 816 8172011-07-04 Nicola Pero <nicola.pero@meta-innovation.com> 818 819 Refactored encoding code into objc-encoding.h and objc-encoding.c. 820 * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers, 821 encode_type, generating_instance_variables, objc_method_parm_type, 822 objc_encoded_type_size, encode_method_prototype, 823 objc_build_encode_expr, pointee_is_readonly, encode_pointer, 824 encode_array, encode_vector, encode_aggregate_fields, 825 encode_aggregate_within, encode_next_bitfield, 826 encode_gnu_bitfield, encode_field_decl, 827 objc_v2_encode_property_attr): Moved to objc-encoding.h and 828 objc-encoding.c. No change in the actual code. 829 Include objc-encoding.h. 830 (objc_init): Added TODO. 831 (objc_build_property_setter_name): Made non-static so it can be 832 called from objc-encoding.c. 833 * objc-act.h (OBJC_ENCODE_INLINE_DEFS, 834 OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h. 835 * objc-runtime-shared-support.h (objc_v2_encode_property_attr, 836 encode_method_prototype, encode_field_decl, 837 generating_instance_variables): Moved to objc-encoding.h. 838 (objc_build_property_setter_name): Declare. 839 * objc-encoding.c: New. 840 * objc-encoding.h: New. 841 * objc-gnu-runtime-abi-01.c: Include objc-encoding.h. 842 * objc-next-runtime-abi-01.c: Likewise. 843 * objc-next-runtime-abi-02.c: Likewise. 844 * objc-runtime-shared-support.c: Likewise. 845 * Make-lang.in (OBJC_OBJS): Added objc-encoding.o. 846 (objc/objc-lang.o): Reordered dependencies. 847 (objc/objc-runtime-shared-support.o): Reordered dependencies. 848 Added dependencies on objc-encoding.h and on $(GGC_H), 849 $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h. 850 (objc/objc-gnu-runtime-abi-01.o): Likewise. 851 (objc/objc-next-runtime-abi-01.o): Likewise. 852 (objc/objc-next-runtime-abi-02.o): Likewise. 853 (objc/objc-act.o): Reordered dependencies. Added dependency on 854 objc-encoding.h. 855 (objc/objc-encoding.o): New rule. 856 857 * objc-encoding.c (encode_type): Use "%<%T%>" format when printing 858 warning "unknown type %<%T%> found during Objective-C encoding" 859 instead of using gen_type_name. 860 8612011-06-05 Nicola Pero <nicola.pero@meta-innovation.com> 862 863 * objc-act.c (receiver_is_class_object): Expanded comment. 864 (objc_finish_message_expr): Likewise. 865 8662011-06-02 Nicola Pero <nicola.pero@meta-innovation.com> 867 868 PR objc/48539 869 * objc-act.c (objc_finish_message_expr): Warn if messaging a class 870 that was only declared using @class without an @interface. Warn 871 if messaging an instance of a class that was only declared using 872 @class without an @interface, unless the receiver was also typed 873 with a protocol list. 874 8752011-06-01 Nicola Pero <nicola.pero@meta-innovation.com> 876 877 * objc-act.c (objc_decl_method_attributes): Implement nonnull 878 attribute for Objective-C methods. 879 8802011-05-21 Nicola Pero <nicola.pero@meta-innovation.com> 881 882 * config-lang.in (gtfiles): Updated order of files to fix building 883 when the gcc/cp directory is missing, as in the case of some 884 release tarballs. 885 8862011-05-20 Nathan Froyd <froydnj@codesourcery.com> 887 888 * objc-act.c (objc_compare_types): Use function_args_iterator 889 instead of TYPE_ARG_TYPES to compare function argument types. 890 8912011-05-13 Toon Moene <toon@moene.org> 892 893 * objc-next-runtime-abi-02.c (newabi_append_ro): 894 Add const qualifier to constant variable pointer declaration. 895 8962011-05-11 Nathan Froyd <froydnj@codesourcery.com> 897 898 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors. 899 (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise. 900 (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise. 901 9022011-05-05 Nathan Froyd <froydnj@codesourcery.com> 903 904 * objc-runtime-shared-support.h (get_arg_type_list): Delete. 905 (build_function_type_for_method): Declare. 906 * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change 907 type of get_arg_type_base_list field. 908 * objc-act.h (OBJC_VOID_AT_END): Delete. 909 * objc-act.c (get_arg_type_list): Delete. 910 (build_function_type_for_method): New function. 911 (objc_decl_method_attributes): Call build_function_type_for_method. 912 (really_start_method): Likewise. 913 * objc-gnu-runtime-abi-01.c 914 (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and 915 adjust function accordingly. Update header comment. 916 (build_objc_method_call): Call build_function_type_for_method. 917 * objc-next-runtime-abi-01.c 918 (next_runtime_abi_01_get_type_arg_list_base): Change prototype and 919 adjust function accordingly. Update header comment. 920 (build_objc_method_call): Call build_function_type_for_method. 921 * objc-next-runtime-abi-02.c 922 (next_runtime_abi_02_get_type_arg_list_base): Change prototype and 923 adjust function accordingly. Update header comment. 924 (objc_copy_to_temp_side_effect_params): Take fntype instead of a 925 typelist. Use function_args_iterator for traversing fntype. 926 (build_v2_build_objc_method_call): Adjust call to it. 927 Call build_function_type_for_method 928 9292011-05-05 Joseph Myers <joseph@codesourcery.com> 930 931 * objc-act.c (objc_start_method_definition): Add parameter expr. 932 Update call to start_method_def. 933 (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter, 934 objc_synthesize_setter) Update calls to 935 objc_start_method_definition. 936 (objc_get_parm_info): Add parameter expr. Update call to 937 get_parm_info. 938 (start_method_def): Add parameter expr. Update call to 939 objc_get_parm_info. 940 * objc-gnu-runtime-abi-01.c (build_module_initializer_routine): 941 Update call to objc_get_parm_info. 942 * objc-runtime-shared-support.h (objc_get_parm_info): Add extra 943 parameter. 944 9452011-04-26 Jason Merrill <jason@redhat.com> 946 947 * objc-act.c (objc_fold_objc_type_ref): Remove. 948 * objc-act.h: Remove prototype. 949 9502011-04-21 Nathan Froyd <froydnj@codesourcery.com> 951 952 * objc-act.c (synth_module_prologue): Call build_function_type_list 953 instead of build_function_type. 954 * objc-next-runtime-abi-02.c (next_runtime_02_initialize): 955 Likewise. 956 9572011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 958 959 * objc-act.c (ivar_of_class): New. 960 (objc_is_public): Use ivar_of_class. 961 9622011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 963 964 * objc-act.c (objc_get_interface_ivars): Removed. 965 (objc_detect_field_duplicates): New. 966 (hash_instance_variable): New. 967 (eq_instance_variable): New. 968 9692011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 970 971 * objc-act.c (objc_declare_protocols): Renamed to 972 objc_declare_protocol. Changed first argument to be an identifier 973 instead of a tree chain of identifiers, so that callers don't have 974 to create a temporary tree chain. 975 9762011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 977 978 * objc-act.c (objc_declare_class): Changed to take a single 979 identifier as argument instead of a tree list. This means callers 980 don't have to build temporary tree lists to call this function. 981 (synth_module_prologue): Updated calls to objc_declare_class. 982 9832011-04-13 Nicola Pero <nicola.pero@meta-innovation.com> 984 985 * objc-act.c (build_keyword_selector): Use get_identifier_with_length 986 instead of get_identifier. 987 9882011-04-12 Nathan Froyd <froydnj@codesourcery.com> 989 990 * objc-lang.c (objc_init_ts): Move code for this function... 991 * objc-act.c (objc_common_init_ts): ...here. Define. 992 * objc-act.h (objc_common_init_ts): Declare. 993 9942011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 995 996 * objc-act.c (objc_build_message_expr): Accept two arguments 997 instead of one so that callers can simply pass the arguments 998 without having to create a temporary chain to hold them. 999 10002011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 1001 1002 * objc-act.c (comp_proto_with_proto): Do not create and use 1003 inefficient temporary argument lists. Compare the arguments 1004 directly. (match_proto_with_proto): Removed; incorporated into 1005 comp_proto_with_proto (). 1006 10072011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 1008 1009 * objc-act.c (printable_ivar_name): New. 1010 (add_instance_variable): Call printable_ivar_name() when an error 1011 message needs to be printed. Do not prepare the instance variable 1012 for printing unless there is an actual error. 1013 10142011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 1015 1016 * objc-act.c (objc_is_class_name, objc_is_id): For efficiency, 1017 avoid calling identifier_global_value() multiple times. 1018 10192011-04-12 Martin Jambor <mjambor@suse.cz> 1020 1021 * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node 1022 instead of cgraph_node. 1023 10242011-04-06 Joseph Myers <joseph@codesourcery.com> 1025 1026 * objc-act.c: Include c-target.h instead of target.h. 1027 * Make-lang.in (objc/objc-act.o): Update dependencies. 1028 10292011-03-06 Joseph Myers <joseph@codesourcery.com> 1030 1031 * lang-specs.h: Match -save-temps* instead of -save-temps. 1032 10332011-02-26 Nicola Pero <nicola.pero@meta-innovation.com> 1034 1035 * objc-act.c (objc_v2_encode_prop_attr): Rewritten. 1036 10372011-02-23 Nicola Pero <nicola.pero@meta-innovation.com> 1038 1039 * objc-act.c (build_private_template): Do not copy the 1040 CLASS_HAS_EXCEPTION_ATTR from the class to the struct. 1041 * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using 1042 TYPE_LANG_SLOT_0. 1043 10442011-02-22 Nicola Pero <nicola.pero@meta-innovation.com> 1045 1046 PR objc/47832 1047 * objc-act.c (flexible_array_type_p): New. 1048 (add_instance_variable): Produce an error if an instance variable 1049 uses flexible array members. 1050 (encode_array): Do not emit an error if encoding a flexible array 1051 type while generating instance variables. 1052 10532011-02-21 Mike Stump <mikestump@comcast.net> 1054 1055 * Make-lang.in (check_objc_parallelize): Refine for 4 processor 1056 machines. 1057 10582011-02-20 Nicola Pero <nicola.pero@meta-innovation.com> 1059 1060 * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed. Removed 1061 usage of padding fields. Do not include tm.h. 1062 * objc-act.c (objc_write_global_declaration): Set input_location 1063 to BUILTINS_LOCATION while generating runtime metadata. 1064 10652011-01-20 Nicola Pero <nicola.pero@meta-innovation.com> 1066 1067 PR objc/47784 1068 * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side 1069 effects, do not use a temporary variable. 1070 10712011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 1072 1073 * objc-next-runtime-abi-01.c: Updated comments. 1074 * objc-next-runtime-abi-02.c: Same. 1075 10762011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 1077 1078 * objc-act.c (objc_init, generate_struct_by_value_array): Updated 1079 comments. 1080 10812011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 1082 1083 * objc-act.c: Updated comments. 1084 * objc-next-runtime-abi-02.c: Same. 1085 * objc-runtime-shared-support.c: Same. 1086 * objc-runtime-hooks.h: Same. 1087 * objc-act.h: Same. 1088 * objc-gnu-runtime-abi-01.c: Same. 1089 10902011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 1091 1092 * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do 1093 not generate metadata if there is nothing to put into it. 1094 10952011-02-17 Iain Sandoe <iains@gcc.gnu.org> 1096 1097 * config-lang.in (gtfiles): Updated. 1098 * Make-lang.in (START_HDRS): New. 1099 (OBJC_OBJS): Added new object files. 1100 (objc/objc-act.o): Updated prerequisites. 1101 (objc/objc-lang.o): Updated prerequisites. 1102 (objc/objc-runtime-shared-support.o): New. 1103 (objc/objc-gnu-runtime-abi-01.o): New. 1104 (objc/objc-next-runtime-abi-01.o): New. 1105 (objc/objc-next-runtime-abi-02.o): New. 1106 * objc-runtime-hooks.h: New. 1107 * objc-runtime-shared-support.h: New. 1108 * objc-runtime-shared-support.c: New. 1109 * objc-gnu-runtime-abi-01.c: New. 1110 * objc-next-metadata-tags.h: New. 1111 * objc-next-runtime-abi-01.c: New. 1112 * objc-next-runtime-abi-02.c: New. 1113 * objc-lang.c: Include c-lang.h. 1114 (LANG_HOOKS_EH_PERSONALITY): Removed. 1115 * objc-act.h: Moved many declarations and code from objc-act.c 1116 into objc-act.h to make them available outside objc-act.c. 1117 (objc_eh_runtime_type): Removed. 1118 (objc_eh_personality): Removed. 1119 (CLASS_HAS_EXCEPTION_ATTR): New. 1120 (OCTI_SUPER_SUPERFIELD_ID): New. 1121 (OCTI_V1_PROP_LIST_TEMPL): New. 1122 (OCTI_V1_PROP_NAME_ATTR_CHAIN): New. 1123 (super_superclassfield_id): New. 1124 (objc_prop_list_ptr): New. 1125 (prop_names_attr_chain): New. 1126 * objc-act.c: Include new runtime headers. Moved many #defines 1127 and declarations into objc-act.h and 1128 objc-runtime-shared-support.h. Made some corresponding functions 1129 non-static, and moved some others into 1130 objc-runtime-shared-support.c. Moved metadata generation code 1131 into the new runtime hook files. 1132 (ivar_offset_hash_list): New. 1133 (objc_init): Call generate_struct_value_by_array() before doing 1134 any runtime initialization. Create the appropriate runtime hook 1135 structures. 1136 (init_objc): Removed. Code moved directly into objc_init. 1137 (finish_objc): Removed. Code moved directly into 1138 objc_write_global_declarations. 1139 (objc_write_global_declarations): Do the warn_selector checks 1140 before emitting metadata. Use a runtime hook to emit the 1141 metadata. Do not emit the metadata or do -gen-decls processing if 1142 -fsyntax-only or we are producing a PCH. 1143 (build_objc_exception_stuff): Renamed to 1144 build_common_objc_exception_stuff. Remove TREE_NOTHROW flag from 1145 objc_exception_throw_decl. 1146 (synth_module_prologue): Call runtime initialize hook instead of 1147 building runtime declarations here. Use the 1148 default_constant_string_class_name runtime hook to set the 1149 constant string class name. 1150 (objc_build_string_object): Call the setup_const_string_class_decl 1151 runtime hook instead of setup_string_decl. Call the 1152 build_const_string_constructor runtime hook instead of building 1153 the string object here. 1154 (get_objc_string_decl): Added prop_names_attr case. Removed 1155 gcc_unreachable() at the end. 1156 (objc_begin_catch_clause): Distinguish between @catch (...) and 1157 @catch (id x). Call the begin_catch runtime hook instead of 1158 building the CATCH_EXPR here. 1159 (objc_finish_catch_clause): Call the finish_catch runtime hook 1160 instead of adding the catch here. 1161 (objc_finish_try_stmt): Call the finish_try_stmt runtime hook 1162 instead of doing it here. 1163 (objc_build_throw_stmt): Bail out early for error_mark_node. Call 1164 the build_exc_ptr runtime hook instead of objc_build_exc_ptr. 1165 Call the build_throw_stmt runtime hook instead of building the 1166 throw call here. 1167 (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime 1168 as well. 1169 (get_arg_type_list): Call the get_arg_type_list_base runtime hook 1170 instead of building the list of arguments here. 1171 (receiver_is_class_object): Call the receiver_is_class_object 1172 runtime hook instead of doing the check here. Call the 1173 tag_getclass runtime hook instead of using TAG_GETCLASS. 1174 (objc_finish_message_expr): Call the build_objc_method_call 1175 runtime hook. 1176 (objc_build_protocol_expr): Call the get_protocol_reference 1177 runtime hook. 1178 (objc_build_selector_expr): Call the build_selector_reference 1179 runtime hook. 1180 (build_ivar_reference): Call the build_ivar_reference runtime 1181 hook. 1182 (hash_init): Set up ivar_offset_hash_list. 1183 (start_class): Recognize the objc_exception attribute and store 1184 it. 1185 (continue_class): Use the class_decl and metaclass_decl runtime 1186 hooks. 1187 (build_objc_property_accessor_helpers): Renamed to 1188 build_common_objc_property_accessor_helpers. Do not build 1189 objc_copyStruct_decl, objc_getPropertyStruct_decl and 1190 objc_setPropertyStruct_decl. 1191 (objc_synthesize_getter): Check what struct setter/getter helper 1192 is available instead of checking the type of runtime. 1193 (get_super_receiver): Use the super_superclassfield_ident runtime 1194 hook. Added assert. Use the get_class_super_ref and 1195 get_category_super_ref runtime hooks. 1196 (objc_v2_encode_prop_attr): New. 1197 11982011-01-17 Nicola Pero <nicola.pero@meta-innovation.com> 1199 1200 PR objc/47314 1201 * objc-act.c (finish_objc): When calling check_duplicates to check 1202 duplicated instance methods, set 'is_class' to 0, not 1. 1203 12042011-01-14 Ben Elliston <bje@au.ibm.com> 1205 1206 PR 19162 1207 * objc-act.c (generate_struct_by_value_array): Do not output a 1208 definition for struct_forward_array. 1209 12102011-01-08 Iain Sandoe <iains@gcc.gnu.org> 1211 1212 * objc-act.c (objc_finish_foreach_loop): Mark collection expression 1213 as read. 1214 12152011-01-02 H.J. Lu <hongjiu.lu@intel.com> 1216 1217 * objc-act.c (check_that_protocol_is_defined): Fix a typo. 1218 12192011-01-02 Nicola Pero <nicola.pero@meta-innovation.com> 1220 1221 * objc-act.c (check_that_protocol_is_defined): New. 1222 (lookup_protocol): Call check_that_protocol_is_defined. 1223 12242010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1225 1226 * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol 1227 lists. Check them two-ways to fix comparisons when one protocol 1228 implements the other one, or when one list contains duplicated 1229 protocols. 1230 12312010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1232 1233 * objc-act.c (objc_add_method): When emitting an error because a 1234 method with the same name but conflicting types is found in the 1235 same class or category interface, print a note with the location 1236 of the original method. Also, improved the error message to 1237 clearly state that the conflict is due to conflicting types, and 1238 produce it for protocols as well. Emit an error if two identical 1239 methods are declared in a protocol, but one is @required and the 1240 other one is @optional. 1241 12422010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1243 1244 * objc-act.c (start_class): Warn when a class attribute is 1245 ignored. 1246 (objc_declare_protocols): Warn when a protocol attribute in a 1247 protocol forward-declaration is ignored. 1248 (start_protocol): Warn when a protocol attribute is ignored. 1249 12502010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1251 1252 * objc-act.c (objc_set_method_opt): Tidy up error messages. In 1253 particular, explicitly mention whether the error is due to the 1254 @optional or @required keyword instead of mentioning 1255 "@optional/@required". 1256 12572010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 1258 1259 PR objc/47118 1260 * objc-act.c (objc_build_synchronized): Check the argument of 1261 @synchronized and emit an appropriate error if it is not a valid 1262 Objective-C object. Deal gracefully with that case. Updated 1263 comments and variable names. 1264 12652010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 1266 1267 PR objc/47075 1268 * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New. 1269 * objc-tree.def (PROPERTY_REF): Increased the number of operands 1270 from 3 to 4. 1271 * objc-act.c (objc_finish_message_expr): Added optional argument 1272 allowing to return the deprecated method prototype for deprecated 1273 methods, instead of immediately emitting the deprecation warning. 1274 (objc_maybe_build_component_ref): Do not warn for a deprecated 1275 property. When building the getter call, get the deprecated 1276 method prototype from objc_finish_message_expr() and put it into 1277 the PROPERTY_REF. 1278 (objc_build_class_component_ref): Same change. 1279 (finish_class): Mark the getter and setter as deprecated if they 1280 are generated from a deprecated property. 1281 (objc_gimplify_property_ref): If the getter is deprecated, emit a 1282 deprecation warning. 1283 (objc_build_setter_call, objc_build_message_expr, 1284 objc_finish_foreach_loop): Updated call to 1285 objc_finish_message_expr. 1286 12872010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1288 1289 PR objc/47076 1290 * objc-act.c (lookup_protocol): Added 'definition_required' 1291 argument. If 'definition_required', and the protocol is not 1292 defined, emit a warning. 1293 (objc_declare_protocols): Updated call to lookup_protocol. 1294 (start_protocol): Same change. 1295 (check_protocol_recursively): Same change. 1296 (objc_build_protocol_expr): Same change. 1297 (lookup_and_install_protocols): Added definition_required argument. 1298 Pass it to lookup_protocol. 1299 (objc_get_protocol_qualified_type): Updated call to 1300 lookup_and_install_protocols. 1301 (start_class): Updated calls to lookup_and_install_protocols; pass 1302 true to 'definition_required' to get the warnings. 1303 (start_protocol): Updated calls to lookup_and_install_protocols. 1304 13052010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1306 1307 * objc-act.c (objc_start_category_interface): Produce an error if 1308 a class extension is found after the class @implementation. 1309 13102010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1311 1312 PR objc/47073 1313 * objc-act.c (encode_method_prototype): Fixed both location and 1314 format string of error "type %qT does not have a known size". 1315 13162010-12-26 Nicola Pero <nicola.pero@meta-innovation.com> 1317 1318 * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c. 1319 13202010-12-22 Nathan Froyd <froydnj@codesourcery.com> 1321 1322 * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p. 1323 13242010-12-18 Nicola Pero <nicola.pero@meta-innovation.com> 1325 1326 * objc-act.c (objc_init): Call using_eh_for_cleanups. 1327 (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions. Do 1328 not call using_eh_for_cleanups. 1329 (objc_begin_try_stmt): Do not call objc_init_exceptions. 1330 (objc_build_throw_stmt): Updated call to 1331 objc_maybe_warn_exceptions. 1332 13332010-12-18 Iain Sandoe <iains@gcc.gnu.org> 1334 1335 * objc-act.c (objc_eh_personality): Select personality name on 1336 runtime. 1337 (objc_init_exceptions): New. 1338 (objc_begin_try_stmt): Use objc_init_exceptions. 1339 (objc_build_throw_stmt): Likewise. 1340 13412010-12-10 Nicola Pero <nicola.pero@meta-innovation.com> 1342 1343 * objc-act.c (objc_in_class_extension): New. 1344 (objc_start_category_interface): If -fobjc-std=objc1 1345 was specified, produce an error if a class extension is used. 1346 (objc_finish_interface): Reset objc_in_class_extension to false. 1347 (objc_add_property_declaration): Allow a class extension to extend 1348 readonly properties in the main @interface to be readwrite. 1349 (start_class): Added code to deal with class extensions. In that 1350 case, return the existing interface after adding any additional 1351 protocols to it and setting objc_in_class_extension to true. 1352 (continue_class): If in a class extension, do not generate the 1353 instance variable template. 1354 13552010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 1356 1357 * objc-act.c (objc_build_throw_stmt): Check that the argument of 1358 @throw is an object and emit an error if not. 1359 13602010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 1361 1362 * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of 1363 error() when printing an error about the iterating variable or 1364 collection not being an object. 1365 13662010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 1367 1368 * objc-act.c (objc_finish_foreach_loop): Mark the 1369 object_expression as used. 1370 13712010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 1372 1373 * objc-act.c: Include c-family/c-objc.h. 1374 * objc-lang.c: Same change. 1375 * Make-lang.in (objc/objc-act.o): Depend on 1376 c-family/c-objc.h. 1377 (objc/objc-lang.o): Same change. 1378 * config-lang.in (gtfiles): Added c-family/c-objc.h. 1379 13802010-12-02 Joseph Myers <joseph@codesourcery.com> 1381 1382 * lang-specs.h: Don't handle -ftraditional. 1383 13842010-12-02 Nicola Pero <nicola.pero@meta-innovation.com> 1385 1386 * objc-act.c (objc_build_throw_stmt): Return error_mark_node and 1387 not NULL_TREE when a @throw is used outside of a @catch block. 1388 13892010-11-30 Nicola Pero <nicola.pero@meta-innovation.com> 1390 1391 * objc-act.c (objc_build_volatilized_type): Removed. 1392 (objc_non_volatilized_type): Removed. 1393 (objc_type_quals_match): Removed. 1394 (local_variables_to_volatilize): New. 1395 (objc_volatilize_decl): Add the decl to volatilize to 1396 local_variables_to_volatilize, but don't volatilize it yet. 1397 (objc_finish_function): New. 1398 * objc-act.h (local_variables_to_volatilize): New. 1399 14002010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1401 Mike Stump <mikestump@comcast.net> 1402 1403 Allow 'make check-objc -j2' 1404 * Make-lang.in (lang_checks_parallelized): New. 1405 (check_objc_parallelize): New. 1406 14072010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1408 1409 * objc-act.c (start_class): When a class is reimplemented, 1410 generate an error and avoid adding the class to the list of 1411 implemented classes again, but do not return error_mark_node. 1412 14132010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1414 1415 * objc-act.c (objc_maybe_build_component_ref): Removed TODO. 1416 14172010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1418 1419 * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node 1420 is passed as argument. 1421 (objc_begin_catch_clause): Added code to deal with an 1422 error_mark_node or NULL_TREE argument. Improved checks for 1423 invalid arguments. Added code to traverse typedefs. 1424 14252010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1426 1427 * objc-act.c (objc_demangle): Return immediately if the string is 1428 too short. Detect names that do not need demangling, and return 1429 them unchanged. 1430 14312010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 1432 1433 Implemented optional properties. 1434 * objc-act.h (PROPERTY_OPTIONAL): New. 1435 * objc-act.c (objc_add_property_declaration): Set 1436 PROPERTY_OPTIONAL if appropriate. 1437 (finish_class): When generating definitions of setter and getter 1438 methods associated with a property for a protocol, mark them as 1439 optional if the property is optional. 1440 (maybe_make_artificial_property_decl): Added 'getter_name' 1441 argument. Set PROPERTY_OPTIONAL. 1442 (objc_maybe_build_component_ref): Updated calls to 1443 maybe_make_artificial_property_decl. Added code for optional, 1444 readonly properties. 1445 (objc_build_class_component_ref): Updated call to 1446 maybe_make_artificial_property_decl. 1447 14482010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 1449 1450 * objc-act.c (objc_build_struct): Fixed loops that save and 1451 restore TYPE_OBJC_INFO to iterate over all variants of the type; a 1452 special case for the current type is then no longer required. 1453 Duplicate TYPE_LANG_SPECIFIC for each type before restoring 1454 TYPE_OBJC_INFO. 1455 (objc_get_protocol_qualified_type): Updated comments. 1456 14572010-11-25 Nicola Pero <nicola.pero@meta-innovation.com> 1458 1459 * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE 1460 after finish_struct, not before, otherwise it may be wiped out by 1461 it. This fixes spurious warnings when a class has more than 15 1462 instance variables. 1463 14642010-11-23 Nicola Pero <nicola.pero@meta-innovation.com> 1465 1466 PR objc/24358 1467 * lang-specs.h: Added objective-c-cpp-output. Mapped .mi to 1468 objective-c-cpp-output instead of objc-cpp-output. Print a 1469 deprecation note every time objc-cpp-output is requested. 1470 14712010-11-22 Joseph Myers <joseph@codesourcery.com> 1472 1473 * objc-act.c (write_symbols): Don't declare here. 1474 14752010-11-22 Nicola Pero <nicola.pero@meta-innovation.com> 1476 1477 PR objc/41108 1478 * objc-act.c (objc_generate_write_barrier): Added assert to make sure 1479 this function is only called with the next runtime. 1480 14812010-11-20 Jakub Jelinek <jakub@redhat.com> 1482 1483 PR c/46547 1484 * objc-act.c (in_late_binary_op): Remove. 1485 14862010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 1487 1488 * objc-act.c (objc_start_class_interface): Do not warn that class 1489 attributes are unimplemented. Pass the attributes to start_class. 1490 (objc_start_category_interface): Updated call to start_class. 1491 (objc_start_class_implementation): Same change. 1492 (objc_start_category_implementation): Same change. 1493 (objc_build_class_component_ref): Warn if the class is deprecated. 1494 (build_private_template): Mark the template as deprecated if the 1495 class is deprecated. 1496 (start_class): Added 'attributes' argument. Emit a warning if 1497 using a deprecated class as superclass of a class, or original 1498 class of a category. Recognize the 'deprecated' attribute when 1499 starting and interface, and mark the interface with 1500 TREE_DEPRECATED if present. Store attributes in the interface. 1501 15022010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 1503 1504 * objc-act.c (lookup_protocol): Added 'warn_if_deprecated' 1505 argument. If it is 'true' and the protocol is deprecated, emit a 1506 deprecation warning. 1507 (objc_start_protocol): Do not warn that protocol attributes are 1508 unimplemented. Pass the attributes to start_protocol. 1509 (start_protocol): Added attributes argument. Recognize the 1510 'deprecated' attribute and mark the protocols with TREE_DEPRECATED 1511 if present. Store attributes in the protocol. 1512 (objc_declare_protocols): Added 'attributes' argument. Recognize 1513 the 'deprecated' attribute and mark the protocols with 1514 TREE_DEPRECATED if present. Store attributes in the protocol. 1515 Updated call to lookup_protocol. 1516 (objc_build_protocol_expr): Updated call to lookup_protocol. 1517 (check_protocol_recursively): Same change. 1518 (lookup_and_install_protocols): Same change. 1519 * objc-act.h: Updated comments. 1520 15212010-11-17 Nicola Pero <nicola.pero@meta-innovation.com> 1522 1523 * objc-act.c (lookup_method_in_protocol_list): Search methods in 1524 PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if 1525 they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS. 1526 15272010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1528 1529 * objc-act.c (objc_build_setter_call): New. 1530 (objc_maybe_build_modify_expr): Rewritten to build a compound 1531 statement. 1532 (objc_build_incr_expr_for_property_ref): Updated calls to 1533 objc_maybe_build_modify_expr to call objc_build_setter_call 1534 instead. Use build_modify_expr () instead of build2 (MODIFY_EXPR, 1535 ...). Use convert () instead of build1 (NOP_EXPR, ...). Use 1536 TREE_NO_WARNING on the final compound statement to silence C++ 1537 warnings. 1538 15392010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1540 1541 * objc-act.c (objc_build_incr_expr_for_property_ref): New. 1542 (objc_create_temporary_var): Moved it towards the beginning of the 1543 file so that objc_build_incr_expr_for_property_ref can use it. 1544 15452010-11-14 Nicola Pero <nicola.pero@meta-innovation.com> 1546 1547 * objc-act.c (objc_add_property_declaration): Check that the decl 1548 we received from the parser is a FIELD_DECL; reject array and 1549 bitfield properties. Convert the warning when a property is 1550 readonly and a setter is specified into an error. Convert errors 1551 when a property declaration does not match a property declaration 1552 in a superclass into warnings. 1553 (objc_add_synthesize_declaration_for_property): Use 1554 DECL_BIT_FIELD_TYPE to determine the type of an instance variable 1555 if it is a bitfield. Throw an error if we are asked to synthesize 1556 setters/getters for a bitfield instance variable but the property 1557 is not appropriate - it must be assign and nonatomic. If the 1558 property is readonly, allow the instance variable type to be a 1559 specialization of the property type. 1560 (objc_type_valid_for_messaging): Fixed returning 'false' for a 1561 Class qualified with a protocol when the 'accept_classes' argument 1562 is 'false'. 1563 15642010-11-13 Nicola Pero <nicola.pero@meta-innovation.com> 1565 1566 * objc-act.c (objc_get_protocol_qualified_type): detect cases 1567 where we are asked to attach a protocol to something which is not 1568 an Objective-C object type, and produce an error. 1569 15702010-11-11 Nicola Pero <nicola.pero@meta-innovation.com> 1571 1572 * objc-act.c (objc_add_property_declaration): Check that the type 1573 of a property and of an inherited property match. 1574 (objc_maybe_build_component_ref): Tidied up indentation and 1575 comments. 1576 (objc_common_type): Added new type of check (-5). 1577 (objc_add_synthesize_declaration_for_property): Check that the 1578 property to synthesize and the instance variable to use have the 1579 same type. 1580 15812010-11-10 Joseph Myers <joseph@codesourcery.com> 1582 1583 * objc-act.c (objc_init): Use %' in diagnostic. 1584 (objc_set_method_opt): Remove trailing '.' from diagnostic. 1585 15862010-11-10 Joseph Myers <joseph@codesourcery.com> 1587 1588 * objc-act.c (dump_base_name): Don't declare here. 1589 15902010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1591 1592 * objc-act.c (objc_add_dynamic_declaration_for_property): Do not 1593 search for the @property declation only in the current context, 1594 but also in inherited properties. Do not mark the original 1595 PROPERTY_DECL in the @interface or @protocol with 1596 PROPERTY_DYNAMIC. 1597 (check_methods): To check if a method is associated with a 1598 @dynamic property, search for the property in IMPL_PROPERTY_DECL. 1599 (check_accessible_methods): Same change. 1600 * objc-act.h: Updated comment. 1601 16022010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1603 1604 * objc-act.c (objc_add_synthesize_declaration_for_property): 1605 Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when 1606 checking for an existing @synthesize or @dynamic declaration. 1607 Search for an inherited @property declaration if none is found in 1608 the local interface. If the required instance variable does not 1609 exist, return instead of trying to continue to prevent a compiler 1610 crash later. Check that the instance variable is not already 1611 being used by another @synthesize. 1612 (objc_add_dynamic_declaration_for_property): Iterate over 1613 IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an 1614 existing @synthesize or @dynamic declaration. 1615 (objc_synthesize_getter): Search for the getter declaration in 1616 protocols and superclasses as well. 1617 (objc_synthesize_setter): Search for the setter declaration in 1618 protocols and superclasses as well. 1619 16202010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1621 1622 * objc-act.c (lookup_property): When checking categories, also 1623 check the protocols attached to each. 1624 (objc_add_property_declaration): Determine the 1625 PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up 1626 error message. Search for an existing property declaration with 1627 the same name which would be inherited from the class hiearchy, 1628 and produce an error if it has incompatible attributes. 1629 (check_methods): Changed second parameter. If the method is a 1630 getter or setter for a property, do not warn if it is inherited as 1631 opposed to implemented directly in the class. 1632 (check_protocol): Updated calls to check_methods. 1633 (finish_class): Do not determine the PROPERTY_SETTER_NAME and 1634 PROPERTY_GETTER_NAME here; this is now done earlier, in 1635 objc_add_property_declaration. 1636 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments. 1637 16382010-11-06 Nicola Pero <nicola.pero@meta-innovation.com> 1639 1640 Fixed using the Objective-C 2.0 dot-syntax with self and super. 1641 * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New. 1642 (maybe_make_artificial_property_decl): Added 'implementation' 1643 argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when 1644 looking up getters or setters for a class. If an implementation 1645 is specified, search it as well for a getter or setter. 1646 (objc_maybe_build_component_ref): Updated calls to 1647 maybe_make_artificial_property_decl; added code to deal with 1648 'self' and 'super' and with methods declared locally in the 1649 implementation. Store the getter call expression in the 1650 PROPERTY_REF instead of throwing it away. 1651 (objc_build_class_component_ref): Updated calls to 1652 maybe_make_artificial_property_decl, and store the getter call 1653 expression in PROPERTY_REF instead of throwing it away. 1654 (lookup_method_static): Implemented 1655 OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option. 1656 (objc_gimplify_property_ref): Do not build the getter method call 1657 here; instead use the one stored in the PROPERTY_REF. If it's not 1658 there, produce helpful error messages. 1659 * objc-tree.def (PROPERTY_REF): Increased the number of operands 1660 from 2 to 3. Updated comments. 1661 * objc-act.h (PROPERTY_REF_GETTER_CALL): New. 1662 16632010-11-06 Iain Sandoe <iains@gcc.gnu.org> 1664 1665 PR target/44981 1666 * objc-act.c (objc_build_string_object): Amend for renamed hook. 1667 (objc_string_ref_type_p): New. 1668 (objc_check_format_arg): New. 1669 16702010-11-04 Nicola Pero <nicola.pero@meta-innovation.com> 1671 1672 Fixed using the Objective-C 2.0 dot-syntax with class names. 1673 * objc-act.c (objc_build_class_component_ref): New. 1674 16752010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1676 1677 * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a 1678 category. 1679 (objc_type_valid_for_messaging): Added 'accept_classes' argument; 1680 if set to 'true', return 'true' for Class objects. Do not remove 1681 more than on pointer indirection. 1682 (objc_add_property_declaration): Only warn about 'assign' 1683 semantics for Objective-C objects if warn_property_assign_default; 1684 and do not warn if the property is readonly or if the type is a Class. 1685 (objc_finish_foreach_loop): Updated calls to 1686 objc_type_valid_for_messaging. 1687 16882010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1689 1690 Implemented -fobjc-std=objc1 flag. 1691 * objc-act.c (objc_start_class_interface): If attributes are 1692 specified when flag_objc1_only is set, print an error. 1693 (objc_start_category_interface): Same change. 1694 (objc_start_protocol): Same change. 1695 (objc_add_method_declaration): Same change. 1696 (objc_start_method_definition): Same change. 1697 (objc_build_keyword_decl): Same change. 1698 (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when 1699 flag_objc1_set is set, print an error. 1700 (objc_set_method_opt): If flag_objc1_only is set, print an error. 1701 (objc_add_property_declaration): Same change. 1702 (objc_add_synthesize_declaration): Same change. 1703 (objc_add_dynamic_declaration): Same change. 1704 (objc_finish_foreach_loop): Same change. 1705 (objc_maybe_build_component_ref): If flag_objc1_only is set, 1706 return immediately. 1707 17082010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1709 1710 * objc-act.c (maybe_make_artificial_property_decl): New. 1711 (objc_maybe_build_component_ref): Call 1712 maybe_make_artificial_property_decl if a property can not be 1713 found. Do not call objc_finish_message_expr if 1714 PROPERTY_HAS_NO_GETTER. 1715 * objc-act.h Updated comments. 1716 (PROPERTY_HAS_NO_GETTER): New. 1717 (PROPERTY_HAS_NO_SETTER): New. 1718 * objc-tree.def: Updated comment. 1719 17202010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1721 1722 Implemented format and noreturn attributes for Objective-C methods. 1723 * objc-act.c (objc_start_method_definition): If method attributes 1724 are specified emit a warning and ignore them. 1725 (build_objc_method_call): Moved deprecation warnings from here ... 1726 (objc_finish_message_expr): to here. Do not emit deprecation 1727 warnings if the receiver is of type 'id'. 1728 (really_start_method): Install 'deprecation' and 'noreturn' 1729 attributes. 1730 (objc_decl_method_attributes): Carefully filter out the list of 1731 attributes, allowing only "noreturn", "format", "sentinel" and 1732 "deprecated". In the case of "format", adjust the arguments. 1733 Always process the attributes in the same way no matter if 1734 "sentinel" is in the list or not. 1735 17362010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1737 1738 * objc-act.c (objc_maybe_build_component_ref): Warn about using 1739 deprecated properties. 1740 (objc_maybe_printable_name): Support PROPERTY_DECL. 1741 17422010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1743 1744 Implemented Objective-C 2.0 property accessors. 1745 * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL, 1746 OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL, 1747 OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL. 1748 (objc_getProperty_decl): New. 1749 (objc_setProperty_decl): New. 1750 (objc_copyStruct_decl): New. 1751 (objc_getPropertyStruct_decl): New. 1752 (objc_setPropertyStruct_decl): New. 1753 * objc-act.c (build_objc_property_accessor_helpers): New. 1754 (synth_module_prologue): Call 1755 build_objc_property_accessor_helpers. 1756 (lookup_ivar): New. 1757 (objc_synthesize_getter): Implemented synthesizing getters that 1758 work with properties that are not nonatomic, assign properties. 1759 (objc_synthesize_setter): Implemented synthesizing setters that 1760 work with properties that are not nonatomic, assign properties. 1761 17622010-10-30 Nicola Pero <nicola.pero@meta-innovation.com> 1763 1764 Implemented Objective-C 2.0 @property, @synthesize and @dynamic. 1765 * objc-tree.def (PROPERTY_REF): New. 1766 * objc-act.h: Added comments for all the PROPERTY_ macros. 1767 (PROPERTY_NAME): Use DECL_NAME. 1768 (PROPERTY_COPIES): Removed. 1769 (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it. 1770 (PROPERTY_NONATOMIC): New. 1771 (objc_property_assign_semantics): Make it a typedef. 1772 (PROPERTY_ASSIGN_SEMANTICS): New. 1773 (PROPERTY_DYNAMIC): New. 1774 (PROPERTY_REF_OBJECT): New. 1775 (PROPERTY_REF_PROPERTY_DECL): New. 1776 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed. 1777 (in_objc_property_setter_name_context): Removed. 1778 (objc_add_property_declaration): Removed copies and ivar arguments 1779 and code supporting them. Fixed recovering when readonly and 1780 setter attributes are specified. Removed support for @property in 1781 @implementation context. Updated error message. Double-check 1782 that a property does not have a DECL_INITIAL. Validate the 1783 property assign semantics and emit appropriate errors and 1784 warnings. Check for duplicate property declarations. Set 1785 DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC, 1786 PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new 1787 PROPERTY_DECL. Do not set PROPERTY_COPIES. Set 1788 PROPERTY_IVAR_NAME to NULL_TREE. 1789 (objc_build_getter_call): Renamed to 1790 objc_maybe_build_component_ref. If the property is not found in 1791 the interface, search in the protocol list. Do not generate the 1792 getter call; instead, build and return a PROPERTY_REF. 1793 (objc_is_property_ref): New. 1794 (objc_setter_func_call): Removed. 1795 (get_selector_from_reference): Removed. 1796 (is_property): Removed. 1797 (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr. 1798 Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from 1799 the PROPERTY_REF. Generate an error if the property is read-only. 1800 (build_property_reference): Removed. 1801 (objc_finish_message_expr): Removed check to produce "readonly 1802 property can not be set" error when 1803 in_objc_property_setter_name_context. We now generate the error 1804 earlier, in objc_maybe_build_modify_expr, which will only generate 1805 the setter call if the property is readwrite. 1806 (check_methods): Recognize dynamic properties. 1807 (check_methods_accessible): Same change. 1808 (objc_build_property_ivar_name): Removed. 1809 (objc_build_property_setter_name): Dropped bool argument. Always 1810 add the ':' at the end. 1811 (objc_gen_one_property_datum): Removed. 1812 (objc_process_getter_setter): Removed. 1813 (objc_synthesize_getter): Mark 'klass' argument as unused. Use 1814 PROPERTY_GETTER_NAME instead of PROPERTY_NAME. Set the 1815 DECL_SOURCE_LOCATION of the new method to be the same as the one 1816 for the @synthesize. Always use PROPERTY_IVAR_NAME as it is 1817 instead of trying to guess what it should be. Removed use of 1818 CLASS_IVARS. Use the location of @synthesize for c_finish_return 1819 and c_end_compound_statement. 1820 (objc_synthesize_setter): Mark 'klass' argument as unused. Use 1821 PROPERTY_SETTER_NAME instead of trying to guess what it should be. 1822 Set the DECL_SOURCE_LOCATION of the new method to be the same as 1823 the one for the @synthesize. Always use PROPERTY_IVAR_NAME as it 1824 is instead of trying to guess what it should be. Removed use of 1825 CLASS_IVARS. Use the location of @synthesize for c_finish_return 1826 and c_end_compound_statement. Emit an error and keep going, 1827 instead of aborting, if the setter prototype does not have the 1828 expected argument. 1829 (objc_add_synthesize_declaration_for_property): New. 1830 (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from 1831 all arguments. Improved error message. Filled in the rest of the 1832 function, which used to be a placeholder, with an actual 1833 implementation. 1834 (objc_add_dynamic_declaration_for_property): New. 1835 (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all 1836 arguments. Improved error message. Filled in the rest of the 1837 function, which used to be a placeholder, with an actual 1838 implementation. 1839 (objc_gen_property_data): Rewritten. 1840 (finish_class): Added explicit switch cases for 1841 CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and 1842 PROTOCOL_INTERFACE_TYPE. Added a default switch case which is 1843 gcc_unreachable. Rewritten the processing of properties, in 1844 particular to not synthesize prototypes for getters and setters if 1845 they already exist and to install the getter and setter names into 1846 PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME. Do not generate 1847 warnings about setter, getter and ivar property attributes. 1848 (objc_lookup_ivar): Removed support for properties. 1849 (objc_gimplify_property_ref): New. 1850 (objc_gimplify_expr): Use a switch. In case of a PROPERTY_REF, call 1851 objc_gimplify_property_ref. 1852 18532010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 1854 1855 * objc-act.c (objc_add_property_declaration): Added arguments to 1856 pass the various property attributes that were parsed with the 1857 property declaration. Process arguments to determine the final 1858 property attributes and produce error messages as appropriate. 1859 Added temporary code to keep the compiler silent about variables 1860 set but not used - for new attributes that are only checked but 1861 have no effect yet. 1862 (property_readonly): Removed. 1863 (property_setter): Removed. 1864 (property_getter): Removed. 1865 (property_ivar): Removed. 1866 (property_copies): Removed. 1867 (objc_set_property_attr): Removed. 1868 * objc-act.h (enum property_assign_semantics): New. 1869 18702010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 1871 1872 * objc-act.c (objc_add_property_variable): Renamed to 1873 objc_add_property_declaration. Added location argument. Updated 1874 warnings and errors to use it. Use error, not fatal_error, if a 1875 property declaration is found outside an interface or 1876 implementation context. 1877 18782010-10-24 Nicola Pero <nicola.pero@meta-innovation.com> 1879 1880 * objc-act.c (objc_build_keyword_decl): Updated comments. Do not 1881 emit a warning that method parameter attributes are unimplemented. 1882 Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL. 1883 (start_method_def): Copy attributes from each KEYWORD_DECL into 1884 the corresponding PARM_DECL. 1885 (objc_warn_deprecated_use): Removed. 1886 (build_objc_method_call): Call warn_deprecated_use, not 1887 objc_warn_deprecated_use. 1888 (objc_maybe_printable_name): Do not try to get the identifier name 1889 of DECLs that we don't recognize. Immediately return NULL for them. 1890 (objc_printable_name): Removed C++-specific case, which is no 1891 longer used. Updated comments. 1892 18932010-10-23 Nicola Pero <nicola.pero@meta-innovation.com> 1894 1895 * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments. 1896 (objc_demangle): Return NULL if demangling can not be done because 1897 the string to demangle is not an Objective-C mangled method name. 1898 Be smarter in demangling method names so that at least for methods 1899 with no arguments we are able to almost always demangle '_' correctly. 1900 Updated comments. 1901 (objc_maybe_printable_name): New. 1902 (objc_printable_name): Call objc_maybe_printable_name. If it 1903 returns NULL, call cxx_printable_name in Objective-C++. 1904 19052010-10-21 Iain Sandoe <iains@gcc.gnu.org> 1906 1907 Based on the CFString implementation in FSF apple/trunk branch. 1908 1909 * objc-act.c (objc_build_string_object): Handle CFStrings. 1910 19112010-10-21 Nicola Pero <nicola.pero@meta-innovation.com> 1912 1913 * objc-act.c (get_objc_string_decl): Use a switch instead of a 1914 chain of ifs. Use gcc_unreachable instead of abort. 1915 (add_objc_string): Same change. 1916 (generate_protocol_list): Same change - twice. 1917 (synth_id_with_class_suffix): Same change. 1918 (build_keyword_selector): Same change - twice. 1919 (objc_build_message_expr): Same change. 1920 (objc_build_selector_expr): Same change. 1921 (check_methods): Same change - and added missing gcc_unreachable 1922 for default case. 1923 (check_methods_accessible): Same change - twice, and added missing 1924 gcc_unreachable for default case in one of them. 1925 (start_class): Same change - and added missing gcc_unreachable for 1926 default case. 1927 (continue_class): Same change. 1928 (objc_gen_property_data): Same change. 1929 (finish_class): Same change. 1930 (encode_type_qualifiers): Added missing gcc_unreachable. 1931 (encode_type): Small code tidy up to reduce duplicated code. Use 1932 gcc_unreachable instead of abort - twice. 1933 (encode_gnu_bitfield): Use a switch instead of a chain of ifs - 1934 twice. Added missing gcc_unreachable for default case - twice. 1935 (dump_interface): Use a switch instead of a chain of ifs. 1936 (handle_impent): Same change. 1937 19382010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1939 1940 * objc-act.h (objc_inherit_code): Removed. 1941 * objc-act.c (objc_inherit_code): Removed. 1942 (objc_set_method_type): Removed. 1943 (objc_build_method_signature): Added is_class_method argument. 1944 Use it instead of the global objc_inherit_code variable. 1945 (objc_add_method_declaration): Same change. 1946 (objc_start_method_definition): Same change. 1947 (objc_generate_cxx_ctor_or_dtor): Updated call to 1948 objc_start_method_definition. Do not call objc_set_method_type. 1949 (adjust_type_for_id_default): Mark as inline. 1950 (objc_synthesize_getter): Updated call to 1951 objc_start_method_definition. Do not set objc_inherit_code. 1952 (objc_synthesize_setter): Updated call to 1953 objc_start_method_definition. Do not set objc_inherit_code. 1954 19552010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1956 1957 Merge from 'apple/trunk' branch on FSF servers. Obvious updates 1958 to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to 1959 get it to compile in the current trunk. 1960 1961 2006-01-27 Fariborz Jahanian <fjahanian@apple.com> 1962 1963 Radar 4345837 1964 * objc-act.c (hash_class_name_enter): New. 1965 (hash_class_name_lookup): New. 1966 (objc_declare_alias): Enter alias name into hash table. 1967 (objc_declare_class): Enter class name into hash table. 1968 (objc_is_class_name): Do a hash look up of class name. 1969 (hash_init): Initialize the two new hash tables. 1970 * objc-act.h: Added cls_name_hash_list and als_name_hash_list 1971 declarations, removed class_chain and alias_chain. 1972 19732010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1974 1975 * objc-lang.c (finish_file): Removed. 1976 * objc-act.c (objc_finish_file): Renamed to 1977 objc_write_global_declarations. Do not try to instantiate C++ 1978 templates when compiling Objective-C++ as this is now 1979 automatically done before this function is called. Do not check 1980 for syntax-only run or PCH generation as this is done by the 1981 callers. 1982 * objc-act.h (objc_finish_file): Removed. 1983 19842010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1985 1986 Implemented parsing @synthesize and @dynamic for 1987 Objective-C/Objective-C++. 1988 * objc-act.c (objc_add_synthesize_declaration): New. 1989 (objc_add_dynamic_declaration): New. 1990 19912010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1992 1993 * objc-act.c (lookup_and_install_protocols): Return NULL if passed 1994 error_mark_node. 1995 19962010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1997 1998 Merge from 'apple/trunk' branch on FSF servers. 1999 2000 2006-03-10 Fariborz Jahanian <fjahanian@apple.com> 2001 2002 Radar 4407151 2003 * objc-act.c (objc_is_class_name): template parameter is not 2004 an objective class name. 2005 (objc_generate_cxx_cdtors): Check for the null 2006 objc_implementation_context. 2007 20082010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 2009 2010 Merge from 'apple/trunk' branch on FSF servers. 2011 2012 2005-11-08 Fariborz Jahanian <fjahanian@apple.com> 2013 2014 Radar 4330422 2015 * objc-act.c (objc_non_volatilized_type): New 2016 2017 2005-10-07 Fariborz Jahanian <fjahanian@apple.com> 2018 2019 Radar 4204796 2020 * objc-act.c (objc_build_volatilized_type): Build 'volatilzed' 2021 types with proper attribute set and correctly. 2022 (objc_volatilize_decl): Remove unneeded code. 2023 (objc_type_quals_match): Use the new attribute to check on 2024 'volatilzed' type. 2025 (hash_init): removed unneeded code. 2026 20272010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> 2028 2029 Merge from 'apple/trunk' branch on FSF servers. 2030 2031 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> 2032 2033 Radar 4133425 2034 * objc-act.c (objc_diagnose_private_ivar): New. 2035 20362010-10-17 Iain Sandoe <iains@gcc.gnu.org> 2037 2038 * objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and 2039 make its type 'objc_ivar_visibility_kind'. 2040 (objc_start_class_interface): Update to use visibility enum. 2041 (objc_start_class_implementation): Likewise. 2042 (objc_set_visibility): Update to use visibility enum, warn that 2043 @package is handle as per @public. 2044 (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE. 2045 * objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and 2046 make its type 'objc_ivar_visibility_kind'. 2047 20482010-10-14 Iain Sandoe <iains@gcc.gnu.org> 2049 2050 merge from FSF apple 'trunk' branch. 2051 2006 Fariborz Jahanian <fjahanian@apple.com> 2052 2053 Radars 4436866, 4505126, 4506903, 4517826 2054 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New. 2055 property_readonly, property_getter, property_setter, property_ivar, 2056 property_copies, in_objc_property_setter_name_context: New vars. 2057 (objc_set_property_attr): New. 2058 (objc_add_property_variable): New. 2059 (lookup_property_in_list): New. 2060 (lookup_property): New. 2061 (objc_build_getter_call): New. 2062 (objc_setter_func_call): New. 2063 (get_selector_from_reference): New. 2064 (objc_build_setter_call): New. 2065 (is_property): New. 2066 (build_property_reference): New. 2067 (objc_finish_message_expr): Detect readonly property and warn. 2068 (objc_build_property_ivar_name): New. 2069 (objc_build_property_setter_name): New. 2070 (objc_gen_one_property_datum): New. 2071 (objc_process_getter_setter): New. 2072 (objc_synthesize_getter): New. 2073 (objc_synthesize_setter): New. 2074 (objc_gen_property_data): New. 2075 (finish_class): Generate property data. 2076 (comp_proto_with_proto): Separated from ... 2077 (match_proto_with_proto): ... New. 2078 (objc_lookup_ivar): Handle properties. 2079 * objc-tree.def (PROPERTY_DECL): New tree code. 2080 * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size. 2081 (METHOD_PROPERTY_CONTEXT): New. 2082 (PROPERTY_NAME): New. 2083 (PROPERTY_GETTER_NAME): New. 2084 (PROPERTY_SETTER_NAME): New. 2085 (PROPERTY_IVAR_NAME): New. 2086 (PROPERTY_READONLY): New. 2087 (PROPERTY_COPIES): New. 2088 (TOTAL_CLASS_RAW_IVARS): New. 2089 (CLASS_PROPERTY_DECL): New. 2090 (IMPL_PROPERTY_DECL): New. 2091 * objc-lang.c (objc_init_ts): Update fields for property_decl. 2092 20932010-10-13 Richard Henderson <rth@redhat.com> 2094 2095 * objc-act.c (objc_eh_personality): Update call to 2096 build_personality_function. 2097 20982010-10-13 Iain Sandoe <iains@gcc.gnu.org> 2099 2100 merge from FSF apple 'trunk' branch. 2101 2102 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> 2103 Radar 3803157 (method attributes) 2104 * objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro. 2105 * objc-act.c (objc_decl_method_attributes): New. 2106 (objc_add_method_declaration): Process method's attribute. 2107 (objc_start_method_definition): Ditto. 2108 (build_objc_method_call): Inject method attribute into 2109 built function type. 2110 (objc_method_decl): New. 2111 (objc_warn_deprecated)use): New. 2112 21132010-10-07 Andi Kleen <ak@linux.intel.com> 2114 2115 * Make-lang.in (cc1obj-dummy): Remove. 2116 (cc1obj-checksum): Change to run checksum over object files 2117 and options only. 2118 21192010-10-07 Nicola Pero <nicola.pero@meta-innovation.com> 2120 2121 PR objc/45925 2122 * objc-act.c (objc_finish_foreach_loop): Convert return value of 2123 countByEnumeratingWithState:objects:count: to long unsigned int. 2124 21252010-10-07 Iain Sandoe <iains@gcc.gnu.org> 2126 2127 * objc-act.c (build_objc_method_call): Replace calls to 2128 build_function_call () with the VEC equivalent. Construct parameter 2129 lists as VECs. 2130 21312010-10-07 Iain Sandoe <iains@gcc.gnu.org> 2132 2133 * objc-act.c (objc_build_message_expr): Call mark_exp_read () to 2134 signal that the receiver has been used. 2135 21362010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 2137 2138 * README: Obsolete file removed. 2139 21402010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 2141 2142 Implemented fast enumeration for Objective-C. 2143 * objc-act.c (build_fast_enumeration_state_template): New. 2144 (TAG_ENUMERATION_MUTATION): New. 2145 (TAG_FAST_ENUMERATION_STATE): New. 2146 (synth_module_prologue): Call build_fast_enumeration_state_template() and set up 2147 objc_enumeration_mutation_decl. 2148 (objc_create_temporary_var): Allow providing a name to temporary 2149 variables. 2150 (objc_build_exc_ptr): Updated calls to 2151 objc_create_temporary_var(). 2152 (next_sjlj_build_try_catch_finally): Same change. 2153 (objc_finish_foreach_loop): New. 2154 * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP, 2155 OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template, 2156 objc_enumeration_mutation_decl. 2157 2158 Merge from 'apple/trunk' branch on FSF servers. 2159 2160 2006-04-12 Fariborz Jahanian <fjahanian@apple.com> 2161 2162 Radar 4507230 2163 * objc-act.c (objc_type_valid_for_messaging): New routine to check 2164 for valid objc object types. 2165 (objc_finish_foreach_loop): Check for invalid objc objects in 2166 foreach header. 2167 21682010-10-05 Nicola Pero <nicola.pero@meta-innovation.com> 2169 2170 Merge from 'apple/trunk' branch on FSF servers. 2171 2172 2005-10-17 Fariborz Jahanian <fjahanian@apple.com> 2173 2174 Radar 4290840 2175 * objc-act.c (objc_start_method_definition): Check for 2176 error_mark_node for the selector name and make a quick exit. 2177 21782010-10-04 Andi Kleen <ak@linux.intel.com> 2179 2180 * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule. 2181 21822010-09-30 Iain Sandoe <iains@gcc.gnu.org> 2183 2184 merge from FSF 'apple/trunk' branch. 2185 2006-01-30 Fariborz Jahanian <fjahanian@apple.com> 2186 2187 Radar 4386773 2188 * objc-act.c (objc_set_method_opt): New function. 2189 (objc_start_protocol, objc_finish_interface): Reset 2190 objc_method_optional_flag flag. 2191 (objc_add_method_declaration): Pass on the new 2192 flag to objc_add_method. 2193 (objc_add_method): Add optional methods to new chain in 2194 the protocol class. 2195 * objc-act.h (CLASS_OPTIONAL_CLS_METHODS) 2196 (CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol 2197 class's optional method chains. 2198 21992010-09-30 Nicola Pero <nicola.pero@meta-innovation.com> 2200 2201 Merge from 'apple/trunk' branch on FSF servers. 2202 2203 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 2204 2205 Radar 4278236 2206 * objc-act.c (objc_declare_class): Pick the right 2207 type tree. 2208 22092010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 2210 2211 Merge from 'apple/trunk' branch on FSF servers. 2212 2213 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 2214 2215 Radar 4281748 2216 * objc-act.c (objc_check_global_decl): New 2217 22182010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 2219 2220 * objc-act.c (objc_is_reserved_word): Removed. 2221 22222010-09-28 Iain Sandoe <iains@gcc.gnu.org> 2223 2224 * objc-act.c (objc_add_method_declaration): Handle and ignore 2225 attributes. 2226 (objc_start_method_definition): Likewise. 2227 (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor. 2228 (objc_build_keyword_decl): Handle and ignore attributes. 2229 22302010-09-28 Richard Henderson <rth@redhat.com> 2231 2232 * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info. 2233 22342010-09-28 Iain Sandoe <iains@gcc.gnu.org> 2235 2236 * objc-act.c (objc_start_class_interface): Handle and ignore attributes. 2237 (objc_start_category_interface): Likewise. 2238 (objc_start_protocol): Likewise. 2239 22402010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2241 2242 Merge from 'apple/trunk' branch on FSF servers. 2243 2244 2005-08-23 Stuart Hastings <stuart@apple.com> 2245 Ziemowit Laski <zlaski@apple.com> 2246 2247 Radar 4209854 2248 * objc-act.c (objc_decay_parm_type): New function. 2249 (get_arg_type_list): Decay types for all named arguments. 2250 (objc_push_parm): Rebuild the PARM_DECL if its type has 2251 been decayed. 2252 22532010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2254 2255 * objc-act.c (encode_type): Fixed encoding enums with the next 2256 runtime. 2257 22582010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2259 2260 Merge from 'apple/trunk' branch on FSF servers. 2261 2262 2005-07-18 Ziemowit Laski <zlaski@apple.com> 2263 2264 Radar 4175534 2265 * objc-act.c (objc_compare_types): A new silent comparison 2266 mode (-4), differing from regular comparison (-3) in that 2267 'false' is returned instead of issuing warnings. 2268 22692010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2270 2271 * objc-act.c (encode_type): Do not add 'r' with the next runtime. 2272 (encode_aggregate_within): Reorganized code to be more readable. 2273 (encode_aggregate_fields): Updated second argument to be 'bool' 2274 instead of 'int'. 2275 22762010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2277 2278 PR objc/45763 2279 PR objc/25450 2280 PR objc/25464 2281 * objc-act.c: Improved comments for encoding functions. 2282 (encode_aggregate_within): For the GNU runtime, rewritten some 2283 obsfuscated code to clarify the various cases. 2284 (encode_aggregate): Function removed. 2285 (encode_array): Generate an error if asked to encode an incomplete 2286 array as part of generating instance variables. Else, when 2287 encoding an incomplete array inside a structure, encode it as an 2288 array of zero size. 2289 (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as 2290 '^c' instead of '*'. 2291 (encode_gnu_bitfield): Encode enumerated types exactly in the same 2292 type as integer types instead of using a hardcoded 'i'. If asked 2293 to encode a non-integer type as a bitfield, do not abort 2294 compilation immediately; instead generate an error, then skip the 2295 type. 2296 (encode_type): Use a 'switch' instead of a sequence of 'if's. 2297 Added a 'default' clause that gets executed if the type can not be 2298 matched, and that encodes it as '?' (unknown) and produces a 2299 warning. For the GNU runtime, encode enumerated types exactly in 2300 the same way as integer types instead of using a hardcoded 'i'. 2301 Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'. 2302 Encode C++ reference types as pointers. Call encode_vector to 2303 encode vectors. 2304 (encode_vector): New function. 2305 23062010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2307 2308 Merge from 'apple/trunk' branch on FSF servers. I modified the 2309 changes to be used only when compiling for the NeXT runtime. 2310 2311 2005-10-10 Fariborz Jahanian <fjahanian@apple.com> 2312 2313 Radar 4301047 2314 2315 * objc-act.c (encode_type): Remove the hack. 2316 2317 2005-07-20 Ziemowit Laski <zlaski@apple.com> 2318 2319 Radar 4136935 2320 * objc-act.c (pointee_is_readonly): New function. 2321 (encode_pointer, encode_aggregate_within, encode_type): 2322 Attempt to emulate GCC 3.3 when generating type encodings. 2323 23242010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2325 2326 Merge from 'apple/trunk' branch on FSF servers. 2327 2328 2005-12-15 Fariborz Jahanian <fjahanian@apple.com> 2329 2330 Radar 4229905 2331 * objc-act.c (objc_have_common_types): New function. 2332 2333 2005-06-22 Ziemowit Laski <zlaski@apple.com> 2334 2335 Radar 4154928 2336 * objc-act.c (objc_common_type): New function. 2337 23382010-09-27 Richard Guenther <rguenther@suse.de> 2339 2340 * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT. 2341 (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P. 2342 23432010-09-26 Nicola Pero <nicola.pero@meta-innovation.com> 2344 2345 * objc-act.c: Removed historical, obsolete comment at the top of 2346 the file. 2347 23482010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 2349 2350 PR objc/23710 2351 * objc-act.c (objc_start_method_definition): Do not abort upon a 2352 'method definition not in @implementation context' error. Return 2353 'false' instead. 2354 23552010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 2356 2357 PR objc/25965 2358 * objc-act.c (objc_get_interface_ivars): New function. 2359 (objc_collecting_ivars): New variable. 2360 (continue_class): Set and reset objc_collecting_ivars for context. 2361 23622010-09-15 Nicola Pero <nicola.pero@meta-innovation.com> 2363 2364 Merge from 'apple/trunk' branch on FSF servers. 2365 2366 2006-03-09 Fariborz Jahanian <fjahanian@apple.com> 2367 2368 Radar 4457381 2369 * objc-act.c (objc_finish_message_expr): Look for message in 2370 @class's protocol list. 2371 2372 2006-02-07 Fariborz Jahanian <fjahanian@apple.com> 2373 2374 Radar 4219590 2375 * objc-act.c (objc_start_method_definition): Initialize 2376 break/continue labels. 2377 2378 2005-08-22 Ziemowit Laski <zlaski@apple.com> 2379 2380 Radar 4174166 2381 * objc-act.c (objc_compare_types): Compare function 2382 pointers; indicate success if the right-hand side has 2383 a return type that is covariant, and the argument types 2384 contravariant, with those of the left side. 2385 2386 2005-08-22 Ziemowit Laski <zlaski@apple.com> 2387 2388 Radar 4216500 2389 * objc-act.c (objc_get_protocol_qualified_type): When looking 2390 at a typedef, retrieve the precise type it describes (rather 2391 than merely looking up a class by name). 2392 23932010-09-10 Nicola Pero <nicola.pero@meta-innovation.com> 2394 2395 * objc-act.c (objc_begin_try_stmt): Generate an error if 2396 -fobjc-exceptions was not used. (objc_build_throw_stmt): Same 2397 change. 2398 23992010-07-15 Nathan Froyd <froydnj@codesourcery.com> 2400 2401 * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN. 2402 24032010-07-10 Iain Sandoe <iains@gcc.gnu.org> 2404 2405 PR objc/44140 2406 * objc-act.c: build_objc_string_decl() remove declaration. 2407 (finish_var_decl): Remove forcing of var output and marking 2408 as "Used". 2409 (init_def_list): Use integer_zero_node. 2410 (init_objc_symtab): Use integer_zero_node, make the short 2411 integer type specific on relevant nodes. 2412 (generate_objc_symtab_decl): Remove call to 2413 forward_declare_categories(). Use null_pointer_node where 2414 appropriate. 2415 (build_module_descriptor): Comment and mark this item as 2416 DECL_PRESERVE_P. 2417 (generate_static_references): Use gcc_unreachable instead of 2418 abort (). 2419 (diagnose_missing_method): New. 2420 (build_next_selector_translation_table): New. 2421 (build_gnu_selector_translation_table): New. 2422 (add_objc_string): Merge code from build_objc_string_decl... 2423 ... and delete build_objc_string_decl(). 2424 (generate_dispatch_table): Make integer types explicit. 2425 (generate_category): Pass implent and arrange for the data 2426 to be extracted within the routine. Do not start new vars, 2427 but finish the ones collcted during parsing. 2428 (generate_shared_structures): Likewise. 2429 (finish_objc): Reorder code so that we finish variables before 2430 referencing them. Save the global data before calling meta-data 2431 creation routines, and pass the current reference to the two 2432 main routines. Only call generate_objc_image_info () for the 2433 NeXT runtime. 2434 (generate_classref_translation_entry): Comment on and make this 2435 item DECL_PRESERVE_P. 2436 (handle_class_ref): Use varpool interfaces, comment on and make 2437 this item DECL_PRESERVE_P. 2438 (handle_impent): Likewise. 2439 (generate_objc_image_info): Only generate when the content is 2440 non-zero. Make integer types explict. 2441 24422010-07-03 Nathan Froyd <froydnj@codesourcery.com> 2443 2444 PR objc/24867 2445 * objc-act.c (build_sized_array_type): New function. 2446 (add_objc_string): Use it. 2447 (generate_protocol_list): Likewise. 2448 (generate_objc_image_info): Likewise. 2449 (add_field_decl): New function. 2450 (objc_build_struct): Use a VEC rather than building a TREE_LIST. 2451 (generate_struct_by_value_array): Use add_field_decl. 2452 (build_objc_symtab_template): Likewise. 2453 (build_module_descriptor): Likewise. 2454 (build_objc_exception_stuff): Likewise. 2455 (build_protocol_template): Likewise. 2456 (build_method_prototype_list_template): Likewise. 2457 (build_method_prototype_template): Likewise. 2458 (build_category_template): Likewise. 2459 (build_selector_template): Likewise. 2460 (build_class_template): Likewise. 2461 (build_super_template): Likewise. 2462 (build_ivar_template): Likewise. 2463 (build_ivar_list_template): Likewise. 2464 (build_method_list_template): Likewise. 2465 (build_method_template): Likewise. 2466 24672010-06-28 Steven Bosscher <steven@gcc.gnu.org> 2468 2469 * objc-act.c: Do not include except.h. 2470 24712010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com> 2472 2473 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC 2474 allocation. 2475 2476 * objc-act.c (objc_volatilize_decl): Likewise. 2477 (objc_build_string_object): Likewise. 2478 (hash_init): Likewise. 2479 (hash_enter): Likewise. 2480 (hash_add_attr): Likewise. 2481 (add_class): Likewise. 2482 (start_class): Likewise. 2483 24842010-06-05 Steven Bosscher <steven@gcc.gnu.org> 2485 2486 * objc-act.c: Update include path for moved files. 2487 * objc-lang.c: Likewise. 2488 * config-lang.in: Update paths in gtfiles for files in c-family/. 2489 24902010-06-01 Nathan Froyd <froydnj@codesourcery.com> 2491 2492 * objc-act.c (build_next_objc_exception_stuff): Give setjmp a 2493 varargs type instead of a zero-argument type. 2494 24952010-05-30 Nathan Froyd <froydnj@codesourcery.com> 2496 2497 * objc-act.c (synth_module_prologue): Use build_function_type_list 2498 instead of build_function_type. 2499 (build_module_initializer_routine): Likewise. 2500 (build_next_objc_exception_stuff): Likewise. 2501 (build_objc_exception_stuff): Likewise. 2502 25032010-05-27 Joseph Myers <joseph@codesourcery.com> 2504 2505 * objc-act.c: Include diagnostic-core.h instead of diagnostic.h. 2506 * Make-lang.in (objc/objc-act.o): Update dependencies. 2507 25082010-05-25 Steven Bosscher <steven@gcc.gnu.org> 2509 2510 * objc-act.h: Do not include gimple.h. 2511 * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h. 2512 Include gimple.h. Explain why except.h has to be included. 2513 * objc-lang.c: Do not include diagnostics.h. 2514 * Make-lang.in: Update dependencies. 2515 25162010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2517 2518 * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance 2519 mismatch code for VECs. 2520 25212010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2522 2523 * objc-act.c (objc_build_constructor): Take a VEC instead of a tree. 2524 Use build_constructor instead of build_constructor_from_list. 2525 (objc_build_string_object): Build a VEC argument for 2526 objc_build_constructor. 2527 (init_def_list): Likewise. 2528 (init_objc_symtab): Likewise. 2529 (init_module_descriptor): Likewise. 2530 (generate_static_references): Likewise. 2531 (build_selector_translation_table): Likewise. 2532 (build_descriptor_table_initializer): Likewise. 2533 (generate_descriptor_table): Likewise. 2534 (build_protocol_initializer): Likewise. 2535 (build_ivar_list_initializer): Likewise. 2536 (generate_ivars_list): Likewise. 2537 (build_dispatch_table_initializer): Likewise. 2538 (generate_dispatch_table): Likewise. 2539 (generate_protocol_list): Likewise. 2540 (build_category_initializer): Likewise. 2541 (build_shared_structure_initializer): Likewise. 2542 (generate_objc_image_info): Likewise. 2543 25442010-04-30 Iain Sandoe <iains@gcc.gnu.org> 2545 2546 PR objc++/32052 2547 * objc-act.c (encode_aggregate_within): Encode structure tags 2548 with template args for ObjC++. 2549 25502010-04-30 Steven Bosscher <steven@gcc.gnu.org> 2551 2552 * objc-act.c: Do not include varray.h. 2553 25542010-04-07 Jakub Jelinek <jakub@redhat.com> 2555 2556 PR c/18624 2557 * objc-act.c (finish_var_decl, objc_begin_catch_clause, 2558 really_start_method, get_super_receiver, handle_class_ref): Set 2559 DECL_READ_P in addition to TREE_USED. 2560 25612010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2562 2563 PR objc/35996 2564 * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for 2565 -fgnu-runtime and set flag_objc_gc to zero. 2566 25672010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2568 2569 PR objc++/23716 2570 * objc-act.c (build_module_initializer_routine): Make the argument 2571 to objc_start_function NULL_TREE when compiling ObjC++. 2572 25732010-02-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2574 Mike Stump <mikestump@comcast.net> 2575 2576 PR objc/43061 2577 * objc-act.c (finish_var_decl): Set the generated symbols as "used". 2578 25792009-12-17 Shujing Zhao <pearly.zhao@oracle.com> 2580 2581 * objc-act.c (objc_substitute_decl, build_ivar_reference, 2582 get_super_receiver): Update build_indirect_ref calls. 2583 25842009-11-28 Jakub Jelinek <jakub@redhat.com> 2585 2586 * objc-act.c (generate_shared_structures): Remove unused sc_spec and 2587 decl_specs variables. 2588 (objc_build_message_expr): Remove unused loc variable. 2589 (objc_finish_message_expr): Remove unused saved_rtype variable. 2590 (encode_field_decl): Remove unused type variable. 2591 2592 PR obj-c++/42156 2593 * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for 2594 type variants that don't have it initialized yet. 2595 25962009-09-14 Jan Hubicka <jh@suse.cz> 2597 2598 * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON. 2599 26002009-09-14 Richard Henderson <rth@redhat.com> 2601 2602 * objc-act.c (objc_init_exceptions): Don't call 2603 default_init_unwind_resume_libfunc. 2604 (objc_build_exc_ptr): Use __builtin_eh_pointer. 2605 26062009-09-13 Richard Guenther <rguenther@suse.de> 2607 Rafael Avila de Espindola <espindola@google.com> 2608 2609 * objc-act.c (objc_eh_runtime_type): Export. 2610 (objc_init_exceptions): Remove. Move warning code ... 2611 (objc_begin_try_stmt): ... here 2612 (objc_build_throw_stmt): ... and here. 2613 (objc_eh_personality_decl): New. 2614 (objc_eh_personality): New function. 2615 * objc-act.h (objc_eh_runtime_type): Declare. 2616 (objc_eh_personality): Likewise. 2617 * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define. 2618 (LANG_HOOKS_EH_PERSONALITY): Likewise. 2619 26202009-09-03 Diego Novillo <dnovillo@google.com> 2621 2622 * objc-lang.c (lang_hooks): Remove const qualifier. 2623 26242009-08-20 Richard Guenther <rguenther@suse.de> 2625 2626 * objc-act.c: Include c-lang.h 2627 * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency. 2628 26292009-07-17 Aldy Hernandez <aldyh@redhat.com> 2630 Manuel López-Ibáñez <manu@gcc.gnu.org> 2631 2632 PR 40435 2633 * objc-act.c: Add location argument to all calls to 2634 build_fold_addr_expr. 2635 26362009-07-14 Taras Glek <tglek@mozilla.com> 2637 Rafael Espindola <espindola@google.com> 2638 2639 * Make-lang.in (objc.install-plugin): New target for 2640 installing plugin headers. 2641 26422009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2643 2644 * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by 2645 EXPR_LOCATION. 2646 26472009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2648 2649 * objc-act.c: Replace %J by an explicit location. Update all 2650 calls. 2651 26522009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2653 2654 * objc-act.c: Replace %H by an explicit location. Update all 2655 calls. 2656 26572009-06-22 Steven Bosscher <steven@gcc.gnu.org> 2658 2659 PR objc/28050 2660 * objc-act.c (objc_build_message_args): Return if ARGS is the 2661 error_mark_node. 2662 26632009-06-19 Ian Lance Taylor <iant@google.com> 2664 2665 * objc-act.c (objc_in_struct, objc_struct_types): Remove. 2666 (objc_struct_info): New static variable. 2667 (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct 2668 and &objc_struct_types, to start_struct. 2669 (objc_finish_struct): Likewise for finish_struct. 2670 26712009-06-15 Ian Lance Taylor <iant@google.com> 2672 2673 * objc-act.c (objc_start_function): Don't set 2674 label_context_stack_se or label_context_stack_vm. 2675 26762009-06-12 Aldy Hernandez <aldyh@redhat.com> 2677 2678 * objc-act.c (finish_var_decl): Pass location to finish_decl. 2679 (objc_get_parm_info): Same. 2680 (get_super_receiver): Same. 2681 * objc-act.c (objc_build_component_ref): Pass location to 2682 build_compound_ref. 2683 (build_module_initializer_routine): Pass location to 2684 c_end_compound_stmt. 2685 (objc_generate_static_init_call): Pass location to build_stmt. 2686 (build_typed_selector_reference): New location argument. 2687 (build_selector_reference): Same. 2688 (objc_substitute_decl): Pass location to build_array_ref. 2689 (next_sjlj_build_try_catch_finally): Pass location to build_stmt. 2690 (objc_begin_catch_clause): Same. 2691 (objc_finish_try_stmt): Same. 2692 (objc_finish_catch_clause): Pass location to c_end_compound_stmt. 2693 (objc_build_throw_stmt): New argument. 2694 (generate_shared_structures): Pass location to build_c_cast. 2695 (objc_build_message_expr): Use local location. 2696 (objc_finish_message_expr): Use input_location. 2697 (build_objc_method_call): New argument. 2698 (objc_build_selector_expr): Same. 2699 (get_super_receiver): Pass location to build_c_cast, 2700 build_modify_expr, build_compound_expr. 2701 * objc-act.c: Add location to all calls to start_struct, build_decl, 2702 finish_struct. 2703 27042009-06-09 Ian Lance Taylor <iant@google.com> 2705 2706 * objc-act.c (objc_gimplify_expr): Change return type to int. 2707 * objc-act.h: Update declaration. 2708 27092009-06-08 Alexandre Oliva <aoliva@redhat.com> 2710 2711 * objc-act.c (objc_init): Skip print_struct_values during 2712 -fcompare-debug-second. 2713 27142009-06-03 Ian Lance Taylor <iant@google.com> 2715 2716 * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and 2717 $(SYSTEM_H). 2718 27192009-05-27 Ian Lance Taylor <iant@google.com> 2720 2721 * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to 2722 $(LINKER). 2723 (cc1obj$(exeext)): Likewise. 2724 27252009-05-26 Ian Lance Taylor <iant@google.com> 2726 2727 * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER). 2728 (cc1obj$(exeext)): Likewise. 2729 27302009-05-20 Ian Lance Taylor <iant@google.com> 2731 2732 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather 2733 than NULL_TREE to build_special_member_call. 2734 27352009-05-10 Ian Lance Taylor <iant@google.com> 2736 2737 * objc-act.c (objc_building_struct): New static variable. 2738 (objc_in_struct, objc_struct_types): New static variables. 2739 (objc_start_struct, objc_finish_struct): New static functions. 2740 (generate_struct_by_value_array): Call objc_start_struct instead 2741 of start_struct, and call objc_finish_struct instead of 2742 finish_struct. 2743 (objc_build_struct, build_objc_symtab_template): Likewise. 2744 (build_module_descriptor): Likewise. 2745 (build_next_objc_exception_stuff): Likewise. 2746 (build_protocol_template): Likewise. 2747 (build_method_prototype_list_template): Likewise. 2748 (build_method_prototype_template): Likewise. 2749 (build_category_template, build_selector_template): Likewise. 2750 (build_class_template, build_super_template): Likewise. 2751 (build_ivar_template, build_ivar_list_template): Likewise. 2752 (build_method_list_template): Likewise. 2753 (build_method_template): Likewise. 2754 27552009-05-10 Joseph Myers <joseph@codesourcery.com> 2756 2757 * objc-act.c: Include intl.h. 2758 (objc_lookup_protocol): Use complete sentences for diagnostics 2759 with %qE for identifiers and translating results of 2760 gen_type_name_0 to locale character set. 2761 (objc_check_decl, check_protocol_recursively, 2762 lookup_and_install_protocols, objc_build_string_object, 2763 objc_get_class_reference, objc_declare_alias, objc_declare_class, 2764 objc_get_class_ivars, error_with_ivar, check_duplicates, 2765 objc_finish_message_expr, objc_build_protocol_expr, 2766 objc_build_selector_expr, build_ivar_reference, objc_add_method, 2767 add_category, add_instance_variable, objc_is_public, 2768 check_methods, check_methods_accessible, check_protocol, 2769 start_class, finish_class, start_protocol, really_start_method, 2770 get_super_receiver, objc_lookup_ivar): Use %E and %qE for 2771 identifiers in diagnostics. Translate generated text to locale 2772 character set as needed. 2773 (check_protocol, check_protocols): Change name parameter to type 2774 tree. 2775 (lang_report_error_function): Remove. 2776 27772009-04-27 Ian Lance Taylor <iant@google.com> 2778 2779 * objc-act.c (objc_gimplify_expr): Add casts to enum type. 2780 27812009-04-24 Ian Lance Taylor <iant@google.com> 2782 2783 * objc-act.c (get_super_receiver): Update calls to 2784 build_modify_expr to pass new argument. 2785 27862009-04-21 Taras Glek <tglek@mozilla.com> 2787 2788 * objc-act.c: Update GTY annotations to new syntax. 2789 * objc-act.h: Likewise. 2790 27912009-04-21 Joseph Myers <joseph@codesourcery.com> 2792 2793 * ChangeLog: Add copyright and license notices. 2794 27952009-04-20 Ian Lance Taylor <iant@google.com> 2796 2797 * objc-act.c (objc_rewrite_function_call): Change parameter from 2798 params to first_param. Change all callers. 2799 28002009-03-30 Dominique d'Humieres <dominiq@lps.ens.fr> 2801 2802 PR bootstrap/39583 2803 * objc-act.c (in_late_binary_op): Define for Objective-C++. 2804 28052009-03-29 Joseph Myers <joseph@codesourcery.com> 2806 2807 PR c/456 2808 PR c/5675 2809 PR c/19976 2810 PR c/29116 2811 PR c/31871 2812 PR c/35198 2813 * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op. 2814 28152008-12-05 Sebastian Pop <sebastian.pop@amd.com> 2816 2817 PR bootstrap/38262 2818 * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS, 2819 remove GMPLIBS. 2820 28212008-10-06 Aldy Hernandez <aldyh@redhat.com> 2822 2823 * objc-act.c (objc_build_string_object): Pass location to 2824 build_unary_op. 2825 (init_def_list): Same. 2826 (init_objc_symtab): Same. 2827 (init_module_descriptor): Same. 2828 (build_module_initializer_routine): Same. 2829 (generate_static_references): Same. 2830 (build_typed_selector_reference): Same. 2831 (add_objc_string): Same. 2832 (objc_substitute_decl): Same. 2833 (objc_build_ivar_assignment): Same. 2834 (objc_build_global_assignment): Same. 2835 (objc_build_strong_cast_assignment): Same. 2836 (generate_protocols): Same. 2837 (build_protocol_initializer): Same. 2838 (build_dispatch_table_initializer): Same. 2839 (generate_protocol_list): Same. 2840 (build_category_initializer): Same. 2841 (build_shared_structure_initializer): Same. 2842 (generate_shared_structures): Same. 2843 (objc_build_protocol_expr): Same. 2844 (build_ivar_reference): Same. 2845 (get_super_receiver): Same. 2846 28472008-09-23 Aldy Hernandez <aldyh@redhat.com> 2848 2849 * objc-act.c (next_sjlj_build_enter_and_setjmp): Call 2850 c_common_truthvalue_conversion with location. 2851 (next_sjlj_build_catch_list): Same. 2852 (next_sjlj_build_try_catch_finally): Same. 2853 28542008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com> 2855 2856 PR objc/37460 2857 * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define. 2858 * objc-act.h (objc_get_callee_fndecl): Remove prototype. 2859 * objc-act.c (objc_get_callee_fndecl): Kill. 2860 28612008-09-17 Jan Hubicka <jh@suse.cz> 2862 2863 PR c++/18071 2864 * objc-act.c (objc_finish_method_definition): Do not set 2865 DECL_INLINE. 2866 28672008-09-01 Aldy Hernandez <aldyh@redhat.com> 2868 2869 * objc-act.c (build_typed_selector_reference): Pass input_location to 2870 build_unary_op calls. 2871 (build_selector_reference): Same, but to build_array_ref. 2872 (objc_substitute_decl): Same. 2873 (build_ivar_reference): Same, but to build_indirect_ref. 2874 (get_super_receiver): Same. 2875 28762008-07-28 Richard Guenther <rguenther@suse.de> 2877 2878 Merge from gimple-tuples-branch. 2879 2880 2008-07-18 Aldy Hernandez <aldyh@redhat.com> 2881 2882 * Make-lang.in (objc-lang.o): Depend on GIMPLE_H. 2883 (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H. 2884 * objc-act.h: Include gimple.h instead of tree-gimple.h. 2885 * ipa-reference.c: Same. 2886 2887 2007-11-10 Aldy Hernandez <aldyh@redhat.com> 2888 2889 * objc-act.c (objc_gimplify_expr): Change pre and post to sequences. 2890 * objc-act.h (objc_gimplify_expr): Change prototype accordingly. 2891 28922008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2893 2894 * objc-act.c: Fix comment typos. 2895 28962008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2897 2898 * objc-act.c (objc_start_class_interface, 2899 objc_start_category_interface, objc_start_class_implementation, 2900 objc_start_category_implementation, objc_build_struct, 2901 generate_static_references, build_private_template, 2902 lookup_category, objc_add_method, add_category, 2903 add_instance_variable, objc_is_public, conforms_to_protocol, 2904 start_class, continue_class, finish_class): Avoid C++ keywords. 2905 29062008-07-14 Jason Merrill <jason@redhat.com> 2907 2908 PR objc++/36723 2909 * objc-act.c (objc_build_constructor): Update C++ tweak. 2910 29112007-07-14 Rafael Ávila de Espíndola <espindola@google.com> 2912 2913 * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead 2914 of DECL_IN_SYSTEM_HEADER. 2915 29162008-07-11 Ian Lance Taylor <iant@google.com> 2917 2918 * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS, 2919 etc., not just when OBJCPLUS is defined. 2920 29212008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2922 2923 * objc-act.c (setup_string_decl, objc_build_string_object, 2924 hash_interface, eq_interface, objc_begin_try_stmt, 2925 encode_method_prototype, build_ivar_list_initializer, 2926 objc_build_encode_expr): Fix for -Wc++-compat. 2927 29282008-05-12 Tomas Bily <tbily@suse.cz> 2929 2930 * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr): 2931 Use CONVERT_EXPR_P. 2932 29332008-04-23 Paolo Bonzini <bonzini@gnu.org> 2934 2935 * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT. 2936 29372008-04-03 Tom Tromey <tromey@redhat.com> 2938 2939 * Make-lang.in (objc_OBJS): New variable. 2940 29412008-03-27 Tom Tromey <tromey@redhat.com> 2942 2943 * Make-lang.in: Revert automatic dependency patch. 2944 29452008-03-27 Douglas Gregor <doug.gregor@gmail.com> 2946 2947 PR obj-c++/35704 2948 * objc-act.c (objc_build_component_ref): Fix call to 2949 finish_class_member_access_expr. 2950 (objc_generate_cxx_ctor_or_dtor): Fix call to 2951 build_special_member_call. 2952 29532008-03-25 Andrew Pinski <pinskia@gmail.com> 2954 2955 PR objc/29197 2956 * objc-act.c (encode_type): Handle when type is error_mark_node. 2957 (objc_push_parm): Handle when the type of parm is error_mark_node. 2958 29592008-03-25 Tom Tromey <tromey@redhat.com> 2960 2961 * Make-lang.in (objc_OBJS): New variable. 2962 (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove. 2963 29642008-03-21 Andreas Tobler <a.tobler@schweiz.org> 2965 2966 PR bootstrap/35660 2967 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to 2968 MAYBE_CLASS_TYPE_P. 2969 (objc_generate_cxx_cdtors): Likewise. 2970 (add_instance_variable): Likewise. 2971 29722008-02-26 Tom Tromey <tromey@redhat.com> 2973 2974 * objc-act.c (objc_init): Remove old location code. 2975 29762008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2977 2978 PR other/35107 2979 * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS). 2980 29812007-07-30 Nick Clifton <nickc@redhat.com> 2982 2983 * Make-lang.in: Change copyright header to refer to version 3 of 2984 the GNU General Public License and to point readers at the 2985 COPYING3 file and the FSF's license web page. 2986 * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h, 2987 config-lang.in, objc-lang.c: Likewise. 2988 29892007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2990 2991 * objc-act.c (objc_get_callee_fndecl): Constify. 2992 * objc-act.h (objc_get_callee_fndecl): Likewise. 2993 29942007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2995 2996 * objc-act.c (volatilized_hash, volatilized_eq, string_hash, 2997 string_eq): Constify. 2998 29992007-04-04 Stuart Hastings <stuart@apple.com> 3000 3001 PR 31281 3002 * objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl. 3003 30042007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 3005 3006 * Make-lang.in: Add dummy lang.install-pdf target. 3007 30082007-02-18 Kazu Hirata <kazu@codesourcery.com> 3009 3010 * objc-act.c: Fix comment typos. 3011 30122007-02-15 Sandra Loosemore <sandra@codesourcery.com> 3013 Brooks Moses <brooks.moses@codesourcery.com> 3014 Lee Millward <lee.millward@codesourcery.com> 3015 3016 * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors. 3017 (objc_get_callee_fndecl): Likewise. 3018 30192007-01-23 Andrew Pinski <pinskia@gmail.com> 3020 3021 PR objc/27438 3022 * objc-act.c (objc_add_static_instance): Mark the decl as 3023 TREE_USED. 3024 30252007-01-20 Andrew Pinski <pinskia@gmail.com> 3026 3027 PR objc/30479 3028 * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead 3029 of htab_hash_pointer. 3030 (lookup_interface): Likewise. 3031 (add_class): Likewise. 3032 30332007-01-02 Douglas Gregor <doug.gregor@gmail.com> 3034 3035 * objc-act.c (objc_build_volatilized_type): Keep track of 3036 canonical types. 3037 (objc_get_protocol_qualified_type): Ditto. 3038 30392006-11-02 Andreas Tobler <a.tobler@schweiz.org> 3040 3041 * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and 3042 content where we called cp_finish_file. 3043 30442006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3045 3046 * objc-act.c (synth_module_prologue): Replace calls to 3047 builtin_function with add_builtin_function. 3048 (build_next_objc_exception_stuff): Replace calls to 3049 builtin_function with add_builtin_function. 3050 (build_objc_exception_stuff): Replace calls to 3051 builtin_function with add_builtin_function. 3052 30532006-10-10 Brooks Moses <bmoses@stanford.edu> 3054 3055 * Make-lang.in: Added empty "objc.pdf" target. 3056 30572006-09-26 Andrew Pinski <pinskia@physics.uc.edu> 3058 3059 PR objc/29195 3060 * objc-act.c (objc_push_parm): If we change the type of the 3061 decl, relayout the decl. 3062 30632006-09-19 Eric Christopher <echristo@apple.com> 3064 3065 * objc-act.c (JBLEN): Rename to OBJC_JBLEN, 3066 default to something innocuous. 3067 (build_next_objc_exception_stuff): Rename JBLEN. 3068 30692006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3070 3071 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. 3072 30732006-07-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3074 3075 PR obj-c++/28434 3076 * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes. 3077 30782006-06-06 Mike Stump <mrs@apple.com> 3079 3080 * objc-act.c: Remove prototype for objc_build_volatilized_type. 3081 30822006-05-24 Mike Stump <mrs@apple.com> 3083 3084 * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN. 3085 30862006-05-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3087 3088 PR objc/27240 3089 * objc-act.c (objc_is_public): Return early on invalid type. 3090 30912006-03-02 Fariborz Jahanian <fjahanian@apple.com> 3092 3093 * objc-act.c (init_module_descriptor): Remove file name from 3094 module descriptor. 3095 (gen_type_name_0): Fix ICE when issuing warning. 3096 30972006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3098 3099 * Make-lang.in (OBJC): Remove. 3100 (OBJECTIVE-C): Remove. 3101 (objective-c): Remove. 3102 (.PHONY): Remove objective-c and ObjC. 3103 31042005-12-14 Andrew Pinski <pinskia@physics.uc.edu> 3105 3106 PR objc/25360 3107 * objc-act.c (encode_type): Encode Complex types as 'j' followed 3108 by the inner type. 3109 31102005-12-12 Andrew Pinski <pinskia@physics.uc.edu> 3111 3112 PR objc/25348 3113 * objc-act.c (encode_array): Handle arrays to zero sized types. 3114 31152005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3116 3117 * Make-lang.in (objc.all.build, objc.install-normal): Remove. 3118 31192005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3120 3121 * Make-lang.in: Remove all dependencies on s-gtype. 3122 31232005-12-02 Richard Guenther <rguenther@suse.de> 3124 3125 * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp 3126 next_sjlj_build_exc_extract, next_sjlj_build_catch_list, 3127 next_sjlj_build_try_catch_finally, objc_begin_catch_clause, 3128 build_objc_method_call, objc_rewrite_function_call): Use buildN 3129 instead of build. 3130 31312005-10-20 Geoffrey Keating <geoffk@apple.com> 3132 3133 * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW 3134 on objc_msgSend and like builtin functions. 3135 31362005-10-17 Andreas Krebbel <krebbel1@de.ibm.com> 3137 3138 * objc-act.c (objc_build_component_ref): Adjust call to 3139 finish_class_member_access_expr due to a changed prototype. 3140 31412005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 3142 3143 PR objc/23306 3144 * objc-act.c (generate_strings): Remove and move code to 3145 finish decl to ... 3146 (add_objc_string): here when creating a new string decl. 3147 (finish_objc): Don't call generate_strings. 3148 31492005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 3150 3151 PR objc/23381 3152 * objc-act.c (next_sjlj_build_try_catch_finally): Set 3153 TREE_SIDE_EFFECTS on catch_seq after building it. 3154 31552005-08-09 Andrew Pinski <pinskia@physics.uc.edu> 3156 3157 part of PR objc/21992 3158 * objc-act.c (handle_class_ref): The ref decl is always referenced. 3159 31602005-07-20 Giovanni Bajo <giovannibajo@libero.it> 3161 3162 Make CONSTRUCTOR use VEC to store initializers. 3163 * objc-act.c (objc_build_constructor): Use build_constructor_from_list 3164 instead of build_constructor. 3165 31662005-07-08 Daniel Berlin <dberlin@dberlin.org> 3167 3168 * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is 3169 removed. 3170 * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common. 3171 (KEYWORD_KEY_NAME): Use decl_minimal. 3172 (METHOD_SEL_NAME): Ditto.. 3173 (METHOD_SEL_ARGS): Use decl_non_common. 3174 (METHOD_ADD_ARGS): Ditto. 3175 (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common. 3176 (METHOD_DEFINITION): Ditto. 3177 (METHOD_ENCODING): Ditto. 3178 * objc-lang.c: (objc_init_ts): New function. 3179 31802005-07-07 Ziemowit Laski <zlaski@apple.com> 3181 3182 * objc-act.c (objc_build_struct): Pass in an actual @interface 3183 instead of its name, and annotate the struct created (and all 3184 existing variants thereof) with the @interface. 3185 (objc_compare_types): Treat forward-declared ObjC classes 3186 as stand-alone (root) classes for purposes of type comparisons. 3187 (build_private_template): Move some code to objc_build_struct(). 3188 31892005-07-07 Ziemowit Laski <zlaski@apple.com> 3190 3191 PR objc/22274 3192 * objc-act.c (objc_build_string_object): For GNU-style constants, 3193 use the @interface type rather than the built-in type. 3194 31952005-07-03 Kazu Hirata <kazu@codesourcery.com> 3196 3197 * Make-lang.in (cc1plus-checksum.c): Use 3198 build/genchecksum$(build_exeext), not build/genchecksum$(exeext). 3199 32002005-07-02 Joseph S. Myers <joseph@codesourcery.com> 3201 3202 * objc-act.c: Use %q to quote in diagnostics. 3203 32042005-07-02 Joseph S. Myers <joseph@codesourcery.com> 3205 3206 * objc-act.c: Use '+' flag instead of %J. Use 'q' flag for 3207 quoting. 3208 32092005-06-30 Ziemowit Laski <zlaski@apple.com> 3210 3211 * objc-act.c (objc_build_volatilized_type): New function. 3212 (objc_volatilize_decl): Call objc_build_volatilized_type() 3213 instead of build_qualified_type(). 3214 32152005-06-29 Ziemowit Laski <zlaski@apple.com> 3216 3217 * objc-act.c (objc_build_internal_const_str_type): New function. 3218 (check_string_class_template): Use objc_get_class_ivars() instead 3219 of TYPE_FIELDS() to retrieve ivar list. 3220 (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather 3221 than the field itself. 3222 (objc_build_string_object): Synthesize a "__builtin_ObjCString" 3223 type and use it to lay out compile-time string objects. 3224 * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type): 3225 New. 3226 32272005-06-28 Paul Brook <paul@codesourcery.com> 3228 3229 * objc-act.c (objc_init_exceptions): Call 3230 default_init_unwind_resume_libfunc. 3231 32322005-06-27 Ziemowit Laski <zlaski@apple.com> 3233 3234 * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO 3235 portion of TYPE_LANG_SPECIFIC info for all variants of 3236 a class before calling finish_struct(), and restore 3237 same TYPE_OBJC_INFO afterwards. 3238 32392005-06-25 Kelley Cook <kcook@gcc.gnu.org> 3240 3241 * all files: Update FSF address in copyright headers. 3242 32432005-06-15 Joseph S. Myers <joseph@codesourcery.com> 3244 3245 * objc-act.c (my_build_string_pointer): New. 3246 (objc_get_class_reference, get_super_receiver): Call 3247 my_build_string_pointer instead of my_build_string when building 3248 function arguments. 3249 32502005-05-25 Mike Stump <mrs@mrs.kithrup.com> 3251 3252 * objc-act.c (volatilized_hash): Avoid warnings on 64-bit 3253 machines. 3254 32552005-05-24 Ziemowit Laski <zlaski@apple.com> 3256 3257 * objc-act.c (objc_build_struct): New function. 3258 (objc_derived_from_p): Likewise. 3259 (objc_build_component_ref): Likewise. 3260 (objc_copy_binfo): Likewise. 3261 (objc_xref_basetypes): Likewise. 3262 (objc_lookup_protocol): Likewise. 3263 (objc_compare_protocols): Likewise. 3264 (objc_volatilize_decl): Likewise. 3265 (encode_aggregate_fields): Likewise. 3266 (volatilized_hash): Likewise. 3267 (volatilized_eq): Likewise. 3268 (objc_compare_types): Likewise. 3269 (objc_type_quals_match): Likewise. 3270 (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro 3271 of same name. 3272 (get_class_ivars): Add second parameter indicating if entire 3273 hierarchy is desired. 3274 (struct volatilized_type): New type. 3275 (volatilized_htab): New hash table. 3276 (objc_types_compatible_p, objc_comptypes): Remove functions. 3277 (synth_module_prologue): Do not initialize 'unused_list'. 3278 (objc_get_class_reference): Fix ObjC++ impedance mismatches. 3279 (objc_declare_alias): Implement as a typedef. 3280 (objc_substitute_decl, objc_gimplify_expr): Reformat. 3281 (objc_get_class_ivars): Adjust call to get_class_ivars(). 3282 (next_sjlj_build_enter_and_setjmp, synth_forward_declarations, 3283 build_ivar_reference, get_super_receiver): Call 3284 objc_build_component_ref() instead of build_component_ref(). 3285 (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of 3286 objc_comptypes(). 3287 (build_private_template): Call objc_build_struct() instead of 3288 start_struct() and finish_struct(). 3289 (hash_init): Initialize volatilized_htab. 3290 (objc_is_public): Adjust calls to objc_get_ivars(); adjust 3291 ObjC++ impedance mismatches. 3292 (encode_aggregate_within): Streamline by calling 3293 encode_aggregate_fields(). 3294 * objc-act.h (objc_types_compatible_p): Remove prototype. 3295 (OCTI_UNUSED_LIST, unused_list): Remove slot. 3296 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove. 3297 32982005-05-18 Geoffrey Keating <geoffk@apple.com> 3299 3300 * Make-lang.in (cc1obj-dummy): New. 3301 (cc1obj-checksum.c): New. 3302 (cc1obj-checksum.o): New. 3303 (cc1obj): Add cc1obj-checksum.o. 3304 33052005-05-18 Mike Stump <mrs@apple.com> 3306 3307 PR objc/21641 3308 * objc-act.c (struct interface_tuple): Mark it up for GC. 3309 (interface_htab): It is really a struct interface_tuple. 3310 33112005-05-17 Ziemowit Laski <zlaski@apple.com> 3312 Mike Stump <mrs@apple.com> 3313 3314 Yet more Objective-C++... 3315 3316 * objc-act.c (objc_finish_try_stmt): Add return value. 3317 (objc_build_synchronized): Likewise. 3318 3319 * objc-act.c (objc_is_gcable_type): Add. 3320 (objc_substitute_decl): Add. 3321 (objc_build_ivar_assignment): Add. 3322 (objc_build_global_assignment): Add. 3323 (objc_build_strong_cast_assignment): Add. 3324 (objc_is_ivar_reference_p): Add. 3325 (objc_is_global_reference_p): Add. 3326 (objc_generate_write_barrier): Add. 3327 (objc_rewrite_function_call): Add. 3328 (objc_gimplify_expr): Add Objective-C++ support. 3329 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 3330 (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add. 3331 (INIT_TYPE_OBJC_INFO): Add Objective-C++ support. 3332 (DUP_TYPE_OBJC_INFO): Likewise. 3333 (struct imp_entry): Add field has_cxx_cdtors. 3334 (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL, 3335 OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL, 3336 OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL, 3337 OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL, 3338 OCTI_ASSIGN_STRONGCAST_DECL. 3339 (umsg_fast_decl): Add. 3340 (objc_assign_ivar_decl): Add. 3341 (objc_assign_ivar_fast_decl): Add. 3342 (objc_assign_global_decl): Add. 3343 (objc_assign_strong_cast_decl): Add. 3344 (objc_method_list_ptr): Add. 3345 (objc_method_proto_list_ptr): Add. 3346 (objc_ivar_list_ptr): Add. 3347 3348 * objc-act.c (should_call_super_dealloc): Add. 3349 (OBJC_VERSION): Bump to 6. 3350 (objc_is_gcable_type): Add. 3351 (objc_substitute_decl): Add. 3352 (objc_build_ivar_assignment): Add. 3353 (objc_build_global_assignment): Add. 3354 (objc_build_strong_cast_assignment): Add. 3355 (objc_is_gcable_p): Add. 3356 (objc_is_ivar_reference_p): Add. 3357 (objc_is_global_reference_p): Add. 3358 (generate_shared_structures): Add flags parameter. 3359 (objc_generate_cxx_ctor_or_dtor): Add. 3360 (objc_generate_cxx_cdtors): Add. 3361 (add_class): Add name parameter. 3362 (objc_types_share_size_and_alignment): Add. 3363 (comp_proto_with_proto): Add strict parameter. 3364 (CLS_HAS_CXX_STRUCTORS): Add. 3365 (TAG_ASSIGNIVAR): Add. 3366 (TAG_ASSIGNGLOBAL): Add. 3367 (TAG_ASSIGNSTRONGCAST): Add. 3368 (TAG_MSGSEND_FAST): Add. 3369 (TAG_ASSIGNIVAR_FAST): Add. 3370 (TAG_CXX_CONSTRUCT): Add. 3371 (TAG_CXX_DESTRUCT): Add. 3372 (OBJC_LOOKUP_CLASS): Add. 3373 (OBJC_LOOKUP_NO_SUPER): Add. 3374 (objc_finish_file): Add pch support. 3375 (objc_finish_implementation): Add Objective-C++ support. 3376 (synth_module_prologue): Likewise. 3377 (synth_module_prologue): Add fast dispatching. 3378 (objc_get_class_reference): Add Objective-C++ support. 3379 (objc_generate_write_barrier): Likewise. 3380 (next_sjlj_build_enter_and_setjmp): Likewise. 3381 (objc_begin_try_stmt): Likewise. 3382 (build_next_objc_exception_stuff): Add fast ivar support. 3383 (build_private_template): Mark the record as used so debug 3384 information is generated. 3385 (build_protocol_template): Add Objective-C++ support. 3386 (objc_method_parm_type) Likewise. 3387 (objc_generate_cxx_ctor_or_dtor): Likewise. 3388 (objc_generate_cxx_cdtors): Likewise. 3389 (build_protocol_initializer): Likewise. 3390 (build_category_template): Likewise. 3391 (build_class_template): Likewise. 3392 (build_method_list_template): Likewise. 3393 (build_category_initializer): Likewise. 3394 (build_shared_structure_initializer): Likewise. 3395 (objc_finish_message_expr): Likewise. 3396 (build_objc_method_call): Add fast dispatch support. 3397 (lookup_method_static): Add support to end search at superclasses. 3398 (add_method_to_hash_list): Add strict parameter to 3399 comp_proto_with_proto. 3400 (objc_add_method): Likewise. 3401 (objc_add_method): Also set the interface_value. 3402 (add_instance_variable): Add Objective-C++ support. 3403 (objc_is_public): Likewise. 3404 (start_class): Likewise. 3405 (continue_class): Likewise. 3406 (encode_aggregate_within): Likewise. 3407 (start_method_def): Likewise. 3408 (objc_start_function): Clear current_function_returns_value 3409 and current_function_returns_null. 3410 (really_start_method): Add Objective-C++ support. 3411 (objc_finish_method_definition): Add warning for missing 3412 [super dealloc]. 3413 (finish_objc): Add Objective-C++ support. 3414 (generate_objc_image_info): Likewise. 3415 (objc_lookup_ivar): Likewise. 3416 * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise. 3417 (INIT_TYPE_OBJC_INFO): Likewise. 3418 (DUP_TYPE_OBJC_INFO): Likewise. 3419 34202005-04-23 DJ Delorie <dj@redhat.com> 3421 3422 * objc-act.c: Adjust warning() callers. 3423 34242005-04-21 Roger Sayle <roger@eyesopen.com> 3425 3426 * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing 3427 this field of an objc method decl. 3428 * objc-act.c (build_method_decl): Take an additional "ellipsis" 3429 argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate. 3430 (objc_build_method_signature): Accept additional "ellipsis" 3431 argument and pass it to build_method_decl. 3432 (get_arg_type_list, start_method_def, gen_method_decl): Use 3433 the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the 3434 TREE_OVERFLOW field of a TREE_LIST node. 3435 34362005-04-20 Joseph S. Myers <joseph@codesourcery.com> 3437 3438 PR c/12913 3439 * objc-act.c (objc_start_function): Create stack level for context 3440 of identifiers with variably modified type. 3441 34422005-03-30 Joseph S. Myers <joseph@codesourcery.com> 3443 3444 PR c/772 3445 PR c/17913 3446 * objc-act.c (objc_start_function): Push context on 3447 label_context_stack. 3448 34492005-03-23 Joseph S. Myers <joseph@codesourcery.com> 3450 3451 * objc-act.c (next_sjlj_build_enter_and_setjmp, 3452 next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally): 3453 Call c_common_truthvalue_conversion. 3454 34552005-02-25 Joseph S. Myers <joseph@codesourcery.com> 3456 3457 * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o, 3458 objc/objc-parse.c, objc/objc-parse.y): Remove. 3459 (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean, 3460 objc.distclean, objc.maintainer-clean): Update for new parser. 3461 * config-lang.in (gtfiles): Update for new parser. 3462 34632005-01-29 Kazu Hirata <kazu@cs.umass.edu> 3464 3465 * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update 3466 copyright. 3467 34682005-01-27 Matt Austern <austern@apple.com> 3469 3470 * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before 3471 calling instantiate_pending_templates. 3472 34732005-01-26 Alexander Malmberg <alexander@malmberg.org> 3474 3475 PR objc/18862 3476 * objc-act.c (build_selector_translation_table): Use 3477 input_location in the diagnostic for the GNU runtime or if 3478 TREE_PURPOSE (chain) is NULL. 3479 34802005-01-25 Alexander Malmberg <alexander@malmberg.org> 3481 3482 PR objc/18408 3483 * objc-act.c (objc_types_compatible_p): New function. 3484 * objc-act.h (objc_types_compatible_p): Declare. 3485 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define. 3486 34872005-01-16 Ziemowit Laski <zlaski@apple.com> 3488 3489 * objc-act.c (objc_push_parm): Call c_type_promotes_to() 3490 via a lang-hook. 3491 34922005-01-15 Ziemowit Laski <zlaski@apple.com> 3493 3494 PR objc/19321 3495 * objc-act.c (get_arg_type_list): Decay function arguments into 3496 pointers. 3497 (objc_push_parm): Likewise; bring PARM_DECL construction closer 3498 in line with what the C front-end does. 3499 (objc_get_parm_info): Call pushdecl() and finish_decl() on 3500 each PARM_DECL, like the C front-end does. 3501 (start_method_def): Remove redundant ARRAY_TYPE decay. 3502 (objc_start_function): Bring closer in line with what the 3503 C front-end does for functions. 3504 35052005-01-14 Mike Stump <mrs@apple.com> 3506 3507 * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so 3508 that -fobjc-exceptions is accepted. 3509 35102004-12-30 Ziemowit Laski <zlaski@apple.com> 3511 3512 PR objc/18971 3513 * objc-act.c (get_arg_type_list, start_method_def): Decay 3514 array arguments into pointers. 3515 (gen_type_name_0): Learn to pretty-print array types. 3516 35172004-12-15 Ziemowit Laski <zlaski@apple.com> 3518 3519 * objc-act.c (build_private_template): Change to return 'void'; do 3520 not set ivar_context, uprivate_record or objc_instance_type. 3521 (objc_comptypes, gen_type_name_0): For types 'id' and 'Class', 3522 retrieve protocol list from the pointee rather than the pointer itself; 3523 check TYPE_HAS_OBJC_INFO(...) precondition before accessing 3524 TYPE_OBJC_PROTOCOL_LIST. 3525 (objc_get_protocol_qualified_type): For types 'id' and 'Class', 3526 construct a variant of the pointee as well as the pointer, and 3527 store protocol information in the former. When creating variants 3528 of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate 3529 TYPE_OBJC_INTERFACE information. 3530 (objc_declare_class): If a TYPE_DECL is looked up, retrieve the 3531 underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE; 3532 for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE 3533 holding an IDENTIFIER_NODE. 3534 (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before 3535 accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead 3536 of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding 3537 an IDENTIFIER_NODE (meaning a @class forward-declaration only). 3538 (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling 3539 lookup_interface(). 3540 (continue_class): For @implementations, set ivar_context, 3541 uprivate_record and objc_instance_type, for @interfaces, call 3542 build_private_template(). 3543 (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing 3544 TYPE_OBJC_INTERFACE. 3545 (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before 3546 accessing TYPE_OBJC_PROTOCOL_LIST. 3547 * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO, 3548 DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC, 3549 SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros. 3550 (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points 3551 to an actual @interface; stored in TYPE_LANG_SPECIFIC(...). 3552 (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in 3553 TYPE_LANG_SPECIFIC(...). 3554 (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete. 3555 (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER, 3556 TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P; 3557 adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST 3558 instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST. 3559 35602004-11-29 Joseph Myers <joseph@codesourcery.com> 3561 3562 PR c/7544 3563 * Make-lang.in (objc/objc-act.o): Update dependencies. 3564 * objc-act.c (objc_finish_file): Call 3565 maybe_apply_pending_pragma_weaks if not OBJCPLUS. 3566 35672004-11-09 Andrew Pinski <pinskia@physics.uc.edu> 3568 3569 PR objc/18406 3570 * obj-act.c (encode_type): 96bits doubles are encoded the 3571 same way as 64bit and 128bit doubles are. 3572 35732004-11-09 Joseph S. Myers <joseph@codesourcery.com> 3574 3575 * objc-act.c: Use %q, %< and %> for quoting in diagnostics. 3576 35772004-11-08 Andrew Pinski <pinskia@physics.uc.edu> 3578 3579 PR objc/16546 3580 * objc-act.c (generate_method_descriptors): Remove setting 3581 the new decls' type to variable_length_type. 3582 (generate_ivar_lists): Likewise. 3583 (generate_dispatch_tables): Likewise. 3584 35852004-10-30 Ziemowit Laski <zlaski@apple.com> 3586 3587 * objc-act.c (objc_lookup_ivar): The new OTHER parameter 3588 contains the result of the ID lookup by the C or C++ 3589 front-end; in class methods, use OTHER if it exists; 3590 in instance methods, use OTHER only if it is locally 3591 declared. 3592 35932004-10-26 Ziemowit Laski <zlaski@apple.com> 3594 3595 * objc-act.c (finish_class): Do not synthesize bogus 3596 'extern objc_object *_Foo;' declarations for @interface Foo. 3597 35982004-10-25 Ziemowit Laski <zlaski@apple.com> 3599 David Ayers <d.ayers@inode.at> 3600 3601 * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED 3602 instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for: 3603 'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *'; 3604 'Class <Protocol> == id' and 'Class <Protocol> == Class'. 3605 (objc_is_id): Add test for 'super'. 3606 (objc_finish_message_expr): Allow for messaging of 'Class <Proto>' 3607 receivers; if class methods are not found in protocol lists, search 3608 for instance methods therein and warn if one is found. Look in 3609 global hash tables for suitable method as a last resort when messaging 3610 'id <Proto>', 'Class <Proto>' and invalid receiver types. 3611 (objc_add_method): Insert instance methods listed in protocols into 3612 the global class method hash table. 3613 * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to 3614 IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in 3615 addition to 'id <Proto>'. 3616 36172004-10-21 Andrew Pinski <pinskia@physics.uc.edu> 3618 3619 PR objc/17923 3620 * objc-act.c (objc_build_string_object): Create a CONST_DECL 3621 for the NeXT runtime case. 3622 36232004-10-02 Kazu Hirata <kazu@cs.umass.edu> 3624 3625 * objc-act.c: Fix comment typos. 3626 36272004-09-24 Ziemowit Laski <zlaski@apple.com> 3628 3629 * objc-act.c (init_objc_symtab, init_module_descriptor, 3630 build_shared_structure_initializer): When initializing 'long' 3631 fields, ensure that the initializer value is also 'long'. 3632 36332004-09-24 Zack Weinberg <zack@codesourcery.com> 3634 3635 * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION 3636 throughout. 3637 (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION. 3638 (build_selector_translation_table): Use %J in diagnostic 3639 instead of diddling input_line. Fix spelling. 3640 36412004-09-21 Ziemowit Laski <zlaski@apple.com> 3642 3643 * objc-act.c (objc_fold_objc_type_ref): New function. 3644 * objc-act.h (objc_fold_objc_type_ref): New prototype. 3645 36462004-09-09 Joseph S. Myers <jsm@polyomino.org.uk> 3647 3648 * objc-act.c (objc_start_function, really_start_method, 3649 objc_get_parm_info, start_method_def): Update to new arg_info 3650 structures. 3651 36522004-09-07 Ziemowit Laski <zlaski@apple.com> 3653 3654 * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of 3655 objc/objc-act.h. 3656 (objc/objc-act.o): Depend on $(HASHTAB_H). 3657 * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and 3658 objcp-decl.h instead of c-tree.h. 3659 (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix, 3660 error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl, 3661 build_protocol_template): Adjust prototypes. 3662 (build_module_initializer_routine, start_class, continue_class, 3663 finish_class, start_method_def, objc_start_function, start_protocol, 3664 build_method_decl, objc_add_method, add_instance_variable, 3665 build_ivar_reference, is_ivar, is_private, get_super_receiver, 3666 build_selector_table_decl, objc_push_parm, objc_get_parm_info, 3667 gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl, 3668 create_field_decl): New prototypes. 3669 (objc_expand_function_end, comp_method_with_proto, objc_expr_last, 3670 gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl, 3671 define_decl, create_builtin_decl, gen_declspecs): Remove prototypes. 3672 (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME. 3673 (CLASS_TYPEDEF_NAME): New. 3674 (TAG_EXECCLASS): Change from a global variable to a #define. 3675 (TAG_RETURN_STRUCT): Delete. 3676 (TAG_GNUINIT): New, holds '__objc_gnu_init' name. 3677 (objc_inherit_code, objc_public_flag): New, moved from c-parse.in. 3678 (string_descriptor): New struct. 3679 (string_htab): New hash table. 3680 (string_hash, string_eq): New prototypes. 3681 (generate_struct_by_value_array): Call create_field_decl() instead of 3682 create_builtin_decl(). 3683 (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS; 3684 In ObjC++ mode, call cxx_init() instead of c_objc_common_init(). 3685 (objc_finish_file): In ObjC++, call instantiate_pending_templates() 3686 and cp_finish_file(). 3687 (define_decl, get_static_reference, get_protocol_reference, 3688 create_builtin_decl): Remove functions. 3689 (objc_start_class_interface, objc_start_category_interface, 3690 objc_start_protocol, objc_continue_interface, objc_finish_interface, 3691 objc_start_class_implementation, objc_start_category_implementation, 3692 objc_continue_implementation, objc_finish_implementation, 3693 objc_set_visibility, objc_set_method_type, 3694 objc_build_method_signature, objc_add_method_declaration, 3695 objc_start_method_definition, objc_add_instance_variable, 3696 objc_get_protocol_qualified_type, create_field_decl, 3697 start_var_decl, finish_var_decl): New functions. 3698 (setup_string_decl): Simplify since it is only called once. 3699 (synth_module_prologue): Call build_class_template(); predefine 'id' 3700 and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug 3701 hooks for duration of function; fix GNU runtime messenger signatures 3702 to correspond to reality; forward-declare '__objc_exec_class' for the 3703 GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate 3704 'extern "C" { ... }' wrappers around synthesized declarations; call 3705 build_protocol_template() and build_category_template(). 3706 (string_hash, string_eq): New functions. 3707 (objc_build_string_object): Check metaclass correctness only once; 3708 store string literals in hash table. 3709 (objc_build_constructor): Do not convert initializer elements; 3710 adjust for ObjC++ impedance mismatch. 3711 (build_objc_symtab_template): Call create_field_decl() instead of 3712 create_builtin_decl(). 3713 (init_objc_symtab): Add missing conversion to initializer element. 3714 (build_metadata_decl): Call start_var_decl() instead of define_decl(). 3715 (generate_objc_symtab_decl): Do not call build_category_template(); 3716 call start_var_decl() and finish_var_decl() instead of start_decl() 3717 and finish_decl(). 3718 (build_module_descriptor): Call create_field_decl() instead of 3719 grokfield(); call start_var_decl() and finish_var_decl() instead of 3720 start_decl() and finish_decl(); always mark module descriptor as 3721 used; move GNU runtime-specific functionality to 3722 build_module_initializer_routine(). 3723 (build_module_initializer_routine): New function, broken off of 3724 build_module_descriptor(). 3725 (objc_static_init_needed_p, objc_generate_static_init_call): New 3726 functions. 3727 (generate_static_references, generate_strings, 3728 build_selector_translation_table, generate_descriptor_table, 3729 generate_ivars_list, generate_dispatch_table, generate_category): Call 3730 start_var_decl() and finish_var_decl() instead of start_decl() and 3731 finish_decl(); build a type directly instead of via groktypename(). 3732 (build_selector_reference_decl, build_selector_table_decl, 3733 build_class_reference_decl, build_protocol_reference, 3734 generate_objc_image_info): Call start_var_decl() instead of 3735 build_decl(). 3736 (build_selector_reference): For GNU runtime, do not call 3737 build_selector_reference_decl(). 3738 (build_selector, build_typed_selector_reference): Always convert 3739 result to the selector type. 3740 (add_objc_string): Cast return value to 'char *'. 3741 (build_method_prototype_template, build_selector_template, 3742 build_method_template): Use actual selector type for fields 3743 pointing to selectors. 3744 (finish_objc): For GNU runtime, call 3745 build_module_initializer_routine() after build_module_descriptor(). 3746 (generate_protocol_list, generate_shared_structures): Call 3747 start_var_decl() and finish_var_decl() instead of start_decl() and 3748 finish_decl(); build a type directly instead of via 3749 groktypename(). 3750 (synth_id_with_class_suffix): Return a string. 3751 (get_arg_type_list): For instance methods, use the instance type for 3752 'self'; do not call groktypename_in_parm_context(). 3753 (build_objc_string_decl): Squash redeclaration errors in ObjC++. 3754 (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME; 3755 handle RECORD_TYPEs in ObjC as well as ObjC++. 3756 (objc_is_id): New function. 3757 (objc_is_object_ptr): Return the canonical type node. 3758 (objc_get_class_ivars): Simplify using get_class_ivars(). 3759 (get_class_ivars): Remove second parameter; create a fresh copy 3760 of the ivar list for each call; do not check for existence of 3761 super class. 3762 (objc_eh_runtime_type): Mark #ifndef OBJCPLUS. 3763 (objc_init_exceptions): When using SJLJ-style exceptions, require 3764 the use of '-fobjc-exceptions' flag; do not require it for DWARF-style 3765 exceptions. 3766 (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use 3767 objc_object_type instead of objc_id_type. 3768 (objc_begin_catch_clause): Convert the incoming PARM_DECL into 3769 a VAR_DECL before placing it in the appropriate scope; do not 3770 call define_decl(); adjust call to c_begin_compound_stmt(); 3771 use objc_object_type instead of objc_id_type. 3772 (build_next_objc_exception_stuff): Call create_field_decl() instead 3773 of create_builtin_decl(); construct type directly instead of calling 3774 groktypename(); use OBJC_VOID_AT_END to mark end of function parameters. 3775 (build_private_template): Adjust call to get_class_ivars(); build 3776 a type directly instead of via groktypename(). 3777 (build_protocol_template, build_method_prototype_list_template, 3778 build_method_prototype_template, build_category_template, 3779 build_selector_template, build_class_template, build_super_template, 3780 build_ivar_template, build_ivar_list_template, 3781 build_method_list_template, build_method_template): 3782 Call create_field_decl() instead of grokfield(). 3783 (objc_method_parm_type): Do not call groktypename(). 3784 (generate_descriptor_table): Call start_var_decl() and 3785 finish_var_decl() instead of start_decl() and finish_decl(). 3786 (generate_method_descriptors, build_protocol_initializer, 3787 generate_dispatch_tables, build_category_initializer, 3788 build_shared_structure_initializer): Do not call groktypename(). 3789 (generate_protocols): Call start_var_decl() and finish_var_decl() 3790 instead of start_decl() and finish_decl(); do not call groktypename(). 3791 (error_with_ivar): Remove last parameter. 3792 (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition 3793 to CLASS_IVARS lists; adjust calls to error_with_ivar(). 3794 (generate_ivar_lists): Convert one of the initializer elements; do 3795 not call groktypename(). 3796 (get_arg_type_list, start_method_def, gen_method_def): Account for 3797 new representation of variable arguments and '...' in Objective-C 3798 methods; add Objective-C++ impedance matching code. 3799 (is_objc_type_qualifier): Remove function. 3800 (adjust_type_for_id_default): Simplify; there is no longer a need to 3801 wade through declspecs. 3802 (lookup_interface, start_class, continue_class, 3803 finish_class, start_method_def, start_protocol, build_method_decl, 3804 objc_add_method, add_instance_variable, build_ivar_reference, 3805 is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue): 3806 Make into static functions. 3807 (receiver_is_class_object): Use new IS_CLASS() macro. 3808 (objc_build_message_expr): Tweak ObjC++ message argument handling; 3809 call objc_finish_message_expr() instead of finish_message_expr(). 3810 (finish_message_expr): Rename to objc_finish_message_expr(); use 3811 OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME. 3812 call gen_type_name() instead of gen_declaration(); call objc_is_id() 3813 instead of using IS_ID and IS_CLASS; Use objc_class_name instead of 3814 calling get_identifier("Class"); handle CONVERT_EXPRs in receiver. 3815 (build_objc_method_call, warn_with_method): Do not call groktypename(). 3816 (build_ivar_reference): Call convert() instead of clobbering in a 3817 type. 3818 (hash_init): Initialize string_htab hash table. 3819 (add_instance_variable): Simplify parameter list; do not call grokfield(); 3820 do not populate CLASS_IVARS list. 3821 (start_class): Check for the existence of super class, if one was specified. 3822 (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not 3823 call build_class_template(); adjust call to get_class_ivars(); call 3824 build_decl(), pushdecl() and finish_decl() instead of define_decl(). 3825 (finish_class): Call build_decl(), pushdecl() and finish_decl() instead 3826 of define_decl(). 3827 (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size. 3828 (start_protocol): Do not call build_protocol_template(); use 3829 PROTOCOL_BINFO_ELTS for the tree vector size. 3830 (encode_type_qualifiers): Do not handle the 'const' qualifier here. 3831 (encode_pointer): Encode 'const char *' as 'r*', for backwards 3832 compatibility. 3833 (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld". 3834 (encode_type): Handle the 'const' qualifier here. 3835 (objc_parmlist): New global variable, sued by objc_push_parm and 3836 objc_get_parm_info(). 3837 (objc_push_parm, objc_get_parm_info): New functions. 3838 (objc_expr_last): Remove function. 3839 (synth_self_and_ucmd_args): For instance methods, use the instance 3840 type for 'self'; call objc_push_parm() instead of push_parm_decl(). 3841 (start_method_def): Do not call push_scope(), declare_parm_level(), 3842 pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last(); 3843 just use objc_push_parm() and objc_get_parm_info(). 3844 (comp_method_with_proto): Remove function. 3845 (objc_types_are_equivalent): Strip away indirections before comparing 3846 underlying types. 3847 (comp_proto_with_proto): Do not call groktypename(); types are no 3848 longer in raw declspec format. 3849 (objc_start_function): New function. 3850 (really_start_method): Call comp_proto_with_proto() instead of 3851 comp_method_with_proto(); call objc_start_function() instead of 3852 hand-crafting a function declarator. 3853 (continue_method_def, objc_expand_function_end): Remove functions. 3854 (get_super_receiver): Call objc_get_current_scope() instead of 3855 get_current_scope(); reference 'super_class' field (instead of 3856 'class'). 3857 (finish_method_def): Rename to objc_finish_method_definition() and 3858 add a function decl parameter; move method encoding call from 3859 objc_expand_function_end(). 3860 (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs, 3861 gen_declaration_1): Remove functions. 3862 (tmpbuf, RAW_DECLSPEC): Remove. 3863 (gen_declaration): Remove second parameter; simplify to deal 3864 with TYPE_P nodes instead of raw declspecs. 3865 (gen_type_name, gen_type_name_0): New functions. 3866 (gen_method_decl): Remove second parameter; call gen_type_name() 3867 instead of gen_declaration_1(). 3868 (dump_interface): Adjust calls to gen_declaration() and 3869 gen_method_decl(); do not allocate a separate string buffer. 3870 (init_objc): Allocate a larger string buffer to accommodate 3871 dump_interface(); adjust call to build_module_descriptor(); 3872 add call to build_module_initializer_routine() for the GNU 3873 runtime. 3874 (generate_classref_translation_entry): Do not call start_decl(); call 3875 finish_var_decl() instead of finish_decl(); call convert() instead of 3876 build_c_cast(). 3877 * objc-act.h (CLASS_OWN_IVARS): Remove accessor. 3878 (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is 3879 gone. 3880 (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New. 3881 (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove. 3882 (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME, 3883 objc_object_type and objc_object_name, respectively. 3884 (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference, 3885 objc_class_name): New. 3886 (IS_CLASS): New macro. 3887 (IS_ID, IS_SUPER): Robustify. 3888 (OCTI_EXECCLASS_DECL, execclass_decl): New. 3889 (finish_file, start_class, continue_class, finish_class, 3890 start_method_def, continue_method_def, finish_method_def, 3891 start_protocol, finish_protocol, objc_build_throw_stmt, 3892 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, 3893 objc_build_synchronized_epilogue, objc_build_try_prologue, 3894 objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue, 3895 objc_build_finally_prologue, objc_build_finally_epilogue, 3896 is_ivar, is_private, is_public, add_instance_variable, objc_add_method, 3897 get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name, 3898 get_class_reference, get_static_reference, get_object_reference, 3899 build_message_expr, finish_message_expr, build_selector_expr, 3900 build_ivar_reference, build_keyword_decl, build_method_decl, 3901 build_protocol_expr, build_objc_string_object, objc_declare_alias, 3902 objc_declare_class, objc_declare_protocols, objc_comptypes, 3903 objc_check_decl, build_encode_expr): Remove prototypes. 3904 (imp_count, cat_count): Make GGC-aware. 3905 (OBJC_SET_TYPE_NAME): New macro. 3906 39072004-09-03 Ziemowit Laski <zlaski@apple.com> 3908 3909 * config-lang.in: Update copyright notice. 3910 (lang_requires): Indicate that ObjC requires C to be built first. 3911 39122004-09-01 Ziemowit Laski <zlaski@apple.com> 3913 3914 * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of 3915 TYPE_NAME. 3916 (build_objc_string_object): Rename to objc_build_string_object(). 3917 (get_class_reference): Rename to objc_get_class_reference(). 3918 (get_class_ivars_from_name): Rename to objc_get_class_ivars(). 3919 (next_sjlj_build_catch_list, get_super_receiver): Call 3920 objc_get_class_reference() instead of get_class_reference(). 3921 (build_keyword_decl): Rename to objc_build_keyword_decl(). 3922 (build_message_expr): Rename to objc_build_message_expr(). 3923 (build_protocol_expr): Rename to objc_build_protocol_expr(). 3924 (build_selector_expr): Rename to objc_build_selector_expr(). 3925 (build_encode_expr): Rename to objc_build_encode_expr(). 3926 * objc-act.h (get_class_ivars_from_name): Rename prototype to 3927 objc_get_class_ivars(). 3928 (get_class_reference): Rename prototype to objc_get_class_reference(). 3929 (build_message_expr): Rename prototype to objc_build_message_expr(). 3930 (build_selector_expr): Rename prototype to objc_build_selector_expr(). 3931 (build_keyword_decl): Rename prototype to objc_build_keyword_decl(). 3932 (build_protocol_expr): Rename prototype to objc_build_prototype_expr(). 3933 (build_objc_string_object): Rename prototype to 3934 objc_build_string_object(). 3935 39362004-09-01 Ziemowit Laski <zlaski@apple.com> 3937 3938 * objc-act.c (lookup_interface): Make function 'static' and add a 3939 local prototype. 3940 (objc_check_decl, get_class_reference, objc_declare_alias, 3941 objc_declare_class, objc_is_object_ptr): Call objc_is_class_name() 3942 instead of is_class_name(). 3943 (get_super_receiver, objc_clear_super_receiver): Call 3944 objc_get_current_scope() instead of get_current_scope(). 3945 (is_class_name): Rename to objc_is_class_name. 3946 (lookup_objc_ivar): Rename to objc_lookup_ivar. 3947 39482004-08-28 Ziemowit Laski <zlaski@apple.com> 3949 3950 * objc-act.c (objc_is_reserved_word): New function. 3951 39522004-08-15 Ziemowit Laski <zlaski@apple.com> 3953 3954 * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H), 3955 $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h. 3956 (objc/objc-parse.o): Do not depend on gtype-objc.h. 3957 * objc-act.c: Do not include gtype-objc.h. 3958 (finish_file): Rename to objc_finish_file(). 3959 * objc-act.h (finish_file): Update copyright notice; remove prototype. 3960 * objc-lang.c: Update copyright notice; include diagnostic.h, 3961 c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include 3962 toplev.h. 3963 (finish_file): New hook routine. 3964 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS, 3965 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION, 3966 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS, 3967 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, 3968 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, 3969 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION, 3970 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL, 3971 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, 3972 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, 3973 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED, 3974 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, 3975 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, 3976 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, 3977 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, 3978 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, 3979 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, 3980 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING, 3981 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, 3982 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, 3983 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE, 3984 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE, 3985 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, 3986 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO, 3987 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS): 3988 Move to c-objc-common.h. 3989 3990 3991Copyright (C) 2004-2020 Free Software Foundation, Inc. 3992 3993Copying and distribution of this file, with or without modification, 3994are permitted in any medium without royalty provided the copyright 3995notice and this notice are preserved. 3996