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