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