12017-07-04 Release Manager 2 3 * GCC 6.4.0 released. 4 52016-12-21 Release Manager 6 7 * GCC 6.3.0 released. 8 92016-08-22 Release Manager 10 11 * GCC 6.2.0 released. 12 132016-04-27 Release Manager 14 15 * GCC 6.1.0 released. 16 172016-02-12 Jakub Jelinek <jakub@redhat.com> 18 19 * objc-act.c: Spelling fixes - behaviour -> behavior and 20 neighbour -> neighbor. 21 * objc-map.h: Likewise. 22 232016-01-04 Jakub Jelinek <jakub@redhat.com> 24 25 Update copyright years. 26 272015-11-11 Andrew MacLeod <amacleod@redhat.com> 28 29 * objc-act.c: Remove unused header files. 30 * objc-encoding.c: Likewise. 31 * objc-gnu-runtime-abi-01.c: Likewise. 32 * objc-lang.c: Likewise. 33 * objc-map.c: Likewise. 34 * objc-next-runtime-abi-01.c: Likewise. 35 * objc-next-runtime-abi-02.c: Likewise. 36 * objc-runtime-shared-support.c: Likewise. 37 382015-11-09 Alan Modra <amodra@gmail.com> 39 40 * objc-encoding.c (encode_aggregate_within): Cast obstack_next_free 41 return value. 42 432015-10-29 Andrew MacLeod <amacleod@redhat.com> 44 45 * objc-lang.c: Reorder #include's and remove duplicates. 46 * objc-map.c: Likewise. 47 482015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org> 49 50 * objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h: 51 Remove useless typedefs. 52 532015-07-12 Aldy Hernandez <aldyh@redhat.com> 54 55 * objc-map.h: Fix double word typos. 56 572015-07-07 Andrew MacLeod <amacleod@redhat.com> 58 59 * objc-act.c: Adjust includes. 60 * objc-encoding.c: Likewise. 61 * objc-gnu-runtime-abi-01.c: Likewise. 62 * objc-lang.c: Likewise. 63 * objc-map.c: Likewise. 64 * objc-next-runtime-abi-01.c: Likewise. 65 * objc-next-runtime-abi-02.c: Likewise. 66 * objc-runtime-shared-support.c: Likewise. 67 682015-06-25 Andrew MacLeod <amacleod@redhat.com> 69 70 * objc-act.c: Remove ipa-ref.h and plugin-api.h from include list. 71 722015-06-25 Richard Sandiford <richard.sandiford@arm.com> 73 74 * objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash 75 rather than ggc_hasher. 76 772015-06-25 Richard Sandiford <richard.sandiford@arm.com> 78 79 * objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather 80 than typed_noop_remove. Remove redudant typedefs. 81 822015-06-17 Andrew MacLeod <amacleod@redhat.com> 83 84 * objc-act.c: Do not include input.h, line-map.h or is-a.h. 85 * objc-encoding.c: Likewise. 86 * objc-gnu-runtime-abi-01.c: Likewise. 87 * objc-lang.c: Likewise. 88 * objc-map.c: Likewise. 89 * objc-next-runtime-abi-01.c: Likewise. 90 * objc-next-runtime-abi-02.c: Likewise. 91 * objc-runtime-shared-support.c: Likewise. 92 932015-06-08 Andrew MacLeod <amacleod@redhat.com> 94 95 * objc-act.c : Adjust include files. 96 * objc-encoding.c : Likewise. 97 * objc-gnu-runtime-abi-01.c : Likewise. 98 * objc-lang.c : Likewise. 99 * objc-map.c : Likewise. 100 * objc-next-runtime-abi-01.c : Likewise. 101 * objc-next-runtime-abi-02.c : Likewise. 102 * objc-runtime-shared-support.c : Likewise. 103 1042015-06-08 Aldy Hernandez <aldyh@redhat.com> 105 106 * objc-runtime-shared-support.c (build_module_descriptor): Set 107 TREE_USED on UOBJC_MODULES_decl. 108 1092015-06-05 Aldy Hernandez <aldyh@redhat.com> 110 111 * objc-act.c (objc_write_global_declarations): Adjust comment. 112 * objc-gnu-runtime-abi-01.c (build_selector_table_decl): Set 113 TREE_USED bit. 114 1152015-06-04 Andrew MacLeod <amacleod@redhat.com> 116 117 * objc-act.c: Adjust includes for restructured coretypes.h. 118 * objc-encoding.c: Likewise. 119 * objc-gnu-runtime-abi-01.c: Likewise. 120 * objc-lang.c: Likewise. 121 * objc-map.c: Likewise. 122 * objc-next-runtime-abi-01.c: Likewise. 123 * objc-next-runtime-abi-02.c: Likewise. 124 * objc-runtime-shared-support.c: Likewise. 125 1262015-04-27 Jim Wilson <jim.wilson@linaro.org> 127 128 * Make-lang.in (objc.mostlyclean): Remove cc1obj. 129 1302015-04-18 Trevor Saunders <tsaunders@mozilla.com> 131 132 * objc-act.c: Adjust for hash_table changes. 133 1342015-01-09 Michael Collison <michael.collison@linaro.org> 135 136 * objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 137 input.h, alias.h, symtab.h, options, fold-const.h, 138 wide-int.h, and inchash.h due to flattening of tree.h. 139 * objc-encoding.c: Ditto. 140 * objc-gnu-runtime-abi-01.c: Ditto. 141 * objc-lang.c: Ditto. 142 * objc-map.c: Ditto. 143 * objc-next-runtime-abi-01.c: Ditto. 144 * objc-next-runtime-abi-02.c: Ditto. 145 * objc-runtime-shared-support.c: Ditto. 146 1472015-01-05 Jakub Jelinek <jakub@redhat.com> 148 149 Update copyright years. 150 1512014-10-28 Andrew MacLeod <amacleod@redhat.com> 152 153 * objc-act.c: Adjust include files. 154 1552014-10-22 Alan Modra <amodra@gmail.com> 156 157 * objc-encoding.c (encode_array): Cast result of obstack_base. 158 (encode_type): Likewise. 159 1602014-10-16 Andrew MacLeod <amacleod@redhat.com> 161 162 * objc-act.c: Adjust include files. 163 1642014-10-12 Trevor Saunders <tsaunders@mozilla.com> 165 166 * objc-act.c: use hash_table instead of hashtab. 167 1682014-09-15 Jakub Jelinek <jakub@redhat.com> 169 170 * Make-lang.in (check_objc_parallelize): Change to just an upper 171 bound number. 172 1732014-07-14 Jan Hubicka <hubicka@ucw.cz> 174 175 * objc-act.c (objc_common_tree_size): New function. 176 * objc-act.h (KEYWORD_KEY_NAME, KEYWORD_ARG_NAME): Add type 177 checking. 178 (INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro. 179 (METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS, 180 METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING, 181 METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking. 182 (METHOD_SEL_ARGS): Use decl_common.size instead of 183 decl_non_common.result. 184 (PROPERTY_NAME, PROPERTY_GETTER_NAME, PROPERTY_SETTER_NAME, 185 PROPERTY_READONLY, PROPERTY_NONATOMIC, PROPERTY_ASSIGN_SEMANTICS, 186 PROPERTY_IVAR_NAME, PROPERTY_DYNAMIC, PROPERTY_HAS_NO_GETTER, 187 PROPERTY_HAS_NO_SETTER, PROPERTY_OPTIONAL): Add type checking. 188 (objc_common_tree_size): Declare. 189 * objc-lang.c (LANG_HOOKS_TREE_SIZE): New macro. 190 1912014-06-24 Jan Hubicka <hubicka@ucw.cz> 192 193 * objc-act.c (objc_xref_basetypes): Set TYPE_BINFO of type variants, 194 too. 195 1962014-06-24 Trevor Saunders <tsaunders@mozilla.com> 197 198 * objc-act.c: Adjust. 199 2002014-05-17 Trevor Saunders <tsaunders@mozilla.com> 201 202 * objc-act.c (objc_build_string_object): Adjust. 203 (continue_class): Likewise. 204 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 205 * objc-map.c (objc_map_alloc_ggc): Likewise. 206 (objc_map_private_resize): Likewise. 207 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): 208 Likewise. 209 (hash_name_enter): Likewise. 210 2112014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> 212 Mike Stump <mikestump@comcast.net> 213 Richard Sandiford <rdsandiford@googlemail.com> 214 215 * objc-act.c: Include wide-int.h. 216 (objc_decl_method_attributes): Use wide-int interfaces. 217 2182014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com> 219 220 PR objc/56044 221 * objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add. 222 (objc_init): Initialize objc_default_ivar_visibility. 223 (objc_start_class_interface): Use objc_default_ivar_visibility. 224 (objc_start_class_implementation): Likewise. 225 (objc_lookup_ivar): Implement -fno-local-ivars. 226 2272014-01-31 Marek Polacek <polacek@redhat.com> 228 229 PR c/59963 230 * objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to 231 build_function_call_vec. 232 (finish_catch): Likewise. 233 (next_runtime_abi_02_get_class_reference): Likewise. 234 * objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to 235 build_function_call_vec. 236 (build_throw_stmt): Likewise. 237 * objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to 238 build_function_call_vec. 239 (build_throw_stmt): Likewise. 240 2412014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 242 243 Update copyright years 244 2452013-12-04 Joseph Myers <joseph@codesourcery.com> 246 247 PR c/52023 248 * objc-act.c (objc_synthesize_getter): Update calls to 249 c_sizeof_or_alignof_type. 250 2512013-11-22 Andrew MacLeod <amacleod@redhat.com> 252 253 * objc/objc-act.c: Add required include files from gimple.h. 254 2552013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 256 257 * objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi 258 throughout. 259 2602013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 261 262 * objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with 263 tree_to_shwi throughout. 264 2652013-11-14 Andrew MacLeod <amacleod@redhat.com> 266 267 * objc-act.c: Include only gimplify.h and gimple.h as needed. 268 2692013-11-14 Diego Novillo <dnovillo@google.com> 270 271 * objc-act.c: Include stringpool.h. 272 Include stor-layout.h. 273 Include attribs.h. 274 * objc-encoding.c: Include stringpool.h. 275 Include stor-layout.h. 276 * objc-gnu-runtime-abi-01.c: Include stringpool.h. 277 * objc-next-runtime-abi-01.c: 278 Include stringpool.h. 279 * objc-next-runtime-abi-02.c: Include stringpool.h. 280 * objc-runtime-shared-support.c: Include stringpool.h. 281 2822013-11-12 Andrew MacLeod <amacleod@redhat.com> 283 284 * objc-act.c: Include gimplify.h. 285 2862013-11-07 Andrew MacLeod <amacleod@redhat.com> 287 288 * objc-act.c (objc_push_parm): Handle atomic qualifier. 289 2902013-09-25 Tom Tromey <tromey@redhat.com> 291 292 * Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o) 293 (objc/objc-runtime-shared-support.o) 294 (objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o) 295 (objc/objc-next-runtime-abi-02.o, objc/objc-act.o) 296 (objc/objc-encoding.o, objc/objc-map.o): Remove. 297 2982013-09-14 Iain Sandoe <iain@codesourcery.com> 299 300 PR target/48094 301 * objc-next-runtime-abi-01.c (generate_objc_image_info): Remove. 302 (objc_generate_v1_next_metadata): Remove generation of ImageInfo. 303 * objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove. 304 (objc_generate_v2_next_metadata): Remove generation of ImageInfo. 305 3062013-07-21 OndÅej BÃlka <neleai@seznam.cz> 307 308 * objc-act.c: Fix typos. 309 * objc-encoding.c: Likewise. 310 * objc-gnu-runtime-abi-01.c: Likewise. 311 * objc-next-runtime-abi-01.c: Likewise. 312 * objc-next-runtime-abi-02.c: Likewise. 313 3142013-05-22 Paolo Carlini <paolo.carlini@oracle.com> 315 316 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): 317 Fix build_conditional_expr call. 318 3192013-05-16 Jason Merrill <jason@redhat.com> 320 321 * Make-lang.in (cc1obj$(exeext)): Use link mutex. 322 3232012-11-20 Diego Novillo <dnovillo@google.com> 324 325 * objc-act.c: Replace all vec<T, A>() initializers with vNULL. 326 3272012-11-16 Diego Novillo <dnovillo@google.com> 328 329 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 330 331 * objc-act.c: Use new vec API in vec.h. 332 * objc-act.h: Likewise. 333 * objc-gnu-runtime-abi-01.c: Likewise. 334 * objc-next-runtime-abi-01.c: Likewise. 335 * objc-next-runtime-abi-02.c: Likewise. 336 * objc-runtime-hooks.h: Likewise. 337 * objc-runtime-shared-support.c: Likewise. 338 * objc-runtime-shared-support.h: Likewise. 339 3402012-10-01 Lawrence Crowl <crowl@google.com> 341 342 * Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o. 343 (objc-act.o): Add dependence on hash-table.h. 344 * objc-act.c (objc_detect_field_duplicates): Change to new type-safe 345 hash table. 346 3472012-06-29 Steven Bosscher <steven@gcc.gnu.org> 348 349 * Make-ang.in: Adjust for move of C front-end files. 350 * config-lang.in: Likewise. 351 * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h 352 and c-lang.h in c/. 353 * objc-runtime-shared-support.c: Likewise. 354 * objc-next-runtime-abi-01.c: Likewise. 355 * objc-next-runtime-abi-02.c: Likewise. 356 * objc-gnu-runtime-abi-01.c: Likewise. 357 * objc-act.c: Likewise. 358 * objc-lang.c: Likewise. 359 3602012-06-19 Steven Bosscher <steven@gcc.gnu.org> 361 362 * objc-next-runtime-abi-01.c: Do not include tm.h and output.h. 363 Include c-family/c-target.h. 364 (handle_next_class_ref): Rewrite to emit top-level asm statements. 365 (handle_next_impent): Likewise. 366 * objc/Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o. 367 3682012-05-31 Steven Bosscher <steven@gcc.gnu.org> 369 370 * objc-act.c: Do not include output.h. 371 3722012-05-17 Paolo Carlini <paolo.carlini@oracle.com> 373 374 PR objc++/53388 375 * objc-act.c (objc_get_class_reference, objc_build_message_expr): 376 Use build_min_nt_loc. 377 3782012-04-20 Jan Hubicka <jh@suse.cz> 379 380 * objc-act.c (mark_referenced_methods); Use 381 cgraph_mark_force_output_node. 382 3832012-03-21 Steven Bosscher <steven@gcc.gnu.org> 384 385 * objc-act (objc_build_ivar_assignment): Do not call assemble_external. 386 (objc_build_global_assignment): Likewise. 387 (objc_build_strong_cast_assignment): Likewise. 388 * objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external. 389 * objc-next-runtime-abi-02.c: Likewise. 390 * objc-gnu-runtime-abi-01.c: Likewise. 391 3922012-03-05 Jason Merrill <jason@redhat.com> 393 394 * objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't 395 call _stat functions without MEM_STAT_INFO. 396 3972011-11-12 Iain Sandoe <iains@gcc.gnu.org> 398 399 * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality 400 for Objective-C m32. 401 4022011-10-29 Iain Sandoe <iains@gcc.gnu.org> 403 404 PR target/47997 405 * objc-act.c (objc_build_string_object): Remove redundant second 406 call to fix_string_type (). Add a checking assert that we are, 407 indeed, passed a STRING_CST. 408 4092011-10-18 Mikael Pettersson <mikpe@it.uu.se> 410 411 PR objc/50743 412 * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to 413 size_t to avoid signed/unsigned 414 comparison. 415 (insert_method_into_method_map): Likewise. 416 4172011-10-14 Nicola Pero <nicola.pero@meta-innovation.com> 418 419 * objc-map.h: New file. 420 * objc-map.c: New file. 421 * config-lang.in (gtfiles): Added objc-map.h. 422 * Make-lang.in (OBJC_OBJS): Added objc-map.o. 423 (objc/objc-map.o): New rule. 424 (objc/objc-act.o): Depend on objc/objc-map.h. 425 * objc-next-runtime-abi-02.c: Added a TODO comment. 426 * objc-act.c: Include objc-map.h. 427 (nst_method_hash_list, cls_method_hash_list): Removed. 428 (instance_method_map, class_method_map): New. 429 (cls_name_hash_list, als_name_hash_list): Removed. 430 (class_name_map, alias_name_map): Removed. 431 (ivar_offset_hash_list): Removed. 432 (hash_class_name_enter, hash_class_name_lookup, hash_enter, 433 hash_lookup, hash_add_attr, add_method_to_hash_list): Removed. 434 (interface_hash_init): New. 435 (objc_init): Call interface_hash_init. 436 (objc_write_global_declarations): Iterate over class_method_map 437 and instance_method_map instead of cls_method_hash_list and 438 nst_method_hash_list. 439 (objc_declare_alias): Use alias_name_map instead of 440 cls_name_hash_list. 441 (objc_is_class_name): Use class_name_map and alias_name_map 442 instead of cls_name_hash_list and als_name_hash_list. 443 (interface_tuple, interface_htab, hash_interface, eq_interface): 444 Removed. 445 (interface_map): New. 446 (add_class): Renamed to add_interface. Use interface_map instead 447 of interface_htab. 448 (lookup_interface): Use interface_map instead of interface_htab. 449 (check_duplicates): Changed first argument to be a tree, 450 potentially a TREE_VEC, instead of a hash. Changed implementation 451 to match. 452 (lookup_method_in_hash_lists): Use class_method_map and 453 instance_method_map instead of cls_method_hash_list and 454 nst_method_hash_list. 455 (objc_build_selector_expr): Likewise. 456 (hash_func): Removed. 457 (hash_init): Create instance_method_map, class_method_map, 458 class_name_map, and alias_name_map. Do not create 459 nst_method_hash_list, cls_method_hash_list, cls_name_hash_list, 460 als_name_hash_list, and ivar_offset_hash_list. 461 (insert_method_into_method_map): New. 462 (objc_add_method): Use insert_method_into_method_map instead of 463 add_method_to_hash_list. 464 (start_class): Call add_interface instead of add_class. 465 * objc-act.h (cls_name_hash_list, als_name_hash_list, 466 nst_method_hash_list, cls_method_hash_list): Removed. 467 4682011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> 469 470 * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old 471 interface with two parallel arrays to hold standard builtin 472 declarations, and replace it with a function based interface that 473 can support creating builtins on the fly in the future. Change 474 all uses, and poison the old names. Make sure 0 is not a 475 legitimate builtin index. 476 * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto. 477 * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto. 478 4792011-07-19 Richard Guenther <rguenther@suse.de> 480 481 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): 482 Use fold_build_pointer_plus. 483 (objc2_build_ehtype_initializer): Likewise. 484 4852011-07-11 Nicola Pero <nicola.pero@meta-innovation.com> 486 487 * objc-encoding.h (obstack.h): Do not include. 488 (util_obstack, util_firstobj): Do not declare. 489 (encode_field_decl): Updated prototype to return a tree and take a 490 single tree argument. Updated comments. 491 * objc-encoding.c (util_obstack, util_firstobj): Made static. 492 (objc_encoding_init): New. 493 (encode_field_decl): Existing function renamed to encode_field and 494 made static. New encode_field_decl wrapper function added. 495 (encode_aggregate_fields): Update call to encode_field_decl to 496 call encode_field. 497 * objc-next-runtime-abi-02.c (obstack.h): Do not include. 498 (util_obstack, util_firstobj): Do not declare. 499 (build_v2_ivar_list_initializer): Updated call to 500 encode_field_decl. 501 * objc-runtime-shared-support.c (obstack.h): Do not include. 502 (util_obstack, util_firstobj): Do not declare. 503 (build_ivar_list_initializer): Updated call to encode_field_decl. 504 * objc-act.c (objc_init): Use objc_encoding_init. 505 * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend 506 on OBSTACK_H. 507 (objc/objc-gnu-runtime-abi-01.o): Likewise. 508 (objc/objc-next-runtime-abi-01.o): Likewise. 509 (objc/objc-next-runtime-abi-02.o): Likewise. 510 (objc/objc-act.o): Likewise. 511 5122011-07-04 Nicola Pero <nicola.pero@meta-innovation.com> 513 514 Refactored encoding code into objc-encoding.h and objc-encoding.c. 515 * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers, 516 encode_type, generating_instance_variables, objc_method_parm_type, 517 objc_encoded_type_size, encode_method_prototype, 518 objc_build_encode_expr, pointee_is_readonly, encode_pointer, 519 encode_array, encode_vector, encode_aggregate_fields, 520 encode_aggregate_within, encode_next_bitfield, 521 encode_gnu_bitfield, encode_field_decl, 522 objc_v2_encode_property_attr): Moved to objc-encoding.h and 523 objc-encoding.c. No change in the actual code. 524 Include objc-encoding.h. 525 (objc_init): Added TODO. 526 (objc_build_property_setter_name): Made non-static so it can be 527 called from objc-encoding.c. 528 * objc-act.h (OBJC_ENCODE_INLINE_DEFS, 529 OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h. 530 * objc-runtime-shared-support.h (objc_v2_encode_property_attr, 531 encode_method_prototype, encode_field_decl, 532 generating_instance_variables): Moved to objc-encoding.h. 533 (objc_build_property_setter_name): Declare. 534 * objc-encoding.c: New. 535 * objc-encoding.h: New. 536 * objc-gnu-runtime-abi-01.c: Include objc-encoding.h. 537 * objc-next-runtime-abi-01.c: Likewise. 538 * objc-next-runtime-abi-02.c: Likewise. 539 * objc-runtime-shared-support.c: Likewise. 540 * Make-lang.in (OBJC_OBJS): Added objc-encoding.o. 541 (objc/objc-lang.o): Reordered dependencies. 542 (objc/objc-runtime-shared-support.o): Reordered dependencies. 543 Added dependencies on objc-encoding.h and on $(GGC_H), 544 $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h. 545 (objc/objc-gnu-runtime-abi-01.o): Likewise. 546 (objc/objc-next-runtime-abi-01.o): Likewise. 547 (objc/objc-next-runtime-abi-02.o): Likewise. 548 (objc/objc-act.o): Reordered dependencies. Added dependency on 549 objc-encoding.h. 550 (objc/objc-encoding.o): New rule. 551 552 * objc-encoding.c (encode_type): Use "%<%T%>" format when printing 553 warning "unknown type %<%T%> found during Objective-C encoding" 554 instead of using gen_type_name. 555 5562011-06-05 Nicola Pero <nicola.pero@meta-innovation.com> 557 558 * objc-act.c (receiver_is_class_object): Expanded comment. 559 (objc_finish_message_expr): Likewise. 560 5612011-06-02 Nicola Pero <nicola.pero@meta-innovation.com> 562 563 PR objc/48539 564 * objc-act.c (objc_finish_message_expr): Warn if messaging a class 565 that was only declared using @class without an @interface. Warn 566 if messaging an instance of a class that was only declared using 567 @class without an @interface, unless the receiver was also typed 568 with a protocol list. 569 5702011-06-01 Nicola Pero <nicola.pero@meta-innovation.com> 571 572 * objc-act.c (objc_decl_method_attributes): Implement nonnull 573 attribute for Objective-C methods. 574 5752011-05-21 Nicola Pero <nicola.pero@meta-innovation.com> 576 577 * config-lang.in (gtfiles): Updated order of files to fix building 578 when the gcc/cp directory is missing, as in the case of some 579 release tarballs. 580 5812011-05-20 Nathan Froyd <froydnj@codesourcery.com> 582 583 * objc-act.c (objc_compare_types): Use function_args_iterator 584 instead of TYPE_ARG_TYPES to compare function argument types. 585 5862011-05-13 Toon Moene <toon@moene.org> 587 588 * objc-next-runtime-abi-02.c (newabi_append_ro): 589 Add const qualifier to constant variable pointer declaration. 590 5912011-05-11 Nathan Froyd <froydnj@codesourcery.com> 592 593 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors. 594 (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise. 595 (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise. 596 5972011-05-05 Nathan Froyd <froydnj@codesourcery.com> 598 599 * objc-runtime-shared-support.h (get_arg_type_list): Delete. 600 (build_function_type_for_method): Declare. 601 * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change 602 type of get_arg_type_base_list field. 603 * objc-act.h (OBJC_VOID_AT_END): Delete. 604 * objc-act.c (get_arg_type_list): Delete. 605 (build_function_type_for_method): New function. 606 (objc_decl_method_attributes): Call build_function_type_for_method. 607 (really_start_method): Likewise. 608 * objc-gnu-runtime-abi-01.c 609 (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and 610 adjust function accordingly. Update header comment. 611 (build_objc_method_call): Call build_function_type_for_method. 612 * objc-next-runtime-abi-01.c 613 (next_runtime_abi_01_get_type_arg_list_base): Change prototype and 614 adjust function accordingly. Update header comment. 615 (build_objc_method_call): Call build_function_type_for_method. 616 * objc-next-runtime-abi-02.c 617 (next_runtime_abi_02_get_type_arg_list_base): Change prototype and 618 adjust function accordingly. Update header comment. 619 (objc_copy_to_temp_side_effect_params): Take fntype instead of a 620 typelist. Use function_args_iterator for traversing fntype. 621 (build_v2_build_objc_method_call): Adjust call to it. 622 Call build_function_type_for_method 623 6242011-05-05 Joseph Myers <joseph@codesourcery.com> 625 626 * objc-act.c (objc_start_method_definition): Add parameter expr. 627 Update call to start_method_def. 628 (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter, 629 objc_synthesize_setter) Update calls to 630 objc_start_method_definition. 631 (objc_get_parm_info): Add parameter expr. Update call to 632 get_parm_info. 633 (start_method_def): Add parameter expr. Update call to 634 objc_get_parm_info. 635 * objc-gnu-runtime-abi-01.c (build_module_initializer_routine): 636 Update call to objc_get_parm_info. 637 * objc-runtime-shared-support.h (objc_get_parm_info): Add extra 638 parameter. 639 6402011-04-26 Jason Merrill <jason@redhat.com> 641 642 * objc-act.c (objc_fold_objc_type_ref): Remove. 643 * objc-act.h: Remove prototype. 644 6452011-04-21 Nathan Froyd <froydnj@codesourcery.com> 646 647 * objc-act.c (synth_module_prologue): Call build_function_type_list 648 instead of build_function_type. 649 * objc-next-runtime-abi-02.c (next_runtime_02_initialize): 650 Likewise. 651 6522011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 653 654 * objc-act.c (ivar_of_class): New. 655 (objc_is_public): Use ivar_of_class. 656 6572011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 658 659 * objc-act.c (objc_get_interface_ivars): Removed. 660 (objc_detect_field_duplicates): New. 661 (hash_instance_variable): New. 662 (eq_instance_variable): New. 663 6642011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 665 666 * objc-act.c (objc_declare_protocols): Renamed to 667 objc_declare_protocol. Changed first argument to be an identifier 668 instead of a tree chain of identifiers, so that callers don't have 669 to create a temporary tree chain. 670 6712011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 672 673 * objc-act.c (objc_declare_class): Changed to take a single 674 identifier as argument instead of a tree list. This means callers 675 don't have to build temporary tree lists to call this function. 676 (synth_module_prologue): Updated calls to objc_declare_class. 677 6782011-04-13 Nicola Pero <nicola.pero@meta-innovation.com> 679 680 * objc-act.c (build_keyword_selector): Use get_identifier_with_length 681 instead of get_identifier. 682 6832011-04-12 Nathan Froyd <froydnj@codesourcery.com> 684 685 * objc-lang.c (objc_init_ts): Move code for this function... 686 * objc-act.c (objc_common_init_ts): ...here. Define. 687 * objc-act.h (objc_common_init_ts): Declare. 688 6892011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 690 691 * objc-act.c (objc_build_message_expr): Accept two arguments 692 instead of one so that callers can simply pass the arguments 693 without having to create a temporary chain to hold them. 694 6952011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 696 697 * objc-act.c (comp_proto_with_proto): Do not create and use 698 inefficient temporary argument lists. Compare the arguments 699 directly. (match_proto_with_proto): Removed; incorporated into 700 comp_proto_with_proto (). 701 7022011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 703 704 * objc-act.c (printable_ivar_name): New. 705 (add_instance_variable): Call printable_ivar_name() when an error 706 message needs to be printed. Do not prepare the instance variable 707 for printing unless there is an actual error. 708 7092011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 710 711 * objc-act.c (objc_is_class_name, objc_is_id): For efficiency, 712 avoid calling identifier_global_value() multiple times. 713 7142011-04-12 Martin Jambor <mjambor@suse.cz> 715 716 * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node 717 instead of cgraph_node. 718 7192011-04-06 Joseph Myers <joseph@codesourcery.com> 720 721 * objc-act.c: Include c-target.h instead of target.h. 722 * Make-lang.in (objc/objc-act.o): Update dependencies. 723 7242011-03-06 Joseph Myers <joseph@codesourcery.com> 725 726 * lang-specs.h: Match -save-temps* instead of -save-temps. 727 7282011-02-26 Nicola Pero <nicola.pero@meta-innovation.com> 729 730 * objc-act.c (objc_v2_encode_prop_attr): Rewritten. 731 7322011-02-23 Nicola Pero <nicola.pero@meta-innovation.com> 733 734 * objc-act.c (build_private_template): Do not copy the 735 CLASS_HAS_EXCEPTION_ATTR from the class to the struct. 736 * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using 737 TYPE_LANG_SLOT_0. 738 7392011-02-22 Nicola Pero <nicola.pero@meta-innovation.com> 740 741 PR objc/47832 742 * objc-act.c (flexible_array_type_p): New. 743 (add_instance_variable): Produce an error if an instance variable 744 uses flexible array members. 745 (encode_array): Do not emit an error if encoding a flexible array 746 type while generating instance variables. 747 7482011-02-21 Mike Stump <mikestump@comcast.net> 749 750 * Make-lang.in (check_objc_parallelize): Refine for 4 processor 751 machines. 752 7532011-02-20 Nicola Pero <nicola.pero@meta-innovation.com> 754 755 * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed. Removed 756 usage of padding fields. Do not include tm.h. 757 * objc-act.c (objc_write_global_declaration): Set input_location 758 to BUILTINS_LOCATION while generating runtime metadata. 759 7602011-01-20 Nicola Pero <nicola.pero@meta-innovation.com> 761 762 PR objc/47784 763 * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side 764 effects, do not use a temporary variable. 765 7662011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 767 768 * objc-next-runtime-abi-01.c: Updated comments. 769 * objc-next-runtime-abi-02.c: Same. 770 7712011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 772 773 * objc-act.c (objc_init, generate_struct_by_value_array): Updated 774 comments. 775 7762011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 777 778 * objc-act.c: Updated comments. 779 * objc-next-runtime-abi-02.c: Same. 780 * objc-runtime-shared-support.c: Same. 781 * objc-runtime-hooks.h: Same. 782 * objc-act.h: Same. 783 * objc-gnu-runtime-abi-01.c: Same. 784 7852011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 786 787 * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do 788 not generate metadata if there is nothing to put into it. 789 7902011-02-17 Iain Sandoe <iains@gcc.gnu.org> 791 792 * config-lang.in (gtfiles): Updated. 793 * Make-lang.in (START_HDRS): New. 794 (OBJC_OBJS): Added new object files. 795 (objc/objc-act.o): Updated prerequisites. 796 (objc/objc-lang.o): Updated prerequisites. 797 (objc/objc-runtime-shared-support.o): New. 798 (objc/objc-gnu-runtime-abi-01.o): New. 799 (objc/objc-next-runtime-abi-01.o): New. 800 (objc/objc-next-runtime-abi-02.o): New. 801 * objc-runtime-hooks.h: New. 802 * objc-runtime-shared-support.h: New. 803 * objc-runtime-shared-support.c: New. 804 * objc-gnu-runtime-abi-01.c: New. 805 * objc-next-metadata-tags.h: New. 806 * objc-next-runtime-abi-01.c: New. 807 * objc-next-runtime-abi-02.c: New. 808 * objc-lang.c: Include c-lang.h. 809 (LANG_HOOKS_EH_PERSONALITY): Removed. 810 * objc-act.h: Moved many declarations and code from objc-act.c 811 into objc-act.h to make them available outside objc-act.c. 812 (objc_eh_runtime_type): Removed. 813 (objc_eh_personality): Removed. 814 (CLASS_HAS_EXCEPTION_ATTR): New. 815 (OCTI_SUPER_SUPERFIELD_ID): New. 816 (OCTI_V1_PROP_LIST_TEMPL): New. 817 (OCTI_V1_PROP_NAME_ATTR_CHAIN): New. 818 (super_superclassfield_id): New. 819 (objc_prop_list_ptr): New. 820 (prop_names_attr_chain): New. 821 * objc-act.c: Include new runtime headers. Moved many #defines 822 and declarations into objc-act.h and 823 objc-runtime-shared-support.h. Made some corresponding functions 824 non-static, and moved some others into 825 objc-runtime-shared-support.c. Moved metadata generation code 826 into the new runtime hook files. 827 (ivar_offset_hash_list): New. 828 (objc_init): Call generate_struct_value_by_array() before doing 829 any runtime initialization. Create the appropriate runtime hook 830 structures. 831 (init_objc): Removed. Code moved directly into objc_init. 832 (finish_objc): Removed. Code moved directly into 833 objc_write_global_declarations. 834 (objc_write_global_declarations): Do the warn_selector checks 835 before emitting metadata. Use a runtime hook to emit the 836 metadata. Do not emit the metadata or do -gen-decls processing if 837 -fsyntax-only or we are producing a PCH. 838 (build_objc_exception_stuff): Renamed to 839 build_common_objc_exception_stuff. Remove TREE_NOTHROW flag from 840 objc_exception_throw_decl. 841 (synth_module_prologue): Call runtime initialize hook instead of 842 building runtime declarations here. Use the 843 default_constant_string_class_name runtime hook to set the 844 constant string class name. 845 (objc_build_string_object): Call the setup_const_string_class_decl 846 runtime hook instead of setup_string_decl. Call the 847 build_const_string_constructor runtime hook instead of building 848 the string object here. 849 (get_objc_string_decl): Added prop_names_attr case. Removed 850 gcc_unreachable() at the end. 851 (objc_begin_catch_clause): Distinguish between @catch (...) and 852 @catch (id x). Call the begin_catch runtime hook instead of 853 building the CATCH_EXPR here. 854 (objc_finish_catch_clause): Call the finish_catch runtime hook 855 instead of adding the catch here. 856 (objc_finish_try_stmt): Call the finish_try_stmt runtime hook 857 instead of doing it here. 858 (objc_build_throw_stmt): Bail out early for error_mark_node. Call 859 the build_exc_ptr runtime hook instead of objc_build_exc_ptr. 860 Call the build_throw_stmt runtime hook instead of building the 861 throw call here. 862 (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime 863 as well. 864 (get_arg_type_list): Call the get_arg_type_list_base runtime hook 865 instead of building the list of arguments here. 866 (receiver_is_class_object): Call the receiver_is_class_object 867 runtime hook instead of doing the check here. Call the 868 tag_getclass runtime hook instead of using TAG_GETCLASS. 869 (objc_finish_message_expr): Call the build_objc_method_call 870 runtime hook. 871 (objc_build_protocol_expr): Call the get_protocol_reference 872 runtime hook. 873 (objc_build_selector_expr): Call the build_selector_reference 874 runtime hook. 875 (build_ivar_reference): Call the build_ivar_reference runtime 876 hook. 877 (hash_init): Set up ivar_offset_hash_list. 878 (start_class): Recognize the objc_exception attribute and store 879 it. 880 (continue_class): Use the class_decl and metaclass_decl runtime 881 hooks. 882 (build_objc_property_accessor_helpers): Renamed to 883 build_common_objc_property_accessor_helpers. Do not build 884 objc_copyStruct_decl, objc_getPropertyStruct_decl and 885 objc_setPropertyStruct_decl. 886 (objc_synthesize_getter): Check what struct setter/getter helper 887 is available instead of checking the type of runtime. 888 (get_super_receiver): Use the super_superclassfield_ident runtime 889 hook. Added assert. Use the get_class_super_ref and 890 get_category_super_ref runtime hooks. 891 (objc_v2_encode_prop_attr): New. 892 8932011-01-17 Nicola Pero <nicola.pero@meta-innovation.com> 894 895 PR objc/47314 896 * objc-act.c (finish_objc): When calling check_duplicates to check 897 duplicated instance methods, set 'is_class' to 0, not 1. 898 8992011-01-14 Ben Elliston <bje@au.ibm.com> 900 901 PR 19162 902 * objc-act.c (generate_struct_by_value_array): Do not output a 903 definition for struct_forward_array. 904 9052011-01-08 Iain Sandoe <iains@gcc.gnu.org> 906 907 * objc-act.c (objc_finish_foreach_loop): Mark collection expression 908 as read. 909 9102011-01-02 H.J. Lu <hongjiu.lu@intel.com> 911 912 * objc-act.c (check_that_protocol_is_defined): Fix a typo. 913 9142011-01-02 Nicola Pero <nicola.pero@meta-innovation.com> 915 916 * objc-act.c (check_that_protocol_is_defined): New. 917 (lookup_protocol): Call check_that_protocol_is_defined. 918 9192010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 920 921 * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol 922 lists. Check them two-ways to fix comparisons when one protocol 923 implements the other one, or when one list contains duplicated 924 protocols. 925 9262010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 927 928 * objc-act.c (objc_add_method): When emitting an error because a 929 method with the same name but conflicting types is found in the 930 same class or category interface, print a note with the location 931 of the original method. Also, improved the error message to 932 clearly state that the conflict is due to conflicting types, and 933 produce it for protocols as well. Emit an error if two identical 934 methods are declared in a protocol, but one is @required and the 935 other one is @optional. 936 9372010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 938 939 * objc-act.c (start_class): Warn when a class attribute is 940 ignored. 941 (objc_declare_protocols): Warn when a protocol attribute in a 942 protocol forward-declaration is ignored. 943 (start_protocol): Warn when a protocol attribute is ignored. 944 9452010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 946 947 * objc-act.c (objc_set_method_opt): Tidy up error messages. In 948 particular, explicitly mention whether the error is due to the 949 @optional or @required keyword instead of mentioning 950 "@optional/@required". 951 9522010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 953 954 PR objc/47118 955 * objc-act.c (objc_build_synchronized): Check the argument of 956 @synchronized and emit an appropriate error if it is not a valid 957 Objective-C object. Deal gracefully with that case. Updated 958 comments and variable names. 959 9602010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 961 962 PR objc/47075 963 * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New. 964 * objc-tree.def (PROPERTY_REF): Increased the number of operands 965 from 3 to 4. 966 * objc-act.c (objc_finish_message_expr): Added optional argument 967 allowing to return the deprecated method prototype for deprecated 968 methods, instead of immediately emitting the deprecation warning. 969 (objc_maybe_build_component_ref): Do not warn for a deprecated 970 property. When building the getter call, get the deprecated 971 method prototype from objc_finish_message_expr() and put it into 972 the PROPERTY_REF. 973 (objc_build_class_component_ref): Same change. 974 (finish_class): Mark the getter and setter as deprecated if they 975 are generated from a deprecated property. 976 (objc_gimplify_property_ref): If the getter is deprecated, emit a 977 deprecation warning. 978 (objc_build_setter_call, objc_build_message_expr, 979 objc_finish_foreach_loop): Updated call to 980 objc_finish_message_expr. 981 9822010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 983 984 PR objc/47076 985 * objc-act.c (lookup_protocol): Added 'definition_required' 986 argument. If 'definition_required', and the protocol is not 987 defined, emit a warning. 988 (objc_declare_protocols): Updated call to lookup_protocol. 989 (start_protocol): Same change. 990 (check_protocol_recursively): Same change. 991 (objc_build_protocol_expr): Same change. 992 (lookup_and_install_protocols): Added definition_required argument. 993 Pass it to lookup_protocol. 994 (objc_get_protocol_qualified_type): Updated call to 995 lookup_and_install_protocols. 996 (start_class): Updated calls to lookup_and_install_protocols; pass 997 true to 'definition_required' to get the warnings. 998 (start_protocol): Updated calls to lookup_and_install_protocols. 999 10002010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1001 1002 * objc-act.c (objc_start_category_interface): Produce an error if 1003 a class extension is found after the class @implementation. 1004 10052010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1006 1007 PR objc/47073 1008 * objc-act.c (encode_method_prototype): Fixed both location and 1009 format string of error "type %qT does not have a known size". 1010 10112010-12-26 Nicola Pero <nicola.pero@meta-innovation.com> 1012 1013 * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c. 1014 10152010-12-22 Nathan Froyd <froydnj@codesourcery.com> 1016 1017 * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p. 1018 10192010-12-18 Nicola Pero <nicola.pero@meta-innovation.com> 1020 1021 * objc-act.c (objc_init): Call using_eh_for_cleanups. 1022 (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions. Do 1023 not call using_eh_for_cleanups. 1024 (objc_begin_try_stmt): Do not call objc_init_exceptions. 1025 (objc_build_throw_stmt): Updated call to 1026 objc_maybe_warn_exceptions. 1027 10282010-12-18 Iain Sandoe <iains@gcc.gnu.org> 1029 1030 * objc/objc-act.c (objc_eh_personality): Select personality name on 1031 runtime. 1032 (objc_init_exceptions): New. 1033 (objc_begin_try_stmt): Use objc_init_exceptions. 1034 (objc_build_throw_stmt): Likewise. 1035 10362010-12-10 Nicola Pero <nicola.pero@meta-innovation.com> 1037 1038 * objc-act.c (objc_in_class_extension): New. 1039 (objc_start_category_interface): If -fobjc-std=objc1 1040 was specified, produce an error if a class extension is used. 1041 (objc_finish_interface): Reset objc_in_class_extension to false. 1042 (objc_add_property_declaration): Allow a class extension to extend 1043 readonly properties in the main @interface to be readwrite. 1044 (start_class): Added code to deal with class extensions. In that 1045 case, return the existing interface after adding any additional 1046 protocols to it and setting objc_in_class_extension to true. 1047 (continue_class): If in a class extension, do not generate the 1048 instance variable template. 1049 10502010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 1051 1052 * objc-act.c (objc_build_throw_stmt): Check that the argument of 1053 @throw is an object and emit an error if not. 1054 10552010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 1056 1057 * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of 1058 error() when printing an error about the iterating variable or 1059 collection not being an object. 1060 10612010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 1062 1063 * objc-act.c (objc_finish_foreach_loop): Mark the 1064 object_expression as used. 1065 10662010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 1067 1068 * objc-act.c: Include c-family/c-objc.h. 1069 * objc-lang.c: Same change. 1070 * Make-lang.in (objc/objc-act.o): Depend on 1071 c-family/c-objc.h. 1072 (objc/objc-lang.o): Same change. 1073 * config-lang.in (gtfiles): Added c-family/c-objc.h. 1074 10752010-12-02 Joseph Myers <joseph@codesourcery.com> 1076 1077 * lang-specs.h: Don't handle -ftraditional. 1078 10792010-12-02 Nicola Pero <nicola.pero@meta-innovation.com> 1080 1081 * objc-act.c (objc_build_throw_stmt): Return error_mark_node and 1082 not NULL_TREE when a @throw is used outside of a @catch block. 1083 10842010-11-30 Nicola Pero <nicola.pero@meta-innovation.com> 1085 1086 * objc-act.c (objc_build_volatilized_type): Removed. 1087 (objc_non_volatilized_type): Removed. 1088 (objc_type_quals_match): Removed. 1089 (local_variables_to_volatilize): New. 1090 (objc_volatilize_decl): Add the decl to volatilize to 1091 local_variables_to_volatilize, but don't volatilize it yet. 1092 (objc_finish_function): New. 1093 * objc-act.h (local_variables_to_volatilize): New. 1094 10952010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1096 Mike Stump <mikestump@comcast.net> 1097 1098 Allow 'make check-objc -j2' 1099 * Make-lang.in (lang_checks_parallelized): New. 1100 (check_objc_parallelize): New. 1101 11022010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1103 1104 * objc-act.c (start_class): When a class is reimplemented, 1105 generate an error and avoid adding the class to the list of 1106 implemented classes again, but do not return error_mark_node. 1107 11082010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1109 1110 * objc-act.c (objc_maybe_build_component_ref): Removed TODO. 1111 11122010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1113 1114 * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node 1115 is passed as argument. 1116 (objc_begin_catch_clause): Added code to deal with an 1117 error_mark_node or NULL_TREE argument. Improved checks for 1118 invalid arguments. Added code to traverse typedefs. 1119 11202010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1121 1122 * objc-act.c (objc_demangle): Return immediately if the string is 1123 too short. Detect names that do not need demangling, and return 1124 them unchanged. 1125 11262010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 1127 1128 Implemented optional properties. 1129 * objc-act.h (PROPERTY_OPTIONAL): New. 1130 * objc-act.c (objc_add_property_declaration): Set 1131 PROPERTY_OPTIONAL if appropriate. 1132 (finish_class): When generating definitions of setter and getter 1133 methods associated with a property for a protocol, mark them as 1134 optional if the property is optional. 1135 (maybe_make_artificial_property_decl): Added 'getter_name' 1136 argument. Set PROPERTY_OPTIONAL. 1137 (objc_maybe_build_component_ref): Updated calls to 1138 maybe_make_artificial_property_decl. Added code for optional, 1139 readonly properties. 1140 (objc_build_class_component_ref): Updated call to 1141 maybe_make_artificial_property_decl. 1142 11432010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 1144 1145 * objc-act.c (objc_build_struct): Fixed loops that save and 1146 restore TYPE_OBJC_INFO to iterate over all variants of the type; a 1147 special case for the current type is then no longer required. 1148 Duplicate TYPE_LANG_SPECIFIC for each type before restoring 1149 TYPE_OBJC_INFO. 1150 (objc_get_protocol_qualified_type): Updated comments. 1151 11522010-11-25 Nicola Pero <nicola.pero@meta-innovation.com> 1153 1154 * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE 1155 after finish_struct, not before, otherwise it may be wiped out by 1156 it. This fixes spurious warnings when a class has more than 15 1157 instance variables. 1158 11592010-11-23 Nicola Pero <nicola.pero@meta-innovation.com> 1160 1161 PR objc/24358 1162 * lang-specs.h: Added objective-c-cpp-output. Mapped .mi to 1163 objective-c-cpp-output instead of objc-cpp-output. Print a 1164 deprecation note every time objc-cpp-output is requested. 1165 11662010-11-22 Joseph Myers <joseph@codesourcery.com> 1167 1168 * objc-act.c (write_symbols): Don't declare here. 1169 11702010-11-22 Nicola Pero <nicola.pero@meta-innovation.com> 1171 1172 PR objc/41108 1173 * objc-act.c (objc_generate_write_barrier): Added assert to make sure 1174 this function is only called with the next runtime. 1175 11762010-11-20 Jakub Jelinek <jakub@redhat.com> 1177 1178 PR c/46547 1179 * objc-act.c (in_late_binary_op): Remove. 1180 11812010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 1182 1183 * objc-act.c (objc_start_class_interface): Do not warn that class 1184 attributes are unimplemented. Pass the attributes to start_class. 1185 (objc_start_category_interface): Updated call to start_class. 1186 (objc_start_class_implementation): Same change. 1187 (objc_start_category_implementation): Same change. 1188 (objc_build_class_component_ref): Warn if the class is deprecated. 1189 (build_private_template): Mark the template as deprecated if the 1190 class is deprecated. 1191 (start_class): Added 'attributes' argument. Emit a warning if 1192 using a deprecated class as superclass of a class, or original 1193 class of a category. Recognize the 'deprecated' attribute when 1194 starting and interface, and mark the interface with 1195 TREE_DEPRECATED if present. Store attributes in the interface. 1196 11972010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 1198 1199 * objc-act.c (lookup_protocol): Added 'warn_if_deprecated' 1200 argument. If it is 'true' and the protocol is deprecated, emit a 1201 deprecation warning. 1202 (objc_start_protocol): Do not warn that protocol attributes are 1203 unimplemented. Pass the attributes to start_protocol. 1204 (start_protocol): Added attributes argument. Recognize the 1205 'deprecated' attribute and mark the protocols with TREE_DEPRECATED 1206 if present. Store attributes in the protocol. 1207 (objc_declare_protocols): Added 'attributes' argument. Recognize 1208 the 'deprecated' attribute and mark the protocols with 1209 TREE_DEPRECATED if present. Store attributes in the protocol. 1210 Updated call to lookup_protocol. 1211 (objc_build_protocol_expr): Updated call to lookup_protocol. 1212 (check_protocol_recursively): Same change. 1213 (lookup_and_install_protocols): Same change. 1214 * objc-act.h: Updated comments. 1215 12162010-11-17 Nicola Pero <nicola.pero@meta-innovation.com> 1217 1218 * objc-act.c (lookup_method_in_protocol_list): Search methods in 1219 PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if 1220 they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS. 1221 12222010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1223 1224 * objc-act.c (objc_build_setter_call): New. 1225 (objc_maybe_build_modify_expr): Rewritten to build a compound 1226 statement. 1227 (objc_build_incr_expr_for_property_ref): Updated calls to 1228 objc_maybe_build_modify_expr to call objc_build_setter_call 1229 instead. Use build_modify_expr () instead of build2 (MODIFY_EXPR, 1230 ...). Use convert () instead of build1 (NOP_EXPR, ...). Use 1231 TREE_NO_WARNING on the final compound statement to silence C++ 1232 warnings. 1233 12342010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1235 1236 * objc-act.c (objc_build_incr_expr_for_property_ref): New. 1237 (objc_create_temporary_var): Moved it towards the beginning of the 1238 file so that objc_build_incr_expr_for_property_ref can use it. 1239 12402010-11-14 Nicola Pero <nicola.pero@meta-innovation.com> 1241 1242 * objc-act.c (objc_add_property_declaration): Check that the decl 1243 we received from the parser is a FIELD_DECL; reject array and 1244 bitfield properties. Convert the warning when a property is 1245 readonly and a setter is specified into an error. Convert errors 1246 when a property declaration does not match a property declaration 1247 in a superclass into warnings. 1248 (objc_add_synthesize_declaration_for_property): Use 1249 DECL_BIT_FIELD_TYPE to determine the type of an instance variable 1250 if it is a bitfield. Throw an error if we are asked to synthesize 1251 setters/getters for a bitfield instance variable but the property 1252 is not appropriate - it must be assign and nonatomic. If the 1253 property is readonly, allow the instance variable type to be a 1254 specialization of the property type. 1255 (objc_type_valid_for_messaging): Fixed returning 'false' for a 1256 Class qualified with a protocol when the 'accept_classes' argument 1257 is 'false'. 1258 12592010-11-13 Nicola Pero <nicola.pero@meta-innovation.com> 1260 1261 * objc-act.c (objc_get_protocol_qualified_type): detect cases 1262 where we are asked to attach a protocol to something which is not 1263 an Objective-C object type, and produce an error. 1264 12652010-11-11 Nicola Pero <nicola.pero@meta-innovation.com> 1266 1267 * objc-act.c (objc_add_property_declaration): Check that the type 1268 of a property and of an inherited property match. 1269 (objc_maybe_build_component_ref): Tidied up indentation and 1270 comments. 1271 (objc_common_type): Added new type of check (-5). 1272 (objc_add_synthesize_declaration_for_property): Check that the 1273 property to synthesize and the instance variable to use have the 1274 same type. 1275 12762010-11-10 Joseph Myers <joseph@codesourcery.com> 1277 1278 * objc-act.c (objc_init): Use %' in diagnostic. 1279 (objc_set_method_opt): Remove trailing '.' from diagnostic. 1280 12812010-11-10 Joseph Myers <joseph@codesourcery.com> 1282 1283 * objc-act.c (dump_base_name): Don't declare here. 1284 12852010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1286 1287 * objc-act.c (objc_add_dynamic_declaration_for_property): Do not 1288 search for the @property declation only in the current context, 1289 but also in inherited properties. Do not mark the original 1290 PROPERTY_DECL in the @interface or @protocol with 1291 PROPERTY_DYNAMIC. 1292 (check_methods): To check if a method is associated with a 1293 @dynamic property, search for the property in IMPL_PROPERTY_DECL. 1294 (check_accessible_methods): Same change. 1295 * objc-act.h: Updated comment. 1296 12972010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1298 1299 * objc-act.c (objc_add_synthesize_declaration_for_property): 1300 Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when 1301 checking for an existing @synthesize or @dynamic declaration. 1302 Search for an inherited @property declaration if none is found in 1303 the local interface. If the required instance variable does not 1304 exist, return instead of trying to continue to prevent a compiler 1305 crash later. Check that the instance variable is not already 1306 being used by another @synthesize. 1307 (objc_add_dynamic_declaration_for_property): Iterate over 1308 IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an 1309 existing @synthesize or @dynamic declaration. 1310 (objc_synthesize_getter): Search for the getter declaration in 1311 protocols and superclasses as well. 1312 (objc_synthesize_setter): Search for the setter declaration in 1313 protocols and superclasses as well. 1314 13152010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1316 1317 * objc-act.c (lookup_property): When checking categories, also 1318 check the protocols attached to each. 1319 (objc_add_property_declaration): Determine the 1320 PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up 1321 error message. Search for an existing property declaration with 1322 the same name which would be inherited from the class hiearchy, 1323 and produce an error if it has incompatible attributes. 1324 (check_methods): Changed second parameter. If the method is a 1325 getter or setter for a property, do not warn if it is inherited as 1326 opposed to implemented directly in the class. 1327 (check_protocol): Updated calls to check_methods. 1328 (finish_class): Do not determine the PROPERTY_SETTER_NAME and 1329 PROPERTY_GETTER_NAME here; this is now done earlier, in 1330 objc_add_property_declaration. 1331 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments. 1332 13332010-11-06 Nicola Pero <nicola.pero@meta-innovation.com> 1334 1335 Fixed using the Objective-C 2.0 dot-syntax with self and super. 1336 * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New. 1337 (maybe_make_artificial_property_decl): Added 'implementation' 1338 argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when 1339 looking up getters or setters for a class. If an implementation 1340 is specified, search it as well for a getter or setter. 1341 (objc_maybe_build_component_ref): Updated calls to 1342 maybe_make_artificial_property_decl; added code to deal with 1343 'self' and 'super' and with methods declared locally in the 1344 implementation. Store the getter call expression in the 1345 PROPERTY_REF instead of throwing it away. 1346 (objc_build_class_component_ref): Updated calls to 1347 maybe_make_artificial_property_decl, and store the getter call 1348 expression in PROPERTY_REF instead of throwing it away. 1349 (lookup_method_static): Implemented 1350 OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option. 1351 (objc_gimplify_property_ref): Do not build the getter method call 1352 here; instead use the one stored in the PROPERTY_REF. If it's not 1353 there, produce helpful error messages. 1354 * objc-tree.def (PROPERTY_REF): Increased the number of operands 1355 from 2 to 3. Updated comments. 1356 * objc-act.h (PROPERTY_REF_GETTER_CALL): New. 1357 13582010-11-06 Iain Sandoe <iains@gcc.gnu.org> 1359 1360 PR target/44981 1361 * objc-act.c (objc_build_string_object): Amend for renamed hook. 1362 (objc_string_ref_type_p): New. 1363 (objc_check_format_arg): New. 1364 13652010-11-04 Nicola Pero <nicola.pero@meta-innovation.com> 1366 1367 Fixed using the Objective-C 2.0 dot-syntax with class names. 1368 * objc-act.c (objc_build_class_component_ref): New. 1369 13702010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1371 1372 * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a 1373 category. 1374 (objc_type_valid_for_messaging): Added 'accept_classes' argument; 1375 if set to 'true', return 'true' for Class objects. Do not remove 1376 more than on pointer indirection. 1377 (objc_add_property_declaration): Only warn about 'assign' 1378 semantics for Objective-C objects if warn_property_assign_default; 1379 and do not warn if the property is readonly or if the type is a Class. 1380 (objc_finish_foreach_loop): Updated calls to 1381 objc_type_valid_for_messaging. 1382 13832010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1384 1385 Implemented -fobjc-std=objc1 flag. 1386 * objc-act.c (objc_start_class_interface): If attributes are 1387 specified when flag_objc1_only is set, print an error. 1388 (objc_start_category_interface): Same change. 1389 (objc_start_protocol): Same change. 1390 (objc_add_method_declaration): Same change. 1391 (objc_start_method_definition): Same change. 1392 (objc_build_keyword_decl): Same change. 1393 (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when 1394 flag_objc1_set is set, print an error. 1395 (objc_set_method_opt): If flag_objc1_only is set, print an error. 1396 (objc_add_property_declaration): Same change. 1397 (objc_add_synthesize_declaration): Same change. 1398 (objc_add_dynamic_declaration): Same change. 1399 (objc_finish_foreach_loop): Same change. 1400 (objc_maybe_build_component_ref): If flag_objc1_only is set, 1401 return immediately. 1402 14032010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1404 1405 * objc-act.c (maybe_make_artificial_property_decl): New. 1406 (objc_maybe_build_component_ref): Call 1407 maybe_make_artificial_property_decl if a property can not be 1408 found. Do not call objc_finish_message_expr if 1409 PROPERTY_HAS_NO_GETTER. 1410 * objc-act.h Updated comments. 1411 (PROPERTY_HAS_NO_GETTER): New. 1412 (PROPERTY_HAS_NO_SETTER): New. 1413 * objc-tree.def: Updated comment. 1414 14152010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1416 1417 Implemented format and noreturn attributes for Objective-C methods. 1418 * objc-act.c (objc_start_method_definition): If method attributes 1419 are specified emit a warning and ignore them. 1420 (build_objc_method_call): Moved deprecation warnings from here ... 1421 (objc_finish_message_expr): to here. Do not emit deprecation 1422 warnings if the receiver is of type 'id'. 1423 (really_start_method): Install 'deprecation' and 'noreturn' 1424 attributes. 1425 (objc_decl_method_attributes): Carefully filter out the list of 1426 attributes, allowing only "noreturn", "format", "sentinel" and 1427 "deprecated". In the case of "format", adjust the arguments. 1428 Always process the attributes in the same way no matter if 1429 "sentinel" is in the list or not. 1430 14312010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1432 1433 * objc-act.c (objc_maybe_build_component_ref): Warn about using 1434 deprecated properties. 1435 (objc_maybe_printable_name): Support PROPERTY_DECL. 1436 14372010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1438 1439 Implemented Objective-C 2.0 property accessors. 1440 * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL, 1441 OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL, 1442 OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL. 1443 (objc_getProperty_decl): New. 1444 (objc_setProperty_decl): New. 1445 (objc_copyStruct_decl): New. 1446 (objc_getPropertyStruct_decl): New. 1447 (objc_setPropertyStruct_decl): New. 1448 * objc-act.c (build_objc_property_accessor_helpers): New. 1449 (synth_module_prologue): Call 1450 build_objc_property_accessor_helpers. 1451 (lookup_ivar): New. 1452 (objc_synthesize_getter): Implemented synthesizing getters that 1453 work with properties that are not nonatomic, assign properties. 1454 (objc_synthesize_setter): Implemented synthesizing setters that 1455 work with properties that are not nonatomic, assign properties. 1456 14572010-10-30 Nicola Pero <nicola.pero@meta-innovation.com> 1458 1459 Implemented Objective-C 2.0 @property, @synthesize and @dynamic. 1460 * objc-tree.def (PROPERTY_REF): New. 1461 * objc-act.h: Added comments for all the PROPERTY_ macros. 1462 (PROPERTY_NAME): Use DECL_NAME. 1463 (PROPERTY_COPIES): Removed. 1464 (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it. 1465 (PROPERTY_NONATOMIC): New. 1466 (objc_property_assign_semantics): Make it a typedef. 1467 (PROPERTY_ASSIGN_SEMANTICS): New. 1468 (PROPERTY_DYNAMIC): New. 1469 (PROPERTY_REF_OBJECT): New. 1470 (PROPERTY_REF_PROPERTY_DECL): New. 1471 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed. 1472 (in_objc_property_setter_name_context): Removed. 1473 (objc_add_property_declaration): Removed copies and ivar arguments 1474 and code supporting them. Fixed recovering when readonly and 1475 setter attributes are specified. Removed support for @property in 1476 @implementation context. Updated error message. Double-check 1477 that a property does not have a DECL_INITIAL. Validate the 1478 property assign semantics and emit appropriate errors and 1479 warnings. Check for duplicate property declarations. Set 1480 DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC, 1481 PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new 1482 PROPERTY_DECL. Do not set PROPERTY_COPIES. Set 1483 PROPERTY_IVAR_NAME to NULL_TREE. 1484 (objc_build_getter_call): Renamed to 1485 objc_maybe_build_component_ref. If the property is not found in 1486 the interface, search in the protocol list. Do not generate the 1487 getter call; instead, build and return a PROPERTY_REF. 1488 (objc_is_property_ref): New. 1489 (objc_setter_func_call): Removed. 1490 (get_selector_from_reference): Removed. 1491 (is_property): Removed. 1492 (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr. 1493 Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from 1494 the PROPERTY_REF. Generate an error if the property is read-only. 1495 (build_property_reference): Removed. 1496 (objc_finish_message_expr): Removed check to produce "readonly 1497 property can not be set" error when 1498 in_objc_property_setter_name_context. We now generate the error 1499 earlier, in objc_maybe_build_modify_expr, which will only generate 1500 the setter call if the property is readwrite. 1501 (check_methods): Recognize dynamic properties. 1502 (check_methods_accessible): Same change. 1503 (objc_build_property_ivar_name): Removed. 1504 (objc_build_property_setter_name): Dropped bool argument. Always 1505 add the ':' at the end. 1506 (objc_gen_one_property_datum): Removed. 1507 (objc_process_getter_setter): Removed. 1508 (objc_synthesize_getter): Mark 'klass' argument as unused. Use 1509 PROPERTY_GETTER_NAME instead of PROPERTY_NAME. Set the 1510 DECL_SOURCE_LOCATION of the new method to be the same as the one 1511 for the @synthesize. Always use PROPERTY_IVAR_NAME as it is 1512 instead of trying to guess what it should be. Removed use of 1513 CLASS_IVARS. Use the location of @synthesize for c_finish_return 1514 and c_end_compound_statement. 1515 (objc_synthesize_setter): Mark 'klass' argument as unused. Use 1516 PROPERTY_SETTER_NAME instead of trying to guess what it should be. 1517 Set the DECL_SOURCE_LOCATION of the new method to be the same as 1518 the one for the @synthesize. Always use PROPERTY_IVAR_NAME as it 1519 is instead of trying to guess what it should be. Removed use of 1520 CLASS_IVARS. Use the location of @synthesize for c_finish_return 1521 and c_end_compound_statement. Emit an error and keep going, 1522 instead of aborting, if the setter prototype does not have the 1523 expected argument. 1524 (objc_add_synthesize_declaration_for_property): New. 1525 (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from 1526 all arguments. Improved error message. Filled in the rest of the 1527 function, which used to be a placeholder, with an actual 1528 implementation. 1529 (objc_add_dynamic_declaration_for_property): New. 1530 (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all 1531 arguments. Improved error message. Filled in the rest of the 1532 function, which used to be a placeholder, with an actual 1533 implementation. 1534 (objc_gen_property_data): Rewritten. 1535 (finish_class): Added explicit switch cases for 1536 CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and 1537 PROTOCOL_INTERFACE_TYPE. Added a default switch case which is 1538 gcc_unreachable. Rewritten the processing of properties, in 1539 particular to not synthesize prototypes for getters and setters if 1540 they already exist and to install the getter and setter names into 1541 PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME. Do not generate 1542 warnings about setter, getter and ivar property attributes. 1543 (objc_lookup_ivar): Removed support for properties. 1544 (objc_gimplify_property_ref): New. 1545 (objc_gimplify_expr): Use a switch. In case of a PROPERTY_REF, call 1546 objc_gimplify_property_ref. 1547 15482010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 1549 1550 * objc-act.c (objc_add_property_declaration): Added arguments to 1551 pass the various property attributes that were parsed with the 1552 property declaration. Process arguments to determine the final 1553 property attributes and produce error messages as appropriate. 1554 Added temporary code to keep the compiler silent about variables 1555 set but not used - for new attributes that are only checked but 1556 have no effect yet. 1557 (property_readonly): Removed. 1558 (property_setter): Removed. 1559 (property_getter): Removed. 1560 (property_ivar): Removed. 1561 (property_copies): Removed. 1562 (objc_set_property_attr): Removed. 1563 * objc-act.h (enum property_assign_semantics): New. 1564 15652010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 1566 1567 * objc-act.c (objc_add_property_variable): Renamed to 1568 objc_add_property_declaration. Added location argument. Updated 1569 warnings and errors to use it. Use error, not fatal_error, if a 1570 property declaration is found outside an interface or 1571 implementation context. 1572 15732010-10-24 Nicola Pero <nicola.pero@meta-innovation.com> 1574 1575 * objc-act.c (objc_build_keyword_decl): Updated comments. Do not 1576 emit a warning that method parameter attributes are unimplemented. 1577 Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL. 1578 (start_method_def): Copy attributes from each KEYWORD_DECL into 1579 the corresponding PARM_DECL. 1580 (objc_warn_deprecated_use): Removed. 1581 (build_objc_method_call): Call warn_deprecated_use, not 1582 objc_warn_deprecated_use. 1583 (objc_maybe_printable_name): Do not try to get the identifier name 1584 of DECLs that we don't recognize. Immediately return NULL for them. 1585 (objc_printable_name): Removed C++-specific case, which is no 1586 longer used. Updated comments. 1587 15882010-10-23 Nicola Pero <nicola.pero@meta-innovation.com> 1589 1590 * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments. 1591 (objc_demangle): Return NULL if demangling can not be done because 1592 the string to demangle is not an Objective-C mangled method name. 1593 Be smarter in demangling method names so that at least for methods 1594 with no arguments we are able to almost always demangle '_' correctly. 1595 Updated comments. 1596 (objc_maybe_printable_name): New. 1597 (objc_printable_name): Call objc_maybe_printable_name. If it 1598 returns NULL, call cxx_printable_name in Objective-C++. 1599 16002010-10-21 Iain Sandoe <iains@gcc.gnu.org> 1601 1602 Based on the CFString implementation in FSF apple/trunk branch. 1603 1604 * objc/objc-act.c (objc_build_string_object): Handle CFStrings. 1605 16062010-10-21 Nicola Pero <nicola.pero@meta-innovation.com> 1607 1608 * objc-act.c (get_objc_string_decl): Use a switch instead of a 1609 chain of ifs. Use gcc_unreachable instead of abort. 1610 (add_objc_string): Same change. 1611 (generate_protocol_list): Same change - twice. 1612 (synth_id_with_class_suffix): Same change. 1613 (build_keyword_selector): Same change - twice. 1614 (objc_build_message_expr): Same change. 1615 (objc_build_selector_expr): Same change. 1616 (check_methods): Same change - and added missing gcc_unreachable 1617 for default case. 1618 (check_methods_accessible): Same change - twice, and added missing 1619 gcc_unreachable for default case in one of them. 1620 (start_class): Same change - and added missing gcc_unreachable for 1621 default case. 1622 (continue_class): Same change. 1623 (objc_gen_property_data): Same change. 1624 (finish_class): Same change. 1625 (encode_type_qualifiers): Added missing gcc_unreachable. 1626 (encode_type): Small code tidy up to reduce duplicated code. Use 1627 gcc_unreachable instead of abort - twice. 1628 (encode_gnu_bitfield): Use a switch instead of a chain of ifs - 1629 twice. Added missing gcc_unreachable for default case - twice. 1630 (dump_interface): Use a switch instead of a chain of ifs. 1631 (handle_impent): Same change. 1632 16332010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1634 1635 * objc-act.h (objc_inherit_code): Removed. 1636 * objc-act.c (objc_inherit_code): Removed. 1637 (objc_set_method_type): Removed. 1638 (objc_build_method_signature): Added is_class_method argument. 1639 Use it instead of the global objc_inherit_code variable. 1640 (objc_add_method_declaration): Same change. 1641 (objc_start_method_definition): Same change. 1642 (objc_generate_cxx_ctor_or_dtor): Updated call to 1643 objc_start_method_definition. Do not call objc_set_method_type. 1644 (adjust_type_for_id_default): Mark as inline. 1645 (objc_synthesize_getter): Updated call to 1646 objc_start_method_definition. Do not set objc_inherit_code. 1647 (objc_synthesize_setter): Updated call to 1648 objc_start_method_definition. Do not set objc_inherit_code. 1649 16502010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1651 1652 Merge from 'apple/trunk' branch on FSF servers. Obvious updates 1653 to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to 1654 get it to compile in the current trunk. 1655 1656 2006-01-27 Fariborz Jahanian <fjahanian@apple.com> 1657 1658 Radar 4345837 1659 * objc/objc-act.c (hash_class_name_enter): New. 1660 (hash_class_name_lookup): New. 1661 (objc_declare_alias): Enter alias name into hash table. 1662 (objc_declare_class): Enter class name into hash table. 1663 (objc_is_class_name): Do a hash look up of class name. 1664 (hash_init): Initialize the two new hash tables. 1665 * objc-act.h: Added cls_name_hash_list and als_name_hash_list 1666 declarations, removed class_chain and alias_chain. 1667 16682010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1669 1670 * objc-lang.c (finish_file): Removed. 1671 * objc-act.c (objc_finish_file): Renamed to 1672 objc_write_global_declarations. Do not try to instantiate C++ 1673 templates when compiling Objective-C++ as this is now 1674 automatically done before this function is called. Do not check 1675 for syntax-only run or PCH generation as this is done by the 1676 callers. 1677 * objc-act.h (objc_finish_file): Removed. 1678 16792010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1680 1681 Implemented parsing @synthesize and @dynamic for 1682 Objective-C/Objective-C++. 1683 * objc-act.c (objc_add_synthesize_declaration): New. 1684 (objc_add_dynamic_declaration): New. 1685 16862010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1687 1688 * objc-act.c (lookup_and_install_protocols): Return NULL if passed 1689 error_mark_node. 1690 16912010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1692 1693 Merge from 'apple/trunk' branch on FSF servers. 1694 1695 2006-03-10 Fariborz Jahanian <fjahanian@apple.com> 1696 1697 Radar 4407151 1698 * objc/objc-act.c (objc_is_class_name): template parameter is not 1699 an objective class name. 1700 (objc_generate_cxx_cdtors): Check for the null 1701 objc_implementation_context. 1702 17032010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1704 1705 Merge from 'apple/trunk' branch on FSF servers. 1706 1707 2005-11-08 Fariborz Jahanian <fjahanian@apple.com> 1708 1709 Radar 4330422 1710 * objc/objc-act.c (objc_non_volatilized_type): New 1711 1712 2005-10-07 Fariborz Jahanian <fjahanian@apple.com> 1713 1714 Radar 4204796 1715 * objc-act.c (objc_build_volatilized_type): Build 'volatilzed' 1716 types with proper attribute set and correctly. 1717 (objc_volatilize_decl): Remove unneeded code. 1718 (objc_type_quals_match): Use the new attribute to check on 1719 'volatilzed' type. 1720 (hash_init): removed unneeded code. 1721 17222010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> 1723 1724 Merge from 'apple/trunk' branch on FSF servers. 1725 1726 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> 1727 1728 Radar 4133425 1729 * objc-act.c (objc_diagnose_private_ivar): New. 1730 17312010-10-17 Iain Sandoe <iains@gcc.gnu.org> 1732 1733 * objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and 1734 make its type 'objc_ivar_visibility_kind'. 1735 (objc_start_class_interface): Update to use visibility enum. 1736 (objc_start_class_implementation): Likewise. 1737 (objc_set_visibility): Update to use visibility enum, warn that 1738 @package is handle as per @public. 1739 (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE. 1740 * objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and 1741 make its type 'objc_ivar_visibility_kind'. 1742 17432010-10-14 Iain Sandoe <iains@gcc.gnu.org> 1744 1745 merge from FSF apple 'trunk' branch. 1746 2006 Fariborz Jahanian <fjahanian@apple.com> 1747 1748 Radars 4436866, 4505126, 4506903, 4517826 1749 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New. 1750 property_readonly, property_getter, property_setter, property_ivar, 1751 property_copies, in_objc_property_setter_name_context: New vars. 1752 (objc_set_property_attr): New. 1753 (objc_add_property_variable): New. 1754 (lookup_property_in_list): New. 1755 (lookup_property): New. 1756 (objc_build_getter_call): New. 1757 (objc_setter_func_call): New. 1758 (get_selector_from_reference): New. 1759 (objc_build_setter_call): New. 1760 (is_property): New. 1761 (build_property_reference): New. 1762 (objc_finish_message_expr): Detect readonly property and warn. 1763 (objc_build_property_ivar_name): New. 1764 (objc_build_property_setter_name): New. 1765 (objc_gen_one_property_datum): New. 1766 (objc_process_getter_setter): New. 1767 (objc_synthesize_getter): New. 1768 (objc_synthesize_setter): New. 1769 (objc_gen_property_data): New. 1770 (finish_class): Generate property data. 1771 (comp_proto_with_proto): Separated from ... 1772 (match_proto_with_proto): ... New. 1773 (objc_lookup_ivar): Handle properties. 1774 * objc-tree.def (PROPERTY_DECL): New tree code. 1775 * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size. 1776 (METHOD_PROPERTY_CONTEXT): New. 1777 (PROPERTY_NAME): New. 1778 (PROPERTY_GETTER_NAME): New. 1779 (PROPERTY_SETTER_NAME): New. 1780 (PROPERTY_IVAR_NAME): New. 1781 (PROPERTY_READONLY): New. 1782 (PROPERTY_COPIES): New. 1783 (TOTAL_CLASS_RAW_IVARS): New. 1784 (CLASS_PROPERTY_DECL): New. 1785 (IMPL_PROPERTY_DECL): New. 1786 * objc-lang.c (objc_init_ts): Update fields for property_decl. 1787 17882010-10-13 Richard Henderson <rth@redhat.com> 1789 1790 * objc-act.c (objc_eh_personality): Update call to 1791 build_personality_function. 1792 17932010-10-13 Iain Sandoe <iains@gcc.gnu.org> 1794 1795 merge from FSF apple 'trunk' branch. 1796 1797 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> 1798 Radar 3803157 (method attributes) 1799 * objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro. 1800 * objc/objc-act.c (objc_decl_method_attributes): New. 1801 (objc_add_method_declaration): Process method's attribute. 1802 (objc_start_method_definition): Ditto. 1803 (build_objc_method_call): Inject method attribute into 1804 built function type. 1805 (objc_method_decl): New. 1806 (objc_warn_deprecated)use): New. 1807 18082010-10-07 Andi Kleen <ak@linux.intel.com> 1809 1810 * Make-lang.in (cc1obj-dummy): Remove. 1811 (cc1obj-checksum): Change to run checksum over object files 1812 and options only. 1813 18142010-10-07 Nicola Pero <nicola.pero@meta-innovation.com> 1815 1816 PR objc/45925 1817 * objc-act.c (objc_finish_foreach_loop): Convert return value of 1818 countByEnumeratingWithState:objects:count: to long unsigned int. 1819 18202010-10-07 Iain Sandoe <iains@gcc.gnu.org> 1821 1822 * objc-act.c (build_objc_method_call): Replace calls to 1823 build_function_call () with the VEC equivalent. Construct parameter 1824 lists as VECs. 1825 18262010-10-07 Iain Sandoe <iains@gcc.gnu.org> 1827 1828 * objc-act.c (objc_build_message_expr): Call mark_exp_read () to 1829 signal that the receiver has been used. 1830 18312010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 1832 1833 * README: Obsolete file removed. 1834 18352010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 1836 1837 Implemented fast enumeration for Objective-C. 1838 * objc-act.c (build_fast_enumeration_state_template): New. 1839 (TAG_ENUMERATION_MUTATION): New. 1840 (TAG_FAST_ENUMERATION_STATE): New. 1841 (synth_module_prologue): Call build_fast_enumeration_state_template() and set up 1842 objc_enumeration_mutation_decl. 1843 (objc_create_temporary_var): Allow providing a name to temporary 1844 variables. 1845 (objc_build_exc_ptr): Updated calls to 1846 objc_create_temporary_var(). 1847 (next_sjlj_build_try_catch_finally): Same change. 1848 (objc_finish_foreach_loop): New. 1849 * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP, 1850 OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template, 1851 objc_enumeration_mutation_decl. 1852 1853 Merge from 'apple/trunk' branch on FSF servers. 1854 1855 2006-04-12 Fariborz Jahanian <fjahanian@apple.com> 1856 1857 Radar 4507230 1858 * objc-act.c (objc_type_valid_for_messaging): New routine to check 1859 for valid objc object types. 1860 (objc_finish_foreach_loop): Check for invalid objc objects in 1861 foreach header. 1862 18632010-10-05 Nicola Pero <nicola.pero@meta-innovation.com> 1864 1865 Merge from 'apple/trunk' branch on FSF servers. 1866 1867 2005-10-17 Fariborz Jahanian <fjahanian@apple.com> 1868 1869 Radar 4290840 1870 * objc-act.c (objc_start_method_definition): Check for 1871 error_mark_node for the selector name and make a quick exit. 1872 18732010-10-04 Andi Kleen <ak@linux.intel.com> 1874 1875 * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule. 1876 18772010-09-30 Iain Sandoe <iains@gcc.gnu.org> 1878 1879 merge from FSF 'apple/trunk' branch. 1880 2006-01-30 Fariborz Jahanian <fjahanian@apple.com> 1881 1882 Radar 4386773 1883 * objc/objc-act.c (objc_set_method_opt): New function. 1884 (objc_start_protocol, objc_finish_interface): Reset 1885 objc_method_optional_flag flag. 1886 (objc_add_method_declaration): Pass on the new 1887 flag to objc_add_method. 1888 (objc_add_method): Add optional methods to new chain in 1889 the protocol class. 1890 * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS) 1891 (CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol 1892 class's optional method chains. 1893 18942010-09-30 Nicola Pero <nicola.pero@meta-innovation.com> 1895 1896 Merge from 'apple/trunk' branch on FSF servers. 1897 1898 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 1899 1900 Radar 4278236 1901 * objc-act.c (objc_declare_class): Pick the right 1902 type tree. 1903 19042010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 1905 1906 Merge from 'apple/trunk' branch on FSF servers. 1907 1908 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 1909 1910 Radar 4281748 1911 * objc-act.c (objc_check_global_decl): New 1912 19132010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 1914 1915 * objc-act.c (objc_is_reserved_word): Removed. 1916 19172010-09-28 Iain Sandoe <iains@gcc.gnu.org> 1918 1919 * objc-act.c (objc_add_method_declaration): Handle and ignore 1920 attributes. 1921 (objc_start_method_definition): Likewise. 1922 (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor. 1923 (objc_build_keyword_decl): Handle and ignore attributes. 1924 19252010-09-28 Richard Henderson <rth@redhat.com> 1926 1927 * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info. 1928 19292010-09-28 Iain Sandoe <iains@gcc.gnu.org> 1930 1931 * objc-act.c (objc_start_class_interface): Handle and ignore attributes. 1932 (objc_start_category_interface): Likewise. 1933 (objc_start_protocol): Likewise. 1934 19352010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 1936 1937 Merge from 'apple/trunk' branch on FSF servers. 1938 1939 2005-08-23 Stuart Hastings <stuart@apple.com> 1940 Ziemowit Laski <zlaski@apple.com> 1941 1942 Radar 4209854 1943 * objc-act.c (objc_decay_parm_type): New function. 1944 (get_arg_type_list): Decay types for all named arguments. 1945 (objc_push_parm): Rebuild the PARM_DECL if its type has 1946 been decayed. 1947 19482010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 1949 1950 * objc-act.c (encode_type): Fixed encoding enums with the next 1951 runtime. 1952 19532010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 1954 1955 Merge from 'apple/trunk' branch on FSF servers. 1956 1957 2005-07-18 Ziemowit Laski <zlaski@apple.com> 1958 1959 Radar 4175534 1960 * objc-act.c (objc_compare_types): A new silent comparison 1961 mode (-4), differing from regular comparison (-3) in that 1962 'false' is returned instead of issuing warnings. 1963 19642010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 1965 1966 * objc-act.c (encode_type): Do not add 'r' with the next runtime. 1967 (encode_aggregate_within): Reorganized code to be more readable. 1968 (encode_aggregate_fields): Updated second argument to be 'bool' 1969 instead of 'int'. 1970 19712010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 1972 1973 PR objc/45763 1974 PR objc/25450 1975 PR objc/25464 1976 * objc-act.c: Improved comments for encoding functions. 1977 (encode_aggregate_within): For the GNU runtime, rewritten some 1978 obsfuscated code to clarify the various cases. 1979 (encode_aggregate): Function removed. 1980 (encode_array): Generate an error if asked to encode an incomplete 1981 array as part of generating instance variables. Else, when 1982 encoding an incomplete array inside a structure, encode it as an 1983 array of zero size. 1984 (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as 1985 '^c' instead of '*'. 1986 (encode_gnu_bitfield): Encode enumerated types exactly in the same 1987 type as integer types instead of using a hardcoded 'i'. If asked 1988 to encode a non-integer type as a bitfield, do not abort 1989 compilation immediately; instead generate an error, then skip the 1990 type. 1991 (encode_type): Use a 'switch' instead of a sequence of 'if's. 1992 Added a 'default' clause that gets executed if the type can not be 1993 matched, and that encodes it as '?' (unknown) and produces a 1994 warning. For the GNU runtime, encode enumerated types exactly in 1995 the same way as integer types instead of using a hardcoded 'i'. 1996 Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'. 1997 Encode C++ reference types as pointers. Call encode_vector to 1998 encode vectors. 1999 (encode_vector): New function. 2000 20012010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2002 2003 Merge from 'apple/trunk' branch on FSF servers. I modified the 2004 changes to be used only when compiling for the NeXT runtime. 2005 2006 2005-10-10 Fariborz Jahanian <fjahanian@apple.com> 2007 2008 Radar 4301047 2009 2010 * objc-act.c (encode_type): Remove the hack. 2011 2012 2005-07-20 Ziemowit Laski <zlaski@apple.com> 2013 2014 Radar 4136935 2015 * objc-act.c (pointee_is_readonly): New function. 2016 (encode_pointer, encode_aggregate_within, encode_type): 2017 Attempt to emulate GCC 3.3 when generating type encodings. 2018 20192010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2020 2021 Merge from 'apple/trunk' branch on FSF servers. 2022 2023 2005-12-15 Fariborz Jahanian <fjahanian@apple.com> 2024 2025 Radar 4229905 2026 * objc-act.c (objc_have_common_types): New function. 2027 2028 2005-06-22 Ziemowit Laski <zlaski@apple.com> 2029 2030 Radar 4154928 2031 * objc-act.c (objc_common_type): New function. 2032 20332010-09-27 Richard Guenther <rguenther@suse.de> 2034 2035 * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT. 2036 (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P. 2037 20382010-09-26 Nicola Pero <nicola.pero@meta-innovation.com> 2039 2040 * objc-act.c: Removed historical, obsolete comment at the top of 2041 the file. 2042 20432010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 2044 2045 PR objc/23710 2046 * objc-act.c (objc_start_method_definition): Do not abort upon a 2047 'method definition not in @implementation context' error. Return 2048 'false' instead. 2049 20502010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 2051 2052 PR objc/25965 2053 * objc-act.c (objc_get_interface_ivars): New function. 2054 (objc_collecting_ivars): New variable. 2055 (continue_class): Set and reset objc_collecting_ivars for context. 2056 20572010-09-15 Nicola Pero <nicola.pero@meta-innovation.com> 2058 2059 Merge from 'apple/trunk' branch on FSF servers. 2060 2061 2006-03-09 Fariborz Jahanian <fjahanian@apple.com> 2062 2063 Radar 4457381 2064 * objc/objc-act.c (objc_finish_message_expr): Look for message in 2065 @class's protocol list. 2066 2067 2006-02-07 Fariborz Jahanian <fjahanian@apple.com> 2068 2069 Radar 4219590 2070 * objc/objc-act.c (objc_start_method_definition): Initialize 2071 break/continue labels. 2072 2073 2005-08-22 Ziemowit Laski <zlaski@apple.com> 2074 2075 Radar 4174166 2076 * objc-act.c (objc_compare_types): Compare function 2077 pointers; indicate success if the right-hand side has 2078 a return type that is covariant, and the argument types 2079 contravariant, with those of the left side. 2080 2081 2005-08-22 Ziemowit Laski <zlaski@apple.com> 2082 2083 Radar 4216500 2084 * objc-act.c (objc_get_protocol_qualified_type): When looking 2085 at a typedef, retrieve the precise type it describes (rather 2086 than merely looking up a class by name). 2087 20882010-09-10 Nicola Pero <nicola.pero@meta-innovation.com> 2089 2090 * objc/objc-act.c (objc_begin_try_stmt): Generate an error if 2091 -fobjc-exceptions was not used. (objc_build_throw_stmt): Same 2092 change. 2093 20942010-07-15 Nathan Froyd <froydnj@codesourcery.com> 2095 2096 * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN. 2097 20982010-07-10 Iain Sandoe <iains@gcc.gnu.org> 2099 2100 PR objc/44140 2101 * objc-act.c: build_objc_string_decl() remove declaration. 2102 (finish_var_decl): Remove forcing of var output and marking 2103 as "Used". 2104 (init_def_list): Use integer_zero_node. 2105 (init_objc_symtab): Use integer_zero_node, make the short 2106 integer type specific on relevant nodes. 2107 (generate_objc_symtab_decl): Remove call to 2108 forward_declare_categories(). Use null_pointer_node where 2109 appropriate. 2110 (build_module_descriptor): Comment and mark this item as 2111 DECL_PRESERVE_P. 2112 (generate_static_references): Use gcc_unreachable instead of 2113 abort (). 2114 (diagnose_missing_method): New. 2115 (build_next_selector_translation_table): New. 2116 (build_gnu_selector_translation_table): New. 2117 (add_objc_string): Merge code from build_objc_string_decl... 2118 ... and delete build_objc_string_decl(). 2119 (generate_dispatch_table): Make integer types explicit. 2120 (generate_category): Pass implent and arrange for the data 2121 to be extracted within the routine. Do not start new vars, 2122 but finish the ones collcted during parsing. 2123 (generate_shared_structures): Likewise. 2124 (finish_objc): Reorder code so that we finish variables before 2125 referencing them. Save the global data before calling meta-data 2126 creation routines, and pass the current reference to the two 2127 main routines. Only call generate_objc_image_info () for the 2128 NeXT runtime. 2129 (generate_classref_translation_entry): Comment on and make this 2130 item DECL_PRESERVE_P. 2131 (handle_class_ref): Use varpool interfaces, comment on and make 2132 this item DECL_PRESERVE_P. 2133 (handle_impent): Likewise. 2134 (generate_objc_image_info): Only generate when the content is 2135 non-zero. Make integer types explict. 2136 21372010-07-03 Nathan Froyd <froydnj@codesourcery.com> 2138 2139 PR objc/24867 2140 * objc-act.c (build_sized_array_type): New function. 2141 (add_objc_string): Use it. 2142 (generate_protocol_list): Likewise. 2143 (generate_objc_image_info): Likewise. 2144 (add_field_decl): New function. 2145 (objc_build_struct): Use a VEC rather than building a TREE_LIST. 2146 (generate_struct_by_value_array): Use add_field_decl. 2147 (build_objc_symtab_template): Likewise. 2148 (build_module_descriptor): Likewise. 2149 (build_objc_exception_stuff): Likewise. 2150 (build_protocol_template): Likewise. 2151 (build_method_prototype_list_template): Likewise. 2152 (build_method_prototype_template): Likewise. 2153 (build_category_template): Likewise. 2154 (build_selector_template): Likewise. 2155 (build_class_template): Likewise. 2156 (build_super_template): Likewise. 2157 (build_ivar_template): Likewise. 2158 (build_ivar_list_template): Likewise. 2159 (build_method_list_template): Likewise. 2160 (build_method_template): Likewise. 2161 21622010-06-28 Steven Bosscher <steven@gcc.gnu.org> 2163 2164 * objc-act.c: Do not include except.h. 2165 21662010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com> 2167 2168 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC 2169 allocation. 2170 2171 * objc-act.c (objc_volatilize_decl): Likewise. 2172 (objc_build_string_object): Likewise. 2173 (hash_init): Likewise. 2174 (hash_enter): Likewise. 2175 (hash_add_attr): Likewise. 2176 (add_class): Likewise. 2177 (start_class): Likewise. 2178 21792010-06-05 Steven Bosscher <steven@gcc.gnu.org> 2180 2181 * objc-act.c: Update include path for moved files. 2182 * objc-lang.c: Likewise. 2183 * config-lang.in: Update paths in gtfiles for files in c-family/. 2184 21852010-06-01 Nathan Froyd <froydnj@codesourcery.com> 2186 2187 * objc-act.c (build_next_objc_exception_stuff): Give setjmp a 2188 varargs type instead of a zero-argument type. 2189 21902010-05-30 Nathan Froyd <froydnj@codesourcery.com> 2191 2192 * objc-act.c (synth_module_prologue): Use build_function_type_list 2193 instead of build_function_type. 2194 (build_module_initializer_routine): Likewise. 2195 (build_next_objc_exception_stuff): Likewise. 2196 (build_objc_exception_stuff): Likewise. 2197 21982010-05-27 Joseph Myers <joseph@codesourcery.com> 2199 2200 * objc-act.c: Include diagnostic-core.h instead of diagnostic.h. 2201 * Make-lang.in (objc/objc-act.o): Update dependencies. 2202 22032010-05-25 Steven Bosscher <steven@gcc.gnu.org> 2204 2205 * objc-act.h: Do not include gimple.h. 2206 * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h. 2207 Include gimple.h. Explain why except.h has to be included. 2208 * objc-lang.c: Do not include diagnostics.h. 2209 * Make-lang.in: Update dependencies. 2210 22112010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2212 2213 * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance 2214 mismatch code for VECs. 2215 22162010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2217 2218 * objc-act.c (objc_build_constructor): Take a VEC instead of a tree. 2219 Use build_constructor instead of build_constructor_from_list. 2220 (objc_build_string_object): Build a VEC argument for 2221 objc_build_constructor. 2222 (init_def_list): Likewise. 2223 (init_objc_symtab): Likewise. 2224 (init_module_descriptor): Likewise. 2225 (generate_static_references): Likewise. 2226 (build_selector_translation_table): Likewise. 2227 (build_descriptor_table_initializer): Likewise. 2228 (generate_descriptor_table): Likewise. 2229 (build_protocol_initializer): Likewise. 2230 (build_ivar_list_initializer): Likewise. 2231 (generate_ivars_list): Likewise. 2232 (build_dispatch_table_initializer): Likewise. 2233 (generate_dispatch_table): Likewise. 2234 (generate_protocol_list): Likewise. 2235 (build_category_initializer): Likewise. 2236 (build_shared_structure_initializer): Likewise. 2237 (generate_objc_image_info): Likewise. 2238 22392010-04-30 Iain Sandoe <iains@gcc.gnu.org> 2240 2241 PR objc++/32052 2242 * objc-act.c (encode_aggregate_within): Encode structure tags 2243 with template args for ObjC++. 2244 22452010-04-30 Steven Bosscher <steven@gcc.gnu.org> 2246 2247 * objc-act.c: Do not include varray.h. 2248 22492010-04-07 Jakub Jelinek <jakub@redhat.com> 2250 2251 PR c/18624 2252 * objc-act.c (finish_var_decl, objc_begin_catch_clause, 2253 really_start_method, get_super_receiver, handle_class_ref): Set 2254 DECL_READ_P in addition to TREE_USED. 2255 22562010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2257 2258 PR objc/35996 2259 * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for 2260 -fgnu-runtime and set flag_objc_gc to zero. 2261 22622010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2263 2264 PR objc++/23716 2265 * objc-act.c (build_module_initializer_routine): Make the argument 2266 to objc_start_function NULL_TREE when compiling ObjC++. 2267 22682010-02-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2269 Mike Stump <mikestump@comcast.net> 2270 2271 PR objc/43061 2272 * objc-act.c (finish_var_decl): Set the generated symbols as "used". 2273 22742009-12-17 Shujing Zhao <pearly.zhao@oracle.com> 2275 2276 * objc-act.c (objc_substitute_decl, build_ivar_reference, 2277 get_super_receiver): Update build_indirect_ref calls. 2278 22792009-11-28 Jakub Jelinek <jakub@redhat.com> 2280 2281 * objc-act.c (generate_shared_structures): Remove unused sc_spec and 2282 decl_specs variables. 2283 (objc_build_message_expr): Remove unused loc variable. 2284 (objc_finish_message_expr): Remove unused saved_rtype variable. 2285 (encode_field_decl): Remove unused type variable. 2286 2287 PR obj-c++/42156 2288 * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for 2289 type variants that don't have it initialized yet. 2290 22912009-09-14 Jan Hubicka <jh@suse.cz> 2292 2293 * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON. 2294 22952009-09-14 Richard Henderson <rth@redhat.com> 2296 2297 * objc-act.c (objc_init_exceptions): Don't call 2298 default_init_unwind_resume_libfunc. 2299 (objc_build_exc_ptr): Use __builtin_eh_pointer. 2300 23012009-09-13 Richard Guenther <rguenther@suse.de> 2302 Rafael Avila de Espindola <espindola@google.com> 2303 2304 * objc-act.c (objc_eh_runtime_type): Export. 2305 (objc_init_exceptions): Remove. Move warning code ... 2306 (objc_begin_try_stmt): ... here 2307 (objc_build_throw_stmt): ... and here. 2308 (objc_eh_personality_decl): New. 2309 (objc_eh_personality): New function. 2310 * objc-act.h (objc_eh_runtime_type): Declare. 2311 (objc_eh_personality): Likewise. 2312 * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define. 2313 (LANG_HOOKS_EH_PERSONALITY): Likewise. 2314 23152009-09-03 Diego Novillo <dnovillo@google.com> 2316 2317 * objc-lang.c (lang_hooks): Remove const qualifier. 2318 23192009-08-20 Richard Guenther <rguenther@suse.de> 2320 2321 * objc-act.c: Include c-lang.h 2322 * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency. 2323 23242009-07-17 Aldy Hernandez <aldyh@redhat.com> 2325 Manuel López-Ibáñez <manu@gcc.gnu.org> 2326 2327 PR 40435 2328 * objc-act.c: Add location argument to all calls to 2329 build_fold_addr_expr. 2330 23312009-07-14 Taras Glek <tglek@mozilla.com> 2332 Rafael Espindola <espindola@google.com> 2333 2334 * Make-lang.in (objc.install-plugin): New target for 2335 installing plugin headers. 2336 23372009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2338 2339 * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by 2340 EXPR_LOCATION. 2341 23422009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2343 2344 * objc-act.c: Replace %J by an explicit location. Update all 2345 calls. 2346 23472009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2348 2349 * objc-act.c: Replace %H by an explicit location. Update all 2350 calls. 2351 23522009-06-22 Steven Bosscher <steven@gcc.gnu.org> 2353 2354 PR objc/28050 2355 * objc-act.c (objc_build_message_args): Return if ARGS is the 2356 error_mark_node. 2357 23582009-06-19 Ian Lance Taylor <iant@google.com> 2359 2360 * objc-act.c (objc_in_struct, objc_struct_types): Remove. 2361 (objc_struct_info): New static variable. 2362 (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct 2363 and &objc_struct_types, to start_struct. 2364 (objc_finish_struct): Likewise for finish_struct. 2365 23662009-06-15 Ian Lance Taylor <iant@google.com> 2367 2368 * objc-act.c (objc_start_function): Don't set 2369 label_context_stack_se or label_context_stack_vm. 2370 23712009-06-12 Aldy Hernandez <aldyh@redhat.com> 2372 2373 * objc-act.c (finish_var_decl): Pass location to finish_decl. 2374 (objc_get_parm_info): Same. 2375 (get_super_receiver): Same. 2376 * objc-act.c (objc_build_component_ref): Pass location to 2377 build_compound_ref. 2378 (build_module_initializer_routine): Pass location to 2379 c_end_compound_stmt. 2380 (objc_generate_static_init_call): Pass location to build_stmt. 2381 (build_typed_selector_reference): New location argument. 2382 (build_selector_reference): Same. 2383 (objc_substitute_decl): Pass location to build_array_ref. 2384 (next_sjlj_build_try_catch_finally): Pass location to build_stmt. 2385 (objc_begin_catch_clause): Same. 2386 (objc_finish_try_stmt): Same. 2387 (objc_finish_catch_clause): Pass location to c_end_compound_stmt. 2388 (objc_build_throw_stmt): New argument. 2389 (generate_shared_structures): Pass location to build_c_cast. 2390 (objc_build_message_expr): Use local location. 2391 (objc_finish_message_expr): Use input_location. 2392 (build_objc_method_call): New argument. 2393 (objc_build_selector_expr): Same. 2394 (get_super_receiver): Pass location to build_c_cast, 2395 build_modify_expr, build_compound_expr. 2396 * objc-act.c: Add location to all calls to start_struct, build_decl, 2397 finish_struct. 2398 23992009-06-09 Ian Lance Taylor <iant@google.com> 2400 2401 * objc-act.c (objc_gimplify_expr): Change return type to int. 2402 * objc-act.h: Update declaration. 2403 24042009-06-08 Alexandre Oliva <aoliva@redhat.com> 2405 2406 * objc-act.c (objc_init): Skip print_struct_values during 2407 -fcompare-debug-second. 2408 24092009-06-03 Ian Lance Taylor <iant@google.com> 2410 2411 * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and 2412 $(SYSTEM_H). 2413 24142009-05-27 Ian Lance Taylor <iant@google.com> 2415 2416 * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to 2417 $(LINKER). 2418 (cc1obj$(exeext)): Likewise. 2419 24202009-05-26 Ian Lance Taylor <iant@google.com> 2421 2422 * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER). 2423 (cc1obj$(exeext)): Likewise. 2424 24252009-05-20 Ian Lance Taylor <iant@google.com> 2426 2427 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather 2428 than NULL_TREE to build_special_member_call. 2429 24302009-05-10 Ian Lance Taylor <iant@google.com> 2431 2432 * objc-act.c (objc_building_struct): New static variable. 2433 (objc_in_struct, objc_struct_types): New static variables. 2434 (objc_start_struct, objc_finish_struct): New static functions. 2435 (generate_struct_by_value_array): Call objc_start_struct instead 2436 of start_struct, and call objc_finish_struct instead of 2437 finish_struct. 2438 (objc_build_struct, build_objc_symtab_template): Likewise. 2439 (build_module_descriptor): Likewise. 2440 (build_next_objc_exception_stuff): Likewise. 2441 (build_protocol_template): Likewise. 2442 (build_method_prototype_list_template): Likewise. 2443 (build_method_prototype_template): Likewise. 2444 (build_category_template, build_selector_template): Likewise. 2445 (build_class_template, build_super_template): Likewise. 2446 (build_ivar_template, build_ivar_list_template): Likewise. 2447 (build_method_list_template): Likewise. 2448 (build_method_template): Likewise. 2449 24502009-05-10 Joseph Myers <joseph@codesourcery.com> 2451 2452 * objc-act.c: Include intl.h. 2453 (objc_lookup_protocol): Use complete sentences for diagnostics 2454 with %qE for identifiers and translating results of 2455 gen_type_name_0 to locale character set. 2456 (objc_check_decl, check_protocol_recursively, 2457 lookup_and_install_protocols, objc_build_string_object, 2458 objc_get_class_reference, objc_declare_alias, objc_declare_class, 2459 objc_get_class_ivars, error_with_ivar, check_duplicates, 2460 objc_finish_message_expr, objc_build_protocol_expr, 2461 objc_build_selector_expr, build_ivar_reference, objc_add_method, 2462 add_category, add_instance_variable, objc_is_public, 2463 check_methods, check_methods_accessible, check_protocol, 2464 start_class, finish_class, start_protocol, really_start_method, 2465 get_super_receiver, objc_lookup_ivar): Use %E and %qE for 2466 identifiers in diagnostics. Translate generated text to locale 2467 character set as needed. 2468 (check_protocol, check_protocols): Change name parameter to type 2469 tree. 2470 (lang_report_error_function): Remove. 2471 24722009-04-27 Ian Lance Taylor <iant@google.com> 2473 2474 * objc-act.c (objc_gimplify_expr): Add casts to enum type. 2475 24762009-04-24 Ian Lance Taylor <iant@google.com> 2477 2478 * objc-act.c (get_super_receiver): Update calls to 2479 build_modify_expr to pass new argument. 2480 24812009-04-21 Taras Glek <tglek@mozilla.com> 2482 2483 * objc-act.c: Update GTY annotations to new syntax 2484 * objc-act.h: Likewise 2485 24862009-04-21 Joseph Myers <joseph@codesourcery.com> 2487 2488 * ChangeLog: Add copyright and license notices. 2489 24902009-04-20 Ian Lance Taylor <iant@google.com> 2491 2492 * objc-act.c (objc_rewrite_function_call): Change parameter from 2493 params to first_param. Change all callers. 2494 24952009-03-30 Dominique d'Humieres <dominiq@lps.ens.fr> 2496 2497 PR bootstrap/39583 2498 * objc-act.c (in_late_binary_op): Define for Objective-C++. 2499 25002009-03-29 Joseph Myers <joseph@codesourcery.com> 2501 2502 PR c/456 2503 PR c/5675 2504 PR c/19976 2505 PR c/29116 2506 PR c/31871 2507 PR c/35198 2508 * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op. 2509 25102008-12-05 Sebastian Pop <sebastian.pop@amd.com> 2511 2512 PR bootstrap/38262 2513 * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS, 2514 remove GMPLIBS. 2515 25162008-10-06 Aldy Hernandez <aldyh@redhat.com> 2517 2518 * objc-act.c (objc_build_string_object): Pass location to 2519 build_unary_op. 2520 (init_def_list): Same. 2521 (init_objc_symtab): Same. 2522 (init_module_descriptor): Same. 2523 (build_module_initializer_routine): Same. 2524 (generate_static_references): Same. 2525 (build_typed_selector_reference): Same. 2526 (add_objc_string): Same. 2527 (objc_substitute_decl): Same. 2528 (objc_build_ivar_assignment): Same. 2529 (objc_build_global_assignment): Same. 2530 (objc_build_strong_cast_assignment): Same. 2531 (generate_protocols): Same. 2532 (build_protocol_initializer): Same. 2533 (build_dispatch_table_initializer): Same. 2534 (generate_protocol_list): Same. 2535 (build_category_initializer): Same. 2536 (build_shared_structure_initializer): Same. 2537 (generate_shared_structures): Same. 2538 (objc_build_protocol_expr): Same. 2539 (build_ivar_reference): Same. 2540 (get_super_receiver): Same. 2541 25422008-09-23 Aldy Hernandez <aldyh@redhat.com> 2543 2544 * objc-act.c (next_sjlj_build_enter_and_setjmp): Call 2545 c_common_truthvalue_conversion with location. 2546 (next_sjlj_build_catch_list): Same. 2547 (next_sjlj_build_try_catch_finally): Same. 2548 25492008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com> 2550 2551 PR objc/37460 2552 * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define. 2553 * objc-act.h (objc_get_callee_fndecl): Remove prototype. 2554 * objc-act.c (objc_get_callee_fndecl): Kill. 2555 25562008-09-17 Jan Hubicka <jh@suse.cz> 2557 2558 PR c++/18071 2559 * objc/objc-act.c (objc_finish_method_definition): Do not set 2560 DECL_INLINE. 2561 25622008-09-01 Aldy Hernandez <aldyh@redhat.com> 2563 2564 * objc-act.c (build_typed_selector_reference): Pass input_location to 2565 build_unary_op calls. 2566 (build_selector_reference): Same, but to build_array_ref. 2567 (objc_substitute_decl): Same. 2568 (build_ivar_reference): Same, but to build_indirect_ref. 2569 (get_super_receiver): Same. 2570 25712008-07-28 Richard Guenther <rguenther@suse.de> 2572 2573 Merge from gimple-tuples-branch. 2574 2575 2008-07-18 Aldy Hernandez <aldyh@redhat.com> 2576 2577 * Make-lang.in (objc-lang.o): Depend on GIMPLE_H. 2578 (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H. 2579 * objc-act.h: Include gimple.h instead of tree-gimple.h. 2580 * ipa-reference.c: Same. 2581 2582 2007-11-10 Aldy Hernandez <aldyh@redhat.com> 2583 2584 * objc-act.c (objc_gimplify_expr): Change pre and post to sequences. 2585 * objc-act.h (objc_gimplify_expr): Change prototype accordingly. 2586 25872008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2588 2589 * objc-act.c: Fix comment typos. 2590 25912008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2592 2593 * objc-act.c (objc_start_class_interface, 2594 objc_start_category_interface, objc_start_class_implementation, 2595 objc_start_category_implementation, objc_build_struct, 2596 generate_static_references, build_private_template, 2597 lookup_category, objc_add_method, add_category, 2598 add_instance_variable, objc_is_public, conforms_to_protocol, 2599 start_class, continue_class, finish_class): Avoid C++ keywords. 2600 26012008-07-14 Jason Merrill <jason@redhat.com> 2602 2603 PR objc++/36723 2604 * objc-act.c (objc_build_constructor): Update C++ tweak. 2605 26062007-07-14 Rafael Ávila de Espíndola <espindola@google.com> 2607 2608 * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead 2609 of DECL_IN_SYSTEM_HEADER. 2610 26112008-07-11 Ian Lance Taylor <iant@google.com> 2612 2613 * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS, 2614 etc., not just when OBJCPLUS is defined. 2615 26162008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2617 2618 * objc-act.c (setup_string_decl, objc_build_string_object, 2619 hash_interface, eq_interface, objc_begin_try_stmt, 2620 encode_method_prototype, build_ivar_list_initializer, 2621 objc_build_encode_expr): Fix for -Wc++-compat. 2622 26232008-05-12 Tomas Bily <tbily@suse.cz> 2624 2625 * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr): 2626 Use CONVERT_EXPR_P. 2627 26282008-04-23 Paolo Bonzini <bonzini@gnu.org> 2629 2630 * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT. 2631 26322008-04-03 Tom Tromey <tromey@redhat.com> 2633 2634 * Make-lang.in (objc_OBJS): New variable. 2635 26362008-03-27 Tom Tromey <tromey@redhat.com> 2637 2638 * Make-lang.in: Revert automatic dependency patch. 2639 26402008-03-27 Douglas Gregor <doug.gregor@gmail.com> 2641 2642 PR obj-c++/35704 2643 * objc-act.c (objc_build_component_ref): Fix call to 2644 finish_class_member_access_expr. 2645 (objc_generate_cxx_ctor_or_dtor): Fix call to 2646 build_special_member_call. 2647 26482008-03-25 Andrew Pinski <pinskia@gmail.com> 2649 2650 PR objc/29197 2651 * objc-act.c (encode_type): Handle when type is error_mark_node. 2652 (objc_push_parm): Handle when the type of parm is error_mark_node. 2653 26542008-03-25 Tom Tromey <tromey@redhat.com> 2655 2656 * Make-lang.in (objc_OBJS): New variable. 2657 (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove. 2658 26592008-03-21 Andreas Tobler <a.tobler@schweiz.org> 2660 2661 PR bootstrap/35660 2662 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to 2663 MAYBE_CLASS_TYPE_P. 2664 (objc_generate_cxx_cdtors): Likewise. 2665 (add_instance_variable): Likewise. 2666 26672008-02-26 Tom Tromey <tromey@redhat.com> 2668 2669 * objc-act.c (objc_init): Remove old location code. 2670 26712008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2672 2673 PR other/35107 2674 * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS). 2675 26762007-07-30 Nick Clifton <nickc@redhat.com> 2677 2678 * Make-lang.in: Change copyright header to refer to version 3 of 2679 the GNU General Public License and to point readers at the 2680 COPYING3 file and the FSF's license web page. 2681 * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h, 2682 config-lang.in, objc-lang.c: Likewise. 2683 26842007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2685 2686 * objc-act.c (objc_get_callee_fndecl): Constify. 2687 * objc-act.h (objc_get_callee_fndecl): Likewise. 2688 26892007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2690 2691 * objc-act.c (volatilized_hash, volatilized_eq, string_hash, 2692 string_eq): Constify. 2693 26942007-04-04 Stuart Hastings <stuart@apple.com> 2695 2696 PR 31281 2697 * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl. 2698 26992007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 2700 2701 * Make-lang.in: Add dummy lang.install-pdf target. 2702 27032007-02-18 Kazu Hirata <kazu@codesourcery.com> 2704 2705 * objc/objc-act.c: Fix comment typos. 2706 27072007-02-15 Sandra Loosemore <sandra@codesourcery.com> 2708 Brooks Moses <brooks.moses@codesourcery.com> 2709 Lee Millward <lee.millward@codesourcery.com> 2710 2711 * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors. 2712 (objc_get_callee_fndecl): Likewise. 2713 27142007-01-23 Andrew Pinski <pinskia@gmail.com> 2715 2716 PR objc/27438 2717 * objc-act.c (objc_add_static_instance): Mark the decl as 2718 TREE_USED. 2719 27202007-01-20 Andrew Pinski <pinskia@gmail.com> 2721 2722 PR objc/30479 2723 * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead 2724 of htab_hash_pointer. 2725 (lookup_interface): Likewise. 2726 (add_class): Likewise. 2727 27282007-01-02 Douglas Gregor <doug.gregor@gmail.com> 2729 2730 * objc-act.c (objc_build_volatilized_type): Keep track of 2731 canonical types. 2732 (objc_get_protocol_qualified_type): Ditto. 2733 27342006-11-02 Andreas Tobler <a.tobler@schweiz.org> 2735 2736 * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and 2737 content where we called cp_finish_file. 2738 27392006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2740 2741 * objc-act.c (synth_module_prologue): Replace calls to 2742 builtin_function with add_builtin_function. 2743 (build_next_objc_exception_stuff): Replace calls to 2744 builtin_function with add_builtin_function. 2745 (build_objc_exception_stuff): Replace calls to 2746 builtin_function with add_builtin_function. 2747 27482006-10-10 Brooks Moses <bmoses@stanford.edu> 2749 2750 * Make-lang.in: Added empty "objc.pdf" target. 2751 27522006-09-26 Andrew Pinski <pinskia@physics.uc.edu> 2753 2754 PR objc/29195 2755 * objc-act.c (objc_push_parm): If we change the type of the 2756 decl, relayout the decl. 2757 27582006-09-19 Eric Christopher <echristo@apple.com> 2759 2760 * objc-act.c (JBLEN): Rename to OBJC_JBLEN, 2761 default to something innocuous. 2762 (build_next_objc_exception_stuff): Rename JBLEN. 2763 27642006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2765 2766 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. 2767 27682006-07-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2769 2770 PR obj-c++/28434 2771 * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes. 2772 27732006-06-06 Mike Stump <mrs@apple.com> 2774 2775 * objc-act.c: Remove prototype for objc_build_volatilized_type. 2776 27772006-05-24 Mike Stump <mrs@apple.com> 2778 2779 * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN. 2780 27812006-05-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2782 2783 PR objc/27240 2784 * objc-act.c (objc_is_public): Return early on invalid type. 2785 27862006-03-02 Fariborz Jahanian <fjahanian@apple.com> 2787 2788 * objc-act.c (init_module_descriptor): Remove file name from 2789 module descriptor. 2790 (gen_type_name_0): Fix ICE when issuing warning. 2791 27922006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2793 * Make-lang.in (OBJC): Remove 2794 (OBJECTIVE-C): Remove 2795 (objective-c): Remove 2796 (.PHONY): Remove objective-c and ObjC 2797 27982005-12-14 Andrew Pinski <pinskia@physics.uc.edu> 2799 2800 PR objc/25360 2801 * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed 2802 by the inner type. 2803 28042005-12-12 Andrew Pinski <pinskia@physics.uc.edu> 2805 2806 PR objc/25348 2807 * objc-act.c (encode_array): Handle arrays to zero sized types. 2808 28092005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2810 2811 * Make-lang.in (objc.all.build, objc.install-normal): Remove. 2812 28132005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2814 2815 * Make-lang.in: Remove all dependencies on s-gtype. 2816 28172005-12-02 Richard Guenther <rguenther@suse.de> 2818 2819 * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp 2820 next_sjlj_build_exc_extract, next_sjlj_build_catch_list, 2821 next_sjlj_build_try_catch_finally, objc_begin_catch_clause, 2822 build_objc_method_call, objc_rewrite_function_call): Use buildN 2823 instead of build. 2824 28252005-10-20 Geoffrey Keating <geoffk@apple.com> 2826 2827 * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW 2828 on objc_msgSend and like builtin functions. 2829 28302005-10-17 Andreas Krebbel <krebbel1@de.ibm.com> 2831 2832 * objc-act.c (objc_build_component_ref): Adjust call to 2833 finish_class_member_access_expr due to a changed prototype. 2834 28352005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 2836 2837 PR objc/23306 2838 * objc-act.c (generate_strings): Remove and move code to 2839 finish decl to ... 2840 (add_objc_string): here when creating a new string decl. 2841 (finish_objc): Don't call generate_strings. 2842 28432005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 2844 2845 PR objc/23381 2846 * objc-act.c (next_sjlj_build_try_catch_finally): Set 2847 TREE_SIDE_EFFECTS on catch_seq after building it. 2848 28492005-08-09 Andrew Pinski <pinskia@physics.uc.edu> 2850 2851 part of PR objc/21992 2852 * objc-act.c (handle_class_ref): The ref decl is always referenced. 2853 28542005-07-20 Giovanni Bajo <giovannibajo@libero.it> 2855 2856 Make CONSTRUCTOR use VEC to store initializers. 2857 * objc-act.c (objc_build_constructor): Use build_constructor_from_list 2858 instead of build_constructor. 2859 28602005-07-08 Daniel Berlin <dberlin@dberlin.org> 2861 2862 * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is 2863 removed. 2864 * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common. 2865 (KEYWORD_KEY_NAME): Use decl_minimal. 2866 (METHOD_SEL_NAME): Ditto.. 2867 (METHOD_SEL_ARGS): Use decl_non_common. 2868 (METHOD_ADD_ARGS): Ditto. 2869 (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common. 2870 (METHOD_DEFINITION): Ditto. 2871 (METHOD_ENCODING): Ditto. 2872 * objc-lang.c: (objc_init_ts): New function. 2873 28742005-07-07 Ziemowit Laski <zlaski@apple.com> 2875 2876 * objc-act.c (objc_build_struct): Pass in an actual @interface 2877 instead of its name, and annotate the struct created (and all 2878 existing variants thereof) with the @interface. 2879 (objc_compare_types): Treat forward-declared ObjC classes 2880 as stand-alone (root) classes for purposes of type comparisons. 2881 (build_private_template): Move some code to objc_build_struct(). 2882 28832005-07-07 Ziemowit Laski <zlaski@apple.com> 2884 2885 PR objc/22274 2886 * objc-act.c (objc_build_string_object): For GNU-style constants, 2887 use the @interface type rather than the built-in type. 2888 28892005-07-03 Kazu Hirata <kazu@codesourcery.com> 2890 2891 * Make-lang.in (cc1plus-checksum.c): Use 2892 build/genchecksum$(build_exeext), not build/genchecksum$(exeext). 2893 28942005-07-02 Joseph S. Myers <joseph@codesourcery.com> 2895 2896 * objc-act.c: Use %q to quote in diagnostics. 2897 28982005-07-02 Joseph S. Myers <joseph@codesourcery.com> 2899 2900 * objc-act.c: Use '+' flag instead of %J. Use 'q' flag for 2901 quoting. 2902 29032005-06-30 Ziemowit Laski <zlaski@apple.com> 2904 2905 * objc-act.c (objc_build_volatilized_type): New function. 2906 (objc_volatilize_decl): Call objc_build_volatilized_type() 2907 instead of build_qualified_type(). 2908 29092005-06-29 Ziemowit Laski <zlaski@apple.com> 2910 2911 * objc-act.c (objc_build_internal_const_str_type): New function. 2912 (check_string_class_template): Use objc_get_class_ivars() instead 2913 of TYPE_FIELDS() to retrieve ivar list. 2914 (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather 2915 than the field itself. 2916 (objc_build_string_object): Synthesize a "__builtin_ObjCString" 2917 type and use it to lay out compile-time string objects. 2918 * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type): 2919 New. 2920 29212005-06-28 Paul Brook <paul@codesourcery.com> 2922 2923 * objc-act.c (objc_init_exceptions): Call 2924 default_init_unwind_resume_libfunc. 2925 29262005-06-27 Ziemowit Laski <zlaski@apple.com> 2927 2928 * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO 2929 portion of TYPE_LANG_SPECIFIC info for all variants of 2930 a class before calling finish_struct(), and restore 2931 same TYPE_OBJC_INFO afterwards. 2932 29332005-06-25 Kelley Cook <kcook@gcc.gnu.org> 2934 2935 * all files: Update FSF address in copyright headers. 2936 29372005-06-15 Joseph S. Myers <joseph@codesourcery.com> 2938 2939 * objc-act.c (my_build_string_pointer): New. 2940 (objc_get_class_reference, get_super_receiver): Call 2941 my_build_string_pointer instead of my_build_string when building 2942 function arguments. 2943 29442005-05-25 Mike Stump <mrs@mrs.kithrup.com> 2945 2946 * objc-act.c (volatilized_hash): Avoid warnings on 64-bit 2947 machines. 2948 29492005-05-24 Ziemowit Laski <zlaski@apple.com> 2950 2951 * objc-act.c (objc_build_struct): New function. 2952 (objc_derived_from_p): Likewise. 2953 (objc_build_component_ref): Likewise. 2954 (objc_copy_binfo): Likewise. 2955 (objc_xref_basetypes): Likewise. 2956 (objc_lookup_protocol): Likewise. 2957 (objc_compare_protocols): Likewise. 2958 (objc_volatilize_decl): Likewise. 2959 (encode_aggregate_fields): Likewise. 2960 (volatilized_hash): Likewise. 2961 (volatilized_eq): Likewise. 2962 (objc_compare_types): Likewise. 2963 (objc_type_quals_match): Likewise. 2964 (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro 2965 of same name. 2966 (get_class_ivars): Add second parameter indicating if entire 2967 hierarchy is desired. 2968 (struct volatilized_type): New type. 2969 (volatilized_htab): New hash table. 2970 (objc_types_compatible_p, objc_comptypes): Remove functions. 2971 (synth_module_prologue): Do not initialize 'unused_list'. 2972 (objc_get_class_reference): Fix ObjC++ impedance mismatches. 2973 (objc_declare_alias): Implement as a typedef. 2974 (objc_substitute_decl, objc_gimplify_expr): Reformat. 2975 (objc_get_class_ivars): Adjust call to get_class_ivars(). 2976 (next_sjlj_build_enter_and_setjmp, synth_forward_declarations, 2977 build_ivar_reference, get_super_receiver): Call 2978 objc_build_component_ref() instead of build_component_ref(). 2979 (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of 2980 objc_comptypes(). 2981 (build_private_template): Call objc_build_struct() instead of 2982 start_struct() and finish_struct(). 2983 (hash_init): Initialize volatilized_htab. 2984 (objc_is_public): Adjust calls to objc_get_ivars(); adjust 2985 ObjC++ impedance mismatches. 2986 (encode_aggregate_within): Streamline by calling 2987 encode_aggregate_fields(). 2988 * objc-act.h (objc_types_compatible_p): Remove prototype. 2989 (OCTI_UNUSED_LIST, unused_list): Remove slot. 2990 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove. 2991 29922005-05-18 Geoffrey Keating <geoffk@apple.com> 2993 2994 * Make-lang.in (cc1obj-dummy): New. 2995 (cc1obj-checksum.c): New. 2996 (cc1obj-checksum.o): New. 2997 (cc1obj): Add cc1obj-checksum.o. 2998 29992005-05-18 Mike Stump <mrs@apple.com> 3000 3001 PR objc/21641 3002 * objc-act.c (struct interface_tuple): Mark it up for GC. 3003 (interface_htab): It is really a struct interface_tuple. 3004 30052005-05-17 Ziemowit Laski <zlaski@apple.com> 3006 Mike Stump <mrs@apple.com> 3007 3008 Yet more Objective-C++... 3009 3010 * objc-act.c (objc_finish_try_stmt): Add return value. 3011 (objc_build_synchronized): Likewise. 3012 3013 * objc-act.c (objc_is_gcable_type): Add. 3014 (objc_substitute_decl): Add. 3015 (objc_build_ivar_assignment): Add. 3016 (objc_build_global_assignment): Add. 3017 (objc_build_strong_cast_assignment): Add. 3018 (objc_is_ivar_reference_p): Add. 3019 (objc_is_global_reference_p): Add. 3020 (objc_generate_write_barrier): Add. 3021 (objc_rewrite_function_call): Add. 3022 (objc_gimplify_expr): Add Objective-C++ support. 3023 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 3024 (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add. 3025 (INIT_TYPE_OBJC_INFO): Add Objective-C++ support. 3026 (DUP_TYPE_OBJC_INFO): Likewise. 3027 (struct imp_entry): Add field has_cxx_cdtors. 3028 (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL, 3029 OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL, 3030 OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL, 3031 OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL, 3032 OCTI_ASSIGN_STRONGCAST_DECL. 3033 (umsg_fast_decl): Add. 3034 (objc_assign_ivar_decl): Add. 3035 (objc_assign_ivar_fast_decl): Add. 3036 (objc_assign_global_decl): Add. 3037 (objc_assign_strong_cast_decl): Add. 3038 (objc_method_list_ptr): Add. 3039 (objc_method_proto_list_ptr): Add. 3040 (objc_ivar_list_ptr): Add. 3041 3042 * objc-act.c (should_call_super_dealloc): Add. 3043 (OBJC_VERSION): Bump to 6. 3044 (objc_is_gcable_type): Add. 3045 (objc_substitute_decl): Add. 3046 (objc_build_ivar_assignment): Add. 3047 (objc_build_global_assignment): Add. 3048 (objc_build_strong_cast_assignment): Add. 3049 (objc_is_gcable_p): Add. 3050 (objc_is_ivar_reference_p): Add. 3051 (objc_is_global_reference_p): Add. 3052 (generate_shared_structures): Add flags parameter. 3053 (objc_generate_cxx_ctor_or_dtor): Add. 3054 (objc_generate_cxx_cdtors): Add. 3055 (add_class): Add name parameter. 3056 (objc_types_share_size_and_alignment): Add. 3057 (comp_proto_with_proto): Add strict parameter. 3058 (CLS_HAS_CXX_STRUCTORS): Add. 3059 (TAG_ASSIGNIVAR): Add. 3060 (TAG_ASSIGNGLOBAL): Add. 3061 (TAG_ASSIGNSTRONGCAST): Add. 3062 (TAG_MSGSEND_FAST): Add. 3063 (TAG_ASSIGNIVAR_FAST): Add. 3064 (TAG_CXX_CONSTRUCT): Add. 3065 (TAG_CXX_DESTRUCT): Add. 3066 (OBJC_LOOKUP_CLASS): Add. 3067 (OBJC_LOOKUP_NO_SUPER): Add. 3068 (objc_finish_file): Add pch support. 3069 (objc_finish_implementation): Add Objective-C++ support. 3070 (synth_module_prologue): Likewise. 3071 (synth_module_prologue): Add fast dispatching. 3072 (objc_get_class_reference): Add Objective-C++ support. 3073 (objc_generate_write_barrier): Likewise. 3074 (next_sjlj_build_enter_and_setjmp): Likewise. 3075 (objc_begin_try_stmt): Likewise. 3076 (build_next_objc_exception_stuff): Add fast ivar support. 3077 (build_private_template): Mark the record as used so debug 3078 information is generated. 3079 (build_protocol_template): Add Objective-C++ support. 3080 (objc_method_parm_type) Likewise. 3081 (objc_generate_cxx_ctor_or_dtor): Likewise. 3082 (objc_generate_cxx_cdtors): Likewise. 3083 (build_protocol_initializer): Likewise. 3084 (build_category_template): Likewise. 3085 (build_class_template): Likewise. 3086 (build_method_list_template): Likewise. 3087 (build_category_initializer): Likewise. 3088 (build_shared_structure_initializer): Likewise. 3089 (objc_finish_message_expr): Likewise. 3090 (build_objc_method_call): Add fast dispatch support. 3091 (lookup_method_static): Add support to end search at superclasses. 3092 (add_method_to_hash_list): Add strict parameter to 3093 comp_proto_with_proto. 3094 (objc_add_method): Likewise. 3095 (objc_add_method): Also set the interface_value. 3096 (add_instance_variable): Add Objective-C++ support. 3097 (objc_is_public): Likewise. 3098 (start_class): Likewise. 3099 (continue_class): Likewise. 3100 (encode_aggregate_within): Likewise. 3101 (start_method_def): Likewise. 3102 (objc_start_function): Clear current_function_returns_value 3103 and current_function_returns_null. 3104 (really_start_method): Add Objective-C++ support. 3105 (objc_finish_method_definition): Add warning for missing 3106 [super dealloc]. 3107 (finish_objc): Add Objective-C++ support. 3108 (generate_objc_image_info): Likewise. 3109 (objc_lookup_ivar): Likewise. 3110 * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise. 3111 (INIT_TYPE_OBJC_INFO): Likewise. 3112 (DUP_TYPE_OBJC_INFO): Likewise. 3113 31142005-04-23 DJ Delorie <dj@redhat.com> 3115 3116 * objc-act.c: Adjust warning() callers. 3117 31182005-04-21 Roger Sayle <roger@eyesopen.com> 3119 3120 * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing 3121 this field of an objc method decl. 3122 * objc-act.c (build_method_decl): Take an additional "ellipsis" 3123 argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate. 3124 (objc_build_method_signature): Accept additional "ellipsis" 3125 argument and pass it to build_method_decl. 3126 (get_arg_type_list, start_method_def, gen_method_decl): Use 3127 the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the 3128 TREE_OVERFLOW field of a TREE_LIST node. 3129 31302005-04-20 Joseph S. Myers <joseph@codesourcery.com> 3131 3132 PR c/12913 3133 * objc-act.c (objc_start_function): Create stack level for context 3134 of identifiers with variably modified type. 3135 31362005-03-30 Joseph S. Myers <joseph@codesourcery.com> 3137 3138 PR c/772 3139 PR c/17913 3140 * objc-act.c (objc_start_function): Push context on 3141 label_context_stack. 3142 31432005-03-23 Joseph S. Myers <joseph@codesourcery.com> 3144 3145 * objc-act.c (next_sjlj_build_enter_and_setjmp, 3146 next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally): 3147 Call c_common_truthvalue_conversion. 3148 31492005-02-25 Joseph S. Myers <joseph@codesourcery.com> 3150 3151 * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o, 3152 objc/objc-parse.c, objc/objc-parse.y): Remove 3153 (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean, 3154 objc.distclean, objc.maintainer-clean): Update for new parser. 3155 * config-lang.in (gtfiles): Update for new parser. 3156 31572005-01-29 Kazu Hirata <kazu@cs.umass.edu> 3158 3159 * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update 3160 copyright. 3161 31622005-01-27 Matt Austern <austern@apple.com> 3163 3164 * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before 3165 calling instantiate_pending_templates. 3166 31672005-01-26 Alexander Malmberg <alexander@malmberg.org> 3168 3169 PR objc/18862 3170 * objc-act.c (build_selector_translation_table): Use 3171 input_location in the diagnostic for the GNU runtime or if 3172 TREE_PURPOSE (chain) is NULL. 3173 31742005-01-25 Alexander Malmberg <alexander@malmberg.org> 3175 3176 PR objc/18408 3177 * objc-act.c (objc_types_compatible_p): New function. 3178 * objc-act.h (objc_types_compatible_p): Declare. 3179 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define. 3180 31812005-01-16 Ziemowit Laski <zlaski@apple.com> 3182 3183 * objc-act.c (objc_push_parm): Call c_type_promotes_to() 3184 via a lang-hook. 3185 31862005-01-15 Ziemowit Laski <zlaski@apple.com> 3187 3188 PR objc/19321 3189 * objc-act.c (get_arg_type_list): Decay function arguments into 3190 pointers. 3191 (objc_push_parm): Likewise; bring PARM_DECL construction closer 3192 in line with what the C front-end does. 3193 (objc_get_parm_info): Call pushdecl() and finish_decl() on 3194 each PARM_DECL, like the C front-end does. 3195 (start_method_def): Remove redundant ARRAY_TYPE decay. 3196 (objc_start_function): Bring closer in line with what the 3197 C front-end does for functions. 3198 31992005-01-14 Mike Stump <mrs@apple.com> 3200 3201 * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so 3202 that -fobjc-exceptions is accepted. 3203 32042004-12-30 Ziemowit Laski <zlaski@apple.com> 3205 3206 PR objc/18971 3207 * objc-act.c (get_arg_type_list, start_method_def): Decay 3208 array arguments into pointers. 3209 (gen_type_name_0): Learn to pretty-print array types. 3210 32112004-12-15 Ziemowit Laski <zlaski@apple.com> 3212 3213 * objc-act.c (build_private_template): Change to return 'void'; do 3214 not set ivar_context, uprivate_record or objc_instance_type. 3215 (objc_comptypes, gen_type_name_0): For types 'id' and 'Class', 3216 retrieve protocol list from the pointee rather than the pointer itself; 3217 check TYPE_HAS_OBJC_INFO(...) precondition before accessing 3218 TYPE_OBJC_PROTOCOL_LIST. 3219 (objc_get_protocol_qualified_type): For types 'id' and 'Class', 3220 construct a variant of the pointee as well as the pointer, and 3221 store protocol information in the former. When creating variants 3222 of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate 3223 TYPE_OBJC_INTERFACE information. 3224 (objc_declare_class): If a TYPE_DECL is looked up, retrieve the 3225 underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE; 3226 for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE 3227 holding an IDENTIFIER_NODE. 3228 (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before 3229 accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead 3230 of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding 3231 an IDENTIFIER_NODE (meaning a @class forward-declaration only). 3232 (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling 3233 lookup_interface(). 3234 (continue_class): For @implementations, set ivar_context, 3235 uprivate_record and objc_instance_type, for @interfaces, call 3236 build_private_template(). 3237 (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing 3238 TYPE_OBJC_INTERFACE. 3239 (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before 3240 accessing TYPE_OBJC_PROTOCOL_LIST. 3241 * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO, 3242 DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC, 3243 SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros. 3244 (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points 3245 to an actual @interface; stored in TYPE_LANG_SPECIFIC(...). 3246 (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in 3247 TYPE_LANG_SPECIFIC(...). 3248 (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete. 3249 (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER, 3250 TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P; 3251 adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST 3252 instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST. 3253 32542004-11-29 Joseph Myers <joseph@codesourcery.com> 3255 3256 PR c/7544 3257 * Make-lang.in (objc/objc-act.o): Update dependencies. 3258 * objc-act.c (objc_finish_file): Call 3259 maybe_apply_pending_pragma_weaks if not OBJCPLUS. 3260 32612004-11-09 Andrew Pinski <pinskia@physics.uc.edu> 3262 3263 PR objc/18406 3264 * obj-act.c (encode_type): 96bits doubles are encoded the 3265 same way as 64bit and 128bit doubles are. 3266 32672004-11-09 Joseph S. Myers <joseph@codesourcery.com> 3268 3269 * objc-act.c: Use %q, %< and %> for quoting in diagnostics. 3270 32712004-11-08 Andrew Pinski <pinskia@physics.uc.edu> 3272 3273 PR objc/16546 3274 * objc-act.c (generate_method_descriptors): Remove setting 3275 the new decls' type to variable_length_type. 3276 (generate_ivar_lists): Likewise. 3277 (generate_dispatch_tables): Likewise. 3278 32792004-10-30 Ziemowit Laski <zlaski@apple.com> 3280 3281 * objc-act.c (objc_lookup_ivar): The new OTHER parameter 3282 contains the result of the ID lookup by the C or C++ 3283 front-end; in class methods, use OTHER if it exists; 3284 in instance methods, use OTHER only if it is locally 3285 declared. 3286 32872004-10-26 Ziemowit Laski <zlaski@apple.com> 3288 3289 * objc-act.c (finish_class): Do not synthesize bogus 3290 'extern objc_object *_Foo;' declarations for @interface Foo. 3291 32922004-10-25 Ziemowit Laski <zlaski@apple.com> 3293 David Ayers <d.ayers@inode.at> 3294 3295 * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED 3296 instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for: 3297 'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *'; 3298 'Class <Protocol> == id' and 'Class <Protocol> == Class'. 3299 (objc_is_id): Add test for 'super'. 3300 (objc_finish_message_expr): Allow for messaging of 'Class <Proto>' 3301 receivers; if class methods are not found in protocol lists, search 3302 for instance methods therein and warn if one is found. Look in 3303 global hash tables for suitable method as a last resort when messaging 3304 'id <Proto>', 'Class <Proto>' and invalid receiver types. 3305 (objc_add_method): Insert instance methods listed in protocols into 3306 the global class method hash table. 3307 * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to 3308 IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in 3309 addition to 'id <Proto>'. 3310 33112004-10-21 Andrew Pinski <pinskia@physics.uc.edu> 3312 3313 PR objc/17923 3314 * objc-act.c (objc_build_string_object): Create a CONST_DECL 3315 for the NeXT runtime case. 3316 33172004-10-02 Kazu Hirata <kazu@cs.umass.edu> 3318 3319 * objc-act.c: Fix comment typos. 3320 33212004-09-24 Ziemowit Laski <zlaski@apple.com> 3322 3323 * objc-act.c (init_objc_symtab, init_module_descriptor, 3324 build_shared_structure_initializer): When initializing 'long' 3325 fields, ensure that the initializer value is also 'long'. 3326 33272004-09-24 Zack Weinberg <zack@codesourcery.com> 3328 3329 * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION 3330 throughout. 3331 (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION. 3332 (build_selector_translation_table): Use %J in diagnostic 3333 instead of diddling input_line. Fix spelling. 3334 33352004-09-21 Ziemowit Laski <zlaski@apple.com> 3336 3337 * objc-act.c (objc_fold_objc_type_ref): New function. 3338 * objc-act.h (objc_fold_objc_type_ref): New prototype. 3339 33402004-09-09 Joseph S. Myers <jsm@polyomino.org.uk> 3341 3342 * objc-act.c (objc_start_function, really_start_method, 3343 objc_get_parm_info, start_method_def): Update to new arg_info 3344 structures. 3345 33462004-09-07 Ziemowit Laski <zlaski@apple.com> 3347 3348 * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of 3349 objc/objc-act.h. 3350 (objc/objc-act.o): Depend on $(HASHTAB_H). 3351 * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and 3352 objcp-decl.h instead of c-tree.h. 3353 (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix, 3354 error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl, 3355 build_protocol_template): Adjust prototypes. 3356 (build_module_initializer_routine, start_class, continue_class, 3357 finish_class, start_method_def, objc_start_function, start_protocol, 3358 build_method_decl, objc_add_method, add_instance_variable, 3359 build_ivar_reference, is_ivar, is_private, get_super_receiver, 3360 build_selector_table_decl, objc_push_parm, objc_get_parm_info, 3361 gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl, 3362 create_field_decl): New prototypes. 3363 (objc_expand_function_end, comp_method_with_proto, objc_expr_last, 3364 gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl, 3365 define_decl, create_builtin_decl, gen_declspecs): Remove prototypes. 3366 (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME. 3367 (CLASS_TYPEDEF_NAME): New. 3368 (TAG_EXECCLASS): Change from a global variable to a #define. 3369 (TAG_RETURN_STRUCT): Delete. 3370 (TAG_GNUINIT): New, holds '__objc_gnu_init' name. 3371 (objc_inherit_code, objc_public_flag): New, moved from c-parse.in. 3372 (string_descriptor): New struct. 3373 (string_htab): New hash table. 3374 (string_hash, string_eq): New prototypes. 3375 (generate_struct_by_value_array): Call create_field_decl() instead of 3376 create_builtin_decl(). 3377 (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS; 3378 In ObjC++ mode, call cxx_init() instead of c_objc_common_init(). 3379 (objc_finish_file): In ObjC++, call instantiate_pending_templates() 3380 and cp_finish_file(). 3381 (define_decl, get_static_reference, get_protocol_reference, 3382 create_builtin_decl): Remove functions. 3383 (objc_start_class_interface, objc_start_category_interface, 3384 objc_start_protocol, objc_continue_interface, objc_finish_interface, 3385 objc_start_class_implementation, objc_start_category_implementation, 3386 objc_continue_implementation, objc_finish_implementation, 3387 objc_set_visibility, objc_set_method_type, 3388 objc_build_method_signature, objc_add_method_declaration, 3389 objc_start_method_definition, objc_add_instance_variable, 3390 objc_get_protocol_qualified_type, create_field_decl, 3391 start_var_decl, finish_var_decl): New functions. 3392 (setup_string_decl): Simplify since it is only called once. 3393 (synth_module_prologue): Call build_class_template(); predefine 'id' 3394 and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug 3395 hooks for duration of function; fix GNU runtime messenger signatures 3396 to correspond to reality; forward-declare '__objc_exec_class' for the 3397 GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate 3398 'extern "C" { ... }' wrappers around synthesized declarations; call 3399 build_protocol_template() and build_category_template(). 3400 (string_hash, string_eq): New functions. 3401 (objc_build_string_object): Check metaclass correctness only once; 3402 store string literals in hash table. 3403 (objc_build_constructor): Do not convert initializer elements; 3404 adjust for ObjC++ impedance mismatch. 3405 (build_objc_symtab_template): Call create_field_decl() instead of 3406 create_builtin_decl(). 3407 (init_objc_symtab): Add missing conversion to initializer element. 3408 (build_metadata_decl): Call start_var_decl() instead of define_decl(). 3409 (generate_objc_symtab_decl): Do not call build_category_template(); 3410 call start_var_decl() and finish_var_decl() instead of start_decl() 3411 and finish_decl(). 3412 (build_module_descriptor): Call create_field_decl() instead of 3413 grokfield(); call start_var_decl() and finish_var_decl() instead of 3414 start_decl() and finish_decl(); always mark module descriptor as 3415 used; move GNU runtime-specific functionality to 3416 build_module_initializer_routine(). 3417 (build_module_initializer_routine): New function, broken off of 3418 build_module_descriptor(). 3419 (objc_static_init_needed_p, objc_generate_static_init_call): New 3420 functions. 3421 (generate_static_references, generate_strings, 3422 build_selector_translation_table, generate_descriptor_table, 3423 generate_ivars_list, generate_dispatch_table, generate_category): Call 3424 start_var_decl() and finish_var_decl() instead of start_decl() and 3425 finish_decl(); build a type directly instead of via groktypename(). 3426 (build_selector_reference_decl, build_selector_table_decl, 3427 build_class_reference_decl, build_protocol_reference, 3428 generate_objc_image_info): Call start_var_decl() instead of 3429 build_decl(). 3430 (build_selector_reference): For GNU runtime, do not call 3431 build_selector_reference_decl(). 3432 (build_selector, build_typed_selector_reference): Always convert 3433 result to the selector type. 3434 (add_objc_string): Cast return value to 'char *'. 3435 (build_method_prototype_template, build_selector_template, 3436 build_method_template): Use actual selector type for fields 3437 pointing to selectors. 3438 (finish_objc): For GNU runtime, call 3439 build_module_initializer_routine() after build_module_descriptor(). 3440 (generate_protocol_list, generate_shared_structures): Call 3441 start_var_decl() and finish_var_decl() instead of start_decl() and 3442 finish_decl(); build a type directly instead of via 3443 groktypename(). 3444 (synth_id_with_class_suffix): Return a string. 3445 (get_arg_type_list): For instance methods, use the instance type for 3446 'self'; do not call groktypename_in_parm_context(). 3447 (build_objc_string_decl): Squash redeclaration errors in ObjC++. 3448 (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME; 3449 handle RECORD_TYPEs in ObjC as well as ObjC++. 3450 (objc_is_id): New function. 3451 (objc_is_object_ptr): Return the canonical type node. 3452 (objc_get_class_ivars): Simplify using get_class_ivars(). 3453 (get_class_ivars): Remove second parameter; create a fresh copy 3454 of the ivar list for each call; do not check for existence of 3455 super class. 3456 (objc_eh_runtime_type): Mark #ifndef OBJCPLUS. 3457 (objc_init_exceptions): When using SJLJ-style exceptions, require 3458 the use of '-fobjc-exceptions' flag; do not require it for DWARF-style 3459 exceptions. 3460 (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use 3461 objc_object_type instead of objc_id_type. 3462 (objc_begin_catch_clause): Convert the incoming PARM_DECL into 3463 a VAR_DECL before placing it in the appropriate scope; do not 3464 call define_decl(); adjust call to c_begin_compound_stmt(); 3465 use objc_object_type instead of objc_id_type. 3466 (build_next_objc_exception_stuff): Call create_field_decl() instead 3467 of create_builtin_decl(); construct type directly instead of calling 3468 groktypename(); use OBJC_VOID_AT_END to mark end of function parameters. 3469 (build_private_template): Adjust call to get_class_ivars(); build 3470 a type directly instead of via groktypename(). 3471 (build_protocol_template, build_method_prototype_list_template, 3472 build_method_prototype_template, build_category_template, 3473 build_selector_template, build_class_template, build_super_template, 3474 build_ivar_template, build_ivar_list_template, 3475 build_method_list_template, build_method_template): 3476 Call create_field_decl() instead of grokfield(). 3477 (objc_method_parm_type): Do not call groktypename(). 3478 (generate_descriptor_table): Call start_var_decl() and 3479 finish_var_decl() instead of start_decl() and finish_decl(). 3480 (generate_method_descriptors, build_protocol_initializer, 3481 generate_dispatch_tables, build_category_initializer, 3482 build_shared_structure_initializer): Do not call groktypename(). 3483 (generate_protocols): Call start_var_decl() and finish_var_decl() 3484 instead of start_decl() and finish_decl(); do not call groktypename(). 3485 (error_with_ivar): Remove last parameter. 3486 (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition 3487 to CLASS_IVARS lists; adjust calls to error_with_ivar(). 3488 (generate_ivar_lists): Convert one of the initializer elements; do 3489 not call groktypename(). 3490 (get_arg_type_list, start_method_def, gen_method_def): Account for 3491 new representation of variable arguments and '...' in Objective-C 3492 methods; add Objective-C++ impedance matching code. 3493 (is_objc_type_qualifier): Remove function. 3494 (adjust_type_for_id_default): Simplify; there is no longer a need to 3495 wade through declspecs. 3496 (lookup_interface, start_class, continue_class, 3497 finish_class, start_method_def, start_protocol, build_method_decl, 3498 objc_add_method, add_instance_variable, build_ivar_reference, 3499 is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue): 3500 Make into static functions. 3501 (receiver_is_class_object): Use new IS_CLASS() macro. 3502 (objc_build_message_expr): Tweak ObjC++ message argument handling; 3503 call objc_finish_message_expr() instead of finish_message_expr(). 3504 (finish_message_expr): Rename to objc_finish_message_expr(); use 3505 OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME. 3506 call gen_type_name() instead of gen_declaration(); call objc_is_id() 3507 instead of using IS_ID and IS_CLASS; Use objc_class_name instead of 3508 calling get_identifier("Class"); handle CONVERT_EXPRs in receiver. 3509 (build_objc_method_call, warn_with_method): Do not call groktypename(). 3510 (build_ivar_reference): Call convert() instead of clobbering in a 3511 type. 3512 (hash_init): Initialize string_htab hash table. 3513 (add_instance_variable): Simplify parameter list; do not call grokfield(); 3514 do not populate CLASS_IVARS list. 3515 (start_class): Check for the existence of super class, if one was specified. 3516 (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not 3517 call build_class_template(); adjust call to get_class_ivars(); call 3518 build_decl(), pushdecl() and finish_decl() instead of define_decl(). 3519 (finish_class): Call build_decl(), pushdecl() and finish_decl() instead 3520 of define_decl(). 3521 (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size. 3522 (start_protocol): Do not call build_protocol_template(); use 3523 PROTOCOL_BINFO_ELTS for the tree vector size. 3524 (encode_type_qualifiers): Do not handle the 'const' qualifier here. 3525 (encode_pointer): Encode 'const char *' as 'r*', for backwards 3526 compatibility. 3527 (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld". 3528 (encode_type): Handle the 'const' qualifier here. 3529 (objc_parmlist): New global variable, sued by objc_push_parm and 3530 objc_get_parm_info(). 3531 (objc_push_parm, objc_get_parm_info): New functions. 3532 (objc_expr_last): Remove function. 3533 (synth_self_and_ucmd_args): For instance methods, use the instance 3534 type for 'self'; call objc_push_parm() instead of push_parm_decl(). 3535 (start_method_def): Do not call push_scope(), declare_parm_level(), 3536 pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last(); 3537 just use objc_push_parm() and objc_get_parm_info(). 3538 (comp_method_with_proto): Remove function. 3539 (objc_types_are_equivalent): Strip away indirections before comparing 3540 underlying types. 3541 (comp_proto_with_proto): Do not call groktypename(); types are no 3542 longer in raw declspec format. 3543 (objc_start_function): New function. 3544 (really_start_method): Call comp_proto_with_proto() instead of 3545 comp_method_with_proto(); call objc_start_function() instead of 3546 hand-crafting a function declarator. 3547 (continue_method_def, objc_expand_function_end): Remove functions. 3548 (get_super_receiver): Call objc_get_current_scope() instead of 3549 get_current_scope(); reference 'super_class' field (instead of 3550 'class'). 3551 (finish_method_def): Rename to objc_finish_method_definition() and 3552 add a function decl parameter; move method encoding call from 3553 objc_expand_function_end(). 3554 (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs, 3555 gen_declaration_1): Remove functions. 3556 (tmpbuf, RAW_DECLSPEC): Remove. 3557 (gen_declaration): Remove second parameter; simplify to deal 3558 with TYPE_P nodes instead of raw declspecs. 3559 (gen_type_name, gen_type_name_0): New functions. 3560 (gen_method_decl): Remove second parameter; call gen_type_name() 3561 instead of gen_declaration_1(). 3562 (dump_interface): Adjust calls to gen_declaration() and 3563 gen_method_decl(); do not allocate a separate string buffer. 3564 (init_objc): Allocate a larger string buffer to accommodate 3565 dump_interface(); adjust call to build_module_descriptor(); 3566 add call to build_module_initializer_routine() for the GNU 3567 runtime. 3568 (generate_classref_translation_entry): Do not call start_decl(); call 3569 finish_var_decl() instead of finish_decl(); call convert() instead of 3570 build_c_cast(). 3571 * objc-act.h (CLASS_OWN_IVARS): Remove accessor. 3572 (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is 3573 gone. 3574 (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New. 3575 (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove. 3576 (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME, 3577 objc_object_type and objc_object_name, respectively. 3578 (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference, 3579 objc_class_name): New. 3580 (IS_CLASS): New macro. 3581 (IS_ID, IS_SUPER): Robustify. 3582 (OCTI_EXECCLASS_DECL, execclass_decl): New. 3583 (finish_file, start_class, continue_class, finish_class, 3584 start_method_def, continue_method_def, finish_method_def, 3585 start_protocol, finish_protocol, objc_build_throw_stmt, 3586 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, 3587 objc_build_synchronized_epilogue, objc_build_try_prologue, 3588 objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue, 3589 objc_build_finally_prologue, objc_build_finally_epilogue, 3590 is_ivar, is_private, is_public, add_instance_variable, objc_add_method, 3591 get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name, 3592 get_class_reference, get_static_reference, get_object_reference, 3593 build_message_expr, finish_message_expr, build_selector_expr, 3594 build_ivar_reference, build_keyword_decl, build_method_decl, 3595 build_protocol_expr, build_objc_string_object, objc_declare_alias, 3596 objc_declare_class, objc_declare_protocols, objc_comptypes, 3597 objc_check_decl, build_encode_expr): Remove prototypes. 3598 (imp_count, cat_count): Make GGC-aware. 3599 (OBJC_SET_TYPE_NAME): New macro. 3600 36012004-09-03 Ziemowit Laski <zlaski@apple.com> 3602 3603 * config-lang.in: Update copyright notice. 3604 (lang_requires): Indicate that ObjC requires C to be built first. 3605 36062004-09-01 Ziemowit Laski <zlaski@apple.com> 3607 3608 * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of 3609 TYPE_NAME. 3610 (build_objc_string_object): Rename to objc_build_string_object(). 3611 (get_class_reference): Rename to objc_get_class_reference(). 3612 (get_class_ivars_from_name): Rename to objc_get_class_ivars(). 3613 (next_sjlj_build_catch_list, get_super_receiver): Call 3614 objc_get_class_reference() instead of get_class_reference(). 3615 (build_keyword_decl): Rename to objc_build_keyword_decl(). 3616 (build_message_expr): Rename to objc_build_message_expr(). 3617 (build_protocol_expr): Rename to objc_build_protocol_expr(). 3618 (build_selector_expr): Rename to objc_build_selector_expr(). 3619 (build_encode_expr): Rename to objc_build_encode_expr(). 3620 * objc-act.h (get_class_ivars_from_name): Rename prototype to 3621 objc_get_class_ivars(). 3622 (get_class_reference): Rename prototype to objc_get_class_reference(). 3623 (build_message_expr): Rename prototype to objc_build_message_expr(). 3624 (build_selector_expr): Rename prototype to objc_build_selector_expr(). 3625 (build_keyword_decl): Rename prototype to objc_build_keyword_decl(). 3626 (build_protocol_expr): Rename prototype to objc_build_prototype_expr(). 3627 (build_objc_string_object): Rename prototype to 3628 objc_build_string_object(). 3629 36302004-09-01 Ziemowit Laski <zlaski@apple.com> 3631 3632 * objc-act.c (lookup_interface): Make function 'static' and add a 3633 local prototype. 3634 (objc_check_decl, get_class_reference, objc_declare_alias, 3635 objc_declare_class, objc_is_object_ptr): Call objc_is_class_name() 3636 instead of is_class_name(). 3637 (get_super_receiver, objc_clear_super_receiver): Call 3638 objc_get_current_scope() instead of get_current_scope(). 3639 (is_class_name): Rename to objc_is_class_name. 3640 (lookup_objc_ivar): Rename to objc_lookup_ivar. 3641 36422004-08-28 Ziemowit Laski <zlaski@apple.com> 3643 3644 * objc-act.c (objc_is_reserved_word): New function. 3645 36462004-08-15 Ziemowit Laski <zlaski@apple.com> 3647 3648 * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H), 3649 $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h. 3650 (objc/objc-parse.o): Do not depend on gtype-objc.h. 3651 * objc-act.c: Do not include gtype-objc.h. 3652 (finish_file): Rename to objc_finish_file(). 3653 * objc-act.h (finish_file): Update copyright notice; remove prototype. 3654 * objc-lang.c: Update copyright notice; include diagnostic.h, 3655 c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include 3656 toplev.h. 3657 (finish_file): New hook routine. 3658 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS, 3659 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION, 3660 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS, 3661 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, 3662 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, 3663 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION, 3664 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL, 3665 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, 3666 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, 3667 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED, 3668 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, 3669 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, 3670 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, 3671 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, 3672 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, 3673 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, 3674 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING, 3675 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, 3676 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, 3677 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE, 3678 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE, 3679 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, 3680 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO, 3681 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS): 3682 Move to c-objc-common.h. 3683 3684 3685Copyright (C) 2004-2016 Free Software Foundation, Inc. 3686 3687Copying and distribution of this file, with or without modification, 3688are permitted in any medium without royalty provided the copyright 3689notice and this notice are preserved. 3690