12019-05-03 Release Manager 2 3 * GCC 9.1.0 released. 4 52019-04-05 Martin Liska <mliska@suse.cz> 6 7 PR translation/89936 8 * objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in 9 order to wrap keywords or arguments. 10 (objc_add_synthesize_declaration_for_property): Likewise. 11 122019-01-09 Sandra Loosemore <sandra@codesourcery.com> 13 14 PR other/16615 15 16 * objc-act.c: Mechanically replace "can not" with "cannot". 17 182019-01-01 Jakub Jelinek <jakub@redhat.com> 19 20 Update copyright years. 21 222018-12-19 David Malcolm <dmalcolm@redhat.com> 23 24 PR c++/43064 25 PR c++/43486 26 * objc-act.c (objc_maybe_build_component_ref): Strip any location 27 wrapper before checking for UOBJC_SUPER_decl and self_decl. 28 (objc_finish_message_expr): Strip any location wrapper. 29 (gen_declaration): Strip location wrappers from "w". 30 312018-10-17 David Malcolm <dmalcolm@redhat.com> 32 33 * Make-lang.in (selftest-objc): New. 34 352018-04-20 Martin Liska <mliska@suse.cz> 36 37 PR objc/85476 38 * objc-act.c (finish_class): Do not overflow string buffer. 39 402018-01-03 Jakub Jelinek <jakub@redhat.com> 41 42 Update copyright years. 43 442017-11-30 Jakub Jelinek <jakub@redhat.com> 45 46 * objc-next-runtime-abi-01.c (generate_dispatch_table): Use ; instead 47 of ;;. 48 492017-11-10 Martin Sebor <msebor@redhat.com> 50 51 PR c/81117 52 * objc-encoding.c (encode_type): Use memcpy instead of strncpy. 53 542017-10-31 David Malcolm <dmalcolm@redhat.com> 55 56 * objc-gnu-runtime-abi-01.c (objc_gnu_runtime_abi_01_init): Use 57 UNKNOWN_LOCATION rather than 0. 58 592017-10-17 Nathan Sidwell <nathan@acm.org> 60 61 * objc-act.c (objc_common_tree_size): Return size of TYPE nodes. 62 632017-10-10 Richard Sandiford <richard.sandiford@linaro.org> 64 65 * objc-act.c (objc_decl_method_attributes): Use wi::to_wide when 66 operating on trees as wide_ints. 67 682017-09-29 Jakub Jelinek <jakub@redhat.com> 69 70 * objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at 71 DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL. 72 732017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 74 Alan Hayward <alan.hayward@arm.com> 75 David Sherwood <david.sherwood@arm.com> 76 77 * objc-encoding.c (encode_type): Use SCALAR_INT_TYPE_MODE. 78 792017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 80 Alan Hayward <alan.hayward@arm.com> 81 David Sherwood <david.sherwood@arm.com> 82 83 * objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE 84 instead of TYPE_MODE. 85 862017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 87 Alan Hayward <alan.hayward@arm.com> 88 David Sherwood <david.sherwood@arm.com> 89 90 * objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in 91 case statements. 92 932017-08-09 Marek Polacek <polacek@redhat.com> 94 95 PR c/81417 96 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update 97 a call to build_conditional_expr. 98 992017-08-08 Martin Liska <mliska@suse.cz> 100 101 * objc-gnu-runtime-abi-01.c: Include header files. 102 * objc-next-runtime-abi-01.c: Likewise. 103 * objc-next-runtime-abi-02.c: Likewise. 104 1052017-07-20 Nathan Sidwell <nathan@acm.org> 106 107 Remove TYPE_METHODS. 108 * objc-runtime-shared-support.c (build_ivar_list_initializer): 109 Don't presume first item is a FIELD_DECL. 110 1112017-07-19 Nathan Sidwell <nathan@acm.org> 112 113 * objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use 114 TYPE_{MIN,MAX}_VALUE_RAW. 115 1162017-05-16 Sylvestre Ledru <sylvestre@debian.org> 117 118 * objc-runtime-shared-support.c (build_module_descriptor): 119 Remove unnecessary conditional when building instance of 120 objc_module. CID 1406758 121 1222017-05-09 Nathan Sidwell <nathan@acm.org> 123 124 * objc-gnu-runtime-abi-01.c (objc_add_static_instance): Use 125 pushdecl lang_hook. 126 1272017-05-04 Martin Sebor <msebor@redhat.com> 128 129 PR translation/80280 130 * objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing 131 quoting to directives. 132 * objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto. 133 * objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto. 134 1352017-01-01 Jakub Jelinek <jakub@redhat.com> 136 137 Update copyright years. 138 1392016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com> 140 Richard Biener <rguenther@suse.de> 141 142 * config-lang.in (gtfiles): Add c/c-parser.h. 143 1442016-09-27 Jakub Jelinek <jakub@redhat.com> 145 146 * objc-act.c (continue_class): Remove break after return. 147 (objc_maybe_printable_name): Likewise. 148 1492016-08-12 Marek Polacek <polacek@redhat.com> 150 151 PR c/7652 152 * objc-encoding.c (encode_type): Add FALLTHRU. 153 1542016-06-07 David Malcolm <dmalcolm@redhat.com> 155 156 * objc-act.c (objc_build_component_ref): Update call 157 to build_component_ref for added param, passing UNKNOWN_LOCATION. 158 1592016-04-18 Michael Matz <matz@suse.de> 160 161 * objc-act.c (objc_build_struct): Use SET_DECL_ALIGN. 162 1632016-02-12 Jakub Jelinek <jakub@redhat.com> 164 165 * objc-act.c: Spelling fixes - behaviour -> behavior and 166 neighbour -> neighbor. 167 * objc-map.h: Likewise. 168 1692016-01-04 Jakub Jelinek <jakub@redhat.com> 170 171 Update copyright years. 172 1732015-11-11 Andrew MacLeod <amacleod@redhat.com> 174 175 * objc-act.c: Remove unused header files. 176 * objc-encoding.c: Likewise. 177 * objc-gnu-runtime-abi-01.c: Likewise. 178 * objc-lang.c: Likewise. 179 * objc-map.c: Likewise. 180 * objc-next-runtime-abi-01.c: Likewise. 181 * objc-next-runtime-abi-02.c: Likewise. 182 * objc-runtime-shared-support.c: Likewise. 183 1842015-11-09 Alan Modra <amodra@gmail.com> 185 186 * objc-encoding.c (encode_aggregate_within): Cast obstack_next_free 187 return value. 188 1892015-10-29 Andrew MacLeod <amacleod@redhat.com> 190 191 * objc-lang.c: Reorder #include's and remove duplicates. 192 * objc-map.c: Likewise. 193 1942015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org> 195 196 * objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h: 197 Remove useless typedefs. 198 1992015-07-12 Aldy Hernandez <aldyh@redhat.com> 200 201 * objc-map.h: Fix double word typos. 202 2032015-07-07 Andrew MacLeod <amacleod@redhat.com> 204 205 * objc-act.c: Adjust includes. 206 * objc-encoding.c: Likewise. 207 * objc-gnu-runtime-abi-01.c: Likewise. 208 * objc-lang.c: Likewise. 209 * objc-map.c: Likewise. 210 * objc-next-runtime-abi-01.c: Likewise. 211 * objc-next-runtime-abi-02.c: Likewise. 212 * objc-runtime-shared-support.c: Likewise. 213 2142015-06-25 Andrew MacLeod <amacleod@redhat.com> 215 216 * objc-act.c: Remove ipa-ref.h and plugin-api.h from include list. 217 2182015-06-25 Richard Sandiford <richard.sandiford@arm.com> 219 220 * objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash 221 rather than ggc_hasher. 222 2232015-06-25 Richard Sandiford <richard.sandiford@arm.com> 224 225 * objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather 226 than typed_noop_remove. Remove redudant typedefs. 227 2282015-06-17 Andrew MacLeod <amacleod@redhat.com> 229 230 * objc-act.c: Do not include input.h, line-map.h or is-a.h. 231 * objc-encoding.c: Likewise. 232 * objc-gnu-runtime-abi-01.c: Likewise. 233 * objc-lang.c: Likewise. 234 * objc-map.c: Likewise. 235 * objc-next-runtime-abi-01.c: Likewise. 236 * objc-next-runtime-abi-02.c: Likewise. 237 * objc-runtime-shared-support.c: Likewise. 238 2392015-06-08 Andrew MacLeod <amacleod@redhat.com> 240 241 * objc-act.c : Adjust include files. 242 * objc-encoding.c : Likewise. 243 * objc-gnu-runtime-abi-01.c : Likewise. 244 * objc-lang.c : Likewise. 245 * objc-map.c : Likewise. 246 * objc-next-runtime-abi-01.c : Likewise. 247 * objc-next-runtime-abi-02.c : Likewise. 248 * objc-runtime-shared-support.c : Likewise. 249 2502015-06-08 Aldy Hernandez <aldyh@redhat.com> 251 252 * objc-runtime-shared-support.c (build_module_descriptor): Set 253 TREE_USED on UOBJC_MODULES_decl. 254 2552015-06-05 Aldy Hernandez <aldyh@redhat.com> 256 257 * objc-act.c (objc_write_global_declarations): Adjust comment. 258 * objc-gnu-runtime-abi-01.c (build_selector_table_decl): Set 259 TREE_USED bit. 260 2612015-06-04 Andrew MacLeod <amacleod@redhat.com> 262 263 * objc-act.c: Adjust includes for restructured coretypes.h. 264 * objc-encoding.c: Likewise. 265 * objc-gnu-runtime-abi-01.c: Likewise. 266 * objc-lang.c: Likewise. 267 * objc-map.c: Likewise. 268 * objc-next-runtime-abi-01.c: Likewise. 269 * objc-next-runtime-abi-02.c: Likewise. 270 * objc-runtime-shared-support.c: Likewise. 271 2722015-04-27 Jim Wilson <jim.wilson@linaro.org> 273 274 * Make-lang.in (objc.mostlyclean): Remove cc1obj. 275 2762015-04-18 Trevor Saunders <tsaunders@mozilla.com> 277 278 * objc-act.c: Adjust for hash_table changes. 279 2802015-01-09 Michael Collison <michael.collison@linaro.org> 281 282 * objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 283 input.h, alias.h, symtab.h, options, fold-const.h, 284 wide-int.h, and inchash.h due to flattening of tree.h. 285 * objc-encoding.c: Ditto. 286 * objc-gnu-runtime-abi-01.c: Ditto. 287 * objc-lang.c: Ditto. 288 * objc-map.c: Ditto. 289 * objc-next-runtime-abi-01.c: Ditto. 290 * objc-next-runtime-abi-02.c: Ditto. 291 * objc-runtime-shared-support.c: Ditto. 292 2932015-01-05 Jakub Jelinek <jakub@redhat.com> 294 295 Update copyright years. 296 2972014-10-28 Andrew MacLeod <amacleod@redhat.com> 298 299 * objc-act.c: Adjust include files. 300 3012014-10-22 Alan Modra <amodra@gmail.com> 302 303 * objc-encoding.c (encode_array): Cast result of obstack_base. 304 (encode_type): Likewise. 305 3062014-10-16 Andrew MacLeod <amacleod@redhat.com> 307 308 * objc-act.c: Adjust include files. 309 3102014-10-12 Trevor Saunders <tsaunders@mozilla.com> 311 312 * objc-act.c: use hash_table instead of hashtab. 313 3142014-09-15 Jakub Jelinek <jakub@redhat.com> 315 316 * Make-lang.in (check_objc_parallelize): Change to just an upper 317 bound number. 318 3192014-07-14 Jan Hubicka <hubicka@ucw.cz> 320 321 * objc-act.c (objc_common_tree_size): New function. 322 * objc-act.h (KEYWORD_KEY_NAME, KEYWORD_ARG_NAME): Add type 323 checking. 324 (INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro. 325 (METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS, 326 METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING, 327 METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking. 328 (METHOD_SEL_ARGS): Use decl_common.size instead of 329 decl_non_common.result. 330 (PROPERTY_NAME, PROPERTY_GETTER_NAME, PROPERTY_SETTER_NAME, 331 PROPERTY_READONLY, PROPERTY_NONATOMIC, PROPERTY_ASSIGN_SEMANTICS, 332 PROPERTY_IVAR_NAME, PROPERTY_DYNAMIC, PROPERTY_HAS_NO_GETTER, 333 PROPERTY_HAS_NO_SETTER, PROPERTY_OPTIONAL): Add type checking. 334 (objc_common_tree_size): Declare. 335 * objc-lang.c (LANG_HOOKS_TREE_SIZE): New macro. 336 3372014-06-24 Jan Hubicka <hubicka@ucw.cz> 338 339 * objc-act.c (objc_xref_basetypes): Set TYPE_BINFO of type variants, 340 too. 341 3422014-06-24 Trevor Saunders <tsaunders@mozilla.com> 343 344 * objc-act.c: Adjust. 345 3462014-05-17 Trevor Saunders <tsaunders@mozilla.com> 347 348 * objc-act.c (objc_build_string_object): Adjust. 349 (continue_class): Likewise. 350 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 351 * objc-map.c (objc_map_alloc_ggc): Likewise. 352 (objc_map_private_resize): Likewise. 353 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): 354 Likewise. 355 (hash_name_enter): Likewise. 356 3572014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> 358 Mike Stump <mikestump@comcast.net> 359 Richard Sandiford <rdsandiford@googlemail.com> 360 361 * objc-act.c: Include wide-int.h. 362 (objc_decl_method_attributes): Use wide-int interfaces. 363 3642014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com> 365 366 PR objc/56044 367 * objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add. 368 (objc_init): Initialize objc_default_ivar_visibility. 369 (objc_start_class_interface): Use objc_default_ivar_visibility. 370 (objc_start_class_implementation): Likewise. 371 (objc_lookup_ivar): Implement -fno-local-ivars. 372 3732014-01-31 Marek Polacek <polacek@redhat.com> 374 375 PR c/59963 376 * objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to 377 build_function_call_vec. 378 (finish_catch): Likewise. 379 (next_runtime_abi_02_get_class_reference): Likewise. 380 * objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to 381 build_function_call_vec. 382 (build_throw_stmt): Likewise. 383 * objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to 384 build_function_call_vec. 385 (build_throw_stmt): Likewise. 386 3872014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 388 389 Update copyright years 390 3912013-12-04 Joseph Myers <joseph@codesourcery.com> 392 393 PR c/52023 394 * objc-act.c (objc_synthesize_getter): Update calls to 395 c_sizeof_or_alignof_type. 396 3972013-11-22 Andrew MacLeod <amacleod@redhat.com> 398 399 * objc/objc-act.c: Add required include files from gimple.h. 400 4012013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 402 403 * objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi 404 throughout. 405 4062013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 407 408 * objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with 409 tree_to_shwi throughout. 410 4112013-11-14 Andrew MacLeod <amacleod@redhat.com> 412 413 * objc-act.c: Include only gimplify.h and gimple.h as needed. 414 4152013-11-14 Diego Novillo <dnovillo@google.com> 416 417 * objc-act.c: Include stringpool.h. 418 Include stor-layout.h. 419 Include attribs.h. 420 * objc-encoding.c: Include stringpool.h. 421 Include stor-layout.h. 422 * objc-gnu-runtime-abi-01.c: Include stringpool.h. 423 * objc-next-runtime-abi-01.c: 424 Include stringpool.h. 425 * objc-next-runtime-abi-02.c: Include stringpool.h. 426 * objc-runtime-shared-support.c: Include stringpool.h. 427 4282013-11-12 Andrew MacLeod <amacleod@redhat.com> 429 430 * objc-act.c: Include gimplify.h. 431 4322013-11-07 Andrew MacLeod <amacleod@redhat.com> 433 434 * objc-act.c (objc_push_parm): Handle atomic qualifier. 435 4362013-09-25 Tom Tromey <tromey@redhat.com> 437 438 * Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o) 439 (objc/objc-runtime-shared-support.o) 440 (objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o) 441 (objc/objc-next-runtime-abi-02.o, objc/objc-act.o) 442 (objc/objc-encoding.o, objc/objc-map.o): Remove. 443 4442013-09-14 Iain Sandoe <iain@codesourcery.com> 445 446 PR target/48094 447 * objc-next-runtime-abi-01.c (generate_objc_image_info): Remove. 448 (objc_generate_v1_next_metadata): Remove generation of ImageInfo. 449 * objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove. 450 (objc_generate_v2_next_metadata): Remove generation of ImageInfo. 451 4522013-07-21 OndÅej BÃlka <neleai@seznam.cz> 453 454 * objc-act.c: Fix typos. 455 * objc-encoding.c: Likewise. 456 * objc-gnu-runtime-abi-01.c: Likewise. 457 * objc-next-runtime-abi-01.c: Likewise. 458 * objc-next-runtime-abi-02.c: Likewise. 459 4602013-05-22 Paolo Carlini <paolo.carlini@oracle.com> 461 462 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): 463 Fix build_conditional_expr call. 464 4652013-05-16 Jason Merrill <jason@redhat.com> 466 467 * Make-lang.in (cc1obj$(exeext)): Use link mutex. 468 4692012-11-20 Diego Novillo <dnovillo@google.com> 470 471 * objc-act.c: Replace all vec<T, A>() initializers with vNULL. 472 4732012-11-16 Diego Novillo <dnovillo@google.com> 474 475 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 476 477 * objc-act.c: Use new vec API in vec.h. 478 * objc-act.h: Likewise. 479 * objc-gnu-runtime-abi-01.c: Likewise. 480 * objc-next-runtime-abi-01.c: Likewise. 481 * objc-next-runtime-abi-02.c: Likewise. 482 * objc-runtime-hooks.h: Likewise. 483 * objc-runtime-shared-support.c: Likewise. 484 * objc-runtime-shared-support.h: Likewise. 485 4862012-10-01 Lawrence Crowl <crowl@google.com> 487 488 * Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o. 489 (objc-act.o): Add dependence on hash-table.h. 490 * objc-act.c (objc_detect_field_duplicates): Change to new type-safe 491 hash table. 492 4932012-06-29 Steven Bosscher <steven@gcc.gnu.org> 494 495 * Make-ang.in: Adjust for move of C front-end files. 496 * config-lang.in: Likewise. 497 * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h 498 and c-lang.h in c/. 499 * objc-runtime-shared-support.c: Likewise. 500 * objc-next-runtime-abi-01.c: Likewise. 501 * objc-next-runtime-abi-02.c: Likewise. 502 * objc-gnu-runtime-abi-01.c: Likewise. 503 * objc-act.c: Likewise. 504 * objc-lang.c: Likewise. 505 5062012-06-19 Steven Bosscher <steven@gcc.gnu.org> 507 508 * objc-next-runtime-abi-01.c: Do not include tm.h and output.h. 509 Include c-family/c-target.h. 510 (handle_next_class_ref): Rewrite to emit top-level asm statements. 511 (handle_next_impent): Likewise. 512 * objc/Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o. 513 5142012-05-31 Steven Bosscher <steven@gcc.gnu.org> 515 516 * objc-act.c: Do not include output.h. 517 5182012-05-17 Paolo Carlini <paolo.carlini@oracle.com> 519 520 PR objc++/53388 521 * objc-act.c (objc_get_class_reference, objc_build_message_expr): 522 Use build_min_nt_loc. 523 5242012-04-20 Jan Hubicka <jh@suse.cz> 525 526 * objc-act.c (mark_referenced_methods); Use 527 cgraph_mark_force_output_node. 528 5292012-03-21 Steven Bosscher <steven@gcc.gnu.org> 530 531 * objc-act (objc_build_ivar_assignment): Do not call assemble_external. 532 (objc_build_global_assignment): Likewise. 533 (objc_build_strong_cast_assignment): Likewise. 534 * objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external. 535 * objc-next-runtime-abi-02.c: Likewise. 536 * objc-gnu-runtime-abi-01.c: Likewise. 537 5382012-03-05 Jason Merrill <jason@redhat.com> 539 540 * objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't 541 call _stat functions without MEM_STAT_INFO. 542 5432011-11-12 Iain Sandoe <iains@gcc.gnu.org> 544 545 * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality 546 for Objective-C m32. 547 5482011-10-29 Iain Sandoe <iains@gcc.gnu.org> 549 550 PR target/47997 551 * objc-act.c (objc_build_string_object): Remove redundant second 552 call to fix_string_type (). Add a checking assert that we are, 553 indeed, passed a STRING_CST. 554 5552011-10-18 Mikael Pettersson <mikpe@it.uu.se> 556 557 PR objc/50743 558 * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to 559 size_t to avoid signed/unsigned 560 comparison. 561 (insert_method_into_method_map): Likewise. 562 5632011-10-14 Nicola Pero <nicola.pero@meta-innovation.com> 564 565 * objc-map.h: New file. 566 * objc-map.c: New file. 567 * config-lang.in (gtfiles): Added objc-map.h. 568 * Make-lang.in (OBJC_OBJS): Added objc-map.o. 569 (objc/objc-map.o): New rule. 570 (objc/objc-act.o): Depend on objc/objc-map.h. 571 * objc-next-runtime-abi-02.c: Added a TODO comment. 572 * objc-act.c: Include objc-map.h. 573 (nst_method_hash_list, cls_method_hash_list): Removed. 574 (instance_method_map, class_method_map): New. 575 (cls_name_hash_list, als_name_hash_list): Removed. 576 (class_name_map, alias_name_map): Removed. 577 (ivar_offset_hash_list): Removed. 578 (hash_class_name_enter, hash_class_name_lookup, hash_enter, 579 hash_lookup, hash_add_attr, add_method_to_hash_list): Removed. 580 (interface_hash_init): New. 581 (objc_init): Call interface_hash_init. 582 (objc_write_global_declarations): Iterate over class_method_map 583 and instance_method_map instead of cls_method_hash_list and 584 nst_method_hash_list. 585 (objc_declare_alias): Use alias_name_map instead of 586 cls_name_hash_list. 587 (objc_is_class_name): Use class_name_map and alias_name_map 588 instead of cls_name_hash_list and als_name_hash_list. 589 (interface_tuple, interface_htab, hash_interface, eq_interface): 590 Removed. 591 (interface_map): New. 592 (add_class): Renamed to add_interface. Use interface_map instead 593 of interface_htab. 594 (lookup_interface): Use interface_map instead of interface_htab. 595 (check_duplicates): Changed first argument to be a tree, 596 potentially a TREE_VEC, instead of a hash. Changed implementation 597 to match. 598 (lookup_method_in_hash_lists): Use class_method_map and 599 instance_method_map instead of cls_method_hash_list and 600 nst_method_hash_list. 601 (objc_build_selector_expr): Likewise. 602 (hash_func): Removed. 603 (hash_init): Create instance_method_map, class_method_map, 604 class_name_map, and alias_name_map. Do not create 605 nst_method_hash_list, cls_method_hash_list, cls_name_hash_list, 606 als_name_hash_list, and ivar_offset_hash_list. 607 (insert_method_into_method_map): New. 608 (objc_add_method): Use insert_method_into_method_map instead of 609 add_method_to_hash_list. 610 (start_class): Call add_interface instead of add_class. 611 * objc-act.h (cls_name_hash_list, als_name_hash_list, 612 nst_method_hash_list, cls_method_hash_list): Removed. 613 6142011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> 615 616 * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old 617 interface with two parallel arrays to hold standard builtin 618 declarations, and replace it with a function based interface that 619 can support creating builtins on the fly in the future. Change 620 all uses, and poison the old names. Make sure 0 is not a 621 legitimate builtin index. 622 * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto. 623 * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto. 624 6252011-07-19 Richard Guenther <rguenther@suse.de> 626 627 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): 628 Use fold_build_pointer_plus. 629 (objc2_build_ehtype_initializer): Likewise. 630 6312011-07-11 Nicola Pero <nicola.pero@meta-innovation.com> 632 633 * objc-encoding.h (obstack.h): Do not include. 634 (util_obstack, util_firstobj): Do not declare. 635 (encode_field_decl): Updated prototype to return a tree and take a 636 single tree argument. Updated comments. 637 * objc-encoding.c (util_obstack, util_firstobj): Made static. 638 (objc_encoding_init): New. 639 (encode_field_decl): Existing function renamed to encode_field and 640 made static. New encode_field_decl wrapper function added. 641 (encode_aggregate_fields): Update call to encode_field_decl to 642 call encode_field. 643 * objc-next-runtime-abi-02.c (obstack.h): Do not include. 644 (util_obstack, util_firstobj): Do not declare. 645 (build_v2_ivar_list_initializer): Updated call to 646 encode_field_decl. 647 * objc-runtime-shared-support.c (obstack.h): Do not include. 648 (util_obstack, util_firstobj): Do not declare. 649 (build_ivar_list_initializer): Updated call to encode_field_decl. 650 * objc-act.c (objc_init): Use objc_encoding_init. 651 * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend 652 on OBSTACK_H. 653 (objc/objc-gnu-runtime-abi-01.o): Likewise. 654 (objc/objc-next-runtime-abi-01.o): Likewise. 655 (objc/objc-next-runtime-abi-02.o): Likewise. 656 (objc/objc-act.o): Likewise. 657 6582011-07-04 Nicola Pero <nicola.pero@meta-innovation.com> 659 660 Refactored encoding code into objc-encoding.h and objc-encoding.c. 661 * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers, 662 encode_type, generating_instance_variables, objc_method_parm_type, 663 objc_encoded_type_size, encode_method_prototype, 664 objc_build_encode_expr, pointee_is_readonly, encode_pointer, 665 encode_array, encode_vector, encode_aggregate_fields, 666 encode_aggregate_within, encode_next_bitfield, 667 encode_gnu_bitfield, encode_field_decl, 668 objc_v2_encode_property_attr): Moved to objc-encoding.h and 669 objc-encoding.c. No change in the actual code. 670 Include objc-encoding.h. 671 (objc_init): Added TODO. 672 (objc_build_property_setter_name): Made non-static so it can be 673 called from objc-encoding.c. 674 * objc-act.h (OBJC_ENCODE_INLINE_DEFS, 675 OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h. 676 * objc-runtime-shared-support.h (objc_v2_encode_property_attr, 677 encode_method_prototype, encode_field_decl, 678 generating_instance_variables): Moved to objc-encoding.h. 679 (objc_build_property_setter_name): Declare. 680 * objc-encoding.c: New. 681 * objc-encoding.h: New. 682 * objc-gnu-runtime-abi-01.c: Include objc-encoding.h. 683 * objc-next-runtime-abi-01.c: Likewise. 684 * objc-next-runtime-abi-02.c: Likewise. 685 * objc-runtime-shared-support.c: Likewise. 686 * Make-lang.in (OBJC_OBJS): Added objc-encoding.o. 687 (objc/objc-lang.o): Reordered dependencies. 688 (objc/objc-runtime-shared-support.o): Reordered dependencies. 689 Added dependencies on objc-encoding.h and on $(GGC_H), 690 $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h. 691 (objc/objc-gnu-runtime-abi-01.o): Likewise. 692 (objc/objc-next-runtime-abi-01.o): Likewise. 693 (objc/objc-next-runtime-abi-02.o): Likewise. 694 (objc/objc-act.o): Reordered dependencies. Added dependency on 695 objc-encoding.h. 696 (objc/objc-encoding.o): New rule. 697 698 * objc-encoding.c (encode_type): Use "%<%T%>" format when printing 699 warning "unknown type %<%T%> found during Objective-C encoding" 700 instead of using gen_type_name. 701 7022011-06-05 Nicola Pero <nicola.pero@meta-innovation.com> 703 704 * objc-act.c (receiver_is_class_object): Expanded comment. 705 (objc_finish_message_expr): Likewise. 706 7072011-06-02 Nicola Pero <nicola.pero@meta-innovation.com> 708 709 PR objc/48539 710 * objc-act.c (objc_finish_message_expr): Warn if messaging a class 711 that was only declared using @class without an @interface. Warn 712 if messaging an instance of a class that was only declared using 713 @class without an @interface, unless the receiver was also typed 714 with a protocol list. 715 7162011-06-01 Nicola Pero <nicola.pero@meta-innovation.com> 717 718 * objc-act.c (objc_decl_method_attributes): Implement nonnull 719 attribute for Objective-C methods. 720 7212011-05-21 Nicola Pero <nicola.pero@meta-innovation.com> 722 723 * config-lang.in (gtfiles): Updated order of files to fix building 724 when the gcc/cp directory is missing, as in the case of some 725 release tarballs. 726 7272011-05-20 Nathan Froyd <froydnj@codesourcery.com> 728 729 * objc-act.c (objc_compare_types): Use function_args_iterator 730 instead of TYPE_ARG_TYPES to compare function argument types. 731 7322011-05-13 Toon Moene <toon@moene.org> 733 734 * objc-next-runtime-abi-02.c (newabi_append_ro): 735 Add const qualifier to constant variable pointer declaration. 736 7372011-05-11 Nathan Froyd <froydnj@codesourcery.com> 738 739 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors. 740 (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise. 741 (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise. 742 7432011-05-05 Nathan Froyd <froydnj@codesourcery.com> 744 745 * objc-runtime-shared-support.h (get_arg_type_list): Delete. 746 (build_function_type_for_method): Declare. 747 * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change 748 type of get_arg_type_base_list field. 749 * objc-act.h (OBJC_VOID_AT_END): Delete. 750 * objc-act.c (get_arg_type_list): Delete. 751 (build_function_type_for_method): New function. 752 (objc_decl_method_attributes): Call build_function_type_for_method. 753 (really_start_method): Likewise. 754 * objc-gnu-runtime-abi-01.c 755 (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and 756 adjust function accordingly. Update header comment. 757 (build_objc_method_call): Call build_function_type_for_method. 758 * objc-next-runtime-abi-01.c 759 (next_runtime_abi_01_get_type_arg_list_base): Change prototype and 760 adjust function accordingly. Update header comment. 761 (build_objc_method_call): Call build_function_type_for_method. 762 * objc-next-runtime-abi-02.c 763 (next_runtime_abi_02_get_type_arg_list_base): Change prototype and 764 adjust function accordingly. Update header comment. 765 (objc_copy_to_temp_side_effect_params): Take fntype instead of a 766 typelist. Use function_args_iterator for traversing fntype. 767 (build_v2_build_objc_method_call): Adjust call to it. 768 Call build_function_type_for_method 769 7702011-05-05 Joseph Myers <joseph@codesourcery.com> 771 772 * objc-act.c (objc_start_method_definition): Add parameter expr. 773 Update call to start_method_def. 774 (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter, 775 objc_synthesize_setter) Update calls to 776 objc_start_method_definition. 777 (objc_get_parm_info): Add parameter expr. Update call to 778 get_parm_info. 779 (start_method_def): Add parameter expr. Update call to 780 objc_get_parm_info. 781 * objc-gnu-runtime-abi-01.c (build_module_initializer_routine): 782 Update call to objc_get_parm_info. 783 * objc-runtime-shared-support.h (objc_get_parm_info): Add extra 784 parameter. 785 7862011-04-26 Jason Merrill <jason@redhat.com> 787 788 * objc-act.c (objc_fold_objc_type_ref): Remove. 789 * objc-act.h: Remove prototype. 790 7912011-04-21 Nathan Froyd <froydnj@codesourcery.com> 792 793 * objc-act.c (synth_module_prologue): Call build_function_type_list 794 instead of build_function_type. 795 * objc-next-runtime-abi-02.c (next_runtime_02_initialize): 796 Likewise. 797 7982011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 799 800 * objc-act.c (ivar_of_class): New. 801 (objc_is_public): Use ivar_of_class. 802 8032011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 804 805 * objc-act.c (objc_get_interface_ivars): Removed. 806 (objc_detect_field_duplicates): New. 807 (hash_instance_variable): New. 808 (eq_instance_variable): New. 809 8102011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 811 812 * objc-act.c (objc_declare_protocols): Renamed to 813 objc_declare_protocol. Changed first argument to be an identifier 814 instead of a tree chain of identifiers, so that callers don't have 815 to create a temporary tree chain. 816 8172011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 818 819 * objc-act.c (objc_declare_class): Changed to take a single 820 identifier as argument instead of a tree list. This means callers 821 don't have to build temporary tree lists to call this function. 822 (synth_module_prologue): Updated calls to objc_declare_class. 823 8242011-04-13 Nicola Pero <nicola.pero@meta-innovation.com> 825 826 * objc-act.c (build_keyword_selector): Use get_identifier_with_length 827 instead of get_identifier. 828 8292011-04-12 Nathan Froyd <froydnj@codesourcery.com> 830 831 * objc-lang.c (objc_init_ts): Move code for this function... 832 * objc-act.c (objc_common_init_ts): ...here. Define. 833 * objc-act.h (objc_common_init_ts): Declare. 834 8352011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 836 837 * objc-act.c (objc_build_message_expr): Accept two arguments 838 instead of one so that callers can simply pass the arguments 839 without having to create a temporary chain to hold them. 840 8412011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 842 843 * objc-act.c (comp_proto_with_proto): Do not create and use 844 inefficient temporary argument lists. Compare the arguments 845 directly. (match_proto_with_proto): Removed; incorporated into 846 comp_proto_with_proto (). 847 8482011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 849 850 * objc-act.c (printable_ivar_name): New. 851 (add_instance_variable): Call printable_ivar_name() when an error 852 message needs to be printed. Do not prepare the instance variable 853 for printing unless there is an actual error. 854 8552011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 856 857 * objc-act.c (objc_is_class_name, objc_is_id): For efficiency, 858 avoid calling identifier_global_value() multiple times. 859 8602011-04-12 Martin Jambor <mjambor@suse.cz> 861 862 * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node 863 instead of cgraph_node. 864 8652011-04-06 Joseph Myers <joseph@codesourcery.com> 866 867 * objc-act.c: Include c-target.h instead of target.h. 868 * Make-lang.in (objc/objc-act.o): Update dependencies. 869 8702011-03-06 Joseph Myers <joseph@codesourcery.com> 871 872 * lang-specs.h: Match -save-temps* instead of -save-temps. 873 8742011-02-26 Nicola Pero <nicola.pero@meta-innovation.com> 875 876 * objc-act.c (objc_v2_encode_prop_attr): Rewritten. 877 8782011-02-23 Nicola Pero <nicola.pero@meta-innovation.com> 879 880 * objc-act.c (build_private_template): Do not copy the 881 CLASS_HAS_EXCEPTION_ATTR from the class to the struct. 882 * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using 883 TYPE_LANG_SLOT_0. 884 8852011-02-22 Nicola Pero <nicola.pero@meta-innovation.com> 886 887 PR objc/47832 888 * objc-act.c (flexible_array_type_p): New. 889 (add_instance_variable): Produce an error if an instance variable 890 uses flexible array members. 891 (encode_array): Do not emit an error if encoding a flexible array 892 type while generating instance variables. 893 8942011-02-21 Mike Stump <mikestump@comcast.net> 895 896 * Make-lang.in (check_objc_parallelize): Refine for 4 processor 897 machines. 898 8992011-02-20 Nicola Pero <nicola.pero@meta-innovation.com> 900 901 * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed. Removed 902 usage of padding fields. Do not include tm.h. 903 * objc-act.c (objc_write_global_declaration): Set input_location 904 to BUILTINS_LOCATION while generating runtime metadata. 905 9062011-01-20 Nicola Pero <nicola.pero@meta-innovation.com> 907 908 PR objc/47784 909 * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side 910 effects, do not use a temporary variable. 911 9122011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 913 914 * objc-next-runtime-abi-01.c: Updated comments. 915 * objc-next-runtime-abi-02.c: Same. 916 9172011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 918 919 * objc-act.c (objc_init, generate_struct_by_value_array): Updated 920 comments. 921 9222011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 923 924 * objc-act.c: Updated comments. 925 * objc-next-runtime-abi-02.c: Same. 926 * objc-runtime-shared-support.c: Same. 927 * objc-runtime-hooks.h: Same. 928 * objc-act.h: Same. 929 * objc-gnu-runtime-abi-01.c: Same. 930 9312011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 932 933 * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do 934 not generate metadata if there is nothing to put into it. 935 9362011-02-17 Iain Sandoe <iains@gcc.gnu.org> 937 938 * config-lang.in (gtfiles): Updated. 939 * Make-lang.in (START_HDRS): New. 940 (OBJC_OBJS): Added new object files. 941 (objc/objc-act.o): Updated prerequisites. 942 (objc/objc-lang.o): Updated prerequisites. 943 (objc/objc-runtime-shared-support.o): New. 944 (objc/objc-gnu-runtime-abi-01.o): New. 945 (objc/objc-next-runtime-abi-01.o): New. 946 (objc/objc-next-runtime-abi-02.o): New. 947 * objc-runtime-hooks.h: New. 948 * objc-runtime-shared-support.h: New. 949 * objc-runtime-shared-support.c: New. 950 * objc-gnu-runtime-abi-01.c: New. 951 * objc-next-metadata-tags.h: New. 952 * objc-next-runtime-abi-01.c: New. 953 * objc-next-runtime-abi-02.c: New. 954 * objc-lang.c: Include c-lang.h. 955 (LANG_HOOKS_EH_PERSONALITY): Removed. 956 * objc-act.h: Moved many declarations and code from objc-act.c 957 into objc-act.h to make them available outside objc-act.c. 958 (objc_eh_runtime_type): Removed. 959 (objc_eh_personality): Removed. 960 (CLASS_HAS_EXCEPTION_ATTR): New. 961 (OCTI_SUPER_SUPERFIELD_ID): New. 962 (OCTI_V1_PROP_LIST_TEMPL): New. 963 (OCTI_V1_PROP_NAME_ATTR_CHAIN): New. 964 (super_superclassfield_id): New. 965 (objc_prop_list_ptr): New. 966 (prop_names_attr_chain): New. 967 * objc-act.c: Include new runtime headers. Moved many #defines 968 and declarations into objc-act.h and 969 objc-runtime-shared-support.h. Made some corresponding functions 970 non-static, and moved some others into 971 objc-runtime-shared-support.c. Moved metadata generation code 972 into the new runtime hook files. 973 (ivar_offset_hash_list): New. 974 (objc_init): Call generate_struct_value_by_array() before doing 975 any runtime initialization. Create the appropriate runtime hook 976 structures. 977 (init_objc): Removed. Code moved directly into objc_init. 978 (finish_objc): Removed. Code moved directly into 979 objc_write_global_declarations. 980 (objc_write_global_declarations): Do the warn_selector checks 981 before emitting metadata. Use a runtime hook to emit the 982 metadata. Do not emit the metadata or do -gen-decls processing if 983 -fsyntax-only or we are producing a PCH. 984 (build_objc_exception_stuff): Renamed to 985 build_common_objc_exception_stuff. Remove TREE_NOTHROW flag from 986 objc_exception_throw_decl. 987 (synth_module_prologue): Call runtime initialize hook instead of 988 building runtime declarations here. Use the 989 default_constant_string_class_name runtime hook to set the 990 constant string class name. 991 (objc_build_string_object): Call the setup_const_string_class_decl 992 runtime hook instead of setup_string_decl. Call the 993 build_const_string_constructor runtime hook instead of building 994 the string object here. 995 (get_objc_string_decl): Added prop_names_attr case. Removed 996 gcc_unreachable() at the end. 997 (objc_begin_catch_clause): Distinguish between @catch (...) and 998 @catch (id x). Call the begin_catch runtime hook instead of 999 building the CATCH_EXPR here. 1000 (objc_finish_catch_clause): Call the finish_catch runtime hook 1001 instead of adding the catch here. 1002 (objc_finish_try_stmt): Call the finish_try_stmt runtime hook 1003 instead of doing it here. 1004 (objc_build_throw_stmt): Bail out early for error_mark_node. Call 1005 the build_exc_ptr runtime hook instead of objc_build_exc_ptr. 1006 Call the build_throw_stmt runtime hook instead of building the 1007 throw call here. 1008 (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime 1009 as well. 1010 (get_arg_type_list): Call the get_arg_type_list_base runtime hook 1011 instead of building the list of arguments here. 1012 (receiver_is_class_object): Call the receiver_is_class_object 1013 runtime hook instead of doing the check here. Call the 1014 tag_getclass runtime hook instead of using TAG_GETCLASS. 1015 (objc_finish_message_expr): Call the build_objc_method_call 1016 runtime hook. 1017 (objc_build_protocol_expr): Call the get_protocol_reference 1018 runtime hook. 1019 (objc_build_selector_expr): Call the build_selector_reference 1020 runtime hook. 1021 (build_ivar_reference): Call the build_ivar_reference runtime 1022 hook. 1023 (hash_init): Set up ivar_offset_hash_list. 1024 (start_class): Recognize the objc_exception attribute and store 1025 it. 1026 (continue_class): Use the class_decl and metaclass_decl runtime 1027 hooks. 1028 (build_objc_property_accessor_helpers): Renamed to 1029 build_common_objc_property_accessor_helpers. Do not build 1030 objc_copyStruct_decl, objc_getPropertyStruct_decl and 1031 objc_setPropertyStruct_decl. 1032 (objc_synthesize_getter): Check what struct setter/getter helper 1033 is available instead of checking the type of runtime. 1034 (get_super_receiver): Use the super_superclassfield_ident runtime 1035 hook. Added assert. Use the get_class_super_ref and 1036 get_category_super_ref runtime hooks. 1037 (objc_v2_encode_prop_attr): New. 1038 10392011-01-17 Nicola Pero <nicola.pero@meta-innovation.com> 1040 1041 PR objc/47314 1042 * objc-act.c (finish_objc): When calling check_duplicates to check 1043 duplicated instance methods, set 'is_class' to 0, not 1. 1044 10452011-01-14 Ben Elliston <bje@au.ibm.com> 1046 1047 PR 19162 1048 * objc-act.c (generate_struct_by_value_array): Do not output a 1049 definition for struct_forward_array. 1050 10512011-01-08 Iain Sandoe <iains@gcc.gnu.org> 1052 1053 * objc-act.c (objc_finish_foreach_loop): Mark collection expression 1054 as read. 1055 10562011-01-02 H.J. Lu <hongjiu.lu@intel.com> 1057 1058 * objc-act.c (check_that_protocol_is_defined): Fix a typo. 1059 10602011-01-02 Nicola Pero <nicola.pero@meta-innovation.com> 1061 1062 * objc-act.c (check_that_protocol_is_defined): New. 1063 (lookup_protocol): Call check_that_protocol_is_defined. 1064 10652010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1066 1067 * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol 1068 lists. Check them two-ways to fix comparisons when one protocol 1069 implements the other one, or when one list contains duplicated 1070 protocols. 1071 10722010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1073 1074 * objc-act.c (objc_add_method): When emitting an error because a 1075 method with the same name but conflicting types is found in the 1076 same class or category interface, print a note with the location 1077 of the original method. Also, improved the error message to 1078 clearly state that the conflict is due to conflicting types, and 1079 produce it for protocols as well. Emit an error if two identical 1080 methods are declared in a protocol, but one is @required and the 1081 other one is @optional. 1082 10832010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1084 1085 * objc-act.c (start_class): Warn when a class attribute is 1086 ignored. 1087 (objc_declare_protocols): Warn when a protocol attribute in a 1088 protocol forward-declaration is ignored. 1089 (start_protocol): Warn when a protocol attribute is ignored. 1090 10912010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1092 1093 * objc-act.c (objc_set_method_opt): Tidy up error messages. In 1094 particular, explicitly mention whether the error is due to the 1095 @optional or @required keyword instead of mentioning 1096 "@optional/@required". 1097 10982010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 1099 1100 PR objc/47118 1101 * objc-act.c (objc_build_synchronized): Check the argument of 1102 @synchronized and emit an appropriate error if it is not a valid 1103 Objective-C object. Deal gracefully with that case. Updated 1104 comments and variable names. 1105 11062010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 1107 1108 PR objc/47075 1109 * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New. 1110 * objc-tree.def (PROPERTY_REF): Increased the number of operands 1111 from 3 to 4. 1112 * objc-act.c (objc_finish_message_expr): Added optional argument 1113 allowing to return the deprecated method prototype for deprecated 1114 methods, instead of immediately emitting the deprecation warning. 1115 (objc_maybe_build_component_ref): Do not warn for a deprecated 1116 property. When building the getter call, get the deprecated 1117 method prototype from objc_finish_message_expr() and put it into 1118 the PROPERTY_REF. 1119 (objc_build_class_component_ref): Same change. 1120 (finish_class): Mark the getter and setter as deprecated if they 1121 are generated from a deprecated property. 1122 (objc_gimplify_property_ref): If the getter is deprecated, emit a 1123 deprecation warning. 1124 (objc_build_setter_call, objc_build_message_expr, 1125 objc_finish_foreach_loop): Updated call to 1126 objc_finish_message_expr. 1127 11282010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1129 1130 PR objc/47076 1131 * objc-act.c (lookup_protocol): Added 'definition_required' 1132 argument. If 'definition_required', and the protocol is not 1133 defined, emit a warning. 1134 (objc_declare_protocols): Updated call to lookup_protocol. 1135 (start_protocol): Same change. 1136 (check_protocol_recursively): Same change. 1137 (objc_build_protocol_expr): Same change. 1138 (lookup_and_install_protocols): Added definition_required argument. 1139 Pass it to lookup_protocol. 1140 (objc_get_protocol_qualified_type): Updated call to 1141 lookup_and_install_protocols. 1142 (start_class): Updated calls to lookup_and_install_protocols; pass 1143 true to 'definition_required' to get the warnings. 1144 (start_protocol): Updated calls to lookup_and_install_protocols. 1145 11462010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1147 1148 * objc-act.c (objc_start_category_interface): Produce an error if 1149 a class extension is found after the class @implementation. 1150 11512010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1152 1153 PR objc/47073 1154 * objc-act.c (encode_method_prototype): Fixed both location and 1155 format string of error "type %qT does not have a known size". 1156 11572010-12-26 Nicola Pero <nicola.pero@meta-innovation.com> 1158 1159 * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c. 1160 11612010-12-22 Nathan Froyd <froydnj@codesourcery.com> 1162 1163 * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p. 1164 11652010-12-18 Nicola Pero <nicola.pero@meta-innovation.com> 1166 1167 * objc-act.c (objc_init): Call using_eh_for_cleanups. 1168 (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions. Do 1169 not call using_eh_for_cleanups. 1170 (objc_begin_try_stmt): Do not call objc_init_exceptions. 1171 (objc_build_throw_stmt): Updated call to 1172 objc_maybe_warn_exceptions. 1173 11742010-12-18 Iain Sandoe <iains@gcc.gnu.org> 1175 1176 * objc/objc-act.c (objc_eh_personality): Select personality name on 1177 runtime. 1178 (objc_init_exceptions): New. 1179 (objc_begin_try_stmt): Use objc_init_exceptions. 1180 (objc_build_throw_stmt): Likewise. 1181 11822010-12-10 Nicola Pero <nicola.pero@meta-innovation.com> 1183 1184 * objc-act.c (objc_in_class_extension): New. 1185 (objc_start_category_interface): If -fobjc-std=objc1 1186 was specified, produce an error if a class extension is used. 1187 (objc_finish_interface): Reset objc_in_class_extension to false. 1188 (objc_add_property_declaration): Allow a class extension to extend 1189 readonly properties in the main @interface to be readwrite. 1190 (start_class): Added code to deal with class extensions. In that 1191 case, return the existing interface after adding any additional 1192 protocols to it and setting objc_in_class_extension to true. 1193 (continue_class): If in a class extension, do not generate the 1194 instance variable template. 1195 11962010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 1197 1198 * objc-act.c (objc_build_throw_stmt): Check that the argument of 1199 @throw is an object and emit an error if not. 1200 12012010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 1202 1203 * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of 1204 error() when printing an error about the iterating variable or 1205 collection not being an object. 1206 12072010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 1208 1209 * objc-act.c (objc_finish_foreach_loop): Mark the 1210 object_expression as used. 1211 12122010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 1213 1214 * objc-act.c: Include c-family/c-objc.h. 1215 * objc-lang.c: Same change. 1216 * Make-lang.in (objc/objc-act.o): Depend on 1217 c-family/c-objc.h. 1218 (objc/objc-lang.o): Same change. 1219 * config-lang.in (gtfiles): Added c-family/c-objc.h. 1220 12212010-12-02 Joseph Myers <joseph@codesourcery.com> 1222 1223 * lang-specs.h: Don't handle -ftraditional. 1224 12252010-12-02 Nicola Pero <nicola.pero@meta-innovation.com> 1226 1227 * objc-act.c (objc_build_throw_stmt): Return error_mark_node and 1228 not NULL_TREE when a @throw is used outside of a @catch block. 1229 12302010-11-30 Nicola Pero <nicola.pero@meta-innovation.com> 1231 1232 * objc-act.c (objc_build_volatilized_type): Removed. 1233 (objc_non_volatilized_type): Removed. 1234 (objc_type_quals_match): Removed. 1235 (local_variables_to_volatilize): New. 1236 (objc_volatilize_decl): Add the decl to volatilize to 1237 local_variables_to_volatilize, but don't volatilize it yet. 1238 (objc_finish_function): New. 1239 * objc-act.h (local_variables_to_volatilize): New. 1240 12412010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1242 Mike Stump <mikestump@comcast.net> 1243 1244 Allow 'make check-objc -j2' 1245 * Make-lang.in (lang_checks_parallelized): New. 1246 (check_objc_parallelize): New. 1247 12482010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1249 1250 * objc-act.c (start_class): When a class is reimplemented, 1251 generate an error and avoid adding the class to the list of 1252 implemented classes again, but do not return error_mark_node. 1253 12542010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1255 1256 * objc-act.c (objc_maybe_build_component_ref): Removed TODO. 1257 12582010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1259 1260 * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node 1261 is passed as argument. 1262 (objc_begin_catch_clause): Added code to deal with an 1263 error_mark_node or NULL_TREE argument. Improved checks for 1264 invalid arguments. Added code to traverse typedefs. 1265 12662010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1267 1268 * objc-act.c (objc_demangle): Return immediately if the string is 1269 too short. Detect names that do not need demangling, and return 1270 them unchanged. 1271 12722010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 1273 1274 Implemented optional properties. 1275 * objc-act.h (PROPERTY_OPTIONAL): New. 1276 * objc-act.c (objc_add_property_declaration): Set 1277 PROPERTY_OPTIONAL if appropriate. 1278 (finish_class): When generating definitions of setter and getter 1279 methods associated with a property for a protocol, mark them as 1280 optional if the property is optional. 1281 (maybe_make_artificial_property_decl): Added 'getter_name' 1282 argument. Set PROPERTY_OPTIONAL. 1283 (objc_maybe_build_component_ref): Updated calls to 1284 maybe_make_artificial_property_decl. Added code for optional, 1285 readonly properties. 1286 (objc_build_class_component_ref): Updated call to 1287 maybe_make_artificial_property_decl. 1288 12892010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 1290 1291 * objc-act.c (objc_build_struct): Fixed loops that save and 1292 restore TYPE_OBJC_INFO to iterate over all variants of the type; a 1293 special case for the current type is then no longer required. 1294 Duplicate TYPE_LANG_SPECIFIC for each type before restoring 1295 TYPE_OBJC_INFO. 1296 (objc_get_protocol_qualified_type): Updated comments. 1297 12982010-11-25 Nicola Pero <nicola.pero@meta-innovation.com> 1299 1300 * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE 1301 after finish_struct, not before, otherwise it may be wiped out by 1302 it. This fixes spurious warnings when a class has more than 15 1303 instance variables. 1304 13052010-11-23 Nicola Pero <nicola.pero@meta-innovation.com> 1306 1307 PR objc/24358 1308 * lang-specs.h: Added objective-c-cpp-output. Mapped .mi to 1309 objective-c-cpp-output instead of objc-cpp-output. Print a 1310 deprecation note every time objc-cpp-output is requested. 1311 13122010-11-22 Joseph Myers <joseph@codesourcery.com> 1313 1314 * objc-act.c (write_symbols): Don't declare here. 1315 13162010-11-22 Nicola Pero <nicola.pero@meta-innovation.com> 1317 1318 PR objc/41108 1319 * objc-act.c (objc_generate_write_barrier): Added assert to make sure 1320 this function is only called with the next runtime. 1321 13222010-11-20 Jakub Jelinek <jakub@redhat.com> 1323 1324 PR c/46547 1325 * objc-act.c (in_late_binary_op): Remove. 1326 13272010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 1328 1329 * objc-act.c (objc_start_class_interface): Do not warn that class 1330 attributes are unimplemented. Pass the attributes to start_class. 1331 (objc_start_category_interface): Updated call to start_class. 1332 (objc_start_class_implementation): Same change. 1333 (objc_start_category_implementation): Same change. 1334 (objc_build_class_component_ref): Warn if the class is deprecated. 1335 (build_private_template): Mark the template as deprecated if the 1336 class is deprecated. 1337 (start_class): Added 'attributes' argument. Emit a warning if 1338 using a deprecated class as superclass of a class, or original 1339 class of a category. Recognize the 'deprecated' attribute when 1340 starting and interface, and mark the interface with 1341 TREE_DEPRECATED if present. Store attributes in the interface. 1342 13432010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 1344 1345 * objc-act.c (lookup_protocol): Added 'warn_if_deprecated' 1346 argument. If it is 'true' and the protocol is deprecated, emit a 1347 deprecation warning. 1348 (objc_start_protocol): Do not warn that protocol attributes are 1349 unimplemented. Pass the attributes to start_protocol. 1350 (start_protocol): Added attributes argument. Recognize the 1351 'deprecated' attribute and mark the protocols with TREE_DEPRECATED 1352 if present. Store attributes in the protocol. 1353 (objc_declare_protocols): Added 'attributes' argument. Recognize 1354 the 'deprecated' attribute and mark the protocols with 1355 TREE_DEPRECATED if present. Store attributes in the protocol. 1356 Updated call to lookup_protocol. 1357 (objc_build_protocol_expr): Updated call to lookup_protocol. 1358 (check_protocol_recursively): Same change. 1359 (lookup_and_install_protocols): Same change. 1360 * objc-act.h: Updated comments. 1361 13622010-11-17 Nicola Pero <nicola.pero@meta-innovation.com> 1363 1364 * objc-act.c (lookup_method_in_protocol_list): Search methods in 1365 PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if 1366 they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS. 1367 13682010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1369 1370 * objc-act.c (objc_build_setter_call): New. 1371 (objc_maybe_build_modify_expr): Rewritten to build a compound 1372 statement. 1373 (objc_build_incr_expr_for_property_ref): Updated calls to 1374 objc_maybe_build_modify_expr to call objc_build_setter_call 1375 instead. Use build_modify_expr () instead of build2 (MODIFY_EXPR, 1376 ...). Use convert () instead of build1 (NOP_EXPR, ...). Use 1377 TREE_NO_WARNING on the final compound statement to silence C++ 1378 warnings. 1379 13802010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1381 1382 * objc-act.c (objc_build_incr_expr_for_property_ref): New. 1383 (objc_create_temporary_var): Moved it towards the beginning of the 1384 file so that objc_build_incr_expr_for_property_ref can use it. 1385 13862010-11-14 Nicola Pero <nicola.pero@meta-innovation.com> 1387 1388 * objc-act.c (objc_add_property_declaration): Check that the decl 1389 we received from the parser is a FIELD_DECL; reject array and 1390 bitfield properties. Convert the warning when a property is 1391 readonly and a setter is specified into an error. Convert errors 1392 when a property declaration does not match a property declaration 1393 in a superclass into warnings. 1394 (objc_add_synthesize_declaration_for_property): Use 1395 DECL_BIT_FIELD_TYPE to determine the type of an instance variable 1396 if it is a bitfield. Throw an error if we are asked to synthesize 1397 setters/getters for a bitfield instance variable but the property 1398 is not appropriate - it must be assign and nonatomic. If the 1399 property is readonly, allow the instance variable type to be a 1400 specialization of the property type. 1401 (objc_type_valid_for_messaging): Fixed returning 'false' for a 1402 Class qualified with a protocol when the 'accept_classes' argument 1403 is 'false'. 1404 14052010-11-13 Nicola Pero <nicola.pero@meta-innovation.com> 1406 1407 * objc-act.c (objc_get_protocol_qualified_type): detect cases 1408 where we are asked to attach a protocol to something which is not 1409 an Objective-C object type, and produce an error. 1410 14112010-11-11 Nicola Pero <nicola.pero@meta-innovation.com> 1412 1413 * objc-act.c (objc_add_property_declaration): Check that the type 1414 of a property and of an inherited property match. 1415 (objc_maybe_build_component_ref): Tidied up indentation and 1416 comments. 1417 (objc_common_type): Added new type of check (-5). 1418 (objc_add_synthesize_declaration_for_property): Check that the 1419 property to synthesize and the instance variable to use have the 1420 same type. 1421 14222010-11-10 Joseph Myers <joseph@codesourcery.com> 1423 1424 * objc-act.c (objc_init): Use %' in diagnostic. 1425 (objc_set_method_opt): Remove trailing '.' from diagnostic. 1426 14272010-11-10 Joseph Myers <joseph@codesourcery.com> 1428 1429 * objc-act.c (dump_base_name): Don't declare here. 1430 14312010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1432 1433 * objc-act.c (objc_add_dynamic_declaration_for_property): Do not 1434 search for the @property declation only in the current context, 1435 but also in inherited properties. Do not mark the original 1436 PROPERTY_DECL in the @interface or @protocol with 1437 PROPERTY_DYNAMIC. 1438 (check_methods): To check if a method is associated with a 1439 @dynamic property, search for the property in IMPL_PROPERTY_DECL. 1440 (check_accessible_methods): Same change. 1441 * objc-act.h: Updated comment. 1442 14432010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1444 1445 * objc-act.c (objc_add_synthesize_declaration_for_property): 1446 Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when 1447 checking for an existing @synthesize or @dynamic declaration. 1448 Search for an inherited @property declaration if none is found in 1449 the local interface. If the required instance variable does not 1450 exist, return instead of trying to continue to prevent a compiler 1451 crash later. Check that the instance variable is not already 1452 being used by another @synthesize. 1453 (objc_add_dynamic_declaration_for_property): Iterate over 1454 IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an 1455 existing @synthesize or @dynamic declaration. 1456 (objc_synthesize_getter): Search for the getter declaration in 1457 protocols and superclasses as well. 1458 (objc_synthesize_setter): Search for the setter declaration in 1459 protocols and superclasses as well. 1460 14612010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1462 1463 * objc-act.c (lookup_property): When checking categories, also 1464 check the protocols attached to each. 1465 (objc_add_property_declaration): Determine the 1466 PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up 1467 error message. Search for an existing property declaration with 1468 the same name which would be inherited from the class hiearchy, 1469 and produce an error if it has incompatible attributes. 1470 (check_methods): Changed second parameter. If the method is a 1471 getter or setter for a property, do not warn if it is inherited as 1472 opposed to implemented directly in the class. 1473 (check_protocol): Updated calls to check_methods. 1474 (finish_class): Do not determine the PROPERTY_SETTER_NAME and 1475 PROPERTY_GETTER_NAME here; this is now done earlier, in 1476 objc_add_property_declaration. 1477 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments. 1478 14792010-11-06 Nicola Pero <nicola.pero@meta-innovation.com> 1480 1481 Fixed using the Objective-C 2.0 dot-syntax with self and super. 1482 * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New. 1483 (maybe_make_artificial_property_decl): Added 'implementation' 1484 argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when 1485 looking up getters or setters for a class. If an implementation 1486 is specified, search it as well for a getter or setter. 1487 (objc_maybe_build_component_ref): Updated calls to 1488 maybe_make_artificial_property_decl; added code to deal with 1489 'self' and 'super' and with methods declared locally in the 1490 implementation. Store the getter call expression in the 1491 PROPERTY_REF instead of throwing it away. 1492 (objc_build_class_component_ref): Updated calls to 1493 maybe_make_artificial_property_decl, and store the getter call 1494 expression in PROPERTY_REF instead of throwing it away. 1495 (lookup_method_static): Implemented 1496 OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option. 1497 (objc_gimplify_property_ref): Do not build the getter method call 1498 here; instead use the one stored in the PROPERTY_REF. If it's not 1499 there, produce helpful error messages. 1500 * objc-tree.def (PROPERTY_REF): Increased the number of operands 1501 from 2 to 3. Updated comments. 1502 * objc-act.h (PROPERTY_REF_GETTER_CALL): New. 1503 15042010-11-06 Iain Sandoe <iains@gcc.gnu.org> 1505 1506 PR target/44981 1507 * objc-act.c (objc_build_string_object): Amend for renamed hook. 1508 (objc_string_ref_type_p): New. 1509 (objc_check_format_arg): New. 1510 15112010-11-04 Nicola Pero <nicola.pero@meta-innovation.com> 1512 1513 Fixed using the Objective-C 2.0 dot-syntax with class names. 1514 * objc-act.c (objc_build_class_component_ref): New. 1515 15162010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1517 1518 * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a 1519 category. 1520 (objc_type_valid_for_messaging): Added 'accept_classes' argument; 1521 if set to 'true', return 'true' for Class objects. Do not remove 1522 more than on pointer indirection. 1523 (objc_add_property_declaration): Only warn about 'assign' 1524 semantics for Objective-C objects if warn_property_assign_default; 1525 and do not warn if the property is readonly or if the type is a Class. 1526 (objc_finish_foreach_loop): Updated calls to 1527 objc_type_valid_for_messaging. 1528 15292010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1530 1531 Implemented -fobjc-std=objc1 flag. 1532 * objc-act.c (objc_start_class_interface): If attributes are 1533 specified when flag_objc1_only is set, print an error. 1534 (objc_start_category_interface): Same change. 1535 (objc_start_protocol): Same change. 1536 (objc_add_method_declaration): Same change. 1537 (objc_start_method_definition): Same change. 1538 (objc_build_keyword_decl): Same change. 1539 (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when 1540 flag_objc1_set is set, print an error. 1541 (objc_set_method_opt): If flag_objc1_only is set, print an error. 1542 (objc_add_property_declaration): Same change. 1543 (objc_add_synthesize_declaration): Same change. 1544 (objc_add_dynamic_declaration): Same change. 1545 (objc_finish_foreach_loop): Same change. 1546 (objc_maybe_build_component_ref): If flag_objc1_only is set, 1547 return immediately. 1548 15492010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1550 1551 * objc-act.c (maybe_make_artificial_property_decl): New. 1552 (objc_maybe_build_component_ref): Call 1553 maybe_make_artificial_property_decl if a property can not be 1554 found. Do not call objc_finish_message_expr if 1555 PROPERTY_HAS_NO_GETTER. 1556 * objc-act.h Updated comments. 1557 (PROPERTY_HAS_NO_GETTER): New. 1558 (PROPERTY_HAS_NO_SETTER): New. 1559 * objc-tree.def: Updated comment. 1560 15612010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1562 1563 Implemented format and noreturn attributes for Objective-C methods. 1564 * objc-act.c (objc_start_method_definition): If method attributes 1565 are specified emit a warning and ignore them. 1566 (build_objc_method_call): Moved deprecation warnings from here ... 1567 (objc_finish_message_expr): to here. Do not emit deprecation 1568 warnings if the receiver is of type 'id'. 1569 (really_start_method): Install 'deprecation' and 'noreturn' 1570 attributes. 1571 (objc_decl_method_attributes): Carefully filter out the list of 1572 attributes, allowing only "noreturn", "format", "sentinel" and 1573 "deprecated". In the case of "format", adjust the arguments. 1574 Always process the attributes in the same way no matter if 1575 "sentinel" is in the list or not. 1576 15772010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1578 1579 * objc-act.c (objc_maybe_build_component_ref): Warn about using 1580 deprecated properties. 1581 (objc_maybe_printable_name): Support PROPERTY_DECL. 1582 15832010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1584 1585 Implemented Objective-C 2.0 property accessors. 1586 * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL, 1587 OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL, 1588 OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL. 1589 (objc_getProperty_decl): New. 1590 (objc_setProperty_decl): New. 1591 (objc_copyStruct_decl): New. 1592 (objc_getPropertyStruct_decl): New. 1593 (objc_setPropertyStruct_decl): New. 1594 * objc-act.c (build_objc_property_accessor_helpers): New. 1595 (synth_module_prologue): Call 1596 build_objc_property_accessor_helpers. 1597 (lookup_ivar): New. 1598 (objc_synthesize_getter): Implemented synthesizing getters that 1599 work with properties that are not nonatomic, assign properties. 1600 (objc_synthesize_setter): Implemented synthesizing setters that 1601 work with properties that are not nonatomic, assign properties. 1602 16032010-10-30 Nicola Pero <nicola.pero@meta-innovation.com> 1604 1605 Implemented Objective-C 2.0 @property, @synthesize and @dynamic. 1606 * objc-tree.def (PROPERTY_REF): New. 1607 * objc-act.h: Added comments for all the PROPERTY_ macros. 1608 (PROPERTY_NAME): Use DECL_NAME. 1609 (PROPERTY_COPIES): Removed. 1610 (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it. 1611 (PROPERTY_NONATOMIC): New. 1612 (objc_property_assign_semantics): Make it a typedef. 1613 (PROPERTY_ASSIGN_SEMANTICS): New. 1614 (PROPERTY_DYNAMIC): New. 1615 (PROPERTY_REF_OBJECT): New. 1616 (PROPERTY_REF_PROPERTY_DECL): New. 1617 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed. 1618 (in_objc_property_setter_name_context): Removed. 1619 (objc_add_property_declaration): Removed copies and ivar arguments 1620 and code supporting them. Fixed recovering when readonly and 1621 setter attributes are specified. Removed support for @property in 1622 @implementation context. Updated error message. Double-check 1623 that a property does not have a DECL_INITIAL. Validate the 1624 property assign semantics and emit appropriate errors and 1625 warnings. Check for duplicate property declarations. Set 1626 DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC, 1627 PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new 1628 PROPERTY_DECL. Do not set PROPERTY_COPIES. Set 1629 PROPERTY_IVAR_NAME to NULL_TREE. 1630 (objc_build_getter_call): Renamed to 1631 objc_maybe_build_component_ref. If the property is not found in 1632 the interface, search in the protocol list. Do not generate the 1633 getter call; instead, build and return a PROPERTY_REF. 1634 (objc_is_property_ref): New. 1635 (objc_setter_func_call): Removed. 1636 (get_selector_from_reference): Removed. 1637 (is_property): Removed. 1638 (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr. 1639 Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from 1640 the PROPERTY_REF. Generate an error if the property is read-only. 1641 (build_property_reference): Removed. 1642 (objc_finish_message_expr): Removed check to produce "readonly 1643 property can not be set" error when 1644 in_objc_property_setter_name_context. We now generate the error 1645 earlier, in objc_maybe_build_modify_expr, which will only generate 1646 the setter call if the property is readwrite. 1647 (check_methods): Recognize dynamic properties. 1648 (check_methods_accessible): Same change. 1649 (objc_build_property_ivar_name): Removed. 1650 (objc_build_property_setter_name): Dropped bool argument. Always 1651 add the ':' at the end. 1652 (objc_gen_one_property_datum): Removed. 1653 (objc_process_getter_setter): Removed. 1654 (objc_synthesize_getter): Mark 'klass' argument as unused. Use 1655 PROPERTY_GETTER_NAME instead of PROPERTY_NAME. Set the 1656 DECL_SOURCE_LOCATION of the new method to be the same as the one 1657 for the @synthesize. Always use PROPERTY_IVAR_NAME as it is 1658 instead of trying to guess what it should be. Removed use of 1659 CLASS_IVARS. Use the location of @synthesize for c_finish_return 1660 and c_end_compound_statement. 1661 (objc_synthesize_setter): Mark 'klass' argument as unused. Use 1662 PROPERTY_SETTER_NAME instead of trying to guess what it should be. 1663 Set the DECL_SOURCE_LOCATION of the new method to be the same as 1664 the one for the @synthesize. Always use PROPERTY_IVAR_NAME as it 1665 is instead of trying to guess what it should be. Removed use of 1666 CLASS_IVARS. Use the location of @synthesize for c_finish_return 1667 and c_end_compound_statement. Emit an error and keep going, 1668 instead of aborting, if the setter prototype does not have the 1669 expected argument. 1670 (objc_add_synthesize_declaration_for_property): New. 1671 (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from 1672 all arguments. Improved error message. Filled in the rest of the 1673 function, which used to be a placeholder, with an actual 1674 implementation. 1675 (objc_add_dynamic_declaration_for_property): New. 1676 (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all 1677 arguments. Improved error message. Filled in the rest of the 1678 function, which used to be a placeholder, with an actual 1679 implementation. 1680 (objc_gen_property_data): Rewritten. 1681 (finish_class): Added explicit switch cases for 1682 CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and 1683 PROTOCOL_INTERFACE_TYPE. Added a default switch case which is 1684 gcc_unreachable. Rewritten the processing of properties, in 1685 particular to not synthesize prototypes for getters and setters if 1686 they already exist and to install the getter and setter names into 1687 PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME. Do not generate 1688 warnings about setter, getter and ivar property attributes. 1689 (objc_lookup_ivar): Removed support for properties. 1690 (objc_gimplify_property_ref): New. 1691 (objc_gimplify_expr): Use a switch. In case of a PROPERTY_REF, call 1692 objc_gimplify_property_ref. 1693 16942010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 1695 1696 * objc-act.c (objc_add_property_declaration): Added arguments to 1697 pass the various property attributes that were parsed with the 1698 property declaration. Process arguments to determine the final 1699 property attributes and produce error messages as appropriate. 1700 Added temporary code to keep the compiler silent about variables 1701 set but not used - for new attributes that are only checked but 1702 have no effect yet. 1703 (property_readonly): Removed. 1704 (property_setter): Removed. 1705 (property_getter): Removed. 1706 (property_ivar): Removed. 1707 (property_copies): Removed. 1708 (objc_set_property_attr): Removed. 1709 * objc-act.h (enum property_assign_semantics): New. 1710 17112010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 1712 1713 * objc-act.c (objc_add_property_variable): Renamed to 1714 objc_add_property_declaration. Added location argument. Updated 1715 warnings and errors to use it. Use error, not fatal_error, if a 1716 property declaration is found outside an interface or 1717 implementation context. 1718 17192010-10-24 Nicola Pero <nicola.pero@meta-innovation.com> 1720 1721 * objc-act.c (objc_build_keyword_decl): Updated comments. Do not 1722 emit a warning that method parameter attributes are unimplemented. 1723 Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL. 1724 (start_method_def): Copy attributes from each KEYWORD_DECL into 1725 the corresponding PARM_DECL. 1726 (objc_warn_deprecated_use): Removed. 1727 (build_objc_method_call): Call warn_deprecated_use, not 1728 objc_warn_deprecated_use. 1729 (objc_maybe_printable_name): Do not try to get the identifier name 1730 of DECLs that we don't recognize. Immediately return NULL for them. 1731 (objc_printable_name): Removed C++-specific case, which is no 1732 longer used. Updated comments. 1733 17342010-10-23 Nicola Pero <nicola.pero@meta-innovation.com> 1735 1736 * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments. 1737 (objc_demangle): Return NULL if demangling can not be done because 1738 the string to demangle is not an Objective-C mangled method name. 1739 Be smarter in demangling method names so that at least for methods 1740 with no arguments we are able to almost always demangle '_' correctly. 1741 Updated comments. 1742 (objc_maybe_printable_name): New. 1743 (objc_printable_name): Call objc_maybe_printable_name. If it 1744 returns NULL, call cxx_printable_name in Objective-C++. 1745 17462010-10-21 Iain Sandoe <iains@gcc.gnu.org> 1747 1748 Based on the CFString implementation in FSF apple/trunk branch. 1749 1750 * objc/objc-act.c (objc_build_string_object): Handle CFStrings. 1751 17522010-10-21 Nicola Pero <nicola.pero@meta-innovation.com> 1753 1754 * objc-act.c (get_objc_string_decl): Use a switch instead of a 1755 chain of ifs. Use gcc_unreachable instead of abort. 1756 (add_objc_string): Same change. 1757 (generate_protocol_list): Same change - twice. 1758 (synth_id_with_class_suffix): Same change. 1759 (build_keyword_selector): Same change - twice. 1760 (objc_build_message_expr): Same change. 1761 (objc_build_selector_expr): Same change. 1762 (check_methods): Same change - and added missing gcc_unreachable 1763 for default case. 1764 (check_methods_accessible): Same change - twice, and added missing 1765 gcc_unreachable for default case in one of them. 1766 (start_class): Same change - and added missing gcc_unreachable for 1767 default case. 1768 (continue_class): Same change. 1769 (objc_gen_property_data): Same change. 1770 (finish_class): Same change. 1771 (encode_type_qualifiers): Added missing gcc_unreachable. 1772 (encode_type): Small code tidy up to reduce duplicated code. Use 1773 gcc_unreachable instead of abort - twice. 1774 (encode_gnu_bitfield): Use a switch instead of a chain of ifs - 1775 twice. Added missing gcc_unreachable for default case - twice. 1776 (dump_interface): Use a switch instead of a chain of ifs. 1777 (handle_impent): Same change. 1778 17792010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1780 1781 * objc-act.h (objc_inherit_code): Removed. 1782 * objc-act.c (objc_inherit_code): Removed. 1783 (objc_set_method_type): Removed. 1784 (objc_build_method_signature): Added is_class_method argument. 1785 Use it instead of the global objc_inherit_code variable. 1786 (objc_add_method_declaration): Same change. 1787 (objc_start_method_definition): Same change. 1788 (objc_generate_cxx_ctor_or_dtor): Updated call to 1789 objc_start_method_definition. Do not call objc_set_method_type. 1790 (adjust_type_for_id_default): Mark as inline. 1791 (objc_synthesize_getter): Updated call to 1792 objc_start_method_definition. Do not set objc_inherit_code. 1793 (objc_synthesize_setter): Updated call to 1794 objc_start_method_definition. Do not set objc_inherit_code. 1795 17962010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1797 1798 Merge from 'apple/trunk' branch on FSF servers. Obvious updates 1799 to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to 1800 get it to compile in the current trunk. 1801 1802 2006-01-27 Fariborz Jahanian <fjahanian@apple.com> 1803 1804 Radar 4345837 1805 * objc/objc-act.c (hash_class_name_enter): New. 1806 (hash_class_name_lookup): New. 1807 (objc_declare_alias): Enter alias name into hash table. 1808 (objc_declare_class): Enter class name into hash table. 1809 (objc_is_class_name): Do a hash look up of class name. 1810 (hash_init): Initialize the two new hash tables. 1811 * objc-act.h: Added cls_name_hash_list and als_name_hash_list 1812 declarations, removed class_chain and alias_chain. 1813 18142010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1815 1816 * objc-lang.c (finish_file): Removed. 1817 * objc-act.c (objc_finish_file): Renamed to 1818 objc_write_global_declarations. Do not try to instantiate C++ 1819 templates when compiling Objective-C++ as this is now 1820 automatically done before this function is called. Do not check 1821 for syntax-only run or PCH generation as this is done by the 1822 callers. 1823 * objc-act.h (objc_finish_file): Removed. 1824 18252010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1826 1827 Implemented parsing @synthesize and @dynamic for 1828 Objective-C/Objective-C++. 1829 * objc-act.c (objc_add_synthesize_declaration): New. 1830 (objc_add_dynamic_declaration): New. 1831 18322010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1833 1834 * objc-act.c (lookup_and_install_protocols): Return NULL if passed 1835 error_mark_node. 1836 18372010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1838 1839 Merge from 'apple/trunk' branch on FSF servers. 1840 1841 2006-03-10 Fariborz Jahanian <fjahanian@apple.com> 1842 1843 Radar 4407151 1844 * objc/objc-act.c (objc_is_class_name): template parameter is not 1845 an objective class name. 1846 (objc_generate_cxx_cdtors): Check for the null 1847 objc_implementation_context. 1848 18492010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1850 1851 Merge from 'apple/trunk' branch on FSF servers. 1852 1853 2005-11-08 Fariborz Jahanian <fjahanian@apple.com> 1854 1855 Radar 4330422 1856 * objc/objc-act.c (objc_non_volatilized_type): New 1857 1858 2005-10-07 Fariborz Jahanian <fjahanian@apple.com> 1859 1860 Radar 4204796 1861 * objc-act.c (objc_build_volatilized_type): Build 'volatilzed' 1862 types with proper attribute set and correctly. 1863 (objc_volatilize_decl): Remove unneeded code. 1864 (objc_type_quals_match): Use the new attribute to check on 1865 'volatilzed' type. 1866 (hash_init): removed unneeded code. 1867 18682010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> 1869 1870 Merge from 'apple/trunk' branch on FSF servers. 1871 1872 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> 1873 1874 Radar 4133425 1875 * objc-act.c (objc_diagnose_private_ivar): New. 1876 18772010-10-17 Iain Sandoe <iains@gcc.gnu.org> 1878 1879 * objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and 1880 make its type 'objc_ivar_visibility_kind'. 1881 (objc_start_class_interface): Update to use visibility enum. 1882 (objc_start_class_implementation): Likewise. 1883 (objc_set_visibility): Update to use visibility enum, warn that 1884 @package is handle as per @public. 1885 (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE. 1886 * objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and 1887 make its type 'objc_ivar_visibility_kind'. 1888 18892010-10-14 Iain Sandoe <iains@gcc.gnu.org> 1890 1891 merge from FSF apple 'trunk' branch. 1892 2006 Fariborz Jahanian <fjahanian@apple.com> 1893 1894 Radars 4436866, 4505126, 4506903, 4517826 1895 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New. 1896 property_readonly, property_getter, property_setter, property_ivar, 1897 property_copies, in_objc_property_setter_name_context: New vars. 1898 (objc_set_property_attr): New. 1899 (objc_add_property_variable): New. 1900 (lookup_property_in_list): New. 1901 (lookup_property): New. 1902 (objc_build_getter_call): New. 1903 (objc_setter_func_call): New. 1904 (get_selector_from_reference): New. 1905 (objc_build_setter_call): New. 1906 (is_property): New. 1907 (build_property_reference): New. 1908 (objc_finish_message_expr): Detect readonly property and warn. 1909 (objc_build_property_ivar_name): New. 1910 (objc_build_property_setter_name): New. 1911 (objc_gen_one_property_datum): New. 1912 (objc_process_getter_setter): New. 1913 (objc_synthesize_getter): New. 1914 (objc_synthesize_setter): New. 1915 (objc_gen_property_data): New. 1916 (finish_class): Generate property data. 1917 (comp_proto_with_proto): Separated from ... 1918 (match_proto_with_proto): ... New. 1919 (objc_lookup_ivar): Handle properties. 1920 * objc-tree.def (PROPERTY_DECL): New tree code. 1921 * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size. 1922 (METHOD_PROPERTY_CONTEXT): New. 1923 (PROPERTY_NAME): New. 1924 (PROPERTY_GETTER_NAME): New. 1925 (PROPERTY_SETTER_NAME): New. 1926 (PROPERTY_IVAR_NAME): New. 1927 (PROPERTY_READONLY): New. 1928 (PROPERTY_COPIES): New. 1929 (TOTAL_CLASS_RAW_IVARS): New. 1930 (CLASS_PROPERTY_DECL): New. 1931 (IMPL_PROPERTY_DECL): New. 1932 * objc-lang.c (objc_init_ts): Update fields for property_decl. 1933 19342010-10-13 Richard Henderson <rth@redhat.com> 1935 1936 * objc-act.c (objc_eh_personality): Update call to 1937 build_personality_function. 1938 19392010-10-13 Iain Sandoe <iains@gcc.gnu.org> 1940 1941 merge from FSF apple 'trunk' branch. 1942 1943 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> 1944 Radar 3803157 (method attributes) 1945 * objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro. 1946 * objc/objc-act.c (objc_decl_method_attributes): New. 1947 (objc_add_method_declaration): Process method's attribute. 1948 (objc_start_method_definition): Ditto. 1949 (build_objc_method_call): Inject method attribute into 1950 built function type. 1951 (objc_method_decl): New. 1952 (objc_warn_deprecated)use): New. 1953 19542010-10-07 Andi Kleen <ak@linux.intel.com> 1955 1956 * Make-lang.in (cc1obj-dummy): Remove. 1957 (cc1obj-checksum): Change to run checksum over object files 1958 and options only. 1959 19602010-10-07 Nicola Pero <nicola.pero@meta-innovation.com> 1961 1962 PR objc/45925 1963 * objc-act.c (objc_finish_foreach_loop): Convert return value of 1964 countByEnumeratingWithState:objects:count: to long unsigned int. 1965 19662010-10-07 Iain Sandoe <iains@gcc.gnu.org> 1967 1968 * objc-act.c (build_objc_method_call): Replace calls to 1969 build_function_call () with the VEC equivalent. Construct parameter 1970 lists as VECs. 1971 19722010-10-07 Iain Sandoe <iains@gcc.gnu.org> 1973 1974 * objc-act.c (objc_build_message_expr): Call mark_exp_read () to 1975 signal that the receiver has been used. 1976 19772010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 1978 1979 * README: Obsolete file removed. 1980 19812010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 1982 1983 Implemented fast enumeration for Objective-C. 1984 * objc-act.c (build_fast_enumeration_state_template): New. 1985 (TAG_ENUMERATION_MUTATION): New. 1986 (TAG_FAST_ENUMERATION_STATE): New. 1987 (synth_module_prologue): Call build_fast_enumeration_state_template() and set up 1988 objc_enumeration_mutation_decl. 1989 (objc_create_temporary_var): Allow providing a name to temporary 1990 variables. 1991 (objc_build_exc_ptr): Updated calls to 1992 objc_create_temporary_var(). 1993 (next_sjlj_build_try_catch_finally): Same change. 1994 (objc_finish_foreach_loop): New. 1995 * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP, 1996 OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template, 1997 objc_enumeration_mutation_decl. 1998 1999 Merge from 'apple/trunk' branch on FSF servers. 2000 2001 2006-04-12 Fariborz Jahanian <fjahanian@apple.com> 2002 2003 Radar 4507230 2004 * objc-act.c (objc_type_valid_for_messaging): New routine to check 2005 for valid objc object types. 2006 (objc_finish_foreach_loop): Check for invalid objc objects in 2007 foreach header. 2008 20092010-10-05 Nicola Pero <nicola.pero@meta-innovation.com> 2010 2011 Merge from 'apple/trunk' branch on FSF servers. 2012 2013 2005-10-17 Fariborz Jahanian <fjahanian@apple.com> 2014 2015 Radar 4290840 2016 * objc-act.c (objc_start_method_definition): Check for 2017 error_mark_node for the selector name and make a quick exit. 2018 20192010-10-04 Andi Kleen <ak@linux.intel.com> 2020 2021 * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule. 2022 20232010-09-30 Iain Sandoe <iains@gcc.gnu.org> 2024 2025 merge from FSF 'apple/trunk' branch. 2026 2006-01-30 Fariborz Jahanian <fjahanian@apple.com> 2027 2028 Radar 4386773 2029 * objc/objc-act.c (objc_set_method_opt): New function. 2030 (objc_start_protocol, objc_finish_interface): Reset 2031 objc_method_optional_flag flag. 2032 (objc_add_method_declaration): Pass on the new 2033 flag to objc_add_method. 2034 (objc_add_method): Add optional methods to new chain in 2035 the protocol class. 2036 * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS) 2037 (CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol 2038 class's optional method chains. 2039 20402010-09-30 Nicola Pero <nicola.pero@meta-innovation.com> 2041 2042 Merge from 'apple/trunk' branch on FSF servers. 2043 2044 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 2045 2046 Radar 4278236 2047 * objc-act.c (objc_declare_class): Pick the right 2048 type tree. 2049 20502010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 2051 2052 Merge from 'apple/trunk' branch on FSF servers. 2053 2054 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 2055 2056 Radar 4281748 2057 * objc-act.c (objc_check_global_decl): New 2058 20592010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 2060 2061 * objc-act.c (objc_is_reserved_word): Removed. 2062 20632010-09-28 Iain Sandoe <iains@gcc.gnu.org> 2064 2065 * objc-act.c (objc_add_method_declaration): Handle and ignore 2066 attributes. 2067 (objc_start_method_definition): Likewise. 2068 (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor. 2069 (objc_build_keyword_decl): Handle and ignore attributes. 2070 20712010-09-28 Richard Henderson <rth@redhat.com> 2072 2073 * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info. 2074 20752010-09-28 Iain Sandoe <iains@gcc.gnu.org> 2076 2077 * objc-act.c (objc_start_class_interface): Handle and ignore attributes. 2078 (objc_start_category_interface): Likewise. 2079 (objc_start_protocol): Likewise. 2080 20812010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2082 2083 Merge from 'apple/trunk' branch on FSF servers. 2084 2085 2005-08-23 Stuart Hastings <stuart@apple.com> 2086 Ziemowit Laski <zlaski@apple.com> 2087 2088 Radar 4209854 2089 * objc-act.c (objc_decay_parm_type): New function. 2090 (get_arg_type_list): Decay types for all named arguments. 2091 (objc_push_parm): Rebuild the PARM_DECL if its type has 2092 been decayed. 2093 20942010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2095 2096 * objc-act.c (encode_type): Fixed encoding enums with the next 2097 runtime. 2098 20992010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2100 2101 Merge from 'apple/trunk' branch on FSF servers. 2102 2103 2005-07-18 Ziemowit Laski <zlaski@apple.com> 2104 2105 Radar 4175534 2106 * objc-act.c (objc_compare_types): A new silent comparison 2107 mode (-4), differing from regular comparison (-3) in that 2108 'false' is returned instead of issuing warnings. 2109 21102010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2111 2112 * objc-act.c (encode_type): Do not add 'r' with the next runtime. 2113 (encode_aggregate_within): Reorganized code to be more readable. 2114 (encode_aggregate_fields): Updated second argument to be 'bool' 2115 instead of 'int'. 2116 21172010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2118 2119 PR objc/45763 2120 PR objc/25450 2121 PR objc/25464 2122 * objc-act.c: Improved comments for encoding functions. 2123 (encode_aggregate_within): For the GNU runtime, rewritten some 2124 obsfuscated code to clarify the various cases. 2125 (encode_aggregate): Function removed. 2126 (encode_array): Generate an error if asked to encode an incomplete 2127 array as part of generating instance variables. Else, when 2128 encoding an incomplete array inside a structure, encode it as an 2129 array of zero size. 2130 (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as 2131 '^c' instead of '*'. 2132 (encode_gnu_bitfield): Encode enumerated types exactly in the same 2133 type as integer types instead of using a hardcoded 'i'. If asked 2134 to encode a non-integer type as a bitfield, do not abort 2135 compilation immediately; instead generate an error, then skip the 2136 type. 2137 (encode_type): Use a 'switch' instead of a sequence of 'if's. 2138 Added a 'default' clause that gets executed if the type can not be 2139 matched, and that encodes it as '?' (unknown) and produces a 2140 warning. For the GNU runtime, encode enumerated types exactly in 2141 the same way as integer types instead of using a hardcoded 'i'. 2142 Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'. 2143 Encode C++ reference types as pointers. Call encode_vector to 2144 encode vectors. 2145 (encode_vector): New function. 2146 21472010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2148 2149 Merge from 'apple/trunk' branch on FSF servers. I modified the 2150 changes to be used only when compiling for the NeXT runtime. 2151 2152 2005-10-10 Fariborz Jahanian <fjahanian@apple.com> 2153 2154 Radar 4301047 2155 2156 * objc-act.c (encode_type): Remove the hack. 2157 2158 2005-07-20 Ziemowit Laski <zlaski@apple.com> 2159 2160 Radar 4136935 2161 * objc-act.c (pointee_is_readonly): New function. 2162 (encode_pointer, encode_aggregate_within, encode_type): 2163 Attempt to emulate GCC 3.3 when generating type encodings. 2164 21652010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2166 2167 Merge from 'apple/trunk' branch on FSF servers. 2168 2169 2005-12-15 Fariborz Jahanian <fjahanian@apple.com> 2170 2171 Radar 4229905 2172 * objc-act.c (objc_have_common_types): New function. 2173 2174 2005-06-22 Ziemowit Laski <zlaski@apple.com> 2175 2176 Radar 4154928 2177 * objc-act.c (objc_common_type): New function. 2178 21792010-09-27 Richard Guenther <rguenther@suse.de> 2180 2181 * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT. 2182 (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P. 2183 21842010-09-26 Nicola Pero <nicola.pero@meta-innovation.com> 2185 2186 * objc-act.c: Removed historical, obsolete comment at the top of 2187 the file. 2188 21892010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 2190 2191 PR objc/23710 2192 * objc-act.c (objc_start_method_definition): Do not abort upon a 2193 'method definition not in @implementation context' error. Return 2194 'false' instead. 2195 21962010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 2197 2198 PR objc/25965 2199 * objc-act.c (objc_get_interface_ivars): New function. 2200 (objc_collecting_ivars): New variable. 2201 (continue_class): Set and reset objc_collecting_ivars for context. 2202 22032010-09-15 Nicola Pero <nicola.pero@meta-innovation.com> 2204 2205 Merge from 'apple/trunk' branch on FSF servers. 2206 2207 2006-03-09 Fariborz Jahanian <fjahanian@apple.com> 2208 2209 Radar 4457381 2210 * objc/objc-act.c (objc_finish_message_expr): Look for message in 2211 @class's protocol list. 2212 2213 2006-02-07 Fariborz Jahanian <fjahanian@apple.com> 2214 2215 Radar 4219590 2216 * objc/objc-act.c (objc_start_method_definition): Initialize 2217 break/continue labels. 2218 2219 2005-08-22 Ziemowit Laski <zlaski@apple.com> 2220 2221 Radar 4174166 2222 * objc-act.c (objc_compare_types): Compare function 2223 pointers; indicate success if the right-hand side has 2224 a return type that is covariant, and the argument types 2225 contravariant, with those of the left side. 2226 2227 2005-08-22 Ziemowit Laski <zlaski@apple.com> 2228 2229 Radar 4216500 2230 * objc-act.c (objc_get_protocol_qualified_type): When looking 2231 at a typedef, retrieve the precise type it describes (rather 2232 than merely looking up a class by name). 2233 22342010-09-10 Nicola Pero <nicola.pero@meta-innovation.com> 2235 2236 * objc/objc-act.c (objc_begin_try_stmt): Generate an error if 2237 -fobjc-exceptions was not used. (objc_build_throw_stmt): Same 2238 change. 2239 22402010-07-15 Nathan Froyd <froydnj@codesourcery.com> 2241 2242 * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN. 2243 22442010-07-10 Iain Sandoe <iains@gcc.gnu.org> 2245 2246 PR objc/44140 2247 * objc-act.c: build_objc_string_decl() remove declaration. 2248 (finish_var_decl): Remove forcing of var output and marking 2249 as "Used". 2250 (init_def_list): Use integer_zero_node. 2251 (init_objc_symtab): Use integer_zero_node, make the short 2252 integer type specific on relevant nodes. 2253 (generate_objc_symtab_decl): Remove call to 2254 forward_declare_categories(). Use null_pointer_node where 2255 appropriate. 2256 (build_module_descriptor): Comment and mark this item as 2257 DECL_PRESERVE_P. 2258 (generate_static_references): Use gcc_unreachable instead of 2259 abort (). 2260 (diagnose_missing_method): New. 2261 (build_next_selector_translation_table): New. 2262 (build_gnu_selector_translation_table): New. 2263 (add_objc_string): Merge code from build_objc_string_decl... 2264 ... and delete build_objc_string_decl(). 2265 (generate_dispatch_table): Make integer types explicit. 2266 (generate_category): Pass implent and arrange for the data 2267 to be extracted within the routine. Do not start new vars, 2268 but finish the ones collcted during parsing. 2269 (generate_shared_structures): Likewise. 2270 (finish_objc): Reorder code so that we finish variables before 2271 referencing them. Save the global data before calling meta-data 2272 creation routines, and pass the current reference to the two 2273 main routines. Only call generate_objc_image_info () for the 2274 NeXT runtime. 2275 (generate_classref_translation_entry): Comment on and make this 2276 item DECL_PRESERVE_P. 2277 (handle_class_ref): Use varpool interfaces, comment on and make 2278 this item DECL_PRESERVE_P. 2279 (handle_impent): Likewise. 2280 (generate_objc_image_info): Only generate when the content is 2281 non-zero. Make integer types explict. 2282 22832010-07-03 Nathan Froyd <froydnj@codesourcery.com> 2284 2285 PR objc/24867 2286 * objc-act.c (build_sized_array_type): New function. 2287 (add_objc_string): Use it. 2288 (generate_protocol_list): Likewise. 2289 (generate_objc_image_info): Likewise. 2290 (add_field_decl): New function. 2291 (objc_build_struct): Use a VEC rather than building a TREE_LIST. 2292 (generate_struct_by_value_array): Use add_field_decl. 2293 (build_objc_symtab_template): Likewise. 2294 (build_module_descriptor): Likewise. 2295 (build_objc_exception_stuff): Likewise. 2296 (build_protocol_template): Likewise. 2297 (build_method_prototype_list_template): Likewise. 2298 (build_method_prototype_template): Likewise. 2299 (build_category_template): Likewise. 2300 (build_selector_template): Likewise. 2301 (build_class_template): Likewise. 2302 (build_super_template): Likewise. 2303 (build_ivar_template): Likewise. 2304 (build_ivar_list_template): Likewise. 2305 (build_method_list_template): Likewise. 2306 (build_method_template): Likewise. 2307 23082010-06-28 Steven Bosscher <steven@gcc.gnu.org> 2309 2310 * objc-act.c: Do not include except.h. 2311 23122010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com> 2313 2314 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC 2315 allocation. 2316 2317 * objc-act.c (objc_volatilize_decl): Likewise. 2318 (objc_build_string_object): Likewise. 2319 (hash_init): Likewise. 2320 (hash_enter): Likewise. 2321 (hash_add_attr): Likewise. 2322 (add_class): Likewise. 2323 (start_class): Likewise. 2324 23252010-06-05 Steven Bosscher <steven@gcc.gnu.org> 2326 2327 * objc-act.c: Update include path for moved files. 2328 * objc-lang.c: Likewise. 2329 * config-lang.in: Update paths in gtfiles for files in c-family/. 2330 23312010-06-01 Nathan Froyd <froydnj@codesourcery.com> 2332 2333 * objc-act.c (build_next_objc_exception_stuff): Give setjmp a 2334 varargs type instead of a zero-argument type. 2335 23362010-05-30 Nathan Froyd <froydnj@codesourcery.com> 2337 2338 * objc-act.c (synth_module_prologue): Use build_function_type_list 2339 instead of build_function_type. 2340 (build_module_initializer_routine): Likewise. 2341 (build_next_objc_exception_stuff): Likewise. 2342 (build_objc_exception_stuff): Likewise. 2343 23442010-05-27 Joseph Myers <joseph@codesourcery.com> 2345 2346 * objc-act.c: Include diagnostic-core.h instead of diagnostic.h. 2347 * Make-lang.in (objc/objc-act.o): Update dependencies. 2348 23492010-05-25 Steven Bosscher <steven@gcc.gnu.org> 2350 2351 * objc-act.h: Do not include gimple.h. 2352 * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h. 2353 Include gimple.h. Explain why except.h has to be included. 2354 * objc-lang.c: Do not include diagnostics.h. 2355 * Make-lang.in: Update dependencies. 2356 23572010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2358 2359 * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance 2360 mismatch code for VECs. 2361 23622010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2363 2364 * objc-act.c (objc_build_constructor): Take a VEC instead of a tree. 2365 Use build_constructor instead of build_constructor_from_list. 2366 (objc_build_string_object): Build a VEC argument for 2367 objc_build_constructor. 2368 (init_def_list): Likewise. 2369 (init_objc_symtab): Likewise. 2370 (init_module_descriptor): Likewise. 2371 (generate_static_references): Likewise. 2372 (build_selector_translation_table): Likewise. 2373 (build_descriptor_table_initializer): Likewise. 2374 (generate_descriptor_table): Likewise. 2375 (build_protocol_initializer): Likewise. 2376 (build_ivar_list_initializer): Likewise. 2377 (generate_ivars_list): Likewise. 2378 (build_dispatch_table_initializer): Likewise. 2379 (generate_dispatch_table): Likewise. 2380 (generate_protocol_list): Likewise. 2381 (build_category_initializer): Likewise. 2382 (build_shared_structure_initializer): Likewise. 2383 (generate_objc_image_info): Likewise. 2384 23852010-04-30 Iain Sandoe <iains@gcc.gnu.org> 2386 2387 PR objc++/32052 2388 * objc-act.c (encode_aggregate_within): Encode structure tags 2389 with template args for ObjC++. 2390 23912010-04-30 Steven Bosscher <steven@gcc.gnu.org> 2392 2393 * objc-act.c: Do not include varray.h. 2394 23952010-04-07 Jakub Jelinek <jakub@redhat.com> 2396 2397 PR c/18624 2398 * objc-act.c (finish_var_decl, objc_begin_catch_clause, 2399 really_start_method, get_super_receiver, handle_class_ref): Set 2400 DECL_READ_P in addition to TREE_USED. 2401 24022010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2403 2404 PR objc/35996 2405 * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for 2406 -fgnu-runtime and set flag_objc_gc to zero. 2407 24082010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2409 2410 PR objc++/23716 2411 * objc-act.c (build_module_initializer_routine): Make the argument 2412 to objc_start_function NULL_TREE when compiling ObjC++. 2413 24142010-02-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2415 Mike Stump <mikestump@comcast.net> 2416 2417 PR objc/43061 2418 * objc-act.c (finish_var_decl): Set the generated symbols as "used". 2419 24202009-12-17 Shujing Zhao <pearly.zhao@oracle.com> 2421 2422 * objc-act.c (objc_substitute_decl, build_ivar_reference, 2423 get_super_receiver): Update build_indirect_ref calls. 2424 24252009-11-28 Jakub Jelinek <jakub@redhat.com> 2426 2427 * objc-act.c (generate_shared_structures): Remove unused sc_spec and 2428 decl_specs variables. 2429 (objc_build_message_expr): Remove unused loc variable. 2430 (objc_finish_message_expr): Remove unused saved_rtype variable. 2431 (encode_field_decl): Remove unused type variable. 2432 2433 PR obj-c++/42156 2434 * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for 2435 type variants that don't have it initialized yet. 2436 24372009-09-14 Jan Hubicka <jh@suse.cz> 2438 2439 * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON. 2440 24412009-09-14 Richard Henderson <rth@redhat.com> 2442 2443 * objc-act.c (objc_init_exceptions): Don't call 2444 default_init_unwind_resume_libfunc. 2445 (objc_build_exc_ptr): Use __builtin_eh_pointer. 2446 24472009-09-13 Richard Guenther <rguenther@suse.de> 2448 Rafael Avila de Espindola <espindola@google.com> 2449 2450 * objc-act.c (objc_eh_runtime_type): Export. 2451 (objc_init_exceptions): Remove. Move warning code ... 2452 (objc_begin_try_stmt): ... here 2453 (objc_build_throw_stmt): ... and here. 2454 (objc_eh_personality_decl): New. 2455 (objc_eh_personality): New function. 2456 * objc-act.h (objc_eh_runtime_type): Declare. 2457 (objc_eh_personality): Likewise. 2458 * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define. 2459 (LANG_HOOKS_EH_PERSONALITY): Likewise. 2460 24612009-09-03 Diego Novillo <dnovillo@google.com> 2462 2463 * objc-lang.c (lang_hooks): Remove const qualifier. 2464 24652009-08-20 Richard Guenther <rguenther@suse.de> 2466 2467 * objc-act.c: Include c-lang.h 2468 * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency. 2469 24702009-07-17 Aldy Hernandez <aldyh@redhat.com> 2471 Manuel López-Ibáñez <manu@gcc.gnu.org> 2472 2473 PR 40435 2474 * objc-act.c: Add location argument to all calls to 2475 build_fold_addr_expr. 2476 24772009-07-14 Taras Glek <tglek@mozilla.com> 2478 Rafael Espindola <espindola@google.com> 2479 2480 * Make-lang.in (objc.install-plugin): New target for 2481 installing plugin headers. 2482 24832009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2484 2485 * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by 2486 EXPR_LOCATION. 2487 24882009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2489 2490 * objc-act.c: Replace %J by an explicit location. Update all 2491 calls. 2492 24932009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2494 2495 * objc-act.c: Replace %H by an explicit location. Update all 2496 calls. 2497 24982009-06-22 Steven Bosscher <steven@gcc.gnu.org> 2499 2500 PR objc/28050 2501 * objc-act.c (objc_build_message_args): Return if ARGS is the 2502 error_mark_node. 2503 25042009-06-19 Ian Lance Taylor <iant@google.com> 2505 2506 * objc-act.c (objc_in_struct, objc_struct_types): Remove. 2507 (objc_struct_info): New static variable. 2508 (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct 2509 and &objc_struct_types, to start_struct. 2510 (objc_finish_struct): Likewise for finish_struct. 2511 25122009-06-15 Ian Lance Taylor <iant@google.com> 2513 2514 * objc-act.c (objc_start_function): Don't set 2515 label_context_stack_se or label_context_stack_vm. 2516 25172009-06-12 Aldy Hernandez <aldyh@redhat.com> 2518 2519 * objc-act.c (finish_var_decl): Pass location to finish_decl. 2520 (objc_get_parm_info): Same. 2521 (get_super_receiver): Same. 2522 * objc-act.c (objc_build_component_ref): Pass location to 2523 build_compound_ref. 2524 (build_module_initializer_routine): Pass location to 2525 c_end_compound_stmt. 2526 (objc_generate_static_init_call): Pass location to build_stmt. 2527 (build_typed_selector_reference): New location argument. 2528 (build_selector_reference): Same. 2529 (objc_substitute_decl): Pass location to build_array_ref. 2530 (next_sjlj_build_try_catch_finally): Pass location to build_stmt. 2531 (objc_begin_catch_clause): Same. 2532 (objc_finish_try_stmt): Same. 2533 (objc_finish_catch_clause): Pass location to c_end_compound_stmt. 2534 (objc_build_throw_stmt): New argument. 2535 (generate_shared_structures): Pass location to build_c_cast. 2536 (objc_build_message_expr): Use local location. 2537 (objc_finish_message_expr): Use input_location. 2538 (build_objc_method_call): New argument. 2539 (objc_build_selector_expr): Same. 2540 (get_super_receiver): Pass location to build_c_cast, 2541 build_modify_expr, build_compound_expr. 2542 * objc-act.c: Add location to all calls to start_struct, build_decl, 2543 finish_struct. 2544 25452009-06-09 Ian Lance Taylor <iant@google.com> 2546 2547 * objc-act.c (objc_gimplify_expr): Change return type to int. 2548 * objc-act.h: Update declaration. 2549 25502009-06-08 Alexandre Oliva <aoliva@redhat.com> 2551 2552 * objc-act.c (objc_init): Skip print_struct_values during 2553 -fcompare-debug-second. 2554 25552009-06-03 Ian Lance Taylor <iant@google.com> 2556 2557 * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and 2558 $(SYSTEM_H). 2559 25602009-05-27 Ian Lance Taylor <iant@google.com> 2561 2562 * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to 2563 $(LINKER). 2564 (cc1obj$(exeext)): Likewise. 2565 25662009-05-26 Ian Lance Taylor <iant@google.com> 2567 2568 * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER). 2569 (cc1obj$(exeext)): Likewise. 2570 25712009-05-20 Ian Lance Taylor <iant@google.com> 2572 2573 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather 2574 than NULL_TREE to build_special_member_call. 2575 25762009-05-10 Ian Lance Taylor <iant@google.com> 2577 2578 * objc-act.c (objc_building_struct): New static variable. 2579 (objc_in_struct, objc_struct_types): New static variables. 2580 (objc_start_struct, objc_finish_struct): New static functions. 2581 (generate_struct_by_value_array): Call objc_start_struct instead 2582 of start_struct, and call objc_finish_struct instead of 2583 finish_struct. 2584 (objc_build_struct, build_objc_symtab_template): Likewise. 2585 (build_module_descriptor): Likewise. 2586 (build_next_objc_exception_stuff): Likewise. 2587 (build_protocol_template): Likewise. 2588 (build_method_prototype_list_template): Likewise. 2589 (build_method_prototype_template): Likewise. 2590 (build_category_template, build_selector_template): Likewise. 2591 (build_class_template, build_super_template): Likewise. 2592 (build_ivar_template, build_ivar_list_template): Likewise. 2593 (build_method_list_template): Likewise. 2594 (build_method_template): Likewise. 2595 25962009-05-10 Joseph Myers <joseph@codesourcery.com> 2597 2598 * objc-act.c: Include intl.h. 2599 (objc_lookup_protocol): Use complete sentences for diagnostics 2600 with %qE for identifiers and translating results of 2601 gen_type_name_0 to locale character set. 2602 (objc_check_decl, check_protocol_recursively, 2603 lookup_and_install_protocols, objc_build_string_object, 2604 objc_get_class_reference, objc_declare_alias, objc_declare_class, 2605 objc_get_class_ivars, error_with_ivar, check_duplicates, 2606 objc_finish_message_expr, objc_build_protocol_expr, 2607 objc_build_selector_expr, build_ivar_reference, objc_add_method, 2608 add_category, add_instance_variable, objc_is_public, 2609 check_methods, check_methods_accessible, check_protocol, 2610 start_class, finish_class, start_protocol, really_start_method, 2611 get_super_receiver, objc_lookup_ivar): Use %E and %qE for 2612 identifiers in diagnostics. Translate generated text to locale 2613 character set as needed. 2614 (check_protocol, check_protocols): Change name parameter to type 2615 tree. 2616 (lang_report_error_function): Remove. 2617 26182009-04-27 Ian Lance Taylor <iant@google.com> 2619 2620 * objc-act.c (objc_gimplify_expr): Add casts to enum type. 2621 26222009-04-24 Ian Lance Taylor <iant@google.com> 2623 2624 * objc-act.c (get_super_receiver): Update calls to 2625 build_modify_expr to pass new argument. 2626 26272009-04-21 Taras Glek <tglek@mozilla.com> 2628 2629 * objc-act.c: Update GTY annotations to new syntax 2630 * objc-act.h: Likewise 2631 26322009-04-21 Joseph Myers <joseph@codesourcery.com> 2633 2634 * ChangeLog: Add copyright and license notices. 2635 26362009-04-20 Ian Lance Taylor <iant@google.com> 2637 2638 * objc-act.c (objc_rewrite_function_call): Change parameter from 2639 params to first_param. Change all callers. 2640 26412009-03-30 Dominique d'Humieres <dominiq@lps.ens.fr> 2642 2643 PR bootstrap/39583 2644 * objc-act.c (in_late_binary_op): Define for Objective-C++. 2645 26462009-03-29 Joseph Myers <joseph@codesourcery.com> 2647 2648 PR c/456 2649 PR c/5675 2650 PR c/19976 2651 PR c/29116 2652 PR c/31871 2653 PR c/35198 2654 * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op. 2655 26562008-12-05 Sebastian Pop <sebastian.pop@amd.com> 2657 2658 PR bootstrap/38262 2659 * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS, 2660 remove GMPLIBS. 2661 26622008-10-06 Aldy Hernandez <aldyh@redhat.com> 2663 2664 * objc-act.c (objc_build_string_object): Pass location to 2665 build_unary_op. 2666 (init_def_list): Same. 2667 (init_objc_symtab): Same. 2668 (init_module_descriptor): Same. 2669 (build_module_initializer_routine): Same. 2670 (generate_static_references): Same. 2671 (build_typed_selector_reference): Same. 2672 (add_objc_string): Same. 2673 (objc_substitute_decl): Same. 2674 (objc_build_ivar_assignment): Same. 2675 (objc_build_global_assignment): Same. 2676 (objc_build_strong_cast_assignment): Same. 2677 (generate_protocols): Same. 2678 (build_protocol_initializer): Same. 2679 (build_dispatch_table_initializer): Same. 2680 (generate_protocol_list): Same. 2681 (build_category_initializer): Same. 2682 (build_shared_structure_initializer): Same. 2683 (generate_shared_structures): Same. 2684 (objc_build_protocol_expr): Same. 2685 (build_ivar_reference): Same. 2686 (get_super_receiver): Same. 2687 26882008-09-23 Aldy Hernandez <aldyh@redhat.com> 2689 2690 * objc-act.c (next_sjlj_build_enter_and_setjmp): Call 2691 c_common_truthvalue_conversion with location. 2692 (next_sjlj_build_catch_list): Same. 2693 (next_sjlj_build_try_catch_finally): Same. 2694 26952008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com> 2696 2697 PR objc/37460 2698 * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define. 2699 * objc-act.h (objc_get_callee_fndecl): Remove prototype. 2700 * objc-act.c (objc_get_callee_fndecl): Kill. 2701 27022008-09-17 Jan Hubicka <jh@suse.cz> 2703 2704 PR c++/18071 2705 * objc/objc-act.c (objc_finish_method_definition): Do not set 2706 DECL_INLINE. 2707 27082008-09-01 Aldy Hernandez <aldyh@redhat.com> 2709 2710 * objc-act.c (build_typed_selector_reference): Pass input_location to 2711 build_unary_op calls. 2712 (build_selector_reference): Same, but to build_array_ref. 2713 (objc_substitute_decl): Same. 2714 (build_ivar_reference): Same, but to build_indirect_ref. 2715 (get_super_receiver): Same. 2716 27172008-07-28 Richard Guenther <rguenther@suse.de> 2718 2719 Merge from gimple-tuples-branch. 2720 2721 2008-07-18 Aldy Hernandez <aldyh@redhat.com> 2722 2723 * Make-lang.in (objc-lang.o): Depend on GIMPLE_H. 2724 (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H. 2725 * objc-act.h: Include gimple.h instead of tree-gimple.h. 2726 * ipa-reference.c: Same. 2727 2728 2007-11-10 Aldy Hernandez <aldyh@redhat.com> 2729 2730 * objc-act.c (objc_gimplify_expr): Change pre and post to sequences. 2731 * objc-act.h (objc_gimplify_expr): Change prototype accordingly. 2732 27332008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2734 2735 * objc-act.c: Fix comment typos. 2736 27372008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2738 2739 * objc-act.c (objc_start_class_interface, 2740 objc_start_category_interface, objc_start_class_implementation, 2741 objc_start_category_implementation, objc_build_struct, 2742 generate_static_references, build_private_template, 2743 lookup_category, objc_add_method, add_category, 2744 add_instance_variable, objc_is_public, conforms_to_protocol, 2745 start_class, continue_class, finish_class): Avoid C++ keywords. 2746 27472008-07-14 Jason Merrill <jason@redhat.com> 2748 2749 PR objc++/36723 2750 * objc-act.c (objc_build_constructor): Update C++ tweak. 2751 27522007-07-14 Rafael Ávila de Espíndola <espindola@google.com> 2753 2754 * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead 2755 of DECL_IN_SYSTEM_HEADER. 2756 27572008-07-11 Ian Lance Taylor <iant@google.com> 2758 2759 * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS, 2760 etc., not just when OBJCPLUS is defined. 2761 27622008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2763 2764 * objc-act.c (setup_string_decl, objc_build_string_object, 2765 hash_interface, eq_interface, objc_begin_try_stmt, 2766 encode_method_prototype, build_ivar_list_initializer, 2767 objc_build_encode_expr): Fix for -Wc++-compat. 2768 27692008-05-12 Tomas Bily <tbily@suse.cz> 2770 2771 * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr): 2772 Use CONVERT_EXPR_P. 2773 27742008-04-23 Paolo Bonzini <bonzini@gnu.org> 2775 2776 * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT. 2777 27782008-04-03 Tom Tromey <tromey@redhat.com> 2779 2780 * Make-lang.in (objc_OBJS): New variable. 2781 27822008-03-27 Tom Tromey <tromey@redhat.com> 2783 2784 * Make-lang.in: Revert automatic dependency patch. 2785 27862008-03-27 Douglas Gregor <doug.gregor@gmail.com> 2787 2788 PR obj-c++/35704 2789 * objc-act.c (objc_build_component_ref): Fix call to 2790 finish_class_member_access_expr. 2791 (objc_generate_cxx_ctor_or_dtor): Fix call to 2792 build_special_member_call. 2793 27942008-03-25 Andrew Pinski <pinskia@gmail.com> 2795 2796 PR objc/29197 2797 * objc-act.c (encode_type): Handle when type is error_mark_node. 2798 (objc_push_parm): Handle when the type of parm is error_mark_node. 2799 28002008-03-25 Tom Tromey <tromey@redhat.com> 2801 2802 * Make-lang.in (objc_OBJS): New variable. 2803 (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove. 2804 28052008-03-21 Andreas Tobler <a.tobler@schweiz.org> 2806 2807 PR bootstrap/35660 2808 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to 2809 MAYBE_CLASS_TYPE_P. 2810 (objc_generate_cxx_cdtors): Likewise. 2811 (add_instance_variable): Likewise. 2812 28132008-02-26 Tom Tromey <tromey@redhat.com> 2814 2815 * objc-act.c (objc_init): Remove old location code. 2816 28172008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2818 2819 PR other/35107 2820 * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS). 2821 28222007-07-30 Nick Clifton <nickc@redhat.com> 2823 2824 * Make-lang.in: Change copyright header to refer to version 3 of 2825 the GNU General Public License and to point readers at the 2826 COPYING3 file and the FSF's license web page. 2827 * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h, 2828 config-lang.in, objc-lang.c: Likewise. 2829 28302007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2831 2832 * objc-act.c (objc_get_callee_fndecl): Constify. 2833 * objc-act.h (objc_get_callee_fndecl): Likewise. 2834 28352007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2836 2837 * objc-act.c (volatilized_hash, volatilized_eq, string_hash, 2838 string_eq): Constify. 2839 28402007-04-04 Stuart Hastings <stuart@apple.com> 2841 2842 PR 31281 2843 * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl. 2844 28452007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 2846 2847 * Make-lang.in: Add dummy lang.install-pdf target. 2848 28492007-02-18 Kazu Hirata <kazu@codesourcery.com> 2850 2851 * objc/objc-act.c: Fix comment typos. 2852 28532007-02-15 Sandra Loosemore <sandra@codesourcery.com> 2854 Brooks Moses <brooks.moses@codesourcery.com> 2855 Lee Millward <lee.millward@codesourcery.com> 2856 2857 * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors. 2858 (objc_get_callee_fndecl): Likewise. 2859 28602007-01-23 Andrew Pinski <pinskia@gmail.com> 2861 2862 PR objc/27438 2863 * objc-act.c (objc_add_static_instance): Mark the decl as 2864 TREE_USED. 2865 28662007-01-20 Andrew Pinski <pinskia@gmail.com> 2867 2868 PR objc/30479 2869 * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead 2870 of htab_hash_pointer. 2871 (lookup_interface): Likewise. 2872 (add_class): Likewise. 2873 28742007-01-02 Douglas Gregor <doug.gregor@gmail.com> 2875 2876 * objc-act.c (objc_build_volatilized_type): Keep track of 2877 canonical types. 2878 (objc_get_protocol_qualified_type): Ditto. 2879 28802006-11-02 Andreas Tobler <a.tobler@schweiz.org> 2881 2882 * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and 2883 content where we called cp_finish_file. 2884 28852006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2886 2887 * objc-act.c (synth_module_prologue): Replace calls to 2888 builtin_function with add_builtin_function. 2889 (build_next_objc_exception_stuff): Replace calls to 2890 builtin_function with add_builtin_function. 2891 (build_objc_exception_stuff): Replace calls to 2892 builtin_function with add_builtin_function. 2893 28942006-10-10 Brooks Moses <bmoses@stanford.edu> 2895 2896 * Make-lang.in: Added empty "objc.pdf" target. 2897 28982006-09-26 Andrew Pinski <pinskia@physics.uc.edu> 2899 2900 PR objc/29195 2901 * objc-act.c (objc_push_parm): If we change the type of the 2902 decl, relayout the decl. 2903 29042006-09-19 Eric Christopher <echristo@apple.com> 2905 2906 * objc-act.c (JBLEN): Rename to OBJC_JBLEN, 2907 default to something innocuous. 2908 (build_next_objc_exception_stuff): Rename JBLEN. 2909 29102006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2911 2912 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. 2913 29142006-07-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2915 2916 PR obj-c++/28434 2917 * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes. 2918 29192006-06-06 Mike Stump <mrs@apple.com> 2920 2921 * objc-act.c: Remove prototype for objc_build_volatilized_type. 2922 29232006-05-24 Mike Stump <mrs@apple.com> 2924 2925 * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN. 2926 29272006-05-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2928 2929 PR objc/27240 2930 * objc-act.c (objc_is_public): Return early on invalid type. 2931 29322006-03-02 Fariborz Jahanian <fjahanian@apple.com> 2933 2934 * objc-act.c (init_module_descriptor): Remove file name from 2935 module descriptor. 2936 (gen_type_name_0): Fix ICE when issuing warning. 2937 29382006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2939 2940 * Make-lang.in (OBJC): Remove 2941 (OBJECTIVE-C): Remove 2942 (objective-c): Remove 2943 (.PHONY): Remove objective-c and ObjC 2944 29452005-12-14 Andrew Pinski <pinskia@physics.uc.edu> 2946 2947 PR objc/25360 2948 * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed 2949 by the inner type. 2950 29512005-12-12 Andrew Pinski <pinskia@physics.uc.edu> 2952 2953 PR objc/25348 2954 * objc-act.c (encode_array): Handle arrays to zero sized types. 2955 29562005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2957 2958 * Make-lang.in (objc.all.build, objc.install-normal): Remove. 2959 29602005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2961 2962 * Make-lang.in: Remove all dependencies on s-gtype. 2963 29642005-12-02 Richard Guenther <rguenther@suse.de> 2965 2966 * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp 2967 next_sjlj_build_exc_extract, next_sjlj_build_catch_list, 2968 next_sjlj_build_try_catch_finally, objc_begin_catch_clause, 2969 build_objc_method_call, objc_rewrite_function_call): Use buildN 2970 instead of build. 2971 29722005-10-20 Geoffrey Keating <geoffk@apple.com> 2973 2974 * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW 2975 on objc_msgSend and like builtin functions. 2976 29772005-10-17 Andreas Krebbel <krebbel1@de.ibm.com> 2978 2979 * objc-act.c (objc_build_component_ref): Adjust call to 2980 finish_class_member_access_expr due to a changed prototype. 2981 29822005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 2983 2984 PR objc/23306 2985 * objc-act.c (generate_strings): Remove and move code to 2986 finish decl to ... 2987 (add_objc_string): here when creating a new string decl. 2988 (finish_objc): Don't call generate_strings. 2989 29902005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 2991 2992 PR objc/23381 2993 * objc-act.c (next_sjlj_build_try_catch_finally): Set 2994 TREE_SIDE_EFFECTS on catch_seq after building it. 2995 29962005-08-09 Andrew Pinski <pinskia@physics.uc.edu> 2997 2998 part of PR objc/21992 2999 * objc-act.c (handle_class_ref): The ref decl is always referenced. 3000 30012005-07-20 Giovanni Bajo <giovannibajo@libero.it> 3002 3003 Make CONSTRUCTOR use VEC to store initializers. 3004 * objc-act.c (objc_build_constructor): Use build_constructor_from_list 3005 instead of build_constructor. 3006 30072005-07-08 Daniel Berlin <dberlin@dberlin.org> 3008 3009 * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is 3010 removed. 3011 * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common. 3012 (KEYWORD_KEY_NAME): Use decl_minimal. 3013 (METHOD_SEL_NAME): Ditto.. 3014 (METHOD_SEL_ARGS): Use decl_non_common. 3015 (METHOD_ADD_ARGS): Ditto. 3016 (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common. 3017 (METHOD_DEFINITION): Ditto. 3018 (METHOD_ENCODING): Ditto. 3019 * objc-lang.c: (objc_init_ts): New function. 3020 30212005-07-07 Ziemowit Laski <zlaski@apple.com> 3022 3023 * objc-act.c (objc_build_struct): Pass in an actual @interface 3024 instead of its name, and annotate the struct created (and all 3025 existing variants thereof) with the @interface. 3026 (objc_compare_types): Treat forward-declared ObjC classes 3027 as stand-alone (root) classes for purposes of type comparisons. 3028 (build_private_template): Move some code to objc_build_struct(). 3029 30302005-07-07 Ziemowit Laski <zlaski@apple.com> 3031 3032 PR objc/22274 3033 * objc-act.c (objc_build_string_object): For GNU-style constants, 3034 use the @interface type rather than the built-in type. 3035 30362005-07-03 Kazu Hirata <kazu@codesourcery.com> 3037 3038 * Make-lang.in (cc1plus-checksum.c): Use 3039 build/genchecksum$(build_exeext), not build/genchecksum$(exeext). 3040 30412005-07-02 Joseph S. Myers <joseph@codesourcery.com> 3042 3043 * objc-act.c: Use %q to quote in diagnostics. 3044 30452005-07-02 Joseph S. Myers <joseph@codesourcery.com> 3046 3047 * objc-act.c: Use '+' flag instead of %J. Use 'q' flag for 3048 quoting. 3049 30502005-06-30 Ziemowit Laski <zlaski@apple.com> 3051 3052 * objc-act.c (objc_build_volatilized_type): New function. 3053 (objc_volatilize_decl): Call objc_build_volatilized_type() 3054 instead of build_qualified_type(). 3055 30562005-06-29 Ziemowit Laski <zlaski@apple.com> 3057 3058 * objc-act.c (objc_build_internal_const_str_type): New function. 3059 (check_string_class_template): Use objc_get_class_ivars() instead 3060 of TYPE_FIELDS() to retrieve ivar list. 3061 (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather 3062 than the field itself. 3063 (objc_build_string_object): Synthesize a "__builtin_ObjCString" 3064 type and use it to lay out compile-time string objects. 3065 * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type): 3066 New. 3067 30682005-06-28 Paul Brook <paul@codesourcery.com> 3069 3070 * objc-act.c (objc_init_exceptions): Call 3071 default_init_unwind_resume_libfunc. 3072 30732005-06-27 Ziemowit Laski <zlaski@apple.com> 3074 3075 * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO 3076 portion of TYPE_LANG_SPECIFIC info for all variants of 3077 a class before calling finish_struct(), and restore 3078 same TYPE_OBJC_INFO afterwards. 3079 30802005-06-25 Kelley Cook <kcook@gcc.gnu.org> 3081 3082 * all files: Update FSF address in copyright headers. 3083 30842005-06-15 Joseph S. Myers <joseph@codesourcery.com> 3085 3086 * objc-act.c (my_build_string_pointer): New. 3087 (objc_get_class_reference, get_super_receiver): Call 3088 my_build_string_pointer instead of my_build_string when building 3089 function arguments. 3090 30912005-05-25 Mike Stump <mrs@mrs.kithrup.com> 3092 3093 * objc-act.c (volatilized_hash): Avoid warnings on 64-bit 3094 machines. 3095 30962005-05-24 Ziemowit Laski <zlaski@apple.com> 3097 3098 * objc-act.c (objc_build_struct): New function. 3099 (objc_derived_from_p): Likewise. 3100 (objc_build_component_ref): Likewise. 3101 (objc_copy_binfo): Likewise. 3102 (objc_xref_basetypes): Likewise. 3103 (objc_lookup_protocol): Likewise. 3104 (objc_compare_protocols): Likewise. 3105 (objc_volatilize_decl): Likewise. 3106 (encode_aggregate_fields): Likewise. 3107 (volatilized_hash): Likewise. 3108 (volatilized_eq): Likewise. 3109 (objc_compare_types): Likewise. 3110 (objc_type_quals_match): Likewise. 3111 (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro 3112 of same name. 3113 (get_class_ivars): Add second parameter indicating if entire 3114 hierarchy is desired. 3115 (struct volatilized_type): New type. 3116 (volatilized_htab): New hash table. 3117 (objc_types_compatible_p, objc_comptypes): Remove functions. 3118 (synth_module_prologue): Do not initialize 'unused_list'. 3119 (objc_get_class_reference): Fix ObjC++ impedance mismatches. 3120 (objc_declare_alias): Implement as a typedef. 3121 (objc_substitute_decl, objc_gimplify_expr): Reformat. 3122 (objc_get_class_ivars): Adjust call to get_class_ivars(). 3123 (next_sjlj_build_enter_and_setjmp, synth_forward_declarations, 3124 build_ivar_reference, get_super_receiver): Call 3125 objc_build_component_ref() instead of build_component_ref(). 3126 (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of 3127 objc_comptypes(). 3128 (build_private_template): Call objc_build_struct() instead of 3129 start_struct() and finish_struct(). 3130 (hash_init): Initialize volatilized_htab. 3131 (objc_is_public): Adjust calls to objc_get_ivars(); adjust 3132 ObjC++ impedance mismatches. 3133 (encode_aggregate_within): Streamline by calling 3134 encode_aggregate_fields(). 3135 * objc-act.h (objc_types_compatible_p): Remove prototype. 3136 (OCTI_UNUSED_LIST, unused_list): Remove slot. 3137 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove. 3138 31392005-05-18 Geoffrey Keating <geoffk@apple.com> 3140 3141 * Make-lang.in (cc1obj-dummy): New. 3142 (cc1obj-checksum.c): New. 3143 (cc1obj-checksum.o): New. 3144 (cc1obj): Add cc1obj-checksum.o. 3145 31462005-05-18 Mike Stump <mrs@apple.com> 3147 3148 PR objc/21641 3149 * objc-act.c (struct interface_tuple): Mark it up for GC. 3150 (interface_htab): It is really a struct interface_tuple. 3151 31522005-05-17 Ziemowit Laski <zlaski@apple.com> 3153 Mike Stump <mrs@apple.com> 3154 3155 Yet more Objective-C++... 3156 3157 * objc-act.c (objc_finish_try_stmt): Add return value. 3158 (objc_build_synchronized): Likewise. 3159 3160 * objc-act.c (objc_is_gcable_type): Add. 3161 (objc_substitute_decl): Add. 3162 (objc_build_ivar_assignment): Add. 3163 (objc_build_global_assignment): Add. 3164 (objc_build_strong_cast_assignment): Add. 3165 (objc_is_ivar_reference_p): Add. 3166 (objc_is_global_reference_p): Add. 3167 (objc_generate_write_barrier): Add. 3168 (objc_rewrite_function_call): Add. 3169 (objc_gimplify_expr): Add Objective-C++ support. 3170 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 3171 (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add. 3172 (INIT_TYPE_OBJC_INFO): Add Objective-C++ support. 3173 (DUP_TYPE_OBJC_INFO): Likewise. 3174 (struct imp_entry): Add field has_cxx_cdtors. 3175 (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL, 3176 OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL, 3177 OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL, 3178 OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL, 3179 OCTI_ASSIGN_STRONGCAST_DECL. 3180 (umsg_fast_decl): Add. 3181 (objc_assign_ivar_decl): Add. 3182 (objc_assign_ivar_fast_decl): Add. 3183 (objc_assign_global_decl): Add. 3184 (objc_assign_strong_cast_decl): Add. 3185 (objc_method_list_ptr): Add. 3186 (objc_method_proto_list_ptr): Add. 3187 (objc_ivar_list_ptr): Add. 3188 3189 * objc-act.c (should_call_super_dealloc): Add. 3190 (OBJC_VERSION): Bump to 6. 3191 (objc_is_gcable_type): Add. 3192 (objc_substitute_decl): Add. 3193 (objc_build_ivar_assignment): Add. 3194 (objc_build_global_assignment): Add. 3195 (objc_build_strong_cast_assignment): Add. 3196 (objc_is_gcable_p): Add. 3197 (objc_is_ivar_reference_p): Add. 3198 (objc_is_global_reference_p): Add. 3199 (generate_shared_structures): Add flags parameter. 3200 (objc_generate_cxx_ctor_or_dtor): Add. 3201 (objc_generate_cxx_cdtors): Add. 3202 (add_class): Add name parameter. 3203 (objc_types_share_size_and_alignment): Add. 3204 (comp_proto_with_proto): Add strict parameter. 3205 (CLS_HAS_CXX_STRUCTORS): Add. 3206 (TAG_ASSIGNIVAR): Add. 3207 (TAG_ASSIGNGLOBAL): Add. 3208 (TAG_ASSIGNSTRONGCAST): Add. 3209 (TAG_MSGSEND_FAST): Add. 3210 (TAG_ASSIGNIVAR_FAST): Add. 3211 (TAG_CXX_CONSTRUCT): Add. 3212 (TAG_CXX_DESTRUCT): Add. 3213 (OBJC_LOOKUP_CLASS): Add. 3214 (OBJC_LOOKUP_NO_SUPER): Add. 3215 (objc_finish_file): Add pch support. 3216 (objc_finish_implementation): Add Objective-C++ support. 3217 (synth_module_prologue): Likewise. 3218 (synth_module_prologue): Add fast dispatching. 3219 (objc_get_class_reference): Add Objective-C++ support. 3220 (objc_generate_write_barrier): Likewise. 3221 (next_sjlj_build_enter_and_setjmp): Likewise. 3222 (objc_begin_try_stmt): Likewise. 3223 (build_next_objc_exception_stuff): Add fast ivar support. 3224 (build_private_template): Mark the record as used so debug 3225 information is generated. 3226 (build_protocol_template): Add Objective-C++ support. 3227 (objc_method_parm_type) Likewise. 3228 (objc_generate_cxx_ctor_or_dtor): Likewise. 3229 (objc_generate_cxx_cdtors): Likewise. 3230 (build_protocol_initializer): Likewise. 3231 (build_category_template): Likewise. 3232 (build_class_template): Likewise. 3233 (build_method_list_template): Likewise. 3234 (build_category_initializer): Likewise. 3235 (build_shared_structure_initializer): Likewise. 3236 (objc_finish_message_expr): Likewise. 3237 (build_objc_method_call): Add fast dispatch support. 3238 (lookup_method_static): Add support to end search at superclasses. 3239 (add_method_to_hash_list): Add strict parameter to 3240 comp_proto_with_proto. 3241 (objc_add_method): Likewise. 3242 (objc_add_method): Also set the interface_value. 3243 (add_instance_variable): Add Objective-C++ support. 3244 (objc_is_public): Likewise. 3245 (start_class): Likewise. 3246 (continue_class): Likewise. 3247 (encode_aggregate_within): Likewise. 3248 (start_method_def): Likewise. 3249 (objc_start_function): Clear current_function_returns_value 3250 and current_function_returns_null. 3251 (really_start_method): Add Objective-C++ support. 3252 (objc_finish_method_definition): Add warning for missing 3253 [super dealloc]. 3254 (finish_objc): Add Objective-C++ support. 3255 (generate_objc_image_info): Likewise. 3256 (objc_lookup_ivar): Likewise. 3257 * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise. 3258 (INIT_TYPE_OBJC_INFO): Likewise. 3259 (DUP_TYPE_OBJC_INFO): Likewise. 3260 32612005-04-23 DJ Delorie <dj@redhat.com> 3262 3263 * objc-act.c: Adjust warning() callers. 3264 32652005-04-21 Roger Sayle <roger@eyesopen.com> 3266 3267 * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing 3268 this field of an objc method decl. 3269 * objc-act.c (build_method_decl): Take an additional "ellipsis" 3270 argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate. 3271 (objc_build_method_signature): Accept additional "ellipsis" 3272 argument and pass it to build_method_decl. 3273 (get_arg_type_list, start_method_def, gen_method_decl): Use 3274 the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the 3275 TREE_OVERFLOW field of a TREE_LIST node. 3276 32772005-04-20 Joseph S. Myers <joseph@codesourcery.com> 3278 3279 PR c/12913 3280 * objc-act.c (objc_start_function): Create stack level for context 3281 of identifiers with variably modified type. 3282 32832005-03-30 Joseph S. Myers <joseph@codesourcery.com> 3284 3285 PR c/772 3286 PR c/17913 3287 * objc-act.c (objc_start_function): Push context on 3288 label_context_stack. 3289 32902005-03-23 Joseph S. Myers <joseph@codesourcery.com> 3291 3292 * objc-act.c (next_sjlj_build_enter_and_setjmp, 3293 next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally): 3294 Call c_common_truthvalue_conversion. 3295 32962005-02-25 Joseph S. Myers <joseph@codesourcery.com> 3297 3298 * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o, 3299 objc/objc-parse.c, objc/objc-parse.y): Remove 3300 (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean, 3301 objc.distclean, objc.maintainer-clean): Update for new parser. 3302 * config-lang.in (gtfiles): Update for new parser. 3303 33042005-01-29 Kazu Hirata <kazu@cs.umass.edu> 3305 3306 * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update 3307 copyright. 3308 33092005-01-27 Matt Austern <austern@apple.com> 3310 3311 * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before 3312 calling instantiate_pending_templates. 3313 33142005-01-26 Alexander Malmberg <alexander@malmberg.org> 3315 3316 PR objc/18862 3317 * objc-act.c (build_selector_translation_table): Use 3318 input_location in the diagnostic for the GNU runtime or if 3319 TREE_PURPOSE (chain) is NULL. 3320 33212005-01-25 Alexander Malmberg <alexander@malmberg.org> 3322 3323 PR objc/18408 3324 * objc-act.c (objc_types_compatible_p): New function. 3325 * objc-act.h (objc_types_compatible_p): Declare. 3326 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define. 3327 33282005-01-16 Ziemowit Laski <zlaski@apple.com> 3329 3330 * objc-act.c (objc_push_parm): Call c_type_promotes_to() 3331 via a lang-hook. 3332 33332005-01-15 Ziemowit Laski <zlaski@apple.com> 3334 3335 PR objc/19321 3336 * objc-act.c (get_arg_type_list): Decay function arguments into 3337 pointers. 3338 (objc_push_parm): Likewise; bring PARM_DECL construction closer 3339 in line with what the C front-end does. 3340 (objc_get_parm_info): Call pushdecl() and finish_decl() on 3341 each PARM_DECL, like the C front-end does. 3342 (start_method_def): Remove redundant ARRAY_TYPE decay. 3343 (objc_start_function): Bring closer in line with what the 3344 C front-end does for functions. 3345 33462005-01-14 Mike Stump <mrs@apple.com> 3347 3348 * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so 3349 that -fobjc-exceptions is accepted. 3350 33512004-12-30 Ziemowit Laski <zlaski@apple.com> 3352 3353 PR objc/18971 3354 * objc-act.c (get_arg_type_list, start_method_def): Decay 3355 array arguments into pointers. 3356 (gen_type_name_0): Learn to pretty-print array types. 3357 33582004-12-15 Ziemowit Laski <zlaski@apple.com> 3359 3360 * objc-act.c (build_private_template): Change to return 'void'; do 3361 not set ivar_context, uprivate_record or objc_instance_type. 3362 (objc_comptypes, gen_type_name_0): For types 'id' and 'Class', 3363 retrieve protocol list from the pointee rather than the pointer itself; 3364 check TYPE_HAS_OBJC_INFO(...) precondition before accessing 3365 TYPE_OBJC_PROTOCOL_LIST. 3366 (objc_get_protocol_qualified_type): For types 'id' and 'Class', 3367 construct a variant of the pointee as well as the pointer, and 3368 store protocol information in the former. When creating variants 3369 of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate 3370 TYPE_OBJC_INTERFACE information. 3371 (objc_declare_class): If a TYPE_DECL is looked up, retrieve the 3372 underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE; 3373 for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE 3374 holding an IDENTIFIER_NODE. 3375 (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before 3376 accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead 3377 of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding 3378 an IDENTIFIER_NODE (meaning a @class forward-declaration only). 3379 (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling 3380 lookup_interface(). 3381 (continue_class): For @implementations, set ivar_context, 3382 uprivate_record and objc_instance_type, for @interfaces, call 3383 build_private_template(). 3384 (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing 3385 TYPE_OBJC_INTERFACE. 3386 (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before 3387 accessing TYPE_OBJC_PROTOCOL_LIST. 3388 * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO, 3389 DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC, 3390 SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros. 3391 (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points 3392 to an actual @interface; stored in TYPE_LANG_SPECIFIC(...). 3393 (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in 3394 TYPE_LANG_SPECIFIC(...). 3395 (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete. 3396 (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER, 3397 TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P; 3398 adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST 3399 instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST. 3400 34012004-11-29 Joseph Myers <joseph@codesourcery.com> 3402 3403 PR c/7544 3404 * Make-lang.in (objc/objc-act.o): Update dependencies. 3405 * objc-act.c (objc_finish_file): Call 3406 maybe_apply_pending_pragma_weaks if not OBJCPLUS. 3407 34082004-11-09 Andrew Pinski <pinskia@physics.uc.edu> 3409 3410 PR objc/18406 3411 * obj-act.c (encode_type): 96bits doubles are encoded the 3412 same way as 64bit and 128bit doubles are. 3413 34142004-11-09 Joseph S. Myers <joseph@codesourcery.com> 3415 3416 * objc-act.c: Use %q, %< and %> for quoting in diagnostics. 3417 34182004-11-08 Andrew Pinski <pinskia@physics.uc.edu> 3419 3420 PR objc/16546 3421 * objc-act.c (generate_method_descriptors): Remove setting 3422 the new decls' type to variable_length_type. 3423 (generate_ivar_lists): Likewise. 3424 (generate_dispatch_tables): Likewise. 3425 34262004-10-30 Ziemowit Laski <zlaski@apple.com> 3427 3428 * objc-act.c (objc_lookup_ivar): The new OTHER parameter 3429 contains the result of the ID lookup by the C or C++ 3430 front-end; in class methods, use OTHER if it exists; 3431 in instance methods, use OTHER only if it is locally 3432 declared. 3433 34342004-10-26 Ziemowit Laski <zlaski@apple.com> 3435 3436 * objc-act.c (finish_class): Do not synthesize bogus 3437 'extern objc_object *_Foo;' declarations for @interface Foo. 3438 34392004-10-25 Ziemowit Laski <zlaski@apple.com> 3440 David Ayers <d.ayers@inode.at> 3441 3442 * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED 3443 instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for: 3444 'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *'; 3445 'Class <Protocol> == id' and 'Class <Protocol> == Class'. 3446 (objc_is_id): Add test for 'super'. 3447 (objc_finish_message_expr): Allow for messaging of 'Class <Proto>' 3448 receivers; if class methods are not found in protocol lists, search 3449 for instance methods therein and warn if one is found. Look in 3450 global hash tables for suitable method as a last resort when messaging 3451 'id <Proto>', 'Class <Proto>' and invalid receiver types. 3452 (objc_add_method): Insert instance methods listed in protocols into 3453 the global class method hash table. 3454 * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to 3455 IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in 3456 addition to 'id <Proto>'. 3457 34582004-10-21 Andrew Pinski <pinskia@physics.uc.edu> 3459 3460 PR objc/17923 3461 * objc-act.c (objc_build_string_object): Create a CONST_DECL 3462 for the NeXT runtime case. 3463 34642004-10-02 Kazu Hirata <kazu@cs.umass.edu> 3465 3466 * objc-act.c: Fix comment typos. 3467 34682004-09-24 Ziemowit Laski <zlaski@apple.com> 3469 3470 * objc-act.c (init_objc_symtab, init_module_descriptor, 3471 build_shared_structure_initializer): When initializing 'long' 3472 fields, ensure that the initializer value is also 'long'. 3473 34742004-09-24 Zack Weinberg <zack@codesourcery.com> 3475 3476 * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION 3477 throughout. 3478 (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION. 3479 (build_selector_translation_table): Use %J in diagnostic 3480 instead of diddling input_line. Fix spelling. 3481 34822004-09-21 Ziemowit Laski <zlaski@apple.com> 3483 3484 * objc-act.c (objc_fold_objc_type_ref): New function. 3485 * objc-act.h (objc_fold_objc_type_ref): New prototype. 3486 34872004-09-09 Joseph S. Myers <jsm@polyomino.org.uk> 3488 3489 * objc-act.c (objc_start_function, really_start_method, 3490 objc_get_parm_info, start_method_def): Update to new arg_info 3491 structures. 3492 34932004-09-07 Ziemowit Laski <zlaski@apple.com> 3494 3495 * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of 3496 objc/objc-act.h. 3497 (objc/objc-act.o): Depend on $(HASHTAB_H). 3498 * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and 3499 objcp-decl.h instead of c-tree.h. 3500 (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix, 3501 error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl, 3502 build_protocol_template): Adjust prototypes. 3503 (build_module_initializer_routine, start_class, continue_class, 3504 finish_class, start_method_def, objc_start_function, start_protocol, 3505 build_method_decl, objc_add_method, add_instance_variable, 3506 build_ivar_reference, is_ivar, is_private, get_super_receiver, 3507 build_selector_table_decl, objc_push_parm, objc_get_parm_info, 3508 gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl, 3509 create_field_decl): New prototypes. 3510 (objc_expand_function_end, comp_method_with_proto, objc_expr_last, 3511 gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl, 3512 define_decl, create_builtin_decl, gen_declspecs): Remove prototypes. 3513 (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME. 3514 (CLASS_TYPEDEF_NAME): New. 3515 (TAG_EXECCLASS): Change from a global variable to a #define. 3516 (TAG_RETURN_STRUCT): Delete. 3517 (TAG_GNUINIT): New, holds '__objc_gnu_init' name. 3518 (objc_inherit_code, objc_public_flag): New, moved from c-parse.in. 3519 (string_descriptor): New struct. 3520 (string_htab): New hash table. 3521 (string_hash, string_eq): New prototypes. 3522 (generate_struct_by_value_array): Call create_field_decl() instead of 3523 create_builtin_decl(). 3524 (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS; 3525 In ObjC++ mode, call cxx_init() instead of c_objc_common_init(). 3526 (objc_finish_file): In ObjC++, call instantiate_pending_templates() 3527 and cp_finish_file(). 3528 (define_decl, get_static_reference, get_protocol_reference, 3529 create_builtin_decl): Remove functions. 3530 (objc_start_class_interface, objc_start_category_interface, 3531 objc_start_protocol, objc_continue_interface, objc_finish_interface, 3532 objc_start_class_implementation, objc_start_category_implementation, 3533 objc_continue_implementation, objc_finish_implementation, 3534 objc_set_visibility, objc_set_method_type, 3535 objc_build_method_signature, objc_add_method_declaration, 3536 objc_start_method_definition, objc_add_instance_variable, 3537 objc_get_protocol_qualified_type, create_field_decl, 3538 start_var_decl, finish_var_decl): New functions. 3539 (setup_string_decl): Simplify since it is only called once. 3540 (synth_module_prologue): Call build_class_template(); predefine 'id' 3541 and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug 3542 hooks for duration of function; fix GNU runtime messenger signatures 3543 to correspond to reality; forward-declare '__objc_exec_class' for the 3544 GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate 3545 'extern "C" { ... }' wrappers around synthesized declarations; call 3546 build_protocol_template() and build_category_template(). 3547 (string_hash, string_eq): New functions. 3548 (objc_build_string_object): Check metaclass correctness only once; 3549 store string literals in hash table. 3550 (objc_build_constructor): Do not convert initializer elements; 3551 adjust for ObjC++ impedance mismatch. 3552 (build_objc_symtab_template): Call create_field_decl() instead of 3553 create_builtin_decl(). 3554 (init_objc_symtab): Add missing conversion to initializer element. 3555 (build_metadata_decl): Call start_var_decl() instead of define_decl(). 3556 (generate_objc_symtab_decl): Do not call build_category_template(); 3557 call start_var_decl() and finish_var_decl() instead of start_decl() 3558 and finish_decl(). 3559 (build_module_descriptor): Call create_field_decl() instead of 3560 grokfield(); call start_var_decl() and finish_var_decl() instead of 3561 start_decl() and finish_decl(); always mark module descriptor as 3562 used; move GNU runtime-specific functionality to 3563 build_module_initializer_routine(). 3564 (build_module_initializer_routine): New function, broken off of 3565 build_module_descriptor(). 3566 (objc_static_init_needed_p, objc_generate_static_init_call): New 3567 functions. 3568 (generate_static_references, generate_strings, 3569 build_selector_translation_table, generate_descriptor_table, 3570 generate_ivars_list, generate_dispatch_table, generate_category): Call 3571 start_var_decl() and finish_var_decl() instead of start_decl() and 3572 finish_decl(); build a type directly instead of via groktypename(). 3573 (build_selector_reference_decl, build_selector_table_decl, 3574 build_class_reference_decl, build_protocol_reference, 3575 generate_objc_image_info): Call start_var_decl() instead of 3576 build_decl(). 3577 (build_selector_reference): For GNU runtime, do not call 3578 build_selector_reference_decl(). 3579 (build_selector, build_typed_selector_reference): Always convert 3580 result to the selector type. 3581 (add_objc_string): Cast return value to 'char *'. 3582 (build_method_prototype_template, build_selector_template, 3583 build_method_template): Use actual selector type for fields 3584 pointing to selectors. 3585 (finish_objc): For GNU runtime, call 3586 build_module_initializer_routine() after build_module_descriptor(). 3587 (generate_protocol_list, generate_shared_structures): Call 3588 start_var_decl() and finish_var_decl() instead of start_decl() and 3589 finish_decl(); build a type directly instead of via 3590 groktypename(). 3591 (synth_id_with_class_suffix): Return a string. 3592 (get_arg_type_list): For instance methods, use the instance type for 3593 'self'; do not call groktypename_in_parm_context(). 3594 (build_objc_string_decl): Squash redeclaration errors in ObjC++. 3595 (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME; 3596 handle RECORD_TYPEs in ObjC as well as ObjC++. 3597 (objc_is_id): New function. 3598 (objc_is_object_ptr): Return the canonical type node. 3599 (objc_get_class_ivars): Simplify using get_class_ivars(). 3600 (get_class_ivars): Remove second parameter; create a fresh copy 3601 of the ivar list for each call; do not check for existence of 3602 super class. 3603 (objc_eh_runtime_type): Mark #ifndef OBJCPLUS. 3604 (objc_init_exceptions): When using SJLJ-style exceptions, require 3605 the use of '-fobjc-exceptions' flag; do not require it for DWARF-style 3606 exceptions. 3607 (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use 3608 objc_object_type instead of objc_id_type. 3609 (objc_begin_catch_clause): Convert the incoming PARM_DECL into 3610 a VAR_DECL before placing it in the appropriate scope; do not 3611 call define_decl(); adjust call to c_begin_compound_stmt(); 3612 use objc_object_type instead of objc_id_type. 3613 (build_next_objc_exception_stuff): Call create_field_decl() instead 3614 of create_builtin_decl(); construct type directly instead of calling 3615 groktypename(); use OBJC_VOID_AT_END to mark end of function parameters. 3616 (build_private_template): Adjust call to get_class_ivars(); build 3617 a type directly instead of via groktypename(). 3618 (build_protocol_template, build_method_prototype_list_template, 3619 build_method_prototype_template, build_category_template, 3620 build_selector_template, build_class_template, build_super_template, 3621 build_ivar_template, build_ivar_list_template, 3622 build_method_list_template, build_method_template): 3623 Call create_field_decl() instead of grokfield(). 3624 (objc_method_parm_type): Do not call groktypename(). 3625 (generate_descriptor_table): Call start_var_decl() and 3626 finish_var_decl() instead of start_decl() and finish_decl(). 3627 (generate_method_descriptors, build_protocol_initializer, 3628 generate_dispatch_tables, build_category_initializer, 3629 build_shared_structure_initializer): Do not call groktypename(). 3630 (generate_protocols): Call start_var_decl() and finish_var_decl() 3631 instead of start_decl() and finish_decl(); do not call groktypename(). 3632 (error_with_ivar): Remove last parameter. 3633 (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition 3634 to CLASS_IVARS lists; adjust calls to error_with_ivar(). 3635 (generate_ivar_lists): Convert one of the initializer elements; do 3636 not call groktypename(). 3637 (get_arg_type_list, start_method_def, gen_method_def): Account for 3638 new representation of variable arguments and '...' in Objective-C 3639 methods; add Objective-C++ impedance matching code. 3640 (is_objc_type_qualifier): Remove function. 3641 (adjust_type_for_id_default): Simplify; there is no longer a need to 3642 wade through declspecs. 3643 (lookup_interface, start_class, continue_class, 3644 finish_class, start_method_def, start_protocol, build_method_decl, 3645 objc_add_method, add_instance_variable, build_ivar_reference, 3646 is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue): 3647 Make into static functions. 3648 (receiver_is_class_object): Use new IS_CLASS() macro. 3649 (objc_build_message_expr): Tweak ObjC++ message argument handling; 3650 call objc_finish_message_expr() instead of finish_message_expr(). 3651 (finish_message_expr): Rename to objc_finish_message_expr(); use 3652 OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME. 3653 call gen_type_name() instead of gen_declaration(); call objc_is_id() 3654 instead of using IS_ID and IS_CLASS; Use objc_class_name instead of 3655 calling get_identifier("Class"); handle CONVERT_EXPRs in receiver. 3656 (build_objc_method_call, warn_with_method): Do not call groktypename(). 3657 (build_ivar_reference): Call convert() instead of clobbering in a 3658 type. 3659 (hash_init): Initialize string_htab hash table. 3660 (add_instance_variable): Simplify parameter list; do not call grokfield(); 3661 do not populate CLASS_IVARS list. 3662 (start_class): Check for the existence of super class, if one was specified. 3663 (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not 3664 call build_class_template(); adjust call to get_class_ivars(); call 3665 build_decl(), pushdecl() and finish_decl() instead of define_decl(). 3666 (finish_class): Call build_decl(), pushdecl() and finish_decl() instead 3667 of define_decl(). 3668 (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size. 3669 (start_protocol): Do not call build_protocol_template(); use 3670 PROTOCOL_BINFO_ELTS for the tree vector size. 3671 (encode_type_qualifiers): Do not handle the 'const' qualifier here. 3672 (encode_pointer): Encode 'const char *' as 'r*', for backwards 3673 compatibility. 3674 (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld". 3675 (encode_type): Handle the 'const' qualifier here. 3676 (objc_parmlist): New global variable, sued by objc_push_parm and 3677 objc_get_parm_info(). 3678 (objc_push_parm, objc_get_parm_info): New functions. 3679 (objc_expr_last): Remove function. 3680 (synth_self_and_ucmd_args): For instance methods, use the instance 3681 type for 'self'; call objc_push_parm() instead of push_parm_decl(). 3682 (start_method_def): Do not call push_scope(), declare_parm_level(), 3683 pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last(); 3684 just use objc_push_parm() and objc_get_parm_info(). 3685 (comp_method_with_proto): Remove function. 3686 (objc_types_are_equivalent): Strip away indirections before comparing 3687 underlying types. 3688 (comp_proto_with_proto): Do not call groktypename(); types are no 3689 longer in raw declspec format. 3690 (objc_start_function): New function. 3691 (really_start_method): Call comp_proto_with_proto() instead of 3692 comp_method_with_proto(); call objc_start_function() instead of 3693 hand-crafting a function declarator. 3694 (continue_method_def, objc_expand_function_end): Remove functions. 3695 (get_super_receiver): Call objc_get_current_scope() instead of 3696 get_current_scope(); reference 'super_class' field (instead of 3697 'class'). 3698 (finish_method_def): Rename to objc_finish_method_definition() and 3699 add a function decl parameter; move method encoding call from 3700 objc_expand_function_end(). 3701 (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs, 3702 gen_declaration_1): Remove functions. 3703 (tmpbuf, RAW_DECLSPEC): Remove. 3704 (gen_declaration): Remove second parameter; simplify to deal 3705 with TYPE_P nodes instead of raw declspecs. 3706 (gen_type_name, gen_type_name_0): New functions. 3707 (gen_method_decl): Remove second parameter; call gen_type_name() 3708 instead of gen_declaration_1(). 3709 (dump_interface): Adjust calls to gen_declaration() and 3710 gen_method_decl(); do not allocate a separate string buffer. 3711 (init_objc): Allocate a larger string buffer to accommodate 3712 dump_interface(); adjust call to build_module_descriptor(); 3713 add call to build_module_initializer_routine() for the GNU 3714 runtime. 3715 (generate_classref_translation_entry): Do not call start_decl(); call 3716 finish_var_decl() instead of finish_decl(); call convert() instead of 3717 build_c_cast(). 3718 * objc-act.h (CLASS_OWN_IVARS): Remove accessor. 3719 (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is 3720 gone. 3721 (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New. 3722 (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove. 3723 (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME, 3724 objc_object_type and objc_object_name, respectively. 3725 (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference, 3726 objc_class_name): New. 3727 (IS_CLASS): New macro. 3728 (IS_ID, IS_SUPER): Robustify. 3729 (OCTI_EXECCLASS_DECL, execclass_decl): New. 3730 (finish_file, start_class, continue_class, finish_class, 3731 start_method_def, continue_method_def, finish_method_def, 3732 start_protocol, finish_protocol, objc_build_throw_stmt, 3733 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, 3734 objc_build_synchronized_epilogue, objc_build_try_prologue, 3735 objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue, 3736 objc_build_finally_prologue, objc_build_finally_epilogue, 3737 is_ivar, is_private, is_public, add_instance_variable, objc_add_method, 3738 get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name, 3739 get_class_reference, get_static_reference, get_object_reference, 3740 build_message_expr, finish_message_expr, build_selector_expr, 3741 build_ivar_reference, build_keyword_decl, build_method_decl, 3742 build_protocol_expr, build_objc_string_object, objc_declare_alias, 3743 objc_declare_class, objc_declare_protocols, objc_comptypes, 3744 objc_check_decl, build_encode_expr): Remove prototypes. 3745 (imp_count, cat_count): Make GGC-aware. 3746 (OBJC_SET_TYPE_NAME): New macro. 3747 37482004-09-03 Ziemowit Laski <zlaski@apple.com> 3749 3750 * config-lang.in: Update copyright notice. 3751 (lang_requires): Indicate that ObjC requires C to be built first. 3752 37532004-09-01 Ziemowit Laski <zlaski@apple.com> 3754 3755 * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of 3756 TYPE_NAME. 3757 (build_objc_string_object): Rename to objc_build_string_object(). 3758 (get_class_reference): Rename to objc_get_class_reference(). 3759 (get_class_ivars_from_name): Rename to objc_get_class_ivars(). 3760 (next_sjlj_build_catch_list, get_super_receiver): Call 3761 objc_get_class_reference() instead of get_class_reference(). 3762 (build_keyword_decl): Rename to objc_build_keyword_decl(). 3763 (build_message_expr): Rename to objc_build_message_expr(). 3764 (build_protocol_expr): Rename to objc_build_protocol_expr(). 3765 (build_selector_expr): Rename to objc_build_selector_expr(). 3766 (build_encode_expr): Rename to objc_build_encode_expr(). 3767 * objc-act.h (get_class_ivars_from_name): Rename prototype to 3768 objc_get_class_ivars(). 3769 (get_class_reference): Rename prototype to objc_get_class_reference(). 3770 (build_message_expr): Rename prototype to objc_build_message_expr(). 3771 (build_selector_expr): Rename prototype to objc_build_selector_expr(). 3772 (build_keyword_decl): Rename prototype to objc_build_keyword_decl(). 3773 (build_protocol_expr): Rename prototype to objc_build_prototype_expr(). 3774 (build_objc_string_object): Rename prototype to 3775 objc_build_string_object(). 3776 37772004-09-01 Ziemowit Laski <zlaski@apple.com> 3778 3779 * objc-act.c (lookup_interface): Make function 'static' and add a 3780 local prototype. 3781 (objc_check_decl, get_class_reference, objc_declare_alias, 3782 objc_declare_class, objc_is_object_ptr): Call objc_is_class_name() 3783 instead of is_class_name(). 3784 (get_super_receiver, objc_clear_super_receiver): Call 3785 objc_get_current_scope() instead of get_current_scope(). 3786 (is_class_name): Rename to objc_is_class_name. 3787 (lookup_objc_ivar): Rename to objc_lookup_ivar. 3788 37892004-08-28 Ziemowit Laski <zlaski@apple.com> 3790 3791 * objc-act.c (objc_is_reserved_word): New function. 3792 37932004-08-15 Ziemowit Laski <zlaski@apple.com> 3794 3795 * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H), 3796 $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h. 3797 (objc/objc-parse.o): Do not depend on gtype-objc.h. 3798 * objc-act.c: Do not include gtype-objc.h. 3799 (finish_file): Rename to objc_finish_file(). 3800 * objc-act.h (finish_file): Update copyright notice; remove prototype. 3801 * objc-lang.c: Update copyright notice; include diagnostic.h, 3802 c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include 3803 toplev.h. 3804 (finish_file): New hook routine. 3805 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS, 3806 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION, 3807 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS, 3808 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, 3809 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, 3810 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION, 3811 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL, 3812 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, 3813 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, 3814 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED, 3815 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, 3816 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, 3817 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, 3818 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, 3819 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, 3820 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, 3821 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING, 3822 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, 3823 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, 3824 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE, 3825 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE, 3826 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, 3827 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO, 3828 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS): 3829 Move to c-objc-common.h. 3830 3831 3832Copyright (C) 2004-2019 Free Software Foundation, Inc. 3833 3834Copying and distribution of this file, with or without modification, 3835are permitted in any medium without royalty provided the copyright 3836notice and this notice are preserved. 3837