12020-07-23 Release Manager 2 3 * GCC 10.2.0 released. 4 52020-05-07 Release Manager 6 7 * GCC 10.1.0 released. 8 92020-01-01 Jakub Jelinek <jakub@redhat.com> 10 11 Update copyright years. 12 132019-10-10 Iain Sandoe <iain@sandoe.co.uk> 14 15 * objc-next-metadata-tags.h (OCTI_RT_META_IVAR_REF): New. 16 (meta_ivar_ref): New. 17 * objc-next-runtime-abi-02.c 18 (next_runtime_abi_02_init_metadata_attributes): Create the 19 IVAR ref metadata identifier. 20 (ivar_offset_ref): Tag IVAR refs with specific metadata. 21 222019-06-05 Martin Sebor <msebor@redhat.com> 23 24 * objc-act.c (objc_build_setter_call): Adjust quoting and hyphenation. 25 * objc-encoding.c (encode_gnu_bitfield): Same. 26 272019-05-18 Iain Sandoe <iain@sandoe.co.uk> 28 29 * objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New. 30 (objc_global_trees): Add instance type and name. 31 (INSTANCE_TYPEDEF_NAME): New. 32 * objc-act.c (synth_module_prologue): Build decls for 33 objc_instancetype_type and objc_instancetype_name. 34 352019-05-16 Martin Sebor <msebor@redhat.com> 36 37 * objc-act.c (objc_begin_catch_clause): Quote keywords and options 38 in diagnostics. 39 (objc_build_throw_stmt): Same. 40 (objc_finish_message_expr): Same. 41 (get_super_receiver): Same. 42 * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell 43 out "less than" in English./ 44 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell 45 out "greater" in English. 46 472019-05-10 Jakub Jelinek <jakub@redhat.com> 48 49 PR pch/90326 50 * config-lang.in (gtfiles): Add c-family/c-format.c. 51 522019-04-05 Martin Liska <mliska@suse.cz> 53 54 PR translation/89936 55 * objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in 56 order to wrap keywords or arguments. 57 (objc_add_synthesize_declaration_for_property): Likewise. 58 592019-01-09 Sandra Loosemore <sandra@codesourcery.com> 60 61 PR other/16615 62 63 * objc-act.c: Mechanically replace "can not" with "cannot". 64 652019-01-01 Jakub Jelinek <jakub@redhat.com> 66 67 Update copyright years. 68 692018-12-19 David Malcolm <dmalcolm@redhat.com> 70 71 PR c++/43064 72 PR c++/43486 73 * objc-act.c (objc_maybe_build_component_ref): Strip any location 74 wrapper before checking for UOBJC_SUPER_decl and self_decl. 75 (objc_finish_message_expr): Strip any location wrapper. 76 (gen_declaration): Strip location wrappers from "w". 77 782018-10-17 David Malcolm <dmalcolm@redhat.com> 79 80 * Make-lang.in (selftest-objc): New. 81 822018-04-20 Martin Liska <mliska@suse.cz> 83 84 PR objc/85476 85 * objc-act.c (finish_class): Do not overflow string buffer. 86 872018-01-03 Jakub Jelinek <jakub@redhat.com> 88 89 Update copyright years. 90 912017-11-30 Jakub Jelinek <jakub@redhat.com> 92 93 * objc-next-runtime-abi-01.c (generate_dispatch_table): Use ; instead 94 of ;;. 95 962017-11-10 Martin Sebor <msebor@redhat.com> 97 98 PR c/81117 99 * objc-encoding.c (encode_type): Use memcpy instead of strncpy. 100 1012017-10-31 David Malcolm <dmalcolm@redhat.com> 102 103 * objc-gnu-runtime-abi-01.c (objc_gnu_runtime_abi_01_init): Use 104 UNKNOWN_LOCATION rather than 0. 105 1062017-10-17 Nathan Sidwell <nathan@acm.org> 107 108 * objc-act.c (objc_common_tree_size): Return size of TYPE nodes. 109 1102017-10-10 Richard Sandiford <richard.sandiford@linaro.org> 111 112 * objc-act.c (objc_decl_method_attributes): Use wi::to_wide when 113 operating on trees as wide_ints. 114 1152017-09-29 Jakub Jelinek <jakub@redhat.com> 116 117 * objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at 118 DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL. 119 1202017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 121 Alan Hayward <alan.hayward@arm.com> 122 David Sherwood <david.sherwood@arm.com> 123 124 * objc-encoding.c (encode_type): Use SCALAR_INT_TYPE_MODE. 125 1262017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 127 Alan Hayward <alan.hayward@arm.com> 128 David Sherwood <david.sherwood@arm.com> 129 130 * objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE 131 instead of TYPE_MODE. 132 1332017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 134 Alan Hayward <alan.hayward@arm.com> 135 David Sherwood <david.sherwood@arm.com> 136 137 * objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in 138 case statements. 139 1402017-08-09 Marek Polacek <polacek@redhat.com> 141 142 PR c/81417 143 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update 144 a call to build_conditional_expr. 145 1462017-08-08 Martin Liska <mliska@suse.cz> 147 148 * objc-gnu-runtime-abi-01.c: Include header files. 149 * objc-next-runtime-abi-01.c: Likewise. 150 * objc-next-runtime-abi-02.c: Likewise. 151 1522017-07-20 Nathan Sidwell <nathan@acm.org> 153 154 Remove TYPE_METHODS. 155 * objc-runtime-shared-support.c (build_ivar_list_initializer): 156 Don't presume first item is a FIELD_DECL. 157 1582017-07-19 Nathan Sidwell <nathan@acm.org> 159 160 * objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use 161 TYPE_{MIN,MAX}_VALUE_RAW. 162 1632017-05-16 Sylvestre Ledru <sylvestre@debian.org> 164 165 * objc-runtime-shared-support.c (build_module_descriptor): 166 Remove unnecessary conditional when building instance of 167 objc_module. CID 1406758 168 1692017-05-09 Nathan Sidwell <nathan@acm.org> 170 171 * objc-gnu-runtime-abi-01.c (objc_add_static_instance): Use 172 pushdecl lang_hook. 173 1742017-05-04 Martin Sebor <msebor@redhat.com> 175 176 PR translation/80280 177 * objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing 178 quoting to directives. 179 * objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto. 180 * objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto. 181 1822017-01-01 Jakub Jelinek <jakub@redhat.com> 183 184 Update copyright years. 185 1862016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com> 187 Richard Biener <rguenther@suse.de> 188 189 * config-lang.in (gtfiles): Add c/c-parser.h. 190 1912016-09-27 Jakub Jelinek <jakub@redhat.com> 192 193 * objc-act.c (continue_class): Remove break after return. 194 (objc_maybe_printable_name): Likewise. 195 1962016-08-12 Marek Polacek <polacek@redhat.com> 197 198 PR c/7652 199 * objc-encoding.c (encode_type): Add FALLTHRU. 200 2012016-06-07 David Malcolm <dmalcolm@redhat.com> 202 203 * objc-act.c (objc_build_component_ref): Update call 204 to build_component_ref for added param, passing UNKNOWN_LOCATION. 205 2062016-04-18 Michael Matz <matz@suse.de> 207 208 * objc-act.c (objc_build_struct): Use SET_DECL_ALIGN. 209 2102016-02-12 Jakub Jelinek <jakub@redhat.com> 211 212 * objc-act.c: Spelling fixes - behaviour -> behavior and 213 neighbour -> neighbor. 214 * objc-map.h: Likewise. 215 2162016-01-04 Jakub Jelinek <jakub@redhat.com> 217 218 Update copyright years. 219 2202015-11-11 Andrew MacLeod <amacleod@redhat.com> 221 222 * objc-act.c: Remove unused header files. 223 * objc-encoding.c: Likewise. 224 * objc-gnu-runtime-abi-01.c: Likewise. 225 * objc-lang.c: Likewise. 226 * objc-map.c: Likewise. 227 * objc-next-runtime-abi-01.c: Likewise. 228 * objc-next-runtime-abi-02.c: Likewise. 229 * objc-runtime-shared-support.c: Likewise. 230 2312015-11-09 Alan Modra <amodra@gmail.com> 232 233 * objc-encoding.c (encode_aggregate_within): Cast obstack_next_free 234 return value. 235 2362015-10-29 Andrew MacLeod <amacleod@redhat.com> 237 238 * objc-lang.c: Reorder #include's and remove duplicates. 239 * objc-map.c: Likewise. 240 2412015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org> 242 243 * objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h: 244 Remove useless typedefs. 245 2462015-07-12 Aldy Hernandez <aldyh@redhat.com> 247 248 * objc-map.h: Fix double word typos. 249 2502015-07-07 Andrew MacLeod <amacleod@redhat.com> 251 252 * objc-act.c: Adjust includes. 253 * objc-encoding.c: Likewise. 254 * objc-gnu-runtime-abi-01.c: Likewise. 255 * objc-lang.c: Likewise. 256 * objc-map.c: Likewise. 257 * objc-next-runtime-abi-01.c: Likewise. 258 * objc-next-runtime-abi-02.c: Likewise. 259 * objc-runtime-shared-support.c: Likewise. 260 2612015-06-25 Andrew MacLeod <amacleod@redhat.com> 262 263 * objc-act.c: Remove ipa-ref.h and plugin-api.h from include list. 264 2652015-06-25 Richard Sandiford <richard.sandiford@arm.com> 266 267 * objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash 268 rather than ggc_hasher. 269 2702015-06-25 Richard Sandiford <richard.sandiford@arm.com> 271 272 * objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather 273 than typed_noop_remove. Remove redudant typedefs. 274 2752015-06-17 Andrew MacLeod <amacleod@redhat.com> 276 277 * objc-act.c: Do not include input.h, line-map.h or is-a.h. 278 * objc-encoding.c: Likewise. 279 * objc-gnu-runtime-abi-01.c: Likewise. 280 * objc-lang.c: Likewise. 281 * objc-map.c: Likewise. 282 * objc-next-runtime-abi-01.c: Likewise. 283 * objc-next-runtime-abi-02.c: Likewise. 284 * objc-runtime-shared-support.c: Likewise. 285 2862015-06-08 Andrew MacLeod <amacleod@redhat.com> 287 288 * objc-act.c : Adjust include files. 289 * objc-encoding.c : Likewise. 290 * objc-gnu-runtime-abi-01.c : Likewise. 291 * objc-lang.c : Likewise. 292 * objc-map.c : Likewise. 293 * objc-next-runtime-abi-01.c : Likewise. 294 * objc-next-runtime-abi-02.c : Likewise. 295 * objc-runtime-shared-support.c : Likewise. 296 2972015-06-08 Aldy Hernandez <aldyh@redhat.com> 298 299 * objc-runtime-shared-support.c (build_module_descriptor): Set 300 TREE_USED on UOBJC_MODULES_decl. 301 3022015-06-05 Aldy Hernandez <aldyh@redhat.com> 303 304 * objc-act.c (objc_write_global_declarations): Adjust comment. 305 * objc-gnu-runtime-abi-01.c (build_selector_table_decl): Set 306 TREE_USED bit. 307 3082015-06-04 Andrew MacLeod <amacleod@redhat.com> 309 310 * objc-act.c: Adjust includes for restructured coretypes.h. 311 * objc-encoding.c: Likewise. 312 * objc-gnu-runtime-abi-01.c: Likewise. 313 * objc-lang.c: Likewise. 314 * objc-map.c: Likewise. 315 * objc-next-runtime-abi-01.c: Likewise. 316 * objc-next-runtime-abi-02.c: Likewise. 317 * objc-runtime-shared-support.c: Likewise. 318 3192015-04-27 Jim Wilson <jim.wilson@linaro.org> 320 321 * Make-lang.in (objc.mostlyclean): Remove cc1obj. 322 3232015-04-18 Trevor Saunders <tsaunders@mozilla.com> 324 325 * objc-act.c: Adjust for hash_table changes. 326 3272015-01-09 Michael Collison <michael.collison@linaro.org> 328 329 * objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 330 input.h, alias.h, symtab.h, options, fold-const.h, 331 wide-int.h, and inchash.h due to flattening of tree.h. 332 * objc-encoding.c: Ditto. 333 * objc-gnu-runtime-abi-01.c: Ditto. 334 * objc-lang.c: Ditto. 335 * objc-map.c: Ditto. 336 * objc-next-runtime-abi-01.c: Ditto. 337 * objc-next-runtime-abi-02.c: Ditto. 338 * objc-runtime-shared-support.c: Ditto. 339 3402015-01-05 Jakub Jelinek <jakub@redhat.com> 341 342 Update copyright years. 343 3442014-10-28 Andrew MacLeod <amacleod@redhat.com> 345 346 * objc-act.c: Adjust include files. 347 3482014-10-22 Alan Modra <amodra@gmail.com> 349 350 * objc-encoding.c (encode_array): Cast result of obstack_base. 351 (encode_type): Likewise. 352 3532014-10-16 Andrew MacLeod <amacleod@redhat.com> 354 355 * objc-act.c: Adjust include files. 356 3572014-10-12 Trevor Saunders <tsaunders@mozilla.com> 358 359 * objc-act.c: use hash_table instead of hashtab. 360 3612014-09-15 Jakub Jelinek <jakub@redhat.com> 362 363 * Make-lang.in (check_objc_parallelize): Change to just an upper 364 bound number. 365 3662014-07-14 Jan Hubicka <hubicka@ucw.cz> 367 368 * objc-act.c (objc_common_tree_size): New function. 369 * objc-act.h (KEYWORD_KEY_NAME, KEYWORD_ARG_NAME): Add type 370 checking. 371 (INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro. 372 (METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS, 373 METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING, 374 METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking. 375 (METHOD_SEL_ARGS): Use decl_common.size instead of 376 decl_non_common.result. 377 (PROPERTY_NAME, PROPERTY_GETTER_NAME, PROPERTY_SETTER_NAME, 378 PROPERTY_READONLY, PROPERTY_NONATOMIC, PROPERTY_ASSIGN_SEMANTICS, 379 PROPERTY_IVAR_NAME, PROPERTY_DYNAMIC, PROPERTY_HAS_NO_GETTER, 380 PROPERTY_HAS_NO_SETTER, PROPERTY_OPTIONAL): Add type checking. 381 (objc_common_tree_size): Declare. 382 * objc-lang.c (LANG_HOOKS_TREE_SIZE): New macro. 383 3842014-06-24 Jan Hubicka <hubicka@ucw.cz> 385 386 * objc-act.c (objc_xref_basetypes): Set TYPE_BINFO of type variants, 387 too. 388 3892014-06-24 Trevor Saunders <tsaunders@mozilla.com> 390 391 * objc-act.c: Adjust. 392 3932014-05-17 Trevor Saunders <tsaunders@mozilla.com> 394 395 * objc-act.c (objc_build_string_object): Adjust. 396 (continue_class): Likewise. 397 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 398 * objc-map.c (objc_map_alloc_ggc): Likewise. 399 (objc_map_private_resize): Likewise. 400 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): 401 Likewise. 402 (hash_name_enter): Likewise. 403 4042014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> 405 Mike Stump <mikestump@comcast.net> 406 Richard Sandiford <rdsandiford@googlemail.com> 407 408 * objc-act.c: Include wide-int.h. 409 (objc_decl_method_attributes): Use wide-int interfaces. 410 4112014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com> 412 413 PR objc/56044 414 * objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add. 415 (objc_init): Initialize objc_default_ivar_visibility. 416 (objc_start_class_interface): Use objc_default_ivar_visibility. 417 (objc_start_class_implementation): Likewise. 418 (objc_lookup_ivar): Implement -fno-local-ivars. 419 4202014-01-31 Marek Polacek <polacek@redhat.com> 421 422 PR c/59963 423 * objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to 424 build_function_call_vec. 425 (finish_catch): Likewise. 426 (next_runtime_abi_02_get_class_reference): Likewise. 427 * objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to 428 build_function_call_vec. 429 (build_throw_stmt): Likewise. 430 * objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to 431 build_function_call_vec. 432 (build_throw_stmt): Likewise. 433 4342014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 435 436 Update copyright years 437 4382013-12-04 Joseph Myers <joseph@codesourcery.com> 439 440 PR c/52023 441 * objc-act.c (objc_synthesize_getter): Update calls to 442 c_sizeof_or_alignof_type. 443 4442013-11-22 Andrew MacLeod <amacleod@redhat.com> 445 446 * objc-act.c: Add required include files from gimple.h. 447 4482013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 449 450 * objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi 451 throughout. 452 4532013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 454 455 * objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with 456 tree_to_shwi throughout. 457 4582013-11-14 Andrew MacLeod <amacleod@redhat.com> 459 460 * objc-act.c: Include only gimplify.h and gimple.h as needed. 461 4622013-11-14 Diego Novillo <dnovillo@google.com> 463 464 * objc-act.c: Include stringpool.h. 465 Include stor-layout.h. 466 Include attribs.h. 467 * objc-encoding.c: Include stringpool.h. 468 Include stor-layout.h. 469 * objc-gnu-runtime-abi-01.c: Include stringpool.h. 470 * objc-next-runtime-abi-01.c: 471 Include stringpool.h. 472 * objc-next-runtime-abi-02.c: Include stringpool.h. 473 * objc-runtime-shared-support.c: Include stringpool.h. 474 4752013-11-12 Andrew MacLeod <amacleod@redhat.com> 476 477 * objc-act.c: Include gimplify.h. 478 4792013-11-07 Andrew MacLeod <amacleod@redhat.com> 480 481 * objc-act.c (objc_push_parm): Handle atomic qualifier. 482 4832013-09-25 Tom Tromey <tromey@redhat.com> 484 485 * Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o) 486 (objc/objc-runtime-shared-support.o) 487 (objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o) 488 (objc/objc-next-runtime-abi-02.o, objc/objc-act.o) 489 (objc/objc-encoding.o, objc/objc-map.o): Remove. 490 4912013-09-14 Iain Sandoe <iain@codesourcery.com> 492 493 PR target/48094 494 * objc-next-runtime-abi-01.c (generate_objc_image_info): Remove. 495 (objc_generate_v1_next_metadata): Remove generation of ImageInfo. 496 * objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove. 497 (objc_generate_v2_next_metadata): Remove generation of ImageInfo. 498 4992013-07-21 OndÅej BÃlka <neleai@seznam.cz> 500 501 * objc-act.c: Fix typos. 502 * objc-encoding.c: Likewise. 503 * objc-gnu-runtime-abi-01.c: Likewise. 504 * objc-next-runtime-abi-01.c: Likewise. 505 * objc-next-runtime-abi-02.c: Likewise. 506 5072013-05-22 Paolo Carlini <paolo.carlini@oracle.com> 508 509 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): 510 Fix build_conditional_expr call. 511 5122013-05-16 Jason Merrill <jason@redhat.com> 513 514 * Make-lang.in (cc1obj$(exeext)): Use link mutex. 515 5162012-11-20 Diego Novillo <dnovillo@google.com> 517 518 * objc-act.c: Replace all vec<T, A>() initializers with vNULL. 519 5202012-11-16 Diego Novillo <dnovillo@google.com> 521 522 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 523 524 * objc-act.c: Use new vec API in vec.h. 525 * objc-act.h: Likewise. 526 * objc-gnu-runtime-abi-01.c: Likewise. 527 * objc-next-runtime-abi-01.c: Likewise. 528 * objc-next-runtime-abi-02.c: Likewise. 529 * objc-runtime-hooks.h: Likewise. 530 * objc-runtime-shared-support.c: Likewise. 531 * objc-runtime-shared-support.h: Likewise. 532 5332012-10-01 Lawrence Crowl <crowl@google.com> 534 535 * Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o. 536 (objc-act.o): Add dependence on hash-table.h. 537 * objc-act.c (objc_detect_field_duplicates): Change to new type-safe 538 hash table. 539 5402012-06-29 Steven Bosscher <steven@gcc.gnu.org> 541 542 * Make-ang.in: Adjust for move of C front-end files. 543 * config-lang.in: Likewise. 544 * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h 545 and c-lang.h in c/. 546 * objc-runtime-shared-support.c: Likewise. 547 * objc-next-runtime-abi-01.c: Likewise. 548 * objc-next-runtime-abi-02.c: Likewise. 549 * objc-gnu-runtime-abi-01.c: Likewise. 550 * objc-act.c: Likewise. 551 * objc-lang.c: Likewise. 552 5532012-06-19 Steven Bosscher <steven@gcc.gnu.org> 554 555 * objc-next-runtime-abi-01.c: Do not include tm.h and output.h. 556 Include c-family/c-target.h. 557 (handle_next_class_ref): Rewrite to emit top-level asm statements. 558 (handle_next_impent): Likewise. 559 * Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o. 560 5612012-05-31 Steven Bosscher <steven@gcc.gnu.org> 562 563 * objc-act.c: Do not include output.h. 564 5652012-05-17 Paolo Carlini <paolo.carlini@oracle.com> 566 567 PR objc++/53388 568 * objc-act.c (objc_get_class_reference, objc_build_message_expr): 569 Use build_min_nt_loc. 570 5712012-04-20 Jan Hubicka <jh@suse.cz> 572 573 * objc-act.c (mark_referenced_methods); Use 574 cgraph_mark_force_output_node. 575 5762012-03-21 Steven Bosscher <steven@gcc.gnu.org> 577 578 * objc-act (objc_build_ivar_assignment): Do not call assemble_external. 579 (objc_build_global_assignment): Likewise. 580 (objc_build_strong_cast_assignment): Likewise. 581 * objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external. 582 * objc-next-runtime-abi-02.c: Likewise. 583 * objc-gnu-runtime-abi-01.c: Likewise. 584 5852012-03-05 Jason Merrill <jason@redhat.com> 586 587 * objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't 588 call _stat functions without MEM_STAT_INFO. 589 5902011-11-12 Iain Sandoe <iains@gcc.gnu.org> 591 592 * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality 593 for Objective-C m32. 594 5952011-10-29 Iain Sandoe <iains@gcc.gnu.org> 596 597 PR target/47997 598 * objc-act.c (objc_build_string_object): Remove redundant second 599 call to fix_string_type (). Add a checking assert that we are, 600 indeed, passed a STRING_CST. 601 6022011-10-18 Mikael Pettersson <mikpe@it.uu.se> 603 604 PR objc/50743 605 * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to 606 size_t to avoid signed/unsigned 607 comparison. 608 (insert_method_into_method_map): Likewise. 609 6102011-10-14 Nicola Pero <nicola.pero@meta-innovation.com> 611 612 * objc-map.h: New file. 613 * objc-map.c: New file. 614 * config-lang.in (gtfiles): Added objc-map.h. 615 * Make-lang.in (OBJC_OBJS): Added objc-map.o. 616 (objc/objc-map.o): New rule. 617 (objc/objc-act.o): Depend on objc/objc-map.h. 618 * objc-next-runtime-abi-02.c: Added a TODO comment. 619 * objc-act.c: Include objc-map.h. 620 (nst_method_hash_list, cls_method_hash_list): Removed. 621 (instance_method_map, class_method_map): New. 622 (cls_name_hash_list, als_name_hash_list): Removed. 623 (class_name_map, alias_name_map): Removed. 624 (ivar_offset_hash_list): Removed. 625 (hash_class_name_enter, hash_class_name_lookup, hash_enter, 626 hash_lookup, hash_add_attr, add_method_to_hash_list): Removed. 627 (interface_hash_init): New. 628 (objc_init): Call interface_hash_init. 629 (objc_write_global_declarations): Iterate over class_method_map 630 and instance_method_map instead of cls_method_hash_list and 631 nst_method_hash_list. 632 (objc_declare_alias): Use alias_name_map instead of 633 cls_name_hash_list. 634 (objc_is_class_name): Use class_name_map and alias_name_map 635 instead of cls_name_hash_list and als_name_hash_list. 636 (interface_tuple, interface_htab, hash_interface, eq_interface): 637 Removed. 638 (interface_map): New. 639 (add_class): Renamed to add_interface. Use interface_map instead 640 of interface_htab. 641 (lookup_interface): Use interface_map instead of interface_htab. 642 (check_duplicates): Changed first argument to be a tree, 643 potentially a TREE_VEC, instead of a hash. Changed implementation 644 to match. 645 (lookup_method_in_hash_lists): Use class_method_map and 646 instance_method_map instead of cls_method_hash_list and 647 nst_method_hash_list. 648 (objc_build_selector_expr): Likewise. 649 (hash_func): Removed. 650 (hash_init): Create instance_method_map, class_method_map, 651 class_name_map, and alias_name_map. Do not create 652 nst_method_hash_list, cls_method_hash_list, cls_name_hash_list, 653 als_name_hash_list, and ivar_offset_hash_list. 654 (insert_method_into_method_map): New. 655 (objc_add_method): Use insert_method_into_method_map instead of 656 add_method_to_hash_list. 657 (start_class): Call add_interface instead of add_class. 658 * objc-act.h (cls_name_hash_list, als_name_hash_list, 659 nst_method_hash_list, cls_method_hash_list): Removed. 660 6612011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> 662 663 * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old 664 interface with two parallel arrays to hold standard builtin 665 declarations, and replace it with a function based interface that 666 can support creating builtins on the fly in the future. Change 667 all uses, and poison the old names. Make sure 0 is not a 668 legitimate builtin index. 669 * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto. 670 * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto. 671 6722011-07-19 Richard Guenther <rguenther@suse.de> 673 674 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): 675 Use fold_build_pointer_plus. 676 (objc2_build_ehtype_initializer): Likewise. 677 6782011-07-11 Nicola Pero <nicola.pero@meta-innovation.com> 679 680 * objc-encoding.h (obstack.h): Do not include. 681 (util_obstack, util_firstobj): Do not declare. 682 (encode_field_decl): Updated prototype to return a tree and take a 683 single tree argument. Updated comments. 684 * objc-encoding.c (util_obstack, util_firstobj): Made static. 685 (objc_encoding_init): New. 686 (encode_field_decl): Existing function renamed to encode_field and 687 made static. New encode_field_decl wrapper function added. 688 (encode_aggregate_fields): Update call to encode_field_decl to 689 call encode_field. 690 * objc-next-runtime-abi-02.c (obstack.h): Do not include. 691 (util_obstack, util_firstobj): Do not declare. 692 (build_v2_ivar_list_initializer): Updated call to 693 encode_field_decl. 694 * objc-runtime-shared-support.c (obstack.h): Do not include. 695 (util_obstack, util_firstobj): Do not declare. 696 (build_ivar_list_initializer): Updated call to encode_field_decl. 697 * objc-act.c (objc_init): Use objc_encoding_init. 698 * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend 699 on OBSTACK_H. 700 (objc/objc-gnu-runtime-abi-01.o): Likewise. 701 (objc/objc-next-runtime-abi-01.o): Likewise. 702 (objc/objc-next-runtime-abi-02.o): Likewise. 703 (objc/objc-act.o): Likewise. 704 7052011-07-04 Nicola Pero <nicola.pero@meta-innovation.com> 706 707 Refactored encoding code into objc-encoding.h and objc-encoding.c. 708 * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers, 709 encode_type, generating_instance_variables, objc_method_parm_type, 710 objc_encoded_type_size, encode_method_prototype, 711 objc_build_encode_expr, pointee_is_readonly, encode_pointer, 712 encode_array, encode_vector, encode_aggregate_fields, 713 encode_aggregate_within, encode_next_bitfield, 714 encode_gnu_bitfield, encode_field_decl, 715 objc_v2_encode_property_attr): Moved to objc-encoding.h and 716 objc-encoding.c. No change in the actual code. 717 Include objc-encoding.h. 718 (objc_init): Added TODO. 719 (objc_build_property_setter_name): Made non-static so it can be 720 called from objc-encoding.c. 721 * objc-act.h (OBJC_ENCODE_INLINE_DEFS, 722 OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h. 723 * objc-runtime-shared-support.h (objc_v2_encode_property_attr, 724 encode_method_prototype, encode_field_decl, 725 generating_instance_variables): Moved to objc-encoding.h. 726 (objc_build_property_setter_name): Declare. 727 * objc-encoding.c: New. 728 * objc-encoding.h: New. 729 * objc-gnu-runtime-abi-01.c: Include objc-encoding.h. 730 * objc-next-runtime-abi-01.c: Likewise. 731 * objc-next-runtime-abi-02.c: Likewise. 732 * objc-runtime-shared-support.c: Likewise. 733 * Make-lang.in (OBJC_OBJS): Added objc-encoding.o. 734 (objc/objc-lang.o): Reordered dependencies. 735 (objc/objc-runtime-shared-support.o): Reordered dependencies. 736 Added dependencies on objc-encoding.h and on $(GGC_H), 737 $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h. 738 (objc/objc-gnu-runtime-abi-01.o): Likewise. 739 (objc/objc-next-runtime-abi-01.o): Likewise. 740 (objc/objc-next-runtime-abi-02.o): Likewise. 741 (objc/objc-act.o): Reordered dependencies. Added dependency on 742 objc-encoding.h. 743 (objc/objc-encoding.o): New rule. 744 745 * objc-encoding.c (encode_type): Use "%<%T%>" format when printing 746 warning "unknown type %<%T%> found during Objective-C encoding" 747 instead of using gen_type_name. 748 7492011-06-05 Nicola Pero <nicola.pero@meta-innovation.com> 750 751 * objc-act.c (receiver_is_class_object): Expanded comment. 752 (objc_finish_message_expr): Likewise. 753 7542011-06-02 Nicola Pero <nicola.pero@meta-innovation.com> 755 756 PR objc/48539 757 * objc-act.c (objc_finish_message_expr): Warn if messaging a class 758 that was only declared using @class without an @interface. Warn 759 if messaging an instance of a class that was only declared using 760 @class without an @interface, unless the receiver was also typed 761 with a protocol list. 762 7632011-06-01 Nicola Pero <nicola.pero@meta-innovation.com> 764 765 * objc-act.c (objc_decl_method_attributes): Implement nonnull 766 attribute for Objective-C methods. 767 7682011-05-21 Nicola Pero <nicola.pero@meta-innovation.com> 769 770 * config-lang.in (gtfiles): Updated order of files to fix building 771 when the gcc/cp directory is missing, as in the case of some 772 release tarballs. 773 7742011-05-20 Nathan Froyd <froydnj@codesourcery.com> 775 776 * objc-act.c (objc_compare_types): Use function_args_iterator 777 instead of TYPE_ARG_TYPES to compare function argument types. 778 7792011-05-13 Toon Moene <toon@moene.org> 780 781 * objc-next-runtime-abi-02.c (newabi_append_ro): 782 Add const qualifier to constant variable pointer declaration. 783 7842011-05-11 Nathan Froyd <froydnj@codesourcery.com> 785 786 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors. 787 (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise. 788 (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise. 789 7902011-05-05 Nathan Froyd <froydnj@codesourcery.com> 791 792 * objc-runtime-shared-support.h (get_arg_type_list): Delete. 793 (build_function_type_for_method): Declare. 794 * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change 795 type of get_arg_type_base_list field. 796 * objc-act.h (OBJC_VOID_AT_END): Delete. 797 * objc-act.c (get_arg_type_list): Delete. 798 (build_function_type_for_method): New function. 799 (objc_decl_method_attributes): Call build_function_type_for_method. 800 (really_start_method): Likewise. 801 * objc-gnu-runtime-abi-01.c 802 (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and 803 adjust function accordingly. Update header comment. 804 (build_objc_method_call): Call build_function_type_for_method. 805 * objc-next-runtime-abi-01.c 806 (next_runtime_abi_01_get_type_arg_list_base): Change prototype and 807 adjust function accordingly. Update header comment. 808 (build_objc_method_call): Call build_function_type_for_method. 809 * objc-next-runtime-abi-02.c 810 (next_runtime_abi_02_get_type_arg_list_base): Change prototype and 811 adjust function accordingly. Update header comment. 812 (objc_copy_to_temp_side_effect_params): Take fntype instead of a 813 typelist. Use function_args_iterator for traversing fntype. 814 (build_v2_build_objc_method_call): Adjust call to it. 815 Call build_function_type_for_method 816 8172011-05-05 Joseph Myers <joseph@codesourcery.com> 818 819 * objc-act.c (objc_start_method_definition): Add parameter expr. 820 Update call to start_method_def. 821 (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter, 822 objc_synthesize_setter) Update calls to 823 objc_start_method_definition. 824 (objc_get_parm_info): Add parameter expr. Update call to 825 get_parm_info. 826 (start_method_def): Add parameter expr. Update call to 827 objc_get_parm_info. 828 * objc-gnu-runtime-abi-01.c (build_module_initializer_routine): 829 Update call to objc_get_parm_info. 830 * objc-runtime-shared-support.h (objc_get_parm_info): Add extra 831 parameter. 832 8332011-04-26 Jason Merrill <jason@redhat.com> 834 835 * objc-act.c (objc_fold_objc_type_ref): Remove. 836 * objc-act.h: Remove prototype. 837 8382011-04-21 Nathan Froyd <froydnj@codesourcery.com> 839 840 * objc-act.c (synth_module_prologue): Call build_function_type_list 841 instead of build_function_type. 842 * objc-next-runtime-abi-02.c (next_runtime_02_initialize): 843 Likewise. 844 8452011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 846 847 * objc-act.c (ivar_of_class): New. 848 (objc_is_public): Use ivar_of_class. 849 8502011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 851 852 * objc-act.c (objc_get_interface_ivars): Removed. 853 (objc_detect_field_duplicates): New. 854 (hash_instance_variable): New. 855 (eq_instance_variable): New. 856 8572011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 858 859 * objc-act.c (objc_declare_protocols): Renamed to 860 objc_declare_protocol. Changed first argument to be an identifier 861 instead of a tree chain of identifiers, so that callers don't have 862 to create a temporary tree chain. 863 8642011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 865 866 * objc-act.c (objc_declare_class): Changed to take a single 867 identifier as argument instead of a tree list. This means callers 868 don't have to build temporary tree lists to call this function. 869 (synth_module_prologue): Updated calls to objc_declare_class. 870 8712011-04-13 Nicola Pero <nicola.pero@meta-innovation.com> 872 873 * objc-act.c (build_keyword_selector): Use get_identifier_with_length 874 instead of get_identifier. 875 8762011-04-12 Nathan Froyd <froydnj@codesourcery.com> 877 878 * objc-lang.c (objc_init_ts): Move code for this function... 879 * objc-act.c (objc_common_init_ts): ...here. Define. 880 * objc-act.h (objc_common_init_ts): Declare. 881 8822011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 883 884 * objc-act.c (objc_build_message_expr): Accept two arguments 885 instead of one so that callers can simply pass the arguments 886 without having to create a temporary chain to hold them. 887 8882011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 889 890 * objc-act.c (comp_proto_with_proto): Do not create and use 891 inefficient temporary argument lists. Compare the arguments 892 directly. (match_proto_with_proto): Removed; incorporated into 893 comp_proto_with_proto (). 894 8952011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 896 897 * objc-act.c (printable_ivar_name): New. 898 (add_instance_variable): Call printable_ivar_name() when an error 899 message needs to be printed. Do not prepare the instance variable 900 for printing unless there is an actual error. 901 9022011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 903 904 * objc-act.c (objc_is_class_name, objc_is_id): For efficiency, 905 avoid calling identifier_global_value() multiple times. 906 9072011-04-12 Martin Jambor <mjambor@suse.cz> 908 909 * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node 910 instead of cgraph_node. 911 9122011-04-06 Joseph Myers <joseph@codesourcery.com> 913 914 * objc-act.c: Include c-target.h instead of target.h. 915 * Make-lang.in (objc/objc-act.o): Update dependencies. 916 9172011-03-06 Joseph Myers <joseph@codesourcery.com> 918 919 * lang-specs.h: Match -save-temps* instead of -save-temps. 920 9212011-02-26 Nicola Pero <nicola.pero@meta-innovation.com> 922 923 * objc-act.c (objc_v2_encode_prop_attr): Rewritten. 924 9252011-02-23 Nicola Pero <nicola.pero@meta-innovation.com> 926 927 * objc-act.c (build_private_template): Do not copy the 928 CLASS_HAS_EXCEPTION_ATTR from the class to the struct. 929 * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using 930 TYPE_LANG_SLOT_0. 931 9322011-02-22 Nicola Pero <nicola.pero@meta-innovation.com> 933 934 PR objc/47832 935 * objc-act.c (flexible_array_type_p): New. 936 (add_instance_variable): Produce an error if an instance variable 937 uses flexible array members. 938 (encode_array): Do not emit an error if encoding a flexible array 939 type while generating instance variables. 940 9412011-02-21 Mike Stump <mikestump@comcast.net> 942 943 * Make-lang.in (check_objc_parallelize): Refine for 4 processor 944 machines. 945 9462011-02-20 Nicola Pero <nicola.pero@meta-innovation.com> 947 948 * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed. Removed 949 usage of padding fields. Do not include tm.h. 950 * objc-act.c (objc_write_global_declaration): Set input_location 951 to BUILTINS_LOCATION while generating runtime metadata. 952 9532011-01-20 Nicola Pero <nicola.pero@meta-innovation.com> 954 955 PR objc/47784 956 * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side 957 effects, do not use a temporary variable. 958 9592011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 960 961 * objc-next-runtime-abi-01.c: Updated comments. 962 * objc-next-runtime-abi-02.c: Same. 963 9642011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 965 966 * objc-act.c (objc_init, generate_struct_by_value_array): Updated 967 comments. 968 9692011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 970 971 * objc-act.c: Updated comments. 972 * objc-next-runtime-abi-02.c: Same. 973 * objc-runtime-shared-support.c: Same. 974 * objc-runtime-hooks.h: Same. 975 * objc-act.h: Same. 976 * objc-gnu-runtime-abi-01.c: Same. 977 9782011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 979 980 * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do 981 not generate metadata if there is nothing to put into it. 982 9832011-02-17 Iain Sandoe <iains@gcc.gnu.org> 984 985 * config-lang.in (gtfiles): Updated. 986 * Make-lang.in (START_HDRS): New. 987 (OBJC_OBJS): Added new object files. 988 (objc/objc-act.o): Updated prerequisites. 989 (objc/objc-lang.o): Updated prerequisites. 990 (objc/objc-runtime-shared-support.o): New. 991 (objc/objc-gnu-runtime-abi-01.o): New. 992 (objc/objc-next-runtime-abi-01.o): New. 993 (objc/objc-next-runtime-abi-02.o): New. 994 * objc-runtime-hooks.h: New. 995 * objc-runtime-shared-support.h: New. 996 * objc-runtime-shared-support.c: New. 997 * objc-gnu-runtime-abi-01.c: New. 998 * objc-next-metadata-tags.h: New. 999 * objc-next-runtime-abi-01.c: New. 1000 * objc-next-runtime-abi-02.c: New. 1001 * objc-lang.c: Include c-lang.h. 1002 (LANG_HOOKS_EH_PERSONALITY): Removed. 1003 * objc-act.h: Moved many declarations and code from objc-act.c 1004 into objc-act.h to make them available outside objc-act.c. 1005 (objc_eh_runtime_type): Removed. 1006 (objc_eh_personality): Removed. 1007 (CLASS_HAS_EXCEPTION_ATTR): New. 1008 (OCTI_SUPER_SUPERFIELD_ID): New. 1009 (OCTI_V1_PROP_LIST_TEMPL): New. 1010 (OCTI_V1_PROP_NAME_ATTR_CHAIN): New. 1011 (super_superclassfield_id): New. 1012 (objc_prop_list_ptr): New. 1013 (prop_names_attr_chain): New. 1014 * objc-act.c: Include new runtime headers. Moved many #defines 1015 and declarations into objc-act.h and 1016 objc-runtime-shared-support.h. Made some corresponding functions 1017 non-static, and moved some others into 1018 objc-runtime-shared-support.c. Moved metadata generation code 1019 into the new runtime hook files. 1020 (ivar_offset_hash_list): New. 1021 (objc_init): Call generate_struct_value_by_array() before doing 1022 any runtime initialization. Create the appropriate runtime hook 1023 structures. 1024 (init_objc): Removed. Code moved directly into objc_init. 1025 (finish_objc): Removed. Code moved directly into 1026 objc_write_global_declarations. 1027 (objc_write_global_declarations): Do the warn_selector checks 1028 before emitting metadata. Use a runtime hook to emit the 1029 metadata. Do not emit the metadata or do -gen-decls processing if 1030 -fsyntax-only or we are producing a PCH. 1031 (build_objc_exception_stuff): Renamed to 1032 build_common_objc_exception_stuff. Remove TREE_NOTHROW flag from 1033 objc_exception_throw_decl. 1034 (synth_module_prologue): Call runtime initialize hook instead of 1035 building runtime declarations here. Use the 1036 default_constant_string_class_name runtime hook to set the 1037 constant string class name. 1038 (objc_build_string_object): Call the setup_const_string_class_decl 1039 runtime hook instead of setup_string_decl. Call the 1040 build_const_string_constructor runtime hook instead of building 1041 the string object here. 1042 (get_objc_string_decl): Added prop_names_attr case. Removed 1043 gcc_unreachable() at the end. 1044 (objc_begin_catch_clause): Distinguish between @catch (...) and 1045 @catch (id x). Call the begin_catch runtime hook instead of 1046 building the CATCH_EXPR here. 1047 (objc_finish_catch_clause): Call the finish_catch runtime hook 1048 instead of adding the catch here. 1049 (objc_finish_try_stmt): Call the finish_try_stmt runtime hook 1050 instead of doing it here. 1051 (objc_build_throw_stmt): Bail out early for error_mark_node. Call 1052 the build_exc_ptr runtime hook instead of objc_build_exc_ptr. 1053 Call the build_throw_stmt runtime hook instead of building the 1054 throw call here. 1055 (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime 1056 as well. 1057 (get_arg_type_list): Call the get_arg_type_list_base runtime hook 1058 instead of building the list of arguments here. 1059 (receiver_is_class_object): Call the receiver_is_class_object 1060 runtime hook instead of doing the check here. Call the 1061 tag_getclass runtime hook instead of using TAG_GETCLASS. 1062 (objc_finish_message_expr): Call the build_objc_method_call 1063 runtime hook. 1064 (objc_build_protocol_expr): Call the get_protocol_reference 1065 runtime hook. 1066 (objc_build_selector_expr): Call the build_selector_reference 1067 runtime hook. 1068 (build_ivar_reference): Call the build_ivar_reference runtime 1069 hook. 1070 (hash_init): Set up ivar_offset_hash_list. 1071 (start_class): Recognize the objc_exception attribute and store 1072 it. 1073 (continue_class): Use the class_decl and metaclass_decl runtime 1074 hooks. 1075 (build_objc_property_accessor_helpers): Renamed to 1076 build_common_objc_property_accessor_helpers. Do not build 1077 objc_copyStruct_decl, objc_getPropertyStruct_decl and 1078 objc_setPropertyStruct_decl. 1079 (objc_synthesize_getter): Check what struct setter/getter helper 1080 is available instead of checking the type of runtime. 1081 (get_super_receiver): Use the super_superclassfield_ident runtime 1082 hook. Added assert. Use the get_class_super_ref and 1083 get_category_super_ref runtime hooks. 1084 (objc_v2_encode_prop_attr): New. 1085 10862011-01-17 Nicola Pero <nicola.pero@meta-innovation.com> 1087 1088 PR objc/47314 1089 * objc-act.c (finish_objc): When calling check_duplicates to check 1090 duplicated instance methods, set 'is_class' to 0, not 1. 1091 10922011-01-14 Ben Elliston <bje@au.ibm.com> 1093 1094 PR 19162 1095 * objc-act.c (generate_struct_by_value_array): Do not output a 1096 definition for struct_forward_array. 1097 10982011-01-08 Iain Sandoe <iains@gcc.gnu.org> 1099 1100 * objc-act.c (objc_finish_foreach_loop): Mark collection expression 1101 as read. 1102 11032011-01-02 H.J. Lu <hongjiu.lu@intel.com> 1104 1105 * objc-act.c (check_that_protocol_is_defined): Fix a typo. 1106 11072011-01-02 Nicola Pero <nicola.pero@meta-innovation.com> 1108 1109 * objc-act.c (check_that_protocol_is_defined): New. 1110 (lookup_protocol): Call check_that_protocol_is_defined. 1111 11122010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1113 1114 * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol 1115 lists. Check them two-ways to fix comparisons when one protocol 1116 implements the other one, or when one list contains duplicated 1117 protocols. 1118 11192010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1120 1121 * objc-act.c (objc_add_method): When emitting an error because a 1122 method with the same name but conflicting types is found in the 1123 same class or category interface, print a note with the location 1124 of the original method. Also, improved the error message to 1125 clearly state that the conflict is due to conflicting types, and 1126 produce it for protocols as well. Emit an error if two identical 1127 methods are declared in a protocol, but one is @required and the 1128 other one is @optional. 1129 11302010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1131 1132 * objc-act.c (start_class): Warn when a class attribute is 1133 ignored. 1134 (objc_declare_protocols): Warn when a protocol attribute in a 1135 protocol forward-declaration is ignored. 1136 (start_protocol): Warn when a protocol attribute is ignored. 1137 11382010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1139 1140 * objc-act.c (objc_set_method_opt): Tidy up error messages. In 1141 particular, explicitly mention whether the error is due to the 1142 @optional or @required keyword instead of mentioning 1143 "@optional/@required". 1144 11452010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 1146 1147 PR objc/47118 1148 * objc-act.c (objc_build_synchronized): Check the argument of 1149 @synchronized and emit an appropriate error if it is not a valid 1150 Objective-C object. Deal gracefully with that case. Updated 1151 comments and variable names. 1152 11532010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 1154 1155 PR objc/47075 1156 * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New. 1157 * objc-tree.def (PROPERTY_REF): Increased the number of operands 1158 from 3 to 4. 1159 * objc-act.c (objc_finish_message_expr): Added optional argument 1160 allowing to return the deprecated method prototype for deprecated 1161 methods, instead of immediately emitting the deprecation warning. 1162 (objc_maybe_build_component_ref): Do not warn for a deprecated 1163 property. When building the getter call, get the deprecated 1164 method prototype from objc_finish_message_expr() and put it into 1165 the PROPERTY_REF. 1166 (objc_build_class_component_ref): Same change. 1167 (finish_class): Mark the getter and setter as deprecated if they 1168 are generated from a deprecated property. 1169 (objc_gimplify_property_ref): If the getter is deprecated, emit a 1170 deprecation warning. 1171 (objc_build_setter_call, objc_build_message_expr, 1172 objc_finish_foreach_loop): Updated call to 1173 objc_finish_message_expr. 1174 11752010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1176 1177 PR objc/47076 1178 * objc-act.c (lookup_protocol): Added 'definition_required' 1179 argument. If 'definition_required', and the protocol is not 1180 defined, emit a warning. 1181 (objc_declare_protocols): Updated call to lookup_protocol. 1182 (start_protocol): Same change. 1183 (check_protocol_recursively): Same change. 1184 (objc_build_protocol_expr): Same change. 1185 (lookup_and_install_protocols): Added definition_required argument. 1186 Pass it to lookup_protocol. 1187 (objc_get_protocol_qualified_type): Updated call to 1188 lookup_and_install_protocols. 1189 (start_class): Updated calls to lookup_and_install_protocols; pass 1190 true to 'definition_required' to get the warnings. 1191 (start_protocol): Updated calls to lookup_and_install_protocols. 1192 11932010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1194 1195 * objc-act.c (objc_start_category_interface): Produce an error if 1196 a class extension is found after the class @implementation. 1197 11982010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1199 1200 PR objc/47073 1201 * objc-act.c (encode_method_prototype): Fixed both location and 1202 format string of error "type %qT does not have a known size". 1203 12042010-12-26 Nicola Pero <nicola.pero@meta-innovation.com> 1205 1206 * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c. 1207 12082010-12-22 Nathan Froyd <froydnj@codesourcery.com> 1209 1210 * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p. 1211 12122010-12-18 Nicola Pero <nicola.pero@meta-innovation.com> 1213 1214 * objc-act.c (objc_init): Call using_eh_for_cleanups. 1215 (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions. Do 1216 not call using_eh_for_cleanups. 1217 (objc_begin_try_stmt): Do not call objc_init_exceptions. 1218 (objc_build_throw_stmt): Updated call to 1219 objc_maybe_warn_exceptions. 1220 12212010-12-18 Iain Sandoe <iains@gcc.gnu.org> 1222 1223 * objc-act.c (objc_eh_personality): Select personality name on 1224 runtime. 1225 (objc_init_exceptions): New. 1226 (objc_begin_try_stmt): Use objc_init_exceptions. 1227 (objc_build_throw_stmt): Likewise. 1228 12292010-12-10 Nicola Pero <nicola.pero@meta-innovation.com> 1230 1231 * objc-act.c (objc_in_class_extension): New. 1232 (objc_start_category_interface): If -fobjc-std=objc1 1233 was specified, produce an error if a class extension is used. 1234 (objc_finish_interface): Reset objc_in_class_extension to false. 1235 (objc_add_property_declaration): Allow a class extension to extend 1236 readonly properties in the main @interface to be readwrite. 1237 (start_class): Added code to deal with class extensions. In that 1238 case, return the existing interface after adding any additional 1239 protocols to it and setting objc_in_class_extension to true. 1240 (continue_class): If in a class extension, do not generate the 1241 instance variable template. 1242 12432010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 1244 1245 * objc-act.c (objc_build_throw_stmt): Check that the argument of 1246 @throw is an object and emit an error if not. 1247 12482010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 1249 1250 * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of 1251 error() when printing an error about the iterating variable or 1252 collection not being an object. 1253 12542010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 1255 1256 * objc-act.c (objc_finish_foreach_loop): Mark the 1257 object_expression as used. 1258 12592010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 1260 1261 * objc-act.c: Include c-family/c-objc.h. 1262 * objc-lang.c: Same change. 1263 * Make-lang.in (objc/objc-act.o): Depend on 1264 c-family/c-objc.h. 1265 (objc/objc-lang.o): Same change. 1266 * config-lang.in (gtfiles): Added c-family/c-objc.h. 1267 12682010-12-02 Joseph Myers <joseph@codesourcery.com> 1269 1270 * lang-specs.h: Don't handle -ftraditional. 1271 12722010-12-02 Nicola Pero <nicola.pero@meta-innovation.com> 1273 1274 * objc-act.c (objc_build_throw_stmt): Return error_mark_node and 1275 not NULL_TREE when a @throw is used outside of a @catch block. 1276 12772010-11-30 Nicola Pero <nicola.pero@meta-innovation.com> 1278 1279 * objc-act.c (objc_build_volatilized_type): Removed. 1280 (objc_non_volatilized_type): Removed. 1281 (objc_type_quals_match): Removed. 1282 (local_variables_to_volatilize): New. 1283 (objc_volatilize_decl): Add the decl to volatilize to 1284 local_variables_to_volatilize, but don't volatilize it yet. 1285 (objc_finish_function): New. 1286 * objc-act.h (local_variables_to_volatilize): New. 1287 12882010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1289 Mike Stump <mikestump@comcast.net> 1290 1291 Allow 'make check-objc -j2' 1292 * Make-lang.in (lang_checks_parallelized): New. 1293 (check_objc_parallelize): New. 1294 12952010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1296 1297 * objc-act.c (start_class): When a class is reimplemented, 1298 generate an error and avoid adding the class to the list of 1299 implemented classes again, but do not return error_mark_node. 1300 13012010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1302 1303 * objc-act.c (objc_maybe_build_component_ref): Removed TODO. 1304 13052010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1306 1307 * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node 1308 is passed as argument. 1309 (objc_begin_catch_clause): Added code to deal with an 1310 error_mark_node or NULL_TREE argument. Improved checks for 1311 invalid arguments. Added code to traverse typedefs. 1312 13132010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1314 1315 * objc-act.c (objc_demangle): Return immediately if the string is 1316 too short. Detect names that do not need demangling, and return 1317 them unchanged. 1318 13192010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 1320 1321 Implemented optional properties. 1322 * objc-act.h (PROPERTY_OPTIONAL): New. 1323 * objc-act.c (objc_add_property_declaration): Set 1324 PROPERTY_OPTIONAL if appropriate. 1325 (finish_class): When generating definitions of setter and getter 1326 methods associated with a property for a protocol, mark them as 1327 optional if the property is optional. 1328 (maybe_make_artificial_property_decl): Added 'getter_name' 1329 argument. Set PROPERTY_OPTIONAL. 1330 (objc_maybe_build_component_ref): Updated calls to 1331 maybe_make_artificial_property_decl. Added code for optional, 1332 readonly properties. 1333 (objc_build_class_component_ref): Updated call to 1334 maybe_make_artificial_property_decl. 1335 13362010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 1337 1338 * objc-act.c (objc_build_struct): Fixed loops that save and 1339 restore TYPE_OBJC_INFO to iterate over all variants of the type; a 1340 special case for the current type is then no longer required. 1341 Duplicate TYPE_LANG_SPECIFIC for each type before restoring 1342 TYPE_OBJC_INFO. 1343 (objc_get_protocol_qualified_type): Updated comments. 1344 13452010-11-25 Nicola Pero <nicola.pero@meta-innovation.com> 1346 1347 * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE 1348 after finish_struct, not before, otherwise it may be wiped out by 1349 it. This fixes spurious warnings when a class has more than 15 1350 instance variables. 1351 13522010-11-23 Nicola Pero <nicola.pero@meta-innovation.com> 1353 1354 PR objc/24358 1355 * lang-specs.h: Added objective-c-cpp-output. Mapped .mi to 1356 objective-c-cpp-output instead of objc-cpp-output. Print a 1357 deprecation note every time objc-cpp-output is requested. 1358 13592010-11-22 Joseph Myers <joseph@codesourcery.com> 1360 1361 * objc-act.c (write_symbols): Don't declare here. 1362 13632010-11-22 Nicola Pero <nicola.pero@meta-innovation.com> 1364 1365 PR objc/41108 1366 * objc-act.c (objc_generate_write_barrier): Added assert to make sure 1367 this function is only called with the next runtime. 1368 13692010-11-20 Jakub Jelinek <jakub@redhat.com> 1370 1371 PR c/46547 1372 * objc-act.c (in_late_binary_op): Remove. 1373 13742010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 1375 1376 * objc-act.c (objc_start_class_interface): Do not warn that class 1377 attributes are unimplemented. Pass the attributes to start_class. 1378 (objc_start_category_interface): Updated call to start_class. 1379 (objc_start_class_implementation): Same change. 1380 (objc_start_category_implementation): Same change. 1381 (objc_build_class_component_ref): Warn if the class is deprecated. 1382 (build_private_template): Mark the template as deprecated if the 1383 class is deprecated. 1384 (start_class): Added 'attributes' argument. Emit a warning if 1385 using a deprecated class as superclass of a class, or original 1386 class of a category. Recognize the 'deprecated' attribute when 1387 starting and interface, and mark the interface with 1388 TREE_DEPRECATED if present. Store attributes in the interface. 1389 13902010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 1391 1392 * objc-act.c (lookup_protocol): Added 'warn_if_deprecated' 1393 argument. If it is 'true' and the protocol is deprecated, emit a 1394 deprecation warning. 1395 (objc_start_protocol): Do not warn that protocol attributes are 1396 unimplemented. Pass the attributes to start_protocol. 1397 (start_protocol): Added attributes argument. Recognize the 1398 'deprecated' attribute and mark the protocols with TREE_DEPRECATED 1399 if present. Store attributes in the protocol. 1400 (objc_declare_protocols): Added 'attributes' argument. Recognize 1401 the 'deprecated' attribute and mark the protocols with 1402 TREE_DEPRECATED if present. Store attributes in the protocol. 1403 Updated call to lookup_protocol. 1404 (objc_build_protocol_expr): Updated call to lookup_protocol. 1405 (check_protocol_recursively): Same change. 1406 (lookup_and_install_protocols): Same change. 1407 * objc-act.h: Updated comments. 1408 14092010-11-17 Nicola Pero <nicola.pero@meta-innovation.com> 1410 1411 * objc-act.c (lookup_method_in_protocol_list): Search methods in 1412 PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if 1413 they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS. 1414 14152010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1416 1417 * objc-act.c (objc_build_setter_call): New. 1418 (objc_maybe_build_modify_expr): Rewritten to build a compound 1419 statement. 1420 (objc_build_incr_expr_for_property_ref): Updated calls to 1421 objc_maybe_build_modify_expr to call objc_build_setter_call 1422 instead. Use build_modify_expr () instead of build2 (MODIFY_EXPR, 1423 ...). Use convert () instead of build1 (NOP_EXPR, ...). Use 1424 TREE_NO_WARNING on the final compound statement to silence C++ 1425 warnings. 1426 14272010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1428 1429 * objc-act.c (objc_build_incr_expr_for_property_ref): New. 1430 (objc_create_temporary_var): Moved it towards the beginning of the 1431 file so that objc_build_incr_expr_for_property_ref can use it. 1432 14332010-11-14 Nicola Pero <nicola.pero@meta-innovation.com> 1434 1435 * objc-act.c (objc_add_property_declaration): Check that the decl 1436 we received from the parser is a FIELD_DECL; reject array and 1437 bitfield properties. Convert the warning when a property is 1438 readonly and a setter is specified into an error. Convert errors 1439 when a property declaration does not match a property declaration 1440 in a superclass into warnings. 1441 (objc_add_synthesize_declaration_for_property): Use 1442 DECL_BIT_FIELD_TYPE to determine the type of an instance variable 1443 if it is a bitfield. Throw an error if we are asked to synthesize 1444 setters/getters for a bitfield instance variable but the property 1445 is not appropriate - it must be assign and nonatomic. If the 1446 property is readonly, allow the instance variable type to be a 1447 specialization of the property type. 1448 (objc_type_valid_for_messaging): Fixed returning 'false' for a 1449 Class qualified with a protocol when the 'accept_classes' argument 1450 is 'false'. 1451 14522010-11-13 Nicola Pero <nicola.pero@meta-innovation.com> 1453 1454 * objc-act.c (objc_get_protocol_qualified_type): detect cases 1455 where we are asked to attach a protocol to something which is not 1456 an Objective-C object type, and produce an error. 1457 14582010-11-11 Nicola Pero <nicola.pero@meta-innovation.com> 1459 1460 * objc-act.c (objc_add_property_declaration): Check that the type 1461 of a property and of an inherited property match. 1462 (objc_maybe_build_component_ref): Tidied up indentation and 1463 comments. 1464 (objc_common_type): Added new type of check (-5). 1465 (objc_add_synthesize_declaration_for_property): Check that the 1466 property to synthesize and the instance variable to use have the 1467 same type. 1468 14692010-11-10 Joseph Myers <joseph@codesourcery.com> 1470 1471 * objc-act.c (objc_init): Use %' in diagnostic. 1472 (objc_set_method_opt): Remove trailing '.' from diagnostic. 1473 14742010-11-10 Joseph Myers <joseph@codesourcery.com> 1475 1476 * objc-act.c (dump_base_name): Don't declare here. 1477 14782010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1479 1480 * objc-act.c (objc_add_dynamic_declaration_for_property): Do not 1481 search for the @property declation only in the current context, 1482 but also in inherited properties. Do not mark the original 1483 PROPERTY_DECL in the @interface or @protocol with 1484 PROPERTY_DYNAMIC. 1485 (check_methods): To check if a method is associated with a 1486 @dynamic property, search for the property in IMPL_PROPERTY_DECL. 1487 (check_accessible_methods): Same change. 1488 * objc-act.h: Updated comment. 1489 14902010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1491 1492 * objc-act.c (objc_add_synthesize_declaration_for_property): 1493 Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when 1494 checking for an existing @synthesize or @dynamic declaration. 1495 Search for an inherited @property declaration if none is found in 1496 the local interface. If the required instance variable does not 1497 exist, return instead of trying to continue to prevent a compiler 1498 crash later. Check that the instance variable is not already 1499 being used by another @synthesize. 1500 (objc_add_dynamic_declaration_for_property): Iterate over 1501 IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an 1502 existing @synthesize or @dynamic declaration. 1503 (objc_synthesize_getter): Search for the getter declaration in 1504 protocols and superclasses as well. 1505 (objc_synthesize_setter): Search for the setter declaration in 1506 protocols and superclasses as well. 1507 15082010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1509 1510 * objc-act.c (lookup_property): When checking categories, also 1511 check the protocols attached to each. 1512 (objc_add_property_declaration): Determine the 1513 PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up 1514 error message. Search for an existing property declaration with 1515 the same name which would be inherited from the class hiearchy, 1516 and produce an error if it has incompatible attributes. 1517 (check_methods): Changed second parameter. If the method is a 1518 getter or setter for a property, do not warn if it is inherited as 1519 opposed to implemented directly in the class. 1520 (check_protocol): Updated calls to check_methods. 1521 (finish_class): Do not determine the PROPERTY_SETTER_NAME and 1522 PROPERTY_GETTER_NAME here; this is now done earlier, in 1523 objc_add_property_declaration. 1524 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments. 1525 15262010-11-06 Nicola Pero <nicola.pero@meta-innovation.com> 1527 1528 Fixed using the Objective-C 2.0 dot-syntax with self and super. 1529 * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New. 1530 (maybe_make_artificial_property_decl): Added 'implementation' 1531 argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when 1532 looking up getters or setters for a class. If an implementation 1533 is specified, search it as well for a getter or setter. 1534 (objc_maybe_build_component_ref): Updated calls to 1535 maybe_make_artificial_property_decl; added code to deal with 1536 'self' and 'super' and with methods declared locally in the 1537 implementation. Store the getter call expression in the 1538 PROPERTY_REF instead of throwing it away. 1539 (objc_build_class_component_ref): Updated calls to 1540 maybe_make_artificial_property_decl, and store the getter call 1541 expression in PROPERTY_REF instead of throwing it away. 1542 (lookup_method_static): Implemented 1543 OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option. 1544 (objc_gimplify_property_ref): Do not build the getter method call 1545 here; instead use the one stored in the PROPERTY_REF. If it's not 1546 there, produce helpful error messages. 1547 * objc-tree.def (PROPERTY_REF): Increased the number of operands 1548 from 2 to 3. Updated comments. 1549 * objc-act.h (PROPERTY_REF_GETTER_CALL): New. 1550 15512010-11-06 Iain Sandoe <iains@gcc.gnu.org> 1552 1553 PR target/44981 1554 * objc-act.c (objc_build_string_object): Amend for renamed hook. 1555 (objc_string_ref_type_p): New. 1556 (objc_check_format_arg): New. 1557 15582010-11-04 Nicola Pero <nicola.pero@meta-innovation.com> 1559 1560 Fixed using the Objective-C 2.0 dot-syntax with class names. 1561 * objc-act.c (objc_build_class_component_ref): New. 1562 15632010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1564 1565 * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a 1566 category. 1567 (objc_type_valid_for_messaging): Added 'accept_classes' argument; 1568 if set to 'true', return 'true' for Class objects. Do not remove 1569 more than on pointer indirection. 1570 (objc_add_property_declaration): Only warn about 'assign' 1571 semantics for Objective-C objects if warn_property_assign_default; 1572 and do not warn if the property is readonly or if the type is a Class. 1573 (objc_finish_foreach_loop): Updated calls to 1574 objc_type_valid_for_messaging. 1575 15762010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1577 1578 Implemented -fobjc-std=objc1 flag. 1579 * objc-act.c (objc_start_class_interface): If attributes are 1580 specified when flag_objc1_only is set, print an error. 1581 (objc_start_category_interface): Same change. 1582 (objc_start_protocol): Same change. 1583 (objc_add_method_declaration): Same change. 1584 (objc_start_method_definition): Same change. 1585 (objc_build_keyword_decl): Same change. 1586 (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when 1587 flag_objc1_set is set, print an error. 1588 (objc_set_method_opt): If flag_objc1_only is set, print an error. 1589 (objc_add_property_declaration): Same change. 1590 (objc_add_synthesize_declaration): Same change. 1591 (objc_add_dynamic_declaration): Same change. 1592 (objc_finish_foreach_loop): Same change. 1593 (objc_maybe_build_component_ref): If flag_objc1_only is set, 1594 return immediately. 1595 15962010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1597 1598 * objc-act.c (maybe_make_artificial_property_decl): New. 1599 (objc_maybe_build_component_ref): Call 1600 maybe_make_artificial_property_decl if a property can not be 1601 found. Do not call objc_finish_message_expr if 1602 PROPERTY_HAS_NO_GETTER. 1603 * objc-act.h Updated comments. 1604 (PROPERTY_HAS_NO_GETTER): New. 1605 (PROPERTY_HAS_NO_SETTER): New. 1606 * objc-tree.def: Updated comment. 1607 16082010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1609 1610 Implemented format and noreturn attributes for Objective-C methods. 1611 * objc-act.c (objc_start_method_definition): If method attributes 1612 are specified emit a warning and ignore them. 1613 (build_objc_method_call): Moved deprecation warnings from here ... 1614 (objc_finish_message_expr): to here. Do not emit deprecation 1615 warnings if the receiver is of type 'id'. 1616 (really_start_method): Install 'deprecation' and 'noreturn' 1617 attributes. 1618 (objc_decl_method_attributes): Carefully filter out the list of 1619 attributes, allowing only "noreturn", "format", "sentinel" and 1620 "deprecated". In the case of "format", adjust the arguments. 1621 Always process the attributes in the same way no matter if 1622 "sentinel" is in the list or not. 1623 16242010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1625 1626 * objc-act.c (objc_maybe_build_component_ref): Warn about using 1627 deprecated properties. 1628 (objc_maybe_printable_name): Support PROPERTY_DECL. 1629 16302010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1631 1632 Implemented Objective-C 2.0 property accessors. 1633 * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL, 1634 OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL, 1635 OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL. 1636 (objc_getProperty_decl): New. 1637 (objc_setProperty_decl): New. 1638 (objc_copyStruct_decl): New. 1639 (objc_getPropertyStruct_decl): New. 1640 (objc_setPropertyStruct_decl): New. 1641 * objc-act.c (build_objc_property_accessor_helpers): New. 1642 (synth_module_prologue): Call 1643 build_objc_property_accessor_helpers. 1644 (lookup_ivar): New. 1645 (objc_synthesize_getter): Implemented synthesizing getters that 1646 work with properties that are not nonatomic, assign properties. 1647 (objc_synthesize_setter): Implemented synthesizing setters that 1648 work with properties that are not nonatomic, assign properties. 1649 16502010-10-30 Nicola Pero <nicola.pero@meta-innovation.com> 1651 1652 Implemented Objective-C 2.0 @property, @synthesize and @dynamic. 1653 * objc-tree.def (PROPERTY_REF): New. 1654 * objc-act.h: Added comments for all the PROPERTY_ macros. 1655 (PROPERTY_NAME): Use DECL_NAME. 1656 (PROPERTY_COPIES): Removed. 1657 (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it. 1658 (PROPERTY_NONATOMIC): New. 1659 (objc_property_assign_semantics): Make it a typedef. 1660 (PROPERTY_ASSIGN_SEMANTICS): New. 1661 (PROPERTY_DYNAMIC): New. 1662 (PROPERTY_REF_OBJECT): New. 1663 (PROPERTY_REF_PROPERTY_DECL): New. 1664 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed. 1665 (in_objc_property_setter_name_context): Removed. 1666 (objc_add_property_declaration): Removed copies and ivar arguments 1667 and code supporting them. Fixed recovering when readonly and 1668 setter attributes are specified. Removed support for @property in 1669 @implementation context. Updated error message. Double-check 1670 that a property does not have a DECL_INITIAL. Validate the 1671 property assign semantics and emit appropriate errors and 1672 warnings. Check for duplicate property declarations. Set 1673 DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC, 1674 PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new 1675 PROPERTY_DECL. Do not set PROPERTY_COPIES. Set 1676 PROPERTY_IVAR_NAME to NULL_TREE. 1677 (objc_build_getter_call): Renamed to 1678 objc_maybe_build_component_ref. If the property is not found in 1679 the interface, search in the protocol list. Do not generate the 1680 getter call; instead, build and return a PROPERTY_REF. 1681 (objc_is_property_ref): New. 1682 (objc_setter_func_call): Removed. 1683 (get_selector_from_reference): Removed. 1684 (is_property): Removed. 1685 (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr. 1686 Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from 1687 the PROPERTY_REF. Generate an error if the property is read-only. 1688 (build_property_reference): Removed. 1689 (objc_finish_message_expr): Removed check to produce "readonly 1690 property can not be set" error when 1691 in_objc_property_setter_name_context. We now generate the error 1692 earlier, in objc_maybe_build_modify_expr, which will only generate 1693 the setter call if the property is readwrite. 1694 (check_methods): Recognize dynamic properties. 1695 (check_methods_accessible): Same change. 1696 (objc_build_property_ivar_name): Removed. 1697 (objc_build_property_setter_name): Dropped bool argument. Always 1698 add the ':' at the end. 1699 (objc_gen_one_property_datum): Removed. 1700 (objc_process_getter_setter): Removed. 1701 (objc_synthesize_getter): Mark 'klass' argument as unused. Use 1702 PROPERTY_GETTER_NAME instead of PROPERTY_NAME. Set the 1703 DECL_SOURCE_LOCATION of the new method to be the same as the one 1704 for the @synthesize. Always use PROPERTY_IVAR_NAME as it is 1705 instead of trying to guess what it should be. Removed use of 1706 CLASS_IVARS. Use the location of @synthesize for c_finish_return 1707 and c_end_compound_statement. 1708 (objc_synthesize_setter): Mark 'klass' argument as unused. Use 1709 PROPERTY_SETTER_NAME instead of trying to guess what it should be. 1710 Set the DECL_SOURCE_LOCATION of the new method to be the same as 1711 the one for the @synthesize. Always use PROPERTY_IVAR_NAME as it 1712 is instead of trying to guess what it should be. Removed use of 1713 CLASS_IVARS. Use the location of @synthesize for c_finish_return 1714 and c_end_compound_statement. Emit an error and keep going, 1715 instead of aborting, if the setter prototype does not have the 1716 expected argument. 1717 (objc_add_synthesize_declaration_for_property): New. 1718 (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from 1719 all arguments. Improved error message. Filled in the rest of the 1720 function, which used to be a placeholder, with an actual 1721 implementation. 1722 (objc_add_dynamic_declaration_for_property): New. 1723 (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all 1724 arguments. Improved error message. Filled in the rest of the 1725 function, which used to be a placeholder, with an actual 1726 implementation. 1727 (objc_gen_property_data): Rewritten. 1728 (finish_class): Added explicit switch cases for 1729 CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and 1730 PROTOCOL_INTERFACE_TYPE. Added a default switch case which is 1731 gcc_unreachable. Rewritten the processing of properties, in 1732 particular to not synthesize prototypes for getters and setters if 1733 they already exist and to install the getter and setter names into 1734 PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME. Do not generate 1735 warnings about setter, getter and ivar property attributes. 1736 (objc_lookup_ivar): Removed support for properties. 1737 (objc_gimplify_property_ref): New. 1738 (objc_gimplify_expr): Use a switch. In case of a PROPERTY_REF, call 1739 objc_gimplify_property_ref. 1740 17412010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 1742 1743 * objc-act.c (objc_add_property_declaration): Added arguments to 1744 pass the various property attributes that were parsed with the 1745 property declaration. Process arguments to determine the final 1746 property attributes and produce error messages as appropriate. 1747 Added temporary code to keep the compiler silent about variables 1748 set but not used - for new attributes that are only checked but 1749 have no effect yet. 1750 (property_readonly): Removed. 1751 (property_setter): Removed. 1752 (property_getter): Removed. 1753 (property_ivar): Removed. 1754 (property_copies): Removed. 1755 (objc_set_property_attr): Removed. 1756 * objc-act.h (enum property_assign_semantics): New. 1757 17582010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 1759 1760 * objc-act.c (objc_add_property_variable): Renamed to 1761 objc_add_property_declaration. Added location argument. Updated 1762 warnings and errors to use it. Use error, not fatal_error, if a 1763 property declaration is found outside an interface or 1764 implementation context. 1765 17662010-10-24 Nicola Pero <nicola.pero@meta-innovation.com> 1767 1768 * objc-act.c (objc_build_keyword_decl): Updated comments. Do not 1769 emit a warning that method parameter attributes are unimplemented. 1770 Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL. 1771 (start_method_def): Copy attributes from each KEYWORD_DECL into 1772 the corresponding PARM_DECL. 1773 (objc_warn_deprecated_use): Removed. 1774 (build_objc_method_call): Call warn_deprecated_use, not 1775 objc_warn_deprecated_use. 1776 (objc_maybe_printable_name): Do not try to get the identifier name 1777 of DECLs that we don't recognize. Immediately return NULL for them. 1778 (objc_printable_name): Removed C++-specific case, which is no 1779 longer used. Updated comments. 1780 17812010-10-23 Nicola Pero <nicola.pero@meta-innovation.com> 1782 1783 * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments. 1784 (objc_demangle): Return NULL if demangling can not be done because 1785 the string to demangle is not an Objective-C mangled method name. 1786 Be smarter in demangling method names so that at least for methods 1787 with no arguments we are able to almost always demangle '_' correctly. 1788 Updated comments. 1789 (objc_maybe_printable_name): New. 1790 (objc_printable_name): Call objc_maybe_printable_name. If it 1791 returns NULL, call cxx_printable_name in Objective-C++. 1792 17932010-10-21 Iain Sandoe <iains@gcc.gnu.org> 1794 1795 Based on the CFString implementation in FSF apple/trunk branch. 1796 1797 * objc-act.c (objc_build_string_object): Handle CFStrings. 1798 17992010-10-21 Nicola Pero <nicola.pero@meta-innovation.com> 1800 1801 * objc-act.c (get_objc_string_decl): Use a switch instead of a 1802 chain of ifs. Use gcc_unreachable instead of abort. 1803 (add_objc_string): Same change. 1804 (generate_protocol_list): Same change - twice. 1805 (synth_id_with_class_suffix): Same change. 1806 (build_keyword_selector): Same change - twice. 1807 (objc_build_message_expr): Same change. 1808 (objc_build_selector_expr): Same change. 1809 (check_methods): Same change - and added missing gcc_unreachable 1810 for default case. 1811 (check_methods_accessible): Same change - twice, and added missing 1812 gcc_unreachable for default case in one of them. 1813 (start_class): Same change - and added missing gcc_unreachable for 1814 default case. 1815 (continue_class): Same change. 1816 (objc_gen_property_data): Same change. 1817 (finish_class): Same change. 1818 (encode_type_qualifiers): Added missing gcc_unreachable. 1819 (encode_type): Small code tidy up to reduce duplicated code. Use 1820 gcc_unreachable instead of abort - twice. 1821 (encode_gnu_bitfield): Use a switch instead of a chain of ifs - 1822 twice. Added missing gcc_unreachable for default case - twice. 1823 (dump_interface): Use a switch instead of a chain of ifs. 1824 (handle_impent): Same change. 1825 18262010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1827 1828 * objc-act.h (objc_inherit_code): Removed. 1829 * objc-act.c (objc_inherit_code): Removed. 1830 (objc_set_method_type): Removed. 1831 (objc_build_method_signature): Added is_class_method argument. 1832 Use it instead of the global objc_inherit_code variable. 1833 (objc_add_method_declaration): Same change. 1834 (objc_start_method_definition): Same change. 1835 (objc_generate_cxx_ctor_or_dtor): Updated call to 1836 objc_start_method_definition. Do not call objc_set_method_type. 1837 (adjust_type_for_id_default): Mark as inline. 1838 (objc_synthesize_getter): Updated call to 1839 objc_start_method_definition. Do not set objc_inherit_code. 1840 (objc_synthesize_setter): Updated call to 1841 objc_start_method_definition. Do not set objc_inherit_code. 1842 18432010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1844 1845 Merge from 'apple/trunk' branch on FSF servers. Obvious updates 1846 to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to 1847 get it to compile in the current trunk. 1848 1849 2006-01-27 Fariborz Jahanian <fjahanian@apple.com> 1850 1851 Radar 4345837 1852 * objc-act.c (hash_class_name_enter): New. 1853 (hash_class_name_lookup): New. 1854 (objc_declare_alias): Enter alias name into hash table. 1855 (objc_declare_class): Enter class name into hash table. 1856 (objc_is_class_name): Do a hash look up of class name. 1857 (hash_init): Initialize the two new hash tables. 1858 * objc-act.h: Added cls_name_hash_list and als_name_hash_list 1859 declarations, removed class_chain and alias_chain. 1860 18612010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1862 1863 * objc-lang.c (finish_file): Removed. 1864 * objc-act.c (objc_finish_file): Renamed to 1865 objc_write_global_declarations. Do not try to instantiate C++ 1866 templates when compiling Objective-C++ as this is now 1867 automatically done before this function is called. Do not check 1868 for syntax-only run or PCH generation as this is done by the 1869 callers. 1870 * objc-act.h (objc_finish_file): Removed. 1871 18722010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1873 1874 Implemented parsing @synthesize and @dynamic for 1875 Objective-C/Objective-C++. 1876 * objc-act.c (objc_add_synthesize_declaration): New. 1877 (objc_add_dynamic_declaration): New. 1878 18792010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1880 1881 * objc-act.c (lookup_and_install_protocols): Return NULL if passed 1882 error_mark_node. 1883 18842010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1885 1886 Merge from 'apple/trunk' branch on FSF servers. 1887 1888 2006-03-10 Fariborz Jahanian <fjahanian@apple.com> 1889 1890 Radar 4407151 1891 * objc-act.c (objc_is_class_name): template parameter is not 1892 an objective class name. 1893 (objc_generate_cxx_cdtors): Check for the null 1894 objc_implementation_context. 1895 18962010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1897 1898 Merge from 'apple/trunk' branch on FSF servers. 1899 1900 2005-11-08 Fariborz Jahanian <fjahanian@apple.com> 1901 1902 Radar 4330422 1903 * objc-act.c (objc_non_volatilized_type): New 1904 1905 2005-10-07 Fariborz Jahanian <fjahanian@apple.com> 1906 1907 Radar 4204796 1908 * objc-act.c (objc_build_volatilized_type): Build 'volatilzed' 1909 types with proper attribute set and correctly. 1910 (objc_volatilize_decl): Remove unneeded code. 1911 (objc_type_quals_match): Use the new attribute to check on 1912 'volatilzed' type. 1913 (hash_init): removed unneeded code. 1914 19152010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> 1916 1917 Merge from 'apple/trunk' branch on FSF servers. 1918 1919 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> 1920 1921 Radar 4133425 1922 * objc-act.c (objc_diagnose_private_ivar): New. 1923 19242010-10-17 Iain Sandoe <iains@gcc.gnu.org> 1925 1926 * objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and 1927 make its type 'objc_ivar_visibility_kind'. 1928 (objc_start_class_interface): Update to use visibility enum. 1929 (objc_start_class_implementation): Likewise. 1930 (objc_set_visibility): Update to use visibility enum, warn that 1931 @package is handle as per @public. 1932 (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE. 1933 * objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and 1934 make its type 'objc_ivar_visibility_kind'. 1935 19362010-10-14 Iain Sandoe <iains@gcc.gnu.org> 1937 1938 merge from FSF apple 'trunk' branch. 1939 2006 Fariborz Jahanian <fjahanian@apple.com> 1940 1941 Radars 4436866, 4505126, 4506903, 4517826 1942 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New. 1943 property_readonly, property_getter, property_setter, property_ivar, 1944 property_copies, in_objc_property_setter_name_context: New vars. 1945 (objc_set_property_attr): New. 1946 (objc_add_property_variable): New. 1947 (lookup_property_in_list): New. 1948 (lookup_property): New. 1949 (objc_build_getter_call): New. 1950 (objc_setter_func_call): New. 1951 (get_selector_from_reference): New. 1952 (objc_build_setter_call): New. 1953 (is_property): New. 1954 (build_property_reference): New. 1955 (objc_finish_message_expr): Detect readonly property and warn. 1956 (objc_build_property_ivar_name): New. 1957 (objc_build_property_setter_name): New. 1958 (objc_gen_one_property_datum): New. 1959 (objc_process_getter_setter): New. 1960 (objc_synthesize_getter): New. 1961 (objc_synthesize_setter): New. 1962 (objc_gen_property_data): New. 1963 (finish_class): Generate property data. 1964 (comp_proto_with_proto): Separated from ... 1965 (match_proto_with_proto): ... New. 1966 (objc_lookup_ivar): Handle properties. 1967 * objc-tree.def (PROPERTY_DECL): New tree code. 1968 * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size. 1969 (METHOD_PROPERTY_CONTEXT): New. 1970 (PROPERTY_NAME): New. 1971 (PROPERTY_GETTER_NAME): New. 1972 (PROPERTY_SETTER_NAME): New. 1973 (PROPERTY_IVAR_NAME): New. 1974 (PROPERTY_READONLY): New. 1975 (PROPERTY_COPIES): New. 1976 (TOTAL_CLASS_RAW_IVARS): New. 1977 (CLASS_PROPERTY_DECL): New. 1978 (IMPL_PROPERTY_DECL): New. 1979 * objc-lang.c (objc_init_ts): Update fields for property_decl. 1980 19812010-10-13 Richard Henderson <rth@redhat.com> 1982 1983 * objc-act.c (objc_eh_personality): Update call to 1984 build_personality_function. 1985 19862010-10-13 Iain Sandoe <iains@gcc.gnu.org> 1987 1988 merge from FSF apple 'trunk' branch. 1989 1990 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> 1991 Radar 3803157 (method attributes) 1992 * objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro. 1993 * objc-act.c (objc_decl_method_attributes): New. 1994 (objc_add_method_declaration): Process method's attribute. 1995 (objc_start_method_definition): Ditto. 1996 (build_objc_method_call): Inject method attribute into 1997 built function type. 1998 (objc_method_decl): New. 1999 (objc_warn_deprecated)use): New. 2000 20012010-10-07 Andi Kleen <ak@linux.intel.com> 2002 2003 * Make-lang.in (cc1obj-dummy): Remove. 2004 (cc1obj-checksum): Change to run checksum over object files 2005 and options only. 2006 20072010-10-07 Nicola Pero <nicola.pero@meta-innovation.com> 2008 2009 PR objc/45925 2010 * objc-act.c (objc_finish_foreach_loop): Convert return value of 2011 countByEnumeratingWithState:objects:count: to long unsigned int. 2012 20132010-10-07 Iain Sandoe <iains@gcc.gnu.org> 2014 2015 * objc-act.c (build_objc_method_call): Replace calls to 2016 build_function_call () with the VEC equivalent. Construct parameter 2017 lists as VECs. 2018 20192010-10-07 Iain Sandoe <iains@gcc.gnu.org> 2020 2021 * objc-act.c (objc_build_message_expr): Call mark_exp_read () to 2022 signal that the receiver has been used. 2023 20242010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 2025 2026 * README: Obsolete file removed. 2027 20282010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 2029 2030 Implemented fast enumeration for Objective-C. 2031 * objc-act.c (build_fast_enumeration_state_template): New. 2032 (TAG_ENUMERATION_MUTATION): New. 2033 (TAG_FAST_ENUMERATION_STATE): New. 2034 (synth_module_prologue): Call build_fast_enumeration_state_template() and set up 2035 objc_enumeration_mutation_decl. 2036 (objc_create_temporary_var): Allow providing a name to temporary 2037 variables. 2038 (objc_build_exc_ptr): Updated calls to 2039 objc_create_temporary_var(). 2040 (next_sjlj_build_try_catch_finally): Same change. 2041 (objc_finish_foreach_loop): New. 2042 * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP, 2043 OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template, 2044 objc_enumeration_mutation_decl. 2045 2046 Merge from 'apple/trunk' branch on FSF servers. 2047 2048 2006-04-12 Fariborz Jahanian <fjahanian@apple.com> 2049 2050 Radar 4507230 2051 * objc-act.c (objc_type_valid_for_messaging): New routine to check 2052 for valid objc object types. 2053 (objc_finish_foreach_loop): Check for invalid objc objects in 2054 foreach header. 2055 20562010-10-05 Nicola Pero <nicola.pero@meta-innovation.com> 2057 2058 Merge from 'apple/trunk' branch on FSF servers. 2059 2060 2005-10-17 Fariborz Jahanian <fjahanian@apple.com> 2061 2062 Radar 4290840 2063 * objc-act.c (objc_start_method_definition): Check for 2064 error_mark_node for the selector name and make a quick exit. 2065 20662010-10-04 Andi Kleen <ak@linux.intel.com> 2067 2068 * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule. 2069 20702010-09-30 Iain Sandoe <iains@gcc.gnu.org> 2071 2072 merge from FSF 'apple/trunk' branch. 2073 2006-01-30 Fariborz Jahanian <fjahanian@apple.com> 2074 2075 Radar 4386773 2076 * objc-act.c (objc_set_method_opt): New function. 2077 (objc_start_protocol, objc_finish_interface): Reset 2078 objc_method_optional_flag flag. 2079 (objc_add_method_declaration): Pass on the new 2080 flag to objc_add_method. 2081 (objc_add_method): Add optional methods to new chain in 2082 the protocol class. 2083 * objc-act.h (CLASS_OPTIONAL_CLS_METHODS) 2084 (CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol 2085 class's optional method chains. 2086 20872010-09-30 Nicola Pero <nicola.pero@meta-innovation.com> 2088 2089 Merge from 'apple/trunk' branch on FSF servers. 2090 2091 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 2092 2093 Radar 4278236 2094 * objc-act.c (objc_declare_class): Pick the right 2095 type tree. 2096 20972010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 2098 2099 Merge from 'apple/trunk' branch on FSF servers. 2100 2101 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 2102 2103 Radar 4281748 2104 * objc-act.c (objc_check_global_decl): New 2105 21062010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 2107 2108 * objc-act.c (objc_is_reserved_word): Removed. 2109 21102010-09-28 Iain Sandoe <iains@gcc.gnu.org> 2111 2112 * objc-act.c (objc_add_method_declaration): Handle and ignore 2113 attributes. 2114 (objc_start_method_definition): Likewise. 2115 (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor. 2116 (objc_build_keyword_decl): Handle and ignore attributes. 2117 21182010-09-28 Richard Henderson <rth@redhat.com> 2119 2120 * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info. 2121 21222010-09-28 Iain Sandoe <iains@gcc.gnu.org> 2123 2124 * objc-act.c (objc_start_class_interface): Handle and ignore attributes. 2125 (objc_start_category_interface): Likewise. 2126 (objc_start_protocol): Likewise. 2127 21282010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2129 2130 Merge from 'apple/trunk' branch on FSF servers. 2131 2132 2005-08-23 Stuart Hastings <stuart@apple.com> 2133 Ziemowit Laski <zlaski@apple.com> 2134 2135 Radar 4209854 2136 * objc-act.c (objc_decay_parm_type): New function. 2137 (get_arg_type_list): Decay types for all named arguments. 2138 (objc_push_parm): Rebuild the PARM_DECL if its type has 2139 been decayed. 2140 21412010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2142 2143 * objc-act.c (encode_type): Fixed encoding enums with the next 2144 runtime. 2145 21462010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2147 2148 Merge from 'apple/trunk' branch on FSF servers. 2149 2150 2005-07-18 Ziemowit Laski <zlaski@apple.com> 2151 2152 Radar 4175534 2153 * objc-act.c (objc_compare_types): A new silent comparison 2154 mode (-4), differing from regular comparison (-3) in that 2155 'false' is returned instead of issuing warnings. 2156 21572010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2158 2159 * objc-act.c (encode_type): Do not add 'r' with the next runtime. 2160 (encode_aggregate_within): Reorganized code to be more readable. 2161 (encode_aggregate_fields): Updated second argument to be 'bool' 2162 instead of 'int'. 2163 21642010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2165 2166 PR objc/45763 2167 PR objc/25450 2168 PR objc/25464 2169 * objc-act.c: Improved comments for encoding functions. 2170 (encode_aggregate_within): For the GNU runtime, rewritten some 2171 obsfuscated code to clarify the various cases. 2172 (encode_aggregate): Function removed. 2173 (encode_array): Generate an error if asked to encode an incomplete 2174 array as part of generating instance variables. Else, when 2175 encoding an incomplete array inside a structure, encode it as an 2176 array of zero size. 2177 (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as 2178 '^c' instead of '*'. 2179 (encode_gnu_bitfield): Encode enumerated types exactly in the same 2180 type as integer types instead of using a hardcoded 'i'. If asked 2181 to encode a non-integer type as a bitfield, do not abort 2182 compilation immediately; instead generate an error, then skip the 2183 type. 2184 (encode_type): Use a 'switch' instead of a sequence of 'if's. 2185 Added a 'default' clause that gets executed if the type can not be 2186 matched, and that encodes it as '?' (unknown) and produces a 2187 warning. For the GNU runtime, encode enumerated types exactly in 2188 the same way as integer types instead of using a hardcoded 'i'. 2189 Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'. 2190 Encode C++ reference types as pointers. Call encode_vector to 2191 encode vectors. 2192 (encode_vector): New function. 2193 21942010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2195 2196 Merge from 'apple/trunk' branch on FSF servers. I modified the 2197 changes to be used only when compiling for the NeXT runtime. 2198 2199 2005-10-10 Fariborz Jahanian <fjahanian@apple.com> 2200 2201 Radar 4301047 2202 2203 * objc-act.c (encode_type): Remove the hack. 2204 2205 2005-07-20 Ziemowit Laski <zlaski@apple.com> 2206 2207 Radar 4136935 2208 * objc-act.c (pointee_is_readonly): New function. 2209 (encode_pointer, encode_aggregate_within, encode_type): 2210 Attempt to emulate GCC 3.3 when generating type encodings. 2211 22122010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2213 2214 Merge from 'apple/trunk' branch on FSF servers. 2215 2216 2005-12-15 Fariborz Jahanian <fjahanian@apple.com> 2217 2218 Radar 4229905 2219 * objc-act.c (objc_have_common_types): New function. 2220 2221 2005-06-22 Ziemowit Laski <zlaski@apple.com> 2222 2223 Radar 4154928 2224 * objc-act.c (objc_common_type): New function. 2225 22262010-09-27 Richard Guenther <rguenther@suse.de> 2227 2228 * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT. 2229 (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P. 2230 22312010-09-26 Nicola Pero <nicola.pero@meta-innovation.com> 2232 2233 * objc-act.c: Removed historical, obsolete comment at the top of 2234 the file. 2235 22362010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 2237 2238 PR objc/23710 2239 * objc-act.c (objc_start_method_definition): Do not abort upon a 2240 'method definition not in @implementation context' error. Return 2241 'false' instead. 2242 22432010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 2244 2245 PR objc/25965 2246 * objc-act.c (objc_get_interface_ivars): New function. 2247 (objc_collecting_ivars): New variable. 2248 (continue_class): Set and reset objc_collecting_ivars for context. 2249 22502010-09-15 Nicola Pero <nicola.pero@meta-innovation.com> 2251 2252 Merge from 'apple/trunk' branch on FSF servers. 2253 2254 2006-03-09 Fariborz Jahanian <fjahanian@apple.com> 2255 2256 Radar 4457381 2257 * objc-act.c (objc_finish_message_expr): Look for message in 2258 @class's protocol list. 2259 2260 2006-02-07 Fariborz Jahanian <fjahanian@apple.com> 2261 2262 Radar 4219590 2263 * objc-act.c (objc_start_method_definition): Initialize 2264 break/continue labels. 2265 2266 2005-08-22 Ziemowit Laski <zlaski@apple.com> 2267 2268 Radar 4174166 2269 * objc-act.c (objc_compare_types): Compare function 2270 pointers; indicate success if the right-hand side has 2271 a return type that is covariant, and the argument types 2272 contravariant, with those of the left side. 2273 2274 2005-08-22 Ziemowit Laski <zlaski@apple.com> 2275 2276 Radar 4216500 2277 * objc-act.c (objc_get_protocol_qualified_type): When looking 2278 at a typedef, retrieve the precise type it describes (rather 2279 than merely looking up a class by name). 2280 22812010-09-10 Nicola Pero <nicola.pero@meta-innovation.com> 2282 2283 * objc-act.c (objc_begin_try_stmt): Generate an error if 2284 -fobjc-exceptions was not used. (objc_build_throw_stmt): Same 2285 change. 2286 22872010-07-15 Nathan Froyd <froydnj@codesourcery.com> 2288 2289 * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN. 2290 22912010-07-10 Iain Sandoe <iains@gcc.gnu.org> 2292 2293 PR objc/44140 2294 * objc-act.c: build_objc_string_decl() remove declaration. 2295 (finish_var_decl): Remove forcing of var output and marking 2296 as "Used". 2297 (init_def_list): Use integer_zero_node. 2298 (init_objc_symtab): Use integer_zero_node, make the short 2299 integer type specific on relevant nodes. 2300 (generate_objc_symtab_decl): Remove call to 2301 forward_declare_categories(). Use null_pointer_node where 2302 appropriate. 2303 (build_module_descriptor): Comment and mark this item as 2304 DECL_PRESERVE_P. 2305 (generate_static_references): Use gcc_unreachable instead of 2306 abort (). 2307 (diagnose_missing_method): New. 2308 (build_next_selector_translation_table): New. 2309 (build_gnu_selector_translation_table): New. 2310 (add_objc_string): Merge code from build_objc_string_decl... 2311 ... and delete build_objc_string_decl(). 2312 (generate_dispatch_table): Make integer types explicit. 2313 (generate_category): Pass implent and arrange for the data 2314 to be extracted within the routine. Do not start new vars, 2315 but finish the ones collcted during parsing. 2316 (generate_shared_structures): Likewise. 2317 (finish_objc): Reorder code so that we finish variables before 2318 referencing them. Save the global data before calling meta-data 2319 creation routines, and pass the current reference to the two 2320 main routines. Only call generate_objc_image_info () for the 2321 NeXT runtime. 2322 (generate_classref_translation_entry): Comment on and make this 2323 item DECL_PRESERVE_P. 2324 (handle_class_ref): Use varpool interfaces, comment on and make 2325 this item DECL_PRESERVE_P. 2326 (handle_impent): Likewise. 2327 (generate_objc_image_info): Only generate when the content is 2328 non-zero. Make integer types explict. 2329 23302010-07-03 Nathan Froyd <froydnj@codesourcery.com> 2331 2332 PR objc/24867 2333 * objc-act.c (build_sized_array_type): New function. 2334 (add_objc_string): Use it. 2335 (generate_protocol_list): Likewise. 2336 (generate_objc_image_info): Likewise. 2337 (add_field_decl): New function. 2338 (objc_build_struct): Use a VEC rather than building a TREE_LIST. 2339 (generate_struct_by_value_array): Use add_field_decl. 2340 (build_objc_symtab_template): Likewise. 2341 (build_module_descriptor): Likewise. 2342 (build_objc_exception_stuff): Likewise. 2343 (build_protocol_template): Likewise. 2344 (build_method_prototype_list_template): Likewise. 2345 (build_method_prototype_template): Likewise. 2346 (build_category_template): Likewise. 2347 (build_selector_template): Likewise. 2348 (build_class_template): Likewise. 2349 (build_super_template): Likewise. 2350 (build_ivar_template): Likewise. 2351 (build_ivar_list_template): Likewise. 2352 (build_method_list_template): Likewise. 2353 (build_method_template): Likewise. 2354 23552010-06-28 Steven Bosscher <steven@gcc.gnu.org> 2356 2357 * objc-act.c: Do not include except.h. 2358 23592010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com> 2360 2361 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC 2362 allocation. 2363 2364 * objc-act.c (objc_volatilize_decl): Likewise. 2365 (objc_build_string_object): Likewise. 2366 (hash_init): Likewise. 2367 (hash_enter): Likewise. 2368 (hash_add_attr): Likewise. 2369 (add_class): Likewise. 2370 (start_class): Likewise. 2371 23722010-06-05 Steven Bosscher <steven@gcc.gnu.org> 2373 2374 * objc-act.c: Update include path for moved files. 2375 * objc-lang.c: Likewise. 2376 * config-lang.in: Update paths in gtfiles for files in c-family/. 2377 23782010-06-01 Nathan Froyd <froydnj@codesourcery.com> 2379 2380 * objc-act.c (build_next_objc_exception_stuff): Give setjmp a 2381 varargs type instead of a zero-argument type. 2382 23832010-05-30 Nathan Froyd <froydnj@codesourcery.com> 2384 2385 * objc-act.c (synth_module_prologue): Use build_function_type_list 2386 instead of build_function_type. 2387 (build_module_initializer_routine): Likewise. 2388 (build_next_objc_exception_stuff): Likewise. 2389 (build_objc_exception_stuff): Likewise. 2390 23912010-05-27 Joseph Myers <joseph@codesourcery.com> 2392 2393 * objc-act.c: Include diagnostic-core.h instead of diagnostic.h. 2394 * Make-lang.in (objc/objc-act.o): Update dependencies. 2395 23962010-05-25 Steven Bosscher <steven@gcc.gnu.org> 2397 2398 * objc-act.h: Do not include gimple.h. 2399 * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h. 2400 Include gimple.h. Explain why except.h has to be included. 2401 * objc-lang.c: Do not include diagnostics.h. 2402 * Make-lang.in: Update dependencies. 2403 24042010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2405 2406 * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance 2407 mismatch code for VECs. 2408 24092010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2410 2411 * objc-act.c (objc_build_constructor): Take a VEC instead of a tree. 2412 Use build_constructor instead of build_constructor_from_list. 2413 (objc_build_string_object): Build a VEC argument for 2414 objc_build_constructor. 2415 (init_def_list): Likewise. 2416 (init_objc_symtab): Likewise. 2417 (init_module_descriptor): Likewise. 2418 (generate_static_references): Likewise. 2419 (build_selector_translation_table): Likewise. 2420 (build_descriptor_table_initializer): Likewise. 2421 (generate_descriptor_table): Likewise. 2422 (build_protocol_initializer): Likewise. 2423 (build_ivar_list_initializer): Likewise. 2424 (generate_ivars_list): Likewise. 2425 (build_dispatch_table_initializer): Likewise. 2426 (generate_dispatch_table): Likewise. 2427 (generate_protocol_list): Likewise. 2428 (build_category_initializer): Likewise. 2429 (build_shared_structure_initializer): Likewise. 2430 (generate_objc_image_info): Likewise. 2431 24322010-04-30 Iain Sandoe <iains@gcc.gnu.org> 2433 2434 PR objc++/32052 2435 * objc-act.c (encode_aggregate_within): Encode structure tags 2436 with template args for ObjC++. 2437 24382010-04-30 Steven Bosscher <steven@gcc.gnu.org> 2439 2440 * objc-act.c: Do not include varray.h. 2441 24422010-04-07 Jakub Jelinek <jakub@redhat.com> 2443 2444 PR c/18624 2445 * objc-act.c (finish_var_decl, objc_begin_catch_clause, 2446 really_start_method, get_super_receiver, handle_class_ref): Set 2447 DECL_READ_P in addition to TREE_USED. 2448 24492010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2450 2451 PR objc/35996 2452 * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for 2453 -fgnu-runtime and set flag_objc_gc to zero. 2454 24552010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2456 2457 PR objc++/23716 2458 * objc-act.c (build_module_initializer_routine): Make the argument 2459 to objc_start_function NULL_TREE when compiling ObjC++. 2460 24612010-02-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2462 Mike Stump <mikestump@comcast.net> 2463 2464 PR objc/43061 2465 * objc-act.c (finish_var_decl): Set the generated symbols as "used". 2466 24672009-12-17 Shujing Zhao <pearly.zhao@oracle.com> 2468 2469 * objc-act.c (objc_substitute_decl, build_ivar_reference, 2470 get_super_receiver): Update build_indirect_ref calls. 2471 24722009-11-28 Jakub Jelinek <jakub@redhat.com> 2473 2474 * objc-act.c (generate_shared_structures): Remove unused sc_spec and 2475 decl_specs variables. 2476 (objc_build_message_expr): Remove unused loc variable. 2477 (objc_finish_message_expr): Remove unused saved_rtype variable. 2478 (encode_field_decl): Remove unused type variable. 2479 2480 PR obj-c++/42156 2481 * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for 2482 type variants that don't have it initialized yet. 2483 24842009-09-14 Jan Hubicka <jh@suse.cz> 2485 2486 * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON. 2487 24882009-09-14 Richard Henderson <rth@redhat.com> 2489 2490 * objc-act.c (objc_init_exceptions): Don't call 2491 default_init_unwind_resume_libfunc. 2492 (objc_build_exc_ptr): Use __builtin_eh_pointer. 2493 24942009-09-13 Richard Guenther <rguenther@suse.de> 2495 Rafael Avila de Espindola <espindola@google.com> 2496 2497 * objc-act.c (objc_eh_runtime_type): Export. 2498 (objc_init_exceptions): Remove. Move warning code ... 2499 (objc_begin_try_stmt): ... here 2500 (objc_build_throw_stmt): ... and here. 2501 (objc_eh_personality_decl): New. 2502 (objc_eh_personality): New function. 2503 * objc-act.h (objc_eh_runtime_type): Declare. 2504 (objc_eh_personality): Likewise. 2505 * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define. 2506 (LANG_HOOKS_EH_PERSONALITY): Likewise. 2507 25082009-09-03 Diego Novillo <dnovillo@google.com> 2509 2510 * objc-lang.c (lang_hooks): Remove const qualifier. 2511 25122009-08-20 Richard Guenther <rguenther@suse.de> 2513 2514 * objc-act.c: Include c-lang.h 2515 * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency. 2516 25172009-07-17 Aldy Hernandez <aldyh@redhat.com> 2518 Manuel López-Ibáñez <manu@gcc.gnu.org> 2519 2520 PR 40435 2521 * objc-act.c: Add location argument to all calls to 2522 build_fold_addr_expr. 2523 25242009-07-14 Taras Glek <tglek@mozilla.com> 2525 Rafael Espindola <espindola@google.com> 2526 2527 * Make-lang.in (objc.install-plugin): New target for 2528 installing plugin headers. 2529 25302009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2531 2532 * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by 2533 EXPR_LOCATION. 2534 25352009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2536 2537 * objc-act.c: Replace %J by an explicit location. Update all 2538 calls. 2539 25402009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2541 2542 * objc-act.c: Replace %H by an explicit location. Update all 2543 calls. 2544 25452009-06-22 Steven Bosscher <steven@gcc.gnu.org> 2546 2547 PR objc/28050 2548 * objc-act.c (objc_build_message_args): Return if ARGS is the 2549 error_mark_node. 2550 25512009-06-19 Ian Lance Taylor <iant@google.com> 2552 2553 * objc-act.c (objc_in_struct, objc_struct_types): Remove. 2554 (objc_struct_info): New static variable. 2555 (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct 2556 and &objc_struct_types, to start_struct. 2557 (objc_finish_struct): Likewise for finish_struct. 2558 25592009-06-15 Ian Lance Taylor <iant@google.com> 2560 2561 * objc-act.c (objc_start_function): Don't set 2562 label_context_stack_se or label_context_stack_vm. 2563 25642009-06-12 Aldy Hernandez <aldyh@redhat.com> 2565 2566 * objc-act.c (finish_var_decl): Pass location to finish_decl. 2567 (objc_get_parm_info): Same. 2568 (get_super_receiver): Same. 2569 * objc-act.c (objc_build_component_ref): Pass location to 2570 build_compound_ref. 2571 (build_module_initializer_routine): Pass location to 2572 c_end_compound_stmt. 2573 (objc_generate_static_init_call): Pass location to build_stmt. 2574 (build_typed_selector_reference): New location argument. 2575 (build_selector_reference): Same. 2576 (objc_substitute_decl): Pass location to build_array_ref. 2577 (next_sjlj_build_try_catch_finally): Pass location to build_stmt. 2578 (objc_begin_catch_clause): Same. 2579 (objc_finish_try_stmt): Same. 2580 (objc_finish_catch_clause): Pass location to c_end_compound_stmt. 2581 (objc_build_throw_stmt): New argument. 2582 (generate_shared_structures): Pass location to build_c_cast. 2583 (objc_build_message_expr): Use local location. 2584 (objc_finish_message_expr): Use input_location. 2585 (build_objc_method_call): New argument. 2586 (objc_build_selector_expr): Same. 2587 (get_super_receiver): Pass location to build_c_cast, 2588 build_modify_expr, build_compound_expr. 2589 * objc-act.c: Add location to all calls to start_struct, build_decl, 2590 finish_struct. 2591 25922009-06-09 Ian Lance Taylor <iant@google.com> 2593 2594 * objc-act.c (objc_gimplify_expr): Change return type to int. 2595 * objc-act.h: Update declaration. 2596 25972009-06-08 Alexandre Oliva <aoliva@redhat.com> 2598 2599 * objc-act.c (objc_init): Skip print_struct_values during 2600 -fcompare-debug-second. 2601 26022009-06-03 Ian Lance Taylor <iant@google.com> 2603 2604 * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and 2605 $(SYSTEM_H). 2606 26072009-05-27 Ian Lance Taylor <iant@google.com> 2608 2609 * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to 2610 $(LINKER). 2611 (cc1obj$(exeext)): Likewise. 2612 26132009-05-26 Ian Lance Taylor <iant@google.com> 2614 2615 * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER). 2616 (cc1obj$(exeext)): Likewise. 2617 26182009-05-20 Ian Lance Taylor <iant@google.com> 2619 2620 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather 2621 than NULL_TREE to build_special_member_call. 2622 26232009-05-10 Ian Lance Taylor <iant@google.com> 2624 2625 * objc-act.c (objc_building_struct): New static variable. 2626 (objc_in_struct, objc_struct_types): New static variables. 2627 (objc_start_struct, objc_finish_struct): New static functions. 2628 (generate_struct_by_value_array): Call objc_start_struct instead 2629 of start_struct, and call objc_finish_struct instead of 2630 finish_struct. 2631 (objc_build_struct, build_objc_symtab_template): Likewise. 2632 (build_module_descriptor): Likewise. 2633 (build_next_objc_exception_stuff): Likewise. 2634 (build_protocol_template): Likewise. 2635 (build_method_prototype_list_template): Likewise. 2636 (build_method_prototype_template): Likewise. 2637 (build_category_template, build_selector_template): Likewise. 2638 (build_class_template, build_super_template): Likewise. 2639 (build_ivar_template, build_ivar_list_template): Likewise. 2640 (build_method_list_template): Likewise. 2641 (build_method_template): Likewise. 2642 26432009-05-10 Joseph Myers <joseph@codesourcery.com> 2644 2645 * objc-act.c: Include intl.h. 2646 (objc_lookup_protocol): Use complete sentences for diagnostics 2647 with %qE for identifiers and translating results of 2648 gen_type_name_0 to locale character set. 2649 (objc_check_decl, check_protocol_recursively, 2650 lookup_and_install_protocols, objc_build_string_object, 2651 objc_get_class_reference, objc_declare_alias, objc_declare_class, 2652 objc_get_class_ivars, error_with_ivar, check_duplicates, 2653 objc_finish_message_expr, objc_build_protocol_expr, 2654 objc_build_selector_expr, build_ivar_reference, objc_add_method, 2655 add_category, add_instance_variable, objc_is_public, 2656 check_methods, check_methods_accessible, check_protocol, 2657 start_class, finish_class, start_protocol, really_start_method, 2658 get_super_receiver, objc_lookup_ivar): Use %E and %qE for 2659 identifiers in diagnostics. Translate generated text to locale 2660 character set as needed. 2661 (check_protocol, check_protocols): Change name parameter to type 2662 tree. 2663 (lang_report_error_function): Remove. 2664 26652009-04-27 Ian Lance Taylor <iant@google.com> 2666 2667 * objc-act.c (objc_gimplify_expr): Add casts to enum type. 2668 26692009-04-24 Ian Lance Taylor <iant@google.com> 2670 2671 * objc-act.c (get_super_receiver): Update calls to 2672 build_modify_expr to pass new argument. 2673 26742009-04-21 Taras Glek <tglek@mozilla.com> 2675 2676 * objc-act.c: Update GTY annotations to new syntax. 2677 * objc-act.h: Likewise. 2678 26792009-04-21 Joseph Myers <joseph@codesourcery.com> 2680 2681 * ChangeLog: Add copyright and license notices. 2682 26832009-04-20 Ian Lance Taylor <iant@google.com> 2684 2685 * objc-act.c (objc_rewrite_function_call): Change parameter from 2686 params to first_param. Change all callers. 2687 26882009-03-30 Dominique d'Humieres <dominiq@lps.ens.fr> 2689 2690 PR bootstrap/39583 2691 * objc-act.c (in_late_binary_op): Define for Objective-C++. 2692 26932009-03-29 Joseph Myers <joseph@codesourcery.com> 2694 2695 PR c/456 2696 PR c/5675 2697 PR c/19976 2698 PR c/29116 2699 PR c/31871 2700 PR c/35198 2701 * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op. 2702 27032008-12-05 Sebastian Pop <sebastian.pop@amd.com> 2704 2705 PR bootstrap/38262 2706 * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS, 2707 remove GMPLIBS. 2708 27092008-10-06 Aldy Hernandez <aldyh@redhat.com> 2710 2711 * objc-act.c (objc_build_string_object): Pass location to 2712 build_unary_op. 2713 (init_def_list): Same. 2714 (init_objc_symtab): Same. 2715 (init_module_descriptor): Same. 2716 (build_module_initializer_routine): Same. 2717 (generate_static_references): Same. 2718 (build_typed_selector_reference): Same. 2719 (add_objc_string): Same. 2720 (objc_substitute_decl): Same. 2721 (objc_build_ivar_assignment): Same. 2722 (objc_build_global_assignment): Same. 2723 (objc_build_strong_cast_assignment): Same. 2724 (generate_protocols): Same. 2725 (build_protocol_initializer): Same. 2726 (build_dispatch_table_initializer): Same. 2727 (generate_protocol_list): Same. 2728 (build_category_initializer): Same. 2729 (build_shared_structure_initializer): Same. 2730 (generate_shared_structures): Same. 2731 (objc_build_protocol_expr): Same. 2732 (build_ivar_reference): Same. 2733 (get_super_receiver): Same. 2734 27352008-09-23 Aldy Hernandez <aldyh@redhat.com> 2736 2737 * objc-act.c (next_sjlj_build_enter_and_setjmp): Call 2738 c_common_truthvalue_conversion with location. 2739 (next_sjlj_build_catch_list): Same. 2740 (next_sjlj_build_try_catch_finally): Same. 2741 27422008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com> 2743 2744 PR objc/37460 2745 * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define. 2746 * objc-act.h (objc_get_callee_fndecl): Remove prototype. 2747 * objc-act.c (objc_get_callee_fndecl): Kill. 2748 27492008-09-17 Jan Hubicka <jh@suse.cz> 2750 2751 PR c++/18071 2752 * objc-act.c (objc_finish_method_definition): Do not set 2753 DECL_INLINE. 2754 27552008-09-01 Aldy Hernandez <aldyh@redhat.com> 2756 2757 * objc-act.c (build_typed_selector_reference): Pass input_location to 2758 build_unary_op calls. 2759 (build_selector_reference): Same, but to build_array_ref. 2760 (objc_substitute_decl): Same. 2761 (build_ivar_reference): Same, but to build_indirect_ref. 2762 (get_super_receiver): Same. 2763 27642008-07-28 Richard Guenther <rguenther@suse.de> 2765 2766 Merge from gimple-tuples-branch. 2767 2768 2008-07-18 Aldy Hernandez <aldyh@redhat.com> 2769 2770 * Make-lang.in (objc-lang.o): Depend on GIMPLE_H. 2771 (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H. 2772 * objc-act.h: Include gimple.h instead of tree-gimple.h. 2773 * ipa-reference.c: Same. 2774 2775 2007-11-10 Aldy Hernandez <aldyh@redhat.com> 2776 2777 * objc-act.c (objc_gimplify_expr): Change pre and post to sequences. 2778 * objc-act.h (objc_gimplify_expr): Change prototype accordingly. 2779 27802008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2781 2782 * objc-act.c: Fix comment typos. 2783 27842008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2785 2786 * objc-act.c (objc_start_class_interface, 2787 objc_start_category_interface, objc_start_class_implementation, 2788 objc_start_category_implementation, objc_build_struct, 2789 generate_static_references, build_private_template, 2790 lookup_category, objc_add_method, add_category, 2791 add_instance_variable, objc_is_public, conforms_to_protocol, 2792 start_class, continue_class, finish_class): Avoid C++ keywords. 2793 27942008-07-14 Jason Merrill <jason@redhat.com> 2795 2796 PR objc++/36723 2797 * objc-act.c (objc_build_constructor): Update C++ tweak. 2798 27992007-07-14 Rafael Ávila de Espíndola <espindola@google.com> 2800 2801 * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead 2802 of DECL_IN_SYSTEM_HEADER. 2803 28042008-07-11 Ian Lance Taylor <iant@google.com> 2805 2806 * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS, 2807 etc., not just when OBJCPLUS is defined. 2808 28092008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2810 2811 * objc-act.c (setup_string_decl, objc_build_string_object, 2812 hash_interface, eq_interface, objc_begin_try_stmt, 2813 encode_method_prototype, build_ivar_list_initializer, 2814 objc_build_encode_expr): Fix for -Wc++-compat. 2815 28162008-05-12 Tomas Bily <tbily@suse.cz> 2817 2818 * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr): 2819 Use CONVERT_EXPR_P. 2820 28212008-04-23 Paolo Bonzini <bonzini@gnu.org> 2822 2823 * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT. 2824 28252008-04-03 Tom Tromey <tromey@redhat.com> 2826 2827 * Make-lang.in (objc_OBJS): New variable. 2828 28292008-03-27 Tom Tromey <tromey@redhat.com> 2830 2831 * Make-lang.in: Revert automatic dependency patch. 2832 28332008-03-27 Douglas Gregor <doug.gregor@gmail.com> 2834 2835 PR obj-c++/35704 2836 * objc-act.c (objc_build_component_ref): Fix call to 2837 finish_class_member_access_expr. 2838 (objc_generate_cxx_ctor_or_dtor): Fix call to 2839 build_special_member_call. 2840 28412008-03-25 Andrew Pinski <pinskia@gmail.com> 2842 2843 PR objc/29197 2844 * objc-act.c (encode_type): Handle when type is error_mark_node. 2845 (objc_push_parm): Handle when the type of parm is error_mark_node. 2846 28472008-03-25 Tom Tromey <tromey@redhat.com> 2848 2849 * Make-lang.in (objc_OBJS): New variable. 2850 (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove. 2851 28522008-03-21 Andreas Tobler <a.tobler@schweiz.org> 2853 2854 PR bootstrap/35660 2855 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to 2856 MAYBE_CLASS_TYPE_P. 2857 (objc_generate_cxx_cdtors): Likewise. 2858 (add_instance_variable): Likewise. 2859 28602008-02-26 Tom Tromey <tromey@redhat.com> 2861 2862 * objc-act.c (objc_init): Remove old location code. 2863 28642008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2865 2866 PR other/35107 2867 * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS). 2868 28692007-07-30 Nick Clifton <nickc@redhat.com> 2870 2871 * Make-lang.in: Change copyright header to refer to version 3 of 2872 the GNU General Public License and to point readers at the 2873 COPYING3 file and the FSF's license web page. 2874 * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h, 2875 config-lang.in, objc-lang.c: Likewise. 2876 28772007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2878 2879 * objc-act.c (objc_get_callee_fndecl): Constify. 2880 * objc-act.h (objc_get_callee_fndecl): Likewise. 2881 28822007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2883 2884 * objc-act.c (volatilized_hash, volatilized_eq, string_hash, 2885 string_eq): Constify. 2886 28872007-04-04 Stuart Hastings <stuart@apple.com> 2888 2889 PR 31281 2890 * objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl. 2891 28922007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 2893 2894 * Make-lang.in: Add dummy lang.install-pdf target. 2895 28962007-02-18 Kazu Hirata <kazu@codesourcery.com> 2897 2898 * objc-act.c: Fix comment typos. 2899 29002007-02-15 Sandra Loosemore <sandra@codesourcery.com> 2901 Brooks Moses <brooks.moses@codesourcery.com> 2902 Lee Millward <lee.millward@codesourcery.com> 2903 2904 * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors. 2905 (objc_get_callee_fndecl): Likewise. 2906 29072007-01-23 Andrew Pinski <pinskia@gmail.com> 2908 2909 PR objc/27438 2910 * objc-act.c (objc_add_static_instance): Mark the decl as 2911 TREE_USED. 2912 29132007-01-20 Andrew Pinski <pinskia@gmail.com> 2914 2915 PR objc/30479 2916 * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead 2917 of htab_hash_pointer. 2918 (lookup_interface): Likewise. 2919 (add_class): Likewise. 2920 29212007-01-02 Douglas Gregor <doug.gregor@gmail.com> 2922 2923 * objc-act.c (objc_build_volatilized_type): Keep track of 2924 canonical types. 2925 (objc_get_protocol_qualified_type): Ditto. 2926 29272006-11-02 Andreas Tobler <a.tobler@schweiz.org> 2928 2929 * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and 2930 content where we called cp_finish_file. 2931 29322006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2933 2934 * objc-act.c (synth_module_prologue): Replace calls to 2935 builtin_function with add_builtin_function. 2936 (build_next_objc_exception_stuff): Replace calls to 2937 builtin_function with add_builtin_function. 2938 (build_objc_exception_stuff): Replace calls to 2939 builtin_function with add_builtin_function. 2940 29412006-10-10 Brooks Moses <bmoses@stanford.edu> 2942 2943 * Make-lang.in: Added empty "objc.pdf" target. 2944 29452006-09-26 Andrew Pinski <pinskia@physics.uc.edu> 2946 2947 PR objc/29195 2948 * objc-act.c (objc_push_parm): If we change the type of the 2949 decl, relayout the decl. 2950 29512006-09-19 Eric Christopher <echristo@apple.com> 2952 2953 * objc-act.c (JBLEN): Rename to OBJC_JBLEN, 2954 default to something innocuous. 2955 (build_next_objc_exception_stuff): Rename JBLEN. 2956 29572006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2958 2959 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. 2960 29612006-07-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2962 2963 PR obj-c++/28434 2964 * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes. 2965 29662006-06-06 Mike Stump <mrs@apple.com> 2967 2968 * objc-act.c: Remove prototype for objc_build_volatilized_type. 2969 29702006-05-24 Mike Stump <mrs@apple.com> 2971 2972 * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN. 2973 29742006-05-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2975 2976 PR objc/27240 2977 * objc-act.c (objc_is_public): Return early on invalid type. 2978 29792006-03-02 Fariborz Jahanian <fjahanian@apple.com> 2980 2981 * objc-act.c (init_module_descriptor): Remove file name from 2982 module descriptor. 2983 (gen_type_name_0): Fix ICE when issuing warning. 2984 29852006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2986 2987 * Make-lang.in (OBJC): Remove. 2988 (OBJECTIVE-C): Remove. 2989 (objective-c): Remove. 2990 (.PHONY): Remove objective-c and ObjC. 2991 29922005-12-14 Andrew Pinski <pinskia@physics.uc.edu> 2993 2994 PR objc/25360 2995 * objc-act.c (encode_type): Encode Complex types as 'j' followed 2996 by the inner type. 2997 29982005-12-12 Andrew Pinski <pinskia@physics.uc.edu> 2999 3000 PR objc/25348 3001 * objc-act.c (encode_array): Handle arrays to zero sized types. 3002 30032005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3004 3005 * Make-lang.in (objc.all.build, objc.install-normal): Remove. 3006 30072005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3008 3009 * Make-lang.in: Remove all dependencies on s-gtype. 3010 30112005-12-02 Richard Guenther <rguenther@suse.de> 3012 3013 * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp 3014 next_sjlj_build_exc_extract, next_sjlj_build_catch_list, 3015 next_sjlj_build_try_catch_finally, objc_begin_catch_clause, 3016 build_objc_method_call, objc_rewrite_function_call): Use buildN 3017 instead of build. 3018 30192005-10-20 Geoffrey Keating <geoffk@apple.com> 3020 3021 * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW 3022 on objc_msgSend and like builtin functions. 3023 30242005-10-17 Andreas Krebbel <krebbel1@de.ibm.com> 3025 3026 * objc-act.c (objc_build_component_ref): Adjust call to 3027 finish_class_member_access_expr due to a changed prototype. 3028 30292005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 3030 3031 PR objc/23306 3032 * objc-act.c (generate_strings): Remove and move code to 3033 finish decl to ... 3034 (add_objc_string): here when creating a new string decl. 3035 (finish_objc): Don't call generate_strings. 3036 30372005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 3038 3039 PR objc/23381 3040 * objc-act.c (next_sjlj_build_try_catch_finally): Set 3041 TREE_SIDE_EFFECTS on catch_seq after building it. 3042 30432005-08-09 Andrew Pinski <pinskia@physics.uc.edu> 3044 3045 part of PR objc/21992 3046 * objc-act.c (handle_class_ref): The ref decl is always referenced. 3047 30482005-07-20 Giovanni Bajo <giovannibajo@libero.it> 3049 3050 Make CONSTRUCTOR use VEC to store initializers. 3051 * objc-act.c (objc_build_constructor): Use build_constructor_from_list 3052 instead of build_constructor. 3053 30542005-07-08 Daniel Berlin <dberlin@dberlin.org> 3055 3056 * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is 3057 removed. 3058 * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common. 3059 (KEYWORD_KEY_NAME): Use decl_minimal. 3060 (METHOD_SEL_NAME): Ditto.. 3061 (METHOD_SEL_ARGS): Use decl_non_common. 3062 (METHOD_ADD_ARGS): Ditto. 3063 (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common. 3064 (METHOD_DEFINITION): Ditto. 3065 (METHOD_ENCODING): Ditto. 3066 * objc-lang.c: (objc_init_ts): New function. 3067 30682005-07-07 Ziemowit Laski <zlaski@apple.com> 3069 3070 * objc-act.c (objc_build_struct): Pass in an actual @interface 3071 instead of its name, and annotate the struct created (and all 3072 existing variants thereof) with the @interface. 3073 (objc_compare_types): Treat forward-declared ObjC classes 3074 as stand-alone (root) classes for purposes of type comparisons. 3075 (build_private_template): Move some code to objc_build_struct(). 3076 30772005-07-07 Ziemowit Laski <zlaski@apple.com> 3078 3079 PR objc/22274 3080 * objc-act.c (objc_build_string_object): For GNU-style constants, 3081 use the @interface type rather than the built-in type. 3082 30832005-07-03 Kazu Hirata <kazu@codesourcery.com> 3084 3085 * Make-lang.in (cc1plus-checksum.c): Use 3086 build/genchecksum$(build_exeext), not build/genchecksum$(exeext). 3087 30882005-07-02 Joseph S. Myers <joseph@codesourcery.com> 3089 3090 * objc-act.c: Use %q to quote in diagnostics. 3091 30922005-07-02 Joseph S. Myers <joseph@codesourcery.com> 3093 3094 * objc-act.c: Use '+' flag instead of %J. Use 'q' flag for 3095 quoting. 3096 30972005-06-30 Ziemowit Laski <zlaski@apple.com> 3098 3099 * objc-act.c (objc_build_volatilized_type): New function. 3100 (objc_volatilize_decl): Call objc_build_volatilized_type() 3101 instead of build_qualified_type(). 3102 31032005-06-29 Ziemowit Laski <zlaski@apple.com> 3104 3105 * objc-act.c (objc_build_internal_const_str_type): New function. 3106 (check_string_class_template): Use objc_get_class_ivars() instead 3107 of TYPE_FIELDS() to retrieve ivar list. 3108 (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather 3109 than the field itself. 3110 (objc_build_string_object): Synthesize a "__builtin_ObjCString" 3111 type and use it to lay out compile-time string objects. 3112 * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type): 3113 New. 3114 31152005-06-28 Paul Brook <paul@codesourcery.com> 3116 3117 * objc-act.c (objc_init_exceptions): Call 3118 default_init_unwind_resume_libfunc. 3119 31202005-06-27 Ziemowit Laski <zlaski@apple.com> 3121 3122 * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO 3123 portion of TYPE_LANG_SPECIFIC info for all variants of 3124 a class before calling finish_struct(), and restore 3125 same TYPE_OBJC_INFO afterwards. 3126 31272005-06-25 Kelley Cook <kcook@gcc.gnu.org> 3128 3129 * all files: Update FSF address in copyright headers. 3130 31312005-06-15 Joseph S. Myers <joseph@codesourcery.com> 3132 3133 * objc-act.c (my_build_string_pointer): New. 3134 (objc_get_class_reference, get_super_receiver): Call 3135 my_build_string_pointer instead of my_build_string when building 3136 function arguments. 3137 31382005-05-25 Mike Stump <mrs@mrs.kithrup.com> 3139 3140 * objc-act.c (volatilized_hash): Avoid warnings on 64-bit 3141 machines. 3142 31432005-05-24 Ziemowit Laski <zlaski@apple.com> 3144 3145 * objc-act.c (objc_build_struct): New function. 3146 (objc_derived_from_p): Likewise. 3147 (objc_build_component_ref): Likewise. 3148 (objc_copy_binfo): Likewise. 3149 (objc_xref_basetypes): Likewise. 3150 (objc_lookup_protocol): Likewise. 3151 (objc_compare_protocols): Likewise. 3152 (objc_volatilize_decl): Likewise. 3153 (encode_aggregate_fields): Likewise. 3154 (volatilized_hash): Likewise. 3155 (volatilized_eq): Likewise. 3156 (objc_compare_types): Likewise. 3157 (objc_type_quals_match): Likewise. 3158 (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro 3159 of same name. 3160 (get_class_ivars): Add second parameter indicating if entire 3161 hierarchy is desired. 3162 (struct volatilized_type): New type. 3163 (volatilized_htab): New hash table. 3164 (objc_types_compatible_p, objc_comptypes): Remove functions. 3165 (synth_module_prologue): Do not initialize 'unused_list'. 3166 (objc_get_class_reference): Fix ObjC++ impedance mismatches. 3167 (objc_declare_alias): Implement as a typedef. 3168 (objc_substitute_decl, objc_gimplify_expr): Reformat. 3169 (objc_get_class_ivars): Adjust call to get_class_ivars(). 3170 (next_sjlj_build_enter_and_setjmp, synth_forward_declarations, 3171 build_ivar_reference, get_super_receiver): Call 3172 objc_build_component_ref() instead of build_component_ref(). 3173 (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of 3174 objc_comptypes(). 3175 (build_private_template): Call objc_build_struct() instead of 3176 start_struct() and finish_struct(). 3177 (hash_init): Initialize volatilized_htab. 3178 (objc_is_public): Adjust calls to objc_get_ivars(); adjust 3179 ObjC++ impedance mismatches. 3180 (encode_aggregate_within): Streamline by calling 3181 encode_aggregate_fields(). 3182 * objc-act.h (objc_types_compatible_p): Remove prototype. 3183 (OCTI_UNUSED_LIST, unused_list): Remove slot. 3184 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove. 3185 31862005-05-18 Geoffrey Keating <geoffk@apple.com> 3187 3188 * Make-lang.in (cc1obj-dummy): New. 3189 (cc1obj-checksum.c): New. 3190 (cc1obj-checksum.o): New. 3191 (cc1obj): Add cc1obj-checksum.o. 3192 31932005-05-18 Mike Stump <mrs@apple.com> 3194 3195 PR objc/21641 3196 * objc-act.c (struct interface_tuple): Mark it up for GC. 3197 (interface_htab): It is really a struct interface_tuple. 3198 31992005-05-17 Ziemowit Laski <zlaski@apple.com> 3200 Mike Stump <mrs@apple.com> 3201 3202 Yet more Objective-C++... 3203 3204 * objc-act.c (objc_finish_try_stmt): Add return value. 3205 (objc_build_synchronized): Likewise. 3206 3207 * objc-act.c (objc_is_gcable_type): Add. 3208 (objc_substitute_decl): Add. 3209 (objc_build_ivar_assignment): Add. 3210 (objc_build_global_assignment): Add. 3211 (objc_build_strong_cast_assignment): Add. 3212 (objc_is_ivar_reference_p): Add. 3213 (objc_is_global_reference_p): Add. 3214 (objc_generate_write_barrier): Add. 3215 (objc_rewrite_function_call): Add. 3216 (objc_gimplify_expr): Add Objective-C++ support. 3217 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 3218 (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add. 3219 (INIT_TYPE_OBJC_INFO): Add Objective-C++ support. 3220 (DUP_TYPE_OBJC_INFO): Likewise. 3221 (struct imp_entry): Add field has_cxx_cdtors. 3222 (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL, 3223 OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL, 3224 OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL, 3225 OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL, 3226 OCTI_ASSIGN_STRONGCAST_DECL. 3227 (umsg_fast_decl): Add. 3228 (objc_assign_ivar_decl): Add. 3229 (objc_assign_ivar_fast_decl): Add. 3230 (objc_assign_global_decl): Add. 3231 (objc_assign_strong_cast_decl): Add. 3232 (objc_method_list_ptr): Add. 3233 (objc_method_proto_list_ptr): Add. 3234 (objc_ivar_list_ptr): Add. 3235 3236 * objc-act.c (should_call_super_dealloc): Add. 3237 (OBJC_VERSION): Bump to 6. 3238 (objc_is_gcable_type): Add. 3239 (objc_substitute_decl): Add. 3240 (objc_build_ivar_assignment): Add. 3241 (objc_build_global_assignment): Add. 3242 (objc_build_strong_cast_assignment): Add. 3243 (objc_is_gcable_p): Add. 3244 (objc_is_ivar_reference_p): Add. 3245 (objc_is_global_reference_p): Add. 3246 (generate_shared_structures): Add flags parameter. 3247 (objc_generate_cxx_ctor_or_dtor): Add. 3248 (objc_generate_cxx_cdtors): Add. 3249 (add_class): Add name parameter. 3250 (objc_types_share_size_and_alignment): Add. 3251 (comp_proto_with_proto): Add strict parameter. 3252 (CLS_HAS_CXX_STRUCTORS): Add. 3253 (TAG_ASSIGNIVAR): Add. 3254 (TAG_ASSIGNGLOBAL): Add. 3255 (TAG_ASSIGNSTRONGCAST): Add. 3256 (TAG_MSGSEND_FAST): Add. 3257 (TAG_ASSIGNIVAR_FAST): Add. 3258 (TAG_CXX_CONSTRUCT): Add. 3259 (TAG_CXX_DESTRUCT): Add. 3260 (OBJC_LOOKUP_CLASS): Add. 3261 (OBJC_LOOKUP_NO_SUPER): Add. 3262 (objc_finish_file): Add pch support. 3263 (objc_finish_implementation): Add Objective-C++ support. 3264 (synth_module_prologue): Likewise. 3265 (synth_module_prologue): Add fast dispatching. 3266 (objc_get_class_reference): Add Objective-C++ support. 3267 (objc_generate_write_barrier): Likewise. 3268 (next_sjlj_build_enter_and_setjmp): Likewise. 3269 (objc_begin_try_stmt): Likewise. 3270 (build_next_objc_exception_stuff): Add fast ivar support. 3271 (build_private_template): Mark the record as used so debug 3272 information is generated. 3273 (build_protocol_template): Add Objective-C++ support. 3274 (objc_method_parm_type) Likewise. 3275 (objc_generate_cxx_ctor_or_dtor): Likewise. 3276 (objc_generate_cxx_cdtors): Likewise. 3277 (build_protocol_initializer): Likewise. 3278 (build_category_template): Likewise. 3279 (build_class_template): Likewise. 3280 (build_method_list_template): Likewise. 3281 (build_category_initializer): Likewise. 3282 (build_shared_structure_initializer): Likewise. 3283 (objc_finish_message_expr): Likewise. 3284 (build_objc_method_call): Add fast dispatch support. 3285 (lookup_method_static): Add support to end search at superclasses. 3286 (add_method_to_hash_list): Add strict parameter to 3287 comp_proto_with_proto. 3288 (objc_add_method): Likewise. 3289 (objc_add_method): Also set the interface_value. 3290 (add_instance_variable): Add Objective-C++ support. 3291 (objc_is_public): Likewise. 3292 (start_class): Likewise. 3293 (continue_class): Likewise. 3294 (encode_aggregate_within): Likewise. 3295 (start_method_def): Likewise. 3296 (objc_start_function): Clear current_function_returns_value 3297 and current_function_returns_null. 3298 (really_start_method): Add Objective-C++ support. 3299 (objc_finish_method_definition): Add warning for missing 3300 [super dealloc]. 3301 (finish_objc): Add Objective-C++ support. 3302 (generate_objc_image_info): Likewise. 3303 (objc_lookup_ivar): Likewise. 3304 * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise. 3305 (INIT_TYPE_OBJC_INFO): Likewise. 3306 (DUP_TYPE_OBJC_INFO): Likewise. 3307 33082005-04-23 DJ Delorie <dj@redhat.com> 3309 3310 * objc-act.c: Adjust warning() callers. 3311 33122005-04-21 Roger Sayle <roger@eyesopen.com> 3313 3314 * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing 3315 this field of an objc method decl. 3316 * objc-act.c (build_method_decl): Take an additional "ellipsis" 3317 argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate. 3318 (objc_build_method_signature): Accept additional "ellipsis" 3319 argument and pass it to build_method_decl. 3320 (get_arg_type_list, start_method_def, gen_method_decl): Use 3321 the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the 3322 TREE_OVERFLOW field of a TREE_LIST node. 3323 33242005-04-20 Joseph S. Myers <joseph@codesourcery.com> 3325 3326 PR c/12913 3327 * objc-act.c (objc_start_function): Create stack level for context 3328 of identifiers with variably modified type. 3329 33302005-03-30 Joseph S. Myers <joseph@codesourcery.com> 3331 3332 PR c/772 3333 PR c/17913 3334 * objc-act.c (objc_start_function): Push context on 3335 label_context_stack. 3336 33372005-03-23 Joseph S. Myers <joseph@codesourcery.com> 3338 3339 * objc-act.c (next_sjlj_build_enter_and_setjmp, 3340 next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally): 3341 Call c_common_truthvalue_conversion. 3342 33432005-02-25 Joseph S. Myers <joseph@codesourcery.com> 3344 3345 * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o, 3346 objc/objc-parse.c, objc/objc-parse.y): Remove. 3347 (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean, 3348 objc.distclean, objc.maintainer-clean): Update for new parser. 3349 * config-lang.in (gtfiles): Update for new parser. 3350 33512005-01-29 Kazu Hirata <kazu@cs.umass.edu> 3352 3353 * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update 3354 copyright. 3355 33562005-01-27 Matt Austern <austern@apple.com> 3357 3358 * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before 3359 calling instantiate_pending_templates. 3360 33612005-01-26 Alexander Malmberg <alexander@malmberg.org> 3362 3363 PR objc/18862 3364 * objc-act.c (build_selector_translation_table): Use 3365 input_location in the diagnostic for the GNU runtime or if 3366 TREE_PURPOSE (chain) is NULL. 3367 33682005-01-25 Alexander Malmberg <alexander@malmberg.org> 3369 3370 PR objc/18408 3371 * objc-act.c (objc_types_compatible_p): New function. 3372 * objc-act.h (objc_types_compatible_p): Declare. 3373 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define. 3374 33752005-01-16 Ziemowit Laski <zlaski@apple.com> 3376 3377 * objc-act.c (objc_push_parm): Call c_type_promotes_to() 3378 via a lang-hook. 3379 33802005-01-15 Ziemowit Laski <zlaski@apple.com> 3381 3382 PR objc/19321 3383 * objc-act.c (get_arg_type_list): Decay function arguments into 3384 pointers. 3385 (objc_push_parm): Likewise; bring PARM_DECL construction closer 3386 in line with what the C front-end does. 3387 (objc_get_parm_info): Call pushdecl() and finish_decl() on 3388 each PARM_DECL, like the C front-end does. 3389 (start_method_def): Remove redundant ARRAY_TYPE decay. 3390 (objc_start_function): Bring closer in line with what the 3391 C front-end does for functions. 3392 33932005-01-14 Mike Stump <mrs@apple.com> 3394 3395 * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so 3396 that -fobjc-exceptions is accepted. 3397 33982004-12-30 Ziemowit Laski <zlaski@apple.com> 3399 3400 PR objc/18971 3401 * objc-act.c (get_arg_type_list, start_method_def): Decay 3402 array arguments into pointers. 3403 (gen_type_name_0): Learn to pretty-print array types. 3404 34052004-12-15 Ziemowit Laski <zlaski@apple.com> 3406 3407 * objc-act.c (build_private_template): Change to return 'void'; do 3408 not set ivar_context, uprivate_record or objc_instance_type. 3409 (objc_comptypes, gen_type_name_0): For types 'id' and 'Class', 3410 retrieve protocol list from the pointee rather than the pointer itself; 3411 check TYPE_HAS_OBJC_INFO(...) precondition before accessing 3412 TYPE_OBJC_PROTOCOL_LIST. 3413 (objc_get_protocol_qualified_type): For types 'id' and 'Class', 3414 construct a variant of the pointee as well as the pointer, and 3415 store protocol information in the former. When creating variants 3416 of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate 3417 TYPE_OBJC_INTERFACE information. 3418 (objc_declare_class): If a TYPE_DECL is looked up, retrieve the 3419 underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE; 3420 for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE 3421 holding an IDENTIFIER_NODE. 3422 (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before 3423 accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead 3424 of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding 3425 an IDENTIFIER_NODE (meaning a @class forward-declaration only). 3426 (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling 3427 lookup_interface(). 3428 (continue_class): For @implementations, set ivar_context, 3429 uprivate_record and objc_instance_type, for @interfaces, call 3430 build_private_template(). 3431 (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing 3432 TYPE_OBJC_INTERFACE. 3433 (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before 3434 accessing TYPE_OBJC_PROTOCOL_LIST. 3435 * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO, 3436 DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC, 3437 SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros. 3438 (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points 3439 to an actual @interface; stored in TYPE_LANG_SPECIFIC(...). 3440 (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in 3441 TYPE_LANG_SPECIFIC(...). 3442 (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete. 3443 (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER, 3444 TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P; 3445 adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST 3446 instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST. 3447 34482004-11-29 Joseph Myers <joseph@codesourcery.com> 3449 3450 PR c/7544 3451 * Make-lang.in (objc/objc-act.o): Update dependencies. 3452 * objc-act.c (objc_finish_file): Call 3453 maybe_apply_pending_pragma_weaks if not OBJCPLUS. 3454 34552004-11-09 Andrew Pinski <pinskia@physics.uc.edu> 3456 3457 PR objc/18406 3458 * obj-act.c (encode_type): 96bits doubles are encoded the 3459 same way as 64bit and 128bit doubles are. 3460 34612004-11-09 Joseph S. Myers <joseph@codesourcery.com> 3462 3463 * objc-act.c: Use %q, %< and %> for quoting in diagnostics. 3464 34652004-11-08 Andrew Pinski <pinskia@physics.uc.edu> 3466 3467 PR objc/16546 3468 * objc-act.c (generate_method_descriptors): Remove setting 3469 the new decls' type to variable_length_type. 3470 (generate_ivar_lists): Likewise. 3471 (generate_dispatch_tables): Likewise. 3472 34732004-10-30 Ziemowit Laski <zlaski@apple.com> 3474 3475 * objc-act.c (objc_lookup_ivar): The new OTHER parameter 3476 contains the result of the ID lookup by the C or C++ 3477 front-end; in class methods, use OTHER if it exists; 3478 in instance methods, use OTHER only if it is locally 3479 declared. 3480 34812004-10-26 Ziemowit Laski <zlaski@apple.com> 3482 3483 * objc-act.c (finish_class): Do not synthesize bogus 3484 'extern objc_object *_Foo;' declarations for @interface Foo. 3485 34862004-10-25 Ziemowit Laski <zlaski@apple.com> 3487 David Ayers <d.ayers@inode.at> 3488 3489 * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED 3490 instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for: 3491 'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *'; 3492 'Class <Protocol> == id' and 'Class <Protocol> == Class'. 3493 (objc_is_id): Add test for 'super'. 3494 (objc_finish_message_expr): Allow for messaging of 'Class <Proto>' 3495 receivers; if class methods are not found in protocol lists, search 3496 for instance methods therein and warn if one is found. Look in 3497 global hash tables for suitable method as a last resort when messaging 3498 'id <Proto>', 'Class <Proto>' and invalid receiver types. 3499 (objc_add_method): Insert instance methods listed in protocols into 3500 the global class method hash table. 3501 * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to 3502 IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in 3503 addition to 'id <Proto>'. 3504 35052004-10-21 Andrew Pinski <pinskia@physics.uc.edu> 3506 3507 PR objc/17923 3508 * objc-act.c (objc_build_string_object): Create a CONST_DECL 3509 for the NeXT runtime case. 3510 35112004-10-02 Kazu Hirata <kazu@cs.umass.edu> 3512 3513 * objc-act.c: Fix comment typos. 3514 35152004-09-24 Ziemowit Laski <zlaski@apple.com> 3516 3517 * objc-act.c (init_objc_symtab, init_module_descriptor, 3518 build_shared_structure_initializer): When initializing 'long' 3519 fields, ensure that the initializer value is also 'long'. 3520 35212004-09-24 Zack Weinberg <zack@codesourcery.com> 3522 3523 * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION 3524 throughout. 3525 (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION. 3526 (build_selector_translation_table): Use %J in diagnostic 3527 instead of diddling input_line. Fix spelling. 3528 35292004-09-21 Ziemowit Laski <zlaski@apple.com> 3530 3531 * objc-act.c (objc_fold_objc_type_ref): New function. 3532 * objc-act.h (objc_fold_objc_type_ref): New prototype. 3533 35342004-09-09 Joseph S. Myers <jsm@polyomino.org.uk> 3535 3536 * objc-act.c (objc_start_function, really_start_method, 3537 objc_get_parm_info, start_method_def): Update to new arg_info 3538 structures. 3539 35402004-09-07 Ziemowit Laski <zlaski@apple.com> 3541 3542 * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of 3543 objc/objc-act.h. 3544 (objc/objc-act.o): Depend on $(HASHTAB_H). 3545 * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and 3546 objcp-decl.h instead of c-tree.h. 3547 (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix, 3548 error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl, 3549 build_protocol_template): Adjust prototypes. 3550 (build_module_initializer_routine, start_class, continue_class, 3551 finish_class, start_method_def, objc_start_function, start_protocol, 3552 build_method_decl, objc_add_method, add_instance_variable, 3553 build_ivar_reference, is_ivar, is_private, get_super_receiver, 3554 build_selector_table_decl, objc_push_parm, objc_get_parm_info, 3555 gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl, 3556 create_field_decl): New prototypes. 3557 (objc_expand_function_end, comp_method_with_proto, objc_expr_last, 3558 gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl, 3559 define_decl, create_builtin_decl, gen_declspecs): Remove prototypes. 3560 (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME. 3561 (CLASS_TYPEDEF_NAME): New. 3562 (TAG_EXECCLASS): Change from a global variable to a #define. 3563 (TAG_RETURN_STRUCT): Delete. 3564 (TAG_GNUINIT): New, holds '__objc_gnu_init' name. 3565 (objc_inherit_code, objc_public_flag): New, moved from c-parse.in. 3566 (string_descriptor): New struct. 3567 (string_htab): New hash table. 3568 (string_hash, string_eq): New prototypes. 3569 (generate_struct_by_value_array): Call create_field_decl() instead of 3570 create_builtin_decl(). 3571 (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS; 3572 In ObjC++ mode, call cxx_init() instead of c_objc_common_init(). 3573 (objc_finish_file): In ObjC++, call instantiate_pending_templates() 3574 and cp_finish_file(). 3575 (define_decl, get_static_reference, get_protocol_reference, 3576 create_builtin_decl): Remove functions. 3577 (objc_start_class_interface, objc_start_category_interface, 3578 objc_start_protocol, objc_continue_interface, objc_finish_interface, 3579 objc_start_class_implementation, objc_start_category_implementation, 3580 objc_continue_implementation, objc_finish_implementation, 3581 objc_set_visibility, objc_set_method_type, 3582 objc_build_method_signature, objc_add_method_declaration, 3583 objc_start_method_definition, objc_add_instance_variable, 3584 objc_get_protocol_qualified_type, create_field_decl, 3585 start_var_decl, finish_var_decl): New functions. 3586 (setup_string_decl): Simplify since it is only called once. 3587 (synth_module_prologue): Call build_class_template(); predefine 'id' 3588 and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug 3589 hooks for duration of function; fix GNU runtime messenger signatures 3590 to correspond to reality; forward-declare '__objc_exec_class' for the 3591 GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate 3592 'extern "C" { ... }' wrappers around synthesized declarations; call 3593 build_protocol_template() and build_category_template(). 3594 (string_hash, string_eq): New functions. 3595 (objc_build_string_object): Check metaclass correctness only once; 3596 store string literals in hash table. 3597 (objc_build_constructor): Do not convert initializer elements; 3598 adjust for ObjC++ impedance mismatch. 3599 (build_objc_symtab_template): Call create_field_decl() instead of 3600 create_builtin_decl(). 3601 (init_objc_symtab): Add missing conversion to initializer element. 3602 (build_metadata_decl): Call start_var_decl() instead of define_decl(). 3603 (generate_objc_symtab_decl): Do not call build_category_template(); 3604 call start_var_decl() and finish_var_decl() instead of start_decl() 3605 and finish_decl(). 3606 (build_module_descriptor): Call create_field_decl() instead of 3607 grokfield(); call start_var_decl() and finish_var_decl() instead of 3608 start_decl() and finish_decl(); always mark module descriptor as 3609 used; move GNU runtime-specific functionality to 3610 build_module_initializer_routine(). 3611 (build_module_initializer_routine): New function, broken off of 3612 build_module_descriptor(). 3613 (objc_static_init_needed_p, objc_generate_static_init_call): New 3614 functions. 3615 (generate_static_references, generate_strings, 3616 build_selector_translation_table, generate_descriptor_table, 3617 generate_ivars_list, generate_dispatch_table, generate_category): Call 3618 start_var_decl() and finish_var_decl() instead of start_decl() and 3619 finish_decl(); build a type directly instead of via groktypename(). 3620 (build_selector_reference_decl, build_selector_table_decl, 3621 build_class_reference_decl, build_protocol_reference, 3622 generate_objc_image_info): Call start_var_decl() instead of 3623 build_decl(). 3624 (build_selector_reference): For GNU runtime, do not call 3625 build_selector_reference_decl(). 3626 (build_selector, build_typed_selector_reference): Always convert 3627 result to the selector type. 3628 (add_objc_string): Cast return value to 'char *'. 3629 (build_method_prototype_template, build_selector_template, 3630 build_method_template): Use actual selector type for fields 3631 pointing to selectors. 3632 (finish_objc): For GNU runtime, call 3633 build_module_initializer_routine() after build_module_descriptor(). 3634 (generate_protocol_list, generate_shared_structures): Call 3635 start_var_decl() and finish_var_decl() instead of start_decl() and 3636 finish_decl(); build a type directly instead of via 3637 groktypename(). 3638 (synth_id_with_class_suffix): Return a string. 3639 (get_arg_type_list): For instance methods, use the instance type for 3640 'self'; do not call groktypename_in_parm_context(). 3641 (build_objc_string_decl): Squash redeclaration errors in ObjC++. 3642 (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME; 3643 handle RECORD_TYPEs in ObjC as well as ObjC++. 3644 (objc_is_id): New function. 3645 (objc_is_object_ptr): Return the canonical type node. 3646 (objc_get_class_ivars): Simplify using get_class_ivars(). 3647 (get_class_ivars): Remove second parameter; create a fresh copy 3648 of the ivar list for each call; do not check for existence of 3649 super class. 3650 (objc_eh_runtime_type): Mark #ifndef OBJCPLUS. 3651 (objc_init_exceptions): When using SJLJ-style exceptions, require 3652 the use of '-fobjc-exceptions' flag; do not require it for DWARF-style 3653 exceptions. 3654 (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use 3655 objc_object_type instead of objc_id_type. 3656 (objc_begin_catch_clause): Convert the incoming PARM_DECL into 3657 a VAR_DECL before placing it in the appropriate scope; do not 3658 call define_decl(); adjust call to c_begin_compound_stmt(); 3659 use objc_object_type instead of objc_id_type. 3660 (build_next_objc_exception_stuff): Call create_field_decl() instead 3661 of create_builtin_decl(); construct type directly instead of calling 3662 groktypename(); use OBJC_VOID_AT_END to mark end of function parameters. 3663 (build_private_template): Adjust call to get_class_ivars(); build 3664 a type directly instead of via groktypename(). 3665 (build_protocol_template, build_method_prototype_list_template, 3666 build_method_prototype_template, build_category_template, 3667 build_selector_template, build_class_template, build_super_template, 3668 build_ivar_template, build_ivar_list_template, 3669 build_method_list_template, build_method_template): 3670 Call create_field_decl() instead of grokfield(). 3671 (objc_method_parm_type): Do not call groktypename(). 3672 (generate_descriptor_table): Call start_var_decl() and 3673 finish_var_decl() instead of start_decl() and finish_decl(). 3674 (generate_method_descriptors, build_protocol_initializer, 3675 generate_dispatch_tables, build_category_initializer, 3676 build_shared_structure_initializer): Do not call groktypename(). 3677 (generate_protocols): Call start_var_decl() and finish_var_decl() 3678 instead of start_decl() and finish_decl(); do not call groktypename(). 3679 (error_with_ivar): Remove last parameter. 3680 (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition 3681 to CLASS_IVARS lists; adjust calls to error_with_ivar(). 3682 (generate_ivar_lists): Convert one of the initializer elements; do 3683 not call groktypename(). 3684 (get_arg_type_list, start_method_def, gen_method_def): Account for 3685 new representation of variable arguments and '...' in Objective-C 3686 methods; add Objective-C++ impedance matching code. 3687 (is_objc_type_qualifier): Remove function. 3688 (adjust_type_for_id_default): Simplify; there is no longer a need to 3689 wade through declspecs. 3690 (lookup_interface, start_class, continue_class, 3691 finish_class, start_method_def, start_protocol, build_method_decl, 3692 objc_add_method, add_instance_variable, build_ivar_reference, 3693 is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue): 3694 Make into static functions. 3695 (receiver_is_class_object): Use new IS_CLASS() macro. 3696 (objc_build_message_expr): Tweak ObjC++ message argument handling; 3697 call objc_finish_message_expr() instead of finish_message_expr(). 3698 (finish_message_expr): Rename to objc_finish_message_expr(); use 3699 OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME. 3700 call gen_type_name() instead of gen_declaration(); call objc_is_id() 3701 instead of using IS_ID and IS_CLASS; Use objc_class_name instead of 3702 calling get_identifier("Class"); handle CONVERT_EXPRs in receiver. 3703 (build_objc_method_call, warn_with_method): Do not call groktypename(). 3704 (build_ivar_reference): Call convert() instead of clobbering in a 3705 type. 3706 (hash_init): Initialize string_htab hash table. 3707 (add_instance_variable): Simplify parameter list; do not call grokfield(); 3708 do not populate CLASS_IVARS list. 3709 (start_class): Check for the existence of super class, if one was specified. 3710 (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not 3711 call build_class_template(); adjust call to get_class_ivars(); call 3712 build_decl(), pushdecl() and finish_decl() instead of define_decl(). 3713 (finish_class): Call build_decl(), pushdecl() and finish_decl() instead 3714 of define_decl(). 3715 (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size. 3716 (start_protocol): Do not call build_protocol_template(); use 3717 PROTOCOL_BINFO_ELTS for the tree vector size. 3718 (encode_type_qualifiers): Do not handle the 'const' qualifier here. 3719 (encode_pointer): Encode 'const char *' as 'r*', for backwards 3720 compatibility. 3721 (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld". 3722 (encode_type): Handle the 'const' qualifier here. 3723 (objc_parmlist): New global variable, sued by objc_push_parm and 3724 objc_get_parm_info(). 3725 (objc_push_parm, objc_get_parm_info): New functions. 3726 (objc_expr_last): Remove function. 3727 (synth_self_and_ucmd_args): For instance methods, use the instance 3728 type for 'self'; call objc_push_parm() instead of push_parm_decl(). 3729 (start_method_def): Do not call push_scope(), declare_parm_level(), 3730 pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last(); 3731 just use objc_push_parm() and objc_get_parm_info(). 3732 (comp_method_with_proto): Remove function. 3733 (objc_types_are_equivalent): Strip away indirections before comparing 3734 underlying types. 3735 (comp_proto_with_proto): Do not call groktypename(); types are no 3736 longer in raw declspec format. 3737 (objc_start_function): New function. 3738 (really_start_method): Call comp_proto_with_proto() instead of 3739 comp_method_with_proto(); call objc_start_function() instead of 3740 hand-crafting a function declarator. 3741 (continue_method_def, objc_expand_function_end): Remove functions. 3742 (get_super_receiver): Call objc_get_current_scope() instead of 3743 get_current_scope(); reference 'super_class' field (instead of 3744 'class'). 3745 (finish_method_def): Rename to objc_finish_method_definition() and 3746 add a function decl parameter; move method encoding call from 3747 objc_expand_function_end(). 3748 (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs, 3749 gen_declaration_1): Remove functions. 3750 (tmpbuf, RAW_DECLSPEC): Remove. 3751 (gen_declaration): Remove second parameter; simplify to deal 3752 with TYPE_P nodes instead of raw declspecs. 3753 (gen_type_name, gen_type_name_0): New functions. 3754 (gen_method_decl): Remove second parameter; call gen_type_name() 3755 instead of gen_declaration_1(). 3756 (dump_interface): Adjust calls to gen_declaration() and 3757 gen_method_decl(); do not allocate a separate string buffer. 3758 (init_objc): Allocate a larger string buffer to accommodate 3759 dump_interface(); adjust call to build_module_descriptor(); 3760 add call to build_module_initializer_routine() for the GNU 3761 runtime. 3762 (generate_classref_translation_entry): Do not call start_decl(); call 3763 finish_var_decl() instead of finish_decl(); call convert() instead of 3764 build_c_cast(). 3765 * objc-act.h (CLASS_OWN_IVARS): Remove accessor. 3766 (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is 3767 gone. 3768 (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New. 3769 (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove. 3770 (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME, 3771 objc_object_type and objc_object_name, respectively. 3772 (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference, 3773 objc_class_name): New. 3774 (IS_CLASS): New macro. 3775 (IS_ID, IS_SUPER): Robustify. 3776 (OCTI_EXECCLASS_DECL, execclass_decl): New. 3777 (finish_file, start_class, continue_class, finish_class, 3778 start_method_def, continue_method_def, finish_method_def, 3779 start_protocol, finish_protocol, objc_build_throw_stmt, 3780 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, 3781 objc_build_synchronized_epilogue, objc_build_try_prologue, 3782 objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue, 3783 objc_build_finally_prologue, objc_build_finally_epilogue, 3784 is_ivar, is_private, is_public, add_instance_variable, objc_add_method, 3785 get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name, 3786 get_class_reference, get_static_reference, get_object_reference, 3787 build_message_expr, finish_message_expr, build_selector_expr, 3788 build_ivar_reference, build_keyword_decl, build_method_decl, 3789 build_protocol_expr, build_objc_string_object, objc_declare_alias, 3790 objc_declare_class, objc_declare_protocols, objc_comptypes, 3791 objc_check_decl, build_encode_expr): Remove prototypes. 3792 (imp_count, cat_count): Make GGC-aware. 3793 (OBJC_SET_TYPE_NAME): New macro. 3794 37952004-09-03 Ziemowit Laski <zlaski@apple.com> 3796 3797 * config-lang.in: Update copyright notice. 3798 (lang_requires): Indicate that ObjC requires C to be built first. 3799 38002004-09-01 Ziemowit Laski <zlaski@apple.com> 3801 3802 * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of 3803 TYPE_NAME. 3804 (build_objc_string_object): Rename to objc_build_string_object(). 3805 (get_class_reference): Rename to objc_get_class_reference(). 3806 (get_class_ivars_from_name): Rename to objc_get_class_ivars(). 3807 (next_sjlj_build_catch_list, get_super_receiver): Call 3808 objc_get_class_reference() instead of get_class_reference(). 3809 (build_keyword_decl): Rename to objc_build_keyword_decl(). 3810 (build_message_expr): Rename to objc_build_message_expr(). 3811 (build_protocol_expr): Rename to objc_build_protocol_expr(). 3812 (build_selector_expr): Rename to objc_build_selector_expr(). 3813 (build_encode_expr): Rename to objc_build_encode_expr(). 3814 * objc-act.h (get_class_ivars_from_name): Rename prototype to 3815 objc_get_class_ivars(). 3816 (get_class_reference): Rename prototype to objc_get_class_reference(). 3817 (build_message_expr): Rename prototype to objc_build_message_expr(). 3818 (build_selector_expr): Rename prototype to objc_build_selector_expr(). 3819 (build_keyword_decl): Rename prototype to objc_build_keyword_decl(). 3820 (build_protocol_expr): Rename prototype to objc_build_prototype_expr(). 3821 (build_objc_string_object): Rename prototype to 3822 objc_build_string_object(). 3823 38242004-09-01 Ziemowit Laski <zlaski@apple.com> 3825 3826 * objc-act.c (lookup_interface): Make function 'static' and add a 3827 local prototype. 3828 (objc_check_decl, get_class_reference, objc_declare_alias, 3829 objc_declare_class, objc_is_object_ptr): Call objc_is_class_name() 3830 instead of is_class_name(). 3831 (get_super_receiver, objc_clear_super_receiver): Call 3832 objc_get_current_scope() instead of get_current_scope(). 3833 (is_class_name): Rename to objc_is_class_name. 3834 (lookup_objc_ivar): Rename to objc_lookup_ivar. 3835 38362004-08-28 Ziemowit Laski <zlaski@apple.com> 3837 3838 * objc-act.c (objc_is_reserved_word): New function. 3839 38402004-08-15 Ziemowit Laski <zlaski@apple.com> 3841 3842 * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H), 3843 $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h. 3844 (objc/objc-parse.o): Do not depend on gtype-objc.h. 3845 * objc-act.c: Do not include gtype-objc.h. 3846 (finish_file): Rename to objc_finish_file(). 3847 * objc-act.h (finish_file): Update copyright notice; remove prototype. 3848 * objc-lang.c: Update copyright notice; include diagnostic.h, 3849 c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include 3850 toplev.h. 3851 (finish_file): New hook routine. 3852 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS, 3853 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION, 3854 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS, 3855 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, 3856 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, 3857 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION, 3858 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL, 3859 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, 3860 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, 3861 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED, 3862 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, 3863 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, 3864 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, 3865 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, 3866 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, 3867 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, 3868 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING, 3869 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, 3870 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, 3871 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE, 3872 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE, 3873 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, 3874 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO, 3875 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS): 3876 Move to c-objc-common.h. 3877 3878 3879Copyright (C) 2004-2020 Free Software Foundation, Inc. 3880 3881Copying and distribution of this file, with or without modification, 3882are permitted in any medium without royalty provided the copyright 3883notice and this notice are preserved. 3884