12014-10-30 Release Manager 2 3 * GCC 4.9.2 released. 4 52014-07-16 Release Manager 6 7 * GCC 4.9.1 released. 8 92014-04-22 Release Manager 10 11 * GCC 4.9.0 released. 12 132014-01-31 Marek Polacek <polacek@redhat.com> 14 15 PR c/59963 16 * objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to 17 build_function_call_vec. 18 (finish_catch): Likewise. 19 (next_runtime_abi_02_get_class_reference): Likewise. 20 * objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to 21 build_function_call_vec. 22 (build_throw_stmt): Likewise. 23 * objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to 24 build_function_call_vec. 25 (build_throw_stmt): Likewise. 26 272014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 28 29 Update copyright years 30 312013-12-04 Joseph Myers <joseph@codesourcery.com> 32 33 PR c/52023 34 * objc-act.c (objc_synthesize_getter): Update calls to 35 c_sizeof_or_alignof_type. 36 372013-11-22 Andrew MacLeod <amacleod@redhat.com> 38 39 * objc/objc-act.c: Add required include files from gimple.h. 40 412013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 42 43 * objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi 44 throughout. 45 462013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 47 48 * objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with 49 tree_to_shwi throughout. 50 512013-11-14 Andrew MacLeod <amacleod@redhat.com> 52 53 * objc-act.c: Include only gimplify.h and gimple.h as needed. 54 552013-11-14 Diego Novillo <dnovillo@google.com> 56 57 * objc-act.c: Include stringpool.h. 58 Include stor-layout.h. 59 Include attribs.h. 60 * objc-encoding.c: Include stringpool.h. 61 Include stor-layout.h. 62 * objc-gnu-runtime-abi-01.c: Include stringpool.h. 63 * objc-next-runtime-abi-01.c: 64 Include stringpool.h. 65 * objc-next-runtime-abi-02.c: Include stringpool.h. 66 * objc-runtime-shared-support.c: Include stringpool.h. 67 682013-11-12 Andrew MacLeod <amacleod@redhat.com> 69 70 * objc-act.c: Include gimplify.h. 71 722013-11-07 Andrew MacLeod <amacleod@redhat.com> 73 74 * objc-act.c (objc_push_parm): Handle atomic qualifier. 75 762013-09-25 Tom Tromey <tromey@redhat.com> 77 78 * Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o) 79 (objc/objc-runtime-shared-support.o) 80 (objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o) 81 (objc/objc-next-runtime-abi-02.o, objc/objc-act.o) 82 (objc/objc-encoding.o, objc/objc-map.o): Remove. 83 842013-09-14 Iain Sandoe <iain@codesourcery.com> 85 86 PR target/48094 87 * objc-next-runtime-abi-01.c (generate_objc_image_info): Remove. 88 (objc_generate_v1_next_metadata): Remove generation of ImageInfo. 89 * objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove. 90 (objc_generate_v2_next_metadata): Remove generation of ImageInfo. 91 922013-07-21 OndÅej BÃlka <neleai@seznam.cz> 93 94 * objc-act.c: Fix typos. 95 * objc-encoding.c: Likewise. 96 * objc-gnu-runtime-abi-01.c: Likewise. 97 * objc-next-runtime-abi-01.c: Likewise. 98 * objc-next-runtime-abi-02.c: Likewise. 99 1002013-05-22 Paolo Carlini <paolo.carlini@oracle.com> 101 102 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): 103 Fix build_conditional_expr call. 104 1052013-05-16 Jason Merrill <jason@redhat.com> 106 107 * Make-lang.in (cc1obj$(exeext)): Use link mutex. 108 1092012-11-20 Diego Novillo <dnovillo@google.com> 110 111 * objc-act.c: Replace all vec<T, A>() initializers with vNULL. 112 1132012-11-16 Diego Novillo <dnovillo@google.com> 114 115 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 116 117 * objc-act.c: Use new vec API in vec.h. 118 * objc-act.h: Likewise. 119 * objc-gnu-runtime-abi-01.c: Likewise. 120 * objc-next-runtime-abi-01.c: Likewise. 121 * objc-next-runtime-abi-02.c: Likewise. 122 * objc-runtime-hooks.h: Likewise. 123 * objc-runtime-shared-support.c: Likewise. 124 * objc-runtime-shared-support.h: Likewise. 125 1262012-10-01 Lawrence Crowl <crowl@google.com> 127 128 * Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o. 129 (objc-act.o): Add dependence on hash-table.h. 130 * objc-act.c (objc_detect_field_duplicates): Change to new type-safe 131 hash table. 132 1332012-06-29 Steven Bosscher <steven@gcc.gnu.org> 134 135 * Make-ang.in: Adjust for move of C front-end files. 136 * config-lang.in: Likewise. 137 * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h 138 and c-lang.h in c/. 139 * objc-runtime-shared-support.c: Likewise. 140 * objc-next-runtime-abi-01.c: Likewise. 141 * objc-next-runtime-abi-02.c: Likewise. 142 * objc-gnu-runtime-abi-01.c: Likewise. 143 * objc-act.c: Likewise. 144 * objc-lang.c: Likewise. 145 1462012-06-19 Steven Bosscher <steven@gcc.gnu.org> 147 148 * objc-next-runtime-abi-01.c: Do not include tm.h and output.h. 149 Include c-family/c-target.h. 150 (handle_next_class_ref): Rewrite to emit top-level asm statements. 151 (handle_next_impent): Likewise. 152 * objc/Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o. 153 1542012-05-31 Steven Bosscher <steven@gcc.gnu.org> 155 156 * objc-act.c: Do not include output.h. 157 1582012-05-17 Paolo Carlini <paolo.carlini@oracle.com> 159 160 PR objc++/53388 161 * objc-act.c (objc_get_class_reference, objc_build_message_expr): 162 Use build_min_nt_loc. 163 1642012-04-20 Jan Hubicka <jh@suse.cz> 165 166 * objc-act.c (mark_referenced_methods); Use 167 cgraph_mark_force_output_node. 168 1692012-03-21 Steven Bosscher <steven@gcc.gnu.org> 170 171 * objc-act (objc_build_ivar_assignment): Do not call assemble_external. 172 (objc_build_global_assignment): Likewise. 173 (objc_build_strong_cast_assignment): Likewise. 174 * objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external. 175 * objc-next-runtime-abi-02.c: Likewise. 176 * objc-gnu-runtime-abi-01.c: Likewise. 177 1782012-03-05 Jason Merrill <jason@redhat.com> 179 180 * objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't 181 call _stat functions without MEM_STAT_INFO. 182 1832011-11-12 Iain Sandoe <iains@gcc.gnu.org> 184 185 * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality 186 for Objective-C m32. 187 1882011-10-29 Iain Sandoe <iains@gcc.gnu.org> 189 190 PR target/47997 191 * objc-act.c (objc_build_string_object): Remove redundant second 192 call to fix_string_type (). Add a checking assert that we are, 193 indeed, passed a STRING_CST. 194 1952011-10-18 Mikael Pettersson <mikpe@it.uu.se> 196 197 PR objc/50743 198 * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to 199 size_t to avoid signed/unsigned 200 comparison. 201 (insert_method_into_method_map): Likewise. 202 2032011-10-14 Nicola Pero <nicola.pero@meta-innovation.com> 204 205 * objc-map.h: New file. 206 * objc-map.c: New file. 207 * config-lang.in (gtfiles): Added objc-map.h. 208 * Make-lang.in (OBJC_OBJS): Added objc-map.o. 209 (objc/objc-map.o): New rule. 210 (objc/objc-act.o): Depend on objc/objc-map.h. 211 * objc-next-runtime-abi-02.c: Added a TODO comment. 212 * objc-act.c: Include objc-map.h. 213 (nst_method_hash_list, cls_method_hash_list): Removed. 214 (instance_method_map, class_method_map): New. 215 (cls_name_hash_list, als_name_hash_list): Removed. 216 (class_name_map, alias_name_map): Removed. 217 (ivar_offset_hash_list): Removed. 218 (hash_class_name_enter, hash_class_name_lookup, hash_enter, 219 hash_lookup, hash_add_attr, add_method_to_hash_list): Removed. 220 (interface_hash_init): New. 221 (objc_init): Call interface_hash_init. 222 (objc_write_global_declarations): Iterate over class_method_map 223 and instance_method_map instead of cls_method_hash_list and 224 nst_method_hash_list. 225 (objc_declare_alias): Use alias_name_map instead of 226 cls_name_hash_list. 227 (objc_is_class_name): Use class_name_map and alias_name_map 228 instead of cls_name_hash_list and als_name_hash_list. 229 (interface_tuple, interface_htab, hash_interface, eq_interface): 230 Removed. 231 (interface_map): New. 232 (add_class): Renamed to add_interface. Use interface_map instead 233 of interface_htab. 234 (lookup_interface): Use interface_map instead of interface_htab. 235 (check_duplicates): Changed first argument to be a tree, 236 potentially a TREE_VEC, instead of a hash. Changed implementation 237 to match. 238 (lookup_method_in_hash_lists): Use class_method_map and 239 instance_method_map instead of cls_method_hash_list and 240 nst_method_hash_list. 241 (objc_build_selector_expr): Likewise. 242 (hash_func): Removed. 243 (hash_init): Create instance_method_map, class_method_map, 244 class_name_map, and alias_name_map. Do not create 245 nst_method_hash_list, cls_method_hash_list, cls_name_hash_list, 246 als_name_hash_list, and ivar_offset_hash_list. 247 (insert_method_into_method_map): New. 248 (objc_add_method): Use insert_method_into_method_map instead of 249 add_method_to_hash_list. 250 (start_class): Call add_interface instead of add_class. 251 * objc-act.h (cls_name_hash_list, als_name_hash_list, 252 nst_method_hash_list, cls_method_hash_list): Removed. 253 2542011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> 255 256 * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old 257 interface with two parallel arrays to hold standard builtin 258 declarations, and replace it with a function based interface that 259 can support creating builtins on the fly in the future. Change 260 all uses, and poison the old names. Make sure 0 is not a 261 legitimate builtin index. 262 * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto. 263 * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto. 264 2652011-07-19 Richard Guenther <rguenther@suse.de> 266 267 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): 268 Use fold_build_pointer_plus. 269 (objc2_build_ehtype_initializer): Likewise. 270 2712011-07-11 Nicola Pero <nicola.pero@meta-innovation.com> 272 273 * objc-encoding.h (obstack.h): Do not include. 274 (util_obstack, util_firstobj): Do not declare. 275 (encode_field_decl): Updated prototype to return a tree and take a 276 single tree argument. Updated comments. 277 * objc-encoding.c (util_obstack, util_firstobj): Made static. 278 (objc_encoding_init): New. 279 (encode_field_decl): Existing function renamed to encode_field and 280 made static. New encode_field_decl wrapper function added. 281 (encode_aggregate_fields): Update call to encode_field_decl to 282 call encode_field. 283 * objc-next-runtime-abi-02.c (obstack.h): Do not include. 284 (util_obstack, util_firstobj): Do not declare. 285 (build_v2_ivar_list_initializer): Updated call to 286 encode_field_decl. 287 * objc-runtime-shared-support.c (obstack.h): Do not include. 288 (util_obstack, util_firstobj): Do not declare. 289 (build_ivar_list_initializer): Updated call to encode_field_decl. 290 * objc-act.c (objc_init): Use objc_encoding_init. 291 * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend 292 on OBSTACK_H. 293 (objc/objc-gnu-runtime-abi-01.o): Likewise. 294 (objc/objc-next-runtime-abi-01.o): Likewise. 295 (objc/objc-next-runtime-abi-02.o): Likewise. 296 (objc/objc-act.o): Likewise. 297 2982011-07-04 Nicola Pero <nicola.pero@meta-innovation.com> 299 300 Refactored encoding code into objc-encoding.h and objc-encoding.c. 301 * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers, 302 encode_type, generating_instance_variables, objc_method_parm_type, 303 objc_encoded_type_size, encode_method_prototype, 304 objc_build_encode_expr, pointee_is_readonly, encode_pointer, 305 encode_array, encode_vector, encode_aggregate_fields, 306 encode_aggregate_within, encode_next_bitfield, 307 encode_gnu_bitfield, encode_field_decl, 308 objc_v2_encode_property_attr): Moved to objc-encoding.h and 309 objc-encoding.c. No change in the actual code. 310 Include objc-encoding.h. 311 (objc_init): Added TODO. 312 (objc_build_property_setter_name): Made non-static so it can be 313 called from objc-encoding.c. 314 * objc-act.h (OBJC_ENCODE_INLINE_DEFS, 315 OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h. 316 * objc-runtime-shared-support.h (objc_v2_encode_property_attr, 317 encode_method_prototype, encode_field_decl, 318 generating_instance_variables): Moved to objc-encoding.h. 319 (objc_build_property_setter_name): Declare. 320 * objc-encoding.c: New. 321 * objc-encoding.h: New. 322 * objc-gnu-runtime-abi-01.c: Include objc-encoding.h. 323 * objc-next-runtime-abi-01.c: Likewise. 324 * objc-next-runtime-abi-02.c: Likewise. 325 * objc-runtime-shared-support.c: Likewise. 326 * Make-lang.in (OBJC_OBJS): Added objc-encoding.o. 327 (objc/objc-lang.o): Reordered dependencies. 328 (objc/objc-runtime-shared-support.o): Reordered dependencies. 329 Added dependencies on objc-encoding.h and on $(GGC_H), 330 $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h. 331 (objc/objc-gnu-runtime-abi-01.o): Likewise. 332 (objc/objc-next-runtime-abi-01.o): Likewise. 333 (objc/objc-next-runtime-abi-02.o): Likewise. 334 (objc/objc-act.o): Reordered dependencies. Added dependency on 335 objc-encoding.h. 336 (objc/objc-encoding.o): New rule. 337 338 * objc-encoding.c (encode_type): Use "%<%T%>" format when printing 339 warning "unknown type %<%T%> found during Objective-C encoding" 340 instead of using gen_type_name. 341 3422011-06-05 Nicola Pero <nicola.pero@meta-innovation.com> 343 344 * objc-act.c (receiver_is_class_object): Expanded comment. 345 (objc_finish_message_expr): Likewise. 346 3472011-06-02 Nicola Pero <nicola.pero@meta-innovation.com> 348 349 PR objc/48539 350 * objc-act.c (objc_finish_message_expr): Warn if messaging a class 351 that was only declared using @class without an @interface. Warn 352 if messaging an instance of a class that was only declared using 353 @class without an @interface, unless the receiver was also typed 354 with a protocol list. 355 3562011-06-01 Nicola Pero <nicola.pero@meta-innovation.com> 357 358 * objc-act.c (objc_decl_method_attributes): Implement nonnull 359 attribute for Objective-C methods. 360 3612011-05-21 Nicola Pero <nicola.pero@meta-innovation.com> 362 363 * config-lang.in (gtfiles): Updated order of files to fix building 364 when the gcc/cp directory is missing, as in the case of some 365 release tarballs. 366 3672011-05-20 Nathan Froyd <froydnj@codesourcery.com> 368 369 * objc-act.c (objc_compare_types): Use function_args_iterator 370 instead of TYPE_ARG_TYPES to compare function argument types. 371 3722011-05-13 Toon Moene <toon@moene.org> 373 374 * objc-next-runtime-abi-02.c (newabi_append_ro): 375 Add const qualifier to constant variable pointer declaration. 376 3772011-05-11 Nathan Froyd <froydnj@codesourcery.com> 378 379 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors. 380 (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise. 381 (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise. 382 3832011-05-05 Nathan Froyd <froydnj@codesourcery.com> 384 385 * objc-runtime-shared-support.h (get_arg_type_list): Delete. 386 (build_function_type_for_method): Declare. 387 * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change 388 type of get_arg_type_base_list field. 389 * objc-act.h (OBJC_VOID_AT_END): Delete. 390 * objc-act.c (get_arg_type_list): Delete. 391 (build_function_type_for_method): New function. 392 (objc_decl_method_attributes): Call build_function_type_for_method. 393 (really_start_method): Likewise. 394 * objc-gnu-runtime-abi-01.c 395 (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and 396 adjust function accordingly. Update header comment. 397 (build_objc_method_call): Call build_function_type_for_method. 398 * objc-next-runtime-abi-01.c 399 (next_runtime_abi_01_get_type_arg_list_base): Change prototype and 400 adjust function accordingly. Update header comment. 401 (build_objc_method_call): Call build_function_type_for_method. 402 * objc-next-runtime-abi-02.c 403 (next_runtime_abi_02_get_type_arg_list_base): Change prototype and 404 adjust function accordingly. Update header comment. 405 (objc_copy_to_temp_side_effect_params): Take fntype instead of a 406 typelist. Use function_args_iterator for traversing fntype. 407 (build_v2_build_objc_method_call): Adjust call to it. 408 Call build_function_type_for_method 409 4102011-05-05 Joseph Myers <joseph@codesourcery.com> 411 412 * objc-act.c (objc_start_method_definition): Add parameter expr. 413 Update call to start_method_def. 414 (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter, 415 objc_synthesize_setter) Update calls to 416 objc_start_method_definition. 417 (objc_get_parm_info): Add parameter expr. Update call to 418 get_parm_info. 419 (start_method_def): Add parameter expr. Update call to 420 objc_get_parm_info. 421 * objc-gnu-runtime-abi-01.c (build_module_initializer_routine): 422 Update call to objc_get_parm_info. 423 * objc-runtime-shared-support.h (objc_get_parm_info): Add extra 424 parameter. 425 4262011-04-26 Jason Merrill <jason@redhat.com> 427 428 * objc-act.c (objc_fold_objc_type_ref): Remove. 429 * objc-act.h: Remove prototype. 430 4312011-04-21 Nathan Froyd <froydnj@codesourcery.com> 432 433 * objc-act.c (synth_module_prologue): Call build_function_type_list 434 instead of build_function_type. 435 * objc-next-runtime-abi-02.c (next_runtime_02_initialize): 436 Likewise. 437 4382011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 439 440 * objc-act.c (ivar_of_class): New. 441 (objc_is_public): Use ivar_of_class. 442 4432011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 444 445 * objc-act.c (objc_get_interface_ivars): Removed. 446 (objc_detect_field_duplicates): New. 447 (hash_instance_variable): New. 448 (eq_instance_variable): New. 449 4502011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 451 452 * objc-act.c (objc_declare_protocols): Renamed to 453 objc_declare_protocol. Changed first argument to be an identifier 454 instead of a tree chain of identifiers, so that callers don't have 455 to create a temporary tree chain. 456 4572011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 458 459 * objc-act.c (objc_declare_class): Changed to take a single 460 identifier as argument instead of a tree list. This means callers 461 don't have to build temporary tree lists to call this function. 462 (synth_module_prologue): Updated calls to objc_declare_class. 463 4642011-04-13 Nicola Pero <nicola.pero@meta-innovation.com> 465 466 * objc-act.c (build_keyword_selector): Use get_identifier_with_length 467 instead of get_identifier. 468 4692011-04-12 Nathan Froyd <froydnj@codesourcery.com> 470 471 * objc-lang.c (objc_init_ts): Move code for this function... 472 * objc-act.c (objc_common_init_ts): ...here. Define. 473 * objc-act.h (objc_common_init_ts): Declare. 474 4752011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 476 477 * objc-act.c (objc_build_message_expr): Accept two arguments 478 instead of one so that callers can simply pass the arguments 479 without having to create a temporary chain to hold them. 480 4812011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 482 483 * objc-act.c (comp_proto_with_proto): Do not create and use 484 inefficient temporary argument lists. Compare the arguments 485 directly. (match_proto_with_proto): Removed; incorporated into 486 comp_proto_with_proto (). 487 4882011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 489 490 * objc-act.c (printable_ivar_name): New. 491 (add_instance_variable): Call printable_ivar_name() when an error 492 message needs to be printed. Do not prepare the instance variable 493 for printing unless there is an actual error. 494 4952011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 496 497 * objc-act.c (objc_is_class_name, objc_is_id): For efficiency, 498 avoid calling identifier_global_value() multiple times. 499 5002011-04-12 Martin Jambor <mjambor@suse.cz> 501 502 * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node 503 instead of cgraph_node. 504 5052011-04-06 Joseph Myers <joseph@codesourcery.com> 506 507 * objc-act.c: Include c-target.h instead of target.h. 508 * Make-lang.in (objc/objc-act.o): Update dependencies. 509 5102011-03-06 Joseph Myers <joseph@codesourcery.com> 511 512 * lang-specs.h: Match -save-temps* instead of -save-temps. 513 5142011-02-26 Nicola Pero <nicola.pero@meta-innovation.com> 515 516 * objc-act.c (objc_v2_encode_prop_attr): Rewritten. 517 5182011-02-23 Nicola Pero <nicola.pero@meta-innovation.com> 519 520 * objc-act.c (build_private_template): Do not copy the 521 CLASS_HAS_EXCEPTION_ATTR from the class to the struct. 522 * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using 523 TYPE_LANG_SLOT_0. 524 5252011-02-22 Nicola Pero <nicola.pero@meta-innovation.com> 526 527 PR objc/47832 528 * objc-act.c (flexible_array_type_p): New. 529 (add_instance_variable): Produce an error if an instance variable 530 uses flexible array members. 531 (encode_array): Do not emit an error if encoding a flexible array 532 type while generating instance variables. 533 5342011-02-21 Mike Stump <mikestump@comcast.net> 535 536 * Make-lang.in (check_objc_parallelize): Refine for 4 processor 537 machines. 538 5392011-02-20 Nicola Pero <nicola.pero@meta-innovation.com> 540 541 * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed. Removed 542 usage of padding fields. Do not include tm.h. 543 * objc-act.c (objc_write_global_declaration): Set input_location 544 to BUILTINS_LOCATION while generating runtime metadata. 545 5462011-01-20 Nicola Pero <nicola.pero@meta-innovation.com> 547 548 PR objc/47784 549 * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side 550 effects, do not use a temporary variable. 551 5522011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 553 554 * objc-next-runtime-abi-01.c: Updated comments. 555 * objc-next-runtime-abi-02.c: Same. 556 5572011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 558 559 * objc-act.c (objc_init, generate_struct_by_value_array): Updated 560 comments. 561 5622011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 563 564 * objc-act.c: Updated comments. 565 * objc-next-runtime-abi-02.c: Same. 566 * objc-runtime-shared-support.c: Same. 567 * objc-runtime-hooks.h: Same. 568 * objc-act.h: Same. 569 * objc-gnu-runtime-abi-01.c: Same. 570 5712011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 572 573 * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do 574 not generate metadata if there is nothing to put into it. 575 5762011-02-17 Iain Sandoe <iains@gcc.gnu.org> 577 578 * config-lang.in (gtfiles): Updated. 579 * Make-lang.in (START_HDRS): New. 580 (OBJC_OBJS): Added new object files. 581 (objc/objc-act.o): Updated prerequisites. 582 (objc/objc-lang.o): Updated prerequisites. 583 (objc/objc-runtime-shared-support.o): New. 584 (objc/objc-gnu-runtime-abi-01.o): New. 585 (objc/objc-next-runtime-abi-01.o): New. 586 (objc/objc-next-runtime-abi-02.o): New. 587 * objc-runtime-hooks.h: New. 588 * objc-runtime-shared-support.h: New. 589 * objc-runtime-shared-support.c: New. 590 * objc-gnu-runtime-abi-01.c: New. 591 * objc-next-metadata-tags.h: New. 592 * objc-next-runtime-abi-01.c: New. 593 * objc-next-runtime-abi-02.c: New. 594 * objc-lang.c: Include c-lang.h. 595 (LANG_HOOKS_EH_PERSONALITY): Removed. 596 * objc-act.h: Moved many declarations and code from objc-act.c 597 into objc-act.h to make them available outside objc-act.c. 598 (objc_eh_runtime_type): Removed. 599 (objc_eh_personality): Removed. 600 (CLASS_HAS_EXCEPTION_ATTR): New. 601 (OCTI_SUPER_SUPERFIELD_ID): New. 602 (OCTI_V1_PROP_LIST_TEMPL): New. 603 (OCTI_V1_PROP_NAME_ATTR_CHAIN): New. 604 (super_superclassfield_id): New. 605 (objc_prop_list_ptr): New. 606 (prop_names_attr_chain): New. 607 * objc-act.c: Include new runtime headers. Moved many #defines 608 and declarations into objc-act.h and 609 objc-runtime-shared-support.h. Made some corresponding functions 610 non-static, and moved some others into 611 objc-runtime-shared-support.c. Moved metadata generation code 612 into the new runtime hook files. 613 (ivar_offset_hash_list): New. 614 (objc_init): Call generate_struct_value_by_array() before doing 615 any runtime initialization. Create the appropriate runtime hook 616 structures. 617 (init_objc): Removed. Code moved directly into objc_init. 618 (finish_objc): Removed. Code moved directly into 619 objc_write_global_declarations. 620 (objc_write_global_declarations): Do the warn_selector checks 621 before emitting metadata. Use a runtime hook to emit the 622 metadata. Do not emit the metadata or do -gen-decls processing if 623 -fsyntax-only or we are producing a PCH. 624 (build_objc_exception_stuff): Renamed to 625 build_common_objc_exception_stuff. Remove TREE_NOTHROW flag from 626 objc_exception_throw_decl. 627 (synth_module_prologue): Call runtime initialize hook instead of 628 building runtime declarations here. Use the 629 default_constant_string_class_name runtime hook to set the 630 constant string class name. 631 (objc_build_string_object): Call the setup_const_string_class_decl 632 runtime hook instead of setup_string_decl. Call the 633 build_const_string_constructor runtime hook instead of building 634 the string object here. 635 (get_objc_string_decl): Added prop_names_attr case. Removed 636 gcc_unreachable() at the end. 637 (objc_begin_catch_clause): Distinguish between @catch (...) and 638 @catch (id x). Call the begin_catch runtime hook instead of 639 building the CATCH_EXPR here. 640 (objc_finish_catch_clause): Call the finish_catch runtime hook 641 instead of adding the catch here. 642 (objc_finish_try_stmt): Call the finish_try_stmt runtime hook 643 instead of doing it here. 644 (objc_build_throw_stmt): Bail out early for error_mark_node. Call 645 the build_exc_ptr runtime hook instead of objc_build_exc_ptr. 646 Call the build_throw_stmt runtime hook instead of building the 647 throw call here. 648 (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime 649 as well. 650 (get_arg_type_list): Call the get_arg_type_list_base runtime hook 651 instead of building the list of arguments here. 652 (receiver_is_class_object): Call the receiver_is_class_object 653 runtime hook instead of doing the check here. Call the 654 tag_getclass runtime hook instead of using TAG_GETCLASS. 655 (objc_finish_message_expr): Call the build_objc_method_call 656 runtime hook. 657 (objc_build_protocol_expr): Call the get_protocol_reference 658 runtime hook. 659 (objc_build_selector_expr): Call the build_selector_reference 660 runtime hook. 661 (build_ivar_reference): Call the build_ivar_reference runtime 662 hook. 663 (hash_init): Set up ivar_offset_hash_list. 664 (start_class): Recognize the objc_exception attribute and store 665 it. 666 (continue_class): Use the class_decl and metaclass_decl runtime 667 hooks. 668 (build_objc_property_accessor_helpers): Renamed to 669 build_common_objc_property_accessor_helpers. Do not build 670 objc_copyStruct_decl, objc_getPropertyStruct_decl and 671 objc_setPropertyStruct_decl. 672 (objc_synthesize_getter): Check what struct setter/getter helper 673 is available instead of checking the type of runtime. 674 (get_super_receiver): Use the super_superclassfield_ident runtime 675 hook. Added assert. Use the get_class_super_ref and 676 get_category_super_ref runtime hooks. 677 (objc_v2_encode_prop_attr): New. 678 6792011-01-17 Nicola Pero <nicola.pero@meta-innovation.com> 680 681 PR objc/47314 682 * objc-act.c (finish_objc): When calling check_duplicates to check 683 duplicated instance methods, set 'is_class' to 0, not 1. 684 6852011-01-14 Ben Elliston <bje@au.ibm.com> 686 687 PR 19162 688 * objc-act.c (generate_struct_by_value_array): Do not output a 689 definition for struct_forward_array. 690 6912011-01-08 Iain Sandoe <iains@gcc.gnu.org> 692 693 * objc-act.c (objc_finish_foreach_loop): Mark collection expression 694 as read. 695 6962011-01-02 H.J. Lu <hongjiu.lu@intel.com> 697 698 * objc-act.c (check_that_protocol_is_defined): Fix a typo. 699 7002011-01-02 Nicola Pero <nicola.pero@meta-innovation.com> 701 702 * objc-act.c (check_that_protocol_is_defined): New. 703 (lookup_protocol): Call check_that_protocol_is_defined. 704 7052010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 706 707 * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol 708 lists. Check them two-ways to fix comparisons when one protocol 709 implements the other one, or when one list contains duplicated 710 protocols. 711 7122010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 713 714 * objc-act.c (objc_add_method): When emitting an error because a 715 method with the same name but conflicting types is found in the 716 same class or category interface, print a note with the location 717 of the original method. Also, improved the error message to 718 clearly state that the conflict is due to conflicting types, and 719 produce it for protocols as well. Emit an error if two identical 720 methods are declared in a protocol, but one is @required and the 721 other one is @optional. 722 7232010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 724 725 * objc-act.c (start_class): Warn when a class attribute is 726 ignored. 727 (objc_declare_protocols): Warn when a protocol attribute in a 728 protocol forward-declaration is ignored. 729 (start_protocol): Warn when a protocol attribute is ignored. 730 7312010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 732 733 * objc-act.c (objc_set_method_opt): Tidy up error messages. In 734 particular, explicitly mention whether the error is due to the 735 @optional or @required keyword instead of mentioning 736 "@optional/@required". 737 7382010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 739 740 PR objc/47118 741 * objc-act.c (objc_build_synchronized): Check the argument of 742 @synchronized and emit an appropriate error if it is not a valid 743 Objective-C object. Deal gracefully with that case. Updated 744 comments and variable names. 745 7462010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 747 748 PR objc/47075 749 * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New. 750 * objc-tree.def (PROPERTY_REF): Increased the number of operands 751 from 3 to 4. 752 * objc-act.c (objc_finish_message_expr): Added optional argument 753 allowing to return the deprecated method prototype for deprecated 754 methods, instead of immediately emitting the deprecation warning. 755 (objc_maybe_build_component_ref): Do not warn for a deprecated 756 property. When building the getter call, get the deprecated 757 method prototype from objc_finish_message_expr() and put it into 758 the PROPERTY_REF. 759 (objc_build_class_component_ref): Same change. 760 (finish_class): Mark the getter and setter as deprecated if they 761 are generated from a deprecated property. 762 (objc_gimplify_property_ref): If the getter is deprecated, emit a 763 deprecation warning. 764 (objc_build_setter_call, objc_build_message_expr, 765 objc_finish_foreach_loop): Updated call to 766 objc_finish_message_expr. 767 7682010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 769 770 PR objc/47076 771 * objc-act.c (lookup_protocol): Added 'definition_required' 772 argument. If 'definition_required', and the protocol is not 773 defined, emit a warning. 774 (objc_declare_protocols): Updated call to lookup_protocol. 775 (start_protocol): Same change. 776 (check_protocol_recursively): Same change. 777 (objc_build_protocol_expr): Same change. 778 (lookup_and_install_protocols): Added definition_required argument. 779 Pass it to lookup_protocol. 780 (objc_get_protocol_qualified_type): Updated call to 781 lookup_and_install_protocols. 782 (start_class): Updated calls to lookup_and_install_protocols; pass 783 true to 'definition_required' to get the warnings. 784 (start_protocol): Updated calls to lookup_and_install_protocols. 785 7862010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 787 788 * objc-act.c (objc_start_category_interface): Produce an error if 789 a class extension is found after the class @implementation. 790 7912010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 792 793 PR objc/47073 794 * objc-act.c (encode_method_prototype): Fixed both location and 795 format string of error "type %qT does not have a known size". 796 7972010-12-26 Nicola Pero <nicola.pero@meta-innovation.com> 798 799 * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c. 800 8012010-12-22 Nathan Froyd <froydnj@codesourcery.com> 802 803 * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p. 804 8052010-12-18 Nicola Pero <nicola.pero@meta-innovation.com> 806 807 * objc-act.c (objc_init): Call using_eh_for_cleanups. 808 (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions. Do 809 not call using_eh_for_cleanups. 810 (objc_begin_try_stmt): Do not call objc_init_exceptions. 811 (objc_build_throw_stmt): Updated call to 812 objc_maybe_warn_exceptions. 813 8142010-12-18 Iain Sandoe <iains@gcc.gnu.org> 815 816 * objc/objc-act.c (objc_eh_personality): Select personality name on 817 runtime. 818 (objc_init_exceptions): New. 819 (objc_begin_try_stmt): Use objc_init_exceptions. 820 (objc_build_throw_stmt): Likewise. 821 8222010-12-10 Nicola Pero <nicola.pero@meta-innovation.com> 823 824 * objc-act.c (objc_in_class_extension): New. 825 (objc_start_category_interface): If -fobjc-std=objc1 826 was specified, produce an error if a class extension is used. 827 (objc_finish_interface): Reset objc_in_class_extension to false. 828 (objc_add_property_declaration): Allow a class extension to extend 829 readonly properties in the main @interface to be readwrite. 830 (start_class): Added code to deal with class extensions. In that 831 case, return the existing interface after adding any additional 832 protocols to it and setting objc_in_class_extension to true. 833 (continue_class): If in a class extension, do not generate the 834 instance variable template. 835 8362010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 837 838 * objc-act.c (objc_build_throw_stmt): Check that the argument of 839 @throw is an object and emit an error if not. 840 8412010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 842 843 * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of 844 error() when printing an error about the iterating variable or 845 collection not being an object. 846 8472010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 848 849 * objc-act.c (objc_finish_foreach_loop): Mark the 850 object_expression as used. 851 8522010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 853 854 * objc-act.c: Include c-family/c-objc.h. 855 * objc-lang.c: Same change. 856 * Make-lang.in (objc/objc-act.o): Depend on 857 c-family/c-objc.h. 858 (objc/objc-lang.o): Same change. 859 * config-lang.in (gtfiles): Added c-family/c-objc.h. 860 8612010-12-02 Joseph Myers <joseph@codesourcery.com> 862 863 * lang-specs.h: Don't handle -ftraditional. 864 8652010-12-02 Nicola Pero <nicola.pero@meta-innovation.com> 866 867 * objc-act.c (objc_build_throw_stmt): Return error_mark_node and 868 not NULL_TREE when a @throw is used outside of a @catch block. 869 8702010-11-30 Nicola Pero <nicola.pero@meta-innovation.com> 871 872 * objc-act.c (objc_build_volatilized_type): Removed. 873 (objc_non_volatilized_type): Removed. 874 (objc_type_quals_match): Removed. 875 (local_variables_to_volatilize): New. 876 (objc_volatilize_decl): Add the decl to volatilize to 877 local_variables_to_volatilize, but don't volatilize it yet. 878 (objc_finish_function): New. 879 * objc-act.h (local_variables_to_volatilize): New. 880 8812010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 882 Mike Stump <mikestump@comcast.net> 883 884 Allow 'make check-objc -j2' 885 * Make-lang.in (lang_checks_parallelized): New. 886 (check_objc_parallelize): New. 887 8882010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 889 890 * objc-act.c (start_class): When a class is reimplemented, 891 generate an error and avoid adding the class to the list of 892 implemented classes again, but do not return error_mark_node. 893 8942010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 895 896 * objc-act.c (objc_maybe_build_component_ref): Removed TODO. 897 8982010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 899 900 * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node 901 is passed as argument. 902 (objc_begin_catch_clause): Added code to deal with an 903 error_mark_node or NULL_TREE argument. Improved checks for 904 invalid arguments. Added code to traverse typedefs. 905 9062010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 907 908 * objc-act.c (objc_demangle): Return immediately if the string is 909 too short. Detect names that do not need demangling, and return 910 them unchanged. 911 9122010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 913 914 Implemented optional properties. 915 * objc-act.h (PROPERTY_OPTIONAL): New. 916 * objc-act.c (objc_add_property_declaration): Set 917 PROPERTY_OPTIONAL if appropriate. 918 (finish_class): When generating definitions of setter and getter 919 methods associated with a property for a protocol, mark them as 920 optional if the property is optional. 921 (maybe_make_artificial_property_decl): Added 'getter_name' 922 argument. Set PROPERTY_OPTIONAL. 923 (objc_maybe_build_component_ref): Updated calls to 924 maybe_make_artificial_property_decl. Added code for optional, 925 readonly properties. 926 (objc_build_class_component_ref): Updated call to 927 maybe_make_artificial_property_decl. 928 9292010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 930 931 * objc-act.c (objc_build_struct): Fixed loops that save and 932 restore TYPE_OBJC_INFO to iterate over all variants of the type; a 933 special case for the current type is then no longer required. 934 Duplicate TYPE_LANG_SPECIFIC for each type before restoring 935 TYPE_OBJC_INFO. 936 (objc_get_protocol_qualified_type): Updated comments. 937 9382010-11-25 Nicola Pero <nicola.pero@meta-innovation.com> 939 940 * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE 941 after finish_struct, not before, otherwise it may be wiped out by 942 it. This fixes spurious warnings when a class has more than 15 943 instance variables. 944 9452010-11-23 Nicola Pero <nicola.pero@meta-innovation.com> 946 947 PR objc/24358 948 * lang-specs.h: Added objective-c-cpp-output. Mapped .mi to 949 objective-c-cpp-output instead of objc-cpp-output. Print a 950 deprecation note every time objc-cpp-output is requested. 951 9522010-11-22 Joseph Myers <joseph@codesourcery.com> 953 954 * objc-act.c (write_symbols): Don't declare here. 955 9562010-11-22 Nicola Pero <nicola.pero@meta-innovation.com> 957 958 PR objc/41108 959 * objc-act.c (objc_generate_write_barrier): Added assert to make sure 960 this function is only called with the next runtime. 961 9622010-11-20 Jakub Jelinek <jakub@redhat.com> 963 964 PR c/46547 965 * objc-act.c (in_late_binary_op): Remove. 966 9672010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 968 969 * objc-act.c (objc_start_class_interface): Do not warn that class 970 attributes are unimplemented. Pass the attributes to start_class. 971 (objc_start_category_interface): Updated call to start_class. 972 (objc_start_class_implementation): Same change. 973 (objc_start_category_implementation): Same change. 974 (objc_build_class_component_ref): Warn if the class is deprecated. 975 (build_private_template): Mark the template as deprecated if the 976 class is deprecated. 977 (start_class): Added 'attributes' argument. Emit a warning if 978 using a deprecated class as superclass of a class, or original 979 class of a category. Recognize the 'deprecated' attribute when 980 starting and interface, and mark the interface with 981 TREE_DEPRECATED if present. Store attributes in the interface. 982 9832010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 984 985 * objc-act.c (lookup_protocol): Added 'warn_if_deprecated' 986 argument. If it is 'true' and the protocol is deprecated, emit a 987 deprecation warning. 988 (objc_start_protocol): Do not warn that protocol attributes are 989 unimplemented. Pass the attributes to start_protocol. 990 (start_protocol): Added attributes argument. Recognize the 991 'deprecated' attribute and mark the protocols with TREE_DEPRECATED 992 if present. Store attributes in the protocol. 993 (objc_declare_protocols): Added 'attributes' argument. Recognize 994 the 'deprecated' attribute and mark the protocols with 995 TREE_DEPRECATED if present. Store attributes in the protocol. 996 Updated call to lookup_protocol. 997 (objc_build_protocol_expr): Updated call to lookup_protocol. 998 (check_protocol_recursively): Same change. 999 (lookup_and_install_protocols): Same change. 1000 * objc-act.h: Updated comments. 1001 10022010-11-17 Nicola Pero <nicola.pero@meta-innovation.com> 1003 1004 * objc-act.c (lookup_method_in_protocol_list): Search methods in 1005 PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if 1006 they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS. 1007 10082010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1009 1010 * objc-act.c (objc_build_setter_call): New. 1011 (objc_maybe_build_modify_expr): Rewritten to build a compound 1012 statement. 1013 (objc_build_incr_expr_for_property_ref): Updated calls to 1014 objc_maybe_build_modify_expr to call objc_build_setter_call 1015 instead. Use build_modify_expr () instead of build2 (MODIFY_EXPR, 1016 ...). Use convert () instead of build1 (NOP_EXPR, ...). Use 1017 TREE_NO_WARNING on the final compound statement to silence C++ 1018 warnings. 1019 10202010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1021 1022 * objc-act.c (objc_build_incr_expr_for_property_ref): New. 1023 (objc_create_temporary_var): Moved it towards the beginning of the 1024 file so that objc_build_incr_expr_for_property_ref can use it. 1025 10262010-11-14 Nicola Pero <nicola.pero@meta-innovation.com> 1027 1028 * objc-act.c (objc_add_property_declaration): Check that the decl 1029 we received from the parser is a FIELD_DECL; reject array and 1030 bitfield properties. Convert the warning when a property is 1031 readonly and a setter is specified into an error. Convert errors 1032 when a property declaration does not match a property declaration 1033 in a superclass into warnings. 1034 (objc_add_synthesize_declaration_for_property): Use 1035 DECL_BIT_FIELD_TYPE to determine the type of an instance variable 1036 if it is a bitfield. Throw an error if we are asked to synthesize 1037 setters/getters for a bitfield instance variable but the property 1038 is not appropriate - it must be assign and nonatomic. If the 1039 property is readonly, allow the instance variable type to be a 1040 specialization of the property type. 1041 (objc_type_valid_for_messaging): Fixed returning 'false' for a 1042 Class qualified with a protocol when the 'accept_classes' argument 1043 is 'false'. 1044 10452010-11-13 Nicola Pero <nicola.pero@meta-innovation.com> 1046 1047 * objc-act.c (objc_get_protocol_qualified_type): detect cases 1048 where we are asked to attach a protocol to something which is not 1049 an Objective-C object type, and produce an error. 1050 10512010-11-11 Nicola Pero <nicola.pero@meta-innovation.com> 1052 1053 * objc-act.c (objc_add_property_declaration): Check that the type 1054 of a property and of an inherited property match. 1055 (objc_maybe_build_component_ref): Tidied up indentation and 1056 comments. 1057 (objc_common_type): Added new type of check (-5). 1058 (objc_add_synthesize_declaration_for_property): Check that the 1059 property to synthesize and the instance variable to use have the 1060 same type. 1061 10622010-11-10 Joseph Myers <joseph@codesourcery.com> 1063 1064 * objc-act.c (objc_init): Use %' in diagnostic. 1065 (objc_set_method_opt): Remove trailing '.' from diagnostic. 1066 10672010-11-10 Joseph Myers <joseph@codesourcery.com> 1068 1069 * objc-act.c (dump_base_name): Don't declare here. 1070 10712010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1072 1073 * objc-act.c (objc_add_dynamic_declaration_for_property): Do not 1074 search for the @property declation only in the current context, 1075 but also in inherited properties. Do not mark the original 1076 PROPERTY_DECL in the @interface or @protocol with 1077 PROPERTY_DYNAMIC. 1078 (check_methods): To check if a method is associated with a 1079 @dynamic property, search for the property in IMPL_PROPERTY_DECL. 1080 (check_accessible_methods): Same change. 1081 * objc-act.h: Updated comment. 1082 10832010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1084 1085 * objc-act.c (objc_add_synthesize_declaration_for_property): 1086 Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when 1087 checking for an existing @synthesize or @dynamic declaration. 1088 Search for an inherited @property declaration if none is found in 1089 the local interface. If the required instance variable does not 1090 exist, return instead of trying to continue to prevent a compiler 1091 crash later. Check that the instance variable is not already 1092 being used by another @synthesize. 1093 (objc_add_dynamic_declaration_for_property): Iterate over 1094 IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an 1095 existing @synthesize or @dynamic declaration. 1096 (objc_synthesize_getter): Search for the getter declaration in 1097 protocols and superclasses as well. 1098 (objc_synthesize_setter): Search for the setter declaration in 1099 protocols and superclasses as well. 1100 11012010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1102 1103 * objc-act.c (lookup_property): When checking categories, also 1104 check the protocols attached to each. 1105 (objc_add_property_declaration): Determine the 1106 PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up 1107 error message. Search for an existing property declaration with 1108 the same name which would be inherited from the class hiearchy, 1109 and produce an error if it has incompatible attributes. 1110 (check_methods): Changed second parameter. If the method is a 1111 getter or setter for a property, do not warn if it is inherited as 1112 opposed to implemented directly in the class. 1113 (check_protocol): Updated calls to check_methods. 1114 (finish_class): Do not determine the PROPERTY_SETTER_NAME and 1115 PROPERTY_GETTER_NAME here; this is now done earlier, in 1116 objc_add_property_declaration. 1117 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments. 1118 11192010-11-06 Nicola Pero <nicola.pero@meta-innovation.com> 1120 1121 Fixed using the Objective-C 2.0 dot-syntax with self and super. 1122 * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New. 1123 (maybe_make_artificial_property_decl): Added 'implementation' 1124 argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when 1125 looking up getters or setters for a class. If an implementation 1126 is specified, search it as well for a getter or setter. 1127 (objc_maybe_build_component_ref): Updated calls to 1128 maybe_make_artificial_property_decl; added code to deal with 1129 'self' and 'super' and with methods declared locally in the 1130 implementation. Store the getter call expression in the 1131 PROPERTY_REF instead of throwing it away. 1132 (objc_build_class_component_ref): Updated calls to 1133 maybe_make_artificial_property_decl, and store the getter call 1134 expression in PROPERTY_REF instead of throwing it away. 1135 (lookup_method_static): Implemented 1136 OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option. 1137 (objc_gimplify_property_ref): Do not build the getter method call 1138 here; instead use the one stored in the PROPERTY_REF. If it's not 1139 there, produce helpful error messages. 1140 * objc-tree.def (PROPERTY_REF): Increased the number of operands 1141 from 2 to 3. Updated comments. 1142 * objc-act.h (PROPERTY_REF_GETTER_CALL): New. 1143 11442010-11-06 Iain Sandoe <iains@gcc.gnu.org> 1145 1146 PR target/44981 1147 * objc-act.c (objc_build_string_object): Amend for renamed hook. 1148 (objc_string_ref_type_p): New. 1149 (objc_check_format_arg): New. 1150 11512010-11-04 Nicola Pero <nicola.pero@meta-innovation.com> 1152 1153 Fixed using the Objective-C 2.0 dot-syntax with class names. 1154 * objc-act.c (objc_build_class_component_ref): New. 1155 11562010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1157 1158 * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a 1159 category. 1160 (objc_type_valid_for_messaging): Added 'accept_classes' argument; 1161 if set to 'true', return 'true' for Class objects. Do not remove 1162 more than on pointer indirection. 1163 (objc_add_property_declaration): Only warn about 'assign' 1164 semantics for Objective-C objects if warn_property_assign_default; 1165 and do not warn if the property is readonly or if the type is a Class. 1166 (objc_finish_foreach_loop): Updated calls to 1167 objc_type_valid_for_messaging. 1168 11692010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1170 1171 Implemented -fobjc-std=objc1 flag. 1172 * objc-act.c (objc_start_class_interface): If attributes are 1173 specified when flag_objc1_only is set, print an error. 1174 (objc_start_category_interface): Same change. 1175 (objc_start_protocol): Same change. 1176 (objc_add_method_declaration): Same change. 1177 (objc_start_method_definition): Same change. 1178 (objc_build_keyword_decl): Same change. 1179 (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when 1180 flag_objc1_set is set, print an error. 1181 (objc_set_method_opt): If flag_objc1_only is set, print an error. 1182 (objc_add_property_declaration): Same change. 1183 (objc_add_synthesize_declaration): Same change. 1184 (objc_add_dynamic_declaration): Same change. 1185 (objc_finish_foreach_loop): Same change. 1186 (objc_maybe_build_component_ref): If flag_objc1_only is set, 1187 return immediately. 1188 11892010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1190 1191 * objc-act.c (maybe_make_artificial_property_decl): New. 1192 (objc_maybe_build_component_ref): Call 1193 maybe_make_artificial_property_decl if a property can not be 1194 found. Do not call objc_finish_message_expr if 1195 PROPERTY_HAS_NO_GETTER. 1196 * objc-act.h Updated comments. 1197 (PROPERTY_HAS_NO_GETTER): New. 1198 (PROPERTY_HAS_NO_SETTER): New. 1199 * objc-tree.def: Updated comment. 1200 12012010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1202 1203 Implemented format and noreturn attributes for Objective-C methods. 1204 * objc-act.c (objc_start_method_definition): If method attributes 1205 are specified emit a warning and ignore them. 1206 (build_objc_method_call): Moved deprecation warnings from here ... 1207 (objc_finish_message_expr): to here. Do not emit deprecation 1208 warnings if the receiver is of type 'id'. 1209 (really_start_method): Install 'deprecation' and 'noreturn' 1210 attributes. 1211 (objc_decl_method_attributes): Carefully filter out the list of 1212 attributes, allowing only "noreturn", "format", "sentinel" and 1213 "deprecated". In the case of "format", adjust the arguments. 1214 Always process the attributes in the same way no matter if 1215 "sentinel" is in the list or not. 1216 12172010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1218 1219 * objc-act.c (objc_maybe_build_component_ref): Warn about using 1220 deprecated properties. 1221 (objc_maybe_printable_name): Support PROPERTY_DECL. 1222 12232010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 1224 1225 Implemented Objective-C 2.0 property accessors. 1226 * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL, 1227 OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL, 1228 OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL. 1229 (objc_getProperty_decl): New. 1230 (objc_setProperty_decl): New. 1231 (objc_copyStruct_decl): New. 1232 (objc_getPropertyStruct_decl): New. 1233 (objc_setPropertyStruct_decl): New. 1234 * objc-act.c (build_objc_property_accessor_helpers): New. 1235 (synth_module_prologue): Call 1236 build_objc_property_accessor_helpers. 1237 (lookup_ivar): New. 1238 (objc_synthesize_getter): Implemented synthesizing getters that 1239 work with properties that are not nonatomic, assign properties. 1240 (objc_synthesize_setter): Implemented synthesizing setters that 1241 work with properties that are not nonatomic, assign properties. 1242 12432010-10-30 Nicola Pero <nicola.pero@meta-innovation.com> 1244 1245 Implemented Objective-C 2.0 @property, @synthesize and @dynamic. 1246 * objc-tree.def (PROPERTY_REF): New. 1247 * objc-act.h: Added comments for all the PROPERTY_ macros. 1248 (PROPERTY_NAME): Use DECL_NAME. 1249 (PROPERTY_COPIES): Removed. 1250 (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it. 1251 (PROPERTY_NONATOMIC): New. 1252 (objc_property_assign_semantics): Make it a typedef. 1253 (PROPERTY_ASSIGN_SEMANTICS): New. 1254 (PROPERTY_DYNAMIC): New. 1255 (PROPERTY_REF_OBJECT): New. 1256 (PROPERTY_REF_PROPERTY_DECL): New. 1257 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed. 1258 (in_objc_property_setter_name_context): Removed. 1259 (objc_add_property_declaration): Removed copies and ivar arguments 1260 and code supporting them. Fixed recovering when readonly and 1261 setter attributes are specified. Removed support for @property in 1262 @implementation context. Updated error message. Double-check 1263 that a property does not have a DECL_INITIAL. Validate the 1264 property assign semantics and emit appropriate errors and 1265 warnings. Check for duplicate property declarations. Set 1266 DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC, 1267 PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new 1268 PROPERTY_DECL. Do not set PROPERTY_COPIES. Set 1269 PROPERTY_IVAR_NAME to NULL_TREE. 1270 (objc_build_getter_call): Renamed to 1271 objc_maybe_build_component_ref. If the property is not found in 1272 the interface, search in the protocol list. Do not generate the 1273 getter call; instead, build and return a PROPERTY_REF. 1274 (objc_is_property_ref): New. 1275 (objc_setter_func_call): Removed. 1276 (get_selector_from_reference): Removed. 1277 (is_property): Removed. 1278 (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr. 1279 Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from 1280 the PROPERTY_REF. Generate an error if the property is read-only. 1281 (build_property_reference): Removed. 1282 (objc_finish_message_expr): Removed check to produce "readonly 1283 property can not be set" error when 1284 in_objc_property_setter_name_context. We now generate the error 1285 earlier, in objc_maybe_build_modify_expr, which will only generate 1286 the setter call if the property is readwrite. 1287 (check_methods): Recognize dynamic properties. 1288 (check_methods_accessible): Same change. 1289 (objc_build_property_ivar_name): Removed. 1290 (objc_build_property_setter_name): Dropped bool argument. Always 1291 add the ':' at the end. 1292 (objc_gen_one_property_datum): Removed. 1293 (objc_process_getter_setter): Removed. 1294 (objc_synthesize_getter): Mark 'klass' argument as unused. Use 1295 PROPERTY_GETTER_NAME instead of PROPERTY_NAME. Set the 1296 DECL_SOURCE_LOCATION of the new method to be the same as the one 1297 for the @synthesize. Always use PROPERTY_IVAR_NAME as it is 1298 instead of trying to guess what it should be. Removed use of 1299 CLASS_IVARS. Use the location of @synthesize for c_finish_return 1300 and c_end_compound_statement. 1301 (objc_synthesize_setter): Mark 'klass' argument as unused. Use 1302 PROPERTY_SETTER_NAME instead of trying to guess what it should be. 1303 Set the DECL_SOURCE_LOCATION of the new method to be the same as 1304 the one for the @synthesize. Always use PROPERTY_IVAR_NAME as it 1305 is instead of trying to guess what it should be. Removed use of 1306 CLASS_IVARS. Use the location of @synthesize for c_finish_return 1307 and c_end_compound_statement. Emit an error and keep going, 1308 instead of aborting, if the setter prototype does not have the 1309 expected argument. 1310 (objc_add_synthesize_declaration_for_property): New. 1311 (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from 1312 all arguments. Improved error message. Filled in the rest of the 1313 function, which used to be a placeholder, with an actual 1314 implementation. 1315 (objc_add_dynamic_declaration_for_property): New. 1316 (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all 1317 arguments. Improved error message. Filled in the rest of the 1318 function, which used to be a placeholder, with an actual 1319 implementation. 1320 (objc_gen_property_data): Rewritten. 1321 (finish_class): Added explicit switch cases for 1322 CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and 1323 PROTOCOL_INTERFACE_TYPE. Added a default switch case which is 1324 gcc_unreachable. Rewritten the processing of properties, in 1325 particular to not synthesize prototypes for getters and setters if 1326 they already exist and to install the getter and setter names into 1327 PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME. Do not generate 1328 warnings about setter, getter and ivar property attributes. 1329 (objc_lookup_ivar): Removed support for properties. 1330 (objc_gimplify_property_ref): New. 1331 (objc_gimplify_expr): Use a switch. In case of a PROPERTY_REF, call 1332 objc_gimplify_property_ref. 1333 13342010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 1335 1336 * objc-act.c (objc_add_property_declaration): Added arguments to 1337 pass the various property attributes that were parsed with the 1338 property declaration. Process arguments to determine the final 1339 property attributes and produce error messages as appropriate. 1340 Added temporary code to keep the compiler silent about variables 1341 set but not used - for new attributes that are only checked but 1342 have no effect yet. 1343 (property_readonly): Removed. 1344 (property_setter): Removed. 1345 (property_getter): Removed. 1346 (property_ivar): Removed. 1347 (property_copies): Removed. 1348 (objc_set_property_attr): Removed. 1349 * objc-act.h (enum property_assign_semantics): New. 1350 13512010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 1352 1353 * objc-act.c (objc_add_property_variable): Renamed to 1354 objc_add_property_declaration. Added location argument. Updated 1355 warnings and errors to use it. Use error, not fatal_error, if a 1356 property declaration is found outside an interface or 1357 implementation context. 1358 13592010-10-24 Nicola Pero <nicola.pero@meta-innovation.com> 1360 1361 * objc-act.c (objc_build_keyword_decl): Updated comments. Do not 1362 emit a warning that method parameter attributes are unimplemented. 1363 Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL. 1364 (start_method_def): Copy attributes from each KEYWORD_DECL into 1365 the corresponding PARM_DECL. 1366 (objc_warn_deprecated_use): Removed. 1367 (build_objc_method_call): Call warn_deprecated_use, not 1368 objc_warn_deprecated_use. 1369 (objc_maybe_printable_name): Do not try to get the identifier name 1370 of DECLs that we don't recognize. Immediately return NULL for them. 1371 (objc_printable_name): Removed C++-specific case, which is no 1372 longer used. Updated comments. 1373 13742010-10-23 Nicola Pero <nicola.pero@meta-innovation.com> 1375 1376 * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments. 1377 (objc_demangle): Return NULL if demangling can not be done because 1378 the string to demangle is not an Objective-C mangled method name. 1379 Be smarter in demangling method names so that at least for methods 1380 with no arguments we are able to almost always demangle '_' correctly. 1381 Updated comments. 1382 (objc_maybe_printable_name): New. 1383 (objc_printable_name): Call objc_maybe_printable_name. If it 1384 returns NULL, call cxx_printable_name in Objective-C++. 1385 13862010-10-21 Iain Sandoe <iains@gcc.gnu.org> 1387 1388 Based on the CFString implementation in FSF apple/trunk branch. 1389 1390 * objc/objc-act.c (objc_build_string_object): Handle CFStrings. 1391 13922010-10-21 Nicola Pero <nicola.pero@meta-innovation.com> 1393 1394 * objc-act.c (get_objc_string_decl): Use a switch instead of a 1395 chain of ifs. Use gcc_unreachable instead of abort. 1396 (add_objc_string): Same change. 1397 (generate_protocol_list): Same change - twice. 1398 (synth_id_with_class_suffix): Same change. 1399 (build_keyword_selector): Same change - twice. 1400 (objc_build_message_expr): Same change. 1401 (objc_build_selector_expr): Same change. 1402 (check_methods): Same change - and added missing gcc_unreachable 1403 for default case. 1404 (check_methods_accessible): Same change - twice, and added missing 1405 gcc_unreachable for default case in one of them. 1406 (start_class): Same change - and added missing gcc_unreachable for 1407 default case. 1408 (continue_class): Same change. 1409 (objc_gen_property_data): Same change. 1410 (finish_class): Same change. 1411 (encode_type_qualifiers): Added missing gcc_unreachable. 1412 (encode_type): Small code tidy up to reduce duplicated code. Use 1413 gcc_unreachable instead of abort - twice. 1414 (encode_gnu_bitfield): Use a switch instead of a chain of ifs - 1415 twice. Added missing gcc_unreachable for default case - twice. 1416 (dump_interface): Use a switch instead of a chain of ifs. 1417 (handle_impent): Same change. 1418 14192010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1420 1421 * objc-act.h (objc_inherit_code): Removed. 1422 * objc-act.c (objc_inherit_code): Removed. 1423 (objc_set_method_type): Removed. 1424 (objc_build_method_signature): Added is_class_method argument. 1425 Use it instead of the global objc_inherit_code variable. 1426 (objc_add_method_declaration): Same change. 1427 (objc_start_method_definition): Same change. 1428 (objc_generate_cxx_ctor_or_dtor): Updated call to 1429 objc_start_method_definition. Do not call objc_set_method_type. 1430 (adjust_type_for_id_default): Mark as inline. 1431 (objc_synthesize_getter): Updated call to 1432 objc_start_method_definition. Do not set objc_inherit_code. 1433 (objc_synthesize_setter): Updated call to 1434 objc_start_method_definition. Do not set objc_inherit_code. 1435 14362010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1437 1438 Merge from 'apple/trunk' branch on FSF servers. Obvious updates 1439 to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to 1440 get it to compile in the current trunk. 1441 1442 2006-01-27 Fariborz Jahanian <fjahanian@apple.com> 1443 1444 Radar 4345837 1445 * objc/objc-act.c (hash_class_name_enter): New. 1446 (hash_class_name_lookup): New. 1447 (objc_declare_alias): Enter alias name into hash table. 1448 (objc_declare_class): Enter class name into hash table. 1449 (objc_is_class_name): Do a hash look up of class name. 1450 (hash_init): Initialize the two new hash tables. 1451 * objc-act.h: Added cls_name_hash_list and als_name_hash_list 1452 declarations, removed class_chain and alias_chain. 1453 14542010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 1455 1456 * objc-lang.c (finish_file): Removed. 1457 * objc-act.c (objc_finish_file): Renamed to 1458 objc_write_global_declarations. Do not try to instantiate C++ 1459 templates when compiling Objective-C++ as this is now 1460 automatically done before this function is called. Do not check 1461 for syntax-only run or PCH generation as this is done by the 1462 callers. 1463 * objc-act.h (objc_finish_file): Removed. 1464 14652010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1466 1467 Implemented parsing @synthesize and @dynamic for 1468 Objective-C/Objective-C++. 1469 * objc-act.c (objc_add_synthesize_declaration): New. 1470 (objc_add_dynamic_declaration): New. 1471 14722010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1473 1474 * objc-act.c (lookup_and_install_protocols): Return NULL if passed 1475 error_mark_node. 1476 14772010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1478 1479 Merge from 'apple/trunk' branch on FSF servers. 1480 1481 2006-03-10 Fariborz Jahanian <fjahanian@apple.com> 1482 1483 Radar 4407151 1484 * objc/objc-act.c (objc_is_class_name): template parameter is not 1485 an objective class name. 1486 (objc_generate_cxx_cdtors): Check for the null 1487 objc_implementation_context. 1488 14892010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 1490 1491 Merge from 'apple/trunk' branch on FSF servers. 1492 1493 2005-11-08 Fariborz Jahanian <fjahanian@apple.com> 1494 1495 Radar 4330422 1496 * objc/objc-act.c (objc_non_volatilized_type): New 1497 1498 2005-10-07 Fariborz Jahanian <fjahanian@apple.com> 1499 1500 Radar 4204796 1501 * objc-act.c (objc_build_volatilized_type): Build 'volatilzed' 1502 types with proper attribute set and correctly. 1503 (objc_volatilize_decl): Remove unneeded code. 1504 (objc_type_quals_match): Use the new attribute to check on 1505 'volatilzed' type. 1506 (hash_init): removed unneeded code. 1507 15082010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> 1509 1510 Merge from 'apple/trunk' branch on FSF servers. 1511 1512 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> 1513 1514 Radar 4133425 1515 * objc-act.c (objc_diagnose_private_ivar): New. 1516 15172010-10-17 Iain Sandoe <iains@gcc.gnu.org> 1518 1519 * objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and 1520 make its type 'objc_ivar_visibility_kind'. 1521 (objc_start_class_interface): Update to use visibility enum. 1522 (objc_start_class_implementation): Likewise. 1523 (objc_set_visibility): Update to use visibility enum, warn that 1524 @package is handle as per @public. 1525 (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE. 1526 * objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and 1527 make its type 'objc_ivar_visibility_kind'. 1528 15292010-10-14 Iain Sandoe <iains@gcc.gnu.org> 1530 1531 merge from FSF apple 'trunk' branch. 1532 2006 Fariborz Jahanian <fjahanian@apple.com> 1533 1534 Radars 4436866, 4505126, 4506903, 4517826 1535 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New. 1536 property_readonly, property_getter, property_setter, property_ivar, 1537 property_copies, in_objc_property_setter_name_context: New vars. 1538 (objc_set_property_attr): New. 1539 (objc_add_property_variable): New. 1540 (lookup_property_in_list): New. 1541 (lookup_property): New. 1542 (objc_build_getter_call): New. 1543 (objc_setter_func_call): New. 1544 (get_selector_from_reference): New. 1545 (objc_build_setter_call): New. 1546 (is_property): New. 1547 (build_property_reference): New. 1548 (objc_finish_message_expr): Detect readonly property and warn. 1549 (objc_build_property_ivar_name): New. 1550 (objc_build_property_setter_name): New. 1551 (objc_gen_one_property_datum): New. 1552 (objc_process_getter_setter): New. 1553 (objc_synthesize_getter): New. 1554 (objc_synthesize_setter): New. 1555 (objc_gen_property_data): New. 1556 (finish_class): Generate property data. 1557 (comp_proto_with_proto): Separated from ... 1558 (match_proto_with_proto): ... New. 1559 (objc_lookup_ivar): Handle properties. 1560 * objc-tree.def (PROPERTY_DECL): New tree code. 1561 * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size. 1562 (METHOD_PROPERTY_CONTEXT): New. 1563 (PROPERTY_NAME): New. 1564 (PROPERTY_GETTER_NAME): New. 1565 (PROPERTY_SETTER_NAME): New. 1566 (PROPERTY_IVAR_NAME): New. 1567 (PROPERTY_READONLY): New. 1568 (PROPERTY_COPIES): New. 1569 (TOTAL_CLASS_RAW_IVARS): New. 1570 (CLASS_PROPERTY_DECL): New. 1571 (IMPL_PROPERTY_DECL): New. 1572 * objc-lang.c (objc_init_ts): Update fields for property_decl. 1573 15742010-10-13 Richard Henderson <rth@redhat.com> 1575 1576 * objc-act.c (objc_eh_personality): Update call to 1577 build_personality_function. 1578 15792010-10-13 Iain Sandoe <iains@gcc.gnu.org> 1580 1581 merge from FSF apple 'trunk' branch. 1582 1583 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> 1584 Radar 3803157 (method attributes) 1585 * objc/objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro. 1586 * objc/objc-act.c (objc_decl_method_attributes): New. 1587 (objc_add_method_declaration): Process method's attribute. 1588 (objc_start_method_definition): Ditto. 1589 (build_objc_method_call): Inject method attribute into 1590 built function type. 1591 (objc_method_decl): New. 1592 (objc_warn_deprecated)use): New. 1593 15942010-10-07 Andi Kleen <ak@linux.intel.com> 1595 1596 * Make-lang.in (cc1obj-dummy): Remove. 1597 (cc1obj-checksum): Change to run checksum over object files 1598 and options only. 1599 16002010-10-07 Nicola Pero <nicola.pero@meta-innovation.com> 1601 1602 PR objc/45925 1603 * objc-act.c (objc_finish_foreach_loop): Convert return value of 1604 countByEnumeratingWithState:objects:count: to long unsigned int. 1605 16062010-10-07 Iain Sandoe <iains@gcc.gnu.org> 1607 1608 * objc-act.c (build_objc_method_call): Replace calls to 1609 build_function_call () with the VEC equivalent. Construct parameter 1610 lists as VECs. 1611 16122010-10-07 Iain Sandoe <iains@gcc.gnu.org> 1613 1614 * objc-act.c (objc_build_message_expr): Call mark_exp_read () to 1615 signal that the receiver has been used. 1616 16172010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 1618 1619 * README: Obsolete file removed. 1620 16212010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 1622 1623 Implemented fast enumeration for Objective-C. 1624 * objc-act.c (build_fast_enumeration_state_template): New. 1625 (TAG_ENUMERATION_MUTATION): New. 1626 (TAG_FAST_ENUMERATION_STATE): New. 1627 (synth_module_prologue): Call build_fast_enumeration_state_template() and set up 1628 objc_enumeration_mutation_decl. 1629 (objc_create_temporary_var): Allow providing a name to temporary 1630 variables. 1631 (objc_build_exc_ptr): Updated calls to 1632 objc_create_temporary_var(). 1633 (next_sjlj_build_try_catch_finally): Same change. 1634 (objc_finish_foreach_loop): New. 1635 * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP, 1636 OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template, 1637 objc_enumeration_mutation_decl. 1638 1639 Merge from 'apple/trunk' branch on FSF servers. 1640 1641 2006-04-12 Fariborz Jahanian <fjahanian@apple.com> 1642 1643 Radar 4507230 1644 * objc-act.c (objc_type_valid_for_messaging): New routine to check 1645 for valid objc object types. 1646 (objc_finish_foreach_loop): Check for invalid objc objects in 1647 foreach header. 1648 16492010-10-05 Nicola Pero <nicola.pero@meta-innovation.com> 1650 1651 Merge from 'apple/trunk' branch on FSF servers. 1652 1653 2005-10-17 Fariborz Jahanian <fjahanian@apple.com> 1654 1655 Radar 4290840 1656 * objc-act.c (objc_start_method_definition): Check for 1657 error_mark_node for the selector name and make a quick exit. 1658 16592010-10-04 Andi Kleen <ak@linux.intel.com> 1660 1661 * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule. 1662 16632010-09-30 Iain Sandoe <iains@gcc.gnu.org> 1664 1665 merge from FSF 'apple/trunk' branch. 1666 2006-01-30 Fariborz Jahanian <fjahanian@apple.com> 1667 1668 Radar 4386773 1669 * objc/objc-act.c (objc_set_method_opt): New function. 1670 (objc_start_protocol, objc_finish_interface): Reset 1671 objc_method_optional_flag flag. 1672 (objc_add_method_declaration): Pass on the new 1673 flag to objc_add_method. 1674 (objc_add_method): Add optional methods to new chain in 1675 the protocol class. 1676 * objc/objc-act.h (CLASS_OPTIONAL_CLS_METHODS, 1677 CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol 1678 class's optional method chains. 1679 16802010-09-30 Nicola Pero <nicola.pero@meta-innovation.com> 1681 1682 Merge from 'apple/trunk' branch on FSF servers. 1683 1684 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 1685 1686 Radar 4278236 1687 * objc-act.c (objc_declare_class): Pick the right 1688 type tree. 1689 16902010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 1691 1692 Merge from 'apple/trunk' branch on FSF servers. 1693 1694 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 1695 1696 Radar 4281748 1697 * objc-act.c (objc_check_global_decl): New 1698 16992010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 1700 1701 * objc-act.c (objc_is_reserved_word): Removed. 1702 17032010-09-28 Iain Sandoe <iains@gcc.gnu.org> 1704 1705 * objc-act.c (objc_add_method_declaration): Handle and ignore 1706 attributes. 1707 (objc_start_method_definition): Likewise. 1708 (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor. 1709 (objc_build_keyword_decl): Handle and ignore attributes. 1710 17112010-09-28 Richard Henderson <rth@redhat.com> 1712 1713 * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info. 1714 17152010-09-28 Iain Sandoe <iains@gcc.gnu.org> 1716 1717 * objc-act.c (objc_start_class_interface): Handle and ignore attributes. 1718 (objc_start_category_interface): Likewise. 1719 (objc_start_protocol): Likewise. 1720 17212010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 1722 1723 Merge from 'apple/trunk' branch on FSF servers. 1724 1725 2005-08-23 Stuart Hastings <stuart@apple.com> 1726 Ziemowit Laski <zlaski@apple.com> 1727 1728 Radar 4209854 1729 * objc-act.c (objc_decay_parm_type): New function. 1730 (get_arg_type_list): Decay types for all named arguments. 1731 (objc_push_parm): Rebuild the PARM_DECL if its type has 1732 been decayed. 1733 17342010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 1735 1736 * objc-act.c (encode_type): Fixed encoding enums with the next 1737 runtime. 1738 17392010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 1740 1741 Merge from 'apple/trunk' branch on FSF servers. 1742 1743 2005-07-18 Ziemowit Laski <zlaski@apple.com> 1744 1745 Radar 4175534 1746 * objc-act.c (objc_compare_types): A new silent comparison 1747 mode (-4), differing from regular comparison (-3) in that 1748 'false' is returned instead of issuing warnings. 1749 17502010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 1751 1752 * objc-act.c (encode_type): Do not add 'r' with the next runtime. 1753 (encode_aggregate_within): Reorganized code to be more readable. 1754 (encode_aggregate_fields): Updated second argument to be 'bool' 1755 instead of 'int'. 1756 17572010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 1758 1759 PR objc/45763 1760 PR objc/25450 1761 PR objc/25464 1762 * objc-act.c: Improved comments for encoding functions. 1763 (encode_aggregate_within): For the GNU runtime, rewritten some 1764 obsfuscated code to clarify the various cases. 1765 (encode_aggregate): Function removed. 1766 (encode_array): Generate an error if asked to encode an incomplete 1767 array as part of generating instance variables. Else, when 1768 encoding an incomplete array inside a structure, encode it as an 1769 array of zero size. 1770 (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as 1771 '^c' instead of '*'. 1772 (encode_gnu_bitfield): Encode enumerated types exactly in the same 1773 type as integer types instead of using a hardcoded 'i'. If asked 1774 to encode a non-integer type as a bitfield, do not abort 1775 compilation immediately; instead generate an error, then skip the 1776 type. 1777 (encode_type): Use a 'switch' instead of a sequence of 'if's. 1778 Added a 'default' clause that gets executed if the type can not be 1779 matched, and that encodes it as '?' (unknown) and produces a 1780 warning. For the GNU runtime, encode enumerated types exactly in 1781 the same way as integer types instead of using a hardcoded 'i'. 1782 Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'. 1783 Encode C++ reference types as pointers. Call encode_vector to 1784 encode vectors. 1785 (encode_vector): New function. 1786 17872010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 1788 1789 Merge from 'apple/trunk' branch on FSF servers. I modified the 1790 changes to be used only when compiling for the NeXT runtime. 1791 1792 2005-10-10 Fariborz Jahanian <fjahanian@apple.com> 1793 1794 Radar 4301047 1795 1796 * objc-act.c (encode_type): Remove the hack. 1797 1798 2005-07-20 Ziemowit Laski <zlaski@apple.com> 1799 1800 Radar 4136935 1801 * objc-act.c (pointee_is_readonly): New function. 1802 (encode_pointer, encode_aggregate_within, encode_type): 1803 Attempt to emulate GCC 3.3 when generating type encodings. 1804 18052010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 1806 1807 Merge from 'apple/trunk' branch on FSF servers. 1808 1809 2005-12-15 Fariborz Jahanian <fjahanian@apple.com> 1810 1811 Radar 4229905 1812 * objc-act.c (objc_have_common_types): New function. 1813 1814 2005-06-22 Ziemowit Laski <zlaski@apple.com> 1815 1816 Radar 4154928 1817 * objc-act.c (objc_common_type): New function. 1818 18192010-09-27 Richard Guenther <rguenther@suse.de> 1820 1821 * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT. 1822 (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P. 1823 18242010-09-26 Nicola Pero <nicola.pero@meta-innovation.com> 1825 1826 * objc-act.c: Removed historical, obsolete comment at the top of 1827 the file. 1828 18292010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 1830 1831 PR objc/23710 1832 * objc-act.c (objc_start_method_definition): Do not abort upon a 1833 'method definition not in @implementation context' error. Return 1834 'false' instead. 1835 18362010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 1837 1838 PR objc/25965 1839 * objc-act.c (objc_get_interface_ivars): New function. 1840 (objc_collecting_ivars): New variable. 1841 (continue_class): Set and reset objc_collecting_ivars for context. 1842 18432010-09-15 Nicola Pero <nicola.pero@meta-innovation.com> 1844 1845 Merge from 'apple/trunk' branch on FSF servers. 1846 1847 2006-03-09 Fariborz Jahanian <fjahanian@apple.com> 1848 1849 Radar 4457381 1850 * objc/objc-act.c (objc_finish_message_expr): Look for message in 1851 @class's protocol list. 1852 1853 2006-02-07 Fariborz Jahanian <fjahanian@apple.com> 1854 1855 Radar 4219590 1856 * objc/objc-act.c (objc_start_method_definition): Initialize 1857 break/continue labels. 1858 1859 2005-08-22 Ziemowit Laski <zlaski@apple.com> 1860 1861 Radar 4174166 1862 * objc-act.c (objc_compare_types): Compare function 1863 pointers; indicate success if the right-hand side has 1864 a return type that is covariant, and the argument types 1865 contravariant, with those of the left side. 1866 1867 2005-08-22 Ziemowit Laski <zlaski@apple.com> 1868 1869 Radar 4216500 1870 * objc-act.c (objc_get_protocol_qualified_type): When looking 1871 at a typedef, retrieve the precise type it describes (rather 1872 than merely looking up a class by name). 1873 18742010-09-10 Nicola Pero <nicola.pero@meta-innovation.com> 1875 1876 * objc/objc-act.c (objc_begin_try_stmt): Generate an error if 1877 -fobjc-exceptions was not used. (objc_build_throw_stmt): Same 1878 change. 1879 18802010-07-15 Nathan Froyd <froydnj@codesourcery.com> 1881 1882 * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN. 1883 18842010-07-10 Iain Sandoe <iains@gcc.gnu.org> 1885 1886 PR objc/44140 1887 * objc-act.c: build_objc_string_decl() remove declaration. 1888 (finish_var_decl): Remove forcing of var output and marking 1889 as "Used". 1890 (init_def_list): Use integer_zero_node. 1891 (init_objc_symtab): Use integer_zero_node, make the short 1892 integer type specific on relevant nodes. 1893 (generate_objc_symtab_decl): Remove call to 1894 forward_declare_categories(). Use null_pointer_node where 1895 appropriate. 1896 (build_module_descriptor): Comment and mark this item as 1897 DECL_PRESERVE_P. 1898 (generate_static_references): Use gcc_unreachable instead of 1899 abort (). 1900 (diagnose_missing_method): New. 1901 (build_next_selector_translation_table): New. 1902 (build_gnu_selector_translation_table): New. 1903 (add_objc_string): Merge code from build_objc_string_decl... 1904 ... and delete build_objc_string_decl(). 1905 (generate_dispatch_table): Make integer types explicit. 1906 (generate_category): Pass implent and arrange for the data 1907 to be extracted within the routine. Do not start new vars, 1908 but finish the ones collcted during parsing. 1909 (generate_shared_structures): Likewise. 1910 (finish_objc): Reorder code so that we finish variables before 1911 referencing them. Save the global data before calling meta-data 1912 creation routines, and pass the current reference to the two 1913 main routines. Only call generate_objc_image_info () for the 1914 NeXT runtime. 1915 (generate_classref_translation_entry): Comment on and make this 1916 item DECL_PRESERVE_P. 1917 (handle_class_ref): Use varpool interfaces, comment on and make 1918 this item DECL_PRESERVE_P. 1919 (handle_impent): Likewise. 1920 (generate_objc_image_info): Only generate when the content is 1921 non-zero. Make integer types explict. 1922 19232010-07-03 Nathan Froyd <froydnj@codesourcery.com> 1924 1925 PR objc/24867 1926 * objc-act.c (build_sized_array_type): New function. 1927 (add_objc_string): Use it. 1928 (generate_protocol_list): Likewise. 1929 (generate_objc_image_info): Likewise. 1930 (add_field_decl): New function. 1931 (objc_build_struct): Use a VEC rather than building a TREE_LIST. 1932 (generate_struct_by_value_array): Use add_field_decl. 1933 (build_objc_symtab_template): Likewise. 1934 (build_module_descriptor): Likewise. 1935 (build_objc_exception_stuff): Likewise. 1936 (build_protocol_template): Likewise. 1937 (build_method_prototype_list_template): Likewise. 1938 (build_method_prototype_template): Likewise. 1939 (build_category_template): Likewise. 1940 (build_selector_template): Likewise. 1941 (build_class_template): Likewise. 1942 (build_super_template): Likewise. 1943 (build_ivar_template): Likewise. 1944 (build_ivar_list_template): Likewise. 1945 (build_method_list_template): Likewise. 1946 (build_method_template): Likewise. 1947 19482010-06-28 Steven Bosscher <steven@gcc.gnu.org> 1949 1950 * objc-act.c: Do not include except.h. 1951 19522010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com> 1953 1954 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC 1955 allocation. 1956 1957 * objc-act.c (objc_volatilize_decl): Likewise. 1958 (objc_build_string_object): Likewise. 1959 (hash_init): Likewise. 1960 (hash_enter): Likewise. 1961 (hash_add_attr): Likewise. 1962 (add_class): Likewise. 1963 (start_class): Likewise. 1964 19652010-06-05 Steven Bosscher <steven@gcc.gnu.org> 1966 1967 * objc-act.c: Update include path for moved files. 1968 * objc-lang.c: Likewise. 1969 * config-lang.in: Update paths in gtfiles for files in c-family/. 1970 19712010-06-01 Nathan Froyd <froydnj@codesourcery.com> 1972 1973 * objc-act.c (build_next_objc_exception_stuff): Give setjmp a 1974 varargs type instead of a zero-argument type. 1975 19762010-05-30 Nathan Froyd <froydnj@codesourcery.com> 1977 1978 * objc-act.c (synth_module_prologue): Use build_function_type_list 1979 instead of build_function_type. 1980 (build_module_initializer_routine): Likewise. 1981 (build_next_objc_exception_stuff): Likewise. 1982 (build_objc_exception_stuff): Likewise. 1983 19842010-05-27 Joseph Myers <joseph@codesourcery.com> 1985 1986 * objc-act.c: Include diagnostic-core.h instead of diagnostic.h. 1987 * Make-lang.in (objc/objc-act.o): Update dependencies. 1988 19892010-05-25 Steven Bosscher <steven@gcc.gnu.org> 1990 1991 * objc-act.h: Do not include gimple.h. 1992 * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h. 1993 Include gimple.h. Explain why except.h has to be included. 1994 * objc-lang.c: Do not include diagnostics.h. 1995 * Make-lang.in: Update dependencies. 1996 19972010-05-25 Nathan Froyd <froydnj@codesourcery.com> 1998 1999 * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance 2000 mismatch code for VECs. 2001 20022010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2003 2004 * objc-act.c (objc_build_constructor): Take a VEC instead of a tree. 2005 Use build_constructor instead of build_constructor_from_list. 2006 (objc_build_string_object): Build a VEC argument for 2007 objc_build_constructor. 2008 (init_def_list): Likewise. 2009 (init_objc_symtab): Likewise. 2010 (init_module_descriptor): Likewise. 2011 (generate_static_references): Likewise. 2012 (build_selector_translation_table): Likewise. 2013 (build_descriptor_table_initializer): Likewise. 2014 (generate_descriptor_table): Likewise. 2015 (build_protocol_initializer): Likewise. 2016 (build_ivar_list_initializer): Likewise. 2017 (generate_ivars_list): Likewise. 2018 (build_dispatch_table_initializer): Likewise. 2019 (generate_dispatch_table): Likewise. 2020 (generate_protocol_list): Likewise. 2021 (build_category_initializer): Likewise. 2022 (build_shared_structure_initializer): Likewise. 2023 (generate_objc_image_info): Likewise. 2024 20252010-04-30 Iain Sandoe <iains@gcc.gnu.org> 2026 2027 PR objc++/32052 2028 * objc-act.c (encode_aggregate_within): Encode structure tags 2029 with template args for ObjC++. 2030 20312010-04-30 Steven Bosscher <steven@gcc.gnu.org> 2032 2033 * objc-act.c: Do not include varray.h. 2034 20352010-04-07 Jakub Jelinek <jakub@redhat.com> 2036 2037 PR c/18624 2038 * objc-act.c (finish_var_decl, objc_begin_catch_clause, 2039 really_start_method, get_super_receiver, handle_class_ref): Set 2040 DECL_READ_P in addition to TREE_USED. 2041 20422010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2043 2044 PR objc/35996 2045 * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for 2046 -fgnu-runtime and set flag_objc_gc to zero. 2047 20482010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2049 2050 PR objc++/23716 2051 * objc-act.c (build_module_initializer_routine): Make the argument 2052 to objc_start_function NULL_TREE when compiling ObjC++. 2053 20542010-02-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2055 Mike Stump <mikestump@comcast.net> 2056 2057 PR objc/43061 2058 * objc-act.c (finish_var_decl): Set the generated symbols as "used". 2059 20602009-12-17 Shujing Zhao <pearly.zhao@oracle.com> 2061 2062 * objc-act.c (objc_substitute_decl, build_ivar_reference, 2063 get_super_receiver): Update build_indirect_ref calls. 2064 20652009-11-28 Jakub Jelinek <jakub@redhat.com> 2066 2067 * objc-act.c (generate_shared_structures): Remove unused sc_spec and 2068 decl_specs variables. 2069 (objc_build_message_expr): Remove unused loc variable. 2070 (objc_finish_message_expr): Remove unused saved_rtype variable. 2071 (encode_field_decl): Remove unused type variable. 2072 2073 PR obj-c++/42156 2074 * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for 2075 type variants that don't have it initialized yet. 2076 20772009-09-14 Jan Hubicka <jh@suse.cz> 2078 2079 * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON. 2080 20812009-09-14 Richard Henderson <rth@redhat.com> 2082 2083 * objc-act.c (objc_init_exceptions): Don't call 2084 default_init_unwind_resume_libfunc. 2085 (objc_build_exc_ptr): Use __builtin_eh_pointer. 2086 20872009-09-13 Richard Guenther <rguenther@suse.de> 2088 Rafael Avila de Espindola <espindola@google.com> 2089 2090 * objc-act.c (objc_eh_runtime_type): Export. 2091 (objc_init_exceptions): Remove. Move warning code ... 2092 (objc_begin_try_stmt): ... here 2093 (objc_build_throw_stmt): ... and here. 2094 (objc_eh_personality_decl): New. 2095 (objc_eh_personality): New function. 2096 * objc-act.h (objc_eh_runtime_type): Declare. 2097 (objc_eh_personality): Likewise. 2098 * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define. 2099 (LANG_HOOKS_EH_PERSONALITY): Likewise. 2100 21012009-09-03 Diego Novillo <dnovillo@google.com> 2102 2103 * objc-lang.c (lang_hooks): Remove const qualifier. 2104 21052009-08-20 Richard Guenther <rguenther@suse.de> 2106 2107 * objc-act.c: Include c-lang.h 2108 * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency. 2109 21102009-07-17 Aldy Hernandez <aldyh@redhat.com> 2111 Manuel López-Ibáñez <manu@gcc.gnu.org> 2112 2113 PR 40435 2114 * objc-act.c: Add location argument to all calls to 2115 build_fold_addr_expr. 2116 21172009-07-14 Taras Glek <tglek@mozilla.com> 2118 Rafael Espindola <espindola@google.com> 2119 2120 * Make-lang.in (objc.install-plugin): New target for 2121 installing plugin headers. 2122 21232009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2124 2125 * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by 2126 EXPR_LOCATION. 2127 21282009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2129 2130 * objc-act.c: Replace %J by an explicit location. Update all 2131 calls. 2132 21332009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2134 2135 * objc-act.c: Replace %H by an explicit location. Update all 2136 calls. 2137 21382009-06-22 Steven Bosscher <steven@gcc.gnu.org> 2139 2140 PR objc/28050 2141 * objc-act.c (objc_build_message_args): Return if ARGS is the 2142 error_mark_node. 2143 21442009-06-19 Ian Lance Taylor <iant@google.com> 2145 2146 * objc-act.c (objc_in_struct, objc_struct_types): Remove. 2147 (objc_struct_info): New static variable. 2148 (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct 2149 and &objc_struct_types, to start_struct. 2150 (objc_finish_struct): Likewise for finish_struct. 2151 21522009-06-15 Ian Lance Taylor <iant@google.com> 2153 2154 * objc-act.c (objc_start_function): Don't set 2155 label_context_stack_se or label_context_stack_vm. 2156 21572009-06-12 Aldy Hernandez <aldyh@redhat.com> 2158 2159 * objc-act.c (finish_var_decl): Pass location to finish_decl. 2160 (objc_get_parm_info): Same. 2161 (get_super_receiver): Same. 2162 * objc-act.c (objc_build_component_ref): Pass location to 2163 build_compound_ref. 2164 (build_module_initializer_routine): Pass location to 2165 c_end_compound_stmt. 2166 (objc_generate_static_init_call): Pass location to build_stmt. 2167 (build_typed_selector_reference): New location argument. 2168 (build_selector_reference): Same. 2169 (objc_substitute_decl): Pass location to build_array_ref. 2170 (next_sjlj_build_try_catch_finally): Pass location to build_stmt. 2171 (objc_begin_catch_clause): Same. 2172 (objc_finish_try_stmt): Same. 2173 (objc_finish_catch_clause): Pass location to c_end_compound_stmt. 2174 (objc_build_throw_stmt): New argument. 2175 (generate_shared_structures): Pass location to build_c_cast. 2176 (objc_build_message_expr): Use local location. 2177 (objc_finish_message_expr): Use input_location. 2178 (build_objc_method_call): New argument. 2179 (objc_build_selector_expr): Same. 2180 (get_super_receiver): Pass location to build_c_cast, 2181 build_modify_expr, build_compound_expr. 2182 * objc-act.c: Add location to all calls to start_struct, build_decl, 2183 finish_struct. 2184 21852009-06-09 Ian Lance Taylor <iant@google.com> 2186 2187 * objc-act.c (objc_gimplify_expr): Change return type to int. 2188 * objc-act.h: Update declaration. 2189 21902009-06-08 Alexandre Oliva <aoliva@redhat.com> 2191 2192 * objc-act.c (objc_init): Skip print_struct_values during 2193 -fcompare-debug-second. 2194 21952009-06-03 Ian Lance Taylor <iant@google.com> 2196 2197 * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and 2198 $(SYSTEM_H). 2199 22002009-05-27 Ian Lance Taylor <iant@google.com> 2201 2202 * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to 2203 $(LINKER). 2204 (cc1obj$(exeext)): Likewise. 2205 22062009-05-26 Ian Lance Taylor <iant@google.com> 2207 2208 * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER). 2209 (cc1obj$(exeext)): Likewise. 2210 22112009-05-20 Ian Lance Taylor <iant@google.com> 2212 2213 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather 2214 than NULL_TREE to build_special_member_call. 2215 22162009-05-10 Ian Lance Taylor <iant@google.com> 2217 2218 * objc-act.c (objc_building_struct): New static variable. 2219 (objc_in_struct, objc_struct_types): New static variables. 2220 (objc_start_struct, objc_finish_struct): New static functions. 2221 (generate_struct_by_value_array): Call objc_start_struct instead 2222 of start_struct, and call objc_finish_struct instead of 2223 finish_struct. 2224 (objc_build_struct, build_objc_symtab_template): Likewise. 2225 (build_module_descriptor): Likewise. 2226 (build_next_objc_exception_stuff): Likewise. 2227 (build_protocol_template): Likewise. 2228 (build_method_prototype_list_template): Likewise. 2229 (build_method_prototype_template): Likewise. 2230 (build_category_template, build_selector_template): Likewise. 2231 (build_class_template, build_super_template): Likewise. 2232 (build_ivar_template, build_ivar_list_template): Likewise. 2233 (build_method_list_template): Likewise. 2234 (build_method_template): Likewise. 2235 22362009-05-10 Joseph Myers <joseph@codesourcery.com> 2237 2238 * objc-act.c: Include intl.h. 2239 (objc_lookup_protocol): Use complete sentences for diagnostics 2240 with %qE for identifiers and translating results of 2241 gen_type_name_0 to locale character set. 2242 (objc_check_decl, check_protocol_recursively, 2243 lookup_and_install_protocols, objc_build_string_object, 2244 objc_get_class_reference, objc_declare_alias, objc_declare_class, 2245 objc_get_class_ivars, error_with_ivar, check_duplicates, 2246 objc_finish_message_expr, objc_build_protocol_expr, 2247 objc_build_selector_expr, build_ivar_reference, objc_add_method, 2248 add_category, add_instance_variable, objc_is_public, 2249 check_methods, check_methods_accessible, check_protocol, 2250 start_class, finish_class, start_protocol, really_start_method, 2251 get_super_receiver, objc_lookup_ivar): Use %E and %qE for 2252 identifiers in diagnostics. Translate generated text to locale 2253 character set as needed. 2254 (check_protocol, check_protocols): Change name parameter to type 2255 tree. 2256 (lang_report_error_function): Remove. 2257 22582009-04-27 Ian Lance Taylor <iant@google.com> 2259 2260 * objc-act.c (objc_gimplify_expr): Add casts to enum type. 2261 22622009-04-24 Ian Lance Taylor <iant@google.com> 2263 2264 * objc-act.c (get_super_receiver): Update calls to 2265 build_modify_expr to pass new argument. 2266 22672009-04-21 Taras Glek <tglek@mozilla.com> 2268 2269 * objc-act.c: Update GTY annotations to new syntax 2270 * objc-act.h: Likewise 2271 22722009-04-21 Joseph Myers <joseph@codesourcery.com> 2273 2274 * ChangeLog: Add copyright and license notices. 2275 22762009-04-20 Ian Lance Taylor <iant@google.com> 2277 2278 * objc-act.c (objc_rewrite_function_call): Change parameter from 2279 params to first_param. Change all callers. 2280 22812009-03-30 Dominique d'Humieres <dominiq@lps.ens.fr> 2282 2283 PR bootstrap/39583 2284 * objc-act.c (in_late_binary_op): Define for Objective-C++. 2285 22862009-03-29 Joseph Myers <joseph@codesourcery.com> 2287 2288 PR c/456 2289 PR c/5675 2290 PR c/19976 2291 PR c/29116 2292 PR c/31871 2293 PR c/35198 2294 * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op. 2295 22962008-12-05 Sebastian Pop <sebastian.pop@amd.com> 2297 2298 PR bootstrap/38262 2299 * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS, 2300 remove GMPLIBS. 2301 23022008-10-06 Aldy Hernandez <aldyh@redhat.com> 2303 2304 * objc-act.c (objc_build_string_object): Pass location to 2305 build_unary_op. 2306 (init_def_list): Same. 2307 (init_objc_symtab): Same. 2308 (init_module_descriptor): Same. 2309 (build_module_initializer_routine): Same. 2310 (generate_static_references): Same. 2311 (build_typed_selector_reference): Same. 2312 (add_objc_string): Same. 2313 (objc_substitute_decl): Same. 2314 (objc_build_ivar_assignment): Same. 2315 (objc_build_global_assignment): Same. 2316 (objc_build_strong_cast_assignment): Same. 2317 (generate_protocols): Same. 2318 (build_protocol_initializer): Same. 2319 (build_dispatch_table_initializer): Same. 2320 (generate_protocol_list): Same. 2321 (build_category_initializer): Same. 2322 (build_shared_structure_initializer): Same. 2323 (generate_shared_structures): Same. 2324 (objc_build_protocol_expr): Same. 2325 (build_ivar_reference): Same. 2326 (get_super_receiver): Same. 2327 23282008-09-23 Aldy Hernandez <aldyh@redhat.com> 2329 2330 * objc-act.c (next_sjlj_build_enter_and_setjmp): Call 2331 c_common_truthvalue_conversion with location. 2332 (next_sjlj_build_catch_list): Same. 2333 (next_sjlj_build_try_catch_finally): Same. 2334 23352008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com> 2336 2337 PR objc/37460 2338 * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define. 2339 * objc-act.h (objc_get_callee_fndecl): Remove prototype. 2340 * objc-act.c (objc_get_callee_fndecl): Kill. 2341 23422008-09-17 Jan Hubicka <jh@suse.cz> 2343 2344 PR c++/18071 2345 * objc/objc-act.c (objc_finish_method_definition): Do not set 2346 DECL_INLINE. 2347 23482008-09-01 Aldy Hernandez <aldyh@redhat.com> 2349 2350 * objc-act.c (build_typed_selector_reference): Pass input_location to 2351 build_unary_op calls. 2352 (build_selector_reference): Same, but to build_array_ref. 2353 (objc_substitute_decl): Same. 2354 (build_ivar_reference): Same, but to build_indirect_ref. 2355 (get_super_receiver): Same. 2356 23572008-07-28 Richard Guenther <rguenther@suse.de> 2358 2359 Merge from gimple-tuples-branch. 2360 2361 2008-07-18 Aldy Hernandez <aldyh@redhat.com> 2362 2363 * Make-lang.in (objc-lang.o): Depend on GIMPLE_H. 2364 (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H. 2365 * objc-act.h: Include gimple.h instead of tree-gimple.h. 2366 * ipa-reference.c: Same. 2367 2368 2007-11-10 Aldy Hernandez <aldyh@redhat.com> 2369 2370 * objc-act.c (objc_gimplify_expr): Change pre and post to sequences. 2371 * objc-act.h (objc_gimplify_expr): Change prototype accordingly. 2372 23732008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2374 2375 * objc-act.c: Fix comment typos. 2376 23772008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2378 2379 * objc-act.c (objc_start_class_interface, 2380 objc_start_category_interface, objc_start_class_implementation, 2381 objc_start_category_implementation, objc_build_struct, 2382 generate_static_references, build_private_template, 2383 lookup_category, objc_add_method, add_category, 2384 add_instance_variable, objc_is_public, conforms_to_protocol, 2385 start_class, continue_class, finish_class): Avoid C++ keywords. 2386 23872008-07-14 Jason Merrill <jason@redhat.com> 2388 2389 PR objc++/36723 2390 * objc-act.c (objc_build_constructor): Update C++ tweak. 2391 23922007-07-14 Rafael Ávila de Espíndola <espindola@google.com> 2393 2394 * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead 2395 of DECL_IN_SYSTEM_HEADER. 2396 23972008-07-11 Ian Lance Taylor <iant@google.com> 2398 2399 * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS, 2400 etc., not just when OBJCPLUS is defined. 2401 24022008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2403 2404 * objc-act.c (setup_string_decl, objc_build_string_object, 2405 hash_interface, eq_interface, objc_begin_try_stmt, 2406 encode_method_prototype, build_ivar_list_initializer, 2407 objc_build_encode_expr): Fix for -Wc++-compat. 2408 24092008-05-12 Tomas Bily <tbily@suse.cz> 2410 2411 * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr): 2412 Use CONVERT_EXPR_P. 2413 24142008-04-23 Paolo Bonzini <bonzini@gnu.org> 2415 2416 * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT. 2417 24182008-04-03 Tom Tromey <tromey@redhat.com> 2419 2420 * Make-lang.in (objc_OBJS): New variable. 2421 24222008-03-27 Tom Tromey <tromey@redhat.com> 2423 2424 * Make-lang.in: Revert automatic dependency patch. 2425 24262008-03-27 Douglas Gregor <doug.gregor@gmail.com> 2427 2428 PR obj-c++/35704 2429 * objc-act.c (objc_build_component_ref): Fix call to 2430 finish_class_member_access_expr. 2431 (objc_generate_cxx_ctor_or_dtor): Fix call to 2432 build_special_member_call. 2433 24342008-03-25 Andrew Pinski <pinskia@gmail.com> 2435 2436 PR objc/29197 2437 * objc-act.c (encode_type): Handle when type is error_mark_node. 2438 (objc_push_parm): Handle when the type of parm is error_mark_node. 2439 24402008-03-25 Tom Tromey <tromey@redhat.com> 2441 2442 * Make-lang.in (objc_OBJS): New variable. 2443 (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove. 2444 24452008-03-21 Andreas Tobler <a.tobler@schweiz.org> 2446 2447 PR bootstrap/35660 2448 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to 2449 MAYBE_CLASS_TYPE_P. 2450 (objc_generate_cxx_cdtors): Likewise. 2451 (add_instance_variable): Likewise. 2452 24532008-02-26 Tom Tromey <tromey@redhat.com> 2454 2455 * objc-act.c (objc_init): Remove old location code. 2456 24572008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2458 2459 PR other/35107 2460 * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS). 2461 24622007-07-30 Nick Clifton <nickc@redhat.com> 2463 2464 * Make-lang.in: Change copyright header to refer to version 3 of 2465 the GNU General Public License and to point readers at the 2466 COPYING3 file and the FSF's license web page. 2467 * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h, 2468 config-lang.in, objc-lang.c: Likewise. 2469 24702007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2471 2472 * objc-act.c (objc_get_callee_fndecl): Constify. 2473 * objc-act.h (objc_get_callee_fndecl): Likewise. 2474 24752007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2476 2477 * objc-act.c (volatilized_hash, volatilized_eq, string_hash, 2478 string_eq): Constify. 2479 24802007-04-04 Stuart Hastings <stuart@apple.com> 2481 2482 PR 31281 2483 * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl. 2484 24852007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 2486 2487 * Make-lang.in: Add dummy lang.install-pdf target. 2488 24892007-02-18 Kazu Hirata <kazu@codesourcery.com> 2490 2491 * objc/objc-act.c: Fix comment typos. 2492 24932007-02-15 Sandra Loosemore <sandra@codesourcery.com> 2494 Brooks Moses <brooks.moses@codesourcery.com> 2495 Lee Millward <lee.millward@codesourcery.com> 2496 2497 * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors. 2498 (objc_get_callee_fndecl): Likewise. 2499 25002007-01-23 Andrew Pinski <pinskia@gmail.com> 2501 2502 PR objc/27438 2503 * objc-act.c (objc_add_static_instance): Mark the decl as 2504 TREE_USED. 2505 25062007-01-20 Andrew Pinski <pinskia@gmail.com> 2507 2508 PR objc/30479 2509 * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead 2510 of htab_hash_pointer. 2511 (lookup_interface): Likewise. 2512 (add_class): Likewise. 2513 25142007-01-02 Douglas Gregor <doug.gregor@gmail.com> 2515 2516 * objc-act.c (objc_build_volatilized_type): Keep track of 2517 canonical types. 2518 (objc_get_protocol_qualified_type): Ditto. 2519 25202006-11-02 Andreas Tobler <a.tobler@schweiz.org> 2521 2522 * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and 2523 content where we called cp_finish_file. 2524 25252006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2526 2527 * objc-act.c (synth_module_prologue): Replace calls to 2528 builtin_function with add_builtin_function. 2529 (build_next_objc_exception_stuff): Replace calls to 2530 builtin_function with add_builtin_function. 2531 (build_objc_exception_stuff): Replace calls to 2532 builtin_function with add_builtin_function. 2533 25342006-10-10 Brooks Moses <bmoses@stanford.edu> 2535 2536 * Make-lang.in: Added empty "objc.pdf" target. 2537 25382006-09-26 Andrew Pinski <pinskia@physics.uc.edu> 2539 2540 PR objc/29195 2541 * objc-act.c (objc_push_parm): If we change the type of the 2542 decl, relayout the decl. 2543 25442006-09-19 Eric Christopher <echristo@apple.com> 2545 2546 * objc-act.c (JBLEN): Rename to OBJC_JBLEN, 2547 default to something innocuous. 2548 (build_next_objc_exception_stuff): Rename JBLEN. 2549 25502006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2551 2552 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. 2553 25542006-07-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2555 2556 PR obj-c++/28434 2557 * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes. 2558 25592006-06-06 Mike Stump <mrs@apple.com> 2560 2561 * objc-act.c: Remove prototype for objc_build_volatilized_type. 2562 25632006-05-24 Mike Stump <mrs@apple.com> 2564 2565 * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN. 2566 25672006-05-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2568 2569 PR objc/27240 2570 * objc-act.c (objc_is_public): Return early on invalid type. 2571 25722006-03-02 Fariborz Jahanian <fjahanian@apple.com> 2573 2574 * objc-act.c (init_module_descriptor): Remove file name from 2575 module descriptor. 2576 (gen_type_name_0): Fix ICE when issuing warning. 2577 25782006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2579 * Make-lang.in (OBJC): Remove 2580 (OBJECTIVE-C): Remove 2581 (objective-c): Remove 2582 (.PHONY): Remove objective-c and ObjC 2583 25842005-12-14 Andrew Pinski <pinskia@physics.uc.edu> 2585 2586 PR objc/25360 2587 * objc/objc-act.c (encode_type): Encode Complex types as 'j' followed 2588 by the inner type. 2589 25902005-12-12 Andrew Pinski <pinskia@physics.uc.edu> 2591 2592 PR objc/25348 2593 * objc-act.c (encode_array): Handle arrays to zero sized types. 2594 25952005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2596 2597 * Make-lang.in (objc.all.build, objc.install-normal): Remove. 2598 25992005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2600 2601 * Make-lang.in: Remove all dependencies on s-gtype. 2602 26032005-12-02 Richard Guenther <rguenther@suse.de> 2604 2605 * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp 2606 next_sjlj_build_exc_extract, next_sjlj_build_catch_list, 2607 next_sjlj_build_try_catch_finally, objc_begin_catch_clause, 2608 build_objc_method_call, objc_rewrite_function_call): Use buildN 2609 instead of build. 2610 26112005-10-20 Geoffrey Keating <geoffk@apple.com> 2612 2613 * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW 2614 on objc_msgSend and like builtin functions. 2615 26162005-10-17 Andreas Krebbel <krebbel1@de.ibm.com> 2617 2618 * objc-act.c (objc_build_component_ref): Adjust call to 2619 finish_class_member_access_expr due to a changed prototype. 2620 26212005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 2622 2623 PR objc/23306 2624 * objc-act.c (generate_strings): Remove and move code to 2625 finish decl to ... 2626 (add_objc_string): here when creating a new string decl. 2627 (finish_objc): Don't call generate_strings. 2628 26292005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 2630 2631 PR objc/23381 2632 * objc-act.c (next_sjlj_build_try_catch_finally): Set 2633 TREE_SIDE_EFFECTS on catch_seq after building it. 2634 26352005-08-09 Andrew Pinski <pinskia@physics.uc.edu> 2636 2637 part of PR objc/21992 2638 * objc-act.c (handle_class_ref): The ref decl is always referenced. 2639 26402005-07-20 Giovanni Bajo <giovannibajo@libero.it> 2641 2642 Make CONSTRUCTOR use VEC to store initializers. 2643 * objc-act.c (objc_build_constructor): Use build_constructor_from_list 2644 instead of build_constructor. 2645 26462005-07-08 Daniel Berlin <dberlin@dberlin.org> 2647 2648 * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is 2649 removed. 2650 * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common. 2651 (KEYWORD_KEY_NAME): Use decl_minimal. 2652 (METHOD_SEL_NAME): Ditto.. 2653 (METHOD_SEL_ARGS): Use decl_non_common. 2654 (METHOD_ADD_ARGS): Ditto. 2655 (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common. 2656 (METHOD_DEFINITION): Ditto. 2657 (METHOD_ENCODING): Ditto. 2658 * objc-lang.c: (objc_init_ts): New function. 2659 26602005-07-07 Ziemowit Laski <zlaski@apple.com> 2661 2662 * objc-act.c (objc_build_struct): Pass in an actual @interface 2663 instead of its name, and annotate the struct created (and all 2664 existing variants thereof) with the @interface. 2665 (objc_compare_types): Treat forward-declared ObjC classes 2666 as stand-alone (root) classes for purposes of type comparisons. 2667 (build_private_template): Move some code to objc_build_struct(). 2668 26692005-07-07 Ziemowit Laski <zlaski@apple.com> 2670 2671 PR objc/22274 2672 * objc-act.c (objc_build_string_object): For GNU-style constants, 2673 use the @interface type rather than the built-in type. 2674 26752005-07-03 Kazu Hirata <kazu@codesourcery.com> 2676 2677 * Make-lang.in (cc1plus-checksum.c): Use 2678 build/genchecksum$(build_exeext), not build/genchecksum$(exeext). 2679 26802005-07-02 Joseph S. Myers <joseph@codesourcery.com> 2681 2682 * objc-act.c: Use %q to quote in diagnostics. 2683 26842005-07-02 Joseph S. Myers <joseph@codesourcery.com> 2685 2686 * objc-act.c: Use '+' flag instead of %J. Use 'q' flag for 2687 quoting. 2688 26892005-06-30 Ziemowit Laski <zlaski@apple.com> 2690 2691 * objc-act.c (objc_build_volatilized_type): New function. 2692 (objc_volatilize_decl): Call objc_build_volatilized_type() 2693 instead of build_qualified_type(). 2694 26952005-06-29 Ziemowit Laski <zlaski@apple.com> 2696 2697 * objc-act.c (objc_build_internal_const_str_type): New function. 2698 (check_string_class_template): Use objc_get_class_ivars() instead 2699 of TYPE_FIELDS() to retrieve ivar list. 2700 (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather 2701 than the field itself. 2702 (objc_build_string_object): Synthesize a "__builtin_ObjCString" 2703 type and use it to lay out compile-time string objects. 2704 * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type): 2705 New. 2706 27072005-06-28 Paul Brook <paul@codesourcery.com> 2708 2709 * objc-act.c (objc_init_exceptions): Call 2710 default_init_unwind_resume_libfunc. 2711 27122005-06-27 Ziemowit Laski <zlaski@apple.com> 2713 2714 * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO 2715 portion of TYPE_LANG_SPECIFIC info for all variants of 2716 a class before calling finish_struct(), and restore 2717 same TYPE_OBJC_INFO afterwards. 2718 27192005-06-25 Kelley Cook <kcook@gcc.gnu.org> 2720 2721 * all files: Update FSF address in copyright headers. 2722 27232005-06-15 Joseph S. Myers <joseph@codesourcery.com> 2724 2725 * objc-act.c (my_build_string_pointer): New. 2726 (objc_get_class_reference, get_super_receiver): Call 2727 my_build_string_pointer instead of my_build_string when building 2728 function arguments. 2729 27302005-05-25 Mike Stump <mrs@mrs.kithrup.com> 2731 2732 * objc-act.c (volatilized_hash): Avoid warnings on 64-bit 2733 machines. 2734 27352005-05-24 Ziemowit Laski <zlaski@apple.com> 2736 2737 * objc-act.c (objc_build_struct): New function. 2738 (objc_derived_from_p): Likewise. 2739 (objc_build_component_ref): Likewise. 2740 (objc_copy_binfo): Likewise. 2741 (objc_xref_basetypes): Likewise. 2742 (objc_lookup_protocol): Likewise. 2743 (objc_compare_protocols): Likewise. 2744 (objc_volatilize_decl): Likewise. 2745 (encode_aggregate_fields): Likewise. 2746 (volatilized_hash): Likewise. 2747 (volatilized_eq): Likewise. 2748 (objc_compare_types): Likewise. 2749 (objc_type_quals_match): Likewise. 2750 (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro 2751 of same name. 2752 (get_class_ivars): Add second parameter indicating if entire 2753 hierarchy is desired. 2754 (struct volatilized_type): New type. 2755 (volatilized_htab): New hash table. 2756 (objc_types_compatible_p, objc_comptypes): Remove functions. 2757 (synth_module_prologue): Do not initialize 'unused_list'. 2758 (objc_get_class_reference): Fix ObjC++ impedance mismatches. 2759 (objc_declare_alias): Implement as a typedef. 2760 (objc_substitute_decl, objc_gimplify_expr): Reformat. 2761 (objc_get_class_ivars): Adjust call to get_class_ivars(). 2762 (next_sjlj_build_enter_and_setjmp, synth_forward_declarations, 2763 build_ivar_reference, get_super_receiver): Call 2764 objc_build_component_ref() instead of build_component_ref(). 2765 (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of 2766 objc_comptypes(). 2767 (build_private_template): Call objc_build_struct() instead of 2768 start_struct() and finish_struct(). 2769 (hash_init): Initialize volatilized_htab. 2770 (objc_is_public): Adjust calls to objc_get_ivars(); adjust 2771 ObjC++ impedance mismatches. 2772 (encode_aggregate_within): Streamline by calling 2773 encode_aggregate_fields(). 2774 * objc-act.h (objc_types_compatible_p): Remove prototype. 2775 (OCTI_UNUSED_LIST, unused_list): Remove slot. 2776 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove. 2777 27782005-05-18 Geoffrey Keating <geoffk@apple.com> 2779 2780 * Make-lang.in (cc1obj-dummy): New. 2781 (cc1obj-checksum.c): New. 2782 (cc1obj-checksum.o): New. 2783 (cc1obj): Add cc1obj-checksum.o. 2784 27852005-05-18 Mike Stump <mrs@apple.com> 2786 2787 PR objc/21641 2788 * objc-act.c (struct interface_tuple): Mark it up for GC. 2789 (interface_htab): It is really a struct interface_tuple. 2790 27912005-05-17 Ziemowit Laski <zlaski@apple.com> 2792 Mike Stump <mrs@apple.com> 2793 2794 Yet more Objective-C++... 2795 2796 * objc-act.c (objc_finish_try_stmt): Add return value. 2797 (objc_build_synchronized): Likewise. 2798 2799 * objc-act.c (objc_is_gcable_type): Add. 2800 (objc_substitute_decl): Add. 2801 (objc_build_ivar_assignment): Add. 2802 (objc_build_global_assignment): Add. 2803 (objc_build_strong_cast_assignment): Add. 2804 (objc_is_ivar_reference_p): Add. 2805 (objc_is_global_reference_p): Add. 2806 (objc_generate_write_barrier): Add. 2807 (objc_rewrite_function_call): Add. 2808 (objc_gimplify_expr): Add Objective-C++ support. 2809 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 2810 (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add. 2811 (INIT_TYPE_OBJC_INFO): Add Objective-C++ support. 2812 (DUP_TYPE_OBJC_INFO): Likewise. 2813 (struct imp_entry): Add field has_cxx_cdtors. 2814 (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL, 2815 OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL, 2816 OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL, 2817 OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL, 2818 OCTI_ASSIGN_STRONGCAST_DECL. 2819 (umsg_fast_decl): Add. 2820 (objc_assign_ivar_decl): Add. 2821 (objc_assign_ivar_fast_decl): Add. 2822 (objc_assign_global_decl): Add. 2823 (objc_assign_strong_cast_decl): Add. 2824 (objc_method_list_ptr): Add. 2825 (objc_method_proto_list_ptr): Add. 2826 (objc_ivar_list_ptr): Add. 2827 2828 * objc-act.c (should_call_super_dealloc): Add. 2829 (OBJC_VERSION): Bump to 6. 2830 (objc_is_gcable_type): Add. 2831 (objc_substitute_decl): Add. 2832 (objc_build_ivar_assignment): Add. 2833 (objc_build_global_assignment): Add. 2834 (objc_build_strong_cast_assignment): Add. 2835 (objc_is_gcable_p): Add. 2836 (objc_is_ivar_reference_p): Add. 2837 (objc_is_global_reference_p): Add. 2838 (generate_shared_structures): Add flags parameter. 2839 (objc_generate_cxx_ctor_or_dtor): Add. 2840 (objc_generate_cxx_cdtors): Add. 2841 (add_class): Add name parameter. 2842 (objc_types_share_size_and_alignment): Add. 2843 (comp_proto_with_proto): Add strict parameter. 2844 (CLS_HAS_CXX_STRUCTORS): Add. 2845 (TAG_ASSIGNIVAR): Add. 2846 (TAG_ASSIGNGLOBAL): Add. 2847 (TAG_ASSIGNSTRONGCAST): Add. 2848 (TAG_MSGSEND_FAST): Add. 2849 (TAG_ASSIGNIVAR_FAST): Add. 2850 (TAG_CXX_CONSTRUCT): Add. 2851 (TAG_CXX_DESTRUCT): Add. 2852 (OBJC_LOOKUP_CLASS): Add. 2853 (OBJC_LOOKUP_NO_SUPER): Add. 2854 (objc_finish_file): Add pch support. 2855 (objc_finish_implementation): Add Objective-C++ support. 2856 (synth_module_prologue): Likewise. 2857 (synth_module_prologue): Add fast dispatching. 2858 (objc_get_class_reference): Add Objective-C++ support. 2859 (objc_generate_write_barrier): Likewise. 2860 (next_sjlj_build_enter_and_setjmp): Likewise. 2861 (objc_begin_try_stmt): Likewise. 2862 (build_next_objc_exception_stuff): Add fast ivar support. 2863 (build_private_template): Mark the record as used so debug 2864 information is generated. 2865 (build_protocol_template): Add Objective-C++ support. 2866 (objc_method_parm_type) Likewise. 2867 (objc_generate_cxx_ctor_or_dtor): Likewise. 2868 (objc_generate_cxx_cdtors): Likewise. 2869 (build_protocol_initializer): Likewise. 2870 (build_category_template): Likewise. 2871 (build_class_template): Likewise. 2872 (build_method_list_template): Likewise. 2873 (build_category_initializer): Likewise. 2874 (build_shared_structure_initializer): Likewise. 2875 (objc_finish_message_expr): Likewise. 2876 (build_objc_method_call): Add fast dispatch support. 2877 (lookup_method_static): Add support to end search at superclasses. 2878 (add_method_to_hash_list): Add strict parameter to 2879 comp_proto_with_proto. 2880 (objc_add_method): Likewise. 2881 (objc_add_method): Also set the interface_value. 2882 (add_instance_variable): Add Objective-C++ support. 2883 (objc_is_public): Likewise. 2884 (start_class): Likewise. 2885 (continue_class): Likewise. 2886 (encode_aggregate_within): Likewise. 2887 (start_method_def): Likewise. 2888 (objc_start_function): Clear current_function_returns_value 2889 and current_function_returns_null. 2890 (really_start_method): Add Objective-C++ support. 2891 (objc_finish_method_definition): Add warning for missing 2892 [super dealloc]. 2893 (finish_objc): Add Objective-C++ support. 2894 (generate_objc_image_info): Likewise. 2895 (objc_lookup_ivar): Likewise. 2896 * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise. 2897 (INIT_TYPE_OBJC_INFO): Likewise. 2898 (DUP_TYPE_OBJC_INFO): Likewise. 2899 29002005-04-23 DJ Delorie <dj@redhat.com> 2901 2902 * objc-act.c: Adjust warning() callers. 2903 29042005-04-21 Roger Sayle <roger@eyesopen.com> 2905 2906 * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing 2907 this field of an objc method decl. 2908 * objc-act.c (build_method_decl): Take an additional "ellipsis" 2909 argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate. 2910 (objc_build_method_signature): Accept additional "ellipsis" 2911 argument and pass it to build_method_decl. 2912 (get_arg_type_list, start_method_def, gen_method_decl): Use 2913 the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the 2914 TREE_OVERFLOW field of a TREE_LIST node. 2915 29162005-04-20 Joseph S. Myers <joseph@codesourcery.com> 2917 2918 PR c/12913 2919 * objc-act.c (objc_start_function): Create stack level for context 2920 of identifiers with variably modified type. 2921 29222005-03-30 Joseph S. Myers <joseph@codesourcery.com> 2923 2924 PR c/772 2925 PR c/17913 2926 * objc-act.c (objc_start_function): Push context on 2927 label_context_stack. 2928 29292005-03-23 Joseph S. Myers <joseph@codesourcery.com> 2930 2931 * objc-act.c (next_sjlj_build_enter_and_setjmp, 2932 next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally): 2933 Call c_common_truthvalue_conversion. 2934 29352005-02-25 Joseph S. Myers <joseph@codesourcery.com> 2936 2937 * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o, 2938 objc/objc-parse.c, objc/objc-parse.y): Remove 2939 (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean, 2940 objc.distclean, objc.maintainer-clean): Update for new parser. 2941 * config-lang.in (gtfiles): Update for new parser. 2942 29432005-01-29 Kazu Hirata <kazu@cs.umass.edu> 2944 2945 * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update 2946 copyright. 2947 29482005-01-27 Matt Austern <austern@apple.com> 2949 2950 * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before 2951 calling instantiate_pending_templates. 2952 29532005-01-26 Alexander Malmberg <alexander@malmberg.org> 2954 2955 PR objc/18862 2956 * objc-act.c (build_selector_translation_table): Use 2957 input_location in the diagnostic for the GNU runtime or if 2958 TREE_PURPOSE (chain) is NULL. 2959 29602005-01-25 Alexander Malmberg <alexander@malmberg.org> 2961 2962 PR objc/18408 2963 * objc-act.c (objc_types_compatible_p): New function. 2964 * objc-act.h (objc_types_compatible_p): Declare. 2965 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define. 2966 29672005-01-16 Ziemowit Laski <zlaski@apple.com> 2968 2969 * objc-act.c (objc_push_parm): Call c_type_promotes_to() 2970 via a lang-hook. 2971 29722005-01-15 Ziemowit Laski <zlaski@apple.com> 2973 2974 PR objc/19321 2975 * objc-act.c (get_arg_type_list): Decay function arguments into 2976 pointers. 2977 (objc_push_parm): Likewise; bring PARM_DECL construction closer 2978 in line with what the C front-end does. 2979 (objc_get_parm_info): Call pushdecl() and finish_decl() on 2980 each PARM_DECL, like the C front-end does. 2981 (start_method_def): Remove redundant ARRAY_TYPE decay. 2982 (objc_start_function): Bring closer in line with what the 2983 C front-end does for functions. 2984 29852005-01-14 Mike Stump <mrs@apple.com> 2986 2987 * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so 2988 that -fobjc-exceptions is accepted. 2989 29902004-12-30 Ziemowit Laski <zlaski@apple.com> 2991 2992 PR objc/18971 2993 * objc-act.c (get_arg_type_list, start_method_def): Decay 2994 array arguments into pointers. 2995 (gen_type_name_0): Learn to pretty-print array types. 2996 29972004-12-15 Ziemowit Laski <zlaski@apple.com> 2998 2999 * objc-act.c (build_private_template): Change to return 'void'; do 3000 not set ivar_context, uprivate_record or objc_instance_type. 3001 (objc_comptypes, gen_type_name_0): For types 'id' and 'Class', 3002 retrieve protocol list from the pointee rather than the pointer itself; 3003 check TYPE_HAS_OBJC_INFO(...) precondition before accessing 3004 TYPE_OBJC_PROTOCOL_LIST. 3005 (objc_get_protocol_qualified_type): For types 'id' and 'Class', 3006 construct a variant of the pointee as well as the pointer, and 3007 store protocol information in the former. When creating variants 3008 of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate 3009 TYPE_OBJC_INTERFACE information. 3010 (objc_declare_class): If a TYPE_DECL is looked up, retrieve the 3011 underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE; 3012 for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE 3013 holding an IDENTIFIER_NODE. 3014 (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before 3015 accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead 3016 of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding 3017 an IDENTIFIER_NODE (meaning a @class forward-declaration only). 3018 (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling 3019 lookup_interface(). 3020 (continue_class): For @implementations, set ivar_context, 3021 uprivate_record and objc_instance_type, for @interfaces, call 3022 build_private_template(). 3023 (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing 3024 TYPE_OBJC_INTERFACE. 3025 (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before 3026 accessing TYPE_OBJC_PROTOCOL_LIST. 3027 * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO, 3028 DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC, 3029 SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros. 3030 (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points 3031 to an actual @interface; stored in TYPE_LANG_SPECIFIC(...). 3032 (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in 3033 TYPE_LANG_SPECIFIC(...). 3034 (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete. 3035 (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER, 3036 TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P; 3037 adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST 3038 instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST. 3039 30402004-11-29 Joseph Myers <joseph@codesourcery.com> 3041 3042 PR c/7544 3043 * Make-lang.in (objc/objc-act.o): Update dependencies. 3044 * objc-act.c (objc_finish_file): Call 3045 maybe_apply_pending_pragma_weaks if not OBJCPLUS. 3046 30472004-11-09 Andrew Pinski <pinskia@physics.uc.edu> 3048 3049 PR objc/18406 3050 * obj-act.c (encode_type): 96bits doubles are encoded the 3051 same way as 64bit and 128bit doubles are. 3052 30532004-11-09 Joseph S. Myers <joseph@codesourcery.com> 3054 3055 * objc-act.c: Use %q, %< and %> for quoting in diagnostics. 3056 30572004-11-08 Andrew Pinski <pinskia@physics.uc.edu> 3058 3059 PR objc/16546 3060 * objc-act.c (generate_method_descriptors): Remove setting 3061 the new decls' type to variable_length_type. 3062 (generate_ivar_lists): Likewise. 3063 (generate_dispatch_tables): Likewise. 3064 30652004-10-30 Ziemowit Laski <zlaski@apple.com> 3066 3067 * objc-act.c (objc_lookup_ivar): The new OTHER parameter 3068 contains the result of the ID lookup by the C or C++ 3069 front-end; in class methods, use OTHER if it exists; 3070 in instance methods, use OTHER only if it is locally 3071 declared. 3072 30732004-10-26 Ziemowit Laski <zlaski@apple.com> 3074 3075 * objc-act.c (finish_class): Do not synthesize bogus 3076 'extern objc_object *_Foo;' declarations for @interface Foo. 3077 30782004-10-25 Ziemowit Laski <zlaski@apple.com> 3079 David Ayers <d.ayers@inode.at> 3080 3081 * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED 3082 instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for: 3083 'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *'; 3084 'Class <Protocol> == id' and 'Class <Protocol> == Class'. 3085 (objc_is_id): Add test for 'super'. 3086 (objc_finish_message_expr): Allow for messaging of 'Class <Proto>' 3087 receivers; if class methods are not found in protocol lists, search 3088 for instance methods therein and warn if one is found. Look in 3089 global hash tables for suitable method as a last resort when messaging 3090 'id <Proto>', 'Class <Proto>' and invalid receiver types. 3091 (objc_add_method): Insert instance methods listed in protocols into 3092 the global class method hash table. 3093 * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to 3094 IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in 3095 addition to 'id <Proto>'. 3096 30972004-10-21 Andrew Pinski <pinskia@physics.uc.edu> 3098 3099 PR objc/17923 3100 * objc-act.c (objc_build_string_object): Create a CONST_DECL 3101 for the NeXT runtime case. 3102 31032004-10-02 Kazu Hirata <kazu@cs.umass.edu> 3104 3105 * objc-act.c: Fix comment typos. 3106 31072004-09-24 Ziemowit Laski <zlaski@apple.com> 3108 3109 * objc-act.c (init_objc_symtab, init_module_descriptor, 3110 build_shared_structure_initializer): When initializing 'long' 3111 fields, ensure that the initializer value is also 'long'. 3112 31132004-09-24 Zack Weinberg <zack@codesourcery.com> 3114 3115 * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION 3116 throughout. 3117 (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION. 3118 (build_selector_translation_table): Use %J in diagnostic 3119 instead of diddling input_line. Fix spelling. 3120 31212004-09-21 Ziemowit Laski <zlaski@apple.com> 3122 3123 * objc-act.c (objc_fold_objc_type_ref): New function. 3124 * objc-act.h (objc_fold_objc_type_ref): New prototype. 3125 31262004-09-09 Joseph S. Myers <jsm@polyomino.org.uk> 3127 3128 * objc-act.c (objc_start_function, really_start_method, 3129 objc_get_parm_info, start_method_def): Update to new arg_info 3130 structures. 3131 31322004-09-07 Ziemowit Laski <zlaski@apple.com> 3133 3134 * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of 3135 objc/objc-act.h. 3136 (objc/objc-act.o): Depend on $(HASHTAB_H). 3137 * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and 3138 objcp-decl.h instead of c-tree.h. 3139 (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix, 3140 error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl, 3141 build_protocol_template): Adjust prototypes. 3142 (build_module_initializer_routine, start_class, continue_class, 3143 finish_class, start_method_def, objc_start_function, start_protocol, 3144 build_method_decl, objc_add_method, add_instance_variable, 3145 build_ivar_reference, is_ivar, is_private, get_super_receiver, 3146 build_selector_table_decl, objc_push_parm, objc_get_parm_info, 3147 gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl, 3148 create_field_decl): New prototypes. 3149 (objc_expand_function_end, comp_method_with_proto, objc_expr_last, 3150 gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl, 3151 define_decl, create_builtin_decl, gen_declspecs): Remove prototypes. 3152 (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME. 3153 (CLASS_TYPEDEF_NAME): New. 3154 (TAG_EXECCLASS): Change from a global variable to a #define. 3155 (TAG_RETURN_STRUCT): Delete. 3156 (TAG_GNUINIT): New, holds '__objc_gnu_init' name. 3157 (objc_inherit_code, objc_public_flag): New, moved from c-parse.in. 3158 (string_descriptor): New struct. 3159 (string_htab): New hash table. 3160 (string_hash, string_eq): New prototypes. 3161 (generate_struct_by_value_array): Call create_field_decl() instead of 3162 create_builtin_decl(). 3163 (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS; 3164 In ObjC++ mode, call cxx_init() instead of c_objc_common_init(). 3165 (objc_finish_file): In ObjC++, call instantiate_pending_templates() 3166 and cp_finish_file(). 3167 (define_decl, get_static_reference, get_protocol_reference, 3168 create_builtin_decl): Remove functions. 3169 (objc_start_class_interface, objc_start_category_interface, 3170 objc_start_protocol, objc_continue_interface, objc_finish_interface, 3171 objc_start_class_implementation, objc_start_category_implementation, 3172 objc_continue_implementation, objc_finish_implementation, 3173 objc_set_visibility, objc_set_method_type, 3174 objc_build_method_signature, objc_add_method_declaration, 3175 objc_start_method_definition, objc_add_instance_variable, 3176 objc_get_protocol_qualified_type, create_field_decl, 3177 start_var_decl, finish_var_decl): New functions. 3178 (setup_string_decl): Simplify since it is only called once. 3179 (synth_module_prologue): Call build_class_template(); predefine 'id' 3180 and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug 3181 hooks for duration of function; fix GNU runtime messenger signatures 3182 to correspond to reality; forward-declare '__objc_exec_class' for the 3183 GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate 3184 'extern "C" { ... }' wrappers around synthesized declarations; call 3185 build_protocol_template() and build_category_template(). 3186 (string_hash, string_eq): New functions. 3187 (objc_build_string_object): Check metaclass correctness only once; 3188 store string literals in hash table. 3189 (objc_build_constructor): Do not convert initializer elements; 3190 adjust for ObjC++ impedance mismatch. 3191 (build_objc_symtab_template): Call create_field_decl() instead of 3192 create_builtin_decl(). 3193 (init_objc_symtab): Add missing conversion to initializer element. 3194 (build_metadata_decl): Call start_var_decl() instead of define_decl(). 3195 (generate_objc_symtab_decl): Do not call build_category_template(); 3196 call start_var_decl() and finish_var_decl() instead of start_decl() 3197 and finish_decl(). 3198 (build_module_descriptor): Call create_field_decl() instead of 3199 grokfield(); call start_var_decl() and finish_var_decl() instead of 3200 start_decl() and finish_decl(); always mark module descriptor as 3201 used; move GNU runtime-specific functionality to 3202 build_module_initializer_routine(). 3203 (build_module_initializer_routine): New function, broken off of 3204 build_module_descriptor(). 3205 (objc_static_init_needed_p, objc_generate_static_init_call): New 3206 functions. 3207 (generate_static_references, generate_strings, 3208 build_selector_translation_table, generate_descriptor_table, 3209 generate_ivars_list, generate_dispatch_table, generate_category): Call 3210 start_var_decl() and finish_var_decl() instead of start_decl() and 3211 finish_decl(); build a type directly instead of via groktypename(). 3212 (build_selector_reference_decl, build_selector_table_decl, 3213 build_class_reference_decl, build_protocol_reference, 3214 generate_objc_image_info): Call start_var_decl() instead of 3215 build_decl(). 3216 (build_selector_reference): For GNU runtime, do not call 3217 build_selector_reference_decl(). 3218 (build_selector, build_typed_selector_reference): Always convert 3219 result to the selector type. 3220 (add_objc_string): Cast return value to 'char *'. 3221 (build_method_prototype_template, build_selector_template, 3222 build_method_template): Use actual selector type for fields 3223 pointing to selectors. 3224 (finish_objc): For GNU runtime, call 3225 build_module_initializer_routine() after build_module_descriptor(). 3226 (generate_protocol_list, generate_shared_structures): Call 3227 start_var_decl() and finish_var_decl() instead of start_decl() and 3228 finish_decl(); build a type directly instead of via 3229 groktypename(). 3230 (synth_id_with_class_suffix): Return a string. 3231 (get_arg_type_list): For instance methods, use the instance type for 3232 'self'; do not call groktypename_in_parm_context(). 3233 (build_objc_string_decl): Squash redeclaration errors in ObjC++. 3234 (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME; 3235 handle RECORD_TYPEs in ObjC as well as ObjC++. 3236 (objc_is_id): New function. 3237 (objc_is_object_ptr): Return the canonical type node. 3238 (objc_get_class_ivars): Simplify using get_class_ivars(). 3239 (get_class_ivars): Remove second parameter; create a fresh copy 3240 of the ivar list for each call; do not check for existence of 3241 super class. 3242 (objc_eh_runtime_type): Mark #ifndef OBJCPLUS. 3243 (objc_init_exceptions): When using SJLJ-style exceptions, require 3244 the use of '-fobjc-exceptions' flag; do not require it for DWARF-style 3245 exceptions. 3246 (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use 3247 objc_object_type instead of objc_id_type. 3248 (objc_begin_catch_clause): Convert the incoming PARM_DECL into 3249 a VAR_DECL before placing it in the appropriate scope; do not 3250 call define_decl(); adjust call to c_begin_compound_stmt(); 3251 use objc_object_type instead of objc_id_type. 3252 (build_next_objc_exception_stuff): Call create_field_decl() instead 3253 of create_builtin_decl(); construct type directly instead of calling 3254 groktypename(); use OBJC_VOID_AT_END to mark end of function parameters. 3255 (build_private_template): Adjust call to get_class_ivars(); build 3256 a type directly instead of via groktypename(). 3257 (build_protocol_template, build_method_prototype_list_template, 3258 build_method_prototype_template, build_category_template, 3259 build_selector_template, build_class_template, build_super_template, 3260 build_ivar_template, build_ivar_list_template, 3261 build_method_list_template, build_method_template): 3262 Call create_field_decl() instead of grokfield(). 3263 (objc_method_parm_type): Do not call groktypename(). 3264 (generate_descriptor_table): Call start_var_decl() and 3265 finish_var_decl() instead of start_decl() and finish_decl(). 3266 (generate_method_descriptors, build_protocol_initializer, 3267 generate_dispatch_tables, build_category_initializer, 3268 build_shared_structure_initializer): Do not call groktypename(). 3269 (generate_protocols): Call start_var_decl() and finish_var_decl() 3270 instead of start_decl() and finish_decl(); do not call groktypename(). 3271 (error_with_ivar): Remove last parameter. 3272 (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition 3273 to CLASS_IVARS lists; adjust calls to error_with_ivar(). 3274 (generate_ivar_lists): Convert one of the initializer elements; do 3275 not call groktypename(). 3276 (get_arg_type_list, start_method_def, gen_method_def): Account for 3277 new representation of variable arguments and '...' in Objective-C 3278 methods; add Objective-C++ impedance matching code. 3279 (is_objc_type_qualifier): Remove function. 3280 (adjust_type_for_id_default): Simplify; there is no longer a need to 3281 wade through declspecs. 3282 (lookup_interface, start_class, continue_class, 3283 finish_class, start_method_def, start_protocol, build_method_decl, 3284 objc_add_method, add_instance_variable, build_ivar_reference, 3285 is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue): 3286 Make into static functions. 3287 (receiver_is_class_object): Use new IS_CLASS() macro. 3288 (objc_build_message_expr): Tweak ObjC++ message argument handling; 3289 call objc_finish_message_expr() instead of finish_message_expr(). 3290 (finish_message_expr): Rename to objc_finish_message_expr(); use 3291 OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME. 3292 call gen_type_name() instead of gen_declaration(); call objc_is_id() 3293 instead of using IS_ID and IS_CLASS; Use objc_class_name instead of 3294 calling get_identifier("Class"); handle CONVERT_EXPRs in receiver. 3295 (build_objc_method_call, warn_with_method): Do not call groktypename(). 3296 (build_ivar_reference): Call convert() instead of clobbering in a 3297 type. 3298 (hash_init): Initialize string_htab hash table. 3299 (add_instance_variable): Simplify parameter list; do not call grokfield(); 3300 do not populate CLASS_IVARS list. 3301 (start_class): Check for the existence of super class, if one was specified. 3302 (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not 3303 call build_class_template(); adjust call to get_class_ivars(); call 3304 build_decl(), pushdecl() and finish_decl() instead of define_decl(). 3305 (finish_class): Call build_decl(), pushdecl() and finish_decl() instead 3306 of define_decl(). 3307 (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size. 3308 (start_protocol): Do not call build_protocol_template(); use 3309 PROTOCOL_BINFO_ELTS for the tree vector size. 3310 (encode_type_qualifiers): Do not handle the 'const' qualifier here. 3311 (encode_pointer): Encode 'const char *' as 'r*', for backwards 3312 compatibility. 3313 (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld". 3314 (encode_type): Handle the 'const' qualifier here. 3315 (objc_parmlist): New global variable, sued by objc_push_parm and 3316 objc_get_parm_info(). 3317 (objc_push_parm, objc_get_parm_info): New functions. 3318 (objc_expr_last): Remove function. 3319 (synth_self_and_ucmd_args): For instance methods, use the instance 3320 type for 'self'; call objc_push_parm() instead of push_parm_decl(). 3321 (start_method_def): Do not call push_scope(), declare_parm_level(), 3322 pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last(); 3323 just use objc_push_parm() and objc_get_parm_info(). 3324 (comp_method_with_proto): Remove function. 3325 (objc_types_are_equivalent): Strip away indirections before comparing 3326 underlying types. 3327 (comp_proto_with_proto): Do not call groktypename(); types are no 3328 longer in raw declspec format. 3329 (objc_start_function): New function. 3330 (really_start_method): Call comp_proto_with_proto() instead of 3331 comp_method_with_proto(); call objc_start_function() instead of 3332 hand-crafting a function declarator. 3333 (continue_method_def, objc_expand_function_end): Remove functions. 3334 (get_super_receiver): Call objc_get_current_scope() instead of 3335 get_current_scope(); reference 'super_class' field (instead of 3336 'class'). 3337 (finish_method_def): Rename to objc_finish_method_definition() and 3338 add a function decl parameter; move method encoding call from 3339 objc_expand_function_end(). 3340 (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs, 3341 gen_declaration_1): Remove functions. 3342 (tmpbuf, RAW_DECLSPEC): Remove. 3343 (gen_declaration): Remove second parameter; simplify to deal 3344 with TYPE_P nodes instead of raw declspecs. 3345 (gen_type_name, gen_type_name_0): New functions. 3346 (gen_method_decl): Remove second parameter; call gen_type_name() 3347 instead of gen_declaration_1(). 3348 (dump_interface): Adjust calls to gen_declaration() and 3349 gen_method_decl(); do not allocate a separate string buffer. 3350 (init_objc): Allocate a larger string buffer to accommodate 3351 dump_interface(); adjust call to build_module_descriptor(); 3352 add call to build_module_initializer_routine() for the GNU 3353 runtime. 3354 (generate_classref_translation_entry): Do not call start_decl(); call 3355 finish_var_decl() instead of finish_decl(); call convert() instead of 3356 build_c_cast(). 3357 * objc-act.h (CLASS_OWN_IVARS): Remove accessor. 3358 (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is 3359 gone. 3360 (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New. 3361 (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove. 3362 (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME, 3363 objc_object_type and objc_object_name, respectively. 3364 (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference, 3365 objc_class_name): New. 3366 (IS_CLASS): New macro. 3367 (IS_ID, IS_SUPER): Robustify. 3368 (OCTI_EXECCLASS_DECL, execclass_decl): New. 3369 (finish_file, start_class, continue_class, finish_class, 3370 start_method_def, continue_method_def, finish_method_def, 3371 start_protocol, finish_protocol, objc_build_throw_stmt, 3372 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, 3373 objc_build_synchronized_epilogue, objc_build_try_prologue, 3374 objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue, 3375 objc_build_finally_prologue, objc_build_finally_epilogue, 3376 is_ivar, is_private, is_public, add_instance_variable, objc_add_method, 3377 get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name, 3378 get_class_reference, get_static_reference, get_object_reference, 3379 build_message_expr, finish_message_expr, build_selector_expr, 3380 build_ivar_reference, build_keyword_decl, build_method_decl, 3381 build_protocol_expr, build_objc_string_object, objc_declare_alias, 3382 objc_declare_class, objc_declare_protocols, objc_comptypes, 3383 objc_check_decl, build_encode_expr): Remove prototypes. 3384 (imp_count, cat_count): Make GGC-aware. 3385 (OBJC_SET_TYPE_NAME): New macro. 3386 33872004-09-03 Ziemowit Laski <zlaski@apple.com> 3388 3389 * config-lang.in: Update copyright notice. 3390 (lang_requires): Indicate that ObjC requires C to be built first. 3391 33922004-09-01 Ziemowit Laski <zlaski@apple.com> 3393 3394 * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of 3395 TYPE_NAME. 3396 (build_objc_string_object): Rename to objc_build_string_object(). 3397 (get_class_reference): Rename to objc_get_class_reference(). 3398 (get_class_ivars_from_name): Rename to objc_get_class_ivars(). 3399 (next_sjlj_build_catch_list, get_super_receiver): Call 3400 objc_get_class_reference() instead of get_class_reference(). 3401 (build_keyword_decl): Rename to objc_build_keyword_decl(). 3402 (build_message_expr): Rename to objc_build_message_expr(). 3403 (build_protocol_expr): Rename to objc_build_protocol_expr(). 3404 (build_selector_expr): Rename to objc_build_selector_expr(). 3405 (build_encode_expr): Rename to objc_build_encode_expr(). 3406 * objc-act.h (get_class_ivars_from_name): Rename prototype to 3407 objc_get_class_ivars(). 3408 (get_class_reference): Rename prototype to objc_get_class_reference(). 3409 (build_message_expr): Rename prototype to objc_build_message_expr(). 3410 (build_selector_expr): Rename prototype to objc_build_selector_expr(). 3411 (build_keyword_decl): Rename prototype to objc_build_keyword_decl(). 3412 (build_protocol_expr): Rename prototype to objc_build_prototype_expr(). 3413 (build_objc_string_object): Rename prototype to 3414 objc_build_string_object(). 3415 34162004-09-01 Ziemowit Laski <zlaski@apple.com> 3417 3418 * objc-act.c (lookup_interface): Make function 'static' and add a 3419 local prototype. 3420 (objc_check_decl, get_class_reference, objc_declare_alias, 3421 objc_declare_class, objc_is_object_ptr): Call objc_is_class_name() 3422 instead of is_class_name(). 3423 (get_super_receiver, objc_clear_super_receiver): Call 3424 objc_get_current_scope() instead of get_current_scope(). 3425 (is_class_name): Rename to objc_is_class_name. 3426 (lookup_objc_ivar): Rename to objc_lookup_ivar. 3427 34282004-08-28 Ziemowit Laski <zlaski@apple.com> 3429 3430 * objc-act.c (objc_is_reserved_word): New function. 3431 34322004-08-15 Ziemowit Laski <zlaski@apple.com> 3433 3434 * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H), 3435 $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h. 3436 (objc/objc-parse.o): Do not depend on gtype-objc.h. 3437 * objc-act.c: Do not include gtype-objc.h. 3438 (finish_file): Rename to objc_finish_file(). 3439 * objc-act.h (finish_file): Update copyright notice; remove prototype. 3440 * objc-lang.c: Update copyright notice; include diagnostic.h, 3441 c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include 3442 toplev.h. 3443 (finish_file): New hook routine. 3444 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS, 3445 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION, 3446 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS, 3447 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, 3448 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, 3449 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION, 3450 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL, 3451 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, 3452 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, 3453 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED, 3454 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, 3455 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, 3456 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, 3457 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, 3458 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, 3459 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, 3460 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING, 3461 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, 3462 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, 3463 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE, 3464 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE, 3465 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, 3466 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO, 3467 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS): 3468 Move to c-objc-common.h. 3469 3470 3471Copyright (C) 2004-2014 Free Software Foundation, Inc. 3472 3473Copying and distribution of this file, with or without modification, 3474are permitted in any medium without royalty provided the copyright 3475notice and this notice are preserved. 3476