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