ChangeLog revision 107590
12002-11-19 Release Manager 2 3 * GCC 3.2.1 Released. 4 52002-11-19 Release Manager 6 7 * GCC 3.2.1 Released. 8 92002-11-18 Release Manager 10 11 * GCC 3.2.1 Released. 12 132002-11-11 Nathan Sidwell <nathan@codesourcery.com> 14 15 PR c++/7788 16 * rtti.c (unemitted_tinfo_decl_p): Check it has a field. 17 182002-11-02 Zack Weinberg <zack@codesourcery.com> 19 20 PR c/7353 redux 21 * decl2.c (grokfield): Reject TYPE_DECLs with initializers. 22 232002-11-01 Gabriel Dos Reis <gdr@integrable-solutions.net> 24 25 PR C++/2521 26 * typeck.c (build_x_unary_op): Handle pointer-to-member. 27 282002-10-30 Mark Mitchell <mark@codesourcery.com> 29 30 PR c++/8160 31 * typeck2.c (process_init_constructor): Call complete_array_type. 32 33 PR c++/8149 34 * decl.c (make_typename_type): Issue errors about invalid results. 35 362002-10-29 Mark Mitchell <mark@codesourcery.com> 37 38 PR c++/8287 39 * decl.c (finish_destructor_body): Create the label to jump to 40 when returning from a destructor here. 41 (finish_function_body): Rather than here. 42 43 * semantics.c (finish_alignof): Call complete_type before calling 44 c_alignof. 45 * decl2.c (build_expr_from_tree): Use 46 finish_sizeof/finish_alignof. 47 482002-10-10 Jim Wilson <wilson@redhat.com> 49 50 * decl.c (duplicate_decls): Don't call decl_attributes. 51 522002-10-25 Zack Weinberg <zack@codesourcery.com> 53 54 PR middle-end/6994 55 * cp-lang.c (cp_var_mod_type_p): New: C++ hook for 56 variably_modified_type_p. 57 * cp-tree.h: Remove prototype of variably_modified_type_p. 58 * tree.c (variably_modified_type_p): Remove; now implemented 59 in language-independent code. 60 61 PR c++/7266 62 * decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a 63 SCOPE_REF is not null before dereferencing it. 64 652002-10-24 David Edelsohn <edelsohn@gnu.org> 66 67 PR c++/7228 68 * cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that 69 lang_type structure exists before accessing field. 70 (SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro. 71 (CLASSTYPE_REF_FIELDS_NEED_INIT): Similar. 72 (SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro. 73 * class.c (check_field_decls): Use new macros. 74 * typeck2.c (process_init_constructor): Remove redundant check for 75 existence of lang_type structure. 76 772002-10-23 Mark Mitchell <mark@codesourcery.com> 78 79 PR c++/8067 80 * decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and 81 related variables. 82 832002-10-23 Mark Mitchell <mark@codesourcery.com> 84 85 PR c++/7679 86 * spew.c (next_token): Do not return an endless stream of 87 END_OF_SAVED_INPUT tokens. 88 (snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of 89 the cached token stream. 90 (snarf_defarg): Likewise. 91 922002-10-22 Mark Mitchell <mark@codesourcery.com> 93 94 PR c++/6579 95 * spew.c (snarf_parenthesized_expression): New function. 96 (snarf_block): Use it. 97 982002-10-21 Matthias Klose <doko@debian.org> 99 100 * Backport, without whitespace change: 101 2002-06-19 Akim Demaille <akim@epita.fr> 102 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with 103 decl.h's TYPENAME. 104 * spew.c, lex.c: Adjust. 105 * parse.y (explicit_instantiation): Add empty action to override 106 the default $$ = $1 where it introduces a type clash. 107 1082002-10-21 Mark Mitchell <mark@codesourcery.com> 109 110 PR c++/8218 111 * cp-tree.h (lang_type_class): Add contains_empty_class_p. 112 (CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro. 113 * class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P. 114 (check_field_decls): Likewise. 115 (layout_class_type): Likewise. 116 (finish_struct_1): Initialize it. 117 (walk_subobject_offsets): Use it to prune searches. 118 1192002-10-18 Zack Weinberg <zack@codesourcery.com> 120 121 * decl.c (start_decl): Point users of the old initialized- 122 typedef extension at __typeof__. 123 1242002-10-18 Nathan Sidwell <nathan@codesourcery.com> 125 126 PR c++/7676 127 * class.c (add_method): Compare template parms too. 128 1292002-10-17 Mark Mitchell <mark@codesourcery.com> 130 131 * mangle.c (globals): Add entity and need_abi_warning. 132 (write_prefix): Likewise. 133 (write_template_prefix): Likewise. 134 (start_mangling): Add entity parameter. 135 (finish_mangling): Warn about names whose mangling will change. 136 (mangle_decl_string): Adjust. 137 (mangle_type_string): Likewise. 138 (mangle_special_for_type): Likewise. 139 (mangle_ctor_vtbl_for_type): Likewise. 140 (mangle_thunk): Likewise. 141 (mangle_guard_variable): Likewise. 142 (mangle_ref_init_variable): Likewise. 143 144 PR c++/7584 145 * class.c (handle_using_decl): Allow the declaration used to be 146 from an ambiguous base. 147 1482002-10-16 Mark Mitchell <mark@codesourcery.com> 149 150 PR c++/7478 151 * cvt.c (convert_to_reference): Allow references as the incoming 152 type. 153 154 PR c++/8134 155 * tree.c (zero_init_p): Always return 1. 156 157 PR c++/7524 158 * method.c (do_build_assign_ref): Use cp_build_qualified_type, not 159 build_qualified_type. 160 1612002-10-14 Mark Mitchell <mark@codesourcery.com> 162 163 PR c++/7176 164 * lex.c (do_identifier): Add another option for the parsing 165 parameter. 166 * parse.y (do_id): Use it. 167 1682002-10-11 Mark Mitchell <mark@codesourcery.com> 169 170 PR c++/5661 171 * cp-tree.h (variably_modified_type_p): New function. 172 (grokdeclarator) Tighten check for variably modified types as 173 fields. 174 * pt.c (convert_template_argument): Do not allow variably modified 175 types as template arguments. 176 * tree.c (variably_modified_type_p): New function. 177 1782002-10-11 Jason Molenda <jmolenda@apple.com> 179 180 * init.c (build_field_list): Provide uses_unions_p with a default 181 value. 182 1832002-10-10 Gabriel Dos Reis <gdr@integrable-solutions.net> 184 185 PRs C++/6803, C++/7721 and C++/7803 186 * decl.c (grokdeclarator): Gracefully handle template-name as 187 decl-specifier. 188 1892002-10-09 Zack Weinberg <zack@codesourcery.com> 190 191 PR c/7353 192 * decl.c (start_decl): Unconditionally issue error for 193 'typedef foo = bar'. 194 (cp_finish_decl): Remove special case for TYPE_DECL with initializer. 195 (grokdeclarator): Remove redundant error for 'typedef foo = bar'. 196 1972002-10-03 Mark Mitchell <mark@codesourcery.com> 198 199 PR c++/7754 200 * decl2.c (finish_anon_union): Do not expand anonymous unions when 201 procesing template functions. 202 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable 203 type. Call layout_decl. 204 (tsubst_expr, case DECL_STMT): Handle anonymous unions. 205 2062002-10-07 Richard Henderson <rth@redhat.com> 207 208 * decl2.c: Complete reversion of c++/7754. 209 2102002-10-06 Roger Sayle <roger@eyesopen.com> 211 212 PR optimization/6627 213 * cp/cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition 214 from here, and move it to tree.h. 215 * cp/decl.c (cxx_init_decl_processing): If storing the vbit 216 in function pointers, ensure that force_align_functions_log 217 is atleast one. 218 2192002-10-04 H.J. Lu (hjl@gnu.org) 220 221 * pt.c (tsubst_decl, case VAR_DECL): Back out the last change. 222 (tsubst_expr, case DECL_STMT): Likewise. 223 2242002-10-02 Mark Mitchell <mark@codesourcery.com> 225 226 PR c++/7754 227 * decl2.c (finish_anon_union): Do not expand anonymous unions when 228 procesing template functions. 229 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable 230 type. Call layout_decl. 231 (tsubst_expr, case DECL_STMT): Handle anonymous unions. 232 2332002-10-02 Mark Mitchell <mark@codesourcery.com> 234 235 PR c++/7188. 236 * init.c (expand_member_init): Allow a FIELD_DECL to be passed in 237 directly. 238 * pt.c (tsubst_initializer_list): Use expand_member_init. 239 2402002-09-04 Jakub Jelinek <jakub@redhat.com> 241 242 * decl.c (start_cleanup_fn): Clear interface_only before 243 start_function, restore it afterwards. 244 2452002-09-01 Alexandre Oliva <aoliva@redhat.com> 246 247 * parse.y (sizeof, alignof, typeof): New non-terminals to 248 increment skip_evaluation. Replace terminals with them and 249 decrement skip_evaluation at the end of rules using them. 250 * decl2.c (mark_used): Don't assemble_external if 251 skipping evaluation. 252 2532002-08-31 Jason Merrill <jason@redhat.com> 254 255 * cp-lang.c (cp_expr_size): Don't abort. 256 2572002-08-27 Mark Mitchell <mark@codesourcery.com> 258 259 * cp-tree.h (warn_abi): Declare it. 260 * decl.c (warn_abi): Define it. 261 (cxx_decode_option): Set it. 262 * class.c (layout_virtual_bases): Warn about bugs in G++ that 263 result in incorrect object layouts. 264 (layout_class_type): Likewise. 265 2662002-08-22 Jason Merrill <jason@redhat.com> 267 268 PR c++/5607 269 * search.c (check_final_overrider): No longer static. 270 * class.c (update_vtable_entry_for_fn): Call it. 271 * cp-tree.h: Adjust. 272 273 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define. 274 (cp_expr_size): New fn. 275 * call.c (convert_arg_to_ellipsis): Promote non-POD warning to error. 276 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue. 277 2782002-08-14 Release Manager 279 280 * GCC 3.2 Released. 281 2822002-08-03 Nathan Sidwell <nathan@codesourcery.com> 283 284 PR 7470. 285 C++ ABI change - vfunc ordering. 286 * class.c (add_virtual_function): Remove. 287 (dfs_modify_all_vtables): Take list of all declared 288 virtuals. Assign all that are not in primary base. 289 (check_for_override): Adjust comments. 290 (create_vtable_ptr): Take single list of virtuals. Build chain 291 of declared virtuals here. 292 (layout_class_type): Take single list of virtuals. Adjust. 293 (finish_struct_1): Keep virtuals on single list. Adjust. 294 2952002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 296 297 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c. 298 2992002-07-17 Scott Snyder <snyder@fnal.gov> 300 301 PR c++/7320 302 * rtti.c (get_tinfo_decl): Set DECL_COMDAT. 303 3042002-07-05 Nathan Sidwell <nathan@codesourcery.com> 305 306 Repair damage on weak-impared targets caused by my previous patch. 307 * cp-tree.h (import_export_tinfo): Add parameter. 308 * decl2.c (import_export_tinfo): Add parameter, post adjust 309 DECL_COMDAT. 310 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by 311 import_export_tinfo. 312 3132002-06-30 Nathan Sidwell <nathan@codesourcery.com> 314 315 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ... 316 (CPTI_TYPE_INFO_PTR_TYPE): ... this. 317 (tinfo_decl_type): Replace with ... 318 (type_info_ptr_type): ... this. 319 (import_export_tinfo): Declare. 320 (tinfo_decl_p): Rename to ... 321 (unemitted_tinfo_decl_p): ... this. 322 * decl2.c (import_export_decl): Break out tinfo handling into ... 323 (import_export_tinfo): ... here. New function. 324 (finish_file): Adjust. 325 * rtti.c (TINFO_REAL_NAME): New macro. 326 (init_rtti_processing): Create the tinfo types. 327 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr. 328 (get_tinfo_decl): Adjust. 329 (get_tinfo_ptr): New function. 330 (get_type_id): Use it. 331 (tinfo_base_init): Create vtable decl here, if it doesn't exist. 332 (ptr_initializer): Use get_tinfo_ptr. 333 (ptm_initializer): Likewise. 334 (synthesize_tinfo_var): Break into ... 335 (get_pseudo_ti_init): ... this. Just create the initializer. 336 (get_pseudo_ti_desc): .. and this. 337 (create_real_tinfo_var): Remove. 338 (create_pseudo_type_info): Don't create the vtable decl here. 339 (get_vmi_pseudo_type_info): Remove. 340 (create_tinfo_types): Adjust. 341 (tinfo_decl_p): Rename to ... 342 (unemitted_tinfo_decl_p): ... here. Adjust. 343 (emit_tinfo_decl): Adjust. Create the initializer. 344 3452002-06-14 Jason Merrill <jason@redhat.com> 346 347 C++ ABI changes. 348 * class.c (build_base_field): Set DECL_PACKED. 349 (layout_class_type): Don't use tail padding of PODs. 350 * mangle.c (write_unqualified_name): Fix template conversion op 351 mangling. 352 3532002-05-18 Jason Merrill <jason@redhat.com> 354 355 PR c++/6611 356 * decl2.c (import_export_decl): If we clear 357 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set. 358 3592002-05-14 Jason Merrill <jason@redhat.com> 360 361 * rtti.c (get_tinfo_decl): Don't call comdat_linkage. 362 Do set DECL_COMDAT. 363 (synthesize_tinfo_var): Take the public decl. 364 (create_real_tinfo_var): Likewise. Check DECL_COMDAT. 365 (emit_tinfo_decl): Adjust. Call import_export_decl. 366 * decl2.c (import_export_decl): Simplify tinfo decl handling. 367 3682002-07-25 Release Manager 369 370 * GCC 3.1.1 Released. 371 3722002-07-12 Mark Mitchell <mark@codesourcery.com> 373 374 * class.c (add_method): Correct handling of conversion operators. 375 3762002-07-11 Mark Mitchell <mark@codesourcery.com> 377 378 PR c++/7224 379 * class.c (add_method): Simplify. 380 3812002-07-11 Jason Merrill <jason@redhat.com> 382 383 PR c++/7279 384 * tree.c (cp_copy_res_decl_for_inlining): Also copy 385 TREE_ADDRESSABLE. 386 3872002-07-10 Jason Merrill <jason@redhat.com> 388 389 PR c++/6255 390 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than 391 modifying the old one. 392 3932002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 394 395 * pt.c (can_complete_type_without_circularity): Add static to 396 function definition. 397 3982002-07-05 Jim Wilson <wilson@redhat.com> 399 400 * decl.c (mark_named_label_lists): Add missing & in call to 401 mark_binding_level. 402 4032002-07-05 Jason Merrill <jason@redhat.com> 404 405 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null 406 pointers. 407 408 PR optimization/7145 409 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL. 410 4112002-05-18 Jason Merrill <jason@redhat.com> 412 413 PR c++/6611 414 * decl2.c (import_export_decl): If we clear 415 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set. 416 4172002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 418 419 PR c++/6944 420 * init.c (build_aggr_init): Remove qualifiers of init before calling 421 build_vec_init. 422 (build_vec_init): Flatten multi-dimensional array during cleanup. 423 (build_vec_delete_1): Abort if the type of each element is array. 424 4252002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 426 427 PR c++/6716 428 * pt.c (can_complete_type_without_circularity): New function. 429 (instantiate_class_template): Use it. 430 * typeck2.c (incomplete_type_error): Improve error message 431 due to incomplete fields. 432 4332002-07-01 Mark Mitchell <mark@codesourcery.com> 434 435 PR c++/7112 436 * mangle.c (write_expression): Add mangling for sizeof when 437 applied to a type. 438 * operators.def: Remove stale comment. 439 4402002-06-27 Mark Mitchell <mark@codesourcery.com> 441 442 PR c++/6695 443 * pt.c (tsubst_friend_class): Substitute into the context of the 444 friend before using it. 445 4462002-06-23 Matt Thomas <matt@3am-software.com> 447 448 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to 449 "#if VMS_TARGET". 450 4512002-06-20 Richard Henderson <rth@redhat.com> 452 453 PR c++/6747 454 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early. 455 Call put_var_into_stack. 456 4572002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 458 459 PR c++/6892 460 * pt.c (tsubst_expr): Handle FILE_STMT. 461 4622002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 463 464 PR c++/6723 465 * pt.c (lookup_template_class): Don't build complete argument of 466 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template 467 argument. 468 4692002-06-16 Richard Henderson <rth@redhat.com> 470 471 PR opt/6793 472 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test 473 after template instantiation. 474 4752002-06-07 H.J. Lu (hjl@gnu.org) 476 477 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT. 478 4792002-05-23 Neil Booth <neil@daikokuya.demon.co.uk> 480 481 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. 482 * cp-tree.h (cxx_post_options): Kill. 483 * cp-lex.c (cxx_post_options): Kill. 484 4852002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 486 487 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing. 488 4892002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 490 491 PR c++/186, DR 259 492 * pt.c (do_decl_instantiation): Don't complain explicit 493 instantiation after explicit specialization. 494 (do_type_instantiation): Likewise. 495 4962002-05-09 Jason Merrill <jason@redhat.com> 497 498 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P. 499 5002002-05-15 Alexandre Oliva <aoliva@redhat.com> 501 502 * cp-tree.h (struct lang_type): Added non_zero_init. 503 (CLASSTYPE_NON_ZERO_INIT_P): New macro. 504 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare. 505 * class.c (check_field_decls): Test non_zero_init. 506 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for 507 zero-to-NULL conversions. 508 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a 509 type that needs zero-initialization without zeros. 510 (check_initializer_decl): Compute zero-initializer for types 511 that require a non-trivial one. 512 * init.c (build_forced_zero_init): New function. 513 (build_default_init): Use it. 514 * tree.c (zero_init_p): New function. 515 * typeck2.c (force_store_init_value): New function. 516 (process_init_constructor): Create non-trivial zero-initializers 517 for array members and class fields. 518 5192002-05-14 Release Manager 520 521 * GCC 3.1 Released. 522 5232002-05-03 Jason Merrill <jason@redhat.com> 524 525 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h. 526 5272002-05-02 Mark Mitchell <mark@codesourcery.com> 528 529 * init.c (perform_base_cleanups): Correct order of base class 530 cleanups. 531 5322002-05-01 Mark Mitchell <mark@codesourcery.com> 533 534 PR c++/6527 535 * init.c (perform_base_cleanups): Emit cleanups in reverse order 536 of construction. 537 5382002-05-01 Gabriel Dos Reis <gdr@codesourcery.com> 539 540 * error.c (dump_type): Be careful about implicit typenames. 541 5422002-04-30 Mark Mitchell <mark@codesourcery.com> 543 544 ABI change, returning simple classes from functions. 545 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if 546 TYPE_HAS_TRIVIAL_INIT_REF is false or 547 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true. 548 5492002-04-30 Jason Merrill <jason@redhat.com> 550 551 PR debug/6436 552 * decl.c (grokdeclarator): Don't override TYPE_NAME of an 553 anonymous class with a typedef if there are attributes. 554 5552002-04-29 Paul Eggert <eggert@twinsun.com> 556 557 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$. 558 5592002-04-29 Jakub Jelinek <jakub@redhat.com> 560 561 PR c++/6477 562 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is 563 non-NULL first. 564 5652002-04-29 Mark Mitchell <mark@codesourcery.com> 566 567 PR c++/6492 568 * pt.c (tsubst_friend_class): If the friend has an explicit scope, 569 enter that scope before name lookup. 570 571 PR c++/6486 572 * method.c (do_build_copy_constructor): Avoid building 573 cv-qualified reference types. 574 5752002-04-29 Nathan Sidwell <nathan@codesourcery.com> 576 577 PR c++/5719 578 * decl.c (grok_op_properties): Assignment ops don't have to return 579 by value. operator% should. 580 5812002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 582 583 PR c/6343 584 * decl.c (duplicate_decls): Call merge_weak. 585 5862002-04-26 Mark Mitchell <mark@codesourcery.com> 587 588 PR c++/6479 589 * method.c (do_build_assign_ref): Pass a derivation to 590 build_method_call when calling base class assignment operators. 591 5922002-04-24 Mark Mitchell <mark@codesourcery.com> 593 594 * mangle.c (write_type): Don't use TYPE_MAIN_VARIANT when writing 595 out an array type. 596 (write_CV_qualifiers_for_type): Use TYPE_QUALS, not cp_type_quals, 597 to determine qualifiers. 598 599 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs 600 void. 601 6022002-04-24 Jason Merrill <jason@redhat.com> 603 604 PR c++/6331 605 * method.c (do_build_copy_constructor): Use cp_build_qualified_type. 606 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals. 607 The pedwarn for array assignment is now unconditional. 608 * tree.c (build_cplus_array_type_1): Still process simple array types 609 normally in templates. 610 611 PR c++/6395 612 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i 613 stuff for comdats. 614 6152002-04-23 Jason Merrill <jason@redhat.com> 616 617 PR c++/5504 - but re-breaks c++/411 618 * init.c (push_base_cleanups): Rename to perform_base_cleanups. 619 Expand base cleanups now rather than pushing them. 620 * decl.c (begin_destructor_body): Don't call push_base_cleanups. 621 (finish_destructor_body): Call perform_base_cleanups. 622 * cp-tree.h: Adjust prototype. 623 6242002-04-23 Jakub Jelinek <jakub@redhat.com> 625 626 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class 627 node with attributes. 628 6292002-2-23 David O'Brien <obrien@FreeBSD.org> 630 631 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add. 632 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given. 633 6342002-04-23 Mark Mitchell <mark@codesourcery.com> 635 636 PR c++/6256: 637 * pt.c (tsubst_friend_class): Handle templates with explicit 638 nested names. 639 640 PR c++/6331: 641 * typeck.c (merge_types): Remember the cv-qualification of pointer 642 types when merging them. 643 6442002-04-18 Jason Merrill <jason@redhat.com> 645 646 PR c++/5658 647 * search.c (setup_class_bindings): A class template qualifies as a 648 type binding. 649 6502002-04-17 Jakub Jelinek <jakub@redhat.com> 651 652 PR c++/6316 653 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop 654 before expanding. 655 6562002-04-16 Mark Mitchell <mark@codesourcery.com> 657 658 * init.c (begin_init_stmts): Remove commented out code. 659 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. 660 * semantics.c (begin_gobal_stmt_expr): Adjust call to 661 expand_start_stmt_expr. 662 6632002-04-15 Mark Mitchell <mark@codesourcery.com> 664 665 * decl.c (register_dtor_fn): Pass the address of dso_handle, not 666 dso_handle itself, to __cxa_atexit. 667 6682002-04-14 Jakub Jelinek <jakub@redhat.com> 669 670 * class.c (layout_virtual_bases): Do all dsize computation on trees. 671 6722002-04-12 Mark Mitchell <mark@codesourcery.com> 673 674 PR c++/5373. 675 * semantics.c (finish_expr_stmt): Remember the type of the 676 expression before any conversions are performed. 677 678 PR c++/5189. 679 * call.c (add_template_candidate_real): Do not treat member 680 templates as copy constructors. 681 682 * decl.c (duplicate_decls): Do not copy the RTL for a variable 683 declaration if the old variable had an incomplete type and the new 684 variable does not. 685 (complete_vars): Do not call layout_decl for completed variables. 686 6872002-04-11 Andrew Haley <aph@redhat.com> 688 689 * typeck.c (type_after_usual_arithmetic_conversions): 690 If two types have the same variant, return immediately. 691 When two floating-point operands are the same precision: 692 convert to float if one of the operands is float; 693 if neither operand is one of the standard types, return the type 694 of the first operand. 695 6962002-04-12 Richard Sandiford <rsandifo@redhat.com> 697 698 * decl.c (duplicate_decls): Don't try to unify an implicit typedef 699 with an explicit one. 700 (follow_tag_typedef): New. 701 (lookup_tag): Use it to extract the tag of an explicit typedef. 702 (xref_tag): Likewise. 703 7042002-04-10 Nathan Sidwell <nathan@codesourcery.com> 705 706 PR c++/5507 707 * decl.c (make_typename_type): Remove implicit typenameness. 708 7092002-04-09 Jason Merrill <jason@redhat.com> 710 711 PR optimization/6189 712 * semantics.c (genrtl_start_function): Don't free 713 DECL_SAVED_FUNCTION_DATA for inline functions. 714 7152002-04-08 Paolo Carlini <pcarlini@unitus.it> 716 717 * parse.y (namespace_qualifier, maybe_identifier, 718 begin_explicit_instantiation, end_explicit_instantiation, 719 apparent_template_type, .finish_template_type, 720 do_id, maybe_init, defarg_again, component_decl_1): 721 Add ending ';', in accordance with POSIX. 722 7232002-04-06 Mark Mitchell <mark@codesourcery.com> 724 725 PR c++/5571 726 * class.c (layout_class_type): Remember incomplete static 727 variables. 728 (finish_struct_1): Call complete_vars, not 729 hack_incomplete_structures. 730 * cp-tree.h (hack_incomplete_structures): Rename to ... 731 (complete_vars): ... this. 732 (struct saved_scope): Remove incomplete. 733 (namespace_scope_incomplete): Remove. 734 * decl.c (struct binding_level): Remove incomplete. 735 (incomplete_vars): New variable. 736 (mark_binding_level): Don't mark incomplete. 737 (print_binding_level): Don't print it. 738 (mark_saved_scope): Don't mark incomplete. 739 (pushdecl): Use maybe_register_incopmlete_var. 740 (cxx_init_decl_processing): Register incomplete_vars for GC. 741 (start_decl_1): Clarify error message. 742 (hack_incomplete_vars): Remove. 743 (maybe_register_incomplete_var): New function. 744 (complete_vars): Likewise. 745 7462002-04-06 Jason Merrill <jason@redhat.com> 747 748 PR c++/4934 749 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is 750 set before checking it. 751 752 PR c++/6179 753 * method.c (implicitly_declare_fn): Pass unqualified type to 754 synthesize_exception_spec. 755 7562002-04-03 Jason Merrill <jason@redhat.com> 757 758 PR c++/525 759 * init.c (build_member_call): Convert to intermediate base even 760 with -pedantic. 761 762 PR c++/5636 763 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on 764 cleanup for nrv. 765 766 PR c++/5104 767 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception 768 specifiers. 769 [METHOD_TYPE]: Use same code as FUNCTION_TYPE. 770 7712002-04-03 Roger Sayle <roger@eyesopen.com> 772 773 PR c++/5998: 774 * decl.c (duplicate_decls): Don't mess with assembler names when 775 redeclaring builtin functions as static. 776 7772002-04-01 Roger Sayle <roger@eyesopen.com> 778 779 PR c++/5998: 780 * decl.c (duplicate_decls): Overwrite the RTL when (and only 781 when) overwriting a built-in function. Don't use COPY_DECL_RTL, 782 but follow the SET_DECL_RTL idiom used elsewhere in the function. 783 7842002-03-28 Roger Sayle <roger@eyesopen.com> 785 786 PR c++/5998: 787 * decl.c (cxx_init_decl_processing): Re-enable built-in functions 788 in the g++ front-end. 789 (duplicate_decl): Allow redefinition of anticipated built-ins. 790 Fix inlining problem by over-writing the old DECL_RTL. 791 (lookup_namespace_name): Fail to find an identifier in the 792 specified namespace if its still anticipated. 793 (builtin_function_1): New function split out from builtin_function 794 to create a builtin in the current namespace with given context. 795 (builtin_function): Call builtin_function_1 to define the 796 appropriate builtins in both the std and global namespaces. 797 (select_decl): Don't test for anticipated decls here. 798 (unqualified_namespace_lookup): Instead ignore them whilst 799 searching through scopes and namespaces. 800 * decl2.c (do_nonmember_using_decl): If a using declaration 801 specifies an anticipated built-in function, mark it as no longer 802 anticipated in that scope. 803 (ambiguous_decl): Avoid resolving to an anticipated decl. 804 * lex.c (do_scoped_id): Fail to find an identifier in the global 805 namespace if its still anticipated. 806 8072002-03-29 Jakub Jelinek <jakub@redhat.com> 808 809 PR c++/6073 810 * class.c (finish_struct_1): Update static field's DECL_MODE even 811 if its type is a variant of t. 812 8132002-03-27 Mark Mitchell <mark@codesourcery.com> 814 815 PR c++/4884 816 * call.c (build_op_delete_call): Allow for the fact the placement 817 may be a COMPOUND_EXPR. 818 8192002-03-26 Nathan Sidwell <nathan@codesourcery.com> 820 821 PR c++/5682 822 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better. 823 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 824 (dfs_skip_nonprimary_vbases_markedp): Remove. 825 * search.c (get_shared_vbase_if_not_primary): Remove. 826 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 827 (dfs_skip_nonprimary_vbases_markedp): Remove. 828 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo. 829 (dfs_marked_real_bases_queue_p): Likewise. 830 8312002-03-26 Mark Mitchell <mark@codesourcery.com> 832 833 PR c++/4884 834 * init.c (build_new_1): Allow for the fact the result of 835 build_function_call may be a COMPOUND_EXPR. 836 8372002-03-25 Jakub Jelinek <jakub@redhat.com> 838 839 PR c++/6037 840 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node. 841 8422002-03-22 Jeff Knaggs <jknaggs@redhat.com> 843 844 * typeck.c (expand_ptrmemfunc_cst): Scale idx down to an index 845 into the vtable_entry array regardless of 846 TARGET_PTRMEMFUNC_VBIT_LOCATION. 847 8482002-03-21 Aldy Hernandez <aldyh@redhat.com> 849 850 * tree.c (cp_cannot_inline_tree_fn): Same. 851 8522002-03-20 Jason Merrill <jason@redhat.com> 853 854 PR c++/2136 855 * init.c (build_delete): Check access for a member op delete here. 856 * decl2.c (delete_sanity): Not here. 857 8582002-03-19 Jason Merrill <jason@redhat.com> 859 860 PR c++/5118 861 * class.c (get_vfield_name): Use the constructor_name. 862 8632002-03-18 Eric Botcazou <ebotcazou@multimania.com> 864 865 PR c++/3882 866 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling... 867 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer 868 only after recording the declaration. 869 8702002-03-18 Ashif Harji <asharji@uwaterloo.ca> 871 872 * lang-specs.h (compiler default_compilers): Add 873 -no-integrated-cpp flag to invoke an external cpp. 874 8752002-03-18 Jason Merrill <jason@redhat.com> 876 877 PR c++/2039 878 * init.c (resolve_offset_ref): Hand off to build_component_ref. 879 880 PR c++/4222, c++/5995 881 * call.c (build_over_call): Fix empty class logic. 882 883 PR c++/3870 884 * cp-tree.h (struct saved_scope): Add last_parms field. 885 * decl.c (maybe_push_to_top_level): Save last_function_parms. 886 (pop_from_top_level): Restore it. 887 888 PR c++/4377 889 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip 890 NON_LVALUE_EXPRs. 891 892 PR c++/4003 893 * pt.c (tsubst_friend_function): Use decl_namespace_context. 894 895 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch. 896 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a 897 type with a nontrivial destructor. 898 8992002-03-17 Jason Merrill <jason@redhat.com> 900 901 PR c++/4460 902 * class.c (build_base_path): Virtual base layout is fixed in 903 in-charge [cd]tors. 904 905 PR c++/5757 906 * init.c (build_new_1): Pass the right pointer to op delete. 907 9082002-03-15 Richard Henderson <rth@redhat.com> 909 910 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op. 911 9122002-03-15 Richard Henderson <rth@redhat.com> 913 914 * decl.c (finish_function): Reapply accidentally reverted 915 2002-02-28 patch. 916 9172002-03-15 Mark Mitchell <mark@codesourcery.com> 918 919 * cp-tree.h (CLEANUP_DECL): Remove. 920 (CLEANUP_EXPR): Likewise. 921 * decl.c (destroy_local_var): Simplify. 922 (maybe_build_cleanup): Tidy. 923 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT. 924 * semantics.c (cp_expand_stmt): Likewise. 925 * cp/tree.c (cp_statement_code_p): Likewise. 926 9272002-03-15 Richard Henderson <rth@redhat.com> 928 929 * decl.c: Include c-pragma.h. 930 (start_decl, start_function): Invoke maybe_apply_pragma_weak. 931 * Make-lang.in: Update dependencies. 932 9332002-03-15 Jason Merrill <jason@redhat.com> 934 935 PR c++/5857 936 * decl.c (duplicate_decls): Use merge_types instead of common_type. 937 * typeck.c (common_type): Just hand off to 938 type_after_usual_arithmetic_conversions and 939 composite_pointer_type. 940 (merge_types): New fn. 941 (commonparms): Use it instead of common_type. 942 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE. 943 (composite_pointer_type): Also handle attributes. 944 * cp-tree.h: Declare merge_types. 945 946 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT 947 variables. 948 * decl2.c (maybe_make_one_only): Also mark the decl as needed. 949 9502002-03-14 Jakub Jelinek <jakub@redhat.com> 951 952 PR c++/5908 953 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too. 954 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING. 955 9562002-03-12 Richard Sandiford <rsandifo@redhat.com> 957 958 * mangle.c (write_builtin_type): Handle 128-bit integers even if 959 they are not a standard integer type. 960 9612002-03-12 Nathan Sidwell <nathan@codesourcery.com> 962 963 PR c++/5659 964 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here. 965 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for 966 definitions. 967 9682002-03-11 Nathan Sidwell <nathan@codesourcery.com> 969 970 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>, 971 DR209 is now not a defect. 972 * cp-tree.h (skip_type_access_control): Remove. 973 * decl.c (grokdeclarator): Do type access control for friend 974 declarations. 975 * semantics.c (decl_type_access_control): Don't reset 976 current_type_lookups. 977 (save_type_access_control): Always save the lookups. 978 (skip_type_access_control): Remove. 979 (finish_class_definition): Don't change type_lookups. 980 9812002-03-11 Nathan Sidwell <nathan@codesourcery.com> 982 983 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>, 984 It is incorrect. 985 * typeck.c (build_static_cast): Compare non-qualified types 986 with pointer to member conversions. 987 9882002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org> 989 990 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of 991 conditional return void. 992 9932002-03-02 Nathan Sidwell <nathan@codesourcery.com> 994 995 PR c++/775 996 * decl.c (lookup_tag): Only reject enum/class mismatch, not 997 class/union mismatch. 998 * parse.y (check_class_key): New function. 999 (structsp): Call it. 1000 10012002-03-01 Michael Matz <matz@suse.de> 1002 1003 * typeck.c (cp_pointer_int_sum): Complete inner type which is 1004 used later by size_in_bytes(). 1005 10062002-03-01 Phil Edwards <pme@gcc.gnu.org> 1007 1008 * cp-tree.h (build_init): Remove prototype. 1009 10102002-03-01 Phil Edwards <pme@gcc.gnu.org> 1011 1012 * cp-tree.h: Require __GNUC__ to be #defined. 1013 (build_init): Add missing prototype. 1014 10152002-02-28 Jason Merrill <jason@redhat.com> 1016 1017 * search.c (lookup_base_r): Don't clear is_non_public just because 1018 we found a friendly scope. 1019 1020 * decl.c (finish_function): Only warn about missing return 1021 statement with -Wreturn-type. 1022 10232002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org> 1024 1025 PR c++/4093 1026 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition 1027 to void. 1028 10292002-02-22 Jakub Jelinek <jakub@redhat.com> 1030 1031 PR other/5746 1032 * semantics.c (finish_switch_cond): Don't call get_unwidened 1033 if error_mark_node. 1034 10352002-02-22 Nathan Sidwell <nathan@codesourcery.com> 1036 1037 PR c++/2645, DR 295 1038 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals, 1039 tf_keep_type_decl. 1040 (make_typename_type): Use tsubst_flags_t. 1041 * decl.c (make_typename_type): Adjust. Return non-artificial 1042 TYPE_DECLs, if required. 1043 (grokdeclarator): Simplify CVR qualification handling. Allow bad 1044 qualifiers on typedef types. 1045 * decl2.c (handle_class_head): Adjust make_typename_type call. 1046 * parse.y (nested_name_specifier): Likewise. 1047 (typename_sub0): Likewise. 1048 (typename_sub1): Likewise. 1049 * pt.c (convert_template_argument): Adjust make_typename_type 1050 return value. 1051 (tsubst): Adjust cp_build_qualified_type_real calls. 1052 (check_cv_quals_for_unify): Cope with alowing bad qualifications 1053 on template type parms. 1054 (instantiate_decl): Recheck substitutions to give warnings on bad 1055 qualifications. 1056 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals. 1057 10582002-02-21 Aldy Hernandez <aldyh@redhat.com> 1059 1060 * cp/decl.c (duplicate_decls): Merge always_inline attribute. 1061 1062 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0 1063 unless DECL_ALWAYS_INLINE. 1064 10652002-02-20 Jakub Jelinek <jakub@redhat.com> 1066 1067 * typeck.c (cp_pointer_int_sum): Renamed from 1068 pointer_int_sum, call pointer_int_sum. 1069 10702002-02-20 Jakub Jelinek <jakub@redhat.com> 1071 1072 * decl.c (duplicate_decls): Return 0 if issued error about 1073 redeclaration. 1074 10752002-02-19 Jason Merrill <jason@redhat.com> 1076 1077 ABI change: Mangle `void (A::*)() const' as 1078 M1AKFvvE, not MK1AFvvE. 1079 * mangle.c (write_function_type): Write cv-quals for member 1080 function type here. 1081 (write_pointer_to_member_type): Not here. 1082 10832002-02-18 Jason Merrill <jason@redhat.com> 1084 1085 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header. 1086 (do_decl_instantiation): Likewise. 1087 10882002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org> 1089 1090 PR c++/5685 1091 * decl.c (duplicate_decls): Make warning unconditional 1092 if duplicate default argument declarations are present. 1093 10942002-02-17 Jakub Jelinek <jakub@redhat.com> 1095 1096 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit 1097 shortening. 1098 10992002-02-15 Nathan Sidwell <nathan@codesourcery.com> 1100 1101 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs, 1102 remove incorrect comment. Move #if 0'd code to common path. Use 1103 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication. 1104 11052002-02-13 Jason Merrill <jason@redhat.com> 1106 1107 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns. 1108 (finish_function): Don't warn if current_function_returns_null. 1109 1110 * typeck2.c (digest_init): Do handle values of vector type. 1111 1112 * typeck2.c (digest_init, process_init_constructor): Treat vectors 1113 like arrays. 1114 11152002-02-11 Jason Merrill <jason@redhat.com> 1116 1117 * parse.y (reserved_declspecs): Don't handle attributes. 1118 (reserved_typespecquals): Handle them here. 1119 * Make-lang.in (parse.c): Adjust expected conflicts. 1120 11212002-02-08 Jakub Jelinek <jakub@redhat.com> 1122 1123 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr 1124 instead of compstmt. 1125 (compstmt_or_stmtexpr): Renamed from compstmt. 1126 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type. 1127 11282002-02-07 Nathan Sidwell <nathan@codesourcery.com> 1129 1130 Rename instantiate_type_flags to tsubst_flags_t & expand use. 1131 * cp-tree.h (instantiate_type_flags): Rename to ... 1132 (tsubst_flags_t): ... here. Rename itf_complain to tf_error, 1133 add tf_warning flag. 1134 (instantiate_type): Adjust prototype. 1135 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class, 1136 do_type_instantiation, cp_build_qualified_type_real): Likewise. 1137 cp_build_qualified_type: Adjust. 1138 * class.c (instantiate_type): Adjust parameter. Rename itf_* to 1139 tf_*. 1140 * call.c (standard_conversion): Rename itf_* to tf_*. 1141 (reference_binding): Likewise. 1142 (convert_like_real): Likewise. 1143 * cvt.c (cp_convert_to_pointer): Likewise. 1144 (convert_to_reference): Likewise. 1145 * decl.c (lookup_namespace_name): Use tf_* flags. 1146 (make_typename_type): Likewise. 1147 (grokdeclarator): Likewise. 1148 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage. 1149 (coerce_template_template_parms, convert_template_argument, 1150 coerce_template_parms, maybe_get_template_decl_from_type_decl, 1151 lookup_template_class, tsubst_friend_function, tsubst_friend_class, 1152 instantiate_class_template, tsubst_template_arg_vector, 1153 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 1154 tsubst_decl, tsubst_arg_types, tsubst_function_type, 1155 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 1156 instantiate_template, fn_type_unification, 1157 resolve_overloaded_unification, verify_class_unification, 1158 unify, get_bindings_real, do_type_instantiation, 1159 regenerate_decl_from_template, instantiate_decl, 1160 tsubst_initializer_list, tsubst_enum, 1161 get_mostly_instantiated_function_type, 1162 invalid_nontype_parm_type_p): Likewise. 1163 * tree.c (cp_build_qualified_type_real): Likewise. 1164 * typeck.c (build_binary_op): Rename itf_* to tf_*. 1165 (build_ptrmemfunc): Likewise. 1166 (convert_for_assignment): Likewise. 1167 11682002-02-07 Nathan Sidwell <nathan@codesourcery.com> 1169 1170 PR c++/109 1171 * decl.c (grokdeclarator): Allow friend declarations from 1172 dependent types. 1173 * decl2.c (handle_class_head): Don't push into template parm contexts. 1174 * pt.c (push_template_decl_real): Template parm contexts are never 1175 being defined. 1176 11772002-02-05 Alexandre Oliva <aoliva@redhat.com> 1178 1179 * class.c: Include target.h. 1180 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY, 1181 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS 1182 bit-field layout. 1183 * Make-lang.in: Adjust deps. 1184 11852002-02-05 Jason Merrill <jason@redhat.com> 1186 1187 * error.c (dump_type): Be more helpful about VECTOR_TYPE. 1188 11892002-02-04 Jakub Jelinek <jakub@redhat.com> 1190 1191 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE. 1192 (finish_switch_cond): Set SWITCH_TYPE. 1193 11942002-02-04 Richard Henderson <rth@redhat.com> 1195 1196 * method.c (use_thunk): Always initialize the block tree. Reindent. 1197 * semantics.c (expand_body): Emit thunks after function, not before. 1198 11992002-02-04 Jason Merrill <jason@redhat.com> 1200 1201 * decl.c (start_function): Call cplus_decl_attributes immediately 1202 after grokdeclarator. 1203 1204 * decl.c (start_function): Combine DECL_RESULT handling code. 1205 12062002-02-03 Jason Merrill <jason@redhat.com> 1207 1208 * xref.c: Remove. 1209 * Make-lang.in (CXX_OBJS): Remove cp/xref.o 1210 (cp/xref.o): Remove dependencies. 1211 * class.c (finish_struct_1, check_methods): Don't call xref fns. 1212 (finish_struct_1): Likewise. 1213 * friend.c (make_friend_class): Likewise. 1214 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise. 1215 * spew.c (read_process_identifier): Likewise. 1216 12172002-02-01 Jason Merrill <jason@redhat.com> 1218 1219 PR c++/4872 1220 * decl.c (finish_function): Warn about a non-void function with 1221 no return statement and no abnormal exit. 1222 * cp-tree.h (struct cp_language_function): Add returns_abnormally. 1223 (current_function_returns_abnormally): New macro. 1224 * call.c (build_call): Set it. 1225 1226 * typeck.c (build_component_ref): Always complain about offsetof 1227 constructs on non-PODs. Only make it an error for members of 1228 virtual bases. 1229 1230 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS. 1231 (dump_function_decl): Always dump parms. 1232 1233 * decl2.c (finish_static_data_member_decl): Complain about a local 1234 class with a static data member. 1235 1236 PR c++/4286 1237 * search.c (lookup_field_1): Don't xref a static data member 1238 just because we looked it up. 1239 12402002-01-31 Jason Merrill <jason@redhat.com> 1241 1242 * Make-lang.in (parse.c): Handle .output file. 1243 1244 PR c++/3395 1245 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES, 1246 not TREE_TYPE. 1247 * semantics.c (finish_class_definition): Adjust. 1248 1249 Allow attributes in parms and casts. 1250 * parse.y (named_parm): Don't strip attrs. 1251 (declmods): Remove 'attributes' production. 1252 (nonempty_cv_qualifiers): Accept attributes. 1253 (ATTRIBUTE): Give precedence. 1254 * decl.c (groktypename): Handle attributes. 1255 (grokparms): Likewise. 1256 12572002-01-29 Jakub Jelinek <jakub@redhat.com> 1258 1259 * decl2.c (cxx_decode_option): Pass 0 as last argument to 1260 cpp_handle_option. 1261 * lang-specs.h: Use cpp_unique_options instead of cpp_options 1262 when used together with cc1_options. 1263 12642002-01-29 Nathan Sidwell <nathan@codesourcery.com> 1265 1266 PR c++/5132 1267 * typeck2.c (digest_init): Make sure non-array core type is 1268 instantiated. 1269 * decl2.c (reparse_absdcl_as_casts): Just store the type in the 1270 constructor, rather than build a new one. 1271 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the 1272 PURPOSE of constructor elts. 1273 12742002-01-23 Zack Weinberg <zack@codesourcery.com> 1275 1276 * Make-lang.in (parse.c): Adjust expected number of 1277 shift-reduce conflicts. 1278 (decl.o): Depend on diagnostic.h. 1279 * decl.c: Include diagnostic.h. 1280 (grokdeclarator): Check for null pointer. 1281 (finish_function): Don't abort when 1282 current_binding_level->parm_flag != 1, if errors have 1283 occurred; throw away the statement tree and extra binding 1284 levels, and continue. 1285 * lex.c (note_list_got_semicolon): Check for null pointer. 1286 * method.c (hack_identifier): Just return error_mark_node if 1287 value is error_mark_node. 1288 * parse.y (primary: TYPEID(type_id)): No need to use 1289 TYPE_MAIN_VARIANT here. 1290 (handler_seq): Accept an empty list of catch clauses and 1291 generate a fake handler block to avoid later crashes. 1292 (ansi_raise_identifier): Accept the error token too. 1293 * semantics.c (begin_class_definition, 1294 finish_class_definition): Check for error_mark_node. 1295 12962002-01-23 Zack Weinberg <zack@codesourcery.com> 1297 1298 * typeck2.c (friendly_abort): Delete definition. 1299 * cp-tree.h (friendly_abort): Don't prototype. 1300 (my_friendly_assert): Use fancy_abort. 1301 13022002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 1303 1304 * cp-tree.h (my_friendly_abort): Remove. 1305 13062002-01-23 Jakub Jelinek <jakub@redhat.com> 1307 1308 * spew.c (pending_inlines, pending_inlines_tail, 1309 processing_these_inlines): Make static. 1310 (mark_pending_inlines): Remove static. 1311 (begin_parsing_inclass_inline): If in function, save pi 1312 for GC to cp_function_chain->unparsed_inlines instead. 1313 (process_next_inline): Likewise. 1314 * cp-tree.h (struct cp_language_function): Add unparsed_inlines. 1315 (mark_pending_inlines): Add prototype. 1316 * decl.c (spew_debug): Remove unused extern. 1317 (mark_lang_function): Call mark_pending_inlines. 1318 13192002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 1320 1321 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, 1322 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, 1323 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: 1324 Change my_fancy_abort() to abort(). 1325 13262002-01-23 Jason Merrill <jason@redhat.com> 1327 1328 PR c++/5453 1329 * class.c (fixed_type_or_null): Fix thinko. 1330 1331 PR c++/3331 1332 * init.c (resolve_offset_ref): Use build_indirect_ref. 1333 1334 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'. 1335 13362002-01-22 Jason Merrill <jason@redhat.com> 1337 1338 * parse.y (function_body): Suppress the block for the outermost 1339 curly braces. 1340 * decl.c (pushdecl): Don't try to skip it. 1341 (begin_function_body): Keep the block we create, not the next one. 1342 * init.c (emit_base_init): Don't mess with keep_next_level. 1343 1344 * class.c (build_base_path): Tweak formatting. 1345 13462002-01-19 Nathan Sidwell <nathan@codesourcery.com> 1347 1348 Fix regression introduced with patch for c++/775 1349 * parse.y (class_head_defn): Check for template specializations 1350 with a different class-key. 1351 13522002-01-17 Jason Merrill <jason@redhat.com> 1353 1354 * decl.c (begin_constructor_body, begin_destructor_body): New fns. 1355 (begin_function_body): Call them and keep_next_level. 1356 * init.c (emit_base_init): Call keep_next_level. 1357 * semantics.c (setup_vtbl_ptr): Lose. 1358 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p. 1359 (vtbls_set_up_p): Lose. 1360 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init. 1361 * method.c (do_build_copy_constructor): Likewise. 1362 (synthesize_method): Call finish_mem_initializers. 1363 * parse.y (nodecls): Likewise. 1364 1365 * error.c (dump_type_suffix): Print the exception specs before 1366 recursing. 1367 (dump_function_decl): Here, too. 1368 1369 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT. 1370 13712002-01-10 Ira Ruben <ira@apple.com> 1372 1373 PR c++/907 1374 * decl.c (start_method): Handle attrlist. 1375 13762002-01-10 Jakub Jelinek <jakub@redhat.com> 1377 1378 * decl2.c (max_tinst_depth): Increase default limit to 500. 1379 13802002-01-10 Graham Stott <grahams@redhat.com> 1381 1382 * spew.c (YYCHAR): Uppercase macro parameter and add 1383 parenthesis. 1384 (YYCODE): Likewise. 1385 (NAME): Uppercase macro parameter. 1386 13872002-01-09 Graham Stott <grahams@redhat.com> 1388 1389 * decl.h (grokdeclarator): Wrap long line. 1390 1391 * semantics.c (FINISH_COND): Uppercase macro paramaters and 1392 add parenthesis. 1393 13942002-01-08 Graham Stott <grahams@redhat.com> 1395 1396 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis. 1397 (PALLOC): Uppercase macro parameter and whitespace. 1398 (SALLOC): Uppercase macro parameter. 1399 (SFREE): Uppercase macros parameter, add parenthese and 1400 whitespace. 1401 (STREQL): Uppercase macro parameter and whitespace. 1402 (STRNEQ): Likewise. 1403 (STRLSS): Likewise. 1404 (STRLEQ): Likewise. 1405 (STRGTR): Likewise. 1406 (STRGEQ): Likewise. 1407 1408 * call.c (convert_like): Add parenthesis and wrap. 1409 (convert_like_with_context): Likewise. 1410 (ICS_RANK): Whitespace. 1411 (NEED_TEMPORARY_P): Remove parenthesis. 1412 1413 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and 1414 whitespace. 1415 (VTT_MARKED_BINFO_P): Likewise. 1416 1417 * decl.c (BINDING_LEVEL): Add parenthesis. 1418 (DEF_OPERATOR): Likewise. 1419 1420 * mangle.c (MANGLE_TRACE): Add parenthesis. 1421 (MANGLE_TRACE_TREE): Likewise. 1422 (write_signed_number): Likewise. 1423 (write_unsigned_number): Likewise. 1424 1425 * pt.c (ccat): Uppercase macro parameter. 1426 (cat): Likewise 1427 1428 * search.c (SET_BINFO_ACCESS): Add parenthesis. 1429 14302002-01-07 Jason Merrill <jason@redhat.com> 1431 1432 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch 1433 to pedwarn. 1434 1435 PR c++/3536 1436 * method.c (make_thunk): If !flag_weak, give the thunk the 1437 function's linkage. 1438 (use_thunk): Here, too. 1439 14402002-01-07 Graham Stott <grahams@redhat.com> 1441 1442 * error.c: Update copyright date. 1443 (print_scope_operator): Add parenthesis. 1444 (print_left_paren): Likewise. 1445 (print_right_paren): Likewise. 1446 (print_left_bracket): Likewise. 1447 (print_right_bracket): Likewise. 1448 (print_template_argument_list_start): Likewise. 1449 (print_template_argument_list_end): Likewise. 1450 (print_non_consecutive_character): Likewise. 1451 (print_tree_identifier): Likewise. 1452 (print_identifier): Likewise. 1453 (NEXT_CODE): Uppercase macro parameter. 1454 (ident_fndecl): Delete unused. 1455 (GLOBAL_THING): Likewise. 1456 14572002-01-06 Graham Stott <grahams@redhat.com> 1458 1459 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis. 1460 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise. 1461 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise. 1462 (RECORD_OR_UNION_TYPE_CHECK): Likewise. 1463 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise. 1464 (C_IS_RESERVED_WORD): Uppercase macro parameter. 1465 (C_RID_YYCODE) Likewise. 1466 (ptrmem_cst): Use rtx. 1467 (LOCAL_BINDING_P): Add whitespace. 1468 (INHERITED_VALUE_BINDING_P): Likewise. 1469 (BINDING_SCOPE): Wrap long line. 1470 (BINDING_HAS_LEVEL_P): Remove parenthesis. 1471 (BINDING_VALUE): Wrap long line. 1472 (BINDING_TYPE): Whitespace. 1473 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis. 1474 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise. 1475 (IDENTIFIER_NAMESPACE_VALUE): Likewise. 1476 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise. 1477 (same_type_p): Uppercase macro parameters. 1478 (same_type_ignoring_top_level_qualifiers_p): Likewise. 1479 (OVL_FUNCTION): Wrap long line. 1480 (OVL_CHAIN): Whitespace. 1481 (OVL_CURRENT): Add parenthesis and whitespace. 1482 (OVL_NEXT): Whitespace. 1483 (OVL_USED): Likewise. 1484 (IDENTIFIER_TYPE_VALUE): Likewise. 1485 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis. 1486 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace. 1487 (LANG_ID_FIELD): Whitespace. 1488 (SET_LANG_ID(NODE,VALUE,NAME): Likewise. 1489 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap. 1490 (SET_IDENTIFIER_LABEL_VALUE): Whitespace. 1491 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap. 1492 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace. 1493 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap. 1494 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace. 1495 (IDENTIFIER_VIRTUAL_P): Likewise. 1496 (IDENTIFIER_OPNAME_P): Likewise. 1497 (IDENTIFIER_TYPENAME_P): Remove parenthesis. 1498 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters. 1499 (C_SET_EXP_ORIGINAL_CODE): Likewise. 1500 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line. 1501 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise. 1502 (IS_AGGR_TYPE): Uppercase macro parameter. 1503 (CLASS_TYPE_P): Likewise. 1504 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis. 1505 (IS_AGGR_TYPE_2): Whitespace. 1506 (TAGGED_TYPE_P): Uppercase macro parameter. 1507 (TYPE_BUILT_IN): Whitespace. 1508 (TYPE_FOR_JAVA): Likewise. 1509 (FUNCTION_ARG_CHAIN): Remove parenthesis. 1510 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis. 1511 (FUNCTION_FIRST_USER_PARAM): Likewise. 1512 (PROMOTES_TO_AGGR_TYPE): Whitespace. 1513 (DERIVED_FROM_P): Add parenthesis and wrap. 1514 (UNIQUELY_DERIVED_FROM_P): Likewise. 1515 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise. 1516 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 1517 (CLASSTYPE_USE_TEMPLATE): Whitespace. 1518 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis. 1519 (TYPE_GETS_DELETE): Add parenthesis. 1520 (TYPE_HAS_CONVERSION): Add parenthesis and wrap. 1521 (TYPE_HAS_ASSIGN_REF): Likewise, 1522 (TYPE_HAS_CONST_ASSIGN_REF): Likewise. 1523 (TYPE_HAS_INIT_REF): Likewise. 1524 (TYPE_HAS_CONST_INIT_REF): Likewise. 1525 (TYPE_BEING_DEFINED): Likewise. 1526 (TYPE_LANG_SPECIFIC): Likewise. 1527 (CLASSTYPE_RTTI): Likewise. 1528 (TYPE_OVERLOADS_CALL_EXPR): Likewise. 1529 (TYPE_OVERLOADS_ARRAY_REF): Likewise. 1530 (TYPE_OVERLOADS_ARROW): Likewise. 1531 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise. 1532 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis. 1533 (CLASSTYPE_METHOD_VEC): Likewise. 1534 (CLASSTYPE_MARKED_N): Likewise. 1535 (CLASSTYPE_MARKED): Likewise. 1536 (CLASSTYPE_MARKED2): Likewise. 1537 (CLASSTYPE_MARKED3): Likewise. 1538 (CLASSTYPE_MARKED4): Likewise. 1539 (CLASSTYPE_MARKED5): Likewise. 1540 (CLASSTYPE_MARKED6): Likewise. 1541 (SET_CLASSTYPE_MARKED): Whitespace. 1542 (CLEAR_CLASSTYPE_MARKED): Likewise. 1543 (SET_CLASSTYPE_MARKED2): Likewise. 1544 (CLEAR_CLASSTYPE_MARKED2): Likewise. 1545 (SET_CLASSTYPE_MARKED3): Likewise. 1546 (CLEAR_CLASSTYPE_MARKED3): Likewise. 1547 (SET_CLASSTYPE_MARKED4): Likewise. 1548 (CLEAR_CLASSTYPE_MARKED4): Likewise. 1549 (SET_CLASSTYPE_MARKED5): Likewise. 1550 (CLEAR_CLASSTYPE_MARKED5): Likewise. 1551 (SET_CLASSTYPE_MARKED6): Likewise. 1552 (CLEAR_CLASSTYPE_MARKED6): Likewise. 1553 (CLASSTYPE_TAGS): Likewise. 1554 (CLASSTYPE_VSIZE): Likewise. 1555 (CLASSTYPE_VBASECLASSES): Likewise. 1556 (CANONICAL_BINFO): Add parenthesis. 1557 (CLASSTYPE_SIZE(NODE): Likewise. 1558 (CLASSTYPE_SIZE_UNIT): Likewise. 1559 (CLASSTYPE_ALIGN(NODE): Likewise. 1560 (CLASSTYPE_USER_ALIGN): Likewise. 1561 (TYPE_JAVA_INTERFACE): Likewise. 1562 (CLASSTYPE_PURE_VIRTUALS): Likewise. 1563 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap. 1564 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise. 1565 (CLASSTYPE_HAS_MUTABLE): Likewise. 1566 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise. 1567 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap. 1568 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise. 1569 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise. 1570 (CLASSTYPE_INTERFACE_ONLY): Likewise. 1571 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 1572 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 1573 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 1574 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 1575 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 1576 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap. 1577 (BINFO_UNSHARED_MARKED): Whitespace. 1578 (BINFO_MARKED): Whitespace and wrap. 1579 (SET_BINFO_MARKED): Likewise. 1580 (CLEAR_BINFO_MARKED): Likewise. 1581 (BINFO_VTABLE_PATH_MARKED): Likewise. 1582 (SET_BINFO_VTABLE_PATH_MARKED): Likewise. 1583 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise. 1584 (BINFO_SUBVTT_INDEX): Remove parenthesis. 1585 (BINFO_VPTR_INDEX): Likewise. 1586 (BINFO_PRIMARY_BASE_OF): Likewise, 1587 (CLASSTYPE_VFIELDS): Whitespace. 1588 (VF_DERIVED_VALUE): Wrap long line. 1589 (NAMESPACE_LEVEL): Whitespace. 1590 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis. 1591 (DEFARG_POINTER): Whitespace. 1592 (DECL_NEEDED_P): Remove parenthesis. 1593 (DECL_LANGUAGE): Whitespace. 1594 (SET_DECL_LANGUAGE): Add parenthesis. 1595 (DECL_CONSTRUCTOR_P): Whitespace and wrap. 1596 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis. 1597 (DECL_IN_AGGR_P): Whitespace. 1598 (DECL_FRIEND_P): Likewise. 1599 (DECL_BEFRIENDING_CLASSES): Likewise. 1600 (DECL_STATIC_FUNCTION_P): Whitespace and wrap. 1601 (DECL_NONCONVERTING_P): Whitespace. 1602 (DECL_PURE_VIRTUAL_P): Likewise. 1603 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise. 1604 (DECL_PENDING_INLINE_INFO): Whitespace. 1605 (DECL_SORTED_FIELDS): Likewise. 1606 (DECL_DEFERRED_FN): Likewise. 1607 (DECL_TEMPLATE_INFO): Likewise. 1608 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap. 1609 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise. 1610 (SET_TYPE_TEMPLATE_INFO): Add parenthesis. 1611 (TMPL_ARGS_LEVEL): Likewise. 1612 (SET_TMPL_ARGS_LEVEL): Likewise. 1613 (INNERMOST_TEMPLATE_PARMS): Whitespace. 1614 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter. 1615 (INTEGRAL_CODE_P(CODE): Add parenthesis. 1616 (CP_INTEGRAL_TYPE_P): Remove parenthesis. 1617 (TYPE_HAS_CONSTRUCTOR): Whitespace. 1618 (TREE_HAS_CONSTRUCTOR): Likewise. 1619 (TYPE_HAS_DESTRUCTOR): Likewise. 1620 (TYPE_HAS_REAL_ASSIGN_REF): Likewise. 1621 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise. 1622 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise. 1623 (TYPE_HAS_COMPLEX_INIT_REF): Likewise. 1624 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise. 1625 (TYPE_PTRMEMFUNC_P): Likewise. 1626 (TYPE_PTRMEMFUNC_FLAG): Likewise. 1627 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise. 1628 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise. 1629 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis. 1630 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 1631 (DECL_ACCESS): Whitespace. 1632 (DECL_GLOBAL_CTOR_P): Remove parenthesis. 1633 (DECL_GLOBAL_DTOR_P): Likewise. 1634 (GLOBAL_INIT_PRIORITY): Likewise. 1635 (DECL_TEMPLATE_PARMS): Likewise. 1636 (DECL_TEMPLATE_RESULT): Likewise. 1637 (DECL_TEMPLATE_INSTANTIATIONS): Likewise. 1638 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise. 1639 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis. 1640 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. 1641 (PRIMARY_TEMPLATE_P): Add parenthesis. 1642 (DECL_USE_TEMPLATE): Whitespace. 1643 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 1644 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 1645 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 1646 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 1647 (CALL_DECLARATOR_PARMS): Remove parenthesis. 1648 (CALL_DECLARATOR_QUALS): Likewise. 1649 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise. 1650 (TEMP_NAME_P): Wrap. 1651 (VFIELD_NAME_P): Likewise. 1652 (B_SET): Uppercase macro parameters and add parenthesis. 1653 (B_CLR): Likewise. 1654 (B_TST): Likewise. 1655 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters. 1656 (LOOKUP_TYPES_ONLY): Uppercase macro parameters. 1657 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters. 1658 (same_or_base_type_p): Likewise. 1659 (cp_deprecated): Likewise. 1660 16612002-01-05 Richard Henderson <rth@redhat.com> 1662 1663 * semantics.c (expand_body): Revert last change. 1664 16652002-01-04 Jason Merrill <jason@redhat.com> 1666 1667 PR c++/4122 1668 * class.c (update_vtable_entry_for_fn): Set delta to zero for a 1669 lost primary. 1670 1671 * class.c (build_vtbl_initializer): Check for a lost primary 1672 before calculating the vtable entry to throw away. 1673 16742002-01-02 Jason Merrill <jason@redhat.com> 1675 1676 * semantics.c (expand_body): Call outlining_inline_function when 1677 emitting an inline function out of line. 1678 16792002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1680 1681 PR c++/5116, c++/764 reversion 1682 * call.c (build_new_op): Revert the instantiations. They are 1683 incorrect. 1684 16852002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1686 1687 PR c++/5089 1688 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void. 1689 16902002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1691 1692 PR c++/3716 1693 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst. 1694 (tsubst, case POINTER_TYPE): Handle pmfs here. 1695 (tsubst, case OFFSET_TYPE): Check it is not an offset to 1696 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE. 1697 16982002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1699 1700 PR c++/35 1701 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too. 1702 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too. 1703 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the 1704 PARM_DECL. 1705 (tsubst_template_parms): Break up loop statements. 1706 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template 1707 parm PARM_DECLs don't get promoted. 1708 17092002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1710 1711 PR c++/5123 1712 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR. 1713 (build_x_function_call): Cope with a COMPONENT_REF containing a 1714 TEMPLATE_ID_EXPR. 1715 17162002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1717 1718 PR c++/5213 1719 * pt.c (convert_template_argument): Be more careful determining 1720 when RECORD_TYPE templates are or are not templates. 1721 17222002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1723 1724 PR c++/775 1725 * cp-tree.h (handle_class_head): Adjust prototype. 1726 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P 1727 parameters. Use for all class heads. 1728 * parse.y (named_class_head_sans_basetype, named_class_head, 1729 named_complex_class_head_sans_basetype, 1730 named_class_head_sans_basetype_defn, 1731 unnamed_class_head): Remove. 1732 (class_head, class_head_apparent_template): Recognize class heads 1733 (class_head_decl, class_head_defn): New reductions. Process class 1734 heads. 1735 (structsp): Adjust class definition and class declaration 1736 reductions. 1737 (maybe_base_class_list): Give diagnostic on empty list. 1738 17392002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1740 1741 PR c++/4379 1742 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a 1743 single non-static member. 1744 (unary_complex_lvalue): If it cannot be a pointer to member, don't 1745 make it so. Check it is not pointer to reference. 1746 17472002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1748 1749 PR c++/5132 1750 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we 1751 are processing a template decl. 1752 17532002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1754 1755 PR c++/5116, c++/764 1756 * call.c (build_new_op): Make sure template class operands are 1757 instantiated. Simplify arglist construction. 1758 17592001-12-29 Nathan Sidwell <nathan@codesourcery.com> 1760 1761 * call.c (build_user_type_conversion_1): Use my_friendly_assert 1762 rather than if ... abort. 1763 * cvt.c (convert_to_reference): Likewise. 1764 * semantics.c (setup_vtbl_ptr): Likewise. 1765 * pt.c (lookup_template_class): Comment typo. 1766 17672001-12-29 Nathan Sidwell <nathan@codesourcery.com> 1768 1769 PR c++/5125 1770 * pt.c (push_template_decl_real): Make sure DECL has 1771 DECL_LANG_SPECIFIC. 1772 17732001-12-29 Nathan Sidwell <nathan@codesourcery.com> 1774 1775 PR c++/335 1776 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer 1777 for non-reference fields. 1778 * typeck.c (require_complete_type): Use resolve_offset_ref). 1779 17802001-12-26 Nathan Sidwell <nathan@codesourcery.com> 1781 1782 PR c++/196 1783 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF. 1784 17852001-12-24 Nathan Sidwell <nathan@codesourcery.com> 1786 1787 PR c++/160 1788 * typeck.c (build_modify_expr): Remove old unreachable code & tidy 1789 up. Don't stabilize_references when initializing a reference. 1790 17912001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1792 1793 * decl2.c (lang_f_options): Const-ify. 1794 17952001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 1796 1797 * config-lang.in (diff_excludes): Remove. 1798 17992001-12-19 Nathan Sidwell <nathan@codesourcery.com> 1800 1801 PR c++/90 1802 * typeck.c (build_function_call_real): Use original function 1803 expression for errors. 1804 18052001-12-18 Jason Merrill <jason@redhat.com> 1806 1807 PR c++/3242 1808 * class.c (add_method): Do compare 'this' quals when trying to match a 1809 used function. Don't defer to another used function. 1810 18112001-12-18 Nathan Sidwell <nathan@codesourcery.com> 1812 1813 * pt.c (instantiate_clone): Remove, fold into ... 1814 (instantiate_template): ... here. Simplify by removing mutual 1815 recursion. 1816 * typeck2.c (build_m_component_ref): Don't cv qualify the function 1817 pointed to by a pointer to function. 1818 * class.c (delete_duplicate_fields_1): Typo. 1819 18202001-12-18 Jason Merrill <jason@redhat.com> 1821 1822 C++ ABI change: destroy value arguments in caller. 1823 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't 1824 create an extra binding level for the parameters. 1825 * decl.c (store_parm_decls): Don't do parameter cleanups. 1826 18272001-12-18 Nathan Sidwell <nathan@codesourcery.com> 1828 1829 * call.c (build_new_method_call): Use '%#V'. 1830 * error.c (cv_to_string): Use V parameter to determine padding. 1831 18322001-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 1833 1834 * call.c, decl2.c, init.c: Use "built-in" and "bit-field" 1835 spellings in messages. 1836 18372001-12-17 Zack Weinberg <zack@codesourcery.com> 1838 1839 * cp-tree.h: Delete #defines for cp_error, cp_warning, 1840 cp_pedwarn, and cp_compiler_error. 1841 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, 1842 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, 1843 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 1844 typeck2.c: Change calls to the above macros to use their 1845 language-independent equivalents: error, warning, pedwarn, and 1846 internal_error respectively. 1847 18482001-12-16 Neil Booth <neil@daikokuya.demon.co.uk> 1849 1850 * decl2.c (finish_file): Remove back_end_hook. 1851 18522001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 1853 1854 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c, 1855 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c, 1856 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors. 1857 18582001-12-15 Joseph S. Myers <jsm28@cam.ac.uk> 1859 1860 * lang-options.h: Use American spelling in messages. 1861 18622001-12-13 Jason Merrill <jason@redhat.com> 1863 1864 * Make-lang.in (parse.h): Separate rule, just depend on parse.c. 1865 1866 Use cleanups to run base and member destructors. 1867 * init.c (push_base_cleanups): New function, split out from... 1868 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. 1869 * decl.c (finish_destructor_body): Move vbase destruction code to 1870 push_base_cleanups. 1871 (begin_function_body, finish_function_body): New fns. 1872 (finish_function): Move [cd]tor handling and call_poplevel to 1873 finish_function_body. 1874 (pushdecl): Skip the new level. 1875 * semantics.c (genrtl_try_block): Don't call end_protect_partials. 1876 (setup_vtbl_ptr): Call push_base_cleanups. 1877 * method.c (synthesize_method): Call {begin,end}_function_body. 1878 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. 1879 * cp-tree.h: Declare new fns. 1880 * parse.y (function_body, .begin_function_body): New nonterminals. 1881 (fndef, pending_inline, function_try_block): Use function_body. 1882 (ctor_initializer_opt, function_try_block): No longer has a value. 1883 (base_init): Remove .set_base_init token. 1884 (.set_base_init, compstmt_or_error): Remove. 1885 * Make-lang.in (parse.c): Expect two fewer s/r conflicts. 1886 1887 * optimize.c (maybe_clone_body): Fix parameter updating. 1888 18892001-12-12 Jason Merrill <jason@redhat.com> 1890 1891 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft. 1892 * semantics.c (genrtl_start_function): Don't pass 1893 parms_have_cleanups or push an extra binding level. 1894 (genrtl_finish_function): Lose cleanup_label cruft. 1895 1896 * cp-tree.h (struct cp_language_function): Remove x_ctor_label. 1897 (ctor_label): Remove. 1898 * semantics.c (finish_return_stmt): Lose ctor_label support. 1899 * decl.c (finish_constructor_body, mark_lang_function): Likewise. 1900 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not 1901 dtor_label. 1902 1903 * call.c (build_new_method_call): Let resolves_to_fixed_type_p 1904 check for [cd]tors. 1905 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix. 1906 1907 * decl.c (finish_function): Check VMS_TARGET, not VMS. 1908 1909 * decl.c (start_cleanup_fn): Remove redundant pushlevel. 1910 (end_cleanup_fn): And poplevel. 1911 1912 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER 1913 if we're in a template. 1914 19152001-12-12 Jakub Jelinek <jakub@redhat.com> 1916 1917 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P, 1918 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, 1919 THIS_NAME_P): Delete. 1920 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, 1921 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash 1922 with internal naming scheme. 1923 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. 1924 19252001-12-12 Nathan Sidwell <nathan@codesourcery.com> 1926 1927 * decl.c (grokdeclarator): Deprecated implicit typename use. 1928 19292001-12-11 Nathan Sidwell <nathan@codesourcery.com> 1930 1931 PR g++/51 1932 * parse.y (frob_specs): Indicate it is a language linkage which 1933 contained the extern. 1934 * decl.c (grokdeclarator): Allow extern language linkage with 1935 other specifiers. 1936 19372001-12-10 Nathan Sidwell <nathan@codesourcery.com> 1938 1939 PR g++/72 1940 * decl.c (add_binding): Don't reject duplicate typedefs involving 1941 template parameters. 1942 19432001-12-10 Neil Booth <neil@daikokuya.demon.co.uk> 1944 1945 * parse.y, semantics.c: Similarly. 1946 19472001-12-09 Nathan Sidwell <nathan@codesourcery.com> 1948 1949 PR g++/87 1950 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p. 1951 (copy_args_p): Rename to ... 1952 (copy_fn_p): ... here. 1953 (grok_special_member_properties): New function. 1954 (grok_op_properties): Lose VIRTUALP parameter. 1955 (copy_assignment_arg_p): Remove. 1956 * call.c (build_over_call): Use copy_fn_p. 1957 * decl.c (grokfndecl): Reformat. Adjust call to 1958 grok_op_properties. 1959 (copy_args_p): Rename to ... 1960 (copy_fn_p): ... here. Reject template functions. Check for pass 1961 by value. 1962 (grok_special_member_properties): Remember special functions. 1963 (grok_ctor_properties): Don't remember them here, just check. 1964 (grok_op_properties): Likewise. 1965 (start_method): Call grok_special_member_properties. 1966 * decl2.c (grokfield): Likewise. 1967 (copy_assignment_arg_p): Remove. 1968 (grok_function_init): Don't remember abstract assignment here. 1969 * pt.c (instantiate_class_template): Call 1970 grok_special_member_properties. 1971 (tsubst_decl): Adjust grok_op_properties call. 1972 19732001-12-08 Aldy Hernandez <aldyh@redhat.com> 1974 1975 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and 1976 RID_TYPES_COMPATIBLE_P. 1977 19782001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 1979 1980 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in 1981 call to build_aggr_init. 1982 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. 1983 19842001-12-08 Neil Booth <neil@daikokuya.demon.co.uk> 1985 1986 * parse.y: Replace uses of the string non-terminal with STRING. 1987 Don't perform string concatentaion here. 1988 (string): Remove non-terminal. 1989 * semantics.c (finish_asm_stmt): Don't concatenate strings here. 1990 19912001-12-05 Jason Merrill <jason@redhat.com> 1992 1993 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. 1994 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. 1995 * tree.c (cp_start_inlining, cp_end_inlining): New fns. 1996 * pt.c (push_tinst_level): No longer static. 1997 * cp-tree.h: Declare them. 1998 1999 * init.c (resolve_offset_ref): Don't check access for the base 2000 conversion to access a FIELD_DECL. 2001 2002 * cp-tree.h (TYPE_REFFN_P): New macro. 2003 * decl.c (bad_specifiers): Check it, too. 2004 2005 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY 2006 on the __*_type_info type if we haven't seen a definition. 2007 20082001-12-05 Neil Booth <neil@daikokuya.demon.co.uk> 2009 2010 * decl.c: Include c-common.h. 2011 (shadow_warning): Move to c-common.c. 2012 2013Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2014 2015 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. 2016 20172001-12-04 Nathan Sidwell <nathan@codesourcery.com> 2018 2019 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm. 2020 20212001-12-04 Nathan Sidwell <nathan@codesourcery.com> 2022 2023 PR g++/164 2024 * init.c (sort_base_init): Allow binfos to be directly specified. 2025 * method.c (do_build_copy_constructor): Explicitly convert to the 2026 base instance. 2027 (do_build_assign_ref): Likewise. 2028 20292001-12-03 Hans-Peter Nilsson <hp@bitrange.com> 2030 2031 * decl.c (xref_basetypes): Don't use C99 construct in tag_code 2032 declaration and initialization. 2033 20342001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 2035 2036 * typeck2.c: Remove leading capital from diagnostic messages, as 2037 per GNU coding standards. 2038 20392001-12-03 Mumit Khan <khan@nanotech.wisc.edu> 2040 2041 PR c++/3394 2042 * decl.c (xref_basetypes): Handle attributes between 2043 'class' and name. 2044 20452001-12-03 Nathan Sidwell <nathan@codesourcery.com> 2046 2047 PR g++/3381 2048 * parse.y (named_complex_class_head_sans_basetype): Add new 2049 reduction. 2050 * Make-lang.in (parse.c): Adjust expected conflict count. 2051 20522001-12-03 Jason Merrill <jason@redhat.com> 2053 2054 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the 2055 immediate binfos for our virtual bases. 2056 20572001-12-02 Neil Booth <neil@daikokuya.demon.co.uk> 2058 2059 * call.c (build_java_interface_fn_ref): Similarly. 2060 * except.c (is_admissible_throw_operand): Similarly. 2061 * init.c (build_java_class_ref): Similarly. 2062 * xref.c (open_xref_file): Similarly. 2063 20642001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 2065 2066 * class.c (finish_struct): Remove trailing periods from messages. 2067 * decl.c (check_tag_decl): Similarly. 2068 * lex.c (cxx_set_yydebug): Similarly. 2069 * typeck2.c (friendly_abort): Similarly. 2070 20712001-11-29 Mark Mitchell <mark@codesourcery.com> 2072 2073 PR c++/3048 2074 * cp-tree.h (ovl_member): Remove. 2075 * decl2.c (merge_functions): Handle extern "C" functions 2076 specially. 2077 * tree.c (ovl_member): Remove. 2078 20792001-11-29 Mark Mitchell <mark@codesourcery.com> 2080 2081 PR c++/4842 2082 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a 2083 FUNCTION_DECL, as input. 2084 (mark_overriders): Remove. 2085 (warn_hidden): Rework for the new ABI. 2086 20872001-11-29 Mark Mitchell <mark@codesourcery.com> 2088 2089 PR c++/3471 2090 * call.c (convert_like_real): Do not build additional temporaries 2091 for rvalues of class type. 2092 20932001-11-28 Nathan Sidwell <nathan@codesourcery.com> 2094 2095 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base. 2096 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise. 2097 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise. 2098 (DERIVED_FROM_P): Likewise. 2099 (enum base_access): Renumber, add ba_quiet bit mask. 2100 (get_binfo): Remove. 2101 (get_base_distance): Remove. 2102 (binfo_value): Remove. 2103 (ACCESSIBLY_DERIVED_FROM_P): Remove. 2104 * call.c (standard_conversion): Use lookup_base. 2105 * class.c (strictly_overrides): Likewise. 2106 (layout_virtual_bases): Likewise. 2107 (warn_about_ambiguous_direct_bases): Likewise. 2108 (is_base_of_enclosing_class): Likewise. 2109 (add_vcall_offset_vtbl_entries_1): Likewise. 2110 * cvt.c (build_up_reference): Adjust comment. 2111 * init.c (build_member_call): Reformat. 2112 * search.c (get_binfo): Remove. 2113 (get_base_distance_recursive): Remove. 2114 (get_base_distance): Remove. 2115 (lookup_base_r): Tweak. 2116 (lookup_base): Add ba_quiet control. Complete the types here. 2117 (covariant_return_p): Use lookup_base. 2118 * tree.c (binfo_value): Remove. 2119 (maybe_dummy_object): Use lookup_base. 2120 * typeck.c (build_static_cast): Use lookup_base. 2121 (get_delta_difference): Likewise. 2122 * typeck2.c (binfo_or_else): Use lookup_base. 2123 (build_scoped_ref): Add back error_mark_check. 2124 (build_m_component_ref): Use lookup_base. 2125 21262001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 2127 2128 * Make-lang.in (c++.generated-manpages): New dummy target. 2129 2130Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2131 2132 * Make-lang.in (cp-lang.o): Depends on c-common.h. 2133 * cp-lang.c (c-common.h): Include. 2134 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. 2135 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p. 2136 * expr.c (init_cplus_expand): Don't set lang_expand_constant. 2137 21382001-11-26 Neil Booth <neil@daikokuya.demon.co.uk> 2139 2140 * decl2.c (c_language): Move to c-common.c. 2141 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c 2142 functions. 2143 (cxx_init): Update. 2144 21452001-11-26 Jason Merrill <jason@redhat.com> 2146 2147 * call.c (joust): Remove COND_EXPR hack. 2148 21492001-11-25 Aldy Hernandez <aldyh@redhat.com> 2150 2151 * search.c (lookup_base_r): Declare bk in variable declaration 2152 space. 2153 21542001-11-25 Nathan Sidwell <nathan@codesourcery.com> 2155 2156 PR g++/3145 2157 * class.c (build_vbase_pointer): Remove. 2158 (build_vbase_path): Remove. 2159 (build_base_path): New function. 2160 * cp-tree.h (base_access, base_kind): New enumerations. 2161 (build_base_path): Declare. 2162 (convert_pointer_to_real): Remove. 2163 (convert_pointer_to): Remove. 2164 (lookup_base): Declare. 2165 (convert_pointer_to_vbase): Remove. 2166 * call.c (build_scoped_method_call): Use lookup_base & 2167 build_base_path instead of convert_pointer_to_real, 2168 get_base_distance & get_binfo. 2169 (build_over_call): Likewise. 2170 * cvt.c (cp_convert_to_pointer): Likewise. 2171 (convert_to_pointer_force): Likewise. 2172 (build_up_reference): Likewise. 2173 (convert_pointer_to_real): Remove. 2174 (convert_pointer_to): Remove. 2175 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path 2176 instead of convert_pointer_to_vbase & build_vbase_path. 2177 (emit_base_init): Use build_base_path instead of 2178 convert_pointer_to_real. 2179 (expand_virtual_init): Lose unrequired conversions. 2180 (resolve_offset_ref): Use lookup_base and build_base_path 2181 instead of convert_pointer_to. 2182 * rtti.c (build_dynamic_cast_1): Use lookup_base & 2183 build_base_path instead of get_base_distance & build_vbase_path. 2184 * search.c (get_vbase_1): Remove. 2185 (get_vbase): Remove. 2186 (convert_pointer_to_vbase): Remove. 2187 (lookup_base_recursive): New function. 2188 (lookup_base): New function. 2189 * typeck.c (require_complete_type): Use lookup_base & 2190 build_base_path instead of convert_pointer_to. 2191 (build_component_ref): Likewise. 2192 (build_x_function_call): Likewise. 2193 (get_member_function_from_ptrfunc): Likewise. 2194 (build_component_addr): Likewise. 2195 * typeck2.c (build_scoped_ref): Likewise. 2196 21972001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 2198 2199 * cp-tree.h (CP_TYPE_QUALS): Removed. 2200 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree. 2201 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and 2202 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN. 2203 * dump.c (cp_dump_tree): Use void* dump_info argument to match 2204 lang-hooks prototype. 2205 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c, 2206 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to 2207 CP_TYPE_QUALS changed to cp_type_quals. 2208 * Make-lang.in: References to c-dump.h changed to tree-dump.h. 2209 (CXX_C_OBJS): Remove c-dump.o. 2210 22112001-11-21 Mark Mitchell <mark@codesourcery.com> 2212 2213 PR c++/3637 2214 * pt.c (lookup_template_class): Ensure that all specializations 2215 are registered on the list corresponding to the most general 2216 template. 2217 22182001-11-20 Mark Mitchell <mark@codesourcery.com> 2219 2220 * call.c (non_reference): Add documentation. 2221 (convert_class_to_reference): Do not strip reference types 2222 from conversion operators. 2223 (maybe_handle_ref_bind): Simplify. 2224 (compare_ics): Correct handling of references. 2225 22262001-11-19 John Wilkinson <johnw@research.att.com> 2227 2228 * dump.c (dump_op): New function. 2229 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use 2230 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs. 2231 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P, 2232 22332001-11-19 Mark Mitchell <mark@codesourcery.com> 2234 2235 PR4629 2236 * semantics.c (finish_sizeof): Make sure that expression created 2237 while processing a template do not have a type. 2238 (finish_alignof): Likewise. 2239 * typeck.c (c_sizeof): Likewise. 2240 (expr_sizeof): Likewise. 2241 22422001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 2243 2244 * lex.c (cxx_finish): Call c_common_finish. 2245 (finish_parse): Remove. 2246 22472001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2248 2249 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE 2250 when displaying error message about missing array bounds. 2251 22522001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2253 2254 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, 2255 CONST_CAST_EXPR. 2256 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. 2257 22582001-11-16 Neil Booth <neil@daikokuya.demon.co.uk> 2259 2260 * cp-tree.h (print_class_statistics): Restore. 2261 22622001-11-15 Jason Merrill <jason@redhat.com> 2263 2264 * method.c (use_thunk): Don't emit debugging information for thunks. 2265 2266 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions. 2267 * decl.c (make_typename_type): Handle getting a class template. 2268 * search.c (lookup_field_r): A class template is good enough for 2269 want_type. 2270 2271 * call.c (convert_like_real): Only use cp_convert for the bad part. 2272 (standard_conversion): Also allow bad int->enum. 2273 * typeck.c (ptr_reasonably_similar): Also allow functions to 2274 interconvert. Pointers to same-size integers are reasonably 2275 similar. 2276 2277 * cvt.c (convert_to_void): If we build a new COND_EXPR, always 2278 give it void type. 2279 22802001-11-15 Nathan Sidwell <nathan@codesourcery.com> 2281 2282 PR g++/3154 2283 * init.c (sort_base_init): Remove unreachable code. 2284 (expand_member_init): Adjust comment to reflect reality. Simplify 2285 and remove unreachable code. 2286 22872001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 2288 2289 * cp-tree.h (init_reswords, cxx_init_decl_processing): New. 2290 (cxx_init): Update prototype. 2291 * decl.c (init_decl_processing): Rename. Move null node init 2292 to its creation time. 2293 * lex.c (cxx_init_options): Update. 2294 (cxx_init): Combine with old init_parse; also call 2295 cxx_init_decl_processing. 2296 22972001-11-14 Richard Sandiford <rsandifo@redhat.com> 2298 2299 * decl.c (check_initializer): Try to complete the type of an 2300 array element before checking whether it's complete. Don't 2301 complain about arrays with complete element types but an 2302 unknown size. 2303 (cp_finish_decl): Build the hierarchical constructor before 2304 calling maybe_deduce_size_from_array_init. 2305 23062001-11-14 Joseph S. Myers <jsm28@cam.ac.uk> 2307 2308 * Make-lang.in: Change all uses of $(manext) to $(man1ext). 2309 23102001-11-13 Nathan Sidwell <nathan@codesourcery.com> 2311 2312 PR g++/4206 2313 * parse.y (already_scoped_stmt): Remove. 2314 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt. 2315 23162001-11-12 H.J. Lu <hjl@gnu.org> 2317 2318 * cvt.c (ocp_convert): Don't warn the address of a weak 2319 function is always `true'. 2320 23212001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 2322 2323 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, 2324 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, 2325 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override. 2326 * cp-tree.h (print_class_statistics): Remove. 2327 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type, 2328 cxx_print_identifier, cxx_set_yydebug): New. 2329 * lex.c (set_yydebug): Rename c_set_yydebug. 2330 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier, 2331 lang_print_xnode): Rename. 2332 * tree.c (print_lang_statistics): Rename. 2333 23342001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2335 2336 * class.c (dump_array): Fix format specifier warning. 2337 23382001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 2339 2340 * cp-lang.c (LANG_HOOKS_NAME): Override. 2341 (struct lang_hooks): Constify. 2342 * lex.c (cxx_init_options): Update. 2343 (lang_identify): Remove. 2344 * parse.y (language_string): Remove. 2345 23462001-11-08 Andreas Franck <afranck@gmx.de> 2347 2348 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME, 2349 DEMANGLER_CROSS_NAME): Handle program_transform_name the way 2350 suggested by autoconf. 2351 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define. 2352 (c++.install-common): Use the transformed target alias names. 2353 23542001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 2355 2356 * Make-lang.in: Update. 2357 * cp-lang.c: Include langhooks-def.h. 2358 23592001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2360 2361 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR. 2362 23632001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2364 2365 * lex.c (copy_lang_type): Add static prototype. 2366 23672001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2368 2369 * pt.c (unify): Handle SCOPE_REF. 2370 23712001-11-01 Jakub Jelinek <jakub@redhat.com> 2372 2373 * tree.c (cp_copy_res_decl_for_inlining): Adjust 2374 DECL_ABSTRACT_ORIGIN for the return variable. 2375 23762001-10-31 Zack Weinberg <zack@codesourcery.com> 2377 2378 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 2379 23802001-10-28 Joseph S. Myers <jsm28@cam.ac.uk> 2381 2382 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c, 2383 semantics.c, spew.c: Fix spelling errors. 2384 23852001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2386 2387 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. 2388 23892001-10-25 Zack Weinberg <zack@codesourcery.com> 2390 2391 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to 2392 pop_everything. 2393 2394Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2395 2396 * cp-lang.c (cxx_get_alias_set): New function. 2397 Point LANG_HOOKS_GET_ALIAS_SET to it. 2398 23992001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2400 2401 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node. 2402 * cp-tree.h (make_unbound_class_template): Prototype new function. 2403 * decl.c (make_unbound_class_template): New function. 2404 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE. 2405 * error.c (dump_type): Likewise. 2406 * mangle.c (write_type): Likewise. 2407 * parse.y (template_parm): Likewise. 2408 (template_argument): Use make_unbound_class_template. 2409 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE. 2410 (tsubst): Likewise. 2411 (tsubst_copy): Likewise. 2412 (unify): Likewise. 2413 * tree.c (walk_tree): Likewise. 2414 * typeck.c (comptypes): Likewise. 2415 24162001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2417 2418 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold 2419 extra calls into fewer ones. 2420 24212001-10-18 Alexandre Oliva <aoliva@redhat.com> 2422 2423 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. 2424 Warn when merging inline with attribute noinline. 2425 (start_decl, start_function): Warn if inline and attribute 2426 noinline appear in the same declaration. 2427 24282001-10-16 H.J. Lu <hjl@gnu.org> 2429 2430 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined 2431 for tree checking disabled. 2432 24332001-10-16 Hans-Peter Nilsson <hp@axis.com> 2434 2435 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL && 2436 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME. 2437 24382001-10-15 Richard Sandiford <rsandifo@redhat.com> 2439 2440 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define. 2441 (unify): Only handle MINUS_EXPR specially if the above flag is set 2442 and the subtracted constant is 1. Clear the flag on recursive calls. 2443 Set it when unifying the maximum value in an INTEGER_TYPE's range. 2444 24452001-10-15 Richard Sandiford <rsandifo@redhat.com> 2446 2447 * decl.c (bad_specifiers): Don't allow exception specifications 2448 on any typedefs. 2449 24502001-10-14 Neil Booth <neil@daikokuya.demon.co.uk> 2451 2452 * cp/lex.c (init_cp_pragma): Similarly. 2453 24542001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2455 2456 * pt.c (lookup_template_class): Build complete template arguments 2457 for BOUND_TEMPLATE_TEMPLATE_PARM. 2458 24592001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2460 2461 * cp-tree.h (TYPE_BINFO): Update comment. 2462 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro. 2463 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info. 2464 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS. 2465 (copy_type): Prototype new function. 2466 * lex.c (copy_lang_decl): Gather tree node statistics. 2467 (copy_lang_type): New function. 2468 (copy_type): Likewise. 2469 (cp_make_lang_type): Create lang_type for 2470 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE 2471 and BOUND_TEMPLATE_TEMPLATE_PARM. 2472 * pt.c (tsubst): Use copy_type instead of copy_node. 2473 * search.c (lookup_field_1): Ignore TYPENAME_TYPE. 2474 24752001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2476 2477 * pt.c (determine_specialization): Ignore functions without 2478 DECL_TEMPLATE_INFO. 2479 24802001-10-12 Nathan Sidwell <nathan@codesourcery.com> 2481 2482 PR g++/4476 2483 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes. 2484 24852001-10-11 Jason Merrill <jason_merrill@redhat.com> 2486 2487 * typeck2.c (store_init_value): Don't re-digest a bracketed 2488 initializer. 2489 2490 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of 2491 ANON_AGGR_TYPE_P. 2492 24932001-10-11 Richard Henderson <rth@redhat.com> 2494 2495 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead 2496 of an asm statement. 2497 (build_vtbl_ref_1): Split out from build_vtbl_ref. 2498 (build_vfn_ref): Use it to handle vtable descriptors before 2499 calling build_vtable_entry_ref. 2500 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. 2501 25022001-10-10 Richard Henderson <rth@redhat.com> 2503 2504 * parse.y (asm_operand): Allow named operands. 2505 * semantics.c (finish_asm_stmt): Tweek for changed location 2506 of the operand constrant. 2507 25082001-10-09 Jason Merrill <jason_merrill@redhat.com> 2509 2510 * call.c (standard_conversion): Add bad conversion between 2511 integers and pointers. 2512 (convert_like_real): Don't use convert_for_initialization for bad 2513 conversions; complain here and use cp_convert. 2514 (build_over_call): Don't handle bad conversions specially. 2515 (perform_implicit_conversion): Allow bad conversions. 2516 (can_convert_arg_bad): New fn. 2517 * cp-tree.h: Declare it. 2518 * typeck.c (convert_for_assignment): Use it. 2519 (ptr_reasonably_similar): Any target type is similar to void. 2520 25212001-10-08 Alexandre Oliva <aoliva@redhat.com> 2522 2523 * Make-lang.in (CXX_OBJS): Added cp-lang.o. 2524 (cp/cp-lang.o): New rule. 2525 * cp-tree.h: Declare hooks. 2526 * tree.c: Make hooks non-static. 2527 (init_tree): Don't initialize hooks here. 2528 * lex.c: Likewise. Move definition of lang_hooks to... 2529 * cp-lang.c: ... new file. 2530 25312001-10-08 Richard Henderson <rth@redhat.com> 2532 2533 * cp-tree.h (struct lang_decl_flags): Remove declared_inline. 2534 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl. 2535 25362001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2537 2538 * class.c (build_vtable_entry_ref): Const-ify. 2539 * decl.c (predefined_identifier, 2540 initialize_predefined_identifiers): Likewise. 2541 * init.c (build_new_1): Likewise. 2542 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): 2543 Likewise. 2544 25452001-10-05 Alexandre Oliva <aoliva@redhat.com> 2546 2547 * optimize.c (struct inline_data): Moved to ../tree-inline.c. 2548 (INSNS_PER_STMT): Likewise. 2549 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. 2550 (copy_body, initialize_inlined_parameters): Likewise. 2551 (declare_return_variable, inlinable_function_p): Likewise. 2552 (expand_call_inline, expand_calls_inline): Likewise. 2553 (optimize_inline_calls, clone_body): Likewise. 2554 * tree.c (walk_tree): Moved to ../tree-inline.c. 2555 (walk_tree_without_duplicates): Likewise. 2556 (copy_tree_r, remap_save_expr): Likewise. 2557 25582001-10-04 Alexandre Oliva <aoliva@redhat.com> 2559 2560 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. 2561 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise. 2562 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl. 2563 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h. 2564 (flag_inline_trees): Moved declaration to ../tree-inline.h. 2565 (walk_tree): Moved declaration to ../tree-inline.h. 2566 (walk_tree_without_duplicates, copy_tree_r): Likewise. 2567 (remap_save_expr): Likewise. 2568 * decl.c: Include tree-inline.h. 2569 (lang_mark_tree): Don't mark inlined_fns. 2570 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c. 2571 * optimize.c: Include tree-inline.h. 2572 (optimize_inline_calls): Move declaration to ../tree.h, as 2573 non-static. 2574 (remap_decl): Use language-independent constructs and hooks. 2575 (remap_block, copy_body_r, declare_return_variable): Likewise. 2576 (inlinable_function_p): Likewise. Don't test for 2577 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is 2578 no longer language-specific. 2579 (optimize_inline_calls): Likewise. Make it non-static. Moved 2580 call of dump_function to... 2581 (optimize_function): Here... 2582 (clone_body): New function, extracted from... 2583 (maybe_clone_body): ... here. Build decl_map locally and pass 2584 it on to clone_body. 2585 * pt.c, semantics.c: Include tree-inline.h. 2586 * tree.c: Likewise. 2587 (cp_walk_subtrees): New language-specific hook for tree inlining. 2588 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls, 2589 cp_is_overload_p, cp_auto_var_in_fn_p, 2590 cp_copy_res_decl_for_inlining): Likewise. 2591 (walk_tree): Move language-specific constructs into... 2592 (cp_walk_subtrees): this new function. 2593 (copy_tree_r): Use language-independent constructs and hooks. 2594 (init_tree): Initialize tree inlining hooks. 2595 (remap_save_expr): Adjust prototype so that the declaration 2596 does not require the definition of splay_tree. 2597 25982001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca> 2599 2600 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used 2601 to build the declaration instead of the declaration itself. 2602 26032001-10-02 Jason Merrill <jason_merrill@redhat.com> 2604 2605 * decl2.c (cxx_decode_option): Add 'else'. 2606 2607 * spew.c (end_input): No longer static. 2608 * cp-tree.h: Declare it. 2609 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. 2610 26112001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 2612 2613 * call.c (build_over_call), typeck.c (build_function_call_real): 2614 Pass type attributes to check_function_format rather than name or 2615 assembler name. Don't require there to be a name or assembler 2616 name to check formats. 2617 26182001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 2619 2620 * decl.c (init_decl_processing): Don't call 2621 init_function_format_info. Initialize lang_attribute_table 2622 earlier. 2623 (builtin_function): Call decl_attributes. 2624 (insert_default_attributes): New. 2625 26262001-10-01 Jason Merrill <jason_merrill@redhat.com> 2627 2628 * decl.c (grokdeclarator): Copy array typedef handling from C 2629 frontend. 2630 2631 * decl.c (grokdeclarator): Copy too-large array handling from C 2632 frontend. 2633 26342001-09-29 Alexandre Oliva <aoliva@redhat.com> 2635 2636 * config-lang.in (target_libs): Added target-gperf, so that we 2637 don't try to build it if C++ is disabled. 2638 26392001-09-23 Zack Weinberg <zack@codesourcery.com> 2640 2641 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o. 2642 (cp/errfn.o): Delete rule. 2643 (cp/error.o): Depend on flags.h. 2644 * errfn.c: Delete file. 2645 * cp-tree.h: Declare warn_deprecated. Remove definitions of 2646 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, 2647 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning, 2648 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and 2649 internal_error respectively. Make cp_deprecated into a macro. 2650 Don't define cp_printer typedef or declare cp_printers. 2651 * error.c: Include flags.h. 2652 Delete: struct tree_formatting_info, print_function_argument_list, 2653 print_declaration, print_expression, print_function_declaration, 2654 print_function_parameter, print_type_id, print_cv_qualifier_seq, 2655 print_type_specifier_seq, print_simple_type_specifier, 2656 print_elaborated_type_specifier, print_rest_of_abstract_declarator, 2657 print_parameter_declaration_clause, print_exception_specification, 2658 print_nested_name_specifier, and definition of cp_printers. 2659 (locate_error): New function. 2660 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and 2661 rewritten in terms of locate_error and diagnostic.c. 2662 (cp_tree_printer): Rename cp_printer; wire up to *_to_string 2663 instead of deleted print_* routines. Handle %C, %L, %O, %Q also. 2664 (init_error): Adjust to match. 2665 2666Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2667 2668 * Make-lang.in (CXX_C_OBJS): Add attribs.o. 2669 26702001-09-21 Richard Henderson <rth@redhat.com> 2671 2672 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. 2673 (build_vtbl_initializer): Likewise. 2674 (build_vfn_ref): New. 2675 * cp-tree.h: Declare it. 2676 * call.c (build_over_call): Use it. 2677 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. 2678 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. 2679 2680Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com> 2681 2682 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. 2683 26842001-09-21 Joseph S. Myers <jsm28@cam.ac.uk> 2685 2686 Table-driven attributes. 2687 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. 2688 * decl2.c (cplus_decl_attributes): Only take one attributes 2689 parameter. 2690 * cp-tree.c (cplus_decl_attributes): Update prototype. 2691 * class.c (finish_struct), decl.c (start_decl, start_function), 2692 decl2.c (grokfield), friend.c (do_friend), parse.y 2693 (parse_bitfield): Update calls to cplus_decl_attributes. 2694 * decl.c (grokdeclarator): Take a pointer to a single ordinary 2695 attribute list. 2696 * decl.h (grokdeclarator): Update prototype. 2697 * decl2.c (grokfield): Take a single ordinary attribute list. 2698 * friend.c (do_friend): Likewise. 2699 * decl.c (shadow_tag, groktypename, start_decl, 2700 start_handler_parms, grokdeclarator, grokparms, start_function, 2701 start_method), decl2.c (grokfield, grokbitfield, grokoptypename), 2702 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c 2703 (process_template_parm, do_decl_instantiation): Pass single 2704 ordinary attribute lists around. 2705 * decl.c (grokdeclarator): Correct handling of nested attributes. 2706 Revert the patch 2707 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 2708 * decl.c (grokdeclarator): Embedded attrs bind to the right, 2709 not the left. 2710 . 2711 * cp-tree.h (cp_valid_lang_attribute): Remove declaration 2712 (cp_attribute_table): Declare. 2713 * decl.c (valid_lang_attribute): Don't define. 2714 (lang_attribute_table): Define. 2715 (init_decl_processing): Initialize lang_attribute_table instead of 2716 valid_lang_attribute. 2717 * tree.c (cp_valid_lang_attribute): Remove. 2718 (handle_java_interface_attribute, handle_com_interface_attribute, 2719 handle_init_priority_attribute): New functions. 2720 (cp_attribute_table): New array. 2721 * decl2.c (import_export_class): Don't use 2722 targetm.valid_type_attribute. 2723 27242001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2725 2726 * Make-lang.in (cp/error.o): Depend on real.h 2727 * error.c: #include "real.h" 2728 27292001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2730 2731 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of 2732 xmalloc/strcpy/strcat. 2733 27342001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2735 2736 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): 2737 Const-ification. 2738 * pt.c (tsubst_decl): Likewise. 2739 27402001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2741 2742 * decl2.c (lang_f_options): Const-ification. 2743 * lex.c (cplus_tree_code_name): Likewise. 2744 * spew.c (yyerror): Likewise. 2745 27462001-09-06 Nathan Sidwell <nathan@codesourcery.com> 2747 2748 PR c++/3986 2749 * class.c (force_canonical_binfo_r): Check & move an indirect 2750 primary base first. 2751 (force_canonical_binfo): Check that it's not already 2752 canonical. 2753 (mark_primary_virtual_base): Remove BINFO parameter. 2754 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here. 2755 27562001-09-06 Nathan Sidwell <nathan@codesourcery.com> 2757 2758 Remove TYPE_NONCOPIED_PARTS. 2759 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto 2760 CLASSTYPE_PURE_VIRTUALS. 2761 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO. 2762 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS. 2763 (layout_class_type): Don't call fixup_inline_methods here ... 2764 (finish_struct_1): ... call it here. 2765 27662001-09-04 Mark Mitchell <mark@codesourcery.com> 2767 2768 * decl.c (duplicate_decls): Remove code deadling with 2769 DECL_SAVED_INSNS. 2770 * decl2.c (finish_file): Likewise. 2771 * pt.c (instantiate_decl): Likewise. 2772 * semantics.c (expand_body): Don't defer local functions if 2773 they wouldn't be deferred for some other reason. Don't 2774 generate RTL for functions that will not be emitted. 2775 (genrtl_start_function): Remove code deadling with 2776 DECL_SAVED_INSNS. 2777 (genrtl_finish_function): Likewise. 2778 27792001-09-04 Nathan Sidwell <nathan@codesourcery.com> 2780 2781 PR c++/4203 2782 * call.c (build_over_call): Do not optimize any empty base 2783 construction. 2784 27852001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2786 2787 * error.c (dump_template_decl): Output template parameters 2788 together with their specifiers. 2789 Output `class' prefix for template template parameter. 2790 (dump_decl): Fix formatting. 2791 27922001-08-30 Kurt Garloff <garloff@suse.de> 2793 2794 * optimize.c (inlinable_function_p): Allow only smaller single 2795 functions. Halve inline limit after reaching recursive limit. 2796 27972001-08-30 Joern Rennecke <amylaar@redhat.com> 2798 Jason Merrill <jason_merrill@redhat.com> 2799 2800 * class.c (build_vtable_entry_ref): Subtract in char*, not 2801 ptrdiff_t. 2802 28032001-08-23 Jason Merrill <jason_merrill@redhat.com> 2804 2805 * tree.c (cp_build_qualified_type_real): Use get_qualified_type. 2806 (build_cplus_array_type): Use cp_build_qualified_type, not 2807 TYPE_MAIN_VARIANT, to get an unqualified version. 2808 2809 * decl2.c (grok_alignof): Lose. 2810 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr. 2811 * typeck.c (c_alignof): Lose. 2812 * semantics.c (finish_sizeof, finish_alignof): New. 2813 * parse.y: Use them. 2814 * cp-tree.h: Declare them. 2815 28162001-08-22 Jason Merrill <jason_merrill@redhat.com> 2817 2818 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement. 2819 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK. 2820 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement. 2821 28222001-08-19 Jakub Jelinek <jakub@redhat.com> 2823 2824 * typeck2.c (add_exception_specifier): Only require complete type if 2825 not in processing template declaration. 2826 28272001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2828 2829 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to 2830 GNU_xref_start_scope and GNU_xref_end_scope. 2831 2832 * tree.c (TYPE_HASH): Moved to ../tree.h. 2833 28342001-08-16 Mark Mitchell <mark@codesourcery.com> 2835 2836 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 2837 on COMPOUND_EXPRs. 2838 28392001-08-14 Richard Henderson <rth@redhat.com> 2840 2841 * class.c, cp-tree.h (build_vfn_ref): Remove. 2842 * call.c, rtti.c: Replace all refernces with build_vtbl_ref. 2843 28442001-08-13 Mark Mitchell <mark@codesourcery.com> 2845 2846 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for 2847 empty class assignment as having side-effects to avoid 2848 spurious warnings. 2849 28502001-08-13 Zack Weinberg <zackw@panix.com> 2851 2852 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. 2853 * except.c: Include libfuncs.h. 2854 28552001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2856 2857 * decl.c (grokdeclarator): Clarify diagnostic message. 2858 28592001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2860 2861 * decl2.c (do_nonmember_using_decl): Replace using directive 2862 with using declaration in the error message. 2863 28642001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2865 2866 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the 2867 criterion to avoid rebuilding expression tree instead of 2868 processing_template_decl. 2869 28702001-08-07 Jason Merrill <jason_merrill@redhat.com> 2871 2872 Support named return value optimization for inlines, too. 2873 * decl.c (finish_function): Nullify returns here. 2874 * semantics.c (genrtl_start_function): Not here. 2875 (cp_expand_stmt): Don't mess with CLEANUP_STMTs. 2876 (nullify_returns_r): No longer static. Just clear RETURN_EXPR. 2877 Also nullify the CLEANUP_STMT for the nrv. 2878 * cp-tree.h: Declare it. 2879 * optimize.c (declare_return_variable): Replace the nrv with the 2880 return variable. 2881 * typeck.c (check_return_expr): Be more flexible on alignment check. 2882 Ignore cv-quals when checking for a matching type. 2883 28842001-08-09 Richard Henderson <rth@redhat.com> 2885 2886 * decl2.c (finish_objects): Use target hooks instead of 2887 assemble_constructor and assemble_destructor. 2888 28892001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 2890 2891 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'. 2892 28932001-08-07 Nathan Sidwell <nathan@codesourcery.com> 2894 2895 PR c++/3820 2896 Stop using TYPE_NONCOPIED_PARTS. 2897 * call.c (build_over_call): Be careful when copy constructing 2898 or assigning to an empty class. 2899 * class.c (check_bases_and_members): It has a 2900 COMPLEX_ASSIGN_REF if it has a vptr. 2901 (layout_class_type): Don't add empty class padding to 2902 TYPE_NONCOPIED_PARTS. 2903 (finish_struct_1): Don't add the VFIELD either. 2904 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_ 2905 initialization. 2906 29072001-08-07 Jason Merrill <jason_merrill@redhat.com> 2908 2909 * tree.c (walk_tree): Walk siblings even if !walk_subtrees. 2910 29112001-08-06 Richard Henderson <rth@redhat.com> 2912 2913 * decl2.c (finish_objects): Pass a symbol_ref and priority to 2914 assemble_{constructor,destructor}. Remove priority handling. 2915 29162001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2917 2918 Don't allow template-id in using-declaration. 2919 * decl2.c (validate_nonmember_using_decl): Handle template-ids. 2920 (do_class_using_decl): Likewise. 2921 29222001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk> 2923 2924 * cp/spew.c (read_token): No need to pop buffers. 2925 29262001-08-02 Stan Shebs <shebs@apple.com> 2927 2928 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used. 2929 (fnaddr_from_vtable_entry): Remove decl. 2930 * method.c (use_thunk): Update comment. 2931 29322001-08-01 Andrew Cagney <ac131313@redhat.com> 2933 2934 * repo.c (get_base_filename): Change return value to const char 2935 pointer. 2936 29372001-08-02 Nathan Sidwell <nathan@codesourcery.com> 2938 2939 Kill -fhonor-std. 2940 * NEWS: Document. 2941 * cp-tree.h (flag_honor_std): Remove. 2942 (CPTI_FAKE_STD): Remove. 2943 (std_node): Remove comment about it being NULL. 2944 (fake_std_node): Remove. 2945 * decl.c (in_fake_std): Remove. 2946 (walk_namespaces_r): Remove fake_std_node check. 2947 (push_namespace): Remove in_fake_std code. 2948 (pop_namespace): Likewise. 2949 (lookup_name_real): Remove fake_std_node check. 2950 (init_decl_processing): Always create std_node. Always add 2951 std:: things there. 2952 (builtin_function): Always put non '_' fns in std. 2953 * decl2.c (flag_honor_std): Remove. 2954 (lang_f_options): Remove honor-std. 2955 (unsupported_options): Add honor-std. 2956 (set_decl_namespace): Remove fake_std_node check. 2957 (validate_nonmember_using_decl): Likewise. 2958 (do_using_directive): Likewise. 2959 (handle_class_head): Likewise. 2960 * dump.c (cp_dump_tree): Likewise. 2961 * except.c (init_exception_processing): Adjust. 2962 * init.c (build_member_call): Remove fake_std_node check. 2963 (build_offset_ref): Likewise. 2964 * lang-options.h: Remove -fhonor-std, -fno-honor-std. 2965 * rtti.c (init_rtti_processing): Adjust. 2966 29672001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 2968 2969 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second 2970 operand while calling cp_tree_equal. 2971 29722001-07-31 Nathan Sidwell <nathan@codesourcery.com> 2973 2974 The 3.0 ABI no longer has vbase pointer fields. 2975 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, 2976 FORMAT_VBASE_NAME): Remove. 2977 * method.c (do_build_copy_constructor): Adjust. 2978 (do_build_assign_ref): Adjust. 2979 * search.c (lookup_field_r): Adjust. 2980 * typeck.c (build_component_ref): Adjust. 2981 2982 The 3.0 ABI always has a vtable pointer at the start of every 2983 polymorphic class. 2984 * rtti.c (build_headof_sub): Remove. 2985 (build_headof): Adjust. 2986 (get_tinfo_decl_dynamic): No need to check flag_rtti 2987 here. Adjust. 2988 (create_real_tinfo_var): Explain why we need a hidden name. 2989 29902001-07-31 Nathan Sidwell <nathan@codesourcery.com> 2991 2992 PR c++/3631 2993 * class.c (update_vtable_entry_for_fn): The fixed adjustment 2994 of a virtual thunk should be from declaring base. 2995 29962001-07-31 Nathan Sidwell <nathan@codesourcery.com> 2997 2998 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into 2999 the shared virtual base, so preserving inheritance graph order. 3000 30012001-07-30 Andreas Jaeger <aj@suse.de> 3002 3003 * decl2.c: Remove unused var global_temp_name_counter. 3004 30052001-07-28 Richard Henderson <rth@redhat.com> 3006 3007 * method.c (pending_inlines): Remove. 3008 30092001-07-27 Nathan Sidwell <nathan@codesourcery.com> 3010 3011 * class.c (mark_primary_virtual_base): Don't adjust base 3012 offsets here. 3013 (dfs_unshared_virtual_bases): Adjust them here. 3014 (mark_primary_bases): Explain why we adjust at the end. 3015 30162001-07-27 Nathan Sidwell <nathan@codesourcery.com> 3017 3018 * class.c (finish_struct_1): When copying the primary base's 3019 VFIELD, make sure we find it is at offset zero. 3020 30212001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3022 3023 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and 3024 tsubst_expr for default template arguments. 3025 30262001-07-26 Nathan Sidwell <nathan@codesourcery.com> 3027 3028 PR c++/3621 3029 * spew.c (yylex): Only copy the token's lineno, if it is 3030 non-zero. 3031 30322001-07-26 Nathan Sidwell <nathan@codesourcery.com> 3033 3034 PR c++/3624 3035 * call.c (resolve_args): Simplify, call 3036 convert_from_reference. 3037 (build_new_op): Resolve and convert from reference ARG1 3038 earlier. Adjust ARG2 & ARG3 resolve and conversion. 3039 30402001-07-26 Nathan Sidwell <nathan@codesourcery.com> 3041 3042 * decl.c (last_function_parm_tags): Remove. 3043 (current_function_parm_tags): Remove. 3044 (init_decl_processing): Adjust. 3045 (start_function): Adjust. 3046 (store_parm_decls): Adjust. 3047 3048 PR c++/3152 3049 * decl.c (grokdeclarator): Detect when a function typedef is 3050 declaring a function, and create last_function_parms correctly. 3051 30522001-07-25 Jason Merrill <jason_merrill@redhat.com> 3053 3054 * call.c (joust): Only prefer a non-builtin candidate to a builtin 3055 one if they have the same signature. 3056 3057 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on 3058 it rather than toplevel_bindings_p. Give it a mangled name if static. 3059 (convert_to_reference): Adjust. 3060 * decl2.c (get_temp_name): Lose. 3061 * mangle.c (mangle_ref_init_variable): New fn. 3062 (mangle_guard_variable): Strip the ref-init header. 3063 * cp-tree.h: Adjust. 3064 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the 3065 initializer. 3066 (grok_reference_init): Always use DECL_INITIAL. 3067 30682001-07-25 Nathan Sidwell <nathan@codesourcery.com> 3069 3070 PR c++/3416 3071 * call.c (build_conditional_expr): Recheck args after 3072 conversions. 3073 * cp-tree.h (build_conditional_expr): Move to correct file. 3074 * typeck.c (decay_conversion): Diagnose any unknown types 3075 reaching here. 3076 (build_binary_op): Don't do initial decay or default 3077 conversions on overloaded functions. 3078 (build_static_cast): Don't do a decay conversion here. 3079 30802001-07-25 Nathan Sidwell <nathan@codesourcery.com> 3081 3082 PR c++/3543 3083 * typeck.c (condition_conversion): Resolve an OFFSET_REF. 3084 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here. 3085 30862001-07-25 Nathan Sidwell <nathan@codesourcery.com> 3087 3088 * class.c (build_vtbl_or_vbase_field): Remove, move into ... 3089 (create_vtbl_ptr): ... here. 3090 30912001-07-25 Nathan Sidwell <nathan@codesourcery.com> 3092 3093 * class.c (build_vbase_offset_vbtl_entries): Look for 3094 non-primary base of which we are a sub vtable. 3095 30962001-07-24 Phil Edwards <pme@sources.redhat.com> 3097 3098 * semantics.c (finish_this_expr): Remove unused code. 3099 31002001-07-24 Nathan Sidwell <nathan@codesourcery.com> 3101 3102 Simplify rtti, now we've only one ABI. 3103 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID, 3104 CPTI_TINFO_VAR_ID. 3105 (tinfo_decl_id, tinfo_var_id): Remove. 3106 (get_typeid_1): Remove. 3107 * rtti.c 3108 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id. 3109 (typeid_ok_p): New function. 3110 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl. 3111 (get_tinfo_decl): Remove old abi documentation. 3112 (tinfo_from_decl): Remove. 3113 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1. 3114 (get_typeid_1): Remove. 3115 (get_base_offset): Remove. 3116 (synthesize_tinfo_var): Absorb get_base_offset. 3117 (create_real_tinfo_var): Don't use tinfo_decl_id. 3118 31192001-07-23 Graham Stott <grahams@redhat.com> 3120 3121 * cp/class.c (type_requires_array_cookie): Fix use of uninitialised 3122 variable has_two_argument_delete_p. 3123 31242001-07-21 Nathan Sidwell <nathan@codesourcery.com> 3125 3126 Remove flag_vtable_thunk. It is always on for the 3.0 ABI. 3127 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. 3128 (CPTI_INDEX_IDENTIFIER): Remove. 3129 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. 3130 (delta2_identifier): Remove. 3131 (index_identifier): Remove. 3132 (pfn_or_delta2_identifier): Remove. 3133 (flag_vtable_thunks): Remove. 3134 (VTABLE_DELTA2_NAME): Remove. 3135 (VTABLE_INDEX_NAME): Remove. 3136 (FNADDR_FROM_VTABLE_ENTRY): Adjust. 3137 (vfunc_ptr_type_node): Adjust. 3138 (VTABLE_NAME_PREFIX): Adjust. 3139 (build_vfn_ref): Lose first parameter. 3140 (fixup_all_virtual_upcast_offsets): Remove. 3141 * decl.c (initialize_predefined_identifiers): Remove 3142 delta2_identifier, index_identifier, pfn_or_delta2_identifier. 3143 (init_decl_processing): Remove no-vtable-thunk code. 3144 * decl2.c (flag_vtable_thunks): Remove. 3145 (mark_vtable_entries): Remove no-vtable-thunk code. 3146 * error.c (dump_decl): Remove no-vtable-thunk code. 3147 (dump_expr): Adjust ptr to member function code. 3148 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk 3149 code. 3150 * rtti.c (build_headof): Remove no-vtable-thunk code. 3151 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. 3152 * search.c (get_base_distance): Remove expand_upcast_fixups case. 3153 (virtual_context) Remove. 3154 (expand_upcast_fixups): Remove. 3155 (fixup_virtual_upcast_offsets): Remove. 3156 (fixup_all_virtual_upcast_offsets): Remove. 3157 * typeck.c (get_member_function_from_ptrfunc): Remove 3158 no-vtable-thunk code. 3159 * call.c (build_over_call): Adjust call to build_vfn_ref. 3160 * class.c (build_vfn_ref): Lose first parameter. Remove 3161 no-vtable-thunk code. 3162 (build_rtti_vtbl_entries): Remove no-vtable-thunk code. 3163 (build_vtable_entry): Remove no-vtable-thunk code. 3164 31652001-07-20 Nathan Sidwell <nathan@codesourcery.com> 3166 3167 Remove old-abi remnants. Remove comments about old abi 3168 behaviour. Remove references to 'new-abi' in comments. 3169 * cp-tree.h: Adjust comments. 3170 (vbase_offsets_in_vtable_p): Delete. 3171 (vcall_offsets_in_vtable_p): Delete. 3172 (vptrs_present_everywhere_p): Delete. 3173 (all_overridden_vfuns_in_vtables_p): Delete. 3174 (merge_primary_and_secondary_vtables_p): Delete. 3175 (TYPE_CONTAINS_VPTR_P): Adjust. 3176 (VTT_NAME_PREFIX): Remove. 3177 (CTOR_VTBL_NAME_PREFIX): Remove. 3178 (init_vbase_pointers): Remove. 3179 * class.c: Adjust coments. 3180 (build_vbase_pointer_fields): Delete. 3181 (build_vbase_pointer): Remove old-abi code. 3182 (build_secondary_vtable): Likewise. 3183 (modify_all_vtables): Likewise. 3184 (create_vtable_ptr): Likewise. 3185 (layout_class_type): Likewise. 3186 (finish_struct_1): Likewise. 3187 (finish_vtbls): Likewise. 3188 (dfs_finish_vtbls): Delete. 3189 (build_vbase_offset_vtbl_entries): Remove old-abi code. 3190 * cvt.c: Adjust comments. 3191 * decl.c: Adjust comments. 3192 * decl2.c: Adjust comments. 3193 * init.c: Adjust comments. 3194 (construct_virtual_bases): Remove old-abi code. 3195 * lang-specs.h: Remove -fno-new-abi. 3196 * mangle.c: Adjust comments. 3197 * rtti.c: Adjust comments. 3198 (get_base_offset): Remove old-abi-code. 3199 * search.c: Adjust comments. 3200 (dfs_init_vbase_pointers): Remove. 3201 (dfs_vtable_path_unmark): Remove. 3202 (init_vbase_pointers): Remove. 3203 * semantics.c: Adjust comments. 3204 (emit_associated_thunks): Remove old-abi code. 3205 * typeck.c: Adjust comments. 3206 32072001-07-20 Daniel Berlin <dan@cgsoftware.com> 3208 3209 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not 3210 params.h. 3211 32122001-07-19 Mark Mitchell <mark@codesourcery.com> 3213 3214 * class.c (finish_struct_anon): Forbid nested classes. 3215 32162001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 3217 3218 * decl2.c: Don't include dwarfout.h and dwarf2out.h. 3219 * optimize.c: Include debug.h. 3220 (maybe_clone_body): Use debug hook. 3221 * semantics.c: Include debug.h. 3222 (expand_body): Use debug hook. 3223 32242001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 3225 3226 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. 3227 32282001-07-18 Mark Mitchell <mark@codesourcery.com> 3229 3230 * class.c (type_requires_array_cookie): New function. 3231 (check_methods): Don't try to figure out whether the type needs a 3232 cookie here. 3233 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here. 3234 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove. 3235 (TYPE_VEC_NEW_USES_COOKIE): Reimplement. 3236 * pt.c (instantiate_class_template): Don't set 3237 TYPE_VEC_DELETE_TAKES_SIZE. 3238 * NEWS: Document ABI changes from GCC 3.0. 3239 32402001-07-18 Xavier Delacour <xavier@fmaudio.net>, 3241 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 3242 3243 * NEWS (Changes in GCC 3.0): Fix typo. 3244 32452001-07-13 Joseph S. Myers <jsm28@cam.ac.uk> 3246 3247 * decl2.c (cplus_decl_attributes): Take a pointer to the node to 3248 which attributes are to be attached, and a flags argument. Update 3249 call to decl_attributes. 3250 (grokfield): Update call to decl_attributes. 3251 * class.c (finish_struct): Update call to cplus_decl_attributes. 3252 * cp-tree.h (cplus_decl_attributes): Update prototype. 3253 * decl.c (start_decl, grokdeclarator, start_function): Update 3254 calls to decl_attributes and cplus_decl_attributes. 3255 * friend.c (do_friend): Update call to cplus_decl_attributes. 3256 * parse.y (parse_bitfield): Update call to cplus_decl_attributes. 3257 32582001-07-12 Mark Mitchell <mark@codesourcery.com> 3259 3260 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER 3261 for `register' variables with an asm-specification. 3262 32632001-07-11 Mark Mitchell <mark@codesourcery.com> 3264 3265 * semantics.c (finish_asm_stmt): Mark the output operands 3266 to an asm addressable, if necessary. 3267 32682001-07-11 Ben Elliston <bje@redhat.com> 3269 3270 * Revert this change -- there is a subtle bug. 3271 3272 PR c++/80 3273 * decl.c (finish_enum): New "attributes" argument; pass it to 3274 cplus_decl_attributes. Use a narrower type if the enum is packed. 3275 * cp-tree.h (finish_enum): Adjust prototype. 3276 * parse.y (enum_head): New non-terminal. 3277 (structsp): Use it. Enums now may be preceded or followed by 3278 optional attributes -- pass their chained tree to finish_enum(). 3279 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument. 3280 32812001-07-10 Mark Mitchell <mark@codesourcery.com> 3282 3283 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope 3284 variables. 3285 32862001-07-10 Jason Merrill <jason_merrill@redhat.com> 3287 3288 * semantics.c (cp_expand_stmt): Fix for null 3289 current_function_return_value. 3290 32912001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> 3292 3293 * call.c (build_op_delete_call): Initialize fn. 3294 (convert_like_real): Delete conditional. 3295 (joust): Initialize *w and *l. 3296 * class.c: Add prototype for binfo_ctor_vtable. 3297 (get_primary_binfo): Initialize result. 3298 * init.c (build_java_class_ref): Initialize name. 3299 33002001-07-09 Erik Rozendaal <dlr@acm.org> 3301 3302 * typeck.c (unary_complex_lvalue): Do not duplicate the 3303 argument to modify, pre-, or post-increment when used as an 3304 lvalue and when the argument has side-effects. 3305 33062001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 3307 3308 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 3309 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call 3310 cplus_decl_attributes even if attrs is NULL. 3311 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 3312 33132001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 3314 3315 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update 3316 calls to decl_attributes. 3317 33182001-07-06 Ira Ruben <ira@apple.com> 3319 3320 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should 3321 be DECL_TEMPLATE_RESULT. 3322 33232001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3324 3325 * cp-tree.h (copy_template_template_parm): Rename to ... 3326 (bind_template_template_parm): ... here. 3327 * tree.c (copy_template_template_parm): Rename to ... 3328 (bind_template_template_parm): ... here. Remove the case when 3329 NEWARGS is NULL_TREE. 3330 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and 3331 BOUND_TEMPLATE_TEMPLATE_PARM. 3332 * pt.c (lookup_template_class): Adjust. 3333 33342001-07-05 Jason Merrill <jason_merrill@redhat.com> 3335 3336 * cvt.c (convert_lvalue): New fn. 3337 * cp-tree.h: Declare it. 3338 * method.c (do_build_assign_ref): Use it. 3339 (do_build_copy_constructor): Convert parm to base types 3340 before calling base constructors. 3341 3342 * typeck.c (check_return_expr): Check DECL_ALIGN instead of 3343 DECL_USER_ALIGN. Check flag_elide_constructors instead of 3344 optimize. 3345 * semantics.c (cp_expand_stmt): Don't destroy the named return value. 3346 33472001-07-02 Nathan Sidwell <nathan@codesourcery.com> 3348 3349 * optimize.c (optimize_inline_calls): New function, broken out 3350 of ... 3351 (optimize_function): ... here. Call it. Don't inline if it is 3352 a thunk. 3353 (dump_function): Print name of dump flag causing this dump. 3354 * semantics.c (expand_body): Move thunk inline check to 3355 optimize_function. 3356 33572001-06-29 Joseph S. Myers <jsm28@cam.ac.uk> 3358 3359 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. 3360 (comptypes): Use target.comp_type_attributes. 3361 33622001-06-29 Nathan Sidwell <nathan@codesourcery.com> 3363 3364 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration. 3365 33662001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 3367 3368 * error.c (lang_print_error_function): Add a `diagnostic_context *' 3369 parameter. Tweak. 3370 33712001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk> 3372 3373 * decl2.c (import_export_class): Update. 3374 33752001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 3376 3377 * error.c (init_error): Adjust settings. 3378 33792001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 3380 3381 * error.c (init_error): Adjust settings. 3382 33832001-06-19 Richard Sandiford <rsandifo@redhat.com> 3384 3385 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to 3386 return pointers to data members by reference rather than by value. 3387 33882001-06-18 Jason Merrill <jason_merrill@redhat.com> 3389 3390 Implement the Named Return Value optimization. 3391 * cp-tree.h (struct cp_language_function): Add x_return_value. 3392 (current_function_return_value): Now a macro. 3393 * decl.c: Don't define it. 3394 (define_label, finish_case_label): Don't clear it. 3395 (init_decl_processing): Don't register it with GC. 3396 * semantics.c (genrtl_finish_function): Don't check it for 3397 no_return_label. Copy the RTL from the return value to 3398 current_function_return_value and walk, calling... 3399 (nullify_returns_r): ...this new fn. 3400 * typeck.c (check_return_expr): Set current_function_return_value. 3401 34022001-06-15 Jason Merrill <jason_merrill@redhat.com> 3403 3404 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're 3405 sharing a ctor vtable with. Merge code for cases 1 and 2. 3406 (binfo_ctor_vtable): New fn. 3407 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it. 3408 34092001-06-14 Jason Merrill <jason_merrill@redhat.com> 3410 3411 * class.c (dfs_find_final_overrider): Fix logic. 3412 3413 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use 3414 virtual thunk instead of non-virtual. 3415 (get_matching_virtual): Uncomment. 3416 3417 * pt.c (unify): Don't recurse between the POINTER_TYPE and the 3418 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on 3419 PARM, not ARG. 3420 34212001-06-14 Nathan Sidwell <nathan@codesourcery.com> 3422 3423 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure 3424 we've not emerged from the hierarchy of RTTI_BINFO on reaching 3425 a non-virtual base. 3426 34272001-06-13 Mark Mitchell <mark@codesourcery.com> 3428 3429 * NEWS: Update release number. 3430 34312001-06-12 Nathan Sidwell <nathan@codesourcery.com> 3432 3433 PR c++/3130, c++/3131, c++/3132 3434 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define. 3435 * class.c (force_canonical_binfo_r): Move 3436 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move 3437 virtual bases unless they're primary and what they're primary 3438 too has been moved. 3439 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope 3440 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and 3441 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most 3442 derived binfo. 3443 (mark_primary_bases): Use BINFO_UNSHARED_MARKED. 3444 (layout_nonempty_base_or_field): Add most derived type 3445 parameter. Adjust. 3446 (layout_empty_base): Likewise. 3447 (build_base_field): Likewise. 3448 (build_base_fields): Likewise. 3449 (propagate_binfo_offsets): Add most derived type 3450 parameter. Skip non canonical virtual bases too. 3451 (dfs_set_offset_for_unshared_vbases): Don't skip primary 3452 bases. Do skip canonical bases. 3453 (layout_virtual_bases): Adjust. 3454 (layout_class_type): Adjust. 3455 (dfs_get_primary_binfo): Build list of virtual primary base 3456 candidates. 3457 (get_primary_binfo): Check that the shared virtual primary 3458 base candidate was found first. 3459 (accumulate_vtbl_inits): Don't do anything for non-vptr 3460 containing binfos. For case 1 primary virtual bases, keep 3461 checking that we've not emerged from the hierarchy of RTTI_BINFO. 3462 34632001-06-12 Nathan Sidwell <nathan@codesourcery.com> 3464 3465 PR c++/3089 3466 * class.c (dfs_accumulate_vtbl_inits): Always walk down the 3467 hierarchy looking for primary bases for a ctor 3468 vtable. Recursively call oneself, if we meet our primary via 3469 this route and haven't met it yet via inheritance graph order. 3470 34712001-06-11 Mark Mitchell <mark@codesourcery.com> 3472 3473 * lang-options.h: Emit documentation for -fno-honor-std, not 3474 -fhonor-std. 3475 34762001-06-10 Alexandre Oliva <aoliva@redhat.com> 3477 3478 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: 3479 Don't clobber delta. 3480 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn. 3481 34822001-06-10 Mark Mitchell <mark@codesourcery.com> 3483 Gabriel Dos Reis <gdr@codesourcery.com> 3484 3485 * Make-lang.in (cp/call.o): Depend on diagnostic.h 3486 (cp/typeck.o): Depend on diagnostic.h 3487 (cp/typeck2.o): Depend on diagnostic.h 3488 (cp/repo.o): Depend on dignostic.h 3489 * typeck.c: #include diagnostic.h 3490 (convert_for_initialization): Remove extern declaration for 3491 warningcount and errorcount. 3492 3493 * call.c: #include diagnostic.h 3494 (convert_like_real): Remove extern declaration for warnincount and 3495 errorcount. 3496 3497 * repo.c: #include diagnostic.h 3498 * typeck2.c: #include diagnostic.h 3499 35002001-06-08 Nathan Sidwell <nathan@codesourcery.com> 3501 3502 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko 3503 in previous change. 3504 35052001-06-08 Nathan Sidwell <nathan@codesourcery.com> 3506 3507 PR c++/2929 3508 * friend.c (do_friend): Use push_decl_namespace for classes at 3509 namespace scope. 3510 35112001-06-08 Nathan Sidwell <nathan@codesourcery.com> 3512 Jason Merrill <jason_merrill@redhat.com> 3513 3514 PR c++/3061 3515 * class.c (build_secondary_vtable): Use assert, rather than an error 3516 message. 3517 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL. 3518 (dfs_accumulate_vtbl_inits): A lost primary virtual base may 3519 be between ORIG_BINFO and RTTI_BINFO, but neither of them. 3520 Don't set BINFO_VTABLE for a primary virtual base. 3521 35222001-06-07 Mark Mitchell <mark@codesourcery.com> 3523 3524 * decl.c (duplicate_decls): Update source position information 3525 when a template function is defined. 3526 35272001-06-07 Phil Edwards <pme@sources.redhat.com> 3528 3529 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h. 3530 35312001-06-07 Nathan Sidwell <nathan@codesourcery.com> 3532 3533 PR c++/2914 3534 * decl.c (pushtag): Don't push into a complete type's scope. 3535 35362001-06-06 Jason Merrill <jason_merrill@redhat.com> 3537 3538 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose. 3539 (struct lang_decl_flags): Lose generate_with_vtable_p. 3540 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose. 3541 * class.c (copy_virtuals): Adjust. 3542 * decl2.c (mark_vtable_entries): Adjust. 3543 * method.c (make_thunk, build_vtable_entry): Adjust. 3544 * class.c (update_vtable_entry_for_fn): Only look as far as the 3545 first defining class. 3546 (build_vtbl_initializer): Put nothing in the slot for a function only 3547 defined in a lost primary virtual base. 3548 (add_vcall_offset_vtbl_entries_1): Use the same code for 3549 the lost primary case and the normal case. 3550 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base. 3551 (get_vfield_offset, get_derived_offset): Lose. 3552 (dfs_find_final_overrider): Use look_for_overrides_here. 3553 (get_matching_virtual): New fn. 3554 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P, 3555 not BV_VCALL_INDEX. 3556 * search.c (look_for_overrides_here): Split out from... 3557 (look_for_overrides_r): Here. 3558 3559 * class.c (find_final_overrider): Return error_mark_node on error. 3560 3561 * decl2.c (key_method): #if 0 accidental change. 3562 35632001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> 3564 3565 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P. 3566 (build_over_call): Likewise. 3567 * decl.c (grokparms): Likewise. 3568 * pt.c (tsubst_decl): Likewise. 3569 * typeck.c (convert_arguments): Likewise. 3570 35712001-06-05 Mark Mitchell <mark@codesourcery.com> 3572 3573 * semantics.c (begin_class_definition): Robustify. 3574 3575 * pt.c (instantiate_decl): Tell the repository code about the 3576 clones, not the cloned functions. 3577 * repo.c (repo_template_used): Explicitly instantiate the cloned 3578 function, not the clones. 3579 35802001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3581 3582 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and 3583 ICS_BAD_FLAG on created conversion. 3584 (compare_ics): Break out rank. 3585 35862001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3587 3588 * decl.c (xref_tag): Remove extraneous %s on dependent name 3589 lookup warning. 3590 35912001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3592 3593 * class.c (layout_vtable_decl): Fix off by one error on 3594 build_index_type. 3595 (build_vtt): Likewise. 3596 (build_ctor_vtbl_group): Likewise. 3597 35982001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3599 3600 * class.c (maybe_indent_hierarchy): New function. 3601 (dump_class_hierarchy_r): Add flags. Dump extra binfo 3602 information, if enabled. Use maybe_indent_hierarchy. Adjust 3603 output format. 3604 (dump_class_hierarchy): Adjust prototype. Adjust output format. 3605 (dump_array, dump_vtable, dump_vtt): New functions. 3606 (finish_struct_1): Adjust hierarchy dumping. 3607 (initialize_vtable): Call dump_vtable. 3608 (build_vtt): Call dump_vtt. 3609 (build_ctor_vtbl_group): Call dump_vtable. 3610 * decl2.c (flag_dump_class_layout): Remove. 3611 (cxx_decode_option): Remove dump translation unit 3612 and dump class hierarchy check. Call dump_switch_p. 3613 (finish_file): Adjust dumping. 3614 (dump.c): Only dump base classes if not TDF_SLIM. 3615 Only dump namespace members if not TDF_SLIM. 3616 * optimize.c (dump_function): New function. 3617 (optimize_function): Call dump_function. 3618 * semantics.c (expand_body): Use dump_enabled_p. 3619 36202001-06-01 Nathan Sidwell <nathan@codesourcery.com> 3621 3622 PR g++/2936 3623 Part missed from first commit 3624 * decl2.c (finish_anon_union): Copy context. 3625 36262001-05-30 Nathan Sidwell <nathan@codesourcery.com> 3627 3628 PR g++/2936 3629 * optimize.c (remap_decl): Remap anonymous aggregate members too. 3630 36312001-05-26 Nathan Sidwell <nathan@codesourcery.com> 3632 3633 PR g++/2823 3634 * semantics.c (expand_body): Don't optimize thunks. 3635 36362001-05-25 Sam TH <sam@uchicago.edu> 3637 3638 * cp-tree.h lex.h: Fix header include guards. 3639 36402001-05-25 Mark Mitchell <mark@codesourcery.com> 3641 3642 * decl.c (init_decl_processing): Tweak. 3643 36442001-05-24 Mark Mitchell <mark@codesourcery.com> 3645 3646 * decl.c (duplicate_decls): Tidy. 3647 (init_decl_processing): Always set flag_no_builtin. 3648 36492001-05-24 Nathan Sidwell <nathan@codesourcery.com> 3650 3651 PR c++/2184 3652 * decl2.c (do_local_using_decl): Push the decls, even in a 3653 template. 3654 36552001-05-22 Mark Mitchell <mark@codesourcery.com> 3656 3657 * optimize.c (initialize_inlined_parameters): Don't set 3658 TREE_READONLY for a VAR_DECL taking the place of an inlined 3659 PARM_DECL. 3660 36612001-05-22 Jason Merrill <jason_merrill@redhat.com> 3662 3663 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support. 3664 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface 3665 attribute. 3666 36672001-05-22 Joseph S. Myers <jsm28@cam.ac.uk> 3668 3669 * parse.y: Refer to compound literals as such, not as 3670 constructor-expressions. 3671 36722001-05-21 Mark Mitchell <mark@codesourcery.com> 3673 3674 * call.c (build_op_delete_call): Ignore exception-specifications 3675 when looking for matching delete operators. 3676 * init.c (build_new_1): Compute whether or not the allocation 3677 function used is a placement allocation function or not, and 3678 communicate this information to build_op_delete_call. 3679 36802001-05-21 Jason Merrill <jason_merrill@redhat.com> 3681 3682 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi. 3683 (build_vtbl_ref): Adjust. 3684 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address. 3685 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks. 3686 Re-add vtable-gc. 3687 (unsupported_options): Correspondingly. 3688 3689 * decl2.c (maybe_make_one_only): Check flag_weak, not 3690 supports_one_only(). 3691 3692 * cp-tree.def (START_CATCH_STMT): Lose. 3693 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS. 3694 * tree.c (cp_statement_code_p): Don't case it. 3695 * semantics.c (cp_expand_stmt): Likewise. 3696 * cp-tree.h (START_CATCH_TYPE): Lose. 3697 (HANDLER_TYPE): New. 3698 * except.c (expand_start_catch_block): Don't start any blocks. 3699 Return the type. 3700 (expand_end_catch_block): Don't end any blocks. 3701 * parse.y (handler): Don't pass anything from finish_handler_parms 3702 to finish_handler. 3703 * pt.c (tsubst_expr): Likewise. 3704 * semantics.c (begin_handler): Call note_level_for_catch here. 3705 (finish_handler_parms): Don't return anything. 3706 (genrtl_catch_block, begin_catch_block): Lose. 3707 (genrtl_handler): Call expand_start_catch here. 3708 37092001-05-18 Jason Merrill <jason_merrill@redhat.com> 3710 3711 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here. 3712 (get_vtable_decl, build_vtt): Not here. 3713 37142001-05-20 Nathan Sidwell <nathan@codesourcery.com> 3715 3716 PR c++/2781 3717 * optimize.c (update_cloned_parm): Copy addressability and other 3718 flags. 3719 37202001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3721 3722 * pt.c (determine_specialization): Ignore artificial functions. 3723 37242001-05-20 Neil Booth <neil@daikokuya.demon.co.uk> 3725 3726 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. 3727 (C_RID_CODE): Remove. 3728 * lex.c (cxx_init_options): Call set_identifier_size. Update. 3729 (init_parse): Don't do it here. 3730 37312001-05-18 Diego Novillo <dnovillo@redhat.com> 3732 3733 * decl2.c (finish_objects): Use the original SYMBOL_REF from the 3734 function declaration to avoid stripping the symbol's attributes. 3735 37362001-05-18 Nathan Sidwell <nathan@codesourcery.com> 3737 3738 * decl.c (pushdecl): Adjust error string. 3739 (xref_tag): Adjust friend class injection warning. Remove the 3740 inherited name from the class shadowed scope. 3741 37422001-05-17 Mark Mitchell <mark@codesourcery.com> 3743 3744 * except.c (cp_protect_cleanup_actions): New function. 3745 (init_exception_processing): Don't set protect_cleanup_actions 3746 here. Do set lang_protect_cleanup_actions. 3747 37482001-05-16 Nathan Sidwell <nathan@codesourcery.com> 3749 3750 * spew.c (read_token): Call yyerror on all unexpected tokens. 3751 37522001-05-16 Nathan Sidwell <nathan@codesourcery.com> 3753 3754 * init.c (member_init_ok_or_else): Take a tree rather than 3755 string for name. 3756 (expand_member_init): Adjust. 3757 37582001-05-14 Nick Clifton <nickc@cambridge.redhat.com> 3759 3760 * decl.c (duplicate_decls): Suppress warning about duplicate 3761 decls if the first decl is a friend. 3762 37632001-05-12 Zack Weinberg <zackw@stanford.edu> 3764 3765 * except.c (choose_personality_routine): Export. Add 3766 explanatory comment. Take an enum languages, not a boolean. 3767 (initialize_handler_parm): Adjust to match. 3768 * cp-tree.h: Prototype choose_personality_routine. 3769 * lex.c (handle_pragma_java_exceptions): New function. 3770 (init_cp_pragma): Register #pragma GCC java_exceptions. 3771 37722001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk> 3773 3774 * method.c (build_mangled_C99_name): Remove unused prototype. 3775 37762001-05-12 Alexandre Oliva <aoliva@redhat.com> 3777 3778 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type. 3779 * typeck.c (get_member_function_from_ptrfunc, 3780 build_ptrmemfunc, expand_ptrmemfunc_cst): Take 3781 TARGET_PTRMEMFUNC_VBIT_LOCATION into account. 3782 3783 Reverted Geoff Keating's 2001-05-03's patch. 3784 37852001-05-11 Ira Ruben <ira@apple.com> 3786 3787 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h. 3788 37892001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 3790 3791 * cp-tree.h (finish_label_expr, lookup_label): Delete. 3792 * parse.y: Update for '&&'; don't issue warning here. 3793 * semantics.c (finish_label_expr): Delete. 3794 37952001-05-07 Mark Mitchell <mark@codesourcery.com> 3796 3797 * splay-tree.h (splay_tree_max): New function. 3798 (splay_tree_min): Likewise. 3799 38002001-05-03 Geoffrey Keating <geoffk@redhat.com> 3801 3802 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER. 3803 (pfn_vflag_identifier): Define. 3804 Update comment about layout of pointer functions. 3805 (build_ptrmemfunc1): Update prototype. 3806 (expand_ptrmemfunc_cst): Update prototype. 3807 * decl.c (initialize_predefined_identifiers): Initialize 3808 pfn_vflag_identifier. 3809 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add 3810 an extra field to the type. 3811 * expr.c (cplus_expand_constant): Pass 'flag' between 3812 expand_ptrmemfunc_cst and build_ptrmemfunc1. 3813 * typeck.c (get_member_function_from_ptrfunc): When 3814 FUNCTION_BOUNDARY < 16, look at additional field to determine 3815 if a pointer-to-member is a real pointer or a vtable offset. 3816 (build_ptrmemfunc1): Add new parameter to contain extra field. 3817 (build_ptrmemfunc): Pass the extra field around. 3818 (expand_ptrmemfunc_cst): Add new parameter to return extra field. 3819 (pfn_from_ptrmemfunc): Ignore the extra field. 3820 38212001-05-03 Mark Mitchell <mark@codesourcery.com> 3822 3823 * cp-tree.h (flag_inline_trees): Update documentation. 3824 * decl.c (init_decl_processing): Adjust handling of 3825 flag_inline_functions and flag_inline_trees to support -O3. 3826 (grokfndecl): Set DECL_INLINE on all functions if that's what 3827 the user requested. 3828 (save_function_data): Clear DECL_INLINE in 3829 current_function_cannot_inline is non-NULL. 3830 * decl2.c (flag_inline_trees): Update documentation. 3831 38322001-05-03 Nathan Sidwell <nathan@codesourcery.com> 3833 3834 * dump.c (cp_dump_tree, USING_STMT case): New case. 3835 * tree.c (cp_statement_code_p): Add USING_STMT. 3836 * decl2.c (do_using_directive): Add the using directive statement. 3837 3838 * tree.c (walk_tree): Reformat an if block. 3839 38402001-05-02 Mark Mitchell <mark@codesourcery.com> 3841 3842 * decl.c (compute_array_index_type): Don't try to do anything with 3843 the indices when processing a template. 3844 38452001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3846 3847 * call.c: NULL_PTR -> NULL. 3848 * class.c: Likewise. 3849 * cvt.c: Likewise. 3850 * decl.c: Likewise. 3851 * decl2.c: Likewise. 3852 * except.c: Likewise. 3853 * init.c: Likewise. 3854 * rtti.c: Likewise. 3855 * search.c: Likewise. 3856 * tree.c: Likewise. 3857 * typeck.c: Likewise. 3858 * typeck2.c: Likewise. 3859 38602001-05-02 Mark Mitchell <mark@codesourcery.com> 3861 3862 * decl2.c (do_using_directive): Revert previous patch. 3863 38642001-05-01 Nathan Sidwell <nathan@codesourcery.com> 3865 3866 * cp-tree.def (USING_STMT): New statement node. 3867 * cp-tree.h (USING_STMT_NAMESPACE): New macro. 3868 * decl2.c (do_using_directive): Add USING_STMT to statement 3869 tree. Don't emit errors when processing template decl. 3870 * pt.c (tsubst_expr, USING_STMT case): New case. 3871 * semantics.c (cp_expand_stmt, USING_STMT case): New case. 3872 38732001-05-01 Nathan Sidwell <nathan@codesourcery.com> 3874 3875 * call.c (build_new_op): Convert args from reference here. 3876 (build_conditional_expr): Don't convert here. 3877 38782001-05-01 Nathan Sidwell <nathan@codesourcery.com> 3879 3880 * spew.c (last_token_id): New static variable. 3881 (read_token): Set it here. 3882 (yyerror): Use it here. 3883 38842001-04-30 Richard Henderson <rth@redhat.com> 3885 3886 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. 3887 * decl.c: Likewise. 3888 38892001-04-30 Mark Mitchell <mark@codesourcery.com> 3890 3891 * gxxint.texi: Remove. 3892 * Make-lang.in: Remove all traces of gxxint.texi. 3893 3894Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com> 3895 3896 * decl2.c (start_static_initialization_or_destruction): Correct 3897 logic to handle the -fno-use-cxa-atexit case. 3898 38992001-04-30 Mark Mitchell <mark@codesourcery.com> 3900 3901 * optimize.c (update_cloned_parm): New function. 3902 (maybe_clone_body): Use it. Update the `this' parameter too. 3903 39042001-04-29 Joseph S. Myers <jsm28@cam.ac.uk> 3905 3906 * decl2.c (unsupported_options): Add new-abi. 3907 * lang-options.h: Remove no longer supported options. 3908 39092001-04-27 Nathan Sidwell <nathan@codesourcery.com> 3910 3911 * except.c (can_convert_eh): Don't check template parms, 3912 typename types etc. 3913 39142001-04-27 Nathan Sidwell <nathan@codesourcery.com> 3915 3916 * optimize.c (maybe_clone_body): Copy parameter names and locations. 3917 39182001-04-27 Nathan Sidwell <nathan@codesourcery.com> 3919 3920 * cp-tree.h (adjust_clone_args): Prototype new function. 3921 * class.c (adjust_clone_args): New function. 3922 * decl.c (start_function): Call it for in charge ctors. 3923 39242001-04-26 Mark Mitchell <mark@codesourcery.com> 3925 3926 * method.c (use_thunk): Make sure that thunks really are emitted 3927 when requested. 3928 39292001-04-26 Nathan Sidwell <nathan@codesourcery.com> 3930 3931 * mangle.c (write_chars): New macro. 3932 (hwint_to_ascii): New function 3933 (write_number): Use it. 3934 (write_integer_cst): Deal with really big numbers. 3935 39362001-04-25 Mark Mitchell <mark@codesourcery.com> 3937 3938 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting 3939 the clone. 3940 39412001-04-25 Nathan Sidwell <nathan@codesourcery.com> 3942 3943 * decl.c (grokdeclarator): Set context of namespace scope 3944 TYPE_DECLS. 3945 39462001-04-24 Zack Weinberg <zackw@stanford.edu> 3947 3948 * cp/optimize.c: Include hashtab.h. 3949 (struct inline_data): Add tree_pruner. 3950 (expand_call_inline, expand_calls_inline): Use it when calling 3951 walk_tree. 3952 (optimize_function): Initialize and free tree_pruner. 3953 39542001-04-24 Nathan Sidwell <nathan@codesourcery.com> 3955 3956 Lazy __FUNCTION__ generation. 3957 * cp-tree.def (FUNCTION_NAME): Remove. 3958 * cp-tree.h (function_name_declared_p): Remove. 3959 (cp_fname_init): Prototype. 3960 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids, 3961 don't call declare_function_name. Call start_fname_decls. 3962 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't 3963 clobber the line number. 3964 (cp_fname_init): New function. 3965 (start_function): Call start_fname_decls. 3966 (finish_function): Call finish_fname_decls. 3967 * lex.c (reswords): Add slots for __FUNCTION__ et al. 3968 (rid_to_yy): Add mappings for __FUNCTION__ et al. 3969 * optimize.c (maybe_clone_body): Remove function_name_declared_p. 3970 * parse.y (VAR_FUNC_NAME): New token. 3971 (primary): Add VAR_FUNC_NAME. 3972 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's 3973 generation. 3974 (tsubst, FUNCTION_NAME case): Remove. 3975 (tsubst_copy, FUNCTION_NAME case): Remove. 3976 (tsubst_expr, DECL_STMT case): Be careful with a 3977 DECL_PRETTY_FUNCTION_P. 3978 (instantiate_decl): Remove function_name_declared_p. 3979 * semantics.c (begin_compound_statement): Don't call 3980 declare_function_name here. 3981 (setup_vtbl_ptr). Don't save & restore function_name_declared_p. 3982 (finish_translation_unit): Call finish_fname_decls. 3983 (expand_body): Remove function_name_declared_p. 3984 * typeck2.c (digest_init): Allow any ERROR_MARK. 3985 39862001-04-24 Nathan Sidwell <nathan@codesourcery.com> 3987 3988 * pt.c (tsubst_decl): Use VOID_TYPE_P. 3989 * semantics.c: Fix some typos. 3990 39912001-04-23 Phil Edwards <pme@sources.redhat.com> 3992 3993 * cp/decl2.c (flag_honor_std): Always initialize to 1. 3994 39952001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3996 3997 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf. 3998 39992001-04-23 Jason Merrill <jason_merrill@redhat.com> 4000 4001 * except.c (build_throw): Wrap the initialization of the exception 4002 object in a MUST_NOT_THROW_EXPR. 4003 (do_free_exception): #if 0. 4004 40052001-04-20 Mark Mitchell <mark@codesourcery.com> 4006 4007 * cp-tree.h (finish_enum): Change prototype. 4008 * decl.c (finish_enum): Reorganize. 4009 * parse.y (structsp): Adjust calls to finish_enum. 4010 40112001-04-20 Nathan Sidwell <nathan@codesourcery.com> 4012 4013 * tree.c (cp_tree_equal): Adjust final switch formatting. Add 4014 't' case. 4015 40162001-04-20 Nathan Sidwell <nathan@codesourcery.com> 4017 4018 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED. 4019 (layout_empty_base): Return at end flag. 4020 (build_base_field): Likewise. 4021 (build_base_fields): Likewise. 4022 (layout_virtual_bases): Don't add 1 to eoc value. 4023 (end_of_class): Use full size for empty bases. 4024 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended 4025 empty bases. Don't add 1 to eoc value. Only add trailing padding 4026 if we're an empty class with no empty bases. 4027 (dump_class_hierarchy): Dump size and alignment. 4028 40292001-04-20 Jakub Jelinek <jakub@redhat.com> 4030 4031 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and 4032 ICS_BAD_FLAG. 4033 40342001-04-20 Jakub Jelinek <jakub@redhat.com> 4035 4036 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL 4037 is found, look first if name does not match the structure name. 4038 40392001-04-19 Mark Mitchell <mark@codesourcery.com> 4040 4041 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is 4042 set. 4043 (SET_DECL_LANGUAGE): New macro. 4044 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE. 4045 (pushdecl): Likewise. 4046 (build_library_fn_1): Likewise. 4047 (build_cp_library_fn): Likewise. 4048 (grokfndecl): Likewise. 4049 (grokvardecl): Mark `extern "C"' variables as having C linkage. 4050 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE. 4051 * lex.c (retrofit_lang_decl): Likewise. 4052 * mangle.c (mangle_decl_string): Don't mangle the names of 4053 variables declared with C language linkage. 4054 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE. 4055 40562001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca> 4057 4058 * semantics.c (simplify_aggr_init_exprs_r): Don't restore 4059 flag_access_control from uninitialized storage. 4060 40612001-04-15 Mark Mitchell <mark@codesourcery.com> 4062 4063 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation. 4064 * mangle.c (write_pointer_to_member_type): Fix mangling of 4065 pointers to cv-qualified member function types. 4066 4067 * init.c (build_delete): Create a SAVE_EXPR for the address if 4068 we're going to use it more than once. 4069 40702001-04-13 Mark Mitchell <mark@codesourcery.com> 4071 4072 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove. 4073 (expand_ptremfunc_cst): Change prototype. 4074 (delta2_from_ptrmemfunc): Remove. 4075 * expr.c (cplus_expand_constant): Adjust call to 4076 expand_ptrmemfunc_cst. 4077 * typeck.c (build_ptrmemfunc1): Simplify. 4078 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still 4079 results in a constant. 4080 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters. 4081 (delta2_from_ptrmemfunc): Remove. 4082 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst. 4083 40842001-04-12 Jason Merrill <jason_merrill@redhat.com> 4085 4086 * cp-tree.h (decl_namespace_list): New macro. 4087 (struct saved_scope): Add decl_ns_list. 4088 * decl.c (mark_saved_scope): Mark it. 4089 * decl2.c: Lose static decl_namespace_list. 4090 (init_decl2): Don't save it. 4091 40922001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4093 4094 * cp-tree.h (warn_return_type, yylex): Delete redundant 4095 declarations. 4096 4097 * decl.c (current_class_depth, global_namespace): Likewise. 4098 4099 * decl2.c (current_class_depth, flag_gnu_xref): Likewise 4100 4101 * repo.c (flag_use_repository): Likewise. 4102 41032001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4104 4105 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block, 4106 set_block, pushdecl, getdecls, gettags, init_decl_processing, 4107 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p, 4108 lvalue_or_else, print_lang_statistics, comp_target_types, 4109 unsigned_type, signed_type, signed_or_unsigned_type, 4110 build_function_call, mark_addressable, incomplete_type_error): 4111 Delete redundant declarations. 4112 41132001-04-11 Jason Merrill <jason_merrill@redhat.com> 4114 4115 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro. 4116 (TYPE_ANONYMOUS_P): New macro. 4117 (TAGGED_TYPE_P): New macro. 4118 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P. 4119 (grokfndecl, grokvardecl, grokdeclarator): Likewise. 4120 * tree.c (no_linkage_helper): Likewise. 4121 * semantics.c (begin_class_definition): Likewise. 4122 * pt.c (convert_template_argument): Likewise. 4123 * lex.c (check_for_missing_semicolon): Likewise. 4124 41252001-04-12 Nathan Sidwell <nathan@codesourcery.com> 4126 4127 * class.c (dfs_unshared_virtual_bases): New function. 4128 (mark_primary_bases): Call it. 4129 (check_bases): Ignore virtual bases when determining 4130 nearly-emptiness. 4131 41322001-04-12 Nathan Sidwell <nathan@codesourcery.com> 4133 4134 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION. 4135 41362001-04-11 Mark Mitchell <mark@codesourcery.com> 4137 4138 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the 4139 cloned function to the clone. 4140 41412001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4142 4143 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H). 4144 4145 * semantics.c: Include expr.h. 4146 41472001-04-11 Nathan Sidwell <nathan@codesourcery.com> 4148 4149 * method.c (implicitly_declare_fn): Commonize code for copy ctor 4150 and assignment op. Set TREE_USED for parameter. 4151 41522001-04-10 Mark Mitchell <mark@codesourcery.com> 4153 4154 * class.c (find_final_overrider_data): Add `candidates'. 4155 (dfs_find_final_overrider): Don't issue error messages 4156 prematurely. 4157 (find_final_overrider): Issue error messages here. 4158 (build_base_field): Don't warn about amgibuous direct bases here. 4159 (warn_about_ambiguous_direct_bases): New function. 4160 (layout_class_type): Use it. 4161 41622001-04-10 Richard Henderson <rth@redhat.com> 4163 4164 * typeck.c (build_array_ref): Push the array reference inside 4165 COMPOUND_EXPR and COND_EXPR. 4166 41672001-04-05 Mark Mitchell <mark@codesourcery.com> 4168 4169 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P. 4170 * decl.c (duplicate_decls): Adjust accordingly. 4171 (maybe_commonize_var): Likewise. 4172 (grokfndecl): Likewise. 4173 (start_function): Likewise. 4174 (start_method): Likewise. 4175 * decl2.c (key_method): Likewise. 4176 (import_export_decl): Likewise. 4177 * method.c (implicitly_declare_fn): Likewise. 4178 * optimize.c (maybe_clone_body): Likewise. 4179 41802001-04-05 Benjamin Kosnik <bkoz@redhat.com> 4181 4182 * lang-specs.h: Add __DEPRECATED. 4183 4184Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com> 4185 4186 * search.c (get_dynamic_cast_base_type): When building a new 4187 constant, set its type to ssizetype. 4188 41892001-04-04 Jakub Jelinek <jakub@redhat.com> 4190 4191 * optimize.c (expand_call_inline): Only add newly inlined statements 4192 into inlined_stmts. 4193 41942001-04-03 Mark Mitchell <mark@codesourcery.com> 4195 4196 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove. 4197 (OPERATOR_FORMAT): Likewise. 4198 (OPERATOR_TYPENAME_FORMAT): Likewise. 4199 * operators.def: Remove old name-mangling information. 4200 * decl.c (grok_op_properties): Adjust accordingly. 4201 * lex.c (init_operators): Likewise. 4202 * rtti.c (get_tinfo_decl): Issue error messages about types that 4203 have variable size. 4204 42052001-04-03 Mark Mitchell <mark@codesourcery.com> 4206 4207 * decl2.c (import_export_decl): Don't call import_export_class 4208 when processing an inline member function. 4209 * semantics.c (expand_body): Call import_export_decl before 4210 emitting inline functions. 4211 42122001-03-28 Richard Henderson <rth@redhat.com> 4213 4214 IA-64 ABI Exception Handling: 4215 * cp-tree.def (EH_SPEC_BLOCK): New. 4216 (MUST_NOT_THROW_EXPR): New. 4217 * cp-tree.h: Update changed function declarations. 4218 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove. 4219 (CPTI_CALL_UNEXPECTED): New. 4220 (struct cp_language_function): Rename x_eh_spec_try_block 4221 to x_eh_spec_block. 4222 (EH_SPEC_STMTS, EH_SPEC_RAISES): New. 4223 * decl.c (current_binding_level): If no current function 4224 bindings, revert to scope_chain. 4225 (initialize_predefined_identifiers): Remove __cp_push_exception. 4226 (store_parm_decls): Use begin_eh_spec_block. 4227 (finish_function): Use finish_eh_spec_block. 4228 (mark_lang_function): Update for name changes. 4229 * decl2.c (finish_file): No mark_all_runtime_matches. 4230 * dump.c (cp_dump_tree): Handle new tree codes. 4231 * error.c (dump_expr) [BIND_EXPR]: Fix typo. 4232 * except.c (catch_language_init, catch_language): Remove. 4233 (init_exception_processing): Don't set language code. 4234 Initialize call_unexpected_node, protect_cleanup_actions, 4235 eh_personality_libfunc, lang_eh_runtime_type. 4236 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove. 4237 (get_eh_type, get_eh_caught, get_eh_handlers): Remove. 4238 (prepare_eh_type): Split out type canonicalizations ... 4239 (build_eh_type_type): ... from here. 4240 (build_eh_type_type_ref): Remove. 4241 (mark_all_runtime_matches): Remove. 4242 (build_exc_ptr): New. 4243 (do_begin_catch, do_end_catch): New. 4244 (do_pop_exception): Remove. 4245 (build_terminate_handler): Remove. 4246 (choose_personality_routine): Split out language choice from ... 4247 (initialize_handler_parm): ... here. 4248 Use MUST_NOT_THROW_EXPR. 4249 (expand_start_catch_block): Use do_begin_catch. Simplify Java 4250 exception object handling. 4251 (expand_start_eh_spec, expand_end_eh_spec): Remove. 4252 (expand_exception_blocks, alloc_eh_object): Remove. 4253 (begin_eh_spec_block, finish_eh_spec_block): New. 4254 (do_allocate_exception, do_free_exception): New. 4255 (expand_throw): Merge into ... 4256 (build_throw): ... here. Update for abi. 4257 * expr.c (cplus_expand_expr): No expand_internal_throw. 4258 Handle MUST_NOT_THROW_EXPR. 4259 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK. 4260 * semantics.c (*) Update for except.h name changes. 4261 (genrtl_try_block): No protect_with_terminate. 4262 (genrtl_eh_spec_block): New. 4263 (genrtl_handler): Don't emit the goto here. 4264 (cp_expand_stmt): Handle EH_SPEC_BLOCK. 4265 (genrtl_finish_function): Don't expand_exception_blocks. 4266 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK. 4267 42682001-03-28 Richard Henderson <rth@redhat.com> 4269 4270 * decl.c (struct named_label_list): Rename eh_region to 4271 in_try_scope, add in_catch_scope. 4272 (struct binding_level): Rename eh_region to is_try_scope, 4273 add is_catch_scope. 4274 (note_level_for_try): Rename from note_level_for_eh. 4275 (note_level_for_catch): New. 4276 (poplevel): Copy both is_try_scope and is_catch_scope to 4277 the named_label_list struct. 4278 (check_previous_goto_1): Don't check for catch block via 4279 DECL_ARTIFICIAL; use in_try_scope instead. 4280 (check_goto): Likewise. 4281 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare. 4282 * except.c (expand_start_catch_block): Call note_level_for_catch. 4283 * semantics.c (begin_compound_stmt): Update for note_level_for_try. 4284 42852001-03-27 Richard Henderson <rth@redhat.com> 4286 4287 * except.c: Use USING_SJLJ_EXCEPTIONS instead of 4288 exceptions_via_longjmp. 4289 42902001-03-27 Phil Edwards <pme@sources.redhat.com> 4291 4292 * pt.c (check_default_tmpl_args): Make error messages clearer. 4293 42942001-03-26 Phil Edwards <pme@sources.redhat.com> 4295 4296 * error.c: Also undefine 'A' macro used for cp_printers definition. 4297 42982001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4299 4300 * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 4301 43022001-03-26 Mike Yang <yang@research.att.com> 4303 Mark Mitchell <mark@codesourcery.com> 4304 4305 * dump.c (dump_access): New function. 4306 (cp_dump_tree): Use it. Dump basetype information for class 4307 types. 4308 43092001-03-26 Mark Mitchell <mark@codesourcery.com> 4310 4311 * Makefile.in (optimize.o): Depend on params.h. 4312 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE. 4313 (init_decl_processing): Set flag_no_inline when doing 4314 inlining-on-trees. 4315 * optimize.c: Include params.h. 4316 (struct inline_data): Improve documentation of FNS. Add 4317 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P. 4318 (INSNS_PER_STMT): New macro. 4319 (remap_block): Use CLONING_P. 4320 (inlinable_function_p): Don't inline big functions. 4321 (expand_call_inline): Keep track of how much inlining we've done. 4322 (optimize_function): Set FIRST_INLINED_FN. 4323 (maybe_clone_body): Set CLONING_P. 4324 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in 4325 tree nodes. 4326 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling 4327 rest_of_compilation. Clear DECL_RTL for local variables 4328 afterwards. 4329 (clear_decl_rtl): New function. 4330 43312001-03-26 Nathan Sidwell <nathan@codesourcery.com> 4332 4333 Implement DR 209 4334 * cp-tree.h (skip_type_access_control, 4335 reset_type_access_control): Prototype. 4336 * decl.c (grokdeclarator): Access of friends is not checked. 4337 * parse.y (component_decl_list): Reset type access control. 4338 * semantics.c (decl_type_access_control): Clear 4339 current_type_lookups. 4340 (save_type_access_control): Don't save if not deferring. 4341 (skip_type_access_control, reset_type_access_control): New 4342 functions. 4343 (begin_class_definition): Do type access control for basetypes. 4344 Start deferred access control. 4345 (finish_class_definition): Resume immediate access control if 4346 this is a local class. 4347 43482001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4349 4350 * class.c (add_method): Use memcpy/memmove, not bcopy. 4351 4352 * decl.c (duplicate_decls): Likewise. 4353 43542001-03-23 Jakub Jelinek <jakub@redhat.com> 4355 4356 * mangle.c (write_discriminator): Use `_0' for discriminator 1, 4357 not `_'. 4358 43592001-03-23 Jakub Jelinek <jakub@redhat.com> 4360 4361 * decl.c (local_names): Define. 4362 (push_local_name): New. 4363 (grok_reference_init): Return init if initializing static reference 4364 variable with non-constant instead of emitting it. 4365 Move expand_static_init call to cp_finish_decl. 4366 (layout_var_decl): Call push_local_name. 4367 (maybe_commonize_var): Allow inlining functions even if they have 4368 static local variables, use comdat_linkage for them if flag_weak. 4369 (check_initializer): Call obscure_complex_init if 4370 grok_reference_init returned non-zero. 4371 (save_function_data): Clear x_local_names. 4372 (pop_cp_function_context): Free x_local_names. 4373 (mark_inlined_fns): Remove. 4374 (mark_lang_function): Mark x_local_names. 4375 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P. 4376 Mark inlined_fns as tree, remove call to mark_inlined_fns. 4377 * class.c (alter_access): Ensure DECL_ACCESS is never set if 4378 DECL_DISCRIMINATOR_P. 4379 * cp-tree.h (cp_language_function): Add x_local_names. 4380 (lang_decl_flags): Add discriminator into u2. 4381 (lang_decl_inlined_fns): Remove. 4382 (lang_decl): inlined_fns is now a TREE_VEC. 4383 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define. 4384 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a 4385 TREE_VEC, not a custom structure. 4386 (optimize_function): Likewise. 4387 * mangle.c (discriminator_for_local_entity): Discriminate among 4388 VAR_DECL local entities. 4389 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS 4390 is not valid. 4391 43922001-03-22 Bryce McKinlay <bryce@albatross.co.nz> 4393 4394 Add support for Java interface method calls. 4395 * cp-tree.h (struct lang_type): Add java_interface flag. 4396 (TYPE_JAVA_INTERFACE): New macro. 4397 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute 4398 by setting TYPE_JAVA_INTERFACE. 4399 * call.c (java_iface_lookup_fn): New static. 4400 (build_over_call): If calling a method declared in a 4401 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the 4402 expression which resolves the function address. 4403 (build_java_interface_fn_ref): New function. 4404 44052001-03-22 Richard Henderson <rth@redhat.com> 4406 4407 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h. 4408 * except.c: Don't include it. 4409 44102001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 4411 based on an idea from Joe Buck <jbuck@synopsys.com> 4412 4413 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore): 4414 New nonterminals. 4415 (data_def, component_decl): Add reductions to bad_decl. 4416 44172001-03-22 Jakub Jelinek <jakub@redhat.com> 4418 4419 * method.c (do_build_assign_ref): Don't use build_modify_expr for 4420 anonymous aggregates, since they don't have assignment operator 4421 method. 4422 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy 4423 assignment operators for anonymous structure fields. 4424 44252001-03-21 Jason Merrill <jason@redhat.com> 4426 4427 * pt.c (instantiate_decl): Abort if we see a member constant 4428 instantiation that doesn't already have its initializer. 4429 Downgrade explicit instantiation without definition to pedwarn. 4430 4431 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove. 4432 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P. 4433 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P. 4434 4435 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove. 4436 (pending_vtables): Remove. 4437 * decl2.c (pending_vtables): Remove. 4438 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not 4439 CLASSTYPE_VTABLE_NEEDS_WRITING. 4440 (import_export_class): Likewise. 4441 (init_decl2): Don't mark pending_vtables. 4442 * lex.c (handle_pragma_vtable): Just sorry. 4443 * pt.c (instantiate_class_template): Don't mess with 4444 CLASSTYPE_VTABLE_NEEDS_WRITING. 4445 (mark_class_instantiated): Likewise. 4446 * ptree.c (print_lang_type): Don't print it. 4447 * semantics.c (begin_class_definition): Don't set it. 4448 4449 * pt.c (template_tail): Replace with last_pending_template. 4450 (maybe_templates, maybe_template_tail): Remove. 4451 (add_pending_template): Adjust. 4452 (instantiate_pending_templates): Adjust. 4453 4454 * cp-tree.h (struct saved_scope): Remove lang_stack field. 4455 (current_lang_stack): Remove. 4456 * decl.c (maybe_push_to_top_level): Don't initialize it. 4457 (duplicate_decls): Use current_lang_depth. 4458 (xref_basetypes): Likewise. 4459 * class.c (current_lang_depth): New fn. 4460 (push_lang_context): Use more varray functionality. 4461 (pop_lang_context): Likewise. 4462 4463 * error.c (GLOBAL_THING): Always use '__'. 4464 44652001-03-21 Mark Mitchell <mark@codesourcery.com> 4466 4467 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME. 4468 4469 * mangle.c (mangle_decl_string): Mangle the names of overloaded 4470 operators, even when they have `extern "C"' linkage. 4471 44722001-03-19 Mark Mitchell <mark@codesourcery.com> 4473 4474 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, 4475 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 4476 where it's not necessary. 4477 (add_method): Remove optimization involving comparison of 4478 DECL_ASSEMBLER_NAME. 4479 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, 4480 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 4481 where it's not necessary. 4482 (check_methods): Likewise. 4483 (build_clone): Likewise. 4484 (built_vtt): Likewise. 4485 * cp-tree.h (DECL_NEEDED_P): Likewise. 4486 * decl.c (pushtag): Likewise. 4487 (duplicate_decls): Likewise. 4488 (pushdecl): Likewise. 4489 (builtin_function): Likewise. 4490 (build_library_fn_1): Set DECL_LANGUAGE for library functions. 4491 (build_cp_library_fn): Likewise. 4492 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, 4493 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 4494 where it's not necessary. 4495 (make_rtl_for_nonlocal_decl): Likewise. 4496 (cp_finish_decl): Likewise. 4497 (grokfndecl): Likewise. 4498 (grokvardecl): Likewise. 4499 (grokdeclarator): Likewise. 4500 (start_function): Likewise. 4501 (cp_missing_return_ok_p): Likewise. 4502 * decl2.c (grokclassfn): Likewise. 4503 (check_classfn): Likewise. 4504 (finish_static_data_member_decl): Likewise. 4505 (grokfield): Likewise. 4506 * error.c (GLOBAL_IORD_P): Remove. 4507 (dump_global_iord): Improve output. 4508 (dump_decl): Avoid using DECL_ASSEMBLER_NAME. 4509 * except.c (nothrow_libfn_p): Summarily reject any function not in 4510 namespace-scope. 4511 * init.c (build_java_class_ref): Don't explicitly set 4512 DECL_ASSEMBLER_NAME after calling mangle_decl. 4513 * mangle.c (mangle_decl_string): Handle extern "C" functions. 4514 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. 4515 * method.c (set_mangled_name_for_decl): Don't explicitly set 4516 DECL_ASSEMBLER_NAME after calling mangle_decl. 4517 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and 4518 IDENTIFIER_GLOBAL_VALUE for the thunk. 4519 * pt.c (set_mangled_name_for_template_decl): Remove. 4520 (check_explicit_specialization): Don't use it. 4521 (looup_template_class): Don't set DECL_ASSEMBLER_NAME. 4522 (tsubst_friend_function): Likewise. 4523 (tsubst_decl): Likewise. 4524 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. 4525 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, 4526 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 4527 where it's not necessary. 4528 (tinfo_base_init): Likewise. 4529 (create_real_tinfo_var): Likewise. 4530 * search.c (looup_field_1): Likewise. 4531 * semantics.c (finish_named_return_value): Likewise. 4532 * tree.c (init_tree): Set lang_set_decl_assembler_name. 4533 45342001-03-15 Gabriel Dos Reis <gdr@codesourcery.com> 4535 4536 Correct semantics restrictions checking in throw-expression. 4537 * except.c (is_admissible_throw_operand): New function. 4538 (build_throw): Use it. 4539 45402001-03-14 Mark Mitchell <mark@codesourcery.com> 4541 4542 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__ 4543 and its ilk. 4544 45452001-03-14 Mark Mitchell <mark@codesourcery.com> 4546 4547 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 4548 * cp-tree.h (DECL_IN_MEMORY_P): Likewise. 4549 * decl.c (duplicate_decls): Likewise. 4550 (builtin_function): Likewise. 4551 (build_library_fn): Likewise. 4552 (build_cp_library_fn): Likewise. 4553 (check_initializer): Likewise. 4554 (cp_finish_decl): Likewise. 4555 * decl2.c (grokfield): Likewise. 4556 (grok_function_init): Remove #if 0'd code. 4557 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 4558 * friend.c (do_friend): Likewise. 4559 * init.c (get_temp_regvar): Likewise. 4560 * method.c (make_thunk): Likewise. 4561 * pt.c (tsubst_friend_function): Likewise. 4562 (tsubst_decl): Likewise. 4563 (regenerate_decl_from_template): Likewise. 4564 * semantics.c (genrtl_named_return_value): Likewise. 4565 (expand_body): Likewise. 4566 (genrtl_finish_function): Likewise. 4567 * tree.c (cp_tree_equal): Likewise. 4568 45692001-03-12 Nathan Sidwell <nathan@codesourcery.com> 4570 4571 * call.c (convert_like_real): Add extra semantics to INNER 4572 parameter. Don't convert to temporary if a user conversion 4573 gives us an lvalue that we're about to bind to a reference. 4574 Set INNER to indicate pending reference binding on recursive 4575 calls. 4576 45772001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 4578 4579 * cp/lex.c: Delete duplicate pending_lang_change. 4580 45812001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 4582 4583 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation): 4584 Similarly. 4585 * cp/repo.c (get_base_filename, open_repo_file): Similarly. 4586 * cp/cp-tree.h: Remove file_name_nondirectory prototype. 4587 45882001-03-09 Zack Weinberg <zackw@stanford.edu> 4589 4590 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate. 4591 45922001-03-08 Stan Shebs <shebs@apple.com> 4593 4594 * cp-tree.h (set_identifier_local_value): Remove unused decl. 4595 45962001-03-06 Zack Weinberg <zackw@stanford.edu> 4597 4598 * spew.c: Remove references to CPP_OSTRING. 4599 46002001-03-06 Andrew Haley <aph@redhat.com> 4601 4602 * typeck.c (convert_arguments): Check that we have an fndecl. 4603 46042001-03-05 Andrew Haley <aph@redhat.com> 4605 4606 * typeck.c (convert_arguments): Don't do ellipsis conversion for 4607 __built_in_constant_p. 4608 46092001-03-02 Nathan Sidwell <nathan@codesourcery.com> 4610 4611 * typeck.c (build_static_cast): Allow enum to enum conversions 4612 as per DR 128. 4613 46142001-03-02 Nathan Sidwell <nathan@codesourcery.com> 4615 4616 * class.c (check_field_decls): Pointers to member do not a 4617 non-pod struct make, as per DR 148. 4618 46192001-03-02 Nathan Sidwell <nathan@codesourcery.com> 4620 4621 * call.c (joust): cp_pedwarn when using gnu extension concerning 4622 worst conversion sequences. 4623 46242001-03-01 Zack Weinberg <zackw@stanford.edu> 4625 4626 * decl.c: Replace all uses of 'boolean' with 'bool'. 4627 46282001-03-01 Zack Weinberg <zackw@stanford.edu> 4629 4630 * lang-specs.h: Add zero initializer for cpp_spec field to 4631 all array elements that need one. Don't put an #ifdef inside 4632 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and 4633 use it. 4634 46352001-03-01 Nathan Sidwell <nathan@codesourcery.com> 4636 4637 Implement using decls inside template functions. 4638 * decl2.c (validate_nonmember_using_decl): Don't special case 4639 fake_std_node in the global namespace. Don't reject early when 4640 processing a template. 4641 (do_local_using_decl): Add to statement tree. Don't do further 4642 processing when building a template. 4643 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs. 4644 46452001-03-01 Nathan Sidwell <nathan@codesourcery.com> 4646 4647 * decl2.c (do_nonmember_using_decl): Don't complain if we find 4648 same function. Do complain about ambiguating extern "C" 4649 declarations. 4650 46512001-02-28 Nathan Sidwell <nathan@codesourcery.com> 4652 4653 Remove floating point and complex type template constant parms. 4654 * pt.c (convert_nontype_argument): Remove REAL_TYPE and 4655 COMPLEX_TYPE extensions. 4656 (invalid_nontype_parm_type_p): Likewise. 4657 46582001-02-27 Jeffrey Oldham <oldham@codesourcery.com> 4659 4660 * except.c (call_eh_info): Revert "match_function"'s type. 4661 46622001-02-27 Nathan Sidwell <nathan@codesourcery.com> 4663 4664 Fix ctor vtable vcall offsets. 4665 * class.c (struct vtbl_init_data_s): Add rtti_binfo member. 4666 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter. 4667 (get_matching_base): Remove. 4668 (get_original_base): New function. 4669 (build_vtbl_initializer): Initialize vid.rtti_binfo. 4670 Use a virtual thunk for a ctor vtable with an index 4671 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a 4672 primary base within a constructor vtable. Only set 4673 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset 4674 when primary base has been lost. 4675 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment. 4676 46772001-02-26 Jeffrey Oldham <oldham@codesourcery.com> 4678 4679 * call.c (joust): Ensure more_specialized()'s argument length 4680 parameter has correct value for constructors. 4681 46822001-02-26 Nathan Sidwell <nathan@codesourcery.com> 4683 4684 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. 4685 4686 * decl.c (mark_inlined_fns): Prototype. 4687 46882001-02-22 Mark Mitchell <mark@codesourcery.com> 4689 4690 * spew.c (yylex): Correct handling of friends. 4691 46922001-02-22 Mark Mitchell <mark@codesourcery.com> 4693 4694 * mangle.c (write_encoding): Pass write_function_type the 4695 FUNCTION_DECL for the function being encoded. 4696 (write_function_type): Pass it along to write_bare_function_type. 4697 (write_bare_function_type): Pass it along to write_method_parms. 4698 (write_method_parms): Don't mangle the compiler-generated 4699 parameters to a constructor or destructor. 4700 47012001-02-22 Andreas Jaeger <aj@suse.de> 4702 4703 * optimize.c: Include toplev.h for 4704 note_deferral_of_defined_inline_function prototype. 4705 47062001-02-22 Jakub Jelinek <jakub@redhat.com> 4707 4708 * cp-tree.h (struct lang_decl_inlined_fns): New. 4709 (struct lang_decls): Add inlined_fns. 4710 (DECL_INLINED_FNS): New macro. 4711 * optimize.c (struct inline_data): Add inlined_fns. 4712 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro. 4713 (inlinable_function_p): Likewise, fix typo in comment, 4714 function is not inlinable if it already inlined function currently 4715 being optimized. 4716 (expand_call_inline): Add fn to inlined_fns if necessary. 4717 (optimize_function): Initialize inlined_fns. 4718 Save inlined_fns into DECL_INLINED_FNS after expanding inlines. 4719 * decl.c (mark_inlined_fns): New function. 4720 (lang_mark_tree): Call it. 4721 47222001-02-21 Jason Merrill <jason@redhat.com> 4723 4724 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag. 4725 (DECL_UNINLINABLE): Move to middle-end. 4726 4727 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn. 4728 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT. 4729 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone. 4730 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the 4731 parms and outer BLOCK. note_deferral_of_defined_inline_function. 4732 4733 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on 4734 second parm of op=. 4735 47362001-02-19 Mark Mitchell <mark@codesourcery.com> 4737 4738 * decl2.c (set_decl_namespace): Allow explicit instantiations in 4739 any namespace. 4740 47412001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4742 4743 * optimize.c (expand_call_inline): Don't walk subtrees of type 4744 nodes. 4745 47462001-02-18 Mark Mitchell <mark@codesourcery.com> 4747 4748 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry 4749 for a destructor. 4750 47512001-02-18 Jason Merrill <jason@redhat.com> 4752 4753 Do put the VTT parameter in DECL_ARGUMENTS. 4754 * cp-tree.h (struct cp_language_function): Add x_vtt_parm. 4755 (current_vtt_parm): New macro. 4756 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. 4757 (DECL_HAS_VTT_PARM_P): New macro. 4758 (DECL_VTT_PARM): Remove. 4759 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. 4760 * decl.c (duplicate_decls): Only copy the operator code if 4761 appropriate. 4762 (start_function): Set current_vtt_parm. 4763 (lang_mark_tree): Don't mark vtt_parm. 4764 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to 4765 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. 4766 * class.c (build_clone): Maybe remove the VTT parm. 4767 * optimize.c (maybe_clone_body): Set up the VTT parm. 4768 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. 4769 * call.c (build_over_call): Just allow the VTT arg. 4770 * method.c (make_thunk): Don't set DECL_VTT_PARM. 4771 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. 4772 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. 4773 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. 4774 * error.c (dump_function_decl): Likewise. 4775 * call.c (build_user_type_conversion_1, convert_like_real): Abort 4776 if we try to call a constructor with in-charge or VTT parms. 4777 * method.c (skip_artificial_parms_for): New fn. 4778 * call.c (add_function_candidate, build_over_call): Call it. 4779 * call.c (build_new_method_call): Use current_vtt_parm. 4780 * init.c (expand_virtual_init): Likewise. 4781 * class.c (same_signature_p): No longer static. 4782 * cp-tree.h: Declare it. 4783 * search.c (look_for_overrides_r): Use it. 4784 47852001-02-17 Mark Mitchell <mark@codesourcery.com> 4786 4787 * cp-tree.h (new_abi_rtti_p): Remove. 4788 (name_mangling_version): Likewise. 4789 (flag_do_squangling): Likewise. 4790 * class.c (build_rtti_vtbl_entries): Remove old ABI support. 4791 * decl.c (grokfndecl): Likewise. 4792 * decl2.c (name_mangling_version): Remove. 4793 (flag_do_squangling): Likewise. 4794 (lang_f_options): Remove `squangle'. 4795 (unsupported_options): Add `squangle'. 4796 (cxx_decode_option): Issue a warning about uses of 4797 -fname-mangling-version. 4798 (finish_file): Remove old ABI support. 4799 * pt.c (check_explicit_specialization): Likewise. 4800 (tsubst_decl): Likewise. 4801 * rtti.c (init_rtti_processing): Likewise. 4802 (build_headof): Likewise. 4803 (get_tinfo_decl_dynamic): Likewise. 4804 (tinfo_from_decl): Likewise. 4805 (build_dynamic_cast_1): Likewise. 4806 (synthesize_tinfo_var): Likewise. 4807 * init.c (build_new): Allow enumeration types for the array-bounds 4808 in a direct-new-declarator. 4809 4810 * semantics.c (finish_typeof): Resolve OFFSET_REFs. 4811 4812 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and 4813 TREE_PROTECTED from the template being specialized. 4814 48152001-02-17 Jason Merrill <jason@redhat.com> 4816 4817 * decl2.c (build_artificial_parm): Set TREE_READONLY. 4818 4819 * decl.c (bad_specifiers): Allow throw specs on things with 4820 pointer-to-function or -member-function type. 4821 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize 4822 a pmf. 4823 48242001-02-17 Mark Mitchell <mark@codesourcery.com> 4825 4826 * call.c (check_dtor_name): Handle template names correctly. 4827 48282001-02-16 Jason Merrill <jason@redhat.com> 4829 4830 * cp-tree.h (DECL_USE_VTT_PARM): Remove. 4831 * decl2.c (maybe_retrofit_in_chrg): Don't create it. 4832 * optimize.c (maybe_clone_body): Don't substitute it. 4833 * call.c (build_new_method_call): Check in_chrg instead. 4834 * init.c (expand_virtual_init): Likewise. 4835 48362001-02-16 Gabriel Dos Reis <gdr@codesourcery.com> 4837 4838 * decl.c (check_tag_decl): Make sure a typedef for an anonymous 4839 class-type introduces at least a type-name. 4840 48412001-02-16 Jakub Jelinek <jakub@redhat.com> 4842 4843 * call.c (convert_like_real): Create a temporary for non-lvalue. 4844 48452001-02-16 Jeffrey Oldham <oldham@codesourcery.com> 4846 4847 * cp-tree.h: Fix typos in comments. 4848 48492001-02-16 Jason Merrill <jason@redhat.com> 4850 4851 * optimize.c (remap_block): If we're compiling a clone, pass the 4852 new block to insert_block. 4853 48542001-02-16 Mark Mitchell <mark@codesourcery.com> 4855 4856 * semantics.c (finish_asm_stmt): Robustify. 4857 48582001-02-15 Mark Mitchell <mark@codesourcery.com> 4859 4860 * pt.c (push_template_decl_real): Don't remangle the name of a 4861 class template. 4862 48632001-02-15 Jim Meyering <meyering@lucent.com> 4864 4865 * Make-lang.in (c++.install-common): Depend on installdirs. 4866 (c++.install-info): Likewise. 4867 (c++.install-man): Likewise. 4868 48692001-02-15 Mark Mitchell <mark@codesourcery.com> 4870 4871 * typeck2.c (build_m_component_ref): Robustify. 4872 48732001-02-15 Alexandre Oliva <aoliva@redhat.com> 4874 4875 * friend.c (do_friend): Don't take the nested [template] class 4876 into account when deciding whether to warn about the friend 4877 function not referring to a template function. 4878 48792001-02-14 Jakub Jelinek <jakub@redhat.com> 4880 4881 * typeck.c (build_unary_op): Clarify error message. 4882 48832001-02-08 Aldy Hernandez <aldyh@redhat.com> 4884 4885 * parse.y (component_constructor_declarator): allow optional 4886 parentheses around constructor class name. 4887 48882001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4889 4890 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c 4891 section. 4892 * init.c (emit_base_init): Remove incorrect comment about 4893 virtual bases. 4894 * method.c (make_thunk): Fix comment alignment. 4895 48962001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4897 4898 Kill remnants of this is variable. 4899 * cp-tree.h (flag_this_is_variable): Remove. 4900 * decl2.c (flag_this_is_variable): Remove. 4901 * class.c (fixed_type_or_null): Add cdtor parm. Adjust. 4902 (build_vbase_path): The path is non-static, even in a cdtor. 4903 (resolves_to_fixed_type_p): Add additional return value. 4904 * search.c (init_vbase_pointers): Adjust. 4905 * tree.c (lvalue_p_1): Adjust. 4906 * typeck.c (mark_addressable): Adjust. 4907 49082001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4909 4910 * pt.c (unify): Don't check cv quals of array types. 4911 49122001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4913 4914 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to 4915 check whether we already have the type. 4916 49172001-02-13 Mark Mitchell <mark@codesourcery.com> 4918 4919 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment. 4920 * call.c (build_op_delete_call): Simplify to remove duplicate 4921 code. 4922 * class.c (clone_function_decl): Don't build the deleting variant 4923 of a non-virtual destructor. 4924 * decl.c (finish_destructor_body): Don't call delete if this is a 4925 non-virtual destructor. 4926 * init.c (build_delete): Explicitly call `operator delete' when 4927 deleting an object with a non-virtual destructor. 4928 49292001-02-13 Jason Merrill <jason@redhat.com> 4930 4931 * lang-specs.h: Add more __EXCEPTIONS. 4932 49332001-02-12 Nathan Sidwell <nathan@codesourcery.com> 4934 4935 * typeck2.c (process_init_constructor): Check 4936 TREE_HAS_CONSTRUCTOR before issuing missing init warning. 4937 49382001-02-12 Nathan Sidwell <nathan@codesourcery.com> 4939 4940 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case): 4941 Remove spurious information in comment. Allow further 4942 adjustments of REFERENCE_TYPE args. 4943 49442001-02-12 Nathan Sidwell <nathan@codesourcery.com> 4945 4946 * errfn.c (cp_deprecated): Tweak diagnostic text. 4947 * parse.y (new_initializer): Deprecate initializer lists 4948 extension. 4949 49502001-02-12 Mark Mitchell <mark@codesourcery.com> 4951 4952 Remove old ABI support. 4953 49542001-02-11 Mark Mitchell <mark@codesourcery.com> 4955 4956 * decl2.c (flag_vtable_thunks): Always set it to 1. 4957 (flag_new_abi): Likewise. 4958 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI. 4959 4960 * Makefile.in (g++spec.o): Fix typo. 4961 49622001-02-09 Jason Merrill <jason@redhat.com> 4963 4964 * lang-specs.h: Restore definition of __EXCEPTIONS. 4965 49662001-02-08 Jason Merrill <jason@redhat.com> 4967 4968 * search.c (shared_member_p): New function. 4969 (lookup_field_r): Use it. 4970 * cp-tree.h (SHARED_MEMBER_P): Remove. 4971 4972 * method.c (process_overload_item): Handle template-dependent array 4973 bounds. 4974 * pt.c (type_unification_real): If we end up with undeduced nontype 4975 parms, try again. 4976 4977 * decl.c (lookup_name_real): Tweak warning to refer to decls, not 4978 types. 4979 4980 * typeck2.c (friendly_abort): Don't say anything if we have 4981 earlier errors or sorries. 4982 4983 * decl.c (check_tag_decl): Notice attempts to redefine bool and 4984 wchar_t. Ignore if in_system_header. 4985 4986 * decl.c (maybe_push_cleanup_level): New fn... 4987 (start_decl_1): ...split out from here. 4988 * cvt.c (build_up_reference): Use it. 4989 * cp-tree.h: Declare it. 4990 49912001-02-07 Mark Mitchell <mark@codesourcery.com> 4992 4993 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor 4994 spec. 4995 49962001-02-06 Nathan Sidwell <nathan@codesourcery.com> 4997 4998 * pt.c (lookup_template_class): Make sure it's a primary 4999 template or template_template_parm when called from the parser. 5000 (instantiate_template_class): Add assertion. 5001 50022001-02-05 Alexandre Oliva <aoliva@redhat.com> 5003 5004 * method.c (build_mangled_name) [old abi]: Protect flush_repeats() 5005 from error_mark_node. 5006 50072001-02-05 Nathan Sidwell <nathan@codesourcery.com> 5008 5009 Fix specification and implementation bugs in V3 ABI 5010 construction vtables. 5011 * cp-tree.h (flag_dump_class_layout): New flag. 5012 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove. 5013 (BINFO_LOST_PRIMARY_P): New flag. 5014 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts. 5015 (BINFO_PRIMARY_MARKED_P): Rename to ... 5016 (BINFO_PRIMARY_P): ... here. 5017 (binfo_via_virtual): New prototype. 5018 * decl2.c (flag_dump_class_layout): New flag. 5019 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to 5020 use `=' as a file name separator. 5021 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary 5022 bases. 5023 (build_vtbl_address): If this is a virtual primary base, then 5024 get the vtbl of what it is ultimately primary for. 5025 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust 5026 for BINFO_PRIMARY_P. 5027 (dfs_skip_nonprimary_vbases_markedp): Likewise. 5028 (get_shared_vbase_if_not_primary): Likewise. 5029 (dfs_get_pure_virtuals): Likewise. 5030 (expand_upcast_fixups): Likewise. 5031 (fixup_virtual_upcast_offsets): Likewise. 5032 (dfs_find_vbase_instance): Likewise. 5033 (find_vbase_instance): Likewise. 5034 (binfo_from_vbase): Adjust comment to reflect reality. 5035 (binfo_via_virtual): New function. 5036 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros 5037 for binfo walking during VTT construction. 5038 (dfs_mark_primary_bases): Remove. 5039 (force_canonical_binfo_r): New function. 5040 (force_canonical_binfo): New function. 5041 (mark_primary_virtual_base): New function. 5042 (mark_primary_bases): Walk in inheritance graph order, use 5043 mark_primary_virtual_base. 5044 (determine_primary_base): Use some more intermediate variables. 5045 (dfs_find_final_overrider): Don't check for overriding along a 5046 virtual path. 5047 (dfs_modify_vtables): Walk into primary virtual bases too. 5048 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P. 5049 (build_base_fields): Likewise. 5050 (dfs_set_offset_for_unshared_vbases): Likewise. 5051 (layout_virtual_bases): Likewise. 5052 (end_of_class): Likewise. 5053 (finish_struct_1): Call dump_class_hierarchy, if requested. 5054 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos. 5055 (dump_class_hierarchy_r): Add stream parameter. Emit more information. 5056 (dump_class_hierarchy): Add file parameter. Append to file, if 5057 required. 5058 (finish_vtbls): Adjust accumulate_vtbl_inits call. 5059 Use canonical base for virtual bases. 5060 (build_vtt): Add more comments. Adjust build_vtt_inits call. 5061 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm. 5062 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P, 5063 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for 5064 virtual VTTs. 5065 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P 5066 from DATA. We want virtual primary bases and all bases via virtual. 5067 Only set BINFO_VPTR_INDEX for top level. Look up from a primary 5068 virtual base when not a construction vtable. 5069 (dfs_ctor_vtable_bases_queue_p): New DFS predicate. 5070 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call. 5071 Use canonical bases when processing virtual bases. 5072 (accumulate_vtbl_inits): We're interested in any base via a 5073 virtual path. 5074 (dfs_accumulate_vtbl_inits): If this is a primary virtual base 5075 within a construction vtable, determine what is being overridden. 5076 (build_vtbl_initializer): Add more comments 5077 (add_vcall_offset_vtbl_entries_1): Adjust comment. 5078 (build_rtti_vtbl_entries): Check if the base has lost its 5079 primary. 5080 50812001-02-05 Mark Mitchell <mark@codesourcery.com> 5082 5083 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. 5084 5085Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5086 5087 * decl.c (pushdecl): Call abort instead of fatal. 5088 * except.c (decl_is_java_type): Call fatal_error instead of fatal. 5089 * init.c (build_new_1): Likewise. 5090 (build_java_class_ref): Call internal_error and fatal_error, not fatal. 5091 * decl.c (build_typename_type): hash_table_init now returns void. 5092 decl.c (init_decl_processing): Make an error non-fatal. 5093 50942001-02-04 Mark Mitchell <mark@codesourcery.com> 5095 5096 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting. 5097 Document. 5098 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 5099 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 5100 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 5101 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 5102 * decl.c (maybe_commonize_var): Use the new name-mangling where 5103 appropriate. 5104 * decl2.c (comdat_linkage): Enhance comments. Make all 5105 compiler-generated things static, if COMDAT is not available. 5106 (get_tinfo_decl): Do not make typeinfo objects that belong in the 5107 library COMDAT. 5108 (tinfo_base_init): Use the correct mangled name for typeinfo 5109 strings, and push them into the global scope. 5110 (typeinfo_in_lib_p): New function. 5111 (synthesize_tinfo_var): Use it. 5112 (create_real_tinfo_var): Likewise. 5113 51142001-02-03 Jakub Jelinek <jakub@redhat.com> 5115 5116 * decl.c (push_class_binding): Use context_for_name_lookup instead 5117 of CP_DECL_CONTEXT. 5118 * search.c (context_for_name_lookup): Remove static. Check for NULL 5119 context in the loop. 5120 * cp-tree.h (context_for_name_lookup): Add prototype. 5121 51222001-02-02 Jakub Jelinek <jakub@redhat.com> 5123 5124 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove. 5125 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack): 5126 Remove. 5127 * call.c (convert_class_to_reference, build_user_type_conversion_1, 5128 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper. 5129 51302001-02-02 Mark Mitchell <mark@codesourcery.com> 5131 5132 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list 5133 of macros used when compiling g++spec.c. 5134 * g++spec.c (lang_specific_driver): Link with the shared 5135 libgcc by default. 5136 51372001-01-29 Joseph S. Myers <jsm28@cam.ac.uk> 5138 5139 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator, 5140 make_reference_declarator, make_call_declarator), method.c 5141 (implicitly_declare_fn), parse.y (namespace_using_decl, 5142 notype_unqualified_id, expr_or_declarator, new_type_id, 5143 after_type_declarator, direct_after_type_declarator, 5144 notype_declarator, complex_notype_declarator, 5145 complex_direct_notype_declarator, qualified_id, 5146 notype_qualified_id, overqualified_id, direct_new_declarator, 5147 absdcl, direct_abstract_declarator, conversion_declarator), pt.c 5148 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt 5149 instead of build_parse_node. 5150 51512001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5152 5153 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE. 5154 (minus_one_node): Moved to top level gcc directory. Renamed 5155 to integer_minus_one_node. 5156 5157 * init.c (init_init_processing): Don't set minus_one_node. 5158 (build_vec_init): Use integer_minus_one_node. 5159 5160 * rtti.c (get_tinfo_decl_dynamic): Likewise. 5161 51622001-01-28 Jakub Jelinek <jakub@redhat.com> 5163 5164 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments 5165 identical and they would be replaced with constant, remove 5166 MODIFY_EXPR from the tree. 5167 51682001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5169 5170 * Make-lang.in: Remove all dependencies on defaults.h. 5171 * call.c: Don't include defaults.h. 5172 * decl.c: Likewise. 5173 * decl2.c: Likewise. 5174 * except.c: Likewise. 5175 * pt.c: Likewise. 5176 * rtti.c: Likewise. 5177 * tree.c: Likewise. 5178 * typeck.c: Likewise. 5179 51802001-01-25 Jakub Jelinek <jakub@redhat.com> 5181 5182 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded 5183 operators even in "C" linkage. 5184 * method.c (set_mangled_name_for_decl): Likewise. 5185 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for 5186 overloaded operators in "C" linkage. 5187 51882001-01-24 Nathan Sidwell <nathan@codesourcery.com> 5189 5190 * pt.c (tsubst_decl): Remove IN_DECL parameter. 5191 (tsubst_arg_types): Check parameter is not void. 5192 (tsubst): Adjust tsubst_decl call. 5193 51942001-01-24 Nathan Sidwell <nathan@codesourcery.com> 5195 5196 * call.c (add_builtin_candidate): Quote std properly, from 5197 previous change. 5198 51992001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5200 5201 * pt.c (check_explicit_specialization): Clone constructors and 5202 destructors. 5203 52042001-01-23 Nathan Sidwell <nathan@codesourcery.com> 5205 5206 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC 5207 indicates anything special about template depth. Make sure we 5208 only count the user visible template classes. 5209 52102001-01-23 Nathan Sidwell <nathan@codesourcery.com> 5211 5212 * call.c (build_conv): Typo in comment. 5213 (add_builtin_candidate): Add more explanation. 5214 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR. 5215 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates 5216 when we have enumeral types. 5217 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE 5218 candidates for relops and eqops. 5219 (joust): Simplify control flow. Allow a non-template user 5220 function to hide a builtin. 5221 52222001-01-22 Nathan Sidwell <nathan@codesourcery.com> 5223 5224 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER. 5225 (more_specialized): Add deduction parameter. 5226 * call.c (joust): Adjust more_specialized call. 5227 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL, 5228 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags. 5229 (get_bindings_order): Remove. 5230 (get_bindings_real): Add DEDUCE parameter. 5231 (maybe_adjust_types_for_deduction): Return extra unify flags. Do 5232 REFERENCE_TYPE jig for DEDUCE_ORDER. 5233 (type_unification_real): Deal with DEDUCE_ORDER. Use result of 5234 maybe_adjust_types_for_deduction. 5235 (more_specialized): Add DEDUCE parameter. Call get_bindings_real 5236 directly. 5237 (try_one_overload): Use result of maybe_adjust_types_for_deduction. 5238 (check_cv_quals_for_unify): Use new unify qualifier flags. 5239 (unify): Clear new unify qualifier flags. 5240 (get_bindings_real): Add DEDUCE parameter. 5241 (get_bindings): Adjust call to get_bindings_real. 5242 (get_bindings_overload): Likewise. 5243 (most_specialized_instantiation): Adjust call to 5244 more_specialized. 5245 52462001-01-19 Jason Merrill <jason@redhat.com> 5247 5248 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI. 5249 5250 * decl.c (init_decl_processing): Just force -fvtable-thunks on if 5251 -fnew-abi. 5252 52532001-01-19 Ute Pelkmann <scope.muc@t-online.de> 5254 5255 * decl2.c (arg_assoc_class): Fix double iteration logic. 5256 52572001-01-19 Jason Merrill <jason@redhat.com> 5258 5259 * init.c (build_delete): Always call convert_force to strip cv-quals. 5260 5261 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI. 5262 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI. 5263 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI. 5264 52652001-01-19 Nathan Sidwell <nathan@codesourcery.com> 5266 5267 * search.c (get_vbase_1): Count only virtual bases. 5268 52692001-01-19 Nathan Sidwell <nathan@codesourcery.com> 5270 5271 * class.c (duplicate_tag_error): Robustify flag clearing. 5272 52732001-01-19 Nathan Sidwell <nathan@codesourcery.com> 5274 5275 * cp-tree.h (lookup_template_class): Add complain parm. 5276 * decl.c (lookup_namespace_name): Adjust call to 5277 lookup_template_class. 5278 (make_typename_type): Likewise. 5279 * semantics.c (finish_template_type): Likewise. 5280 * pt.c (lookup_template_class): Add complain parm. Adjust. 5281 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class. 5282 (tsubst): Likewise. 5283 52842001-01-19 Nathan Sidwell <nathan@codesourcery.com> 5285 5286 * pt.c (copy_default_args_to_explicit_spec): Preserve 5287 object's CV quals. Reorganize. 5288 52892001-01-18 Nathan Sidwell <nathan@codesourcery.com> 5290 5291 * typeck.c (build_modify_expr): Say `initialization' for 5292 INIT_EXPRs. 5293 * init.c (build_default_init): Convert to enumeral type, if 5294 needed. 5295 52962001-01-18 Jakub Jelinek <jakub@redhat.com> 5297 5298 * parse.y (nomods_initdcl0): Properly set things up for 5299 initdcl0_innards. 5300 53012001-01-18 Nathan Sidwell <nathan@codesourcery.com> 5302 5303 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag. 5304 (type_unification_real): Set it. 5305 (unify): Use it. 5306 53072001-01-18 Nathan Sidwell <nathan@codesourcery.com> 5308 5309 * decl.c (finish_destructor_body): Convert to vbase pointer here. 5310 53112001-01-18 Nathan Sidwell <nathan@codesourcery.com> 5312 5313 * semantics.c (begin_class_definition): Check we're not inside a 5314 template parm list. 5315 53162001-01-18 Nathan Sidwell <nathan@codesourcery.com> 5317 5318 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of 5319 BASELINK_P. 5320 53212001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5322 5323 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. 5324 * call.c (build_over_call): Add comment. 5325 53262001-01-16 Daniel Berlin <dberlin@redhat.com> 5327 5328 * cvt.c (ocp_convert): Handle vector type conversion 5329 * typeck2.c (digest_init): Handle vector type initializations 5330 53312001-01-16 Phil Edwards <pme@sources.redhat.com> 5332 5333 * g++spec.c: Don't add libraries needlessly if -fsyntax-only 5334 was given. 5335 53362001-01-15 Nathan Sidwell <nathan@codesourcery.com> 5337 5338 * pt.c (check_nontype_parm): Rename to ... 5339 (invalid_nontype_parm_type_p): ... here. 5340 (process_template_parm): Adjust. 5341 (convert_template_argument): Adjust. 5342 53432001-01-15 Nathan Sidwell <nathan@codesourcery.com> 5344 5345 * pt.c (check_nontype_parm): New function. 5346 (process_template_parm): Use it. 5347 (convert_template_argument): Use it. 5348 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to 5349 member. 5350 53512001-01-14 Jeffrey Oldham <oldham@codesourcery.com> 5352 5353 * tree.c: Add defaults.h 5354 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. 5355 * Make-lang.in (cp/tree.o): Add defaults.h. 5356 53572001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 5358 5359 * Make-lang.in (CXX_C_OBJS): Add c-format.o. 5360 53612001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 5362 5363 * g++.1: Change to be ".so man1/gcc.1". 5364 53652001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 5366 5367 * Make-lang.in (c++.info, c++.install-info): Build and install g++ 5368 internals info. 5369 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info. 5370 ($(srcdir)/cp/g++int.info): New target. 5371 * gxxint.texi: Add info directory entry. Use @@ in email address. 5372 * .cvsignore: Update. 5373 53742001-01-12 Nathan Sidwell <nathan@codesourcery.com> 5375 5376 * typeck.c (build_c_cast): Do template processing earlier. 5377 Always pedwarn on array casts. 5378 53792001-01-12 Nathan Sidwell <nathan@codesourcery.com> 5380 5381 * friend.c (make_friend_class): Make sure a templated class is 5382 actually a template. 5383 53842001-01-11 Nathan Sidwell <nathan@codesourcery.com> 5385 5386 * decl2.c (get_guard): Set linkage from guarded decl. 5387 53882001-01-11 Nathan Sidwell <nathan@codesourcery.com> 5389 5390 * call.c (convert_default_arg): Check for unprocessed 5391 DEFAULT_ARG. 5392 * cp-tree.h (replace_defarg): Move to spew.c. 5393 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to 5394 spew.c, which is where they really are. 5395 (done_pending_defargs): Declare. 5396 (unprocessed_defarg_fn): Declare. 5397 * decl.c (replace_defarg): Move to spew.c 5398 * parse.y (structsp): Call done_pending_defargs. 5399 * spew.c (defarg_fns): Rearrange list structure. 5400 (defarg_fnsdone): New static variable. 5401 (defarg_depfns): New static variable. 5402 (init_spew): Adjust. 5403 (add_defarg_fn): Store the type in TREE_TYPE. 5404 (do_pending_defargs): Detect and deal with ordering constraints 5405 and circularity. 5406 (done_pending_defargs): New function. 5407 (unprocessed_defarg_fn): New function. 5408 (replace_defarg): Moved from decl.c. Robustify. Don't save 5409 if circularity detected. 5410 54112001-01-11 Nathan Sidwell <nathan@codesourcery.com> 5412 5413 * pt.c (unify): Check array has a domain, before checking 5414 whether it is variable sized. 5415 54162001-01-11 Nathan Sidwell <nathan@codesourcery.com> 5417 5418 * decl.c (grokparms): Unobfuscate and get correct diagnostic for 5419 parameters with pointers to arrays of unknown bound. 5420 54212001-01-11 Nathan Sidwell <nathan@codesourcery.com> 5422 5423 * parse.y (template_parm_header, template_spec_header): New 5424 reductions. Split out from ... 5425 (template_header): ... here. Use them. 5426 (template_template_parm): Use template_parm_header. 5427 * semantics.c (finish_template_template_parm): Add assert. 5428 54292001-01-10 Mark Mitchell <mark@codesourcery.com> 5430 5431 * mangle.c (write_builtin_type): Fix thinko. 5432 5433 * pt.c (copy_default_args_to_explicit_spec_1): New function. 5434 (copy_default_args_to_explicit_spec): Likewise. 5435 (check_explicit_specialization): Use it. 5436 5437 * class.c (finish_struct_1): Remove last argument in call to 5438 make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 5439 * decl.c (builtin_function): Likewise. 5440 (build_cp_library_fn): Likewise. 5441 (check_initializer): Likewise. 5442 (make_rtl_for_nonlocal_decl): Likewise. 5443 (cp_finish_decl): Likewise. 5444 (start_function): Likewise. 5445 * decl2.c (finish_anon_union): Likewise. 5446 * friend.c (do_friend): Likewise. 5447 * init.c (build_java_class_ref): Likewise. 5448 * method.c (make_thunk): Likewise. 5449 * pt.c (tsubst_friend_function): Likewise. 5450 * semantics.c (expand_body): Likewise. 5451 54522001-01-10 Mark Mitchell <mark@codesourcery.com> 5453 5454 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not 5455 looking at DECL_CLONED_FUNCTION for non-functions. 5456 54572001-01-10 Nathan Sidwell <nathan@codesourcery.com> 5458 5459 * error.c (dump_template_parameter): Use parm to determine how 5460 to print default value. 5461 54622001-01-10 Nathan Sidwell <nathan@codesourcery.com> 5463 5464 * class.c (duplicate_tag_error): Clear more flags. 5465 54662001-01-10 Nathan Sidwell <nathan@codesourcery.com> 5467 5468 * call.c (build_new_method_call): Use binfo_for_vbase. 5469 54702001-01-10 Joseph S. Myers <jsm28@cam.ac.uk> 5471 5472 * cp-tree.h (flag_cond_mismatch): Don't declare. 5473 * decl2.c (flag_cond_mismatch): Don't define. 5474 (lang_f_options): Remove cond-mismatch. 5475 (unsupported_options): Add cond-mismatch. 5476 54772001-01-09 Nathan Sidwell <nathan@codesourcery.com> 5478 5479 * class.c (handle_using_decl): Reject using of constructor name 5480 of sourcing class. Allow injecting of a method with same name as 5481 nested class. Fixup error messages. 5482 54832001-01-09 Joseph S. Myers <jsm28@cam.ac.uk> 5484 5485 * decl2.c (lang_decode_option): Handle -Wformat=2. 5486 54872001-01-08 Nathan Sidwell <nathan@codesourcery.com> 5488 5489 * cp-tree.h (lang_decl_flags): Rename defined_in_class to 5490 initialized_in_class. 5491 (DECL_DEFINED_IN_CLASS_P): Rename to ... 5492 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning. 5493 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P. 5494 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P. 5495 * pt.c (check_default_tmpl_args): Adjust for 5496 DECL_INITIALIZED_IN_CLASS_P. 5497 (instantiate_class_template): Likewise. 5498 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P. 5499 5500 * class.c (finish_struct): Constify saved_filename. 5501 55022001-01-08 Nathan Sidwell <nathan@codesourcery.com> 5503 5504 * class.c (duplicate_tag_error): Adjust diagnostic. 5505 (finish_struct): Locally set location to start of struct. 5506 * decl.c (fixup_anonymous_aggr): Use cp_error_at. 5507 55082001-01-08 Nathan Sidwell <nathan@codesourcery.com> 5509 5510 * decl.c (struct binding_level): Adjust class_shadowed comments 5511 to reflect reality. 5512 (push_class_level_binding): Adjust comments to reflect reality. 5513 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. 5514 Don't set TREE_VALUE on the class_shadowed list. 5515 55162001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 5517 5518 * decl2.c (acceptable_java_type): Allow references too. 5519 * init.c (build_java_class_ref): When using the new ABI, search 5520 `class$' and have it mangled with `mangle_decl.' 5521 * mangle.c (write_java_integer_type_codes): New function. 5522 (write_builtin_type): Detect and mangle Java integer and real 5523 types. 5524 55252001-01-07 Mark Mitchell <mark@codesourcery.com> 5526 5527 * decl2.c (grokfield): Don't accept `asm' specifiers for 5528 non-static data members. 5529 55302001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5531 5532 * expr.c (cplus_expand_expr): Don't reset `target'. 5533 55342001-01-07 Neil Booth <neil@daikokuya.demon.co.uk> 5535 5536 * cp/decl2.c (cxx_post_options): Call cpp_post_options. 5537 55382001-01-05 Nathan Sidwell <nathan@codesourcery.com> 5539 5540 * parse.y (template_datadef): Check for error_mark_node. 5541 55422001-01-05 Nathan Sidwell <nathan@codesourcery.com> 5543 5544 * cp-tree.def (DEFAULT_ARG): Make `x' class. 5545 55462001-01-04 Joseph S. Myers <jsm28@cam.ac.uk> 5547 5548 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define. 5549 (record_builtin_type): Make non-static. 5550 (flag_short_double): Don't declare. 5551 (init_decl_processing): Remove the creation of many tree nodes now 5552 in c_common_nodes_and_builtins. 5553 (build_void_list_node): New function. 5554 * decl2.c (flag_short_double, flag_short_wchar): Don't define. 5555 * cp-tree.h (flag_short_wchar): Don't declare. 5556 55572001-01-04 Mark Mitchell <mark@codesourcery.com> 5558 5559 * call.c (build_conv): Don't use build1 for USER_CONV. 5560 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. 5561 55622001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 5563 5564 * lex.c (lang_init): Call c_common_lang_init. 5565 55662001-01-03 Nathan Sidwell <nathan@codesourcery.com> 5567 5568 * search.c (lookup_fnfields_here): Remove. 5569 (look_for_overrides_r): Use lookup_fnfields_1. 5570 Ignore functions from using declarations. 5571 55722001-01-03 Nathan Sidwell <nathan@codesourcery.com> 5573 5574 Implement exceptions specifiers for implicit member functions. 5575 * cp-tree.h (merge_exceptions_specifiers): Declare new function. 5576 * method.c (synthesize_exception_spec): New function. 5577 (locate_dtor, locate_ctor, locate_copy): New functions. 5578 (implicitly_declare_fn): Generate the exception spec too. 5579 * search.c (check_final_overrider): Check artificial functions 5580 too. 5581 * typeck2.c (merge_exception_specifiers): New function. 5582 55832001-01-03 Jason Merrill <jason@redhat.com> 5584 5585 * init.c (build_default_init): New fn. 5586 (perform_member_init): Split out from here. 5587 (build_new_1): Use it. Simplify initialization logic. 5588 (build_vec_init): Take an array, rather than a pointer and maxindex. 5589 Speed up simple initializations. Don't clean up if we're assigning. 5590 * cp-tree.h: Adjust. 5591 * decl2.c (do_static_initialization): Remove TREE_VEC case. 5592 * parse.y (new_initializer): Return void_zero_node for (). 5593 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR. 5594 * typeck2.c (digest_init): Only complain about user-written 5595 CONSTRUCTORs. 5596 55972000-12-22 Mike Stump <mrs@wrs.com> 5598 5599 * decl2.c: (max_tinst_depth): Increase to 50. 5600 56012001-01-02 Mark Mitchell <mark@codesourcery.com> 5602 5603 * class.c (invalidate_class_lookup_cache): Zero the 5604 previous_class_values. 5605 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not 5606 TREE_INT_CST_HIGH. 5607 (CLASSTYPE_TEMPLATE_LEVEL): Likewise. 5608 * decl.c (free_bindings): New variable. 5609 (push_binding): Don't create a new binding if we have one on the 5610 free list. 5611 (pop_binding): Put old bindings on the free list. 5612 (init_decl_processing): Use size_int, not build_int_2. 5613 Register free_bindings as a GC root. 5614 (cp_make_fname_decl): Use size_int, not build_int_2. 5615 (push_inline_template_parms_recursive): Likewise. 5616 (end_template_parm_list): Likewise. 5617 (for_each_tempalte_parm): Do not use walk_tree_without_duplicates. 5618 (tsubst_template_parms): Use size_int, not build_int_2. 5619 (tsubst): Likewise. 5620 * rtti.c (get_vmi_pseudo_type_info): Likewise. 5621 56222001-01-02 Richard Henderson <rth@redhat.com> 5623 5624 * parse.y (asm): Set ASM_INPUT_P. 5625 56262001-01-02 Jason Merrill <jason@redhat.com> 5627 5628 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE 5629 for v3 ABI. 5630 5631 * typeck.c (cp_truthvalue_conversion): New fn. 5632 * cvt.c (ocp_convert): Use it. 5633 5634 * cp-tree.h: Lose c-common.c decls. 5635 5636 * typeck.c (build_unary_op): Restore old &a.f diagnostic code. 5637 * cvt.c (convert_to_void): Use type_unknown_p. 5638 5639 * typeck.c (strip_all_pointer_quals): Also strip quals from 5640 pointer-to-member types. 5641 5642 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat 5643 parse.y as C. 5644 5645 * call.c (build_new_method_call): Do evaluate the object parameter 5646 when accessing a static member. 5647 * typeck.c (build_component_ref): Likewise. 5648 56492001-01-02 Andreas Jaeger <aj@suse.de> 5650 5651 * decl.c (cp_missing_noreturn_ok_p): New. 5652 (init_decl_processing): Set lang_missing_noreturn_ok_p. 5653 56542000-12-29 Jakub Jelinek <jakub@redhat.com> 5655 5656 * decl.c (init_decl_processing): Fix sign of wchar_type_node. 5657 56582000-12-29 Mark Mitchell <mark@codesourcery.com> 5659 5660 * class.c (pushclass): Remove #if 0'd code. 5661 * cp-tree.h (overload_template_name): Remove. 5662 * decl.c (store_bindings): Simplify. 5663 (pop_from_top_level): Likewise. 5664 * pt.c (overload_template_name): Remove. 5665 (instantiate_decl): Don't call push_to_top_level if it's not 5666 needed. 5667 56682000-12-28 Mark Mitchell <mark@codesourcery.com> 5669 5670 * pt.c (register_local_specialization): Don't return a value. 5671 (lookup_template_class): Use move-to-front heuristic when looking 5672 up template instantiations. 5673 (instantiate_decl): Only push_to_top_level when we're actually 5674 going to instantiate the template. 5675 56762000-12-29 Hans-Peter Nilsson <hp@bitrange.com> 5677 5678 * search.c (binfo_for_vtable): Return least derived class, not 5679 most. Handle secondary vtables. 5680 56812000-12-22 Jason Merrill <jason@redhat.com> 5682 5683 * pt.c (more_specialized): Don't optimize len==0. 5684 (fn_type_unification): If we're adding the return type, increase len. 5685 5686 * typeck.c (build_binary_op): Fix pmf comparison logic. 5687 5688 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not 5689 DECL_STATIC_FUNCTION_P. 5690 5691 * semantics.c (genrtl_finish_function): Don't try to jump to 5692 return_label unless it exists. 5693 5694 In partial ordering for a call, ignore parms for which we don't have 5695 a real argument. 5696 * call.c (joust): Pass len to more_specialized. 5697 (add_template_candidate_real): Strip 'this', pass len. 5698 * pt.c (more_specialized): Pass len down. Lose explicit_args parm. 5699 (get_bindings_order): New fn. Pass len down. 5700 (get_bindings_real): Strip 'this', pass len. 5701 (fn_type_unification): Likewise. 5702 (type_unification_real): Succeed after checking 'len' args. 5703 (most_specialized_instantiation): Lose explicit_args parm. 5704 * class.c (resolve_address_of_overloaded_function): Strip 'this', 5705 pass len. 5706 57072000-12-21 Jason Merrill <jason@redhat.com> 5708 5709 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not 5710 DECL_TEMPLATE_RESULT. 5711 5712 * search.c (lookup_field_r): Call lookup_fnfields_1, not 5713 lookup_fnfields_here. 5714 5715 * parse.y (typename_sub2): Return the TYPE_DECL, not the type. 5716 5717 * call.c (build_object_call): Also allow conversions that return 5718 reference to pointer to function. 5719 (add_conv_candidate): Handle totype being ref to ptr to fn. 5720 (build_field_call): Also allow members of type reference to function. 5721 Lose support for calling pointer to METHOD_TYPE fields. 5722 5723 * error.c (dump_expr): Handle *_CAST_EXPR. 5724 5725 * typeck2.c (build_scoped_ref): Always convert to the naming class. 5726 5727 * tree.c (break_out_cleanups): Lose. 5728 * cp-tree.h: Remove prototype. 5729 * typeck.c (build_component_ref): Don't break_out_cleanups. 5730 (build_compound_expr): Likewise. 5731 * semantics.c (finish_expr_stmt): Likewise. 5732 57332000-12-20 Richard Henderson <rth@redhat.com> 5734 5735 * cp-tree.h: Update declarations. 5736 * decl.c (finish_case_label): Return the new stmt node. 5737 * semantics.c (finish_goto_stmt): Likewise. 5738 (finish_expr_stmt, finish_return_stmt): Likewise. 5739 (finish_break_stmt, finish_continue_stmt): Likewise. 5740 (finish_asm_stmt): Likewise. 5741 * parse.y (already_scoped_stmt): Set STMT_LINENO. 5742 (compstmt, implicitly_scoped_stmt, stmt): Likewise. 5743 (simple_if, simple_stmt): Return the new stmt node. 5744 (save_lineno): New. 5745 57462000-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 5747 5748 * cp-tree.h: Don't declare warn_long_long. 5749 57502000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5751 5752 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of 5753 IS_AGGR_TYPE. 5754 57552000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5756 5757 * pt.c (unify): Handle when both ARG and PARM are 5758 BOUND_TEMPLATE_TEMPLATE_PARM. 5759 57602000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5761 5762 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and 5763 DECL_TEMPLATE_PARM_P. 5764 57652000-12-15 Jason Merrill <jason@redhat.com> 5766 5767 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs! 5768 5769 * init.c (build_new_1): Don't strip quals from type. 5770 5771 * decl.c (pushdecl): Don't check for linkage on a non-decl. 5772 5773 * call.c (build_op_delete_call): See through ARRAY_TYPEs. 5774 5775 * call.c (build_new_function_call): Lose space before paren in 5776 error message. 5777 (build_new_method_call): Likewise. 5778 5779 * typeck2.c (build_m_component_ref): Propagate quals from datum. 5780 57812000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5782 5783 * pt.c (check_explicit_specialization): Propagate default 5784 function arguments to explicit specializations. 5785 57862000-12-13 DJ Delorie <dj@redhat.com> 5787 5788 * typeck.c (build_binary_op): Do signed/unsigned warnings for >? 5789 and <? operators. 5790 57912000-12-08 Jason Merrill <jason@redhat.com> 5792 5793 * error.c (dump_function_name): Don't let the user see __comp_ctor. 5794 5795 Clean up copy-initialization in overloading code. 5796 * call.c (build_user_type_conversion_1): Die if we are asked to 5797 convert to the same or a base type. 5798 (implicit_conversion): Avoid doing so. Lose reference binding code. 5799 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit 5800 direct-initialization. Also do direct-init part of copy-init. 5801 (build_user_type_conversion): Don't provide context to convert_like. 5802 * cvt.c (ocp_convert): build_user_type_conversion will now provide 5803 the constructor call for copy-init. 5804 5805 * pt.c (tsubst_decl): Call clone_function_decl here if this is an 5806 instantiation of a member template. 5807 (do_decl_instantiation): Not here. 5808 58092000-12-07 Nathan Sidwell <nathan@codesourcery.com> 5810 5811 * class.c (check_field_decls): Don't special case anonymous 5812 fields in error messages. 5813 (note_name_declared_in_class): Use %D on diagnostic. 5814 5815 * tree.c (pod_type_p): Use strip_array_types. 5816 (cp_valid_lang_attribute): Likewise. 5817 * typeck.c (cp_type_quals): Strip arrays separately, to avoid 5818 multiple evaluations. 5819 (cp_has_mutable_p): Use strip_array_types. 5820 58212000-12-07 Nathan Sidwell <nathan@codesourcery.com> 5822 5823 * cp-tree.h (sufficient_parms_p): Declare new function. 5824 * call.c (sufficient_parms_p): New function, broken out of ... 5825 (add_function_candidate): ... here. Use it. 5826 (add_conv_candidate): Use it. 5827 * decl.c (grok_ctor_properties): Use it. 5828 58292000-12-07 Jakub Jelinek <jakub@redhat.com> 5830 5831 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT. 5832 58332000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> 5834 5835 * decl2.c (lang_decode_option): Handle -Wformat-security. 5836 58372000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5838 5839 * pt.c (verify_class_unification): New function. 5840 (get_class_bindings): Use it. 5841 (try_class_unification): Tidy. 5842 (unify): Handle when argument of a template-id is not 5843 template parameter dependent. 5844 (template_args_equal): Handle when TREE_CODE's do not match. 5845 58462000-12-06 Alexandre Oliva <aoliva@redhat.com> 5847 5848 * lang-specs.h (c++): When invoking the stand-alone preprocessor 5849 for -save-temps, pass all relevant -Defines to it, and then don't 5850 pass them to cc1plus. 5851 58522000-12-05 Will Cohen <wcohen@redhat.com> 5853 5854 * decl.c (finish_case_label): Cleared 5855 more_cleanups_ok in surrounding function scopes. 5856 (define_label): Likewise. 5857 58582000-12-05 Nathan Sidwell <nathan@codesourcery.com> 5859 5860 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document. 5861 (get_matching_virtual): Remove. 5862 (look_for_overrides): Declare new function. 5863 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or 5864 DECL_VINDEX here. 5865 * class.c (check_for_override): Move base class iteration code 5866 to look_for_overrides. 5867 * search.c (next_baselink): Remove. 5868 (get_virtuals_named_this): Remove. 5869 (get_virtual_destructor): Remove. 5870 (tree_has_any_destructors_p): Remove. 5871 (struct gvnt_info): Remove. 5872 (check_final_overrider): Remove `virtual' from error messages. 5873 (get_matching_virtuals): Remove. Move functionality to ... 5874 (look_for_overrides): ... here, and ... 5875 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found 5876 to be overriding. 5877 58782000-12-05 Nathan Sidwell <nathan@codesourcery.com> 5879 5880 * typeck.c (get_delta_difference): If via a virtual base, 5881 return zero. 5882 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no 5883 adjustment. 5884 58852000-12-04 Richard Henderson <rth@redhat.com> 5886 5887 * error.c (dump_tree): Use output_add_string not OB_PUTS. 5888 58892000-12-04 Jason Merrill <jason@redhat.com> 5890 5891 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". 5892 (write_builtin_type): Pass intSI_type_node and the like through 5893 type_for_mode. 5894 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. 5895 Pass intSI_type_node and the like through type_for_mode. 5896 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. 5897 * pt.c (tsubst, unify): Likewise. 5898 * tree.c (walk_tree): Likewise. 5899 * error.c (dump_type): Likewise. 5900 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. 5901 5902 * Make-lang.in: Tweak top comment for emacs. 5903 (cp/TAGS): Restore. 5904 5905 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. 5906 5907 * class.c (clone_function_decl): Robustify. 5908 59092000-12-04 Michael Matz <matzmich@cs.tu-berlin.de> 5910 5911 * decl.c (store_bindings): Only search in the non modified 5912 old_bindings for duplicates. 5913 59142000-12-04 Nathan Sidwell <nathan@codesourcery.com> 5915 5916 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not 5917 TYPE_POLYMORPHIC_P. 5918 5919 * typeck.c (build_static_cast): Remove unused variable. 5920 59212000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5922 5923 * pt.c: Fix typo in comment. 5924 59252000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 5926 5927 * decl2.c (warn_format): Remove definition. 5928 (lang_decode_option): Handle -Wformat-nonliteral, 5929 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat. 5930 59312000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 5932 5933 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. 5934 (init_decl_processing): Don't create string_type_node, 5935 const_string_type_node, wint_type_node, intmax_type_node, 5936 uintmax_type_node, default_function_type, ptrdiff_type_node and 5937 unsigned_ptrdiff_type_node. Adjust position of call to 5938 c_common_nodes_and_builtins. 5939 (identifier_global_value): New function. 5940 59412000-12-01 Nathan Sidwell <nathan@codesourcery.com> 5942 5943 * call.c (standard_conversion): Reject pointer to member 5944 conversions from ambiguous, inaccessible or virtual bases. 5945 * typeck.c (build_static_cast): Don't check pointers to members 5946 specially. 5947 59482000-11-30 Nathan Sidwell <nathan@codesourcery.com> 5949 5950 * method.c (do_build_copy_constructor): Preserve cv 5951 qualifications when accessing source object members. 5952 (do_build_assign_ref): Likewise. Remove separate diagnostics for 5953 unnamed fields. 5954 59552000-11-30 Nathan Sidwell <nathan@codesourcery.com> 5956 5957 * method.c (do_build_assign_ref): Construct appropriately 5958 CV-qualified base reference. Don't allow const casts in base 5959 conversion. 5960 59612000-11-30 Nathan Sidwell <nathan@codesourcery.com> 5962 5963 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on 5964 incomplete return type. 5965 59662000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5967 5968 * parse.y (base_class.1): Produce a _TYPE not a _DECL. 5969 * semantics.c (finish_base_specifier): Accept a _TYPE not a 5970 _DECL. 5971 59722000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5973 5974 * spew.c (yyerror): Cope if yylval.ttype is NULL. 5975 59762000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5977 5978 * decl.c (grokdeclarator): Diagnose undefined template contexts. 5979 59802000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5981 5982 * decl.c (grokdeclarator): Do type access control on friend 5983 class. 5984 59852000-11-27 Nathan Sidwell <nathan@codesourcery.com> 5986 5987 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by 5988 bison parser ickiness. 5989 * pt.c (tsubst_friend_function): Enter namespace scope when 5990 tsubsting the function name. 5991 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality. 5992 59932000-11-27 Nathan Sidwell <nathan@codesourcery.com> 5994 5995 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo. 5996 * cvt.c (cp_convert_to_pointer): Add force parameter. 5997 Allow conversions via virtual base if forced. 5998 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer. 5999 (ocp_convert): Likewise. 6000 * search.c (binfo_from_vbase): Return the virtual base's binfo. 6001 * typeck.c (get_delta_difference): Adjust handling of virtual 6002 bases. 6003 60042000-11-26 Mark Mitchell <mark@codesourcery.com> 6005 6006 * tree.c (struct list_hash): Remove. 6007 (list_hash_table): Make it be an htab. 6008 (struct list_proxy): New type. 6009 (list_hash_eq): New function. 6010 (list_hash_pieces): Renamed from ... 6011 (list_hash): ... this. 6012 (list_hash_lookup): Remove. 6013 (list_hash_add): Remove. 6014 (hash_tree_cons): Use the generic hashtable. 6015 (mark_list_hash): Remove. 6016 (init_tree): Create the hashtable. 6017 60182000-11-25 Joseph S. Myers <jsm28@cam.ac.uk> 6019 6020 * method.c (build_mangled_C9x_name): Rename to 6021 build_mangled_C99_name. Change C9X references in comments to 6022 refer to C99. 6023 60242000-11-24 Nathan Sidwell <nathan@codesourcery.com> 6025 6026 * parse.y (unary_expr): Move VA_ARG from here ... 6027 (primary): ... to here. 6028 60292000-11-24 Nathan Sidwell <nathan@codesourcery.com> 6030 6031 * semantics.c (finish_id_expr): If type is error_mark, return 6032 error_mark. 6033 60342000-11-23 Nathan Sidwell <nathan@codesourcery.com> 6035 6036 * pt.c (lookup_template_class): Simplify loop exit constructs. 6037 Cope when there is no partial instantiation of a template 6038 template member. 6039 6040Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com> 6041 6042 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H). 6043 60442000-11-22 Mark Mitchell <mark@codesourcery.com> 6045 6046 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op' 6047 prefix. 6048 6049 * pt.c (do_decl_instantiate): Explicitly clone constructors and 6050 destructors that haven't already been cloned. 6051 60522000-11-20 Richard Henderson <rth@redhat.com> 6053 6054 * parse.y (yyparse_1): Rename the parser entry point. 6055 60562000-11-20 Alex Samuel <samuel@codesourcery.com> 6057 6058 * mangle.c (write_name): Use <unscoped-name> for names directly in 6059 function scope. 6060 (write_unscoped_name): Accept names directly in function scope. 6061 60622000-11-20 Nathan Sidwell <nathan@codesourcery.com> 6063 6064 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword. 6065 * parse.y (extdef): Add EXPORT reduction. 6066 * spew.c (yylex): Don't skip export here. 6067 60682000-11-19 Mark Mitchell <mark@codesourcery.com> 6069 6070 * decl.c (init_decl_processing): Correct name of pure virtual 6071 function under the new ABI. 6072 * rtti.c (throw_bad_cast): Likewise, for bad cast function. 6073 (throw_bad_typeid): Likewise for bad typeid function. 6074 60752000-11-18 Mark Mitchell <mark@codesourcery.com> 6076 6077 * decl.c (grokparms): Don't even function types of `void' type, 6078 either. 6079 * mangle.c (write_type): Don't crash when confronted with the 6080 error_mark_node. 6081 6082 * decl.c (grokparms): Don't create parameters of `void' type. 6083 60842000-11-17 Zack Weinberg <zack@wolery.stanford.edu> 6085 6086 * lex.c (mark_impl_file_chain): Delete. 6087 (init_parse): Remove call to ggc_add_string_root. No need to 6088 ggc_strdup a string constant. Do not add impl_file_chain to GC 6089 roots. 6090 (handle_pragma_implementation): No need to ggc_strdup main_filename. 6091 60922000-11-17 Nathan Sidwell <nathan@codesourcery.com> 6093 6094 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type. 6095 60962000-11-17 Nathan Sidwell <nathan@codesourcery.com> 6097 6098 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro. 6099 * decl.c (grokdeclarator): Don't reject void parms here. 6100 (require_complete_types_for_parms): Simplify, use 6101 complete_type_or_else. 6102 (grokparms): Remove bitrot. Remove funcdef parm. 6103 Deal with ellipsis parm lists here. 6104 * semantics.c (finish_parmlist): Don't append void_list_node 6105 here. Set PARMLIST_ELLIPSIS_P. 6106 61072000-11-17 Nathan Sidwell <nathan@codesourcery.com> 6108 6109 * typeck2.c (incomplete_type_error): Reorganise to avoid 6110 excessive diagnostics. 6111 61122000-11-16 Zack Weinberg <zack@wolery.stanford.edu> 6113 6114 * lex.c (struct impl_files, internal_filename): Constify a char *. 6115 61162000-11-16 Mark Mitchell <mark@codesourcery.com> 6117 6118 * mangle.c (write_special_name_constructor): Don't generate 6119 assembler junk when confronted with an old-style constructor. 6120 (write_special_name_destructor): Likewise. 6121 (mangle_decl_string): Do it here instead. 6122 61232000-11-16 Nathan Sidwell <nathan@codesourcery.com> 6124 6125 * call.c (op_error): Make error messages clearer. 6126 61272000-11-15 Mark Mitchell <mark@codesourcery.com> 6128 6129 * decl.c (wrapup_globals_for_namespace): Don't mark things 6130 TREE_ASM_WRITTEN when they're not. 6131 61322000-11-15 Jason Merrill <jason@redhat.com> 6133 6134 * typeck2.c (friendly_abort): Uncount the error before handing 6135 off to fancy_abort. 6136 61372000-11-15 Nathan Sidwell <nathan@codesourcery.com> 6138 6139 * typeck.c (lookup_anon_field): Cope with qv qualifiers. 6140 61412000-11-14 Mark Mitchell <mark@codesourcery.com> 6142 6143 * class.c (build_vtbl_initializer): Fix typo in comment. 6144 * typeck.c (expr_sizeof): Don't crash on errors. 6145 61462000-11-14 Jim Wilson <wilson@redhat.com> 6147 6148 * lang-specs.h: Add %2 after %(cc1_options). 6149 61502000-11-14 Richard Henderson <rth@redhat.com> 6151 6152 * typeck.c (c_sizeof): Be strict about casting result value 6153 back to c_size_type_node. 6154 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise. 6155 61562000-11-13 Joseph S. Myers <jsm28@cam.ac.uk> 6157 6158 * typeck.c (build_unary_op): Use boolean_increment from 6159 c-common.c, moving the relevant code there. 6160 61612000-11-11 Jason Merrill <jason@redhat.com> 6162 6163 * typeck.c (mark_addressable): Don't call put_var_into_stack. 6164 6165 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics 6166 in inlines. 6167 61682000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6169 6170 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy. 6171 * lex.c (copy_lang_decl): Likewise. 6172 61732000-11-09 Mark Mitchell <mark@codesourcery.com> 6174 6175 * dump.c (cp_dump_tree): Don't dump function bodies here. 6176 6177 * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 6178 (dump.o): Update dependency list. 6179 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove. 6180 (flag_dump_translation_unit): Likewise. 6181 (CP_TYPE_QUALS): Adjust definition. 6182 (DECL_C_BIT_FIELD): Remove. 6183 (SET_DECL_C_BIT_FIELD): Likewise. 6184 (CLEAR_DECL_C_BIT_FIELD): Likewise. 6185 (add_maybe_template): Likewise. 6186 (strip_array_types): Likewise. 6187 (dump_node_to_file): Likewise. 6188 (cp_dump_tree): New function. 6189 * decl.c (init_decl_processing): Set lang_dump_tree. 6190 * decl2.c (flag_dump_translation_unit): Remove. 6191 * dump.c: Move most of it to ../c-dump.c. 6192 (cp_dump_tree): New function. 6193 * pt.c (add_maybe_template): Remove. 6194 * typeck.c (strip_array_types): Likewise. 6195 61962000-11-07 Eric Christopher <echristo@redhat.com> 6197 6198 * decl.c (init_decl_processing): Change definition of 6199 __wchar_t to wchar_t. Remove artificial declaration of 6200 wchar_t. 6201 * lex.c: Change instances of __wchar_t to wchar_t. 6202 62032000-11-09 Nathan Sidwell <nathan@codesourcery.com> 6204 6205 * lex.c (do_identifier): Don't lookup_name for operators. 6206 * parse.y (operator): Save looking_for_typename. 6207 (unoperator): Restore it. 6208 * spew.c (frob_opname): Use nth_token for lookahead. 6209 62102000-11-08 Nathan Sidwell <nathan@codesourcery.com> 6211 6212 * decl.c (grok_op_properties): Always use coerce_new_type and 6213 coerce_delete_type. 6214 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve 6215 exception specification. Tidy up. 6216 (coerce_delete_type): Preserve exception specification. Tidy up. 6217 62182000-11-07 Joseph S. Myers <jsm28@cam.ac.uk> 6219 6220 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c 6221 (push_binding_level), error.c (cp_tree_printer), pt.c 6222 (process_partial_specialization, tsubst_template_arg_vector), 6223 search.c (lookup_member): Use memset () instead of bzero (). 6224 62252000-11-07 Nathan Sidwell <nathan@codesourcery.com> 6226 6227 * decl.c (build_ptrmemfunc_type): Allow error_mark_node. 6228 62292000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> 6230 6231 * Make-lang.in (c++.distdir): Remove. 6232 62332000-11-04 Mark Mitchell <mark@codesourcery.com> 6234 6235 * decl2.c (do_nonmember_using_decl): Allow `extern "C"' 6236 declarations from different namespaces to be combined. 6237 62382000-11-03 Zack Weinberg <zack@wolery.stanford.edu> 6239 6240 * decl.c: Include tm_p.h. 6241 62422000-11-03 Joseph S. Myers <jsm28@cam.ac.uk> 6243 6244 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp (). 6245 62462000-11-02 Joseph S. Myers <jsm28@cam.ac.uk> 6247 6248 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c 6249 (build_overload_value), repo.c (open_repo_file), xref.c 6250 (open_xref_file): Use strchr () and strrchr () instead of index () 6251 and rindex (). 6252 62532000-11-01 Bernd Schmidt <bernds@redhat.co.uk> 6254 6255 * call.c (build_over_call): Call fold on the CALL_EXPR. 6256 62572000-11-01 Gabriel Dos Reis <gdr@codesourcery.com> 6258 6259 * error.c (dump_template_decl): Separate template hearders with 6260 space not comma. 6261 62622000-10-31 Gabriel Dos Reis <gdr@codesourcery.com> 6263 6264 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace 6265 TS_* flags with corresponding TFF_*. Adjust prototypes of 6266 functions (which used to take a tree_string_flags) to take an int. 6267 6268 * cp-tree.h (enum tree_string_flags): Remove 6269 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, 6270 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS, 6271 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 6272 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 6273 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, 6274 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros. 6275 (type_as_string, decl_as_string, expr_as_string, 6276 context_as_string): Adjust prototype. 6277 6278 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER 6279 instead of TS_PLAIN. 6280 6281 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF 6282 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of 6283 plain `0'. 6284 62852000-10-30 Mark Mitchell <mark@codesourcery.com> 6286 6287 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro. 6288 (linkage_kind): New enumeration. 6289 (decl_linkage): New function. 6290 * decl2.c (comdat_linkage): Extend comment. 6291 * error.c (dump_function_decl): Print the arguments used to 6292 instantiate a template, even when not printing the type of the 6293 function. 6294 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P, 6295 not TREE_PUBLIC, to test for external linkage. 6296 * tree.c (decl_linkage): New function. 6297 62982000-10-28 Mark Mitchell <mark@codesourcery.com> 6299 6300 * pt.c (instantiate_decl): Always instantiate static data members 6301 initialized in-class. 6302 63032000-10-27 Zack Weinberg <zack@wolery.stanford.edu> 6304 6305 * Make-lang.in: Move all build rules here from Makefile.in, 6306 adapt to new context. Wrap all rules that change the current 6307 directory in parentheses. Expunge all references to $(P). 6308 When one command depends on another and they're run all at 6309 once, use && to separate them, not ;. Add OUTPUT_OPTION to 6310 all object-file generation rules. Delete obsolete variables. 6311 6312 * Makefile.in: Delete. 6313 * config-lang.in: Delete outputs= line. 6314 63152000-10-26 Gabriel Dos Reis <gdr@codesourcery.com> 6316 6317 * error.c (dump_function_decl): Print no space between 6318 `ptr-operator' the `type-specifier' of the return type. 6319 (dump_type_prefix): Make sure we put space at the appropriate 6320 place. 6321 63222000-10-23 Jason Merrill <jason@redhat.com> 6323 6324 * call.c (equal_functions): Also call decls_match for extern "C" fns. 6325 63262000-10-22 Jason Merrill <jason@redhat.com> 6327 6328 * call.c (build_conditional_expr): Use ocp_convert to force 6329 rvalue conversion. 6330 63312000-10-22 Mark Mitchell <mark@codesourcery.com> 6332 6333 * call.c (standard_conversion): Use RVALUE_CONVs for all 6334 expressions that satisfy lvalue_p, not just those that satisfy 6335 real_lvalue_p. 6336 6337 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially. 6338 6339 * typeck.c (c_sizeof): Return an expression of `size_t' type, 6340 not one with TYPE_IS_SIZETYPE set. 6341 (dubious_conversion_warnings): Remove special-case code. 6342 63432000-10-21 Geoffrey Keating <geoffk@cygnus.com> 6344 6345 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE. 6346 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE. 6347 (dump_type_prefix): Print vector-of-int as 'int vector'. 6348 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE. 6349 * tree.c (walk_tree): Handle VECTOR_TYPE. 6350 6351 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS. 6352 63532000-10-21 Jason Merrill <jason@redhat.com> 6354 6355 * parse.y (operator): Set got_object from got_scope. 6356 Set looking_for_typename. 6357 * decl.c (lookup_name_real): Clear val after setting from_obj. 6358 Reorganize diagnostic. 6359 63602000-10-20 Jason Merrill <jason@redhat.com> 6361 6362 * tree.c (walk_tree): Don't walk into default args. 6363 6364 * error.c (dump_expr): Use host_integerp. 6365 63662000-10-20 David Edelsohn <edelsohn@gnu.org> 6367 6368 * typeck2.c (abstract_virtuals_error): Use "because" instead of 6369 "since" in error message. 6370 6371Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6372 6373 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE. 6374 63752000-10-20 Jeffrey Oldham <oldham@codesourcery.com> 6376 6377 * decl.c (revert_static_member_fn): Fixed typo. 6378 63792000-10-19 Mark Mitchell <mark@codesourcery.com> 6380 6381 * class.c (subobject_offset_fn): New type. 6382 (dfs_record_base_offsets): Remove. 6383 (record_base_offsets): Likewise. 6384 (dfs_search_base_offsets): Likewise. 6385 (record_subobject_offset): New function. 6386 (check_subobject_offset): Likewise. 6387 (walk_subobject_offsets): Likewise. 6388 (record_subobject_offsets): Likewise. 6389 (layout_conflict_p): Reimplement. 6390 (layout_nonempty_base_or_field): Correct handling of type 6391 conflicts during layout. 6392 (layout_empty_base): Likewise. 6393 (build_base_field): Adjust to handle new representation of empty 6394 base offset table. 6395 (build_base_fields): Likewise. 6396 (layout_virtual_bases): Likewise. 6397 (splay_tree_compare_integer_csts): New function. 6398 (layout_class_type): Use a splay_tree, rather than a varray, to 6399 represent the offsets of empty bases. 6400 6401 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL. 6402 * decl.c (select_decl): Don't return declarations that are 6403 DECL_ANTICIPATED. 6404 64052000-10-18 Mark Mitchell <mark@codesourcery.com> 6406 6407 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD. 6408 (fake_std_node): New macro. 6409 * decl.c (in_std): Rename to ... 6410 (in_fake_std): ... this. 6411 (flag_no_builtin): Remove. 6412 (flag_no_nonansi_builtin): Likewise. 6413 (walk_namespaces_r): Use fake_std_node. 6414 (push_namespace): Use std_identifier. 6415 (pop_namespace): Use in_fake_std. 6416 (lookup_name_real): Use fake_std_node. 6417 (init_decl_processing): When -fhonor-std, create the `std' 6418 namespace. Don't create a dummy fake_std_node in that case. 6419 Adjust call to c_common_nodes_and_builtins. Use std_identifier. 6420 (builtin_function): Put builtins whose names don't begin 6421 with `_' in the std namespace. 6422 * decl2.c (flag_no_builtin): Remove. 6423 (flag_no_nonansi_builtin): Likewise. 6424 (set_decl_namespace): Use fake_std_node. 6425 (validate_nonmember_using_decl): Likewise. 6426 (do_using_directive): Likewise. 6427 (handle_class_head): Likewise. 6428 * dump.c (dequeue_and_dump): Likewise. 6429 * except.c (init_exception_processing): Use std_identifier. 6430 * init.c (build_member_call): Use fake_std_node. 6431 * rtti.c (init_rtti_processing): Use std_identifier. 6432 64332000-10-17 Mark Mitchell <mark@codesourcery.com> 6434 6435 * cp-tree.h (back_end_hook): Remove declaration. 6436 * decl2.c (back_end_hook): Remove definition. 6437 6438 * dump.c (dequeue_and_dump): Dump TREE_USED. 6439 6440Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu> 6441 6442 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). 6443 64442000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 6445 6446 * decl.c (WINT_TYPE): Define. 6447 (init_decl_processing): Create types unsigned_ptrdiff_type_node, 6448 c_size_type_node, signed_size_type_node and wint_type_node. 6449 64502000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 6451 6452 * decl2.c (warn_missing_format_attribute): New variable. 6453 (lang_decode_option): Decode -Wmissing-format-attribute. 6454 64552000-10-16 Mark Mitchell <mark@codesourcery.com> 6456 6457 * typeck.c (qualify_type): Remove. 6458 (composite_pointer_type): Fix handling of conversions to `cv void*'. 6459 64602000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6461 6462 * Makefile.in (parse.c, parse.h): Fix think-o in last patch. 6463 64642000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6465 6466 * Makefile.in (parse.c, parse.h): Create atomically. 6467 64682000-10-12 Mark Mitchell <mark@codesourcery.com> 6469 6470 * class.c (current_obstack): Remove. 6471 * decl.c (ggc_p): Remove. 6472 (start_decl): Don't use decl_tree_cons. 6473 (grokdeclarator): Don't use build_decl_list. 6474 (start_function): Don't use decl_tree_cons. 6475 (finish_function): Don't mess with obstacks. 6476 * decl2.c (grok_x_components): Don't use build_decl_list. 6477 * lex.c (make_call_declarator): Don't call decl_tree_cons. 6478 (implicitly_declare_fn): Don't call build_decl_list. 6479 * parse.y (frob_specs): Don't call build_decl_list or 6480 decl_tree_cons. 6481 (expr_or_declarator_intern): Don't call decl_tree_cons. 6482 (primary): Don't call build_decl_list. 6483 (fcast_or_absdcl): Likewise. 6484 (typed_declspecs): Don't call decl_tree_cons. 6485 (reserved_declspecs): Don't call build_decl_list. 6486 (declmods): Likewise. 6487 (reserved_typespecquals): Likewise. 6488 (aggr): Likewise. 6489 (new_type_id): Likewise. 6490 (cv_qualifiers): Likewise. 6491 (after_type_declarator_intern): Likewise. 6492 (notype_declarator_intern): Likewise. 6493 (absdcl_intern): Likewise. 6494 (named_parm): Likewise. 6495 * pt.c (most_specialized_class): Likewise. 6496 * repo.c (temporary_obstack): Make it a structure, not a pointer. 6497 (init_repo): Initialize it. 6498 * search.c (current_obstack): Remove. 6499 * typeck2.c (add_exception_specifier): Don't call build_decl_list. 6500 65012000-10-09 Richard Henderson <rth@cygnus.com> 6502 6503 * Make-lang.in (CXX_EXTRA_HEADERS): Remove. 6504 (c++ language support bits for libgcc): Remove. 6505 (c++.clean): Remove cplib2.txt cleanup. 6506 * config-lang.in (headers, lib2funcs): Remove. 6507 6508 * exception.cc, new.cc, new1.cc, new2.cc: Remove files. 6509 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files. 6510 * inc/cxxabi.h, inc/exception, inc/new: Remove files. 6511 * inc/new.h, inc/typeinfo: Remove files. 6512 65132000-10-08 Joseph S. Myers <jsm28@cam.ac.uk> 6514 6515 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already 6516 defined. 6517 (init_decl_processing): Initialize intmax_type_node and 6518 uintmax_type_node. 6519 65202000-10-06 Richard Henderson <rth@cygnus.com> 6521 6522 * cp-tree.h (struct cp_language_function): Remove x_result_rtx. 6523 (original_result_rtx): Remove. 6524 * decl.c (save_function_data): Don't clear x_result_rtx. 6525 (mark_lang_function): Don't mark it either. 6526 * expr.c (fixup_result_decl): Remove. 6527 * semantics.c (genrtl_named_return_value): Frob the return decl 6528 before calling emit_local_var. 6529 (genrtl_finish_function): Don't call fixup_result_decl. 6530 Always emit the jump to return_label. 6531 65322000-10-06 Nathan Sidwell <nathan@codesourcery.com> 6533 6534 * pt.c (lookup_template_class): Set current access for enum. 6535 (tsubst_enum): Set file & line for enum decl. 6536 6537 * spew.c (yylex): Remove unused variable. 6538 65392000-10-05 Richard Henderson <rth@cygnus.com> 6540 6541 * semantics.c (genrtl_finish_function): Don't init or check 6542 can_reach_end; remove noreturn and return value checks. 6543 65442000-10-05 Tom Tromey <tromey@cygnus.com> 6545 6546 * init.c (build_java_class_ref): Use `build_static_name' with a 6547 suffix, not a prefix, to build the class object's name. 6548 65492000-10-05 Nathan Sidwell <nathan@codesourcery.com> 6550 6551 * cp-tree.h (access_kind): Fix comment typo. 6552 * decl2.c (grokfield): Fix diagnostic typo. 6553 * semantics.c (finish_template_type): Fix comment typo. 6554 (finish_qualified_object_call_expr): Likewise. 6555 65562000-10-05 Nathan Sidwell <nathan@codesourcery.com> 6557 6558 * pt.c (tsubst_expr, DECL_STMT case): Don't process if 6559 tsubsting fails. 6560 65612000-10-05 Nathan Sidwell <nathan@codesourcery.com> 6562 6563 * spew.c (frob_id): New static function. 6564 (frob_opname): Use it. 6565 (yylex): Use it. 6566 65672000-10-01 Mark Mitchell <mark@codesourcery.com> 6568 6569 * decl.c (lang_mark_false_label_stack): Remove. 6570 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared. 6571 65722000-09-30 Joseph S. Myers <jsm28@cam.ac.uk> 6573 6574 * gxxint.texi: Use @email for formatting email addresses. 6575 65762000-09-29 Gabriel Dos Reis <gdr@codesourcery.com> 6577 6578 * error.c: Remove direct obstack manipulation. Replace with 6579 output_buffer-based formatting. Adjust calls to removed macros. 6580 (obstack_chunk_alloc, obstack_chunk_free): Remove. 6581 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP, 6582 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise. 6583 65842000-09-24 Mark Mitchell <mark@codesourcery.com> 6585 6586 * ir.texi: Move to ../c-tree.texi. 6587 65882000-09-20 Jason Merrill <jason@redhat.com> 6589 6590 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P. 6591 65922000-09-21 Andreas Jaeger <aj@suse.de> 6593 6594 * errfn.c: Move declaration of cp_printer and cp_printers to ... 6595 * cp-tree.h: ... here. 6596 6597 * error.c: Remove declaration of cp_printer. 6598 65992000-09-20 Mark Mitchell <mark@codesourcery.com> 6600 6601 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs. 6602 66032000-09-20 Hans-Peter Nilsson <hp@axis.com> 6604 6605 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and 6606 users. 6607 66082000-09-18 Mark Mitchell <mark@codesourcery.com> 6609 6610 * decl.c (start_function): Robustify. 6611 66122000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6613 6614 * cp-tree.h (check_function_format): Accept a `status' parameter. 6615 6616 * call.c, typeck.c: Updates calls to `check_function_format'. 6617 66182000-09-17 Geoffrey Keating <geoffk@cygnus.com> 6619 6620 * decl2.c (handle_class_head): Always push some scope even 6621 in the error case. 6622 66232000-09-16 Mark Mitchell <mark@codesourcery.com> 6624 6625 * cp-tree.h (struct cp_language_function): Remove 6626 x_scope_stmt_stack and name_declared. 6627 (current_scope_stmt_stack): Remove. 6628 (function_name_declared_p): New macro. 6629 (struct lang_decl_flags): Use c_lang_decl as a base class. 6630 (context): Remove. 6631 (struct lang_decl): Replace saved_tree with context. 6632 (DECL_FRIEND_CONTEXT): Adjust accordingly. 6633 (SET_DECL_FRIEND_CONTEXT): Likewise. 6634 (DECL_VIRTUAL_CONTEXT): Likewise. 6635 (DECL_SAVED_TREE): Remove. 6636 (C_DECLARED_LABEL_FLAG): Likewise. 6637 (cplus_expand_expr_stmt): Don't declare. 6638 (add_decl_stmt): Likewise. 6639 (add_scope_stmt): Likewise. 6640 * decl.c (mark_stmt_tree): Remove. 6641 (case_compare): Likewise. 6642 (finish_case_label): Use c_add_case_label. 6643 (init_decl_processing): Set more language-specific hooks. 6644 (build_enumerator): Fix typo in comment. 6645 (cplus_expand_expr_stmt): Remove. 6646 (mark_lang_function): Use mark_c_language_function. 6647 (lang_mark_tree): Use c_mark_lang_decl. 6648 * decl2.c: Change order of inclusion. 6649 * except.c: Likewise. 6650 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall 6651 back on c_expand_expr. 6652 * friend.c: Include expr.h. 6653 * init.c: Change order of inclusion. 6654 * Makefile.in: Update dependencies. 6655 * lex.h (free_lang_decl_chain): Remove. 6656 * optimize.c (maybe_clone_body): Use function_name_declared_p. 6657 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if 6658 it doesn't exist. 6659 (instantiate_decl): Use function_name_declared_p. 6660 * semantics.c (lang_expand_expr_stmt): Remove. 6661 (set_current_function_name_declared): Likewise. 6662 (current_function_name_declared): Likewise. 6663 (begin_compound_stmt): Use function_name_declared_p. 6664 (add_decl_stmt): Remove. 6665 (setup_vtbl_ptr): Use function_name_declared_p. 6666 (add_scope_stmt): Remove. 6667 (current_scope_stmt_stack): New function. 6668 (cp_expand_stmt): Don't handle SCOPE_STMTs. 6669 (expand_body): Use function_name_declared_p. 6670 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. 6671 * typeck.c: Change order of includes. 6672 (convert_sequence): Remove. 6673 66742000-09-14 Joseph S. Myers <jsm28@cam.ac.uk> 6675 6676 * lex.c (reswords): Add _Complex. 6677 6678Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6679 6680 * Make-lang.in (cplib2.txt): Depend on cp/Makefile. 6681 66822000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> 6683 6684 * init.c (begin_init_stmts): Don't use // comments. 6685 66862000-09-12 Jason Merrill <jason@redhat.com> 6687 6688 * decl.c (maybe_deduce_size_from_array_init): Set do_default for 6689 all non-extern arrays. 6690 6691 * decl.c (grokdeclarator): Complain about 'friend T' for implicit 6692 typenames, too. Downgrade complaint to pedwarn. 6693 (xref_tag): Warn about surprising behavior of 'friend struct T'. 6694 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for 6695 'class This::Inherited'. 6696 66972000-09-12 Mark Mitchell <mark@codesourcery.com> 6698 6699 * decl.c (finish_case_label): Given the LABEL_DECL a 6700 DECL_CONTEXT. 6701 67022000-09-12 Gabriel Dos Reis <gdr@codesourcery.com> 6703 6704 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, 6705 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF, 6706 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 6707 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 6708 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE): 6709 New macros. 6710 (sorry_for_unsupported_tree, print_scope_operator, 6711 print_left_paren, print_right_paren, print_left_bracket, 6712 print_right_bracket, print_whitespace): Likewise. 6713 (aggr_variety): Rename to class_key_or_enum. 6714 (print_type): Rename to print_type_id. 6715 (print_type_specifier_seq, print_simple_type_specifier, 6716 print_elaborated_type_specifier, 6717 print_rest_of_abstract_declarator, 6718 print_parameter_declaration_clause, print_exception_specification, 6719 print_nested_name_specifier, print_template_id, 6720 typedef_original_name, print_template_argument_list_start, 6721 print_template_argument_list_end): New functions. 6722 67232000-09-11 Gabriel Dos Reis <gdr@codesourcery.com> 6724 6725 * ir.texi: Add more documentation. 6726 67272000-09-11 Mark Mitchell <mark@codesourcery.com> 6728 6729 * cp-tree.h (struct saved_scope): Remove x_function_parms. 6730 (current_function_parms): Don't define. 6731 (struct cp_language_function): Remove parms_stored. 6732 (current_function_just_assigned_this): Don't define. 6733 (current_function_parms_stored): Likewise. 6734 (static_ctors): Declare. 6735 (static_dtors): Likewise. 6736 (SF_EXPAND): Don't define. 6737 (expand_start_early_try_stmts): Remove declaration. 6738 (store_parm_decls): Likewise. 6739 * decl.c (static_ctors): Don't declare. 6740 (static_dtors): Likewise. 6741 (struct binding_level): Remove this_block. 6742 (poplevel): Remove dead code. 6743 (set_block): Likewise. 6744 (mark_binding_level): Don't mark this_block. 6745 (mark_saved_scope): Don't mark x_function_parms. 6746 (init_decl_processing): Don't add current_function_parms as a GC 6747 root. 6748 (check_function_type): Change prototype. 6749 (start_function): Remove RTL-generation code. 6750 (expand_start_early_try_stmts): Remove. 6751 (store_parm_decls): Give it internal linkage. Remove 6752 RTL-generation code. 6753 (finish_function): Remove RTL-generation code. 6754 * decl2.c (static_ctors): Fix formatting. 6755 (static_dtors): Likewise. 6756 * method.c (use_thunk): Don't call store_parm_decls. 6757 (synthesize_method): Likewise. 6758 * optimize.c (maybe_clone_body): Likewise. 6759 * parse.y (fn.def2): Likewise. 6760 (.set_base_init): Likewise. 6761 (nodecls): Likewise. 6762 * pt.c (instantiate_decl): Likewise. 6763 * rtti.c (synthesize_tinfo_fn): Likewise. 6764 * semantics.c (genrtl_try_block): Simplify. 6765 (expand_body): Use genrtl_start_function and 6766 genrtl_finish_function. 6767 (genrtl_start_function): New function. 6768 (genrtl_finish_function): Likewise. 6769 67702000-09-11 Nathan Sidwell <nathan@codesourcery.com> 6771 6772 * error.c (cp_tree_printer, case 'P'): Append break. 6773 67742000-09-11 Nathan Sidwell <nathan@codesourcery.com> 6775 6776 * cp-tree.h (frob_opname): Declare. 6777 * parse.y (saved_scopes): New static variable. 6778 (cp_parse_init): Adjust. 6779 (do_id): If lastiddecl is NULL, do do_identifier. 6780 (operator): Save scope information. 6781 (unoperator): New reduction. Restore scope information. 6782 (operator_name): Append unoperator. Call frob_opname. 6783 * spew.c (frob_opname): Define. 6784 67852000-09-10 Zack Weinberg <zack@wolery.cumb.org> 6786 6787 * decl.c, rtti.c: Include defaults.h if not already included. 6788 Don't define the *_TYPE_SIZE macros. 6789 67902000-09-09 Mark Mitchell <mark@codesourcery.com> 6791 6792 * cp-tree.h (push_switch): Change prototype. 6793 (check_cp_case_value): Remove declaration. 6794 (decl_constant_value): Likewise. 6795 * decl.c (struct cp_switch): Add switch_stmt and cases. 6796 (case_compare): New function. 6797 (push_switch): Set switch_stmt. Initialize cases. 6798 (pop_switch): Clean up cases. 6799 (define_case_label): Rename to ... 6800 (finish_case_label): ... this. Do semantic analysis for case 6801 labels here. 6802 (start_function): Correct comment. 6803 * decl2.c (check_cp_case_value): Remove. 6804 * expr.c (do_case): Remove. 6805 * pt.c (tsubst_expr): Adjust call to finish_case_label. 6806 * semantics.c (genrtl_do_poplevel): Remove declaration. 6807 (RECHAIN_STMTS): Remove. 6808 (finish_break_stmt): Use build_break_stmt. 6809 (finish_continue_stmt): Use build_continue_stmt. 6810 (finish_switch_cond): Adjust condition here, rater than in 6811 c_expand_start_case. 6812 (finish_case_label): Remove. 6813 * typeck.c (c_expand_return): Remove. 6814 (c_expand_start_case): Likewise. 6815 68162000-09-07 Gabriel Dos Reis <gdr@codesourcery.com> 6817 6818 * ir.texi: Document type nodes. 6819 68202000-09-06 Mark Mitchell <mark@codesourcery.com> 6821 6822 * cp-tree.h (init_cp_semantics): Declare. 6823 (genrtl_try_block): Don't declare. 6824 (genrtl_handler): Likewise. 6825 (genrtl_catch_block): Likewise. 6826 (genrtl_ctor_stmt): Likewise. 6827 (genrtl_subobject): Likewise. 6828 (genrtl_do_poplevel): Likewise. 6829 (genrtl_named_return_value): Likewise. 6830 * lex.c (init_parse): Call init_cp_semantics. 6831 * semantics.c (genrtl_try_block): Give it internal linkage. 6832 (genrtl_handler): Likewise. 6833 (genrtl_catch_block): Likewise. 6834 (genrtl_ctor_stmt): Likewise. 6835 (genrtl_subobject): Likewise. 6836 (genrtl_do_poplevel): Likewise. 6837 (genrtl_named_return_value): Likewise. 6838 (lang_expand_stmt): Rename to ... 6839 (cp_expand_stmt): ... this. Only handle C++-specific nodes. 6840 (init_cp_semantics): Define. 6841 6842 * decl.c (initialize_local_var): Remove RTL-generating code. 6843 * semantics.c (genrtl_try_block): Fix formatting. 6844 6845 Move statement-tree facilities from C++ to C front-end. 6846 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO. 6847 (void_zero_node): Remove. 6848 (stmt_tree): Likewise. 6849 (scope_chain): Adjust. 6850 (language_function): Rename to cp_language_function. 6851 (cp_function_chain): Adjust. 6852 (current_stmt_tree): Remove. 6853 (last_tree): Likewise. 6854 (last_expr_type): Likewise. 6855 (struct lang_decl): Adjust. 6856 (STMT_IS_FULL_EXPR_P): Remove. 6857 (add_tree): Remove. 6858 (begin_stmt_tree): Likewise. 6859 (finish_stmt_tree): Likewise. 6860 (walk_tree_fn): Likewise. 6861 (walk_stmt_tree): Likewise. 6862 * class.c (finish_struct): Replace use of add_tree with add_stmt. 6863 * decl.c (mark_stmt_tree): Adjust type. 6864 (init_decl_processing): Don't build void_zero_node. 6865 (initialize_local_var): Adjust usage of current_stmt_tree. 6866 (finish_enum): Use add_stmt, not add_tree. 6867 (save_function_data): Adjust use of language_function. 6868 (finish_constructor_body): Use add_stmt, not add_tree. 6869 (finish_destructor_body): Likewise. 6870 (push_cp_function_context): Adjust use of language_function. 6871 (pop_cp_function_context): Likewise. 6872 (mark_lang_function): Likewise. 6873 (mark_cp_function_context): Likewise. 6874 * init.c (build_aggr_init): Adjust use of current_stmt_tree. 6875 (build_vec_init): Likewise. 6876 * semantics.c (SET_LAST_STMT): Remove. 6877 (RECHAIN_STMTS): Don't use it. 6878 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree. 6879 (current_stmt_tree): Define. 6880 (add_tree): Remove. 6881 (finish_goto_stmt): Use add_stmt, not add_tree. 6882 (finish_expr_stmt): Likewise. 6883 (begin_if_stmt): Likewise. 6884 (finish_then_clause): Likewise. 6885 (begin_while_stmt): Likewise. 6886 (begin_do_stmt): Likewise. 6887 (finish_return_stmt): Likewise. 6888 (begin_for_stmt): Likewise. 6889 (finish_break_stmt): Likewise. 6890 (finish_continue_stmt): Likewise. 6891 (begin_switch_stmt): Likewise. 6892 (finish_case_label): Likewise. 6893 (begin_try_block): Likewise. 6894 (begin_function_try_block): Likewise. 6895 (begin_handler): Likewise. 6896 (begin_catch_block): Likewise. 6897 (begin_compound_stmt): Likewise. 6898 (begin_asm_stmt): Likewise. 6899 (finish_asm_stmt): Likewise. 6900 (finish_label_stmt): Likewise. 6901 (add_decl_stmt): Likewise. 6902 (finish_subobject): Likewise. 6903 (finish_decl_cleanup): Likewise. 6904 (finish_named_return_value): Likewise. 6905 (setup_vtbl_ptr): Likewise. 6906 (add_scope_stmt): Likewise. 6907 (finish_stmt_expr): Likewise. 6908 (prune_unused_decls): Remove. 6909 (begin_stmt_tree): Likewise. 6910 (finish_stmt_tree): Likewise. 6911 (prep_stmt): Adjust use of current_stmt_tree. 6912 (lang_expand_stmt): Likewise. 6913 * tree.c (statement_code_p): Remove. 6914 (cp_statement_code_p): New function. 6915 (walk_stmt_tree): Remove. 6916 (init_tree): Set lang_statement_code_p. 6917 69182000-09-06 Zack Weinberg <zack@wolery.cumb.org> 6919 6920 Integrated preprocessor. 6921 6922 * Make-lang.in, Makefile.in: Remove all references to input.c, 6923 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. 6924 * gxx.gperf, hash.h, input.c: Delete. 6925 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is 6926 initialized properly. 6927 6928 * class.c (fixup_pending_inline): Take a tree, not a 6929 struct pending_inline *. All callers changed. 6930 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, 6931 RID_PROTECTED entries in ridpointers[] array here. 6932 * decl.c (duplicate_decls): Do not refer to struct 6933 pending_inline. 6934 (record_builtin_type, init_decl_processing): Use RID_MAX not 6935 CP_RID_MAX. 6936 (grokdeclarator): Use C_IS_RESERVED_WORD. 6937 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of 6938 cpplib. 6939 (grok_x_components): Do not inspect pending_inlines chain. 6940 6941 * cp-tree.h (struct lang_identifier): Add rid_code entry. 6942 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. 6943 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. 6944 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, 6945 TIME_IDENTIFIER_FILEINFO): Kill. 6946 Update prototypes. 6947 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a 6948 single 32-bit word. 6949 * parse.y: Call do_pending_inlines unconditionally. 6950 reinit_parse_for_method is now snarf_method. fn.defpen is no 6951 longer necessary. Remove unnecessary <itype> annotation on 6952 SCOPE. Do not refer to end_of_file or struct pending_inline. 6953 * semantics.c (begin_inline_definitions): Call 6954 do_pending_inlines unconditionally. 6955 6956 * lex.c: Remove all code now shared with C front end. 6957 Initialize cpplib properly if USE_CPPLIB. Put reserved words 6958 into the get_identifier table. Rewrite pragma handling to 6959 work with the registry. Move code to save tokens for later 6960 processing to spew.c. 6961 6962 * spew.c: Rewrite everything in terms of token streams instead 6963 of text. Move routines here from lex.c / input.c as 6964 appropriate. GC-mark trees hanging off the pending inlines 6965 chain. 6966 69672000-09-06 Mark Mitchell <mark@codesourcery.com> 6968 6969 * NEWS: Mention that the named return value extension has been 6970 deprecated. 6971 * cp-tree.h (original_result_rtx): Define. 6972 (TREE_REFERENCE_EXPR): Remove. 6973 (DECL_VPARENT): Likewise. 6974 (pushdecl_nonclass_level): Likewise. 6975 (store_return_init): Likewise. 6976 (reinit_lang_specific): Likewise. 6977 (genrtl_named_return_value): Change prototype. 6978 * decl.c (original_result_rtx): Remove. 6979 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs. 6980 Do not generate RTL for local variables here. 6981 (store_return_init): Remove. 6982 * semantics.c (genrtl_named_return_value): Simplify. Fold in 6983 store_return_init. 6984 (finish_named_return_value): Adjust accordingly. Warn that this 6985 extension is deprecated. 6986 (lang_expand_stmt): Adjust call to genrtl_named_return_value. 6987 69882000-09-06 Nathan Sidwell <nathan@codesourcery.com> 6989 6990 * pt.c (type_unification_real): Replace switch with if. 6991 (unify): Tsubst non-type parms before comparing. 6992 69932000-09-06 Nathan Sidwell <nathan@codesourcery.com> 6994 6995 * error.c (dump_typename): New function, broken out of ... 6996 (dump_type): ... here. Use it. 6997 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE. 6998 69992000-09-06 Nathan Sidwell <nathan@codesourcery.com> 7000 7001 * init.c (build_offset_ref): Deal with namespace scoped 7002 TEMPLATE_ID_EXPRs. 7003 70042000-09-06 Nathan Sidwell <nathan@codesourcery.com> 7005 7006 * class.c (resolve_address_of_overloaded_function): Add 7007 explanation message. 7008 * decl.c (define_case_label): Reformat explanation. 7009 * decl2.c (finish_static_data_member_decl): Likewise. 7010 (grokfield): Likewise. 7011 * friend.c (do_friend): Likewise. 7012 70132000-09-05 Zack Weinberg <zack@wolery.cumb.org> 7014 7015 * tree.c (walk_tree): Expose tail recursion. 7016 (walk_stmt_tree): New function. 7017 * cp-tree.h: Prototype walk_stmt_tree. 7018 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not 7019 the BLOCKs directly. If a BLOCK has no variables after 7020 pruning, discard it. 7021 (finish_stmt_tree): Use walk_stmt_tree. No need to save and 7022 restore the line number. 7023 70242000-09-05 Mark Mitchell <mark@codesourcery.com> 7025 7026 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H. 7027 (pt.o): Remove dependency on HTAB_H. 7028 * cp-tree.h: Include hashtab.h. 7029 (walk_tree): Change prototype. 7030 (walk_tree_without_duplicates): New function. 7031 * decl.c (check_default_argument): Use it. 7032 * optimize.c (remap_decl): Adjust calls to walk_tree. 7033 (copy_body): Likewise. 7034 (expand_calls_inline): Likewise. 7035 (calls_setjmp_p): Use walk_tree_without_duplicates. 7036 * pt.c: Don't include hashtab.h. 7037 (for_each_template_parm): Use walk_tree_without_duplicates. 7038 * semantics.c (finish-stmt_tree): Likewise. 7039 (expand_body): Likewise. 7040 * tree.c (walk_tree): Add additional parameter. 7041 (walk_tree_without_duplicates): New function. 7042 (count_trees): Use it. 7043 (verify_stmt_tree): Adjust call to walk_tree. 7044 (find_tree): Use walk_tree_without_duplicates. 7045 (no_linkage_check): Likewise. 7046 (break_out_target_exprs): Adjust call to walk_tree. 7047 (cp_unsave): Likewise. 7048 70492000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 7050 7051 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code. 7052 (TEMPLATE_TEMPLATE_PARM): Adjust comment. 7053 * cp-tree.h (TYPE_BINFO): Adjust comment. 7054 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 7055 (TEMPLATE_TYPE_PARM_INDEX): Likewise. 7056 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 7057 (TYPE_TEMPLATE_INFO): Likewise. 7058 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise. 7059 * class.c (push_nested_class): Likewise. 7060 * decl.c (lookup_name_real): Likewise. 7061 (grokdeclarator): Likewise. 7062 (grok_op_properties): Likewise. 7063 (xref_tag): Likewise. 7064 (xref_basetypes): Likewise. 7065 * decl2.c (constructor_name_full): Likewise. 7066 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case. 7067 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 7068 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case. 7069 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM. 7070 (dump_type_suffix): Likewise. 7071 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM 7072 instead. 7073 (get_aggr_from_typedef): Likewise. 7074 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case. 7075 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM. 7076 (write_template_parm): Likewise. 7077 (write_template_template_parm): Check tree code instead of 7078 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 7079 * method.c (build_overload_nested_name): Add 7080 BOUND_TEMPLATE_TEMPLATE_PARM. 7081 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case. 7082 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM. 7083 * pt.c (convert_template_argument): Check tree code instead of 7084 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 7085 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case. 7086 (for_each_template_parm): Adjust comment. 7087 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. 7088 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM. 7089 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use 7090 template_args_equal to compare template template parameter cases. 7091 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM. 7092 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM 7093 instead. 7094 * tree.c (copy_template_template_parm): Decide whether to create 7095 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node. 7096 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM. 7097 (copy_tree_r): Likewise. 7098 * typeck.c (comptypes): Likewise. Check tree code instead of 7099 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 7100 71012000-09-04 Mark Elbrecht <snowball3@bigfoot.com> 7102 7103 * decl.c (finish_function): Move the code for handling functions 7104 marked with the constructor and destructor attributes inside the 7105 expand_p block. 7106 71072000-09-04 Nathan Sidwell <nathan@codesourcery.com> 7108 7109 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR. 7110 71112000-09-04 Nathan Sidwell <nathan@codesourcery.com> 7112 7113 * pt.c (lookup_template_class): Remove abort. 7114 * tree.c (get_type_decl): Allow error_mark_node. 7115 71162000-09-04 Nathan Sidwell <nathan@codesourcery.com> 7117 7118 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside 7119 TEMPLATE_ID_EXPRs. 7120 71212000-09-03 Mark Mitchell <mark@codesourcery.com> 7122 7123 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change 7124 new ABI mangling. 7125 71262000-09-01 Nathan Sidwell <nathan@codesourcery.com> 7127 7128 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify 7129 union tag mismatch error reporting. 7130 71312000-09-01 Nathan Sidwell <nathan@codesourcery.com> 7132 7133 * call.c (build_scoped_method_call): Check it is not a namespace. 7134 71352000-08-30 Jason Merrill <jason@redhat.com> 7136 7137 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context. 7138 7139 * tree.c (bot_manip): Check TREE_CONSTANT rather than 7140 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and 7141 build_target_expr_with_type for the non-AGGR_INIT_EXPR case. 7142 7143 * decl.c (start_function): Always call make_function_rtl. 7144 71452000-08-29 Zack Weinberg <zack@wolery.cumb.org> 7146 7147 * semantics.c (prune_unused_decls): New function. 7148 (finish_stmt_tree): Call it via walk_tree. 7149 71502000-08-29 Zack Weinberg <zack@wolery.cumb.org> 7151 7152 * class.c (build_secondary_vtable): Constify a char *. 7153 * decl.c (init_decl_processing): Initialize function_id_node, 7154 pretty_function_id_node, and func_id_node. 7155 * input.c (struct input_source): Constify 'str'. 7156 (feed_input): Constify first argument. 7157 * mangle.c (write_identifier): Constify argument. 7158 * pt.c (mangle_class_name_for_template): Constify argument. 7159 71602000-08-29 Mark Mitchell <mark@codesourcery.com> 7161 7162 * typeck.c (mark_addressable): Remove code that pokes around in 7163 RTL. 7164 71652000-08-28 Jason Merrill <jason@redhat.com> 7166 7167 * lex.c (file_name_nondirectory): Move to toplev.c. 7168 7169 * cp-tree.h (LOCAL_CLASS_P): New macro. 7170 * class.c (finish_struct_1): Use it. 7171 71722000-08-27 Alex Samuel <samuel@codesourcery.com> 7173 7174 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo. 7175 (write_encoding): Pass another argument to write_name. 7176 (write_name): Add ignore_local_scope parameter. Fix handling of 7177 local names. 7178 (write_nested_name): Use write_unqualified_name. 7179 (write_prefix): Likewise. Skip out on FUNCTION_DECLs. 7180 (write_template_prefix): Use write_unqualified_name. 7181 (write_component): Remove. 7182 (write_local_name): Add parameter. Use direct local entity to 7183 discriminator calculation. 7184 (write_class_enum_type): Pass another argument to write_name. 7185 (write_template_template_arg): Likewise. 7186 (make_guard_variable): Likewise. 7187 71882000-08-27 Jason Merrill <jason@redhat.com> 7189 7190 * decl.c (pushdecl): Matching decls for local externs are found in 7191 the current level. Propagate linkage information from previous 7192 declarations. 7193 71942000-08-26 Gabriel Dos Reis <gdr@codesourcery.com> 7195 7196 * ir.texi (Expressions): Fix typo. 7197 71982000-08-25 Greg McGary <greg@mcgary.org> 7199 7200 * tree.c (init_tree): Use ARRAY_SIZE. 7201 72022000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 7203 7204 * error.c (cp_tree_printer): Rework. 7205 72062000-08-25 Mark Mitchell <mark@codesourcery.com> 7207 7208 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and 7209 dyn-string.o. 7210 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c. 7211 (cp-demangle.o): Remove target. 7212 (dyn-string.o): Likewise. 7213 7214 * decl.c (grokfndecl): Require that `main' return an `int'. 7215 * mangle.c (write_encoding): Don't mangle return types for 7216 conversion functions. 7217 72182000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 7219 7220 * error.c (tree_formatting_info): New data type. 7221 (tree_being_formatted): New macro. 7222 (tree_formatting_flags): Likewise. 7223 (put_whitespace): Likewise. 7224 (print_tree_identifier): Likewise. 7225 (print_identifier): Likewise. 7226 (cp_tree_printer, print_function_argument_list, print_declaration, 7227 print_expression, print_function_declaration, 7228 print_function_parameter, print_type, print_cv_qualifier): New 7229 functions. 7230 (init_error): Initialize lang_printer. 7231 72322000-08-24 Jason Merrill <jason@redhat.com> 7233 7234 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no 7235 adjustment necessary. 7236 72372000-08-24 Greg McGary <greg@mcgary.org> 7238 7239 * cp-tree.h (MAIN_NAME_P): Remove macro. 7240 72412000-08-24 Gabriel Dos Reis <gdr@codesourcery.com> 7242 7243 * error.c (print_instantiation_context): Don't forget to flush the 7244 buffer. 7245 72462000-08-23 Jason Merrill <jason@redhat.com> 7247 7248 * typeck.c (build_ptrmemfunc): Save the input pmf. 7249 7250 * method.c (process_modifiers): Use same_type_p. 7251 72522000-08-23 Mark Mitchell <mark@codesourcery.com> 7253 7254 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC. 7255 * mangle.c (write_function_type): Change prototype. 7256 (write_encoding): Don't mangle return types for 7257 constructors or destructors. 7258 (write_type): Adjust call to write_function_type. 7259 * pt.c (instantiate_template): Instantiate alternate entry points 7260 when instantiating the main function. 7261 72622000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 7263 7264 * error.c (cp_print_error_function): Don't use embedded '\n' in 7265 output_printf. 7266 72672000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 7268 7269 * decl.c (init_decl_processing): Remove bogus initialization. 7270 * error.c (lang_print_error_function): Restore here. 7271 (init_error): Initialize print_error_function. 7272 72732000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 7274 7275 * decl2.c (arg_assoc): Revert my 2000-08-11 change. 7276 72772000-08-22 Gabriel Dos Reis <gdr@codesourcery.com> 7278 7279 * Makefile.in (error.o): Depends on diagnostic.h 7280 7281 * cp-tree.h (problematic_instantiation_changed, 7282 record_last_problematic_instantiation, current_instantiation, 7283 print_instantiation_context): Declare. 7284 (maybe_print_template_context): Remove. 7285 7286 * decl.c (init_decl_processing): Set print_error_function to NULL. 7287 (lang_print_error_function): Remove, since we're using a new 7288 machinery. 7289 7290 * error.c: #include diagnostic.h 7291 (function_category): New function. 7292 (cp_diagnostic_starter): Likewise. 7293 (cp_diagnostic_finalizer): Likewise. 7294 (cp_print_error_function): Likewise. 7295 (maybe_print_instantiation_context): Likewise. 7296 (print_instantiation_full_context): Likewise. 7297 (print_instantiation_partial_context): Likewise. 7298 (print_instantiation_context): Define. 7299 (init_error): Initialize diagnostic pager and finalizer. 7300 7301 * pt.c (problematic_instantiation_changed): Define. 7302 (record_last_problematic_instantiation): Likewise. 7303 (current_instantiation): Likewise. 7304 (maybe_print_template_context): Remove. 7305 (print_template_context): Likewise. 7306 (current_tinst_level): Make static to reflect Brendan Kehoe's 7307 change of 1995-04-13. 7308 (push_tinst_level): Call print_instantiation_context. 7309 73102000-08-21 Nix <nix@esperi.demon.co.uk> 7311 7312 * lang-specs.h: Do not process -o or run the assembler if 7313 -fsyntax-only. 7314 73152000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> 7316 7317 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New 7318 variables. 7319 * decl2.c (lang_decode_option): Disable gettext attributes for 7320 -ansi. 7321 73222000-08-21 Gabriel Dos Reis <gdr@codesourcery.com> 7323 7324 * lex.c (lang_init_options): Default diagnostic message maximum 7325 length to 80, when line-wrapping. 7326 73272000-08-20 Mark Mitchell <mark@codesourcery.com> 7328 7329 * class.c (build_vtbl_initializer): Clear the entire 7330 vtbl_init_data. Start keeping track of the functions for which we 7331 have created vcall offsets here. 7332 (dfs_build_vcall_offset_vtbl_entries): Remove. 7333 (build_vcall_offset_vtbl_entries): Reimplement. 7334 (add_vcall_offset_vtbl_entries_r): New function. 7335 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for 7336 computing when vcall offsets are necessary. 7337 73382000-08-18 Nathan Sidwell <nathan@codesourcery.com> 7339 7340 * decl.c (member_function_or_else): Use cp_error ... %T. 7341 (grokdeclarator): Likewise. 7342 (start_method): Likewise. 7343 * friend.c (make_friend_class): Use cp_pedwarn ... %T. 7344 73452000-08-18 Nathan Sidwell <nathan@codesourcery.com> 7346 7347 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class 7348 TYPE_DECLs. 7349 73502000-08-18 Nathan Sidwell <nathan@codesourcery.com> 7351 7352 * cp-tree.h (PTRMEM_OK_P): New macro. 7353 (itf_ptrmem_ok): New enumeration value. 7354 * class.c (resolve_address_of_overloaded_function): Add PTRMEM 7355 argument. Diagnose implicit pointer to member. 7356 (instantiate_type): Don't diagnose implicit pointer to member 7357 here. Pass itf_ptrmem_ok if ok. Adjust calls to 7358 resolve_address_of_overloaded_function. 7359 * init.c (build_offset_ref): Set PTRMEM_OK_P. 7360 (resolve_offset_ref): Don't diagnose implicit pointer to member here. 7361 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here. 7362 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P. 7363 (build_unary_op): Deal with single non-static member in 7364 microsoft-land. 7365 73662000-08-18 Nathan Sidwell <nathan@codesourcery.com> 7367 7368 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE. 7369 73702000-08-18 Nathan Sidwell <nathan@codesourcery.com> 7371 7372 * cp-tree.h (enum_name_string): Remove prototype. 7373 (report_case_error): Remove prototype. 7374 * cp/typeck2.c (enum_name_string): Remove. 7375 (report_case_error): Remove. 7376 * error.c (dump_expr): Deal with enum values directly. 7377 Correctly negate integer constant. 7378 73792000-08-17 Nathan Sidwell <nathan@codesourcery.com> 7380 7381 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare. 7382 (__cxa_vec_delete2, __cxa_vec_delete3): Declare. 7383 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement. 7384 (__cxa_vec_delete2, __cxa_vec_delete3): Implement. 7385 (__cxa_vec_new): Use __cxa_vec_new2. 7386 (__cxa_vec_delete): Use __cxa_vec_delete2. 7387 73882000-08-17 Nathan Sidwell <nathan@codesourcery.com> 7389 7390 * vec.cc (__cxa_vec_new): Set "C" linkage. 7391 (__cxa_vec_ctor): Likewise. 7392 (__cxa_vec_cctor): Likewise. 7393 (__cxa_vec_dtor): Likewise. 7394 (__cxa_vec_delete): Likewise. 7395 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage. 7396 (__cxa_vec_ctor): Likewise. 7397 (__cxa_vec_cctor): Likewise. 7398 (__cxa_vec_dtor): Likewise. 7399 (__cxa_vec_delete): Likewise. 7400 74012000-08-17 Nathan Sidwell <nathan@codesourcery.com> 7402 7403 * class.c (instantiate_type): Reinstate local variable 7404 deleted in previous change. 7405 7406 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not 7407 itf_no_attributes. 7408 74092000-08-17 Nathan Sidwell <nathan@codesourcery.com> 7410 7411 * cp-tree.h (instantiate_type_flags): New enumeration. 7412 (instantiate_type): Change parameter. 7413 * class.c (instantiate_type): Adjust prototype. Adjust. 7414 * call.c (standard_conversion): Adjust instantiate_type call. 7415 (reference_binding): Likewise. 7416 (build_op_delete_call): Likewise. 7417 (convert_like_real): Likewise. 7418 * cvt.c (cp_convert_to_pointer): Likewise. 7419 (convert_to_reference): Likewise. 7420 * pt.c (convert_nontype_argument): Likewise. 7421 * typeck.c (build_binary_op): Likewise. 7422 (build_ptrmemfunc): Likewise. 7423 (convert_for_assignment): Likewise. 7424 74252000-08-17 Nathan Sidwell <nathan@codesourcery.com> 7426 7427 * cp-tree.h (CPTR_AGGR_TAG): New global tree node. 7428 (current_aggr): Define. 7429 * decl.c (grokdeclarator): Make sure a friend class is an 7430 elaborated type specifier. 7431 * parse.y (current_aggr): Remove static definition. 7432 (cp_parse_init): Adjust. 7433 (structsp): Clear and restore current_aggr. 7434 (component_decl_list): Clear current_aggr. 7435 7436 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the 7437 aggregate tag on the typename's context. 7438 7439 * pt.c (tsubst_friend_class): Return error_mark_node, if 7440 parms becomes NULL. 7441 (instantiate_class_template): Ignore error_mark_node friend types. 7442 74432000-08-14 Nathan Sidwell <nathan@codesourcery.com> 7444 7445 * cvt.c (warn_ref_binding): New static function, broken out of ... 7446 (convert_to_reference): ... here. Use it. 7447 74482000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 7449 7450 * parse.y (template_arg): Add rule for template qualified with 7451 global scope. 7452 74532000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 7454 7455 * decl2.c (add_function): Reorganize. 7456 (arg_assoc): Do not consider function template decls. 7457 74582000-08-11 Jason Merrill <jason@redhat.com> 7459 7460 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're 7461 looking inside. 7462 74632000-08-11 Nathan Sidwell <nathan@codesourcery.com> 7464 7465 * cp-tree.h (resolve_scope_to_name): Remove unused prototype. 7466 (lookup_nested_tag): Likewise. 7467 7468 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs 7469 can be produced. 7470 74712000-08-11 Nathan Sidwell <nathan@codesourcery.com> 7472 7473 * parse.y (named_complex_class_head_sans_basetype): Remove 7474 always true if. 7475 74762000-08-11 Nathan Sidwell <nathan@codesourcery.com> 7477 7478 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build 7479 explicit TEMPLATE_ID_EXPR args. 7480 (build_expr_from_tree, case CALL_EXPR): Likewise. 7481 74822000-08-11 Nathan Sidwell <nathan@codesourcery.com> 7483 7484 * decl.c (check_tag_decl): Diagnose typename's which don't 7485 declare anything. 7486 74872000-08-10 Nathan Sidwell <nathan@codesourcery.com> 7488 7489 * init.c (build_aggr_init): Reject bogus array initializers 7490 early. 7491 74922000-08-09 Nathan Sidwell <nathan@codesourcery.com> 7493 7494 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi 7495 runtime. 7496 * cp/tinfo.cc (__dynamic_cast): Likewise. 7497 * cp/inc/cxxabi.h (__dynamic_cast): Likewise. 7498 74992000-08-09 Nathan Sidwell <nathan@codesourcery.com> 7500 7501 * cvt.c (convert_to_pointer_force): Fix error message when 7502 attempting to cast from ambiguous base. 7503 75042000-08-08 Jason Merrill <jason@redhat.com> 7505 7506 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails. 7507 (tsubst_template_arg_vector): Likewise. 7508 7509 * decl2.c (build_anon_union_vars): Choose the largest field; don't 7510 assume that one will be as large as the union. 7511 75122000-08-07 Kazu Hirata <kazu@hxi.com> 7513 7514 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo. 7515 * decl.c (pop_labels): Likewise. 7516 75172000-08-04 Jeffrey Oldham <oldham@codesourcery.com> 7518 7519 * inc/cxxabi.h (__pbase_type_info): Changed member names to match 7520 specifications. 7521 (__pointer_to_member_type_info): Likewise. 7522 (__base_class_info): Likewise. 7523 (__class_type_info): Likewise. 7524 (__si_class_type_info): Likewise. 7525 (__vmi_class_type_info): Likewise. 7526 * tinfo.cc (__si_class_type_info::__do_find_public_src): 7527 Changed member names to match specifications. 7528 (__vmi_class_type_info::__do_find_public_src): Likewise. 7529 (__si_class_type_info::__do_dyncast): Likewise. 7530 (__vmi_class_type_info::__do_dyncast): Likewise. 7531 (__si_class_type_info::__do_upcast): Likewise. 7532 (__vmi_class_type_info::__do_upcast): Likewise. 7533 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise. 7534 (__pbase_type_info::__pointer_catch): Likewise. 7535 (__pointer_type_info::__pointer_catch): Likewise. 7536 (__pointer_to_member_type_info::__pointer_catch): Likewise. 7537 75382000-08-04 Zack Weinberg <zack@wolery.cumb.org> 7539 7540 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist. 7541 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS. 7542 (cc1plus): Link with $(BACKEND) and $(C_OBJS). 7543 75442000-08-04 Mark Mitchell <mark@codesourcery.com> 7545 7546 * cp-tree.h (add_method): Change prototype. 7547 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P. 7548 Don't double the size of the method vector in the error case. 7549 (handle_using_decl): Adjust call to add_method. 7550 (add_implicitly_declared_members): Likewise. 7551 (clone_function_decl): Likewise. 7552 * decl2.c (check_classfn): Likewise. 7553 * semantics.c (finish_member_declaration): Likewise. 7554 75552000-08-04 Joseph S. Myers <jsm28@cam.ac.uk> 7556 7557 * decl.c (flag_isoc94): New variable. 7558 75592000-08-02 Jason Merrill <jason@redhat.com> 7560 7561 * pt.c (do_type_instantiation): Add complain parm; don't complain 7562 if called recursively. 7563 * cp-tree.h, parse.y: Adjust. 7564 75652000-08-02 Zack Weinberg <zack@wolery.cumb.org> 7566 7567 * decl2.c: Silently ignore -Wstrict-prototypes; warn about 7568 -Wno-strict-prototypes. 7569 7570 * g++spec.c: Adjust type of second argument to 7571 lang_specific_driver, and update code as necessary. 7572 7573 * cp-tree.h: Don't prototype min_precision here. 7574 (my_friendly_assert): Cast expression to void. 7575 * semantics.c (do_poplevel): Initialize scope_stmts. 7576 75772000-08-02 Mark Mitchell <mark@codesourcery.com> 7578 7579 * cp-tree.h (DECL_NEEDED_P): Tweak. 7580 75812000-07-28 Jason Merrill <jason@redhat.com> 7582 7583 * lang-specs.h: Use %i in rule for .ii files. 7584 75852000-07-31 Zack Weinberg <zack@wolery.cumb.org> 7586 7587 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. 7588 75892000-07-30 Mark Mitchell <mark@codesourcery.com> 7590 7591 Allow indirect primary bases. 7592 * cp-tree.h (struct lang_type): Remove vfield_parent. Add 7593 primary_base. 7594 (CLASSTYPE_VFIELD_PARENT): Remove. 7595 (CLASSTYPE_PRIMARY_BINFO): Reimplement. 7596 (BINFO_PRIMARY_BINFO): Remove. 7597 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. 7598 (BINFO_VBASE_PRIMARY_P): Likewise. 7599 (BINFO_PRIMARY_BASE_OF): New macro. 7600 (BINFO_INDIRECT_PRIMARY_P): Likewise. 7601 (get_primary_binfo): New function. 7602 * decl.c (lang_mark_tree): Make lang_type::primary_base. 7603 * class.c (vcall_offset_data_s): Rename to ... 7604 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, 7605 and add ctor_vtbl_p. 7606 (get_derived_offset): Use get_primary_binfo. 7607 (dfs_mark_primary_bases): Adjust handling of virtual primary 7608 bases. 7609 (mark_primary_bases): Likewise. 7610 (set_primary_base): Take a binfo, not an integer, as a 7611 representation of the primary base. 7612 (indirect_primary_base_p): Remove. 7613 (determine_primary_base): Adjust for indirect primary bases. 7614 (dfs_find_final_overrider): Fix typo in coment. 7615 (update_vtable_entry_for_fn): Use get_primary_binfo. 7616 (layout_nonempty_base_or_field): Tweak. 7617 (build_base_fields): Adjust for new primary base semantics. 7618 (dfs_propagate_binfo_offsets): Remove. 7619 (propagate_binfo_offsets): Rewrite. 7620 (dfs_set_offset_for_shared_vbases): Remove. 7621 (layout_virtual_bases): Don't use it. 7622 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new 7623 ABI. 7624 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not 7625 CLASSTYPE_VFIELD_PARENT. 7626 (dfs_get_primary_binfo): New function. 7627 (get_primary_binfo): Likewise. 7628 (dump_class_hierarchy_r): Tweak printing of primary bases. 7629 (build_vtbl_initializer): Fix typo in comments. Use 7630 vtbl_init_data. 7631 (build_vcall_and_vbase_vtbl_entries): Likewise. 7632 (build_vbaes_offset_vtbl_entries): Likewise. 7633 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of 7634 BV_VCALL_INDEX to handle indirect primary bases. 7635 (build_vcall_offset_vtbl_entries): Use vtbl_init_data. 7636 (build_rtti_vtbl_entries): Likewise. 7637 * search.c (get_shared_vbase_if_not_primary): Tweak. 7638 (find_vbase_instance): Likewise. 7639 (binfo_for_vtable): Simplify. 7640 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. 7641 (make_binfo): Make it have 11 entries. 7642 76432000-07-30 Alex Samuel <samuel@codesourcery.com> 7644 7645 * mangle.c (DECL_TEMPLATE_ID_P): Remove. 7646 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when 7647 ascertaining primaryness. 7648 (G): Remove template_args. 7649 (decl_is_template_id): New function. 7650 (write_encoding): Use decl_is_template_id. 7651 (write_name): Likewise. Handle type_decls. Get main variant of 7652 type decls. 7653 (write_nested_name): Likewise. 7654 (write_prefix): Likewise. 7655 (write_template_prefix): Likewise. 7656 (write_special_name_constructor): Remove defunct production from 7657 comment. 7658 (write_bare_function_type): Remove comment about absent parameter. 7659 (write_template_template_arg): Add missing grammar production to 7660 comment. 7661 76622000-07-27 Jason Merrill <jason@redhat.com> 7663 7664 * decl.c (duplicate_decls): If common_type produces a non-typedef 7665 type for a typedef, just use the old type. 7666 76672000-07-27 Mark Mitchell <mark@codesourcery.com> 7668 7669 * cp-tree.h (function_depth): Declare. 7670 (verify_stmt_tree): Likewise. 7671 (find_tree): Likewise. 7672 * decl.c (function_depth): Give it external linkage. 7673 * optimize.c (optimize_function): Increment and decrement it. 7674 * tree.c (verify_stmt_tree_r): New function. 7675 (verify_stmt_tree): Likewise. 7676 (find_tree_r): Likewise. 7677 (find_tree): Likewise. 7678 76792000-07-27 Jason Merrill <jason@redhat.com> 7680 7681 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use 7682 TYPE_PTRMEMFUNC_P. 7683 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC. 7684 76852000-07-26 Mark Mitchell <mark@codesourcery.com> 7686 7687 * decl.c (start_cleanup_fn): Mark the function as `inline'. 7688 * decl2.c (get_guard): Call cp_finish_decl, not 7689 rest_of_decl_compilation, for local guards. 7690 * lex.c (do_identifier): Remove unused variable. 7691 7692Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 7693 7694 * parse.y: Add missing ';'. 7695 76962000-07-26 Mark Mitchell <mark@codesourcery.com> 7697 7698 * parse.y (empty_parms): Use `()', not `(...)', when in the scope 7699 of `extern "C++"'. 7700 77012000-07-25 Nathan Sidwell <nathan@codesourcery.com> 7702 7703 Kill strict_prototype. Backwards compatibility only for 7704 non NO_IMPLICIT_EXTERN_C systems. 7705 * cp-tree.h (flag_strict_prototype): Remove. 7706 (strict_prototype): Remove. 7707 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 7708 * decl.c (maybe_push_to_top_level): Adjust. 7709 (pop_from_top_level): Adjust. 7710 (decls_match): Only allow sloppy parm matching for ancient 7711 system headers. 7712 (init_decl_processing): Adjust. 7713 (grokdeclarator): Adjust. 7714 * decl2.c (flag_strict_prototype): Remove. 7715 (strict_prototype): Remove. 7716 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 7717 (lang_f_options): Remove "strict-prototype". 7718 (unsupported-options): Add "strict-prototype". 7719 * lex.c (do_identifier): Adjust. 7720 (do_scoped_id): Adjust. 7721 * parse.y (empty_parms): Adjust. 7722 * class.c (push_lang_context): Adjust. 7723 (pop_lang_context): Adjust. 7724 * typeck.c (comp_target_parms): Adjust. 7725 77262000-07-25 Nathan Sidwell <nathan@codesourcery.com> 7727 7728 * decl.c (poplevel): Deal with anonymous variables at for scope. 7729 (maybe_inject_for_scope_var): Likewise. 7730 77312000-07-25 Zack Weinberg <zack@wolery.cumb.org> 7732 7733 * decl.c: Remove all signal handling code, now done in toplev.c. 7734 77352000-07-23 Mark Mitchell <mark@codesourcery.com> 7736 7737 * decl.c (make_rtl_for_nonlocal_decl): Rework. 7738 7739 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set 7740 correctly. 7741 77422000-07-20 Zack Weinberg <zack@wolery.cumb.org> 7743 7744 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__. 7745 Define my_friendly_assert and my_friendly_abort as macros 7746 which may call friendly_abort. Prototype friendly abort, not 7747 my_friendly_abort or my_friendly_assert. 7748 * decl.c (signal_catch): Report the signal caught in the error 7749 message. Call fatal directly. 7750 * typeck2.c (ack, my_friendly_assert): Delete. 7751 (my_friendly_abort): Rename to friendly_abort. Expect file, 7752 line, and function parameters. Report the abort code, then 7753 call fancy_abort. Do not mask an abort if errors have 7754 already occurred. 7755 77562000-07-18 Nathan Sidwell <nathan@codesourcery.com> 7757 7758 * typeck.c (comp_target_parms): Remove obsolete parameter. 7759 (comp_target_types): Adjust. 7760 77612000-07-17 Jason Merrill <jason@redhat.com> 7762 7763 * typeck.c (mark_addressable): Never set TREE_USED. 7764 * call.c (build_call): Don't abort on calls to library functions 7765 that have been declared normally. 7766 7767 * typeck.c (build_binary_op): Fix grammar in warning. 7768 7769 * exception.cc (__eh_free): Fix prototype. 7770 7771 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR. 7772 7773 * decl.c (pushdecl): Handle seeing an OVERLOAD in 7774 IDENTIFIER_NAMESPACE_VALUE. 7775 77762000-07-16 Mark Mitchell <mark@codesourcery.com> 7777 7778 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation. 7779 * method.c (use_thunk): Correct handling of vcall offsets. 7780 77812000-07-14 Zack Weinberg <zack@wolery.cumb.org> 7782 7783 * .cvsignore: parse.h and parse.c have no cp- prefix. 7784 77852000-07-13 Mark Mitchell <mark@codesourcery.com> 7786 7787 * .cvsignore: New file. 7788 77892000-07-13 Zack Weinberg <zack@wolery.cumb.org> 7790 7791 * lang-specs.h: Use the new named specs. Remove unnecessary braces. 7792 77932000-07-12 Mark Mitchell <mark@codesourcery.com> 7794 7795 * Makefile.in ($(PARSE_H)): Depend directly on parse.y. 7796 * parse.c: Remove. 7797 * parse.h: Likewise. 7798 77992000-07-11 Mark Mitchell <mark@codesourcery.com> 7800 7801 * class.c (layout_class_type): Add pointers to virtual bases after 7802 base classes under the old ABI. 7803 78042000-07-10 Benjamin Chelf <chelf@codesourcery.com> 7805 7806 * semantics.c (finish_for_stmt): Remove call to emit_line_note. 7807 (finish_continue_stmt): Likewise. 7808 (begin_for_stmt): Remove call to note_level_for_for. 7809 (finish_goto_stmt): Change call from build_min_nt 7810 to build_stmt. 7811 (finish_expr_stmt): Likewise. 7812 (begin_if_stmt): Likewise. 7813 (begin_while_stmt): Likewise. 7814 (finish_while_stmt): Likewise. 7815 (finish_return_stmt): Likewise. 7816 (begin_for_stmt): Likewise. 7817 (finish_for_stmt): Likewise. 7818 (finish_break_stmt): Likewise. 7819 (begin_switch_stmt): Likewise. 7820 (finish_case_label): Likewise. 7821 (genrtl_try_block): Likewise. 7822 (begin_try_block): Likewise. 7823 (begin_handler): Likewise. 7824 (begin_compound_stmt): Likewise. 7825 (finish_asm_stmt): Likewise. 7826 (finish_label_stmt): Likewise. 7827 (add_decl_stmt): Likewise. 7828 (finish_subobject): Likewise. 7829 (finish_decl_cleanup): Likewise. 7830 (finish_named_return_value): Likewise. 7831 (setup_vtbl_ptr): Likewise. 7832 (add_scope_stmt): Likewise. 7833 * decl.c (finish_constructor_body): Likewise. 7834 (finish_destructor_body): Likewise. 7835 * optimize.c (copy_body_r): Likewise. 7836 (initialize_inlined_parameters): Likewise. 7837 (declare_return_variable): Likewise. 7838 (expand_call_inline): Likewise. 7839 78402000-07-10 Jakub Jelinek <jakub@redhat.com> 7841 7842 * semantics.c (expand_body): Sync interface information 7843 at the end of function body expansion. 7844 78452000-07-09 Jason Merrill <jason@redhat.com> 7846 7847 * init.c (build_new_1): Bail early if the call to new fails. 7848 7849 * decl.c (compute_array_index_type): Check specifically for 7850 an INTEGER_CST, not just TREE_CONSTANT. 7851 7852 * decl.c (duplicate_decls): Don't call duplicate_decls on 7853 the DECL_TEMPLATE_RESULT. 7854 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different 7855 codes. 7856 7857 * error.c (dump_template_bindings): Don't crash if we had an 7858 invalid argument list. 7859 7860 * typeck.c (c_expand_start_case): Do narrowing here. 7861 * semantics.c (finish_switch_cond): Not here. 7862 78632000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com> 7864 7865 * parse.y (asm_clobbers): Do string concatenation. 7866 78672000-07-09 Mark Mitchell <mark@codesourcery.com> 7868 7869 * decl.c (pushtag): Don't put local classes in template functions 7870 on the local_classes list. 7871 78722000-07-04 Scott Snyder <snyder@fnal.gov> 7873 7874 * decl2.c (get_guard): Add missing return for old ABI local 7875 variable case. 7876 78772000-07-09 Mark Mitchell <mark@codesourcery.com> 7878 7879 * cp-tree.h (char_type_p): New function. 7880 * decl.c (init_decl_processing): Don't initialize 7881 signed_wchar_type_node or unsigned_wchar_type_node. 7882 (complete_array_type): Handle brace-enclosed string-constants. 7883 * rtti.c (emit_support_tinfos): Remove #if 0'd code. 7884 * tree.c (char_type_p): New function. 7885 * typeck2.c (digest_init): Use char_type_p. 7886 78872000-07-06 Nathan Sidwell <nathan@codesourcery.com> 7888 7889 * pt.c (tsubst): Don't layout type, if it's error_mark. 7890 78912000-07-06 Nathan Sidwell <nathan@codesourcery.com> 7892 7893 * pt.c (instantiate_pending_templates): Reset template level. 7894 78952000-07-05 Jason Merrill <jason@redhat.com> 7896 7897 * call.c (joust): Don't complain about `operator char *()' beating 7898 `operator const char *() const'. 7899 79002000-07-04 scott snyder <snyder@fnal.gov> 7901 Jason Merrill <jason@redhat.com> 7902 7903 * repo.c (repo_get_id): Handle the case where a class with virtual 7904 bases has a null TYPE_BINFO_VTABLE. 7905 79062000-07-04 Kevin Buhr <buhr@stat.wisc.edu> 7907 Jason Merrill <jason@redhat.com> 7908 7909 * parse.y (member_init): Just pass in the type. 7910 * init.c (expand_member_init): Handle getting a type. 7911 79122000-07-04 Martin v. L�wis <loewis@informatik.hu-berlin.de> 7913 Jason Merrill <jason@redhat.com> 7914 7915 * decl.c (finish_function): Warn if a function has no return 7916 statement. 7917 Suggested by Andrew Koenig. 7918 * typeck.c (check_return_expr): Do set current_function_returns_value 7919 if we got an error_mark_node. 7920 79212000-07-03 Nathan Sidwell <nathan@codesourcery.com> 7922 7923 * decl2.c (push_decl_namespace): Push the original namespace. 7924 79252000-07-03 Nathan Sidwell <nathan@codesourcery.com> 7926 7927 * pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES. 7928 * semantics.c (begin_class_definition): Clear it. 7929 79302000-07-02 Benjamin Chelf <chelf@codesourcery.com> 7931 7932 * cp-tree.h (genrtl_goto_stmt): Remove declaration. 7933 (genrtl_expr_stmt): Likewise. 7934 (genrtl_decl_stmt): Likewise. 7935 (genrtl_if_stmt): Likewise. 7936 (genrtl_while_stmt): Likewise. 7937 (genrtl_do_stmt): Likewise. 7938 (genrtl_return_stmt): Likewise. 7939 (genrtl_for_stmt): Likewise. 7940 (genrtl_break_stmt): Likewise. 7941 (genrtl_continue_stmt): Likewise. 7942 (genrtl_scope_stmt): Likewise. 7943 (genrtl_switch_stmt): Likewise. 7944 (genrtl_case_label): Likewise. 7945 (genrtl_begin_compound_stmt): Likewise. 7946 (genrtl_finish_compound_stmt): Likewise. 7947 (genrtl_compound_stmt): Likewise. 7948 (genrtl_asm_stmt): Likewise. 7949 7950 * init.c (begin_init_stmts): Remove call to 7951 genrtl_begin_compound_stmt. 7952 (finish_init_stmts): Remove call to genrtl_finish_compound_stmt. 7953 7954 * semantics.c (lang_expand_stmt): Changed call to 7955 genrtl_compound_stmt to ignore return value. 7956 79572000-07-02 Mark Mitchell <mark@codesourcery.com> 7958 7959 * mangle.c (canonicalize_for_substitution): Return the canonical 7960 variant of a type. 7961 7962 * decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a 7963 TYPE_DECL. 7964 * typeck.c (commonparms): Remove obstack manipulations. 7965 79662000-07-01 Benjamin Chelf <chelf@codesourcery.com> 7967 7968 * Make-lang.in (cc1plus$(exeext)): Added c-semantics.o. 7969 7970 * Makefile.in (OBJS): Added ../c-semantics.o. 7971 (OBJDEPS): Likewise. 7972 7973 * cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to 7974 ../c-common.h. 7975 (struct stmt_tree): Added comment. 7976 (current_function_name_declared): Removed. 7977 (stmts_are_full_exprs_p): Likewise. 7978 (genrtl_do_pushlevel): Likewise. 7979 (genrtl_clear_out_block): Likewise. 7980 (COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h. 7981 (DECL_ANON_UNION_ELEMS): Likewise. 7982 (emit_local_var): Likewise. 7983 (make_rtl_for_local_static): Likewise. 7984 (do_case): Likewise. 7985 (expand_stmt): Likewise. 7986 (genrtl_decl_cleanup): Likewise. 7987 (c_expand_asm_operands): Likewise. 7988 (c_expand_return): Likewise. 7989 (c_expand_start_case): Likewise. 7990 7991 * decl.c (make_rtl_for_local_static): Moved to c-semantics.c. 7992 (emit_local_var): Likewise. 7993 (initialize_local_var): Change reference to 7994 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 7995 Change reference to stmts_are_full_exprs_p to 7996 current_stmt_tree->stmts_are_full_exprs_p. 7997 (push_cp_function_context): Likewise. 7998 7999 * expect.c (expand_throw): Change reference to 8000 stmts_are_full_exprs_p. 8001 8002 * init.c (build_aggr_init): Change reference to 8003 stmts_are_full_exprs_p. 8004 (build_vec_init): Likewise. 8005 8006 * optimize.c (maybe_clone_body): Change reference to 8007 current_function_name_declared to 8008 cp_function_chain->name_declared. 8009 8010 * pt.c (instantiate_decl): Change reference to 8011 current_function_name_declared to 8012 cp_function_chain->name_declared. 8013 8014 * semantics.c (expand_cond): Moved declaration to c-common.h. 8015 (genrtl_do_pushlevel): Moved to c-semantics.c. 8016 (genrtl_clear_out_block): Likewise. 8017 (genrtl_goto_stmt): Likewise. 8018 (genrtl_expr_stmt): Likewise. 8019 (genrtl_decl_stmt): Likewise. 8020 (gerntl_if_stmt): Likewise. 8021 (genrtl_while_stmt): Likewise. 8022 (genrtl_do_stmt): Likewise. 8023 (genrtl_return_stmt): Likewise. 8024 (genrtl_for_stmt): Likewise. 8025 (genrtl_break_stmt): Likewise. 8026 (genrtl_continue_stmt): Likewise. 8027 (genrtl_scope_stmt): Likewise. 8028 (genrtl_switch_stmt): Likewise. 8029 (genrtl_case_label): Likewise. 8030 (genrtl_begin_compound_stmt): Likewise. 8031 (genrtl_finish_compound_stmt): Likewise. 8032 (genrtl_compound_stmt): Likewise. 8033 (genrtl_asm_stmt): Likewise. 8034 (genrtl_decl_cleanup): Likewise. 8035 (expand_cond): Likewise. 8036 (expand_stmt): Renamed to ... 8037 (lang_expand_stmt): ... this. 8038 (lang_expand_expr_stmt): Initialize. 8039 (set_current_function_name_declared): Likewise. 8040 (stmts_are_full_exprs_p): Likewise. 8041 (current_function_name_declared): Likewise. 8042 (anon_aggr_type_p): Likewise. 8043 (do_poplevel): Change reference to 8044 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 8045 Change reference to stmts_are_full_exprs_p to 8046 current_stmt_tree->stmts_are_full_exprs_p. 8047 (add_tree): Likewise. 8048 (finish_expr_stmt): Likewise. 8049 (prep_stmt): Likewise. 8050 (lang_expand_stmt): Likewise. 8051 (begin_compound_stmt): Change reference to 8052 current_function_name_declared to 8053 cp_function_chain->name_declared and call to 8054 current_function_name_declared(). 8055 (setup_vtbl_ptr): Likewise. 8056 (genrtl_do_poplevel): Removed. 8057 80582000-06-30 Jason Merrill <jason@redhat.com> 8059 8060 * init.c (init_init_processing): Go back to aligning like 8061 double_type_node for old ABI. 8062 (get_cookie_size): Make cookie larger if we get a type that needs 8063 more alignment. 8064 (build_vec_delete): Call it. 8065 8066 * typeck.c (qualify_type_recursive): New fn. 8067 (composite_pointer_type): Use it. 8068 (build_binary_op): Use composite_pointer_type. 8069 80702000-06-24 Carlos O'Ryan <coryan@cs.wustl.edu> 8071 Jason Merrill <jason@redhat.com> 8072 8073 * typeck.c (check_return_expr): Don't complain about returning 8074 NULL from operator new if -fcheck-new. 8075 * cp-tree.h: Declare flag_check_new here. 8076 * init.c: Not here. 8077 80782000-06-28 Alex Samuel <samuel@codesourcery.com> 8079 8080 * mangle.c (find_substitution): Use same_type_p. 8081 (write_encoding): Don't check for substitutions. 8082 80832000-06-30 Nathan Sidwell <nathan@codesourcery.com> 8084 8085 * parse.y (expr_no_comma_rangle): New non-terminal. 8086 (template_parm): Use it for default parameter case. 8087 (template_arg): Use it. 8088 (expr_no_commas): Remove commented out undefined extensions. 8089 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 8090 * parse.h, parse.c: Rebuilt. 8091 80922000-06-30 Mark Mitchell <mark@codesourcery.com> 8093 8094 * semantics.c (genrtl_asm_stmt): Don't decay input operands here. 8095 (finish_asm_stmt): Do it here, instead. 8096 8097 * cp-tree.h (ridpointers): Don't declare. 8098 * decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX. 8099 (record_builtin_java_type): Likewise. 8100 (init_decl_processing): Likewise. 8101 * lex.c: Move inclusion of lex.h. 8102 (ridpointers): Don't define. 8103 (init_parse): Initialize ripdointers. Use CP_RID_MAX instead of 8104 RID_MAX. 8105 * lex.h (enum rid): Rename to ... 8106 (enum cp_rid): ... this. 8107 (ridpointers): Don't declare. 8108 * parse.y: Move inclusion of lex.h. 8109 * parse.c: Regenerated. 8110 * spew.c: Move inclusion of lex.h. 8111 8112 * cp-tree.h (struct language_function): Remove temp_name_counter. 8113 (temp_name_counter): Remove. 8114 (get_temp_name): Change prototype. 8115 (get_guard): New function. 8116 (get_guard_cond): Likewise. 8117 (set_guard): Likewise. 8118 * cvt.c (build_up_reference): Adjust call to get_temp_name. 8119 * decl.c (expand_static_init): Use get_guard and friends to 8120 implement guard variables. 8121 * decl2.c (get_temp_name): Assume that the variables created are 8122 always static. 8123 (get_sentry): Rename to ... 8124 (get_guard): ... this. Implement new ABI guard variables. 8125 (get_guard_bits): New function. 8126 (get_guard_cond): Likewise. 8127 (set_guard): Likewise. 8128 (start_static_initialization_or_destruction): Use them. 8129 (do_static_initialization): Replace sentry with guard throughout. 8130 (do_static_destruction): Likewise. 8131 * init.c (create_temporary_var): Add comment. 8132 81332000-06-28 Alex Samuel <samuel@codesourcery.com> 8134 8135 * mangle.c (find_substitution): Use same_type_p. 8136 (write_encoding): Don't check for substitutions. 8137 81382000-06-30 Nathan Sidwell <nathan@codesourcery.com> 8139 8140 * parse.y (expr_no_comma_rangle): New non-terminal. 8141 (template_parm): Use it for default parameter case. 8142 (template_arg): Use it. 8143 (expr_no_commas): Remove commented out undefined extensions. 8144 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 8145 * parse.h, parse.c: Rebuilt. 8146 81472000-06-29 Mark Mitchell <mark@codesourcery.com> 8148 8149 * cp-tree.h (flag_const_strings): Remove. 8150 (warn_parentheses): Likewise. 8151 (warn_format): Likewise. 8152 (common_type): Likewise. 8153 (default_conversion): Likewise. 8154 (build_binary_op): Likewise. 8155 (cp_build_binary_op): New macro. 8156 * call.c (build_new_op): Use cp_build_binary_op instead of 8157 build_binary_op. 8158 * class.c (build_vtable_entry_ref): Likewise. 8159 * decl.c (expand_static_init): Likewise. 8160 (compute_array_index_type): Likewise. 8161 (build_enumerator): Likewise. 8162 * decl2.c (delete_sanity): Likewise. 8163 (start_static_initialization_or_destruction): Likewise. 8164 * error.c (dump_type_suffix): Likewise. 8165 * init.c (resolve_offset_ref): Likewise. 8166 (build_new): Likewise. 8167 (build_new_1): Likewise. 8168 (build_vec_delete_1): Likewise. 8169 (build_vec_init): Likewise. 8170 (build_delete): Likewise. 8171 * rtti.c (synthesize_tinfo_fn): Likewise. 8172 (synthesize_tinfo_var): Likewise. 8173 * search.c (expand_upcast_fixups): Likewise. 8174 (fixup_all_virtual_upcast_offsets): Likewise. 8175 * typeck.c (build_array_ref): Likewise. 8176 (get_member_function_from_ptrfunc): Likewise. 8177 (build_binary_op): Add parameter. 8178 (pointer_int_sum): Use cp_build_binary_op. 8179 (pointer_diff): Likewise. 8180 (build_modify_expr): Likewise. 8181 (get_delta_difference): Likewise. 8182 (build_ptrmemfunc): Likewise. 8183 81842000-06-29 Nathan Sidwell <nathan@codesourcery.com> 8185 8186 * cp-tree.h (SET_DECL_ARTIFICIAL): Remove. 8187 * decl.c (create_implicit_typedef): Adjust. 8188 * decl2.c (build_artificial_parm): Adjust. 8189 * method.c (implicitly_declare_fn): Adjust. 8190 * pt.c (push_inline_template_parms_recursive): Adjust. 8191 (process_template_parm): Adjust. 8192 (overloaded_template_name): Adjust. 8193 * semantics.c (finish_template_template_parm): Adjust. 8194 81952000-06-28 Mark Mitchell <mark@codesourcery.com> 8196 8197 * cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove. 8198 * class.c (update_vtable_entry_for_fn): Correct logic for deciding 8199 where to emit thunks. 8200 (build_vtt): Adjust call to build_vtt_inits. 8201 (build_vtt_inits): Add parameter to indicate whether or not 8202 sub-VTTs for virtual bases should be included. Adjust handling of 8203 construction vtables. 8204 (get_matching_base): New function. 8205 (dfs_build_vtt_inits): Rename to ... 8206 (dfs_build_secondary_vptr_vtt_inits): Adjust handling of 8207 construction vtables. 8208 (dfs_fixup_binfo_vtbls): Likewise. 8209 (build_ctor_vtbl_groups): Build construction vtables for virtual 8210 bases, too. 8211 (accumulate_vtbl_inits): Tweak logic for deciding whether or not 8212 to build construction vtbls. 8213 (dfs_accumulate_vtbl_inits): Adjust handling of 8214 construction vtables. 8215 8216 * pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified 8217 types correctly. 8218 82192000-06-27 Mark Mitchell <mark@codesourcery.com> 8220 8221 * decl.c (grokfndecl): Set DECL_CONTEXT for static functions too. 8222 82232000-06-26 Nathan Sidwell <nathan@codesourcery.com> 8224 8225 * search.c (hides): Remove. 8226 (is_subobject_of_p): Add most_derived parameter. Use 8227 CANONICAL_BINFO. 8228 (lookup_field_queue_p): Adjust. 8229 (lookup_field_r): Adjust. 8230 82312000-06-26 Nathan Sidwell <nathan@codesourcery.com> 8232 8233 * decl2.c (handle_class_head): Bash typedefs to the type's main 8234 decl. 8235 82362000-06-25 Mark Mitchell <mark@codesourcery.com> 8237 8238 * cp-tree.h (genrtl_begin_stmt_expr): Rename to ... 8239 (begin_global_stmt_expr): ... this. 8240 (genrtl_finish_stmt_expr): Rename to ... 8241 (finish_global_stmt_expr): ... this. 8242 * init.c (begin_init_stmts): Adjust calls. 8243 (finish_init_stmts): Likewise. 8244 * semantics.c (genrtl_begin_stmt_expr): Rename to ... 8245 (begin_global_stmt_expr): ... this. 8246 (genrtl_finish_stmt_expr): Rename to ... 8247 (finish_global_stmt_expr): ... this. 8248 82492000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 8250 8251 * search.c (lookup_member): Fix typo in comment. 8252 82532000-06-24 Jason Merrill <jason@redhat.com> 8254 8255 * decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace. 8256 (push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL. 8257 82582000-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 8259 8260 * parse.y (complex_direct_notype_declarator): Support global_scope. 8261 * Makefile.in: Adjust conflict count. 8262 82632000-06-23 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 8264 8265 * parse.y (template_arg): Convert TEMPLATE_DECL 8266 that is a template template parameter to 8267 TEMPLATE_TEMPLATE_PARM here. 8268 8269 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment. 8270 * cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro. 8271 (copy_template_template_parm): Adjust prototype. 8272 * decl.c (grokdeclarator): Remove dead code. 8273 * pt.c (process_template_parm): Tidy. 8274 (lookup_template_class): Construct nodes in 8275 copy_template_template_parm. 8276 (tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to 8277 lookup_template_class. Use TYPE_TI_TEMPLATE. 8278 * tree.c (copy_template_template_parm): Add NEWARGS 8279 parameter. 8280 (mapcar): Adjust call to copy_template_template_parm. 8281 * typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. 8282 * method.c (build_template_template_parm_names): Change error 8283 code to avoid compilation warning. 8284 8285 * gxxint.texi: Document template template parameter 8286 name mangling. 8287 82882000-06-21 Alex Samuel <samuel@codesourcery.com> 8289 8290 * Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o. 8291 (CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c. 8292 (cp-demangle.o): New rule. 8293 (dyn-string.o): Likewise. 8294 * inc/cxxabi.h (__cxa_demangle): New declaration. 8295 82962000-06-22 Mark Mitchell <mark@codesourcery.com> 8297 8298 * cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. 8299 (BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise. 8300 (lang_decl_flags): Add generate_with_vtable_p. Make vcall_offset 8301 a tree, not an int. 8302 (THUNK_GENERATE_WITH_VTABLE_P): New macro. 8303 (make_thunk): Change prototype. 8304 (emit_thunk): Rename to use_thunk. 8305 (mangle_thunk): Change prototype. 8306 * class.c (get_derived_offset): Simplify. 8307 (copy_virtuals): Clear BV_USE_VCALL_INDEX_P and 8308 BV_GENERATE_THUNK_WITH_VTABLE_P. 8309 (build_primary_vtable): Simplify. 8310 (add_virtual_function): Use BV_FN, rather than TREE_VALUE. 8311 (dfs_find_base): Remove. 8312 (update_vtable_entry_for_fn): Correct bug in finding the base 8313 where a virtual function was first declared. Figure out whether 8314 or not to emit a vcall-thunk with the vtables in which it appears. 8315 Correct logic for deciding whether to use an ordinary thunk, or a 8316 vcall thunk. 8317 (finish_struct_1): Remove unnecssary code. 8318 (build_vtbl_initializer): Use ssize_int for the running counter of 8319 negative indices. 8320 (build_vtbl_initializer): Only use vcall thunks where necessary. 8321 Mark thunks as needing to be emitted with their vtables, or not. 8322 (build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in 8323 indices. Use size_binop. 8324 (dfs_build_vcall_offset_vtbl_entries): Don't rely on 8325 BINFO_PRIMARY_MARKED_P here. Use BV_FN consistently. Use 8326 size_binop. 8327 (build_rtti_vtbl_entries): Adjust call to build_vtable_entry. 8328 (build_vtable_entry): Mark thunks as needing to be emitted with 8329 their vtables, or not. 8330 * decl.c (lang_mark_tree): Mark the vcall_offset in a thunk. 8331 * decl2.c (mark_vtable_entries): Use use_thunk instead of 8332 emit_thunk. 8333 * dump.c (dequeue_and_dump): Remove dead code. Dump new thunk 8334 information. 8335 * error.c (dump_expr): Use BV_FN. 8336 * mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree, 8337 not an int. 8338 * method.c (make_thunk): Likewise. 8339 (emit_thunk): Rename to use_thunk. Allow callers to decide 8340 whether or not to actually emit the thunk. Adjust for changes in 8341 representation of vcall offsets. 8342 * search.c (dfs_get_pure_virtuals): Use BV_FN. 8343 * semantics.c (emit_associated_thunks): New function. 8344 (expand_body): Use it. 8345 * ir.texi: Adjust decriptions of thunks. 8346 83472000-06-22 Jason Merrill <jason@redhat.com> 8348 8349 * pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE. 8350 (tsubst_friend_function): Copy it here. 8351 8352 * decl.c (grok_op_properties): Fix typo. 8353 8354 * decl2.c (delete_sanity): Clarify warning, avoid failure on 8355 deleting void*. 8356 8357 * pt.c (check_explicit_specialization): Clarify error. 8358 8359 * decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from 8360 an old OVERLOAD when we're declaring a non-function. 8361 (pushdecl, destroy_local_var): Check for error_mark_node. 8362 (warn_extern_redeclared_static): Also bail early if 8363 we're a CONST_DECL. 8364 (push_overloaded_decl): Ignore an old error_mark_node. 8365 83662000-06-22 Nathan Sidwell <nathan@codesourcery.com> 8367 8368 * call.c (build_x_va_arg): Check if in a template decl. 8369 * pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg. 8370 83712000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 8372 8373 * class.c (push_lang_context): TYPE_NAME gets you to the Java 8374 types DECLs. 8375 * decl.c (check_goto): Computed gotos assumed OK. 8376 83772000-06-20 Jason Merrill <jason@redhat.com> 8378 8379 * pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs 8380 for which we don't need to look for instantiations. 8381 83822000-06-21 Nathan Sidwell <nathan@codesourcery.com> 8383 8384 * parse.y (program): Always call finish_translation_unit. 8385 * parse.c, parse.h: Rebuilt. 8386 83872000-06-20 Zack Weinberg <zack@wolery.cumb.org> 8388 8389 * method.c: Don't include hard-reg-set.h. 8390 83912000-06-20 Nathan Sidwell <nathan@codesourcery.com> 8392 8393 * rtti.c (get_base_offset): Cope when vbase field is in a base. 8394 83952000-06-20 Nathan Sidwell <nathan@codesourcery.com> 8396 8397 * call.c (build_conditional_expr): Use VOID_TYPE_P. 8398 * cvt.c (cp_convert_to_pointer): Likewise. 8399 (convert_to_void): Likewise. 8400 * error.c (dump_expr): Likewise. 8401 * except.c (complete_ptr_ref_or_void_ptr_p): Likewise. 8402 * init.c (build_delete): Likewise. 8403 * method.c (emit_thunk): Likewise. 8404 * optmize.c (declare_return_variable): Likewise. 8405 * rtti.c (get_tinfo_decl_dynamic): Likewise. 8406 (get_typeid): Likewise. 8407 (build_dynamic_cast_1): Likewise. 8408 * typeck.c (composite_pointer_type): Likewise. 8409 (common_type): Likewise. 8410 (build_indirect_ref): Likewise. 8411 (build_binary_op): Likewise. 8412 (build_x_compound_expr): Likewise. 8413 (check_return_expr): Likewise. 8414 * typeck2.c (add_exception_specifier): Likewise. 8415 8416 * mangle.c (write_method_parms): Use direct comparison for end 8417 of parmlist. 8418 84192000-06-19 Benjamin Chelf <chelf@codesourcery.com> 8420 8421 * cp-tree.h (genrtl_try_block): Declare function. 8422 (genrtl_handler): Likewise. 8423 (genrtl_catch_block): Likewise. 8424 (genrtl_ctor_stmt): Likewise. 8425 (genrtl_subobject): Likewise. 8426 (genrtl_decl_cleanup): Likewise. 8427 (genrtl_do_poplevel): Likewise. 8428 (genrtl_do_pushlevel): Likewise. 8429 (genrtl_clear_out_block): Likewise. 8430 (genrtl_goto_stmt): Likewise. 8431 (genrtl_expr_stmt): Likewise. 8432 (genrtl_decl_stmt): Likewise. 8433 (genrtl_if_stmt): Likewise. 8434 (genrtl_while_stmt): Likewise. 8435 (genrtl_do_stmt): Likewise. 8436 (genrtl_return_stmt): Likewise. 8437 (genrtl_for_stmt): Likewise. 8438 (genrtl_break_stmt): Likewise. 8439 (genrtl_continue_stmt): Likewise. 8440 (genrtl_scope_stmt): Likewise. 8441 (genrtl_switch_stmt): Likewise. 8442 (genrtl_case_label): Likewise. 8443 (genrtl_begin_compound_stmt): Likewise. 8444 (genrtl_finish_compound_stmt): Likewise. 8445 (genrtl_compound_stmt): Likewise. 8446 (genrtl_asm_stmt): Likewise. 8447 (genrtl_named_return_value): Likewise. 8448 (genrtl_begin_stmt_expr): Likewise. 8449 (genrtl_finish_stmt_expr): Likewise. 8450 (finish_for_stmt): Removed first argument. 8451 (finish_switch_stmt): Likewise. 8452 8453 * semantics.c (genrtl_try_block): Define function. 8454 (genrtl_handler): Likewise. 8455 (genrtl_catch_block): Likewise. 8456 (genrtl_ctor_stmt): Likewise. 8457 (genrtl_subobject): Likewise. 8458 (genrtl_decl_cleanup): Likewise. 8459 (genrtl_do_poplevel): Likewise. 8460 (genrtl_do_pushlevel): Likewise. 8461 (genrtl_clear_out_block): Likewise. 8462 (genrtl_goto_stmt): Likewise. 8463 (genrtl_expr_stmt): Likewise. 8464 (genrtl_decl_stmt): Likewise. 8465 (genrtl_if_stmt): Likewise. 8466 (genrtl_while_stmt): Likewise. 8467 (genrtl_do_stmt): Likewise. 8468 (genrtl_return_stmt): Likewise. 8469 (genrtl_for_stmt): Likewise. 8470 (genrtl_break_stmt): Likewise. 8471 (genrtl_continue_stmt): Likewise. 8472 (genrtl_scope_stmt): Likewise. 8473 (genrtl_switch_stmt): Likewise. 8474 (genrtl_case_label): Likewise. 8475 (genrtl_begin_compound_stmt): Likewise. 8476 (genrtl_finish_compound_stmt): Likewise. 8477 (genrtl_compound_stmt): Likewise. 8478 (genrtl_asm_stmt): Likewise. 8479 (genrtl_named_return_value): Likewise. 8480 (genrtl_begin_stmt_expr): Likewise. 8481 (genrtl_finish_stmt_expr): Likewise. 8482 (finish_for_stmt): Removed first argument and generate rtl 8483 specific code. 8484 (finish_switch_stmt): Likewise. 8485 (do_poplevel): Removed generate rtl specific code. 8486 (do_pushlevel): Likewise. 8487 (add_tree): Likewise. 8488 (finish_goto_stmt): Likewise. 8489 (finish_expr_stmt): Likewise. 8490 (begin_if_stmt): Likewise. 8491 (finish_if_stmt_cond): Likewise. 8492 (finish_then_clause): Likewise. 8493 (begin_else_clause): Likewise. 8494 (finish_else_clause): Likewise. 8495 (finish_if_stmt): Likewise. 8496 (clear_out_block): Likewise. 8497 (begin_while_stmt): Likewise. 8498 (finish_while_stmt_cond): Likewise. 8499 (finish_while_stmt): Likewise. 8500 (begin_do_stmt): Likewise. 8501 (finish_do_body): Likewise. 8502 (finish_do_stmt): Likewise. 8503 (finish_return_stmt): Likewise. 8504 (begin_for_stmt): Likewise. 8505 (finish_for_init_stmt): Likewise. 8506 (finish_for_cond): Likewise. 8507 (finish_for_expr): Likewise. 8508 (finish_break_stmt): Likewise. 8509 (finish_continue_stmt): Likewise. 8510 (begin_switch_stmt): Likewise. 8511 (finish_switch_cond): Likewise. 8512 (finish_case_label): Likewise. 8513 (begin_try_block): Likewise. 8514 (begin_function_try_block): Likewise. 8515 (finish_try_block): Likewise. 8516 (finish_cleanup_try_block): Likewise. 8517 (finish_cleanup): Likewise. 8518 (finish_function_try_block): Likewise. 8519 (finish_handler_sequence): Likewise. 8520 (finish_function_handler_sequence): Likewise. 8521 (begin_handler): Likewise. 8522 (finish_handler_parms): Likewise. 8523 (begin_catch_block): Likewise. 8524 (finish_handler): Likewise. 8525 (begin_compound_stmt): Likewise. 8526 (finish_compound_stmt): Likewise. 8527 (finish_asm_stmt): Likewise. 8528 (finish_label_stmt): Likewise. 8529 (finish_label_decl): Likewise. 8530 (finish_subobject): Likewise. 8531 (finish_decl_cleanup): Likewise. 8532 (finish_named_return_value): Likewise. 8533 (begin_stmt_expr): Likewise. 8534 (finish_stmt_expr): Likewise. 8535 8536 * decl.c (initialize_local_var): Changed call to finish_expr_stmt 8537 to call genrtl_expr_stmt when appropriate. 8538 8539 * init.c (begin_init_stmts): Changed calls to begin_stmt_expr and 8540 begin_compound_expr to call genrtl_begin_stmt_expr and 8541 genrtl_begin_compound_expr when appropriate. 8542 (finish_init_stmts): Changed calls to finish_compound_expr and 8543 finish_stmt_expr to call genrtl_finish_compound_expr and 8544 genrtl_finish_stmt_expr when appropriate. 8545 (expand_default_init): Changed call to finish_expr_stmt to call 8546 genrtl_expr_stmt when appropriate. 8547 (build_vec_init): Likewise. 8548 8549 * parse.y (simple_stmt): Removed first argument from call to 8550 finish_for_stmt. Removed first argument from call to 8551 finish_switch_stmt. 8552 8553 * parse.c: Regenerated. 8554 8555 * pt.c (tsubst_expr): Removed first argument from call to 8556 finish_for_stmt. Removed first argument from call to 8557 finish_switch_stmt. 8558 85592000-06-16 Benjamin Chelf <chelf@codesourcery.com> 8560 8561 * cp-tree.h (enum cplus_tree_code): Changed __DUMMY to 8562 CP_DUMMY_TREE_CODE. Remove #include "c-common.def". 8563 8564 * lex.c (cplus_tree_code_type[]): Removed #include "c-common.def". 8565 (cplus_tree_code_length[]): Likewise. 8566 (cplus_tree_code_name[]): Likewise. 8567 (init_parse): Added call to add_c_tree_codes. Changed 8568 LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE. 8569 85702000-06-16 Mark Mitchell <mark@codesourcery.com> 8571 8572 * cp-tree.h (finish_mem_initializers): Declare. 8573 (count_trees): Likewise. 8574 * parse.y (base_init): Use finish_mem_initializers. 8575 * semantics.c (finish_mem_initializers): New function. 8576 8577 * tree.c (count_trees_r): Prototype. Use DATA parameter to store 8578 the number of trees. 8579 (n_trees): Remove. 8580 (count_trees): Don't use it. 8581 85822000-06-15 Jason Merrill <jason@redhat.com> 8583 8584 * tree.c (count_trees): New debugging function. 8585 8586 * typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P. 8587 * init.c (build_member_call): Pull out the name of a DECL. 8588 8589 * Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H. 8590 * semantics.c (expand_body): Push to TV_INTEGRATION here. 8591 * optimize.c (optimize_function): Not here. 8592 * pt.c (instantiate_decl): Push to TV_PARSE. 8593 85942000-06-15 Mark Mitchell <mark@codesourcery.com> 8595 8596 * cp-tree.h (struct language_function): Remove x_base_init_list 8597 and x_member_init_list. 8598 (current_base_init_list): Remove. 8599 (current_member_init_list): Likewise. 8600 (setup_vtbl_ptr): Change prototype. 8601 (emit_base_init): Likewise. 8602 (expand_member_init): Likewise. 8603 (reinit_parse_for_function): Remove. 8604 * decl.c (save_function_data): Don't clear x_base_init_list and 8605 x_member_init_list. 8606 (mark_language_function): Don't mark them. 8607 * init.c (perform_member_init): Tweak comment. 8608 (sort_member_init): Take the list of initializers as an argument. 8609 (sort_base_init): Likewise. 8610 (emit_base_init): Likewise. 8611 (expand_member_init): Return the initializer. Don't use global 8612 variables. 8613 * lex.c (reinit_parse_for_function): Remove. 8614 * method.c (build_template_parm_names): Correct substitution. 8615 (do_build_copy_constructor): Don't use current_member_init_list 8616 and current_base_init_list. 8617 (synthesize_method): Likewise. 8618 * parse.y (base_init): Split mem-initializers into 8619 base-initializers and field-initializers. 8620 (member_init_list): Build up the list here. 8621 (member_init): Return the initializer. 8622 (fn.depfn): Don't use reinit_parse_for_function. 8623 * parse.c: Regenerated. 8624 * pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the 8625 ERROR_MARK. 8626 (tsubst_expr): Don't use current_member_init_list 8627 and current_base_init_list. 8628 (tsubst_expr_values): Rename to ... 8629 (tsubst_initializer_list): ... this. Use convert_from_reference. 8630 * semantics.c (setup_vtbl_ptr): Don't use current_member_init_list 8631 and current_base_init_list. 8632 (begin_function_definition): Don't call reinit_parse_for_function. 8633 8634 * dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors. 8635 8636 * error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE 8637 correctly. 8638 8639 * cp-tree.h (DECL_PENDING_INLINE_P): Relax checking. 8640 86412000-06-14 Benjamin Chelf <chelf@codesourcery.com> 8642 8643 * cp-tree.h (IF_COND): Move to c-common.h. 8644 (THEN_CLAUSE): Likewise. 8645 (ELSE_CLAUSE): Likewise. 8646 (WHILE_COND): Likewise. 8647 (WHILE_BODY): Likewise. 8648 (DO_COND): Likewise. 8649 (DO_BODY): Likewise. 8650 (RETURN_EXPR): Likewise. 8651 (EXPR_STMT_EXPR): Likewise. 8652 (FOR_INIT_STMT): Likewise. 8653 (FOR_COND): Likewise. 8654 (FOR_EXPR): Likewise. 8655 (FOR_BODY): Likewise. 8656 (SWITCH_COND): Likewise. 8657 (SWITCH_BODY): Likewise. 8658 (CASE_LOW): Likewise. 8659 (CASE_HIGH): Likewise. 8660 (GOTO_DESTINATION): Likewise. 8661 (COMPOUND_BODY): Likewise. 8662 (ASM_CV_QUAL): Likewise. 8663 (ASM_STRING): Likewise. 8664 (ASM_OUTPUTS): Likewise. 8665 (ASM_INPUTS): Likewise. 8666 (ASM_CLOBBERS): Likewise. 8667 (DECL_STMT_DECL): Likewise. 8668 (STMT_EXPR_STMT): Likewise. 8669 (LABEL_STMT_LABEL): Likewise. 8670 (SCOPE_BEGIN_P): Likewise. 8671 (SCOPE_END_P): Likewise. 8672 (SCOPE_STMT_BLOCK): Likewise. 8673 (SCOPE_NULLIFIED_P): Likewise. 8674 (SCOPE_NO_CLEANUPS_P): Likewise. 8675 (SCOPE_PARTIAL_P): Likewise. 8676 (ASM_VOLATILE_P): Likewise. 8677 (STMT_LINENO): Likewise. 8678 (STMT_LINENO_FOR_FN_P): Likewise. 8679 8680 * cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR, 8681 ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, 8682 FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, 8683 CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, 8684 SCOPE_STMT, CASE_LABEL, STMT_EXPR. 8685 8686 * Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def. 8687 8688 * Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def. 8689 (cc1plus$(exeext)): Added $(srcdir)/c-common.def. 8690 8691 * lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'. 8692 (cplus_tree_code_length[]): Added '#include "c-common.def"'. 8693 (cplus_tree_code_name[]): Added '#include "c-common.def"'. 8694 86952000-06-14 Mark Mitchell <mark@codesourcery.com> 8696 8697 * cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro. 8698 * class.c (dfs_find_final_overrider): Set it appropriately. 8699 (dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to 8700 avoid unneeded secondary vptrs. 8701 87022000-06-13 Jakub Jelinek <jakub@redhat.com> 8703 8704 * class.c (build_secondary_vtable): Set DECL_USER_ALIGN. 8705 (check_bitfield_decl, check_field_decl): Likewise. 8706 (build_vtbl_or_vbase_field, build_base_field): Likewise. 8707 (layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN. 8708 * decl.c (record_unknown_type): Set TYPE_USER_ALIGN. 8709 (xfer_tag, finish_enum): Likewise. 8710 * decl2.c (finish_builtin_type): Likewise. 8711 * init.c (init_init_processing): Likewise. 8712 * pt.c (instantiate_class_template): Likewise. 8713 * rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN. 8714 * cp-tree.h (struct lang_type): Add user_align member. 8715 (CLASSTYPE_USER_ALIGN): Define. 8716 8717Tue Jun 13 15:48:03 2000 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 8718 8719 * Make-lang.in (c++.install-common): Install g++-cross in 8720 $(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as 8721 $(target_alias)-g++ and $(target_alias)-c++. 8722 87232000-06-12 Mark Mitchell <mark@codesourcery.com> 8724 8725 * class.c (vcall_offset_data_s): Add last_init and fns. 8726 (overrides): Rename to same_signature_p. 8727 (dfs_find_final_overrider): Adjust accordingly. 8728 (mark_overriders): Likewise. 8729 (warn_hidden): Likewise. 8730 (build_vtbl_initializer): Reorganize machinery for building things 8731 at negative offsets. 8732 (build_vcall_and_vbase_vtbl_entries): Likewise. 8733 (build_vbase_offset_vtbl_entries): Likewise. 8734 (dfs_build_vcall_offset_vtbl_entries): Correct order of vcall 8735 offset entries. Do not create two entries for functions with the 8736 same signature. 8737 (build_vcall_offset_vtbl_entries): Initialize vod->fns. 8738 (build_rtti_vtbl_entries): Reorganize machinery for building things 8739 at negative offsets. 8740 8741 * optimize.c (expand_call_inline): Don't recurse into the code 8742 used to initialize the parameters more than once. 8743 87442000-06-11 Mark Mitchell <mark@codesourcery.com> 8745 8746 * mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment. 8747 (is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here. 8748 (find_substitution): Only use the `Sa' substitution for 8749 std::allocator, not instantiations of it. 8750 (write_template_prefix): Move comment. Only use a TREE_LIST to 8751 represent substitutions for a member template. 8752 (write_array_type): Mangle array dimensions correctly. 8753 * optimize.c (maybe_clone_body): Copy more information from the 8754 cloned function. 8755 * pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE 8756 on the regenerated declaration. 8757 87582000-06-11 Chip Salzenberg <chip@valinux.com> 8759 Mark Mitchell <mark@codesourcery.com> 8760 8761 * class.c (build_vtable): Clarify comment. 8762 (build_ctor_vtbl_group): Pass the most derived type to 8763 build_vtable. 8764 87652000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8766 8767 * decl2.c (compare_options): Don't needlessly cast away const-ness. 8768 87692000-06-10 Mark Mitchell <mark@codesourcery.com> 8770 8771 * decl.c (add_binding): Handle duplicate declarations of external 8772 variables. 8773 87742000-06-09 Chip Salzenberg <chip@valinux.com> 8775 Mark Mitchell <mark@codesourcery.com> 8776 8777 * mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an 8778 argument. 8779 (write_signed_number): New macro. 8780 (write_unsigned_number): Likewise. 8781 (write_source_name): Use them. 8782 (write_number): Handle signed and unsigned values. 8783 (write_integer_cst): Use tree_int_cst_sgn, and use 8784 write_unsigned_number or write_signed_number as appropriate. 8785 (write_discriminator): Use write_unsigned_number or 8786 write_signed_number as appropriate. 8787 (write_template_arg_literal): Likewise. 8788 (write_array_type): Use tree_low_cst. 8789 (write_template_parm): Use write_unsigned_number or 8790 write_signed_number as appropriate. 8791 (write_substitution): Adjust call to write_number. 8792 (write_type): Get the TYPE_MAIN_VARIANT before mangling it. 8793 (write_expression): Handle non-type template arguments of 8794 reference type correctly. 8795 (mangle_thunk): Use write_signed_number. 8796 87972000-06-09 Chip Salzenberg <chip@valinux.com> 8798 8799 * mangle.c (find_substition): Don't mangle objects with typename 8800 substitutions (e.g. "cin" as "Si"). 8801 88022000-06-09 Zack Weinberg <zack@wolery.cumb.org> 8803 8804 * call.c (add_candidate): Use ggc_alloc_cleared. 8805 * decl.c (lookup_label): Likewise. 8806 * lex.c (retrofit_lang_decl): Likewise. 8807 88082000-06-09 Jason Merrill <jason@casey.soma.redhat.com> 8809 8810 * semantics.c (expand_body): Push to TV_EXPAND. 8811 * optimize.c (optimize_function): Push to TV_INTEGRATION. 8812 * decl.c (start_function): Always call announce_function. 8813 8814 * tinfo2.cc: Just declare abort. 8815 88162000-06-09 Gabriel Dos Reis <gdr@codesourcery.com> 8817 8818 * lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @' 8819 whenever @ is a symbolic name. 8820 88212000-06-08 Jakub Jelinek <jakub@redhat.com> 8822 8823 * method.c (make_thunk): Clear DECL_VTT_PARM in thunk. 8824 88252000-06-07 Mark Mitchell <mark@codesourcery.com> 8826 8827 * decl.c (pushdecl): Look up functions by DECL_NAME, not 8828 DECL_ASSEMBLER_NAME. 8829 88302000-06-06 Mark Mitchell <mark@codesourcery.com> 8831 8832 * decl2.c (c_language): Define. 8833 88342000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 8835 8836 * lex.c (lang_init_options): Tweak. 8837 8838 * decl2.c: Remove #inclusion of diagnostic.h 8839 (lang_decode_option): Move diagnostic formatting options to 8840 toplevel. 8841 8842 * lang-options.h: Remove documentation for diagnostic options. 8843 8844 * Makefile.in (lex.o): Depends upon diagnostic.h 8845 88462000-06-06 Mark Mitchell <mark@codesourcery.com> 8847 8848 * decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have 8849 the same DECL_RESULT, it's not a redefinition. 8850 * pt.c (tsubst_decl): Remove code to handle illegal 8851 specializations. 8852 88532000-06-06 Nathan Sidwell <nathan@codesourcery.com> 8854 8855 * exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c 8856 88572000-06-05 Jason Merrill <jason@casey.soma.redhat.com> 8858 8859 * search.c (maybe_suppress_debug_info): Don't check 8860 CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set. 8861 8862 * pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION 8863 here if extern_p. 8864 8865 Remember instantiation context in deferred instantiations. 8866 * cp-tree.h (struct tinst_level): Remove. 8867 (TINST_DECL, TINST_LINE, TINST_FILE): New macros. 8868 * pt.c (current_tinst_level): Now a tree. 8869 (print_template_context, push_tinst_level, pop_tinst_level, 8870 tinst_for_decl): Adjust. 8871 (reopen_tinst_level): New fn. 8872 (init_pt): Register current_tinst_level as a root. 8873 (add_pending_template): Put current_tinst_level in TREE_PURPOSE 8874 of the pending templates list. 8875 (instantiate_pending_templates): Adjust. Call reopen_tinst_level. 8876 * lex.c (extract_interface_info): Adjust. 8877 * decl2.c (warn_if_unknown_interface): Adjust. 8878 88792000-06-05 Mark Mitchell <mark@codesourcery.com> 8880 8881 * class.c (indirect_primary_base_p): New function. 8882 (determine_primary_base): Use it. 8883 88842000-06-05 Nathan Sidwell <nathan@codesourcery.com> 8885 8886 Update new-abi dynamic cast algorithm. 8887 * tinfo.cc (__class_type_info::__dyncast_result): Add 8888 whole_details. Adjust constructor. 8889 (__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags. 8890 Avoid unnecessary searching. 8891 (__dynamic_cast): Adjust for __dyncast_result::whole_details. 8892 8893Mon Jun 5 06:48:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8894 8895 * decl.c (init_decl_processing): Don't call record_component_aliases. 8896 * tree.c (build_cplus_array_type_1): Likewise. 8897 88982000-06-04 Mark Mitchell <mark@codesourcery.com> 8899 8900 * ir.texi: Correct typo. 8901 * mangle.c (write_expression): Handle non-type template arguments 8902 with reference type. 8903 * method.c (build_overload_value): Likewise. 8904 * pt.c (convert_nontype_argument): Explicitly represent conversion 8905 to a reference with an ADDR_EXPR. 8906 (unify): Always unify arguments in left-to-right order. 8907 89082000-06-03 Alex Samuel <samuel@codesourcery.com> 8909 Mark Mitchell <mark@codesourcery.com> 8910 8911 * Make-lang.in (CXX_SRCS): Add mangle.c. 8912 * Makefile.in (CXX_OBJS): Add mangle.o. 8913 (mangle.o): New rule. 8914 8915 * class.c (local_classes): New variable. 8916 * class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI. 8917 (get_vtt_name): Use mangle_vtt_name for new ABI. 8918 (init_class_processing): Initialize local_classes. 8919 (build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI. 8920 * cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER. 8921 (std_identifier): New macro. 8922 (DECL_VOLATILE_MEMFUNC_P): New macro. 8923 (DECL_NAMESPACE_STD_P): Likewise. 8924 (local_classes): Declare. 8925 (get_mostly_instantiated_function_type): Declare. 8926 (init_mangle): Declare. 8927 (mangle_decl): Likewise. 8928 (mangle_type_string): Likewise. 8929 (mangle_type): Likewise. 8930 (mangle_typeinfo_for_type): Likewise. 8931 (mangle_typeinfo_string_for_type): Likewise. 8932 (mangle_vtbl_for_type): Likewise. 8933 (mangle_vtt_for_type): Likewise. 8934 (mangle_ctor_vtbl_for_type): Likewise. 8935 (mangle_thunk): Likewise. 8936 (mangle_conv_op_name_for_type): Likewise. 8937 (mangle_guard_variable): Likewise. 8938 * decl.c (pushtag): Keep track of local classes. 8939 (initialize_predefined_identifiers): Initialize std_identifier. 8940 (init_decl_processing): Use std_identifier. 8941 (start_decl): Don't treat instantiations as specializations. 8942 (grokdeclarator): Likewise. 8943 (grokvardecl): Call mangle_decl for new ABI. Only set mangled 8944 name for fully-instantiated templates. 8945 * decl2.c (grokclassfn): Use set_mangled_name_for_decl for 8946 destructors with the new ABI. 8947 (finish_static_data_member_decl): Use mangle_decl under the new ABI. 8948 (grokfield): Use mangle_type for new ABI. 8949 (grokoptypename): Use mangle_conv_op_for_type for new ABI. 8950 (get_sentry): Use mangle_guard_variable for new ABI. 8951 (start_static_initialization_or_destruction): Likewise. 8952 * expr.c (extract_aggr_init): Remove. 8953 (extract_scalar_init): Likewise. 8954 (extract_init): Remove #if 0'd code. 8955 * mangle.c: New function. 8956 * method.c (build_mangled_name): Assert not flag_new_abi. 8957 (build_static_name): Likewise. 8958 (build_decl_overload_real): Likewise. 8959 (build_typename_overload): Likewise. 8960 (build_overload_with_type): Likewise. 8961 (build_overload_name): Likewise. 8962 (get_ctor_vtbl_name): Likewise. 8963 (start_squangling): Likewise. 8964 (get_id_2): Likewise. 8965 (set_mangled_name_for_decl): Call mangle_decl for new ABI. 8966 (init_method): Call init_mangle for new ABI. 8967 (make_thunk): Call mangle_thunk for new ABI. 8968 * operators.def: Correct new ABI manglings for the `%' operator. 8969 Add `::' operator. 8970 * pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and 8971 DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL. 8972 (lookup_template_class): Call mangle_decl for new ABI. 8973 (get_mostly_instantiated_function_type): New function. 8974 (set_mangled_name_for_template_decl): Use it. 8975 (tsubst_decl): Use set_mangled_name_for_decl for destructors with 8976 the new ABI. Use mangle_conv_op_name_for_type for instantiated 8977 conversion op names. 8978 * rtti.c (tinfo_name): Call mangle_type_string for new ABI. 8979 (get_tinfo_decl): Call mangle_typeinfo_for_type for new ABI. 8980 (tinfo_base_init): Likewise. Mangle typeinfo string name with 8981 mangle_typeinfo_string_for_type. 8982 89832000-06-03 Mark Mitchell <mark@codesourcery.com> 8984 8985 * cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. 8986 (INNERMOST_TEMPLATE_ARGS): New macro. 8987 (innermost_args): Remove. 8988 (get_innermost_template_args): New function. 8989 * decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS. 8990 * error.c (dump_function_decl): Be caution when using 8991 most_general_template. 8992 * method.c (build_template_parm_names): Use 8993 INNERMOST_TEMPLATE_ARGS. 8994 * pt.c (add_to_template_args): Tidy comment 8995 (get_innermost_template_args): New function. 8996 (check_explicit_specialization): Clear DECL_INITIAL for a new 8997 specialization. 8998 (process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS. 8999 Tidy. 9000 (push_template_decl): Always register specializations of the most 9001 general template. 9002 (convert_template_argument): Use INNERMOST_TEMPLATE_ARGS. 9003 (coerce_template_parms): Likewise. 9004 (lookup_template_class): Likewise. 9005 (innermost_args): Remove. 9006 (tsubst_decl): Use INNERMOST_TEMPLATE_ARGS. 9007 (tsubst_decl): Handle tricky specializations. Use 9008 get_innermost_template_args. 9009 (instantiate_template): Simplify handling of partial 9010 instantiations. 9011 (get_class_bindings): Use INNERMOST_TEMPLATE_ARGS. 9012 (most_general_template): Reimplement, in a more straightforward 9013 manner. 9014 (regenerate_decl_from_template): Tweak formatting. Use 9015 TMPL_ARGS_DEPTH for clarity. 9016 (set_mangled_name_for_template_decl): Use INNERMOST_ARGS. 9017 9018 * dump.c (dequeue_and_dump): Dump information about thunks. 9019 90202000-06-01 Richard Henderson <rth@cygnus.com> 9021 9022 * decl.c (init_decl_processing): Set lang_get_alias_set first thing. 9023 90242000-06-01 Richard Henderson <rth@cygnus.com> 9025 9026 * decl2.c (unsupported_options): Fix typo, make const. 9027 (lang_decode_option): Fix bsearch argument order. 9028 90292000-06-01 Mark Mitchell <mark@codesourcery.com> 9030 9031 * init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE 9032 on FIELD_DECLs. 9033 9034Wed May 31 14:09:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9035 9036 * cp-tree.h (c_get_alias_set): Deleted. 9037 * Makefile.in (decl.o): Include ../expr.h. 9038 * decl.c (expr.h): Include. 9039 (init_decl_processing): Call record_component_aliases for arrays. 9040 (grokdeclarator): Likewise. 9041 Set TREE_ADDRESSABLE for fields that aren't bitfields. 9042 * tree.c (build_cplus_array_type_1): Call record_component_aliases. 9043 90442000-05-31 Mark Mitchell <mark@codesourcery.com> 9045 9046 Remove guiding declaration support. 9047 * cp/cp-tree.h (flag_dump_translation_unit): Make it const. 9048 (flag_guiding_decls): Remove. 9049 * call.c (build_user_type_conversion_1): Remove support for 9050 guiding decls. 9051 (build_new_function_call): Likewise. 9052 (build_new_op): Likewise. 9053 (build_new_method_call): Likewise. 9054 * decl.c (start_function): Likewise. 9055 * friend.c (is_friend): Likewise. 9056 (do_friend): Likewise. 9057 * decl2.c ((flag_dump_translation_unit): Make it const. 9058 (flag_guiding_decls): Remove. 9059 (unsupported_options): New variable 9060 (compare_options): New function. 9061 (lang_decode_option): Use them. 9062 9063 * decl.c (build_cp_library_fn): Set DECL_CONTEXT. 9064 9065 * method.c (mangle_expression): Adjust test for legal expression 9066 operators. 9067 9068 * pt.c (instantiate_decl): Save and restore the local 9069 specializations list. 9070 90712000-05-30 Jason Merrill <jason@decepticon.cygnus.com> 9072 9073 * decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING. 9074 90752000-05-30 Mark Mitchell <mark@codesourcery.com> 9076 9077 * call.c (add_template_candidate_real): Handle member template 9078 constructors for classes with virtual bases. 9079 (build_user_type_conversion_1): Use in_charge_arg_for_name. 9080 (build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P. 9081 9082 * ir.texi: Update thunk documentation. 9083 9084 * call.c (joust): Fix handling of overloaded builtin operators. 9085 90862000-05-30 Zack Weinberg <zack@wolery.cumb.org> 9087 9088 * cp-tree.h (DECL_ANTICIPATED): New macro. 9089 Document new use of DECL_LANG_FLAG_7. 9090 * decl.c (builtin_function): Set DECL_ANTICIPATED on builtins 9091 in the user namespace. 9092 * lex.c (do_identifier): If the identifier's declaration has 9093 DECL_ANTICIPATED on, it has not yet been declared. But do not 9094 replace it with an ordinary implicit declaration. 9095 9096 * tinfo2.cc: Include stdlib.h. 9097 90982000-05-29 Mark Mitchell <mark@codesourcery.com> 9099 9100 * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. 9101 * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not 9102 CLASSTYPE_ALIGN. 9103 91042000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> 9105 9106 * decl2.c (lang_decode_option): Use skip_leading_substring instead 9107 of plain strncmp. 9108 91092000-05-28 Alexandre Oliva <aoliva@cygnus.com> 9110 9111 * operators.def (<?): Duplicated, should have been... 9112 (>?): this. Fixed. 9113 91142000-05-27 Alex Samuel <samuel@codesourcery.com> 9115 Mark Mitchell <mark@codesourcery.com> 9116 9117 * cp-tree.h (ansi_opname): Make it a macro. 9118 (ansi_assopname): Likewise. 9119 (struct lang_decl_flags): Add assignment_operator_p. 9120 (struct lang_decl): Add operator_code. 9121 (DECL_VTT_PARM): Adjust. 9122 (DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an 9123 overloaded operator. 9124 (SET_OVERLOADED_OPERATOR_CODE): New macro. 9125 (DECL_ASSIGNMENT_OPERATOR_P): New macro. 9126 (DECL_ARRAY_DELETE_OPERATOR_P): Adjust. 9127 (opname_tab): Remove. 9128 (assignop_tab): Likewise. 9129 (operator_name_info_t): New type. 9130 (operator_name_info): New variable. 9131 (assignment_operator_name_info): Likewise. 9132 (build_cp_library_fn): Remove declaration. 9133 (push_cp_library_fn): Likewise. 9134 (operator_name_string): Likewise. 9135 (build_decl_overload): Likewise. 9136 * call.c (print_z_candidates): Simplify. 9137 (build_object_call): Adjust usage of ansi_opname. Use 9138 DECL_OVERLOADED_OPERATOR_P. 9139 (op_error): Adjust operator name lookup. 9140 (build_conditional_expr): Adjust usage of ansi_opname. 9141 (build_new_op): Likewise. 9142 (build_op_delete_call): Likewise. 9143 (build_over_call): Likewise. 9144 (joust): Use DECL_OVERLOADED_OPERATOR_P. 9145 * decl.c (duplicate_decls): Copy operator_code. 9146 (init_decl_processing): Adjust parameters to push_cp_library_fn. 9147 (builtin_function): Adjust parameters to build_library_fn_1. 9148 (build_library_fn_1): Accept an overloaded operator code. 9149 (build_library_fn): Pass ERROR_MARK. 9150 (build_cp_library_fn): Accept an overloaded operator code. 9151 (push_cp_library_fn): Likewise. 9152 (grokfndecl): Tweak. 9153 (grokdeclarator): Simplify code to compute names of overloaded 9154 operators. Adjust use of ansi_opname. 9155 (ambi_op_p): Work on tree_codes, not identifiers. 9156 (unary_op_p): Likewise. 9157 (grok_op_properties): Likewise. 9158 (start_function): Use DECL_OVERLOADED_OPERATOR_P. 9159 (lang_mark_tree): Don't try to mark the operator_code. 9160 * decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P. 9161 * error.c (dump_decl): Remove special handling for operator 9162 names. 9163 (dump_function_name): Likewise. 9164 (dump_expr): Adjust name lookup of operators. 9165 (op_to_string): Simplify. 9166 (assop_to_string): Likewise. 9167 * init.c (build_new_1): Adjust use of ansi_opname. 9168 * lex.c (opname_tab): Remove. 9169 (assignop_tab): Likewise. 9170 (ansi_opname): Likewise. 9171 (ansi_assopname): Likewise. 9172 (operator_name_string): Likewise. 9173 (reinit_lang_specific): Likewise. 9174 (operator_name_info): New variable. 9175 (assignment_operator_name_info): Likewise. 9176 (init_operators): New function. 9177 (init_parse): Use it. 9178 (do_identifier): Adjust use of ansi_opname. 9179 * method.c (mangle_expression): Don't use ansi_opname for 9180 mangling. 9181 (build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P. 9182 (build_decl_overload): Remove. 9183 (build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly. 9184 (do_build_assign_ref): Adjust use of ansi_opname. 9185 (synthesize_method): Likewise. 9186 (implicitly_declare_fn): Likewise. 9187 * operators.def: New file. 9188 * parse.y (operator): Adjust use of ansi_opname. 9189 * pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P. 9190 (set_mangled_name_for_template_decl): Don't play games with 9191 current_namespace. 9192 (special_function_p): Adjust use of ansi_opname. 9193 * typeck.c (check_return_expr): Likewise. 9194 * Make-lang.in (cc1plus): Depend on operators.def. 9195 * Makefile.in (lex.o): Likewise. 9196 (decl.o): Likewise. 9197 91982000-05-27 Zack Weinberg <zack@wolery.cumb.org> 9199 9200 * Make-lang.in (cplib2.ready): Eradicate. 9201 9202Sat May 27 11:25:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9203 9204 * method.c (mangle_expression): Use TREE_CODE_LENGTH. 9205 * tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. 9206 (built_min, cp_tree_equal): Likewise. 9207 92082000-05-26 Mark Mitchell <mark@codesourcery.com> 9209 9210 * class.c (layout_nonempty_base_or_field): Replace 9211 `record_layout_info' with `record_layout_info_s'. 9212 92132000-05-26 Jason Merrill <jason@casey.soma.redhat.com> 9214 9215 Fix goto checking. 9216 * cp-tree.h (struct language_function): x_named_labels is now 9217 a struct named_label_list*. 9218 * decl.c (struct named_label_use_list): Renamed from... 9219 (struct named_label_list): ...this. New struct. 9220 (push_binding_level): Don't set eh_region. 9221 (note_level_for_eh): New fn. 9222 (pop_label): Take label and old value directly. 9223 (pop_labels): Adjust for new named_labels format. 9224 (lookup_label): Likewise. 9225 (poplevel): Note characteristics of a binding level containing a 9226 named label. Mess with named label lists earlier. 9227 (mark_named_label_lists): New fn. 9228 (mark_lang_function): Call it. 9229 (use_label): New fn, split out from... 9230 (make_label_decl): ...here. Don't call it. 9231 (decl_jump_unsafe, check_previous_goto, check_previous_goto_1, 9232 check_previous_gotos): New fns, split out from... 9233 (define_label): ...here. 9234 (check_switch_goto): New fn. 9235 (define_case_label): Call it. 9236 (check_goto): New fn. 9237 * semantics.c (finish_goto_stmt): Call it and use_label. 9238 (begin_compound_stmt): If we're a try block, call note_level_for_eh. 9239 (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings. 9240 92412000-05-26 Mark Mitchell <mark@codesourcery.com> 9242 9243 * class.c (build_vtable_entry_ref): Correct usage of 9244 get_vtbl_decl_for_binfo. 9245 9246 * decl2.c (grokclassfn): Set DECL_LANGUAGE here. 9247 * method.c (implicitly_declare_fn): Not here. 9248 92492000-05-26 Nathan Sidwell <nathan@codesourcery.com> 9250 9251 * cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ... 9252 (CPTI_PTMD_DESC_TYPE): ... here. 9253 (ptmd_desc_type_node): Rename to ... 9254 (ptm_desc_type_node): ... here. 9255 * decl.c: Likewise. 9256 * rtti.c (ptmd_initializer): Rename to ... 9257 (ptm_initializer): ... here. 9258 (sythesize_tinfo_var): Adjust. Deal with pointer to member 9259 function. 9260 (create_tinfo_types): Adjust. 9261 92622000-05-25 Mark Mitchell <mark@codesourcery.com> 9263 9264 Finish implementation of VTTs. 9265 * cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and 9266 CPTI_VTT_PARM_IDENTIFIER. 9267 (vtt_parm_identifier): New macro. 9268 (vtt_parm_type): Likewise. 9269 (BINFO_SUBVTT_INDEX): Likewise. 9270 (BINFO_VPTR_INDEX): Likewise. 9271 (struct lang_decl): Add vtt_parm. 9272 (DECL_VTT_PARM): New macro. 9273 (DECL_USE_VTT_PARM): Likewise. 9274 (DECL_NEEDS_VTT_PARM_P): Likewise. 9275 (get_vtt_name): Declare. 9276 (build_artificial_parm): Likewise. 9277 (fixup_all_virtual_upcast_offsets): Likewise. 9278 (expand_indirect_vtbls_init): Remove. 9279 * call.c (build_new_method_call): Pass the vtt to subobject 9280 constructors and destructors. 9281 * class.c (get_vtt_name): Give it external linkage. 9282 (build_clone): Handle the magic VTT parameters for clones. 9283 (clone_function_decl): Fix typo in comment. 9284 (build_vtt): Keep track of the indices in the VTTs where various 9285 entities are stored. 9286 (build_vtt_inits): Likewise. 9287 (dfs_build_vtt_inits): Likewise. 9288 (build_ctor_vtbl_group): Tweak type of construction vtables. 9289 (dfs_accumulate_vtbl_inits): Build vtables for all bases, even 9290 primary bases, when building construction vtables. 9291 * decl.c (duplicate_decls): Handle DECL_VTT_PARM. 9292 (initialize_predefined_identifiers): Add vtt_parm_identifier. 9293 (init_decl_processing): Initialize vtt_parm_type. 9294 (grokfndecl): Use DECL_OVERLOADED_OPERATOR_P. 9295 (lang_mark_tree): Make vtt_parm. 9296 * decl2.c (build_artificial_parm): New function. 9297 (maybe_retrofit_in_chrg): Use it. Add VTT parameters. 9298 (grokclassfn): Use build_artificial_parm. 9299 * init.c (initialize_vtbl_ptrs): Call 9300 fixup_all_virtual_upcast_offsets directly. 9301 (perform_member_init): Use the complete subobject destructor for 9302 member cleanups. 9303 (build_vtbl_address): New function. 9304 (expand_virtual_init): Handle VTTs. 9305 * optimize (maybe_clone_body): Likewise. 9306 * search.c (fixup_all_virtual_upcast_offsets): Give it external 9307 linkage. 9308 (expand_indirect_vtbls_init): Remove. 9309 * semantics.c (setup_vtbl_ptr): Fix typos in comment. 9310 * tree.c (make_binfo): Make them bigger. 9311 93122000-05-25 Nathan Sidwell <nathan@codesourcery.com> 9313 9314 * inc/cxxabi.h (__pbase_type_info): Define, based on 9315 __pointer_type_info. 9316 (__pointer_type_info): Derive from __pbase_type_info. Adjust. 9317 (__pointer_to_member_type_info): Likewise. 9318 * tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement. 9319 (__pointer_to_member_type_info::__is_pointer_p): Remove. 9320 (__pointer_type_info::__do_catch): Rename to ... 9321 (__pbase_type_info::__do_catch): ... here. Adjust. 9322 (__pbase_type_info::__pointer_catch): Implement. 9323 (__pointer_type_info::__pointer_catch): Adjust. 9324 (__pointer_to_member_type_info::__pointer_catch): Adjust. 9325 93262000-05-25 Nathan Sidwell <nathan@codesourcery.com> 9327 9328 * tinfo.h (__user_type_info::contained_virtual_p): New 9329 predicate. 9330 * tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond 9331 shaped hierarchy. 9332 (__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to 9333 diamond shaped hierarchy. Add early out for mixed diamond and 9334 duplicate shaped hierarchy. 9335 93362000-05-24 Mark Mitchell <mark@codesourcery.com> 9337 9338 * cp-tree.h (build_delete): Change prototype. 9339 (build_vec_delete): Likewise. 9340 * call.c (build_scoped_method_call): Use special_function_kind 9341 values to indicate the kind of destruction to be done. 9342 (build_method_call): Likewise. 9343 * decl.c (finish_destructor_body): Likewise. 9344 (maybe_build_cleanup_1): Likewise. Rename to ... 9345 (maybe_build_cleanup): ... this. 9346 * decl2.c (delete_sanity): Use special_function_kind 9347 values to indicate the kind of destruction to be done. 9348 (build_cleanup): Likewise. 9349 * init.c (perform_member_init): Likewise. 9350 (build_vec_delete_1): Likewise. 9351 (build_dtor_call): Simplify. 9352 (build_delete): Use special_function_kind 9353 values to indicate the kind of destruction to be done. 9354 (build_vbase_delete): Likewise. 9355 (build_vec_delete): Likewise. 9356 9357 * init.c (sort_member_init): Fix typo in error message generation 9358 code. 9359 9360Mon May 15 11:46:29 2000 Donald Lindsay <dlindsay@cygnus.com> 9361 9362 * semantics.c (begin_class_definition): make the packed 9363 attribute be sensitive to the "-fpack-struct" command line flag 9364 93652000-05-24 Nathan Sidwell <nathan@codesourcery.com> 9366 9367 Update new-abi upcast algorithm. 9368 * inc/cxxabi.h (__class_type_info::__do_upcast): Change 9369 prototype and meaning of return value. 9370 (__si_class_type_info::__do_upcast): Likewise. 9371 (__vmi_class_type_info::__do_upcast): Likewise. 9372 * tinfo.cc (__class_type_info::__upcast_result): Replace 9373 whole2dst with part2dst. Adjust ctor. 9374 (__class_type_info::__do_upcast): Adjust call of worker function. 9375 (__class_type_info::__do_upcast): Adjust. 9376 (__si_class_type_info::__do_upcast): Adjust. Use parent's 9377 __do_upcast. 9378 (__vmi_class_type_info::__do_upcast): Likewise. Fix private 9379 virtual base in diamond hierarchy bug. 9380 93812000-05-23 Mark Mitchell <mark@codesourcery.com> 9382 9383 * cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable 9384 and bitfield to tinfo_fn_p. 9385 (DECL_TINFO_FN_P): Adjust. 9386 (SET_DECL_TINFO_FN_P): Likewise. 9387 (DECL_MUTABLE_P): Likewise. 9388 (DECL_C_BIT_FIELD): Likewise. 9389 (SET_DECL_C_BIT_FIELD): Likewise. 9390 (CLEAR_DECL_C_BIT_FIELD): Likewise. 9391 (DECL_UNINLINABLE): Likewise. 9392 * class.c (alter_access): Call retrofit_lang_decl if ncessary. 9393 (handle_using_decl): Remove assertion. 9394 (build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl, 9395 to build FIELD_DECLs. 9396 (build_base_field): Likewise. 9397 (layout_class_type): Likewise. 9398 * decl.c (init_decl_processing): Likewise. 9399 (build_ptrmemfunc_type): Likewise. 9400 (grokdeclarator): Likewise. 9401 * decl2.c (grok_x_components): Likewise. 9402 * except.c (call_eh_info): Likewise. 9403 * init.c (init_init_processing): Likewise. 9404 * rtti.c (expand_class_desc): Likewise. 9405 (create_pseudo_type_info): Likewise. 9406 (get_vmi_pseudo_type_info): Likewise. 9407 (create_tinfo_types): Likewise. 9408 * ptree.c (print_lang_decl): Adjust. 9409 * typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC 9410 before checking DECL_MUTABLE_P. 9411 9412 * decl2.c (maybe_retrofit_in_chrg): Don't create in-charge 9413 parameters for template functions. 9414 * pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for 9415 destructors as well as constructors. 9416 94172000-05-22 Mark Mitchell <mark@codesourcery.com> 9418 9419 * class.c (build_ctor_vtbl_group): Set inits. 9420 * optimize.c (maybe_clone_body): Set DECL_INLINE and 9421 DECL_THIS_INLINE appropriately for clones. 9422 9423 * cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. 9424 (DECL_CONV_FN_P): Simplify. 9425 (DECL_OPERATOR): Remove. 9426 (language_to_string): Declare. 9427 * decl.c (duplicate_decls): Fix typo in comment. 9428 (grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P. 9429 (grok_op_properties): Use DECL_CONV_FN_P instead of 9430 IDENTIFIER_TYPENAME_P. 9431 * dump.c (dequeue_and_dump): Dump the language linkage of 9432 declarations. 9433 * error.c (language_to_string): Give it external linkage. 9434 * method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P. 9435 (implicitly_declare_fn): Set DECL_LANGUAGE. 9436 * pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not 9437 IDENTIFIER_TYPENAME_P. 9438 (tsubst_decl): Likewise. 9439 (tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P. 9440 * semantics.c (finish_member_declaration): Don't mark members of 9441 classes declared in an extern "C" region as extern "C". 9442 94432000-05-22 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9444 9445 * decl2.c (qualified_lookup_using_namespace): Look through 9446 namespace aliases. 9447 9448 * decl.c (push_using_decl): Return the old decl on namespace level. 9449 94502000-05-21 Mark Mitchell <mark@codesourcery.com> 9451 9452 * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks. 9453 (VTT_NAME_PREFIX): New macro. 9454 (CTOR_VTBL_NAME_PREFIX): Likewise. 9455 (get_ctor_vtbl_name): New function. 9456 * class.c (get_vtable_name): Simplify. 9457 (get_vtt_name): New function. 9458 (get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE. 9459 (dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list 9460 when a virtual base becomes primary. 9461 (finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier. Build 9462 VTTs. 9463 (finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in 9464 additional parameters. 9465 (dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED. 9466 (initialize_array): New function. 9467 (build_vtt): Likewise. 9468 (build_vtt_inits): Likewise. 9469 (dfs_build_vtt_inits): Likewise. 9470 (dfs_fixup_binfo_vtbls): Likewise. 9471 (build_ctor_vtbl_group): Likewise. 9472 (initialize_vtable): Use initialize_array. 9473 (accumulate_vtbl_inits): Reimplement to handle construction 9474 vtables. 9475 (dfs_accumulate_vtbl_inits): Likewise. 9476 (bulid_vtbl_initializer): Adjust parameter name. 9477 * method.c (build_typename_overload): Remove #if 0'd code. 9478 (get_ctor_vtbl_name): New function. 9479 * search.c (dfs_walk_real): Use BINFO_N_BASETYPES. 9480 (init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo. 9481 9482 * cp-tree.h (struct lang_type): Remove search_slot. 9483 (CLASSTYPE_SEARCH_SLOT): Remove. 9484 (emit_base_init): Change prototype. 9485 (initialize_vtbl_ptrs): Likewise. 9486 (expand_indirect_vtbls_init): Likewise. 9487 (clear_search_slots): Remove. 9488 * decl.c (lang_mark_tree): Don't mark search_slot. 9489 * init.c (initialize_vtbl_ptrs): Simplify. 9490 (emit_base_init): Likewise. 9491 * search.c (struct vbase_info): Document decl_ptr. 9492 (convert_pointer_to_single_level): Remove. 9493 (dfs_find_vbases): Remove. 9494 (dfs_init_base_pointers): Simplify. 9495 (dfs_clear_vbase_slots): Remove. 9496 (dfs_vtable_path_unmark): New function. 9497 (init_vbase_pointers): Simplify. 9498 (expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT. 9499 (expand_indirect_vtbls_init): Simplify. Don't call 9500 mark_all_temps_used. 9501 * semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and 9502 initialize_vtbl_ptrs. 9503 95042000-05-20 Zack Weinberg <zack@wolery.cumb.org> 9505 9506 * except.c: Add static prototypes. 9507 95082000-05-20 H.J. Lu <hjl@gnu.org> 9509 9510 * Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext). 9511 95122000-05-19 Mark Mitchell <mark@codesourcery.com> 9513 9514 Don't create a separate copy of virtual bases for the 9515 CLASSTYPE_VBASECLASSES list. 9516 * cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation. 9517 (BINFO_FOR_VBASE): Remove. 9518 (CANONICAL_BINFO): Adjust. 9519 (binfo_for_vbase): New function. 9520 * class.c (build_vbase_pointer_fields): Use binfo_for_vbase 9521 instead of BINFO_FOR_VBASE. 9522 (build_vbase_pointer): Likewise. 9523 (build_secondary_vtable): Likewise. 9524 (dfs_mark_primary_bases): Likewise. 9525 (mark_primary_bases): Likewise. 9526 (layout_nonempty_base_or_field): Likewise. 9527 (dfs_set_offset_for_shared_vbases): Likewise. 9528 (dfs_set_offset_for_unshared_vbases): Likewise. 9529 (layout_virtual_bases): Likewise. Adjust for changes to the 9530 CLASSTYPE_VBASECLASSES list. 9531 (dump_class_hierarchy_r): Use binfo_for_vbase 9532 instead of BINFO_FOR_VBASE. 9533 (dump_class_hierarchy): Likewise. 9534 (finish_vtbls): Likewise. 9535 (build_vtbl_initializer): Adjust for changes to the 9536 CLASSTYPE_VBASECLASSES list. 9537 (build_vbase_offset_vtbl_entries): Use binfo_for_vbase. 9538 * decl.c (finish_destructor_body): Adjust for changes to the 9539 CLASSTYPE_VBASECLASSES list. 9540 * init.c (sort_base_init): Use binfo_for_vbase. 9541 (construct_virtual_bases): Adjust for changes to the 9542 CLASSTYPE_VBASECLASSES list. 9543 (expand_member_init): Use binfo_for_vbase. 9544 (build_vbase_delete): Adjust for changes to the 9545 CLASSTYPE_VBASECLASSES list. 9546 * method.c (do_build_copy_constructor): Likewise. 9547 * rtti.c (get_base_offset): Use binfo_for_vbase. 9548 (expand_class_desc): Remove #if 0'd code. 9549 * search.c (struct vbase_info): Remove vbase_types. 9550 (get_base_distance): Use binfo_for_vbase. 9551 (lookup_field_queue_p): Use CANONICAL_BINFO. 9552 (get_shared_vbase_if_not_primary): Use binfo_for_vbase. 9553 (get_pure_virtuals): Adjust for changes to the 9554 CLASSTYPE_VBASECLASSES list. 9555 (dfs_find_vbases): Use binfo_for_vbase. 9556 (dfs_init_vbase_pointers): Likewise. 9557 (init_vbase_pointers): Don't initialize vi.vbase_types. 9558 (virtual_context): Use binfo_for_vbase. 9559 (fixup_all_virtual_upcast_offsets): Adjust for changes to the 9560 CLASSTYPE_VBASECLASSES list. 9561 (expand_indirect_vtbls_init): Simplify. 9562 (dfs_get_vbase_types): Don't replicate virtual bases. 9563 (find_vbase_instance): Use binfo_for_vbase. 9564 (binfo_for_vbase): New function. 9565 * typeck.c (get_delta_difference): Use binfo_for_vbase. 9566 95672000-05-17 Mark Mitchell <mark@codesourcery.com> 9568 9569 * decl2.c (finish_anon_union): Generalize error messages to handle 9570 anonymous structures. 9571 * init.c (perform_member_init): Remove `name' parameter. 9572 (build_field_list): New function. 9573 (sort_member_init): Handle anonymous union initialization order 9574 correctly. Check for multiple initializations of the same union. 9575 (emit_base_init): Don't look up fields by name here. 9576 (expand_member_init): Record the result of name lookup for future 9577 reference. 9578 * typeck.c (build_component_ref): Fix formatting. 9579 9580Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com> 9581 9582 * decl.c (pop_label): Replace warn_unused with warn_unused_label. 9583 * typeck.c (build_x_compound_expr): Replace warn_unused with 9584 warn_unused_value. 9585 9586 * decl2.c (lang_decode_option): Update -Wall unused flags by 9587 calling set_Wunused. 9588 95892000-05-16 Mark Mitchell <mark@codesourcery.com> 9590 9591 * cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation. 9592 * init.c (dfs_vtable_path_unmark): Remove. 9593 * search.c (marked_new_vtable_p): Likewise. 9594 (unmarked_new_vtable_p): Likewise. 9595 (dfs_search_slot_nonempty_p): Likewise. 9596 (dfs_mark): Likewise. 9597 (dfs_vtable_path_unmark): Likewise. 9598 (dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED. 9599 (dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED. 9600 (dfs_init_vbase_pointers): Remove special-case new ABI code. 9601 (dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED. 9602 (init_vbase_pointers): Simplify. 9603 (expand_indirect_vtbls_init): Likewise. 9604 9605 * class.c (copy_virtuals): New function. 9606 (build_primary_table): Use it. 9607 (build_secondary_vtable): Likewise. 9608 (modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to 9609 indicate that no vcall offset is required. 9610 (add_virtual_function): Likewise. 9611 (modify_all_vtables): Likewise. 9612 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 9613 (dfs_accumulate_vtbl_inits): Likewise. 9614 (build_vtbl_initializer): Make changes to handle construction 9615 vtables. 9616 (dfs_build_vcall_offset_vtbl_entries): Likewise. 9617 (build_rtti_vtbl_entries): Likewise. 9618 (build_vtable_entries): Handle a NULL vcall_index. 9619 96202000-05-15 Gabriel Dos Reis <gdr@codesourcery.com> 9621 9622 * decl2.c (lang_decode_option): Fix thinko. 9623 96242000-05-14 Jason Merrill <jason@casey.cygnus.com> 9625 9626 * except.c (check_handlers): New fn. 9627 * cp-tree.h: Declare it. 9628 * semantics.c (finish_handler_sequence): Call it. 9629 (finish_function_handler_sequence): Likewise. 9630 (finish_handler_parms): Set TREE_TYPE on the handler. 9631 * cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro. 9632 * search.c (get_base_distance_recursive): If protect>1, ignore 9633 special access. 9634 (get_base_distance): Don't reduce watch_access. 9635 96362000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> 9637 9638 * lex.c: #include diagnostic.h. 9639 (lang_init_options): Set default prefixing rules. 9640 9641 * lang-options.h: Add -fdiagnostics-show-location=. 9642 9643 * decl2.c: #include diagnostic.h. 9644 (lang_decode_option): Handle -fdiagnostics-show-location=. 9645 96462000-05-12 Nathan Sidwell <nathan@codesourcery.com> 9647 9648 * tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes. 9649 * vec.cc: Revert my 2000-05-07 change. 9650 96512000-05-11 Jason Merrill <jason@casey.cygnus.com> 9652 9653 * class.c (check_field_decls): Complain about non-static data 9654 members with same name as class in class with constructor. 9655 96562000-05-10 Jason Merrill <jason@casey.cygnus.com> 9657 9658 * decl.c (grokdeclarator): Allow non-static data members with 9659 same name as class. 9660 96612000-05-09 Zack Weinberg <zack@wolery.cumb.org> 9662 9663 * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, 9664 and pending_inline.filename. Update prototypes. 9665 * decl.c (define_label): Constify filename parameter. 9666 * decl2.c (warn_if_unknown_interface): Constify local char *. 9667 * input.c Constify input_source.filename. Don't declare 9668 input_filename or lineno. Constify filename parameter to feed_input. 9669 * lex.c (init_parse): Constify parameter and return value. 9670 (cp_pragma_interface, cp_pragma_implementation): Constify 9671 filename argument. 9672 (reinit_parse_for_method, reinit_parse_for_block, 9673 reinit_parse_for_expr, feed_defarg, handle_cp_pragma): 9674 Constify local char *. 9675 * pt.c: Don't declare lineno or input_filename. 9676 (print_template_context, tsubst_friend_function, tsubst_decl, 9677 tsubst, instantiate_decl): Constify local char *. 9678 * semantics.c (expand_body): Constify local char *. 9679 * tree.c (build_srcloc): Constify filename parameter. 9680 * typeck.c (c_expand_asm_operands): Constify filename 9681 parameter. 9682 96832000-05-08 Nathan Sidwell <nathan@codesourcery.com> 9684 9685 * tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix 9686 offsetof expansion. 9687 96882000-05-08 Branko Cibej <branko.cibej@hermes.si> 9689 9690 * inc/cxxabi.h: Fix typos in comment. 9691 (__base_class_info::__offset): Use a static_cast. 9692 96932000-05-07 Nathan Sidwell <nathan@codesourcery.com> 9694 9695 * inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place 9696 of std::size_t and std::ptrdiff_t respectively. 9697 * tinfo.cc: Likewise. 9698 * vec.cc: Likewise. 9699 97002000-05-06 Richard Henderson <rth@cygnus.com> 9701 9702 * typeck.c (build_c_cast): Don't warn integer->pointer size 9703 mismatch for constants. 9704 97052000-05-06 Nathan Sidwell <nathan@codesourcery.com> 9706 9707 * rtti.c (ptmd_initializer): Set non-public, if class is 9708 incomplete. 9709 9710 * inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++". 9711 (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 9712 __cxa_vec_delete): Likewise. 9713 * tinfo.cc (__dynamic_cast): Likewise. 9714 * vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 9715 __cxa_vec_delete): Likewise. 9716 97172000-05-04 Mark Mitchell <mark@codesourcery.com> 9718 9719 * cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove. 9720 (SET_FNADDR_FROM_VTABLE_ENTRY): Likewise. 9721 (lang_decl_flags): Add vcall_offset. 9722 (THUNK_VCALL_OFFSET): Use it. 9723 * decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk. 9724 * method.c (make_thunk): Create the lang_decl here, not in 9725 emit_thunk. 9726 (emit_thunk): Make generic thunks into ordinary functions once 9727 they have been fed to expand_body. 9728 * semantics.c (expand_body): Set current_function_is_thunk here. 9729 97302000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9731 9732 * class.c (update_vtable_entry_for_fn): Prototype. 9733 9734 * pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl' 9735 and `tmpl'. 9736 9737 * search.c (dfs_build_inheritance_graph_order): Prototype. 9738 97392000-05-04 Mark Mitchell <mark@codesourcery.com> 9740 9741 * cp-tree.h (special_function_kind): Add various kinds of 9742 destructors. 9743 (special_function_p): New function. 9744 * class.c (overrides): Don't let one kind of destructor override 9745 another. 9746 * decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding 9747 whether or not to instantiate a template. 9748 * tree.c (special_function_p): Define. 9749 97502000-05-03 Mark Mitchell <mark@codesourcery.com> 9751 9752 * cp-tree.def (THUNK_DECL): Remove. 9753 * cp-tree.h (DECL_THUNK_P): New macro. 9754 (DECL_NON_THUNK_FUNCTION_P): Likewise. 9755 (DECL_EXTERN_C_FUNCTION_P): Likewise. 9756 (SET_DECL_THUNK_P): Likewise. 9757 (DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P. 9758 (FNADDR_FROM_VTABLE_ENTRY): Likewise. 9759 (DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P. 9760 * decl.c (decls_match): Use DECL_EXTERN_C_P. 9761 (duplicate_decls): Likewise. 9762 (pushdecl): Likewise. Adjust thunk handling. 9763 (grokfndecl): Use DECL_EXTERN_C_P. 9764 * decl2.c (mark_vtable_entries): Use DECL_THUNK_P. 9765 * dump.c (dequeue_and_dump): Remove THUNK_DECL handling. 9766 * except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P. 9767 * expr.c (cplus_expand_expr): Remove THUNK_DECL handling. 9768 * method.c (make_thunk): Use SET_DECL_THUNK_P. Set 9769 DECL_NO_STATIC_CHAIN. 9770 (emit_thunk): Don't play games with TREE_CODE on thunks. Don't 9771 set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk. 9772 * search.c (covariant_return_p): Remove THUNK_DECL handling. 9773 * ir.texi: Update. 9774 97752000-05-01 Jason Merrill <jason@casey.cygnus.com> 9776 9777 * tree.c (walk_tree): Set lineno. 9778 97792000-05-01 Mark Mitchell <mark@codesourcery.com> 9780 9781 * exception.cc: Update license notice. 9782 * new.cc: Likewise. 9783 * new1.cc: Likewise. 9784 * new2.cc: Likewise. 9785 * tinfo.cc: Likewise. 9786 * tinfo2.cc: Likewise. 9787 * vec.cc: Likewise. 9788 * inc/cxxabi.h: Likewise. 9789 * inc/exception: Likewise. 9790 * inc/new: Likewise. 9791 * inc/new.h: Likewise. 9792 * inc/typeinfo: Likewise. 9793 97942000-05-01 Jason Merrill <jason@casey.cygnus.com> 9795 9796 * tree.c (build_target_expr_with_type): If we already have a 9797 TARGET_EXPR, just return it. 9798 9799 * optimize.c (initialize_inlined_parameters): Don't generate an 9800 EXPR_STMT if we can just use DECL_INITIAL. 9801 * decl.c (emit_local_var): Only make the initialization a 9802 full-expression if stmts_are_full_exprs_p. 9803 98042000-05-01 Mark Mitchell <mark@codesourcery.com> 9805 9806 * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New 9807 macro. 9808 * call.c (standard_conversion): Use it. 9809 (direct_reference_binding): Likewise. 9810 (build_over_call): Likewise. 9811 (is_properly_derived_from): Likewise. 9812 (compare_ics): Likewise. 9813 * class.c (resolves_to_fixed_type_p): Likewise. 9814 * optimize.c (declare_return_variable): Likewise. 9815 * pt.c (is_specialization_of): Likewise. 9816 (unify): Likewise. 9817 * typeck.c (comp_target_parms): Likeiwse. 9818 (build_static_cast): Likewise. 9819 (build_reinterpret_cast): Likewise. 9820 (build_const_cast): Likewise. 9821 (comp_ptr_ttypes_real): Likewise. 9822 (comp_ptr_ttypes_const): Likewise. 9823 * typeck2.c (process_init_constructor): Likewise. 9824 98252000-04-30 Scott Snyder <snyder@fnal.gov> 9826 9827 * decl.c (finish_destructor_body): Use the base destructor when 9828 destroying virtual bases. 9829 98302000-04-30 Mark Mitchell <mark@codesourcery.com> 9831 9832 * expr.c (cplus_expand_expr): Preserve temporaries when expanding 9833 STMT_EXPRs. 9834 * optimize.c (struct inline_data): Add target_exprs field. 9835 (declare_return_variable): When a function returns an aggregate, 9836 use the variable declared in the TARGET_EXPR as the remapped 9837 DECL_RESULT. 9838 (expand_call_inline): Update the pending target_exprs stack. 9839 (optimize_function): Initialize the stack. 9840 9841 * decl2.c (finish_file): Fix typo in comment. 9842 9843 * method.c (emit_thunk): Don't try to return a `void' value. 9844 9845 * optimize.c (initialize_inlined_parameters): If the parameter is 9846 addressable, we need to make a new VAR_DECL, even if the 9847 initializer is constant. 9848 98492000-04-28 Cosmin Truta <cosmint@cs.ubbcluj.ro> 9850 9851 * decl.c (grok_op_properties): Add an extra check of argtypes. 9852 98532000-04-27 Mark Mitchell <mark@codesourcery.com> 9854 9855 * optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying 9856 variables. 9857 (initialize_inlined_parameters): Try to avoid creating new 9858 VAR_DECLs. 9859 98602000-04-27 Alex Samuel <samuel@codesourcery.com> 9861 9862 * lex.c (my_get_run_time): Remove. 9863 (init_filename_times): Use get_run_time instead of my_get_run_time. 9864 (check_newline): Likewise. 9865 (dump_time_statistics): Likewise. 9866 * decl2.c (finish_file): Push and pop timevar TV_VARCONST instead 9867 of computing elapsed time explicitly. 9868 98692000-04-26 Mark Mitchell <mark@codesourcery.com> 9870 9871 * cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P. 9872 * init.c (decl_constant_value): Check TREE_READONLY_DECL_P. 9873 * call.c (convert_like_real): Don't test TREE_READONLY_DECL_P 9874 before calling decl_constant_value. 9875 * class.c (check_bitfield_decl): Likewise. 9876 * cvt.c (ocp_convert): Likewise. 9877 (convert): Likewise. 9878 * decl.c (compute_array_index_type): Likewise. 9879 (build_enumerator): Likewise. 9880 * decl2.c (check_cp_case_value): Likewise. 9881 * pt.c (convert_nontype_argument): Likewise. 9882 (tsubst): Likewise. 9883 * typeck.c (decay_conversion): Likewise. 9884 (build_compound_expr): Likewise. 9885 (build_reinterpret_cast): Likewise. 9886 (build_c_cast): Likewise. 9887 (convert_for_assignment): Likewise. 9888 98892000-04-26 Jason Merrill <jason@casey.cygnus.com> 9890 9891 * decl.c (finish_function): Don't play games with DECL_INLINE. 9892 98932000-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 9894 9895 * ir.texi: Correct typo. 9896 98972000-04-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9898 9899 * decl.c (grokdeclarator): Reject VLAs as members. 9900 99012000-04-24 Gabriel Dos Reis <gdr@codesourcery.com> 9902 9903 * call.c (standard_conversion): Accept conversion between 9904 COMPLEX_TYPEs. 9905 9906 * cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE. 9907 99082000-04-24 Zack Weinberg <zack@wolery.cumb.org> 9909 9910 * decl2.c (finish_file): Remove double setup for accounting 9911 compile time. 9912 99132000-04-24 Robert Lipe <robertlipe@usa.net> 9914 9915 * cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD. 9916 99172000-04-23 Benjamin Kosnik <bkoz@cygnus.com> 9918 9919 * new.cc (set_new_handler): Needs to be in std::. 9920 99212000-04-23 Mark Mitchell <mark@codesourcery.com> 9922 9923 * cp-tree.h (lang_decl): Remove pretty_function_p. 9924 (DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the 9925 language-specific node. 9926 * decl.c (cp_make_fname_decl): Use build_decl, not 9927 build_lang_decl, to build the variables. 9928 (grokvardecl): Don't call build_lang_decl for local variables in 9929 templates. 9930 (grokdeclarator): Don't call build_lang_decl for local type 9931 declarations in templates. 9932 * lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated 9933 zero'd memory, rather than calling memset. 9934 * pt.c: Include hashtab.h. 9935 (local_specializations): New variable. 9936 (retrieve_local_specialization): Use it. 9937 (register_local_specialization): Likewise. 9938 (tsubst_decl): Don't assume local variables have 9939 DECL_LANG_SPECIFIC. 9940 (instantiate_decl): Set up local_specializations. 9941 * Makefile.in (HTAB_H): New variable. 9942 99432000-04-23 Richard Henderson <rth@cygnus.com> 9944 9945 * typeck.c (c_expand_asm_operands): Restore the original 9946 contents of the output list. 9947 99482000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> 9949 9950 * ir.texi: Document complex number representation. 9951 99522000-04-20 Nathan Sidwell <nathan@codesourcery.com> 9953 9954 * rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi. 9955 (target_incomplete_p): New function. 9956 (tinfo_base_init): Create comdat NTBS name variable. 9957 (ptr_initializer): Add non_public parameter. Calculate it. 9958 (ptmd_initializer): Likewise. 9959 (synthesize_tinfo_var): Adjust. Emit incomplete class tinfo. 9960 (create_real_tinfo_var): Add non_public parameter. Use it. 9961 Push proxy into global namespace. 9962 * inc/cxxabi.h (__pointer_type_info::incomplete_class_mask): 9963 New enumeration. 9964 * inc/typeinfo (type_info::before, type_info::operator==): 9965 Compare __name addresses. 9966 9967 * tinfo2.cc: Remove new-abi builtins comment. 9968 99692000-04-20 Jason Merrill <jason@casey.cygnus.com> 9970 9971 * typeck.c (build_x_function_call): Resolve an OFFSET_REF. 9972 9973 * call.c (joust): Exit early if we get the same function, too. 9974 9975 * decl2.c (key_method): Return NULL_TREE for template classes. 9976 (import_export_class): Don't need to check for template classes. 9977 99782000-04-18 Zack Weinberg <zack@wolery.cumb.org> 9979 9980 * lex.c: Remove references to cccp.c. 9981 99822000-04-18 Mark Mitchell <mark@codesourcery.com> 9983 9984 * cp-tree.h (lang_decl_flags): Remove const_memfunc and 9985 volatile_memfunc. Add destructor_attr. Adjust dummy. 9986 (DECL_DESTRUCTOR_P): Use destructor_attr. 9987 (DECL_CONST_MEMFUNC_P): Reimplement. 9988 (DECL_VOLATILE_MEMFUNC_P): Remove. 9989 * class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS. 9990 (overrides): Use DECL_DESTRUCTOR_P. 9991 (check_for_override): Likewise. 9992 * decl.c (start_function): Likewise. 9993 * decl2.c (grokfclassfn): Likewise. 9994 (check_classfn): Likewise. 9995 (grok_function_init): Likewise. 9996 99972000-04-17 Mark Mitchell <mark@codesourcery.com> 9998 9999 * decl2.c (grokfield): Issue error on illegal data member 10000 declaration. 10001 10002Mon Apr 17 17:11:16 2000 Mark P Mitchell <mark@codesourcery.com> 10003 10004 * method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL. 10005 100062000-04-16 Mark Mitchell <mark@codesourcery.com> 10007 10008 * class.c (build_vtable_entry): Don't build thunks for type-info 10009 functions. 10010 100112000-04-16 Jason Merrill <jason@casey.cygnus.com> 10012 10013 * decl.c (decls_match): Allow a redeclaration of a builtin to 10014 specify args while the builtin did not. 10015 100162000-04-15 Mark Mitchell <mark@codesourcery.com> 10017 10018 * cp-tree.def (THUNK_DECL): Add to documentation. 10019 * cp-tree.h (flag_huge_objects): Declare. 10020 * class.c (modify_vtable_entry): Tidy. 10021 (update_vtable_entry_for_fn): Split out from dfs_modify_vtables. 10022 Calculate delta appropriately for the new ABI. 10023 (dfs_modify_vtables): Use it. 10024 (modify_all_vtables): Fix thinko in code to add overriding copies 10025 of functions to primary vtables. 10026 (build_clone): Fix typo in comment. 10027 (clone_function_decl): Correct order of destructors in vtable. 10028 (build_vbase_offset_vtbl_entries): Adjust comment. 10029 (dfs_vcall_offset_queue_p): Remove. 10030 (dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX. 10031 (build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases. 10032 (build_vtable_entry): Correct check for pure virtual functions. 10033 Don't declare flag_huge_objects. 10034 * decl.c (flag_huge_objects): Remove declaration. 10035 * method.c (make_thunk): Tweak mangling for vcall offset thunks. 10036 Use int_size_in_bytes. 10037 (emit_thunk): Handle vcall offset thunks. 10038 10039Sat Apr 15 16:00:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10040 10041 * decl2.c (parse_time, varconst_time): Delete declarations. 10042 (finish_file): Delete LINENO declaration. 10043 START_TIME and THIS_TIME now long. 10044 100452000-04-13 Nathan Sidwell <nathan@codesourcery.com> 10046 10047 * class.c (build_base_field): Reformat comment. 10048 10049 * inc/cxxabi.h (stddef.h): Comment inclusion. 10050 (__base_class_info::__offset): Comment shift. 10051 100522000-04-12 Mark Mitchell <mark@codesourcery.com> 10053 10054 * cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro. 10055 (cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER. 10056 (cp_push_exception_identifier): New macro. 10057 (DECL_COMPLETE_DESTRUCTOR_P): New macro. 10058 (DECL_BASE_DESTRUCTOR_P): Likewise. 10059 (DECL_DELETING_DESTRUCTOR_P): Likewise. 10060 (get_vtbl_decl_for_binfo): Fix formatting. 10061 (in_charge_arg_for_name): New macro. 10062 (maybe_build_cleanup_and_delete): Remove declaration. 10063 * call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P. 10064 (in_charge_arg_for_name): New function. 10065 (build_new_method_call): Use it. Handle cloned destructors. 10066 (build_clone): Don't make the base constructor virtual. 10067 Automatically defer generated functions. 10068 (clone_function_decl): Handle destructors, too. 10069 (clone_constructors_and_destructors): Likewise. 10070 (create_vtable_ptr): Don't create a vtable entry for a cloned 10071 function. 10072 * decl.c (predefined_identifier): Add ctor_or_dtor_p. 10073 (initialize_predefined_identifiers): Update appropriately. 10074 (finish_destructor_body): Simplify. 10075 (maybe_build_cleanup_and_delete): Remove. 10076 * except.c (expand_throw): Handle new-ABI destructors. 10077 * init.c (expand_cleanup_for_base): Use base_dtor_identifier. 10078 (build_dtor_call): New function. 10079 (build_delete): Use it. Simplify. 10080 * optimize.c (maybe_clone_body): Handle destructors. 10081 * search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P. 10082 10083 * exception.cc (cleanup_fn): New typedef. 10084 (CALL_CLEANUP): New macro. 10085 (cp_eh_info): Use them. 10086 (__cp_push_exception): Likewise. 10087 (__cp_pop_exception): Likewise. 10088 100892000-04-11 Mark Mitchell <mark@codesourcery.com> 10090 10091 * cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER. 10092 (complete_dtor_identifier): New macro. 10093 (CLASSTYPE_FIRST_CONVERSION): Remove. 10094 (CLASSTYPE_CONSTRUCTOR_SLOT): New macro. 10095 (CLASSTYPE_DESTRUCTOR_SLOT): Likewise. 10096 (CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise. 10097 (CLASSTYPE_CONSTRUCTORS): Likewise. 10098 (CLASSTYPE_DESTRUCTORS): Likewise. 10099 (lang_decl): Add cloned_function. 10100 (DECL_COMPLETE_CONSTRUCTOR_P): New macro. 10101 (DECL_BASE_CONSTRUCTOR_P): Likewise. 10102 (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise. 10103 (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise. 10104 (DECL_CLONED_FUNCTION_P): Likewise. 10105 (DECL_CLONED_FUNCTION): Likewise. 10106 (clone_function_decl): Declare. 10107 (maybe_clone_body): Likewise. 10108 * call.c (build_user_type_conversion_1): Call complete object 10109 constructors in the new ABI. 10110 (build_new_method_call): Don't add in-charge parameters under the 10111 new ABI. 10112 * class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, 10113 DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and 10114 CLASSTYPE_DESTRUCTOR_SLOT. 10115 (build_clone): New function. 10116 (clone_function_decl): Likewise. 10117 (clone_constructors_and_destructors): Likewise. 10118 (check_bases_and_members): Use it. 10119 * decl.c (iniitialize_predefined_identifiers): Initialize 10120 complete_dtor_identifier. 10121 (finish_function): Don't add extra code to a clone. 10122 (lang_mark_tree): Mark cloned_function. 10123 * decl2.c (mark_used): Don't bother trying to instantiate things 10124 we synthesized. 10125 * dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice. 10126 * method.c (set_mangled_name_for_decl): Don't treat clones as 10127 constructors. 10128 (synthesize_method): Sythesize cloned functions, not the clones. 10129 * optimize.c (inline_data): Update comment on ret_label. 10130 (remap_block): Don't assume DECL_INITIAL exists. 10131 (copy_body_r): Allow ret_label to be NULL. 10132 (maybe_clone_body): Define. 10133 * pt.c (tsubst_decl): Handle clones. 10134 (instantiate_clone): New function. 10135 (instantiate_template): Use it. 10136 (set_mangled_name_for_template_decl): Don't treat clones as 10137 constructors. 10138 * search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT, 10139 CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT. 10140 * semantics.c (expand_body): Clone function bodies as necessary. 10141 10142 * optimize.c (remap_decl): Avoid sharing structure for arrays 10143 whose size is only known at run-time. 10144 * tree.c (copy_tree_r): Don't copy PARM_DECLs. 10145 10146 * cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr 10147 to has_in_charge_parm_p. 10148 (DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ... 10149 (DECL_HAS_IN_CHARGE_PARM_P): ... this. 10150 (DECL_COPY_CONSTRUCTOR_P): New macro. 10151 * call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P. 10152 (build_user_type_conversion_1): Likewise. 10153 (convert_like_real): Likewise. 10154 (build_over_call): Likeiwse. Use DECL_COPY_CONSTRUCTOR_P. 10155 * decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P. 10156 (copy_args_p): Likewise. 10157 (grok_ctor_properties): Likewise. 10158 (start_function): Likewise. 10159 * decl2.c (maybe_retrofit_in_charge): Likewise. Set it. 10160 * error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P. 10161 * init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P. 10162 * method.c (do_build_copy_constructor): Use 10163 DECL_HAS_IN_CHARGE_PARM_P. 10164 (synthesize_method): Likewise. 10165 * pt.c (instantiate_template): Remove goto. 10166 * tree.c (build_cplus_method_type): Remove mention of obstacks in 10167 comment. 10168 10169 * cp-tre.h (finish_function): Change prototype. 10170 * decl.c (end_cleanup_fn): Adjust caller. 10171 (finish_function): Take only one parameter. 10172 * decl2.c (finish_objects): Adjust caller. 10173 (finish_static_storage_duration_function): Likewise. 10174 * method.c (emit_thunk): Likewise. 10175 * parse.y: Likewise. 10176 * parse.c: Regenerated. 10177 * pt.c (instantiate_decl): Likewise. 10178 * rtti.c (synthesize_tinfo_fn): Likewise. 10179 * semantics.c (expand_body): Likewise. 10180 10181 * cp-tree.h (copy_decl): New function. 10182 * class.c (finish_struct_1): Use it. 10183 * lex.c (copy_decl): Define it. 10184 * pt.c (tsubst_decl): Likewise. 10185 * tree.c (copy_template_template_parm): Likewise. 10186 10187 * cp-tree.h (lang_type): Remove has_nonpublic_ctor and 10188 has_nonpublic_assign_ref. 10189 (TYPE_HAS_NONPUBLIC_CTOR): Don't declare. 10190 (TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise. 10191 * class.c (finish_struct_methods): Don't set 10192 TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF. 10193 (interface_only): Don't declare. 10194 (interface_unknown): Likewise. 10195 101962000-04-11 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10197 10198 * tree.h (HAVE_TEMPLATES): Remove definition. 10199 * lang-options.h (-fthis-is-variable): Remove documentation. 10200 102012000-04-10 Jason Merrill <jason@casey.cygnus.com> 10202 10203 * class.c (instantiate_type): Handle object-relative template-id. 10204 10205 * semantics.c (finish_expr_stmt): Call convert_to_void here. 10206 * decl.c (cplus_expand_expr_stmt): Not here. 10207 10208 * rtti.c (build_dynamic_cast_1): Call non_lvalue. 10209 Initialize exprtype earlier. 10210 10211 * parse.y (fn.def1): Check for defining types in return types. 10212 10213 * decl.c (check_tag_decl): Notice extra fundamental types. 10214 Diagnose empty decls in classes, too. 10215 10216 * decl.c (grokdeclarator): Don't override an anonymous name if no 10217 declarator was given. 10218 10219 * cvt.c (convert_to_void): Call resolve_offset_ref. 10220 10221 * typeck.c (build_x_function_call): Abort if we get an OFFSET_REF. 10222 10223 * decl2.c (decl_namespace): Handle getting a type. 10224 10225 * typeck.c (build_c_cast): Re-enable warning for cast between 10226 pointer and integer of different size. 10227 102282000-04-10 Nathan Sidwell <nathan@codesourcery.com> 10229 10230 * inc/cxxabi.h (__pointer_type_info): Add restrict and 10231 incomplete flags. 10232 (__pointer_type_info::__pointer_catch): New virtual function. 10233 (__pointer_to_member_type_info): Derive from 10234 __pointer_type_info. Adjust. 10235 (__pointer_to_member_type_info::__do_catch): Remove. 10236 (__pointer_to_member_type_info::__is_pointer_p): Declare. 10237 (__pointer_to_member_type_info::__pointer_catch): Declare. 10238 * rtti.c (qualifier_flags): Add restrict flag. 10239 (ptmd_initializer): Reorder members. 10240 (create_tinfo_types): Expand comments. Reorder 10241 ptmd_desc_type_node members. 10242 * tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p): 10243 Implement. 10244 (__pointer_type_info::__do_catch): Move specific code into 10245 __pointer_catch. Call it. 10246 (__pointer_type_info::__pointer_catch): Non-pointer-to-member 10247 specific catch checking. Fix void conversion check. 10248 (__pointer_to_member_type_info::__do_catch): Remove. 10249 (__pointer_to_member_type_info::__pointer_catch): Implement. 10250 102512000-04-10 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10252 10253 * lex.c (init_parse): Remove traces of classof and headof. 10254 * decl2.c (flag_operator_names): Default to 1. 10255 (lang_decode_option): Do not set it for -ansi. 10256 102572000-04-09 Mark Mitchell <mark@codesourcery.com> 10258 10259 * cp-tree.h (struct lang_decl): Remove main_decl_variant. 10260 (DECL_MAIN_VARIANT): Remove. 10261 * decl.c (duplicate_decls): Don't set it. 10262 (start_function): Likewise. 10263 (lang_mark_tree): Don't mark it. 10264 * decl2.c (defer_fn): Don't use it. 10265 * lex.c (retrofit_lang_decl): Don't set it. 10266 * pt.c (tsubst_decl): Likewise. 10267 * ptree.c (print_lang_decl): Don't print it. 10268 * typeck.c (mark_addressable): Don't use it. 10269 102702000-04-09 Nathan Sidwell <nathan@codesourcery.com> 10271 10272 * vec.cc: Include <new> and <exception>. 10273 (__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup. 10274 (__cxa_vec_dtor): Catch dtor exceptions, and rethrow or 10275 terminate. 10276 (__cxa_vec_delete): Catch dtor exceptions. 10277 102782000-04-09 Nathan Sidwell <nathan@codesourcery.com> 10279 10280 Prepend __ to implementation defined names. 10281 * inc/typeinfo (type_info): Rename _name to __name. 10282 (type_info::type_info): Rename parameter. 10283 (type_info::operator==, type_info::operator!=, 10284 type_info::before): Likewise. 10285 (type_info::is_pointer_p, type_info::is_function_p, 10286 type_info::do_catch, type_info::do_upcast): Prepend __. Rename 10287 parameters. 10288 * inc/cxxabi.h 10289 (__fundamental_type_info::__fundamental_type_info) Rename parameters. 10290 (__pointer_type_info::__pointer_type_info): Likewise. 10291 (__pointer_type_info::is_pointer_p, 10292 __pointer_type_info::do_catch): Prepend __. Rename parameters. 10293 (__array_type_info::__array_type_info): Rename parameters. 10294 (__function_type_info::__function_type_info): Likewise. 10295 (__function_type_info::is_function_p): Prepend __. 10296 (__enum_type_info::__enum_type_info): Rename parameters. 10297 (__pointer_to_member_type_info::__pointer_to_member_type_info): 10298 Likewise. 10299 (__pointer_to_member_type_info::do_catch): Prepend __. Rename 10300 parameters. 10301 (__base_class_info::is_virtual_p, is_public_p, offset): Prepend __. 10302 (__class_type_info::__class_type_info): Rename parameters. 10303 (__class_type_info::sub_kind): Prepend __. Adjust member names. 10304 (__class_type_info::upcast_result, 10305 __class_type_info::dyncast_result): Prepend __. Move definition 10306 into tinfo.cc. 10307 (__class_type_info::do_upcast, __class_type_info::do_catch, 10308 __class_type_info::find_public_src, 10309 __class_type_info::do_dyncast, 10310 __class_type_info::do_find_public_src): Prepend __. Rename 10311 parameters. 10312 (__si_class_type_info::__si_class_type_info): Rename parameters. 10313 (__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast, 10314 __si_class_type_info::do_find_public_src): Prepent __. Rename 10315 parameters. 10316 (__vmi_class_type_info::__vmi_class_type_info): Rename parameters. 10317 (__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast, 10318 __vmi_class_type_info::do_find_public_src): Prepent __. Rename 10319 parameters. 10320 (__dynamic_cast): Rename parameters. 10321 * tinfo.cc (type_info::is_pointer_p, type_info::is_function_p, 10322 type_info::do_catch, type_info::do_upcast): Prepend __. 10323 (contained_p, public_p, virtual_p, contained_public_p, 10324 contained_nonpublic_p, contained_nonvirtual_p): Adjust. 10325 (__class_type_info::do_catch, 10326 __class_type_info::do_upcast): Prepend __. Adjust. 10327 (__class_type_info::__upcast_result, 10328 __class_type_info::__dyncast_result): Move from inc/cxxabi.h. 10329 Adjust. 10330 (__class_type_info::find_public_src): Prepend __. Adjust. 10331 (__class_type_info::do_find_public_src, 10332 __si_class_type_info::do_find_public_src, 10333 __vmi_class_type_info::do_find_public_src): Likewise. 10334 (__class_type_info::do_dyncast, 10335 __si_class_type_info::do_dyncast, 10336 __vmi_class_type_info::do_dyncast): Likewise. 10337 (__class_type_info::do_upcast, 10338 __si_class_type_info::do_upcast, 10339 __vmi_class_type_info::do_upcast): Likewise. 10340 (__dynamic_cast): Adjust. 10341 * tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __. 10342 (__function_type_info::is_function_p): Likewise. 10343 (__pointer_type_info::do_catch): Likewise. Adjust. 10344 (__pointer_to_member_type_info::do_catch): Likewise. Adjust. 10345 (__throw_type_match_rtti_2): Adjust. 10346 (__is_pointer): Adjust. 10347 103482000-04-08 Mark Mitchell <mark@codesourcery.com> 10349 10350 * cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER. 10351 (complete_ctor_identifier): New macro. 10352 (special_function_kind): Add sfk_copy_constructor and 10353 sfk_assignment_operator. 10354 (LOOKUP_HAS_IN_CHARGE): Remove. 10355 (cons_up_default_function): Rename to ... 10356 (implicitly_declare_fn): ... this. 10357 * call.c (build_new_method_call): Add in-charge parameters for 10358 constructors here. 10359 * class.c (add_implicitly_declared_members): Change parameter name 10360 from cant_have_assignment to cant_have_const_assignment. 10361 Replace calls to cons_up_default_function to implicitly_declare_fn. 10362 * cvt.c (ocp_convert): Use complete_ctor_identifier. 10363 * decl.c (initialize_predefined_identifiers): Initialize it. 10364 (start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of 10365 complex expression. 10366 * init.c (expand_default_init): Don't calculate the in-charge 10367 parameter here. 10368 (build_new_1): Likewise. 10369 * lex.c (cons_up_default_function): Move to method.c. 10370 * method.c (synthesize_method): Use DECL_DESTRUCTOR_P. 10371 (implicitly_declare_fn): New function. 10372 * typeck.c (build_static_cast): Use complete_ctor_identifier. 10373 (build_modify_expr): Likewise. 10374 * typeck2.c (build_functional_cast): Likewise. 10375 10376 Under the new ABI, constructors don't return `this'. 10377 * cp-tree.h (warn_reorder): Declare. 10378 (special_function_kind): New enum. 10379 (global_base_init_list): Remove declaration. 10380 (emit_base_init): Don't return a value. 10381 (check_base_init): Don't declare. 10382 (is_aggr_typedef): Likewise. 10383 * decl.c (check_special_function_return_type): New function. 10384 (return_types): Remove. 10385 (grokdeclarator): Use check_special_function_return_type. 10386 (start_function): Don't initialize ctor_label under the new ABI. 10387 (finish_construtor_body): Don't create a corresponding LABEL_STMT. 10388 * init.c (begin_init_stmts): Move to top of file. 10389 (finish_init_stmts): Likewise. 10390 (warn_reorder): Don't declare. 10391 (emit_base_init): Don't create a STMT_EXPR here. Don't return a 10392 value. 10393 (check_base_init): Remove. 10394 (is_aggr_typedef): Likewise. 10395 (build_new_1): Don't use the return value of a constructor. 10396 * semantics.c (setup_vtbl_ptr): Don't use the return value 10397 of emit_base_init. 10398 * typeck.c (check_return_expr): Don't magically convert return 10399 statements into `return this' in constructors under the new ABI. 10400 10401 * cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER, 10402 CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER. 10403 (base_ctor_identifier): New macro. 10404 (base_dtor_identifier): Likewise. 10405 (deleting_dtor_identifier): Likewise. 10406 * decl.c: Don't include obstack.h. 10407 (obstack_chunk_alloc): Don't define. 10408 (obstack_chunk_free): Likewise. 10409 (struct predefined_identifier): New type. 10410 (initialize_predefined_identifiers): New function. 10411 (init_decl_processing): Use it. 10412 (debug_temp_inits): Remove. 10413 (start_method): Don't call preserve_data. 10414 (hack_incomplete_structures): Update comment. 10415 * init.c (init_init_processing): Don't initialize 10416 nelts_identifier. 10417 (build_offset_rf): Remove dead code. 10418 (build_delete): Use CLASSTYPE_N_BASECLASSES. 10419 * search.c (init_search_processing): Don't initialize 10420 vptr_identifier. 10421 104222000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10423 10424 * typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide 10425 some sign_compare warnings. 10426 104272000-04-07 Nathan Sidwell <nathan@codesourcery.com> 10428 10429 Rename abi::__vmi_class_type_info members. 10430 * inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases, 10431 base_list, detail_masks members to vmi_flags, vmi_base_count, 10432 vmi_bases and vmi_flags_masks respectively. 10433 (__vmi_class_type_info::vmi_flags_masks): Rename 10434 details_unknown_mask to flags_unknown_mask. 10435 * tinfo.cc (__class_type_info::do_upcast): Adjust. 10436 (__vmi_class_type_info::do_find_public_src): Adjust. 10437 (__vmi_class_type_info::do_dyncast): Adjust. 10438 (__vmi_class_type_info::do_upcast): Adjust. 10439 104402000-04-07 Nathan Sidwell <nathan@codesourcery.com> 10441 10442 * tinfo.cc (convert_to_base): New function. 10443 (get_vbase_offset): Remove. Move into convert_to_base. 10444 (__vmi_class_type_info::do_find_public_src): Adjust. 10445 (__vmi_class_type_info::do_dyncast): Adjust. 10446 (__vmi_class_type_info::do_upcast): Adjust. 10447 104482000-04-06 Jason Merrill <jason@yorick.cygnus.com> 10449 10450 * tinfo.cc (operator=): Use __builtin_strcmp. 10451 * tinfo2.cc (before): Likewise. 10452 104532000-04-06 Mark Mitchell <mark@codesourcery.com> 10454 10455 * cp-tree.h (lang_decl_flags): Rename saved_inline to deferred. 10456 (DECL_SAVED_INLINE): Rename to ... 10457 (DECL_DEFERRED_FN): ... this. 10458 (in_function_p): Remove declaration. 10459 (mark_inline_for_output): Rename to ... 10460 (defer_fn): ... this. 10461 * decl.c (finish_function): Adjust call to mark_inline_for_output. 10462 (in_function_p): Remove definition. 10463 * decl2.c (saved_inlines): Rename to ... 10464 (deferred_fns): ... this. 10465 (saved_inlines_used): Rename to ... 10466 (deferred_fns_used): ... this. 10467 (mark_inline_for_output): Rename to ... 10468 (defer_fn): ... this. 10469 (finish_file): Adjust accordingly. 10470 (init_decl2): Likewise. 10471 * lex.c (cons_up_default_function): Likewise. 10472 * pt.c (mark_decl_instantiated): Likewise. 10473 (instantiate_decl): Don't set DECL_DEFER_OUTPUT under any 10474 circumstances. 10475 * rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output. 10476 * semantics.c (expand_body): Defer more functions. 10477 104782000-04-06 Nathan Sidwell <nathan@codesourcery.com> 10479 10480 * vec.cc: New file. 10481 * Make-lang.in (CXX_LIB2FUNCS): Add it. 10482 (vec.o): Build it. 10483 * inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 10484 __cxa_vec_delete): Declare. 10485 104862000-04-06 Nathan Sidwell <nathan@codesourcery.com> 10487 10488 * rtti.c (dfs_class_hint_mark): New static function. 10489 (dfs_class_hint_unmark): New static function. 10490 (class_hint_flags): Use them. 10491 104922000-04-05 Benjamin Kosnik <bkoz@cygnus.com> 10493 10494 * decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE. 10495 104962000-04-05 Mark Mitchell <mark@codesourcery.com> 10497 10498 * cp-tree.h (instantiate_decl): Change prototype. 10499 * decl2.c (mark_used): Adjust call. 10500 * optimize.c (inlinable_function_p): Adjust handling of templates. 10501 * pt.c (do_decl_instantiation): Adjust call to instantiate_decl. 10502 (do_type_instantiation): Likewise. 10503 (instantiate_decl): Defer more templates. 10504 (instantiate_pending_templates): Adjust logic to handle inline 10505 friend functions. 10506 10507 * Makefile.in (GGC_H): New variable. Use it throughout in place 10508 of ggc.h. 10509 10510 * call.c: Don't include obstack.h. Include ggc.h. 10511 (obstack_chunk_alloc): Don't define. 10512 (obstack_chunk_free): Likewise. 10513 (add_candidate): Allocate the z_candidate with ggc_alloc_obj. 10514 * decl.c (push_switch): Use xmalloc to allocate the cp_switch. 10515 (pop_switch): Free it. 10516 10517 * decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs. 10518 10519 * dump.c (dequeue_and_dump): Don't try to print the bit_position 10520 if we don't have a DECL_FIELD_OFFSET. 10521 10522Wed Apr 5 15:12:18 MET DST 2000 Jan Hubicka <jh@suse.cz> 10523 10524 * optimize.c (calls_setjmp_r): Use setjmp_call_p instead of 10525 special_function_p. 10526 105272000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10528 10529 * cfns.gperf (hash, libc_name_p): Prototype. 10530 10531 * rtti.c (build_dynamic_cast_1): Constification. 10532 10533 * search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes. 10534 10535 * semantics.c (deferred_type_access_control): Prototype. 10536 105372000-04-04 Mark Mitchell <mark@codesourcery.com> 10538 10539 Correct many new ABI issues regarding vbase and vcall offset 10540 layout. 10541 * cp-tree.h (BINFO_VTABLE): Document. 10542 (struct lang_type): Tweak formatting. 10543 (BINFO_PRIMARY_BINFO): Add to documentation. 10544 (CLASSTYPE_VSIZE): Fix typo in comment. 10545 (CLASSTYPE_VBASECLASSES): Update documentation. 10546 (BINFO_VBASE_MARKED): Remove. 10547 (SET_BINFO_VBASE_MARKED): Likewise. 10548 (CLEAR_BINFO_VBASE_MARKED): Likewise. 10549 (BINFO_FIELDS_MARKED): Remove. 10550 (SET_BINFO_FIELDS_MARKED): Likewise. 10551 (CLEAR_BINFO_FIELDS_MARKED): Likewise. 10552 (enum access_kind): New enumeration. 10553 (num_extra_vtbl_entries): Remove declaration. 10554 (size_extra_vtbl_entries): Likewise. 10555 (get_vtbl_decl_for_binfo): New function. 10556 (dfs_vbase_unmark): Remove declaration. 10557 (mark_primary_bases): Likewise. 10558 * class.c (SAME_FN): Remove. 10559 (struct vcall_offset_data_s): Move definition. 10560 (build_vbase_pointer): Use `build', not `build_binary_op', to 10561 access the vbase pointer under the new ABI. 10562 (build_vtable_entry_ref): Use get_vtbl_decl_for_binfo. 10563 (build_primary_vtable): Likewise. 10564 (dfs_mark_primary_bases): Move here from search.c. 10565 (mark_primary_bases): Likewise. 10566 (determine_primary_bases): Under the new ABI, don't make a base 10567 class a primary base just because we don't yet have any virtual 10568 functions. 10569 (layout_vtable_decl): Use get_vtbl_decl_for_binfo. 10570 (num_vfun_entries): Remove. 10571 (dfs_count_virtuals): Likewise. 10572 (num_extra_vtbl_entries): Likewise. 10573 (size_extra_vtbl_entries): Likewise. 10574 (layout_virtual_bases): Iterate in inheritance graph order under 10575 the new ABI. 10576 (finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to 10577 indicate that a vfield is present. 10578 (init_class_processing): Initialize access_public_node, etc., from 10579 ak_public, etc. 10580 (get_vtbl_decl_for_binfo): New function. 10581 (dump_class_hierarchy_r): Likewise. 10582 (dump_class_hierarchy): Use it. 10583 (finish_vtbls): Build the vtbls in inheritance graph order. 10584 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 10585 (initialize_vtable): Use get_vtbl_decl_for_binfo. 10586 (accumulate_vtbl_inits): Add comments explaining why a pre-order 10587 walk is required. 10588 (dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location 10589 where the vptr points, even for primary vtables. 10590 (build_vtbl_initializer): Adjust handling of vbase and vcall 10591 offsets. 10592 (build_vcall_and_vbase_vtable_entries): New function. 10593 (dfs_build_vbase_offset_vtbl_entries): Remove. 10594 (build_vbase_offset_vtbl_entries): Reimplement. 10595 (dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that 10596 were already handled in a primary base class vtable. 10597 (build_vcall_offset_vtbl_entries): Adjust. 10598 (build_rtti_vtbl_entries): Adjust. 10599 * decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo. 10600 * init.c (expand_virtual_init): Simplify. 10601 * repo.c (repo_get_id): Use get_vtbl_decl_for_binfo. 10602 * rtti.c (create_pseudo_type_info): Adjust calculation of vptr. 10603 * search.c (BINFO_ACCESS): New macro. 10604 (SET_BINFO_ACCESS): Likewise. 10605 (dfs_access_in_type): Manipulate access_kinds, not access nodes. 10606 (access_in_type): Likewise. 10607 (dfs_accessible_p): Likewise. 10608 (protected_accessible_p): Likewise. 10609 (lookup_fnfields_1): Adjust documentation. 10610 (dfs_mark_primary_bases): Move to class.c 10611 (mark_primary_bases): Likewise. 10612 (dfs_vbase_unmark): Remove. 10613 (virtual_context): Use BINFO_FOR_VBASE. 10614 (dfs_get_vbase_types): Simplify. 10615 (dfs_build_inheritance_graph_order): New function. 10616 (get_vbase_types): Use it. 10617 * tree.c (debug_binfo): Use get_vtbl_decl_for_binfo. 10618 10619 * tinfo.cc (get_vbase_offset): New function. 10620 (__vmi_class_type_info::do_find_public_src): Use it. 10621 (__vmi_class_type_info::do_dyncast): Likewise. 10622 (__vmi_class_type_info::do_upcast): Likewise. 10623 106242000-04-03 Zack Weinberg <zack@wolery.cumb.org> 10625 10626 * lang-specs.h: Pass -fno-show-column to the preprocessor. 10627 106282000-03-30 Nathan Sidwell <nathan@codesourcery.com> 10629 10630 * rtti.c (class_hint_flags): Rename flags. 10631 (class_initializer): Remove flags. 10632 (synthesize_tinfo_var): Combine offset and flags. Add flags 10633 for __vmi_class_type_info. 10634 (create_tinfo_types): Remove flags from __class_type_info and 10635 __si_class_type_info. Merge flags and offset from 10636 base_class_type_info. 10637 * inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags. 10638 (__base_class_info::is_virtual_p): Adjust. 10639 (__base_class_info::is_public_p): Adjust. 10640 (__base_class_info::offset): New accessor. 10641 (__class_type_info::details): Remove member. 10642 (__class_type_info::__class_type_info): Lose details. 10643 (__class_type_info::detail_masks): Remove. 10644 (__si_class_type_info::__si_class_type_info): Lose details. 10645 (__vmi_class_type_info::details): New member. 10646 (__vmi_class_type_info::__vmi_class_type_info): Adjust. 10647 (__vmi_class_type_info::detail_masks): New member. 10648 * tinfo.cc (__class_type_info::do_upcast): Initialize result 10649 with unknown_details_mask. 10650 (__vmi_class_type_info::do_find_public_src): Adjust 10651 (__vmi_class_type_info::do_dyncast): Adjust. 10652 (__vmi_class_type_info::do_upcast): Set result details, if 10653 needed. Adjust. 10654 (__dynamic_cast): Temporarily #if out optimization. 10655 106562000-03-29 Nathan Sidwell <nathan@codesourcery.com> 10657 10658 * rtti.c (get_tinfo_decl): Mark used. 10659 (emit_tinfo_decl): Don't optimize polymorphic type_info. Only 10660 mark as dealt with, if we output it. 10661 106622000-03-28 Mark Mitchell <mark@codesourcery.com> 10663 10664 * class.c: Reorganize to put virtual function table initialization 10665 machinery at the end of the file. 10666 106672000-03-28 Jason Merrill <jason@casey.cygnus.com> 10668 10669 * class.c (finish_struct): Use bitsize_zero_node. 10670 * pt.c (instantiate_class_template): Likewise. 10671 106722000-03-28 Mark Mitchell <mark@codesourcery.com> 10673 10674 Put RTTI entries at negative offsets in new ABI. 10675 * class.c (dfs_build_vbase_offset_vtbl_entries): Put the first 10676 vbase offset at index -3, not -1. 10677 (build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not 10678 dfs_vtable_path_unmarked_real_bases_queue_p to walk bases. 10679 (dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff. 10680 (build_rtti_vtbl_entries): New function. 10681 (set_rtti_entry): Remove. 10682 (build_primary_vtable): Don't use it. 10683 (build_secondary_vtable): Likewise. 10684 (start_vtable): Remove. 10685 (first_vfun_index): New function. 10686 (set_vindex): Likewise. 10687 (add_virtual_function): Don't call start_vtable. Do call 10688 set_vindex. 10689 (set_primary_base): Rename parameter. 10690 (determine_primary_base): Likewise. 10691 (num_vfun_entries): Don't use skip_rtti_stuff. 10692 (num_extra_vtbl_entries): Include RTTI information. 10693 (build_vtbl_initializer): Use build_rtti_vtbl_entries. 10694 (skip_rtti_stuff): Remove. 10695 (dfs_modify_vtables): Don't use it. 10696 (modify_all_vtables): Don't use start_vtable. Do use set_vindex. 10697 (layout_nonempty_base_or_field): Update size handling. 10698 (create_vtable_ptr): Tweak. 10699 (layout_class_type): Adjust parameter names. 10700 (finish_struct_1): Simplify. 10701 * cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation. 10702 (skip_rtti_stuff): Remove. 10703 (first_vfun_index): New function. 10704 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 10705 (dfs_vtable_path_marked_real_bases_queue_p): Remove. 10706 (marked_vtable_pathp): Declare. 10707 (unmarked_vtable_pathp): Likewise. 10708 * error.c (dump_expr): Use first_vfun_index to calculate vtable 10709 offsets. 10710 * rtti.c (build_headof): Look for RTTI at negative offsets. 10711 (get_tinfo_decl_dynamic): Likewise. 10712 (tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL 10713 here. 10714 (create_pseudo_type_info): Do it here instead. Adjust so that 10715 vptr points at first virtual function. 10716 * search.c (marked_vtable_pathp): Make it global. 10717 (unmarked_vtable_pathp): Likewise. 10718 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 10719 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 10720 (dfs_get_pure_virtuals): Don't use skip_rtti_stuff. 10721 (get_pure_virtuals): Likewise. 10722 (expand_upcast_fixups): Likewise. 10723 * tree.c (debug_binfo): Likewise. 10724 * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate 10725 negative offset. 10726 10727Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10728 10729 * class.c (check_field_decl): Fix typo. 10730 (build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS. 10731 (check_methods): Likewise. 10732 (check_field_decls): Likewise. 10733 Use DECL_CONTEXT, not DECL_FIELD_CONTEXT. 10734 * cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT): 10735 Use DECL_RESULT_FLD, not DECL_RESULT. 10736 * decl.c (xref_tag): Use DECL_TEMPLATE_RESULT. 10737 * lex.c (identifier_type): Likewise. 10738 * pt.c (determine_specialization, lookup_template_class): Likewise. 10739 (tsubst_friend_function, tsubst_decl, instantiate_template): Likewise. 10740 (resolve_overloaded_unification, more_specialized): Likewise. 10741 * semantics.c (finish_member_declaration): Likewise. 10742 * typeck.c (build_x_function_call): Likewise. 10743 107442000-03-26 Mark Mitchell <mark@codesourcery.com> 10745 10746 * class.c (layout_empty_base): Handle empty bases with non-byte 10747 alignment. 10748 (build_base_field): Likewise. 10749 (layout_virtual_bases): Likewise. 10750 10751 * class.c (finish_struct_1): Fix typo in this change: 10752 10753 Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10754 107552000-03-25 Mark Mitchell <mark@codesourcery.com> 10756 10757 * decl.c (grokdeclarator): Count partial specializations when 10758 keeping track of how many template classes have been seen. 10759 10760 * dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT. 10761 10762Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10763 10764 * class.c (build_vbase_pointer_fields): layout_field now place_field. 10765 (get_vfield_offset): Use byte_position. 10766 (set_rtti_entry): Set OFFSET to ssizetype zero. 10767 (get_binfo_offset_as_int): Deleted. 10768 (dfs_record_base_offsets): Use tree_low_cst. 10769 (dfs_search_base_offsets): Likewise. 10770 (layout_nonempty_base_or_field): Reflect changes in RLI format 10771 and call byte_position. 10772 (layout_empty_base): Convert offset to ssizetype. 10773 (build_base_field): use rli_size_unit_so_far. 10774 (dfs_propagate_binfo_offsets): Do computation in proper type. 10775 (layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets. 10776 (layout_class_type): Reflect changes in RLI names and fields. 10777 (finish_struct_1): Set DECL_FIELD_OFFSET. 10778 * dump.c (dequeue_and_dump): Call bit_position. 10779 * expr.c (cplus_expand_constant): Use byte_position. 10780 * rtti.c (expand_class_desc): Use bitsize_one_node. 10781 * typeck.c (build_component_addr): Use byte_position and don't 10782 special case for zero offset. 10783 107842000-03-24 Nathan Sidwell <nathan@codesourcery.com> 10785 10786 * decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P. 10787 10788 * rtti.c (get_tinfo_decl): Set comdat linkage on new-abi 10789 tinfo object. 10790 (emit_tinfo_decl): Only emit polymorphic tinfo's when emitting 10791 vtable. 10792 107932000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 10794 10795 * call.c (check_dtor_name, build_new_method_call): Use TYPE_P and 10796 DECL_P macros. 10797 * decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name, 10798 make_typename_type, check_initializer, cp_finish_decl, 10799 xref_tag): Likewise. 10800 * decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree, 10801 decl_namespace, arg_assoc_template_arg, arg_assoc, 10802 validate_nonmember_using_decl, do_class_using_decl): Likewise. 10803 * error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of, 10804 args_to_string): Likewise. 10805 * friend.c (is_friend): Likewise. 10806 * lex.c (note_got_semicolon, note_list_got_semicolon, 10807 is_global): Likewise. 10808 * method.c (build_overload_nested_name, build_overload_value, 10809 build_qualified_name, build_qualified_name, hack_identifier): Likewise. 10810 * parse.y (typename_sub, typename_sub1): Likewise. 10811 * pt.c (push_inline_template_parms_recursive, check_template_shadow, 10812 process_partial_specialization, convert_template_argument, 10813 template_args_equal, add_pending_template, lookup_template_class, 10814 for_each_template_parm_r, maybe_fold_nontype_arg, 10815 tsubst, instantiate_template, type_unification_real, unify, 10816 instantiate_pending_templates, set_mangled_name_for_template_decl): 10817 Likewise. 10818 * repo.c (repo_get_id, repo_template_used): Likewise. 10819 * search.c (lookup_field_1): Likewise. 10820 * tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise. 10821 * xref.c (classname): Likewise. 10822 108232000-03-22 Mark Mitchell <mark@codesourcery.com> 10824 10825 * cp-tree.h (BINFO_FOR_VBASE): Adjust documentation. 10826 (CANONICAL_BINFO): New macro. 10827 (BINFO_NEW_VTABLE_MARKED): Use it. 10828 (SET_BINFO_NEW_VTABLE_MARKED): Likewise. 10829 (CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise. 10830 * class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE, 10831 not TREE_TYPE. 10832 (build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10833 (build_secondary_vtable): Likewise. 10834 (dfs_finish_vtbls): Likewise. 10835 (dfs_accumulate_vtbl_inits): Likewise. 10836 (accumulate_vtbl_inits): New function. 10837 (finish_vtbls): Make sure that virtual bases come after 10838 non-virtual bases in the vtable group. 10839 (record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL. 10840 (finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10841 * search.c (struct vbase_info): Move definition. 10842 (marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10843 (unmarked_new_vtable_p): Likewise. 10844 (dfs_mark_vtable_path): Remove. 10845 (dfs_mark_new_vtable): Remove. 10846 (dfs_unmark_new_vtable): Likewise. 10847 (dfs_clear_search_slot): Likewise. 10848 (dfs_find_vbases): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10849 (dfs_clear_vbase_slots): Likewise. 10850 (init_vbase_pointers): LIkewise. 10851 108522000-03-22 Jason Merrill <jason@casey.cygnus.com> 10853 10854 * typeck.c (type_after_usual_arithmetic_conversions): Prefer a 10855 SIZETYPE to a non-SIZETYPE. 10856 108572000-03-21 Mark Mitchell <mark@codesourcery.com> 10858 10859 * class.c (layout_virtual_bases): Adjust names in conditionally 10860 compiled code. 10861 10862 * class.c (record_base_offsets): New function. 10863 (layout_conflict_p): Likewise. 10864 (layout_nonempty_base_or_field): Use it. 10865 (layout_empty_base): New function. 10866 (build_base_field): Use it. 10867 (build_base_fields): Update comment. 10868 (layout_virtual_bases): Fold in a little code form 10869 layout_basetypes. Use layout_empty_base. 10870 (layout_basetypes): Remove. 10871 (end_of_class): New function. 10872 (layout_class_type): Use it. Adjust. 10873 10874 * cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment. 10875 (fntype_p): Remove. 10876 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in 10877 comment. 10878 (dfs_skip_nonprimary_vbases_markedp): Likewise. 10879 * typeck.c (fntype_p): Remove. 10880 10881 * cp-tree.h (TI_SPEC_INFO): Remove. 10882 (CLASSTYPE_TI_SPEC_INFO): Likewise. 10883 * pt.c (process_partial_specialization): Likewise. 10884 10885 * class.c (build_base_field): Fix thinko in computation of binfo 10886 offsets. 10887 10888 * tree.c (mark_local_for_remap_p): Mark variables declared in 10889 TARGET_EXPRs as well. 10890 108912000-03-21 Nathan Sidwell <nathan@codesourcery.com> 10892 10893 * typeck.c (require_complete_type, complete_type, 10894 complete_type_or_else, c_sizeof, c_sizeof_nowarn, 10895 build_array_ref, convert_arguments, pointer_diff, 10896 build_x_unary_op, build_unary_op, build_c_cast, 10897 build_modify_expr): Use COMPLETE_TYPE_P etc. 10898 * call.c (is_complete, convert_like_real, 10899 build_new_method_call): Likewise. 10900 * class.c (build_vbase_pointer_fields, check_bases, 10901 build_base_field, finish_struct_1, pushclass): Likewise. 10902 * cvt.c (cp_convert_to_pointer, convert_to_void): Likewise. 10903 * decl.c (maybe_process_template_type_declaration, pushtag, 10904 pushdecl, redeclaration_error_message, start_decl, start_decl_1, 10905 layout_var_decl, check_initializer, cp_finish_decl, 10906 grokdeclarator, require_complete_types_for_parms, 10907 grok_op_properties, xref_tag, xref_basetypes, 10908 check_function_type): Likewise. 10909 * decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise. 10910 * friend.c (do_friend): Likewise. 10911 * init.c (build_offset_ref): Likewise. 10912 * parse.y (structsp): Likewise. 10913 * pt.c (maybe_process_partial_specialization, 10914 tsubst_friend_function, instantiate_class_template, tsubst, 10915 do_type_instantiation, instantiate_pending_templates): Likewise. 10916 * repo.c (repo_get_id): Likewise. 10917 * rtti.c (build_typeid, get_typeid, build_dynamic_cast_1, 10918 synthesize_tinfo_var, emit_support_tinfos): Likewise. 10919 * search.c (lookup_fnfields_1, lookup_conversions): Likewise. 10920 * semantics.c (begin_class_definition): Likewise. 10921 * tree.c (build_cplus_method_type): Likewise. 10922 * typeck2.c (digest_init, build_functional_cast, 10923 add_exception_specifier): Likewise. 10924 * parse.h, parse.c: Regenerated. 10925 109262000-03-21 Nathan Sidwell <nathan@codesourcery.com> 10927 10928 * inc/cxxabi.h: New header file. Define new-abi entry points. 10929 (__pointer_type_info::target): Rename member to ... 10930 (__pointer_type_info::type): ... here. 10931 (__base_class_info::type): Rename member to ... 10932 (__base_class_info::base): ... here. 10933 * Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h 10934 * cp-tree.h (CPTI_ABI): New global tree enumeration. 10935 (abi_node): New global tree node. 10936 * decl.c (abi_node): Document. 10937 (init_decl_processing): Initialize abi_node. 10938 * rtti.c (build_dynamic_cast_1): Use abi_node for new-abi. 10939 (get_vmi_pseudo_type_info): Likewise. 10940 (create_tinfo_types): Likewise. 10941 (emit_support_tinfos): Likewise. 10942 * tinfo.h (cxxabi.h): Include for new-abi. 10943 Move rtti class definitions to new header file. 10944 * tinfo.cc (abi): Use the namespace. 10945 (std): Move new abi rtti classes from here ... 10946 (__cxxabiv1): ... to here. 10947 * tinfo2.cc (cxxabi.h): Include for new-abi. 10948 Move rtti class definitions to new header file. 10949 (std): Move new abi rtti classes from here ... 10950 (__cxxabiv1): ... to here. 10951 * inc/typeinfo (__class_type_info): Move into __cxxabiv1 10952 namespace. 10953 109542000-03-20 Jed Wing <jedwin@zloty.ugcs.caltech.edu> 10955 Jason Merrill <jason@casey.cygnus.com> 10956 10957 * method.c (build_overload_int): Use host_integerp. 10958 109592000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 10960 10961 * init.c (build_offset_ref): Handle the case of a templated member 10962 function. 10963 109642000-03-19 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10965 10966 * except.c (expand_exception_blocks): Clear catch_clauses_last. 10967 109682000-03-18 Mark Mitchell <mark@codesourcery.com> 10969 10970 * cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro. 10971 * class.c (check_bitfield_decl): Turn illegal bitfields into 10972 non-bitfields. 10973 (dfs_propagate_binfo_offsets): Adjust for new size_binop 10974 semantics. 10975 (dfs_offset_for_unshared_vbases): Likewise. 10976 * cvt.c (cp_convert_to_pointer): Convert NULL to a 10977 pointer-to-member correctly under the new ABI. 10978 * expr.c (cplus_expand_constant): Don't use cp_convert when 10979 turning an offset into a pointer-to-member. 10980 * init.c (resolve_offset_ref): Don't adjust pointers-to-members 10981 when dereferencing them under the new ABI. 10982 * typeck.c (get_member_function_from_ptrfunc): Tweak calculation 10983 of pointers-to-members under the new ABI. 10984 10985 * class.c (check_bitfield_decl): Remove restriction on really long 10986 bitfields. 10987 (layout_class_type): Implement new ABI handling of bitfields 10988 longer than their types. 10989 109902000-03-18 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10991 10992 * parse.y (extdefs): Call ggc_collect. 10993 * parse.c: Regenerated. 10994 109952000-03-18 Nathan Sidwell <nathan@codesourcery.com> 10996 10997 * class.c (build_base_field): Use TYPE_ALIGN to examine a type. 10998 (note_name_declared_in_class): Use OVL_CURRENT to get at a 10999 potential overload. 11000 11001Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11002 11003 * class.c (build_vbase_path): Use integer_zerop. 11004 (build_vtable_entry): Use tree_low_cst. 11005 (get_vfield_offset): Use bit_position. 11006 (dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT. 11007 Use tree_low_cst. 11008 (check_bitfield_decl): Set DECL_SIZE using convert. 11009 (build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop. 11010 (layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT. 11011 Use tree_low_cst. 11012 (finish_struct_1): Use bit_position. 11013 (dump_class_hierarchy): Use tree_low_cst. 11014 * cp-tree.h (min_precision): Add declaration. 11015 * decl.c (xref_tag, xref_basetypes): Use tree_low_cst. 11016 * error.c (dump_type_suffix): Use host_integerp and tree_low_cst. 11017 (dump_expr): Use integer_zerop, host_integerp, and tree_low_cst. 11018 * expr.c (cplus_expand_constant): Use bit_position. 11019 * init.c (build_vec_init): Use host_integerp and tree_low_cst. 11020 * rtti.c (get_base_offset): Use bit_position. 11021 * typeck.c (build_binary_op): Use integer_zerop, compare_tree_int, 11022 host_integerp, and tree_low_cst. 11023 (pointer_int_sum): Use integer_zerop. 11024 (build_component_addr): Use bit_position. 11025 110262000-03-17 Nathan Sidwell <nathan@codesourcery.com> 11027 11028 * typeck.c (require_complete_type): Don't assume size_zero_node. 11029 (complete_type_or_else): Likewise. 11030 110312000-03-16 Steven Grady <grady@digitaldeck.com> 11032 Jason Merrill <jason@casey.cygnus.com> 11033 11034 * rtti.c (build_dynamic_cast_1): Improve diagnostics. 11035 110362000-03-16 Nathan Sidwell <nathan@codesourcery.com> 11037 11038 * decl2.c (grokfield): Bail out if type is error_mark_node. 11039 110402000-03-15 Nathan Sidwell <nathan@codesourcery.com> 11041 11042 * tinfo2.cc (__ptr_to_member_data): Rename to ... 11043 (__pointer_to_member_data): ... here. Adjust. 11044 * rtti.c (create_tinfo_types): Adjust. 11045 110462000-03-15 Nathan Sidwell <nathan@codesourcery.com> 11047 11048 * cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove. 11049 * decl.c (ref_desc_type_node): Undocument. 11050 * rtti.c (ptr_ref_initializer): Rename to ... 11051 (ptr_initializer): ... here. Adjust comments. 11052 (ptmd_initializer): Fix comment thinko. 11053 (synthesize_tinfo_var): Remove REFERENCE_TYPE case. 11054 (create_tinfo_types): Remove ref_desc_type_node init. 11055 * tinfo2.cc (__reference_type_info): Remove. 11056 110572000-03-15 Nathan Sidwell <nathan@codesourcery.com> 11058 11059 * decl.c (cp_finish_decl): Remove obsolete comment. 11060 11061 * typeck.c (build_ptrmemfunc1): Kill uninitialized warning. 11062 110632000-03-14 Mark Mitchell <mark@codesourcery.com> 11064 11065 * cp-tree.h: Tweak documentation. 11066 * class.c (build_vbase_pointer_fields): Layout the fields, too. 11067 (avoid_overlap): Remove. 11068 (get_binfo_offset_as_int): New function. 11069 (dfs_serach_base_offsets): Likewise. 11070 (layout_nonempty_base_or_field): Likewise. 11071 (build_base_field): Layout fields here. Avoid placing two objects 11072 of the same type at the same address, under the new ABI. 11073 (build_base_fields): Adjust accordingly. 11074 (create_vtable_ptr): Return the new field, but don't attach it to 11075 TYPE_FIELDS. 11076 (remove_base_field): Remove. 11077 (remove_base_fields): Remove. 11078 (layout_basetypes): Adjust accordingly. 11079 (layout_class_type): Call layout_field for each field, rather than 11080 just making a wholesale call to layout_type. 11081 110822000-03-14 Jeff Sturm <jsturm@sigma6.com> 11083 11084 * except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw. 11085 110862000-03-13 Jason Merrill <jason@casey.cygnus.com> 11087 11088 * decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P. 11089 11090 * except.c (dtor_nothrow): New fn. 11091 (do_pop_exception): Use it. Take type parm. 11092 (push_eh_cleanup): Take type parm. 11093 (expand_start_catch_block): Pass it. 11094 (build_eh_type_type_ref): Accept null type. 11095 110962000-03-12 Mark Mitchell <mark@codesourcery.com> 11097 11098 * cp-tree.h (revert_static_member_fn): Change prototype. 11099 * decl.c (grokfndecl): Adjust call to revert_static_member_fn. 11100 (grok_op_properties): Likewise. 11101 (start_function): Likewise. 11102 (revert_static_member_fn): Simplify. 11103 * pt.c (check_explicit_specialization): Adjust call to 11104 revert_static_member_fn. 11105 111062000-03-11 Mark Mitchell <mark@codesourcery.com> 11107 11108 * cp-tree.h (scope_kind): New type. 11109 (tmpl_spec_kind): Likewise. 11110 (declare_pseudo_global_level): Remove. 11111 (pseudo_global_level_p): Rename to template_parm_scope_p. 11112 (pushlevel): Remove declaration. 11113 (begin_scope): New function. 11114 (finish_scope): Likewise. 11115 (current_tmpl_spec_kind): Likewise. 11116 * decl.c (struct binding_level): Shorten parm_flag to 2 bits. 11117 Shorten keep to 2 bits. Rename pseudo_global to template_parms_p. 11118 Add template_spec_p. 11119 (toplevel_bindings_p): Adjust. 11120 (declare_pseudo_global_level): Remove. 11121 (pseudo_global_level_p): Rename to template_parm_scope_p. 11122 (current_tmpl_spec_kind): New function. 11123 (begin_scope): Likewise. 11124 (finish_scope): Likewise. 11125 (maybe_push_to_top_level): Adjust. 11126 (maybe_process_template_type_declaration): Likewise. 11127 (pushtag): Likewise. 11128 (pushdecl_nonclass_level): Likewise. 11129 (lookup_tag): Likewise. 11130 (grokfndecl): Handle member template specializations. Share 11131 constructor and non-constructor code. 11132 * decl2.c (check_classfn): Handle member template specializations. 11133 * pt.c (begin_template_parm_list): Use begin_scope. 11134 (begin_specialization): Likewise. 11135 (end_specialization): Likewise. 11136 (check_explicit_specialization): Use current_tmpl_spec_kind. 11137 Handle member template specializations. 11138 (end_template_decl): Use finish_scope. Remove call to 11139 get_pending_sizes. 11140 (push_template_decl_real): Remove bogus error message. 11141 (tsubst_decl): Fix typo in code contained in comment. 11142 (instantiate_template): Handle member template specializations. 11143 (most_general_template): Likewise. 11144 111452000-03-11 Gabriel Dos Reis <gdr@codesourcery.com> 11146 11147 * lex.c (whitespace_cr): Compress consecutive calls to warning(). 11148 (do_identifier): Ditto for error(). 11149 11150 * pt.c (convert_nontype_argument): Ditto for cp_error(). 11151 (convert_template_argument): Ditto for cp_pedwarn(). 11152 111532000-03-11 Jason Merrill <jason@casey.cygnus.com> 11154 11155 * exception.cc (__check_null_eh_spec): New fn. 11156 * except.c (expand_end_eh_spec): Call it if the spec is throw(). 11157 111582000-03-10 Jason Merrill <jason@casey.cygnus.com> 11159 11160 * decl.c (push_throw_library_fn): Take the FUNCTION_TYPE. 11161 * except.c (expand_end_eh_spec): Add the return type. 11162 * rtti.c (throw_bad_cast): Add the parmtypes. 11163 (throw_bad_typeid): Likewise. 11164 11165 * semantics.c (expand_stmt): Only leave out rtl for unused 11166 artificials, and set DECL_IGNORED_P on them as well. 11167 * decl.c (wrapup_globals_for_namespace): Likewise. 11168 111692000-03-09 Nathan Sidwell <nathan@codesourcery.com> 11170 11171 * decl.c (maybe_commonize_var): Skip all artificial decls. 11172 * pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN. 11173 111742000-03-10 Jason Merrill <jason@casey.cygnus.com> 11175 11176 * lang-options.h, decl2.c: Add -fno-enforce-eh-specs. 11177 * cp-tree.h: Declare flag_enforce_eh_specs. 11178 * decl.c (store_parm_decls, finish_function): Check it. 11179 11180 C library functions don't throw. 11181 * Makefile.in (cfns.h): New target. 11182 (except.o): Depend on it. 11183 * Make-lang.in (cc1plus): Depend on cfns.gperf. 11184 * cfns.gperf: New file. 11185 * cfns.h: Generated. 11186 * except.c: Include it. 11187 (nothrow_libfn_p): New fn. 11188 * decl.c (grokfndecl): Use it. 11189 * cp-tree.h: Declare it. 11190 11191 * decl.c (push_overloaded_decl_1, auto_function, 11192 define_function): Lose. 11193 (build_library_fn_1): New static fn. 11194 (builtin_function): Use it. 11195 (get_atexit_node): Use build_library_fn_ptr. 11196 (build_library_fn, build_cp_library_fn, build_library_fn_ptr, 11197 build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn, 11198 push_void_library_fn, push_throw_library_fn): New fns. 11199 * cp-tree.h: Declare them. 11200 (cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID. 11201 (throw_bad_cast_node, throw_bad_typeid_node): Lose. 11202 * except.c (init_exception_processing, call_eh_info, do_pop_exception, 11203 (expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns. 11204 * rtti.c (build_runtime_decl): Lose. 11205 (throw_bad_cast, throw_bad_typeid, get_tinfo_decl, 11206 build_dynamic_cast_1, expand_si_desc, expand_class_desc, 11207 expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns. 11208 11209 * call.c (build_call): Remove result_type parm. 11210 Call mark_used on unused artificial fns. 11211 * init.c, method.c, typeck.c, except.c, rtti.c: Adjust. 11212 112132000-03-09 Jason Merrill <jason@casey.cygnus.com> 11214 11215 * call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as 11216 appropriate. 11217 * decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL. 11218 * except.c (call_eh_info, alloc_eh_object, expand_throw): Set 11219 TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate. 11220 * rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1, 11221 expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 11222 expand_generic_desc): Likewise. 11223 112242000-03-08 Nathan Sidwell <nathan@codesourcery.com> 11225 11226 * exception.cc (__cp_pop_exception): Cleanup the original object. 11227 112282000-03-08 Nathan Sidwell <nathan@codesourcery.com> 11229 11230 * decl.c (grok_op_properties): Merge conversion to void warning 11231 with other silly op warnings. 11232 112332000-03-08 Jason Merrill <jason@casey.cygnus.com> 11234 11235 * typeck2.c (process_init_constructor): Set TREE_PURPOSE of 11236 array CONSTRUCTOR elements. Don't use expr_tree_cons. 11237 112382000-03-08 Nathan Sidwell <nathan@codesourcery.com> 11239 11240 * decl.c (cp_make_fname_decl): New function. 11241 (wrapup_globals_for_namespace): Don't emit unused static vars. 11242 (init_decl_processing): Remove comment about use of 11243 array_domain_type. Set make_fname_decl. 11244 (cp_finish_decl): Remove __FUNCTION__ nadgering. 11245 * semantics.c (begin_compound_stmt): Remove 11246 current_function_name_declared flagging. 11247 (expand_stmt): Don't emit unused local statics. 11248 * typeck.c (decay_conversion): Don't treat __FUNCTION__ decls 11249 specially. 11250 112512000-03-08 Nathan Sidwell <nathan@codesourcery.com> 11252 11253 * typeck.c (convert_for_assignment): Don't look at array 11254 initializer. 11255 * call.c (convert_like_real): Likewise. 11256 112572000-03-07 Jason Merrill <jason@casey.cygnus.com> 11258 11259 Add initial support for '\uNNNN' specifier. 11260 * lex.c (read_ucs): New fn. 11261 (readescape, skip_white_space): Call it. 11262 (is_extended_char, is_extended_char_1): New fns. 11263 (utf8_extend_token): New fn, #if 0'd out. 11264 (real_yylex): Treat extended chars like letters. 11265 11266 * search.c (note_debug_info_needed): Walk the bases even if we 11267 weren't deferring the type itself. 11268 112692000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11270 11271 * decl2.c (finish_objects): Constify a char*. 11272 11273 * method.c (emit_thunk): Likewise. 11274 112752000-03-06 Nathan Sidwell <nathan@codesourcery.com> 11276 11277 * typeck.c (dubious_conversion_warnings): Look through 11278 REFERENCE_TYPE. 11279 11280Mon Mar 6 08:46:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11281 11282 * class.c (dfs_modify_vtables): I is now unsigned. 11283 (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. 11284 (build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT. 11285 * error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned. 11286 * init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 11287 * method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned. 11288 * typeck.c (build_binary_op, case TRUNC_DIV_EXPR): 11289 Call integer_all_onesp. 11290 * typeck2.c (process_init_constructor): Use compare_tree_int. 11291 11292 * lang-specs.h (as): Don't call if -syntax-only. 11293 112942000-03-06 Mark Mitchell <mark@codesourcery.com> 11295 11296 * expr.c (cplus_expand_expr, case STMT_EXPR): Don't set 11297 RTL_EXPR_HAS_NO_SCOPE after all. 11298 112992000-03-05 Mark Mitchell <mark@codesourcery.com> 11300 11301 * expr.c (cplus_expand_expr, case STMT_EXPR): Use 11302 expand_start_stmt_expr and expand_end_stmt_expr directly. Set 11303 RTL_EXPR_HAS_NO_SCOPE. 11304 11305 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little 11306 later. 11307 11308 * dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P. 11309 113102000-03-05 Nathan Sidwell <nathan@codesourcery.com> 11311 11312 * call.c (convert_like): Macrofy. 11313 (convert_like_with_context): New macro. 11314 (convert_like_real): Renamed from convert_like. Add calling 11315 context parameters, for diagnostics. Add recursive flag. Call 11316 dubious_conversion_warnings for outer conversion. 11317 (build_user_type_conversion): Use convert_like_with_context. 11318 (build_over_call): Likewise. Don't warn about dubious 11319 conversions here. Adjust convert_default_arg calls. 11320 (convert_default_arg): Add context parameters for diagnostics. 11321 Pass through to convert_like_with_context. 11322 * cp-tree.h (convert_default_arg): Add context parameters. 11323 (dubious_conversion_warnings): Prototype new function. 11324 * typeck.c (convert_arguments): Adjust convert_default_arg call. 11325 (dubious_conversion_warnings): New function, broken 11326 out of convert_for_assignment. 11327 (convert_for_assignment): Adjust. 11328 113292000-03-03 Jason Merrill <jason@casey.cygnus.com> 11330 11331 * decl2.c (key_method): Break out from... 11332 (import_export_vtable, import_export_class): ...here. 11333 11334 * decl.c (finish_function): Don't mess with flag_keep_inline_functions. 11335 * decl2.c (finish_vtable_vardecl): Don't check decl_function_context. 11336 11337 * search.c (note_debug_info_needed, dfs_debug_mark, 11338 dfs_debug_unmarkedp): Uncomment. Adjust for new scheme. 11339 * decl2.c (finish_vtable_vardecl): Call note_debug_info_needed. 11340 113412000-03-03 Nathan Sidwell <nathan@codesourcery.com> 11342 11343 * decl.c (cp_finish_decl): Remove obsolete obstack comments, fix 11344 typos. 11345 113462000-03-02 Mark Mitchell <mark@codesourcery.com> 11347 11348 * cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ... 11349 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this. 11350 (TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro. 11351 (lang_type): Split gets_new into has_new and has_array_new. 11352 (TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11353 (TYPE_GETS_NEW): Split into ... 11354 (TYPE_HAS_NEW_OPERATOR): ... this, and ... 11355 (TYPE_HAS_ARRAY_NEW_OPERATOR): ... this. 11356 (DECL_ARRAY_DELETE_OPERATOR_P): New macro 11357 (build_op_new_call): Don't declare. 11358 (build_new_1): Likewise. 11359 * call.c (build_op_new_call): Remove. 11360 * class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 11361 instead of TYPE_NEEDS_DESTRUCTOR. 11362 (finish_struct_bits): Likewise. 11363 (add_implicitly_declared_members): Likewise. 11364 (check_field_decl): Likewise. 11365 (check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it 11366 correctly under the new ABI. 11367 * decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 11368 instead of TYPE_NEEDS_DESTRUCTOR. 11369 (initialize_local_var): Likewise. 11370 (destroy_local_var): Likewise. 11371 (cp_finish_decl): Likewise. 11372 (register_dtor_fn): Likewise. 11373 (grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and 11374 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. Don't set 11375 TYPE_VEC_DELETE_TAKES_SIZE here. 11376 (xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and 11377 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. 11378 (store_parm_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11379 (finish_destructor_body): Likewise. 11380 (maybe_build_cleanup_1): Likewise. 11381 * decl2.c (do_static_destruction): Likewise. 11382 * init.c (build_new_1): Make it static. 11383 (perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11384 (expand_cleanup_for_base): Likewise. 11385 (get_cookie_size): New function. 11386 (build_new_1): Handle array-new cookies correctly under the new 11387 ABI. 11388 (build_vec_delete_1): Likewise. 11389 (build_vec_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11390 (build_delete): Likewise. 11391 (build_vec_delete): Handle array-new cookies correctly under the new 11392 ABI. 11393 * lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11394 * pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and 11395 TYPE_HAS_ARRAY_NEW_OPERATOR. 11396 * ptree.c (print_lang_type): Check them. 11397 * search.c (context_for_name_lookup): Fix typo in comment. 11398 (tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11399 * tree.c (break_out_cleanups): Likewise. 11400 (build_cplus_array_test_1): Likewise. 11401 (cp_build_qualified_type_real): Likewise. 11402 * typeck.c (complete_type): Likewise. 11403 11404 * g++spec.c (lang_specific_driver): Add -fnew-abi at the start of 11405 the command-line, not the end. 11406 114072000-03-01 Jason Merrill <jason@casey.cygnus.com> 11408 11409 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG. 11410 114112000-03-02 Tom Tromey <tromey@cygnus.com> 11412 11413 * cp-tree.h (build_java_class_ref): Declare. 11414 * init.c (build_java_class_ref): No longer static. 11415 * except.c (expand_throw): Generate a Java-style `throw' if the 11416 thrown object is a "Java" object. 11417 (initialize_handler_parm): Generate a Java-style lookup of 11418 exception info if the caught object is a "Java" object. 11419 (catch_language, catch_language_init): New globals. 11420 (decl_is_java_type): New function. 11421 (expand_start_catch_block): Don't call push_eh_info() or 11422 push_eh_cleanup() when handling a Java-style "catch". Pass Java 11423 class reference to build_catch_block. 11424 11425Thu Mar 2 13:32:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11426 11427 * typeck.c (comptypes): Treat sizetype like its language equivalent. 11428 114292000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> 11430 11431 * typeck.c (maybe_warn_about_returning_address_of_local): Reorganize 11432 to merge reference/pointer code and fix incorrect warnings. 11433 114342000-02-29 Jason Merrill <jason@casey.cygnus.com> 11435 11436 * search.c (protected_accessible_p): Use context_for_name_lookup. 11437 11438 * init.c (construct_virtual_bases): Fix thinko. 11439 * typeck.c (expand_ptrmemfunc_cst): Fix thinko. 11440 114412000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> 11442 11443 * decl.c (current_function_decl): Move to toplev.c. 11444 114452000-02-29 Nathan Sidwell <nathan@codesourcery.com> 11446 11447 * pt.c (fn_type_unification): Unify return type, whenever 11448 provided. 11449 (get_bindings_real): Only pass return type when necessary. 11450 Remove explicit return type check. 11451 * class.c (resolve_address_of_overloaded_function): Pass desired 11452 return type to fn_type_unification. 11453 11454Mon Feb 28 08:15:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11455 11456 * class.c (build_vtbl_or_vbase_field, check_methods): Don't clear 11457 DECL_FIELD_SIZE. 11458 (check_bitfield_decl, check_field_decls): Set DECL_SIZE, not 11459 DECL_FIELD_SIZE. 11460 * rtti.c (expand_class_desc): Likewise. 11461 * cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name. 11462 (THUNK_VCALL_OFFSET): Likewise. 11463 (THUNK_DELTA): Reflect changes in ../tree.h. 11464 114652000-02-28 Jason Merrill <jason@casey.cygnus.com> 11466 11467 * search.c (protected_accessible_p): Also allow the access if 11468 the member is public in DERIVED. Lose TYPE parm. 11469 (friend_accessible_p): Lose TYPE parm. 11470 (accessible_p): Adjust. 11471 11472Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11473 11474 * class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop 11475 on things that are not sizes; ssize_binop deleted. 11476 Call size_diffop when appropriate. 11477 (dfs_build_vcall_offset_vtbl_entries): Likewise. 11478 (build_primary_vtable, build_secondary_vtable): Likewise. 11479 (dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise. 11480 Variable I is HOST_WIDE_INT. 11481 (get_vfield_offset): Pass proper types to size_binop. 11482 (size_extra_vtbl_entries, layout_virtual_bases): Likewise. 11483 (finish_struct_1): Likewise. 11484 (skip_rtti_stuff): Arg N is now pointer to signed. 11485 (layout_class_type): Use size_zero_node. 11486 * cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed. 11487 * cvt.c (cp_convert_to_pointer): Pass proper types to size_binop. 11488 * decl.c (complete_arry_type): Pass proper types to size_binop. 11489 (xref_basetypes): BINFO_OFFSET is sizetype. 11490 * error.c (dump_expr): Don't use size_binop non-sizes. 11491 * expr.c (cplus_expand_constant): Pass proper types to size_binop. 11492 * init.c (construct_virtual_bases): Fix type error. 11493 (build_vec_delete_1): Pass proper type to size_binop and don't 11494 fold result. 11495 * lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype. 11496 * rtti.c (get_base_offset): Pass proper type to size_binop. 11497 * search.c (dfs_find_vbases): Fix type error. 11498 (expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed. 11499 (dfs_get_vbase_types): BINFO_OFFSET is sizetype. 11500 * tree.c (debug_binfo): Variable N is signed. 11501 Use HOST_WIDE_INT_PRINT_DEC. 11502 * typeck.c (comptypes): sizetype is same as equivalent integer type. 11503 (c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT, 11504 size_one_node and size_zero_node. 11505 (c_alignof): Use size_one_node. 11506 (build_component_addr): Pass proper types to size_binop. 11507 (expand_ptrmemfunc_cst): Don't use size_binop on non-sizes. 11508 115092000-02-26 Jason Merrill <jason@casey.cygnus.com> 11510 11511 Implement class scope using-declarations for functions. 11512 * class.c (handle_using_decl): Call add_method for used functions. 11513 Use IDENTIFIER_CLASS_VALUE to check for conflicts. 11514 (add_method): Used functions are hidden by local functions. 11515 (check_bases_and_members): Handle using-decls before finalizing 11516 CLASSTYPE_METHOD_VEC. 11517 * call.c (add_function_candidate): Add ctype parm; if non-zero, 11518 override the type of 'this' accordingly. 11519 (add_template_candidate, add_template_candidate_real): Add ctype parm. 11520 (convert_class_to_reference, build_user_type_conversion_1, 11521 build_new_function_call, build_object_call, build_new_op, 11522 build_new_method_call): Pass ctype parm. 11523 11524 * search.c (lookup_member): Put rval_binfo, not basetype_path, in 11525 the baselink. 11526 * call.c (convert_class_to_reference, build_user_type_conversion_1, 11527 build_new_function_call, build_object_call, build_new_op, 11528 build_new_method_call, build_op_delete_call): Don't get basetype_path 11529 from a baselink. 11530 * typeck.c (build_component_ref): Likewise. 11531 * init.c (build_offset_ref): Likewise. 11532 (resolve_offset_ref): Don't call enforce_access. 11533 Call build_scoped_ref. 11534 * typeck2.c (build_scoped_ref): Simplify. Do nothing if it 11535 would cause an error or if -pedantic. 11536 * class.c (alter_access): Lose binfo parm. 11537 115382000-02-26 Mark Mitchell <mark@codesourcery.com> 11539 11540 * semantics.c (simplify_aggr_init_exprs_p): Don't walk into 11541 types. 11542 115432000-02-25 Alfred Minarik <a8601248@unet.univie.ac.at> 11544 11545 * rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info 11546 pseudo_type_info creation into the std namespace 11547 115482000-02-26 Mark Mitchell <mark@codesourcery.com> 11549 11550 * cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF. 11551 (import_export_class): Remove declaration. 11552 * decl2.c (import_export_class): Make it static. 11553 * dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR, 11554 PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, 11555 EXPR_WITH_FILE_LOCATION. 11556 * lex.c (check_newline): Tweak filename/lineno setting. 11557 * semantics.c (begin_while_stmt): Fix typo in comment. 11558 11559Sat Feb 26 19:50:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11560 11561 * lang-options.h (-fmessage-length=): Add missing option. 11562 11563 * Make-lang.in (CXX_SRCS): Add .h files and sort list. 11564 115652000-02-26 Zack Weinberg <zack@wolery.cumb.org> 11566 11567 * Make-lang.in: Delete refs to LIBGCC2_DEPS. 11568 11569Fri Feb 25 14:52:33 2000 Jim Wilson <wilson@cygnus.com> 11570 11571 * optimize.c (expand_call_inline): Emit the return label before 11572 evaluating the return value. 11573 115742000-02-24 Mark Mitchell <mark@codesourcery.com> 11575 11576 * lex.c (check_newline): Use push_srcloc and pop_srcloc, rather 11577 than duplicating functionality here. 11578 * optimize.c: Include input.h. 11579 (expand_call_inline): Use push_srcloc and pop_srcloc. 11580 * parse.y (maybe_cv_qualifier): Remove calls to emit_line_note. 11581 * parse.c: Regenerated. 11582 * Makefile.in (lex.o): Depend on input.h. 11583 (optimize.o): Likewise. 11584 115852000-02-24 Nathan Sidwell <nathan@codesourcery.com> 11586 11587 * decl.c (grokdeclarator): Diagnose qualifiers on non-member 11588 function type, rather than ICE. 11589 115902000-02-23 Jason Merrill <jason@casey.cygnus.com> 11591 11592 * decl.c (grokdeclarator): Call decl_type_access_control. 11593 * parse.y (parse_end_decl): Don't call decl_type_access_control if 11594 decl is null. 11595 115962000-02-23 Nathan Sidwell <nathan@codesourcery.com> 11597 11598 * decl.c (decls_match): Remove obsolete static member nadgering. 11599 116002000-02-21 Martin v. L�wis <loewis@informatik.hu-berlin.de> 11601 11602 * decl.c (grokdeclarator): Change ANSI to ISO. 11603 * lex.c (consume_string, readescape, do_identifier): Likewise. 11604 (parse_float, real_yylex): Likewise. 11605 * parse.y (paren_expr_or_null, paren_cond_or_null): Likewise. 11606 (unary_expr, new_initializer, cast_expr, primary, primary_no_id, 11607 new_type_id, maybe_label_decls, simple_stmt, 11608 for.init.statement): Likewise. 11609 * pt.c (do_decl_instantiation, do_type_instantiation): Likewise. 11610 * semantics.c (finish_named_return_value): Likewise. 11611 * parse.c: Regenerate. 11612 116132000-02-21 Mark Mitchell <mark@codesourcery.com> 11614 11615 * cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro. 11616 (CPTI_CLASS_STAR_TYPE): Remove. 11617 (vtable_index_type): Likewise. 11618 (class_star_type_node): Remove. 11619 (TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI. 11620 (build_binary_op_nodefault): Remove. 11621 * call.c (build_new_op): Use build_binary_op instead of 11622 build_binary_op_nodefault. 11623 * decl.c (init_decl_processing): Remove class_star_type_node 11624 initialization. Make delta_type_node ptrdiff_type_node under the 11625 new ABI. Initialize vtable_index_type. 11626 (build_ptrmemfunc_type): Build different structures for the new 11627 ABI. 11628 (build_enumerator): Use build_binary_op instead of 11629 build_binary_op_nodefault. 11630 * method.c (build_overload_value): Mangle pointers-to-members 11631 appropriately under the new ABI. 11632 * typeck.c (build_array_ref): Use build_binary_op instead of 11633 build_binary_op_nodefault. 11634 (get_member_function_from_ptrfunc): Adjust for the new ABI. 11635 (build_binary_op_nodefault): Rename to ... 11636 (build_binary_op): ... this. Remove old version. Adjust for 11637 pointer-to-member comparisons under the new ABI. 11638 (build_ptrmemfunc1): Remove dead code. Adjust for the new ABI. 11639 (build_ptrmemfunc): Adjust for the new ABI. 11640 (expand_ptrmemfunc_cst): Likewise. 11641 (delta2_from_ptrmemfunc): Assert that we're not using the new ABI. 11642 (pfn_from_ptrmemfunc): Adjust for the new ABI. 11643 116442000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> 11645 11646 * call.c (build_object_call): Compress consecutive calls to 11647 cp_error. 11648 (build_conditional_expr): Say 'ISO C++' not 'ANSI C++'. 11649 (build_op_delete_call): Adjust message formatting. 11650 11651 * class.c (check_bases): Compress consecutive calls to 11652 cp_pedwarn. 11653 (finish_struct_anon): Say 'ISO C++'. 11654 11655 * decl.c (start_decl): Same here. 11656 (grok_reference_init): Likewise. 11657 (grokfndecl): Correct message formatting. 11658 (grokfndecl): Improve diagnostic. 11659 (check_static_variable_definition): Likewise. Say 'ISO C++' 11660 (compute_array_index_type): Say 'ISO C++' 11661 (create_array_type_for_decl): Compress consecutive calls to 11662 cp_error. 11663 (grokdeclarator): Say 'ISO C++' 11664 (grok_op_properties): Likewise. 11665 11666 * decl2.c (delete_sanity): Clairify diagnostic. 11667 (check_member_template): Same here. 11668 (grok_function_init): Use consistent terminology. 11669 11670 * expr.c (do_case): Say 'ISO C++' 11671 11672 * friend.c (do_friend): Compress consecutive calls to warning. 11673 116742000-02-20 Mark Mitchell <mark@codesourcery.com> 11675 11676 * cp-tree.h (merge_primary_and_secondary_vtables_p): New macro. 11677 * class.c (build_secondary_vtable): Reorganize. Don't create a 11678 new vtable under the new ABI. 11679 (layout_vtable_decl): Don't add num_extra_vtbl_entries when 11680 computing the size. 11681 (build_vtbl_initializer): Don't return a CONSTRUCTOR; just return 11682 the initializing elements. 11683 (initialize_vtable): New function. 11684 (dfs_finish_vtbls): Use it. 11685 (dfs_accumulate_vtbl_inits): New function. 11686 (finish_vtbls): Merge primary and secondary vtables under the new 11687 ABI. 11688 (finish_struct_1): Remove redundant call to layout_vtable_decl. 11689 * init.c (expand_virtual_init): Deal with BINFO_VTABLEs that 11690 aren't VAR_DECLs. 11691 11692 * class.c (build_vtable): New function, split out from ... 11693 (get_vtable_decl): ... here, and ... 11694 (build_secondary_vtable): ... here. 11695 11696 * pt.c (tsubst_decl): Fix formatting. 11697 11698Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11699 11700 * class.c (build_primary_vtable, layout_vtable_decl): Likewise. 11701 (avoid_overlap, build_base_field): Likewise. 11702 (build_base_field, build_base_fields, is_empty_class): 11703 Test DECL_SIZE with integer_zero. 11704 (layout_class_type): Set CLASSTYPE_SIZE_UNIT. 11705 * cp-tree.h (struct lang_type): New field size_unit. 11706 (CLASSTYPE_SIZE_UNIT): New macro. 11707 * decl.c (init_decl_processing): Set DECL_SIZE_UNIT. 11708 (cp_finish_decl): Delete -Wlarger-than processing. 11709 * optimize.c (remap_decl): Walk DECL_SIZE_UNIT. 11710 * pt.c (tsubst_decl): Set DECL_SIZE_UNIT. 11711 * tree.c (make_binfo): binfo vector is one entry longer. 11712 (walk_tree): Walk DECL_SIZE_UNIT. 11713 117142000-02-19 Mark Mitchell <mark@codesourcery.com> 11715 11716 * class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in 11717 comment. 11718 (build_vtable_entry): Don't assume all vtable entries are 11719 functions. 11720 (build_vtbl_initializer): Adjust accordingly. 11721 (get_vtable_decl): Fix formatting. 11722 117232000-02-18 Jason Merrill <jason@casey.cygnus.com> 11724 11725 * semantics.c (deferred_type_access_control): Walk the entire 11726 type_lookups list. 11727 (save_type_access_control): Rename from 11728 initial_deferred_type_access_control. Just remember the value. 11729 (decl_type_access_control): New fn. 11730 (begin_function_definition): Use deferred_type_access_control, after 11731 we've started the function. Set type_lookups to error_mark_node. 11732 * parse.y (frob_specs, fn.def1): Adjust. 11733 (parse_decl0, parse_field, parse_field0, parse_bitfield): New fns. 11734 (parse_end_decl, parse_bitfield0, parse_method): New fns. 11735 (fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them. 11736 (after_type_component_declarator0): Likewise. 11737 (after_type_component_declarator): Likewise. 11738 (notype_component_declarator): Likewise. 11739 * cp-tree.h: Adjust. 11740 11741 * decl.c (redeclaration_error_message): Allow redeclaration of 11742 namespace-scope decls. 11743 117442000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 11745 11746 * typeck2.c (my_friendly_abort): Use GCCBUGURL. 11747 117482000-02-17 Mark Mitchell <mark@codesourcery.com> 11749 11750 * class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT. 11751 * decl2.c (grokclassfn): Likewise. 11752 11753 * ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS. 11754 11755 * decl2.c (lang_decode_option): Don't set default message length 11756 here. 11757 * lex.c (lang_init_options): Set it here. 11758 117592000-02-16 Mark Mitchell <mark@codesourcery.com> 11760 11761 Make DECL_CONTEXT mean the class in which a member function was 11762 declared, even for a virtual function. 11763 * cp-tree.h (DECL_CLASS_CONTEXT): Adjust. 11764 (DECL_FRIEND_CONTEXT): New macro. 11765 (DECL_REAL_CONTEXT): Remove. 11766 (SET_DECL_FRIEND_CONTEXT): Likewise. 11767 (DECL_VIRTUAL_CONTEXT): Adjust. 11768 (DECL_CLASS_SCOPE_P): Use TYPE_P. 11769 (add_friends): Remove. 11770 (hack_decl_function_context): Likewise. 11771 * call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with 11772 CP_DECL_CONTEXT. 11773 (build_over_call): Fix indentation. Use DECL_CONTEXT 11774 instead of DECL_CLASS_CONTEXT. 11775 * class.c (dfs_build_vcall_offset_vtbl_entries): Likewise. 11776 (add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 11777 (strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11778 (build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT. 11779 (build_base_field): Likewise. 11780 (finish_struct_1): Likewise. 11781 (build_self_reference): Likewise. 11782 * decl.c (push_class_binding): Use CP_DECL_CONTEXT, not 11783 DECL_REAL_CONTEXT. 11784 (pushtag): Use decl_function_context, not 11785 hack_decl_function_context. 11786 (decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 11787 (duplicate_decls): Use DECL_VIRTUAL_CONTEXT. 11788 (pushdecl): Remove bogus code. 11789 (start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT. 11790 (cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 11791 (grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11792 Use decl_function_context, nothack_decl_function_context. 11793 (grokvardecl): Don't set DECL_CLASS_CONTEXT. 11794 (grokdeclarator): Likewise. Use decl_function_context, not 11795 hack_decl_function_context. 11796 (copy_args_p): Document. Don't use DECL_CLASS_CONTEXT. 11797 (start_function): Use DECL_FRIEND_CONTEXT, not 11798 DECL_CLASS_CONTEXT. Use decl_function_context, not 11799 hack_decl_function_context. 11800 (finish_function): Use decl_function_context, not 11801 hack_decl_function_context. 11802 (maybe_retrofit_in_chrg): Use DECL_CONTEXT, not 11803 DECL_CLASS_CONTEXT. 11804 (grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT. 11805 (finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT. 11806 (grokfield): Likewise. 11807 (finish_builtin_type): Likewise. 11808 (finish_vtable_vardec): Use decl_function_context, not 11809 hack_decl_function_context. 11810 (import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11811 (start_static_initialization_or_destruction): Likewise. 11812 (finish_static_initialization_or_destruction): Likewise. 11813 (mark_used): Adjust logic for deciding when to synthesize methods. 11814 * dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not 11815 DECL_REAL_CONTEXT. 11816 * error.c (dump_function_decl): Use DECL_CONTEXT, not 11817 DECL_CLASS_CONTEXT. 11818 * friend.c (is_friend): Likewise. 11819 (add_friends): Remove. 11820 (do_friend): Use SET_DECL_FRIEND_CONTEXT. 11821 * lex.c (begin_definition_of_inclass_inline): Use 11822 decl_function_context, not hack_decl_function_context. 11823 (process_next_inline): Likewise. 11824 (do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 11825 * method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not 11826 DECL_CLASSS_CONTEXT. 11827 (hack_identifier): Likewise. 11828 (synthesize_method): Use decl_function_context, not 11829 hack_decl_function_context. 11830 * pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not 11831 DECL_REAL_CONTEXT. 11832 (is_member_template): Use decl_function_context, not 11833 hack_decl_function_context. Use DECL_CONTEXT, not 11834 DECL_CLASS_CONTEXT. 11835 (build_template_decl): Set DECL_VIRTUAL_CONTEXT, not 11836 DECL_CLASS_CONTEXT. 11837 (check_default_tmpl_args): Use CP_DECL_CONTEXT, not 11838 DECL_REAL_CONTEXT. 11839 (push_template_decl_real): Likewise. 11840 (instantiate_class_template): Don't call add_friends. 11841 (tsubst_default_argument): Use DECL_CONTEXT, not 11842 DECL_REAL_CONTEXT. 11843 (tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 11844 Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11845 (set_meangled_name_for_template_decl): Use DECL_CONTEXT, not 11846 DECL_CLASS_CONTEXT. 11847 * repo.c (repo_inline_used): Likewise. 11848 * search.c (current_scope): Adjust for new _CONTEXT macros. 11849 (context_for_name_lookup): Use CP_DECL_CONTEXT, not 11850 DECL_REAL_CONTEXT. 11851 (friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11852 (lookup_fnfields_here):Likewise. 11853 (check_final_overrider): Likewise. 11854 (init_vbase_pointers): Likewise. 11855 (virtual_context): Likewise. 11856 * semantics.c (finish_member_declaration): Just set DECL_CONTEXT. 11857 (expand_body): Use decl_function_context, not 11858 hack_decl_function_context. 11859 * tree.c (hack_decl_function_context): Remove. 11860 * typeck.c (build_x_function_call): Use DECL_CONTEXT, not 11861 DECL_CLASS_CONTEXT. 11862 * typeck2.c (error_not_base_type): Likewise. 11863 118642000-02-15 Jason Merrill <jason@casey.cygnus.com> 11865 11866 * decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE. 11867 118682000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11869 11870 * Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h. 11871 118722000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> 11873 11874 * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec. 11875 118762000-01-16 Gabriel Dos Reis <gdr@codesourcery.com> 11877 11878 * decl2.c (lang_decode_option): Enable automatic line wrapping. 11879 118802000-02-13 Jason Merrill <jason@casey.cygnus.com> 11881 11882 * parse.y (frob_specs): Split out... 11883 (parse_decl): From here. 11884 (fn.def2): Call initial_deferred_type_access_control. 11885 (after_type_component_declarator0): Call frob_specs. 11886 (notype_component_declarator0): Likewise. 11887 * search.c (friend_accessible_p): Nested classes are friends of their 11888 enclosing classes. 11889 118902000-02-10 Mark Mitchell <mark@codesourcery.com> 11891 11892 * ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be 11893 used to create an implicit temporary. 11894 11895 * class.c (dfs_modify_vtables): Tweak calculation of functions to 11896 override. 11897 118982000-02-08 Nathan Sidwell <nathan@acm.org> 11899 11900 * typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to 11901 strip array element qualifiers too. 11902 119032000-02-07 Mark Mitchell <mark@codesourcery.com> 11904 11905 * decl.c (store_parm_decls): Don't build cleanups for parameters 11906 while processing_template_decl. 11907 119082000-02-07 Jason Merrill <jason@casey.cygnus.com> 11909 11910 * cp-tree.h (struct saved_scope): Add incomplete field. 11911 (namespace_scope_incomplete): New macro. 11912 * decl.c (pushdecl): Use it. 11913 (hack_incomplete_structures): Use it. See through artificial 11914 binding levels. 11915 (mark_saved_scope): Mark it. 11916 11917 Implement access control for nested types. 11918 * search.c (type_access_control): New fn. 11919 (accessible_p): Now we do perform access control for types. 11920 * semantics.c (deferred_type_access_control): New fn. 11921 (initial_deferred_type_access_control): New fn. 11922 (begin_function_definition): Call it. Add lookups parm. 11923 * decl.c (struct binding_level): Add this_class field. 11924 (pushlevel_class): Set it. 11925 (mark_binding_level): Mark it. 11926 (lookup_name_real): Use it. Call type_access_control. 11927 (mark_saved_scope): Mark lookups field. 11928 * cp-tree.h (flagged_type_tree): Add lookups field. 11929 (struct saved_scope): Add lookups field. 11930 (type_lookups): New macro. 11931 * parse.y (declmods): Now <ftype>. 11932 (parse_decl): Add lookups parm. Call 11933 initial_deferred_type_access_control. 11934 (lang_extdef): Clear type_lookups. 11935 (typed_declspecs, declmods, typespec): Set lookups field. 11936 (initdcl): Call deferred_type_access_control. 11937 (fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0, 11938 component_decl_1, named_parm): Adjust. 11939 * friend.c (is_friend): Nested classes are friends of their 11940 enclosing classes. 11941 11942 * class.c (currently_open_derived_class): New fn. 11943 * method.c (hack_identifier): Use it. 11944 11945 * lex.c (do_identifier): Remove obsolete code. 11946 11947 * parse.y (typed_typespecs): Propagate new_type_flag properly. 11948 119492000-02-05 Zack Weinberg <zack@wolery.cumb.org> 11950 11951 * tinfo.h: Remove apostrophes from C++ comment (xgettext 11952 thinks this file is plain C). 11953 119542000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11955 11956 * Makefile.in (call.o): Depend on $(EXPR_H). 11957 11958 * call.c: Include "expr.h". 11959 11960 * class.c (dump_class_hierarchy): Add prototype. 11961 11962 * search.c (dfs_get_pure_virtuals): Likewise. 11963 119642000-02-1 Ulrich Drepper <drepper@redhat.com> 11965 11966 * parse.y (simple_stmt): Allow :: token in asm parameter list. 11967 * parse.c: Rebuilt. 11968 11969Mon Jan 31 15:35:29 2000 Jim Wilson <wilson@cygnus.com> 11970 11971 * class.c (build_vtbl_or_vbase_field): New parameter fcontext. 11972 Store it in DECL_FCONTEXT. 11973 (build_vbase_pointer_fields, create_vtable_ptr): Fix callers. 11974 119752000-01-31 Jason Merrill <jason@casey.cygnus.com> 11976 11977 * tinfo.h (old abi): #include "tconfig.h". 11978 * tinfo.cc (convert_to_base): Move into old abi section. 11979 119802000-01-31 Mark Mitchell <mark@codesourcery.com> 11981 11982 * cp-tree.h (BINFO_VIRTUALS): Tweak documentation. 11983 (CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO. 11984 (BINFO_PRIMARY_BINFO): New macro. 11985 (BF_DELTA): Rename to ... 11986 (BV_DELTA): ... this. 11987 (BF_VCALL_INDEX): Rename to ... 11988 (BV_VCALL_INDEX): ... this. 11989 (BF_FN): Rename to ... 11990 (BV_FN): ... this. 11991 * class.c (build_vbase_path): Adjust for changes to reverse_path. 11992 (set_rtti_entry): Rename BF_ macros to BV_ variants. 11993 (modify_vtable_entry): Simplify. 11994 (add_virtual_function): Rename BF_ macros to BV_ variants. 11995 (build_vtable_initializer): Likewise. 11996 (get_class_offset_1): Remove. 11997 (dfs_get_class_offset): Likewise. 11998 (get_class_offset): Likewise. 11999 (dfs_find_final_overrider): New function. 12000 (find_final_overrider): Likewise. 12001 (modify_one_vtable): Remove. 12002 (dfs_find_base): New function. 12003 (dfs_modify_vtables): Fold modify_one_vtable in here. Use 12004 find_final_overrider. 12005 (modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new 12006 virtuals. 12007 (dfs_fixup_vtable_deltas): Remove. 12008 (override_one_vtable): Remove. 12009 (merge_overrides): Likewise. 12010 (layout_virtual_bases): Make sure BINFO_OFFSET is set right for 12011 unreal chilren of virtual bases. 12012 (finish_struct_1): Don't use merge_overrides. Don't use 12013 dfs_fixup_vtable_deltas. 12014 * tree.c (reverse_path): Return a TREE_LIST, not a chain of 12015 BINFOs. 12016 120172000-01-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 12018 Jason Merrill <jason@yorick.cygnus.com> 12019 12020 * tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT. 12021 120222000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at> 12023 12024 * exception.cc (__throw_bad_typeid): Add missing std::. 12025 120262000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12027 12028 * cp-tree.h (make_thunk): PROTO -> PARAMS. 12029 120302000-01-31 Nathan Sidwell <sidwell@codesourcery.com> 12031 12032 * cp-tree.h (new_abi_rtti_p): Use flag_new_abi. 12033 12034 Runtime support for new-abi rtti. 12035 * inc/typeinfo (type_info::operator!=): Define in class. 12036 (type_info::before, type_info::name, type_info::operator==, 12037 type_info::operator!=): Define new ABI implementations. 12038 (type_info::is_pointer_p, type_info::is_function_p): Declare 12039 new virtual functions. 12040 (type_info::do_catch, type_info::do_upcast): Likewise. 12041 12042 * tinfo.h (__base_class_info): Define new class. 12043 (__class_type_info): Likewise. 12044 (__si_class_type_info): Likewise. 12045 (__vmi_class_type_info): Likewise. 12046 (__dynamic_cast): Prototype. 12047 12048 * tinfo.cc: Conditionalize old and new rtti mechanisms. 12049 (type_info::is_pointer_p): Define new function. 12050 (type_info::is_function_p): Likewise. 12051 (type_info::do_catch): Likewise. 12052 (type_info::do_upcast): Likewise. 12053 (vtable_prefix): New structure for vtable access. 12054 (adjust_pointer): Define new template function. 12055 (contained_p, public_p, virtual_p, contained_public_p, 12056 contained_nonpublic_p, contained_nonvirtual_p): Define new 12057 functions. 12058 (nonvirtual_base_type): New local variable. 12059 (__class_type_info::~__class_type_info): Define. 12060 (__si_class_type_info::~__si_class_type_info): Likewise. 12061 (__vmi_class_type_info::~__vmi_class_type_info): Likewise. 12062 (__class_type_info::do_catch): Define new function. 12063 (__class_type_info::do_upcast): Likewise. 12064 (__class_type_info::find_public_src): Likewise. 12065 (__class_type_info::do_find_public_src): Likewise. 12066 (__si_class_type_info::do_find_public_src): Likewise. 12067 (__vmi_class_type_info::do_find_public_src): Likewise. 12068 (__class_type_info::do_dyncast): Likewise. 12069 (__si_class_type_info::do_dyncast): Likewise. 12070 (__vmi_class_type_info::do_dyncast): Likewise. 12071 (__class_type_info::do_upcast): Likewise. 12072 (__si_class_type_info::do_upcast): Likewise. 12073 (__vmi_class_type_info::do_upcast): Likewise. 12074 (__dynamic_cast): Likewise. 12075 12076 * tinfo2.cc (__fundamental_type_info): Define new class. 12077 (__pointer_type_info): Likewise. 12078 (__reference_type_info): Likewise. 12079 (__array_type_info): Likewise. 12080 (__function_type_info): Likewise. 12081 (__enum_type_info): Likewise. 12082 (__ptr_to_member_type_info): Likewise. 12083 (__fundamental_type_info::~__fundamental_type_info): Define. 12084 (__pointer_type_info::~__pointer_type_info): Likewise. 12085 (__reference_type_info::~__reference_type_info): Likewise. 12086 (__array_type_info::~__array_type_info): Likewise. 12087 (__function_type_info::~__function_type_info): Likewise. 12088 (__enum_type_info::~__enum_type_info): Likewise. 12089 (__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise. 12090 (__pointer_type_info::do_catch): Define new function. 12091 (__ptr_to_member_type_info::do_catch): Define new function. 12092 12093 (__throw_type_match_rtti_2): Use new ABI interface, if enabled. 12094 (__is_pointer): Likewise. 12095 12096 * exception.cc (__cplus_type_matcher): Deal with new-abi rtti. 12097 120982000-01-30 Mark Mitchell <mark@codesourcery.com> 12099 12100 * cp/class.c (build_vtable): Rename to build_primary_vtable. 12101 (prepare_fresh_vtable): Rename to build_secondary_vtable. 12102 (make_new_vtable): New function. 12103 (modify_vtable_entry): Handle generation of new vtables correctly. 12104 (modify_one_vtable): Remove unused parameter. 12105 (dfs_fixup_vtable_deltas): Likewise. 12106 (override_one_vtable): Use build_secondary_vtable. 12107 (finish_struct_1): Use build_primary_vtable and 12108 build_secondary_vtable. 12109 121102000-01-28 Ulrich Drepper <drepper@redhat.com> 12111 12112 * cp/decl.c: Adjust variable names, comments, help strings. 12113 121142000-01-29 Nathan Sidwell <nathan@acm.org> 12115 12116 * new2.cc (operator delete[]): Use operator delete, don't assume 12117 implementation. 12118 121192000-01-29 Nathan Sidwell <sidwell@codesourcery.com> 12120 12121 * class.c (build_vtbl_initializer): Add argument to 12122 build_vtable_entry call. 12123 121242000-01-27 Mark Mitchell <mark@codesourcery.com> 12125 12126 * cp-tree.def (THUNK_DECL): Discuss vcall indices. 12127 * cp-tree.h (BINFO_VIRTUALS): Update documentation. 12128 (BF_DELTA): New macro. 12129 (BF_VCALL_INDEX): Likewise. 12130 (BF_FN): Likewise. 12131 (THUNK_VCALL_OFFSET): Likewise. 12132 (make_thunk): Change prototype. 12133 * class.c (build_vtable_entry): Integrate 12134 build_vtable_entry_for_fn. Handle vcall indices. 12135 (build_vtable_entry_for_fn): Remove. 12136 (set_rtti_entry): Handle vcall indices. Use BF_DELTA, 12137 BF_VCALL_INDEX, BF_FN. 12138 (modify_vtable_entry): Integrate common code from 12139 modify_one_vtable and dfs_fixup_vtable_deltas. 12140 (add_virtual_function): Set BF_VCALL_INDEX. 12141 (build_vtbl_initializer): Simplify. Use BF_DELTA, BF_VCALL_INDEX, 12142 and BF_FN. 12143 (modify_one_vtable): Simplify. 12144 (dfs_fixup_vtable_deltas): Likewise. 12145 (override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN. 12146 * method.c (make_thunk): Handle vcall indices. 12147 121482000-01-28 Nathan Sidwell <sidwell@codesourcery.com> 12149 12150 Compiler side new abi rtti (not enabled). 12151 * cp-tree.h (new_abi_rtti_p): New macro. 12152 (emit_support_tinfos): Prototype new function. 12153 (tinfo_decl_p): Likewise. 12154 (emit_tinfo_decl): Likwise. 12155 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor 12156 macros. 12157 (doing_runtime): New local static. 12158 (init_rtti_processing): Add new-abi initializer. 12159 (get_tinfo_decl): Add new-abi logic. 12160 (tinfo_from_decl): Likewise. 12161 (build_dynamic_cast_1): Likewise. 12162 (qualifier_flags): New static function. 12163 (tinfo_base_init): Likewise. 12164 (generic_initializer): Likewise. 12165 (ptr_ref_initializer): Likewise. 12166 (ptmd_initializer): Likewise. 12167 (class_hint_flags): Likewise. 12168 (class_initializer): Likewise. 12169 (synthesize_tinfo_var): Likewise. 12170 (create_real_tinfo_var): Likewise. 12171 (create_pseudo_type_info): Likewise. 12172 (get_vmi_pseudo_type_info): Likewise. 12173 (create_tinfo_types): Likewise. 12174 (emit_support_tinfos): New global function. 12175 (tinfo_decl_p): New global predicate. 12176 (emit_tinfo_decl): New global function. 12177 * class.c (set_rtti_entry): Generalize for old and new rtti. 12178 (build_vtbl_initializer): Likewise. 12179 * decl2.c (finish_file): Likewise. 12180 12181Thu Jan 27 20:53:36 2000 Jim Wilson <wilson@cygnus.com> 12182 12183 * optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t) 12184 and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))). 12185 12186Thu Jan 27 13:54:12 2000 Mike Stump <mrs@wrs.com> 12187 12188 * decl.c (pushdecl): Fix up shadow warnings with respect to implicit 12189 for scopes. 12190 121912000-01-26 Jason Merrill <jason@casey.cygnus.com> 12192 12193 * pt.c (unify): Use fold, not maybe_fold_nontype_arg. 12194 12195Wed Jan 26 22:19:14 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 12196 12197 * optimize.c (calls_setjmp_r): Supply new argument 12198 to special_function_p. 12199 122002000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12201 12202 * call.c: PROTO -> PARAMS. 12203 * class.c: Likewise. 12204 * cp-tree.h: Likewise. 12205 * cvt.c: Likewise. 12206 * decl.c: Likewise. 12207 * decl.h: Likewise. 12208 * decl2.c: Likewise. 12209 * dump.c: Likewise. 12210 * errfn.c: Likewise. 12211 * error.c: Likewise. 12212 * except.c: Likewise. 12213 * expr.c: Likewise. 12214 * init.c: Likewise. 12215 * input.c: Likewise. 12216 * lex.c: Likewise. 12217 * lex.h: Likewise. 12218 * method.c: Likewise. 12219 * optimize.c: Likewise. 12220 * parse.y: Likewise. 12221 * pt.c: Likewise. 12222 * repo.c: Likewise. 12223 * rtti.c: Likewise. 12224 * search.c: Likewise. 12225 * semantics.c: Likewise. 12226 * spew.c: Likewise. 12227 * tree.c: Likewise. 12228 * typeck.c: Likewise. 12229 * typeck2.c: Likewise. 12230 * xref.c: Likewise. 12231 122322000-01-25 Richard Henderson <rth@cygnus.com> 12233 12234 * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR. 12235 122362000-01-25 Mark Mitchell <mark@codesourcery.com> 12237 12238 * cp-tree.h (vcall_offset_in_vtable_p): New macro. 12239 * class.c (build_vbase_offset_vtbl_entries): Fix typo in commment. 12240 (struct vcall_offset_data_s): New type. 12241 (dfs_vcall_offset_queue_p): New function. 12242 (dfs_build_vcall_offset_vtbl_entries): Likewise. 12243 (build_vcall_offset_vtbl_entries): Likewise. 12244 (layout_vtable_decl): Likewise. 12245 (num_vfun_entries): Likewise. 12246 (num_extra_vtbl_entries): Add the entries for vcall offsets. 12247 (build_vtbl_initializer): Likewise. 12248 (dfs_finish_vtabls): Use layout_vtable_decl. 12249 (modify_one_vtables): Always duplicate vtables under the new ABI. 12250 (finish_struct_1): Use layout_vtable_decl. 12251 122522000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12253 12254 * decl.c (member_function_or_else): Change third arg from a format 12255 specifier to an `enum overload_flags'. Callers changed. 12256 122572000-01-25 Gabriel Dos Reis <gdr@codesourcery.com> 12258 12259 * typeck.c (composite_pointer_type, c_sizeof, expr_sizeof, 12260 build_binary_op_nodefault, build_unary_op, build_reinterpret_cast, 12261 build_const_cast, get_delta_difference, check_return_expr): Avoid 12262 ANSI string concatenation usage. 12263 122642000-01-24 Mark Mitchell <mark@codesourcery.com> 12265 12266 * class.c (layout_class_type): Put the fields required to make a 12267 class non-empty at the end, not the beginning, of the TYPE_FIELDs 12268 list. 12269 122702000-01-24 Jason Merrill <jason@casey.cygnus.com> 12271 12272 * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a 12273 template. 12274 12275 * decl2.c (mark_used): Do instantiate inlines that have been 12276 explicitly instantiated. 12277 122782000-01-24 Richard Henderson <rth@cygnus.com> 12279 12280 * call.c (build_over_call): Use expand_tree_builtin. 12281 * typeck.c (build_function_call_real): Likewise. 12282 (build_binary_op_nodefault): Handle unordered compares. 12283 122842000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 12285 12286 * cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New 12287 cp_tree_index values. 12288 (throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node): 12289 New global node #defines for them. 12290 * rtti.c (call_void_fn): Replace with ... 12291 (build_runtime_decl): ... new static function. 12292 (throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl. 12293 (throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl. 12294 (build_dynamic_cast_1): Always produce correctly typed result. 12295 Explicitly produce type_info addresses. Use dynamic_cast_node. 12296 * exception.cc (__throw_bad_cast): Return `void *'. 12297 (__throw_bad_typeid): Return `const type_info &'. 12298 122992000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 12300 12301 * cp-tree.h (get_vtable_decl): Prototype new function. 12302 * class.c (get_vtable_decl): New function. Broken out from ... 12303 (build_vtable): ... here. Use it. 12304 * decl2.c (finish_vtable_vardecl): Ignore dummy vtables created 12305 by get_vtable_decl. 12306 123072000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 12308 12309 * cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE, 12310 CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE, 12311 CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations. 12312 (CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE, 12313 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE, 12314 CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations. 12315 (CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ... 12316 (CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here. 12317 (CPTI_TINFO_VAR_ID): New enumeration. 12318 (__tp_desc_type_node, __access_mode_type_node, 12319 __bltn_desc_type_node, __user_desc_type_node, 12320 __class_desc_type_node, __ptr_desc_type_node, 12321 __attr_desc_type_node, __func_desc_type_node, 12322 __ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines. 12323 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, 12324 ref_desc_type_node, ary_desc_type_node, func_desc_type_node, 12325 enum_desc_type_node, class_desc_type_node, 12326 si_class_desc_type_node, vmi_class_desc_type_node, 12327 ptmd_desc_type_node, base_desc_type_node): New #defines. 12328 (tinfo_fn_id, tinfo_fn_type): Rename to ... 12329 (tinfo_decl_id, tinfo_decl_type): ... here. Adjust. 12330 (tinfo_var_id): New enumeration. 12331 (DECL_TINFO_FN_P): Augment comment. 12332 * decl.c (cp_global_trees): Adjust documentation. 12333 * rtti.c (init_rtti_processing): Adjust for tinfo_decl_id, 12334 tinfo_decl_type and tinfo_var_id. 12335 (get_tinfo_decl_dynamic): Adjust for tinfo_decl_type. 12336 (build_typeid): Remove unused variable. 12337 (get_tinfo_var): Use tinfo_var_id. 12338 (tinfo_name): New static function. 12339 (get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type. 12340 (tinfo_from_decl): Likewise. 12341 (get_base_offset): New static function, broken out of 12342 expand_class_desc. 12343 (expand_si_desc): Use tinfo_name. 12344 (expand_class_desc): Likewise. Lose local static variable. 12345 Use base_desc_type_node. Use get_base_offset. 12346 (expand_ptr_desc): Use tinfo_name. 12347 (expand_attr_desc): Likewise. 12348 (expand_generic_desc): Likewise. 12349 12350 * tinfo.cc (__GXX_ABI_VERSION): Test value and existence. 12351 * tinfo.h (__GXX_ABI_VERSION): Test value and existence. 12352 123532000-01-23 Mark Mitchell <mark@codesourcery.com> 12354 12355 * cp-tree.h (__eprintf): Remove declaration. 12356 * tree.c (__eprintf): Remove definition. 12357 123582000-01-23 Zack Weinberg <zack@rabi.columbia.edu> 12359 Mark Mitchell <mark@codesourcery.com> 12360 12361 * cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N, 12362 CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings. 12363 123642000-01-23 Brad Lucier <lucier@math.purdue.edu> 12365 12366 * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly. 12367 123682000-01-23 Mark Mitchell <mark@codesourcery.com> 12369 12370 * cp-tree.h (register_dtor_fn): New function. 12371 * decl.c (destroy_local_static): Rename to ... 12372 (register_dtor_fn): ... this. Give it external linkage. 12373 (expand_static_init): Use it. 12374 * decl2.c (do_static_initialization): Likewise, if using 12375 __cxa_atexit. 12376 (do_static_destruction): Check that __cxa_atexit is not in use. 12377 (finish_file): Don't call do_static_destruction if using 12378 __cxa_atexit. 12379 12380 * typeck.c (convert_arguments): Restore two-message error 12381 reporting. 12382 123832000-01-20 Nathan Sidwell <sidwell@codesourcery.com> 12384 12385 Remap dynamic cast hint values to be consistent across ABIs. 12386 * search.c (dynamic_cast_base_recurse): Remap generated value. 12387 (get_dynamic_cast_base_type): Adjust documentation. 12388 * tinfo.h (__user_type_info::dyncast): Likewise. 12389 (__user_type_info::find_public_subobj): Remap BOFF meaning. 12390 * tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning. 12391 (__class_type_info::do_dyncast): Likewise. 12392 (__class_type_info::do_find_public_subobj): Likewise. 12393 * tinfo2.cc (__dynamic_cast): Remap BOFF parameter. 12394 123952000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 12396 12397 * typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn. 12398 12399 * typeck2.c (incomplete_type_error): Restore previous 12400 cp_error and cp_error_at call sequence. 12401 124022000-01-20 Brad Lucier <lucier@math.purdue.edu> 12403 12404 * class.c (dump_class_hierarchy): Make format agree with argument; 12405 cast pointer to unsigned long and print with %lx. 12406 124072000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 12408 12409 * decl2.c (lang_decode_option): Set default line-wrap length to 72. 12410 12411 * typeck.c (composite_pointer_type, common_type, 12412 comp_target_parms, c_sizeof, expr_sizeof, build_array_ref, 12413 build_function_call_real, convert_arguments, 12414 build_binary_op_nodefault, pointer_int_sum, pointer_diff, 12415 build_unary_op, mark_addressable, build_compound_expr, 12416 build_static_cast, build_reinterpret_cast, build_const_cast, 12417 build_c_cast, build_modify_expr, get_delta_difference, 12418 build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with 12419 'ISO C++'. Fusion consecutive calls to diagnostic message routines 12420 into a single one. 12421 * typeck2.c (readonly_error, abstract_virtuals_error, 12422 process_init_constructor, check_for_new_type): Likewise. 12423 124242000-01-19 Mark Mitchell <mark@codesourcery.com> 12425 12426 * tree.c (bot_manip): Set DECL_CONTEXT for newly created 12427 VAR_DECLs. 12428 124292000-01-18 Nathan Sidwell <sidwell@codesourcery.com> 12430 12431 * cp-tree.h (get_tinfo_fn_dynamic): Remove prototype. 12432 (build_x_typeid): Likewise. 12433 (get_tinfo_fn): Likewise. 12434 (get_tinfo_fn_unused): Rename to ... 12435 (get_tinfo_decl): ... here. 12436 * rtti.c (build_headof): Replace logic error with assertion. 12437 (get_tinfo_fn_dynamic): Rename to ... 12438 (get_tinfo_decl_dynamic): ... here. Make static. Use 12439 complete_type_or_else. 12440 (build_x_typeid): Move into ... 12441 (build_typeid): ... here. Adjust call to 12442 get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify 12443 throw_bad_typeid expression. 12444 (get_tinfo_fn_unused): Rename to ... 12445 (get_tinfo_decl): ... here. Adjust comment. 12446 (get_tinfo_fn): Delete. 12447 (tinfo_from_decl): New static function. 12448 (get_typeid_1): Call get_tinfo_decl and tinfo_from_decl. 12449 (get_typeid): Use complete_type_or_else. 12450 (build_dynamic_cast_1): Adjust calls to 12451 get_tinfo_decl_dynamic. Simplify throw_bad_cast expression. 12452 * parse.y (primary): Adjust call to build_typeid. 12453 * except.c (build_eh_type_type_ref): Adjust call to 12454 get_tinfo_decl. Mark as used. 12455 * class.c (set_rtti_entry): Adjust call to get_tinfo_decl. 12456 * decl2.c (build_expr_from_tree): Adjust call to build_typeid. 12457 * parse.c: Regenerated. 12458 124592000-01-17 Mark Mitchell <mark@codesourcery.com> 12460 12461 * class.c (fixed_type_or_null): Don't clear NONNULL. Document 12462 calling convention. 12463 (resolves_to_fixed_type_p): Document calling convention. 12464 * rtti.c (build_x_typeid): Initialize NONNULL. 12465 12466 * cp-tree.h (build_shared_int_cst): New function. 12467 * call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity. 12468 * class.c (modify_vtable_entry): Likewise. 12469 (add_virtual_function): Split out code to generated shared 12470 INTEGER_CSTs to build_share_int_cst. 12471 (modify_all_vtables): Handle all the overridden functions here. 12472 Add overridden functions from non-primary virtual bases to the 12473 primary vtable. 12474 (finish_struct_1): Adjust call to modify_all_vtables. Add 12475 overridden functions from non-primary bases to the vtable. 12476 * tree.c (build_shared_int_cst): New function. 12477 12478 * cp-tree.h (scratchalloc): Remove. 12479 (build_scratch_list): Likewise. 12480 * call.c (convert_class_to_reference): Replace build_scratch_list 12481 and build_expr_list with build_tree_list. 12482 (add_candidate): Replace scratchalloc with expralloc. Note memory 12483 leak. 12484 (build_user_type_conversion_1): Replace build_scratch_list 12485 and build_expr_list with build_tree_list. 12486 (build_new_op): Likewise. 12487 (build_op_delete_call): Likewise. 12488 (convert_like): Likewise. 12489 * cvt.c (ocp_convert): Likewise. 12490 * decl.c (start_decl): Likewise. 12491 (start_function): Likewise. 12492 (finish_destructor_body): Likewise. 12493 (maybe_build_cleanup_1): Likewise. 12494 * decl2.c (reparse_decl_as_expr): Likewise. 12495 * init.c (perform_member_init): Likewise. 12496 (expand_cleanup_for_base): Likewise. 12497 (build_builtin_delete_call): Likewise. 12498 (build_new_1): Likewise. 12499 (build_delete): Likewise. 12500 * method.c (do_build_assign_ref): Likewise. 12501 * parse.y (already_scoped_stmt): Likewise. 12502 (nontrivial_exprlist): Likewise. 12503 (net_initializer): Likewise. 12504 (initlist): Likewise. 12505 * parse.c: Regenerated. 12506 * rtti.c (build_x_typeid): Likewise. 12507 (build_dynamic_cast_1): Likewise. 12508 * typeck.c (build_x_compound_expr): Likewise. 12509 (build_static_cast): Likewise. 12510 (build_modify_expr): Likewise. 12511 12512 * cp-tree.h (DECL_VINDEX): Add documentation. 12513 * class.c (build_vtable_entry): Likewise. 12514 (start_vtable): Add comment. 12515 (add_virtual_function): Replace pending_hard_virtuals with 12516 overridden_virtuals and pending_virtuals with new_virtuals. 12517 Replace redundant assignments with assertions. 12518 (check_for_override): Add comment. 12519 (check_bases_and_members): Replace pending_hard_virtuals with 12520 overridden_virtuals and pending_virtuals with new_virtuals. 12521 (create_vtbl_ptr): Likewise. 12522 (layout_class_type): Likewise. 12523 (finish_struct_1): Likewise. Add comments. 12524 125252000-01-16 Mark Mitchell <mark@codesourcery.com> 12526 12527 * class.c (finish_struct_1): Replace redundant code with 12528 assertions. 12529 12530 * cp-tree.h (flag_new_abi): Move. 12531 (flag_use_cxa_atexit): Likewise. 12532 (flag_honor_std): Likewise. 12533 (flag_rtti): Likewise. 12534 (vbase_offsets_in_vtable_p): Define. 12535 (vptrs_present_everywhere_p): Likewise. 12536 (TYPE_CONTAINS_VPTR_P): Likewise. 12537 (dfs_walk_real): Declare. 12538 * class.c (build_vbase_pointer_fields): Check 12539 vbase_offsets_in_vtable_p. 12540 (dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in 12541 BINFO_VPTR_FIELD. 12542 (build_vbase_offset_vtbl_entries): Simplify. 12543 (build_vbase_offset_vtbl_entries): Adjust. 12544 (build_vbase_pointer): Add ability to look up vbase offsets in 12545 vtable. 12546 (start_vtable): New function. 12547 (add_virtual_function): Use it. 12548 (determine_primary_base): Use TYPE_CONTAINS_VPTR_P. 12549 (num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p. 12550 (build_vtbl_initializer): Take the type of the complete object as 12551 input. Use it to correctly calculate vbase offsets. 12552 (dfs_finish_vtbls): Pass the complete type to 12553 build_vtbl_initializer. 12554 (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P. 12555 (create_vtable_ptr): Create a vtable even if there are no 12556 new virtual functions, under the new ABI. 12557 (finish_struct_1): Likewise. 12558 (get_vfield_name): Use TYPE_CONTAINS_VPTR_P. 12559 * decl.c (exapnd_static_init): Remove call to 12560 preserve_initializer. 12561 * decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in 12562 vtables. 12563 * init.c (initialize_vtbl_ptrs): Initialize them in pre-order. 12564 (expand_virtual_init): Use vbase_offsets_in_vtable_p. 12565 (construct_virtual_bases): Don't initialize virtual base pointers 12566 under the new ABI. 12567 (build_aggr_init): Clean up comment. 12568 (expand_aggr_init_1): Likewise. 12569 * rtti.c (expand_class_desc): Store the virtual function table 12570 index where the vbase offset lives in the offset field. 12571 * search.c (dfs_walk_real): Make it global. 12572 (dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P. 12573 * tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD. 12574 12575 * tinfo.h (USItype): Make it signed under the new ABI. 12576 * tinfo.cc (convert_to_base): New function. Encapsulate base 12577 conversion logic here. 12578 (__class_type_info::do_upcast): Use it. 12579 (__class_type_info::do_dyncast): Likewise. 12580 (__class_type_info::do_find_public_subobj): Likewise. 12581 12582 * init.c (construct_virtual_bases): Don't look up the addresses of 12583 virtual bases at run-time. 12584 12585 * class.c (build_vbase_pointer): Relocate. 12586 (build_vbase_pointer_fields): Likewise. 12587 (dfs_build_vbase_offset_vtbl_entries): Likewise. 12588 (build_vbase_offset_vtbl_entries): Likewise. 12589 12590 * decl.c (init_decl_processing): Complain if -fnew-abi 12591 -fno-vtable-thunks is used. 12592 12593 * decl2.c (lang_decode_option): Don't couple flag_honor_std to 12594 flag_new_abi. 12595 125962000-01-15 Mark Mitchell <mark@codesourcery.com> 12597 12598 * cp-tree.h (num_extra_vtbl_entries): New function. 12599 (size_extra_vtbl_entries): Likewise. 12600 (dfs_vtable_path_unmark): Likewise. 12601 (dfs_vtable_path_unmarked_real_bases_queue_p): Likewise. 12602 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 12603 * class.c (num_extra_vtbl_entries): New function. 12604 (size_extra_vtbl_entries): Likewise. 12605 (dfs_build_vbase_offset_vtbl_entries): New function. 12606 (build_vbase_offset_vtbl_entries): Likewise. 12607 (build_vtbl_initializer): Use it. 12608 (finish_struct_1): Adjust vtable sizes (using 12609 num_extra_vtbl_entries). 12610 * expr.c (cplus_expand_expr): Assert that the DECL_RTL for a 12611 THUNK_DECL is non-NULL before expanding it. 12612 * init.c (expand_virtual_init): Adjust the vtable pointer by 12613 size_extra_vtbl_entries before storing it. 12614 * search.c (get_shared_vase_if_not_primary): Adjust prototype. 12615 Handle TREE_LIST parameters here, not in the dfs_* functions. 12616 (dfs_unmarked_real_bases_queue_p): Adjust. 12617 (dfs_marked_real_bases_queue_p): Likewise. 12618 (dfs_vtable_path_unmarked_real_bases_queue_p): New function. 12619 (dfs_vtable_path_marked_real_bases_queue_p): New function. 12620 (dfs_vtable_path_unmark): Likewise. 12621 126222000-01-14 Mark Mitchell <mark@codesourcery.com> 12623 12624 * optimize.c (copy_body_r): Clear the operand three of a 12625 TARGET_EXPR when copying it. 12626 126272000-01-14 Martin v. L�wis <loewis@informatik.hu-berlin.de> 12628 12629 * method.c (build_decl_overload_real): Check whether we are in :: 12630 before returning __builtin_new/delete. 12631 126322000-01-13 Mark Mitchell <mark@codesourcery.com> 12633 12634 * pt.c (tsubst_friend_function): Improve comment. 12635 (instantiate_decl): Avoid crashing when a "nested" function is 12636 instantiated from the top level. 12637 12638 * dump.c (dqeueue_and_dump): Dump 12639 DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION. 12640 126412000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12642 12643 * call.c: If GATHER_STATISTICS, declare `n_build_method_call'. 12644 126452000-01-13 Nathan Sidwell <sidwell@codesourcery.com> 12646 12647 * g++spec.c (lang_specific_driver): Add -fnew-abi if 12648 ENABLE_NEW_GXX_ABI defined. 12649 * Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o, 12650 opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o, 12651 opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch. 12652 126532000-01-12 Mark Mitchell <mark@codesourcery.com> 12654 12655 * decl.c (start_cleanup_fn): Call pushdecl. 12656 12657 * call.c (convert_class_to_reference): Fix typos. 12658 (build_conditional_expr): Handle errors gracefully. 12659 * class.c (push_nested_class): Likewise. 12660 * cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro. 12661 (DECL_THIS_EXTERN): Use it. 12662 (DECL_THIS_STATIC): Likewise. 12663 * cvt.c (convert_to_void): Handle errors gracefully. 12664 (build_expr_type_conversion): Likewise. 12665 * decl.c (maybe_push_decl): Likewise. 12666 (start_decl_1): Likewise. 12667 (require_complete_types_for_parms): Likewise. 12668 * parse.y (structsp): Likewise. 12669 (base_class): Likewise. 12670 * parse.c: Regenerated. 12671 * pt.c (finish_member_template_decl): Likewise. 12672 * typeck.c (decay_conversion): Likewise. 12673 12674 * cp-tree.h (dfs_skip_vbases): New function. 12675 (find_vbase_instance): Likewise. 12676 * class.c (determine_primary_base): Allow a nearly empty base to 12677 serve as a primary base class under the new ABI. 12678 (get_class_offset_1): Rename to ... 12679 (dfs_get_class_offset): ... this. Simplify. Don't issue error 12680 messages here. 12681 (get_class_offset): Use it. Issue error messages here. 12682 (dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to 12683 find the right copies of virtual bases. 12684 (fixup_vtable_deltas1): Rename to ... 12685 (dfs_fixup_vtable_deltas): ... this. Adjust to handle virtual 12686 bases as primary bases. 12687 (fixup_vtable_deltas): Remove. 12688 (override_one_vtable): Handle virtual bases as primary bases. 12689 (merge_overrides): Likewise. 12690 (finish_struct_1): Likewise. 12691 (dump_class_hierarchy): Dump primary-ness of bases as well. 12692 * search.c (mark_primary_bases): Use a pre-order traversal to 12693 handle primary virtual bases. 12694 (dfs_skip_vbases): New fiunction. 12695 (expand_upcast_fixups): Adjust to handle primary virtual bases. 12696 (fixup_virtual_upcast_offsets): Likewise. 12697 (fixup_all_virtual_upcast_offsets): Likewise. 12698 (dfs_find_vbase_instances): New function. 12699 (find_vbase_instance): Likewise. 12700 127012000-01-11 Mumit Khan <khan@xraylith.wisc.edu> 12702 12703 * lex.c (DIR_SEPARATOR): Delete macro. 12704 127052000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> 12706 12707 * decl2.c (lang_decode_option): Handle automatic line wrapping 12708 option. 12709 127102000-01-11 Mark Mitchell <mark@codesourcery.com> 12711 12712 * friend.c (do_friend): Don't resolve scopes when processing 12713 template declarations, even if the qualifying scope doesn't 12714 involve template parameters. 12715 127162000-01-10 Mark Mitchell <mitchell@dumbledore.codesourcery.com> 12717 12718 * class.c (dfs_modify_vtables_queue_p): Remove. 12719 (modify_all_vtables): Use dfs_unmarked_real_bases_queue_p 12720 and dfs_marked_real_bases_queue_p instead of 12721 dfs_modify_vtables_queue_p. 12722 12723 * class.c (build_vbase_path): Simplify. 12724 (dfs_propagate_binfo_offsets): New function. 12725 (propagate_binfo_offsets): Use it. 12726 (remove_base_field): Simplify. 12727 (dfs_set_offset_for_vbases): Remove. 12728 (dfs_set_offset_for_shared_vbases): New function. 12729 (dfs_set_offset_for_unshared_vbases): Likewise. 12730 (layout_virtual_bases): Use them. 12731 (layout_basetypes): Don't call propagate_binfo_offsets. 12732 * search.c (dfs_get_vbase_types): Clone completely fresh binfos 12733 for the vbases. 12734 12735 * class.c (build_base_field): New function, split out from ... 12736 (build_base_fields): ... here. Use it. Allocate primary bases 12737 first, under the new ABI. 12738 (get_vtable_entry): Remove. 12739 (remove_base_field): New function, split out from ... 12740 (remove_base_fields): ... here. Adjust since primary bases come 12741 first under the new ABI. 12742 12743 * cp-tree.h (expand_direct_vtbls_init): Remove declaration. 12744 (initialize_vtbl_ptrs): New function. 12745 (expand_indirect_vtbls_init): Change prototype. 12746 (convert_pointer_to_vbase): Declare. 12747 * init.c (expand_direct_vtbls_init): Remove. 12748 (dfs_initialize_vtbl_ptrs): New function. 12749 (initialize_vtbl_ptrs): Likewise. 12750 (emit_base_init): Use initialize_vtbl_ptrs. 12751 * search.c (convert_pointer_to_vbase): Make it global. 12752 (expand_indirect_vtbls_init): Remove vtable initialization code. 12753 * semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs. 12754 12755 * class.c (dfs_finish_vtbls): New function. 12756 (finish_vtbls): Use it. 12757 (dump_class_hierarchy): New function. 12758 12759 * cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition. 12760 (BINFO_VBASE_PRIMARY_P): New macro. 12761 (BINFO_VIRTUALS): Add to documentation. 12762 (SET_BINFO_PRIMARY_MARKED_P): Remove. 12763 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 12764 (dfs_mark_primary_bases_queue_p): Likewise. 12765 (dfs_unmarked_real_bases_queue_p): New function. 12766 (dfs_marked_real_bases_queue_p): Likewise. 12767 * search.c (dfs_mark_primary_bases): Adjust. 12768 (mark_primary_bases): Likewise. 12769 (get_shared_vbase_if_not_primary): New function. 12770 (dfs_unmarked_real_bases_queue_p): Likewise. 12771 (dfs_marked_real_bases_queue_p): Likewise. 12772 (dfs_get_pure_virtuals): Simplify. 12773 (get_pure_virtuals): Likewise. 12774 127752000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12776 12777 * lex.c: Include tm_p.h. 12778 127792000-01-07 Nathan Sidwell <sidwell@codesourcery.com> 12780 12781 * lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro. 12782 127832000-01-06 Jason Merrill <jason@casey.cygnus.com> 12784 12785 * decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT. 12786 * pt.c (instantiate_decl): Defer comdat templates that might not be 12787 needed. 12788 12789 * cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT. 12790 * decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT. 12791 (finish_file): Likewise. 12792 12793 * decl2.c (import_export_class): Undo 12/14 change. 12794 12795 * error.c (dump_decl): operator new, not operatornew. 12796 12797 * class.c (field_decl_cmp): A nontype is "greater" than a type. 12798 * search.c (lookup_field_1): Look for the last field with the 12799 desired name. 12800 128012000-01-05 Nathan Sidwell <nathan@acm.org> 12802 12803 * decl2.c (lookup_arg_dependent): Deal with FNS not being a 12804 FUNCTION_DECL. 12805 128062000-01-05 Nathan Sidwell <nathan@acm.org> 12807 12808 * typeck.c (build_static_cast): Don't strip target qualifiers 12809 when casting from a class. 12810 128112000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12812 12813 * class.c (warn_hidden): Initialize variable `fndecl'. 12814 128152000-01-03 Ulrich Drepper <drepper@cygnus.com> 12816 12817 * decl.c (flag_isoc9x): New variable to be able to use code in 12818 c-common.c. For now always zero. 12819 128202000-01-03 Mark Mitchell <mark@codesourcery.com> 12821 12822 * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. 12823 * class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN 12824 or unshare_base_binfos for virtual bases here. 12825 * search.c (dfs_get_vbase_types): Do it here. 12826 (get_vbase_types): Adjust. 12827 128282000-01-02 Mark Mitchell <mark@codesourcery.com> 12829 12830 * cp-tree.h (CLASSTYPE_VFIELDS): Move definition. 12831 (BINFO_PRIMARY_MARKED_P): Use flag 5. 12832 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 12833 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 12834 (unmark_primary_bases): Remove declaration. 12835 (unmarkedp): Declare. 12836 (dfs_vbase_unmark): Likewise. 12837 * class.c (determine_primary_base): Return immediately if there 12838 are no base classes. Call mark_primary_bases here. 12839 (modify_all_direct_vtables): Remove. 12840 (modify_all_indirect_vtables): Remove. 12841 (dfs_modify_vtables_queue_p): New function. 12842 (dfs_modify_vtables): New function. 12843 (modify_all_vtables): Use them. 12844 (build_base_fields): Build FIELD_DECLs for primary virtual base 12845 classes. 12846 (create_vtable_ptr): Don't call determine_primary_base here. 12847 (dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ... 12848 (dfs_set_offset_for_vbases): ... this. 12849 (layout_virtual_bases): Use it. 12850 (layout_class_type): Call determine_primary_base here. 12851 * search.c (unmarkedp): Make it global. 12852 (shared_marked_p): Simplify. 12853 (shared_unmarked_p): Likewise. 12854 (dfs_primary_bases_queue_p): Remove. 12855 (dfs_unmark_primary_bases): Likewise. 12856 (unmark_primary_bases): Likewise. 12857 (mark_primary_bases): Simplify. 12858 (get_pure_virtuals): Don't call mark_primary_bases here. 12859 (dfs_vbase_unmark): New function. 12860 (get_vbase_types): Simplify. 12861 12862 * class.c (struct base_info): Remove. 12863 (determine_primary_base): Take has_virtual_p rather than a 12864 base_info as input. Don't calculate max_has_virtual. 12865 (finish_struct_bits): Remove max_has_virtual argument. 12866 (create_vtable_ptr): Remove max_has_virtual_p argument. 12867 (layout_virtual_bases): Remove max argument. 12868 (layout_basetypes): Likewise. 12869 (layout_class_type): Remove max_has_virtual_p argument. 12870 (finish_struct_1): Remove max_has_virtual. 12871 12872 * cp-tree.h (dfs_mark_primary_bases_queue_p): New function. 12873 (layout_basetypes): Remove. 12874 * class.c (propagate_binfo_offsets): Moved here from tree.c. 12875 Update to handle primary virtual bases. 12876 (remove_base_fields): New function, split out from 12877 layout_basetypes. 12878 (dfs_mark_primary_bases_and_set_vbase_offsets): New function. 12879 (layout_virtual_bases): New function, split out from 12880 layout_basetypes. Update to handle primary virtual bases. 12881 (layout_basetypes): Moved here from tree.c. Use 12882 remove_base_fields and layout_virtual_bases. 12883 * search.c (dfs_mark_primary_bases_queue_p): New function. 12884 (mark_primary_bases): Use it. 12885 * tree.c (CEIL): Remove. 12886 (propagate_binfo_offsets): Remove. 12887 (layout_basetypes): Remove. 12888 128892000-01-01 Mark Mitchell <mark@codesourcery.com> 12890 12891 * cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES. 12892 (BINFO_PRIMARY_MARKED_P): New macro. 12893 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 12894 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 12895 (mark_primary_bases): New function. 12896 (unmark_primary_bases): Likewise. 12897 * search.c (get_abstract_virtuals_1): Remove. 12898 (dfs_mark_primary_bases): New function. 12899 (mark_primary_bases): Likewise. 12900 (dfs_unmark_primary_bases): Likewise. 12901 (unmark_primary_bases): Likewise. 12902 (dfs_get_pure_virtuals): Likewise. 12903 129042000-01-01 Mark Mitchell <mark@codesourcery.com> 12905 12906 * cp-tree.h (skip_rtti_stuff): Adjust prototype. 12907 * class.c (skip_rtti_stuff): Reorganize parameters and return value. 12908 (modify_one_vtable): Adjust. 12909 (fixup_vtable_deltas1): Likewise. 12910 (override_one_vtable): Likewise. 12911 * search.c (get_abstract_virtuals_1): Likewise. 12912 (get_pure_virtuals): Likewise. 12913 (expand_upcast_fixups): Likewise. 12914 * tree.c (debug_binfo): Likewise. 12915 12916 * class.c (build_vtable): Don't return a value. Don't rebuild 12917 vtables for bases that have already been handled. 12918 (prepare_fresh_vtable): Don't rebuild vtables for bases that have 12919 already been handled. 12920 (modify_one_vtable): Adjust accordingly. 12921 (fixup_vtable_deltas1): Likewise. 12922 (finish_struct_1): Likewise. 12923 129242000-01-01 Martin v. L�wis <loewis@informatik.hu-berlin.de> 12925 12926 * call.c (build_new_method_call): Also check destructors. 12927