12024-06-20 Release Manager 2 3 * GCC 12.4.0 released. 4 52024-05-09 Iain Sandoe <iain@sandoe.co.uk> 6 7 Backported from master: 8 2024-05-02 Iain Sandoe <iain@sandoe.co.uk> 9 10 * objc-next-runtime-abi-02.cc (WEAK_PROTOCOLS_AFTER): New. 11 (next_runtime_abi_02_protocol_decl): Use WEAK_PROTOCOLS_AFTER 12 to determine this ABI change. 13 (build_v2_protocol_list_address_table): Likewise. 14 152024-04-20 Iain Sandoe <iain@sandoe.co.uk> 16 17 Backported from master: 18 2024-01-18 Iain Sandoe <iain@sandoe.co.uk> 19 20 * objc-act.cc (objc_init): Initialize interface and class 21 name hash maps before the preprocessor uses them. 22 232024-04-19 Iain Sandoe <iain@sandoe.co.uk> 24 25 Backported from master: 26 2024-01-28 Iain Sandoe <iain@sandoe.co.uk> 27 28 * objc-next-runtime-abi-02.cc (build_v2_address_table): Prevent 29 over-alignment of Objective-C metadata by setting DECL_USER_ALIGN 30 on relevant variables. 31 (build_v2_protocol_list_address_table): Likewise. 32 (generate_v2_protocol_list): Likewise. 33 (generate_v2_meth_descriptor_table): Likewise. 34 (generate_v2_meth_type_list): Likewise. 35 (generate_v2_property_table): Likewise. 36 (generate_v2_dispatch_table): Likewise. 37 (generate_v2_ivars_list): Likewise. 38 (generate_v2_class_structs): Likewise. 39 (build_ehtype): Likewise. 40 * objc-runtime-shared-support.cc (generate_strings): Likewise. 41 422024-04-19 Iain Sandoe <iain@sandoe.co.uk> 43 44 Backported from master: 45 2024-01-12 Iain Sandoe <iain@sandoe.co.uk> 46 47 * objc-next-runtime-abi-02.cc 48 (build_v2_objc_method_fixup_call): Early exit for cases 49 where the sender or receiver are known to be in error. 50 512024-04-12 Iain Sandoe <iain@sandoe.co.uk> 52 53 Backported from master: 54 2022-05-03 Iain Sandoe <iain@sandoe.co.uk> 55 56 * objc-next-runtime-abi-02.cc (next_runtime_abi_02_protocol_decl): Do 57 not dead-strip the runtime meta-data symbols. 58 (build_v2_classrefs_table): Likewise. 59 (build_v2_protocol_list_address_table): Likewise. 60 612023-05-08 Release Manager 62 63 * GCC 12.3.0 released. 64 652022-08-19 Release Manager 66 67 * GCC 12.2.0 released. 68 692022-05-06 Release Manager 70 71 * GCC 12.1.0 released. 72 732022-01-17 Martin Liska <mliska@suse.cz> 74 75 * Make-lang.in: Rename .c names to .cc. 76 * config-lang.in: Likewise. 77 * lang-specs.h: Likewise. 78 * objc-act.cc (objc_build_component_ref): Likewise. 79 (objc_copy_binfo): Likewise. 80 (lookup_method_in_hash_lists): Likewise. 81 (objc_finish_foreach_loop): Likewise. 82 * objc-act.h (objc_common_init_ts): Likewise. 83 * objc-gnu-runtime-abi-01.cc: Likewise. 84 * objc-lang.cc (struct lang_hooks): Likewise. 85 * objc-map.cc: Likewise. 86 * objc-next-runtime-abi-01.cc (generate_objc_symtab_decl): Likewise. 87 * objc-runtime-shared-support.cc: Likewise. 88 * objc-runtime-shared-support.h (build_protocol_initializer): Likewise. 89 902022-01-17 Martin Liska <mliska@suse.cz> 91 92 * objc-act.c: Moved to... 93 * objc-act.cc: ...here. 94 * objc-encoding.c: Moved to... 95 * objc-encoding.cc: ...here. 96 * objc-gnu-runtime-abi-01.c: Moved to... 97 * objc-gnu-runtime-abi-01.cc: ...here. 98 * objc-lang.c: Moved to... 99 * objc-lang.cc: ...here. 100 * objc-map.c: Moved to... 101 * objc-map.cc: ...here. 102 * objc-next-runtime-abi-01.c: Moved to... 103 * objc-next-runtime-abi-01.cc: ...here. 104 * objc-next-runtime-abi-02.c: Moved to... 105 * objc-next-runtime-abi-02.cc: ...here. 106 * objc-runtime-shared-support.c: Moved to... 107 * objc-runtime-shared-support.cc: ...here. 108 1092022-01-11 Jakub Jelinek <jakub@redhat.com> 110 111 PR c++/101597 112 * objc-act.c (objc_rewrite_function_call): Build OBJ_TYPE_REF 113 with INTEGER_CST OBJ_TYPE_REF_TOKEN with type equal to 114 OBJ_TYPE_REF_OBJECT type. 115 * objc-next-runtime-abi-01.c (build_objc_method_call): Likewise. 116 * objc-gnu-runtime-abi-01.c (build_objc_method_call): Likewise. 117 * objc-next-runtime-abi-02.c (build_v2_objc_method_fixup_call, 118 build_v2_build_objc_method_call): Likewise. 119 1202021-12-05 Iain Sandoe <iain@sandoe.co.uk> 121 122 * objc-next-metadata-tags.h (objc_rt_trees): Declare here. 123 * objc-next-runtime-abi-01.c: Remove from here. 124 * objc-next-runtime-abi-02.c: Likewise. 125 * objc-runtime-shared-support.c: Reorder headers, provide 126 a GTY declaration the definition of objc_rt_trees. 127 1282021-11-30 Richard Biener <rguenther@suse.de> 129 130 * objc-act.c (objc_build_setter_call): Remove unreachable 131 return. 132 1332021-11-29 Eric Gallager <egallager@gcc.gnu.org> 134 135 PR other/103021 136 * Make-lang.in: Use ETAGS variable in TAGS target. 137 1382021-10-22 Eric Gallager <egallager@gcc.gnu.org> 139 140 PR other/102663 141 * Make-lang.in: Add dummy objc.install-dvi target. 142 1432021-10-08 Martin Liska <mliska@suse.cz> 144 145 * objc-next-runtime-abi-01.c: Add missing include. 146 * objc-next-runtime-abi-02.c: Likewise. 147 1482021-10-08 Martin Liska <mliska@suse.cz> 149 150 * objc-next-runtime-abi-01.c: Use new macro 151 OPTION_SET_P. 152 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Likewise. 153 1542021-09-01 Iain Sandoe <iain@sandoe.co.uk> 155 156 PR objc/101718 157 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): 158 Revise for cases where scalar objects use an sret parameter. 159 (next_runtime_abi_02_build_objc_method_call): Likwise. 160 1612021-09-01 Iain Sandoe <iain@sandoe.co.uk> 162 163 * objc-act.c (objc_add_property_declaration): Register unavailable 164 attribute. 165 (maybe_make_artificial_property_decl): Set available. 166 (objc_maybe_build_component_ref): Generalise to the method prototype 167 to count availability. 168 (objc_build_class_component_ref): Likewise. 169 (build_private_template): Likewise. 170 (objc_decl_method_attributes): Handle unavailable attribute. 171 (lookup_method_in_hash_lists): Amend comments. 172 (objc_finish_message_expr): Handle unavailability in addition to 173 deprecation. 174 (start_class): Likewise. 175 (finish_class): Likewise. 176 (lookup_protocol): Likewise. 177 (objc_declare_protocol): Likewise. 178 (start_protocol): Register unavailable attribute. 179 (really_start_method): Likewise. 180 (objc_gimplify_property_ref): Emit error on encountering an 181 unavailable entity (and a warning for a deprecated one). 182 1832021-08-19 Iain Sandoe <iain@sandoe.co.uk> 184 185 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): 186 Default receiver nilchecks on. 187 1882021-08-18 Iain Sandoe <iain@sandoe.co.uk> 189 Matt Jacobson <mhjacobson@me.com> 190 191 PR objc/101666 192 * objc-act.c (objc_build_constructor): Handle empty constructor 193 lists. 194 * objc-next-runtime-abi-02.c (build_v2_objc_method_fixup_call): 195 Handle nil receivers. 196 (build_v2_build_objc_method_call): Likewise. 197 1982021-08-17 Matt Jacobson <mhjacobson@me.com> 199 200 * objc-next-runtime-abi-02.c 201 (objc_next_runtime_abi_02_init): Warn about and reset 202 flag_objc_sjlj_exceptions regardless of flag_objc_exceptions. 203 (next_runtime_02_initialize): Use a checking assert that 204 flag_objc_sjlj_exceptions is off. 205 2062021-06-28 Martin Sebor <msebor@redhat.com> 207 208 * objc-act.c (objc_maybe_build_modify_expr): Replace direct uses 209 of TREE_NO_WARNING with warning_suppressed_p, and suppress_warning. 210 (objc_build_incr_expr_for_property_ref): Same. 211 (objc_build_struct): Same. 212 (synth_module_prologue): Same. 213 * objc-gnu-runtime-abi-01.c (gnu_runtime_01_initialize): Same. 214 * objc-next-runtime-abi-01.c (next_runtime_01_initialize): Same. 215 * objc-next-runtime-abi-02.c (next_runtime_02_initialize): Same. 216 2172021-06-08 Bernd Edlinger <bernd.edlinger@hotmail.de> 218 219 * Make-lang.in (cc1-obj-checksum.c): Check previous 220 stage checksum exists. 221 2222021-06-07 Bernd Edlinger <bernd.edlinger@hotmail.de> 223 224 * Make-lang.in (cc1obj-checksum.c): For stage-final re-use 225 the checksum from the previous stage. 226 2272021-05-20 Indu Bhagat <indu.bhagat@oracle.com> 228 229 * objc-act.c (synth_module_prologue): Use uint32_t instead of enum 230 debug_info_type. 231 2322021-05-10 Martin Liska <mliska@suse.cz> 233 234 * objc-act.c (objc_string_ref_type_p): Use startswith 235 function instead of strncmp. 236 * objc-encoding.c (encode_type): Likewise. 237 * objc-next-runtime-abi-02.c (has_load_impl): Likewise. 238 2392020-11-20 Jakub Jelinek <jakub@redhat.com> 240 241 PR other/97911 242 * Make-lang.in (objc.serial): Change from goal to a variable. 243 (.PHONY): Drop objc.serial and objc.prev. 244 (cc1obj$(exeext)): Depend on $(objc.serial) rather than objc.serial. 245 2462020-11-18 Jakub Jelinek <jakub@redhat.com> 247 248 * Make-lang.in (objc.serial): New goal. 249 (.PHONY): Add objc.serial objc.prev. 250 (cc1obj$(exeext)): Depend on objc.prev. Call LINK_PROGRESS. 251 2522020-11-13 Iain Sandoe <iain@sandoe.co.uk> 253 254 PR objc/90707 255 * objc-act.c (objc_prop_attr_kind_for_rid): Handle nullability. 256 (objc_add_property_declaration): Handle nullability attributes. 257 Check that these are applicable to the property type. 258 * objc-act.h (enum objc_property_nullability): New. 259 2602020-11-13 Iain Sandoe <iain@sandoe.co.uk> 261 262 PR objc/77404 263 * objc-act.c (objc_start_class_interface): Accept the location 264 of the class name, use it in existing diagnostic. 265 (start_class): Accept obj_root_class type attributes. Warn when 266 the interface for an implementation does not contain a super 267 class (unless the diagnostic is suppressed by the the command 268 line flag or the objc_root_class type attribute). 269 2702020-11-08 Iain Sandoe <iain@sandoe.co.uk> 271 272 * objc-act.c (objc_prop_attr_kind_for_rid): Handle class 273 attribute. 274 (objc_add_property_declaration): Likewise. 275 * objc-act.h (PROPERTY_CLASS): Record class attribute state. 276 2772020-11-07 Iain Sandoe <iain@sandoe.co.uk> 278 279 * objc-act.c (objc_prop_attr_kind_for_rid): Handle 280 RID_PROPATOMIC. 281 2822020-11-07 Iain Sandoe <iain@sandoe.co.uk> 283 284 * objc-act.c (objc_compare_types): Handle NSObject type 285 attributes. 286 (objc_type_valid_for_messaging): Likewise. 287 2882020-11-06 Iain Sandoe <iain@sandoe.co.uk> 289 290 * objc-act.c (start_class): Accept visibility attributes 291 without warning. 292 2932020-11-06 Iain Sandoe <iain@sandoe.co.uk> 294 295 * objc-act.c (objc_prop_attr_kind_for_rid): New. 296 (objc_add_property_declaration): Adjust to consume the 297 parser output using a vector of parsed attributes. 298 2992020-11-04 Iain Sandoe <iain@sandoe.co.uk> 300 301 * objc-act.c (objc_non_constant_expr_p): New. 302 3032020-11-01 Iain Sandoe <iain@sandoe.co.uk> 304 305 * objc-act.c (synth_module_prologue): Get the SEL identifier. 306 * objc-act.h (enum objc_tree_index): Add OCTI_SEL_NAME. 307 (objc_selector_name): New. 308 (SEL_TYPEDEF_NAME): New. 309 * objc-gnu-runtime-abi-01.c 310 (gnu_runtime_01_initialize): Initialize SEL typedef. 311 * objc-next-runtime-abi-01.c 312 (next_runtime_01_initialize): Likewise. 313 * objc-next-runtime-abi-02.c 314 3152020-10-11 Iain Sandoe <iain@sandoe.co.uk> 316 317 * objc-next-runtime-abi-02.c 318 (create_global_decl): Update to allow the caller to 319 specify declaration or definition. 320 (create_hidden_decl): Likewise. 321 (next_runtime_abi_02_protocol_decl): Make the symbol 322 weak and hidden for later OS runtime versions. 323 (build_v2_protocol_list_address_table): Likewise. 324 3252020-10-11 Iain Sandoe <iain@sandoe.co.uk> 326 327 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): Test 328 DECL_C_BIT_FIELD to detect that an ivar is a bitfield. 329 3302020-10-11 Iain Sandoe <iain@sandoe.co.uk> 331 332 * objc-next-runtime-abi-02.c (FIXUP_NEEDED): Rename ... 333 (USE_FIXUP_BEFORE): ... to this. 334 (next_runtime_02_initialize): Likewise. 335 (next_runtime_abi_02_get_arg_type_list_base): Likewise. 336 (next_runtime_abi_02_build_objc_method_call): Likewise. 337 3382020-10-11 Iain Sandoe <iain@sandoe.co.uk> 339 340 * objc-next-runtime-abi-02.c (TAG_MSGSENDSUPER): Revised 341 spelling. 342 (TAG_MSGSENDID): Likewise. 343 (TAG_MSGSENDSUPER_STRET): Likewise. 344 (TAG_MSGSENDID_STRET): Likewise. 345 (FIXUP_NEEDED): Likewise. 346 (TAG_FIXUP): New. 347 (next_runtime_02_initialize): Adjust message calls to use 348 fixup variants only when required. 349 (next_runtime_abi_02_get_arg_type_list_base): Correct 350 indent. 351 (build_v2_build_objc_method_call): New. 352 (build_v2_objc_method_fixup_call): Split out from ... 353 (next_runtime_abi_02_build_objc_method_call): ... here. 354 Arrange to adjust the call on the basis of the target 355 runtime. 356 3572020-10-11 Iain Sandoe <iain@sandoe.co.uk> 358 359 * objc-runtime-shared-support.c (start_var_decl): Make the 360 decl_assembler_name follow the metadata name for C++ on NeXT 361 runtime platforms. 362 3632020-10-11 Iain Sandoe <iain@sandoe.co.uk> 364 365 * objc-next-runtime-abi-02.c 366 (next_runtime_abi_02_category_decl): Adjust category 367 superclass name ordering. 368 3692020-10-11 Iain Sandoe <iain@sandoe.co.uk> 370 371 * objc-next-runtime-abi-02.c (build_v2_super_template): Add new 372 fields to the template. 373 (build_v2_protocol_template): Build new field entries. 374 (generate_v2_meth_descriptor_table): Adjust to allow recording all 375 method types. 376 (generate_v2_meth_type_list): New. 377 (build_v2_protocol_initializer): Initialize the additional fields. 378 (generate_v2_protocols): Record method types for all entries and 379 generate the additional method type table. 380 3812020-10-10 Iain Sandoe <iain@sandoe.co.uk> 382 383 * objc-next-runtime-abi-02.c 384 (objc_get_superclass_ref_decl): Split this code out. 385 (next_runtime_abi_02_get_class_super_ref): Compute 386 super refs using the objc_get_superclass_ref_decl(). 387 (next_runtime_abi_02_get_category_super_ref): Likewise. 388 3892020-10-10 Iain Sandoe <iain@sandoe.co.uk> 390 391 * objc-next-runtime-abi-02.c 392 (next_runtime_abi_02_init_metadata_attributes): Make protocol 393 refs a distinct section. 394 3952020-10-10 Iain Sandoe <iain@sandoe.co.uk> 396 397 * objc-next-runtime-abi-02.c 398 (next_runtime_abi_02_init_metadata_attributes): Attach metadata 399 for the special string sections to class, method and method type 400 string sections. 401 4022020-10-10 Iain Sandoe <iain@sandoe.co.uk> 403 404 * objc-gnu-runtime-abi-01.c 405 (build_shared_structure_initializer): Remove references to 406 the NeXT runtime. 407 (generate_static_references): Likewise. 408 4092020-09-19 Sandra Loosemore <sandra@codesourcery.com> 410 411 * objc-act.c (objc_start_method_definition): Update to reflect 412 changes to break/continue state bookkeeping in C front end. 413 4142020-09-17 Patrick Palka <ppalka@redhat.com> 415 416 PR c/80076 417 * objc-gnu-runtime-abi-01.c 418 (gnu_runtime_abi_01_get_class_super_ref): Reduce indentation of 419 misleadingly indented return statements. 420 * objc-next-runtime-abi-01.c 421 (next_runtime_abi_01_get_class_super_ref): Likewise. 422 4232020-01-01 Jakub Jelinek <jakub@redhat.com> 424 425 Update copyright years. 426 4272019-10-10 Iain Sandoe <iain@sandoe.co.uk> 428 429 * objc-next-metadata-tags.h (OCTI_RT_META_IVAR_REF): New. 430 (meta_ivar_ref): New. 431 * objc-next-runtime-abi-02.c 432 (next_runtime_abi_02_init_metadata_attributes): Create the 433 IVAR ref metadata identifier. 434 (ivar_offset_ref): Tag IVAR refs with specific metadata. 435 4362019-06-05 Martin Sebor <msebor@redhat.com> 437 438 * objc-act.c (objc_build_setter_call): Adjust quoting and hyphenation. 439 * objc-encoding.c (encode_gnu_bitfield): Same. 440 4412019-05-18 Iain Sandoe <iain@sandoe.co.uk> 442 443 * objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New. 444 (objc_global_trees): Add instance type and name. 445 (INSTANCE_TYPEDEF_NAME): New. 446 * objc-act.c (synth_module_prologue): Build decls for 447 objc_instancetype_type and objc_instancetype_name. 448 4492019-05-16 Martin Sebor <msebor@redhat.com> 450 451 * objc-act.c (objc_begin_catch_clause): Quote keywords and options 452 in diagnostics. 453 (objc_build_throw_stmt): Same. 454 (objc_finish_message_expr): Same. 455 (get_super_receiver): Same. 456 * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell 457 out "less than" in English./ 458 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell 459 out "greater" in English. 460 4612019-05-10 Jakub Jelinek <jakub@redhat.com> 462 463 PR pch/90326 464 * config-lang.in (gtfiles): Add c-family/c-format.c. 465 4662019-04-05 Martin Liska <mliska@suse.cz> 467 468 PR translation/89936 469 * objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in 470 order to wrap keywords or arguments. 471 (objc_add_synthesize_declaration_for_property): Likewise. 472 4732019-01-09 Sandra Loosemore <sandra@codesourcery.com> 474 475 PR other/16615 476 477 * objc-act.c: Mechanically replace "can not" with "cannot". 478 4792019-01-01 Jakub Jelinek <jakub@redhat.com> 480 481 Update copyright years. 482 4832018-12-19 David Malcolm <dmalcolm@redhat.com> 484 485 PR c++/43064 486 PR c++/43486 487 * objc-act.c (objc_maybe_build_component_ref): Strip any location 488 wrapper before checking for UOBJC_SUPER_decl and self_decl. 489 (objc_finish_message_expr): Strip any location wrapper. 490 (gen_declaration): Strip location wrappers from "w". 491 4922018-10-17 David Malcolm <dmalcolm@redhat.com> 493 494 * Make-lang.in (selftest-objc): New. 495 4962018-04-20 Martin Liska <mliska@suse.cz> 497 498 PR objc/85476 499 * objc-act.c (finish_class): Do not overflow string buffer. 500 5012018-01-03 Jakub Jelinek <jakub@redhat.com> 502 503 Update copyright years. 504 5052017-11-30 Jakub Jelinek <jakub@redhat.com> 506 507 * objc-next-runtime-abi-01.c (generate_dispatch_table): Use ; instead 508 of ;;. 509 5102017-11-10 Martin Sebor <msebor@redhat.com> 511 512 PR c/81117 513 * objc-encoding.c (encode_type): Use memcpy instead of strncpy. 514 5152017-10-31 David Malcolm <dmalcolm@redhat.com> 516 517 * objc-gnu-runtime-abi-01.c (objc_gnu_runtime_abi_01_init): Use 518 UNKNOWN_LOCATION rather than 0. 519 5202017-10-17 Nathan Sidwell <nathan@acm.org> 521 522 * objc-act.c (objc_common_tree_size): Return size of TYPE nodes. 523 5242017-10-10 Richard Sandiford <richard.sandiford@linaro.org> 525 526 * objc-act.c (objc_decl_method_attributes): Use wi::to_wide when 527 operating on trees as wide_ints. 528 5292017-09-29 Jakub Jelinek <jakub@redhat.com> 530 531 * objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at 532 DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL. 533 5342017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 535 Alan Hayward <alan.hayward@arm.com> 536 David Sherwood <david.sherwood@arm.com> 537 538 * objc-encoding.c (encode_type): Use SCALAR_INT_TYPE_MODE. 539 5402017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 541 Alan Hayward <alan.hayward@arm.com> 542 David Sherwood <david.sherwood@arm.com> 543 544 * objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE 545 instead of TYPE_MODE. 546 5472017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 548 Alan Hayward <alan.hayward@arm.com> 549 David Sherwood <david.sherwood@arm.com> 550 551 * objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in 552 case statements. 553 5542017-08-09 Marek Polacek <polacek@redhat.com> 555 556 PR c/81417 557 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update 558 a call to build_conditional_expr. 559 5602017-08-08 Martin Liska <mliska@suse.cz> 561 562 * objc-gnu-runtime-abi-01.c: Include header files. 563 * objc-next-runtime-abi-01.c: Likewise. 564 * objc-next-runtime-abi-02.c: Likewise. 565 5662017-07-20 Nathan Sidwell <nathan@acm.org> 567 568 Remove TYPE_METHODS. 569 * objc-runtime-shared-support.c (build_ivar_list_initializer): 570 Don't presume first item is a FIELD_DECL. 571 5722017-07-19 Nathan Sidwell <nathan@acm.org> 573 574 * objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use 575 TYPE_{MIN,MAX}_VALUE_RAW. 576 5772017-05-16 Sylvestre Ledru <sylvestre@debian.org> 578 579 * objc-runtime-shared-support.c (build_module_descriptor): 580 Remove unnecessary conditional when building instance of 581 objc_module. CID 1406758 582 5832017-05-09 Nathan Sidwell <nathan@acm.org> 584 585 * objc-gnu-runtime-abi-01.c (objc_add_static_instance): Use 586 pushdecl lang_hook. 587 5882017-05-04 Martin Sebor <msebor@redhat.com> 589 590 PR translation/80280 591 * objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing 592 quoting to directives. 593 * objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto. 594 * objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto. 595 5962017-01-01 Jakub Jelinek <jakub@redhat.com> 597 598 Update copyright years. 599 6002016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com> 601 Richard Biener <rguenther@suse.de> 602 603 * config-lang.in (gtfiles): Add c/c-parser.h. 604 6052016-09-27 Jakub Jelinek <jakub@redhat.com> 606 607 * objc-act.c (continue_class): Remove break after return. 608 (objc_maybe_printable_name): Likewise. 609 6102016-08-12 Marek Polacek <polacek@redhat.com> 611 612 PR c/7652 613 * objc-encoding.c (encode_type): Add FALLTHRU. 614 6152016-06-07 David Malcolm <dmalcolm@redhat.com> 616 617 * objc-act.c (objc_build_component_ref): Update call 618 to build_component_ref for added param, passing UNKNOWN_LOCATION. 619 6202016-04-18 Michael Matz <matz@suse.de> 621 622 * objc-act.c (objc_build_struct): Use SET_DECL_ALIGN. 623 6242016-02-12 Jakub Jelinek <jakub@redhat.com> 625 626 * objc-act.c: Spelling fixes - behaviour -> behavior and 627 neighbour -> neighbor. 628 * objc-map.h: Likewise. 629 6302016-01-04 Jakub Jelinek <jakub@redhat.com> 631 632 Update copyright years. 633 6342015-11-11 Andrew MacLeod <amacleod@redhat.com> 635 636 * objc-act.c: Remove unused header files. 637 * objc-encoding.c: Likewise. 638 * objc-gnu-runtime-abi-01.c: Likewise. 639 * objc-lang.c: Likewise. 640 * objc-map.c: Likewise. 641 * objc-next-runtime-abi-01.c: Likewise. 642 * objc-next-runtime-abi-02.c: Likewise. 643 * objc-runtime-shared-support.c: Likewise. 644 6452015-11-09 Alan Modra <amodra@gmail.com> 646 647 * objc-encoding.c (encode_aggregate_within): Cast obstack_next_free 648 return value. 649 6502015-10-29 Andrew MacLeod <amacleod@redhat.com> 651 652 * objc-lang.c: Reorder #include's and remove duplicates. 653 * objc-map.c: Likewise. 654 6552015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org> 656 657 * objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h: 658 Remove useless typedefs. 659 6602015-07-12 Aldy Hernandez <aldyh@redhat.com> 661 662 * objc-map.h: Fix double word typos. 663 6642015-07-07 Andrew MacLeod <amacleod@redhat.com> 665 666 * objc-act.c: Adjust includes. 667 * objc-encoding.c: Likewise. 668 * objc-gnu-runtime-abi-01.c: Likewise. 669 * objc-lang.c: Likewise. 670 * objc-map.c: Likewise. 671 * objc-next-runtime-abi-01.c: Likewise. 672 * objc-next-runtime-abi-02.c: Likewise. 673 * objc-runtime-shared-support.c: Likewise. 674 6752015-06-25 Andrew MacLeod <amacleod@redhat.com> 676 677 * objc-act.c: Remove ipa-ref.h and plugin-api.h from include list. 678 6792015-06-25 Richard Sandiford <richard.sandiford@arm.com> 680 681 * objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash 682 rather than ggc_hasher. 683 6842015-06-25 Richard Sandiford <richard.sandiford@arm.com> 685 686 * objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather 687 than typed_noop_remove. Remove redudant typedefs. 688 6892015-06-17 Andrew MacLeod <amacleod@redhat.com> 690 691 * objc-act.c: Do not include input.h, line-map.h or is-a.h. 692 * objc-encoding.c: Likewise. 693 * objc-gnu-runtime-abi-01.c: Likewise. 694 * objc-lang.c: Likewise. 695 * objc-map.c: Likewise. 696 * objc-next-runtime-abi-01.c: Likewise. 697 * objc-next-runtime-abi-02.c: Likewise. 698 * objc-runtime-shared-support.c: Likewise. 699 7002015-06-08 Andrew MacLeod <amacleod@redhat.com> 701 702 * objc-act.c : Adjust include files. 703 * objc-encoding.c : Likewise. 704 * objc-gnu-runtime-abi-01.c : Likewise. 705 * objc-lang.c : Likewise. 706 * objc-map.c : Likewise. 707 * objc-next-runtime-abi-01.c : Likewise. 708 * objc-next-runtime-abi-02.c : Likewise. 709 * objc-runtime-shared-support.c : Likewise. 710 7112015-06-08 Aldy Hernandez <aldyh@redhat.com> 712 713 * objc-runtime-shared-support.c (build_module_descriptor): Set 714 TREE_USED on UOBJC_MODULES_decl. 715 7162015-06-05 Aldy Hernandez <aldyh@redhat.com> 717 718 * objc-act.c (objc_write_global_declarations): Adjust comment. 719 * objc-gnu-runtime-abi-01.c (build_selector_table_decl): Set 720 TREE_USED bit. 721 7222015-06-04 Andrew MacLeod <amacleod@redhat.com> 723 724 * objc-act.c: Adjust includes for restructured coretypes.h. 725 * objc-encoding.c: Likewise. 726 * objc-gnu-runtime-abi-01.c: Likewise. 727 * objc-lang.c: Likewise. 728 * objc-map.c: Likewise. 729 * objc-next-runtime-abi-01.c: Likewise. 730 * objc-next-runtime-abi-02.c: Likewise. 731 * objc-runtime-shared-support.c: Likewise. 732 7332015-04-27 Jim Wilson <jim.wilson@linaro.org> 734 735 * Make-lang.in (objc.mostlyclean): Remove cc1obj. 736 7372015-04-18 Trevor Saunders <tsaunders@mozilla.com> 738 739 * objc-act.c: Adjust for hash_table changes. 740 7412015-01-09 Michael Collison <michael.collison@linaro.org> 742 743 * objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 744 input.h, alias.h, symtab.h, options, fold-const.h, 745 wide-int.h, and inchash.h due to flattening of tree.h. 746 * objc-encoding.c: Ditto. 747 * objc-gnu-runtime-abi-01.c: Ditto. 748 * objc-lang.c: Ditto. 749 * objc-map.c: Ditto. 750 * objc-next-runtime-abi-01.c: Ditto. 751 * objc-next-runtime-abi-02.c: Ditto. 752 * objc-runtime-shared-support.c: Ditto. 753 7542015-01-05 Jakub Jelinek <jakub@redhat.com> 755 756 Update copyright years. 757 7582014-10-28 Andrew MacLeod <amacleod@redhat.com> 759 760 * objc-act.c: Adjust include files. 761 7622014-10-22 Alan Modra <amodra@gmail.com> 763 764 * objc-encoding.c (encode_array): Cast result of obstack_base. 765 (encode_type): Likewise. 766 7672014-10-16 Andrew MacLeod <amacleod@redhat.com> 768 769 * objc-act.c: Adjust include files. 770 7712014-10-12 Trevor Saunders <tsaunders@mozilla.com> 772 773 * objc-act.c: use hash_table instead of hashtab. 774 7752014-09-15 Jakub Jelinek <jakub@redhat.com> 776 777 * Make-lang.in (check_objc_parallelize): Change to just an upper 778 bound number. 779 7802014-07-14 Jan Hubicka <hubicka@ucw.cz> 781 782 * objc-act.c (objc_common_tree_size): New function. 783 * objc-act.h (KEYWORD_KEY_NAME, KEYWORD_ARG_NAME): Add type 784 checking. 785 (INSTANCE_METHOD_OR_CLASS_METHOD_DECL_CHECK): New macro. 786 (METHOD_SEL_NAME, METHOD_SEL_ARGS, METHOD_ADD_ARGS, 787 METHOD_ADD_ARGS_ELLIPSIS_P, METHOD_DEFINITION, METHOD_ENCODING, 788 METHOD_TYPE_ATTRIBUTES, METHOD_PROPERTY_CONTEXT): Add type checking. 789 (METHOD_SEL_ARGS): Use decl_common.size instead of 790 decl_non_common.result. 791 (PROPERTY_NAME, PROPERTY_GETTER_NAME, PROPERTY_SETTER_NAME, 792 PROPERTY_READONLY, PROPERTY_NONATOMIC, PROPERTY_ASSIGN_SEMANTICS, 793 PROPERTY_IVAR_NAME, PROPERTY_DYNAMIC, PROPERTY_HAS_NO_GETTER, 794 PROPERTY_HAS_NO_SETTER, PROPERTY_OPTIONAL): Add type checking. 795 (objc_common_tree_size): Declare. 796 * objc-lang.c (LANG_HOOKS_TREE_SIZE): New macro. 797 7982014-06-24 Jan Hubicka <hubicka@ucw.cz> 799 800 * objc-act.c (objc_xref_basetypes): Set TYPE_BINFO of type variants, 801 too. 802 8032014-06-24 Trevor Saunders <tsaunders@mozilla.com> 804 805 * objc-act.c: Adjust. 806 8072014-05-17 Trevor Saunders <tsaunders@mozilla.com> 808 809 * objc-act.c (objc_build_string_object): Adjust. 810 (continue_class): Likewise. 811 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 812 * objc-map.c (objc_map_alloc_ggc): Likewise. 813 (objc_map_private_resize): Likewise. 814 * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): 815 Likewise. 816 (hash_name_enter): Likewise. 817 8182014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> 819 Mike Stump <mikestump@comcast.net> 820 Richard Sandiford <rdsandiford@googlemail.com> 821 822 * objc-act.c: Include wide-int.h. 823 (objc_decl_method_attributes): Use wide-int interfaces. 824 8252014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com> 826 827 PR objc/56044 828 * objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add. 829 (objc_init): Initialize objc_default_ivar_visibility. 830 (objc_start_class_interface): Use objc_default_ivar_visibility. 831 (objc_start_class_implementation): Likewise. 832 (objc_lookup_ivar): Implement -fno-local-ivars. 833 8342014-01-31 Marek Polacek <polacek@redhat.com> 835 836 PR c/59963 837 * objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to 838 build_function_call_vec. 839 (finish_catch): Likewise. 840 (next_runtime_abi_02_get_class_reference): Likewise. 841 * objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to 842 build_function_call_vec. 843 (build_throw_stmt): Likewise. 844 * objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to 845 build_function_call_vec. 846 (build_throw_stmt): Likewise. 847 8482014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 849 850 Update copyright years 851 8522013-12-04 Joseph Myers <joseph@codesourcery.com> 853 854 PR c/52023 855 * objc-act.c (objc_synthesize_getter): Update calls to 856 c_sizeof_or_alignof_type. 857 8582013-11-22 Andrew MacLeod <amacleod@redhat.com> 859 860 * objc-act.c: Add required include files from gimple.h. 861 8622013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 863 864 * objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi 865 throughout. 866 8672013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 868 869 * objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with 870 tree_to_shwi throughout. 871 8722013-11-14 Andrew MacLeod <amacleod@redhat.com> 873 874 * objc-act.c: Include only gimplify.h and gimple.h as needed. 875 8762013-11-14 Diego Novillo <dnovillo@google.com> 877 878 * objc-act.c: Include stringpool.h. 879 Include stor-layout.h. 880 Include attribs.h. 881 * objc-encoding.c: Include stringpool.h. 882 Include stor-layout.h. 883 * objc-gnu-runtime-abi-01.c: Include stringpool.h. 884 * objc-next-runtime-abi-01.c: 885 Include stringpool.h. 886 * objc-next-runtime-abi-02.c: Include stringpool.h. 887 * objc-runtime-shared-support.c: Include stringpool.h. 888 8892013-11-12 Andrew MacLeod <amacleod@redhat.com> 890 891 * objc-act.c: Include gimplify.h. 892 8932013-11-07 Andrew MacLeod <amacleod@redhat.com> 894 895 * objc-act.c (objc_push_parm): Handle atomic qualifier. 896 8972013-09-25 Tom Tromey <tromey@redhat.com> 898 899 * Make-lang.in (START_HDRS, cc1obj-checksum.o, objc/objc-lang.o) 900 (objc/objc-runtime-shared-support.o) 901 (objc/objc-gnu-runtime-abi-01.o, objc/objc-next-runtime-abi-01.o) 902 (objc/objc-next-runtime-abi-02.o, objc/objc-act.o) 903 (objc/objc-encoding.o, objc/objc-map.o): Remove. 904 9052013-09-14 Iain Sandoe <iain@codesourcery.com> 906 907 PR target/48094 908 * objc-next-runtime-abi-01.c (generate_objc_image_info): Remove. 909 (objc_generate_v1_next_metadata): Remove generation of ImageInfo. 910 * objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove. 911 (objc_generate_v2_next_metadata): Remove generation of ImageInfo. 912 9132013-07-21 OndÅej BÃlka <neleai@seznam.cz> 914 915 * objc-act.c: Fix typos. 916 * objc-encoding.c: Likewise. 917 * objc-gnu-runtime-abi-01.c: Likewise. 918 * objc-next-runtime-abi-01.c: Likewise. 919 * objc-next-runtime-abi-02.c: Likewise. 920 9212013-05-22 Paolo Carlini <paolo.carlini@oracle.com> 922 923 * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): 924 Fix build_conditional_expr call. 925 9262013-05-16 Jason Merrill <jason@redhat.com> 927 928 * Make-lang.in (cc1obj$(exeext)): Use link mutex. 929 9302012-11-20 Diego Novillo <dnovillo@google.com> 931 932 * objc-act.c: Replace all vec<T, A>() initializers with vNULL. 933 9342012-11-16 Diego Novillo <dnovillo@google.com> 935 936 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 937 938 * objc-act.c: Use new vec API in vec.h. 939 * objc-act.h: Likewise. 940 * objc-gnu-runtime-abi-01.c: Likewise. 941 * objc-next-runtime-abi-01.c: Likewise. 942 * objc-next-runtime-abi-02.c: Likewise. 943 * objc-runtime-hooks.h: Likewise. 944 * objc-runtime-shared-support.c: Likewise. 945 * objc-runtime-shared-support.h: Likewise. 946 9472012-10-01 Lawrence Crowl <crowl@google.com> 948 949 * Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o. 950 (objc-act.o): Add dependence on hash-table.h. 951 * objc-act.c (objc_detect_field_duplicates): Change to new type-safe 952 hash table. 953 9542012-06-29 Steven Bosscher <steven@gcc.gnu.org> 955 956 * Make-ang.in: Adjust for move of C front-end files. 957 * config-lang.in: Likewise. 958 * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h 959 and c-lang.h in c/. 960 * objc-runtime-shared-support.c: Likewise. 961 * objc-next-runtime-abi-01.c: Likewise. 962 * objc-next-runtime-abi-02.c: Likewise. 963 * objc-gnu-runtime-abi-01.c: Likewise. 964 * objc-act.c: Likewise. 965 * objc-lang.c: Likewise. 966 9672012-06-19 Steven Bosscher <steven@gcc.gnu.org> 968 969 * objc-next-runtime-abi-01.c: Do not include tm.h and output.h. 970 Include c-family/c-target.h. 971 (handle_next_class_ref): Rewrite to emit top-level asm statements. 972 (handle_next_impent): Likewise. 973 * Make-lang.in: Fix dependencies for objc-next-runtime-abi-01.o. 974 9752012-05-31 Steven Bosscher <steven@gcc.gnu.org> 976 977 * objc-act.c: Do not include output.h. 978 9792012-05-17 Paolo Carlini <paolo.carlini@oracle.com> 980 981 PR objc++/53388 982 * objc-act.c (objc_get_class_reference, objc_build_message_expr): 983 Use build_min_nt_loc. 984 9852012-04-20 Jan Hubicka <jh@suse.cz> 986 987 * objc-act.c (mark_referenced_methods); Use 988 cgraph_mark_force_output_node. 989 9902012-03-21 Steven Bosscher <steven@gcc.gnu.org> 991 992 * objc-act (objc_build_ivar_assignment): Do not call assemble_external. 993 (objc_build_global_assignment): Likewise. 994 (objc_build_strong_cast_assignment): Likewise. 995 * objc-next-runtime-abi-01.c: Cleanup commented-out assemble_external. 996 * objc-next-runtime-abi-02.c: Likewise. 997 * objc-gnu-runtime-abi-01.c: Likewise. 998 9992012-03-05 Jason Merrill <jason@redhat.com> 1000 1001 * objc-map.c (objc_map_private_resize, objc_map_alloc_ggc): Don't 1002 call _stat functions without MEM_STAT_INFO. 1003 10042011-11-12 Iain Sandoe <iains@gcc.gnu.org> 1005 1006 * objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality 1007 for Objective-C m32. 1008 10092011-10-29 Iain Sandoe <iains@gcc.gnu.org> 1010 1011 PR target/47997 1012 * objc-act.c (objc_build_string_object): Remove redundant second 1013 call to fix_string_type (). Add a checking assert that we are, 1014 indeed, passed a STRING_CST. 1015 10162011-10-18 Mikael Pettersson <mikpe@it.uu.se> 1017 1018 PR objc/50743 1019 * objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to 1020 size_t to avoid signed/unsigned 1021 comparison. 1022 (insert_method_into_method_map): Likewise. 1023 10242011-10-14 Nicola Pero <nicola.pero@meta-innovation.com> 1025 1026 * objc-map.h: New file. 1027 * objc-map.c: New file. 1028 * config-lang.in (gtfiles): Added objc-map.h. 1029 * Make-lang.in (OBJC_OBJS): Added objc-map.o. 1030 (objc/objc-map.o): New rule. 1031 (objc/objc-act.o): Depend on objc/objc-map.h. 1032 * objc-next-runtime-abi-02.c: Added a TODO comment. 1033 * objc-act.c: Include objc-map.h. 1034 (nst_method_hash_list, cls_method_hash_list): Removed. 1035 (instance_method_map, class_method_map): New. 1036 (cls_name_hash_list, als_name_hash_list): Removed. 1037 (class_name_map, alias_name_map): Removed. 1038 (ivar_offset_hash_list): Removed. 1039 (hash_class_name_enter, hash_class_name_lookup, hash_enter, 1040 hash_lookup, hash_add_attr, add_method_to_hash_list): Removed. 1041 (interface_hash_init): New. 1042 (objc_init): Call interface_hash_init. 1043 (objc_write_global_declarations): Iterate over class_method_map 1044 and instance_method_map instead of cls_method_hash_list and 1045 nst_method_hash_list. 1046 (objc_declare_alias): Use alias_name_map instead of 1047 cls_name_hash_list. 1048 (objc_is_class_name): Use class_name_map and alias_name_map 1049 instead of cls_name_hash_list and als_name_hash_list. 1050 (interface_tuple, interface_htab, hash_interface, eq_interface): 1051 Removed. 1052 (interface_map): New. 1053 (add_class): Renamed to add_interface. Use interface_map instead 1054 of interface_htab. 1055 (lookup_interface): Use interface_map instead of interface_htab. 1056 (check_duplicates): Changed first argument to be a tree, 1057 potentially a TREE_VEC, instead of a hash. Changed implementation 1058 to match. 1059 (lookup_method_in_hash_lists): Use class_method_map and 1060 instance_method_map instead of cls_method_hash_list and 1061 nst_method_hash_list. 1062 (objc_build_selector_expr): Likewise. 1063 (hash_func): Removed. 1064 (hash_init): Create instance_method_map, class_method_map, 1065 class_name_map, and alias_name_map. Do not create 1066 nst_method_hash_list, cls_method_hash_list, cls_name_hash_list, 1067 als_name_hash_list, and ivar_offset_hash_list. 1068 (insert_method_into_method_map): New. 1069 (objc_add_method): Use insert_method_into_method_map instead of 1070 add_method_to_hash_list. 1071 (start_class): Call add_interface instead of add_class. 1072 * objc-act.h (cls_name_hash_list, als_name_hash_list, 1073 nst_method_hash_list, cls_method_hash_list): Removed. 1074 10752011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> 1076 1077 * objc-next-runtime-abi-01.c (objc_build_exc_ptr): Delete old 1078 interface with two parallel arrays to hold standard builtin 1079 declarations, and replace it with a function based interface that 1080 can support creating builtins on the fly in the future. Change 1081 all uses, and poison the old names. Make sure 0 is not a 1082 legitimate builtin index. 1083 * objc-next-runtime-abi-02.c (objc_build_exc_ptr): Ditto. 1084 * objc-gnu-runtime-abi-01.c (objc_build_exc_ptr): Ditto. 1085 10862011-07-19 Richard Guenther <rguenther@suse.de> 1087 1088 * objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref): 1089 Use fold_build_pointer_plus. 1090 (objc2_build_ehtype_initializer): Likewise. 1091 10922011-07-11 Nicola Pero <nicola.pero@meta-innovation.com> 1093 1094 * objc-encoding.h (obstack.h): Do not include. 1095 (util_obstack, util_firstobj): Do not declare. 1096 (encode_field_decl): Updated prototype to return a tree and take a 1097 single tree argument. Updated comments. 1098 * objc-encoding.c (util_obstack, util_firstobj): Made static. 1099 (objc_encoding_init): New. 1100 (encode_field_decl): Existing function renamed to encode_field and 1101 made static. New encode_field_decl wrapper function added. 1102 (encode_aggregate_fields): Update call to encode_field_decl to 1103 call encode_field. 1104 * objc-next-runtime-abi-02.c (obstack.h): Do not include. 1105 (util_obstack, util_firstobj): Do not declare. 1106 (build_v2_ivar_list_initializer): Updated call to 1107 encode_field_decl. 1108 * objc-runtime-shared-support.c (obstack.h): Do not include. 1109 (util_obstack, util_firstobj): Do not declare. 1110 (build_ivar_list_initializer): Updated call to encode_field_decl. 1111 * objc-act.c (objc_init): Use objc_encoding_init. 1112 * Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend 1113 on OBSTACK_H. 1114 (objc/objc-gnu-runtime-abi-01.o): Likewise. 1115 (objc/objc-next-runtime-abi-01.o): Likewise. 1116 (objc/objc-next-runtime-abi-02.o): Likewise. 1117 (objc/objc-act.o): Likewise. 1118 11192011-07-04 Nicola Pero <nicola.pero@meta-innovation.com> 1120 1121 Refactored encoding code into objc-encoding.h and objc-encoding.c. 1122 * objc-act.c (util_obstack, util_firstobj, encode_type_qualifiers, 1123 encode_type, generating_instance_variables, objc_method_parm_type, 1124 objc_encoded_type_size, encode_method_prototype, 1125 objc_build_encode_expr, pointee_is_readonly, encode_pointer, 1126 encode_array, encode_vector, encode_aggregate_fields, 1127 encode_aggregate_within, encode_next_bitfield, 1128 encode_gnu_bitfield, encode_field_decl, 1129 objc_v2_encode_property_attr): Moved to objc-encoding.h and 1130 objc-encoding.c. No change in the actual code. 1131 Include objc-encoding.h. 1132 (objc_init): Added TODO. 1133 (objc_build_property_setter_name): Made non-static so it can be 1134 called from objc-encoding.c. 1135 * objc-act.h (OBJC_ENCODE_INLINE_DEFS, 1136 OBJC_ENCODE_DONT_INLINE_DEFS): Moved to objc-encoding.h. 1137 * objc-runtime-shared-support.h (objc_v2_encode_property_attr, 1138 encode_method_prototype, encode_field_decl, 1139 generating_instance_variables): Moved to objc-encoding.h. 1140 (objc_build_property_setter_name): Declare. 1141 * objc-encoding.c: New. 1142 * objc-encoding.h: New. 1143 * objc-gnu-runtime-abi-01.c: Include objc-encoding.h. 1144 * objc-next-runtime-abi-01.c: Likewise. 1145 * objc-next-runtime-abi-02.c: Likewise. 1146 * objc-runtime-shared-support.c: Likewise. 1147 * Make-lang.in (OBJC_OBJS): Added objc-encoding.o. 1148 (objc/objc-lang.o): Reordered dependencies. 1149 (objc/objc-runtime-shared-support.o): Reordered dependencies. 1150 Added dependencies on objc-encoding.h and on $(GGC_H), 1151 $(DIAGNOSTIC_CORE_H), $(FLAGS_H) and input.h. 1152 (objc/objc-gnu-runtime-abi-01.o): Likewise. 1153 (objc/objc-next-runtime-abi-01.o): Likewise. 1154 (objc/objc-next-runtime-abi-02.o): Likewise. 1155 (objc/objc-act.o): Reordered dependencies. Added dependency on 1156 objc-encoding.h. 1157 (objc/objc-encoding.o): New rule. 1158 1159 * objc-encoding.c (encode_type): Use "%<%T%>" format when printing 1160 warning "unknown type %<%T%> found during Objective-C encoding" 1161 instead of using gen_type_name. 1162 11632011-06-05 Nicola Pero <nicola.pero@meta-innovation.com> 1164 1165 * objc-act.c (receiver_is_class_object): Expanded comment. 1166 (objc_finish_message_expr): Likewise. 1167 11682011-06-02 Nicola Pero <nicola.pero@meta-innovation.com> 1169 1170 PR objc/48539 1171 * objc-act.c (objc_finish_message_expr): Warn if messaging a class 1172 that was only declared using @class without an @interface. Warn 1173 if messaging an instance of a class that was only declared using 1174 @class without an @interface, unless the receiver was also typed 1175 with a protocol list. 1176 11772011-06-01 Nicola Pero <nicola.pero@meta-innovation.com> 1178 1179 * objc-act.c (objc_decl_method_attributes): Implement nonnull 1180 attribute for Objective-C methods. 1181 11822011-05-21 Nicola Pero <nicola.pero@meta-innovation.com> 1183 1184 * config-lang.in (gtfiles): Updated order of files to fix building 1185 when the gcc/cp directory is missing, as in the case of some 1186 release tarballs. 1187 11882011-05-20 Nathan Froyd <froydnj@codesourcery.com> 1189 1190 * objc-act.c (objc_compare_types): Use function_args_iterator 1191 instead of TYPE_ARG_TYPES to compare function argument types. 1192 11932011-05-13 Toon Moene <toon@moene.org> 1194 1195 * objc-next-runtime-abi-02.c (newabi_append_ro): 1196 Add const qualifier to constant variable pointer declaration. 1197 11982011-05-11 Nathan Froyd <froydnj@codesourcery.com> 1199 1200 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Use proper accessors. 1201 (CLASS_NST_METHODS, CLASS_CLS_METHODS): Likewise. 1202 (PROTOCOL_NAME, PROTOCOL_NST_METHODS, PROTOCOL_CLS_METHODS): Likewise. 1203 12042011-05-05 Nathan Froyd <froydnj@codesourcery.com> 1205 1206 * objc-runtime-shared-support.h (get_arg_type_list): Delete. 1207 (build_function_type_for_method): Declare. 1208 * objc-runtime-hooks.h (struct _objc_runtime_hooks_r): Change 1209 type of get_arg_type_base_list field. 1210 * objc-act.h (OBJC_VOID_AT_END): Delete. 1211 * objc-act.c (get_arg_type_list): Delete. 1212 (build_function_type_for_method): New function. 1213 (objc_decl_method_attributes): Call build_function_type_for_method. 1214 (really_start_method): Likewise. 1215 * objc-gnu-runtime-abi-01.c 1216 (gnu_runtime_abi_01_get_type_arg_list_base): Change prototype and 1217 adjust function accordingly. Update header comment. 1218 (build_objc_method_call): Call build_function_type_for_method. 1219 * objc-next-runtime-abi-01.c 1220 (next_runtime_abi_01_get_type_arg_list_base): Change prototype and 1221 adjust function accordingly. Update header comment. 1222 (build_objc_method_call): Call build_function_type_for_method. 1223 * objc-next-runtime-abi-02.c 1224 (next_runtime_abi_02_get_type_arg_list_base): Change prototype and 1225 adjust function accordingly. Update header comment. 1226 (objc_copy_to_temp_side_effect_params): Take fntype instead of a 1227 typelist. Use function_args_iterator for traversing fntype. 1228 (build_v2_build_objc_method_call): Adjust call to it. 1229 Call build_function_type_for_method 1230 12312011-05-05 Joseph Myers <joseph@codesourcery.com> 1232 1233 * objc-act.c (objc_start_method_definition): Add parameter expr. 1234 Update call to start_method_def. 1235 (objc_generate_cxx_ctor_or_dtor, objc_synthesize_getter, 1236 objc_synthesize_setter) Update calls to 1237 objc_start_method_definition. 1238 (objc_get_parm_info): Add parameter expr. Update call to 1239 get_parm_info. 1240 (start_method_def): Add parameter expr. Update call to 1241 objc_get_parm_info. 1242 * objc-gnu-runtime-abi-01.c (build_module_initializer_routine): 1243 Update call to objc_get_parm_info. 1244 * objc-runtime-shared-support.h (objc_get_parm_info): Add extra 1245 parameter. 1246 12472011-04-26 Jason Merrill <jason@redhat.com> 1248 1249 * objc-act.c (objc_fold_objc_type_ref): Remove. 1250 * objc-act.h: Remove prototype. 1251 12522011-04-21 Nathan Froyd <froydnj@codesourcery.com> 1253 1254 * objc-act.c (synth_module_prologue): Call build_function_type_list 1255 instead of build_function_type. 1256 * objc-next-runtime-abi-02.c (next_runtime_02_initialize): 1257 Likewise. 1258 12592011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 1260 1261 * objc-act.c (ivar_of_class): New. 1262 (objc_is_public): Use ivar_of_class. 1263 12642011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> 1265 1266 * objc-act.c (objc_get_interface_ivars): Removed. 1267 (objc_detect_field_duplicates): New. 1268 (hash_instance_variable): New. 1269 (eq_instance_variable): New. 1270 12712011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 1272 1273 * objc-act.c (objc_declare_protocols): Renamed to 1274 objc_declare_protocol. Changed first argument to be an identifier 1275 instead of a tree chain of identifiers, so that callers don't have 1276 to create a temporary tree chain. 1277 12782011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> 1279 1280 * objc-act.c (objc_declare_class): Changed to take a single 1281 identifier as argument instead of a tree list. This means callers 1282 don't have to build temporary tree lists to call this function. 1283 (synth_module_prologue): Updated calls to objc_declare_class. 1284 12852011-04-13 Nicola Pero <nicola.pero@meta-innovation.com> 1286 1287 * objc-act.c (build_keyword_selector): Use get_identifier_with_length 1288 instead of get_identifier. 1289 12902011-04-12 Nathan Froyd <froydnj@codesourcery.com> 1291 1292 * objc-lang.c (objc_init_ts): Move code for this function... 1293 * objc-act.c (objc_common_init_ts): ...here. Define. 1294 * objc-act.h (objc_common_init_ts): Declare. 1295 12962011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 1297 1298 * objc-act.c (objc_build_message_expr): Accept two arguments 1299 instead of one so that callers can simply pass the arguments 1300 without having to create a temporary chain to hold them. 1301 13022011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 1303 1304 * objc-act.c (comp_proto_with_proto): Do not create and use 1305 inefficient temporary argument lists. Compare the arguments 1306 directly. (match_proto_with_proto): Removed; incorporated into 1307 comp_proto_with_proto (). 1308 13092011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 1310 1311 * objc-act.c (printable_ivar_name): New. 1312 (add_instance_variable): Call printable_ivar_name() when an error 1313 message needs to be printed. Do not prepare the instance variable 1314 for printing unless there is an actual error. 1315 13162011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> 1317 1318 * objc-act.c (objc_is_class_name, objc_is_id): For efficiency, 1319 avoid calling identifier_global_value() multiple times. 1320 13212011-04-12 Martin Jambor <mjambor@suse.cz> 1322 1323 * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node 1324 instead of cgraph_node. 1325 13262011-04-06 Joseph Myers <joseph@codesourcery.com> 1327 1328 * objc-act.c: Include c-target.h instead of target.h. 1329 * Make-lang.in (objc/objc-act.o): Update dependencies. 1330 13312011-03-06 Joseph Myers <joseph@codesourcery.com> 1332 1333 * lang-specs.h: Match -save-temps* instead of -save-temps. 1334 13352011-02-26 Nicola Pero <nicola.pero@meta-innovation.com> 1336 1337 * objc-act.c (objc_v2_encode_prop_attr): Rewritten. 1338 13392011-02-23 Nicola Pero <nicola.pero@meta-innovation.com> 1340 1341 * objc-act.c (build_private_template): Do not copy the 1342 CLASS_HAS_EXCEPTION_ATTR from the class to the struct. 1343 * objc-act.h (CLASS_HAS_EXCEPTION_ATTR): Define using 1344 TYPE_LANG_SLOT_0. 1345 13462011-02-22 Nicola Pero <nicola.pero@meta-innovation.com> 1347 1348 PR objc/47832 1349 * objc-act.c (flexible_array_type_p): New. 1350 (add_instance_variable): Produce an error if an instance variable 1351 uses flexible array members. 1352 (encode_array): Do not emit an error if encoding a flexible array 1353 type while generating instance variables. 1354 13552011-02-21 Mike Stump <mikestump@comcast.net> 1356 1357 * Make-lang.in (check_objc_parallelize): Refine for 4 processor 1358 machines. 1359 13602011-02-20 Nicola Pero <nicola.pero@meta-innovation.com> 1361 1362 * objc-gnu-runtime-abi-01.c (TARGET_64BIT): Removed. Removed 1363 usage of padding fields. Do not include tm.h. 1364 * objc-act.c (objc_write_global_declaration): Set input_location 1365 to BUILTINS_LOCATION while generating runtime metadata. 1366 13672011-01-20 Nicola Pero <nicola.pero@meta-innovation.com> 1368 1369 PR objc/47784 1370 * objc-act.c (objc_maybe_build_modify_expr): If 'rhs' has side 1371 effects, do not use a temporary variable. 1372 13732011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 1374 1375 * objc-next-runtime-abi-01.c: Updated comments. 1376 * objc-next-runtime-abi-02.c: Same. 1377 13782011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 1379 1380 * objc-act.c (objc_init, generate_struct_by_value_array): Updated 1381 comments. 1382 13832011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 1384 1385 * objc-act.c: Updated comments. 1386 * objc-next-runtime-abi-02.c: Same. 1387 * objc-runtime-shared-support.c: Same. 1388 * objc-runtime-hooks.h: Same. 1389 * objc-act.h: Same. 1390 * objc-gnu-runtime-abi-01.c: Same. 1391 13922011-01-19 Nicola Pero <nicola.pero@meta-innovation.com> 1393 1394 * objc-gnu-runtime-abi-01.c (objc_generate_v1_gnu_metadata): Do 1395 not generate metadata if there is nothing to put into it. 1396 13972011-02-17 Iain Sandoe <iains@gcc.gnu.org> 1398 1399 * config-lang.in (gtfiles): Updated. 1400 * Make-lang.in (START_HDRS): New. 1401 (OBJC_OBJS): Added new object files. 1402 (objc/objc-act.o): Updated prerequisites. 1403 (objc/objc-lang.o): Updated prerequisites. 1404 (objc/objc-runtime-shared-support.o): New. 1405 (objc/objc-gnu-runtime-abi-01.o): New. 1406 (objc/objc-next-runtime-abi-01.o): New. 1407 (objc/objc-next-runtime-abi-02.o): New. 1408 * objc-runtime-hooks.h: New. 1409 * objc-runtime-shared-support.h: New. 1410 * objc-runtime-shared-support.c: New. 1411 * objc-gnu-runtime-abi-01.c: New. 1412 * objc-next-metadata-tags.h: New. 1413 * objc-next-runtime-abi-01.c: New. 1414 * objc-next-runtime-abi-02.c: New. 1415 * objc-lang.c: Include c-lang.h. 1416 (LANG_HOOKS_EH_PERSONALITY): Removed. 1417 * objc-act.h: Moved many declarations and code from objc-act.c 1418 into objc-act.h to make them available outside objc-act.c. 1419 (objc_eh_runtime_type): Removed. 1420 (objc_eh_personality): Removed. 1421 (CLASS_HAS_EXCEPTION_ATTR): New. 1422 (OCTI_SUPER_SUPERFIELD_ID): New. 1423 (OCTI_V1_PROP_LIST_TEMPL): New. 1424 (OCTI_V1_PROP_NAME_ATTR_CHAIN): New. 1425 (super_superclassfield_id): New. 1426 (objc_prop_list_ptr): New. 1427 (prop_names_attr_chain): New. 1428 * objc-act.c: Include new runtime headers. Moved many #defines 1429 and declarations into objc-act.h and 1430 objc-runtime-shared-support.h. Made some corresponding functions 1431 non-static, and moved some others into 1432 objc-runtime-shared-support.c. Moved metadata generation code 1433 into the new runtime hook files. 1434 (ivar_offset_hash_list): New. 1435 (objc_init): Call generate_struct_value_by_array() before doing 1436 any runtime initialization. Create the appropriate runtime hook 1437 structures. 1438 (init_objc): Removed. Code moved directly into objc_init. 1439 (finish_objc): Removed. Code moved directly into 1440 objc_write_global_declarations. 1441 (objc_write_global_declarations): Do the warn_selector checks 1442 before emitting metadata. Use a runtime hook to emit the 1443 metadata. Do not emit the metadata or do -gen-decls processing if 1444 -fsyntax-only or we are producing a PCH. 1445 (build_objc_exception_stuff): Renamed to 1446 build_common_objc_exception_stuff. Remove TREE_NOTHROW flag from 1447 objc_exception_throw_decl. 1448 (synth_module_prologue): Call runtime initialize hook instead of 1449 building runtime declarations here. Use the 1450 default_constant_string_class_name runtime hook to set the 1451 constant string class name. 1452 (objc_build_string_object): Call the setup_const_string_class_decl 1453 runtime hook instead of setup_string_decl. Call the 1454 build_const_string_constructor runtime hook instead of building 1455 the string object here. 1456 (get_objc_string_decl): Added prop_names_attr case. Removed 1457 gcc_unreachable() at the end. 1458 (objc_begin_catch_clause): Distinguish between @catch (...) and 1459 @catch (id x). Call the begin_catch runtime hook instead of 1460 building the CATCH_EXPR here. 1461 (objc_finish_catch_clause): Call the finish_catch runtime hook 1462 instead of adding the catch here. 1463 (objc_finish_try_stmt): Call the finish_try_stmt runtime hook 1464 instead of doing it here. 1465 (objc_build_throw_stmt): Bail out early for error_mark_node. Call 1466 the build_exc_ptr runtime hook instead of objc_build_exc_ptr. 1467 Call the build_throw_stmt runtime hook instead of building the 1468 throw call here. 1469 (objc_generate_cxx_cdtors): Set has_cxx_cdtors for the GNU runtime 1470 as well. 1471 (get_arg_type_list): Call the get_arg_type_list_base runtime hook 1472 instead of building the list of arguments here. 1473 (receiver_is_class_object): Call the receiver_is_class_object 1474 runtime hook instead of doing the check here. Call the 1475 tag_getclass runtime hook instead of using TAG_GETCLASS. 1476 (objc_finish_message_expr): Call the build_objc_method_call 1477 runtime hook. 1478 (objc_build_protocol_expr): Call the get_protocol_reference 1479 runtime hook. 1480 (objc_build_selector_expr): Call the build_selector_reference 1481 runtime hook. 1482 (build_ivar_reference): Call the build_ivar_reference runtime 1483 hook. 1484 (hash_init): Set up ivar_offset_hash_list. 1485 (start_class): Recognize the objc_exception attribute and store 1486 it. 1487 (continue_class): Use the class_decl and metaclass_decl runtime 1488 hooks. 1489 (build_objc_property_accessor_helpers): Renamed to 1490 build_common_objc_property_accessor_helpers. Do not build 1491 objc_copyStruct_decl, objc_getPropertyStruct_decl and 1492 objc_setPropertyStruct_decl. 1493 (objc_synthesize_getter): Check what struct setter/getter helper 1494 is available instead of checking the type of runtime. 1495 (get_super_receiver): Use the super_superclassfield_ident runtime 1496 hook. Added assert. Use the get_class_super_ref and 1497 get_category_super_ref runtime hooks. 1498 (objc_v2_encode_prop_attr): New. 1499 15002011-01-17 Nicola Pero <nicola.pero@meta-innovation.com> 1501 1502 PR objc/47314 1503 * objc-act.c (finish_objc): When calling check_duplicates to check 1504 duplicated instance methods, set 'is_class' to 0, not 1. 1505 15062011-01-14 Ben Elliston <bje@au.ibm.com> 1507 1508 PR 19162 1509 * objc-act.c (generate_struct_by_value_array): Do not output a 1510 definition for struct_forward_array. 1511 15122011-01-08 Iain Sandoe <iains@gcc.gnu.org> 1513 1514 * objc-act.c (objc_finish_foreach_loop): Mark collection expression 1515 as read. 1516 15172011-01-02 H.J. Lu <hongjiu.lu@intel.com> 1518 1519 * objc-act.c (check_that_protocol_is_defined): Fix a typo. 1520 15212011-01-02 Nicola Pero <nicola.pero@meta-innovation.com> 1522 1523 * objc-act.c (check_that_protocol_is_defined): New. 1524 (lookup_protocol): Call check_that_protocol_is_defined. 1525 15262010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1527 1528 * objc-act.c (objc_types_are_equivalent): Fixed comparing protocol 1529 lists. Check them two-ways to fix comparisons when one protocol 1530 implements the other one, or when one list contains duplicated 1531 protocols. 1532 15332010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1534 1535 * objc-act.c (objc_add_method): When emitting an error because a 1536 method with the same name but conflicting types is found in the 1537 same class or category interface, print a note with the location 1538 of the original method. Also, improved the error message to 1539 clearly state that the conflict is due to conflicting types, and 1540 produce it for protocols as well. Emit an error if two identical 1541 methods are declared in a protocol, but one is @required and the 1542 other one is @optional. 1543 15442010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1545 1546 * objc-act.c (start_class): Warn when a class attribute is 1547 ignored. 1548 (objc_declare_protocols): Warn when a protocol attribute in a 1549 protocol forward-declaration is ignored. 1550 (start_protocol): Warn when a protocol attribute is ignored. 1551 15522010-12-30 Nicola Pero <nicola.pero@meta-innovation.com> 1553 1554 * objc-act.c (objc_set_method_opt): Tidy up error messages. In 1555 particular, explicitly mention whether the error is due to the 1556 @optional or @required keyword instead of mentioning 1557 "@optional/@required". 1558 15592010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 1560 1561 PR objc/47118 1562 * objc-act.c (objc_build_synchronized): Check the argument of 1563 @synchronized and emit an appropriate error if it is not a valid 1564 Objective-C object. Deal gracefully with that case. Updated 1565 comments and variable names. 1566 15672010-12-29 Nicola Pero <nicola.pero@meta-innovation.com> 1568 1569 PR objc/47075 1570 * objc-act.h (PROPERTY_REF_DEPRECATED_GETTER): New. 1571 * objc-tree.def (PROPERTY_REF): Increased the number of operands 1572 from 3 to 4. 1573 * objc-act.c (objc_finish_message_expr): Added optional argument 1574 allowing to return the deprecated method prototype for deprecated 1575 methods, instead of immediately emitting the deprecation warning. 1576 (objc_maybe_build_component_ref): Do not warn for a deprecated 1577 property. When building the getter call, get the deprecated 1578 method prototype from objc_finish_message_expr() and put it into 1579 the PROPERTY_REF. 1580 (objc_build_class_component_ref): Same change. 1581 (finish_class): Mark the getter and setter as deprecated if they 1582 are generated from a deprecated property. 1583 (objc_gimplify_property_ref): If the getter is deprecated, emit a 1584 deprecation warning. 1585 (objc_build_setter_call, objc_build_message_expr, 1586 objc_finish_foreach_loop): Updated call to 1587 objc_finish_message_expr. 1588 15892010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1590 1591 PR objc/47076 1592 * objc-act.c (lookup_protocol): Added 'definition_required' 1593 argument. If 'definition_required', and the protocol is not 1594 defined, emit a warning. 1595 (objc_declare_protocols): Updated call to lookup_protocol. 1596 (start_protocol): Same change. 1597 (check_protocol_recursively): Same change. 1598 (objc_build_protocol_expr): Same change. 1599 (lookup_and_install_protocols): Added definition_required argument. 1600 Pass it to lookup_protocol. 1601 (objc_get_protocol_qualified_type): Updated call to 1602 lookup_and_install_protocols. 1603 (start_class): Updated calls to lookup_and_install_protocols; pass 1604 true to 'definition_required' to get the warnings. 1605 (start_protocol): Updated calls to lookup_and_install_protocols. 1606 16072010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1608 1609 * objc-act.c (objc_start_category_interface): Produce an error if 1610 a class extension is found after the class @implementation. 1611 16122010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> 1613 1614 PR objc/47073 1615 * objc-act.c (encode_method_prototype): Fixed both location and 1616 format string of error "type %qT does not have a known size". 1617 16182010-12-26 Nicola Pero <nicola.pero@meta-innovation.com> 1619 1620 * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c. 1621 16222010-12-22 Nathan Froyd <froydnj@codesourcery.com> 1623 1624 * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p. 1625 16262010-12-18 Nicola Pero <nicola.pero@meta-innovation.com> 1627 1628 * objc-act.c (objc_init): Call using_eh_for_cleanups. 1629 (objc_init_exceptions): Renamed to objc_maybe_warn_exceptions. Do 1630 not call using_eh_for_cleanups. 1631 (objc_begin_try_stmt): Do not call objc_init_exceptions. 1632 (objc_build_throw_stmt): Updated call to 1633 objc_maybe_warn_exceptions. 1634 16352010-12-18 Iain Sandoe <iains@gcc.gnu.org> 1636 1637 * objc-act.c (objc_eh_personality): Select personality name on 1638 runtime. 1639 (objc_init_exceptions): New. 1640 (objc_begin_try_stmt): Use objc_init_exceptions. 1641 (objc_build_throw_stmt): Likewise. 1642 16432010-12-10 Nicola Pero <nicola.pero@meta-innovation.com> 1644 1645 * objc-act.c (objc_in_class_extension): New. 1646 (objc_start_category_interface): If -fobjc-std=objc1 1647 was specified, produce an error if a class extension is used. 1648 (objc_finish_interface): Reset objc_in_class_extension to false. 1649 (objc_add_property_declaration): Allow a class extension to extend 1650 readonly properties in the main @interface to be readwrite. 1651 (start_class): Added code to deal with class extensions. In that 1652 case, return the existing interface after adding any additional 1653 protocols to it and setting objc_in_class_extension to true. 1654 (continue_class): If in a class extension, do not generate the 1655 instance variable template. 1656 16572010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 1658 1659 * objc-act.c (objc_build_throw_stmt): Check that the argument of 1660 @throw is an object and emit an error if not. 1661 16622010-12-08 Nicola Pero <nicola.pero@meta-innovation.com> 1663 1664 * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of 1665 error() when printing an error about the iterating variable or 1666 collection not being an object. 1667 16682010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 1669 1670 * objc-act.c (objc_finish_foreach_loop): Mark the 1671 object_expression as used. 1672 16732010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> 1674 1675 * objc-act.c: Include c-family/c-objc.h. 1676 * objc-lang.c: Same change. 1677 * Make-lang.in (objc/objc-act.o): Depend on 1678 c-family/c-objc.h. 1679 (objc/objc-lang.o): Same change. 1680 * config-lang.in (gtfiles): Added c-family/c-objc.h. 1681 16822010-12-02 Joseph Myers <joseph@codesourcery.com> 1683 1684 * lang-specs.h: Don't handle -ftraditional. 1685 16862010-12-02 Nicola Pero <nicola.pero@meta-innovation.com> 1687 1688 * objc-act.c (objc_build_throw_stmt): Return error_mark_node and 1689 not NULL_TREE when a @throw is used outside of a @catch block. 1690 16912010-11-30 Nicola Pero <nicola.pero@meta-innovation.com> 1692 1693 * objc-act.c (objc_build_volatilized_type): Removed. 1694 (objc_non_volatilized_type): Removed. 1695 (objc_type_quals_match): Removed. 1696 (local_variables_to_volatilize): New. 1697 (objc_volatilize_decl): Add the decl to volatilize to 1698 local_variables_to_volatilize, but don't volatilize it yet. 1699 (objc_finish_function): New. 1700 * objc-act.h (local_variables_to_volatilize): New. 1701 17022010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1703 Mike Stump <mikestump@comcast.net> 1704 1705 Allow 'make check-objc -j2' 1706 * Make-lang.in (lang_checks_parallelized): New. 1707 (check_objc_parallelize): New. 1708 17092010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1710 1711 * objc-act.c (start_class): When a class is reimplemented, 1712 generate an error and avoid adding the class to the list of 1713 implemented classes again, but do not return error_mark_node. 1714 17152010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1716 1717 * objc-act.c (objc_maybe_build_component_ref): Removed TODO. 1718 17192010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1720 1721 * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node 1722 is passed as argument. 1723 (objc_begin_catch_clause): Added code to deal with an 1724 error_mark_node or NULL_TREE argument. Improved checks for 1725 invalid arguments. Added code to traverse typedefs. 1726 17272010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 1728 1729 * objc-act.c (objc_demangle): Return immediately if the string is 1730 too short. Detect names that do not need demangling, and return 1731 them unchanged. 1732 17332010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 1734 1735 Implemented optional properties. 1736 * objc-act.h (PROPERTY_OPTIONAL): New. 1737 * objc-act.c (objc_add_property_declaration): Set 1738 PROPERTY_OPTIONAL if appropriate. 1739 (finish_class): When generating definitions of setter and getter 1740 methods associated with a property for a protocol, mark them as 1741 optional if the property is optional. 1742 (maybe_make_artificial_property_decl): Added 'getter_name' 1743 argument. Set PROPERTY_OPTIONAL. 1744 (objc_maybe_build_component_ref): Updated calls to 1745 maybe_make_artificial_property_decl. Added code for optional, 1746 readonly properties. 1747 (objc_build_class_component_ref): Updated call to 1748 maybe_make_artificial_property_decl. 1749 17502010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> 1751 1752 * objc-act.c (objc_build_struct): Fixed loops that save and 1753 restore TYPE_OBJC_INFO to iterate over all variants of the type; a 1754 special case for the current type is then no longer required. 1755 Duplicate TYPE_LANG_SPECIFIC for each type before restoring 1756 TYPE_OBJC_INFO. 1757 (objc_get_protocol_qualified_type): Updated comments. 1758 17592010-11-25 Nicola Pero <nicola.pero@meta-innovation.com> 1760 1761 * objc-act.c (objc_build_struct): Install TYPE_OBJC_INTERFACE 1762 after finish_struct, not before, otherwise it may be wiped out by 1763 it. This fixes spurious warnings when a class has more than 15 1764 instance variables. 1765 17662010-11-23 Nicola Pero <nicola.pero@meta-innovation.com> 1767 1768 PR objc/24358 1769 * lang-specs.h: Added objective-c-cpp-output. Mapped .mi to 1770 objective-c-cpp-output instead of objc-cpp-output. Print a 1771 deprecation note every time objc-cpp-output is requested. 1772 17732010-11-22 Joseph Myers <joseph@codesourcery.com> 1774 1775 * objc-act.c (write_symbols): Don't declare here. 1776 17772010-11-22 Nicola Pero <nicola.pero@meta-innovation.com> 1778 1779 PR objc/41108 1780 * objc-act.c (objc_generate_write_barrier): Added assert to make sure 1781 this function is only called with the next runtime. 1782 17832010-11-20 Jakub Jelinek <jakub@redhat.com> 1784 1785 PR c/46547 1786 * objc-act.c (in_late_binary_op): Remove. 1787 17882010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 1789 1790 * objc-act.c (objc_start_class_interface): Do not warn that class 1791 attributes are unimplemented. Pass the attributes to start_class. 1792 (objc_start_category_interface): Updated call to start_class. 1793 (objc_start_class_implementation): Same change. 1794 (objc_start_category_implementation): Same change. 1795 (objc_build_class_component_ref): Warn if the class is deprecated. 1796 (build_private_template): Mark the template as deprecated if the 1797 class is deprecated. 1798 (start_class): Added 'attributes' argument. Emit a warning if 1799 using a deprecated class as superclass of a class, or original 1800 class of a category. Recognize the 'deprecated' attribute when 1801 starting and interface, and mark the interface with 1802 TREE_DEPRECATED if present. Store attributes in the interface. 1803 18042010-11-19 Nicola Pero <nicola.pero@meta-innovation.com> 1805 1806 * objc-act.c (lookup_protocol): Added 'warn_if_deprecated' 1807 argument. If it is 'true' and the protocol is deprecated, emit a 1808 deprecation warning. 1809 (objc_start_protocol): Do not warn that protocol attributes are 1810 unimplemented. Pass the attributes to start_protocol. 1811 (start_protocol): Added attributes argument. Recognize the 1812 'deprecated' attribute and mark the protocols with TREE_DEPRECATED 1813 if present. Store attributes in the protocol. 1814 (objc_declare_protocols): Added 'attributes' argument. Recognize 1815 the 'deprecated' attribute and mark the protocols with 1816 TREE_DEPRECATED if present. Store attributes in the protocol. 1817 Updated call to lookup_protocol. 1818 (objc_build_protocol_expr): Updated call to lookup_protocol. 1819 (check_protocol_recursively): Same change. 1820 (lookup_and_install_protocols): Same change. 1821 * objc-act.h: Updated comments. 1822 18232010-11-17 Nicola Pero <nicola.pero@meta-innovation.com> 1824 1825 * objc-act.c (lookup_method_in_protocol_list): Search methods in 1826 PROTOCOL_OPTIONAL_CLS_METHODS / PROTOCOL_OPTIONAL_NST_METHODS if 1827 they are not found in PROTOCOL_CLS_METHODS / PROTOCOL_NST_METHODS. 1828 18292010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1830 1831 * objc-act.c (objc_build_setter_call): New. 1832 (objc_maybe_build_modify_expr): Rewritten to build a compound 1833 statement. 1834 (objc_build_incr_expr_for_property_ref): Updated calls to 1835 objc_maybe_build_modify_expr to call objc_build_setter_call 1836 instead. Use build_modify_expr () instead of build2 (MODIFY_EXPR, 1837 ...). Use convert () instead of build1 (NOP_EXPR, ...). Use 1838 TREE_NO_WARNING on the final compound statement to silence C++ 1839 warnings. 1840 18412010-11-15 Nicola Pero <nicola.pero@meta-innovation.com> 1842 1843 * objc-act.c (objc_build_incr_expr_for_property_ref): New. 1844 (objc_create_temporary_var): Moved it towards the beginning of the 1845 file so that objc_build_incr_expr_for_property_ref can use it. 1846 18472010-11-14 Nicola Pero <nicola.pero@meta-innovation.com> 1848 1849 * objc-act.c (objc_add_property_declaration): Check that the decl 1850 we received from the parser is a FIELD_DECL; reject array and 1851 bitfield properties. Convert the warning when a property is 1852 readonly and a setter is specified into an error. Convert errors 1853 when a property declaration does not match a property declaration 1854 in a superclass into warnings. 1855 (objc_add_synthesize_declaration_for_property): Use 1856 DECL_BIT_FIELD_TYPE to determine the type of an instance variable 1857 if it is a bitfield. Throw an error if we are asked to synthesize 1858 setters/getters for a bitfield instance variable but the property 1859 is not appropriate - it must be assign and nonatomic. If the 1860 property is readonly, allow the instance variable type to be a 1861 specialization of the property type. 1862 (objc_type_valid_for_messaging): Fixed returning 'false' for a 1863 Class qualified with a protocol when the 'accept_classes' argument 1864 is 'false'. 1865 18662010-11-13 Nicola Pero <nicola.pero@meta-innovation.com> 1867 1868 * objc-act.c (objc_get_protocol_qualified_type): detect cases 1869 where we are asked to attach a protocol to something which is not 1870 an Objective-C object type, and produce an error. 1871 18722010-11-11 Nicola Pero <nicola.pero@meta-innovation.com> 1873 1874 * objc-act.c (objc_add_property_declaration): Check that the type 1875 of a property and of an inherited property match. 1876 (objc_maybe_build_component_ref): Tidied up indentation and 1877 comments. 1878 (objc_common_type): Added new type of check (-5). 1879 (objc_add_synthesize_declaration_for_property): Check that the 1880 property to synthesize and the instance variable to use have the 1881 same type. 1882 18832010-11-10 Joseph Myers <joseph@codesourcery.com> 1884 1885 * objc-act.c (objc_init): Use %' in diagnostic. 1886 (objc_set_method_opt): Remove trailing '.' from diagnostic. 1887 18882010-11-10 Joseph Myers <joseph@codesourcery.com> 1889 1890 * objc-act.c (dump_base_name): Don't declare here. 1891 18922010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1893 1894 * objc-act.c (objc_add_dynamic_declaration_for_property): Do not 1895 search for the @property declation only in the current context, 1896 but also in inherited properties. Do not mark the original 1897 PROPERTY_DECL in the @interface or @protocol with 1898 PROPERTY_DYNAMIC. 1899 (check_methods): To check if a method is associated with a 1900 @dynamic property, search for the property in IMPL_PROPERTY_DECL. 1901 (check_accessible_methods): Same change. 1902 * objc-act.h: Updated comment. 1903 19042010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1905 1906 * objc-act.c (objc_add_synthesize_declaration_for_property): 1907 Iterate over IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when 1908 checking for an existing @synthesize or @dynamic declaration. 1909 Search for an inherited @property declaration if none is found in 1910 the local interface. If the required instance variable does not 1911 exist, return instead of trying to continue to prevent a compiler 1912 crash later. Check that the instance variable is not already 1913 being used by another @synthesize. 1914 (objc_add_dynamic_declaration_for_property): Iterate over 1915 IMPL_PROPERTY_DECL, not CLASS_PROPERTY_DECL, when checking for an 1916 existing @synthesize or @dynamic declaration. 1917 (objc_synthesize_getter): Search for the getter declaration in 1918 protocols and superclasses as well. 1919 (objc_synthesize_setter): Search for the setter declaration in 1920 protocols and superclasses as well. 1921 19222010-11-08 Nicola Pero <nicola.pero@meta-innovation.com> 1923 1924 * objc-act.c (lookup_property): When checking categories, also 1925 check the protocols attached to each. 1926 (objc_add_property_declaration): Determine the 1927 PROPERTY_SETTER_NAME and PROPERTY_GETTER_NAME here. Tidied up 1928 error message. Search for an existing property declaration with 1929 the same name which would be inherited from the class hiearchy, 1930 and produce an error if it has incompatible attributes. 1931 (check_methods): Changed second parameter. If the method is a 1932 getter or setter for a property, do not warn if it is inherited as 1933 opposed to implemented directly in the class. 1934 (check_protocol): Updated calls to check_methods. 1935 (finish_class): Do not determine the PROPERTY_SETTER_NAME and 1936 PROPERTY_GETTER_NAME here; this is now done earlier, in 1937 objc_add_property_declaration. 1938 * objc-act.h (CLASS_NAME, CLASS_SUPER_NAME): Added comments. 1939 19402010-11-06 Nicola Pero <nicola.pero@meta-innovation.com> 1941 1942 Fixed using the Objective-C 2.0 dot-syntax with self and super. 1943 * objc-act.c (OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS): New. 1944 (maybe_make_artificial_property_decl): Added 'implementation' 1945 argument. Use OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS when 1946 looking up getters or setters for a class. If an implementation 1947 is specified, search it as well for a getter or setter. 1948 (objc_maybe_build_component_ref): Updated calls to 1949 maybe_make_artificial_property_decl; added code to deal with 1950 'self' and 'super' and with methods declared locally in the 1951 implementation. Store the getter call expression in the 1952 PROPERTY_REF instead of throwing it away. 1953 (objc_build_class_component_ref): Updated calls to 1954 maybe_make_artificial_property_decl, and store the getter call 1955 expression in PROPERTY_REF instead of throwing it away. 1956 (lookup_method_static): Implemented 1957 OBJC_LOOKUP_NO_INSTANCE_METHODS_OF_ROOT_CLASS option. 1958 (objc_gimplify_property_ref): Do not build the getter method call 1959 here; instead use the one stored in the PROPERTY_REF. If it's not 1960 there, produce helpful error messages. 1961 * objc-tree.def (PROPERTY_REF): Increased the number of operands 1962 from 2 to 3. Updated comments. 1963 * objc-act.h (PROPERTY_REF_GETTER_CALL): New. 1964 19652010-11-06 Iain Sandoe <iains@gcc.gnu.org> 1966 1967 PR target/44981 1968 * objc-act.c (objc_build_string_object): Amend for renamed hook. 1969 (objc_string_ref_type_p): New. 1970 (objc_check_format_arg): New. 1971 19722010-11-04 Nicola Pero <nicola.pero@meta-innovation.com> 1973 1974 Fixed using the Objective-C 2.0 dot-syntax with class names. 1975 * objc-act.c (objc_build_class_component_ref): New. 1976 19772010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1978 1979 * objc-act.c (objc_add_dynamic_declaration): Allow @dynamic in a 1980 category. 1981 (objc_type_valid_for_messaging): Added 'accept_classes' argument; 1982 if set to 'true', return 'true' for Class objects. Do not remove 1983 more than on pointer indirection. 1984 (objc_add_property_declaration): Only warn about 'assign' 1985 semantics for Objective-C objects if warn_property_assign_default; 1986 and do not warn if the property is readonly or if the type is a Class. 1987 (objc_finish_foreach_loop): Updated calls to 1988 objc_type_valid_for_messaging. 1989 19902010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 1991 1992 Implemented -fobjc-std=objc1 flag. 1993 * objc-act.c (objc_start_class_interface): If attributes are 1994 specified when flag_objc1_only is set, print an error. 1995 (objc_start_category_interface): Same change. 1996 (objc_start_protocol): Same change. 1997 (objc_add_method_declaration): Same change. 1998 (objc_start_method_definition): Same change. 1999 (objc_build_keyword_decl): Same change. 2000 (objc_set_visibility): If OBJC_IVAR_VIS_PACKAGE is used when 2001 flag_objc1_set is set, print an error. 2002 (objc_set_method_opt): If flag_objc1_only is set, print an error. 2003 (objc_add_property_declaration): Same change. 2004 (objc_add_synthesize_declaration): Same change. 2005 (objc_add_dynamic_declaration): Same change. 2006 (objc_finish_foreach_loop): Same change. 2007 (objc_maybe_build_component_ref): If flag_objc1_only is set, 2008 return immediately. 2009 20102010-11-03 Nicola Pero <nicola.pero@meta-innovation.com> 2011 2012 * objc-act.c (maybe_make_artificial_property_decl): New. 2013 (objc_maybe_build_component_ref): Call 2014 maybe_make_artificial_property_decl if a property can not be 2015 found. Do not call objc_finish_message_expr if 2016 PROPERTY_HAS_NO_GETTER. 2017 * objc-act.h Updated comments. 2018 (PROPERTY_HAS_NO_GETTER): New. 2019 (PROPERTY_HAS_NO_SETTER): New. 2020 * objc-tree.def: Updated comment. 2021 20222010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 2023 2024 Implemented format and noreturn attributes for Objective-C methods. 2025 * objc-act.c (objc_start_method_definition): If method attributes 2026 are specified emit a warning and ignore them. 2027 (build_objc_method_call): Moved deprecation warnings from here ... 2028 (objc_finish_message_expr): to here. Do not emit deprecation 2029 warnings if the receiver is of type 'id'. 2030 (really_start_method): Install 'deprecation' and 'noreturn' 2031 attributes. 2032 (objc_decl_method_attributes): Carefully filter out the list of 2033 attributes, allowing only "noreturn", "format", "sentinel" and 2034 "deprecated". In the case of "format", adjust the arguments. 2035 Always process the attributes in the same way no matter if 2036 "sentinel" is in the list or not. 2037 20382010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 2039 2040 * objc-act.c (objc_maybe_build_component_ref): Warn about using 2041 deprecated properties. 2042 (objc_maybe_printable_name): Support PROPERTY_DECL. 2043 20442010-11-01 Nicola Pero <nicola.pero@meta-innovation.com> 2045 2046 Implemented Objective-C 2.0 property accessors. 2047 * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL, 2048 OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL, 2049 OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL. 2050 (objc_getProperty_decl): New. 2051 (objc_setProperty_decl): New. 2052 (objc_copyStruct_decl): New. 2053 (objc_getPropertyStruct_decl): New. 2054 (objc_setPropertyStruct_decl): New. 2055 * objc-act.c (build_objc_property_accessor_helpers): New. 2056 (synth_module_prologue): Call 2057 build_objc_property_accessor_helpers. 2058 (lookup_ivar): New. 2059 (objc_synthesize_getter): Implemented synthesizing getters that 2060 work with properties that are not nonatomic, assign properties. 2061 (objc_synthesize_setter): Implemented synthesizing setters that 2062 work with properties that are not nonatomic, assign properties. 2063 20642010-10-30 Nicola Pero <nicola.pero@meta-innovation.com> 2065 2066 Implemented Objective-C 2.0 @property, @synthesize and @dynamic. 2067 * objc-tree.def (PROPERTY_REF): New. 2068 * objc-act.h: Added comments for all the PROPERTY_ macros. 2069 (PROPERTY_NAME): Use DECL_NAME. 2070 (PROPERTY_COPIES): Removed. 2071 (PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it. 2072 (PROPERTY_NONATOMIC): New. 2073 (objc_property_assign_semantics): Make it a typedef. 2074 (PROPERTY_ASSIGN_SEMANTICS): New. 2075 (PROPERTY_DYNAMIC): New. 2076 (PROPERTY_REF_OBJECT): New. 2077 (PROPERTY_REF_PROPERTY_DECL): New. 2078 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed. 2079 (in_objc_property_setter_name_context): Removed. 2080 (objc_add_property_declaration): Removed copies and ivar arguments 2081 and code supporting them. Fixed recovering when readonly and 2082 setter attributes are specified. Removed support for @property in 2083 @implementation context. Updated error message. Double-check 2084 that a property does not have a DECL_INITIAL. Validate the 2085 property assign semantics and emit appropriate errors and 2086 warnings. Check for duplicate property declarations. Set 2087 DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC, 2088 PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new 2089 PROPERTY_DECL. Do not set PROPERTY_COPIES. Set 2090 PROPERTY_IVAR_NAME to NULL_TREE. 2091 (objc_build_getter_call): Renamed to 2092 objc_maybe_build_component_ref. If the property is not found in 2093 the interface, search in the protocol list. Do not generate the 2094 getter call; instead, build and return a PROPERTY_REF. 2095 (objc_is_property_ref): New. 2096 (objc_setter_func_call): Removed. 2097 (get_selector_from_reference): Removed. 2098 (is_property): Removed. 2099 (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr. 2100 Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from 2101 the PROPERTY_REF. Generate an error if the property is read-only. 2102 (build_property_reference): Removed. 2103 (objc_finish_message_expr): Removed check to produce "readonly 2104 property can not be set" error when 2105 in_objc_property_setter_name_context. We now generate the error 2106 earlier, in objc_maybe_build_modify_expr, which will only generate 2107 the setter call if the property is readwrite. 2108 (check_methods): Recognize dynamic properties. 2109 (check_methods_accessible): Same change. 2110 (objc_build_property_ivar_name): Removed. 2111 (objc_build_property_setter_name): Dropped bool argument. Always 2112 add the ':' at the end. 2113 (objc_gen_one_property_datum): Removed. 2114 (objc_process_getter_setter): Removed. 2115 (objc_synthesize_getter): Mark 'klass' argument as unused. Use 2116 PROPERTY_GETTER_NAME instead of PROPERTY_NAME. Set the 2117 DECL_SOURCE_LOCATION of the new method to be the same as the one 2118 for the @synthesize. Always use PROPERTY_IVAR_NAME as it is 2119 instead of trying to guess what it should be. Removed use of 2120 CLASS_IVARS. Use the location of @synthesize for c_finish_return 2121 and c_end_compound_statement. 2122 (objc_synthesize_setter): Mark 'klass' argument as unused. Use 2123 PROPERTY_SETTER_NAME instead of trying to guess what it should be. 2124 Set the DECL_SOURCE_LOCATION of the new method to be the same as 2125 the one for the @synthesize. Always use PROPERTY_IVAR_NAME as it 2126 is instead of trying to guess what it should be. Removed use of 2127 CLASS_IVARS. Use the location of @synthesize for c_finish_return 2128 and c_end_compound_statement. Emit an error and keep going, 2129 instead of aborting, if the setter prototype does not have the 2130 expected argument. 2131 (objc_add_synthesize_declaration_for_property): New. 2132 (objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from 2133 all arguments. Improved error message. Filled in the rest of the 2134 function, which used to be a placeholder, with an actual 2135 implementation. 2136 (objc_add_dynamic_declaration_for_property): New. 2137 (objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all 2138 arguments. Improved error message. Filled in the rest of the 2139 function, which used to be a placeholder, with an actual 2140 implementation. 2141 (objc_gen_property_data): Rewritten. 2142 (finish_class): Added explicit switch cases for 2143 CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and 2144 PROTOCOL_INTERFACE_TYPE. Added a default switch case which is 2145 gcc_unreachable. Rewritten the processing of properties, in 2146 particular to not synthesize prototypes for getters and setters if 2147 they already exist and to install the getter and setter names into 2148 PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME. Do not generate 2149 warnings about setter, getter and ivar property attributes. 2150 (objc_lookup_ivar): Removed support for properties. 2151 (objc_gimplify_property_ref): New. 2152 (objc_gimplify_expr): Use a switch. In case of a PROPERTY_REF, call 2153 objc_gimplify_property_ref. 2154 21552010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 2156 2157 * objc-act.c (objc_add_property_declaration): Added arguments to 2158 pass the various property attributes that were parsed with the 2159 property declaration. Process arguments to determine the final 2160 property attributes and produce error messages as appropriate. 2161 Added temporary code to keep the compiler silent about variables 2162 set but not used - for new attributes that are only checked but 2163 have no effect yet. 2164 (property_readonly): Removed. 2165 (property_setter): Removed. 2166 (property_getter): Removed. 2167 (property_ivar): Removed. 2168 (property_copies): Removed. 2169 (objc_set_property_attr): Removed. 2170 * objc-act.h (enum property_assign_semantics): New. 2171 21722010-10-27 Nicola Pero <nicola.pero@meta-innovation.com> 2173 2174 * objc-act.c (objc_add_property_variable): Renamed to 2175 objc_add_property_declaration. Added location argument. Updated 2176 warnings and errors to use it. Use error, not fatal_error, if a 2177 property declaration is found outside an interface or 2178 implementation context. 2179 21802010-10-24 Nicola Pero <nicola.pero@meta-innovation.com> 2181 2182 * objc-act.c (objc_build_keyword_decl): Updated comments. Do not 2183 emit a warning that method parameter attributes are unimplemented. 2184 Instead, store them into DECL_ATTRIBUTES of the KEYWORD_DECL. 2185 (start_method_def): Copy attributes from each KEYWORD_DECL into 2186 the corresponding PARM_DECL. 2187 (objc_warn_deprecated_use): Removed. 2188 (build_objc_method_call): Call warn_deprecated_use, not 2189 objc_warn_deprecated_use. 2190 (objc_maybe_printable_name): Do not try to get the identifier name 2191 of DECLs that we don't recognize. Immediately return NULL for them. 2192 (objc_printable_name): Removed C++-specific case, which is no 2193 longer used. Updated comments. 2194 21952010-10-23 Nicola Pero <nicola.pero@meta-innovation.com> 2196 2197 * objc-act.c (OBJC_GEN_METHOD_LABEL): Updated comments. 2198 (objc_demangle): Return NULL if demangling can not be done because 2199 the string to demangle is not an Objective-C mangled method name. 2200 Be smarter in demangling method names so that at least for methods 2201 with no arguments we are able to almost always demangle '_' correctly. 2202 Updated comments. 2203 (objc_maybe_printable_name): New. 2204 (objc_printable_name): Call objc_maybe_printable_name. If it 2205 returns NULL, call cxx_printable_name in Objective-C++. 2206 22072010-10-21 Iain Sandoe <iains@gcc.gnu.org> 2208 2209 Based on the CFString implementation in FSF apple/trunk branch. 2210 2211 * objc-act.c (objc_build_string_object): Handle CFStrings. 2212 22132010-10-21 Nicola Pero <nicola.pero@meta-innovation.com> 2214 2215 * objc-act.c (get_objc_string_decl): Use a switch instead of a 2216 chain of ifs. Use gcc_unreachable instead of abort. 2217 (add_objc_string): Same change. 2218 (generate_protocol_list): Same change - twice. 2219 (synth_id_with_class_suffix): Same change. 2220 (build_keyword_selector): Same change - twice. 2221 (objc_build_message_expr): Same change. 2222 (objc_build_selector_expr): Same change. 2223 (check_methods): Same change - and added missing gcc_unreachable 2224 for default case. 2225 (check_methods_accessible): Same change - twice, and added missing 2226 gcc_unreachable for default case in one of them. 2227 (start_class): Same change - and added missing gcc_unreachable for 2228 default case. 2229 (continue_class): Same change. 2230 (objc_gen_property_data): Same change. 2231 (finish_class): Same change. 2232 (encode_type_qualifiers): Added missing gcc_unreachable. 2233 (encode_type): Small code tidy up to reduce duplicated code. Use 2234 gcc_unreachable instead of abort - twice. 2235 (encode_gnu_bitfield): Use a switch instead of a chain of ifs - 2236 twice. Added missing gcc_unreachable for default case - twice. 2237 (dump_interface): Use a switch instead of a chain of ifs. 2238 (handle_impent): Same change. 2239 22402010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 2241 2242 * objc-act.h (objc_inherit_code): Removed. 2243 * objc-act.c (objc_inherit_code): Removed. 2244 (objc_set_method_type): Removed. 2245 (objc_build_method_signature): Added is_class_method argument. 2246 Use it instead of the global objc_inherit_code variable. 2247 (objc_add_method_declaration): Same change. 2248 (objc_start_method_definition): Same change. 2249 (objc_generate_cxx_ctor_or_dtor): Updated call to 2250 objc_start_method_definition. Do not call objc_set_method_type. 2251 (adjust_type_for_id_default): Mark as inline. 2252 (objc_synthesize_getter): Updated call to 2253 objc_start_method_definition. Do not set objc_inherit_code. 2254 (objc_synthesize_setter): Updated call to 2255 objc_start_method_definition. Do not set objc_inherit_code. 2256 22572010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 2258 2259 Merge from 'apple/trunk' branch on FSF servers. Obvious updates 2260 to gcc_alloc_xxx calls in hash_init and hash_class_name_enter to 2261 get it to compile in the current trunk. 2262 2263 2006-01-27 Fariborz Jahanian <fjahanian@apple.com> 2264 2265 Radar 4345837 2266 * objc-act.c (hash_class_name_enter): New. 2267 (hash_class_name_lookup): New. 2268 (objc_declare_alias): Enter alias name into hash table. 2269 (objc_declare_class): Enter class name into hash table. 2270 (objc_is_class_name): Do a hash look up of class name. 2271 (hash_init): Initialize the two new hash tables. 2272 * objc-act.h: Added cls_name_hash_list and als_name_hash_list 2273 declarations, removed class_chain and alias_chain. 2274 22752010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 2276 2277 * objc-lang.c (finish_file): Removed. 2278 * objc-act.c (objc_finish_file): Renamed to 2279 objc_write_global_declarations. Do not try to instantiate C++ 2280 templates when compiling Objective-C++ as this is now 2281 automatically done before this function is called. Do not check 2282 for syntax-only run or PCH generation as this is done by the 2283 callers. 2284 * objc-act.h (objc_finish_file): Removed. 2285 22862010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 2287 2288 Implemented parsing @synthesize and @dynamic for 2289 Objective-C/Objective-C++. 2290 * objc-act.c (objc_add_synthesize_declaration): New. 2291 (objc_add_dynamic_declaration): New. 2292 22932010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 2294 2295 * objc-act.c (lookup_and_install_protocols): Return NULL if passed 2296 error_mark_node. 2297 22982010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 2299 2300 Merge from 'apple/trunk' branch on FSF servers. 2301 2302 2006-03-10 Fariborz Jahanian <fjahanian@apple.com> 2303 2304 Radar 4407151 2305 * objc-act.c (objc_is_class_name): template parameter is not 2306 an objective class name. 2307 (objc_generate_cxx_cdtors): Check for the null 2308 objc_implementation_context. 2309 23102010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> 2311 2312 Merge from 'apple/trunk' branch on FSF servers. 2313 2314 2005-11-08 Fariborz Jahanian <fjahanian@apple.com> 2315 2316 Radar 4330422 2317 * objc-act.c (objc_non_volatilized_type): New 2318 2319 2005-10-07 Fariborz Jahanian <fjahanian@apple.com> 2320 2321 Radar 4204796 2322 * objc-act.c (objc_build_volatilized_type): Build 'volatilzed' 2323 types with proper attribute set and correctly. 2324 (objc_volatilize_decl): Remove unneeded code. 2325 (objc_type_quals_match): Use the new attribute to check on 2326 'volatilzed' type. 2327 (hash_init): removed unneeded code. 2328 23292010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> 2330 2331 Merge from 'apple/trunk' branch on FSF servers. 2332 2333 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> 2334 2335 Radar 4133425 2336 * objc-act.c (objc_diagnose_private_ivar): New. 2337 23382010-10-17 Iain Sandoe <iains@gcc.gnu.org> 2339 2340 * objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and 2341 make its type 'objc_ivar_visibility_kind'. 2342 (objc_start_class_interface): Update to use visibility enum. 2343 (objc_start_class_implementation): Likewise. 2344 (objc_set_visibility): Update to use visibility enum, warn that 2345 @package is handle as per @public. 2346 (add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE. 2347 * objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and 2348 make its type 'objc_ivar_visibility_kind'. 2349 23502010-10-14 Iain Sandoe <iains@gcc.gnu.org> 2351 2352 merge from FSF apple 'trunk' branch. 2353 2006 Fariborz Jahanian <fjahanian@apple.com> 2354 2355 Radars 4436866, 4505126, 4506903, 4517826 2356 * objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): New. 2357 property_readonly, property_getter, property_setter, property_ivar, 2358 property_copies, in_objc_property_setter_name_context: New vars. 2359 (objc_set_property_attr): New. 2360 (objc_add_property_variable): New. 2361 (lookup_property_in_list): New. 2362 (lookup_property): New. 2363 (objc_build_getter_call): New. 2364 (objc_setter_func_call): New. 2365 (get_selector_from_reference): New. 2366 (objc_build_setter_call): New. 2367 (is_property): New. 2368 (build_property_reference): New. 2369 (objc_finish_message_expr): Detect readonly property and warn. 2370 (objc_build_property_ivar_name): New. 2371 (objc_build_property_setter_name): New. 2372 (objc_gen_one_property_datum): New. 2373 (objc_process_getter_setter): New. 2374 (objc_synthesize_getter): New. 2375 (objc_synthesize_setter): New. 2376 (objc_gen_property_data): New. 2377 (finish_class): Generate property data. 2378 (comp_proto_with_proto): Separated from ... 2379 (match_proto_with_proto): ... New. 2380 (objc_lookup_ivar): Handle properties. 2381 * objc-tree.def (PROPERTY_DECL): New tree code. 2382 * objc-act.h: CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS update size. 2383 (METHOD_PROPERTY_CONTEXT): New. 2384 (PROPERTY_NAME): New. 2385 (PROPERTY_GETTER_NAME): New. 2386 (PROPERTY_SETTER_NAME): New. 2387 (PROPERTY_IVAR_NAME): New. 2388 (PROPERTY_READONLY): New. 2389 (PROPERTY_COPIES): New. 2390 (TOTAL_CLASS_RAW_IVARS): New. 2391 (CLASS_PROPERTY_DECL): New. 2392 (IMPL_PROPERTY_DECL): New. 2393 * objc-lang.c (objc_init_ts): Update fields for property_decl. 2394 23952010-10-13 Richard Henderson <rth@redhat.com> 2396 2397 * objc-act.c (objc_eh_personality): Update call to 2398 build_personality_function. 2399 24002010-10-13 Iain Sandoe <iains@gcc.gnu.org> 2401 2402 merge from FSF apple 'trunk' branch. 2403 2404 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> 2405 Radar 3803157 (method attributes) 2406 * objc-act.h (METHOD_TYPE_ATTRIBUTES): New macro. 2407 * objc-act.c (objc_decl_method_attributes): New. 2408 (objc_add_method_declaration): Process method's attribute. 2409 (objc_start_method_definition): Ditto. 2410 (build_objc_method_call): Inject method attribute into 2411 built function type. 2412 (objc_method_decl): New. 2413 (objc_warn_deprecated)use): New. 2414 24152010-10-07 Andi Kleen <ak@linux.intel.com> 2416 2417 * Make-lang.in (cc1obj-dummy): Remove. 2418 (cc1obj-checksum): Change to run checksum over object files 2419 and options only. 2420 24212010-10-07 Nicola Pero <nicola.pero@meta-innovation.com> 2422 2423 PR objc/45925 2424 * objc-act.c (objc_finish_foreach_loop): Convert return value of 2425 countByEnumeratingWithState:objects:count: to long unsigned int. 2426 24272010-10-07 Iain Sandoe <iains@gcc.gnu.org> 2428 2429 * objc-act.c (build_objc_method_call): Replace calls to 2430 build_function_call () with the VEC equivalent. Construct parameter 2431 lists as VECs. 2432 24332010-10-07 Iain Sandoe <iains@gcc.gnu.org> 2434 2435 * objc-act.c (objc_build_message_expr): Call mark_exp_read () to 2436 signal that the receiver has been used. 2437 24382010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 2439 2440 * README: Obsolete file removed. 2441 24422010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 2443 2444 Implemented fast enumeration for Objective-C. 2445 * objc-act.c (build_fast_enumeration_state_template): New. 2446 (TAG_ENUMERATION_MUTATION): New. 2447 (TAG_FAST_ENUMERATION_STATE): New. 2448 (synth_module_prologue): Call build_fast_enumeration_state_template() and set up 2449 objc_enumeration_mutation_decl. 2450 (objc_create_temporary_var): Allow providing a name to temporary 2451 variables. 2452 (objc_build_exc_ptr): Updated calls to 2453 objc_create_temporary_var(). 2454 (next_sjlj_build_try_catch_finally): Same change. 2455 (objc_finish_foreach_loop): New. 2456 * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP, 2457 OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template, 2458 objc_enumeration_mutation_decl. 2459 2460 Merge from 'apple/trunk' branch on FSF servers. 2461 2462 2006-04-12 Fariborz Jahanian <fjahanian@apple.com> 2463 2464 Radar 4507230 2465 * objc-act.c (objc_type_valid_for_messaging): New routine to check 2466 for valid objc object types. 2467 (objc_finish_foreach_loop): Check for invalid objc objects in 2468 foreach header. 2469 24702010-10-05 Nicola Pero <nicola.pero@meta-innovation.com> 2471 2472 Merge from 'apple/trunk' branch on FSF servers. 2473 2474 2005-10-17 Fariborz Jahanian <fjahanian@apple.com> 2475 2476 Radar 4290840 2477 * objc-act.c (objc_start_method_definition): Check for 2478 error_mark_node for the selector name and make a quick exit. 2479 24802010-10-04 Andi Kleen <ak@linux.intel.com> 2481 2482 * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule. 2483 24842010-09-30 Iain Sandoe <iains@gcc.gnu.org> 2485 2486 merge from FSF 'apple/trunk' branch. 2487 2006-01-30 Fariborz Jahanian <fjahanian@apple.com> 2488 2489 Radar 4386773 2490 * objc-act.c (objc_set_method_opt): New function. 2491 (objc_start_protocol, objc_finish_interface): Reset 2492 objc_method_optional_flag flag. 2493 (objc_add_method_declaration): Pass on the new 2494 flag to objc_add_method. 2495 (objc_add_method): Add optional methods to new chain in 2496 the protocol class. 2497 * objc-act.h (CLASS_OPTIONAL_CLS_METHODS) 2498 (CLASS_OPTIONAL_NST_METHODS): New macros accessing a protocol 2499 class's optional method chains. 2500 25012010-09-30 Nicola Pero <nicola.pero@meta-innovation.com> 2502 2503 Merge from 'apple/trunk' branch on FSF servers. 2504 2505 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 2506 2507 Radar 4278236 2508 * objc-act.c (objc_declare_class): Pick the right 2509 type tree. 2510 25112010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 2512 2513 Merge from 'apple/trunk' branch on FSF servers. 2514 2515 2005-10-04 Fariborz Jahanian <fjahanian@apple.com> 2516 2517 Radar 4281748 2518 * objc-act.c (objc_check_global_decl): New 2519 25202010-09-29 Nicola Pero <nicola.pero@meta-innovation.com> 2521 2522 * objc-act.c (objc_is_reserved_word): Removed. 2523 25242010-09-28 Iain Sandoe <iains@gcc.gnu.org> 2525 2526 * objc-act.c (objc_add_method_declaration): Handle and ignore 2527 attributes. 2528 (objc_start_method_definition): Likewise. 2529 (objc_generate_cxx_ctor_or_dtor): Pass NULL attributes to ctor/dtor. 2530 (objc_build_keyword_decl): Handle and ignore attributes. 2531 25322010-09-28 Richard Henderson <rth@redhat.com> 2533 2534 * objc-act.c (objc_eh_personality): Use targetm.except_unwind_info. 2535 25362010-09-28 Iain Sandoe <iains@gcc.gnu.org> 2537 2538 * objc-act.c (objc_start_class_interface): Handle and ignore attributes. 2539 (objc_start_category_interface): Likewise. 2540 (objc_start_protocol): Likewise. 2541 25422010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2543 2544 Merge from 'apple/trunk' branch on FSF servers. 2545 2546 2005-08-23 Stuart Hastings <stuart@apple.com> 2547 Ziemowit Laski <zlaski@apple.com> 2548 2549 Radar 4209854 2550 * objc-act.c (objc_decay_parm_type): New function. 2551 (get_arg_type_list): Decay types for all named arguments. 2552 (objc_push_parm): Rebuild the PARM_DECL if its type has 2553 been decayed. 2554 25552010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2556 2557 * objc-act.c (encode_type): Fixed encoding enums with the next 2558 runtime. 2559 25602010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2561 2562 Merge from 'apple/trunk' branch on FSF servers. 2563 2564 2005-07-18 Ziemowit Laski <zlaski@apple.com> 2565 2566 Radar 4175534 2567 * objc-act.c (objc_compare_types): A new silent comparison 2568 mode (-4), differing from regular comparison (-3) in that 2569 'false' is returned instead of issuing warnings. 2570 25712010-09-28 Nicola Pero <nicola.pero@meta-innovation.com> 2572 2573 * objc-act.c (encode_type): Do not add 'r' with the next runtime. 2574 (encode_aggregate_within): Reorganized code to be more readable. 2575 (encode_aggregate_fields): Updated second argument to be 'bool' 2576 instead of 'int'. 2577 25782010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2579 2580 PR objc/45763 2581 PR objc/25450 2582 PR objc/25464 2583 * objc-act.c: Improved comments for encoding functions. 2584 (encode_aggregate_within): For the GNU runtime, rewritten some 2585 obsfuscated code to clarify the various cases. 2586 (encode_aggregate): Function removed. 2587 (encode_array): Generate an error if asked to encode an incomplete 2588 array as part of generating instance variables. Else, when 2589 encoding an incomplete array inside a structure, encode it as an 2590 array of zero size. 2591 (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as 2592 '^c' instead of '*'. 2593 (encode_gnu_bitfield): Encode enumerated types exactly in the same 2594 type as integer types instead of using a hardcoded 'i'. If asked 2595 to encode a non-integer type as a bitfield, do not abort 2596 compilation immediately; instead generate an error, then skip the 2597 type. 2598 (encode_type): Use a 'switch' instead of a sequence of 'if's. 2599 Added a 'default' clause that gets executed if the type can not be 2600 matched, and that encodes it as '?' (unknown) and produces a 2601 warning. For the GNU runtime, encode enumerated types exactly in 2602 the same way as integer types instead of using a hardcoded 'i'. 2603 Encode long double as 'D'. Encode 128-bit integers as 'T' or 't'. 2604 Encode C++ reference types as pointers. Call encode_vector to 2605 encode vectors. 2606 (encode_vector): New function. 2607 26082010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2609 2610 Merge from 'apple/trunk' branch on FSF servers. I modified the 2611 changes to be used only when compiling for the NeXT runtime. 2612 2613 2005-10-10 Fariborz Jahanian <fjahanian@apple.com> 2614 2615 Radar 4301047 2616 2617 * objc-act.c (encode_type): Remove the hack. 2618 2619 2005-07-20 Ziemowit Laski <zlaski@apple.com> 2620 2621 Radar 4136935 2622 * objc-act.c (pointee_is_readonly): New function. 2623 (encode_pointer, encode_aggregate_within, encode_type): 2624 Attempt to emulate GCC 3.3 when generating type encodings. 2625 26262010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2627 2628 Merge from 'apple/trunk' branch on FSF servers. 2629 2630 2005-12-15 Fariborz Jahanian <fjahanian@apple.com> 2631 2632 Radar 4229905 2633 * objc-act.c (objc_have_common_types): New function. 2634 2635 2005-06-22 Ziemowit Laski <zlaski@apple.com> 2636 2637 Radar 4154928 2638 * objc-act.c (objc_common_type): New function. 2639 26402010-09-27 Richard Guenther <rguenther@suse.de> 2641 2642 * objc-act.c (objc_get_class_reference): Use CP_TYPE_CONTEXT. 2643 (objc_is_global_reference_p): Use DECL_FILE_SCOPE_P. 2644 26452010-09-26 Nicola Pero <nicola.pero@meta-innovation.com> 2646 2647 * objc-act.c: Removed historical, obsolete comment at the top of 2648 the file. 2649 26502010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 2651 2652 PR objc/23710 2653 * objc-act.c (objc_start_method_definition): Do not abort upon a 2654 'method definition not in @implementation context' error. Return 2655 'false' instead. 2656 26572010-09-21 Nicola Pero <nicola.pero@meta-innovation.com> 2658 2659 PR objc/25965 2660 * objc-act.c (objc_get_interface_ivars): New function. 2661 (objc_collecting_ivars): New variable. 2662 (continue_class): Set and reset objc_collecting_ivars for context. 2663 26642010-09-15 Nicola Pero <nicola.pero@meta-innovation.com> 2665 2666 Merge from 'apple/trunk' branch on FSF servers. 2667 2668 2006-03-09 Fariborz Jahanian <fjahanian@apple.com> 2669 2670 Radar 4457381 2671 * objc-act.c (objc_finish_message_expr): Look for message in 2672 @class's protocol list. 2673 2674 2006-02-07 Fariborz Jahanian <fjahanian@apple.com> 2675 2676 Radar 4219590 2677 * objc-act.c (objc_start_method_definition): Initialize 2678 break/continue labels. 2679 2680 2005-08-22 Ziemowit Laski <zlaski@apple.com> 2681 2682 Radar 4174166 2683 * objc-act.c (objc_compare_types): Compare function 2684 pointers; indicate success if the right-hand side has 2685 a return type that is covariant, and the argument types 2686 contravariant, with those of the left side. 2687 2688 2005-08-22 Ziemowit Laski <zlaski@apple.com> 2689 2690 Radar 4216500 2691 * objc-act.c (objc_get_protocol_qualified_type): When looking 2692 at a typedef, retrieve the precise type it describes (rather 2693 than merely looking up a class by name). 2694 26952010-09-10 Nicola Pero <nicola.pero@meta-innovation.com> 2696 2697 * objc-act.c (objc_begin_try_stmt): Generate an error if 2698 -fobjc-exceptions was not used. (objc_build_throw_stmt): Same 2699 change. 2700 27012010-07-15 Nathan Froyd <froydnj@codesourcery.com> 2702 2703 * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN. 2704 27052010-07-10 Iain Sandoe <iains@gcc.gnu.org> 2706 2707 PR objc/44140 2708 * objc-act.c: build_objc_string_decl() remove declaration. 2709 (finish_var_decl): Remove forcing of var output and marking 2710 as "Used". 2711 (init_def_list): Use integer_zero_node. 2712 (init_objc_symtab): Use integer_zero_node, make the short 2713 integer type specific on relevant nodes. 2714 (generate_objc_symtab_decl): Remove call to 2715 forward_declare_categories(). Use null_pointer_node where 2716 appropriate. 2717 (build_module_descriptor): Comment and mark this item as 2718 DECL_PRESERVE_P. 2719 (generate_static_references): Use gcc_unreachable instead of 2720 abort (). 2721 (diagnose_missing_method): New. 2722 (build_next_selector_translation_table): New. 2723 (build_gnu_selector_translation_table): New. 2724 (add_objc_string): Merge code from build_objc_string_decl... 2725 ... and delete build_objc_string_decl(). 2726 (generate_dispatch_table): Make integer types explicit. 2727 (generate_category): Pass implent and arrange for the data 2728 to be extracted within the routine. Do not start new vars, 2729 but finish the ones collcted during parsing. 2730 (generate_shared_structures): Likewise. 2731 (finish_objc): Reorder code so that we finish variables before 2732 referencing them. Save the global data before calling meta-data 2733 creation routines, and pass the current reference to the two 2734 main routines. Only call generate_objc_image_info () for the 2735 NeXT runtime. 2736 (generate_classref_translation_entry): Comment on and make this 2737 item DECL_PRESERVE_P. 2738 (handle_class_ref): Use varpool interfaces, comment on and make 2739 this item DECL_PRESERVE_P. 2740 (handle_impent): Likewise. 2741 (generate_objc_image_info): Only generate when the content is 2742 non-zero. Make integer types explict. 2743 27442010-07-03 Nathan Froyd <froydnj@codesourcery.com> 2745 2746 PR objc/24867 2747 * objc-act.c (build_sized_array_type): New function. 2748 (add_objc_string): Use it. 2749 (generate_protocol_list): Likewise. 2750 (generate_objc_image_info): Likewise. 2751 (add_field_decl): New function. 2752 (objc_build_struct): Use a VEC rather than building a TREE_LIST. 2753 (generate_struct_by_value_array): Use add_field_decl. 2754 (build_objc_symtab_template): Likewise. 2755 (build_module_descriptor): Likewise. 2756 (build_objc_exception_stuff): Likewise. 2757 (build_protocol_template): Likewise. 2758 (build_method_prototype_list_template): Likewise. 2759 (build_method_prototype_template): Likewise. 2760 (build_category_template): Likewise. 2761 (build_selector_template): Likewise. 2762 (build_class_template): Likewise. 2763 (build_super_template): Likewise. 2764 (build_ivar_template): Likewise. 2765 (build_ivar_list_template): Likewise. 2766 (build_method_list_template): Likewise. 2767 (build_method_template): Likewise. 2768 27692010-06-28 Steven Bosscher <steven@gcc.gnu.org> 2770 2771 * objc-act.c: Do not include except.h. 2772 27732010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com> 2774 2775 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC 2776 allocation. 2777 2778 * objc-act.c (objc_volatilize_decl): Likewise. 2779 (objc_build_string_object): Likewise. 2780 (hash_init): Likewise. 2781 (hash_enter): Likewise. 2782 (hash_add_attr): Likewise. 2783 (add_class): Likewise. 2784 (start_class): Likewise. 2785 27862010-06-05 Steven Bosscher <steven@gcc.gnu.org> 2787 2788 * objc-act.c: Update include path for moved files. 2789 * objc-lang.c: Likewise. 2790 * config-lang.in: Update paths in gtfiles for files in c-family/. 2791 27922010-06-01 Nathan Froyd <froydnj@codesourcery.com> 2793 2794 * objc-act.c (build_next_objc_exception_stuff): Give setjmp a 2795 varargs type instead of a zero-argument type. 2796 27972010-05-30 Nathan Froyd <froydnj@codesourcery.com> 2798 2799 * objc-act.c (synth_module_prologue): Use build_function_type_list 2800 instead of build_function_type. 2801 (build_module_initializer_routine): Likewise. 2802 (build_next_objc_exception_stuff): Likewise. 2803 (build_objc_exception_stuff): Likewise. 2804 28052010-05-27 Joseph Myers <joseph@codesourcery.com> 2806 2807 * objc-act.c: Include diagnostic-core.h instead of diagnostic.h. 2808 * Make-lang.in (objc/objc-act.o): Update dependencies. 2809 28102010-05-25 Steven Bosscher <steven@gcc.gnu.org> 2811 2812 * objc-act.h: Do not include gimple.h. 2813 * objc-act.c: Do not include rtl.h, expr.h, libfuncs.h, and tm_p.h. 2814 Include gimple.h. Explain why except.h has to be included. 2815 * objc-lang.c: Do not include diagnostics.h. 2816 * Make-lang.in: Update dependencies. 2817 28182010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2819 2820 * objc-act.c (objc_build_constructor): Adjust OBJCPLUS impedance 2821 mismatch code for VECs. 2822 28232010-05-25 Nathan Froyd <froydnj@codesourcery.com> 2824 2825 * objc-act.c (objc_build_constructor): Take a VEC instead of a tree. 2826 Use build_constructor instead of build_constructor_from_list. 2827 (objc_build_string_object): Build a VEC argument for 2828 objc_build_constructor. 2829 (init_def_list): Likewise. 2830 (init_objc_symtab): Likewise. 2831 (init_module_descriptor): Likewise. 2832 (generate_static_references): Likewise. 2833 (build_selector_translation_table): Likewise. 2834 (build_descriptor_table_initializer): Likewise. 2835 (generate_descriptor_table): Likewise. 2836 (build_protocol_initializer): Likewise. 2837 (build_ivar_list_initializer): Likewise. 2838 (generate_ivars_list): Likewise. 2839 (build_dispatch_table_initializer): Likewise. 2840 (generate_dispatch_table): Likewise. 2841 (generate_protocol_list): Likewise. 2842 (build_category_initializer): Likewise. 2843 (build_shared_structure_initializer): Likewise. 2844 (generate_objc_image_info): Likewise. 2845 28462010-04-30 Iain Sandoe <iains@gcc.gnu.org> 2847 2848 PR objc++/32052 2849 * objc-act.c (encode_aggregate_within): Encode structure tags 2850 with template args for ObjC++. 2851 28522010-04-30 Steven Bosscher <steven@gcc.gnu.org> 2853 2854 * objc-act.c: Do not include varray.h. 2855 28562010-04-07 Jakub Jelinek <jakub@redhat.com> 2857 2858 PR c/18624 2859 * objc-act.c (finish_var_decl, objc_begin_catch_clause, 2860 really_start_method, get_super_receiver, handle_class_ref): Set 2861 DECL_READ_P in addition to TREE_USED. 2862 28632010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2864 2865 PR objc/35996 2866 * objc-act.c (objc_init): Warn that -fobjc-gc is ignored for 2867 -fgnu-runtime and set flag_objc_gc to zero. 2868 28692010-04-07 Iain Sandoe <iains@gcc.gnu.org> 2870 2871 PR objc++/23716 2872 * objc-act.c (build_module_initializer_routine): Make the argument 2873 to objc_start_function NULL_TREE when compiling ObjC++. 2874 28752010-02-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2876 Mike Stump <mikestump@comcast.net> 2877 2878 PR objc/43061 2879 * objc-act.c (finish_var_decl): Set the generated symbols as "used". 2880 28812009-12-17 Shujing Zhao <pearly.zhao@oracle.com> 2882 2883 * objc-act.c (objc_substitute_decl, build_ivar_reference, 2884 get_super_receiver): Update build_indirect_ref calls. 2885 28862009-11-28 Jakub Jelinek <jakub@redhat.com> 2887 2888 * objc-act.c (generate_shared_structures): Remove unused sc_spec and 2889 decl_specs variables. 2890 (objc_build_message_expr): Remove unused loc variable. 2891 (objc_finish_message_expr): Remove unused saved_rtype variable. 2892 (encode_field_decl): Remove unused type variable. 2893 2894 PR obj-c++/42156 2895 * objc-act.c (objc_build_struct): INIT_TYPE_OBJC_INFO for 2896 type variants that don't have it initialized yet. 2897 28982009-09-14 Jan Hubicka <jh@suse.cz> 2899 2900 * objc-act.c (objc_add_static_instance): Do not set DECL_COMMON. 2901 29022009-09-14 Richard Henderson <rth@redhat.com> 2903 2904 * objc-act.c (objc_init_exceptions): Don't call 2905 default_init_unwind_resume_libfunc. 2906 (objc_build_exc_ptr): Use __builtin_eh_pointer. 2907 29082009-09-13 Richard Guenther <rguenther@suse.de> 2909 Rafael Avila de Espindola <espindola@google.com> 2910 2911 * objc-act.c (objc_eh_runtime_type): Export. 2912 (objc_init_exceptions): Remove. Move warning code ... 2913 (objc_begin_try_stmt): ... here 2914 (objc_build_throw_stmt): ... and here. 2915 (objc_eh_personality_decl): New. 2916 (objc_eh_personality): New function. 2917 * objc-act.h (objc_eh_runtime_type): Declare. 2918 (objc_eh_personality): Likewise. 2919 * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define. 2920 (LANG_HOOKS_EH_PERSONALITY): Likewise. 2921 29222009-09-03 Diego Novillo <dnovillo@google.com> 2923 2924 * objc-lang.c (lang_hooks): Remove const qualifier. 2925 29262009-08-20 Richard Guenther <rguenther@suse.de> 2927 2928 * objc-act.c: Include c-lang.h 2929 * Make-lang.in (objc/objc-act.o): Add c-lang.h dependency. 2930 29312009-07-17 Aldy Hernandez <aldyh@redhat.com> 2932 Manuel López-Ibáñez <manu@gcc.gnu.org> 2933 2934 PR 40435 2935 * objc-act.c: Add location argument to all calls to 2936 build_fold_addr_expr. 2937 29382009-07-14 Taras Glek <tglek@mozilla.com> 2939 Rafael Espindola <espindola@google.com> 2940 2941 * Make-lang.in (objc.install-plugin): New target for 2942 installing plugin headers. 2943 29442009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2945 2946 * objc-act.c (next_sjlj_build_catch_list): Replace EXPR_LOCUS by 2947 EXPR_LOCATION. 2948 29492009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2950 2951 * objc-act.c: Replace %J by an explicit location. Update all 2952 calls. 2953 29542009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2955 2956 * objc-act.c: Replace %H by an explicit location. Update all 2957 calls. 2958 29592009-06-22 Steven Bosscher <steven@gcc.gnu.org> 2960 2961 PR objc/28050 2962 * objc-act.c (objc_build_message_args): Return if ARGS is the 2963 error_mark_node. 2964 29652009-06-19 Ian Lance Taylor <iant@google.com> 2966 2967 * objc-act.c (objc_in_struct, objc_struct_types): Remove. 2968 (objc_struct_info): New static variable. 2969 (objc_start_struct): Pass &objc_struct_info, not &objc_in_struct 2970 and &objc_struct_types, to start_struct. 2971 (objc_finish_struct): Likewise for finish_struct. 2972 29732009-06-15 Ian Lance Taylor <iant@google.com> 2974 2975 * objc-act.c (objc_start_function): Don't set 2976 label_context_stack_se or label_context_stack_vm. 2977 29782009-06-12 Aldy Hernandez <aldyh@redhat.com> 2979 2980 * objc-act.c (finish_var_decl): Pass location to finish_decl. 2981 (objc_get_parm_info): Same. 2982 (get_super_receiver): Same. 2983 * objc-act.c (objc_build_component_ref): Pass location to 2984 build_compound_ref. 2985 (build_module_initializer_routine): Pass location to 2986 c_end_compound_stmt. 2987 (objc_generate_static_init_call): Pass location to build_stmt. 2988 (build_typed_selector_reference): New location argument. 2989 (build_selector_reference): Same. 2990 (objc_substitute_decl): Pass location to build_array_ref. 2991 (next_sjlj_build_try_catch_finally): Pass location to build_stmt. 2992 (objc_begin_catch_clause): Same. 2993 (objc_finish_try_stmt): Same. 2994 (objc_finish_catch_clause): Pass location to c_end_compound_stmt. 2995 (objc_build_throw_stmt): New argument. 2996 (generate_shared_structures): Pass location to build_c_cast. 2997 (objc_build_message_expr): Use local location. 2998 (objc_finish_message_expr): Use input_location. 2999 (build_objc_method_call): New argument. 3000 (objc_build_selector_expr): Same. 3001 (get_super_receiver): Pass location to build_c_cast, 3002 build_modify_expr, build_compound_expr. 3003 * objc-act.c: Add location to all calls to start_struct, build_decl, 3004 finish_struct. 3005 30062009-06-09 Ian Lance Taylor <iant@google.com> 3007 3008 * objc-act.c (objc_gimplify_expr): Change return type to int. 3009 * objc-act.h: Update declaration. 3010 30112009-06-08 Alexandre Oliva <aoliva@redhat.com> 3012 3013 * objc-act.c (objc_init): Skip print_struct_values during 3014 -fcompare-debug-second. 3015 30162009-06-03 Ian Lance Taylor <iant@google.com> 3017 3018 * Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and 3019 $(SYSTEM_H). 3020 30212009-05-27 Ian Lance Taylor <iant@google.com> 3022 3023 * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to 3024 $(LINKER). 3025 (cc1obj$(exeext)): Likewise. 3026 30272009-05-26 Ian Lance Taylor <iant@google.com> 3028 3029 * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER). 3030 (cc1obj$(exeext)): Likewise. 3031 30322009-05-20 Ian Lance Taylor <iant@google.com> 3033 3034 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather 3035 than NULL_TREE to build_special_member_call. 3036 30372009-05-10 Ian Lance Taylor <iant@google.com> 3038 3039 * objc-act.c (objc_building_struct): New static variable. 3040 (objc_in_struct, objc_struct_types): New static variables. 3041 (objc_start_struct, objc_finish_struct): New static functions. 3042 (generate_struct_by_value_array): Call objc_start_struct instead 3043 of start_struct, and call objc_finish_struct instead of 3044 finish_struct. 3045 (objc_build_struct, build_objc_symtab_template): Likewise. 3046 (build_module_descriptor): Likewise. 3047 (build_next_objc_exception_stuff): Likewise. 3048 (build_protocol_template): Likewise. 3049 (build_method_prototype_list_template): Likewise. 3050 (build_method_prototype_template): Likewise. 3051 (build_category_template, build_selector_template): Likewise. 3052 (build_class_template, build_super_template): Likewise. 3053 (build_ivar_template, build_ivar_list_template): Likewise. 3054 (build_method_list_template): Likewise. 3055 (build_method_template): Likewise. 3056 30572009-05-10 Joseph Myers <joseph@codesourcery.com> 3058 3059 * objc-act.c: Include intl.h. 3060 (objc_lookup_protocol): Use complete sentences for diagnostics 3061 with %qE for identifiers and translating results of 3062 gen_type_name_0 to locale character set. 3063 (objc_check_decl, check_protocol_recursively, 3064 lookup_and_install_protocols, objc_build_string_object, 3065 objc_get_class_reference, objc_declare_alias, objc_declare_class, 3066 objc_get_class_ivars, error_with_ivar, check_duplicates, 3067 objc_finish_message_expr, objc_build_protocol_expr, 3068 objc_build_selector_expr, build_ivar_reference, objc_add_method, 3069 add_category, add_instance_variable, objc_is_public, 3070 check_methods, check_methods_accessible, check_protocol, 3071 start_class, finish_class, start_protocol, really_start_method, 3072 get_super_receiver, objc_lookup_ivar): Use %E and %qE for 3073 identifiers in diagnostics. Translate generated text to locale 3074 character set as needed. 3075 (check_protocol, check_protocols): Change name parameter to type 3076 tree. 3077 (lang_report_error_function): Remove. 3078 30792009-04-27 Ian Lance Taylor <iant@google.com> 3080 3081 * objc-act.c (objc_gimplify_expr): Add casts to enum type. 3082 30832009-04-24 Ian Lance Taylor <iant@google.com> 3084 3085 * objc-act.c (get_super_receiver): Update calls to 3086 build_modify_expr to pass new argument. 3087 30882009-04-21 Taras Glek <tglek@mozilla.com> 3089 3090 * objc-act.c: Update GTY annotations to new syntax. 3091 * objc-act.h: Likewise. 3092 30932009-04-21 Joseph Myers <joseph@codesourcery.com> 3094 3095 * ChangeLog: Add copyright and license notices. 3096 30972009-04-20 Ian Lance Taylor <iant@google.com> 3098 3099 * objc-act.c (objc_rewrite_function_call): Change parameter from 3100 params to first_param. Change all callers. 3101 31022009-03-30 Dominique d'Humieres <dominiq@lps.ens.fr> 3103 3104 PR bootstrap/39583 3105 * objc-act.c (in_late_binary_op): Define for Objective-C++. 3106 31072009-03-29 Joseph Myers <joseph@codesourcery.com> 3108 3109 PR c/456 3110 PR c/5675 3111 PR c/19976 3112 PR c/29116 3113 PR c/31871 3114 PR c/35198 3115 * objc-act.c (objc_finish_try_stmt): Set in_late_binary_op. 3116 31172008-12-05 Sebastian Pop <sebastian.pop@amd.com> 3118 3119 PR bootstrap/38262 3120 * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS, 3121 remove GMPLIBS. 3122 31232008-10-06 Aldy Hernandez <aldyh@redhat.com> 3124 3125 * objc-act.c (objc_build_string_object): Pass location to 3126 build_unary_op. 3127 (init_def_list): Same. 3128 (init_objc_symtab): Same. 3129 (init_module_descriptor): Same. 3130 (build_module_initializer_routine): Same. 3131 (generate_static_references): Same. 3132 (build_typed_selector_reference): Same. 3133 (add_objc_string): Same. 3134 (objc_substitute_decl): Same. 3135 (objc_build_ivar_assignment): Same. 3136 (objc_build_global_assignment): Same. 3137 (objc_build_strong_cast_assignment): Same. 3138 (generate_protocols): Same. 3139 (build_protocol_initializer): Same. 3140 (build_dispatch_table_initializer): Same. 3141 (generate_protocol_list): Same. 3142 (build_category_initializer): Same. 3143 (build_shared_structure_initializer): Same. 3144 (generate_shared_structures): Same. 3145 (objc_build_protocol_expr): Same. 3146 (build_ivar_reference): Same. 3147 (get_super_receiver): Same. 3148 31492008-09-23 Aldy Hernandez <aldyh@redhat.com> 3150 3151 * objc-act.c (next_sjlj_build_enter_and_setjmp): Call 3152 c_common_truthvalue_conversion with location. 3153 (next_sjlj_build_catch_list): Same. 3154 (next_sjlj_build_try_catch_finally): Same. 3155 31562008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com> 3157 3158 PR objc/37460 3159 * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define. 3160 * objc-act.h (objc_get_callee_fndecl): Remove prototype. 3161 * objc-act.c (objc_get_callee_fndecl): Kill. 3162 31632008-09-17 Jan Hubicka <jh@suse.cz> 3164 3165 PR c++/18071 3166 * objc-act.c (objc_finish_method_definition): Do not set 3167 DECL_INLINE. 3168 31692008-09-01 Aldy Hernandez <aldyh@redhat.com> 3170 3171 * objc-act.c (build_typed_selector_reference): Pass input_location to 3172 build_unary_op calls. 3173 (build_selector_reference): Same, but to build_array_ref. 3174 (objc_substitute_decl): Same. 3175 (build_ivar_reference): Same, but to build_indirect_ref. 3176 (get_super_receiver): Same. 3177 31782008-07-28 Richard Guenther <rguenther@suse.de> 3179 3180 Merge from gimple-tuples-branch. 3181 3182 2008-07-18 Aldy Hernandez <aldyh@redhat.com> 3183 3184 * Make-lang.in (objc-lang.o): Depend on GIMPLE_H. 3185 (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H. 3186 * objc-act.h: Include gimple.h instead of tree-gimple.h. 3187 * ipa-reference.c: Same. 3188 3189 2007-11-10 Aldy Hernandez <aldyh@redhat.com> 3190 3191 * objc-act.c (objc_gimplify_expr): Change pre and post to sequences. 3192 * objc-act.h (objc_gimplify_expr): Change prototype accordingly. 3193 31942008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3195 3196 * objc-act.c: Fix comment typos. 3197 31982008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3199 3200 * objc-act.c (objc_start_class_interface, 3201 objc_start_category_interface, objc_start_class_implementation, 3202 objc_start_category_implementation, objc_build_struct, 3203 generate_static_references, build_private_template, 3204 lookup_category, objc_add_method, add_category, 3205 add_instance_variable, objc_is_public, conforms_to_protocol, 3206 start_class, continue_class, finish_class): Avoid C++ keywords. 3207 32082008-07-14 Jason Merrill <jason@redhat.com> 3209 3210 PR objc++/36723 3211 * objc-act.c (objc_build_constructor): Update C++ tweak. 3212 32132007-07-14 Rafael Ávila de Espíndola <espindola@google.com> 3214 3215 * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead 3216 of DECL_IN_SYSTEM_HEADER. 3217 32182008-07-11 Ian Lance Taylor <iant@google.com> 3219 3220 * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS, 3221 etc., not just when OBJCPLUS is defined. 3222 32232008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3224 3225 * objc-act.c (setup_string_decl, objc_build_string_object, 3226 hash_interface, eq_interface, objc_begin_try_stmt, 3227 encode_method_prototype, build_ivar_list_initializer, 3228 objc_build_encode_expr): Fix for -Wc++-compat. 3229 32302008-05-12 Tomas Bily <tbily@suse.cz> 3231 3232 * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr): 3233 Use CONVERT_EXPR_P. 3234 32352008-04-23 Paolo Bonzini <bonzini@gnu.org> 3236 3237 * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT. 3238 32392008-04-03 Tom Tromey <tromey@redhat.com> 3240 3241 * Make-lang.in (objc_OBJS): New variable. 3242 32432008-03-27 Tom Tromey <tromey@redhat.com> 3244 3245 * Make-lang.in: Revert automatic dependency patch. 3246 32472008-03-27 Douglas Gregor <doug.gregor@gmail.com> 3248 3249 PR obj-c++/35704 3250 * objc-act.c (objc_build_component_ref): Fix call to 3251 finish_class_member_access_expr. 3252 (objc_generate_cxx_ctor_or_dtor): Fix call to 3253 build_special_member_call. 3254 32552008-03-25 Andrew Pinski <pinskia@gmail.com> 3256 3257 PR objc/29197 3258 * objc-act.c (encode_type): Handle when type is error_mark_node. 3259 (objc_push_parm): Handle when the type of parm is error_mark_node. 3260 32612008-03-25 Tom Tromey <tromey@redhat.com> 3262 3263 * Make-lang.in (objc_OBJS): New variable. 3264 (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove. 3265 32662008-03-21 Andreas Tobler <a.tobler@schweiz.org> 3267 3268 PR bootstrap/35660 3269 * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to 3270 MAYBE_CLASS_TYPE_P. 3271 (objc_generate_cxx_cdtors): Likewise. 3272 (add_instance_variable): Likewise. 3273 32742008-02-26 Tom Tromey <tromey@redhat.com> 3275 3276 * objc-act.c (objc_init): Remove old location code. 3277 32782008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3279 3280 PR other/35107 3281 * Make-lang.in (cc1obj-dummy, cc1obj): Add $(GMPLIBS). 3282 32832007-07-30 Nick Clifton <nickc@redhat.com> 3284 3285 * Make-lang.in: Change copyright header to refer to version 3 of 3286 the GNU General Public License and to point readers at the 3287 COPYING3 file and the FSF's license web page. 3288 * lang-specs.h, objc-act.c, objc-tree.def, objc-act.h, 3289 config-lang.in, objc-lang.c: Likewise. 3290 32912007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3292 3293 * objc-act.c (objc_get_callee_fndecl): Constify. 3294 * objc-act.h (objc_get_callee_fndecl): Likewise. 3295 32962007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3297 3298 * objc-act.c (volatilized_hash, volatilized_eq, string_hash, 3299 string_eq): Constify. 3300 33012007-04-04 Stuart Hastings <stuart@apple.com> 3302 3303 PR 31281 3304 * objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl. 3305 33062007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 3307 3308 * Make-lang.in: Add dummy lang.install-pdf target. 3309 33102007-02-18 Kazu Hirata <kazu@codesourcery.com> 3311 3312 * objc-act.c: Fix comment typos. 3313 33142007-02-15 Sandra Loosemore <sandra@codesourcery.com> 3315 Brooks Moses <brooks.moses@codesourcery.com> 3316 Lee Millward <lee.millward@codesourcery.com> 3317 3318 * objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors. 3319 (objc_get_callee_fndecl): Likewise. 3320 33212007-01-23 Andrew Pinski <pinskia@gmail.com> 3322 3323 PR objc/27438 3324 * objc-act.c (objc_add_static_instance): Mark the decl as 3325 TREE_USED. 3326 33272007-01-20 Andrew Pinski <pinskia@gmail.com> 3328 3329 PR objc/30479 3330 * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead 3331 of htab_hash_pointer. 3332 (lookup_interface): Likewise. 3333 (add_class): Likewise. 3334 33352007-01-02 Douglas Gregor <doug.gregor@gmail.com> 3336 3337 * objc-act.c (objc_build_volatilized_type): Keep track of 3338 canonical types. 3339 (objc_get_protocol_qualified_type): Ditto. 3340 33412006-11-02 Andreas Tobler <a.tobler@schweiz.org> 3342 3343 * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and 3344 content where we called cp_finish_file. 3345 33462006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3347 3348 * objc-act.c (synth_module_prologue): Replace calls to 3349 builtin_function with add_builtin_function. 3350 (build_next_objc_exception_stuff): Replace calls to 3351 builtin_function with add_builtin_function. 3352 (build_objc_exception_stuff): Replace calls to 3353 builtin_function with add_builtin_function. 3354 33552006-10-10 Brooks Moses <bmoses@stanford.edu> 3356 3357 * Make-lang.in: Added empty "objc.pdf" target. 3358 33592006-09-26 Andrew Pinski <pinskia@physics.uc.edu> 3360 3361 PR objc/29195 3362 * objc-act.c (objc_push_parm): If we change the type of the 3363 decl, relayout the decl. 3364 33652006-09-19 Eric Christopher <echristo@apple.com> 3366 3367 * objc-act.c (JBLEN): Rename to OBJC_JBLEN, 3368 default to something innocuous. 3369 (build_next_objc_exception_stuff): Rename JBLEN. 3370 33712006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3372 3373 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. 3374 33752006-07-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3376 3377 PR obj-c++/28434 3378 * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes. 3379 33802006-06-06 Mike Stump <mrs@apple.com> 3381 3382 * objc-act.c: Remove prototype for objc_build_volatilized_type. 3383 33842006-05-24 Mike Stump <mrs@apple.com> 3385 3386 * objc-act.c (build_next_objc_exception_stuff): Use JBLEN instead of _JBLEN. 3387 33882006-05-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3389 3390 PR objc/27240 3391 * objc-act.c (objc_is_public): Return early on invalid type. 3392 33932006-03-02 Fariborz Jahanian <fjahanian@apple.com> 3394 3395 * objc-act.c (init_module_descriptor): Remove file name from 3396 module descriptor. 3397 (gen_type_name_0): Fix ICE when issuing warning. 3398 33992006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3400 3401 * Make-lang.in (OBJC): Remove. 3402 (OBJECTIVE-C): Remove. 3403 (objective-c): Remove. 3404 (.PHONY): Remove objective-c and ObjC. 3405 34062005-12-14 Andrew Pinski <pinskia@physics.uc.edu> 3407 3408 PR objc/25360 3409 * objc-act.c (encode_type): Encode Complex types as 'j' followed 3410 by the inner type. 3411 34122005-12-12 Andrew Pinski <pinskia@physics.uc.edu> 3413 3414 PR objc/25348 3415 * objc-act.c (encode_array): Handle arrays to zero sized types. 3416 34172005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3418 3419 * Make-lang.in (objc.all.build, objc.install-normal): Remove. 3420 34212005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3422 3423 * Make-lang.in: Remove all dependencies on s-gtype. 3424 34252005-12-02 Richard Guenther <rguenther@suse.de> 3426 3427 * objc-act.c (objc_build_exc_ptr, next_sjlj_build_enter_and_setjmp 3428 next_sjlj_build_exc_extract, next_sjlj_build_catch_list, 3429 next_sjlj_build_try_catch_finally, objc_begin_catch_clause, 3430 build_objc_method_call, objc_rewrite_function_call): Use buildN 3431 instead of build. 3432 34332005-10-20 Geoffrey Keating <geoffk@apple.com> 3434 3435 * objc-act.c (synth_module_prologue): Clear TREE_NOTHROW 3436 on objc_msgSend and like builtin functions. 3437 34382005-10-17 Andreas Krebbel <krebbel1@de.ibm.com> 3439 3440 * objc-act.c (objc_build_component_ref): Adjust call to 3441 finish_class_member_access_expr due to a changed prototype. 3442 34432005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 3444 3445 PR objc/23306 3446 * objc-act.c (generate_strings): Remove and move code to 3447 finish decl to ... 3448 (add_objc_string): here when creating a new string decl. 3449 (finish_objc): Don't call generate_strings. 3450 34512005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 3452 3453 PR objc/23381 3454 * objc-act.c (next_sjlj_build_try_catch_finally): Set 3455 TREE_SIDE_EFFECTS on catch_seq after building it. 3456 34572005-08-09 Andrew Pinski <pinskia@physics.uc.edu> 3458 3459 part of PR objc/21992 3460 * objc-act.c (handle_class_ref): The ref decl is always referenced. 3461 34622005-07-20 Giovanni Bajo <giovannibajo@libero.it> 3463 3464 Make CONSTRUCTOR use VEC to store initializers. 3465 * objc-act.c (objc_build_constructor): Use build_constructor_from_list 3466 instead of build_constructor. 3467 34682005-07-08 Daniel Berlin <dberlin@dberlin.org> 3469 3470 * objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is 3471 removed. 3472 * objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common. 3473 (KEYWORD_KEY_NAME): Use decl_minimal. 3474 (METHOD_SEL_NAME): Ditto.. 3475 (METHOD_SEL_ARGS): Use decl_non_common. 3476 (METHOD_ADD_ARGS): Ditto. 3477 (METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common. 3478 (METHOD_DEFINITION): Ditto. 3479 (METHOD_ENCODING): Ditto. 3480 * objc-lang.c: (objc_init_ts): New function. 3481 34822005-07-07 Ziemowit Laski <zlaski@apple.com> 3483 3484 * objc-act.c (objc_build_struct): Pass in an actual @interface 3485 instead of its name, and annotate the struct created (and all 3486 existing variants thereof) with the @interface. 3487 (objc_compare_types): Treat forward-declared ObjC classes 3488 as stand-alone (root) classes for purposes of type comparisons. 3489 (build_private_template): Move some code to objc_build_struct(). 3490 34912005-07-07 Ziemowit Laski <zlaski@apple.com> 3492 3493 PR objc/22274 3494 * objc-act.c (objc_build_string_object): For GNU-style constants, 3495 use the @interface type rather than the built-in type. 3496 34972005-07-03 Kazu Hirata <kazu@codesourcery.com> 3498 3499 * Make-lang.in (cc1plus-checksum.c): Use 3500 build/genchecksum$(build_exeext), not build/genchecksum$(exeext). 3501 35022005-07-02 Joseph S. Myers <joseph@codesourcery.com> 3503 3504 * objc-act.c: Use %q to quote in diagnostics. 3505 35062005-07-02 Joseph S. Myers <joseph@codesourcery.com> 3507 3508 * objc-act.c: Use '+' flag instead of %J. Use 'q' flag for 3509 quoting. 3510 35112005-06-30 Ziemowit Laski <zlaski@apple.com> 3512 3513 * objc-act.c (objc_build_volatilized_type): New function. 3514 (objc_volatilize_decl): Call objc_build_volatilized_type() 3515 instead of build_qualified_type(). 3516 35172005-06-29 Ziemowit Laski <zlaski@apple.com> 3518 3519 * objc-act.c (objc_build_internal_const_str_type): New function. 3520 (check_string_class_template): Use objc_get_class_ivars() instead 3521 of TYPE_FIELDS() to retrieve ivar list. 3522 (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather 3523 than the field itself. 3524 (objc_build_string_object): Synthesize a "__builtin_ObjCString" 3525 type and use it to lay out compile-time string objects. 3526 * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type): 3527 New. 3528 35292005-06-28 Paul Brook <paul@codesourcery.com> 3530 3531 * objc-act.c (objc_init_exceptions): Call 3532 default_init_unwind_resume_libfunc. 3533 35342005-06-27 Ziemowit Laski <zlaski@apple.com> 3535 3536 * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO 3537 portion of TYPE_LANG_SPECIFIC info for all variants of 3538 a class before calling finish_struct(), and restore 3539 same TYPE_OBJC_INFO afterwards. 3540 35412005-06-25 Kelley Cook <kcook@gcc.gnu.org> 3542 3543 * all files: Update FSF address in copyright headers. 3544 35452005-06-15 Joseph S. Myers <joseph@codesourcery.com> 3546 3547 * objc-act.c (my_build_string_pointer): New. 3548 (objc_get_class_reference, get_super_receiver): Call 3549 my_build_string_pointer instead of my_build_string when building 3550 function arguments. 3551 35522005-05-25 Mike Stump <mrs@mrs.kithrup.com> 3553 3554 * objc-act.c (volatilized_hash): Avoid warnings on 64-bit 3555 machines. 3556 35572005-05-24 Ziemowit Laski <zlaski@apple.com> 3558 3559 * objc-act.c (objc_build_struct): New function. 3560 (objc_derived_from_p): Likewise. 3561 (objc_build_component_ref): Likewise. 3562 (objc_copy_binfo): Likewise. 3563 (objc_xref_basetypes): Likewise. 3564 (objc_lookup_protocol): Likewise. 3565 (objc_compare_protocols): Likewise. 3566 (objc_volatilize_decl): Likewise. 3567 (encode_aggregate_fields): Likewise. 3568 (volatilized_hash): Likewise. 3569 (volatilized_eq): Likewise. 3570 (objc_compare_types): Likewise. 3571 (objc_type_quals_match): Likewise. 3572 (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro 3573 of same name. 3574 (get_class_ivars): Add second parameter indicating if entire 3575 hierarchy is desired. 3576 (struct volatilized_type): New type. 3577 (volatilized_htab): New hash table. 3578 (objc_types_compatible_p, objc_comptypes): Remove functions. 3579 (synth_module_prologue): Do not initialize 'unused_list'. 3580 (objc_get_class_reference): Fix ObjC++ impedance mismatches. 3581 (objc_declare_alias): Implement as a typedef. 3582 (objc_substitute_decl, objc_gimplify_expr): Reformat. 3583 (objc_get_class_ivars): Adjust call to get_class_ivars(). 3584 (next_sjlj_build_enter_and_setjmp, synth_forward_declarations, 3585 build_ivar_reference, get_super_receiver): Call 3586 objc_build_component_ref() instead of build_component_ref(). 3587 (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of 3588 objc_comptypes(). 3589 (build_private_template): Call objc_build_struct() instead of 3590 start_struct() and finish_struct(). 3591 (hash_init): Initialize volatilized_htab. 3592 (objc_is_public): Adjust calls to objc_get_ivars(); adjust 3593 ObjC++ impedance mismatches. 3594 (encode_aggregate_within): Streamline by calling 3595 encode_aggregate_fields(). 3596 * objc-act.h (objc_types_compatible_p): Remove prototype. 3597 (OCTI_UNUSED_LIST, unused_list): Remove slot. 3598 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove. 3599 36002005-05-18 Geoffrey Keating <geoffk@apple.com> 3601 3602 * Make-lang.in (cc1obj-dummy): New. 3603 (cc1obj-checksum.c): New. 3604 (cc1obj-checksum.o): New. 3605 (cc1obj): Add cc1obj-checksum.o. 3606 36072005-05-18 Mike Stump <mrs@apple.com> 3608 3609 PR objc/21641 3610 * objc-act.c (struct interface_tuple): Mark it up for GC. 3611 (interface_htab): It is really a struct interface_tuple. 3612 36132005-05-17 Ziemowit Laski <zlaski@apple.com> 3614 Mike Stump <mrs@apple.com> 3615 3616 Yet more Objective-C++... 3617 3618 * objc-act.c (objc_finish_try_stmt): Add return value. 3619 (objc_build_synchronized): Likewise. 3620 3621 * objc-act.c (objc_is_gcable_type): Add. 3622 (objc_substitute_decl): Add. 3623 (objc_build_ivar_assignment): Add. 3624 (objc_build_global_assignment): Add. 3625 (objc_build_strong_cast_assignment): Add. 3626 (objc_is_ivar_reference_p): Add. 3627 (objc_is_global_reference_p): Add. 3628 (objc_generate_write_barrier): Add. 3629 (objc_rewrite_function_call): Add. 3630 (objc_gimplify_expr): Add Objective-C++ support. 3631 * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. 3632 (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add. 3633 (INIT_TYPE_OBJC_INFO): Add Objective-C++ support. 3634 (DUP_TYPE_OBJC_INFO): Likewise. 3635 (struct imp_entry): Add field has_cxx_cdtors. 3636 (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL, 3637 OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL, 3638 OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL, 3639 OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL, 3640 OCTI_ASSIGN_STRONGCAST_DECL. 3641 (umsg_fast_decl): Add. 3642 (objc_assign_ivar_decl): Add. 3643 (objc_assign_ivar_fast_decl): Add. 3644 (objc_assign_global_decl): Add. 3645 (objc_assign_strong_cast_decl): Add. 3646 (objc_method_list_ptr): Add. 3647 (objc_method_proto_list_ptr): Add. 3648 (objc_ivar_list_ptr): Add. 3649 3650 * objc-act.c (should_call_super_dealloc): Add. 3651 (OBJC_VERSION): Bump to 6. 3652 (objc_is_gcable_type): Add. 3653 (objc_substitute_decl): Add. 3654 (objc_build_ivar_assignment): Add. 3655 (objc_build_global_assignment): Add. 3656 (objc_build_strong_cast_assignment): Add. 3657 (objc_is_gcable_p): Add. 3658 (objc_is_ivar_reference_p): Add. 3659 (objc_is_global_reference_p): Add. 3660 (generate_shared_structures): Add flags parameter. 3661 (objc_generate_cxx_ctor_or_dtor): Add. 3662 (objc_generate_cxx_cdtors): Add. 3663 (add_class): Add name parameter. 3664 (objc_types_share_size_and_alignment): Add. 3665 (comp_proto_with_proto): Add strict parameter. 3666 (CLS_HAS_CXX_STRUCTORS): Add. 3667 (TAG_ASSIGNIVAR): Add. 3668 (TAG_ASSIGNGLOBAL): Add. 3669 (TAG_ASSIGNSTRONGCAST): Add. 3670 (TAG_MSGSEND_FAST): Add. 3671 (TAG_ASSIGNIVAR_FAST): Add. 3672 (TAG_CXX_CONSTRUCT): Add. 3673 (TAG_CXX_DESTRUCT): Add. 3674 (OBJC_LOOKUP_CLASS): Add. 3675 (OBJC_LOOKUP_NO_SUPER): Add. 3676 (objc_finish_file): Add pch support. 3677 (objc_finish_implementation): Add Objective-C++ support. 3678 (synth_module_prologue): Likewise. 3679 (synth_module_prologue): Add fast dispatching. 3680 (objc_get_class_reference): Add Objective-C++ support. 3681 (objc_generate_write_barrier): Likewise. 3682 (next_sjlj_build_enter_and_setjmp): Likewise. 3683 (objc_begin_try_stmt): Likewise. 3684 (build_next_objc_exception_stuff): Add fast ivar support. 3685 (build_private_template): Mark the record as used so debug 3686 information is generated. 3687 (build_protocol_template): Add Objective-C++ support. 3688 (objc_method_parm_type) Likewise. 3689 (objc_generate_cxx_ctor_or_dtor): Likewise. 3690 (objc_generate_cxx_cdtors): Likewise. 3691 (build_protocol_initializer): Likewise. 3692 (build_category_template): Likewise. 3693 (build_class_template): Likewise. 3694 (build_method_list_template): Likewise. 3695 (build_category_initializer): Likewise. 3696 (build_shared_structure_initializer): Likewise. 3697 (objc_finish_message_expr): Likewise. 3698 (build_objc_method_call): Add fast dispatch support. 3699 (lookup_method_static): Add support to end search at superclasses. 3700 (add_method_to_hash_list): Add strict parameter to 3701 comp_proto_with_proto. 3702 (objc_add_method): Likewise. 3703 (objc_add_method): Also set the interface_value. 3704 (add_instance_variable): Add Objective-C++ support. 3705 (objc_is_public): Likewise. 3706 (start_class): Likewise. 3707 (continue_class): Likewise. 3708 (encode_aggregate_within): Likewise. 3709 (start_method_def): Likewise. 3710 (objc_start_function): Clear current_function_returns_value 3711 and current_function_returns_null. 3712 (really_start_method): Add Objective-C++ support. 3713 (objc_finish_method_definition): Add warning for missing 3714 [super dealloc]. 3715 (finish_objc): Add Objective-C++ support. 3716 (generate_objc_image_info): Likewise. 3717 (objc_lookup_ivar): Likewise. 3718 * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise. 3719 (INIT_TYPE_OBJC_INFO): Likewise. 3720 (DUP_TYPE_OBJC_INFO): Likewise. 3721 37222005-04-23 DJ Delorie <dj@redhat.com> 3723 3724 * objc-act.c: Adjust warning() callers. 3725 37262005-04-21 Roger Sayle <roger@eyesopen.com> 3727 3728 * objc-act.h (METHOD_ADD_ARGS_ELLIPSIS_P): New macro for accessing 3729 this field of an objc method decl. 3730 * objc-act.c (build_method_decl): Take an additional "ellipsis" 3731 argument, and set METHOD_ADD_ARGS_ELLIPSIS_P as appropriate. 3732 (objc_build_method_signature): Accept additional "ellipsis" 3733 argument and pass it to build_method_decl. 3734 (get_arg_type_list, start_method_def, gen_method_decl): Use 3735 the new METHOD_ADD_ARGS_ELLIPSIS_P instead of examining the 3736 TREE_OVERFLOW field of a TREE_LIST node. 3737 37382005-04-20 Joseph S. Myers <joseph@codesourcery.com> 3739 3740 PR c/12913 3741 * objc-act.c (objc_start_function): Create stack level for context 3742 of identifiers with variably modified type. 3743 37442005-03-30 Joseph S. Myers <joseph@codesourcery.com> 3745 3746 PR c/772 3747 PR c/17913 3748 * objc-act.c (objc_start_function): Push context on 3749 label_context_stack. 3750 37512005-03-23 Joseph S. Myers <joseph@codesourcery.com> 3752 3753 * objc-act.c (next_sjlj_build_enter_and_setjmp, 3754 next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally): 3755 Call c_common_truthvalue_conversion. 3756 37572005-02-25 Joseph S. Myers <joseph@codesourcery.com> 3758 3759 * Make-lang.in (objc/objc-parse.o-warn, objc/objc-parse.o, 3760 objc/objc-parse.c, objc/objc-parse.y): Remove. 3761 (OBJC_OBJS, objc.srcextra, objc.tags, objc.mostlyclean, 3762 objc.distclean, objc.maintainer-clean): Update for new parser. 3763 * config-lang.in (gtfiles): Update for new parser. 3764 37652005-01-29 Kazu Hirata <kazu@cs.umass.edu> 3766 3767 * lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update 3768 copyright. 3769 37702005-01-27 Matt Austern <austern@apple.com> 3771 3772 * objc-act.c (objc_finish_file): In ObjC++ mode, set at_eof before 3773 calling instantiate_pending_templates. 3774 37752005-01-26 Alexander Malmberg <alexander@malmberg.org> 3776 3777 PR objc/18862 3778 * objc-act.c (build_selector_translation_table): Use 3779 input_location in the diagnostic for the GNU runtime or if 3780 TREE_PURPOSE (chain) is NULL. 3781 37822005-01-25 Alexander Malmberg <alexander@malmberg.org> 3783 3784 PR objc/18408 3785 * objc-act.c (objc_types_compatible_p): New function. 3786 * objc-act.h (objc_types_compatible_p): Declare. 3787 * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define. 3788 37892005-01-16 Ziemowit Laski <zlaski@apple.com> 3790 3791 * objc-act.c (objc_push_parm): Call c_type_promotes_to() 3792 via a lang-hook. 3793 37942005-01-15 Ziemowit Laski <zlaski@apple.com> 3795 3796 PR objc/19321 3797 * objc-act.c (get_arg_type_list): Decay function arguments into 3798 pointers. 3799 (objc_push_parm): Likewise; bring PARM_DECL construction closer 3800 in line with what the C front-end does. 3801 (objc_get_parm_info): Call pushdecl() and finish_decl() on 3802 each PARM_DECL, like the C front-end does. 3803 (start_method_def): Remove redundant ARRAY_TYPE decay. 3804 (objc_start_function): Bring closer in line with what the 3805 C front-end does for functions. 3806 38072005-01-14 Mike Stump <mrs@apple.com> 3808 3809 * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so 3810 that -fobjc-exceptions is accepted. 3811 38122004-12-30 Ziemowit Laski <zlaski@apple.com> 3813 3814 PR objc/18971 3815 * objc-act.c (get_arg_type_list, start_method_def): Decay 3816 array arguments into pointers. 3817 (gen_type_name_0): Learn to pretty-print array types. 3818 38192004-12-15 Ziemowit Laski <zlaski@apple.com> 3820 3821 * objc-act.c (build_private_template): Change to return 'void'; do 3822 not set ivar_context, uprivate_record or objc_instance_type. 3823 (objc_comptypes, gen_type_name_0): For types 'id' and 'Class', 3824 retrieve protocol list from the pointee rather than the pointer itself; 3825 check TYPE_HAS_OBJC_INFO(...) precondition before accessing 3826 TYPE_OBJC_PROTOCOL_LIST. 3827 (objc_get_protocol_qualified_type): For types 'id' and 'Class', 3828 construct a variant of the pointee as well as the pointer, and 3829 store protocol information in the former. When creating variants 3830 of RECORD_TYPEs, clone their TYPE_LANG_SPECIFIC fields and propagate 3831 TYPE_OBJC_INTERFACE information. 3832 (objc_declare_class): If a TYPE_DECL is looked up, retrieve the 3833 underlying RECORD_TYPE to check for presence of TYPE_OBJC_INTERFACE; 3834 for newly-created RECORD_TYPEs, create a tentative TYPE_OBJC_INTERFACE 3835 holding an IDENTIFIER_NODE. 3836 (objc_finish_message_expr): Check TYPE_HAS_OBJC_INFO(...) before 3837 accessing TYPE_OBJC_PROTOCOL_LIST; Use TYPE_OBJC_INTERFACE instead 3838 of calling lookup_interface(); allow for TYPE_OBJC_INTERFACE holding 3839 an IDENTIFIER_NODE (meaning a @class forward-declaration only). 3840 (objc_is_public): Check TYPE_OBJC_INTERFACE instead of calling 3841 lookup_interface(). 3842 (continue_class): For @implementations, set ivar_context, 3843 uprivate_record and objc_instance_type, for @interfaces, call 3844 build_private_template(). 3845 (encode_pointer): Check TYPE_HAS_OBJC_INFO(...) before accessing 3846 TYPE_OBJC_INTERFACE. 3847 (objc_types_are_equivalent): Check TYPE_HAS_OBJC_INFO(...) before 3848 accessing TYPE_OBJC_PROTOCOL_LIST. 3849 * objc-act.h (OBJC_INFO_SLOT_ELTS, TYPE_OBJC_INFO, INIT_TYPE_OBJC_INFO, 3850 DUP_TYPE_OBJC_INFO, ALLOC_OBJC_TYPE_LANG_SPECIFIC, 3851 SIZEOF_OBJC_TYPE_LANG_SPECIFIC): New macros. 3852 (TYPE_OBJC_INTERFACE): Replaces TREE_STATIC_INSTANCE and now points 3853 to an actual @interface; stored in TYPE_LANG_SPECIFIC(...). 3854 (TYPE_OBJC_PROTOCOL_LIST): Replaces TYPE_PROTOCOL_LIST; stored in 3855 TYPE_LANG_SPECIFIC(...). 3856 (TREE_STATIC_INSTANCE, TYPE_PROTOCOL_LIST): Delete. 3857 (IS_ID, IS_CLASS, IS_PROTOCOL_QUALIFIED_UNTYPED, IS_SUPER, 3858 TYPED_OBJECT): Check for POINTER_TYPE rather than POINTER_TYPE_P; 3859 adjust for use of TYPE_OBJC_INTERFACE and TYPE_OBJC_PROTOCOL_LIST 3860 instead of TREE_STATIC_INSTANCE and TYPE_PROTOCOL_LIST. 3861 38622004-11-29 Joseph Myers <joseph@codesourcery.com> 3863 3864 PR c/7544 3865 * Make-lang.in (objc/objc-act.o): Update dependencies. 3866 * objc-act.c (objc_finish_file): Call 3867 maybe_apply_pending_pragma_weaks if not OBJCPLUS. 3868 38692004-11-09 Andrew Pinski <pinskia@physics.uc.edu> 3870 3871 PR objc/18406 3872 * obj-act.c (encode_type): 96bits doubles are encoded the 3873 same way as 64bit and 128bit doubles are. 3874 38752004-11-09 Joseph S. Myers <joseph@codesourcery.com> 3876 3877 * objc-act.c: Use %q, %< and %> for quoting in diagnostics. 3878 38792004-11-08 Andrew Pinski <pinskia@physics.uc.edu> 3880 3881 PR objc/16546 3882 * objc-act.c (generate_method_descriptors): Remove setting 3883 the new decls' type to variable_length_type. 3884 (generate_ivar_lists): Likewise. 3885 (generate_dispatch_tables): Likewise. 3886 38872004-10-30 Ziemowit Laski <zlaski@apple.com> 3888 3889 * objc-act.c (objc_lookup_ivar): The new OTHER parameter 3890 contains the result of the ID lookup by the C or C++ 3891 front-end; in class methods, use OTHER if it exists; 3892 in instance methods, use OTHER only if it is locally 3893 declared. 3894 38952004-10-26 Ziemowit Laski <zlaski@apple.com> 3896 3897 * objc-act.c (finish_class): Do not synthesize bogus 3898 'extern objc_object *_Foo;' declarations for @interface Foo. 3899 39002004-10-25 Ziemowit Laski <zlaski@apple.com> 3901 David Ayers <d.ayers@inode.at> 3902 3903 * objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED 3904 instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for: 3905 'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *'; 3906 'Class <Protocol> == id' and 'Class <Protocol> == Class'. 3907 (objc_is_id): Add test for 'super'. 3908 (objc_finish_message_expr): Allow for messaging of 'Class <Proto>' 3909 receivers; if class methods are not found in protocol lists, search 3910 for instance methods therein and warn if one is found. Look in 3911 global hash tables for suitable method as a last resort when messaging 3912 'id <Proto>', 'Class <Proto>' and invalid receiver types. 3913 (objc_add_method): Insert instance methods listed in protocols into 3914 the global class method hash table. 3915 * objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to 3916 IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in 3917 addition to 'id <Proto>'. 3918 39192004-10-21 Andrew Pinski <pinskia@physics.uc.edu> 3920 3921 PR objc/17923 3922 * objc-act.c (objc_build_string_object): Create a CONST_DECL 3923 for the NeXT runtime case. 3924 39252004-10-02 Kazu Hirata <kazu@cs.umass.edu> 3926 3927 * objc-act.c: Fix comment typos. 3928 39292004-09-24 Ziemowit Laski <zlaski@apple.com> 3930 3931 * objc-act.c (init_objc_symtab, init_module_descriptor, 3932 build_shared_structure_initializer): When initializing 'long' 3933 fields, ensure that the initializer value is also 'long'. 3934 39352004-09-24 Zack Weinberg <zack@codesourcery.com> 3936 3937 * objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION 3938 throughout. 3939 (objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION. 3940 (build_selector_translation_table): Use %J in diagnostic 3941 instead of diddling input_line. Fix spelling. 3942 39432004-09-21 Ziemowit Laski <zlaski@apple.com> 3944 3945 * objc-act.c (objc_fold_objc_type_ref): New function. 3946 * objc-act.h (objc_fold_objc_type_ref): New prototype. 3947 39482004-09-09 Joseph S. Myers <jsm@polyomino.org.uk> 3949 3950 * objc-act.c (objc_start_function, really_start_method, 3951 objc_get_parm_info, start_method_def): Update to new arg_info 3952 structures. 3953 39542004-09-07 Ziemowit Laski <zlaski@apple.com> 3955 3956 * Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of 3957 objc/objc-act.h. 3958 (objc/objc-act.o): Depend on $(HASHTAB_H). 3959 * objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and 3960 objcp-decl.h instead of c-tree.h. 3961 (build_module_descriptor, get_class_ivars, synth_id_with_class_suffix, 3962 error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl, 3963 build_protocol_template): Adjust prototypes. 3964 (build_module_initializer_routine, start_class, continue_class, 3965 finish_class, start_method_def, objc_start_function, start_protocol, 3966 build_method_decl, objc_add_method, add_instance_variable, 3967 build_ivar_reference, is_ivar, is_private, get_super_receiver, 3968 build_selector_table_decl, objc_push_parm, objc_get_parm_info, 3969 gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl, 3970 create_field_decl): New prototypes. 3971 (objc_expand_function_end, comp_method_with_proto, objc_expr_last, 3972 gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl, 3973 define_decl, create_builtin_decl, gen_declspecs): Remove prototypes. 3974 (TYPE_ID): Rename to OBJECT_TYPEDEF_NAME. 3975 (CLASS_TYPEDEF_NAME): New. 3976 (TAG_EXECCLASS): Change from a global variable to a #define. 3977 (TAG_RETURN_STRUCT): Delete. 3978 (TAG_GNUINIT): New, holds '__objc_gnu_init' name. 3979 (objc_inherit_code, objc_public_flag): New, moved from c-parse.in. 3980 (string_descriptor): New struct. 3981 (string_htab): New hash table. 3982 (string_hash, string_eq): New prototypes. 3983 (generate_struct_by_value_array): Call create_field_decl() instead of 3984 create_builtin_decl(). 3985 (objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS; 3986 In ObjC++ mode, call cxx_init() instead of c_objc_common_init(). 3987 (objc_finish_file): In ObjC++, call instantiate_pending_templates() 3988 and cp_finish_file(). 3989 (define_decl, get_static_reference, get_protocol_reference, 3990 create_builtin_decl): Remove functions. 3991 (objc_start_class_interface, objc_start_category_interface, 3992 objc_start_protocol, objc_continue_interface, objc_finish_interface, 3993 objc_start_class_implementation, objc_start_category_implementation, 3994 objc_continue_implementation, objc_finish_implementation, 3995 objc_set_visibility, objc_set_method_type, 3996 objc_build_method_signature, objc_add_method_declaration, 3997 objc_start_method_definition, objc_add_instance_variable, 3998 objc_get_protocol_qualified_type, create_field_decl, 3999 start_var_decl, finish_var_decl): New functions. 4000 (setup_string_decl): Simplify since it is only called once. 4001 (synth_module_prologue): Call build_class_template(); predefine 'id' 4002 and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug 4003 hooks for duration of function; fix GNU runtime messenger signatures 4004 to correspond to reality; forward-declare '__objc_exec_class' for the 4005 GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate 4006 'extern "C" { ... }' wrappers around synthesized declarations; call 4007 build_protocol_template() and build_category_template(). 4008 (string_hash, string_eq): New functions. 4009 (objc_build_string_object): Check metaclass correctness only once; 4010 store string literals in hash table. 4011 (objc_build_constructor): Do not convert initializer elements; 4012 adjust for ObjC++ impedance mismatch. 4013 (build_objc_symtab_template): Call create_field_decl() instead of 4014 create_builtin_decl(). 4015 (init_objc_symtab): Add missing conversion to initializer element. 4016 (build_metadata_decl): Call start_var_decl() instead of define_decl(). 4017 (generate_objc_symtab_decl): Do not call build_category_template(); 4018 call start_var_decl() and finish_var_decl() instead of start_decl() 4019 and finish_decl(). 4020 (build_module_descriptor): Call create_field_decl() instead of 4021 grokfield(); call start_var_decl() and finish_var_decl() instead of 4022 start_decl() and finish_decl(); always mark module descriptor as 4023 used; move GNU runtime-specific functionality to 4024 build_module_initializer_routine(). 4025 (build_module_initializer_routine): New function, broken off of 4026 build_module_descriptor(). 4027 (objc_static_init_needed_p, objc_generate_static_init_call): New 4028 functions. 4029 (generate_static_references, generate_strings, 4030 build_selector_translation_table, generate_descriptor_table, 4031 generate_ivars_list, generate_dispatch_table, generate_category): Call 4032 start_var_decl() and finish_var_decl() instead of start_decl() and 4033 finish_decl(); build a type directly instead of via groktypename(). 4034 (build_selector_reference_decl, build_selector_table_decl, 4035 build_class_reference_decl, build_protocol_reference, 4036 generate_objc_image_info): Call start_var_decl() instead of 4037 build_decl(). 4038 (build_selector_reference): For GNU runtime, do not call 4039 build_selector_reference_decl(). 4040 (build_selector, build_typed_selector_reference): Always convert 4041 result to the selector type. 4042 (add_objc_string): Cast return value to 'char *'. 4043 (build_method_prototype_template, build_selector_template, 4044 build_method_template): Use actual selector type for fields 4045 pointing to selectors. 4046 (finish_objc): For GNU runtime, call 4047 build_module_initializer_routine() after build_module_descriptor(). 4048 (generate_protocol_list, generate_shared_structures): Call 4049 start_var_decl() and finish_var_decl() instead of start_decl() and 4050 finish_decl(); build a type directly instead of via 4051 groktypename(). 4052 (synth_id_with_class_suffix): Return a string. 4053 (get_arg_type_list): For instance methods, use the instance type for 4054 'self'; do not call groktypename_in_parm_context(). 4055 (build_objc_string_decl): Squash redeclaration errors in ObjC++. 4056 (objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME; 4057 handle RECORD_TYPEs in ObjC as well as ObjC++. 4058 (objc_is_id): New function. 4059 (objc_is_object_ptr): Return the canonical type node. 4060 (objc_get_class_ivars): Simplify using get_class_ivars(). 4061 (get_class_ivars): Remove second parameter; create a fresh copy 4062 of the ivar list for each call; do not check for existence of 4063 super class. 4064 (objc_eh_runtime_type): Mark #ifndef OBJCPLUS. 4065 (objc_init_exceptions): When using SJLJ-style exceptions, require 4066 the use of '-fobjc-exceptions' flag; do not require it for DWARF-style 4067 exceptions. 4068 (objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use 4069 objc_object_type instead of objc_id_type. 4070 (objc_begin_catch_clause): Convert the incoming PARM_DECL into 4071 a VAR_DECL before placing it in the appropriate scope; do not 4072 call define_decl(); adjust call to c_begin_compound_stmt(); 4073 use objc_object_type instead of objc_id_type. 4074 (build_next_objc_exception_stuff): Call create_field_decl() instead 4075 of create_builtin_decl(); construct type directly instead of calling 4076 groktypename(); use OBJC_VOID_AT_END to mark end of function parameters. 4077 (build_private_template): Adjust call to get_class_ivars(); build 4078 a type directly instead of via groktypename(). 4079 (build_protocol_template, build_method_prototype_list_template, 4080 build_method_prototype_template, build_category_template, 4081 build_selector_template, build_class_template, build_super_template, 4082 build_ivar_template, build_ivar_list_template, 4083 build_method_list_template, build_method_template): 4084 Call create_field_decl() instead of grokfield(). 4085 (objc_method_parm_type): Do not call groktypename(). 4086 (generate_descriptor_table): Call start_var_decl() and 4087 finish_var_decl() instead of start_decl() and finish_decl(). 4088 (generate_method_descriptors, build_protocol_initializer, 4089 generate_dispatch_tables, build_category_initializer, 4090 build_shared_structure_initializer): Do not call groktypename(). 4091 (generate_protocols): Call start_var_decl() and finish_var_decl() 4092 instead of start_decl() and finish_decl(); do not call groktypename(). 4093 (error_with_ivar): Remove last parameter. 4094 (check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition 4095 to CLASS_IVARS lists; adjust calls to error_with_ivar(). 4096 (generate_ivar_lists): Convert one of the initializer elements; do 4097 not call groktypename(). 4098 (get_arg_type_list, start_method_def, gen_method_def): Account for 4099 new representation of variable arguments and '...' in Objective-C 4100 methods; add Objective-C++ impedance matching code. 4101 (is_objc_type_qualifier): Remove function. 4102 (adjust_type_for_id_default): Simplify; there is no longer a need to 4103 wade through declspecs. 4104 (lookup_interface, start_class, continue_class, 4105 finish_class, start_method_def, start_protocol, build_method_decl, 4106 objc_add_method, add_instance_variable, build_ivar_reference, 4107 is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue): 4108 Make into static functions. 4109 (receiver_is_class_object): Use new IS_CLASS() macro. 4110 (objc_build_message_expr): Tweak ObjC++ message argument handling; 4111 call objc_finish_message_expr() instead of finish_message_expr(). 4112 (finish_message_expr): Rename to objc_finish_message_expr(); use 4113 OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME. 4114 call gen_type_name() instead of gen_declaration(); call objc_is_id() 4115 instead of using IS_ID and IS_CLASS; Use objc_class_name instead of 4116 calling get_identifier("Class"); handle CONVERT_EXPRs in receiver. 4117 (build_objc_method_call, warn_with_method): Do not call groktypename(). 4118 (build_ivar_reference): Call convert() instead of clobbering in a 4119 type. 4120 (hash_init): Initialize string_htab hash table. 4121 (add_instance_variable): Simplify parameter list; do not call grokfield(); 4122 do not populate CLASS_IVARS list. 4123 (start_class): Check for the existence of super class, if one was specified. 4124 (continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not 4125 call build_class_template(); adjust call to get_class_ivars(); call 4126 build_decl(), pushdecl() and finish_decl() instead of define_decl(). 4127 (finish_class): Call build_decl(), pushdecl() and finish_decl() instead 4128 of define_decl(). 4129 (add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size. 4130 (start_protocol): Do not call build_protocol_template(); use 4131 PROTOCOL_BINFO_ELTS for the tree vector size. 4132 (encode_type_qualifiers): Do not handle the 'const' qualifier here. 4133 (encode_pointer): Encode 'const char *' as 'r*', for backwards 4134 compatibility. 4135 (encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld". 4136 (encode_type): Handle the 'const' qualifier here. 4137 (objc_parmlist): New global variable, sued by objc_push_parm and 4138 objc_get_parm_info(). 4139 (objc_push_parm, objc_get_parm_info): New functions. 4140 (objc_expr_last): Remove function. 4141 (synth_self_and_ucmd_args): For instance methods, use the instance 4142 type for 'self'; call objc_push_parm() instead of push_parm_decl(). 4143 (start_method_def): Do not call push_scope(), declare_parm_level(), 4144 pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last(); 4145 just use objc_push_parm() and objc_get_parm_info(). 4146 (comp_method_with_proto): Remove function. 4147 (objc_types_are_equivalent): Strip away indirections before comparing 4148 underlying types. 4149 (comp_proto_with_proto): Do not call groktypename(); types are no 4150 longer in raw declspec format. 4151 (objc_start_function): New function. 4152 (really_start_method): Call comp_proto_with_proto() instead of 4153 comp_method_with_proto(); call objc_start_function() instead of 4154 hand-crafting a function declarator. 4155 (continue_method_def, objc_expand_function_end): Remove functions. 4156 (get_super_receiver): Call objc_get_current_scope() instead of 4157 get_current_scope(); reference 'super_class' field (instead of 4158 'class'). 4159 (finish_method_def): Rename to objc_finish_method_definition() and 4160 add a function decl parameter; move method encoding call from 4161 objc_expand_function_end(). 4162 (is_complex_decl, adorn_decl, gen_declarator, gen_declspecs, 4163 gen_declaration_1): Remove functions. 4164 (tmpbuf, RAW_DECLSPEC): Remove. 4165 (gen_declaration): Remove second parameter; simplify to deal 4166 with TYPE_P nodes instead of raw declspecs. 4167 (gen_type_name, gen_type_name_0): New functions. 4168 (gen_method_decl): Remove second parameter; call gen_type_name() 4169 instead of gen_declaration_1(). 4170 (dump_interface): Adjust calls to gen_declaration() and 4171 gen_method_decl(); do not allocate a separate string buffer. 4172 (init_objc): Allocate a larger string buffer to accommodate 4173 dump_interface(); adjust call to build_module_descriptor(); 4174 add call to build_module_initializer_routine() for the GNU 4175 runtime. 4176 (generate_classref_translation_entry): Do not call start_decl(); call 4177 finish_var_decl() instead of finish_decl(); call convert() instead of 4178 build_c_cast(). 4179 * objc-act.h (CLASS_OWN_IVARS): Remove accessor. 4180 (CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is 4181 gone. 4182 (OCTI_GNU_INIT_DECL, GNU_INIT_decl): New. 4183 (OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove. 4184 (OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME, 4185 objc_object_type and objc_object_name, respectively. 4186 (OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference, 4187 objc_class_name): New. 4188 (IS_CLASS): New macro. 4189 (IS_ID, IS_SUPER): Robustify. 4190 (OCTI_EXECCLASS_DECL, execclass_decl): New. 4191 (finish_file, start_class, continue_class, finish_class, 4192 start_method_def, continue_method_def, finish_method_def, 4193 start_protocol, finish_protocol, objc_build_throw_stmt, 4194 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, 4195 objc_build_synchronized_epilogue, objc_build_try_prologue, 4196 objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue, 4197 objc_build_finally_prologue, objc_build_finally_epilogue, 4198 is_ivar, is_private, is_public, add_instance_variable, objc_add_method, 4199 get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name, 4200 get_class_reference, get_static_reference, get_object_reference, 4201 build_message_expr, finish_message_expr, build_selector_expr, 4202 build_ivar_reference, build_keyword_decl, build_method_decl, 4203 build_protocol_expr, build_objc_string_object, objc_declare_alias, 4204 objc_declare_class, objc_declare_protocols, objc_comptypes, 4205 objc_check_decl, build_encode_expr): Remove prototypes. 4206 (imp_count, cat_count): Make GGC-aware. 4207 (OBJC_SET_TYPE_NAME): New macro. 4208 42092004-09-03 Ziemowit Laski <zlaski@apple.com> 4210 4211 * config-lang.in: Update copyright notice. 4212 (lang_requires): Indicate that ObjC requires C to be built first. 4213 42142004-09-01 Ziemowit Laski <zlaski@apple.com> 4215 4216 * objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of 4217 TYPE_NAME. 4218 (build_objc_string_object): Rename to objc_build_string_object(). 4219 (get_class_reference): Rename to objc_get_class_reference(). 4220 (get_class_ivars_from_name): Rename to objc_get_class_ivars(). 4221 (next_sjlj_build_catch_list, get_super_receiver): Call 4222 objc_get_class_reference() instead of get_class_reference(). 4223 (build_keyword_decl): Rename to objc_build_keyword_decl(). 4224 (build_message_expr): Rename to objc_build_message_expr(). 4225 (build_protocol_expr): Rename to objc_build_protocol_expr(). 4226 (build_selector_expr): Rename to objc_build_selector_expr(). 4227 (build_encode_expr): Rename to objc_build_encode_expr(). 4228 * objc-act.h (get_class_ivars_from_name): Rename prototype to 4229 objc_get_class_ivars(). 4230 (get_class_reference): Rename prototype to objc_get_class_reference(). 4231 (build_message_expr): Rename prototype to objc_build_message_expr(). 4232 (build_selector_expr): Rename prototype to objc_build_selector_expr(). 4233 (build_keyword_decl): Rename prototype to objc_build_keyword_decl(). 4234 (build_protocol_expr): Rename prototype to objc_build_prototype_expr(). 4235 (build_objc_string_object): Rename prototype to 4236 objc_build_string_object(). 4237 42382004-09-01 Ziemowit Laski <zlaski@apple.com> 4239 4240 * objc-act.c (lookup_interface): Make function 'static' and add a 4241 local prototype. 4242 (objc_check_decl, get_class_reference, objc_declare_alias, 4243 objc_declare_class, objc_is_object_ptr): Call objc_is_class_name() 4244 instead of is_class_name(). 4245 (get_super_receiver, objc_clear_super_receiver): Call 4246 objc_get_current_scope() instead of get_current_scope(). 4247 (is_class_name): Rename to objc_is_class_name. 4248 (lookup_objc_ivar): Rename to objc_lookup_ivar. 4249 42502004-08-28 Ziemowit Laski <zlaski@apple.com> 4251 4252 * objc-act.c (objc_is_reserved_word): New function. 4253 42542004-08-15 Ziemowit Laski <zlaski@apple.com> 4255 4256 * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H), 4257 $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h. 4258 (objc/objc-parse.o): Do not depend on gtype-objc.h. 4259 * objc-act.c: Do not include gtype-objc.h. 4260 (finish_file): Rename to objc_finish_file(). 4261 * objc-act.h (finish_file): Update copyright notice; remove prototype. 4262 * objc-lang.c: Update copyright notice; include diagnostic.h, 4263 c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include 4264 toplev.h. 4265 (finish_file): New hook routine. 4266 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS, 4267 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION, 4268 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS, 4269 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, 4270 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, 4271 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION, 4272 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL, 4273 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, 4274 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, 4275 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED, 4276 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, 4277 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, 4278 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, 4279 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, 4280 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, 4281 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, 4282 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING, 4283 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, 4284 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, 4285 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE, 4286 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE, 4287 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, 4288 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO, 4289 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS): 4290 Move to c-objc-common.h. 4291 4292 4293Copyright (C) 2004-2022 Free Software Foundation, Inc. 4294 4295Copying and distribution of this file, with or without modification, 4296are permitted in any medium without royalty provided the copyright 4297notice and this notice are preserved. 4298