ChangeLog revision 103445
12002-09-04 Jakub Jelinek <jakub@redhat.com> 2 3 * decl.c (start_cleanup_fn): Clear interface_only before 4 start_function, restore it afterwards. 5 62002-09-01 Alexandre Oliva <aoliva@redhat.com> 7 8 * parse.y (sizeof, alignof, typeof): New non-terminals to 9 increment skip_evaluation. Replace terminals with them and 10 decrement skip_evaluation at the end of rules using them. 11 * decl2.c (mark_used): Don't assemble_external if 12 skipping evaluation. 13 142002-08-31 Jason Merrill <jason@redhat.com> 15 16 * cp-lang.c (cp_expr_size): Don't abort. 17 182002-08-27 Mark Mitchell <mark@codesourcery.com> 19 20 * cp-tree.h (warn_abi): Declare it. 21 * decl.c (warn_abi): Define it. 22 (cxx_decode_option): Set it. 23 * class.c (layout_virtual_bases): Warn about bugs in G++ that 24 result in incorrect object layouts. 25 (layout_class_type): Likewise. 26 272002-08-22 Jason Merrill <jason@redhat.com> 28 29 PR c++/5607 30 * search.c (check_final_overrider): No longer static. 31 * class.c (update_vtable_entry_for_fn): Call it. 32 * cp-tree.h: Adjust. 33 34 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define. 35 (cp_expr_size): New fn. 36 * call.c (convert_arg_to_ellipsis): Promote non-POD warning to error. 37 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue. 38 392002-08-14 Release Manager 40 41 * GCC 3.2 Released. 42 432002-08-03 Nathan Sidwell <nathan@codesourcery.com> 44 45 PR 7470. 46 C++ ABI change - vfunc ordering. 47 * class.c (add_virtual_function): Remove. 48 (dfs_modify_all_vtables): Take list of all declared 49 virtuals. Assign all that are not in primary base. 50 (check_for_override): Adjust comments. 51 (create_vtable_ptr): Take single list of virtuals. Build chain 52 of declared virtuals here. 53 (layout_class_type): Take single list of virtuals. Adjust. 54 (finish_struct_1): Keep virtuals on single list. Adjust. 55 562002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 57 58 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c. 59 602002-07-17 Scott Snyder <snyder@fnal.gov> 61 62 PR c++/7320 63 * rtti.c (get_tinfo_decl): Set DECL_COMDAT. 64 652002-07-05 Nathan Sidwell <nathan@codesourcery.com> 66 67 Repair damage on weak-impared targets caused by my previous patch. 68 * cp-tree.h (import_export_tinfo): Add parameter. 69 * decl2.c (import_export_tinfo): Add parameter, post adjust 70 DECL_COMDAT. 71 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by 72 import_export_tinfo. 73 742002-06-30 Nathan Sidwell <nathan@codesourcery.com> 75 76 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ... 77 (CPTI_TYPE_INFO_PTR_TYPE): ... this. 78 (tinfo_decl_type): Replace with ... 79 (type_info_ptr_type): ... this. 80 (import_export_tinfo): Declare. 81 (tinfo_decl_p): Rename to ... 82 (unemitted_tinfo_decl_p): ... this. 83 * decl2.c (import_export_decl): Break out tinfo handling into ... 84 (import_export_tinfo): ... here. New function. 85 (finish_file): Adjust. 86 * rtti.c (TINFO_REAL_NAME): New macro. 87 (init_rtti_processing): Create the tinfo types. 88 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr. 89 (get_tinfo_decl): Adjust. 90 (get_tinfo_ptr): New function. 91 (get_type_id): Use it. 92 (tinfo_base_init): Create vtable decl here, if it doesn't exist. 93 (ptr_initializer): Use get_tinfo_ptr. 94 (ptm_initializer): Likewise. 95 (synthesize_tinfo_var): Break into ... 96 (get_pseudo_ti_init): ... this. Just create the initializer. 97 (get_pseudo_ti_desc): .. and this. 98 (create_real_tinfo_var): Remove. 99 (create_pseudo_type_info): Don't create the vtable decl here. 100 (get_vmi_pseudo_type_info): Remove. 101 (create_tinfo_types): Adjust. 102 (tinfo_decl_p): Rename to ... 103 (unemitted_tinfo_decl_p): ... here. Adjust. 104 (emit_tinfo_decl): Adjust. Create the initializer. 105 1062002-06-14 Jason Merrill <jason@redhat.com> 107 108 C++ ABI changes. 109 * class.c (build_base_field): Set DECL_PACKED. 110 (layout_class_type): Don't use tail padding of PODs. 111 * mangle.c (write_unqualified_name): Fix template conversion op 112 mangling. 113 1142002-05-18 Jason Merrill <jason@redhat.com> 115 116 PR c++/6611 117 * decl2.c (import_export_decl): If we clear 118 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set. 119 1202002-05-14 Jason Merrill <jason@redhat.com> 121 122 * rtti.c (get_tinfo_decl): Don't call comdat_linkage. 123 Do set DECL_COMDAT. 124 (synthesize_tinfo_var): Take the public decl. 125 (create_real_tinfo_var): Likewise. Check DECL_COMDAT. 126 (emit_tinfo_decl): Adjust. Call import_export_decl. 127 * decl2.c (import_export_decl): Simplify tinfo decl handling. 128 1292002-07-25 Release Manager 130 131 * GCC 3.1.1 Released. 132 1332002-07-12 Mark Mitchell <mark@codesourcery.com> 134 135 * class.c (add_method): Correct handling of conversion operators. 136 1372002-07-11 Mark Mitchell <mark@codesourcery.com> 138 139 PR c++/7224 140 * class.c (add_method): Simplify. 141 1422002-07-11 Jason Merrill <jason@redhat.com> 143 144 PR c++/7279 145 * tree.c (cp_copy_res_decl_for_inlining): Also copy 146 TREE_ADDRESSABLE. 147 1482002-07-10 Jason Merrill <jason@redhat.com> 149 150 PR c++/6255 151 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than 152 modifying the old one. 153 1542002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 155 156 * pt.c (can_complete_type_without_circularity): Add static to 157 function definition. 158 1592002-07-05 Jim Wilson <wilson@redhat.com> 160 161 * decl.c (mark_named_label_lists): Add missing & in call to 162 mark_binding_level. 163 1642002-07-05 Jason Merrill <jason@redhat.com> 165 166 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null 167 pointers. 168 169 PR optimization/7145 170 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL. 171 1722002-05-18 Jason Merrill <jason@redhat.com> 173 174 PR c++/6611 175 * decl2.c (import_export_decl): If we clear 176 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set. 177 1782002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 179 180 PR c++/6944 181 * init.c (build_aggr_init): Remove qualifiers of init before calling 182 build_vec_init. 183 (build_vec_init): Flatten multi-dimensional array during cleanup. 184 (build_vec_delete_1): Abort if the type of each element is array. 185 1862002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 187 188 PR c++/6716 189 * pt.c (can_complete_type_without_circularity): New function. 190 (instantiate_class_template): Use it. 191 * typeck2.c (incomplete_type_error): Improve error message 192 due to incomplete fields. 193 1942002-07-01 Mark Mitchell <mark@codesourcery.com> 195 196 PR c++/7112 197 * mangle.c (write_expression): Add mangling for sizeof when 198 applied to a type. 199 * operators.def: Remove stale comment. 200 2012002-06-27 Mark Mitchell <mark@codesourcery.com> 202 203 PR c++/6695 204 * pt.c (tsubst_friend_class): Substitute into the context of the 205 friend before using it. 206 2072002-06-23 Matt Thomas <matt@3am-software.com> 208 209 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to 210 "#if VMS_TARGET". 211 2122002-06-20 Richard Henderson <rth@redhat.com> 213 214 PR c++/6747 215 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early. 216 Call put_var_into_stack. 217 2182002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 219 220 PR c++/6892 221 * pt.c (tsubst_expr): Handle FILE_STMT. 222 2232002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 224 225 PR c++/6723 226 * pt.c (lookup_template_class): Don't build complete argument of 227 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template 228 argument. 229 2302002-06-16 Richard Henderson <rth@redhat.com> 231 232 PR opt/6793 233 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test 234 after template instantiation. 235 2362002-06-07 H.J. Lu (hjl@gnu.org) 237 238 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT. 239 2402002-05-23 Neil Booth <neil@daikokuya.demon.co.uk> 241 242 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. 243 * cp-tree.h (cxx_post_options): Kill. 244 * cp-lex.c (cxx_post_options): Kill. 245 2462002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 247 248 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing. 249 2502002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 251 252 PR c++/186, DR 259 253 * pt.c (do_decl_instantiation): Don't complain explicit 254 instantiation after explicit specialization. 255 (do_type_instantiation): Likewise. 256 2572002-05-09 Jason Merrill <jason@redhat.com> 258 259 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P. 260 2612002-05-15 Alexandre Oliva <aoliva@redhat.com> 262 263 * cp-tree.h (struct lang_type): Added non_zero_init. 264 (CLASSTYPE_NON_ZERO_INIT_P): New macro. 265 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare. 266 * class.c (check_field_decls): Test non_zero_init. 267 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for 268 zero-to-NULL conversions. 269 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a 270 type that needs zero-initialization without zeros. 271 (check_initializer_decl): Compute zero-initializer for types 272 that require a non-trivial one. 273 * init.c (build_forced_zero_init): New function. 274 (build_default_init): Use it. 275 * tree.c (zero_init_p): New function. 276 * typeck2.c (force_store_init_value): New function. 277 (process_init_constructor): Create non-trivial zero-initializers 278 for array members and class fields. 279 2802002-05-14 Release Manager 281 282 * GCC 3.1 Released. 283 2842002-05-03 Jason Merrill <jason@redhat.com> 285 286 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h. 287 2882002-05-02 Mark Mitchell <mark@codesourcery.com> 289 290 * init.c (perform_base_cleanups): Correct order of base class 291 cleanups. 292 2932002-05-01 Mark Mitchell <mark@codesourcery.com> 294 295 PR c++/6527 296 * init.c (perform_base_cleanups): Emit cleanups in reverse order 297 of construction. 298 2992002-05-01 Gabriel Dos Reis <gdr@codesourcery.com> 300 301 * error.c (dump_type): Be careful about implicit typenames. 302 3032002-04-30 Mark Mitchell <mark@codesourcery.com> 304 305 ABI change, returning simple classes from functions. 306 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if 307 TYPE_HAS_TRIVIAL_INIT_REF is false or 308 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true. 309 3102002-04-30 Jason Merrill <jason@redhat.com> 311 312 PR debug/6436 313 * decl.c (grokdeclarator): Don't override TYPE_NAME of an 314 anonymous class with a typedef if there are attributes. 315 3162002-04-29 Paul Eggert <eggert@twinsun.com> 317 318 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$. 319 3202002-04-29 Jakub Jelinek <jakub@redhat.com> 321 322 PR c++/6477 323 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is 324 non-NULL first. 325 3262002-04-29 Mark Mitchell <mark@codesourcery.com> 327 328 PR c++/6492 329 * pt.c (tsubst_friend_class): If the friend has an explicit scope, 330 enter that scope before name lookup. 331 332 PR c++/6486 333 * method.c (do_build_copy_constructor): Avoid building 334 cv-qualified reference types. 335 3362002-04-29 Nathan Sidwell <nathan@codesourcery.com> 337 338 PR c++/5719 339 * decl.c (grok_op_properties): Assignment ops don't have to return 340 by value. operator% should. 341 3422002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 343 344 PR c/6343 345 * decl.c (duplicate_decls): Call merge_weak. 346 3472002-04-26 Mark Mitchell <mark@codesourcery.com> 348 349 PR c++/6479 350 * method.c (do_build_assign_ref): Pass a derivation to 351 build_method_call when calling base class assignment operators. 352 3532002-04-24 Mark Mitchell <mark@codesourcery.com> 354 355 * mangle.c (write_type): Don't use TYPE_MAIN_VARIANT when writing 356 out an array type. 357 (write_CV_qualifiers_for_type): Use TYPE_QUALS, not cp_type_quals, 358 to determine qualifiers. 359 360 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs 361 void. 362 3632002-04-24 Jason Merrill <jason@redhat.com> 364 365 PR c++/6331 366 * method.c (do_build_copy_constructor): Use cp_build_qualified_type. 367 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals. 368 The pedwarn for array assignment is now unconditional. 369 * tree.c (build_cplus_array_type_1): Still process simple array types 370 normally in templates. 371 372 PR c++/6395 373 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i 374 stuff for comdats. 375 3762002-04-23 Jason Merrill <jason@redhat.com> 377 378 PR c++/5504 - but re-breaks c++/411 379 * init.c (push_base_cleanups): Rename to perform_base_cleanups. 380 Expand base cleanups now rather than pushing them. 381 * decl.c (begin_destructor_body): Don't call push_base_cleanups. 382 (finish_destructor_body): Call perform_base_cleanups. 383 * cp-tree.h: Adjust prototype. 384 3852002-04-23 Jakub Jelinek <jakub@redhat.com> 386 387 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class 388 node with attributes. 389 3902002-2-23 David O'Brien <obrien@FreeBSD.org> 391 392 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add. 393 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given. 394 3952002-04-23 Mark Mitchell <mark@codesourcery.com> 396 397 PR c++/6256: 398 * pt.c (tsubst_friend_class): Handle templates with explicit 399 nested names. 400 401 PR c++/6331: 402 * typeck.c (merge_types): Remember the cv-qualification of pointer 403 types when merging them. 404 4052002-04-18 Jason Merrill <jason@redhat.com> 406 407 PR c++/5658 408 * search.c (setup_class_bindings): A class template qualifies as a 409 type binding. 410 4112002-04-17 Jakub Jelinek <jakub@redhat.com> 412 413 PR c++/6316 414 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop 415 before expanding. 416 4172002-04-16 Mark Mitchell <mark@codesourcery.com> 418 419 * init.c (begin_init_stmts): Remove commented out code. 420 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. 421 * semantics.c (begin_gobal_stmt_expr): Adjust call to 422 expand_start_stmt_expr. 423 4242002-04-15 Mark Mitchell <mark@codesourcery.com> 425 426 * decl.c (register_dtor_fn): Pass the address of dso_handle, not 427 dso_handle itself, to __cxa_atexit. 428 4292002-04-14 Jakub Jelinek <jakub@redhat.com> 430 431 * class.c (layout_virtual_bases): Do all dsize computation on trees. 432 4332002-04-12 Mark Mitchell <mark@codesourcery.com> 434 435 PR c++/5373. 436 * semantics.c (finish_expr_stmt): Remember the type of the 437 expression before any conversions are performed. 438 439 PR c++/5189. 440 * call.c (add_template_candidate_real): Do not treat member 441 templates as copy constructors. 442 443 * decl.c (duplicate_decls): Do not copy the RTL for a variable 444 declaration if the old variable had an incomplete type and the new 445 variable does not. 446 (complete_vars): Do not call layout_decl for completed variables. 447 4482002-04-11 Andrew Haley <aph@redhat.com> 449 450 * typeck.c (type_after_usual_arithmetic_conversions): 451 If two types have the same variant, return immediately. 452 When two floating-point operands are the same precision: 453 convert to float if one of the operands is float; 454 if neither operand is one of the standard types, return the type 455 of the first operand. 456 4572002-04-12 Richard Sandiford <rsandifo@redhat.com> 458 459 * decl.c (duplicate_decls): Don't try to unify an implicit typedef 460 with an explicit one. 461 (follow_tag_typedef): New. 462 (lookup_tag): Use it to extract the tag of an explicit typedef. 463 (xref_tag): Likewise. 464 4652002-04-10 Nathan Sidwell <nathan@codesourcery.com> 466 467 PR c++/5507 468 * decl.c (make_typename_type): Remove implicit typenameness. 469 4702002-04-09 Jason Merrill <jason@redhat.com> 471 472 PR optimization/6189 473 * semantics.c (genrtl_start_function): Don't free 474 DECL_SAVED_FUNCTION_DATA for inline functions. 475 4762002-04-08 Paolo Carlini <pcarlini@unitus.it> 477 478 * parse.y (namespace_qualifier, maybe_identifier, 479 begin_explicit_instantiation, end_explicit_instantiation, 480 apparent_template_type, .finish_template_type, 481 do_id, maybe_init, defarg_again, component_decl_1): 482 Add ending ';', in accordance with POSIX. 483 4842002-04-06 Mark Mitchell <mark@codesourcery.com> 485 486 PR c++/5571 487 * class.c (layout_class_type): Remember incomplete static 488 variables. 489 (finish_struct_1): Call complete_vars, not 490 hack_incomplete_structures. 491 * cp-tree.h (hack_incomplete_structures): Rename to ... 492 (complete_vars): ... this. 493 (struct saved_scope): Remove incomplete. 494 (namespace_scope_incomplete): Remove. 495 * decl.c (struct binding_level): Remove incomplete. 496 (incomplete_vars): New variable. 497 (mark_binding_level): Don't mark incomplete. 498 (print_binding_level): Don't print it. 499 (mark_saved_scope): Don't mark incomplete. 500 (pushdecl): Use maybe_register_incopmlete_var. 501 (cxx_init_decl_processing): Register incomplete_vars for GC. 502 (start_decl_1): Clarify error message. 503 (hack_incomplete_vars): Remove. 504 (maybe_register_incomplete_var): New function. 505 (complete_vars): Likewise. 506 5072002-04-06 Jason Merrill <jason@redhat.com> 508 509 PR c++/4934 510 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is 511 set before checking it. 512 513 PR c++/6179 514 * method.c (implicitly_declare_fn): Pass unqualified type to 515 synthesize_exception_spec. 516 5172002-04-03 Jason Merrill <jason@redhat.com> 518 519 PR c++/525 520 * init.c (build_member_call): Convert to intermediate base even 521 with -pedantic. 522 523 PR c++/5636 524 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on 525 cleanup for nrv. 526 527 PR c++/5104 528 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception 529 specifiers. 530 [METHOD_TYPE]: Use same code as FUNCTION_TYPE. 531 5322002-04-03 Roger Sayle <roger@eyesopen.com> 533 534 PR c++/5998: 535 * decl.c (duplicate_decls): Don't mess with assembler names when 536 redeclaring builtin functions as static. 537 5382002-04-01 Roger Sayle <roger@eyesopen.com> 539 540 PR c++/5998: 541 * decl.c (duplicate_decls): Overwrite the RTL when (and only 542 when) overwriting a built-in function. Don't use COPY_DECL_RTL, 543 but follow the SET_DECL_RTL idiom used elsewhere in the function. 544 5452002-03-28 Roger Sayle <roger@eyesopen.com> 546 547 PR c++/5998: 548 * decl.c (cxx_init_decl_processing): Re-enable built-in functions 549 in the g++ front-end. 550 (duplicate_decl): Allow redefinition of anticipated built-ins. 551 Fix inlining problem by over-writing the old DECL_RTL. 552 (lookup_namespace_name): Fail to find an identifier in the 553 specified namespace if its still anticipated. 554 (builtin_function_1): New function split out from builtin_function 555 to create a builtin in the current namespace with given context. 556 (builtin_function): Call builtin_function_1 to define the 557 appropriate builtins in both the std and global namespaces. 558 (select_decl): Don't test for anticipated decls here. 559 (unqualified_namespace_lookup): Instead ignore them whilst 560 searching through scopes and namespaces. 561 * decl2.c (do_nonmember_using_decl): If a using declaration 562 specifies an anticipated built-in function, mark it as no longer 563 anticipated in that scope. 564 (ambiguous_decl): Avoid resolving to an anticipated decl. 565 * lex.c (do_scoped_id): Fail to find an identifier in the global 566 namespace if its still anticipated. 567 5682002-03-29 Jakub Jelinek <jakub@redhat.com> 569 570 PR c++/6073 571 * class.c (finish_struct_1): Update static field's DECL_MODE even 572 if its type is a variant of t. 573 5742002-03-27 Mark Mitchell <mark@codesourcery.com> 575 576 PR c++/4884 577 * call.c (build_op_delete_call): Allow for the fact the placement 578 may be a COMPOUND_EXPR. 579 5802002-03-26 Nathan Sidwell <nathan@codesourcery.com> 581 582 PR c++/5682 583 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better. 584 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 585 (dfs_skip_nonprimary_vbases_markedp): Remove. 586 * search.c (get_shared_vbase_if_not_primary): Remove. 587 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 588 (dfs_skip_nonprimary_vbases_markedp): Remove. 589 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo. 590 (dfs_marked_real_bases_queue_p): Likewise. 591 5922002-03-26 Mark Mitchell <mark@codesourcery.com> 593 594 PR c++/4884 595 * init.c (build_new_1): Allow for the fact the result of 596 build_function_call may be a COMPOUND_EXPR. 597 5982002-03-25 Jakub Jelinek <jakub@redhat.com> 599 600 PR c++/6037 601 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node. 602 6032002-03-22 Jeff Knaggs <jknaggs@redhat.com> 604 605 * typeck.c (expand_ptrmemfunc_cst): Scale idx down to an index 606 into the vtable_entry array regardless of 607 TARGET_PTRMEMFUNC_VBIT_LOCATION. 608 6092002-03-21 Aldy Hernandez <aldyh@redhat.com> 610 611 * tree.c (cp_cannot_inline_tree_fn): Same. 612 6132002-03-20 Jason Merrill <jason@redhat.com> 614 615 PR c++/2136 616 * init.c (build_delete): Check access for a member op delete here. 617 * decl2.c (delete_sanity): Not here. 618 6192002-03-19 Jason Merrill <jason@redhat.com> 620 621 PR c++/5118 622 * class.c (get_vfield_name): Use the constructor_name. 623 6242002-03-18 Eric Botcazou <ebotcazou@multimania.com> 625 626 PR c++/3882 627 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling... 628 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer 629 only after recording the declaration. 630 6312002-03-18 Ashif Harji <asharji@uwaterloo.ca> 632 633 * lang-specs.h (compiler default_compilers): Add 634 -no-integrated-cpp flag to invoke an external cpp. 635 6362002-03-18 Jason Merrill <jason@redhat.com> 637 638 PR c++/2039 639 * init.c (resolve_offset_ref): Hand off to build_component_ref. 640 641 PR c++/4222, c++/5995 642 * call.c (build_over_call): Fix empty class logic. 643 644 PR c++/3870 645 * cp-tree.h (struct saved_scope): Add last_parms field. 646 * decl.c (maybe_push_to_top_level): Save last_function_parms. 647 (pop_from_top_level): Restore it. 648 649 PR c++/4377 650 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip 651 NON_LVALUE_EXPRs. 652 653 PR c++/4003 654 * pt.c (tsubst_friend_function): Use decl_namespace_context. 655 656 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch. 657 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a 658 type with a nontrivial destructor. 659 6602002-03-17 Jason Merrill <jason@redhat.com> 661 662 PR c++/4460 663 * class.c (build_base_path): Virtual base layout is fixed in 664 in-charge [cd]tors. 665 666 PR c++/5757 667 * init.c (build_new_1): Pass the right pointer to op delete. 668 6692002-03-15 Richard Henderson <rth@redhat.com> 670 671 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op. 672 6732002-03-15 Richard Henderson <rth@redhat.com> 674 675 * decl.c (finish_function): Reapply accidentally reverted 676 2002-02-28 patch. 677 6782002-03-15 Mark Mitchell <mark@codesourcery.com> 679 680 * cp-tree.h (CLEANUP_DECL): Remove. 681 (CLEANUP_EXPR): Likewise. 682 * decl.c (destroy_local_var): Simplify. 683 (maybe_build_cleanup): Tidy. 684 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT. 685 * semantics.c (cp_expand_stmt): Likewise. 686 * cp/tree.c (cp_statement_code_p): Likewise. 687 6882002-03-15 Richard Henderson <rth@redhat.com> 689 690 * decl.c: Include c-pragma.h. 691 (start_decl, start_function): Invoke maybe_apply_pragma_weak. 692 * Make-lang.in: Update dependencies. 693 6942002-03-15 Jason Merrill <jason@redhat.com> 695 696 PR c++/5857 697 * decl.c (duplicate_decls): Use merge_types instead of common_type. 698 * typeck.c (common_type): Just hand off to 699 type_after_usual_arithmetic_conversions and 700 composite_pointer_type. 701 (merge_types): New fn. 702 (commonparms): Use it instead of common_type. 703 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE. 704 (composite_pointer_type): Also handle attributes. 705 * cp-tree.h: Declare merge_types. 706 707 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT 708 variables. 709 * decl2.c (maybe_make_one_only): Also mark the decl as needed. 710 7112002-03-14 Jakub Jelinek <jakub@redhat.com> 712 713 PR c++/5908 714 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too. 715 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING. 716 7172002-03-12 Richard Sandiford <rsandifo@redhat.com> 718 719 * mangle.c (write_builtin_type): Handle 128-bit integers even if 720 they are not a standard integer type. 721 7222002-03-12 Nathan Sidwell <nathan@codesourcery.com> 723 724 PR c++/5659 725 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here. 726 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for 727 definitions. 728 7292002-03-11 Nathan Sidwell <nathan@codesourcery.com> 730 731 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>, 732 DR209 is now not a defect. 733 * cp-tree.h (skip_type_access_control): Remove. 734 * decl.c (grokdeclarator): Do type access control for friend 735 declarations. 736 * semantics.c (decl_type_access_control): Don't reset 737 current_type_lookups. 738 (save_type_access_control): Always save the lookups. 739 (skip_type_access_control): Remove. 740 (finish_class_definition): Don't change type_lookups. 741 7422002-03-11 Nathan Sidwell <nathan@codesourcery.com> 743 744 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>, 745 It is incorrect. 746 * typeck.c (build_static_cast): Compare non-qualified types 747 with pointer to member conversions. 748 7492002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org> 750 751 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of 752 conditional return void. 753 7542002-03-02 Nathan Sidwell <nathan@codesourcery.com> 755 756 PR c++/775 757 * decl.c (lookup_tag): Only reject enum/class mismatch, not 758 class/union mismatch. 759 * parse.y (check_class_key): New function. 760 (structsp): Call it. 761 7622002-03-01 Michael Matz <matz@suse.de> 763 764 * typeck.c (cp_pointer_int_sum): Complete inner type which is 765 used later by size_in_bytes(). 766 7672002-03-01 Phil Edwards <pme@gcc.gnu.org> 768 769 * cp-tree.h (build_init): Remove prototype. 770 7712002-03-01 Phil Edwards <pme@gcc.gnu.org> 772 773 * cp-tree.h: Require __GNUC__ to be #defined. 774 (build_init): Add missing prototype. 775 7762002-02-28 Jason Merrill <jason@redhat.com> 777 778 * search.c (lookup_base_r): Don't clear is_non_public just because 779 we found a friendly scope. 780 781 * decl.c (finish_function): Only warn about missing return 782 statement with -Wreturn-type. 783 7842002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org> 785 786 PR c++/4093 787 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition 788 to void. 789 7902002-02-22 Jakub Jelinek <jakub@redhat.com> 791 792 PR other/5746 793 * semantics.c (finish_switch_cond): Don't call get_unwidened 794 if error_mark_node. 795 7962002-02-22 Nathan Sidwell <nathan@codesourcery.com> 797 798 PR c++/2645, DR 295 799 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals, 800 tf_keep_type_decl. 801 (make_typename_type): Use tsubst_flags_t. 802 * decl.c (make_typename_type): Adjust. Return non-artificial 803 TYPE_DECLs, if required. 804 (grokdeclarator): Simplify CVR qualification handling. Allow bad 805 qualifiers on typedef types. 806 * decl2.c (handle_class_head): Adjust make_typename_type call. 807 * parse.y (nested_name_specifier): Likewise. 808 (typename_sub0): Likewise. 809 (typename_sub1): Likewise. 810 * pt.c (convert_template_argument): Adjust make_typename_type 811 return value. 812 (tsubst): Adjust cp_build_qualified_type_real calls. 813 (check_cv_quals_for_unify): Cope with alowing bad qualifications 814 on template type parms. 815 (instantiate_decl): Recheck substitutions to give warnings on bad 816 qualifications. 817 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals. 818 8192002-02-21 Aldy Hernandez <aldyh@redhat.com> 820 821 * cp/decl.c (duplicate_decls): Merge always_inline attribute. 822 823 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0 824 unless DECL_ALWAYS_INLINE. 825 8262002-02-20 Jakub Jelinek <jakub@redhat.com> 827 828 * typeck.c (cp_pointer_int_sum): Renamed from 829 pointer_int_sum, call pointer_int_sum. 830 8312002-02-20 Jakub Jelinek <jakub@redhat.com> 832 833 * decl.c (duplicate_decls): Return 0 if issued error about 834 redeclaration. 835 8362002-02-19 Jason Merrill <jason@redhat.com> 837 838 ABI change: Mangle `void (A::*)() const' as 839 M1AKFvvE, not MK1AFvvE. 840 * mangle.c (write_function_type): Write cv-quals for member 841 function type here. 842 (write_pointer_to_member_type): Not here. 843 8442002-02-18 Jason Merrill <jason@redhat.com> 845 846 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header. 847 (do_decl_instantiation): Likewise. 848 8492002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org> 850 851 PR c++/5685 852 * decl.c (duplicate_decls): Make warning unconditional 853 if duplicate default argument declarations are present. 854 8552002-02-17 Jakub Jelinek <jakub@redhat.com> 856 857 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit 858 shortening. 859 8602002-02-15 Nathan Sidwell <nathan@codesourcery.com> 861 862 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs, 863 remove incorrect comment. Move #if 0'd code to common path. Use 864 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication. 865 8662002-02-13 Jason Merrill <jason@redhat.com> 867 868 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns. 869 (finish_function): Don't warn if current_function_returns_null. 870 871 * typeck2.c (digest_init): Do handle values of vector type. 872 873 * typeck2.c (digest_init, process_init_constructor): Treat vectors 874 like arrays. 875 8762002-02-11 Jason Merrill <jason@redhat.com> 877 878 * parse.y (reserved_declspecs): Don't handle attributes. 879 (reserved_typespecquals): Handle them here. 880 * Make-lang.in (parse.c): Adjust expected conflicts. 881 8822002-02-08 Jakub Jelinek <jakub@redhat.com> 883 884 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr 885 instead of compstmt. 886 (compstmt_or_stmtexpr): Renamed from compstmt. 887 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type. 888 8892002-02-07 Nathan Sidwell <nathan@codesourcery.com> 890 891 Rename instantiate_type_flags to tsubst_flags_t & expand use. 892 * cp-tree.h (instantiate_type_flags): Rename to ... 893 (tsubst_flags_t): ... here. Rename itf_complain to tf_error, 894 add tf_warning flag. 895 (instantiate_type): Adjust prototype. 896 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class, 897 do_type_instantiation, cp_build_qualified_type_real): Likewise. 898 cp_build_qualified_type: Adjust. 899 * class.c (instantiate_type): Adjust parameter. Rename itf_* to 900 tf_*. 901 * call.c (standard_conversion): Rename itf_* to tf_*. 902 (reference_binding): Likewise. 903 (convert_like_real): Likewise. 904 * cvt.c (cp_convert_to_pointer): Likewise. 905 (convert_to_reference): Likewise. 906 * decl.c (lookup_namespace_name): Use tf_* flags. 907 (make_typename_type): Likewise. 908 (grokdeclarator): Likewise. 909 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage. 910 (coerce_template_template_parms, convert_template_argument, 911 coerce_template_parms, maybe_get_template_decl_from_type_decl, 912 lookup_template_class, tsubst_friend_function, tsubst_friend_class, 913 instantiate_class_template, tsubst_template_arg_vector, 914 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 915 tsubst_decl, tsubst_arg_types, tsubst_function_type, 916 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 917 instantiate_template, fn_type_unification, 918 resolve_overloaded_unification, verify_class_unification, 919 unify, get_bindings_real, do_type_instantiation, 920 regenerate_decl_from_template, instantiate_decl, 921 tsubst_initializer_list, tsubst_enum, 922 get_mostly_instantiated_function_type, 923 invalid_nontype_parm_type_p): Likewise. 924 * tree.c (cp_build_qualified_type_real): Likewise. 925 * typeck.c (build_binary_op): Rename itf_* to tf_*. 926 (build_ptrmemfunc): Likewise. 927 (convert_for_assignment): Likewise. 928 9292002-02-07 Nathan Sidwell <nathan@codesourcery.com> 930 931 PR c++/109 932 * decl.c (grokdeclarator): Allow friend declarations from 933 dependent types. 934 * decl2.c (handle_class_head): Don't push into template parm contexts. 935 * pt.c (push_template_decl_real): Template parm contexts are never 936 being defined. 937 9382002-02-05 Alexandre Oliva <aoliva@redhat.com> 939 940 * class.c: Include target.h. 941 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY, 942 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS 943 bit-field layout. 944 * Make-lang.in: Adjust deps. 945 9462002-02-05 Jason Merrill <jason@redhat.com> 947 948 * error.c (dump_type): Be more helpful about VECTOR_TYPE. 949 9502002-02-04 Jakub Jelinek <jakub@redhat.com> 951 952 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE. 953 (finish_switch_cond): Set SWITCH_TYPE. 954 9552002-02-04 Richard Henderson <rth@redhat.com> 956 957 * method.c (use_thunk): Always initialize the block tree. Reindent. 958 * semantics.c (expand_body): Emit thunks after function, not before. 959 9602002-02-04 Jason Merrill <jason@redhat.com> 961 962 * decl.c (start_function): Call cplus_decl_attributes immediately 963 after grokdeclarator. 964 965 * decl.c (start_function): Combine DECL_RESULT handling code. 966 9672002-02-03 Jason Merrill <jason@redhat.com> 968 969 * xref.c: Remove. 970 * Make-lang.in (CXX_OBJS): Remove cp/xref.o 971 (cp/xref.o): Remove dependencies. 972 * class.c (finish_struct_1, check_methods): Don't call xref fns. 973 (finish_struct_1): Likewise. 974 * friend.c (make_friend_class): Likewise. 975 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise. 976 * spew.c (read_process_identifier): Likewise. 977 9782002-02-01 Jason Merrill <jason@redhat.com> 979 980 PR c++/4872 981 * decl.c (finish_function): Warn about a non-void function with 982 no return statement and no abnormal exit. 983 * cp-tree.h (struct cp_language_function): Add returns_abnormally. 984 (current_function_returns_abnormally): New macro. 985 * call.c (build_call): Set it. 986 987 * typeck.c (build_component_ref): Always complain about offsetof 988 constructs on non-PODs. Only make it an error for members of 989 virtual bases. 990 991 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS. 992 (dump_function_decl): Always dump parms. 993 994 * decl2.c (finish_static_data_member_decl): Complain about a local 995 class with a static data member. 996 997 PR c++/4286 998 * search.c (lookup_field_1): Don't xref a static data member 999 just because we looked it up. 1000 10012002-01-31 Jason Merrill <jason@redhat.com> 1002 1003 * Make-lang.in (parse.c): Handle .output file. 1004 1005 PR c++/3395 1006 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES, 1007 not TREE_TYPE. 1008 * semantics.c (finish_class_definition): Adjust. 1009 1010 Allow attributes in parms and casts. 1011 * parse.y (named_parm): Don't strip attrs. 1012 (declmods): Remove 'attributes' production. 1013 (nonempty_cv_qualifiers): Accept attributes. 1014 (ATTRIBUTE): Give precedence. 1015 * decl.c (groktypename): Handle attributes. 1016 (grokparms): Likewise. 1017 10182002-01-29 Jakub Jelinek <jakub@redhat.com> 1019 1020 * decl2.c (cxx_decode_option): Pass 0 as last argument to 1021 cpp_handle_option. 1022 * lang-specs.h: Use cpp_unique_options instead of cpp_options 1023 when used together with cc1_options. 1024 10252002-01-29 Nathan Sidwell <nathan@codesourcery.com> 1026 1027 PR c++/5132 1028 * typeck2.c (digest_init): Make sure non-array core type is 1029 instantiated. 1030 * decl2.c (reparse_absdcl_as_casts): Just store the type in the 1031 constructor, rather than build a new one. 1032 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the 1033 PURPOSE of constructor elts. 1034 10352002-01-23 Zack Weinberg <zack@codesourcery.com> 1036 1037 * Make-lang.in (parse.c): Adjust expected number of 1038 shift-reduce conflicts. 1039 (decl.o): Depend on diagnostic.h. 1040 * decl.c: Include diagnostic.h. 1041 (grokdeclarator): Check for null pointer. 1042 (finish_function): Don't abort when 1043 current_binding_level->parm_flag != 1, if errors have 1044 occurred; throw away the statement tree and extra binding 1045 levels, and continue. 1046 * lex.c (note_list_got_semicolon): Check for null pointer. 1047 * method.c (hack_identifier): Just return error_mark_node if 1048 value is error_mark_node. 1049 * parse.y (primary: TYPEID(type_id)): No need to use 1050 TYPE_MAIN_VARIANT here. 1051 (handler_seq): Accept an empty list of catch clauses and 1052 generate a fake handler block to avoid later crashes. 1053 (ansi_raise_identifier): Accept the error token too. 1054 * semantics.c (begin_class_definition, 1055 finish_class_definition): Check for error_mark_node. 1056 10572002-01-23 Zack Weinberg <zack@codesourcery.com> 1058 1059 * typeck2.c (friendly_abort): Delete definition. 1060 * cp-tree.h (friendly_abort): Don't prototype. 1061 (my_friendly_assert): Use fancy_abort. 1062 10632002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 1064 1065 * cp-tree.h (my_friendly_abort): Remove. 1066 10672002-01-23 Jakub Jelinek <jakub@redhat.com> 1068 1069 * spew.c (pending_inlines, pending_inlines_tail, 1070 processing_these_inlines): Make static. 1071 (mark_pending_inlines): Remove static. 1072 (begin_parsing_inclass_inline): If in function, save pi 1073 for GC to cp_function_chain->unparsed_inlines instead. 1074 (process_next_inline): Likewise. 1075 * cp-tree.h (struct cp_language_function): Add unparsed_inlines. 1076 (mark_pending_inlines): Add prototype. 1077 * decl.c (spew_debug): Remove unused extern. 1078 (mark_lang_function): Call mark_pending_inlines. 1079 10802002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 1081 1082 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, 1083 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, 1084 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: 1085 Change my_fancy_abort() to abort(). 1086 10872002-01-23 Jason Merrill <jason@redhat.com> 1088 1089 PR c++/5453 1090 * class.c (fixed_type_or_null): Fix thinko. 1091 1092 PR c++/3331 1093 * init.c (resolve_offset_ref): Use build_indirect_ref. 1094 1095 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'. 1096 10972002-01-22 Jason Merrill <jason@redhat.com> 1098 1099 * parse.y (function_body): Suppress the block for the outermost 1100 curly braces. 1101 * decl.c (pushdecl): Don't try to skip it. 1102 (begin_function_body): Keep the block we create, not the next one. 1103 * init.c (emit_base_init): Don't mess with keep_next_level. 1104 1105 * class.c (build_base_path): Tweak formatting. 1106 11072002-01-19 Nathan Sidwell <nathan@codesourcery.com> 1108 1109 Fix regression introduced with patch for c++/775 1110 * parse.y (class_head_defn): Check for template specializations 1111 with a different class-key. 1112 11132002-01-17 Jason Merrill <jason@redhat.com> 1114 1115 * decl.c (begin_constructor_body, begin_destructor_body): New fns. 1116 (begin_function_body): Call them and keep_next_level. 1117 * init.c (emit_base_init): Call keep_next_level. 1118 * semantics.c (setup_vtbl_ptr): Lose. 1119 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p. 1120 (vtbls_set_up_p): Lose. 1121 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init. 1122 * method.c (do_build_copy_constructor): Likewise. 1123 (synthesize_method): Call finish_mem_initializers. 1124 * parse.y (nodecls): Likewise. 1125 1126 * error.c (dump_type_suffix): Print the exception specs before 1127 recursing. 1128 (dump_function_decl): Here, too. 1129 1130 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT. 1131 11322002-01-10 Ira Ruben <ira@apple.com> 1133 1134 PR c++/907 1135 * decl.c (start_method): Handle attrlist. 1136 11372002-01-10 Jakub Jelinek <jakub@redhat.com> 1138 1139 * decl2.c (max_tinst_depth): Increase default limit to 500. 1140 11412002-01-10 Graham Stott <grahams@redhat.com> 1142 1143 * spew.c (YYCHAR): Uppercase macro parameter and add 1144 parenthesis. 1145 (YYCODE): Likewise. 1146 (NAME): Uppercase macro parameter. 1147 11482002-01-09 Graham Stott <grahams@redhat.com> 1149 1150 * decl.h (grokdeclarator): Wrap long line. 1151 1152 * semantics.c (FINISH_COND): Uppercase macro paramaters and 1153 add parenthesis. 1154 11552002-01-08 Graham Stott <grahams@redhat.com> 1156 1157 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis. 1158 (PALLOC): Uppercase macro parameter and whitespace. 1159 (SALLOC): Uppercase macro parameter. 1160 (SFREE): Uppercase macros parameter, add parenthese and 1161 whitespace. 1162 (STREQL): Uppercase macro parameter and whitespace. 1163 (STRNEQ): Likewise. 1164 (STRLSS): Likewise. 1165 (STRLEQ): Likewise. 1166 (STRGTR): Likewise. 1167 (STRGEQ): Likewise. 1168 1169 * call.c (convert_like): Add parenthesis and wrap. 1170 (convert_like_with_context): Likewise. 1171 (ICS_RANK): Whitespace. 1172 (NEED_TEMPORARY_P): Remove parenthesis. 1173 1174 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and 1175 whitespace. 1176 (VTT_MARKED_BINFO_P): Likewise. 1177 1178 * decl.c (BINDING_LEVEL): Add parenthesis. 1179 (DEF_OPERATOR): Likewise. 1180 1181 * mangle.c (MANGLE_TRACE): Add parenthesis. 1182 (MANGLE_TRACE_TREE): Likewise. 1183 (write_signed_number): Likewise. 1184 (write_unsigned_number): Likewise. 1185 1186 * pt.c (ccat): Uppercase macro parameter. 1187 (cat): Likewise 1188 1189 * search.c (SET_BINFO_ACCESS): Add parenthesis. 1190 11912002-01-07 Jason Merrill <jason@redhat.com> 1192 1193 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch 1194 to pedwarn. 1195 1196 PR c++/3536 1197 * method.c (make_thunk): If !flag_weak, give the thunk the 1198 function's linkage. 1199 (use_thunk): Here, too. 1200 12012002-01-07 Graham Stott <grahams@redhat.com> 1202 1203 * error.c: Update copyright date. 1204 (print_scope_operator): Add parenthesis. 1205 (print_left_paren): Likewise. 1206 (print_right_paren): Likewise. 1207 (print_left_bracket): Likewise. 1208 (print_right_bracket): Likewise. 1209 (print_template_argument_list_start): Likewise. 1210 (print_template_argument_list_end): Likewise. 1211 (print_non_consecutive_character): Likewise. 1212 (print_tree_identifier): Likewise. 1213 (print_identifier): Likewise. 1214 (NEXT_CODE): Uppercase macro parameter. 1215 (ident_fndecl): Delete unused. 1216 (GLOBAL_THING): Likewise. 1217 12182002-01-06 Graham Stott <grahams@redhat.com> 1219 1220 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis. 1221 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise. 1222 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise. 1223 (RECORD_OR_UNION_TYPE_CHECK): Likewise. 1224 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise. 1225 (C_IS_RESERVED_WORD): Uppercase macro parameter. 1226 (C_RID_YYCODE) Likewise. 1227 (ptrmem_cst): Use rtx. 1228 (LOCAL_BINDING_P): Add whitespace. 1229 (INHERITED_VALUE_BINDING_P): Likewise. 1230 (BINDING_SCOPE): Wrap long line. 1231 (BINDING_HAS_LEVEL_P): Remove parenthesis. 1232 (BINDING_VALUE): Wrap long line. 1233 (BINDING_TYPE): Whitespace. 1234 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis. 1235 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise. 1236 (IDENTIFIER_NAMESPACE_VALUE): Likewise. 1237 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise. 1238 (same_type_p): Uppercase macro parameters. 1239 (same_type_ignoring_top_level_qualifiers_p): Likewise. 1240 (OVL_FUNCTION): Wrap long line. 1241 (OVL_CHAIN): Whitespace. 1242 (OVL_CURRENT): Add parenthesis and whitespace. 1243 (OVL_NEXT): Whitespace. 1244 (OVL_USED): Likewise. 1245 (IDENTIFIER_TYPE_VALUE): Likewise. 1246 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis. 1247 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace. 1248 (LANG_ID_FIELD): Whitespace. 1249 (SET_LANG_ID(NODE,VALUE,NAME): Likewise. 1250 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap. 1251 (SET_IDENTIFIER_LABEL_VALUE): Whitespace. 1252 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap. 1253 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace. 1254 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap. 1255 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace. 1256 (IDENTIFIER_VIRTUAL_P): Likewise. 1257 (IDENTIFIER_OPNAME_P): Likewise. 1258 (IDENTIFIER_TYPENAME_P): Remove parenthesis. 1259 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters. 1260 (C_SET_EXP_ORIGINAL_CODE): Likewise. 1261 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line. 1262 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise. 1263 (IS_AGGR_TYPE): Uppercase macro parameter. 1264 (CLASS_TYPE_P): Likewise. 1265 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis. 1266 (IS_AGGR_TYPE_2): Whitespace. 1267 (TAGGED_TYPE_P): Uppercase macro parameter. 1268 (TYPE_BUILT_IN): Whitespace. 1269 (TYPE_FOR_JAVA): Likewise. 1270 (FUNCTION_ARG_CHAIN): Remove parenthesis. 1271 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis. 1272 (FUNCTION_FIRST_USER_PARAM): Likewise. 1273 (PROMOTES_TO_AGGR_TYPE): Whitespace. 1274 (DERIVED_FROM_P): Add parenthesis and wrap. 1275 (UNIQUELY_DERIVED_FROM_P): Likewise. 1276 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise. 1277 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 1278 (CLASSTYPE_USE_TEMPLATE): Whitespace. 1279 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis. 1280 (TYPE_GETS_DELETE): Add parenthesis. 1281 (TYPE_HAS_CONVERSION): Add parenthesis and wrap. 1282 (TYPE_HAS_ASSIGN_REF): Likewise, 1283 (TYPE_HAS_CONST_ASSIGN_REF): Likewise. 1284 (TYPE_HAS_INIT_REF): Likewise. 1285 (TYPE_HAS_CONST_INIT_REF): Likewise. 1286 (TYPE_BEING_DEFINED): Likewise. 1287 (TYPE_LANG_SPECIFIC): Likewise. 1288 (CLASSTYPE_RTTI): Likewise. 1289 (TYPE_OVERLOADS_CALL_EXPR): Likewise. 1290 (TYPE_OVERLOADS_ARRAY_REF): Likewise. 1291 (TYPE_OVERLOADS_ARROW): Likewise. 1292 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise. 1293 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis. 1294 (CLASSTYPE_METHOD_VEC): Likewise. 1295 (CLASSTYPE_MARKED_N): Likewise. 1296 (CLASSTYPE_MARKED): Likewise. 1297 (CLASSTYPE_MARKED2): Likewise. 1298 (CLASSTYPE_MARKED3): Likewise. 1299 (CLASSTYPE_MARKED4): Likewise. 1300 (CLASSTYPE_MARKED5): Likewise. 1301 (CLASSTYPE_MARKED6): Likewise. 1302 (SET_CLASSTYPE_MARKED): Whitespace. 1303 (CLEAR_CLASSTYPE_MARKED): Likewise. 1304 (SET_CLASSTYPE_MARKED2): Likewise. 1305 (CLEAR_CLASSTYPE_MARKED2): Likewise. 1306 (SET_CLASSTYPE_MARKED3): Likewise. 1307 (CLEAR_CLASSTYPE_MARKED3): Likewise. 1308 (SET_CLASSTYPE_MARKED4): Likewise. 1309 (CLEAR_CLASSTYPE_MARKED4): Likewise. 1310 (SET_CLASSTYPE_MARKED5): Likewise. 1311 (CLEAR_CLASSTYPE_MARKED5): Likewise. 1312 (SET_CLASSTYPE_MARKED6): Likewise. 1313 (CLEAR_CLASSTYPE_MARKED6): Likewise. 1314 (CLASSTYPE_TAGS): Likewise. 1315 (CLASSTYPE_VSIZE): Likewise. 1316 (CLASSTYPE_VBASECLASSES): Likewise. 1317 (CANONICAL_BINFO): Add parenthesis. 1318 (CLASSTYPE_SIZE(NODE): Likewise. 1319 (CLASSTYPE_SIZE_UNIT): Likewise. 1320 (CLASSTYPE_ALIGN(NODE): Likewise. 1321 (CLASSTYPE_USER_ALIGN): Likewise. 1322 (TYPE_JAVA_INTERFACE): Likewise. 1323 (CLASSTYPE_PURE_VIRTUALS): Likewise. 1324 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap. 1325 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise. 1326 (CLASSTYPE_HAS_MUTABLE): Likewise. 1327 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise. 1328 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap. 1329 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise. 1330 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise. 1331 (CLASSTYPE_INTERFACE_ONLY): Likewise. 1332 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 1333 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 1334 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 1335 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 1336 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 1337 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap. 1338 (BINFO_UNSHARED_MARKED): Whitespace. 1339 (BINFO_MARKED): Whitespace and wrap. 1340 (SET_BINFO_MARKED): Likewise. 1341 (CLEAR_BINFO_MARKED): Likewise. 1342 (BINFO_VTABLE_PATH_MARKED): Likewise. 1343 (SET_BINFO_VTABLE_PATH_MARKED): Likewise. 1344 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise. 1345 (BINFO_SUBVTT_INDEX): Remove parenthesis. 1346 (BINFO_VPTR_INDEX): Likewise. 1347 (BINFO_PRIMARY_BASE_OF): Likewise, 1348 (CLASSTYPE_VFIELDS): Whitespace. 1349 (VF_DERIVED_VALUE): Wrap long line. 1350 (NAMESPACE_LEVEL): Whitespace. 1351 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis. 1352 (DEFARG_POINTER): Whitespace. 1353 (DECL_NEEDED_P): Remove parenthesis. 1354 (DECL_LANGUAGE): Whitespace. 1355 (SET_DECL_LANGUAGE): Add parenthesis. 1356 (DECL_CONSTRUCTOR_P): Whitespace and wrap. 1357 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis. 1358 (DECL_IN_AGGR_P): Whitespace. 1359 (DECL_FRIEND_P): Likewise. 1360 (DECL_BEFRIENDING_CLASSES): Likewise. 1361 (DECL_STATIC_FUNCTION_P): Whitespace and wrap. 1362 (DECL_NONCONVERTING_P): Whitespace. 1363 (DECL_PURE_VIRTUAL_P): Likewise. 1364 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise. 1365 (DECL_PENDING_INLINE_INFO): Whitespace. 1366 (DECL_SORTED_FIELDS): Likewise. 1367 (DECL_DEFERRED_FN): Likewise. 1368 (DECL_TEMPLATE_INFO): Likewise. 1369 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap. 1370 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise. 1371 (SET_TYPE_TEMPLATE_INFO): Add parenthesis. 1372 (TMPL_ARGS_LEVEL): Likewise. 1373 (SET_TMPL_ARGS_LEVEL): Likewise. 1374 (INNERMOST_TEMPLATE_PARMS): Whitespace. 1375 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter. 1376 (INTEGRAL_CODE_P(CODE): Add parenthesis. 1377 (CP_INTEGRAL_TYPE_P): Remove parenthesis. 1378 (TYPE_HAS_CONSTRUCTOR): Whitespace. 1379 (TREE_HAS_CONSTRUCTOR): Likewise. 1380 (TYPE_HAS_DESTRUCTOR): Likewise. 1381 (TYPE_HAS_REAL_ASSIGN_REF): Likewise. 1382 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise. 1383 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise. 1384 (TYPE_HAS_COMPLEX_INIT_REF): Likewise. 1385 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise. 1386 (TYPE_PTRMEMFUNC_P): Likewise. 1387 (TYPE_PTRMEMFUNC_FLAG): Likewise. 1388 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise. 1389 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise. 1390 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis. 1391 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 1392 (DECL_ACCESS): Whitespace. 1393 (DECL_GLOBAL_CTOR_P): Remove parenthesis. 1394 (DECL_GLOBAL_DTOR_P): Likewise. 1395 (GLOBAL_INIT_PRIORITY): Likewise. 1396 (DECL_TEMPLATE_PARMS): Likewise. 1397 (DECL_TEMPLATE_RESULT): Likewise. 1398 (DECL_TEMPLATE_INSTANTIATIONS): Likewise. 1399 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise. 1400 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis. 1401 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. 1402 (PRIMARY_TEMPLATE_P): Add parenthesis. 1403 (DECL_USE_TEMPLATE): Whitespace. 1404 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 1405 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 1406 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 1407 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 1408 (CALL_DECLARATOR_PARMS): Remove parenthesis. 1409 (CALL_DECLARATOR_QUALS): Likewise. 1410 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise. 1411 (TEMP_NAME_P): Wrap. 1412 (VFIELD_NAME_P): Likewise. 1413 (B_SET): Uppercase macro parameters and add parenthesis. 1414 (B_CLR): Likewise. 1415 (B_TST): Likewise. 1416 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters. 1417 (LOOKUP_TYPES_ONLY): Uppercase macro parameters. 1418 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters. 1419 (same_or_base_type_p): Likewise. 1420 (cp_deprecated): Likewise. 1421 14222002-01-05 Richard Henderson <rth@redhat.com> 1423 1424 * semantics.c (expand_body): Revert last change. 1425 14262002-01-04 Jason Merrill <jason@redhat.com> 1427 1428 PR c++/4122 1429 * class.c (update_vtable_entry_for_fn): Set delta to zero for a 1430 lost primary. 1431 1432 * class.c (build_vtbl_initializer): Check for a lost primary 1433 before calculating the vtable entry to throw away. 1434 14352002-01-02 Jason Merrill <jason@redhat.com> 1436 1437 * semantics.c (expand_body): Call outlining_inline_function when 1438 emitting an inline function out of line. 1439 14402002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1441 1442 PR c++/5116, c++/764 reversion 1443 * call.c (build_new_op): Revert the instantiations. They are 1444 incorrect. 1445 14462002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1447 1448 PR c++/5089 1449 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void. 1450 14512002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1452 1453 PR c++/3716 1454 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst. 1455 (tsubst, case POINTER_TYPE): Handle pmfs here. 1456 (tsubst, case OFFSET_TYPE): Check it is not an offset to 1457 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE. 1458 14592002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1460 1461 PR c++/35 1462 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too. 1463 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too. 1464 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the 1465 PARM_DECL. 1466 (tsubst_template_parms): Break up loop statements. 1467 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template 1468 parm PARM_DECLs don't get promoted. 1469 14702002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1471 1472 PR c++/5123 1473 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR. 1474 (build_x_function_call): Cope with a COMPONENT_REF containing a 1475 TEMPLATE_ID_EXPR. 1476 14772002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1478 1479 PR c++/5213 1480 * pt.c (convert_template_argument): Be more careful determining 1481 when RECORD_TYPE templates are or are not templates. 1482 14832002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1484 1485 PR c++/775 1486 * cp-tree.h (handle_class_head): Adjust prototype. 1487 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P 1488 parameters. Use for all class heads. 1489 * parse.y (named_class_head_sans_basetype, named_class_head, 1490 named_complex_class_head_sans_basetype, 1491 named_class_head_sans_basetype_defn, 1492 unnamed_class_head): Remove. 1493 (class_head, class_head_apparent_template): Recognize class heads 1494 (class_head_decl, class_head_defn): New reductions. Process class 1495 heads. 1496 (structsp): Adjust class definition and class declaration 1497 reductions. 1498 (maybe_base_class_list): Give diagnostic on empty list. 1499 15002002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1501 1502 PR c++/4379 1503 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a 1504 single non-static member. 1505 (unary_complex_lvalue): If it cannot be a pointer to member, don't 1506 make it so. Check it is not pointer to reference. 1507 15082002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1509 1510 PR c++/5132 1511 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we 1512 are processing a template decl. 1513 15142002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1515 1516 PR c++/5116, c++/764 1517 * call.c (build_new_op): Make sure template class operands are 1518 instantiated. Simplify arglist construction. 1519 15202001-12-29 Nathan Sidwell <nathan@codesourcery.com> 1521 1522 * call.c (build_user_type_conversion_1): Use my_friendly_assert 1523 rather than if ... abort. 1524 * cvt.c (convert_to_reference): Likewise. 1525 * semantics.c (setup_vtbl_ptr): Likewise. 1526 * pt.c (lookup_template_class): Comment typo. 1527 15282001-12-29 Nathan Sidwell <nathan@codesourcery.com> 1529 1530 PR c++/5125 1531 * pt.c (push_template_decl_real): Make sure DECL has 1532 DECL_LANG_SPECIFIC. 1533 15342001-12-29 Nathan Sidwell <nathan@codesourcery.com> 1535 1536 PR c++/335 1537 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer 1538 for non-reference fields. 1539 * typeck.c (require_complete_type): Use resolve_offset_ref). 1540 15412001-12-26 Nathan Sidwell <nathan@codesourcery.com> 1542 1543 PR c++/196 1544 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF. 1545 15462001-12-24 Nathan Sidwell <nathan@codesourcery.com> 1547 1548 PR c++/160 1549 * typeck.c (build_modify_expr): Remove old unreachable code & tidy 1550 up. Don't stabilize_references when initializing a reference. 1551 15522001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1553 1554 * decl2.c (lang_f_options): Const-ify. 1555 15562001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 1557 1558 * config-lang.in (diff_excludes): Remove. 1559 15602001-12-19 Nathan Sidwell <nathan@codesourcery.com> 1561 1562 PR c++/90 1563 * typeck.c (build_function_call_real): Use original function 1564 expression for errors. 1565 15662001-12-18 Jason Merrill <jason@redhat.com> 1567 1568 PR c++/3242 1569 * class.c (add_method): Do compare 'this' quals when trying to match a 1570 used function. Don't defer to another used function. 1571 15722001-12-18 Nathan Sidwell <nathan@codesourcery.com> 1573 1574 * pt.c (instantiate_clone): Remove, fold into ... 1575 (instantiate_template): ... here. Simplify by removing mutual 1576 recursion. 1577 * typeck2.c (build_m_component_ref): Don't cv qualify the function 1578 pointed to by a pointer to function. 1579 * class.c (delete_duplicate_fields_1): Typo. 1580 15812001-12-18 Jason Merrill <jason@redhat.com> 1582 1583 C++ ABI change: destroy value arguments in caller. 1584 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't 1585 create an extra binding level for the parameters. 1586 * decl.c (store_parm_decls): Don't do parameter cleanups. 1587 15882001-12-18 Nathan Sidwell <nathan@codesourcery.com> 1589 1590 * call.c (build_new_method_call): Use '%#V'. 1591 * error.c (cv_to_string): Use V parameter to determine padding. 1592 15932001-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 1594 1595 * call.c, decl2.c, init.c: Use "built-in" and "bit-field" 1596 spellings in messages. 1597 15982001-12-17 Zack Weinberg <zack@codesourcery.com> 1599 1600 * cp-tree.h: Delete #defines for cp_error, cp_warning, 1601 cp_pedwarn, and cp_compiler_error. 1602 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, 1603 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, 1604 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 1605 typeck2.c: Change calls to the above macros to use their 1606 language-independent equivalents: error, warning, pedwarn, and 1607 internal_error respectively. 1608 16092001-12-16 Neil Booth <neil@daikokuya.demon.co.uk> 1610 1611 * decl2.c (finish_file): Remove back_end_hook. 1612 16132001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 1614 1615 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c, 1616 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c, 1617 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors. 1618 16192001-12-15 Joseph S. Myers <jsm28@cam.ac.uk> 1620 1621 * lang-options.h: Use American spelling in messages. 1622 16232001-12-13 Jason Merrill <jason@redhat.com> 1624 1625 * Make-lang.in (parse.h): Separate rule, just depend on parse.c. 1626 1627 Use cleanups to run base and member destructors. 1628 * init.c (push_base_cleanups): New function, split out from... 1629 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. 1630 * decl.c (finish_destructor_body): Move vbase destruction code to 1631 push_base_cleanups. 1632 (begin_function_body, finish_function_body): New fns. 1633 (finish_function): Move [cd]tor handling and call_poplevel to 1634 finish_function_body. 1635 (pushdecl): Skip the new level. 1636 * semantics.c (genrtl_try_block): Don't call end_protect_partials. 1637 (setup_vtbl_ptr): Call push_base_cleanups. 1638 * method.c (synthesize_method): Call {begin,end}_function_body. 1639 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. 1640 * cp-tree.h: Declare new fns. 1641 * parse.y (function_body, .begin_function_body): New nonterminals. 1642 (fndef, pending_inline, function_try_block): Use function_body. 1643 (ctor_initializer_opt, function_try_block): No longer has a value. 1644 (base_init): Remove .set_base_init token. 1645 (.set_base_init, compstmt_or_error): Remove. 1646 * Make-lang.in (parse.c): Expect two fewer s/r conflicts. 1647 1648 * optimize.c (maybe_clone_body): Fix parameter updating. 1649 16502001-12-12 Jason Merrill <jason@redhat.com> 1651 1652 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft. 1653 * semantics.c (genrtl_start_function): Don't pass 1654 parms_have_cleanups or push an extra binding level. 1655 (genrtl_finish_function): Lose cleanup_label cruft. 1656 1657 * cp-tree.h (struct cp_language_function): Remove x_ctor_label. 1658 (ctor_label): Remove. 1659 * semantics.c (finish_return_stmt): Lose ctor_label support. 1660 * decl.c (finish_constructor_body, mark_lang_function): Likewise. 1661 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not 1662 dtor_label. 1663 1664 * call.c (build_new_method_call): Let resolves_to_fixed_type_p 1665 check for [cd]tors. 1666 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix. 1667 1668 * decl.c (finish_function): Check VMS_TARGET, not VMS. 1669 1670 * decl.c (start_cleanup_fn): Remove redundant pushlevel. 1671 (end_cleanup_fn): And poplevel. 1672 1673 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER 1674 if we're in a template. 1675 16762001-12-12 Jakub Jelinek <jakub@redhat.com> 1677 1678 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P, 1679 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, 1680 THIS_NAME_P): Delete. 1681 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, 1682 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash 1683 with internal naming scheme. 1684 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. 1685 16862001-12-12 Nathan Sidwell <nathan@codesourcery.com> 1687 1688 * decl.c (grokdeclarator): Deprecated implicit typename use. 1689 16902001-12-11 Nathan Sidwell <nathan@codesourcery.com> 1691 1692 PR g++/51 1693 * parse.y (frob_specs): Indicate it is a language linkage which 1694 contained the extern. 1695 * decl.c (grokdeclarator): Allow extern language linkage with 1696 other specifiers. 1697 16982001-12-10 Nathan Sidwell <nathan@codesourcery.com> 1699 1700 PR g++/72 1701 * decl.c (add_binding): Don't reject duplicate typedefs involving 1702 template parameters. 1703 17042001-12-10 Neil Booth <neil@daikokuya.demon.co.uk> 1705 1706 * parse.y, semantics.c: Similarly. 1707 17082001-12-09 Nathan Sidwell <nathan@codesourcery.com> 1709 1710 PR g++/87 1711 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p. 1712 (copy_args_p): Rename to ... 1713 (copy_fn_p): ... here. 1714 (grok_special_member_properties): New function. 1715 (grok_op_properties): Lose VIRTUALP parameter. 1716 (copy_assignment_arg_p): Remove. 1717 * call.c (build_over_call): Use copy_fn_p. 1718 * decl.c (grokfndecl): Reformat. Adjust call to 1719 grok_op_properties. 1720 (copy_args_p): Rename to ... 1721 (copy_fn_p): ... here. Reject template functions. Check for pass 1722 by value. 1723 (grok_special_member_properties): Remember special functions. 1724 (grok_ctor_properties): Don't remember them here, just check. 1725 (grok_op_properties): Likewise. 1726 (start_method): Call grok_special_member_properties. 1727 * decl2.c (grokfield): Likewise. 1728 (copy_assignment_arg_p): Remove. 1729 (grok_function_init): Don't remember abstract assignment here. 1730 * pt.c (instantiate_class_template): Call 1731 grok_special_member_properties. 1732 (tsubst_decl): Adjust grok_op_properties call. 1733 17342001-12-08 Aldy Hernandez <aldyh@redhat.com> 1735 1736 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and 1737 RID_TYPES_COMPATIBLE_P. 1738 17392001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 1740 1741 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in 1742 call to build_aggr_init. 1743 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. 1744 17452001-12-08 Neil Booth <neil@daikokuya.demon.co.uk> 1746 1747 * parse.y: Replace uses of the string non-terminal with STRING. 1748 Don't perform string concatentaion here. 1749 (string): Remove non-terminal. 1750 * semantics.c (finish_asm_stmt): Don't concatenate strings here. 1751 17522001-12-05 Jason Merrill <jason@redhat.com> 1753 1754 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. 1755 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. 1756 * tree.c (cp_start_inlining, cp_end_inlining): New fns. 1757 * pt.c (push_tinst_level): No longer static. 1758 * cp-tree.h: Declare them. 1759 1760 * init.c (resolve_offset_ref): Don't check access for the base 1761 conversion to access a FIELD_DECL. 1762 1763 * cp-tree.h (TYPE_REFFN_P): New macro. 1764 * decl.c (bad_specifiers): Check it, too. 1765 1766 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY 1767 on the __*_type_info type if we haven't seen a definition. 1768 17692001-12-05 Neil Booth <neil@daikokuya.demon.co.uk> 1770 1771 * decl.c: Include c-common.h. 1772 (shadow_warning): Move to c-common.c. 1773 1774Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1775 1776 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. 1777 17782001-12-04 Nathan Sidwell <nathan@codesourcery.com> 1779 1780 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm. 1781 17822001-12-04 Nathan Sidwell <nathan@codesourcery.com> 1783 1784 PR g++/164 1785 * init.c (sort_base_init): Allow binfos to be directly specified. 1786 * method.c (do_build_copy_constructor): Explicitly convert to the 1787 base instance. 1788 (do_build_assign_ref): Likewise. 1789 17902001-12-03 Hans-Peter Nilsson <hp@bitrange.com> 1791 1792 * decl.c (xref_basetypes): Don't use C99 construct in tag_code 1793 declaration and initialization. 1794 17952001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 1796 1797 * typeck2.c: Remove leading capital from diagnostic messages, as 1798 per GNU coding standards. 1799 18002001-12-03 Mumit Khan <khan@nanotech.wisc.edu> 1801 1802 PR c++/3394 1803 * decl.c (xref_basetypes): Handle attributes between 1804 'class' and name. 1805 18062001-12-03 Nathan Sidwell <nathan@codesourcery.com> 1807 1808 PR g++/3381 1809 * parse.y (named_complex_class_head_sans_basetype): Add new 1810 reduction. 1811 * Make-lang.in (parse.c): Adjust expected conflict count. 1812 18132001-12-03 Jason Merrill <jason@redhat.com> 1814 1815 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the 1816 immediate binfos for our virtual bases. 1817 18182001-12-02 Neil Booth <neil@daikokuya.demon.co.uk> 1819 1820 * call.c (build_java_interface_fn_ref): Similarly. 1821 * except.c (is_admissible_throw_operand): Similarly. 1822 * init.c (build_java_class_ref): Similarly. 1823 * xref.c (open_xref_file): Similarly. 1824 18252001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 1826 1827 * class.c (finish_struct): Remove trailing periods from messages. 1828 * decl.c (check_tag_decl): Similarly. 1829 * lex.c (cxx_set_yydebug): Similarly. 1830 * typeck2.c (friendly_abort): Similarly. 1831 18322001-11-29 Mark Mitchell <mark@codesourcery.com> 1833 1834 PR c++/3048 1835 * cp-tree.h (ovl_member): Remove. 1836 * decl2.c (merge_functions): Handle extern "C" functions 1837 specially. 1838 * tree.c (ovl_member): Remove. 1839 18402001-11-29 Mark Mitchell <mark@codesourcery.com> 1841 1842 PR c++/4842 1843 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a 1844 FUNCTION_DECL, as input. 1845 (mark_overriders): Remove. 1846 (warn_hidden): Rework for the new ABI. 1847 18482001-11-29 Mark Mitchell <mark@codesourcery.com> 1849 1850 PR c++/3471 1851 * call.c (convert_like_real): Do not build additional temporaries 1852 for rvalues of class type. 1853 18542001-11-28 Nathan Sidwell <nathan@codesourcery.com> 1855 1856 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base. 1857 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise. 1858 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise. 1859 (DERIVED_FROM_P): Likewise. 1860 (enum base_access): Renumber, add ba_quiet bit mask. 1861 (get_binfo): Remove. 1862 (get_base_distance): Remove. 1863 (binfo_value): Remove. 1864 (ACCESSIBLY_DERIVED_FROM_P): Remove. 1865 * call.c (standard_conversion): Use lookup_base. 1866 * class.c (strictly_overrides): Likewise. 1867 (layout_virtual_bases): Likewise. 1868 (warn_about_ambiguous_direct_bases): Likewise. 1869 (is_base_of_enclosing_class): Likewise. 1870 (add_vcall_offset_vtbl_entries_1): Likewise. 1871 * cvt.c (build_up_reference): Adjust comment. 1872 * init.c (build_member_call): Reformat. 1873 * search.c (get_binfo): Remove. 1874 (get_base_distance_recursive): Remove. 1875 (get_base_distance): Remove. 1876 (lookup_base_r): Tweak. 1877 (lookup_base): Add ba_quiet control. Complete the types here. 1878 (covariant_return_p): Use lookup_base. 1879 * tree.c (binfo_value): Remove. 1880 (maybe_dummy_object): Use lookup_base. 1881 * typeck.c (build_static_cast): Use lookup_base. 1882 (get_delta_difference): Likewise. 1883 * typeck2.c (binfo_or_else): Use lookup_base. 1884 (build_scoped_ref): Add back error_mark_check. 1885 (build_m_component_ref): Use lookup_base. 1886 18872001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 1888 1889 * Make-lang.in (c++.generated-manpages): New dummy target. 1890 1891Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1892 1893 * Make-lang.in (cp-lang.o): Depends on c-common.h. 1894 * cp-lang.c (c-common.h): Include. 1895 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. 1896 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p. 1897 * expr.c (init_cplus_expand): Don't set lang_expand_constant. 1898 18992001-11-26 Neil Booth <neil@daikokuya.demon.co.uk> 1900 1901 * decl2.c (c_language): Move to c-common.c. 1902 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c 1903 functions. 1904 (cxx_init): Update. 1905 19062001-11-26 Jason Merrill <jason@redhat.com> 1907 1908 * call.c (joust): Remove COND_EXPR hack. 1909 19102001-11-25 Aldy Hernandez <aldyh@redhat.com> 1911 1912 * search.c (lookup_base_r): Declare bk in variable declaration 1913 space. 1914 19152001-11-25 Nathan Sidwell <nathan@codesourcery.com> 1916 1917 PR g++/3145 1918 * class.c (build_vbase_pointer): Remove. 1919 (build_vbase_path): Remove. 1920 (build_base_path): New function. 1921 * cp-tree.h (base_access, base_kind): New enumerations. 1922 (build_base_path): Declare. 1923 (convert_pointer_to_real): Remove. 1924 (convert_pointer_to): Remove. 1925 (lookup_base): Declare. 1926 (convert_pointer_to_vbase): Remove. 1927 * call.c (build_scoped_method_call): Use lookup_base & 1928 build_base_path instead of convert_pointer_to_real, 1929 get_base_distance & get_binfo. 1930 (build_over_call): Likewise. 1931 * cvt.c (cp_convert_to_pointer): Likewise. 1932 (convert_to_pointer_force): Likewise. 1933 (build_up_reference): Likewise. 1934 (convert_pointer_to_real): Remove. 1935 (convert_pointer_to): Remove. 1936 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path 1937 instead of convert_pointer_to_vbase & build_vbase_path. 1938 (emit_base_init): Use build_base_path instead of 1939 convert_pointer_to_real. 1940 (expand_virtual_init): Lose unrequired conversions. 1941 (resolve_offset_ref): Use lookup_base and build_base_path 1942 instead of convert_pointer_to. 1943 * rtti.c (build_dynamic_cast_1): Use lookup_base & 1944 build_base_path instead of get_base_distance & build_vbase_path. 1945 * search.c (get_vbase_1): Remove. 1946 (get_vbase): Remove. 1947 (convert_pointer_to_vbase): Remove. 1948 (lookup_base_recursive): New function. 1949 (lookup_base): New function. 1950 * typeck.c (require_complete_type): Use lookup_base & 1951 build_base_path instead of convert_pointer_to. 1952 (build_component_ref): Likewise. 1953 (build_x_function_call): Likewise. 1954 (get_member_function_from_ptrfunc): Likewise. 1955 (build_component_addr): Likewise. 1956 * typeck2.c (build_scoped_ref): Likewise. 1957 19582001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 1959 1960 * cp-tree.h (CP_TYPE_QUALS): Removed. 1961 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree. 1962 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and 1963 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN. 1964 * dump.c (cp_dump_tree): Use void* dump_info argument to match 1965 lang-hooks prototype. 1966 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c, 1967 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to 1968 CP_TYPE_QUALS changed to cp_type_quals. 1969 * Make-lang.in: References to c-dump.h changed to tree-dump.h. 1970 (CXX_C_OBJS): Remove c-dump.o. 1971 19722001-11-21 Mark Mitchell <mark@codesourcery.com> 1973 1974 PR c++/3637 1975 * pt.c (lookup_template_class): Ensure that all specializations 1976 are registered on the list corresponding to the most general 1977 template. 1978 19792001-11-20 Mark Mitchell <mark@codesourcery.com> 1980 1981 * call.c (non_reference): Add documentation. 1982 (convert_class_to_reference): Do not strip reference types 1983 from conversion operators. 1984 (maybe_handle_ref_bind): Simplify. 1985 (compare_ics): Correct handling of references. 1986 19872001-11-19 John Wilkinson <johnw@research.att.com> 1988 1989 * dump.c (dump_op): New function. 1990 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use 1991 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs. 1992 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P, 1993 19942001-11-19 Mark Mitchell <mark@codesourcery.com> 1995 1996 PR4629 1997 * semantics.c (finish_sizeof): Make sure that expression created 1998 while processing a template do not have a type. 1999 (finish_alignof): Likewise. 2000 * typeck.c (c_sizeof): Likewise. 2001 (expr_sizeof): Likewise. 2002 20032001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 2004 2005 * lex.c (cxx_finish): Call c_common_finish. 2006 (finish_parse): Remove. 2007 20082001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2009 2010 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE 2011 when displaying error message about missing array bounds. 2012 20132001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2014 2015 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, 2016 CONST_CAST_EXPR. 2017 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. 2018 20192001-11-16 Neil Booth <neil@daikokuya.demon.co.uk> 2020 2021 * cp-tree.h (print_class_statistics): Restore. 2022 20232001-11-15 Jason Merrill <jason@redhat.com> 2024 2025 * method.c (use_thunk): Don't emit debugging information for thunks. 2026 2027 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions. 2028 * decl.c (make_typename_type): Handle getting a class template. 2029 * search.c (lookup_field_r): A class template is good enough for 2030 want_type. 2031 2032 * call.c (convert_like_real): Only use cp_convert for the bad part. 2033 (standard_conversion): Also allow bad int->enum. 2034 * typeck.c (ptr_reasonably_similar): Also allow functions to 2035 interconvert. Pointers to same-size integers are reasonably 2036 similar. 2037 2038 * cvt.c (convert_to_void): If we build a new COND_EXPR, always 2039 give it void type. 2040 20412001-11-15 Nathan Sidwell <nathan@codesourcery.com> 2042 2043 PR g++/3154 2044 * init.c (sort_base_init): Remove unreachable code. 2045 (expand_member_init): Adjust comment to reflect reality. Simplify 2046 and remove unreachable code. 2047 20482001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 2049 2050 * cp-tree.h (init_reswords, cxx_init_decl_processing): New. 2051 (cxx_init): Update prototype. 2052 * decl.c (init_decl_processing): Rename. Move null node init 2053 to its creation time. 2054 * lex.c (cxx_init_options): Update. 2055 (cxx_init): Combine with old init_parse; also call 2056 cxx_init_decl_processing. 2057 20582001-11-14 Richard Sandiford <rsandifo@redhat.com> 2059 2060 * decl.c (check_initializer): Try to complete the type of an 2061 array element before checking whether it's complete. Don't 2062 complain about arrays with complete element types but an 2063 unknown size. 2064 (cp_finish_decl): Build the hierarchical constructor before 2065 calling maybe_deduce_size_from_array_init. 2066 20672001-11-14 Joseph S. Myers <jsm28@cam.ac.uk> 2068 2069 * Make-lang.in: Change all uses of $(manext) to $(man1ext). 2070 20712001-11-13 Nathan Sidwell <nathan@codesourcery.com> 2072 2073 PR g++/4206 2074 * parse.y (already_scoped_stmt): Remove. 2075 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt. 2076 20772001-11-12 H.J. Lu <hjl@gnu.org> 2078 2079 * cvt.c (ocp_convert): Don't warn the address of a weak 2080 function is always `true'. 2081 20822001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 2083 2084 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, 2085 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, 2086 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override. 2087 * cp-tree.h (print_class_statistics): Remove. 2088 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type, 2089 cxx_print_identifier, cxx_set_yydebug): New. 2090 * lex.c (set_yydebug): Rename c_set_yydebug. 2091 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier, 2092 lang_print_xnode): Rename. 2093 * tree.c (print_lang_statistics): Rename. 2094 20952001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2096 2097 * class.c (dump_array): Fix format specifier warning. 2098 20992001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 2100 2101 * cp-lang.c (LANG_HOOKS_NAME): Override. 2102 (struct lang_hooks): Constify. 2103 * lex.c (cxx_init_options): Update. 2104 (lang_identify): Remove. 2105 * parse.y (language_string): Remove. 2106 21072001-11-08 Andreas Franck <afranck@gmx.de> 2108 2109 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME, 2110 DEMANGLER_CROSS_NAME): Handle program_transform_name the way 2111 suggested by autoconf. 2112 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define. 2113 (c++.install-common): Use the transformed target alias names. 2114 21152001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 2116 2117 * Make-lang.in: Update. 2118 * cp-lang.c: Include langhooks-def.h. 2119 21202001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2121 2122 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR. 2123 21242001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2125 2126 * lex.c (copy_lang_type): Add static prototype. 2127 21282001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2129 2130 * pt.c (unify): Handle SCOPE_REF. 2131 21322001-11-01 Jakub Jelinek <jakub@redhat.com> 2133 2134 * tree.c (cp_copy_res_decl_for_inlining): Adjust 2135 DECL_ABSTRACT_ORIGIN for the return variable. 2136 21372001-10-31 Zack Weinberg <zack@codesourcery.com> 2138 2139 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 2140 21412001-10-28 Joseph S. Myers <jsm28@cam.ac.uk> 2142 2143 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c, 2144 semantics.c, spew.c: Fix spelling errors. 2145 21462001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2147 2148 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. 2149 21502001-10-25 Zack Weinberg <zack@codesourcery.com> 2151 2152 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to 2153 pop_everything. 2154 2155Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2156 2157 * cp-lang.c (cxx_get_alias_set): New function. 2158 Point LANG_HOOKS_GET_ALIAS_SET to it. 2159 21602001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2161 2162 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node. 2163 * cp-tree.h (make_unbound_class_template): Prototype new function. 2164 * decl.c (make_unbound_class_template): New function. 2165 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE. 2166 * error.c (dump_type): Likewise. 2167 * mangle.c (write_type): Likewise. 2168 * parse.y (template_parm): Likewise. 2169 (template_argument): Use make_unbound_class_template. 2170 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE. 2171 (tsubst): Likewise. 2172 (tsubst_copy): Likewise. 2173 (unify): Likewise. 2174 * tree.c (walk_tree): Likewise. 2175 * typeck.c (comptypes): Likewise. 2176 21772001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2178 2179 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold 2180 extra calls into fewer ones. 2181 21822001-10-18 Alexandre Oliva <aoliva@redhat.com> 2183 2184 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. 2185 Warn when merging inline with attribute noinline. 2186 (start_decl, start_function): Warn if inline and attribute 2187 noinline appear in the same declaration. 2188 21892001-10-16 H.J. Lu <hjl@gnu.org> 2190 2191 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined 2192 for tree checking disabled. 2193 21942001-10-16 Hans-Peter Nilsson <hp@axis.com> 2195 2196 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL && 2197 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME. 2198 21992001-10-15 Richard Sandiford <rsandifo@redhat.com> 2200 2201 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define. 2202 (unify): Only handle MINUS_EXPR specially if the above flag is set 2203 and the subtracted constant is 1. Clear the flag on recursive calls. 2204 Set it when unifying the maximum value in an INTEGER_TYPE's range. 2205 22062001-10-15 Richard Sandiford <rsandifo@redhat.com> 2207 2208 * decl.c (bad_specifiers): Don't allow exception specifications 2209 on any typedefs. 2210 22112001-10-14 Neil Booth <neil@daikokuya.demon.co.uk> 2212 2213 * cp/lex.c (init_cp_pragma): Similarly. 2214 22152001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2216 2217 * pt.c (lookup_template_class): Build complete template arguments 2218 for BOUND_TEMPLATE_TEMPLATE_PARM. 2219 22202001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2221 2222 * cp-tree.h (TYPE_BINFO): Update comment. 2223 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro. 2224 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info. 2225 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS. 2226 (copy_type): Prototype new function. 2227 * lex.c (copy_lang_decl): Gather tree node statistics. 2228 (copy_lang_type): New function. 2229 (copy_type): Likewise. 2230 (cp_make_lang_type): Create lang_type for 2231 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE 2232 and BOUND_TEMPLATE_TEMPLATE_PARM. 2233 * pt.c (tsubst): Use copy_type instead of copy_node. 2234 * search.c (lookup_field_1): Ignore TYPENAME_TYPE. 2235 22362001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2237 2238 * pt.c (determine_specialization): Ignore functions without 2239 DECL_TEMPLATE_INFO. 2240 22412001-10-12 Nathan Sidwell <nathan@codesourcery.com> 2242 2243 PR g++/4476 2244 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes. 2245 22462001-10-11 Jason Merrill <jason_merrill@redhat.com> 2247 2248 * typeck2.c (store_init_value): Don't re-digest a bracketed 2249 initializer. 2250 2251 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of 2252 ANON_AGGR_TYPE_P. 2253 22542001-10-11 Richard Henderson <rth@redhat.com> 2255 2256 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead 2257 of an asm statement. 2258 (build_vtbl_ref_1): Split out from build_vtbl_ref. 2259 (build_vfn_ref): Use it to handle vtable descriptors before 2260 calling build_vtable_entry_ref. 2261 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. 2262 22632001-10-10 Richard Henderson <rth@redhat.com> 2264 2265 * parse.y (asm_operand): Allow named operands. 2266 * semantics.c (finish_asm_stmt): Tweek for changed location 2267 of the operand constrant. 2268 22692001-10-09 Jason Merrill <jason_merrill@redhat.com> 2270 2271 * call.c (standard_conversion): Add bad conversion between 2272 integers and pointers. 2273 (convert_like_real): Don't use convert_for_initialization for bad 2274 conversions; complain here and use cp_convert. 2275 (build_over_call): Don't handle bad conversions specially. 2276 (perform_implicit_conversion): Allow bad conversions. 2277 (can_convert_arg_bad): New fn. 2278 * cp-tree.h: Declare it. 2279 * typeck.c (convert_for_assignment): Use it. 2280 (ptr_reasonably_similar): Any target type is similar to void. 2281 22822001-10-08 Alexandre Oliva <aoliva@redhat.com> 2283 2284 * Make-lang.in (CXX_OBJS): Added cp-lang.o. 2285 (cp/cp-lang.o): New rule. 2286 * cp-tree.h: Declare hooks. 2287 * tree.c: Make hooks non-static. 2288 (init_tree): Don't initialize hooks here. 2289 * lex.c: Likewise. Move definition of lang_hooks to... 2290 * cp-lang.c: ... new file. 2291 22922001-10-08 Richard Henderson <rth@redhat.com> 2293 2294 * cp-tree.h (struct lang_decl_flags): Remove declared_inline. 2295 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl. 2296 22972001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2298 2299 * class.c (build_vtable_entry_ref): Const-ify. 2300 * decl.c (predefined_identifier, 2301 initialize_predefined_identifiers): Likewise. 2302 * init.c (build_new_1): Likewise. 2303 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): 2304 Likewise. 2305 23062001-10-05 Alexandre Oliva <aoliva@redhat.com> 2307 2308 * optimize.c (struct inline_data): Moved to ../tree-inline.c. 2309 (INSNS_PER_STMT): Likewise. 2310 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. 2311 (copy_body, initialize_inlined_parameters): Likewise. 2312 (declare_return_variable, inlinable_function_p): Likewise. 2313 (expand_call_inline, expand_calls_inline): Likewise. 2314 (optimize_inline_calls, clone_body): Likewise. 2315 * tree.c (walk_tree): Moved to ../tree-inline.c. 2316 (walk_tree_without_duplicates): Likewise. 2317 (copy_tree_r, remap_save_expr): Likewise. 2318 23192001-10-04 Alexandre Oliva <aoliva@redhat.com> 2320 2321 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. 2322 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise. 2323 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl. 2324 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h. 2325 (flag_inline_trees): Moved declaration to ../tree-inline.h. 2326 (walk_tree): Moved declaration to ../tree-inline.h. 2327 (walk_tree_without_duplicates, copy_tree_r): Likewise. 2328 (remap_save_expr): Likewise. 2329 * decl.c: Include tree-inline.h. 2330 (lang_mark_tree): Don't mark inlined_fns. 2331 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c. 2332 * optimize.c: Include tree-inline.h. 2333 (optimize_inline_calls): Move declaration to ../tree.h, as 2334 non-static. 2335 (remap_decl): Use language-independent constructs and hooks. 2336 (remap_block, copy_body_r, declare_return_variable): Likewise. 2337 (inlinable_function_p): Likewise. Don't test for 2338 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is 2339 no longer language-specific. 2340 (optimize_inline_calls): Likewise. Make it non-static. Moved 2341 call of dump_function to... 2342 (optimize_function): Here... 2343 (clone_body): New function, extracted from... 2344 (maybe_clone_body): ... here. Build decl_map locally and pass 2345 it on to clone_body. 2346 * pt.c, semantics.c: Include tree-inline.h. 2347 * tree.c: Likewise. 2348 (cp_walk_subtrees): New language-specific hook for tree inlining. 2349 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls, 2350 cp_is_overload_p, cp_auto_var_in_fn_p, 2351 cp_copy_res_decl_for_inlining): Likewise. 2352 (walk_tree): Move language-specific constructs into... 2353 (cp_walk_subtrees): this new function. 2354 (copy_tree_r): Use language-independent constructs and hooks. 2355 (init_tree): Initialize tree inlining hooks. 2356 (remap_save_expr): Adjust prototype so that the declaration 2357 does not require the definition of splay_tree. 2358 23592001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca> 2360 2361 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used 2362 to build the declaration instead of the declaration itself. 2363 23642001-10-02 Jason Merrill <jason_merrill@redhat.com> 2365 2366 * decl2.c (cxx_decode_option): Add 'else'. 2367 2368 * spew.c (end_input): No longer static. 2369 * cp-tree.h: Declare it. 2370 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. 2371 23722001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 2373 2374 * call.c (build_over_call), typeck.c (build_function_call_real): 2375 Pass type attributes to check_function_format rather than name or 2376 assembler name. Don't require there to be a name or assembler 2377 name to check formats. 2378 23792001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 2380 2381 * decl.c (init_decl_processing): Don't call 2382 init_function_format_info. Initialize lang_attribute_table 2383 earlier. 2384 (builtin_function): Call decl_attributes. 2385 (insert_default_attributes): New. 2386 23872001-10-01 Jason Merrill <jason_merrill@redhat.com> 2388 2389 * decl.c (grokdeclarator): Copy array typedef handling from C 2390 frontend. 2391 2392 * decl.c (grokdeclarator): Copy too-large array handling from C 2393 frontend. 2394 23952001-09-29 Alexandre Oliva <aoliva@redhat.com> 2396 2397 * config-lang.in (target_libs): Added target-gperf, so that we 2398 don't try to build it if C++ is disabled. 2399 24002001-09-23 Zack Weinberg <zack@codesourcery.com> 2401 2402 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o. 2403 (cp/errfn.o): Delete rule. 2404 (cp/error.o): Depend on flags.h. 2405 * errfn.c: Delete file. 2406 * cp-tree.h: Declare warn_deprecated. Remove definitions of 2407 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, 2408 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning, 2409 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and 2410 internal_error respectively. Make cp_deprecated into a macro. 2411 Don't define cp_printer typedef or declare cp_printers. 2412 * error.c: Include flags.h. 2413 Delete: struct tree_formatting_info, print_function_argument_list, 2414 print_declaration, print_expression, print_function_declaration, 2415 print_function_parameter, print_type_id, print_cv_qualifier_seq, 2416 print_type_specifier_seq, print_simple_type_specifier, 2417 print_elaborated_type_specifier, print_rest_of_abstract_declarator, 2418 print_parameter_declaration_clause, print_exception_specification, 2419 print_nested_name_specifier, and definition of cp_printers. 2420 (locate_error): New function. 2421 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and 2422 rewritten in terms of locate_error and diagnostic.c. 2423 (cp_tree_printer): Rename cp_printer; wire up to *_to_string 2424 instead of deleted print_* routines. Handle %C, %L, %O, %Q also. 2425 (init_error): Adjust to match. 2426 2427Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2428 2429 * Make-lang.in (CXX_C_OBJS): Add attribs.o. 2430 24312001-09-21 Richard Henderson <rth@redhat.com> 2432 2433 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. 2434 (build_vtbl_initializer): Likewise. 2435 (build_vfn_ref): New. 2436 * cp-tree.h: Declare it. 2437 * call.c (build_over_call): Use it. 2438 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. 2439 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. 2440 2441Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com> 2442 2443 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. 2444 24452001-09-21 Joseph S. Myers <jsm28@cam.ac.uk> 2446 2447 Table-driven attributes. 2448 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. 2449 * decl2.c (cplus_decl_attributes): Only take one attributes 2450 parameter. 2451 * cp-tree.c (cplus_decl_attributes): Update prototype. 2452 * class.c (finish_struct), decl.c (start_decl, start_function), 2453 decl2.c (grokfield), friend.c (do_friend), parse.y 2454 (parse_bitfield): Update calls to cplus_decl_attributes. 2455 * decl.c (grokdeclarator): Take a pointer to a single ordinary 2456 attribute list. 2457 * decl.h (grokdeclarator): Update prototype. 2458 * decl2.c (grokfield): Take a single ordinary attribute list. 2459 * friend.c (do_friend): Likewise. 2460 * decl.c (shadow_tag, groktypename, start_decl, 2461 start_handler_parms, grokdeclarator, grokparms, start_function, 2462 start_method), decl2.c (grokfield, grokbitfield, grokoptypename), 2463 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c 2464 (process_template_parm, do_decl_instantiation): Pass single 2465 ordinary attribute lists around. 2466 * decl.c (grokdeclarator): Correct handling of nested attributes. 2467 Revert the patch 2468 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 2469 * decl.c (grokdeclarator): Embedded attrs bind to the right, 2470 not the left. 2471 . 2472 * cp-tree.h (cp_valid_lang_attribute): Remove declaration 2473 (cp_attribute_table): Declare. 2474 * decl.c (valid_lang_attribute): Don't define. 2475 (lang_attribute_table): Define. 2476 (init_decl_processing): Initialize lang_attribute_table instead of 2477 valid_lang_attribute. 2478 * tree.c (cp_valid_lang_attribute): Remove. 2479 (handle_java_interface_attribute, handle_com_interface_attribute, 2480 handle_init_priority_attribute): New functions. 2481 (cp_attribute_table): New array. 2482 * decl2.c (import_export_class): Don't use 2483 targetm.valid_type_attribute. 2484 24852001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2486 2487 * Make-lang.in (cp/error.o): Depend on real.h 2488 * error.c: #include "real.h" 2489 24902001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2491 2492 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of 2493 xmalloc/strcpy/strcat. 2494 24952001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2496 2497 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): 2498 Const-ification. 2499 * pt.c (tsubst_decl): Likewise. 2500 25012001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2502 2503 * decl2.c (lang_f_options): Const-ification. 2504 * lex.c (cplus_tree_code_name): Likewise. 2505 * spew.c (yyerror): Likewise. 2506 25072001-09-06 Nathan Sidwell <nathan@codesourcery.com> 2508 2509 PR c++/3986 2510 * class.c (force_canonical_binfo_r): Check & move an indirect 2511 primary base first. 2512 (force_canonical_binfo): Check that it's not already 2513 canonical. 2514 (mark_primary_virtual_base): Remove BINFO parameter. 2515 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here. 2516 25172001-09-06 Nathan Sidwell <nathan@codesourcery.com> 2518 2519 Remove TYPE_NONCOPIED_PARTS. 2520 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto 2521 CLASSTYPE_PURE_VIRTUALS. 2522 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO. 2523 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS. 2524 (layout_class_type): Don't call fixup_inline_methods here ... 2525 (finish_struct_1): ... call it here. 2526 25272001-09-04 Mark Mitchell <mark@codesourcery.com> 2528 2529 * decl.c (duplicate_decls): Remove code deadling with 2530 DECL_SAVED_INSNS. 2531 * decl2.c (finish_file): Likewise. 2532 * pt.c (instantiate_decl): Likewise. 2533 * semantics.c (expand_body): Don't defer local functions if 2534 they wouldn't be deferred for some other reason. Don't 2535 generate RTL for functions that will not be emitted. 2536 (genrtl_start_function): Remove code deadling with 2537 DECL_SAVED_INSNS. 2538 (genrtl_finish_function): Likewise. 2539 25402001-09-04 Nathan Sidwell <nathan@codesourcery.com> 2541 2542 PR c++/4203 2543 * call.c (build_over_call): Do not optimize any empty base 2544 construction. 2545 25462001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2547 2548 * error.c (dump_template_decl): Output template parameters 2549 together with their specifiers. 2550 Output `class' prefix for template template parameter. 2551 (dump_decl): Fix formatting. 2552 25532001-08-30 Kurt Garloff <garloff@suse.de> 2554 2555 * optimize.c (inlinable_function_p): Allow only smaller single 2556 functions. Halve inline limit after reaching recursive limit. 2557 25582001-08-30 Joern Rennecke <amylaar@redhat.com> 2559 Jason Merrill <jason_merrill@redhat.com> 2560 2561 * class.c (build_vtable_entry_ref): Subtract in char*, not 2562 ptrdiff_t. 2563 25642001-08-23 Jason Merrill <jason_merrill@redhat.com> 2565 2566 * tree.c (cp_build_qualified_type_real): Use get_qualified_type. 2567 (build_cplus_array_type): Use cp_build_qualified_type, not 2568 TYPE_MAIN_VARIANT, to get an unqualified version. 2569 2570 * decl2.c (grok_alignof): Lose. 2571 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr. 2572 * typeck.c (c_alignof): Lose. 2573 * semantics.c (finish_sizeof, finish_alignof): New. 2574 * parse.y: Use them. 2575 * cp-tree.h: Declare them. 2576 25772001-08-22 Jason Merrill <jason_merrill@redhat.com> 2578 2579 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement. 2580 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK. 2581 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement. 2582 25832001-08-19 Jakub Jelinek <jakub@redhat.com> 2584 2585 * typeck2.c (add_exception_specifier): Only require complete type if 2586 not in processing template declaration. 2587 25882001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2589 2590 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to 2591 GNU_xref_start_scope and GNU_xref_end_scope. 2592 2593 * tree.c (TYPE_HASH): Moved to ../tree.h. 2594 25952001-08-16 Mark Mitchell <mark@codesourcery.com> 2596 2597 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 2598 on COMPOUND_EXPRs. 2599 26002001-08-14 Richard Henderson <rth@redhat.com> 2601 2602 * class.c, cp-tree.h (build_vfn_ref): Remove. 2603 * call.c, rtti.c: Replace all refernces with build_vtbl_ref. 2604 26052001-08-13 Mark Mitchell <mark@codesourcery.com> 2606 2607 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for 2608 empty class assignment as having side-effects to avoid 2609 spurious warnings. 2610 26112001-08-13 Zack Weinberg <zackw@panix.com> 2612 2613 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. 2614 * except.c: Include libfuncs.h. 2615 26162001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2617 2618 * decl.c (grokdeclarator): Clarify diagnostic message. 2619 26202001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2621 2622 * decl2.c (do_nonmember_using_decl): Replace using directive 2623 with using declaration in the error message. 2624 26252001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2626 2627 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the 2628 criterion to avoid rebuilding expression tree instead of 2629 processing_template_decl. 2630 26312001-08-07 Jason Merrill <jason_merrill@redhat.com> 2632 2633 Support named return value optimization for inlines, too. 2634 * decl.c (finish_function): Nullify returns here. 2635 * semantics.c (genrtl_start_function): Not here. 2636 (cp_expand_stmt): Don't mess with CLEANUP_STMTs. 2637 (nullify_returns_r): No longer static. Just clear RETURN_EXPR. 2638 Also nullify the CLEANUP_STMT for the nrv. 2639 * cp-tree.h: Declare it. 2640 * optimize.c (declare_return_variable): Replace the nrv with the 2641 return variable. 2642 * typeck.c (check_return_expr): Be more flexible on alignment check. 2643 Ignore cv-quals when checking for a matching type. 2644 26452001-08-09 Richard Henderson <rth@redhat.com> 2646 2647 * decl2.c (finish_objects): Use target hooks instead of 2648 assemble_constructor and assemble_destructor. 2649 26502001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 2651 2652 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'. 2653 26542001-08-07 Nathan Sidwell <nathan@codesourcery.com> 2655 2656 PR c++/3820 2657 Stop using TYPE_NONCOPIED_PARTS. 2658 * call.c (build_over_call): Be careful when copy constructing 2659 or assigning to an empty class. 2660 * class.c (check_bases_and_members): It has a 2661 COMPLEX_ASSIGN_REF if it has a vptr. 2662 (layout_class_type): Don't add empty class padding to 2663 TYPE_NONCOPIED_PARTS. 2664 (finish_struct_1): Don't add the VFIELD either. 2665 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_ 2666 initialization. 2667 26682001-08-07 Jason Merrill <jason_merrill@redhat.com> 2669 2670 * tree.c (walk_tree): Walk siblings even if !walk_subtrees. 2671 26722001-08-06 Richard Henderson <rth@redhat.com> 2673 2674 * decl2.c (finish_objects): Pass a symbol_ref and priority to 2675 assemble_{constructor,destructor}. Remove priority handling. 2676 26772001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2678 2679 Don't allow template-id in using-declaration. 2680 * decl2.c (validate_nonmember_using_decl): Handle template-ids. 2681 (do_class_using_decl): Likewise. 2682 26832001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk> 2684 2685 * cp/spew.c (read_token): No need to pop buffers. 2686 26872001-08-02 Stan Shebs <shebs@apple.com> 2688 2689 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used. 2690 (fnaddr_from_vtable_entry): Remove decl. 2691 * method.c (use_thunk): Update comment. 2692 26932001-08-01 Andrew Cagney <ac131313@redhat.com> 2694 2695 * repo.c (get_base_filename): Change return value to const char 2696 pointer. 2697 26982001-08-02 Nathan Sidwell <nathan@codesourcery.com> 2699 2700 Kill -fhonor-std. 2701 * NEWS: Document. 2702 * cp-tree.h (flag_honor_std): Remove. 2703 (CPTI_FAKE_STD): Remove. 2704 (std_node): Remove comment about it being NULL. 2705 (fake_std_node): Remove. 2706 * decl.c (in_fake_std): Remove. 2707 (walk_namespaces_r): Remove fake_std_node check. 2708 (push_namespace): Remove in_fake_std code. 2709 (pop_namespace): Likewise. 2710 (lookup_name_real): Remove fake_std_node check. 2711 (init_decl_processing): Always create std_node. Always add 2712 std:: things there. 2713 (builtin_function): Always put non '_' fns in std. 2714 * decl2.c (flag_honor_std): Remove. 2715 (lang_f_options): Remove honor-std. 2716 (unsupported_options): Add honor-std. 2717 (set_decl_namespace): Remove fake_std_node check. 2718 (validate_nonmember_using_decl): Likewise. 2719 (do_using_directive): Likewise. 2720 (handle_class_head): Likewise. 2721 * dump.c (cp_dump_tree): Likewise. 2722 * except.c (init_exception_processing): Adjust. 2723 * init.c (build_member_call): Remove fake_std_node check. 2724 (build_offset_ref): Likewise. 2725 * lang-options.h: Remove -fhonor-std, -fno-honor-std. 2726 * rtti.c (init_rtti_processing): Adjust. 2727 27282001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 2729 2730 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second 2731 operand while calling cp_tree_equal. 2732 27332001-07-31 Nathan Sidwell <nathan@codesourcery.com> 2734 2735 The 3.0 ABI no longer has vbase pointer fields. 2736 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, 2737 FORMAT_VBASE_NAME): Remove. 2738 * method.c (do_build_copy_constructor): Adjust. 2739 (do_build_assign_ref): Adjust. 2740 * search.c (lookup_field_r): Adjust. 2741 * typeck.c (build_component_ref): Adjust. 2742 2743 The 3.0 ABI always has a vtable pointer at the start of every 2744 polymorphic class. 2745 * rtti.c (build_headof_sub): Remove. 2746 (build_headof): Adjust. 2747 (get_tinfo_decl_dynamic): No need to check flag_rtti 2748 here. Adjust. 2749 (create_real_tinfo_var): Explain why we need a hidden name. 2750 27512001-07-31 Nathan Sidwell <nathan@codesourcery.com> 2752 2753 PR c++/3631 2754 * class.c (update_vtable_entry_for_fn): The fixed adjustment 2755 of a virtual thunk should be from declaring base. 2756 27572001-07-31 Nathan Sidwell <nathan@codesourcery.com> 2758 2759 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into 2760 the shared virtual base, so preserving inheritance graph order. 2761 27622001-07-30 Andreas Jaeger <aj@suse.de> 2763 2764 * decl2.c: Remove unused var global_temp_name_counter. 2765 27662001-07-28 Richard Henderson <rth@redhat.com> 2767 2768 * method.c (pending_inlines): Remove. 2769 27702001-07-27 Nathan Sidwell <nathan@codesourcery.com> 2771 2772 * class.c (mark_primary_virtual_base): Don't adjust base 2773 offsets here. 2774 (dfs_unshared_virtual_bases): Adjust them here. 2775 (mark_primary_bases): Explain why we adjust at the end. 2776 27772001-07-27 Nathan Sidwell <nathan@codesourcery.com> 2778 2779 * class.c (finish_struct_1): When copying the primary base's 2780 VFIELD, make sure we find it is at offset zero. 2781 27822001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2783 2784 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and 2785 tsubst_expr for default template arguments. 2786 27872001-07-26 Nathan Sidwell <nathan@codesourcery.com> 2788 2789 PR c++/3621 2790 * spew.c (yylex): Only copy the token's lineno, if it is 2791 non-zero. 2792 27932001-07-26 Nathan Sidwell <nathan@codesourcery.com> 2794 2795 PR c++/3624 2796 * call.c (resolve_args): Simplify, call 2797 convert_from_reference. 2798 (build_new_op): Resolve and convert from reference ARG1 2799 earlier. Adjust ARG2 & ARG3 resolve and conversion. 2800 28012001-07-26 Nathan Sidwell <nathan@codesourcery.com> 2802 2803 * decl.c (last_function_parm_tags): Remove. 2804 (current_function_parm_tags): Remove. 2805 (init_decl_processing): Adjust. 2806 (start_function): Adjust. 2807 (store_parm_decls): Adjust. 2808 2809 PR c++/3152 2810 * decl.c (grokdeclarator): Detect when a function typedef is 2811 declaring a function, and create last_function_parms correctly. 2812 28132001-07-25 Jason Merrill <jason_merrill@redhat.com> 2814 2815 * call.c (joust): Only prefer a non-builtin candidate to a builtin 2816 one if they have the same signature. 2817 2818 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on 2819 it rather than toplevel_bindings_p. Give it a mangled name if static. 2820 (convert_to_reference): Adjust. 2821 * decl2.c (get_temp_name): Lose. 2822 * mangle.c (mangle_ref_init_variable): New fn. 2823 (mangle_guard_variable): Strip the ref-init header. 2824 * cp-tree.h: Adjust. 2825 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the 2826 initializer. 2827 (grok_reference_init): Always use DECL_INITIAL. 2828 28292001-07-25 Nathan Sidwell <nathan@codesourcery.com> 2830 2831 PR c++/3416 2832 * call.c (build_conditional_expr): Recheck args after 2833 conversions. 2834 * cp-tree.h (build_conditional_expr): Move to correct file. 2835 * typeck.c (decay_conversion): Diagnose any unknown types 2836 reaching here. 2837 (build_binary_op): Don't do initial decay or default 2838 conversions on overloaded functions. 2839 (build_static_cast): Don't do a decay conversion here. 2840 28412001-07-25 Nathan Sidwell <nathan@codesourcery.com> 2842 2843 PR c++/3543 2844 * typeck.c (condition_conversion): Resolve an OFFSET_REF. 2845 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here. 2846 28472001-07-25 Nathan Sidwell <nathan@codesourcery.com> 2848 2849 * class.c (build_vtbl_or_vbase_field): Remove, move into ... 2850 (create_vtbl_ptr): ... here. 2851 28522001-07-25 Nathan Sidwell <nathan@codesourcery.com> 2853 2854 * class.c (build_vbase_offset_vbtl_entries): Look for 2855 non-primary base of which we are a sub vtable. 2856 28572001-07-24 Phil Edwards <pme@sources.redhat.com> 2858 2859 * semantics.c (finish_this_expr): Remove unused code. 2860 28612001-07-24 Nathan Sidwell <nathan@codesourcery.com> 2862 2863 Simplify rtti, now we've only one ABI. 2864 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID, 2865 CPTI_TINFO_VAR_ID. 2866 (tinfo_decl_id, tinfo_var_id): Remove. 2867 (get_typeid_1): Remove. 2868 * rtti.c 2869 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id. 2870 (typeid_ok_p): New function. 2871 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl. 2872 (get_tinfo_decl): Remove old abi documentation. 2873 (tinfo_from_decl): Remove. 2874 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1. 2875 (get_typeid_1): Remove. 2876 (get_base_offset): Remove. 2877 (synthesize_tinfo_var): Absorb get_base_offset. 2878 (create_real_tinfo_var): Don't use tinfo_decl_id. 2879 28802001-07-23 Graham Stott <grahams@redhat.com> 2881 2882 * cp/class.c (type_requires_array_cookie): Fix use of uninitialised 2883 variable has_two_argument_delete_p. 2884 28852001-07-21 Nathan Sidwell <nathan@codesourcery.com> 2886 2887 Remove flag_vtable_thunk. It is always on for the 3.0 ABI. 2888 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. 2889 (CPTI_INDEX_IDENTIFIER): Remove. 2890 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. 2891 (delta2_identifier): Remove. 2892 (index_identifier): Remove. 2893 (pfn_or_delta2_identifier): Remove. 2894 (flag_vtable_thunks): Remove. 2895 (VTABLE_DELTA2_NAME): Remove. 2896 (VTABLE_INDEX_NAME): Remove. 2897 (FNADDR_FROM_VTABLE_ENTRY): Adjust. 2898 (vfunc_ptr_type_node): Adjust. 2899 (VTABLE_NAME_PREFIX): Adjust. 2900 (build_vfn_ref): Lose first parameter. 2901 (fixup_all_virtual_upcast_offsets): Remove. 2902 * decl.c (initialize_predefined_identifiers): Remove 2903 delta2_identifier, index_identifier, pfn_or_delta2_identifier. 2904 (init_decl_processing): Remove no-vtable-thunk code. 2905 * decl2.c (flag_vtable_thunks): Remove. 2906 (mark_vtable_entries): Remove no-vtable-thunk code. 2907 * error.c (dump_decl): Remove no-vtable-thunk code. 2908 (dump_expr): Adjust ptr to member function code. 2909 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk 2910 code. 2911 * rtti.c (build_headof): Remove no-vtable-thunk code. 2912 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. 2913 * search.c (get_base_distance): Remove expand_upcast_fixups case. 2914 (virtual_context) Remove. 2915 (expand_upcast_fixups): Remove. 2916 (fixup_virtual_upcast_offsets): Remove. 2917 (fixup_all_virtual_upcast_offsets): Remove. 2918 * typeck.c (get_member_function_from_ptrfunc): Remove 2919 no-vtable-thunk code. 2920 * call.c (build_over_call): Adjust call to build_vfn_ref. 2921 * class.c (build_vfn_ref): Lose first parameter. Remove 2922 no-vtable-thunk code. 2923 (build_rtti_vtbl_entries): Remove no-vtable-thunk code. 2924 (build_vtable_entry): Remove no-vtable-thunk code. 2925 29262001-07-20 Nathan Sidwell <nathan@codesourcery.com> 2927 2928 Remove old-abi remnants. Remove comments about old abi 2929 behaviour. Remove references to 'new-abi' in comments. 2930 * cp-tree.h: Adjust comments. 2931 (vbase_offsets_in_vtable_p): Delete. 2932 (vcall_offsets_in_vtable_p): Delete. 2933 (vptrs_present_everywhere_p): Delete. 2934 (all_overridden_vfuns_in_vtables_p): Delete. 2935 (merge_primary_and_secondary_vtables_p): Delete. 2936 (TYPE_CONTAINS_VPTR_P): Adjust. 2937 (VTT_NAME_PREFIX): Remove. 2938 (CTOR_VTBL_NAME_PREFIX): Remove. 2939 (init_vbase_pointers): Remove. 2940 * class.c: Adjust coments. 2941 (build_vbase_pointer_fields): Delete. 2942 (build_vbase_pointer): Remove old-abi code. 2943 (build_secondary_vtable): Likewise. 2944 (modify_all_vtables): Likewise. 2945 (create_vtable_ptr): Likewise. 2946 (layout_class_type): Likewise. 2947 (finish_struct_1): Likewise. 2948 (finish_vtbls): Likewise. 2949 (dfs_finish_vtbls): Delete. 2950 (build_vbase_offset_vtbl_entries): Remove old-abi code. 2951 * cvt.c: Adjust comments. 2952 * decl.c: Adjust comments. 2953 * decl2.c: Adjust comments. 2954 * init.c: Adjust comments. 2955 (construct_virtual_bases): Remove old-abi code. 2956 * lang-specs.h: Remove -fno-new-abi. 2957 * mangle.c: Adjust comments. 2958 * rtti.c: Adjust comments. 2959 (get_base_offset): Remove old-abi-code. 2960 * search.c: Adjust comments. 2961 (dfs_init_vbase_pointers): Remove. 2962 (dfs_vtable_path_unmark): Remove. 2963 (init_vbase_pointers): Remove. 2964 * semantics.c: Adjust comments. 2965 (emit_associated_thunks): Remove old-abi code. 2966 * typeck.c: Adjust comments. 2967 29682001-07-20 Daniel Berlin <dan@cgsoftware.com> 2969 2970 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not 2971 params.h. 2972 29732001-07-19 Mark Mitchell <mark@codesourcery.com> 2974 2975 * class.c (finish_struct_anon): Forbid nested classes. 2976 29772001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 2978 2979 * decl2.c: Don't include dwarfout.h and dwarf2out.h. 2980 * optimize.c: Include debug.h. 2981 (maybe_clone_body): Use debug hook. 2982 * semantics.c: Include debug.h. 2983 (expand_body): Use debug hook. 2984 29852001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 2986 2987 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. 2988 29892001-07-18 Mark Mitchell <mark@codesourcery.com> 2990 2991 * class.c (type_requires_array_cookie): New function. 2992 (check_methods): Don't try to figure out whether the type needs a 2993 cookie here. 2994 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here. 2995 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove. 2996 (TYPE_VEC_NEW_USES_COOKIE): Reimplement. 2997 * pt.c (instantiate_class_template): Don't set 2998 TYPE_VEC_DELETE_TAKES_SIZE. 2999 * NEWS: Document ABI changes from GCC 3.0. 3000 30012001-07-18 Xavier Delacour <xavier@fmaudio.net>, 3002 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 3003 3004 * NEWS (Changes in GCC 3.0): Fix typo. 3005 30062001-07-13 Joseph S. Myers <jsm28@cam.ac.uk> 3007 3008 * decl2.c (cplus_decl_attributes): Take a pointer to the node to 3009 which attributes are to be attached, and a flags argument. Update 3010 call to decl_attributes. 3011 (grokfield): Update call to decl_attributes. 3012 * class.c (finish_struct): Update call to cplus_decl_attributes. 3013 * cp-tree.h (cplus_decl_attributes): Update prototype. 3014 * decl.c (start_decl, grokdeclarator, start_function): Update 3015 calls to decl_attributes and cplus_decl_attributes. 3016 * friend.c (do_friend): Update call to cplus_decl_attributes. 3017 * parse.y (parse_bitfield): Update call to cplus_decl_attributes. 3018 30192001-07-12 Mark Mitchell <mark@codesourcery.com> 3020 3021 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER 3022 for `register' variables with an asm-specification. 3023 30242001-07-11 Mark Mitchell <mark@codesourcery.com> 3025 3026 * semantics.c (finish_asm_stmt): Mark the output operands 3027 to an asm addressable, if necessary. 3028 30292001-07-11 Ben Elliston <bje@redhat.com> 3030 3031 * Revert this change -- there is a subtle bug. 3032 3033 PR c++/80 3034 * decl.c (finish_enum): New "attributes" argument; pass it to 3035 cplus_decl_attributes. Use a narrower type if the enum is packed. 3036 * cp-tree.h (finish_enum): Adjust prototype. 3037 * parse.y (enum_head): New non-terminal. 3038 (structsp): Use it. Enums now may be preceded or followed by 3039 optional attributes -- pass their chained tree to finish_enum(). 3040 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument. 3041 30422001-07-10 Mark Mitchell <mark@codesourcery.com> 3043 3044 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope 3045 variables. 3046 30472001-07-10 Jason Merrill <jason_merrill@redhat.com> 3048 3049 * semantics.c (cp_expand_stmt): Fix for null 3050 current_function_return_value. 3051 30522001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> 3053 3054 * call.c (build_op_delete_call): Initialize fn. 3055 (convert_like_real): Delete conditional. 3056 (joust): Initialize *w and *l. 3057 * class.c: Add prototype for binfo_ctor_vtable. 3058 (get_primary_binfo): Initialize result. 3059 * init.c (build_java_class_ref): Initialize name. 3060 30612001-07-09 Erik Rozendaal <dlr@acm.org> 3062 3063 * typeck.c (unary_complex_lvalue): Do not duplicate the 3064 argument to modify, pre-, or post-increment when used as an 3065 lvalue and when the argument has side-effects. 3066 30672001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 3068 3069 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 3070 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call 3071 cplus_decl_attributes even if attrs is NULL. 3072 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 3073 30742001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 3075 3076 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update 3077 calls to decl_attributes. 3078 30792001-07-06 Ira Ruben <ira@apple.com> 3080 3081 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should 3082 be DECL_TEMPLATE_RESULT. 3083 30842001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3085 3086 * cp-tree.h (copy_template_template_parm): Rename to ... 3087 (bind_template_template_parm): ... here. 3088 * tree.c (copy_template_template_parm): Rename to ... 3089 (bind_template_template_parm): ... here. Remove the case when 3090 NEWARGS is NULL_TREE. 3091 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and 3092 BOUND_TEMPLATE_TEMPLATE_PARM. 3093 * pt.c (lookup_template_class): Adjust. 3094 30952001-07-05 Jason Merrill <jason_merrill@redhat.com> 3096 3097 * cvt.c (convert_lvalue): New fn. 3098 * cp-tree.h: Declare it. 3099 * method.c (do_build_assign_ref): Use it. 3100 (do_build_copy_constructor): Convert parm to base types 3101 before calling base constructors. 3102 3103 * typeck.c (check_return_expr): Check DECL_ALIGN instead of 3104 DECL_USER_ALIGN. Check flag_elide_constructors instead of 3105 optimize. 3106 * semantics.c (cp_expand_stmt): Don't destroy the named return value. 3107 31082001-07-02 Nathan Sidwell <nathan@codesourcery.com> 3109 3110 * optimize.c (optimize_inline_calls): New function, broken out 3111 of ... 3112 (optimize_function): ... here. Call it. Don't inline if it is 3113 a thunk. 3114 (dump_function): Print name of dump flag causing this dump. 3115 * semantics.c (expand_body): Move thunk inline check to 3116 optimize_function. 3117 31182001-06-29 Joseph S. Myers <jsm28@cam.ac.uk> 3119 3120 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. 3121 (comptypes): Use target.comp_type_attributes. 3122 31232001-06-29 Nathan Sidwell <nathan@codesourcery.com> 3124 3125 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration. 3126 31272001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 3128 3129 * error.c (lang_print_error_function): Add a `diagnostic_context *' 3130 parameter. Tweak. 3131 31322001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk> 3133 3134 * decl2.c (import_export_class): Update. 3135 31362001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 3137 3138 * error.c (init_error): Adjust settings. 3139 31402001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 3141 3142 * error.c (init_error): Adjust settings. 3143 31442001-06-19 Richard Sandiford <rsandifo@redhat.com> 3145 3146 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to 3147 return pointers to data members by reference rather than by value. 3148 31492001-06-18 Jason Merrill <jason_merrill@redhat.com> 3150 3151 Implement the Named Return Value optimization. 3152 * cp-tree.h (struct cp_language_function): Add x_return_value. 3153 (current_function_return_value): Now a macro. 3154 * decl.c: Don't define it. 3155 (define_label, finish_case_label): Don't clear it. 3156 (init_decl_processing): Don't register it with GC. 3157 * semantics.c (genrtl_finish_function): Don't check it for 3158 no_return_label. Copy the RTL from the return value to 3159 current_function_return_value and walk, calling... 3160 (nullify_returns_r): ...this new fn. 3161 * typeck.c (check_return_expr): Set current_function_return_value. 3162 31632001-06-15 Jason Merrill <jason_merrill@redhat.com> 3164 3165 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're 3166 sharing a ctor vtable with. Merge code for cases 1 and 2. 3167 (binfo_ctor_vtable): New fn. 3168 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it. 3169 31702001-06-14 Jason Merrill <jason_merrill@redhat.com> 3171 3172 * class.c (dfs_find_final_overrider): Fix logic. 3173 3174 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use 3175 virtual thunk instead of non-virtual. 3176 (get_matching_virtual): Uncomment. 3177 3178 * pt.c (unify): Don't recurse between the POINTER_TYPE and the 3179 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on 3180 PARM, not ARG. 3181 31822001-06-14 Nathan Sidwell <nathan@codesourcery.com> 3183 3184 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure 3185 we've not emerged from the hierarchy of RTTI_BINFO on reaching 3186 a non-virtual base. 3187 31882001-06-13 Mark Mitchell <mark@codesourcery.com> 3189 3190 * NEWS: Update release number. 3191 31922001-06-12 Nathan Sidwell <nathan@codesourcery.com> 3193 3194 PR c++/3130, c++/3131, c++/3132 3195 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define. 3196 * class.c (force_canonical_binfo_r): Move 3197 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move 3198 virtual bases unless they're primary and what they're primary 3199 too has been moved. 3200 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope 3201 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and 3202 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most 3203 derived binfo. 3204 (mark_primary_bases): Use BINFO_UNSHARED_MARKED. 3205 (layout_nonempty_base_or_field): Add most derived type 3206 parameter. Adjust. 3207 (layout_empty_base): Likewise. 3208 (build_base_field): Likewise. 3209 (build_base_fields): Likewise. 3210 (propagate_binfo_offsets): Add most derived type 3211 parameter. Skip non canonical virtual bases too. 3212 (dfs_set_offset_for_unshared_vbases): Don't skip primary 3213 bases. Do skip canonical bases. 3214 (layout_virtual_bases): Adjust. 3215 (layout_class_type): Adjust. 3216 (dfs_get_primary_binfo): Build list of virtual primary base 3217 candidates. 3218 (get_primary_binfo): Check that the shared virtual primary 3219 base candidate was found first. 3220 (accumulate_vtbl_inits): Don't do anything for non-vptr 3221 containing binfos. For case 1 primary virtual bases, keep 3222 checking that we've not emerged from the hierarchy of RTTI_BINFO. 3223 32242001-06-12 Nathan Sidwell <nathan@codesourcery.com> 3225 3226 PR c++/3089 3227 * class.c (dfs_accumulate_vtbl_inits): Always walk down the 3228 hierarchy looking for primary bases for a ctor 3229 vtable. Recursively call oneself, if we meet our primary via 3230 this route and haven't met it yet via inheritance graph order. 3231 32322001-06-11 Mark Mitchell <mark@codesourcery.com> 3233 3234 * lang-options.h: Emit documentation for -fno-honor-std, not 3235 -fhonor-std. 3236 32372001-06-10 Alexandre Oliva <aoliva@redhat.com> 3238 3239 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: 3240 Don't clobber delta. 3241 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn. 3242 32432001-06-10 Mark Mitchell <mark@codesourcery.com> 3244 Gabriel Dos Reis <gdr@codesourcery.com> 3245 3246 * Make-lang.in (cp/call.o): Depend on diagnostic.h 3247 (cp/typeck.o): Depend on diagnostic.h 3248 (cp/typeck2.o): Depend on diagnostic.h 3249 (cp/repo.o): Depend on dignostic.h 3250 * typeck.c: #include diagnostic.h 3251 (convert_for_initialization): Remove extern declaration for 3252 warningcount and errorcount. 3253 3254 * call.c: #include diagnostic.h 3255 (convert_like_real): Remove extern declaration for warnincount and 3256 errorcount. 3257 3258 * repo.c: #include diagnostic.h 3259 * typeck2.c: #include diagnostic.h 3260 32612001-06-08 Nathan Sidwell <nathan@codesourcery.com> 3262 3263 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko 3264 in previous change. 3265 32662001-06-08 Nathan Sidwell <nathan@codesourcery.com> 3267 3268 PR c++/2929 3269 * friend.c (do_friend): Use push_decl_namespace for classes at 3270 namespace scope. 3271 32722001-06-08 Nathan Sidwell <nathan@codesourcery.com> 3273 Jason Merrill <jason_merrill@redhat.com> 3274 3275 PR c++/3061 3276 * class.c (build_secondary_vtable): Use assert, rather than an error 3277 message. 3278 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL. 3279 (dfs_accumulate_vtbl_inits): A lost primary virtual base may 3280 be between ORIG_BINFO and RTTI_BINFO, but neither of them. 3281 Don't set BINFO_VTABLE for a primary virtual base. 3282 32832001-06-07 Mark Mitchell <mark@codesourcery.com> 3284 3285 * decl.c (duplicate_decls): Update source position information 3286 when a template function is defined. 3287 32882001-06-07 Phil Edwards <pme@sources.redhat.com> 3289 3290 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h. 3291 32922001-06-07 Nathan Sidwell <nathan@codesourcery.com> 3293 3294 PR c++/2914 3295 * decl.c (pushtag): Don't push into a complete type's scope. 3296 32972001-06-06 Jason Merrill <jason_merrill@redhat.com> 3298 3299 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose. 3300 (struct lang_decl_flags): Lose generate_with_vtable_p. 3301 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose. 3302 * class.c (copy_virtuals): Adjust. 3303 * decl2.c (mark_vtable_entries): Adjust. 3304 * method.c (make_thunk, build_vtable_entry): Adjust. 3305 * class.c (update_vtable_entry_for_fn): Only look as far as the 3306 first defining class. 3307 (build_vtbl_initializer): Put nothing in the slot for a function only 3308 defined in a lost primary virtual base. 3309 (add_vcall_offset_vtbl_entries_1): Use the same code for 3310 the lost primary case and the normal case. 3311 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base. 3312 (get_vfield_offset, get_derived_offset): Lose. 3313 (dfs_find_final_overrider): Use look_for_overrides_here. 3314 (get_matching_virtual): New fn. 3315 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P, 3316 not BV_VCALL_INDEX. 3317 * search.c (look_for_overrides_here): Split out from... 3318 (look_for_overrides_r): Here. 3319 3320 * class.c (find_final_overrider): Return error_mark_node on error. 3321 3322 * decl2.c (key_method): #if 0 accidental change. 3323 33242001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> 3325 3326 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P. 3327 (build_over_call): Likewise. 3328 * decl.c (grokparms): Likewise. 3329 * pt.c (tsubst_decl): Likewise. 3330 * typeck.c (convert_arguments): Likewise. 3331 33322001-06-05 Mark Mitchell <mark@codesourcery.com> 3333 3334 * semantics.c (begin_class_definition): Robustify. 3335 3336 * pt.c (instantiate_decl): Tell the repository code about the 3337 clones, not the cloned functions. 3338 * repo.c (repo_template_used): Explicitly instantiate the cloned 3339 function, not the clones. 3340 33412001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3342 3343 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and 3344 ICS_BAD_FLAG on created conversion. 3345 (compare_ics): Break out rank. 3346 33472001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3348 3349 * decl.c (xref_tag): Remove extraneous %s on dependent name 3350 lookup warning. 3351 33522001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3353 3354 * class.c (layout_vtable_decl): Fix off by one error on 3355 build_index_type. 3356 (build_vtt): Likewise. 3357 (build_ctor_vtbl_group): Likewise. 3358 33592001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3360 3361 * class.c (maybe_indent_hierarchy): New function. 3362 (dump_class_hierarchy_r): Add flags. Dump extra binfo 3363 information, if enabled. Use maybe_indent_hierarchy. Adjust 3364 output format. 3365 (dump_class_hierarchy): Adjust prototype. Adjust output format. 3366 (dump_array, dump_vtable, dump_vtt): New functions. 3367 (finish_struct_1): Adjust hierarchy dumping. 3368 (initialize_vtable): Call dump_vtable. 3369 (build_vtt): Call dump_vtt. 3370 (build_ctor_vtbl_group): Call dump_vtable. 3371 * decl2.c (flag_dump_class_layout): Remove. 3372 (cxx_decode_option): Remove dump translation unit 3373 and dump class hierarchy check. Call dump_switch_p. 3374 (finish_file): Adjust dumping. 3375 (dump.c): Only dump base classes if not TDF_SLIM. 3376 Only dump namespace members if not TDF_SLIM. 3377 * optimize.c (dump_function): New function. 3378 (optimize_function): Call dump_function. 3379 * semantics.c (expand_body): Use dump_enabled_p. 3380 33812001-06-01 Nathan Sidwell <nathan@codesourcery.com> 3382 3383 PR g++/2936 3384 Part missed from first commit 3385 * decl2.c (finish_anon_union): Copy context. 3386 33872001-05-30 Nathan Sidwell <nathan@codesourcery.com> 3388 3389 PR g++/2936 3390 * optimize.c (remap_decl): Remap anonymous aggregate members too. 3391 33922001-05-26 Nathan Sidwell <nathan@codesourcery.com> 3393 3394 PR g++/2823 3395 * semantics.c (expand_body): Don't optimize thunks. 3396 33972001-05-25 Sam TH <sam@uchicago.edu> 3398 3399 * cp-tree.h lex.h: Fix header include guards. 3400 34012001-05-25 Mark Mitchell <mark@codesourcery.com> 3402 3403 * decl.c (init_decl_processing): Tweak. 3404 34052001-05-24 Mark Mitchell <mark@codesourcery.com> 3406 3407 * decl.c (duplicate_decls): Tidy. 3408 (init_decl_processing): Always set flag_no_builtin. 3409 34102001-05-24 Nathan Sidwell <nathan@codesourcery.com> 3411 3412 PR c++/2184 3413 * decl2.c (do_local_using_decl): Push the decls, even in a 3414 template. 3415 34162001-05-22 Mark Mitchell <mark@codesourcery.com> 3417 3418 * optimize.c (initialize_inlined_parameters): Don't set 3419 TREE_READONLY for a VAR_DECL taking the place of an inlined 3420 PARM_DECL. 3421 34222001-05-22 Jason Merrill <jason_merrill@redhat.com> 3423 3424 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support. 3425 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface 3426 attribute. 3427 34282001-05-22 Joseph S. Myers <jsm28@cam.ac.uk> 3429 3430 * parse.y: Refer to compound literals as such, not as 3431 constructor-expressions. 3432 34332001-05-21 Mark Mitchell <mark@codesourcery.com> 3434 3435 * call.c (build_op_delete_call): Ignore exception-specifications 3436 when looking for matching delete operators. 3437 * init.c (build_new_1): Compute whether or not the allocation 3438 function used is a placement allocation function or not, and 3439 communicate this information to build_op_delete_call. 3440 34412001-05-21 Jason Merrill <jason_merrill@redhat.com> 3442 3443 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi. 3444 (build_vtbl_ref): Adjust. 3445 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address. 3446 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks. 3447 Re-add vtable-gc. 3448 (unsupported_options): Correspondingly. 3449 3450 * decl2.c (maybe_make_one_only): Check flag_weak, not 3451 supports_one_only(). 3452 3453 * cp-tree.def (START_CATCH_STMT): Lose. 3454 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS. 3455 * tree.c (cp_statement_code_p): Don't case it. 3456 * semantics.c (cp_expand_stmt): Likewise. 3457 * cp-tree.h (START_CATCH_TYPE): Lose. 3458 (HANDLER_TYPE): New. 3459 * except.c (expand_start_catch_block): Don't start any blocks. 3460 Return the type. 3461 (expand_end_catch_block): Don't end any blocks. 3462 * parse.y (handler): Don't pass anything from finish_handler_parms 3463 to finish_handler. 3464 * pt.c (tsubst_expr): Likewise. 3465 * semantics.c (begin_handler): Call note_level_for_catch here. 3466 (finish_handler_parms): Don't return anything. 3467 (genrtl_catch_block, begin_catch_block): Lose. 3468 (genrtl_handler): Call expand_start_catch here. 3469 34702001-05-18 Jason Merrill <jason_merrill@redhat.com> 3471 3472 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here. 3473 (get_vtable_decl, build_vtt): Not here. 3474 34752001-05-20 Nathan Sidwell <nathan@codesourcery.com> 3476 3477 PR c++/2781 3478 * optimize.c (update_cloned_parm): Copy addressability and other 3479 flags. 3480 34812001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3482 3483 * pt.c (determine_specialization): Ignore artificial functions. 3484 34852001-05-20 Neil Booth <neil@daikokuya.demon.co.uk> 3486 3487 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. 3488 (C_RID_CODE): Remove. 3489 * lex.c (cxx_init_options): Call set_identifier_size. Update. 3490 (init_parse): Don't do it here. 3491 34922001-05-18 Diego Novillo <dnovillo@redhat.com> 3493 3494 * decl2.c (finish_objects): Use the original SYMBOL_REF from the 3495 function declaration to avoid stripping the symbol's attributes. 3496 34972001-05-18 Nathan Sidwell <nathan@codesourcery.com> 3498 3499 * decl.c (pushdecl): Adjust error string. 3500 (xref_tag): Adjust friend class injection warning. Remove the 3501 inherited name from the class shadowed scope. 3502 35032001-05-17 Mark Mitchell <mark@codesourcery.com> 3504 3505 * except.c (cp_protect_cleanup_actions): New function. 3506 (init_exception_processing): Don't set protect_cleanup_actions 3507 here. Do set lang_protect_cleanup_actions. 3508 35092001-05-16 Nathan Sidwell <nathan@codesourcery.com> 3510 3511 * spew.c (read_token): Call yyerror on all unexpected tokens. 3512 35132001-05-16 Nathan Sidwell <nathan@codesourcery.com> 3514 3515 * init.c (member_init_ok_or_else): Take a tree rather than 3516 string for name. 3517 (expand_member_init): Adjust. 3518 35192001-05-14 Nick Clifton <nickc@cambridge.redhat.com> 3520 3521 * decl.c (duplicate_decls): Suppress warning about duplicate 3522 decls if the first decl is a friend. 3523 35242001-05-12 Zack Weinberg <zackw@stanford.edu> 3525 3526 * except.c (choose_personality_routine): Export. Add 3527 explanatory comment. Take an enum languages, not a boolean. 3528 (initialize_handler_parm): Adjust to match. 3529 * cp-tree.h: Prototype choose_personality_routine. 3530 * lex.c (handle_pragma_java_exceptions): New function. 3531 (init_cp_pragma): Register #pragma GCC java_exceptions. 3532 35332001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk> 3534 3535 * method.c (build_mangled_C99_name): Remove unused prototype. 3536 35372001-05-12 Alexandre Oliva <aoliva@redhat.com> 3538 3539 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type. 3540 * typeck.c (get_member_function_from_ptrfunc, 3541 build_ptrmemfunc, expand_ptrmemfunc_cst): Take 3542 TARGET_PTRMEMFUNC_VBIT_LOCATION into account. 3543 3544 Reverted Geoff Keating's 2001-05-03's patch. 3545 35462001-05-11 Ira Ruben <ira@apple.com> 3547 3548 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h. 3549 35502001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 3551 3552 * cp-tree.h (finish_label_expr, lookup_label): Delete. 3553 * parse.y: Update for '&&'; don't issue warning here. 3554 * semantics.c (finish_label_expr): Delete. 3555 35562001-05-07 Mark Mitchell <mark@codesourcery.com> 3557 3558 * splay-tree.h (splay_tree_max): New function. 3559 (splay_tree_min): Likewise. 3560 35612001-05-03 Geoffrey Keating <geoffk@redhat.com> 3562 3563 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER. 3564 (pfn_vflag_identifier): Define. 3565 Update comment about layout of pointer functions. 3566 (build_ptrmemfunc1): Update prototype. 3567 (expand_ptrmemfunc_cst): Update prototype. 3568 * decl.c (initialize_predefined_identifiers): Initialize 3569 pfn_vflag_identifier. 3570 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add 3571 an extra field to the type. 3572 * expr.c (cplus_expand_constant): Pass 'flag' between 3573 expand_ptrmemfunc_cst and build_ptrmemfunc1. 3574 * typeck.c (get_member_function_from_ptrfunc): When 3575 FUNCTION_BOUNDARY < 16, look at additional field to determine 3576 if a pointer-to-member is a real pointer or a vtable offset. 3577 (build_ptrmemfunc1): Add new parameter to contain extra field. 3578 (build_ptrmemfunc): Pass the extra field around. 3579 (expand_ptrmemfunc_cst): Add new parameter to return extra field. 3580 (pfn_from_ptrmemfunc): Ignore the extra field. 3581 35822001-05-03 Mark Mitchell <mark@codesourcery.com> 3583 3584 * cp-tree.h (flag_inline_trees): Update documentation. 3585 * decl.c (init_decl_processing): Adjust handling of 3586 flag_inline_functions and flag_inline_trees to support -O3. 3587 (grokfndecl): Set DECL_INLINE on all functions if that's what 3588 the user requested. 3589 (save_function_data): Clear DECL_INLINE in 3590 current_function_cannot_inline is non-NULL. 3591 * decl2.c (flag_inline_trees): Update documentation. 3592 35932001-05-03 Nathan Sidwell <nathan@codesourcery.com> 3594 3595 * dump.c (cp_dump_tree, USING_STMT case): New case. 3596 * tree.c (cp_statement_code_p): Add USING_STMT. 3597 * decl2.c (do_using_directive): Add the using directive statement. 3598 3599 * tree.c (walk_tree): Reformat an if block. 3600 36012001-05-02 Mark Mitchell <mark@codesourcery.com> 3602 3603 * decl.c (compute_array_index_type): Don't try to do anything with 3604 the indices when processing a template. 3605 36062001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3607 3608 * call.c: NULL_PTR -> NULL. 3609 * class.c: Likewise. 3610 * cvt.c: Likewise. 3611 * decl.c: Likewise. 3612 * decl2.c: Likewise. 3613 * except.c: Likewise. 3614 * init.c: Likewise. 3615 * rtti.c: Likewise. 3616 * search.c: Likewise. 3617 * tree.c: Likewise. 3618 * typeck.c: Likewise. 3619 * typeck2.c: Likewise. 3620 36212001-05-02 Mark Mitchell <mark@codesourcery.com> 3622 3623 * decl2.c (do_using_directive): Revert previous patch. 3624 36252001-05-01 Nathan Sidwell <nathan@codesourcery.com> 3626 3627 * cp-tree.def (USING_STMT): New statement node. 3628 * cp-tree.h (USING_STMT_NAMESPACE): New macro. 3629 * decl2.c (do_using_directive): Add USING_STMT to statement 3630 tree. Don't emit errors when processing template decl. 3631 * pt.c (tsubst_expr, USING_STMT case): New case. 3632 * semantics.c (cp_expand_stmt, USING_STMT case): New case. 3633 36342001-05-01 Nathan Sidwell <nathan@codesourcery.com> 3635 3636 * call.c (build_new_op): Convert args from reference here. 3637 (build_conditional_expr): Don't convert here. 3638 36392001-05-01 Nathan Sidwell <nathan@codesourcery.com> 3640 3641 * spew.c (last_token_id): New static variable. 3642 (read_token): Set it here. 3643 (yyerror): Use it here. 3644 36452001-04-30 Richard Henderson <rth@redhat.com> 3646 3647 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. 3648 * decl.c: Likewise. 3649 36502001-04-30 Mark Mitchell <mark@codesourcery.com> 3651 3652 * gxxint.texi: Remove. 3653 * Make-lang.in: Remove all traces of gxxint.texi. 3654 3655Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com> 3656 3657 * decl2.c (start_static_initialization_or_destruction): Correct 3658 logic to handle the -fno-use-cxa-atexit case. 3659 36602001-04-30 Mark Mitchell <mark@codesourcery.com> 3661 3662 * optimize.c (update_cloned_parm): New function. 3663 (maybe_clone_body): Use it. Update the `this' parameter too. 3664 36652001-04-29 Joseph S. Myers <jsm28@cam.ac.uk> 3666 3667 * decl2.c (unsupported_options): Add new-abi. 3668 * lang-options.h: Remove no longer supported options. 3669 36702001-04-27 Nathan Sidwell <nathan@codesourcery.com> 3671 3672 * except.c (can_convert_eh): Don't check template parms, 3673 typename types etc. 3674 36752001-04-27 Nathan Sidwell <nathan@codesourcery.com> 3676 3677 * optimize.c (maybe_clone_body): Copy parameter names and locations. 3678 36792001-04-27 Nathan Sidwell <nathan@codesourcery.com> 3680 3681 * cp-tree.h (adjust_clone_args): Prototype new function. 3682 * class.c (adjust_clone_args): New function. 3683 * decl.c (start_function): Call it for in charge ctors. 3684 36852001-04-26 Mark Mitchell <mark@codesourcery.com> 3686 3687 * method.c (use_thunk): Make sure that thunks really are emitted 3688 when requested. 3689 36902001-04-26 Nathan Sidwell <nathan@codesourcery.com> 3691 3692 * mangle.c (write_chars): New macro. 3693 (hwint_to_ascii): New function 3694 (write_number): Use it. 3695 (write_integer_cst): Deal with really big numbers. 3696 36972001-04-25 Mark Mitchell <mark@codesourcery.com> 3698 3699 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting 3700 the clone. 3701 37022001-04-25 Nathan Sidwell <nathan@codesourcery.com> 3703 3704 * decl.c (grokdeclarator): Set context of namespace scope 3705 TYPE_DECLS. 3706 37072001-04-24 Zack Weinberg <zackw@stanford.edu> 3708 3709 * cp/optimize.c: Include hashtab.h. 3710 (struct inline_data): Add tree_pruner. 3711 (expand_call_inline, expand_calls_inline): Use it when calling 3712 walk_tree. 3713 (optimize_function): Initialize and free tree_pruner. 3714 37152001-04-24 Nathan Sidwell <nathan@codesourcery.com> 3716 3717 Lazy __FUNCTION__ generation. 3718 * cp-tree.def (FUNCTION_NAME): Remove. 3719 * cp-tree.h (function_name_declared_p): Remove. 3720 (cp_fname_init): Prototype. 3721 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids, 3722 don't call declare_function_name. Call start_fname_decls. 3723 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't 3724 clobber the line number. 3725 (cp_fname_init): New function. 3726 (start_function): Call start_fname_decls. 3727 (finish_function): Call finish_fname_decls. 3728 * lex.c (reswords): Add slots for __FUNCTION__ et al. 3729 (rid_to_yy): Add mappings for __FUNCTION__ et al. 3730 * optimize.c (maybe_clone_body): Remove function_name_declared_p. 3731 * parse.y (VAR_FUNC_NAME): New token. 3732 (primary): Add VAR_FUNC_NAME. 3733 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's 3734 generation. 3735 (tsubst, FUNCTION_NAME case): Remove. 3736 (tsubst_copy, FUNCTION_NAME case): Remove. 3737 (tsubst_expr, DECL_STMT case): Be careful with a 3738 DECL_PRETTY_FUNCTION_P. 3739 (instantiate_decl): Remove function_name_declared_p. 3740 * semantics.c (begin_compound_statement): Don't call 3741 declare_function_name here. 3742 (setup_vtbl_ptr). Don't save & restore function_name_declared_p. 3743 (finish_translation_unit): Call finish_fname_decls. 3744 (expand_body): Remove function_name_declared_p. 3745 * typeck2.c (digest_init): Allow any ERROR_MARK. 3746 37472001-04-24 Nathan Sidwell <nathan@codesourcery.com> 3748 3749 * pt.c (tsubst_decl): Use VOID_TYPE_P. 3750 * semantics.c: Fix some typos. 3751 37522001-04-23 Phil Edwards <pme@sources.redhat.com> 3753 3754 * cp/decl2.c (flag_honor_std): Always initialize to 1. 3755 37562001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3757 3758 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf. 3759 37602001-04-23 Jason Merrill <jason_merrill@redhat.com> 3761 3762 * except.c (build_throw): Wrap the initialization of the exception 3763 object in a MUST_NOT_THROW_EXPR. 3764 (do_free_exception): #if 0. 3765 37662001-04-20 Mark Mitchell <mark@codesourcery.com> 3767 3768 * cp-tree.h (finish_enum): Change prototype. 3769 * decl.c (finish_enum): Reorganize. 3770 * parse.y (structsp): Adjust calls to finish_enum. 3771 37722001-04-20 Nathan Sidwell <nathan@codesourcery.com> 3773 3774 * tree.c (cp_tree_equal): Adjust final switch formatting. Add 3775 't' case. 3776 37772001-04-20 Nathan Sidwell <nathan@codesourcery.com> 3778 3779 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED. 3780 (layout_empty_base): Return at end flag. 3781 (build_base_field): Likewise. 3782 (build_base_fields): Likewise. 3783 (layout_virtual_bases): Don't add 1 to eoc value. 3784 (end_of_class): Use full size for empty bases. 3785 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended 3786 empty bases. Don't add 1 to eoc value. Only add trailing padding 3787 if we're an empty class with no empty bases. 3788 (dump_class_hierarchy): Dump size and alignment. 3789 37902001-04-20 Jakub Jelinek <jakub@redhat.com> 3791 3792 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and 3793 ICS_BAD_FLAG. 3794 37952001-04-20 Jakub Jelinek <jakub@redhat.com> 3796 3797 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL 3798 is found, look first if name does not match the structure name. 3799 38002001-04-19 Mark Mitchell <mark@codesourcery.com> 3801 3802 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is 3803 set. 3804 (SET_DECL_LANGUAGE): New macro. 3805 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE. 3806 (pushdecl): Likewise. 3807 (build_library_fn_1): Likewise. 3808 (build_cp_library_fn): Likewise. 3809 (grokfndecl): Likewise. 3810 (grokvardecl): Mark `extern "C"' variables as having C linkage. 3811 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE. 3812 * lex.c (retrofit_lang_decl): Likewise. 3813 * mangle.c (mangle_decl_string): Don't mangle the names of 3814 variables declared with C language linkage. 3815 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE. 3816 38172001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca> 3818 3819 * semantics.c (simplify_aggr_init_exprs_r): Don't restore 3820 flag_access_control from uninitialized storage. 3821 38222001-04-15 Mark Mitchell <mark@codesourcery.com> 3823 3824 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation. 3825 * mangle.c (write_pointer_to_member_type): Fix mangling of 3826 pointers to cv-qualified member function types. 3827 3828 * init.c (build_delete): Create a SAVE_EXPR for the address if 3829 we're going to use it more than once. 3830 38312001-04-13 Mark Mitchell <mark@codesourcery.com> 3832 3833 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove. 3834 (expand_ptremfunc_cst): Change prototype. 3835 (delta2_from_ptrmemfunc): Remove. 3836 * expr.c (cplus_expand_constant): Adjust call to 3837 expand_ptrmemfunc_cst. 3838 * typeck.c (build_ptrmemfunc1): Simplify. 3839 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still 3840 results in a constant. 3841 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters. 3842 (delta2_from_ptrmemfunc): Remove. 3843 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst. 3844 38452001-04-12 Jason Merrill <jason_merrill@redhat.com> 3846 3847 * cp-tree.h (decl_namespace_list): New macro. 3848 (struct saved_scope): Add decl_ns_list. 3849 * decl.c (mark_saved_scope): Mark it. 3850 * decl2.c: Lose static decl_namespace_list. 3851 (init_decl2): Don't save it. 3852 38532001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3854 3855 * cp-tree.h (warn_return_type, yylex): Delete redundant 3856 declarations. 3857 3858 * decl.c (current_class_depth, global_namespace): Likewise. 3859 3860 * decl2.c (current_class_depth, flag_gnu_xref): Likewise 3861 3862 * repo.c (flag_use_repository): Likewise. 3863 38642001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3865 3866 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block, 3867 set_block, pushdecl, getdecls, gettags, init_decl_processing, 3868 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p, 3869 lvalue_or_else, print_lang_statistics, comp_target_types, 3870 unsigned_type, signed_type, signed_or_unsigned_type, 3871 build_function_call, mark_addressable, incomplete_type_error): 3872 Delete redundant declarations. 3873 38742001-04-11 Jason Merrill <jason_merrill@redhat.com> 3875 3876 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro. 3877 (TYPE_ANONYMOUS_P): New macro. 3878 (TAGGED_TYPE_P): New macro. 3879 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P. 3880 (grokfndecl, grokvardecl, grokdeclarator): Likewise. 3881 * tree.c (no_linkage_helper): Likewise. 3882 * semantics.c (begin_class_definition): Likewise. 3883 * pt.c (convert_template_argument): Likewise. 3884 * lex.c (check_for_missing_semicolon): Likewise. 3885 38862001-04-12 Nathan Sidwell <nathan@codesourcery.com> 3887 3888 * class.c (dfs_unshared_virtual_bases): New function. 3889 (mark_primary_bases): Call it. 3890 (check_bases): Ignore virtual bases when determining 3891 nearly-emptiness. 3892 38932001-04-12 Nathan Sidwell <nathan@codesourcery.com> 3894 3895 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION. 3896 38972001-04-11 Mark Mitchell <mark@codesourcery.com> 3898 3899 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the 3900 cloned function to the clone. 3901 39022001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3903 3904 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H). 3905 3906 * semantics.c: Include expr.h. 3907 39082001-04-11 Nathan Sidwell <nathan@codesourcery.com> 3909 3910 * method.c (implicitly_declare_fn): Commonize code for copy ctor 3911 and assignment op. Set TREE_USED for parameter. 3912 39132001-04-10 Mark Mitchell <mark@codesourcery.com> 3914 3915 * class.c (find_final_overrider_data): Add `candidates'. 3916 (dfs_find_final_overrider): Don't issue error messages 3917 prematurely. 3918 (find_final_overrider): Issue error messages here. 3919 (build_base_field): Don't warn about amgibuous direct bases here. 3920 (warn_about_ambiguous_direct_bases): New function. 3921 (layout_class_type): Use it. 3922 39232001-04-10 Richard Henderson <rth@redhat.com> 3924 3925 * typeck.c (build_array_ref): Push the array reference inside 3926 COMPOUND_EXPR and COND_EXPR. 3927 39282001-04-05 Mark Mitchell <mark@codesourcery.com> 3929 3930 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P. 3931 * decl.c (duplicate_decls): Adjust accordingly. 3932 (maybe_commonize_var): Likewise. 3933 (grokfndecl): Likewise. 3934 (start_function): Likewise. 3935 (start_method): Likewise. 3936 * decl2.c (key_method): Likewise. 3937 (import_export_decl): Likewise. 3938 * method.c (implicitly_declare_fn): Likewise. 3939 * optimize.c (maybe_clone_body): Likewise. 3940 39412001-04-05 Benjamin Kosnik <bkoz@redhat.com> 3942 3943 * lang-specs.h: Add __DEPRECATED. 3944 3945Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com> 3946 3947 * search.c (get_dynamic_cast_base_type): When building a new 3948 constant, set its type to ssizetype. 3949 39502001-04-04 Jakub Jelinek <jakub@redhat.com> 3951 3952 * optimize.c (expand_call_inline): Only add newly inlined statements 3953 into inlined_stmts. 3954 39552001-04-03 Mark Mitchell <mark@codesourcery.com> 3956 3957 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove. 3958 (OPERATOR_FORMAT): Likewise. 3959 (OPERATOR_TYPENAME_FORMAT): Likewise. 3960 * operators.def: Remove old name-mangling information. 3961 * decl.c (grok_op_properties): Adjust accordingly. 3962 * lex.c (init_operators): Likewise. 3963 * rtti.c (get_tinfo_decl): Issue error messages about types that 3964 have variable size. 3965 39662001-04-03 Mark Mitchell <mark@codesourcery.com> 3967 3968 * decl2.c (import_export_decl): Don't call import_export_class 3969 when processing an inline member function. 3970 * semantics.c (expand_body): Call import_export_decl before 3971 emitting inline functions. 3972 39732001-03-28 Richard Henderson <rth@redhat.com> 3974 3975 IA-64 ABI Exception Handling: 3976 * cp-tree.def (EH_SPEC_BLOCK): New. 3977 (MUST_NOT_THROW_EXPR): New. 3978 * cp-tree.h: Update changed function declarations. 3979 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove. 3980 (CPTI_CALL_UNEXPECTED): New. 3981 (struct cp_language_function): Rename x_eh_spec_try_block 3982 to x_eh_spec_block. 3983 (EH_SPEC_STMTS, EH_SPEC_RAISES): New. 3984 * decl.c (current_binding_level): If no current function 3985 bindings, revert to scope_chain. 3986 (initialize_predefined_identifiers): Remove __cp_push_exception. 3987 (store_parm_decls): Use begin_eh_spec_block. 3988 (finish_function): Use finish_eh_spec_block. 3989 (mark_lang_function): Update for name changes. 3990 * decl2.c (finish_file): No mark_all_runtime_matches. 3991 * dump.c (cp_dump_tree): Handle new tree codes. 3992 * error.c (dump_expr) [BIND_EXPR]: Fix typo. 3993 * except.c (catch_language_init, catch_language): Remove. 3994 (init_exception_processing): Don't set language code. 3995 Initialize call_unexpected_node, protect_cleanup_actions, 3996 eh_personality_libfunc, lang_eh_runtime_type. 3997 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove. 3998 (get_eh_type, get_eh_caught, get_eh_handlers): Remove. 3999 (prepare_eh_type): Split out type canonicalizations ... 4000 (build_eh_type_type): ... from here. 4001 (build_eh_type_type_ref): Remove. 4002 (mark_all_runtime_matches): Remove. 4003 (build_exc_ptr): New. 4004 (do_begin_catch, do_end_catch): New. 4005 (do_pop_exception): Remove. 4006 (build_terminate_handler): Remove. 4007 (choose_personality_routine): Split out language choice from ... 4008 (initialize_handler_parm): ... here. 4009 Use MUST_NOT_THROW_EXPR. 4010 (expand_start_catch_block): Use do_begin_catch. Simplify Java 4011 exception object handling. 4012 (expand_start_eh_spec, expand_end_eh_spec): Remove. 4013 (expand_exception_blocks, alloc_eh_object): Remove. 4014 (begin_eh_spec_block, finish_eh_spec_block): New. 4015 (do_allocate_exception, do_free_exception): New. 4016 (expand_throw): Merge into ... 4017 (build_throw): ... here. Update for abi. 4018 * expr.c (cplus_expand_expr): No expand_internal_throw. 4019 Handle MUST_NOT_THROW_EXPR. 4020 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK. 4021 * semantics.c (*) Update for except.h name changes. 4022 (genrtl_try_block): No protect_with_terminate. 4023 (genrtl_eh_spec_block): New. 4024 (genrtl_handler): Don't emit the goto here. 4025 (cp_expand_stmt): Handle EH_SPEC_BLOCK. 4026 (genrtl_finish_function): Don't expand_exception_blocks. 4027 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK. 4028 40292001-03-28 Richard Henderson <rth@redhat.com> 4030 4031 * decl.c (struct named_label_list): Rename eh_region to 4032 in_try_scope, add in_catch_scope. 4033 (struct binding_level): Rename eh_region to is_try_scope, 4034 add is_catch_scope. 4035 (note_level_for_try): Rename from note_level_for_eh. 4036 (note_level_for_catch): New. 4037 (poplevel): Copy both is_try_scope and is_catch_scope to 4038 the named_label_list struct. 4039 (check_previous_goto_1): Don't check for catch block via 4040 DECL_ARTIFICIAL; use in_try_scope instead. 4041 (check_goto): Likewise. 4042 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare. 4043 * except.c (expand_start_catch_block): Call note_level_for_catch. 4044 * semantics.c (begin_compound_stmt): Update for note_level_for_try. 4045 40462001-03-27 Richard Henderson <rth@redhat.com> 4047 4048 * except.c: Use USING_SJLJ_EXCEPTIONS instead of 4049 exceptions_via_longjmp. 4050 40512001-03-27 Phil Edwards <pme@sources.redhat.com> 4052 4053 * pt.c (check_default_tmpl_args): Make error messages clearer. 4054 40552001-03-26 Phil Edwards <pme@sources.redhat.com> 4056 4057 * error.c: Also undefine 'A' macro used for cp_printers definition. 4058 40592001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4060 4061 * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 4062 40632001-03-26 Mike Yang <yang@research.att.com> 4064 Mark Mitchell <mark@codesourcery.com> 4065 4066 * dump.c (dump_access): New function. 4067 (cp_dump_tree): Use it. Dump basetype information for class 4068 types. 4069 40702001-03-26 Mark Mitchell <mark@codesourcery.com> 4071 4072 * Makefile.in (optimize.o): Depend on params.h. 4073 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE. 4074 (init_decl_processing): Set flag_no_inline when doing 4075 inlining-on-trees. 4076 * optimize.c: Include params.h. 4077 (struct inline_data): Improve documentation of FNS. Add 4078 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P. 4079 (INSNS_PER_STMT): New macro. 4080 (remap_block): Use CLONING_P. 4081 (inlinable_function_p): Don't inline big functions. 4082 (expand_call_inline): Keep track of how much inlining we've done. 4083 (optimize_function): Set FIRST_INLINED_FN. 4084 (maybe_clone_body): Set CLONING_P. 4085 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in 4086 tree nodes. 4087 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling 4088 rest_of_compilation. Clear DECL_RTL for local variables 4089 afterwards. 4090 (clear_decl_rtl): New function. 4091 40922001-03-26 Nathan Sidwell <nathan@codesourcery.com> 4093 4094 Implement DR 209 4095 * cp-tree.h (skip_type_access_control, 4096 reset_type_access_control): Prototype. 4097 * decl.c (grokdeclarator): Access of friends is not checked. 4098 * parse.y (component_decl_list): Reset type access control. 4099 * semantics.c (decl_type_access_control): Clear 4100 current_type_lookups. 4101 (save_type_access_control): Don't save if not deferring. 4102 (skip_type_access_control, reset_type_access_control): New 4103 functions. 4104 (begin_class_definition): Do type access control for basetypes. 4105 Start deferred access control. 4106 (finish_class_definition): Resume immediate access control if 4107 this is a local class. 4108 41092001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4110 4111 * class.c (add_method): Use memcpy/memmove, not bcopy. 4112 4113 * decl.c (duplicate_decls): Likewise. 4114 41152001-03-23 Jakub Jelinek <jakub@redhat.com> 4116 4117 * mangle.c (write_discriminator): Use `_0' for discriminator 1, 4118 not `_'. 4119 41202001-03-23 Jakub Jelinek <jakub@redhat.com> 4121 4122 * decl.c (local_names): Define. 4123 (push_local_name): New. 4124 (grok_reference_init): Return init if initializing static reference 4125 variable with non-constant instead of emitting it. 4126 Move expand_static_init call to cp_finish_decl. 4127 (layout_var_decl): Call push_local_name. 4128 (maybe_commonize_var): Allow inlining functions even if they have 4129 static local variables, use comdat_linkage for them if flag_weak. 4130 (check_initializer): Call obscure_complex_init if 4131 grok_reference_init returned non-zero. 4132 (save_function_data): Clear x_local_names. 4133 (pop_cp_function_context): Free x_local_names. 4134 (mark_inlined_fns): Remove. 4135 (mark_lang_function): Mark x_local_names. 4136 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P. 4137 Mark inlined_fns as tree, remove call to mark_inlined_fns. 4138 * class.c (alter_access): Ensure DECL_ACCESS is never set if 4139 DECL_DISCRIMINATOR_P. 4140 * cp-tree.h (cp_language_function): Add x_local_names. 4141 (lang_decl_flags): Add discriminator into u2. 4142 (lang_decl_inlined_fns): Remove. 4143 (lang_decl): inlined_fns is now a TREE_VEC. 4144 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define. 4145 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a 4146 TREE_VEC, not a custom structure. 4147 (optimize_function): Likewise. 4148 * mangle.c (discriminator_for_local_entity): Discriminate among 4149 VAR_DECL local entities. 4150 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS 4151 is not valid. 4152 41532001-03-22 Bryce McKinlay <bryce@albatross.co.nz> 4154 4155 Add support for Java interface method calls. 4156 * cp-tree.h (struct lang_type): Add java_interface flag. 4157 (TYPE_JAVA_INTERFACE): New macro. 4158 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute 4159 by setting TYPE_JAVA_INTERFACE. 4160 * call.c (java_iface_lookup_fn): New static. 4161 (build_over_call): If calling a method declared in a 4162 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the 4163 expression which resolves the function address. 4164 (build_java_interface_fn_ref): New function. 4165 41662001-03-22 Richard Henderson <rth@redhat.com> 4167 4168 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h. 4169 * except.c: Don't include it. 4170 41712001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 4172 based on an idea from Joe Buck <jbuck@synopsys.com> 4173 4174 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore): 4175 New nonterminals. 4176 (data_def, component_decl): Add reductions to bad_decl. 4177 41782001-03-22 Jakub Jelinek <jakub@redhat.com> 4179 4180 * method.c (do_build_assign_ref): Don't use build_modify_expr for 4181 anonymous aggregates, since they don't have assignment operator 4182 method. 4183 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy 4184 assignment operators for anonymous structure fields. 4185 41862001-03-21 Jason Merrill <jason@redhat.com> 4187 4188 * pt.c (instantiate_decl): Abort if we see a member constant 4189 instantiation that doesn't already have its initializer. 4190 Downgrade explicit instantiation without definition to pedwarn. 4191 4192 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove. 4193 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P. 4194 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P. 4195 4196 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove. 4197 (pending_vtables): Remove. 4198 * decl2.c (pending_vtables): Remove. 4199 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not 4200 CLASSTYPE_VTABLE_NEEDS_WRITING. 4201 (import_export_class): Likewise. 4202 (init_decl2): Don't mark pending_vtables. 4203 * lex.c (handle_pragma_vtable): Just sorry. 4204 * pt.c (instantiate_class_template): Don't mess with 4205 CLASSTYPE_VTABLE_NEEDS_WRITING. 4206 (mark_class_instantiated): Likewise. 4207 * ptree.c (print_lang_type): Don't print it. 4208 * semantics.c (begin_class_definition): Don't set it. 4209 4210 * pt.c (template_tail): Replace with last_pending_template. 4211 (maybe_templates, maybe_template_tail): Remove. 4212 (add_pending_template): Adjust. 4213 (instantiate_pending_templates): Adjust. 4214 4215 * cp-tree.h (struct saved_scope): Remove lang_stack field. 4216 (current_lang_stack): Remove. 4217 * decl.c (maybe_push_to_top_level): Don't initialize it. 4218 (duplicate_decls): Use current_lang_depth. 4219 (xref_basetypes): Likewise. 4220 * class.c (current_lang_depth): New fn. 4221 (push_lang_context): Use more varray functionality. 4222 (pop_lang_context): Likewise. 4223 4224 * error.c (GLOBAL_THING): Always use '__'. 4225 42262001-03-21 Mark Mitchell <mark@codesourcery.com> 4227 4228 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME. 4229 4230 * mangle.c (mangle_decl_string): Mangle the names of overloaded 4231 operators, even when they have `extern "C"' linkage. 4232 42332001-03-19 Mark Mitchell <mark@codesourcery.com> 4234 4235 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, 4236 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 4237 where it's not necessary. 4238 (add_method): Remove optimization involving comparison of 4239 DECL_ASSEMBLER_NAME. 4240 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, 4241 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 4242 where it's not necessary. 4243 (check_methods): Likewise. 4244 (build_clone): Likewise. 4245 (built_vtt): Likewise. 4246 * cp-tree.h (DECL_NEEDED_P): Likewise. 4247 * decl.c (pushtag): Likewise. 4248 (duplicate_decls): Likewise. 4249 (pushdecl): Likewise. 4250 (builtin_function): Likewise. 4251 (build_library_fn_1): Set DECL_LANGUAGE for library functions. 4252 (build_cp_library_fn): Likewise. 4253 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, 4254 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 4255 where it's not necessary. 4256 (make_rtl_for_nonlocal_decl): Likewise. 4257 (cp_finish_decl): Likewise. 4258 (grokfndecl): Likewise. 4259 (grokvardecl): Likewise. 4260 (grokdeclarator): Likewise. 4261 (start_function): Likewise. 4262 (cp_missing_return_ok_p): Likewise. 4263 * decl2.c (grokclassfn): Likewise. 4264 (check_classfn): Likewise. 4265 (finish_static_data_member_decl): Likewise. 4266 (grokfield): Likewise. 4267 * error.c (GLOBAL_IORD_P): Remove. 4268 (dump_global_iord): Improve output. 4269 (dump_decl): Avoid using DECL_ASSEMBLER_NAME. 4270 * except.c (nothrow_libfn_p): Summarily reject any function not in 4271 namespace-scope. 4272 * init.c (build_java_class_ref): Don't explicitly set 4273 DECL_ASSEMBLER_NAME after calling mangle_decl. 4274 * mangle.c (mangle_decl_string): Handle extern "C" functions. 4275 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. 4276 * method.c (set_mangled_name_for_decl): Don't explicitly set 4277 DECL_ASSEMBLER_NAME after calling mangle_decl. 4278 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and 4279 IDENTIFIER_GLOBAL_VALUE for the thunk. 4280 * pt.c (set_mangled_name_for_template_decl): Remove. 4281 (check_explicit_specialization): Don't use it. 4282 (looup_template_class): Don't set DECL_ASSEMBLER_NAME. 4283 (tsubst_friend_function): Likewise. 4284 (tsubst_decl): Likewise. 4285 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. 4286 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, 4287 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 4288 where it's not necessary. 4289 (tinfo_base_init): Likewise. 4290 (create_real_tinfo_var): Likewise. 4291 * search.c (looup_field_1): Likewise. 4292 * semantics.c (finish_named_return_value): Likewise. 4293 * tree.c (init_tree): Set lang_set_decl_assembler_name. 4294 42952001-03-15 Gabriel Dos Reis <gdr@codesourcery.com> 4296 4297 Correct semantics restrictions checking in throw-expression. 4298 * except.c (is_admissible_throw_operand): New function. 4299 (build_throw): Use it. 4300 43012001-03-14 Mark Mitchell <mark@codesourcery.com> 4302 4303 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__ 4304 and its ilk. 4305 43062001-03-14 Mark Mitchell <mark@codesourcery.com> 4307 4308 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 4309 * cp-tree.h (DECL_IN_MEMORY_P): Likewise. 4310 * decl.c (duplicate_decls): Likewise. 4311 (builtin_function): Likewise. 4312 (build_library_fn): Likewise. 4313 (build_cp_library_fn): Likewise. 4314 (check_initializer): Likewise. 4315 (cp_finish_decl): Likewise. 4316 * decl2.c (grokfield): Likewise. 4317 (grok_function_init): Remove #if 0'd code. 4318 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 4319 * friend.c (do_friend): Likewise. 4320 * init.c (get_temp_regvar): Likewise. 4321 * method.c (make_thunk): Likewise. 4322 * pt.c (tsubst_friend_function): Likewise. 4323 (tsubst_decl): Likewise. 4324 (regenerate_decl_from_template): Likewise. 4325 * semantics.c (genrtl_named_return_value): Likewise. 4326 (expand_body): Likewise. 4327 (genrtl_finish_function): Likewise. 4328 * tree.c (cp_tree_equal): Likewise. 4329 43302001-03-12 Nathan Sidwell <nathan@codesourcery.com> 4331 4332 * call.c (convert_like_real): Add extra semantics to INNER 4333 parameter. Don't convert to temporary if a user conversion 4334 gives us an lvalue that we're about to bind to a reference. 4335 Set INNER to indicate pending reference binding on recursive 4336 calls. 4337 43382001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 4339 4340 * cp/lex.c: Delete duplicate pending_lang_change. 4341 43422001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 4343 4344 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation): 4345 Similarly. 4346 * cp/repo.c (get_base_filename, open_repo_file): Similarly. 4347 * cp/cp-tree.h: Remove file_name_nondirectory prototype. 4348 43492001-03-09 Zack Weinberg <zackw@stanford.edu> 4350 4351 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate. 4352 43532001-03-08 Stan Shebs <shebs@apple.com> 4354 4355 * cp-tree.h (set_identifier_local_value): Remove unused decl. 4356 43572001-03-06 Zack Weinberg <zackw@stanford.edu> 4358 4359 * spew.c: Remove references to CPP_OSTRING. 4360 43612001-03-06 Andrew Haley <aph@redhat.com> 4362 4363 * typeck.c (convert_arguments): Check that we have an fndecl. 4364 43652001-03-05 Andrew Haley <aph@redhat.com> 4366 4367 * typeck.c (convert_arguments): Don't do ellipsis conversion for 4368 __built_in_constant_p. 4369 43702001-03-02 Nathan Sidwell <nathan@codesourcery.com> 4371 4372 * typeck.c (build_static_cast): Allow enum to enum conversions 4373 as per DR 128. 4374 43752001-03-02 Nathan Sidwell <nathan@codesourcery.com> 4376 4377 * class.c (check_field_decls): Pointers to member do not a 4378 non-pod struct make, as per DR 148. 4379 43802001-03-02 Nathan Sidwell <nathan@codesourcery.com> 4381 4382 * call.c (joust): cp_pedwarn when using gnu extension concerning 4383 worst conversion sequences. 4384 43852001-03-01 Zack Weinberg <zackw@stanford.edu> 4386 4387 * decl.c: Replace all uses of 'boolean' with 'bool'. 4388 43892001-03-01 Zack Weinberg <zackw@stanford.edu> 4390 4391 * lang-specs.h: Add zero initializer for cpp_spec field to 4392 all array elements that need one. Don't put an #ifdef inside 4393 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and 4394 use it. 4395 43962001-03-01 Nathan Sidwell <nathan@codesourcery.com> 4397 4398 Implement using decls inside template functions. 4399 * decl2.c (validate_nonmember_using_decl): Don't special case 4400 fake_std_node in the global namespace. Don't reject early when 4401 processing a template. 4402 (do_local_using_decl): Add to statement tree. Don't do further 4403 processing when building a template. 4404 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs. 4405 44062001-03-01 Nathan Sidwell <nathan@codesourcery.com> 4407 4408 * decl2.c (do_nonmember_using_decl): Don't complain if we find 4409 same function. Do complain about ambiguating extern "C" 4410 declarations. 4411 44122001-02-28 Nathan Sidwell <nathan@codesourcery.com> 4413 4414 Remove floating point and complex type template constant parms. 4415 * pt.c (convert_nontype_argument): Remove REAL_TYPE and 4416 COMPLEX_TYPE extensions. 4417 (invalid_nontype_parm_type_p): Likewise. 4418 44192001-02-27 Jeffrey Oldham <oldham@codesourcery.com> 4420 4421 * except.c (call_eh_info): Revert "match_function"'s type. 4422 44232001-02-27 Nathan Sidwell <nathan@codesourcery.com> 4424 4425 Fix ctor vtable vcall offsets. 4426 * class.c (struct vtbl_init_data_s): Add rtti_binfo member. 4427 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter. 4428 (get_matching_base): Remove. 4429 (get_original_base): New function. 4430 (build_vtbl_initializer): Initialize vid.rtti_binfo. 4431 Use a virtual thunk for a ctor vtable with an index 4432 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a 4433 primary base within a constructor vtable. Only set 4434 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset 4435 when primary base has been lost. 4436 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment. 4437 44382001-02-26 Jeffrey Oldham <oldham@codesourcery.com> 4439 4440 * call.c (joust): Ensure more_specialized()'s argument length 4441 parameter has correct value for constructors. 4442 44432001-02-26 Nathan Sidwell <nathan@codesourcery.com> 4444 4445 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. 4446 4447 * decl.c (mark_inlined_fns): Prototype. 4448 44492001-02-22 Mark Mitchell <mark@codesourcery.com> 4450 4451 * spew.c (yylex): Correct handling of friends. 4452 44532001-02-22 Mark Mitchell <mark@codesourcery.com> 4454 4455 * mangle.c (write_encoding): Pass write_function_type the 4456 FUNCTION_DECL for the function being encoded. 4457 (write_function_type): Pass it along to write_bare_function_type. 4458 (write_bare_function_type): Pass it along to write_method_parms. 4459 (write_method_parms): Don't mangle the compiler-generated 4460 parameters to a constructor or destructor. 4461 44622001-02-22 Andreas Jaeger <aj@suse.de> 4463 4464 * optimize.c: Include toplev.h for 4465 note_deferral_of_defined_inline_function prototype. 4466 44672001-02-22 Jakub Jelinek <jakub@redhat.com> 4468 4469 * cp-tree.h (struct lang_decl_inlined_fns): New. 4470 (struct lang_decls): Add inlined_fns. 4471 (DECL_INLINED_FNS): New macro. 4472 * optimize.c (struct inline_data): Add inlined_fns. 4473 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro. 4474 (inlinable_function_p): Likewise, fix typo in comment, 4475 function is not inlinable if it already inlined function currently 4476 being optimized. 4477 (expand_call_inline): Add fn to inlined_fns if necessary. 4478 (optimize_function): Initialize inlined_fns. 4479 Save inlined_fns into DECL_INLINED_FNS after expanding inlines. 4480 * decl.c (mark_inlined_fns): New function. 4481 (lang_mark_tree): Call it. 4482 44832001-02-21 Jason Merrill <jason@redhat.com> 4484 4485 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag. 4486 (DECL_UNINLINABLE): Move to middle-end. 4487 4488 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn. 4489 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT. 4490 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone. 4491 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the 4492 parms and outer BLOCK. note_deferral_of_defined_inline_function. 4493 4494 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on 4495 second parm of op=. 4496 44972001-02-19 Mark Mitchell <mark@codesourcery.com> 4498 4499 * decl2.c (set_decl_namespace): Allow explicit instantiations in 4500 any namespace. 4501 45022001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4503 4504 * optimize.c (expand_call_inline): Don't walk subtrees of type 4505 nodes. 4506 45072001-02-18 Mark Mitchell <mark@codesourcery.com> 4508 4509 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry 4510 for a destructor. 4511 45122001-02-18 Jason Merrill <jason@redhat.com> 4513 4514 Do put the VTT parameter in DECL_ARGUMENTS. 4515 * cp-tree.h (struct cp_language_function): Add x_vtt_parm. 4516 (current_vtt_parm): New macro. 4517 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. 4518 (DECL_HAS_VTT_PARM_P): New macro. 4519 (DECL_VTT_PARM): Remove. 4520 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. 4521 * decl.c (duplicate_decls): Only copy the operator code if 4522 appropriate. 4523 (start_function): Set current_vtt_parm. 4524 (lang_mark_tree): Don't mark vtt_parm. 4525 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to 4526 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. 4527 * class.c (build_clone): Maybe remove the VTT parm. 4528 * optimize.c (maybe_clone_body): Set up the VTT parm. 4529 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. 4530 * call.c (build_over_call): Just allow the VTT arg. 4531 * method.c (make_thunk): Don't set DECL_VTT_PARM. 4532 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. 4533 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. 4534 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. 4535 * error.c (dump_function_decl): Likewise. 4536 * call.c (build_user_type_conversion_1, convert_like_real): Abort 4537 if we try to call a constructor with in-charge or VTT parms. 4538 * method.c (skip_artificial_parms_for): New fn. 4539 * call.c (add_function_candidate, build_over_call): Call it. 4540 * call.c (build_new_method_call): Use current_vtt_parm. 4541 * init.c (expand_virtual_init): Likewise. 4542 * class.c (same_signature_p): No longer static. 4543 * cp-tree.h: Declare it. 4544 * search.c (look_for_overrides_r): Use it. 4545 45462001-02-17 Mark Mitchell <mark@codesourcery.com> 4547 4548 * cp-tree.h (new_abi_rtti_p): Remove. 4549 (name_mangling_version): Likewise. 4550 (flag_do_squangling): Likewise. 4551 * class.c (build_rtti_vtbl_entries): Remove old ABI support. 4552 * decl.c (grokfndecl): Likewise. 4553 * decl2.c (name_mangling_version): Remove. 4554 (flag_do_squangling): Likewise. 4555 (lang_f_options): Remove `squangle'. 4556 (unsupported_options): Add `squangle'. 4557 (cxx_decode_option): Issue a warning about uses of 4558 -fname-mangling-version. 4559 (finish_file): Remove old ABI support. 4560 * pt.c (check_explicit_specialization): Likewise. 4561 (tsubst_decl): Likewise. 4562 * rtti.c (init_rtti_processing): Likewise. 4563 (build_headof): Likewise. 4564 (get_tinfo_decl_dynamic): Likewise. 4565 (tinfo_from_decl): Likewise. 4566 (build_dynamic_cast_1): Likewise. 4567 (synthesize_tinfo_var): Likewise. 4568 * init.c (build_new): Allow enumeration types for the array-bounds 4569 in a direct-new-declarator. 4570 4571 * semantics.c (finish_typeof): Resolve OFFSET_REFs. 4572 4573 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and 4574 TREE_PROTECTED from the template being specialized. 4575 45762001-02-17 Jason Merrill <jason@redhat.com> 4577 4578 * decl2.c (build_artificial_parm): Set TREE_READONLY. 4579 4580 * decl.c (bad_specifiers): Allow throw specs on things with 4581 pointer-to-function or -member-function type. 4582 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize 4583 a pmf. 4584 45852001-02-17 Mark Mitchell <mark@codesourcery.com> 4586 4587 * call.c (check_dtor_name): Handle template names correctly. 4588 45892001-02-16 Jason Merrill <jason@redhat.com> 4590 4591 * cp-tree.h (DECL_USE_VTT_PARM): Remove. 4592 * decl2.c (maybe_retrofit_in_chrg): Don't create it. 4593 * optimize.c (maybe_clone_body): Don't substitute it. 4594 * call.c (build_new_method_call): Check in_chrg instead. 4595 * init.c (expand_virtual_init): Likewise. 4596 45972001-02-16 Gabriel Dos Reis <gdr@codesourcery.com> 4598 4599 * decl.c (check_tag_decl): Make sure a typedef for an anonymous 4600 class-type introduces at least a type-name. 4601 46022001-02-16 Jakub Jelinek <jakub@redhat.com> 4603 4604 * call.c (convert_like_real): Create a temporary for non-lvalue. 4605 46062001-02-16 Jeffrey Oldham <oldham@codesourcery.com> 4607 4608 * cp-tree.h: Fix typos in comments. 4609 46102001-02-16 Jason Merrill <jason@redhat.com> 4611 4612 * optimize.c (remap_block): If we're compiling a clone, pass the 4613 new block to insert_block. 4614 46152001-02-16 Mark Mitchell <mark@codesourcery.com> 4616 4617 * semantics.c (finish_asm_stmt): Robustify. 4618 46192001-02-15 Mark Mitchell <mark@codesourcery.com> 4620 4621 * pt.c (push_template_decl_real): Don't remangle the name of a 4622 class template. 4623 46242001-02-15 Jim Meyering <meyering@lucent.com> 4625 4626 * Make-lang.in (c++.install-common): Depend on installdirs. 4627 (c++.install-info): Likewise. 4628 (c++.install-man): Likewise. 4629 46302001-02-15 Mark Mitchell <mark@codesourcery.com> 4631 4632 * typeck2.c (build_m_component_ref): Robustify. 4633 46342001-02-15 Alexandre Oliva <aoliva@redhat.com> 4635 4636 * friend.c (do_friend): Don't take the nested [template] class 4637 into account when deciding whether to warn about the friend 4638 function not referring to a template function. 4639 46402001-02-14 Jakub Jelinek <jakub@redhat.com> 4641 4642 * typeck.c (build_unary_op): Clarify error message. 4643 46442001-02-08 Aldy Hernandez <aldyh@redhat.com> 4645 4646 * parse.y (component_constructor_declarator): allow optional 4647 parentheses around constructor class name. 4648 46492001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4650 4651 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c 4652 section. 4653 * init.c (emit_base_init): Remove incorrect comment about 4654 virtual bases. 4655 * method.c (make_thunk): Fix comment alignment. 4656 46572001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4658 4659 Kill remnants of this is variable. 4660 * cp-tree.h (flag_this_is_variable): Remove. 4661 * decl2.c (flag_this_is_variable): Remove. 4662 * class.c (fixed_type_or_null): Add cdtor parm. Adjust. 4663 (build_vbase_path): The path is non-static, even in a cdtor. 4664 (resolves_to_fixed_type_p): Add additional return value. 4665 * search.c (init_vbase_pointers): Adjust. 4666 * tree.c (lvalue_p_1): Adjust. 4667 * typeck.c (mark_addressable): Adjust. 4668 46692001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4670 4671 * pt.c (unify): Don't check cv quals of array types. 4672 46732001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4674 4675 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to 4676 check whether we already have the type. 4677 46782001-02-13 Mark Mitchell <mark@codesourcery.com> 4679 4680 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment. 4681 * call.c (build_op_delete_call): Simplify to remove duplicate 4682 code. 4683 * class.c (clone_function_decl): Don't build the deleting variant 4684 of a non-virtual destructor. 4685 * decl.c (finish_destructor_body): Don't call delete if this is a 4686 non-virtual destructor. 4687 * init.c (build_delete): Explicitly call `operator delete' when 4688 deleting an object with a non-virtual destructor. 4689 46902001-02-13 Jason Merrill <jason@redhat.com> 4691 4692 * lang-specs.h: Add more __EXCEPTIONS. 4693 46942001-02-12 Nathan Sidwell <nathan@codesourcery.com> 4695 4696 * typeck2.c (process_init_constructor): Check 4697 TREE_HAS_CONSTRUCTOR before issuing missing init warning. 4698 46992001-02-12 Nathan Sidwell <nathan@codesourcery.com> 4700 4701 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case): 4702 Remove spurious information in comment. Allow further 4703 adjustments of REFERENCE_TYPE args. 4704 47052001-02-12 Nathan Sidwell <nathan@codesourcery.com> 4706 4707 * errfn.c (cp_deprecated): Tweak diagnostic text. 4708 * parse.y (new_initializer): Deprecate initializer lists 4709 extension. 4710 47112001-02-12 Mark Mitchell <mark@codesourcery.com> 4712 4713 Remove old ABI support. 4714 47152001-02-11 Mark Mitchell <mark@codesourcery.com> 4716 4717 * decl2.c (flag_vtable_thunks): Always set it to 1. 4718 (flag_new_abi): Likewise. 4719 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI. 4720 4721 * Makefile.in (g++spec.o): Fix typo. 4722 47232001-02-09 Jason Merrill <jason@redhat.com> 4724 4725 * lang-specs.h: Restore definition of __EXCEPTIONS. 4726 47272001-02-08 Jason Merrill <jason@redhat.com> 4728 4729 * search.c (shared_member_p): New function. 4730 (lookup_field_r): Use it. 4731 * cp-tree.h (SHARED_MEMBER_P): Remove. 4732 4733 * method.c (process_overload_item): Handle template-dependent array 4734 bounds. 4735 * pt.c (type_unification_real): If we end up with undeduced nontype 4736 parms, try again. 4737 4738 * decl.c (lookup_name_real): Tweak warning to refer to decls, not 4739 types. 4740 4741 * typeck2.c (friendly_abort): Don't say anything if we have 4742 earlier errors or sorries. 4743 4744 * decl.c (check_tag_decl): Notice attempts to redefine bool and 4745 wchar_t. Ignore if in_system_header. 4746 4747 * decl.c (maybe_push_cleanup_level): New fn... 4748 (start_decl_1): ...split out from here. 4749 * cvt.c (build_up_reference): Use it. 4750 * cp-tree.h: Declare it. 4751 47522001-02-07 Mark Mitchell <mark@codesourcery.com> 4753 4754 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor 4755 spec. 4756 47572001-02-06 Nathan Sidwell <nathan@codesourcery.com> 4758 4759 * pt.c (lookup_template_class): Make sure it's a primary 4760 template or template_template_parm when called from the parser. 4761 (instantiate_template_class): Add assertion. 4762 47632001-02-05 Alexandre Oliva <aoliva@redhat.com> 4764 4765 * method.c (build_mangled_name) [old abi]: Protect flush_repeats() 4766 from error_mark_node. 4767 47682001-02-05 Nathan Sidwell <nathan@codesourcery.com> 4769 4770 Fix specification and implementation bugs in V3 ABI 4771 construction vtables. 4772 * cp-tree.h (flag_dump_class_layout): New flag. 4773 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove. 4774 (BINFO_LOST_PRIMARY_P): New flag. 4775 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts. 4776 (BINFO_PRIMARY_MARKED_P): Rename to ... 4777 (BINFO_PRIMARY_P): ... here. 4778 (binfo_via_virtual): New prototype. 4779 * decl2.c (flag_dump_class_layout): New flag. 4780 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to 4781 use `=' as a file name separator. 4782 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary 4783 bases. 4784 (build_vtbl_address): If this is a virtual primary base, then 4785 get the vtbl of what it is ultimately primary for. 4786 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust 4787 for BINFO_PRIMARY_P. 4788 (dfs_skip_nonprimary_vbases_markedp): Likewise. 4789 (get_shared_vbase_if_not_primary): Likewise. 4790 (dfs_get_pure_virtuals): Likewise. 4791 (expand_upcast_fixups): Likewise. 4792 (fixup_virtual_upcast_offsets): Likewise. 4793 (dfs_find_vbase_instance): Likewise. 4794 (find_vbase_instance): Likewise. 4795 (binfo_from_vbase): Adjust comment to reflect reality. 4796 (binfo_via_virtual): New function. 4797 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros 4798 for binfo walking during VTT construction. 4799 (dfs_mark_primary_bases): Remove. 4800 (force_canonical_binfo_r): New function. 4801 (force_canonical_binfo): New function. 4802 (mark_primary_virtual_base): New function. 4803 (mark_primary_bases): Walk in inheritance graph order, use 4804 mark_primary_virtual_base. 4805 (determine_primary_base): Use some more intermediate variables. 4806 (dfs_find_final_overrider): Don't check for overriding along a 4807 virtual path. 4808 (dfs_modify_vtables): Walk into primary virtual bases too. 4809 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P. 4810 (build_base_fields): Likewise. 4811 (dfs_set_offset_for_unshared_vbases): Likewise. 4812 (layout_virtual_bases): Likewise. 4813 (end_of_class): Likewise. 4814 (finish_struct_1): Call dump_class_hierarchy, if requested. 4815 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos. 4816 (dump_class_hierarchy_r): Add stream parameter. Emit more information. 4817 (dump_class_hierarchy): Add file parameter. Append to file, if 4818 required. 4819 (finish_vtbls): Adjust accumulate_vtbl_inits call. 4820 Use canonical base for virtual bases. 4821 (build_vtt): Add more comments. Adjust build_vtt_inits call. 4822 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm. 4823 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P, 4824 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for 4825 virtual VTTs. 4826 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P 4827 from DATA. We want virtual primary bases and all bases via virtual. 4828 Only set BINFO_VPTR_INDEX for top level. Look up from a primary 4829 virtual base when not a construction vtable. 4830 (dfs_ctor_vtable_bases_queue_p): New DFS predicate. 4831 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call. 4832 Use canonical bases when processing virtual bases. 4833 (accumulate_vtbl_inits): We're interested in any base via a 4834 virtual path. 4835 (dfs_accumulate_vtbl_inits): If this is a primary virtual base 4836 within a construction vtable, determine what is being overridden. 4837 (build_vtbl_initializer): Add more comments 4838 (add_vcall_offset_vtbl_entries_1): Adjust comment. 4839 (build_rtti_vtbl_entries): Check if the base has lost its 4840 primary. 4841 48422001-02-05 Mark Mitchell <mark@codesourcery.com> 4843 4844 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. 4845 4846Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 4847 4848 * decl.c (pushdecl): Call abort instead of fatal. 4849 * except.c (decl_is_java_type): Call fatal_error instead of fatal. 4850 * init.c (build_new_1): Likewise. 4851 (build_java_class_ref): Call internal_error and fatal_error, not fatal. 4852 * decl.c (build_typename_type): hash_table_init now returns void. 4853 decl.c (init_decl_processing): Make an error non-fatal. 4854 48552001-02-04 Mark Mitchell <mark@codesourcery.com> 4856 4857 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting. 4858 Document. 4859 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 4860 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 4861 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 4862 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 4863 * decl.c (maybe_commonize_var): Use the new name-mangling where 4864 appropriate. 4865 * decl2.c (comdat_linkage): Enhance comments. Make all 4866 compiler-generated things static, if COMDAT is not available. 4867 (get_tinfo_decl): Do not make typeinfo objects that belong in the 4868 library COMDAT. 4869 (tinfo_base_init): Use the correct mangled name for typeinfo 4870 strings, and push them into the global scope. 4871 (typeinfo_in_lib_p): New function. 4872 (synthesize_tinfo_var): Use it. 4873 (create_real_tinfo_var): Likewise. 4874 48752001-02-03 Jakub Jelinek <jakub@redhat.com> 4876 4877 * decl.c (push_class_binding): Use context_for_name_lookup instead 4878 of CP_DECL_CONTEXT. 4879 * search.c (context_for_name_lookup): Remove static. Check for NULL 4880 context in the loop. 4881 * cp-tree.h (context_for_name_lookup): Add prototype. 4882 48832001-02-02 Jakub Jelinek <jakub@redhat.com> 4884 4885 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove. 4886 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack): 4887 Remove. 4888 * call.c (convert_class_to_reference, build_user_type_conversion_1, 4889 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper. 4890 48912001-02-02 Mark Mitchell <mark@codesourcery.com> 4892 4893 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list 4894 of macros used when compiling g++spec.c. 4895 * g++spec.c (lang_specific_driver): Link with the shared 4896 libgcc by default. 4897 48982001-01-29 Joseph S. Myers <jsm28@cam.ac.uk> 4899 4900 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator, 4901 make_reference_declarator, make_call_declarator), method.c 4902 (implicitly_declare_fn), parse.y (namespace_using_decl, 4903 notype_unqualified_id, expr_or_declarator, new_type_id, 4904 after_type_declarator, direct_after_type_declarator, 4905 notype_declarator, complex_notype_declarator, 4906 complex_direct_notype_declarator, qualified_id, 4907 notype_qualified_id, overqualified_id, direct_new_declarator, 4908 absdcl, direct_abstract_declarator, conversion_declarator), pt.c 4909 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt 4910 instead of build_parse_node. 4911 49122001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4913 4914 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE. 4915 (minus_one_node): Moved to top level gcc directory. Renamed 4916 to integer_minus_one_node. 4917 4918 * init.c (init_init_processing): Don't set minus_one_node. 4919 (build_vec_init): Use integer_minus_one_node. 4920 4921 * rtti.c (get_tinfo_decl_dynamic): Likewise. 4922 49232001-01-28 Jakub Jelinek <jakub@redhat.com> 4924 4925 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments 4926 identical and they would be replaced with constant, remove 4927 MODIFY_EXPR from the tree. 4928 49292001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4930 4931 * Make-lang.in: Remove all dependencies on defaults.h. 4932 * call.c: Don't include defaults.h. 4933 * decl.c: Likewise. 4934 * decl2.c: Likewise. 4935 * except.c: Likewise. 4936 * pt.c: Likewise. 4937 * rtti.c: Likewise. 4938 * tree.c: Likewise. 4939 * typeck.c: Likewise. 4940 49412001-01-25 Jakub Jelinek <jakub@redhat.com> 4942 4943 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded 4944 operators even in "C" linkage. 4945 * method.c (set_mangled_name_for_decl): Likewise. 4946 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for 4947 overloaded operators in "C" linkage. 4948 49492001-01-24 Nathan Sidwell <nathan@codesourcery.com> 4950 4951 * pt.c (tsubst_decl): Remove IN_DECL parameter. 4952 (tsubst_arg_types): Check parameter is not void. 4953 (tsubst): Adjust tsubst_decl call. 4954 49552001-01-24 Nathan Sidwell <nathan@codesourcery.com> 4956 4957 * call.c (add_builtin_candidate): Quote std properly, from 4958 previous change. 4959 49602001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4961 4962 * pt.c (check_explicit_specialization): Clone constructors and 4963 destructors. 4964 49652001-01-23 Nathan Sidwell <nathan@codesourcery.com> 4966 4967 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC 4968 indicates anything special about template depth. Make sure we 4969 only count the user visible template classes. 4970 49712001-01-23 Nathan Sidwell <nathan@codesourcery.com> 4972 4973 * call.c (build_conv): Typo in comment. 4974 (add_builtin_candidate): Add more explanation. 4975 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR. 4976 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates 4977 when we have enumeral types. 4978 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE 4979 candidates for relops and eqops. 4980 (joust): Simplify control flow. Allow a non-template user 4981 function to hide a builtin. 4982 49832001-01-22 Nathan Sidwell <nathan@codesourcery.com> 4984 4985 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER. 4986 (more_specialized): Add deduction parameter. 4987 * call.c (joust): Adjust more_specialized call. 4988 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL, 4989 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags. 4990 (get_bindings_order): Remove. 4991 (get_bindings_real): Add DEDUCE parameter. 4992 (maybe_adjust_types_for_deduction): Return extra unify flags. Do 4993 REFERENCE_TYPE jig for DEDUCE_ORDER. 4994 (type_unification_real): Deal with DEDUCE_ORDER. Use result of 4995 maybe_adjust_types_for_deduction. 4996 (more_specialized): Add DEDUCE parameter. Call get_bindings_real 4997 directly. 4998 (try_one_overload): Use result of maybe_adjust_types_for_deduction. 4999 (check_cv_quals_for_unify): Use new unify qualifier flags. 5000 (unify): Clear new unify qualifier flags. 5001 (get_bindings_real): Add DEDUCE parameter. 5002 (get_bindings): Adjust call to get_bindings_real. 5003 (get_bindings_overload): Likewise. 5004 (most_specialized_instantiation): Adjust call to 5005 more_specialized. 5006 50072001-01-19 Jason Merrill <jason@redhat.com> 5008 5009 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI. 5010 5011 * decl.c (init_decl_processing): Just force -fvtable-thunks on if 5012 -fnew-abi. 5013 50142001-01-19 Ute Pelkmann <scope.muc@t-online.de> 5015 5016 * decl2.c (arg_assoc_class): Fix double iteration logic. 5017 50182001-01-19 Jason Merrill <jason@redhat.com> 5019 5020 * init.c (build_delete): Always call convert_force to strip cv-quals. 5021 5022 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI. 5023 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI. 5024 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI. 5025 50262001-01-19 Nathan Sidwell <nathan@codesourcery.com> 5027 5028 * search.c (get_vbase_1): Count only virtual bases. 5029 50302001-01-19 Nathan Sidwell <nathan@codesourcery.com> 5031 5032 * class.c (duplicate_tag_error): Robustify flag clearing. 5033 50342001-01-19 Nathan Sidwell <nathan@codesourcery.com> 5035 5036 * cp-tree.h (lookup_template_class): Add complain parm. 5037 * decl.c (lookup_namespace_name): Adjust call to 5038 lookup_template_class. 5039 (make_typename_type): Likewise. 5040 * semantics.c (finish_template_type): Likewise. 5041 * pt.c (lookup_template_class): Add complain parm. Adjust. 5042 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class. 5043 (tsubst): Likewise. 5044 50452001-01-19 Nathan Sidwell <nathan@codesourcery.com> 5046 5047 * pt.c (copy_default_args_to_explicit_spec): Preserve 5048 object's CV quals. Reorganize. 5049 50502001-01-18 Nathan Sidwell <nathan@codesourcery.com> 5051 5052 * typeck.c (build_modify_expr): Say `initialization' for 5053 INIT_EXPRs. 5054 * init.c (build_default_init): Convert to enumeral type, if 5055 needed. 5056 50572001-01-18 Jakub Jelinek <jakub@redhat.com> 5058 5059 * parse.y (nomods_initdcl0): Properly set things up for 5060 initdcl0_innards. 5061 50622001-01-18 Nathan Sidwell <nathan@codesourcery.com> 5063 5064 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag. 5065 (type_unification_real): Set it. 5066 (unify): Use it. 5067 50682001-01-18 Nathan Sidwell <nathan@codesourcery.com> 5069 5070 * decl.c (finish_destructor_body): Convert to vbase pointer here. 5071 50722001-01-18 Nathan Sidwell <nathan@codesourcery.com> 5073 5074 * semantics.c (begin_class_definition): Check we're not inside a 5075 template parm list. 5076 50772001-01-18 Nathan Sidwell <nathan@codesourcery.com> 5078 5079 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of 5080 BASELINK_P. 5081 50822001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5083 5084 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. 5085 * call.c (build_over_call): Add comment. 5086 50872001-01-16 Daniel Berlin <dberlin@redhat.com> 5088 5089 * cvt.c (ocp_convert): Handle vector type conversion 5090 * typeck2.c (digest_init): Handle vector type initializations 5091 50922001-01-16 Phil Edwards <pme@sources.redhat.com> 5093 5094 * g++spec.c: Don't add libraries needlessly if -fsyntax-only 5095 was given. 5096 50972001-01-15 Nathan Sidwell <nathan@codesourcery.com> 5098 5099 * pt.c (check_nontype_parm): Rename to ... 5100 (invalid_nontype_parm_type_p): ... here. 5101 (process_template_parm): Adjust. 5102 (convert_template_argument): Adjust. 5103 51042001-01-15 Nathan Sidwell <nathan@codesourcery.com> 5105 5106 * pt.c (check_nontype_parm): New function. 5107 (process_template_parm): Use it. 5108 (convert_template_argument): Use it. 5109 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to 5110 member. 5111 51122001-01-14 Jeffrey Oldham <oldham@codesourcery.com> 5113 5114 * tree.c: Add defaults.h 5115 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. 5116 * Make-lang.in (cp/tree.o): Add defaults.h. 5117 51182001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 5119 5120 * Make-lang.in (CXX_C_OBJS): Add c-format.o. 5121 51222001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 5123 5124 * g++.1: Change to be ".so man1/gcc.1". 5125 51262001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 5127 5128 * Make-lang.in (c++.info, c++.install-info): Build and install g++ 5129 internals info. 5130 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info. 5131 ($(srcdir)/cp/g++int.info): New target. 5132 * gxxint.texi: Add info directory entry. Use @@ in email address. 5133 * .cvsignore: Update. 5134 51352001-01-12 Nathan Sidwell <nathan@codesourcery.com> 5136 5137 * typeck.c (build_c_cast): Do template processing earlier. 5138 Always pedwarn on array casts. 5139 51402001-01-12 Nathan Sidwell <nathan@codesourcery.com> 5141 5142 * friend.c (make_friend_class): Make sure a templated class is 5143 actually a template. 5144 51452001-01-11 Nathan Sidwell <nathan@codesourcery.com> 5146 5147 * decl2.c (get_guard): Set linkage from guarded decl. 5148 51492001-01-11 Nathan Sidwell <nathan@codesourcery.com> 5150 5151 * call.c (convert_default_arg): Check for unprocessed 5152 DEFAULT_ARG. 5153 * cp-tree.h (replace_defarg): Move to spew.c. 5154 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to 5155 spew.c, which is where they really are. 5156 (done_pending_defargs): Declare. 5157 (unprocessed_defarg_fn): Declare. 5158 * decl.c (replace_defarg): Move to spew.c 5159 * parse.y (structsp): Call done_pending_defargs. 5160 * spew.c (defarg_fns): Rearrange list structure. 5161 (defarg_fnsdone): New static variable. 5162 (defarg_depfns): New static variable. 5163 (init_spew): Adjust. 5164 (add_defarg_fn): Store the type in TREE_TYPE. 5165 (do_pending_defargs): Detect and deal with ordering constraints 5166 and circularity. 5167 (done_pending_defargs): New function. 5168 (unprocessed_defarg_fn): New function. 5169 (replace_defarg): Moved from decl.c. Robustify. Don't save 5170 if circularity detected. 5171 51722001-01-11 Nathan Sidwell <nathan@codesourcery.com> 5173 5174 * pt.c (unify): Check array has a domain, before checking 5175 whether it is variable sized. 5176 51772001-01-11 Nathan Sidwell <nathan@codesourcery.com> 5178 5179 * decl.c (grokparms): Unobfuscate and get correct diagnostic for 5180 parameters with pointers to arrays of unknown bound. 5181 51822001-01-11 Nathan Sidwell <nathan@codesourcery.com> 5183 5184 * parse.y (template_parm_header, template_spec_header): New 5185 reductions. Split out from ... 5186 (template_header): ... here. Use them. 5187 (template_template_parm): Use template_parm_header. 5188 * semantics.c (finish_template_template_parm): Add assert. 5189 51902001-01-10 Mark Mitchell <mark@codesourcery.com> 5191 5192 * mangle.c (write_builtin_type): Fix thinko. 5193 5194 * pt.c (copy_default_args_to_explicit_spec_1): New function. 5195 (copy_default_args_to_explicit_spec): Likewise. 5196 (check_explicit_specialization): Use it. 5197 5198 * class.c (finish_struct_1): Remove last argument in call to 5199 make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 5200 * decl.c (builtin_function): Likewise. 5201 (build_cp_library_fn): Likewise. 5202 (check_initializer): Likewise. 5203 (make_rtl_for_nonlocal_decl): Likewise. 5204 (cp_finish_decl): Likewise. 5205 (start_function): Likewise. 5206 * decl2.c (finish_anon_union): Likewise. 5207 * friend.c (do_friend): Likewise. 5208 * init.c (build_java_class_ref): Likewise. 5209 * method.c (make_thunk): Likewise. 5210 * pt.c (tsubst_friend_function): Likewise. 5211 * semantics.c (expand_body): Likewise. 5212 52132001-01-10 Mark Mitchell <mark@codesourcery.com> 5214 5215 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not 5216 looking at DECL_CLONED_FUNCTION for non-functions. 5217 52182001-01-10 Nathan Sidwell <nathan@codesourcery.com> 5219 5220 * error.c (dump_template_parameter): Use parm to determine how 5221 to print default value. 5222 52232001-01-10 Nathan Sidwell <nathan@codesourcery.com> 5224 5225 * class.c (duplicate_tag_error): Clear more flags. 5226 52272001-01-10 Nathan Sidwell <nathan@codesourcery.com> 5228 5229 * call.c (build_new_method_call): Use binfo_for_vbase. 5230 52312001-01-10 Joseph S. Myers <jsm28@cam.ac.uk> 5232 5233 * cp-tree.h (flag_cond_mismatch): Don't declare. 5234 * decl2.c (flag_cond_mismatch): Don't define. 5235 (lang_f_options): Remove cond-mismatch. 5236 (unsupported_options): Add cond-mismatch. 5237 52382001-01-09 Nathan Sidwell <nathan@codesourcery.com> 5239 5240 * class.c (handle_using_decl): Reject using of constructor name 5241 of sourcing class. Allow injecting of a method with same name as 5242 nested class. Fixup error messages. 5243 52442001-01-09 Joseph S. Myers <jsm28@cam.ac.uk> 5245 5246 * decl2.c (lang_decode_option): Handle -Wformat=2. 5247 52482001-01-08 Nathan Sidwell <nathan@codesourcery.com> 5249 5250 * cp-tree.h (lang_decl_flags): Rename defined_in_class to 5251 initialized_in_class. 5252 (DECL_DEFINED_IN_CLASS_P): Rename to ... 5253 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning. 5254 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P. 5255 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P. 5256 * pt.c (check_default_tmpl_args): Adjust for 5257 DECL_INITIALIZED_IN_CLASS_P. 5258 (instantiate_class_template): Likewise. 5259 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P. 5260 5261 * class.c (finish_struct): Constify saved_filename. 5262 52632001-01-08 Nathan Sidwell <nathan@codesourcery.com> 5264 5265 * class.c (duplicate_tag_error): Adjust diagnostic. 5266 (finish_struct): Locally set location to start of struct. 5267 * decl.c (fixup_anonymous_aggr): Use cp_error_at. 5268 52692001-01-08 Nathan Sidwell <nathan@codesourcery.com> 5270 5271 * decl.c (struct binding_level): Adjust class_shadowed comments 5272 to reflect reality. 5273 (push_class_level_binding): Adjust comments to reflect reality. 5274 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. 5275 Don't set TREE_VALUE on the class_shadowed list. 5276 52772001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 5278 5279 * decl2.c (acceptable_java_type): Allow references too. 5280 * init.c (build_java_class_ref): When using the new ABI, search 5281 `class$' and have it mangled with `mangle_decl.' 5282 * mangle.c (write_java_integer_type_codes): New function. 5283 (write_builtin_type): Detect and mangle Java integer and real 5284 types. 5285 52862001-01-07 Mark Mitchell <mark@codesourcery.com> 5287 5288 * decl2.c (grokfield): Don't accept `asm' specifiers for 5289 non-static data members. 5290 52912001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5292 5293 * expr.c (cplus_expand_expr): Don't reset `target'. 5294 52952001-01-07 Neil Booth <neil@daikokuya.demon.co.uk> 5296 5297 * cp/decl2.c (cxx_post_options): Call cpp_post_options. 5298 52992001-01-05 Nathan Sidwell <nathan@codesourcery.com> 5300 5301 * parse.y (template_datadef): Check for error_mark_node. 5302 53032001-01-05 Nathan Sidwell <nathan@codesourcery.com> 5304 5305 * cp-tree.def (DEFAULT_ARG): Make `x' class. 5306 53072001-01-04 Joseph S. Myers <jsm28@cam.ac.uk> 5308 5309 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define. 5310 (record_builtin_type): Make non-static. 5311 (flag_short_double): Don't declare. 5312 (init_decl_processing): Remove the creation of many tree nodes now 5313 in c_common_nodes_and_builtins. 5314 (build_void_list_node): New function. 5315 * decl2.c (flag_short_double, flag_short_wchar): Don't define. 5316 * cp-tree.h (flag_short_wchar): Don't declare. 5317 53182001-01-04 Mark Mitchell <mark@codesourcery.com> 5319 5320 * call.c (build_conv): Don't use build1 for USER_CONV. 5321 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. 5322 53232001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 5324 5325 * lex.c (lang_init): Call c_common_lang_init. 5326 53272001-01-03 Nathan Sidwell <nathan@codesourcery.com> 5328 5329 * search.c (lookup_fnfields_here): Remove. 5330 (look_for_overrides_r): Use lookup_fnfields_1. 5331 Ignore functions from using declarations. 5332 53332001-01-03 Nathan Sidwell <nathan@codesourcery.com> 5334 5335 Implement exceptions specifiers for implicit member functions. 5336 * cp-tree.h (merge_exceptions_specifiers): Declare new function. 5337 * method.c (synthesize_exception_spec): New function. 5338 (locate_dtor, locate_ctor, locate_copy): New functions. 5339 (implicitly_declare_fn): Generate the exception spec too. 5340 * search.c (check_final_overrider): Check artificial functions 5341 too. 5342 * typeck2.c (merge_exception_specifiers): New function. 5343 53442001-01-03 Jason Merrill <jason@redhat.com> 5345 5346 * init.c (build_default_init): New fn. 5347 (perform_member_init): Split out from here. 5348 (build_new_1): Use it. Simplify initialization logic. 5349 (build_vec_init): Take an array, rather than a pointer and maxindex. 5350 Speed up simple initializations. Don't clean up if we're assigning. 5351 * cp-tree.h: Adjust. 5352 * decl2.c (do_static_initialization): Remove TREE_VEC case. 5353 * parse.y (new_initializer): Return void_zero_node for (). 5354 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR. 5355 * typeck2.c (digest_init): Only complain about user-written 5356 CONSTRUCTORs. 5357 53582000-12-22 Mike Stump <mrs@wrs.com> 5359 5360 * decl2.c: (max_tinst_depth): Increase to 50. 5361 53622001-01-02 Mark Mitchell <mark@codesourcery.com> 5363 5364 * class.c (invalidate_class_lookup_cache): Zero the 5365 previous_class_values. 5366 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not 5367 TREE_INT_CST_HIGH. 5368 (CLASSTYPE_TEMPLATE_LEVEL): Likewise. 5369 * decl.c (free_bindings): New variable. 5370 (push_binding): Don't create a new binding if we have one on the 5371 free list. 5372 (pop_binding): Put old bindings on the free list. 5373 (init_decl_processing): Use size_int, not build_int_2. 5374 Register free_bindings as a GC root. 5375 (cp_make_fname_decl): Use size_int, not build_int_2. 5376 (push_inline_template_parms_recursive): Likewise. 5377 (end_template_parm_list): Likewise. 5378 (for_each_tempalte_parm): Do not use walk_tree_without_duplicates. 5379 (tsubst_template_parms): Use size_int, not build_int_2. 5380 (tsubst): Likewise. 5381 * rtti.c (get_vmi_pseudo_type_info): Likewise. 5382 53832001-01-02 Richard Henderson <rth@redhat.com> 5384 5385 * parse.y (asm): Set ASM_INPUT_P. 5386 53872001-01-02 Jason Merrill <jason@redhat.com> 5388 5389 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE 5390 for v3 ABI. 5391 5392 * typeck.c (cp_truthvalue_conversion): New fn. 5393 * cvt.c (ocp_convert): Use it. 5394 5395 * cp-tree.h: Lose c-common.c decls. 5396 5397 * typeck.c (build_unary_op): Restore old &a.f diagnostic code. 5398 * cvt.c (convert_to_void): Use type_unknown_p. 5399 5400 * typeck.c (strip_all_pointer_quals): Also strip quals from 5401 pointer-to-member types. 5402 5403 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat 5404 parse.y as C. 5405 5406 * call.c (build_new_method_call): Do evaluate the object parameter 5407 when accessing a static member. 5408 * typeck.c (build_component_ref): Likewise. 5409 54102001-01-02 Andreas Jaeger <aj@suse.de> 5411 5412 * decl.c (cp_missing_noreturn_ok_p): New. 5413 (init_decl_processing): Set lang_missing_noreturn_ok_p. 5414 54152000-12-29 Jakub Jelinek <jakub@redhat.com> 5416 5417 * decl.c (init_decl_processing): Fix sign of wchar_type_node. 5418 54192000-12-29 Mark Mitchell <mark@codesourcery.com> 5420 5421 * class.c (pushclass): Remove #if 0'd code. 5422 * cp-tree.h (overload_template_name): Remove. 5423 * decl.c (store_bindings): Simplify. 5424 (pop_from_top_level): Likewise. 5425 * pt.c (overload_template_name): Remove. 5426 (instantiate_decl): Don't call push_to_top_level if it's not 5427 needed. 5428 54292000-12-28 Mark Mitchell <mark@codesourcery.com> 5430 5431 * pt.c (register_local_specialization): Don't return a value. 5432 (lookup_template_class): Use move-to-front heuristic when looking 5433 up template instantiations. 5434 (instantiate_decl): Only push_to_top_level when we're actually 5435 going to instantiate the template. 5436 54372000-12-29 Hans-Peter Nilsson <hp@bitrange.com> 5438 5439 * search.c (binfo_for_vtable): Return least derived class, not 5440 most. Handle secondary vtables. 5441 54422000-12-22 Jason Merrill <jason@redhat.com> 5443 5444 * pt.c (more_specialized): Don't optimize len==0. 5445 (fn_type_unification): If we're adding the return type, increase len. 5446 5447 * typeck.c (build_binary_op): Fix pmf comparison logic. 5448 5449 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not 5450 DECL_STATIC_FUNCTION_P. 5451 5452 * semantics.c (genrtl_finish_function): Don't try to jump to 5453 return_label unless it exists. 5454 5455 In partial ordering for a call, ignore parms for which we don't have 5456 a real argument. 5457 * call.c (joust): Pass len to more_specialized. 5458 (add_template_candidate_real): Strip 'this', pass len. 5459 * pt.c (more_specialized): Pass len down. Lose explicit_args parm. 5460 (get_bindings_order): New fn. Pass len down. 5461 (get_bindings_real): Strip 'this', pass len. 5462 (fn_type_unification): Likewise. 5463 (type_unification_real): Succeed after checking 'len' args. 5464 (most_specialized_instantiation): Lose explicit_args parm. 5465 * class.c (resolve_address_of_overloaded_function): Strip 'this', 5466 pass len. 5467 54682000-12-21 Jason Merrill <jason@redhat.com> 5469 5470 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not 5471 DECL_TEMPLATE_RESULT. 5472 5473 * search.c (lookup_field_r): Call lookup_fnfields_1, not 5474 lookup_fnfields_here. 5475 5476 * parse.y (typename_sub2): Return the TYPE_DECL, not the type. 5477 5478 * call.c (build_object_call): Also allow conversions that return 5479 reference to pointer to function. 5480 (add_conv_candidate): Handle totype being ref to ptr to fn. 5481 (build_field_call): Also allow members of type reference to function. 5482 Lose support for calling pointer to METHOD_TYPE fields. 5483 5484 * error.c (dump_expr): Handle *_CAST_EXPR. 5485 5486 * typeck2.c (build_scoped_ref): Always convert to the naming class. 5487 5488 * tree.c (break_out_cleanups): Lose. 5489 * cp-tree.h: Remove prototype. 5490 * typeck.c (build_component_ref): Don't break_out_cleanups. 5491 (build_compound_expr): Likewise. 5492 * semantics.c (finish_expr_stmt): Likewise. 5493 54942000-12-20 Richard Henderson <rth@redhat.com> 5495 5496 * cp-tree.h: Update declarations. 5497 * decl.c (finish_case_label): Return the new stmt node. 5498 * semantics.c (finish_goto_stmt): Likewise. 5499 (finish_expr_stmt, finish_return_stmt): Likewise. 5500 (finish_break_stmt, finish_continue_stmt): Likewise. 5501 (finish_asm_stmt): Likewise. 5502 * parse.y (already_scoped_stmt): Set STMT_LINENO. 5503 (compstmt, implicitly_scoped_stmt, stmt): Likewise. 5504 (simple_if, simple_stmt): Return the new stmt node. 5505 (save_lineno): New. 5506 55072000-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 5508 5509 * cp-tree.h: Don't declare warn_long_long. 5510 55112000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5512 5513 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of 5514 IS_AGGR_TYPE. 5515 55162000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5517 5518 * pt.c (unify): Handle when both ARG and PARM are 5519 BOUND_TEMPLATE_TEMPLATE_PARM. 5520 55212000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5522 5523 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and 5524 DECL_TEMPLATE_PARM_P. 5525 55262000-12-15 Jason Merrill <jason@redhat.com> 5527 5528 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs! 5529 5530 * init.c (build_new_1): Don't strip quals from type. 5531 5532 * decl.c (pushdecl): Don't check for linkage on a non-decl. 5533 5534 * call.c (build_op_delete_call): See through ARRAY_TYPEs. 5535 5536 * call.c (build_new_function_call): Lose space before paren in 5537 error message. 5538 (build_new_method_call): Likewise. 5539 5540 * typeck2.c (build_m_component_ref): Propagate quals from datum. 5541 55422000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5543 5544 * pt.c (check_explicit_specialization): Propagate default 5545 function arguments to explicit specializations. 5546 55472000-12-13 DJ Delorie <dj@redhat.com> 5548 5549 * typeck.c (build_binary_op): Do signed/unsigned warnings for >? 5550 and <? operators. 5551 55522000-12-08 Jason Merrill <jason@redhat.com> 5553 5554 * error.c (dump_function_name): Don't let the user see __comp_ctor. 5555 5556 Clean up copy-initialization in overloading code. 5557 * call.c (build_user_type_conversion_1): Die if we are asked to 5558 convert to the same or a base type. 5559 (implicit_conversion): Avoid doing so. Lose reference binding code. 5560 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit 5561 direct-initialization. Also do direct-init part of copy-init. 5562 (build_user_type_conversion): Don't provide context to convert_like. 5563 * cvt.c (ocp_convert): build_user_type_conversion will now provide 5564 the constructor call for copy-init. 5565 5566 * pt.c (tsubst_decl): Call clone_function_decl here if this is an 5567 instantiation of a member template. 5568 (do_decl_instantiation): Not here. 5569 55702000-12-07 Nathan Sidwell <nathan@codesourcery.com> 5571 5572 * class.c (check_field_decls): Don't special case anonymous 5573 fields in error messages. 5574 (note_name_declared_in_class): Use %D on diagnostic. 5575 5576 * tree.c (pod_type_p): Use strip_array_types. 5577 (cp_valid_lang_attribute): Likewise. 5578 * typeck.c (cp_type_quals): Strip arrays separately, to avoid 5579 multiple evaluations. 5580 (cp_has_mutable_p): Use strip_array_types. 5581 55822000-12-07 Nathan Sidwell <nathan@codesourcery.com> 5583 5584 * cp-tree.h (sufficient_parms_p): Declare new function. 5585 * call.c (sufficient_parms_p): New function, broken out of ... 5586 (add_function_candidate): ... here. Use it. 5587 (add_conv_candidate): Use it. 5588 * decl.c (grok_ctor_properties): Use it. 5589 55902000-12-07 Jakub Jelinek <jakub@redhat.com> 5591 5592 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT. 5593 55942000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> 5595 5596 * decl2.c (lang_decode_option): Handle -Wformat-security. 5597 55982000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5599 5600 * pt.c (verify_class_unification): New function. 5601 (get_class_bindings): Use it. 5602 (try_class_unification): Tidy. 5603 (unify): Handle when argument of a template-id is not 5604 template parameter dependent. 5605 (template_args_equal): Handle when TREE_CODE's do not match. 5606 56072000-12-06 Alexandre Oliva <aoliva@redhat.com> 5608 5609 * lang-specs.h (c++): When invoking the stand-alone preprocessor 5610 for -save-temps, pass all relevant -Defines to it, and then don't 5611 pass them to cc1plus. 5612 56132000-12-05 Will Cohen <wcohen@redhat.com> 5614 5615 * decl.c (finish_case_label): Cleared 5616 more_cleanups_ok in surrounding function scopes. 5617 (define_label): Likewise. 5618 56192000-12-05 Nathan Sidwell <nathan@codesourcery.com> 5620 5621 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document. 5622 (get_matching_virtual): Remove. 5623 (look_for_overrides): Declare new function. 5624 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or 5625 DECL_VINDEX here. 5626 * class.c (check_for_override): Move base class iteration code 5627 to look_for_overrides. 5628 * search.c (next_baselink): Remove. 5629 (get_virtuals_named_this): Remove. 5630 (get_virtual_destructor): Remove. 5631 (tree_has_any_destructors_p): Remove. 5632 (struct gvnt_info): Remove. 5633 (check_final_overrider): Remove `virtual' from error messages. 5634 (get_matching_virtuals): Remove. Move functionality to ... 5635 (look_for_overrides): ... here, and ... 5636 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found 5637 to be overriding. 5638 56392000-12-05 Nathan Sidwell <nathan@codesourcery.com> 5640 5641 * typeck.c (get_delta_difference): If via a virtual base, 5642 return zero. 5643 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no 5644 adjustment. 5645 56462000-12-04 Richard Henderson <rth@redhat.com> 5647 5648 * error.c (dump_tree): Use output_add_string not OB_PUTS. 5649 56502000-12-04 Jason Merrill <jason@redhat.com> 5651 5652 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". 5653 (write_builtin_type): Pass intSI_type_node and the like through 5654 type_for_mode. 5655 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. 5656 Pass intSI_type_node and the like through type_for_mode. 5657 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. 5658 * pt.c (tsubst, unify): Likewise. 5659 * tree.c (walk_tree): Likewise. 5660 * error.c (dump_type): Likewise. 5661 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. 5662 5663 * Make-lang.in: Tweak top comment for emacs. 5664 (cp/TAGS): Restore. 5665 5666 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. 5667 5668 * class.c (clone_function_decl): Robustify. 5669 56702000-12-04 Michael Matz <matzmich@cs.tu-berlin.de> 5671 5672 * decl.c (store_bindings): Only search in the non modified 5673 old_bindings for duplicates. 5674 56752000-12-04 Nathan Sidwell <nathan@codesourcery.com> 5676 5677 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not 5678 TYPE_POLYMORPHIC_P. 5679 5680 * typeck.c (build_static_cast): Remove unused variable. 5681 56822000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5683 5684 * pt.c: Fix typo in comment. 5685 56862000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 5687 5688 * decl2.c (warn_format): Remove definition. 5689 (lang_decode_option): Handle -Wformat-nonliteral, 5690 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat. 5691 56922000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 5693 5694 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. 5695 (init_decl_processing): Don't create string_type_node, 5696 const_string_type_node, wint_type_node, intmax_type_node, 5697 uintmax_type_node, default_function_type, ptrdiff_type_node and 5698 unsigned_ptrdiff_type_node. Adjust position of call to 5699 c_common_nodes_and_builtins. 5700 (identifier_global_value): New function. 5701 57022000-12-01 Nathan Sidwell <nathan@codesourcery.com> 5703 5704 * call.c (standard_conversion): Reject pointer to member 5705 conversions from ambiguous, inaccessible or virtual bases. 5706 * typeck.c (build_static_cast): Don't check pointers to members 5707 specially. 5708 57092000-11-30 Nathan Sidwell <nathan@codesourcery.com> 5710 5711 * method.c (do_build_copy_constructor): Preserve cv 5712 qualifications when accessing source object members. 5713 (do_build_assign_ref): Likewise. Remove separate diagnostics for 5714 unnamed fields. 5715 57162000-11-30 Nathan Sidwell <nathan@codesourcery.com> 5717 5718 * method.c (do_build_assign_ref): Construct appropriately 5719 CV-qualified base reference. Don't allow const casts in base 5720 conversion. 5721 57222000-11-30 Nathan Sidwell <nathan@codesourcery.com> 5723 5724 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on 5725 incomplete return type. 5726 57272000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5728 5729 * parse.y (base_class.1): Produce a _TYPE not a _DECL. 5730 * semantics.c (finish_base_specifier): Accept a _TYPE not a 5731 _DECL. 5732 57332000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5734 5735 * spew.c (yyerror): Cope if yylval.ttype is NULL. 5736 57372000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5738 5739 * decl.c (grokdeclarator): Diagnose undefined template contexts. 5740 57412000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5742 5743 * decl.c (grokdeclarator): Do type access control on friend 5744 class. 5745 57462000-11-27 Nathan Sidwell <nathan@codesourcery.com> 5747 5748 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by 5749 bison parser ickiness. 5750 * pt.c (tsubst_friend_function): Enter namespace scope when 5751 tsubsting the function name. 5752 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality. 5753 57542000-11-27 Nathan Sidwell <nathan@codesourcery.com> 5755 5756 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo. 5757 * cvt.c (cp_convert_to_pointer): Add force parameter. 5758 Allow conversions via virtual base if forced. 5759 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer. 5760 (ocp_convert): Likewise. 5761 * search.c (binfo_from_vbase): Return the virtual base's binfo. 5762 * typeck.c (get_delta_difference): Adjust handling of virtual 5763 bases. 5764 57652000-11-26 Mark Mitchell <mark@codesourcery.com> 5766 5767 * tree.c (struct list_hash): Remove. 5768 (list_hash_table): Make it be an htab. 5769 (struct list_proxy): New type. 5770 (list_hash_eq): New function. 5771 (list_hash_pieces): Renamed from ... 5772 (list_hash): ... this. 5773 (list_hash_lookup): Remove. 5774 (list_hash_add): Remove. 5775 (hash_tree_cons): Use the generic hashtable. 5776 (mark_list_hash): Remove. 5777 (init_tree): Create the hashtable. 5778 57792000-11-25 Joseph S. Myers <jsm28@cam.ac.uk> 5780 5781 * method.c (build_mangled_C9x_name): Rename to 5782 build_mangled_C99_name. Change C9X references in comments to 5783 refer to C99. 5784 57852000-11-24 Nathan Sidwell <nathan@codesourcery.com> 5786 5787 * parse.y (unary_expr): Move VA_ARG from here ... 5788 (primary): ... to here. 5789 57902000-11-24 Nathan Sidwell <nathan@codesourcery.com> 5791 5792 * semantics.c (finish_id_expr): If type is error_mark, return 5793 error_mark. 5794 57952000-11-23 Nathan Sidwell <nathan@codesourcery.com> 5796 5797 * pt.c (lookup_template_class): Simplify loop exit constructs. 5798 Cope when there is no partial instantiation of a template 5799 template member. 5800 5801Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com> 5802 5803 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H). 5804 58052000-11-22 Mark Mitchell <mark@codesourcery.com> 5806 5807 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op' 5808 prefix. 5809 5810 * pt.c (do_decl_instantiate): Explicitly clone constructors and 5811 destructors that haven't already been cloned. 5812 58132000-11-20 Richard Henderson <rth@redhat.com> 5814 5815 * parse.y (yyparse_1): Rename the parser entry point. 5816 58172000-11-20 Alex Samuel <samuel@codesourcery.com> 5818 5819 * mangle.c (write_name): Use <unscoped-name> for names directly in 5820 function scope. 5821 (write_unscoped_name): Accept names directly in function scope. 5822 58232000-11-20 Nathan Sidwell <nathan@codesourcery.com> 5824 5825 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword. 5826 * parse.y (extdef): Add EXPORT reduction. 5827 * spew.c (yylex): Don't skip export here. 5828 58292000-11-19 Mark Mitchell <mark@codesourcery.com> 5830 5831 * decl.c (init_decl_processing): Correct name of pure virtual 5832 function under the new ABI. 5833 * rtti.c (throw_bad_cast): Likewise, for bad cast function. 5834 (throw_bad_typeid): Likewise for bad typeid function. 5835 58362000-11-18 Mark Mitchell <mark@codesourcery.com> 5837 5838 * decl.c (grokparms): Don't even function types of `void' type, 5839 either. 5840 * mangle.c (write_type): Don't crash when confronted with the 5841 error_mark_node. 5842 5843 * decl.c (grokparms): Don't create parameters of `void' type. 5844 58452000-11-17 Zack Weinberg <zack@wolery.stanford.edu> 5846 5847 * lex.c (mark_impl_file_chain): Delete. 5848 (init_parse): Remove call to ggc_add_string_root. No need to 5849 ggc_strdup a string constant. Do not add impl_file_chain to GC 5850 roots. 5851 (handle_pragma_implementation): No need to ggc_strdup main_filename. 5852 58532000-11-17 Nathan Sidwell <nathan@codesourcery.com> 5854 5855 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type. 5856 58572000-11-17 Nathan Sidwell <nathan@codesourcery.com> 5858 5859 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro. 5860 * decl.c (grokdeclarator): Don't reject void parms here. 5861 (require_complete_types_for_parms): Simplify, use 5862 complete_type_or_else. 5863 (grokparms): Remove bitrot. Remove funcdef parm. 5864 Deal with ellipsis parm lists here. 5865 * semantics.c (finish_parmlist): Don't append void_list_node 5866 here. Set PARMLIST_ELLIPSIS_P. 5867 58682000-11-17 Nathan Sidwell <nathan@codesourcery.com> 5869 5870 * typeck2.c (incomplete_type_error): Reorganise to avoid 5871 excessive diagnostics. 5872 58732000-11-16 Zack Weinberg <zack@wolery.stanford.edu> 5874 5875 * lex.c (struct impl_files, internal_filename): Constify a char *. 5876 58772000-11-16 Mark Mitchell <mark@codesourcery.com> 5878 5879 * mangle.c (write_special_name_constructor): Don't generate 5880 assembler junk when confronted with an old-style constructor. 5881 (write_special_name_destructor): Likewise. 5882 (mangle_decl_string): Do it here instead. 5883 58842000-11-16 Nathan Sidwell <nathan@codesourcery.com> 5885 5886 * call.c (op_error): Make error messages clearer. 5887 58882000-11-15 Mark Mitchell <mark@codesourcery.com> 5889 5890 * decl.c (wrapup_globals_for_namespace): Don't mark things 5891 TREE_ASM_WRITTEN when they're not. 5892 58932000-11-15 Jason Merrill <jason@redhat.com> 5894 5895 * typeck2.c (friendly_abort): Uncount the error before handing 5896 off to fancy_abort. 5897 58982000-11-15 Nathan Sidwell <nathan@codesourcery.com> 5899 5900 * typeck.c (lookup_anon_field): Cope with qv qualifiers. 5901 59022000-11-14 Mark Mitchell <mark@codesourcery.com> 5903 5904 * class.c (build_vtbl_initializer): Fix typo in comment. 5905 * typeck.c (expr_sizeof): Don't crash on errors. 5906 59072000-11-14 Jim Wilson <wilson@redhat.com> 5908 5909 * lang-specs.h: Add %2 after %(cc1_options). 5910 59112000-11-14 Richard Henderson <rth@redhat.com> 5912 5913 * typeck.c (c_sizeof): Be strict about casting result value 5914 back to c_size_type_node. 5915 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise. 5916 59172000-11-13 Joseph S. Myers <jsm28@cam.ac.uk> 5918 5919 * typeck.c (build_unary_op): Use boolean_increment from 5920 c-common.c, moving the relevant code there. 5921 59222000-11-11 Jason Merrill <jason@redhat.com> 5923 5924 * typeck.c (mark_addressable): Don't call put_var_into_stack. 5925 5926 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics 5927 in inlines. 5928 59292000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5930 5931 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy. 5932 * lex.c (copy_lang_decl): Likewise. 5933 59342000-11-09 Mark Mitchell <mark@codesourcery.com> 5935 5936 * dump.c (cp_dump_tree): Don't dump function bodies here. 5937 5938 * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 5939 (dump.o): Update dependency list. 5940 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove. 5941 (flag_dump_translation_unit): Likewise. 5942 (CP_TYPE_QUALS): Adjust definition. 5943 (DECL_C_BIT_FIELD): Remove. 5944 (SET_DECL_C_BIT_FIELD): Likewise. 5945 (CLEAR_DECL_C_BIT_FIELD): Likewise. 5946 (add_maybe_template): Likewise. 5947 (strip_array_types): Likewise. 5948 (dump_node_to_file): Likewise. 5949 (cp_dump_tree): New function. 5950 * decl.c (init_decl_processing): Set lang_dump_tree. 5951 * decl2.c (flag_dump_translation_unit): Remove. 5952 * dump.c: Move most of it to ../c-dump.c. 5953 (cp_dump_tree): New function. 5954 * pt.c (add_maybe_template): Remove. 5955 * typeck.c (strip_array_types): Likewise. 5956 59572000-11-07 Eric Christopher <echristo@redhat.com> 5958 5959 * decl.c (init_decl_processing): Change definition of 5960 __wchar_t to wchar_t. Remove artificial declaration of 5961 wchar_t. 5962 * lex.c: Change instances of __wchar_t to wchar_t. 5963 59642000-11-09 Nathan Sidwell <nathan@codesourcery.com> 5965 5966 * lex.c (do_identifier): Don't lookup_name for operators. 5967 * parse.y (operator): Save looking_for_typename. 5968 (unoperator): Restore it. 5969 * spew.c (frob_opname): Use nth_token for lookahead. 5970 59712000-11-08 Nathan Sidwell <nathan@codesourcery.com> 5972 5973 * decl.c (grok_op_properties): Always use coerce_new_type and 5974 coerce_delete_type. 5975 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve 5976 exception specification. Tidy up. 5977 (coerce_delete_type): Preserve exception specification. Tidy up. 5978 59792000-11-07 Joseph S. Myers <jsm28@cam.ac.uk> 5980 5981 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c 5982 (push_binding_level), error.c (cp_tree_printer), pt.c 5983 (process_partial_specialization, tsubst_template_arg_vector), 5984 search.c (lookup_member): Use memset () instead of bzero (). 5985 59862000-11-07 Nathan Sidwell <nathan@codesourcery.com> 5987 5988 * decl.c (build_ptrmemfunc_type): Allow error_mark_node. 5989 59902000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> 5991 5992 * Make-lang.in (c++.distdir): Remove. 5993 59942000-11-04 Mark Mitchell <mark@codesourcery.com> 5995 5996 * decl2.c (do_nonmember_using_decl): Allow `extern "C"' 5997 declarations from different namespaces to be combined. 5998 59992000-11-03 Zack Weinberg <zack@wolery.stanford.edu> 6000 6001 * decl.c: Include tm_p.h. 6002 60032000-11-03 Joseph S. Myers <jsm28@cam.ac.uk> 6004 6005 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp (). 6006 60072000-11-02 Joseph S. Myers <jsm28@cam.ac.uk> 6008 6009 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c 6010 (build_overload_value), repo.c (open_repo_file), xref.c 6011 (open_xref_file): Use strchr () and strrchr () instead of index () 6012 and rindex (). 6013 60142000-11-01 Bernd Schmidt <bernds@redhat.co.uk> 6015 6016 * call.c (build_over_call): Call fold on the CALL_EXPR. 6017 60182000-11-01 Gabriel Dos Reis <gdr@codesourcery.com> 6019 6020 * error.c (dump_template_decl): Separate template hearders with 6021 space not comma. 6022 60232000-10-31 Gabriel Dos Reis <gdr@codesourcery.com> 6024 6025 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace 6026 TS_* flags with corresponding TFF_*. Adjust prototypes of 6027 functions (which used to take a tree_string_flags) to take an int. 6028 6029 * cp-tree.h (enum tree_string_flags): Remove 6030 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, 6031 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS, 6032 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 6033 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 6034 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, 6035 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros. 6036 (type_as_string, decl_as_string, expr_as_string, 6037 context_as_string): Adjust prototype. 6038 6039 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER 6040 instead of TS_PLAIN. 6041 6042 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF 6043 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of 6044 plain `0'. 6045 60462000-10-30 Mark Mitchell <mark@codesourcery.com> 6047 6048 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro. 6049 (linkage_kind): New enumeration. 6050 (decl_linkage): New function. 6051 * decl2.c (comdat_linkage): Extend comment. 6052 * error.c (dump_function_decl): Print the arguments used to 6053 instantiate a template, even when not printing the type of the 6054 function. 6055 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P, 6056 not TREE_PUBLIC, to test for external linkage. 6057 * tree.c (decl_linkage): New function. 6058 60592000-10-28 Mark Mitchell <mark@codesourcery.com> 6060 6061 * pt.c (instantiate_decl): Always instantiate static data members 6062 initialized in-class. 6063 60642000-10-27 Zack Weinberg <zack@wolery.stanford.edu> 6065 6066 * Make-lang.in: Move all build rules here from Makefile.in, 6067 adapt to new context. Wrap all rules that change the current 6068 directory in parentheses. Expunge all references to $(P). 6069 When one command depends on another and they're run all at 6070 once, use && to separate them, not ;. Add OUTPUT_OPTION to 6071 all object-file generation rules. Delete obsolete variables. 6072 6073 * Makefile.in: Delete. 6074 * config-lang.in: Delete outputs= line. 6075 60762000-10-26 Gabriel Dos Reis <gdr@codesourcery.com> 6077 6078 * error.c (dump_function_decl): Print no space between 6079 `ptr-operator' the `type-specifier' of the return type. 6080 (dump_type_prefix): Make sure we put space at the appropriate 6081 place. 6082 60832000-10-23 Jason Merrill <jason@redhat.com> 6084 6085 * call.c (equal_functions): Also call decls_match for extern "C" fns. 6086 60872000-10-22 Jason Merrill <jason@redhat.com> 6088 6089 * call.c (build_conditional_expr): Use ocp_convert to force 6090 rvalue conversion. 6091 60922000-10-22 Mark Mitchell <mark@codesourcery.com> 6093 6094 * call.c (standard_conversion): Use RVALUE_CONVs for all 6095 expressions that satisfy lvalue_p, not just those that satisfy 6096 real_lvalue_p. 6097 6098 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially. 6099 6100 * typeck.c (c_sizeof): Return an expression of `size_t' type, 6101 not one with TYPE_IS_SIZETYPE set. 6102 (dubious_conversion_warnings): Remove special-case code. 6103 61042000-10-21 Geoffrey Keating <geoffk@cygnus.com> 6105 6106 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE. 6107 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE. 6108 (dump_type_prefix): Print vector-of-int as 'int vector'. 6109 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE. 6110 * tree.c (walk_tree): Handle VECTOR_TYPE. 6111 6112 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS. 6113 61142000-10-21 Jason Merrill <jason@redhat.com> 6115 6116 * parse.y (operator): Set got_object from got_scope. 6117 Set looking_for_typename. 6118 * decl.c (lookup_name_real): Clear val after setting from_obj. 6119 Reorganize diagnostic. 6120 61212000-10-20 Jason Merrill <jason@redhat.com> 6122 6123 * tree.c (walk_tree): Don't walk into default args. 6124 6125 * error.c (dump_expr): Use host_integerp. 6126 61272000-10-20 David Edelsohn <edelsohn@gnu.org> 6128 6129 * typeck2.c (abstract_virtuals_error): Use "because" instead of 6130 "since" in error message. 6131 6132Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6133 6134 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE. 6135 61362000-10-20 Jeffrey Oldham <oldham@codesourcery.com> 6137 6138 * decl.c (revert_static_member_fn): Fixed typo. 6139 61402000-10-19 Mark Mitchell <mark@codesourcery.com> 6141 6142 * class.c (subobject_offset_fn): New type. 6143 (dfs_record_base_offsets): Remove. 6144 (record_base_offsets): Likewise. 6145 (dfs_search_base_offsets): Likewise. 6146 (record_subobject_offset): New function. 6147 (check_subobject_offset): Likewise. 6148 (walk_subobject_offsets): Likewise. 6149 (record_subobject_offsets): Likewise. 6150 (layout_conflict_p): Reimplement. 6151 (layout_nonempty_base_or_field): Correct handling of type 6152 conflicts during layout. 6153 (layout_empty_base): Likewise. 6154 (build_base_field): Adjust to handle new representation of empty 6155 base offset table. 6156 (build_base_fields): Likewise. 6157 (layout_virtual_bases): Likewise. 6158 (splay_tree_compare_integer_csts): New function. 6159 (layout_class_type): Use a splay_tree, rather than a varray, to 6160 represent the offsets of empty bases. 6161 6162 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL. 6163 * decl.c (select_decl): Don't return declarations that are 6164 DECL_ANTICIPATED. 6165 61662000-10-18 Mark Mitchell <mark@codesourcery.com> 6167 6168 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD. 6169 (fake_std_node): New macro. 6170 * decl.c (in_std): Rename to ... 6171 (in_fake_std): ... this. 6172 (flag_no_builtin): Remove. 6173 (flag_no_nonansi_builtin): Likewise. 6174 (walk_namespaces_r): Use fake_std_node. 6175 (push_namespace): Use std_identifier. 6176 (pop_namespace): Use in_fake_std. 6177 (lookup_name_real): Use fake_std_node. 6178 (init_decl_processing): When -fhonor-std, create the `std' 6179 namespace. Don't create a dummy fake_std_node in that case. 6180 Adjust call to c_common_nodes_and_builtins. Use std_identifier. 6181 (builtin_function): Put builtins whose names don't begin 6182 with `_' in the std namespace. 6183 * decl2.c (flag_no_builtin): Remove. 6184 (flag_no_nonansi_builtin): Likewise. 6185 (set_decl_namespace): Use fake_std_node. 6186 (validate_nonmember_using_decl): Likewise. 6187 (do_using_directive): Likewise. 6188 (handle_class_head): Likewise. 6189 * dump.c (dequeue_and_dump): Likewise. 6190 * except.c (init_exception_processing): Use std_identifier. 6191 * init.c (build_member_call): Use fake_std_node. 6192 * rtti.c (init_rtti_processing): Use std_identifier. 6193 61942000-10-17 Mark Mitchell <mark@codesourcery.com> 6195 6196 * cp-tree.h (back_end_hook): Remove declaration. 6197 * decl2.c (back_end_hook): Remove definition. 6198 6199 * dump.c (dequeue_and_dump): Dump TREE_USED. 6200 6201Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu> 6202 6203 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). 6204 62052000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 6206 6207 * decl.c (WINT_TYPE): Define. 6208 (init_decl_processing): Create types unsigned_ptrdiff_type_node, 6209 c_size_type_node, signed_size_type_node and wint_type_node. 6210 62112000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 6212 6213 * decl2.c (warn_missing_format_attribute): New variable. 6214 (lang_decode_option): Decode -Wmissing-format-attribute. 6215 62162000-10-16 Mark Mitchell <mark@codesourcery.com> 6217 6218 * typeck.c (qualify_type): Remove. 6219 (composite_pointer_type): Fix handling of conversions to `cv void*'. 6220 62212000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6222 6223 * Makefile.in (parse.c, parse.h): Fix think-o in last patch. 6224 62252000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6226 6227 * Makefile.in (parse.c, parse.h): Create atomically. 6228 62292000-10-12 Mark Mitchell <mark@codesourcery.com> 6230 6231 * class.c (current_obstack): Remove. 6232 * decl.c (ggc_p): Remove. 6233 (start_decl): Don't use decl_tree_cons. 6234 (grokdeclarator): Don't use build_decl_list. 6235 (start_function): Don't use decl_tree_cons. 6236 (finish_function): Don't mess with obstacks. 6237 * decl2.c (grok_x_components): Don't use build_decl_list. 6238 * lex.c (make_call_declarator): Don't call decl_tree_cons. 6239 (implicitly_declare_fn): Don't call build_decl_list. 6240 * parse.y (frob_specs): Don't call build_decl_list or 6241 decl_tree_cons. 6242 (expr_or_declarator_intern): Don't call decl_tree_cons. 6243 (primary): Don't call build_decl_list. 6244 (fcast_or_absdcl): Likewise. 6245 (typed_declspecs): Don't call decl_tree_cons. 6246 (reserved_declspecs): Don't call build_decl_list. 6247 (declmods): Likewise. 6248 (reserved_typespecquals): Likewise. 6249 (aggr): Likewise. 6250 (new_type_id): Likewise. 6251 (cv_qualifiers): Likewise. 6252 (after_type_declarator_intern): Likewise. 6253 (notype_declarator_intern): Likewise. 6254 (absdcl_intern): Likewise. 6255 (named_parm): Likewise. 6256 * pt.c (most_specialized_class): Likewise. 6257 * repo.c (temporary_obstack): Make it a structure, not a pointer. 6258 (init_repo): Initialize it. 6259 * search.c (current_obstack): Remove. 6260 * typeck2.c (add_exception_specifier): Don't call build_decl_list. 6261 62622000-10-09 Richard Henderson <rth@cygnus.com> 6263 6264 * Make-lang.in (CXX_EXTRA_HEADERS): Remove. 6265 (c++ language support bits for libgcc): Remove. 6266 (c++.clean): Remove cplib2.txt cleanup. 6267 * config-lang.in (headers, lib2funcs): Remove. 6268 6269 * exception.cc, new.cc, new1.cc, new2.cc: Remove files. 6270 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files. 6271 * inc/cxxabi.h, inc/exception, inc/new: Remove files. 6272 * inc/new.h, inc/typeinfo: Remove files. 6273 62742000-10-08 Joseph S. Myers <jsm28@cam.ac.uk> 6275 6276 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already 6277 defined. 6278 (init_decl_processing): Initialize intmax_type_node and 6279 uintmax_type_node. 6280 62812000-10-06 Richard Henderson <rth@cygnus.com> 6282 6283 * cp-tree.h (struct cp_language_function): Remove x_result_rtx. 6284 (original_result_rtx): Remove. 6285 * decl.c (save_function_data): Don't clear x_result_rtx. 6286 (mark_lang_function): Don't mark it either. 6287 * expr.c (fixup_result_decl): Remove. 6288 * semantics.c (genrtl_named_return_value): Frob the return decl 6289 before calling emit_local_var. 6290 (genrtl_finish_function): Don't call fixup_result_decl. 6291 Always emit the jump to return_label. 6292 62932000-10-06 Nathan Sidwell <nathan@codesourcery.com> 6294 6295 * pt.c (lookup_template_class): Set current access for enum. 6296 (tsubst_enum): Set file & line for enum decl. 6297 6298 * spew.c (yylex): Remove unused variable. 6299 63002000-10-05 Richard Henderson <rth@cygnus.com> 6301 6302 * semantics.c (genrtl_finish_function): Don't init or check 6303 can_reach_end; remove noreturn and return value checks. 6304 63052000-10-05 Tom Tromey <tromey@cygnus.com> 6306 6307 * init.c (build_java_class_ref): Use `build_static_name' with a 6308 suffix, not a prefix, to build the class object's name. 6309 63102000-10-05 Nathan Sidwell <nathan@codesourcery.com> 6311 6312 * cp-tree.h (access_kind): Fix comment typo. 6313 * decl2.c (grokfield): Fix diagnostic typo. 6314 * semantics.c (finish_template_type): Fix comment typo. 6315 (finish_qualified_object_call_expr): Likewise. 6316 63172000-10-05 Nathan Sidwell <nathan@codesourcery.com> 6318 6319 * pt.c (tsubst_expr, DECL_STMT case): Don't process if 6320 tsubsting fails. 6321 63222000-10-05 Nathan Sidwell <nathan@codesourcery.com> 6323 6324 * spew.c (frob_id): New static function. 6325 (frob_opname): Use it. 6326 (yylex): Use it. 6327 63282000-10-01 Mark Mitchell <mark@codesourcery.com> 6329 6330 * decl.c (lang_mark_false_label_stack): Remove. 6331 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared. 6332 63332000-09-30 Joseph S. Myers <jsm28@cam.ac.uk> 6334 6335 * gxxint.texi: Use @email for formatting email addresses. 6336 63372000-09-29 Gabriel Dos Reis <gdr@codesourcery.com> 6338 6339 * error.c: Remove direct obstack manipulation. Replace with 6340 output_buffer-based formatting. Adjust calls to removed macros. 6341 (obstack_chunk_alloc, obstack_chunk_free): Remove. 6342 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP, 6343 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise. 6344 63452000-09-24 Mark Mitchell <mark@codesourcery.com> 6346 6347 * ir.texi: Move to ../c-tree.texi. 6348 63492000-09-20 Jason Merrill <jason@redhat.com> 6350 6351 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P. 6352 63532000-09-21 Andreas Jaeger <aj@suse.de> 6354 6355 * errfn.c: Move declaration of cp_printer and cp_printers to ... 6356 * cp-tree.h: ... here. 6357 6358 * error.c: Remove declaration of cp_printer. 6359 63602000-09-20 Mark Mitchell <mark@codesourcery.com> 6361 6362 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs. 6363 63642000-09-20 Hans-Peter Nilsson <hp@axis.com> 6365 6366 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and 6367 users. 6368 63692000-09-18 Mark Mitchell <mark@codesourcery.com> 6370 6371 * decl.c (start_function): Robustify. 6372 63732000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6374 6375 * cp-tree.h (check_function_format): Accept a `status' parameter. 6376 6377 * call.c, typeck.c: Updates calls to `check_function_format'. 6378 63792000-09-17 Geoffrey Keating <geoffk@cygnus.com> 6380 6381 * decl2.c (handle_class_head): Always push some scope even 6382 in the error case. 6383 63842000-09-16 Mark Mitchell <mark@codesourcery.com> 6385 6386 * cp-tree.h (struct cp_language_function): Remove 6387 x_scope_stmt_stack and name_declared. 6388 (current_scope_stmt_stack): Remove. 6389 (function_name_declared_p): New macro. 6390 (struct lang_decl_flags): Use c_lang_decl as a base class. 6391 (context): Remove. 6392 (struct lang_decl): Replace saved_tree with context. 6393 (DECL_FRIEND_CONTEXT): Adjust accordingly. 6394 (SET_DECL_FRIEND_CONTEXT): Likewise. 6395 (DECL_VIRTUAL_CONTEXT): Likewise. 6396 (DECL_SAVED_TREE): Remove. 6397 (C_DECLARED_LABEL_FLAG): Likewise. 6398 (cplus_expand_expr_stmt): Don't declare. 6399 (add_decl_stmt): Likewise. 6400 (add_scope_stmt): Likewise. 6401 * decl.c (mark_stmt_tree): Remove. 6402 (case_compare): Likewise. 6403 (finish_case_label): Use c_add_case_label. 6404 (init_decl_processing): Set more language-specific hooks. 6405 (build_enumerator): Fix typo in comment. 6406 (cplus_expand_expr_stmt): Remove. 6407 (mark_lang_function): Use mark_c_language_function. 6408 (lang_mark_tree): Use c_mark_lang_decl. 6409 * decl2.c: Change order of inclusion. 6410 * except.c: Likewise. 6411 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall 6412 back on c_expand_expr. 6413 * friend.c: Include expr.h. 6414 * init.c: Change order of inclusion. 6415 * Makefile.in: Update dependencies. 6416 * lex.h (free_lang_decl_chain): Remove. 6417 * optimize.c (maybe_clone_body): Use function_name_declared_p. 6418 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if 6419 it doesn't exist. 6420 (instantiate_decl): Use function_name_declared_p. 6421 * semantics.c (lang_expand_expr_stmt): Remove. 6422 (set_current_function_name_declared): Likewise. 6423 (current_function_name_declared): Likewise. 6424 (begin_compound_stmt): Use function_name_declared_p. 6425 (add_decl_stmt): Remove. 6426 (setup_vtbl_ptr): Use function_name_declared_p. 6427 (add_scope_stmt): Remove. 6428 (current_scope_stmt_stack): New function. 6429 (cp_expand_stmt): Don't handle SCOPE_STMTs. 6430 (expand_body): Use function_name_declared_p. 6431 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. 6432 * typeck.c: Change order of includes. 6433 (convert_sequence): Remove. 6434 64352000-09-14 Joseph S. Myers <jsm28@cam.ac.uk> 6436 6437 * lex.c (reswords): Add _Complex. 6438 6439Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6440 6441 * Make-lang.in (cplib2.txt): Depend on cp/Makefile. 6442 64432000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> 6444 6445 * init.c (begin_init_stmts): Don't use // comments. 6446 64472000-09-12 Jason Merrill <jason@redhat.com> 6448 6449 * decl.c (maybe_deduce_size_from_array_init): Set do_default for 6450 all non-extern arrays. 6451 6452 * decl.c (grokdeclarator): Complain about 'friend T' for implicit 6453 typenames, too. Downgrade complaint to pedwarn. 6454 (xref_tag): Warn about surprising behavior of 'friend struct T'. 6455 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for 6456 'class This::Inherited'. 6457 64582000-09-12 Mark Mitchell <mark@codesourcery.com> 6459 6460 * decl.c (finish_case_label): Given the LABEL_DECL a 6461 DECL_CONTEXT. 6462 64632000-09-12 Gabriel Dos Reis <gdr@codesourcery.com> 6464 6465 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, 6466 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF, 6467 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 6468 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 6469 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE): 6470 New macros. 6471 (sorry_for_unsupported_tree, print_scope_operator, 6472 print_left_paren, print_right_paren, print_left_bracket, 6473 print_right_bracket, print_whitespace): Likewise. 6474 (aggr_variety): Rename to class_key_or_enum. 6475 (print_type): Rename to print_type_id. 6476 (print_type_specifier_seq, print_simple_type_specifier, 6477 print_elaborated_type_specifier, 6478 print_rest_of_abstract_declarator, 6479 print_parameter_declaration_clause, print_exception_specification, 6480 print_nested_name_specifier, print_template_id, 6481 typedef_original_name, print_template_argument_list_start, 6482 print_template_argument_list_end): New functions. 6483 64842000-09-11 Gabriel Dos Reis <gdr@codesourcery.com> 6485 6486 * ir.texi: Add more documentation. 6487 64882000-09-11 Mark Mitchell <mark@codesourcery.com> 6489 6490 * cp-tree.h (struct saved_scope): Remove x_function_parms. 6491 (current_function_parms): Don't define. 6492 (struct cp_language_function): Remove parms_stored. 6493 (current_function_just_assigned_this): Don't define. 6494 (current_function_parms_stored): Likewise. 6495 (static_ctors): Declare. 6496 (static_dtors): Likewise. 6497 (SF_EXPAND): Don't define. 6498 (expand_start_early_try_stmts): Remove declaration. 6499 (store_parm_decls): Likewise. 6500 * decl.c (static_ctors): Don't declare. 6501 (static_dtors): Likewise. 6502 (struct binding_level): Remove this_block. 6503 (poplevel): Remove dead code. 6504 (set_block): Likewise. 6505 (mark_binding_level): Don't mark this_block. 6506 (mark_saved_scope): Don't mark x_function_parms. 6507 (init_decl_processing): Don't add current_function_parms as a GC 6508 root. 6509 (check_function_type): Change prototype. 6510 (start_function): Remove RTL-generation code. 6511 (expand_start_early_try_stmts): Remove. 6512 (store_parm_decls): Give it internal linkage. Remove 6513 RTL-generation code. 6514 (finish_function): Remove RTL-generation code. 6515 * decl2.c (static_ctors): Fix formatting. 6516 (static_dtors): Likewise. 6517 * method.c (use_thunk): Don't call store_parm_decls. 6518 (synthesize_method): Likewise. 6519 * optimize.c (maybe_clone_body): Likewise. 6520 * parse.y (fn.def2): Likewise. 6521 (.set_base_init): Likewise. 6522 (nodecls): Likewise. 6523 * pt.c (instantiate_decl): Likewise. 6524 * rtti.c (synthesize_tinfo_fn): Likewise. 6525 * semantics.c (genrtl_try_block): Simplify. 6526 (expand_body): Use genrtl_start_function and 6527 genrtl_finish_function. 6528 (genrtl_start_function): New function. 6529 (genrtl_finish_function): Likewise. 6530 65312000-09-11 Nathan Sidwell <nathan@codesourcery.com> 6532 6533 * error.c (cp_tree_printer, case 'P'): Append break. 6534 65352000-09-11 Nathan Sidwell <nathan@codesourcery.com> 6536 6537 * cp-tree.h (frob_opname): Declare. 6538 * parse.y (saved_scopes): New static variable. 6539 (cp_parse_init): Adjust. 6540 (do_id): If lastiddecl is NULL, do do_identifier. 6541 (operator): Save scope information. 6542 (unoperator): New reduction. Restore scope information. 6543 (operator_name): Append unoperator. Call frob_opname. 6544 * spew.c (frob_opname): Define. 6545 65462000-09-10 Zack Weinberg <zack@wolery.cumb.org> 6547 6548 * decl.c, rtti.c: Include defaults.h if not already included. 6549 Don't define the *_TYPE_SIZE macros. 6550 65512000-09-09 Mark Mitchell <mark@codesourcery.com> 6552 6553 * cp-tree.h (push_switch): Change prototype. 6554 (check_cp_case_value): Remove declaration. 6555 (decl_constant_value): Likewise. 6556 * decl.c (struct cp_switch): Add switch_stmt and cases. 6557 (case_compare): New function. 6558 (push_switch): Set switch_stmt. Initialize cases. 6559 (pop_switch): Clean up cases. 6560 (define_case_label): Rename to ... 6561 (finish_case_label): ... this. Do semantic analysis for case 6562 labels here. 6563 (start_function): Correct comment. 6564 * decl2.c (check_cp_case_value): Remove. 6565 * expr.c (do_case): Remove. 6566 * pt.c (tsubst_expr): Adjust call to finish_case_label. 6567 * semantics.c (genrtl_do_poplevel): Remove declaration. 6568 (RECHAIN_STMTS): Remove. 6569 (finish_break_stmt): Use build_break_stmt. 6570 (finish_continue_stmt): Use build_continue_stmt. 6571 (finish_switch_cond): Adjust condition here, rater than in 6572 c_expand_start_case. 6573 (finish_case_label): Remove. 6574 * typeck.c (c_expand_return): Remove. 6575 (c_expand_start_case): Likewise. 6576 65772000-09-07 Gabriel Dos Reis <gdr@codesourcery.com> 6578 6579 * ir.texi: Document type nodes. 6580 65812000-09-06 Mark Mitchell <mark@codesourcery.com> 6582 6583 * cp-tree.h (init_cp_semantics): Declare. 6584 (genrtl_try_block): Don't declare. 6585 (genrtl_handler): Likewise. 6586 (genrtl_catch_block): Likewise. 6587 (genrtl_ctor_stmt): Likewise. 6588 (genrtl_subobject): Likewise. 6589 (genrtl_do_poplevel): Likewise. 6590 (genrtl_named_return_value): Likewise. 6591 * lex.c (init_parse): Call init_cp_semantics. 6592 * semantics.c (genrtl_try_block): Give it internal linkage. 6593 (genrtl_handler): Likewise. 6594 (genrtl_catch_block): Likewise. 6595 (genrtl_ctor_stmt): Likewise. 6596 (genrtl_subobject): Likewise. 6597 (genrtl_do_poplevel): Likewise. 6598 (genrtl_named_return_value): Likewise. 6599 (lang_expand_stmt): Rename to ... 6600 (cp_expand_stmt): ... this. Only handle C++-specific nodes. 6601 (init_cp_semantics): Define. 6602 6603 * decl.c (initialize_local_var): Remove RTL-generating code. 6604 * semantics.c (genrtl_try_block): Fix formatting. 6605 6606 Move statement-tree facilities from C++ to C front-end. 6607 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO. 6608 (void_zero_node): Remove. 6609 (stmt_tree): Likewise. 6610 (scope_chain): Adjust. 6611 (language_function): Rename to cp_language_function. 6612 (cp_function_chain): Adjust. 6613 (current_stmt_tree): Remove. 6614 (last_tree): Likewise. 6615 (last_expr_type): Likewise. 6616 (struct lang_decl): Adjust. 6617 (STMT_IS_FULL_EXPR_P): Remove. 6618 (add_tree): Remove. 6619 (begin_stmt_tree): Likewise. 6620 (finish_stmt_tree): Likewise. 6621 (walk_tree_fn): Likewise. 6622 (walk_stmt_tree): Likewise. 6623 * class.c (finish_struct): Replace use of add_tree with add_stmt. 6624 * decl.c (mark_stmt_tree): Adjust type. 6625 (init_decl_processing): Don't build void_zero_node. 6626 (initialize_local_var): Adjust usage of current_stmt_tree. 6627 (finish_enum): Use add_stmt, not add_tree. 6628 (save_function_data): Adjust use of language_function. 6629 (finish_constructor_body): Use add_stmt, not add_tree. 6630 (finish_destructor_body): Likewise. 6631 (push_cp_function_context): Adjust use of language_function. 6632 (pop_cp_function_context): Likewise. 6633 (mark_lang_function): Likewise. 6634 (mark_cp_function_context): Likewise. 6635 * init.c (build_aggr_init): Adjust use of current_stmt_tree. 6636 (build_vec_init): Likewise. 6637 * semantics.c (SET_LAST_STMT): Remove. 6638 (RECHAIN_STMTS): Don't use it. 6639 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree. 6640 (current_stmt_tree): Define. 6641 (add_tree): Remove. 6642 (finish_goto_stmt): Use add_stmt, not add_tree. 6643 (finish_expr_stmt): Likewise. 6644 (begin_if_stmt): Likewise. 6645 (finish_then_clause): Likewise. 6646 (begin_while_stmt): Likewise. 6647 (begin_do_stmt): Likewise. 6648 (finish_return_stmt): Likewise. 6649 (begin_for_stmt): Likewise. 6650 (finish_break_stmt): Likewise. 6651 (finish_continue_stmt): Likewise. 6652 (begin_switch_stmt): Likewise. 6653 (finish_case_label): Likewise. 6654 (begin_try_block): Likewise. 6655 (begin_function_try_block): Likewise. 6656 (begin_handler): Likewise. 6657 (begin_catch_block): Likewise. 6658 (begin_compound_stmt): Likewise. 6659 (begin_asm_stmt): Likewise. 6660 (finish_asm_stmt): Likewise. 6661 (finish_label_stmt): Likewise. 6662 (add_decl_stmt): Likewise. 6663 (finish_subobject): Likewise. 6664 (finish_decl_cleanup): Likewise. 6665 (finish_named_return_value): Likewise. 6666 (setup_vtbl_ptr): Likewise. 6667 (add_scope_stmt): Likewise. 6668 (finish_stmt_expr): Likewise. 6669 (prune_unused_decls): Remove. 6670 (begin_stmt_tree): Likewise. 6671 (finish_stmt_tree): Likewise. 6672 (prep_stmt): Adjust use of current_stmt_tree. 6673 (lang_expand_stmt): Likewise. 6674 * tree.c (statement_code_p): Remove. 6675 (cp_statement_code_p): New function. 6676 (walk_stmt_tree): Remove. 6677 (init_tree): Set lang_statement_code_p. 6678 66792000-09-06 Zack Weinberg <zack@wolery.cumb.org> 6680 6681 Integrated preprocessor. 6682 6683 * Make-lang.in, Makefile.in: Remove all references to input.c, 6684 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. 6685 * gxx.gperf, hash.h, input.c: Delete. 6686 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is 6687 initialized properly. 6688 6689 * class.c (fixup_pending_inline): Take a tree, not a 6690 struct pending_inline *. All callers changed. 6691 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, 6692 RID_PROTECTED entries in ridpointers[] array here. 6693 * decl.c (duplicate_decls): Do not refer to struct 6694 pending_inline. 6695 (record_builtin_type, init_decl_processing): Use RID_MAX not 6696 CP_RID_MAX. 6697 (grokdeclarator): Use C_IS_RESERVED_WORD. 6698 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of 6699 cpplib. 6700 (grok_x_components): Do not inspect pending_inlines chain. 6701 6702 * cp-tree.h (struct lang_identifier): Add rid_code entry. 6703 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. 6704 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. 6705 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, 6706 TIME_IDENTIFIER_FILEINFO): Kill. 6707 Update prototypes. 6708 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a 6709 single 32-bit word. 6710 * parse.y: Call do_pending_inlines unconditionally. 6711 reinit_parse_for_method is now snarf_method. fn.defpen is no 6712 longer necessary. Remove unnecessary <itype> annotation on 6713 SCOPE. Do not refer to end_of_file or struct pending_inline. 6714 * semantics.c (begin_inline_definitions): Call 6715 do_pending_inlines unconditionally. 6716 6717 * lex.c: Remove all code now shared with C front end. 6718 Initialize cpplib properly if USE_CPPLIB. Put reserved words 6719 into the get_identifier table. Rewrite pragma handling to 6720 work with the registry. Move code to save tokens for later 6721 processing to spew.c. 6722 6723 * spew.c: Rewrite everything in terms of token streams instead 6724 of text. Move routines here from lex.c / input.c as 6725 appropriate. GC-mark trees hanging off the pending inlines 6726 chain. 6727 67282000-09-06 Mark Mitchell <mark@codesourcery.com> 6729 6730 * NEWS: Mention that the named return value extension has been 6731 deprecated. 6732 * cp-tree.h (original_result_rtx): Define. 6733 (TREE_REFERENCE_EXPR): Remove. 6734 (DECL_VPARENT): Likewise. 6735 (pushdecl_nonclass_level): Likewise. 6736 (store_return_init): Likewise. 6737 (reinit_lang_specific): Likewise. 6738 (genrtl_named_return_value): Change prototype. 6739 * decl.c (original_result_rtx): Remove. 6740 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs. 6741 Do not generate RTL for local variables here. 6742 (store_return_init): Remove. 6743 * semantics.c (genrtl_named_return_value): Simplify. Fold in 6744 store_return_init. 6745 (finish_named_return_value): Adjust accordingly. Warn that this 6746 extension is deprecated. 6747 (lang_expand_stmt): Adjust call to genrtl_named_return_value. 6748 67492000-09-06 Nathan Sidwell <nathan@codesourcery.com> 6750 6751 * pt.c (type_unification_real): Replace switch with if. 6752 (unify): Tsubst non-type parms before comparing. 6753 67542000-09-06 Nathan Sidwell <nathan@codesourcery.com> 6755 6756 * error.c (dump_typename): New function, broken out of ... 6757 (dump_type): ... here. Use it. 6758 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE. 6759 67602000-09-06 Nathan Sidwell <nathan@codesourcery.com> 6761 6762 * init.c (build_offset_ref): Deal with namespace scoped 6763 TEMPLATE_ID_EXPRs. 6764 67652000-09-06 Nathan Sidwell <nathan@codesourcery.com> 6766 6767 * class.c (resolve_address_of_overloaded_function): Add 6768 explanation message. 6769 * decl.c (define_case_label): Reformat explanation. 6770 * decl2.c (finish_static_data_member_decl): Likewise. 6771 (grokfield): Likewise. 6772 * friend.c (do_friend): Likewise. 6773 67742000-09-05 Zack Weinberg <zack@wolery.cumb.org> 6775 6776 * tree.c (walk_tree): Expose tail recursion. 6777 (walk_stmt_tree): New function. 6778 * cp-tree.h: Prototype walk_stmt_tree. 6779 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not 6780 the BLOCKs directly. If a BLOCK has no variables after 6781 pruning, discard it. 6782 (finish_stmt_tree): Use walk_stmt_tree. No need to save and 6783 restore the line number. 6784 67852000-09-05 Mark Mitchell <mark@codesourcery.com> 6786 6787 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H. 6788 (pt.o): Remove dependency on HTAB_H. 6789 * cp-tree.h: Include hashtab.h. 6790 (walk_tree): Change prototype. 6791 (walk_tree_without_duplicates): New function. 6792 * decl.c (check_default_argument): Use it. 6793 * optimize.c (remap_decl): Adjust calls to walk_tree. 6794 (copy_body): Likewise. 6795 (expand_calls_inline): Likewise. 6796 (calls_setjmp_p): Use walk_tree_without_duplicates. 6797 * pt.c: Don't include hashtab.h. 6798 (for_each_template_parm): Use walk_tree_without_duplicates. 6799 * semantics.c (finish-stmt_tree): Likewise. 6800 (expand_body): Likewise. 6801 * tree.c (walk_tree): Add additional parameter. 6802 (walk_tree_without_duplicates): New function. 6803 (count_trees): Use it. 6804 (verify_stmt_tree): Adjust call to walk_tree. 6805 (find_tree): Use walk_tree_without_duplicates. 6806 (no_linkage_check): Likewise. 6807 (break_out_target_exprs): Adjust call to walk_tree. 6808 (cp_unsave): Likewise. 6809 68102000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6811 6812 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code. 6813 (TEMPLATE_TEMPLATE_PARM): Adjust comment. 6814 * cp-tree.h (TYPE_BINFO): Adjust comment. 6815 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 6816 (TEMPLATE_TYPE_PARM_INDEX): Likewise. 6817 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 6818 (TYPE_TEMPLATE_INFO): Likewise. 6819 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise. 6820 * class.c (push_nested_class): Likewise. 6821 * decl.c (lookup_name_real): Likewise. 6822 (grokdeclarator): Likewise. 6823 (grok_op_properties): Likewise. 6824 (xref_tag): Likewise. 6825 (xref_basetypes): Likewise. 6826 * decl2.c (constructor_name_full): Likewise. 6827 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case. 6828 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 6829 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case. 6830 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6831 (dump_type_suffix): Likewise. 6832 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM 6833 instead. 6834 (get_aggr_from_typedef): Likewise. 6835 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case. 6836 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6837 (write_template_parm): Likewise. 6838 (write_template_template_parm): Check tree code instead of 6839 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 6840 * method.c (build_overload_nested_name): Add 6841 BOUND_TEMPLATE_TEMPLATE_PARM. 6842 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case. 6843 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6844 * pt.c (convert_template_argument): Check tree code instead of 6845 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 6846 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case. 6847 (for_each_template_parm): Adjust comment. 6848 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. 6849 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6850 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use 6851 template_args_equal to compare template template parameter cases. 6852 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6853 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM 6854 instead. 6855 * tree.c (copy_template_template_parm): Decide whether to create 6856 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node. 6857 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6858 (copy_tree_r): Likewise. 6859 * typeck.c (comptypes): Likewise. Check tree code instead of 6860 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 6861 68622000-09-04 Mark Elbrecht <snowball3@bigfoot.com> 6863 6864 * decl.c (finish_function): Move the code for handling functions 6865 marked with the constructor and destructor attributes inside the 6866 expand_p block. 6867 68682000-09-04 Nathan Sidwell <nathan@codesourcery.com> 6869 6870 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR. 6871 68722000-09-04 Nathan Sidwell <nathan@codesourcery.com> 6873 6874 * pt.c (lookup_template_class): Remove abort. 6875 * tree.c (get_type_decl): Allow error_mark_node. 6876 68772000-09-04 Nathan Sidwell <nathan@codesourcery.com> 6878 6879 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside 6880 TEMPLATE_ID_EXPRs. 6881 68822000-09-03 Mark Mitchell <mark@codesourcery.com> 6883 6884 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change 6885 new ABI mangling. 6886 68872000-09-01 Nathan Sidwell <nathan@codesourcery.com> 6888 6889 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify 6890 union tag mismatch error reporting. 6891 68922000-09-01 Nathan Sidwell <nathan@codesourcery.com> 6893 6894 * call.c (build_scoped_method_call): Check it is not a namespace. 6895 68962000-08-30 Jason Merrill <jason@redhat.com> 6897 6898 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context. 6899 6900 * tree.c (bot_manip): Check TREE_CONSTANT rather than 6901 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and 6902 build_target_expr_with_type for the non-AGGR_INIT_EXPR case. 6903 6904 * decl.c (start_function): Always call make_function_rtl. 6905 69062000-08-29 Zack Weinberg <zack@wolery.cumb.org> 6907 6908 * semantics.c (prune_unused_decls): New function. 6909 (finish_stmt_tree): Call it via walk_tree. 6910 69112000-08-29 Zack Weinberg <zack@wolery.cumb.org> 6912 6913 * class.c (build_secondary_vtable): Constify a char *. 6914 * decl.c (init_decl_processing): Initialize function_id_node, 6915 pretty_function_id_node, and func_id_node. 6916 * input.c (struct input_source): Constify 'str'. 6917 (feed_input): Constify first argument. 6918 * mangle.c (write_identifier): Constify argument. 6919 * pt.c (mangle_class_name_for_template): Constify argument. 6920 69212000-08-29 Mark Mitchell <mark@codesourcery.com> 6922 6923 * typeck.c (mark_addressable): Remove code that pokes around in 6924 RTL. 6925 69262000-08-28 Jason Merrill <jason@redhat.com> 6927 6928 * lex.c (file_name_nondirectory): Move to toplev.c. 6929 6930 * cp-tree.h (LOCAL_CLASS_P): New macro. 6931 * class.c (finish_struct_1): Use it. 6932 69332000-08-27 Alex Samuel <samuel@codesourcery.com> 6934 6935 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo. 6936 (write_encoding): Pass another argument to write_name. 6937 (write_name): Add ignore_local_scope parameter. Fix handling of 6938 local names. 6939 (write_nested_name): Use write_unqualified_name. 6940 (write_prefix): Likewise. Skip out on FUNCTION_DECLs. 6941 (write_template_prefix): Use write_unqualified_name. 6942 (write_component): Remove. 6943 (write_local_name): Add parameter. Use direct local entity to 6944 discriminator calculation. 6945 (write_class_enum_type): Pass another argument to write_name. 6946 (write_template_template_arg): Likewise. 6947 (make_guard_variable): Likewise. 6948 69492000-08-27 Jason Merrill <jason@redhat.com> 6950 6951 * decl.c (pushdecl): Matching decls for local externs are found in 6952 the current level. Propagate linkage information from previous 6953 declarations. 6954 69552000-08-26 Gabriel Dos Reis <gdr@codesourcery.com> 6956 6957 * ir.texi (Expressions): Fix typo. 6958 69592000-08-25 Greg McGary <greg@mcgary.org> 6960 6961 * tree.c (init_tree): Use ARRAY_SIZE. 6962 69632000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 6964 6965 * error.c (cp_tree_printer): Rework. 6966 69672000-08-25 Mark Mitchell <mark@codesourcery.com> 6968 6969 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and 6970 dyn-string.o. 6971 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c. 6972 (cp-demangle.o): Remove target. 6973 (dyn-string.o): Likewise. 6974 6975 * decl.c (grokfndecl): Require that `main' return an `int'. 6976 * mangle.c (write_encoding): Don't mangle return types for 6977 conversion functions. 6978 69792000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 6980 6981 * error.c (tree_formatting_info): New data type. 6982 (tree_being_formatted): New macro. 6983 (tree_formatting_flags): Likewise. 6984 (put_whitespace): Likewise. 6985 (print_tree_identifier): Likewise. 6986 (print_identifier): Likewise. 6987 (cp_tree_printer, print_function_argument_list, print_declaration, 6988 print_expression, print_function_declaration, 6989 print_function_parameter, print_type, print_cv_qualifier): New 6990 functions. 6991 (init_error): Initialize lang_printer. 6992 69932000-08-24 Jason Merrill <jason@redhat.com> 6994 6995 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no 6996 adjustment necessary. 6997 69982000-08-24 Greg McGary <greg@mcgary.org> 6999 7000 * cp-tree.h (MAIN_NAME_P): Remove macro. 7001 70022000-08-24 Gabriel Dos Reis <gdr@codesourcery.com> 7003 7004 * error.c (print_instantiation_context): Don't forget to flush the 7005 buffer. 7006 70072000-08-23 Jason Merrill <jason@redhat.com> 7008 7009 * typeck.c (build_ptrmemfunc): Save the input pmf. 7010 7011 * method.c (process_modifiers): Use same_type_p. 7012 70132000-08-23 Mark Mitchell <mark@codesourcery.com> 7014 7015 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC. 7016 * mangle.c (write_function_type): Change prototype. 7017 (write_encoding): Don't mangle return types for 7018 constructors or destructors. 7019 (write_type): Adjust call to write_function_type. 7020 * pt.c (instantiate_template): Instantiate alternate entry points 7021 when instantiating the main function. 7022 70232000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 7024 7025 * error.c (cp_print_error_function): Don't use embedded '\n' in 7026 output_printf. 7027 70282000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 7029 7030 * decl.c (init_decl_processing): Remove bogus initialization. 7031 * error.c (lang_print_error_function): Restore here. 7032 (init_error): Initialize print_error_function. 7033 70342000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 7035 7036 * decl2.c (arg_assoc): Revert my 2000-08-11 change. 7037 70382000-08-22 Gabriel Dos Reis <gdr@codesourcery.com> 7039 7040 * Makefile.in (error.o): Depends on diagnostic.h 7041 7042 * cp-tree.h (problematic_instantiation_changed, 7043 record_last_problematic_instantiation, current_instantiation, 7044 print_instantiation_context): Declare. 7045 (maybe_print_template_context): Remove. 7046 7047 * decl.c (init_decl_processing): Set print_error_function to NULL. 7048 (lang_print_error_function): Remove, since we're using a new 7049 machinery. 7050 7051 * error.c: #include diagnostic.h 7052 (function_category): New function. 7053 (cp_diagnostic_starter): Likewise. 7054 (cp_diagnostic_finalizer): Likewise. 7055 (cp_print_error_function): Likewise. 7056 (maybe_print_instantiation_context): Likewise. 7057 (print_instantiation_full_context): Likewise. 7058 (print_instantiation_partial_context): Likewise. 7059 (print_instantiation_context): Define. 7060 (init_error): Initialize diagnostic pager and finalizer. 7061 7062 * pt.c (problematic_instantiation_changed): Define. 7063 (record_last_problematic_instantiation): Likewise. 7064 (current_instantiation): Likewise. 7065 (maybe_print_template_context): Remove. 7066 (print_template_context): Likewise. 7067 (current_tinst_level): Make static to reflect Brendan Kehoe's 7068 change of 1995-04-13. 7069 (push_tinst_level): Call print_instantiation_context. 7070 70712000-08-21 Nix <nix@esperi.demon.co.uk> 7072 7073 * lang-specs.h: Do not process -o or run the assembler if 7074 -fsyntax-only. 7075 70762000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> 7077 7078 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New 7079 variables. 7080 * decl2.c (lang_decode_option): Disable gettext attributes for 7081 -ansi. 7082 70832000-08-21 Gabriel Dos Reis <gdr@codesourcery.com> 7084 7085 * lex.c (lang_init_options): Default diagnostic message maximum 7086 length to 80, when line-wrapping. 7087 70882000-08-20 Mark Mitchell <mark@codesourcery.com> 7089 7090 * class.c (build_vtbl_initializer): Clear the entire 7091 vtbl_init_data. Start keeping track of the functions for which we 7092 have created vcall offsets here. 7093 (dfs_build_vcall_offset_vtbl_entries): Remove. 7094 (build_vcall_offset_vtbl_entries): Reimplement. 7095 (add_vcall_offset_vtbl_entries_r): New function. 7096 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for 7097 computing when vcall offsets are necessary. 7098 70992000-08-18 Nathan Sidwell <nathan@codesourcery.com> 7100 7101 * decl.c (member_function_or_else): Use cp_error ... %T. 7102 (grokdeclarator): Likewise. 7103 (start_method): Likewise. 7104 * friend.c (make_friend_class): Use cp_pedwarn ... %T. 7105 71062000-08-18 Nathan Sidwell <nathan@codesourcery.com> 7107 7108 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class 7109 TYPE_DECLs. 7110 71112000-08-18 Nathan Sidwell <nathan@codesourcery.com> 7112 7113 * cp-tree.h (PTRMEM_OK_P): New macro. 7114 (itf_ptrmem_ok): New enumeration value. 7115 * class.c (resolve_address_of_overloaded_function): Add PTRMEM 7116 argument. Diagnose implicit pointer to member. 7117 (instantiate_type): Don't diagnose implicit pointer to member 7118 here. Pass itf_ptrmem_ok if ok. Adjust calls to 7119 resolve_address_of_overloaded_function. 7120 * init.c (build_offset_ref): Set PTRMEM_OK_P. 7121 (resolve_offset_ref): Don't diagnose implicit pointer to member here. 7122 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here. 7123 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P. 7124 (build_unary_op): Deal with single non-static member in 7125 microsoft-land. 7126 71272000-08-18 Nathan Sidwell <nathan@codesourcery.com> 7128 7129 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE. 7130 71312000-08-18 Nathan Sidwell <nathan@codesourcery.com> 7132 7133 * cp-tree.h (enum_name_string): Remove prototype. 7134 (report_case_error): Remove prototype. 7135 * cp/typeck2.c (enum_name_string): Remove. 7136 (report_case_error): Remove. 7137 * error.c (dump_expr): Deal with enum values directly. 7138 Correctly negate integer constant. 7139 71402000-08-17 Nathan Sidwell <nathan@codesourcery.com> 7141 7142 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare. 7143 (__cxa_vec_delete2, __cxa_vec_delete3): Declare. 7144 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement. 7145 (__cxa_vec_delete2, __cxa_vec_delete3): Implement. 7146 (__cxa_vec_new): Use __cxa_vec_new2. 7147 (__cxa_vec_delete): Use __cxa_vec_delete2. 7148 71492000-08-17 Nathan Sidwell <nathan@codesourcery.com> 7150 7151 * vec.cc (__cxa_vec_new): Set "C" linkage. 7152 (__cxa_vec_ctor): Likewise. 7153 (__cxa_vec_cctor): Likewise. 7154 (__cxa_vec_dtor): Likewise. 7155 (__cxa_vec_delete): Likewise. 7156 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage. 7157 (__cxa_vec_ctor): Likewise. 7158 (__cxa_vec_cctor): Likewise. 7159 (__cxa_vec_dtor): Likewise. 7160 (__cxa_vec_delete): Likewise. 7161 71622000-08-17 Nathan Sidwell <nathan@codesourcery.com> 7163 7164 * class.c (instantiate_type): Reinstate local variable 7165 deleted in previous change. 7166 7167 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not 7168 itf_no_attributes. 7169 71702000-08-17 Nathan Sidwell <nathan@codesourcery.com> 7171 7172 * cp-tree.h (instantiate_type_flags): New enumeration. 7173 (instantiate_type): Change parameter. 7174 * class.c (instantiate_type): Adjust prototype. Adjust. 7175 * call.c (standard_conversion): Adjust instantiate_type call. 7176 (reference_binding): Likewise. 7177 (build_op_delete_call): Likewise. 7178 (convert_like_real): Likewise. 7179 * cvt.c (cp_convert_to_pointer): Likewise. 7180 (convert_to_reference): Likewise. 7181 * pt.c (convert_nontype_argument): Likewise. 7182 * typeck.c (build_binary_op): Likewise. 7183 (build_ptrmemfunc): Likewise. 7184 (convert_for_assignment): Likewise. 7185 71862000-08-17 Nathan Sidwell <nathan@codesourcery.com> 7187 7188 * cp-tree.h (CPTR_AGGR_TAG): New global tree node. 7189 (current_aggr): Define. 7190 * decl.c (grokdeclarator): Make sure a friend class is an 7191 elaborated type specifier. 7192 * parse.y (current_aggr): Remove static definition. 7193 (cp_parse_init): Adjust. 7194 (structsp): Clear and restore current_aggr. 7195 (component_decl_list): Clear current_aggr. 7196 7197 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the 7198 aggregate tag on the typename's context. 7199 7200 * pt.c (tsubst_friend_class): Return error_mark_node, if 7201 parms becomes NULL. 7202 (instantiate_class_template): Ignore error_mark_node friend types. 7203 72042000-08-14 Nathan Sidwell <nathan@codesourcery.com> 7205 7206 * cvt.c (warn_ref_binding): New static function, broken out of ... 7207 (convert_to_reference): ... here. Use it. 7208 72092000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 7210 7211 * parse.y (template_arg): Add rule for template qualified with 7212 global scope. 7213 72142000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 7215 7216 * decl2.c (add_function): Reorganize. 7217 (arg_assoc): Do not consider function template decls. 7218 72192000-08-11 Jason Merrill <jason@redhat.com> 7220 7221 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're 7222 looking inside. 7223 72242000-08-11 Nathan Sidwell <nathan@codesourcery.com> 7225 7226 * cp-tree.h (resolve_scope_to_name): Remove unused prototype. 7227 (lookup_nested_tag): Likewise. 7228 7229 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs 7230 can be produced. 7231 72322000-08-11 Nathan Sidwell <nathan@codesourcery.com> 7233 7234 * parse.y (named_complex_class_head_sans_basetype): Remove 7235 always true if. 7236 72372000-08-11 Nathan Sidwell <nathan@codesourcery.com> 7238 7239 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build 7240 explicit TEMPLATE_ID_EXPR args. 7241 (build_expr_from_tree, case CALL_EXPR): Likewise. 7242 72432000-08-11 Nathan Sidwell <nathan@codesourcery.com> 7244 7245 * decl.c (check_tag_decl): Diagnose typename's which don't 7246 declare anything. 7247 72482000-08-10 Nathan Sidwell <nathan@codesourcery.com> 7249 7250 * init.c (build_aggr_init): Reject bogus array initializers 7251 early. 7252 72532000-08-09 Nathan Sidwell <nathan@codesourcery.com> 7254 7255 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi 7256 runtime. 7257 * cp/tinfo.cc (__dynamic_cast): Likewise. 7258 * cp/inc/cxxabi.h (__dynamic_cast): Likewise. 7259 72602000-08-09 Nathan Sidwell <nathan@codesourcery.com> 7261 7262 * cvt.c (convert_to_pointer_force): Fix error message when 7263 attempting to cast from ambiguous base. 7264 72652000-08-08 Jason Merrill <jason@redhat.com> 7266 7267 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails. 7268 (tsubst_template_arg_vector): Likewise. 7269 7270 * decl2.c (build_anon_union_vars): Choose the largest field; don't 7271 assume that one will be as large as the union. 7272 72732000-08-07 Kazu Hirata <kazu@hxi.com> 7274 7275 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo. 7276 * decl.c (pop_labels): Likewise. 7277 72782000-08-04 Jeffrey Oldham <oldham@codesourcery.com> 7279 7280 * inc/cxxabi.h (__pbase_type_info): Changed member names to match 7281 specifications. 7282 (__pointer_to_member_type_info): Likewise. 7283 (__base_class_info): Likewise. 7284 (__class_type_info): Likewise. 7285 (__si_class_type_info): Likewise. 7286 (__vmi_class_type_info): Likewise. 7287 * tinfo.cc (__si_class_type_info::__do_find_public_src): 7288 Changed member names to match specifications. 7289 (__vmi_class_type_info::__do_find_public_src): Likewise. 7290 (__si_class_type_info::__do_dyncast): Likewise. 7291 (__vmi_class_type_info::__do_dyncast): Likewise. 7292 (__si_class_type_info::__do_upcast): Likewise. 7293 (__vmi_class_type_info::__do_upcast): Likewise. 7294 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise. 7295 (__pbase_type_info::__pointer_catch): Likewise. 7296 (__pointer_type_info::__pointer_catch): Likewise. 7297 (__pointer_to_member_type_info::__pointer_catch): Likewise. 7298 72992000-08-04 Zack Weinberg <zack@wolery.cumb.org> 7300 7301 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist. 7302 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS. 7303 (cc1plus): Link with $(BACKEND) and $(C_OBJS). 7304 73052000-08-04 Mark Mitchell <mark@codesourcery.com> 7306 7307 * cp-tree.h (add_method): Change prototype. 7308 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P. 7309 Don't double the size of the method vector in the error case. 7310 (handle_using_decl): Adjust call to add_method. 7311 (add_implicitly_declared_members): Likewise. 7312 (clone_function_decl): Likewise. 7313 * decl2.c (check_classfn): Likewise. 7314 * semantics.c (finish_member_declaration): Likewise. 7315 73162000-08-04 Joseph S. Myers <jsm28@cam.ac.uk> 7317 7318 * decl.c (flag_isoc94): New variable. 7319 73202000-08-02 Jason Merrill <jason@redhat.com> 7321 7322 * pt.c (do_type_instantiation): Add complain parm; don't complain 7323 if called recursively. 7324 * cp-tree.h, parse.y: Adjust. 7325 73262000-08-02 Zack Weinberg <zack@wolery.cumb.org> 7327 7328 * decl2.c: Silently ignore -Wstrict-prototypes; warn about 7329 -Wno-strict-prototypes. 7330 7331 * g++spec.c: Adjust type of second argument to 7332 lang_specific_driver, and update code as necessary. 7333 7334 * cp-tree.h: Don't prototype min_precision here. 7335 (my_friendly_assert): Cast expression to void. 7336 * semantics.c (do_poplevel): Initialize scope_stmts. 7337 73382000-08-02 Mark Mitchell <mark@codesourcery.com> 7339 7340 * cp-tree.h (DECL_NEEDED_P): Tweak. 7341 73422000-07-28 Jason Merrill <jason@redhat.com> 7343 7344 * lang-specs.h: Use %i in rule for .ii files. 7345 73462000-07-31 Zack Weinberg <zack@wolery.cumb.org> 7347 7348 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. 7349 73502000-07-30 Mark Mitchell <mark@codesourcery.com> 7351 7352 Allow indirect primary bases. 7353 * cp-tree.h (struct lang_type): Remove vfield_parent. Add 7354 primary_base. 7355 (CLASSTYPE_VFIELD_PARENT): Remove. 7356 (CLASSTYPE_PRIMARY_BINFO): Reimplement. 7357 (BINFO_PRIMARY_BINFO): Remove. 7358 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. 7359 (BINFO_VBASE_PRIMARY_P): Likewise. 7360 (BINFO_PRIMARY_BASE_OF): New macro. 7361 (BINFO_INDIRECT_PRIMARY_P): Likewise. 7362 (get_primary_binfo): New function. 7363 * decl.c (lang_mark_tree): Make lang_type::primary_base. 7364 * class.c (vcall_offset_data_s): Rename to ... 7365 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, 7366 and add ctor_vtbl_p. 7367 (get_derived_offset): Use get_primary_binfo. 7368 (dfs_mark_primary_bases): Adjust handling of virtual primary 7369 bases. 7370 (mark_primary_bases): Likewise. 7371 (set_primary_base): Take a binfo, not an integer, as a 7372 representation of the primary base. 7373 (indirect_primary_base_p): Remove. 7374 (determine_primary_base): Adjust for indirect primary bases. 7375 (dfs_find_final_overrider): Fix typo in coment. 7376 (update_vtable_entry_for_fn): Use get_primary_binfo. 7377 (layout_nonempty_base_or_field): Tweak. 7378 (build_base_fields): Adjust for new primary base semantics. 7379 (dfs_propagate_binfo_offsets): Remove. 7380 (propagate_binfo_offsets): Rewrite. 7381 (dfs_set_offset_for_shared_vbases): Remove. 7382 (layout_virtual_bases): Don't use it. 7383 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new 7384 ABI. 7385 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not 7386 CLASSTYPE_VFIELD_PARENT. 7387 (dfs_get_primary_binfo): New function. 7388 (get_primary_binfo): Likewise. 7389 (dump_class_hierarchy_r): Tweak printing of primary bases. 7390 (build_vtbl_initializer): Fix typo in comments. Use 7391 vtbl_init_data. 7392 (build_vcall_and_vbase_vtbl_entries): Likewise. 7393 (build_vbaes_offset_vtbl_entries): Likewise. 7394 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of 7395 BV_VCALL_INDEX to handle indirect primary bases. 7396 (build_vcall_offset_vtbl_entries): Use vtbl_init_data. 7397 (build_rtti_vtbl_entries): Likewise. 7398 * search.c (get_shared_vbase_if_not_primary): Tweak. 7399 (find_vbase_instance): Likewise. 7400 (binfo_for_vtable): Simplify. 7401 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. 7402 (make_binfo): Make it have 11 entries. 7403 74042000-07-30 Alex Samuel <samuel@codesourcery.com> 7405 7406 * mangle.c (DECL_TEMPLATE_ID_P): Remove. 7407 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when 7408 ascertaining primaryness. 7409 (G): Remove template_args. 7410 (decl_is_template_id): New function. 7411 (write_encoding): Use decl_is_template_id. 7412 (write_name): Likewise. Handle type_decls. Get main variant of 7413 type decls. 7414 (write_nested_name): Likewise. 7415 (write_prefix): Likewise. 7416 (write_template_prefix): Likewise. 7417 (write_special_name_constructor): Remove defunct production from 7418 comment. 7419 (write_bare_function_type): Remove comment about absent parameter. 7420 (write_template_template_arg): Add missing grammar production to 7421 comment. 7422 74232000-07-27 Jason Merrill <jason@redhat.com> 7424 7425 * decl.c (duplicate_decls): If common_type produces a non-typedef 7426 type for a typedef, just use the old type. 7427 74282000-07-27 Mark Mitchell <mark@codesourcery.com> 7429 7430 * cp-tree.h (function_depth): Declare. 7431 (verify_stmt_tree): Likewise. 7432 (find_tree): Likewise. 7433 * decl.c (function_depth): Give it external linkage. 7434 * optimize.c (optimize_function): Increment and decrement it. 7435 * tree.c (verify_stmt_tree_r): New function. 7436 (verify_stmt_tree): Likewise. 7437 (find_tree_r): Likewise. 7438 (find_tree): Likewise. 7439 74402000-07-27 Jason Merrill <jason@redhat.com> 7441 7442 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use 7443 TYPE_PTRMEMFUNC_P. 7444 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC. 7445 74462000-07-26 Mark Mitchell <mark@codesourcery.com> 7447 7448 * decl.c (start_cleanup_fn): Mark the function as `inline'. 7449 * decl2.c (get_guard): Call cp_finish_decl, not 7450 rest_of_decl_compilation, for local guards. 7451 * lex.c (do_identifier): Remove unused variable. 7452 7453Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 7454 7455 * parse.y: Add missing ';'. 7456 74572000-07-26 Mark Mitchell <mark@codesourcery.com> 7458 7459 * parse.y (empty_parms): Use `()', not `(...)', when in the scope 7460 of `extern "C++"'. 7461 74622000-07-25 Nathan Sidwell <nathan@codesourcery.com> 7463 7464 Kill strict_prototype. Backwards compatibility only for 7465 non NO_IMPLICIT_EXTERN_C systems. 7466 * cp-tree.h (flag_strict_prototype): Remove. 7467 (strict_prototype): Remove. 7468 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 7469 * decl.c (maybe_push_to_top_level): Adjust. 7470 (pop_from_top_level): Adjust. 7471 (decls_match): Only allow sloppy parm matching for ancient 7472 system headers. 7473 (init_decl_processing): Adjust. 7474 (grokdeclarator): Adjust. 7475 * decl2.c (flag_strict_prototype): Remove. 7476 (strict_prototype): Remove. 7477 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 7478 (lang_f_options): Remove "strict-prototype". 7479 (unsupported-options): Add "strict-prototype". 7480 * lex.c (do_identifier): Adjust. 7481 (do_scoped_id): Adjust. 7482 * parse.y (empty_parms): Adjust. 7483 * class.c (push_lang_context): Adjust. 7484 (pop_lang_context): Adjust. 7485 * typeck.c (comp_target_parms): Adjust. 7486 74872000-07-25 Nathan Sidwell <nathan@codesourcery.com> 7488 7489 * decl.c (poplevel): Deal with anonymous variables at for scope. 7490 (maybe_inject_for_scope_var): Likewise. 7491 74922000-07-25 Zack Weinberg <zack@wolery.cumb.org> 7493 7494 * decl.c: Remove all signal handling code, now done in toplev.c. 7495 74962000-07-23 Mark Mitchell <mark@codesourcery.com> 7497 7498 * decl.c (make_rtl_for_nonlocal_decl): Rework. 7499 7500 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set 7501 correctly. 7502 75032000-07-20 Zack Weinberg <zack@wolery.cumb.org> 7504 7505 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__. 7506 Define my_friendly_assert and my_friendly_abort as macros 7507 which may call friendly_abort. Prototype friendly abort, not 7508 my_friendly_abort or my_friendly_assert. 7509 * decl.c (signal_catch): Report the signal caught in the error 7510 message. Call fatal directly. 7511 * typeck2.c (ack, my_friendly_assert): Delete. 7512 (my_friendly_abort): Rename to friendly_abort. Expect file, 7513 line, and function parameters. Report the abort code, then 7514 call fancy_abort. Do not mask an abort if errors have 7515 already occurred. 7516 75172000-07-18 Nathan Sidwell <nathan@codesourcery.com> 7518 7519 * typeck.c (comp_target_parms): Remove obsolete parameter. 7520 (comp_target_types): Adjust. 7521 75222000-07-17 Jason Merrill <jason@redhat.com> 7523 7524 * typeck.c (mark_addressable): Never set TREE_USED. 7525 * call.c (build_call): Don't abort on calls to library functions 7526 that have been declared normally. 7527 7528 * typeck.c (build_binary_op): Fix grammar in warning. 7529 7530 * exception.cc (__eh_free): Fix prototype. 7531 7532 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR. 7533 7534 * decl.c (pushdecl): Handle seeing an OVERLOAD in 7535 IDENTIFIER_NAMESPACE_VALUE. 7536 75372000-07-16 Mark Mitchell <mark@codesourcery.com> 7538 7539 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation. 7540 * method.c (use_thunk): Correct handling of vcall offsets. 7541 75422000-07-14 Zack Weinberg <zack@wolery.cumb.org> 7543 7544 * .cvsignore: parse.h and parse.c have no cp- prefix. 7545 75462000-07-13 Mark Mitchell <mark@codesourcery.com> 7547 7548 * .cvsignore: New file. 7549 75502000-07-13 Zack Weinberg <zack@wolery.cumb.org> 7551 7552 * lang-specs.h: Use the new named specs. Remove unnecessary braces. 7553 75542000-07-12 Mark Mitchell <mark@codesourcery.com> 7555 7556 * Makefile.in ($(PARSE_H)): Depend directly on parse.y. 7557 * parse.c: Remove. 7558 * parse.h: Likewise. 7559 75602000-07-11 Mark Mitchell <mark@codesourcery.com> 7561 7562 * class.c (layout_class_type): Add pointers to virtual bases after 7563 base classes under the old ABI. 7564 75652000-07-10 Benjamin Chelf <chelf@codesourcery.com> 7566 7567 * semantics.c (finish_for_stmt): Remove call to emit_line_note. 7568 (finish_continue_stmt): Likewise. 7569 (begin_for_stmt): Remove call to note_level_for_for. 7570 (finish_goto_stmt): Change call from build_min_nt 7571 to build_stmt. 7572 (finish_expr_stmt): Likewise. 7573 (begin_if_stmt): Likewise. 7574 (begin_while_stmt): Likewise. 7575 (finish_while_stmt): Likewise. 7576 (finish_return_stmt): Likewise. 7577 (begin_for_stmt): Likewise. 7578 (finish_for_stmt): Likewise. 7579 (finish_break_stmt): Likewise. 7580 (begin_switch_stmt): Likewise. 7581 (finish_case_label): Likewise. 7582 (genrtl_try_block): Likewise. 7583 (begin_try_block): Likewise. 7584 (begin_handler): Likewise. 7585 (begin_compound_stmt): Likewise. 7586 (finish_asm_stmt): Likewise. 7587 (finish_label_stmt): Likewise. 7588 (add_decl_stmt): Likewise. 7589 (finish_subobject): Likewise. 7590 (finish_decl_cleanup): Likewise. 7591 (finish_named_return_value): Likewise. 7592 (setup_vtbl_ptr): Likewise. 7593 (add_scope_stmt): Likewise. 7594 * decl.c (finish_constructor_body): Likewise. 7595 (finish_destructor_body): Likewise. 7596 * optimize.c (copy_body_r): Likewise. 7597 (initialize_inlined_parameters): Likewise. 7598 (declare_return_variable): Likewise. 7599 (expand_call_inline): Likewise. 7600 76012000-07-10 Jakub Jelinek <jakub@redhat.com> 7602 7603 * semantics.c (expand_body): Sync interface information 7604 at the end of function body expansion. 7605 76062000-07-09 Jason Merrill <jason@redhat.com> 7607 7608 * init.c (build_new_1): Bail early if the call to new fails. 7609 7610 * decl.c (compute_array_index_type): Check specifically for 7611 an INTEGER_CST, not just TREE_CONSTANT. 7612 7613 * decl.c (duplicate_decls): Don't call duplicate_decls on 7614 the DECL_TEMPLATE_RESULT. 7615 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different 7616 codes. 7617 7618 * error.c (dump_template_bindings): Don't crash if we had an 7619 invalid argument list. 7620 7621 * typeck.c (c_expand_start_case): Do narrowing here. 7622 * semantics.c (finish_switch_cond): Not here. 7623 76242000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com> 7625 7626 * parse.y (asm_clobbers): Do string concatenation. 7627 76282000-07-09 Mark Mitchell <mark@codesourcery.com> 7629 7630 * decl.c (pushtag): Don't put local classes in template functions 7631 on the local_classes list. 7632 76332000-07-04 Scott Snyder <snyder@fnal.gov> 7634 7635 * decl2.c (get_guard): Add missing return for old ABI local 7636 variable case. 7637 76382000-07-09 Mark Mitchell <mark@codesourcery.com> 7639 7640 * cp-tree.h (char_type_p): New function. 7641 * decl.c (init_decl_processing): Don't initialize 7642 signed_wchar_type_node or unsigned_wchar_type_node. 7643 (complete_array_type): Handle brace-enclosed string-constants. 7644 * rtti.c (emit_support_tinfos): Remove #if 0'd code. 7645 * tree.c (char_type_p): New function. 7646 * typeck2.c (digest_init): Use char_type_p. 7647 76482000-07-06 Nathan Sidwell <nathan@codesourcery.com> 7649 7650 * pt.c (tsubst): Don't layout type, if it's error_mark. 7651 76522000-07-06 Nathan Sidwell <nathan@codesourcery.com> 7653 7654 * pt.c (instantiate_pending_templates): Reset template level. 7655 76562000-07-05 Jason Merrill <jason@redhat.com> 7657 7658 * call.c (joust): Don't complain about `operator char *()' beating 7659 `operator const char *() const'. 7660 76612000-07-04 scott snyder <snyder@fnal.gov> 7662 Jason Merrill <jason@redhat.com> 7663 7664 * repo.c (repo_get_id): Handle the case where a class with virtual 7665 bases has a null TYPE_BINFO_VTABLE. 7666 76672000-07-04 Kevin Buhr <buhr@stat.wisc.edu> 7668 Jason Merrill <jason@redhat.com> 7669 7670 * parse.y (member_init): Just pass in the type. 7671 * init.c (expand_member_init): Handle getting a type. 7672 76732000-07-04 Martin v. L�wis <loewis@informatik.hu-berlin.de> 7674 Jason Merrill <jason@redhat.com> 7675 7676 * decl.c (finish_function): Warn if a function has no return 7677 statement. 7678 Suggested by Andrew Koenig. 7679 * typeck.c (check_return_expr): Do set current_function_returns_value 7680 if we got an error_mark_node. 7681 76822000-07-03 Nathan Sidwell <nathan@codesourcery.com> 7683 7684 * decl2.c (push_decl_namespace): Push the original namespace. 7685 76862000-07-03 Nathan Sidwell <nathan@codesourcery.com> 7687 7688 * pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES. 7689 * semantics.c (begin_class_definition): Clear it. 7690 76912000-07-02 Benjamin Chelf <chelf@codesourcery.com> 7692 7693 * cp-tree.h (genrtl_goto_stmt): Remove declaration. 7694 (genrtl_expr_stmt): Likewise. 7695 (genrtl_decl_stmt): Likewise. 7696 (genrtl_if_stmt): Likewise. 7697 (genrtl_while_stmt): Likewise. 7698 (genrtl_do_stmt): Likewise. 7699 (genrtl_return_stmt): Likewise. 7700 (genrtl_for_stmt): Likewise. 7701 (genrtl_break_stmt): Likewise. 7702 (genrtl_continue_stmt): Likewise. 7703 (genrtl_scope_stmt): Likewise. 7704 (genrtl_switch_stmt): Likewise. 7705 (genrtl_case_label): Likewise. 7706 (genrtl_begin_compound_stmt): Likewise. 7707 (genrtl_finish_compound_stmt): Likewise. 7708 (genrtl_compound_stmt): Likewise. 7709 (genrtl_asm_stmt): Likewise. 7710 7711 * init.c (begin_init_stmts): Remove call to 7712 genrtl_begin_compound_stmt. 7713 (finish_init_stmts): Remove call to genrtl_finish_compound_stmt. 7714 7715 * semantics.c (lang_expand_stmt): Changed call to 7716 genrtl_compound_stmt to ignore return value. 7717 77182000-07-02 Mark Mitchell <mark@codesourcery.com> 7719 7720 * mangle.c (canonicalize_for_substitution): Return the canonical 7721 variant of a type. 7722 7723 * decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a 7724 TYPE_DECL. 7725 * typeck.c (commonparms): Remove obstack manipulations. 7726 77272000-07-01 Benjamin Chelf <chelf@codesourcery.com> 7728 7729 * Make-lang.in (cc1plus$(exeext)): Added c-semantics.o. 7730 7731 * Makefile.in (OBJS): Added ../c-semantics.o. 7732 (OBJDEPS): Likewise. 7733 7734 * cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to 7735 ../c-common.h. 7736 (struct stmt_tree): Added comment. 7737 (current_function_name_declared): Removed. 7738 (stmts_are_full_exprs_p): Likewise. 7739 (genrtl_do_pushlevel): Likewise. 7740 (genrtl_clear_out_block): Likewise. 7741 (COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h. 7742 (DECL_ANON_UNION_ELEMS): Likewise. 7743 (emit_local_var): Likewise. 7744 (make_rtl_for_local_static): Likewise. 7745 (do_case): Likewise. 7746 (expand_stmt): Likewise. 7747 (genrtl_decl_cleanup): Likewise. 7748 (c_expand_asm_operands): Likewise. 7749 (c_expand_return): Likewise. 7750 (c_expand_start_case): Likewise. 7751 7752 * decl.c (make_rtl_for_local_static): Moved to c-semantics.c. 7753 (emit_local_var): Likewise. 7754 (initialize_local_var): Change reference to 7755 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 7756 Change reference to stmts_are_full_exprs_p to 7757 current_stmt_tree->stmts_are_full_exprs_p. 7758 (push_cp_function_context): Likewise. 7759 7760 * expect.c (expand_throw): Change reference to 7761 stmts_are_full_exprs_p. 7762 7763 * init.c (build_aggr_init): Change reference to 7764 stmts_are_full_exprs_p. 7765 (build_vec_init): Likewise. 7766 7767 * optimize.c (maybe_clone_body): Change reference to 7768 current_function_name_declared to 7769 cp_function_chain->name_declared. 7770 7771 * pt.c (instantiate_decl): Change reference to 7772 current_function_name_declared to 7773 cp_function_chain->name_declared. 7774 7775 * semantics.c (expand_cond): Moved declaration to c-common.h. 7776 (genrtl_do_pushlevel): Moved to c-semantics.c. 7777 (genrtl_clear_out_block): Likewise. 7778 (genrtl_goto_stmt): Likewise. 7779 (genrtl_expr_stmt): Likewise. 7780 (genrtl_decl_stmt): Likewise. 7781 (gerntl_if_stmt): Likewise. 7782 (genrtl_while_stmt): Likewise. 7783 (genrtl_do_stmt): Likewise. 7784 (genrtl_return_stmt): Likewise. 7785 (genrtl_for_stmt): Likewise. 7786 (genrtl_break_stmt): Likewise. 7787 (genrtl_continue_stmt): Likewise. 7788 (genrtl_scope_stmt): Likewise. 7789 (genrtl_switch_stmt): Likewise. 7790 (genrtl_case_label): Likewise. 7791 (genrtl_begin_compound_stmt): Likewise. 7792 (genrtl_finish_compound_stmt): Likewise. 7793 (genrtl_compound_stmt): Likewise. 7794 (genrtl_asm_stmt): Likewise. 7795 (genrtl_decl_cleanup): Likewise. 7796 (expand_cond): Likewise. 7797 (expand_stmt): Renamed to ... 7798 (lang_expand_stmt): ... this. 7799 (lang_expand_expr_stmt): Initialize. 7800 (set_current_function_name_declared): Likewise. 7801 (stmts_are_full_exprs_p): Likewise. 7802 (current_function_name_declared): Likewise. 7803 (anon_aggr_type_p): Likewise. 7804 (do_poplevel): Change reference to 7805 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 7806 Change reference to stmts_are_full_exprs_p to 7807 current_stmt_tree->stmts_are_full_exprs_p. 7808 (add_tree): Likewise. 7809 (finish_expr_stmt): Likewise. 7810 (prep_stmt): Likewise. 7811 (lang_expand_stmt): Likewise. 7812 (begin_compound_stmt): Change reference to 7813 current_function_name_declared to 7814 cp_function_chain->name_declared and call to 7815 current_function_name_declared(). 7816 (setup_vtbl_ptr): Likewise. 7817 (genrtl_do_poplevel): Removed. 7818 78192000-06-30 Jason Merrill <jason@redhat.com> 7820 7821 * init.c (init_init_processing): Go back to aligning like 7822 double_type_node for old ABI. 7823 (get_cookie_size): Make cookie larger if we get a type that needs 7824 more alignment. 7825 (build_vec_delete): Call it. 7826 7827 * typeck.c (qualify_type_recursive): New fn. 7828 (composite_pointer_type): Use it. 7829 (build_binary_op): Use composite_pointer_type. 7830 78312000-06-24 Carlos O'Ryan <coryan@cs.wustl.edu> 7832 Jason Merrill <jason@redhat.com> 7833 7834 * typeck.c (check_return_expr): Don't complain about returning 7835 NULL from operator new if -fcheck-new. 7836 * cp-tree.h: Declare flag_check_new here. 7837 * init.c: Not here. 7838 78392000-06-28 Alex Samuel <samuel@codesourcery.com> 7840 7841 * mangle.c (find_substitution): Use same_type_p. 7842 (write_encoding): Don't check for substitutions. 7843 78442000-06-30 Nathan Sidwell <nathan@codesourcery.com> 7845 7846 * parse.y (expr_no_comma_rangle): New non-terminal. 7847 (template_parm): Use it for default parameter case. 7848 (template_arg): Use it. 7849 (expr_no_commas): Remove commented out undefined extensions. 7850 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 7851 * parse.h, parse.c: Rebuilt. 7852 78532000-06-30 Mark Mitchell <mark@codesourcery.com> 7854 7855 * semantics.c (genrtl_asm_stmt): Don't decay input operands here. 7856 (finish_asm_stmt): Do it here, instead. 7857 7858 * cp-tree.h (ridpointers): Don't declare. 7859 * decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX. 7860 (record_builtin_java_type): Likewise. 7861 (init_decl_processing): Likewise. 7862 * lex.c: Move inclusion of lex.h. 7863 (ridpointers): Don't define. 7864 (init_parse): Initialize ripdointers. Use CP_RID_MAX instead of 7865 RID_MAX. 7866 * lex.h (enum rid): Rename to ... 7867 (enum cp_rid): ... this. 7868 (ridpointers): Don't declare. 7869 * parse.y: Move inclusion of lex.h. 7870 * parse.c: Regenerated. 7871 * spew.c: Move inclusion of lex.h. 7872 7873 * cp-tree.h (struct language_function): Remove temp_name_counter. 7874 (temp_name_counter): Remove. 7875 (get_temp_name): Change prototype. 7876 (get_guard): New function. 7877 (get_guard_cond): Likewise. 7878 (set_guard): Likewise. 7879 * cvt.c (build_up_reference): Adjust call to get_temp_name. 7880 * decl.c (expand_static_init): Use get_guard and friends to 7881 implement guard variables. 7882 * decl2.c (get_temp_name): Assume that the variables created are 7883 always static. 7884 (get_sentry): Rename to ... 7885 (get_guard): ... this. Implement new ABI guard variables. 7886 (get_guard_bits): New function. 7887 (get_guard_cond): Likewise. 7888 (set_guard): Likewise. 7889 (start_static_initialization_or_destruction): Use them. 7890 (do_static_initialization): Replace sentry with guard throughout. 7891 (do_static_destruction): Likewise. 7892 * init.c (create_temporary_var): Add comment. 7893 78942000-06-28 Alex Samuel <samuel@codesourcery.com> 7895 7896 * mangle.c (find_substitution): Use same_type_p. 7897 (write_encoding): Don't check for substitutions. 7898 78992000-06-30 Nathan Sidwell <nathan@codesourcery.com> 7900 7901 * parse.y (expr_no_comma_rangle): New non-terminal. 7902 (template_parm): Use it for default parameter case. 7903 (template_arg): Use it. 7904 (expr_no_commas): Remove commented out undefined extensions. 7905 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 7906 * parse.h, parse.c: Rebuilt. 7907 79082000-06-29 Mark Mitchell <mark@codesourcery.com> 7909 7910 * cp-tree.h (flag_const_strings): Remove. 7911 (warn_parentheses): Likewise. 7912 (warn_format): Likewise. 7913 (common_type): Likewise. 7914 (default_conversion): Likewise. 7915 (build_binary_op): Likewise. 7916 (cp_build_binary_op): New macro. 7917 * call.c (build_new_op): Use cp_build_binary_op instead of 7918 build_binary_op. 7919 * class.c (build_vtable_entry_ref): Likewise. 7920 * decl.c (expand_static_init): Likewise. 7921 (compute_array_index_type): Likewise. 7922 (build_enumerator): Likewise. 7923 * decl2.c (delete_sanity): Likewise. 7924 (start_static_initialization_or_destruction): Likewise. 7925 * error.c (dump_type_suffix): Likewise. 7926 * init.c (resolve_offset_ref): Likewise. 7927 (build_new): Likewise. 7928 (build_new_1): Likewise. 7929 (build_vec_delete_1): Likewise. 7930 (build_vec_init): Likewise. 7931 (build_delete): Likewise. 7932 * rtti.c (synthesize_tinfo_fn): Likewise. 7933 (synthesize_tinfo_var): Likewise. 7934 * search.c (expand_upcast_fixups): Likewise. 7935 (fixup_all_virtual_upcast_offsets): Likewise. 7936 * typeck.c (build_array_ref): Likewise. 7937 (get_member_function_from_ptrfunc): Likewise. 7938 (build_binary_op): Add parameter. 7939 (pointer_int_sum): Use cp_build_binary_op. 7940 (pointer_diff): Likewise. 7941 (build_modify_expr): Likewise. 7942 (get_delta_difference): Likewise. 7943 (build_ptrmemfunc): Likewise. 7944 79452000-06-29 Nathan Sidwell <nathan@codesourcery.com> 7946 7947 * cp-tree.h (SET_DECL_ARTIFICIAL): Remove. 7948 * decl.c (create_implicit_typedef): Adjust. 7949 * decl2.c (build_artificial_parm): Adjust. 7950 * method.c (implicitly_declare_fn): Adjust. 7951 * pt.c (push_inline_template_parms_recursive): Adjust. 7952 (process_template_parm): Adjust. 7953 (overloaded_template_name): Adjust. 7954 * semantics.c (finish_template_template_parm): Adjust. 7955 79562000-06-28 Mark Mitchell <mark@codesourcery.com> 7957 7958 * cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove. 7959 * class.c (update_vtable_entry_for_fn): Correct logic for deciding 7960 where to emit thunks. 7961 (build_vtt): Adjust call to build_vtt_inits. 7962 (build_vtt_inits): Add parameter to indicate whether or not 7963 sub-VTTs for virtual bases should be included. Adjust handling of 7964 construction vtables. 7965 (get_matching_base): New function. 7966 (dfs_build_vtt_inits): Rename to ... 7967 (dfs_build_secondary_vptr_vtt_inits): Adjust handling of 7968 construction vtables. 7969 (dfs_fixup_binfo_vtbls): Likewise. 7970 (build_ctor_vtbl_groups): Build construction vtables for virtual 7971 bases, too. 7972 (accumulate_vtbl_inits): Tweak logic for deciding whether or not 7973 to build construction vtbls. 7974 (dfs_accumulate_vtbl_inits): Adjust handling of 7975 construction vtables. 7976 7977 * pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified 7978 types correctly. 7979 79802000-06-27 Mark Mitchell <mark@codesourcery.com> 7981 7982 * decl.c (grokfndecl): Set DECL_CONTEXT for static functions too. 7983 79842000-06-26 Nathan Sidwell <nathan@codesourcery.com> 7985 7986 * search.c (hides): Remove. 7987 (is_subobject_of_p): Add most_derived parameter. Use 7988 CANONICAL_BINFO. 7989 (lookup_field_queue_p): Adjust. 7990 (lookup_field_r): Adjust. 7991 79922000-06-26 Nathan Sidwell <nathan@codesourcery.com> 7993 7994 * decl2.c (handle_class_head): Bash typedefs to the type's main 7995 decl. 7996 79972000-06-25 Mark Mitchell <mark@codesourcery.com> 7998 7999 * cp-tree.h (genrtl_begin_stmt_expr): Rename to ... 8000 (begin_global_stmt_expr): ... this. 8001 (genrtl_finish_stmt_expr): Rename to ... 8002 (finish_global_stmt_expr): ... this. 8003 * init.c (begin_init_stmts): Adjust calls. 8004 (finish_init_stmts): Likewise. 8005 * semantics.c (genrtl_begin_stmt_expr): Rename to ... 8006 (begin_global_stmt_expr): ... this. 8007 (genrtl_finish_stmt_expr): Rename to ... 8008 (finish_global_stmt_expr): ... this. 8009 80102000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 8011 8012 * search.c (lookup_member): Fix typo in comment. 8013 80142000-06-24 Jason Merrill <jason@redhat.com> 8015 8016 * decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace. 8017 (push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL. 8018 80192000-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 8020 8021 * parse.y (complex_direct_notype_declarator): Support global_scope. 8022 * Makefile.in: Adjust conflict count. 8023 80242000-06-23 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 8025 8026 * parse.y (template_arg): Convert TEMPLATE_DECL 8027 that is a template template parameter to 8028 TEMPLATE_TEMPLATE_PARM here. 8029 8030 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment. 8031 * cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro. 8032 (copy_template_template_parm): Adjust prototype. 8033 * decl.c (grokdeclarator): Remove dead code. 8034 * pt.c (process_template_parm): Tidy. 8035 (lookup_template_class): Construct nodes in 8036 copy_template_template_parm. 8037 (tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to 8038 lookup_template_class. Use TYPE_TI_TEMPLATE. 8039 * tree.c (copy_template_template_parm): Add NEWARGS 8040 parameter. 8041 (mapcar): Adjust call to copy_template_template_parm. 8042 * typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. 8043 * method.c (build_template_template_parm_names): Change error 8044 code to avoid compilation warning. 8045 8046 * gxxint.texi: Document template template parameter 8047 name mangling. 8048 80492000-06-21 Alex Samuel <samuel@codesourcery.com> 8050 8051 * Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o. 8052 (CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c. 8053 (cp-demangle.o): New rule. 8054 (dyn-string.o): Likewise. 8055 * inc/cxxabi.h (__cxa_demangle): New declaration. 8056 80572000-06-22 Mark Mitchell <mark@codesourcery.com> 8058 8059 * cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. 8060 (BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise. 8061 (lang_decl_flags): Add generate_with_vtable_p. Make vcall_offset 8062 a tree, not an int. 8063 (THUNK_GENERATE_WITH_VTABLE_P): New macro. 8064 (make_thunk): Change prototype. 8065 (emit_thunk): Rename to use_thunk. 8066 (mangle_thunk): Change prototype. 8067 * class.c (get_derived_offset): Simplify. 8068 (copy_virtuals): Clear BV_USE_VCALL_INDEX_P and 8069 BV_GENERATE_THUNK_WITH_VTABLE_P. 8070 (build_primary_vtable): Simplify. 8071 (add_virtual_function): Use BV_FN, rather than TREE_VALUE. 8072 (dfs_find_base): Remove. 8073 (update_vtable_entry_for_fn): Correct bug in finding the base 8074 where a virtual function was first declared. Figure out whether 8075 or not to emit a vcall-thunk with the vtables in which it appears. 8076 Correct logic for deciding whether to use an ordinary thunk, or a 8077 vcall thunk. 8078 (finish_struct_1): Remove unnecssary code. 8079 (build_vtbl_initializer): Use ssize_int for the running counter of 8080 negative indices. 8081 (build_vtbl_initializer): Only use vcall thunks where necessary. 8082 Mark thunks as needing to be emitted with their vtables, or not. 8083 (build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in 8084 indices. Use size_binop. 8085 (dfs_build_vcall_offset_vtbl_entries): Don't rely on 8086 BINFO_PRIMARY_MARKED_P here. Use BV_FN consistently. Use 8087 size_binop. 8088 (build_rtti_vtbl_entries): Adjust call to build_vtable_entry. 8089 (build_vtable_entry): Mark thunks as needing to be emitted with 8090 their vtables, or not. 8091 * decl.c (lang_mark_tree): Mark the vcall_offset in a thunk. 8092 * decl2.c (mark_vtable_entries): Use use_thunk instead of 8093 emit_thunk. 8094 * dump.c (dequeue_and_dump): Remove dead code. Dump new thunk 8095 information. 8096 * error.c (dump_expr): Use BV_FN. 8097 * mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree, 8098 not an int. 8099 * method.c (make_thunk): Likewise. 8100 (emit_thunk): Rename to use_thunk. Allow callers to decide 8101 whether or not to actually emit the thunk. Adjust for changes in 8102 representation of vcall offsets. 8103 * search.c (dfs_get_pure_virtuals): Use BV_FN. 8104 * semantics.c (emit_associated_thunks): New function. 8105 (expand_body): Use it. 8106 * ir.texi: Adjust decriptions of thunks. 8107 81082000-06-22 Jason Merrill <jason@redhat.com> 8109 8110 * pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE. 8111 (tsubst_friend_function): Copy it here. 8112 8113 * decl.c (grok_op_properties): Fix typo. 8114 8115 * decl2.c (delete_sanity): Clarify warning, avoid failure on 8116 deleting void*. 8117 8118 * pt.c (check_explicit_specialization): Clarify error. 8119 8120 * decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from 8121 an old OVERLOAD when we're declaring a non-function. 8122 (pushdecl, destroy_local_var): Check for error_mark_node. 8123 (warn_extern_redeclared_static): Also bail early if 8124 we're a CONST_DECL. 8125 (push_overloaded_decl): Ignore an old error_mark_node. 8126 81272000-06-22 Nathan Sidwell <nathan@codesourcery.com> 8128 8129 * call.c (build_x_va_arg): Check if in a template decl. 8130 * pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg. 8131 81322000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 8133 8134 * class.c (push_lang_context): TYPE_NAME gets you to the Java 8135 types DECLs. 8136 * decl.c (check_goto): Computed gotos assumed OK. 8137 81382000-06-20 Jason Merrill <jason@redhat.com> 8139 8140 * pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs 8141 for which we don't need to look for instantiations. 8142 81432000-06-21 Nathan Sidwell <nathan@codesourcery.com> 8144 8145 * parse.y (program): Always call finish_translation_unit. 8146 * parse.c, parse.h: Rebuilt. 8147 81482000-06-20 Zack Weinberg <zack@wolery.cumb.org> 8149 8150 * method.c: Don't include hard-reg-set.h. 8151 81522000-06-20 Nathan Sidwell <nathan@codesourcery.com> 8153 8154 * rtti.c (get_base_offset): Cope when vbase field is in a base. 8155 81562000-06-20 Nathan Sidwell <nathan@codesourcery.com> 8157 8158 * call.c (build_conditional_expr): Use VOID_TYPE_P. 8159 * cvt.c (cp_convert_to_pointer): Likewise. 8160 (convert_to_void): Likewise. 8161 * error.c (dump_expr): Likewise. 8162 * except.c (complete_ptr_ref_or_void_ptr_p): Likewise. 8163 * init.c (build_delete): Likewise. 8164 * method.c (emit_thunk): Likewise. 8165 * optmize.c (declare_return_variable): Likewise. 8166 * rtti.c (get_tinfo_decl_dynamic): Likewise. 8167 (get_typeid): Likewise. 8168 (build_dynamic_cast_1): Likewise. 8169 * typeck.c (composite_pointer_type): Likewise. 8170 (common_type): Likewise. 8171 (build_indirect_ref): Likewise. 8172 (build_binary_op): Likewise. 8173 (build_x_compound_expr): Likewise. 8174 (check_return_expr): Likewise. 8175 * typeck2.c (add_exception_specifier): Likewise. 8176 8177 * mangle.c (write_method_parms): Use direct comparison for end 8178 of parmlist. 8179 81802000-06-19 Benjamin Chelf <chelf@codesourcery.com> 8181 8182 * cp-tree.h (genrtl_try_block): Declare function. 8183 (genrtl_handler): Likewise. 8184 (genrtl_catch_block): Likewise. 8185 (genrtl_ctor_stmt): Likewise. 8186 (genrtl_subobject): Likewise. 8187 (genrtl_decl_cleanup): Likewise. 8188 (genrtl_do_poplevel): Likewise. 8189 (genrtl_do_pushlevel): Likewise. 8190 (genrtl_clear_out_block): Likewise. 8191 (genrtl_goto_stmt): Likewise. 8192 (genrtl_expr_stmt): Likewise. 8193 (genrtl_decl_stmt): Likewise. 8194 (genrtl_if_stmt): Likewise. 8195 (genrtl_while_stmt): Likewise. 8196 (genrtl_do_stmt): Likewise. 8197 (genrtl_return_stmt): Likewise. 8198 (genrtl_for_stmt): Likewise. 8199 (genrtl_break_stmt): Likewise. 8200 (genrtl_continue_stmt): Likewise. 8201 (genrtl_scope_stmt): Likewise. 8202 (genrtl_switch_stmt): Likewise. 8203 (genrtl_case_label): Likewise. 8204 (genrtl_begin_compound_stmt): Likewise. 8205 (genrtl_finish_compound_stmt): Likewise. 8206 (genrtl_compound_stmt): Likewise. 8207 (genrtl_asm_stmt): Likewise. 8208 (genrtl_named_return_value): Likewise. 8209 (genrtl_begin_stmt_expr): Likewise. 8210 (genrtl_finish_stmt_expr): Likewise. 8211 (finish_for_stmt): Removed first argument. 8212 (finish_switch_stmt): Likewise. 8213 8214 * semantics.c (genrtl_try_block): Define function. 8215 (genrtl_handler): Likewise. 8216 (genrtl_catch_block): Likewise. 8217 (genrtl_ctor_stmt): Likewise. 8218 (genrtl_subobject): Likewise. 8219 (genrtl_decl_cleanup): Likewise. 8220 (genrtl_do_poplevel): Likewise. 8221 (genrtl_do_pushlevel): Likewise. 8222 (genrtl_clear_out_block): Likewise. 8223 (genrtl_goto_stmt): Likewise. 8224 (genrtl_expr_stmt): Likewise. 8225 (genrtl_decl_stmt): Likewise. 8226 (genrtl_if_stmt): Likewise. 8227 (genrtl_while_stmt): Likewise. 8228 (genrtl_do_stmt): Likewise. 8229 (genrtl_return_stmt): Likewise. 8230 (genrtl_for_stmt): Likewise. 8231 (genrtl_break_stmt): Likewise. 8232 (genrtl_continue_stmt): Likewise. 8233 (genrtl_scope_stmt): Likewise. 8234 (genrtl_switch_stmt): Likewise. 8235 (genrtl_case_label): Likewise. 8236 (genrtl_begin_compound_stmt): Likewise. 8237 (genrtl_finish_compound_stmt): Likewise. 8238 (genrtl_compound_stmt): Likewise. 8239 (genrtl_asm_stmt): Likewise. 8240 (genrtl_named_return_value): Likewise. 8241 (genrtl_begin_stmt_expr): Likewise. 8242 (genrtl_finish_stmt_expr): Likewise. 8243 (finish_for_stmt): Removed first argument and generate rtl 8244 specific code. 8245 (finish_switch_stmt): Likewise. 8246 (do_poplevel): Removed generate rtl specific code. 8247 (do_pushlevel): Likewise. 8248 (add_tree): Likewise. 8249 (finish_goto_stmt): Likewise. 8250 (finish_expr_stmt): Likewise. 8251 (begin_if_stmt): Likewise. 8252 (finish_if_stmt_cond): Likewise. 8253 (finish_then_clause): Likewise. 8254 (begin_else_clause): Likewise. 8255 (finish_else_clause): Likewise. 8256 (finish_if_stmt): Likewise. 8257 (clear_out_block): Likewise. 8258 (begin_while_stmt): Likewise. 8259 (finish_while_stmt_cond): Likewise. 8260 (finish_while_stmt): Likewise. 8261 (begin_do_stmt): Likewise. 8262 (finish_do_body): Likewise. 8263 (finish_do_stmt): Likewise. 8264 (finish_return_stmt): Likewise. 8265 (begin_for_stmt): Likewise. 8266 (finish_for_init_stmt): Likewise. 8267 (finish_for_cond): Likewise. 8268 (finish_for_expr): Likewise. 8269 (finish_break_stmt): Likewise. 8270 (finish_continue_stmt): Likewise. 8271 (begin_switch_stmt): Likewise. 8272 (finish_switch_cond): Likewise. 8273 (finish_case_label): Likewise. 8274 (begin_try_block): Likewise. 8275 (begin_function_try_block): Likewise. 8276 (finish_try_block): Likewise. 8277 (finish_cleanup_try_block): Likewise. 8278 (finish_cleanup): Likewise. 8279 (finish_function_try_block): Likewise. 8280 (finish_handler_sequence): Likewise. 8281 (finish_function_handler_sequence): Likewise. 8282 (begin_handler): Likewise. 8283 (finish_handler_parms): Likewise. 8284 (begin_catch_block): Likewise. 8285 (finish_handler): Likewise. 8286 (begin_compound_stmt): Likewise. 8287 (finish_compound_stmt): Likewise. 8288 (finish_asm_stmt): Likewise. 8289 (finish_label_stmt): Likewise. 8290 (finish_label_decl): Likewise. 8291 (finish_subobject): Likewise. 8292 (finish_decl_cleanup): Likewise. 8293 (finish_named_return_value): Likewise. 8294 (begin_stmt_expr): Likewise. 8295 (finish_stmt_expr): Likewise. 8296 8297 * decl.c (initialize_local_var): Changed call to finish_expr_stmt 8298 to call genrtl_expr_stmt when appropriate. 8299 8300 * init.c (begin_init_stmts): Changed calls to begin_stmt_expr and 8301 begin_compound_expr to call genrtl_begin_stmt_expr and 8302 genrtl_begin_compound_expr when appropriate. 8303 (finish_init_stmts): Changed calls to finish_compound_expr and 8304 finish_stmt_expr to call genrtl_finish_compound_expr and 8305 genrtl_finish_stmt_expr when appropriate. 8306 (expand_default_init): Changed call to finish_expr_stmt to call 8307 genrtl_expr_stmt when appropriate. 8308 (build_vec_init): Likewise. 8309 8310 * parse.y (simple_stmt): Removed first argument from call to 8311 finish_for_stmt. Removed first argument from call to 8312 finish_switch_stmt. 8313 8314 * parse.c: Regenerated. 8315 8316 * pt.c (tsubst_expr): Removed first argument from call to 8317 finish_for_stmt. Removed first argument from call to 8318 finish_switch_stmt. 8319 83202000-06-16 Benjamin Chelf <chelf@codesourcery.com> 8321 8322 * cp-tree.h (enum cplus_tree_code): Changed __DUMMY to 8323 CP_DUMMY_TREE_CODE. Remove #include "c-common.def". 8324 8325 * lex.c (cplus_tree_code_type[]): Removed #include "c-common.def". 8326 (cplus_tree_code_length[]): Likewise. 8327 (cplus_tree_code_name[]): Likewise. 8328 (init_parse): Added call to add_c_tree_codes. Changed 8329 LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE. 8330 83312000-06-16 Mark Mitchell <mark@codesourcery.com> 8332 8333 * cp-tree.h (finish_mem_initializers): Declare. 8334 (count_trees): Likewise. 8335 * parse.y (base_init): Use finish_mem_initializers. 8336 * semantics.c (finish_mem_initializers): New function. 8337 8338 * tree.c (count_trees_r): Prototype. Use DATA parameter to store 8339 the number of trees. 8340 (n_trees): Remove. 8341 (count_trees): Don't use it. 8342 83432000-06-15 Jason Merrill <jason@redhat.com> 8344 8345 * tree.c (count_trees): New debugging function. 8346 8347 * typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P. 8348 * init.c (build_member_call): Pull out the name of a DECL. 8349 8350 * Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H. 8351 * semantics.c (expand_body): Push to TV_INTEGRATION here. 8352 * optimize.c (optimize_function): Not here. 8353 * pt.c (instantiate_decl): Push to TV_PARSE. 8354 83552000-06-15 Mark Mitchell <mark@codesourcery.com> 8356 8357 * cp-tree.h (struct language_function): Remove x_base_init_list 8358 and x_member_init_list. 8359 (current_base_init_list): Remove. 8360 (current_member_init_list): Likewise. 8361 (setup_vtbl_ptr): Change prototype. 8362 (emit_base_init): Likewise. 8363 (expand_member_init): Likewise. 8364 (reinit_parse_for_function): Remove. 8365 * decl.c (save_function_data): Don't clear x_base_init_list and 8366 x_member_init_list. 8367 (mark_language_function): Don't mark them. 8368 * init.c (perform_member_init): Tweak comment. 8369 (sort_member_init): Take the list of initializers as an argument. 8370 (sort_base_init): Likewise. 8371 (emit_base_init): Likewise. 8372 (expand_member_init): Return the initializer. Don't use global 8373 variables. 8374 * lex.c (reinit_parse_for_function): Remove. 8375 * method.c (build_template_parm_names): Correct substitution. 8376 (do_build_copy_constructor): Don't use current_member_init_list 8377 and current_base_init_list. 8378 (synthesize_method): Likewise. 8379 * parse.y (base_init): Split mem-initializers into 8380 base-initializers and field-initializers. 8381 (member_init_list): Build up the list here. 8382 (member_init): Return the initializer. 8383 (fn.depfn): Don't use reinit_parse_for_function. 8384 * parse.c: Regenerated. 8385 * pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the 8386 ERROR_MARK. 8387 (tsubst_expr): Don't use current_member_init_list 8388 and current_base_init_list. 8389 (tsubst_expr_values): Rename to ... 8390 (tsubst_initializer_list): ... this. Use convert_from_reference. 8391 * semantics.c (setup_vtbl_ptr): Don't use current_member_init_list 8392 and current_base_init_list. 8393 (begin_function_definition): Don't call reinit_parse_for_function. 8394 8395 * dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors. 8396 8397 * error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE 8398 correctly. 8399 8400 * cp-tree.h (DECL_PENDING_INLINE_P): Relax checking. 8401 84022000-06-14 Benjamin Chelf <chelf@codesourcery.com> 8403 8404 * cp-tree.h (IF_COND): Move to c-common.h. 8405 (THEN_CLAUSE): Likewise. 8406 (ELSE_CLAUSE): Likewise. 8407 (WHILE_COND): Likewise. 8408 (WHILE_BODY): Likewise. 8409 (DO_COND): Likewise. 8410 (DO_BODY): Likewise. 8411 (RETURN_EXPR): Likewise. 8412 (EXPR_STMT_EXPR): Likewise. 8413 (FOR_INIT_STMT): Likewise. 8414 (FOR_COND): Likewise. 8415 (FOR_EXPR): Likewise. 8416 (FOR_BODY): Likewise. 8417 (SWITCH_COND): Likewise. 8418 (SWITCH_BODY): Likewise. 8419 (CASE_LOW): Likewise. 8420 (CASE_HIGH): Likewise. 8421 (GOTO_DESTINATION): Likewise. 8422 (COMPOUND_BODY): Likewise. 8423 (ASM_CV_QUAL): Likewise. 8424 (ASM_STRING): Likewise. 8425 (ASM_OUTPUTS): Likewise. 8426 (ASM_INPUTS): Likewise. 8427 (ASM_CLOBBERS): Likewise. 8428 (DECL_STMT_DECL): Likewise. 8429 (STMT_EXPR_STMT): Likewise. 8430 (LABEL_STMT_LABEL): Likewise. 8431 (SCOPE_BEGIN_P): Likewise. 8432 (SCOPE_END_P): Likewise. 8433 (SCOPE_STMT_BLOCK): Likewise. 8434 (SCOPE_NULLIFIED_P): Likewise. 8435 (SCOPE_NO_CLEANUPS_P): Likewise. 8436 (SCOPE_PARTIAL_P): Likewise. 8437 (ASM_VOLATILE_P): Likewise. 8438 (STMT_LINENO): Likewise. 8439 (STMT_LINENO_FOR_FN_P): Likewise. 8440 8441 * cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR, 8442 ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, 8443 FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, 8444 CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, 8445 SCOPE_STMT, CASE_LABEL, STMT_EXPR. 8446 8447 * Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def. 8448 8449 * Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def. 8450 (cc1plus$(exeext)): Added $(srcdir)/c-common.def. 8451 8452 * lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'. 8453 (cplus_tree_code_length[]): Added '#include "c-common.def"'. 8454 (cplus_tree_code_name[]): Added '#include "c-common.def"'. 8455 84562000-06-14 Mark Mitchell <mark@codesourcery.com> 8457 8458 * cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro. 8459 * class.c (dfs_find_final_overrider): Set it appropriately. 8460 (dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to 8461 avoid unneeded secondary vptrs. 8462 84632000-06-13 Jakub Jelinek <jakub@redhat.com> 8464 8465 * class.c (build_secondary_vtable): Set DECL_USER_ALIGN. 8466 (check_bitfield_decl, check_field_decl): Likewise. 8467 (build_vtbl_or_vbase_field, build_base_field): Likewise. 8468 (layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN. 8469 * decl.c (record_unknown_type): Set TYPE_USER_ALIGN. 8470 (xfer_tag, finish_enum): Likewise. 8471 * decl2.c (finish_builtin_type): Likewise. 8472 * init.c (init_init_processing): Likewise. 8473 * pt.c (instantiate_class_template): Likewise. 8474 * rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN. 8475 * cp-tree.h (struct lang_type): Add user_align member. 8476 (CLASSTYPE_USER_ALIGN): Define. 8477 8478Tue Jun 13 15:48:03 2000 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 8479 8480 * Make-lang.in (c++.install-common): Install g++-cross in 8481 $(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as 8482 $(target_alias)-g++ and $(target_alias)-c++. 8483 84842000-06-12 Mark Mitchell <mark@codesourcery.com> 8485 8486 * class.c (vcall_offset_data_s): Add last_init and fns. 8487 (overrides): Rename to same_signature_p. 8488 (dfs_find_final_overrider): Adjust accordingly. 8489 (mark_overriders): Likewise. 8490 (warn_hidden): Likewise. 8491 (build_vtbl_initializer): Reorganize machinery for building things 8492 at negative offsets. 8493 (build_vcall_and_vbase_vtbl_entries): Likewise. 8494 (build_vbase_offset_vtbl_entries): Likewise. 8495 (dfs_build_vcall_offset_vtbl_entries): Correct order of vcall 8496 offset entries. Do not create two entries for functions with the 8497 same signature. 8498 (build_vcall_offset_vtbl_entries): Initialize vod->fns. 8499 (build_rtti_vtbl_entries): Reorganize machinery for building things 8500 at negative offsets. 8501 8502 * optimize.c (expand_call_inline): Don't recurse into the code 8503 used to initialize the parameters more than once. 8504 85052000-06-11 Mark Mitchell <mark@codesourcery.com> 8506 8507 * mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment. 8508 (is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here. 8509 (find_substitution): Only use the `Sa' substitution for 8510 std::allocator, not instantiations of it. 8511 (write_template_prefix): Move comment. Only use a TREE_LIST to 8512 represent substitutions for a member template. 8513 (write_array_type): Mangle array dimensions correctly. 8514 * optimize.c (maybe_clone_body): Copy more information from the 8515 cloned function. 8516 * pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE 8517 on the regenerated declaration. 8518 85192000-06-11 Chip Salzenberg <chip@valinux.com> 8520 Mark Mitchell <mark@codesourcery.com> 8521 8522 * class.c (build_vtable): Clarify comment. 8523 (build_ctor_vtbl_group): Pass the most derived type to 8524 build_vtable. 8525 85262000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8527 8528 * decl2.c (compare_options): Don't needlessly cast away const-ness. 8529 85302000-06-10 Mark Mitchell <mark@codesourcery.com> 8531 8532 * decl.c (add_binding): Handle duplicate declarations of external 8533 variables. 8534 85352000-06-09 Chip Salzenberg <chip@valinux.com> 8536 Mark Mitchell <mark@codesourcery.com> 8537 8538 * mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an 8539 argument. 8540 (write_signed_number): New macro. 8541 (write_unsigned_number): Likewise. 8542 (write_source_name): Use them. 8543 (write_number): Handle signed and unsigned values. 8544 (write_integer_cst): Use tree_int_cst_sgn, and use 8545 write_unsigned_number or write_signed_number as appropriate. 8546 (write_discriminator): Use write_unsigned_number or 8547 write_signed_number as appropriate. 8548 (write_template_arg_literal): Likewise. 8549 (write_array_type): Use tree_low_cst. 8550 (write_template_parm): Use write_unsigned_number or 8551 write_signed_number as appropriate. 8552 (write_substitution): Adjust call to write_number. 8553 (write_type): Get the TYPE_MAIN_VARIANT before mangling it. 8554 (write_expression): Handle non-type template arguments of 8555 reference type correctly. 8556 (mangle_thunk): Use write_signed_number. 8557 85582000-06-09 Chip Salzenberg <chip@valinux.com> 8559 8560 * mangle.c (find_substition): Don't mangle objects with typename 8561 substitutions (e.g. "cin" as "Si"). 8562 85632000-06-09 Zack Weinberg <zack@wolery.cumb.org> 8564 8565 * call.c (add_candidate): Use ggc_alloc_cleared. 8566 * decl.c (lookup_label): Likewise. 8567 * lex.c (retrofit_lang_decl): Likewise. 8568 85692000-06-09 Jason Merrill <jason@casey.soma.redhat.com> 8570 8571 * semantics.c (expand_body): Push to TV_EXPAND. 8572 * optimize.c (optimize_function): Push to TV_INTEGRATION. 8573 * decl.c (start_function): Always call announce_function. 8574 8575 * tinfo2.cc: Just declare abort. 8576 85772000-06-09 Gabriel Dos Reis <gdr@codesourcery.com> 8578 8579 * lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @' 8580 whenever @ is a symbolic name. 8581 85822000-06-08 Jakub Jelinek <jakub@redhat.com> 8583 8584 * method.c (make_thunk): Clear DECL_VTT_PARM in thunk. 8585 85862000-06-07 Mark Mitchell <mark@codesourcery.com> 8587 8588 * decl.c (pushdecl): Look up functions by DECL_NAME, not 8589 DECL_ASSEMBLER_NAME. 8590 85912000-06-06 Mark Mitchell <mark@codesourcery.com> 8592 8593 * decl2.c (c_language): Define. 8594 85952000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 8596 8597 * lex.c (lang_init_options): Tweak. 8598 8599 * decl2.c: Remove #inclusion of diagnostic.h 8600 (lang_decode_option): Move diagnostic formatting options to 8601 toplevel. 8602 8603 * lang-options.h: Remove documentation for diagnostic options. 8604 8605 * Makefile.in (lex.o): Depends upon diagnostic.h 8606 86072000-06-06 Mark Mitchell <mark@codesourcery.com> 8608 8609 * decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have 8610 the same DECL_RESULT, it's not a redefinition. 8611 * pt.c (tsubst_decl): Remove code to handle illegal 8612 specializations. 8613 86142000-06-06 Nathan Sidwell <nathan@codesourcery.com> 8615 8616 * exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c 8617 86182000-06-05 Jason Merrill <jason@casey.soma.redhat.com> 8619 8620 * search.c (maybe_suppress_debug_info): Don't check 8621 CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set. 8622 8623 * pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION 8624 here if extern_p. 8625 8626 Remember instantiation context in deferred instantiations. 8627 * cp-tree.h (struct tinst_level): Remove. 8628 (TINST_DECL, TINST_LINE, TINST_FILE): New macros. 8629 * pt.c (current_tinst_level): Now a tree. 8630 (print_template_context, push_tinst_level, pop_tinst_level, 8631 tinst_for_decl): Adjust. 8632 (reopen_tinst_level): New fn. 8633 (init_pt): Register current_tinst_level as a root. 8634 (add_pending_template): Put current_tinst_level in TREE_PURPOSE 8635 of the pending templates list. 8636 (instantiate_pending_templates): Adjust. Call reopen_tinst_level. 8637 * lex.c (extract_interface_info): Adjust. 8638 * decl2.c (warn_if_unknown_interface): Adjust. 8639 86402000-06-05 Mark Mitchell <mark@codesourcery.com> 8641 8642 * class.c (indirect_primary_base_p): New function. 8643 (determine_primary_base): Use it. 8644 86452000-06-05 Nathan Sidwell <nathan@codesourcery.com> 8646 8647 Update new-abi dynamic cast algorithm. 8648 * tinfo.cc (__class_type_info::__dyncast_result): Add 8649 whole_details. Adjust constructor. 8650 (__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags. 8651 Avoid unnecessary searching. 8652 (__dynamic_cast): Adjust for __dyncast_result::whole_details. 8653 8654Mon Jun 5 06:48:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8655 8656 * decl.c (init_decl_processing): Don't call record_component_aliases. 8657 * tree.c (build_cplus_array_type_1): Likewise. 8658 86592000-06-04 Mark Mitchell <mark@codesourcery.com> 8660 8661 * ir.texi: Correct typo. 8662 * mangle.c (write_expression): Handle non-type template arguments 8663 with reference type. 8664 * method.c (build_overload_value): Likewise. 8665 * pt.c (convert_nontype_argument): Explicitly represent conversion 8666 to a reference with an ADDR_EXPR. 8667 (unify): Always unify arguments in left-to-right order. 8668 86692000-06-03 Alex Samuel <samuel@codesourcery.com> 8670 Mark Mitchell <mark@codesourcery.com> 8671 8672 * Make-lang.in (CXX_SRCS): Add mangle.c. 8673 * Makefile.in (CXX_OBJS): Add mangle.o. 8674 (mangle.o): New rule. 8675 8676 * class.c (local_classes): New variable. 8677 * class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI. 8678 (get_vtt_name): Use mangle_vtt_name for new ABI. 8679 (init_class_processing): Initialize local_classes. 8680 (build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI. 8681 * cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER. 8682 (std_identifier): New macro. 8683 (DECL_VOLATILE_MEMFUNC_P): New macro. 8684 (DECL_NAMESPACE_STD_P): Likewise. 8685 (local_classes): Declare. 8686 (get_mostly_instantiated_function_type): Declare. 8687 (init_mangle): Declare. 8688 (mangle_decl): Likewise. 8689 (mangle_type_string): Likewise. 8690 (mangle_type): Likewise. 8691 (mangle_typeinfo_for_type): Likewise. 8692 (mangle_typeinfo_string_for_type): Likewise. 8693 (mangle_vtbl_for_type): Likewise. 8694 (mangle_vtt_for_type): Likewise. 8695 (mangle_ctor_vtbl_for_type): Likewise. 8696 (mangle_thunk): Likewise. 8697 (mangle_conv_op_name_for_type): Likewise. 8698 (mangle_guard_variable): Likewise. 8699 * decl.c (pushtag): Keep track of local classes. 8700 (initialize_predefined_identifiers): Initialize std_identifier. 8701 (init_decl_processing): Use std_identifier. 8702 (start_decl): Don't treat instantiations as specializations. 8703 (grokdeclarator): Likewise. 8704 (grokvardecl): Call mangle_decl for new ABI. Only set mangled 8705 name for fully-instantiated templates. 8706 * decl2.c (grokclassfn): Use set_mangled_name_for_decl for 8707 destructors with the new ABI. 8708 (finish_static_data_member_decl): Use mangle_decl under the new ABI. 8709 (grokfield): Use mangle_type for new ABI. 8710 (grokoptypename): Use mangle_conv_op_for_type for new ABI. 8711 (get_sentry): Use mangle_guard_variable for new ABI. 8712 (start_static_initialization_or_destruction): Likewise. 8713 * expr.c (extract_aggr_init): Remove. 8714 (extract_scalar_init): Likewise. 8715 (extract_init): Remove #if 0'd code. 8716 * mangle.c: New function. 8717 * method.c (build_mangled_name): Assert not flag_new_abi. 8718 (build_static_name): Likewise. 8719 (build_decl_overload_real): Likewise. 8720 (build_typename_overload): Likewise. 8721 (build_overload_with_type): Likewise. 8722 (build_overload_name): Likewise. 8723 (get_ctor_vtbl_name): Likewise. 8724 (start_squangling): Likewise. 8725 (get_id_2): Likewise. 8726 (set_mangled_name_for_decl): Call mangle_decl for new ABI. 8727 (init_method): Call init_mangle for new ABI. 8728 (make_thunk): Call mangle_thunk for new ABI. 8729 * operators.def: Correct new ABI manglings for the `%' operator. 8730 Add `::' operator. 8731 * pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and 8732 DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL. 8733 (lookup_template_class): Call mangle_decl for new ABI. 8734 (get_mostly_instantiated_function_type): New function. 8735 (set_mangled_name_for_template_decl): Use it. 8736 (tsubst_decl): Use set_mangled_name_for_decl for destructors with 8737 the new ABI. Use mangle_conv_op_name_for_type for instantiated 8738 conversion op names. 8739 * rtti.c (tinfo_name): Call mangle_type_string for new ABI. 8740 (get_tinfo_decl): Call mangle_typeinfo_for_type for new ABI. 8741 (tinfo_base_init): Likewise. Mangle typeinfo string name with 8742 mangle_typeinfo_string_for_type. 8743 87442000-06-03 Mark Mitchell <mark@codesourcery.com> 8745 8746 * cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. 8747 (INNERMOST_TEMPLATE_ARGS): New macro. 8748 (innermost_args): Remove. 8749 (get_innermost_template_args): New function. 8750 * decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS. 8751 * error.c (dump_function_decl): Be caution when using 8752 most_general_template. 8753 * method.c (build_template_parm_names): Use 8754 INNERMOST_TEMPLATE_ARGS. 8755 * pt.c (add_to_template_args): Tidy comment 8756 (get_innermost_template_args): New function. 8757 (check_explicit_specialization): Clear DECL_INITIAL for a new 8758 specialization. 8759 (process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS. 8760 Tidy. 8761 (push_template_decl): Always register specializations of the most 8762 general template. 8763 (convert_template_argument): Use INNERMOST_TEMPLATE_ARGS. 8764 (coerce_template_parms): Likewise. 8765 (lookup_template_class): Likewise. 8766 (innermost_args): Remove. 8767 (tsubst_decl): Use INNERMOST_TEMPLATE_ARGS. 8768 (tsubst_decl): Handle tricky specializations. Use 8769 get_innermost_template_args. 8770 (instantiate_template): Simplify handling of partial 8771 instantiations. 8772 (get_class_bindings): Use INNERMOST_TEMPLATE_ARGS. 8773 (most_general_template): Reimplement, in a more straightforward 8774 manner. 8775 (regenerate_decl_from_template): Tweak formatting. Use 8776 TMPL_ARGS_DEPTH for clarity. 8777 (set_mangled_name_for_template_decl): Use INNERMOST_ARGS. 8778 8779 * dump.c (dequeue_and_dump): Dump information about thunks. 8780 87812000-06-01 Richard Henderson <rth@cygnus.com> 8782 8783 * decl.c (init_decl_processing): Set lang_get_alias_set first thing. 8784 87852000-06-01 Richard Henderson <rth@cygnus.com> 8786 8787 * decl2.c (unsupported_options): Fix typo, make const. 8788 (lang_decode_option): Fix bsearch argument order. 8789 87902000-06-01 Mark Mitchell <mark@codesourcery.com> 8791 8792 * init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE 8793 on FIELD_DECLs. 8794 8795Wed May 31 14:09:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8796 8797 * cp-tree.h (c_get_alias_set): Deleted. 8798 * Makefile.in (decl.o): Include ../expr.h. 8799 * decl.c (expr.h): Include. 8800 (init_decl_processing): Call record_component_aliases for arrays. 8801 (grokdeclarator): Likewise. 8802 Set TREE_ADDRESSABLE for fields that aren't bitfields. 8803 * tree.c (build_cplus_array_type_1): Call record_component_aliases. 8804 88052000-05-31 Mark Mitchell <mark@codesourcery.com> 8806 8807 Remove guiding declaration support. 8808 * cp/cp-tree.h (flag_dump_translation_unit): Make it const. 8809 (flag_guiding_decls): Remove. 8810 * call.c (build_user_type_conversion_1): Remove support for 8811 guiding decls. 8812 (build_new_function_call): Likewise. 8813 (build_new_op): Likewise. 8814 (build_new_method_call): Likewise. 8815 * decl.c (start_function): Likewise. 8816 * friend.c (is_friend): Likewise. 8817 (do_friend): Likewise. 8818 * decl2.c ((flag_dump_translation_unit): Make it const. 8819 (flag_guiding_decls): Remove. 8820 (unsupported_options): New variable 8821 (compare_options): New function. 8822 (lang_decode_option): Use them. 8823 8824 * decl.c (build_cp_library_fn): Set DECL_CONTEXT. 8825 8826 * method.c (mangle_expression): Adjust test for legal expression 8827 operators. 8828 8829 * pt.c (instantiate_decl): Save and restore the local 8830 specializations list. 8831 88322000-05-30 Jason Merrill <jason@decepticon.cygnus.com> 8833 8834 * decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING. 8835 88362000-05-30 Mark Mitchell <mark@codesourcery.com> 8837 8838 * call.c (add_template_candidate_real): Handle member template 8839 constructors for classes with virtual bases. 8840 (build_user_type_conversion_1): Use in_charge_arg_for_name. 8841 (build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P. 8842 8843 * ir.texi: Update thunk documentation. 8844 8845 * call.c (joust): Fix handling of overloaded builtin operators. 8846 88472000-05-30 Zack Weinberg <zack@wolery.cumb.org> 8848 8849 * cp-tree.h (DECL_ANTICIPATED): New macro. 8850 Document new use of DECL_LANG_FLAG_7. 8851 * decl.c (builtin_function): Set DECL_ANTICIPATED on builtins 8852 in the user namespace. 8853 * lex.c (do_identifier): If the identifier's declaration has 8854 DECL_ANTICIPATED on, it has not yet been declared. But do not 8855 replace it with an ordinary implicit declaration. 8856 8857 * tinfo2.cc: Include stdlib.h. 8858 88592000-05-29 Mark Mitchell <mark@codesourcery.com> 8860 8861 * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. 8862 * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not 8863 CLASSTYPE_ALIGN. 8864 88652000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> 8866 8867 * decl2.c (lang_decode_option): Use skip_leading_substring instead 8868 of plain strncmp. 8869 88702000-05-28 Alexandre Oliva <aoliva@cygnus.com> 8871 8872 * operators.def (<?): Duplicated, should have been... 8873 (>?): this. Fixed. 8874 88752000-05-27 Alex Samuel <samuel@codesourcery.com> 8876 Mark Mitchell <mark@codesourcery.com> 8877 8878 * cp-tree.h (ansi_opname): Make it a macro. 8879 (ansi_assopname): Likewise. 8880 (struct lang_decl_flags): Add assignment_operator_p. 8881 (struct lang_decl): Add operator_code. 8882 (DECL_VTT_PARM): Adjust. 8883 (DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an 8884 overloaded operator. 8885 (SET_OVERLOADED_OPERATOR_CODE): New macro. 8886 (DECL_ASSIGNMENT_OPERATOR_P): New macro. 8887 (DECL_ARRAY_DELETE_OPERATOR_P): Adjust. 8888 (opname_tab): Remove. 8889 (assignop_tab): Likewise. 8890 (operator_name_info_t): New type. 8891 (operator_name_info): New variable. 8892 (assignment_operator_name_info): Likewise. 8893 (build_cp_library_fn): Remove declaration. 8894 (push_cp_library_fn): Likewise. 8895 (operator_name_string): Likewise. 8896 (build_decl_overload): Likewise. 8897 * call.c (print_z_candidates): Simplify. 8898 (build_object_call): Adjust usage of ansi_opname. Use 8899 DECL_OVERLOADED_OPERATOR_P. 8900 (op_error): Adjust operator name lookup. 8901 (build_conditional_expr): Adjust usage of ansi_opname. 8902 (build_new_op): Likewise. 8903 (build_op_delete_call): Likewise. 8904 (build_over_call): Likewise. 8905 (joust): Use DECL_OVERLOADED_OPERATOR_P. 8906 * decl.c (duplicate_decls): Copy operator_code. 8907 (init_decl_processing): Adjust parameters to push_cp_library_fn. 8908 (builtin_function): Adjust parameters to build_library_fn_1. 8909 (build_library_fn_1): Accept an overloaded operator code. 8910 (build_library_fn): Pass ERROR_MARK. 8911 (build_cp_library_fn): Accept an overloaded operator code. 8912 (push_cp_library_fn): Likewise. 8913 (grokfndecl): Tweak. 8914 (grokdeclarator): Simplify code to compute names of overloaded 8915 operators. Adjust use of ansi_opname. 8916 (ambi_op_p): Work on tree_codes, not identifiers. 8917 (unary_op_p): Likewise. 8918 (grok_op_properties): Likewise. 8919 (start_function): Use DECL_OVERLOADED_OPERATOR_P. 8920 (lang_mark_tree): Don't try to mark the operator_code. 8921 * decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P. 8922 * error.c (dump_decl): Remove special handling for operator 8923 names. 8924 (dump_function_name): Likewise. 8925 (dump_expr): Adjust name lookup of operators. 8926 (op_to_string): Simplify. 8927 (assop_to_string): Likewise. 8928 * init.c (build_new_1): Adjust use of ansi_opname. 8929 * lex.c (opname_tab): Remove. 8930 (assignop_tab): Likewise. 8931 (ansi_opname): Likewise. 8932 (ansi_assopname): Likewise. 8933 (operator_name_string): Likewise. 8934 (reinit_lang_specific): Likewise. 8935 (operator_name_info): New variable. 8936 (assignment_operator_name_info): Likewise. 8937 (init_operators): New function. 8938 (init_parse): Use it. 8939 (do_identifier): Adjust use of ansi_opname. 8940 * method.c (mangle_expression): Don't use ansi_opname for 8941 mangling. 8942 (build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P. 8943 (build_decl_overload): Remove. 8944 (build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly. 8945 (do_build_assign_ref): Adjust use of ansi_opname. 8946 (synthesize_method): Likewise. 8947 (implicitly_declare_fn): Likewise. 8948 * operators.def: New file. 8949 * parse.y (operator): Adjust use of ansi_opname. 8950 * pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P. 8951 (set_mangled_name_for_template_decl): Don't play games with 8952 current_namespace. 8953 (special_function_p): Adjust use of ansi_opname. 8954 * typeck.c (check_return_expr): Likewise. 8955 * Make-lang.in (cc1plus): Depend on operators.def. 8956 * Makefile.in (lex.o): Likewise. 8957 (decl.o): Likewise. 8958 89592000-05-27 Zack Weinberg <zack@wolery.cumb.org> 8960 8961 * Make-lang.in (cplib2.ready): Eradicate. 8962 8963Sat May 27 11:25:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8964 8965 * method.c (mangle_expression): Use TREE_CODE_LENGTH. 8966 * tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. 8967 (built_min, cp_tree_equal): Likewise. 8968 89692000-05-26 Mark Mitchell <mark@codesourcery.com> 8970 8971 * class.c (layout_nonempty_base_or_field): Replace 8972 `record_layout_info' with `record_layout_info_s'. 8973 89742000-05-26 Jason Merrill <jason@casey.soma.redhat.com> 8975 8976 Fix goto checking. 8977 * cp-tree.h (struct language_function): x_named_labels is now 8978 a struct named_label_list*. 8979 * decl.c (struct named_label_use_list): Renamed from... 8980 (struct named_label_list): ...this. New struct. 8981 (push_binding_level): Don't set eh_region. 8982 (note_level_for_eh): New fn. 8983 (pop_label): Take label and old value directly. 8984 (pop_labels): Adjust for new named_labels format. 8985 (lookup_label): Likewise. 8986 (poplevel): Note characteristics of a binding level containing a 8987 named label. Mess with named label lists earlier. 8988 (mark_named_label_lists): New fn. 8989 (mark_lang_function): Call it. 8990 (use_label): New fn, split out from... 8991 (make_label_decl): ...here. Don't call it. 8992 (decl_jump_unsafe, check_previous_goto, check_previous_goto_1, 8993 check_previous_gotos): New fns, split out from... 8994 (define_label): ...here. 8995 (check_switch_goto): New fn. 8996 (define_case_label): Call it. 8997 (check_goto): New fn. 8998 * semantics.c (finish_goto_stmt): Call it and use_label. 8999 (begin_compound_stmt): If we're a try block, call note_level_for_eh. 9000 (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings. 9001 90022000-05-26 Mark Mitchell <mark@codesourcery.com> 9003 9004 * class.c (build_vtable_entry_ref): Correct usage of 9005 get_vtbl_decl_for_binfo. 9006 9007 * decl2.c (grokclassfn): Set DECL_LANGUAGE here. 9008 * method.c (implicitly_declare_fn): Not here. 9009 90102000-05-26 Nathan Sidwell <nathan@codesourcery.com> 9011 9012 * cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ... 9013 (CPTI_PTMD_DESC_TYPE): ... here. 9014 (ptmd_desc_type_node): Rename to ... 9015 (ptm_desc_type_node): ... here. 9016 * decl.c: Likewise. 9017 * rtti.c (ptmd_initializer): Rename to ... 9018 (ptm_initializer): ... here. 9019 (sythesize_tinfo_var): Adjust. Deal with pointer to member 9020 function. 9021 (create_tinfo_types): Adjust. 9022 90232000-05-25 Mark Mitchell <mark@codesourcery.com> 9024 9025 Finish implementation of VTTs. 9026 * cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and 9027 CPTI_VTT_PARM_IDENTIFIER. 9028 (vtt_parm_identifier): New macro. 9029 (vtt_parm_type): Likewise. 9030 (BINFO_SUBVTT_INDEX): Likewise. 9031 (BINFO_VPTR_INDEX): Likewise. 9032 (struct lang_decl): Add vtt_parm. 9033 (DECL_VTT_PARM): New macro. 9034 (DECL_USE_VTT_PARM): Likewise. 9035 (DECL_NEEDS_VTT_PARM_P): Likewise. 9036 (get_vtt_name): Declare. 9037 (build_artificial_parm): Likewise. 9038 (fixup_all_virtual_upcast_offsets): Likewise. 9039 (expand_indirect_vtbls_init): Remove. 9040 * call.c (build_new_method_call): Pass the vtt to subobject 9041 constructors and destructors. 9042 * class.c (get_vtt_name): Give it external linkage. 9043 (build_clone): Handle the magic VTT parameters for clones. 9044 (clone_function_decl): Fix typo in comment. 9045 (build_vtt): Keep track of the indices in the VTTs where various 9046 entities are stored. 9047 (build_vtt_inits): Likewise. 9048 (dfs_build_vtt_inits): Likewise. 9049 (build_ctor_vtbl_group): Tweak type of construction vtables. 9050 (dfs_accumulate_vtbl_inits): Build vtables for all bases, even 9051 primary bases, when building construction vtables. 9052 * decl.c (duplicate_decls): Handle DECL_VTT_PARM. 9053 (initialize_predefined_identifiers): Add vtt_parm_identifier. 9054 (init_decl_processing): Initialize vtt_parm_type. 9055 (grokfndecl): Use DECL_OVERLOADED_OPERATOR_P. 9056 (lang_mark_tree): Make vtt_parm. 9057 * decl2.c (build_artificial_parm): New function. 9058 (maybe_retrofit_in_chrg): Use it. Add VTT parameters. 9059 (grokclassfn): Use build_artificial_parm. 9060 * init.c (initialize_vtbl_ptrs): Call 9061 fixup_all_virtual_upcast_offsets directly. 9062 (perform_member_init): Use the complete subobject destructor for 9063 member cleanups. 9064 (build_vtbl_address): New function. 9065 (expand_virtual_init): Handle VTTs. 9066 * optimize (maybe_clone_body): Likewise. 9067 * search.c (fixup_all_virtual_upcast_offsets): Give it external 9068 linkage. 9069 (expand_indirect_vtbls_init): Remove. 9070 * semantics.c (setup_vtbl_ptr): Fix typos in comment. 9071 * tree.c (make_binfo): Make them bigger. 9072 90732000-05-25 Nathan Sidwell <nathan@codesourcery.com> 9074 9075 * inc/cxxabi.h (__pbase_type_info): Define, based on 9076 __pointer_type_info. 9077 (__pointer_type_info): Derive from __pbase_type_info. Adjust. 9078 (__pointer_to_member_type_info): Likewise. 9079 * tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement. 9080 (__pointer_to_member_type_info::__is_pointer_p): Remove. 9081 (__pointer_type_info::__do_catch): Rename to ... 9082 (__pbase_type_info::__do_catch): ... here. Adjust. 9083 (__pbase_type_info::__pointer_catch): Implement. 9084 (__pointer_type_info::__pointer_catch): Adjust. 9085 (__pointer_to_member_type_info::__pointer_catch): Adjust. 9086 90872000-05-25 Nathan Sidwell <nathan@codesourcery.com> 9088 9089 * tinfo.h (__user_type_info::contained_virtual_p): New 9090 predicate. 9091 * tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond 9092 shaped hierarchy. 9093 (__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to 9094 diamond shaped hierarchy. Add early out for mixed diamond and 9095 duplicate shaped hierarchy. 9096 90972000-05-24 Mark Mitchell <mark@codesourcery.com> 9098 9099 * cp-tree.h (build_delete): Change prototype. 9100 (build_vec_delete): Likewise. 9101 * call.c (build_scoped_method_call): Use special_function_kind 9102 values to indicate the kind of destruction to be done. 9103 (build_method_call): Likewise. 9104 * decl.c (finish_destructor_body): Likewise. 9105 (maybe_build_cleanup_1): Likewise. Rename to ... 9106 (maybe_build_cleanup): ... this. 9107 * decl2.c (delete_sanity): Use special_function_kind 9108 values to indicate the kind of destruction to be done. 9109 (build_cleanup): Likewise. 9110 * init.c (perform_member_init): Likewise. 9111 (build_vec_delete_1): Likewise. 9112 (build_dtor_call): Simplify. 9113 (build_delete): Use special_function_kind 9114 values to indicate the kind of destruction to be done. 9115 (build_vbase_delete): Likewise. 9116 (build_vec_delete): Likewise. 9117 9118 * init.c (sort_member_init): Fix typo in error message generation 9119 code. 9120 9121Mon May 15 11:46:29 2000 Donald Lindsay <dlindsay@cygnus.com> 9122 9123 * semantics.c (begin_class_definition): make the packed 9124 attribute be sensitive to the "-fpack-struct" command line flag 9125 91262000-05-24 Nathan Sidwell <nathan@codesourcery.com> 9127 9128 Update new-abi upcast algorithm. 9129 * inc/cxxabi.h (__class_type_info::__do_upcast): Change 9130 prototype and meaning of return value. 9131 (__si_class_type_info::__do_upcast): Likewise. 9132 (__vmi_class_type_info::__do_upcast): Likewise. 9133 * tinfo.cc (__class_type_info::__upcast_result): Replace 9134 whole2dst with part2dst. Adjust ctor. 9135 (__class_type_info::__do_upcast): Adjust call of worker function. 9136 (__class_type_info::__do_upcast): Adjust. 9137 (__si_class_type_info::__do_upcast): Adjust. Use parent's 9138 __do_upcast. 9139 (__vmi_class_type_info::__do_upcast): Likewise. Fix private 9140 virtual base in diamond hierarchy bug. 9141 91422000-05-23 Mark Mitchell <mark@codesourcery.com> 9143 9144 * cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable 9145 and bitfield to tinfo_fn_p. 9146 (DECL_TINFO_FN_P): Adjust. 9147 (SET_DECL_TINFO_FN_P): Likewise. 9148 (DECL_MUTABLE_P): Likewise. 9149 (DECL_C_BIT_FIELD): Likewise. 9150 (SET_DECL_C_BIT_FIELD): Likewise. 9151 (CLEAR_DECL_C_BIT_FIELD): Likewise. 9152 (DECL_UNINLINABLE): Likewise. 9153 * class.c (alter_access): Call retrofit_lang_decl if ncessary. 9154 (handle_using_decl): Remove assertion. 9155 (build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl, 9156 to build FIELD_DECLs. 9157 (build_base_field): Likewise. 9158 (layout_class_type): Likewise. 9159 * decl.c (init_decl_processing): Likewise. 9160 (build_ptrmemfunc_type): Likewise. 9161 (grokdeclarator): Likewise. 9162 * decl2.c (grok_x_components): Likewise. 9163 * except.c (call_eh_info): Likewise. 9164 * init.c (init_init_processing): Likewise. 9165 * rtti.c (expand_class_desc): Likewise. 9166 (create_pseudo_type_info): Likewise. 9167 (get_vmi_pseudo_type_info): Likewise. 9168 (create_tinfo_types): Likewise. 9169 * ptree.c (print_lang_decl): Adjust. 9170 * typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC 9171 before checking DECL_MUTABLE_P. 9172 9173 * decl2.c (maybe_retrofit_in_chrg): Don't create in-charge 9174 parameters for template functions. 9175 * pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for 9176 destructors as well as constructors. 9177 91782000-05-22 Mark Mitchell <mark@codesourcery.com> 9179 9180 * class.c (build_ctor_vtbl_group): Set inits. 9181 * optimize.c (maybe_clone_body): Set DECL_INLINE and 9182 DECL_THIS_INLINE appropriately for clones. 9183 9184 * cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. 9185 (DECL_CONV_FN_P): Simplify. 9186 (DECL_OPERATOR): Remove. 9187 (language_to_string): Declare. 9188 * decl.c (duplicate_decls): Fix typo in comment. 9189 (grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P. 9190 (grok_op_properties): Use DECL_CONV_FN_P instead of 9191 IDENTIFIER_TYPENAME_P. 9192 * dump.c (dequeue_and_dump): Dump the language linkage of 9193 declarations. 9194 * error.c (language_to_string): Give it external linkage. 9195 * method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P. 9196 (implicitly_declare_fn): Set DECL_LANGUAGE. 9197 * pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not 9198 IDENTIFIER_TYPENAME_P. 9199 (tsubst_decl): Likewise. 9200 (tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P. 9201 * semantics.c (finish_member_declaration): Don't mark members of 9202 classes declared in an extern "C" region as extern "C". 9203 92042000-05-22 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9205 9206 * decl2.c (qualified_lookup_using_namespace): Look through 9207 namespace aliases. 9208 9209 * decl.c (push_using_decl): Return the old decl on namespace level. 9210 92112000-05-21 Mark Mitchell <mark@codesourcery.com> 9212 9213 * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks. 9214 (VTT_NAME_PREFIX): New macro. 9215 (CTOR_VTBL_NAME_PREFIX): Likewise. 9216 (get_ctor_vtbl_name): New function. 9217 * class.c (get_vtable_name): Simplify. 9218 (get_vtt_name): New function. 9219 (get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE. 9220 (dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list 9221 when a virtual base becomes primary. 9222 (finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier. Build 9223 VTTs. 9224 (finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in 9225 additional parameters. 9226 (dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED. 9227 (initialize_array): New function. 9228 (build_vtt): Likewise. 9229 (build_vtt_inits): Likewise. 9230 (dfs_build_vtt_inits): Likewise. 9231 (dfs_fixup_binfo_vtbls): Likewise. 9232 (build_ctor_vtbl_group): Likewise. 9233 (initialize_vtable): Use initialize_array. 9234 (accumulate_vtbl_inits): Reimplement to handle construction 9235 vtables. 9236 (dfs_accumulate_vtbl_inits): Likewise. 9237 (bulid_vtbl_initializer): Adjust parameter name. 9238 * method.c (build_typename_overload): Remove #if 0'd code. 9239 (get_ctor_vtbl_name): New function. 9240 * search.c (dfs_walk_real): Use BINFO_N_BASETYPES. 9241 (init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo. 9242 9243 * cp-tree.h (struct lang_type): Remove search_slot. 9244 (CLASSTYPE_SEARCH_SLOT): Remove. 9245 (emit_base_init): Change prototype. 9246 (initialize_vtbl_ptrs): Likewise. 9247 (expand_indirect_vtbls_init): Likewise. 9248 (clear_search_slots): Remove. 9249 * decl.c (lang_mark_tree): Don't mark search_slot. 9250 * init.c (initialize_vtbl_ptrs): Simplify. 9251 (emit_base_init): Likewise. 9252 * search.c (struct vbase_info): Document decl_ptr. 9253 (convert_pointer_to_single_level): Remove. 9254 (dfs_find_vbases): Remove. 9255 (dfs_init_base_pointers): Simplify. 9256 (dfs_clear_vbase_slots): Remove. 9257 (dfs_vtable_path_unmark): New function. 9258 (init_vbase_pointers): Simplify. 9259 (expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT. 9260 (expand_indirect_vtbls_init): Simplify. Don't call 9261 mark_all_temps_used. 9262 * semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and 9263 initialize_vtbl_ptrs. 9264 92652000-05-20 Zack Weinberg <zack@wolery.cumb.org> 9266 9267 * except.c: Add static prototypes. 9268 92692000-05-20 H.J. Lu <hjl@gnu.org> 9270 9271 * Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext). 9272 92732000-05-19 Mark Mitchell <mark@codesourcery.com> 9274 9275 Don't create a separate copy of virtual bases for the 9276 CLASSTYPE_VBASECLASSES list. 9277 * cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation. 9278 (BINFO_FOR_VBASE): Remove. 9279 (CANONICAL_BINFO): Adjust. 9280 (binfo_for_vbase): New function. 9281 * class.c (build_vbase_pointer_fields): Use binfo_for_vbase 9282 instead of BINFO_FOR_VBASE. 9283 (build_vbase_pointer): Likewise. 9284 (build_secondary_vtable): Likewise. 9285 (dfs_mark_primary_bases): Likewise. 9286 (mark_primary_bases): Likewise. 9287 (layout_nonempty_base_or_field): Likewise. 9288 (dfs_set_offset_for_shared_vbases): Likewise. 9289 (dfs_set_offset_for_unshared_vbases): Likewise. 9290 (layout_virtual_bases): Likewise. Adjust for changes to the 9291 CLASSTYPE_VBASECLASSES list. 9292 (dump_class_hierarchy_r): Use binfo_for_vbase 9293 instead of BINFO_FOR_VBASE. 9294 (dump_class_hierarchy): Likewise. 9295 (finish_vtbls): Likewise. 9296 (build_vtbl_initializer): Adjust for changes to the 9297 CLASSTYPE_VBASECLASSES list. 9298 (build_vbase_offset_vtbl_entries): Use binfo_for_vbase. 9299 * decl.c (finish_destructor_body): Adjust for changes to the 9300 CLASSTYPE_VBASECLASSES list. 9301 * init.c (sort_base_init): Use binfo_for_vbase. 9302 (construct_virtual_bases): Adjust for changes to the 9303 CLASSTYPE_VBASECLASSES list. 9304 (expand_member_init): Use binfo_for_vbase. 9305 (build_vbase_delete): Adjust for changes to the 9306 CLASSTYPE_VBASECLASSES list. 9307 * method.c (do_build_copy_constructor): Likewise. 9308 * rtti.c (get_base_offset): Use binfo_for_vbase. 9309 (expand_class_desc): Remove #if 0'd code. 9310 * search.c (struct vbase_info): Remove vbase_types. 9311 (get_base_distance): Use binfo_for_vbase. 9312 (lookup_field_queue_p): Use CANONICAL_BINFO. 9313 (get_shared_vbase_if_not_primary): Use binfo_for_vbase. 9314 (get_pure_virtuals): Adjust for changes to the 9315 CLASSTYPE_VBASECLASSES list. 9316 (dfs_find_vbases): Use binfo_for_vbase. 9317 (dfs_init_vbase_pointers): Likewise. 9318 (init_vbase_pointers): Don't initialize vi.vbase_types. 9319 (virtual_context): Use binfo_for_vbase. 9320 (fixup_all_virtual_upcast_offsets): Adjust for changes to the 9321 CLASSTYPE_VBASECLASSES list. 9322 (expand_indirect_vtbls_init): Simplify. 9323 (dfs_get_vbase_types): Don't replicate virtual bases. 9324 (find_vbase_instance): Use binfo_for_vbase. 9325 (binfo_for_vbase): New function. 9326 * typeck.c (get_delta_difference): Use binfo_for_vbase. 9327 93282000-05-17 Mark Mitchell <mark@codesourcery.com> 9329 9330 * decl2.c (finish_anon_union): Generalize error messages to handle 9331 anonymous structures. 9332 * init.c (perform_member_init): Remove `name' parameter. 9333 (build_field_list): New function. 9334 (sort_member_init): Handle anonymous union initialization order 9335 correctly. Check for multiple initializations of the same union. 9336 (emit_base_init): Don't look up fields by name here. 9337 (expand_member_init): Record the result of name lookup for future 9338 reference. 9339 * typeck.c (build_component_ref): Fix formatting. 9340 9341Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com> 9342 9343 * decl.c (pop_label): Replace warn_unused with warn_unused_label. 9344 * typeck.c (build_x_compound_expr): Replace warn_unused with 9345 warn_unused_value. 9346 9347 * decl2.c (lang_decode_option): Update -Wall unused flags by 9348 calling set_Wunused. 9349 93502000-05-16 Mark Mitchell <mark@codesourcery.com> 9351 9352 * cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation. 9353 * init.c (dfs_vtable_path_unmark): Remove. 9354 * search.c (marked_new_vtable_p): Likewise. 9355 (unmarked_new_vtable_p): Likewise. 9356 (dfs_search_slot_nonempty_p): Likewise. 9357 (dfs_mark): Likewise. 9358 (dfs_vtable_path_unmark): Likewise. 9359 (dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED. 9360 (dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED. 9361 (dfs_init_vbase_pointers): Remove special-case new ABI code. 9362 (dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED. 9363 (init_vbase_pointers): Simplify. 9364 (expand_indirect_vtbls_init): Likewise. 9365 9366 * class.c (copy_virtuals): New function. 9367 (build_primary_table): Use it. 9368 (build_secondary_vtable): Likewise. 9369 (modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to 9370 indicate that no vcall offset is required. 9371 (add_virtual_function): Likewise. 9372 (modify_all_vtables): Likewise. 9373 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 9374 (dfs_accumulate_vtbl_inits): Likewise. 9375 (build_vtbl_initializer): Make changes to handle construction 9376 vtables. 9377 (dfs_build_vcall_offset_vtbl_entries): Likewise. 9378 (build_rtti_vtbl_entries): Likewise. 9379 (build_vtable_entries): Handle a NULL vcall_index. 9380 93812000-05-15 Gabriel Dos Reis <gdr@codesourcery.com> 9382 9383 * decl2.c (lang_decode_option): Fix thinko. 9384 93852000-05-14 Jason Merrill <jason@casey.cygnus.com> 9386 9387 * except.c (check_handlers): New fn. 9388 * cp-tree.h: Declare it. 9389 * semantics.c (finish_handler_sequence): Call it. 9390 (finish_function_handler_sequence): Likewise. 9391 (finish_handler_parms): Set TREE_TYPE on the handler. 9392 * cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro. 9393 * search.c (get_base_distance_recursive): If protect>1, ignore 9394 special access. 9395 (get_base_distance): Don't reduce watch_access. 9396 93972000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> 9398 9399 * lex.c: #include diagnostic.h. 9400 (lang_init_options): Set default prefixing rules. 9401 9402 * lang-options.h: Add -fdiagnostics-show-location=. 9403 9404 * decl2.c: #include diagnostic.h. 9405 (lang_decode_option): Handle -fdiagnostics-show-location=. 9406 94072000-05-12 Nathan Sidwell <nathan@codesourcery.com> 9408 9409 * tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes. 9410 * vec.cc: Revert my 2000-05-07 change. 9411 94122000-05-11 Jason Merrill <jason@casey.cygnus.com> 9413 9414 * class.c (check_field_decls): Complain about non-static data 9415 members with same name as class in class with constructor. 9416 94172000-05-10 Jason Merrill <jason@casey.cygnus.com> 9418 9419 * decl.c (grokdeclarator): Allow non-static data members with 9420 same name as class. 9421 94222000-05-09 Zack Weinberg <zack@wolery.cumb.org> 9423 9424 * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, 9425 and pending_inline.filename. Update prototypes. 9426 * decl.c (define_label): Constify filename parameter. 9427 * decl2.c (warn_if_unknown_interface): Constify local char *. 9428 * input.c Constify input_source.filename. Don't declare 9429 input_filename or lineno. Constify filename parameter to feed_input. 9430 * lex.c (init_parse): Constify parameter and return value. 9431 (cp_pragma_interface, cp_pragma_implementation): Constify 9432 filename argument. 9433 (reinit_parse_for_method, reinit_parse_for_block, 9434 reinit_parse_for_expr, feed_defarg, handle_cp_pragma): 9435 Constify local char *. 9436 * pt.c: Don't declare lineno or input_filename. 9437 (print_template_context, tsubst_friend_function, tsubst_decl, 9438 tsubst, instantiate_decl): Constify local char *. 9439 * semantics.c (expand_body): Constify local char *. 9440 * tree.c (build_srcloc): Constify filename parameter. 9441 * typeck.c (c_expand_asm_operands): Constify filename 9442 parameter. 9443 94442000-05-08 Nathan Sidwell <nathan@codesourcery.com> 9445 9446 * tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix 9447 offsetof expansion. 9448 94492000-05-08 Branko Cibej <branko.cibej@hermes.si> 9450 9451 * inc/cxxabi.h: Fix typos in comment. 9452 (__base_class_info::__offset): Use a static_cast. 9453 94542000-05-07 Nathan Sidwell <nathan@codesourcery.com> 9455 9456 * inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place 9457 of std::size_t and std::ptrdiff_t respectively. 9458 * tinfo.cc: Likewise. 9459 * vec.cc: Likewise. 9460 94612000-05-06 Richard Henderson <rth@cygnus.com> 9462 9463 * typeck.c (build_c_cast): Don't warn integer->pointer size 9464 mismatch for constants. 9465 94662000-05-06 Nathan Sidwell <nathan@codesourcery.com> 9467 9468 * rtti.c (ptmd_initializer): Set non-public, if class is 9469 incomplete. 9470 9471 * inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++". 9472 (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 9473 __cxa_vec_delete): Likewise. 9474 * tinfo.cc (__dynamic_cast): Likewise. 9475 * vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 9476 __cxa_vec_delete): Likewise. 9477 94782000-05-04 Mark Mitchell <mark@codesourcery.com> 9479 9480 * cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove. 9481 (SET_FNADDR_FROM_VTABLE_ENTRY): Likewise. 9482 (lang_decl_flags): Add vcall_offset. 9483 (THUNK_VCALL_OFFSET): Use it. 9484 * decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk. 9485 * method.c (make_thunk): Create the lang_decl here, not in 9486 emit_thunk. 9487 (emit_thunk): Make generic thunks into ordinary functions once 9488 they have been fed to expand_body. 9489 * semantics.c (expand_body): Set current_function_is_thunk here. 9490 94912000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9492 9493 * class.c (update_vtable_entry_for_fn): Prototype. 9494 9495 * pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl' 9496 and `tmpl'. 9497 9498 * search.c (dfs_build_inheritance_graph_order): Prototype. 9499 95002000-05-04 Mark Mitchell <mark@codesourcery.com> 9501 9502 * cp-tree.h (special_function_kind): Add various kinds of 9503 destructors. 9504 (special_function_p): New function. 9505 * class.c (overrides): Don't let one kind of destructor override 9506 another. 9507 * decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding 9508 whether or not to instantiate a template. 9509 * tree.c (special_function_p): Define. 9510 95112000-05-03 Mark Mitchell <mark@codesourcery.com> 9512 9513 * cp-tree.def (THUNK_DECL): Remove. 9514 * cp-tree.h (DECL_THUNK_P): New macro. 9515 (DECL_NON_THUNK_FUNCTION_P): Likewise. 9516 (DECL_EXTERN_C_FUNCTION_P): Likewise. 9517 (SET_DECL_THUNK_P): Likewise. 9518 (DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P. 9519 (FNADDR_FROM_VTABLE_ENTRY): Likewise. 9520 (DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P. 9521 * decl.c (decls_match): Use DECL_EXTERN_C_P. 9522 (duplicate_decls): Likewise. 9523 (pushdecl): Likewise. Adjust thunk handling. 9524 (grokfndecl): Use DECL_EXTERN_C_P. 9525 * decl2.c (mark_vtable_entries): Use DECL_THUNK_P. 9526 * dump.c (dequeue_and_dump): Remove THUNK_DECL handling. 9527 * except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P. 9528 * expr.c (cplus_expand_expr): Remove THUNK_DECL handling. 9529 * method.c (make_thunk): Use SET_DECL_THUNK_P. Set 9530 DECL_NO_STATIC_CHAIN. 9531 (emit_thunk): Don't play games with TREE_CODE on thunks. Don't 9532 set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk. 9533 * search.c (covariant_return_p): Remove THUNK_DECL handling. 9534 * ir.texi: Update. 9535 95362000-05-01 Jason Merrill <jason@casey.cygnus.com> 9537 9538 * tree.c (walk_tree): Set lineno. 9539 95402000-05-01 Mark Mitchell <mark@codesourcery.com> 9541 9542 * exception.cc: Update license notice. 9543 * new.cc: Likewise. 9544 * new1.cc: Likewise. 9545 * new2.cc: Likewise. 9546 * tinfo.cc: Likewise. 9547 * tinfo2.cc: Likewise. 9548 * vec.cc: Likewise. 9549 * inc/cxxabi.h: Likewise. 9550 * inc/exception: Likewise. 9551 * inc/new: Likewise. 9552 * inc/new.h: Likewise. 9553 * inc/typeinfo: Likewise. 9554 95552000-05-01 Jason Merrill <jason@casey.cygnus.com> 9556 9557 * tree.c (build_target_expr_with_type): If we already have a 9558 TARGET_EXPR, just return it. 9559 9560 * optimize.c (initialize_inlined_parameters): Don't generate an 9561 EXPR_STMT if we can just use DECL_INITIAL. 9562 * decl.c (emit_local_var): Only make the initialization a 9563 full-expression if stmts_are_full_exprs_p. 9564 95652000-05-01 Mark Mitchell <mark@codesourcery.com> 9566 9567 * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New 9568 macro. 9569 * call.c (standard_conversion): Use it. 9570 (direct_reference_binding): Likewise. 9571 (build_over_call): Likewise. 9572 (is_properly_derived_from): Likewise. 9573 (compare_ics): Likewise. 9574 * class.c (resolves_to_fixed_type_p): Likewise. 9575 * optimize.c (declare_return_variable): Likewise. 9576 * pt.c (is_specialization_of): Likewise. 9577 (unify): Likewise. 9578 * typeck.c (comp_target_parms): Likeiwse. 9579 (build_static_cast): Likewise. 9580 (build_reinterpret_cast): Likewise. 9581 (build_const_cast): Likewise. 9582 (comp_ptr_ttypes_real): Likewise. 9583 (comp_ptr_ttypes_const): Likewise. 9584 * typeck2.c (process_init_constructor): Likewise. 9585 95862000-04-30 Scott Snyder <snyder@fnal.gov> 9587 9588 * decl.c (finish_destructor_body): Use the base destructor when 9589 destroying virtual bases. 9590 95912000-04-30 Mark Mitchell <mark@codesourcery.com> 9592 9593 * expr.c (cplus_expand_expr): Preserve temporaries when expanding 9594 STMT_EXPRs. 9595 * optimize.c (struct inline_data): Add target_exprs field. 9596 (declare_return_variable): When a function returns an aggregate, 9597 use the variable declared in the TARGET_EXPR as the remapped 9598 DECL_RESULT. 9599 (expand_call_inline): Update the pending target_exprs stack. 9600 (optimize_function): Initialize the stack. 9601 9602 * decl2.c (finish_file): Fix typo in comment. 9603 9604 * method.c (emit_thunk): Don't try to return a `void' value. 9605 9606 * optimize.c (initialize_inlined_parameters): If the parameter is 9607 addressable, we need to make a new VAR_DECL, even if the 9608 initializer is constant. 9609 96102000-04-28 Cosmin Truta <cosmint@cs.ubbcluj.ro> 9611 9612 * decl.c (grok_op_properties): Add an extra check of argtypes. 9613 96142000-04-27 Mark Mitchell <mark@codesourcery.com> 9615 9616 * optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying 9617 variables. 9618 (initialize_inlined_parameters): Try to avoid creating new 9619 VAR_DECLs. 9620 96212000-04-27 Alex Samuel <samuel@codesourcery.com> 9622 9623 * lex.c (my_get_run_time): Remove. 9624 (init_filename_times): Use get_run_time instead of my_get_run_time. 9625 (check_newline): Likewise. 9626 (dump_time_statistics): Likewise. 9627 * decl2.c (finish_file): Push and pop timevar TV_VARCONST instead 9628 of computing elapsed time explicitly. 9629 96302000-04-26 Mark Mitchell <mark@codesourcery.com> 9631 9632 * cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P. 9633 * init.c (decl_constant_value): Check TREE_READONLY_DECL_P. 9634 * call.c (convert_like_real): Don't test TREE_READONLY_DECL_P 9635 before calling decl_constant_value. 9636 * class.c (check_bitfield_decl): Likewise. 9637 * cvt.c (ocp_convert): Likewise. 9638 (convert): Likewise. 9639 * decl.c (compute_array_index_type): Likewise. 9640 (build_enumerator): Likewise. 9641 * decl2.c (check_cp_case_value): Likewise. 9642 * pt.c (convert_nontype_argument): Likewise. 9643 (tsubst): Likewise. 9644 * typeck.c (decay_conversion): Likewise. 9645 (build_compound_expr): Likewise. 9646 (build_reinterpret_cast): Likewise. 9647 (build_c_cast): Likewise. 9648 (convert_for_assignment): Likewise. 9649 96502000-04-26 Jason Merrill <jason@casey.cygnus.com> 9651 9652 * decl.c (finish_function): Don't play games with DECL_INLINE. 9653 96542000-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 9655 9656 * ir.texi: Correct typo. 9657 96582000-04-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9659 9660 * decl.c (grokdeclarator): Reject VLAs as members. 9661 96622000-04-24 Gabriel Dos Reis <gdr@codesourcery.com> 9663 9664 * call.c (standard_conversion): Accept conversion between 9665 COMPLEX_TYPEs. 9666 9667 * cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE. 9668 96692000-04-24 Zack Weinberg <zack@wolery.cumb.org> 9670 9671 * decl2.c (finish_file): Remove double setup for accounting 9672 compile time. 9673 96742000-04-24 Robert Lipe <robertlipe@usa.net> 9675 9676 * cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD. 9677 96782000-04-23 Benjamin Kosnik <bkoz@cygnus.com> 9679 9680 * new.cc (set_new_handler): Needs to be in std::. 9681 96822000-04-23 Mark Mitchell <mark@codesourcery.com> 9683 9684 * cp-tree.h (lang_decl): Remove pretty_function_p. 9685 (DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the 9686 language-specific node. 9687 * decl.c (cp_make_fname_decl): Use build_decl, not 9688 build_lang_decl, to build the variables. 9689 (grokvardecl): Don't call build_lang_decl for local variables in 9690 templates. 9691 (grokdeclarator): Don't call build_lang_decl for local type 9692 declarations in templates. 9693 * lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated 9694 zero'd memory, rather than calling memset. 9695 * pt.c: Include hashtab.h. 9696 (local_specializations): New variable. 9697 (retrieve_local_specialization): Use it. 9698 (register_local_specialization): Likewise. 9699 (tsubst_decl): Don't assume local variables have 9700 DECL_LANG_SPECIFIC. 9701 (instantiate_decl): Set up local_specializations. 9702 * Makefile.in (HTAB_H): New variable. 9703 97042000-04-23 Richard Henderson <rth@cygnus.com> 9705 9706 * typeck.c (c_expand_asm_operands): Restore the original 9707 contents of the output list. 9708 97092000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> 9710 9711 * ir.texi: Document complex number representation. 9712 97132000-04-20 Nathan Sidwell <nathan@codesourcery.com> 9714 9715 * rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi. 9716 (target_incomplete_p): New function. 9717 (tinfo_base_init): Create comdat NTBS name variable. 9718 (ptr_initializer): Add non_public parameter. Calculate it. 9719 (ptmd_initializer): Likewise. 9720 (synthesize_tinfo_var): Adjust. Emit incomplete class tinfo. 9721 (create_real_tinfo_var): Add non_public parameter. Use it. 9722 Push proxy into global namespace. 9723 * inc/cxxabi.h (__pointer_type_info::incomplete_class_mask): 9724 New enumeration. 9725 * inc/typeinfo (type_info::before, type_info::operator==): 9726 Compare __name addresses. 9727 9728 * tinfo2.cc: Remove new-abi builtins comment. 9729 97302000-04-20 Jason Merrill <jason@casey.cygnus.com> 9731 9732 * typeck.c (build_x_function_call): Resolve an OFFSET_REF. 9733 9734 * call.c (joust): Exit early if we get the same function, too. 9735 9736 * decl2.c (key_method): Return NULL_TREE for template classes. 9737 (import_export_class): Don't need to check for template classes. 9738 97392000-04-18 Zack Weinberg <zack@wolery.cumb.org> 9740 9741 * lex.c: Remove references to cccp.c. 9742 97432000-04-18 Mark Mitchell <mark@codesourcery.com> 9744 9745 * cp-tree.h (lang_decl_flags): Remove const_memfunc and 9746 volatile_memfunc. Add destructor_attr. Adjust dummy. 9747 (DECL_DESTRUCTOR_P): Use destructor_attr. 9748 (DECL_CONST_MEMFUNC_P): Reimplement. 9749 (DECL_VOLATILE_MEMFUNC_P): Remove. 9750 * class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS. 9751 (overrides): Use DECL_DESTRUCTOR_P. 9752 (check_for_override): Likewise. 9753 * decl.c (start_function): Likewise. 9754 * decl2.c (grokfclassfn): Likewise. 9755 (check_classfn): Likewise. 9756 (grok_function_init): Likewise. 9757 97582000-04-17 Mark Mitchell <mark@codesourcery.com> 9759 9760 * decl2.c (grokfield): Issue error on illegal data member 9761 declaration. 9762 9763Mon Apr 17 17:11:16 2000 Mark P Mitchell <mark@codesourcery.com> 9764 9765 * method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL. 9766 97672000-04-16 Mark Mitchell <mark@codesourcery.com> 9768 9769 * class.c (build_vtable_entry): Don't build thunks for type-info 9770 functions. 9771 97722000-04-16 Jason Merrill <jason@casey.cygnus.com> 9773 9774 * decl.c (decls_match): Allow a redeclaration of a builtin to 9775 specify args while the builtin did not. 9776 97772000-04-15 Mark Mitchell <mark@codesourcery.com> 9778 9779 * cp-tree.def (THUNK_DECL): Add to documentation. 9780 * cp-tree.h (flag_huge_objects): Declare. 9781 * class.c (modify_vtable_entry): Tidy. 9782 (update_vtable_entry_for_fn): Split out from dfs_modify_vtables. 9783 Calculate delta appropriately for the new ABI. 9784 (dfs_modify_vtables): Use it. 9785 (modify_all_vtables): Fix thinko in code to add overriding copies 9786 of functions to primary vtables. 9787 (build_clone): Fix typo in comment. 9788 (clone_function_decl): Correct order of destructors in vtable. 9789 (build_vbase_offset_vtbl_entries): Adjust comment. 9790 (dfs_vcall_offset_queue_p): Remove. 9791 (dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX. 9792 (build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases. 9793 (build_vtable_entry): Correct check for pure virtual functions. 9794 Don't declare flag_huge_objects. 9795 * decl.c (flag_huge_objects): Remove declaration. 9796 * method.c (make_thunk): Tweak mangling for vcall offset thunks. 9797 Use int_size_in_bytes. 9798 (emit_thunk): Handle vcall offset thunks. 9799 9800Sat Apr 15 16:00:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9801 9802 * decl2.c (parse_time, varconst_time): Delete declarations. 9803 (finish_file): Delete LINENO declaration. 9804 START_TIME and THIS_TIME now long. 9805 98062000-04-13 Nathan Sidwell <nathan@codesourcery.com> 9807 9808 * class.c (build_base_field): Reformat comment. 9809 9810 * inc/cxxabi.h (stddef.h): Comment inclusion. 9811 (__base_class_info::__offset): Comment shift. 9812 98132000-04-12 Mark Mitchell <mark@codesourcery.com> 9814 9815 * cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro. 9816 (cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER. 9817 (cp_push_exception_identifier): New macro. 9818 (DECL_COMPLETE_DESTRUCTOR_P): New macro. 9819 (DECL_BASE_DESTRUCTOR_P): Likewise. 9820 (DECL_DELETING_DESTRUCTOR_P): Likewise. 9821 (get_vtbl_decl_for_binfo): Fix formatting. 9822 (in_charge_arg_for_name): New macro. 9823 (maybe_build_cleanup_and_delete): Remove declaration. 9824 * call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P. 9825 (in_charge_arg_for_name): New function. 9826 (build_new_method_call): Use it. Handle cloned destructors. 9827 (build_clone): Don't make the base constructor virtual. 9828 Automatically defer generated functions. 9829 (clone_function_decl): Handle destructors, too. 9830 (clone_constructors_and_destructors): Likewise. 9831 (create_vtable_ptr): Don't create a vtable entry for a cloned 9832 function. 9833 * decl.c (predefined_identifier): Add ctor_or_dtor_p. 9834 (initialize_predefined_identifiers): Update appropriately. 9835 (finish_destructor_body): Simplify. 9836 (maybe_build_cleanup_and_delete): Remove. 9837 * except.c (expand_throw): Handle new-ABI destructors. 9838 * init.c (expand_cleanup_for_base): Use base_dtor_identifier. 9839 (build_dtor_call): New function. 9840 (build_delete): Use it. Simplify. 9841 * optimize.c (maybe_clone_body): Handle destructors. 9842 * search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P. 9843 9844 * exception.cc (cleanup_fn): New typedef. 9845 (CALL_CLEANUP): New macro. 9846 (cp_eh_info): Use them. 9847 (__cp_push_exception): Likewise. 9848 (__cp_pop_exception): Likewise. 9849 98502000-04-11 Mark Mitchell <mark@codesourcery.com> 9851 9852 * cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER. 9853 (complete_dtor_identifier): New macro. 9854 (CLASSTYPE_FIRST_CONVERSION): Remove. 9855 (CLASSTYPE_CONSTRUCTOR_SLOT): New macro. 9856 (CLASSTYPE_DESTRUCTOR_SLOT): Likewise. 9857 (CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise. 9858 (CLASSTYPE_CONSTRUCTORS): Likewise. 9859 (CLASSTYPE_DESTRUCTORS): Likewise. 9860 (lang_decl): Add cloned_function. 9861 (DECL_COMPLETE_CONSTRUCTOR_P): New macro. 9862 (DECL_BASE_CONSTRUCTOR_P): Likewise. 9863 (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise. 9864 (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise. 9865 (DECL_CLONED_FUNCTION_P): Likewise. 9866 (DECL_CLONED_FUNCTION): Likewise. 9867 (clone_function_decl): Declare. 9868 (maybe_clone_body): Likewise. 9869 * call.c (build_user_type_conversion_1): Call complete object 9870 constructors in the new ABI. 9871 (build_new_method_call): Don't add in-charge parameters under the 9872 new ABI. 9873 * class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, 9874 DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and 9875 CLASSTYPE_DESTRUCTOR_SLOT. 9876 (build_clone): New function. 9877 (clone_function_decl): Likewise. 9878 (clone_constructors_and_destructors): Likewise. 9879 (check_bases_and_members): Use it. 9880 * decl.c (iniitialize_predefined_identifiers): Initialize 9881 complete_dtor_identifier. 9882 (finish_function): Don't add extra code to a clone. 9883 (lang_mark_tree): Mark cloned_function. 9884 * decl2.c (mark_used): Don't bother trying to instantiate things 9885 we synthesized. 9886 * dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice. 9887 * method.c (set_mangled_name_for_decl): Don't treat clones as 9888 constructors. 9889 (synthesize_method): Sythesize cloned functions, not the clones. 9890 * optimize.c (inline_data): Update comment on ret_label. 9891 (remap_block): Don't assume DECL_INITIAL exists. 9892 (copy_body_r): Allow ret_label to be NULL. 9893 (maybe_clone_body): Define. 9894 * pt.c (tsubst_decl): Handle clones. 9895 (instantiate_clone): New function. 9896 (instantiate_template): Use it. 9897 (set_mangled_name_for_template_decl): Don't treat clones as 9898 constructors. 9899 * search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT, 9900 CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT. 9901 * semantics.c (expand_body): Clone function bodies as necessary. 9902 9903 * optimize.c (remap_decl): Avoid sharing structure for arrays 9904 whose size is only known at run-time. 9905 * tree.c (copy_tree_r): Don't copy PARM_DECLs. 9906 9907 * cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr 9908 to has_in_charge_parm_p. 9909 (DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ... 9910 (DECL_HAS_IN_CHARGE_PARM_P): ... this. 9911 (DECL_COPY_CONSTRUCTOR_P): New macro. 9912 * call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P. 9913 (build_user_type_conversion_1): Likewise. 9914 (convert_like_real): Likewise. 9915 (build_over_call): Likeiwse. Use DECL_COPY_CONSTRUCTOR_P. 9916 * decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P. 9917 (copy_args_p): Likewise. 9918 (grok_ctor_properties): Likewise. 9919 (start_function): Likewise. 9920 * decl2.c (maybe_retrofit_in_charge): Likewise. Set it. 9921 * error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P. 9922 * init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P. 9923 * method.c (do_build_copy_constructor): Use 9924 DECL_HAS_IN_CHARGE_PARM_P. 9925 (synthesize_method): Likewise. 9926 * pt.c (instantiate_template): Remove goto. 9927 * tree.c (build_cplus_method_type): Remove mention of obstacks in 9928 comment. 9929 9930 * cp-tre.h (finish_function): Change prototype. 9931 * decl.c (end_cleanup_fn): Adjust caller. 9932 (finish_function): Take only one parameter. 9933 * decl2.c (finish_objects): Adjust caller. 9934 (finish_static_storage_duration_function): Likewise. 9935 * method.c (emit_thunk): Likewise. 9936 * parse.y: Likewise. 9937 * parse.c: Regenerated. 9938 * pt.c (instantiate_decl): Likewise. 9939 * rtti.c (synthesize_tinfo_fn): Likewise. 9940 * semantics.c (expand_body): Likewise. 9941 9942 * cp-tree.h (copy_decl): New function. 9943 * class.c (finish_struct_1): Use it. 9944 * lex.c (copy_decl): Define it. 9945 * pt.c (tsubst_decl): Likewise. 9946 * tree.c (copy_template_template_parm): Likewise. 9947 9948 * cp-tree.h (lang_type): Remove has_nonpublic_ctor and 9949 has_nonpublic_assign_ref. 9950 (TYPE_HAS_NONPUBLIC_CTOR): Don't declare. 9951 (TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise. 9952 * class.c (finish_struct_methods): Don't set 9953 TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF. 9954 (interface_only): Don't declare. 9955 (interface_unknown): Likewise. 9956 99572000-04-11 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9958 9959 * tree.h (HAVE_TEMPLATES): Remove definition. 9960 * lang-options.h (-fthis-is-variable): Remove documentation. 9961 99622000-04-10 Jason Merrill <jason@casey.cygnus.com> 9963 9964 * class.c (instantiate_type): Handle object-relative template-id. 9965 9966 * semantics.c (finish_expr_stmt): Call convert_to_void here. 9967 * decl.c (cplus_expand_expr_stmt): Not here. 9968 9969 * rtti.c (build_dynamic_cast_1): Call non_lvalue. 9970 Initialize exprtype earlier. 9971 9972 * parse.y (fn.def1): Check for defining types in return types. 9973 9974 * decl.c (check_tag_decl): Notice extra fundamental types. 9975 Diagnose empty decls in classes, too. 9976 9977 * decl.c (grokdeclarator): Don't override an anonymous name if no 9978 declarator was given. 9979 9980 * cvt.c (convert_to_void): Call resolve_offset_ref. 9981 9982 * typeck.c (build_x_function_call): Abort if we get an OFFSET_REF. 9983 9984 * decl2.c (decl_namespace): Handle getting a type. 9985 9986 * typeck.c (build_c_cast): Re-enable warning for cast between 9987 pointer and integer of different size. 9988 99892000-04-10 Nathan Sidwell <nathan@codesourcery.com> 9990 9991 * inc/cxxabi.h (__pointer_type_info): Add restrict and 9992 incomplete flags. 9993 (__pointer_type_info::__pointer_catch): New virtual function. 9994 (__pointer_to_member_type_info): Derive from 9995 __pointer_type_info. Adjust. 9996 (__pointer_to_member_type_info::__do_catch): Remove. 9997 (__pointer_to_member_type_info::__is_pointer_p): Declare. 9998 (__pointer_to_member_type_info::__pointer_catch): Declare. 9999 * rtti.c (qualifier_flags): Add restrict flag. 10000 (ptmd_initializer): Reorder members. 10001 (create_tinfo_types): Expand comments. Reorder 10002 ptmd_desc_type_node members. 10003 * tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p): 10004 Implement. 10005 (__pointer_type_info::__do_catch): Move specific code into 10006 __pointer_catch. Call it. 10007 (__pointer_type_info::__pointer_catch): Non-pointer-to-member 10008 specific catch checking. Fix void conversion check. 10009 (__pointer_to_member_type_info::__do_catch): Remove. 10010 (__pointer_to_member_type_info::__pointer_catch): Implement. 10011 100122000-04-10 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10013 10014 * lex.c (init_parse): Remove traces of classof and headof. 10015 * decl2.c (flag_operator_names): Default to 1. 10016 (lang_decode_option): Do not set it for -ansi. 10017 100182000-04-09 Mark Mitchell <mark@codesourcery.com> 10019 10020 * cp-tree.h (struct lang_decl): Remove main_decl_variant. 10021 (DECL_MAIN_VARIANT): Remove. 10022 * decl.c (duplicate_decls): Don't set it. 10023 (start_function): Likewise. 10024 (lang_mark_tree): Don't mark it. 10025 * decl2.c (defer_fn): Don't use it. 10026 * lex.c (retrofit_lang_decl): Don't set it. 10027 * pt.c (tsubst_decl): Likewise. 10028 * ptree.c (print_lang_decl): Don't print it. 10029 * typeck.c (mark_addressable): Don't use it. 10030 100312000-04-09 Nathan Sidwell <nathan@codesourcery.com> 10032 10033 * vec.cc: Include <new> and <exception>. 10034 (__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup. 10035 (__cxa_vec_dtor): Catch dtor exceptions, and rethrow or 10036 terminate. 10037 (__cxa_vec_delete): Catch dtor exceptions. 10038 100392000-04-09 Nathan Sidwell <nathan@codesourcery.com> 10040 10041 Prepend __ to implementation defined names. 10042 * inc/typeinfo (type_info): Rename _name to __name. 10043 (type_info::type_info): Rename parameter. 10044 (type_info::operator==, type_info::operator!=, 10045 type_info::before): Likewise. 10046 (type_info::is_pointer_p, type_info::is_function_p, 10047 type_info::do_catch, type_info::do_upcast): Prepend __. Rename 10048 parameters. 10049 * inc/cxxabi.h 10050 (__fundamental_type_info::__fundamental_type_info) Rename parameters. 10051 (__pointer_type_info::__pointer_type_info): Likewise. 10052 (__pointer_type_info::is_pointer_p, 10053 __pointer_type_info::do_catch): Prepend __. Rename parameters. 10054 (__array_type_info::__array_type_info): Rename parameters. 10055 (__function_type_info::__function_type_info): Likewise. 10056 (__function_type_info::is_function_p): Prepend __. 10057 (__enum_type_info::__enum_type_info): Rename parameters. 10058 (__pointer_to_member_type_info::__pointer_to_member_type_info): 10059 Likewise. 10060 (__pointer_to_member_type_info::do_catch): Prepend __. Rename 10061 parameters. 10062 (__base_class_info::is_virtual_p, is_public_p, offset): Prepend __. 10063 (__class_type_info::__class_type_info): Rename parameters. 10064 (__class_type_info::sub_kind): Prepend __. Adjust member names. 10065 (__class_type_info::upcast_result, 10066 __class_type_info::dyncast_result): Prepend __. Move definition 10067 into tinfo.cc. 10068 (__class_type_info::do_upcast, __class_type_info::do_catch, 10069 __class_type_info::find_public_src, 10070 __class_type_info::do_dyncast, 10071 __class_type_info::do_find_public_src): Prepend __. Rename 10072 parameters. 10073 (__si_class_type_info::__si_class_type_info): Rename parameters. 10074 (__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast, 10075 __si_class_type_info::do_find_public_src): Prepent __. Rename 10076 parameters. 10077 (__vmi_class_type_info::__vmi_class_type_info): Rename parameters. 10078 (__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast, 10079 __vmi_class_type_info::do_find_public_src): Prepent __. Rename 10080 parameters. 10081 (__dynamic_cast): Rename parameters. 10082 * tinfo.cc (type_info::is_pointer_p, type_info::is_function_p, 10083 type_info::do_catch, type_info::do_upcast): Prepend __. 10084 (contained_p, public_p, virtual_p, contained_public_p, 10085 contained_nonpublic_p, contained_nonvirtual_p): Adjust. 10086 (__class_type_info::do_catch, 10087 __class_type_info::do_upcast): Prepend __. Adjust. 10088 (__class_type_info::__upcast_result, 10089 __class_type_info::__dyncast_result): Move from inc/cxxabi.h. 10090 Adjust. 10091 (__class_type_info::find_public_src): Prepend __. Adjust. 10092 (__class_type_info::do_find_public_src, 10093 __si_class_type_info::do_find_public_src, 10094 __vmi_class_type_info::do_find_public_src): Likewise. 10095 (__class_type_info::do_dyncast, 10096 __si_class_type_info::do_dyncast, 10097 __vmi_class_type_info::do_dyncast): Likewise. 10098 (__class_type_info::do_upcast, 10099 __si_class_type_info::do_upcast, 10100 __vmi_class_type_info::do_upcast): Likewise. 10101 (__dynamic_cast): Adjust. 10102 * tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __. 10103 (__function_type_info::is_function_p): Likewise. 10104 (__pointer_type_info::do_catch): Likewise. Adjust. 10105 (__pointer_to_member_type_info::do_catch): Likewise. Adjust. 10106 (__throw_type_match_rtti_2): Adjust. 10107 (__is_pointer): Adjust. 10108 101092000-04-08 Mark Mitchell <mark@codesourcery.com> 10110 10111 * cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER. 10112 (complete_ctor_identifier): New macro. 10113 (special_function_kind): Add sfk_copy_constructor and 10114 sfk_assignment_operator. 10115 (LOOKUP_HAS_IN_CHARGE): Remove. 10116 (cons_up_default_function): Rename to ... 10117 (implicitly_declare_fn): ... this. 10118 * call.c (build_new_method_call): Add in-charge parameters for 10119 constructors here. 10120 * class.c (add_implicitly_declared_members): Change parameter name 10121 from cant_have_assignment to cant_have_const_assignment. 10122 Replace calls to cons_up_default_function to implicitly_declare_fn. 10123 * cvt.c (ocp_convert): Use complete_ctor_identifier. 10124 * decl.c (initialize_predefined_identifiers): Initialize it. 10125 (start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of 10126 complex expression. 10127 * init.c (expand_default_init): Don't calculate the in-charge 10128 parameter here. 10129 (build_new_1): Likewise. 10130 * lex.c (cons_up_default_function): Move to method.c. 10131 * method.c (synthesize_method): Use DECL_DESTRUCTOR_P. 10132 (implicitly_declare_fn): New function. 10133 * typeck.c (build_static_cast): Use complete_ctor_identifier. 10134 (build_modify_expr): Likewise. 10135 * typeck2.c (build_functional_cast): Likewise. 10136 10137 Under the new ABI, constructors don't return `this'. 10138 * cp-tree.h (warn_reorder): Declare. 10139 (special_function_kind): New enum. 10140 (global_base_init_list): Remove declaration. 10141 (emit_base_init): Don't return a value. 10142 (check_base_init): Don't declare. 10143 (is_aggr_typedef): Likewise. 10144 * decl.c (check_special_function_return_type): New function. 10145 (return_types): Remove. 10146 (grokdeclarator): Use check_special_function_return_type. 10147 (start_function): Don't initialize ctor_label under the new ABI. 10148 (finish_construtor_body): Don't create a corresponding LABEL_STMT. 10149 * init.c (begin_init_stmts): Move to top of file. 10150 (finish_init_stmts): Likewise. 10151 (warn_reorder): Don't declare. 10152 (emit_base_init): Don't create a STMT_EXPR here. Don't return a 10153 value. 10154 (check_base_init): Remove. 10155 (is_aggr_typedef): Likewise. 10156 (build_new_1): Don't use the return value of a constructor. 10157 * semantics.c (setup_vtbl_ptr): Don't use the return value 10158 of emit_base_init. 10159 * typeck.c (check_return_expr): Don't magically convert return 10160 statements into `return this' in constructors under the new ABI. 10161 10162 * cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER, 10163 CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER. 10164 (base_ctor_identifier): New macro. 10165 (base_dtor_identifier): Likewise. 10166 (deleting_dtor_identifier): Likewise. 10167 * decl.c: Don't include obstack.h. 10168 (obstack_chunk_alloc): Don't define. 10169 (obstack_chunk_free): Likewise. 10170 (struct predefined_identifier): New type. 10171 (initialize_predefined_identifiers): New function. 10172 (init_decl_processing): Use it. 10173 (debug_temp_inits): Remove. 10174 (start_method): Don't call preserve_data. 10175 (hack_incomplete_structures): Update comment. 10176 * init.c (init_init_processing): Don't initialize 10177 nelts_identifier. 10178 (build_offset_rf): Remove dead code. 10179 (build_delete): Use CLASSTYPE_N_BASECLASSES. 10180 * search.c (init_search_processing): Don't initialize 10181 vptr_identifier. 10182 101832000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10184 10185 * typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide 10186 some sign_compare warnings. 10187 101882000-04-07 Nathan Sidwell <nathan@codesourcery.com> 10189 10190 Rename abi::__vmi_class_type_info members. 10191 * inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases, 10192 base_list, detail_masks members to vmi_flags, vmi_base_count, 10193 vmi_bases and vmi_flags_masks respectively. 10194 (__vmi_class_type_info::vmi_flags_masks): Rename 10195 details_unknown_mask to flags_unknown_mask. 10196 * tinfo.cc (__class_type_info::do_upcast): Adjust. 10197 (__vmi_class_type_info::do_find_public_src): Adjust. 10198 (__vmi_class_type_info::do_dyncast): Adjust. 10199 (__vmi_class_type_info::do_upcast): Adjust. 10200 102012000-04-07 Nathan Sidwell <nathan@codesourcery.com> 10202 10203 * tinfo.cc (convert_to_base): New function. 10204 (get_vbase_offset): Remove. Move into convert_to_base. 10205 (__vmi_class_type_info::do_find_public_src): Adjust. 10206 (__vmi_class_type_info::do_dyncast): Adjust. 10207 (__vmi_class_type_info::do_upcast): Adjust. 10208 102092000-04-06 Jason Merrill <jason@yorick.cygnus.com> 10210 10211 * tinfo.cc (operator=): Use __builtin_strcmp. 10212 * tinfo2.cc (before): Likewise. 10213 102142000-04-06 Mark Mitchell <mark@codesourcery.com> 10215 10216 * cp-tree.h (lang_decl_flags): Rename saved_inline to deferred. 10217 (DECL_SAVED_INLINE): Rename to ... 10218 (DECL_DEFERRED_FN): ... this. 10219 (in_function_p): Remove declaration. 10220 (mark_inline_for_output): Rename to ... 10221 (defer_fn): ... this. 10222 * decl.c (finish_function): Adjust call to mark_inline_for_output. 10223 (in_function_p): Remove definition. 10224 * decl2.c (saved_inlines): Rename to ... 10225 (deferred_fns): ... this. 10226 (saved_inlines_used): Rename to ... 10227 (deferred_fns_used): ... this. 10228 (mark_inline_for_output): Rename to ... 10229 (defer_fn): ... this. 10230 (finish_file): Adjust accordingly. 10231 (init_decl2): Likewise. 10232 * lex.c (cons_up_default_function): Likewise. 10233 * pt.c (mark_decl_instantiated): Likewise. 10234 (instantiate_decl): Don't set DECL_DEFER_OUTPUT under any 10235 circumstances. 10236 * rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output. 10237 * semantics.c (expand_body): Defer more functions. 10238 102392000-04-06 Nathan Sidwell <nathan@codesourcery.com> 10240 10241 * vec.cc: New file. 10242 * Make-lang.in (CXX_LIB2FUNCS): Add it. 10243 (vec.o): Build it. 10244 * inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 10245 __cxa_vec_delete): Declare. 10246 102472000-04-06 Nathan Sidwell <nathan@codesourcery.com> 10248 10249 * rtti.c (dfs_class_hint_mark): New static function. 10250 (dfs_class_hint_unmark): New static function. 10251 (class_hint_flags): Use them. 10252 102532000-04-05 Benjamin Kosnik <bkoz@cygnus.com> 10254 10255 * decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE. 10256 102572000-04-05 Mark Mitchell <mark@codesourcery.com> 10258 10259 * cp-tree.h (instantiate_decl): Change prototype. 10260 * decl2.c (mark_used): Adjust call. 10261 * optimize.c (inlinable_function_p): Adjust handling of templates. 10262 * pt.c (do_decl_instantiation): Adjust call to instantiate_decl. 10263 (do_type_instantiation): Likewise. 10264 (instantiate_decl): Defer more templates. 10265 (instantiate_pending_templates): Adjust logic to handle inline 10266 friend functions. 10267 10268 * Makefile.in (GGC_H): New variable. Use it throughout in place 10269 of ggc.h. 10270 10271 * call.c: Don't include obstack.h. Include ggc.h. 10272 (obstack_chunk_alloc): Don't define. 10273 (obstack_chunk_free): Likewise. 10274 (add_candidate): Allocate the z_candidate with ggc_alloc_obj. 10275 * decl.c (push_switch): Use xmalloc to allocate the cp_switch. 10276 (pop_switch): Free it. 10277 10278 * decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs. 10279 10280 * dump.c (dequeue_and_dump): Don't try to print the bit_position 10281 if we don't have a DECL_FIELD_OFFSET. 10282 10283Wed Apr 5 15:12:18 MET DST 2000 Jan Hubicka <jh@suse.cz> 10284 10285 * optimize.c (calls_setjmp_r): Use setjmp_call_p instead of 10286 special_function_p. 10287 102882000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10289 10290 * cfns.gperf (hash, libc_name_p): Prototype. 10291 10292 * rtti.c (build_dynamic_cast_1): Constification. 10293 10294 * search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes. 10295 10296 * semantics.c (deferred_type_access_control): Prototype. 10297 102982000-04-04 Mark Mitchell <mark@codesourcery.com> 10299 10300 Correct many new ABI issues regarding vbase and vcall offset 10301 layout. 10302 * cp-tree.h (BINFO_VTABLE): Document. 10303 (struct lang_type): Tweak formatting. 10304 (BINFO_PRIMARY_BINFO): Add to documentation. 10305 (CLASSTYPE_VSIZE): Fix typo in comment. 10306 (CLASSTYPE_VBASECLASSES): Update documentation. 10307 (BINFO_VBASE_MARKED): Remove. 10308 (SET_BINFO_VBASE_MARKED): Likewise. 10309 (CLEAR_BINFO_VBASE_MARKED): Likewise. 10310 (BINFO_FIELDS_MARKED): Remove. 10311 (SET_BINFO_FIELDS_MARKED): Likewise. 10312 (CLEAR_BINFO_FIELDS_MARKED): Likewise. 10313 (enum access_kind): New enumeration. 10314 (num_extra_vtbl_entries): Remove declaration. 10315 (size_extra_vtbl_entries): Likewise. 10316 (get_vtbl_decl_for_binfo): New function. 10317 (dfs_vbase_unmark): Remove declaration. 10318 (mark_primary_bases): Likewise. 10319 * class.c (SAME_FN): Remove. 10320 (struct vcall_offset_data_s): Move definition. 10321 (build_vbase_pointer): Use `build', not `build_binary_op', to 10322 access the vbase pointer under the new ABI. 10323 (build_vtable_entry_ref): Use get_vtbl_decl_for_binfo. 10324 (build_primary_vtable): Likewise. 10325 (dfs_mark_primary_bases): Move here from search.c. 10326 (mark_primary_bases): Likewise. 10327 (determine_primary_bases): Under the new ABI, don't make a base 10328 class a primary base just because we don't yet have any virtual 10329 functions. 10330 (layout_vtable_decl): Use get_vtbl_decl_for_binfo. 10331 (num_vfun_entries): Remove. 10332 (dfs_count_virtuals): Likewise. 10333 (num_extra_vtbl_entries): Likewise. 10334 (size_extra_vtbl_entries): Likewise. 10335 (layout_virtual_bases): Iterate in inheritance graph order under 10336 the new ABI. 10337 (finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to 10338 indicate that a vfield is present. 10339 (init_class_processing): Initialize access_public_node, etc., from 10340 ak_public, etc. 10341 (get_vtbl_decl_for_binfo): New function. 10342 (dump_class_hierarchy_r): Likewise. 10343 (dump_class_hierarchy): Use it. 10344 (finish_vtbls): Build the vtbls in inheritance graph order. 10345 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 10346 (initialize_vtable): Use get_vtbl_decl_for_binfo. 10347 (accumulate_vtbl_inits): Add comments explaining why a pre-order 10348 walk is required. 10349 (dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location 10350 where the vptr points, even for primary vtables. 10351 (build_vtbl_initializer): Adjust handling of vbase and vcall 10352 offsets. 10353 (build_vcall_and_vbase_vtable_entries): New function. 10354 (dfs_build_vbase_offset_vtbl_entries): Remove. 10355 (build_vbase_offset_vtbl_entries): Reimplement. 10356 (dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that 10357 were already handled in a primary base class vtable. 10358 (build_vcall_offset_vtbl_entries): Adjust. 10359 (build_rtti_vtbl_entries): Adjust. 10360 * decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo. 10361 * init.c (expand_virtual_init): Simplify. 10362 * repo.c (repo_get_id): Use get_vtbl_decl_for_binfo. 10363 * rtti.c (create_pseudo_type_info): Adjust calculation of vptr. 10364 * search.c (BINFO_ACCESS): New macro. 10365 (SET_BINFO_ACCESS): Likewise. 10366 (dfs_access_in_type): Manipulate access_kinds, not access nodes. 10367 (access_in_type): Likewise. 10368 (dfs_accessible_p): Likewise. 10369 (protected_accessible_p): Likewise. 10370 (lookup_fnfields_1): Adjust documentation. 10371 (dfs_mark_primary_bases): Move to class.c 10372 (mark_primary_bases): Likewise. 10373 (dfs_vbase_unmark): Remove. 10374 (virtual_context): Use BINFO_FOR_VBASE. 10375 (dfs_get_vbase_types): Simplify. 10376 (dfs_build_inheritance_graph_order): New function. 10377 (get_vbase_types): Use it. 10378 * tree.c (debug_binfo): Use get_vtbl_decl_for_binfo. 10379 10380 * tinfo.cc (get_vbase_offset): New function. 10381 (__vmi_class_type_info::do_find_public_src): Use it. 10382 (__vmi_class_type_info::do_dyncast): Likewise. 10383 (__vmi_class_type_info::do_upcast): Likewise. 10384 103852000-04-03 Zack Weinberg <zack@wolery.cumb.org> 10386 10387 * lang-specs.h: Pass -fno-show-column to the preprocessor. 10388 103892000-03-30 Nathan Sidwell <nathan@codesourcery.com> 10390 10391 * rtti.c (class_hint_flags): Rename flags. 10392 (class_initializer): Remove flags. 10393 (synthesize_tinfo_var): Combine offset and flags. Add flags 10394 for __vmi_class_type_info. 10395 (create_tinfo_types): Remove flags from __class_type_info and 10396 __si_class_type_info. Merge flags and offset from 10397 base_class_type_info. 10398 * inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags. 10399 (__base_class_info::is_virtual_p): Adjust. 10400 (__base_class_info::is_public_p): Adjust. 10401 (__base_class_info::offset): New accessor. 10402 (__class_type_info::details): Remove member. 10403 (__class_type_info::__class_type_info): Lose details. 10404 (__class_type_info::detail_masks): Remove. 10405 (__si_class_type_info::__si_class_type_info): Lose details. 10406 (__vmi_class_type_info::details): New member. 10407 (__vmi_class_type_info::__vmi_class_type_info): Adjust. 10408 (__vmi_class_type_info::detail_masks): New member. 10409 * tinfo.cc (__class_type_info::do_upcast): Initialize result 10410 with unknown_details_mask. 10411 (__vmi_class_type_info::do_find_public_src): Adjust 10412 (__vmi_class_type_info::do_dyncast): Adjust. 10413 (__vmi_class_type_info::do_upcast): Set result details, if 10414 needed. Adjust. 10415 (__dynamic_cast): Temporarily #if out optimization. 10416 104172000-03-29 Nathan Sidwell <nathan@codesourcery.com> 10418 10419 * rtti.c (get_tinfo_decl): Mark used. 10420 (emit_tinfo_decl): Don't optimize polymorphic type_info. Only 10421 mark as dealt with, if we output it. 10422 104232000-03-28 Mark Mitchell <mark@codesourcery.com> 10424 10425 * class.c: Reorganize to put virtual function table initialization 10426 machinery at the end of the file. 10427 104282000-03-28 Jason Merrill <jason@casey.cygnus.com> 10429 10430 * class.c (finish_struct): Use bitsize_zero_node. 10431 * pt.c (instantiate_class_template): Likewise. 10432 104332000-03-28 Mark Mitchell <mark@codesourcery.com> 10434 10435 Put RTTI entries at negative offsets in new ABI. 10436 * class.c (dfs_build_vbase_offset_vtbl_entries): Put the first 10437 vbase offset at index -3, not -1. 10438 (build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not 10439 dfs_vtable_path_unmarked_real_bases_queue_p to walk bases. 10440 (dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff. 10441 (build_rtti_vtbl_entries): New function. 10442 (set_rtti_entry): Remove. 10443 (build_primary_vtable): Don't use it. 10444 (build_secondary_vtable): Likewise. 10445 (start_vtable): Remove. 10446 (first_vfun_index): New function. 10447 (set_vindex): Likewise. 10448 (add_virtual_function): Don't call start_vtable. Do call 10449 set_vindex. 10450 (set_primary_base): Rename parameter. 10451 (determine_primary_base): Likewise. 10452 (num_vfun_entries): Don't use skip_rtti_stuff. 10453 (num_extra_vtbl_entries): Include RTTI information. 10454 (build_vtbl_initializer): Use build_rtti_vtbl_entries. 10455 (skip_rtti_stuff): Remove. 10456 (dfs_modify_vtables): Don't use it. 10457 (modify_all_vtables): Don't use start_vtable. Do use set_vindex. 10458 (layout_nonempty_base_or_field): Update size handling. 10459 (create_vtable_ptr): Tweak. 10460 (layout_class_type): Adjust parameter names. 10461 (finish_struct_1): Simplify. 10462 * cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation. 10463 (skip_rtti_stuff): Remove. 10464 (first_vfun_index): New function. 10465 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 10466 (dfs_vtable_path_marked_real_bases_queue_p): Remove. 10467 (marked_vtable_pathp): Declare. 10468 (unmarked_vtable_pathp): Likewise. 10469 * error.c (dump_expr): Use first_vfun_index to calculate vtable 10470 offsets. 10471 * rtti.c (build_headof): Look for RTTI at negative offsets. 10472 (get_tinfo_decl_dynamic): Likewise. 10473 (tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL 10474 here. 10475 (create_pseudo_type_info): Do it here instead. Adjust so that 10476 vptr points at first virtual function. 10477 * search.c (marked_vtable_pathp): Make it global. 10478 (unmarked_vtable_pathp): Likewise. 10479 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 10480 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 10481 (dfs_get_pure_virtuals): Don't use skip_rtti_stuff. 10482 (get_pure_virtuals): Likewise. 10483 (expand_upcast_fixups): Likewise. 10484 * tree.c (debug_binfo): Likewise. 10485 * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate 10486 negative offset. 10487 10488Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10489 10490 * class.c (check_field_decl): Fix typo. 10491 (build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS. 10492 (check_methods): Likewise. 10493 (check_field_decls): Likewise. 10494 Use DECL_CONTEXT, not DECL_FIELD_CONTEXT. 10495 * cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT): 10496 Use DECL_RESULT_FLD, not DECL_RESULT. 10497 * decl.c (xref_tag): Use DECL_TEMPLATE_RESULT. 10498 * lex.c (identifier_type): Likewise. 10499 * pt.c (determine_specialization, lookup_template_class): Likewise. 10500 (tsubst_friend_function, tsubst_decl, instantiate_template): Likewise. 10501 (resolve_overloaded_unification, more_specialized): Likewise. 10502 * semantics.c (finish_member_declaration): Likewise. 10503 * typeck.c (build_x_function_call): Likewise. 10504 105052000-03-26 Mark Mitchell <mark@codesourcery.com> 10506 10507 * class.c (layout_empty_base): Handle empty bases with non-byte 10508 alignment. 10509 (build_base_field): Likewise. 10510 (layout_virtual_bases): Likewise. 10511 10512 * class.c (finish_struct_1): Fix typo in this change: 10513 10514 Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10515 105162000-03-25 Mark Mitchell <mark@codesourcery.com> 10517 10518 * decl.c (grokdeclarator): Count partial specializations when 10519 keeping track of how many template classes have been seen. 10520 10521 * dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT. 10522 10523Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10524 10525 * class.c (build_vbase_pointer_fields): layout_field now place_field. 10526 (get_vfield_offset): Use byte_position. 10527 (set_rtti_entry): Set OFFSET to ssizetype zero. 10528 (get_binfo_offset_as_int): Deleted. 10529 (dfs_record_base_offsets): Use tree_low_cst. 10530 (dfs_search_base_offsets): Likewise. 10531 (layout_nonempty_base_or_field): Reflect changes in RLI format 10532 and call byte_position. 10533 (layout_empty_base): Convert offset to ssizetype. 10534 (build_base_field): use rli_size_unit_so_far. 10535 (dfs_propagate_binfo_offsets): Do computation in proper type. 10536 (layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets. 10537 (layout_class_type): Reflect changes in RLI names and fields. 10538 (finish_struct_1): Set DECL_FIELD_OFFSET. 10539 * dump.c (dequeue_and_dump): Call bit_position. 10540 * expr.c (cplus_expand_constant): Use byte_position. 10541 * rtti.c (expand_class_desc): Use bitsize_one_node. 10542 * typeck.c (build_component_addr): Use byte_position and don't 10543 special case for zero offset. 10544 105452000-03-24 Nathan Sidwell <nathan@codesourcery.com> 10546 10547 * decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P. 10548 10549 * rtti.c (get_tinfo_decl): Set comdat linkage on new-abi 10550 tinfo object. 10551 (emit_tinfo_decl): Only emit polymorphic tinfo's when emitting 10552 vtable. 10553 105542000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 10555 10556 * call.c (check_dtor_name, build_new_method_call): Use TYPE_P and 10557 DECL_P macros. 10558 * decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name, 10559 make_typename_type, check_initializer, cp_finish_decl, 10560 xref_tag): Likewise. 10561 * decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree, 10562 decl_namespace, arg_assoc_template_arg, arg_assoc, 10563 validate_nonmember_using_decl, do_class_using_decl): Likewise. 10564 * error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of, 10565 args_to_string): Likewise. 10566 * friend.c (is_friend): Likewise. 10567 * lex.c (note_got_semicolon, note_list_got_semicolon, 10568 is_global): Likewise. 10569 * method.c (build_overload_nested_name, build_overload_value, 10570 build_qualified_name, build_qualified_name, hack_identifier): Likewise. 10571 * parse.y (typename_sub, typename_sub1): Likewise. 10572 * pt.c (push_inline_template_parms_recursive, check_template_shadow, 10573 process_partial_specialization, convert_template_argument, 10574 template_args_equal, add_pending_template, lookup_template_class, 10575 for_each_template_parm_r, maybe_fold_nontype_arg, 10576 tsubst, instantiate_template, type_unification_real, unify, 10577 instantiate_pending_templates, set_mangled_name_for_template_decl): 10578 Likewise. 10579 * repo.c (repo_get_id, repo_template_used): Likewise. 10580 * search.c (lookup_field_1): Likewise. 10581 * tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise. 10582 * xref.c (classname): Likewise. 10583 105842000-03-22 Mark Mitchell <mark@codesourcery.com> 10585 10586 * cp-tree.h (BINFO_FOR_VBASE): Adjust documentation. 10587 (CANONICAL_BINFO): New macro. 10588 (BINFO_NEW_VTABLE_MARKED): Use it. 10589 (SET_BINFO_NEW_VTABLE_MARKED): Likewise. 10590 (CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise. 10591 * class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE, 10592 not TREE_TYPE. 10593 (build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10594 (build_secondary_vtable): Likewise. 10595 (dfs_finish_vtbls): Likewise. 10596 (dfs_accumulate_vtbl_inits): Likewise. 10597 (accumulate_vtbl_inits): New function. 10598 (finish_vtbls): Make sure that virtual bases come after 10599 non-virtual bases in the vtable group. 10600 (record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL. 10601 (finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10602 * search.c (struct vbase_info): Move definition. 10603 (marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10604 (unmarked_new_vtable_p): Likewise. 10605 (dfs_mark_vtable_path): Remove. 10606 (dfs_mark_new_vtable): Remove. 10607 (dfs_unmark_new_vtable): Likewise. 10608 (dfs_clear_search_slot): Likewise. 10609 (dfs_find_vbases): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10610 (dfs_clear_vbase_slots): Likewise. 10611 (init_vbase_pointers): LIkewise. 10612 106132000-03-22 Jason Merrill <jason@casey.cygnus.com> 10614 10615 * typeck.c (type_after_usual_arithmetic_conversions): Prefer a 10616 SIZETYPE to a non-SIZETYPE. 10617 106182000-03-21 Mark Mitchell <mark@codesourcery.com> 10619 10620 * class.c (layout_virtual_bases): Adjust names in conditionally 10621 compiled code. 10622 10623 * class.c (record_base_offsets): New function. 10624 (layout_conflict_p): Likewise. 10625 (layout_nonempty_base_or_field): Use it. 10626 (layout_empty_base): New function. 10627 (build_base_field): Use it. 10628 (build_base_fields): Update comment. 10629 (layout_virtual_bases): Fold in a little code form 10630 layout_basetypes. Use layout_empty_base. 10631 (layout_basetypes): Remove. 10632 (end_of_class): New function. 10633 (layout_class_type): Use it. Adjust. 10634 10635 * cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment. 10636 (fntype_p): Remove. 10637 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in 10638 comment. 10639 (dfs_skip_nonprimary_vbases_markedp): Likewise. 10640 * typeck.c (fntype_p): Remove. 10641 10642 * cp-tree.h (TI_SPEC_INFO): Remove. 10643 (CLASSTYPE_TI_SPEC_INFO): Likewise. 10644 * pt.c (process_partial_specialization): Likewise. 10645 10646 * class.c (build_base_field): Fix thinko in computation of binfo 10647 offsets. 10648 10649 * tree.c (mark_local_for_remap_p): Mark variables declared in 10650 TARGET_EXPRs as well. 10651 106522000-03-21 Nathan Sidwell <nathan@codesourcery.com> 10653 10654 * typeck.c (require_complete_type, complete_type, 10655 complete_type_or_else, c_sizeof, c_sizeof_nowarn, 10656 build_array_ref, convert_arguments, pointer_diff, 10657 build_x_unary_op, build_unary_op, build_c_cast, 10658 build_modify_expr): Use COMPLETE_TYPE_P etc. 10659 * call.c (is_complete, convert_like_real, 10660 build_new_method_call): Likewise. 10661 * class.c (build_vbase_pointer_fields, check_bases, 10662 build_base_field, finish_struct_1, pushclass): Likewise. 10663 * cvt.c (cp_convert_to_pointer, convert_to_void): Likewise. 10664 * decl.c (maybe_process_template_type_declaration, pushtag, 10665 pushdecl, redeclaration_error_message, start_decl, start_decl_1, 10666 layout_var_decl, check_initializer, cp_finish_decl, 10667 grokdeclarator, require_complete_types_for_parms, 10668 grok_op_properties, xref_tag, xref_basetypes, 10669 check_function_type): Likewise. 10670 * decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise. 10671 * friend.c (do_friend): Likewise. 10672 * init.c (build_offset_ref): Likewise. 10673 * parse.y (structsp): Likewise. 10674 * pt.c (maybe_process_partial_specialization, 10675 tsubst_friend_function, instantiate_class_template, tsubst, 10676 do_type_instantiation, instantiate_pending_templates): Likewise. 10677 * repo.c (repo_get_id): Likewise. 10678 * rtti.c (build_typeid, get_typeid, build_dynamic_cast_1, 10679 synthesize_tinfo_var, emit_support_tinfos): Likewise. 10680 * search.c (lookup_fnfields_1, lookup_conversions): Likewise. 10681 * semantics.c (begin_class_definition): Likewise. 10682 * tree.c (build_cplus_method_type): Likewise. 10683 * typeck2.c (digest_init, build_functional_cast, 10684 add_exception_specifier): Likewise. 10685 * parse.h, parse.c: Regenerated. 10686 106872000-03-21 Nathan Sidwell <nathan@codesourcery.com> 10688 10689 * inc/cxxabi.h: New header file. Define new-abi entry points. 10690 (__pointer_type_info::target): Rename member to ... 10691 (__pointer_type_info::type): ... here. 10692 (__base_class_info::type): Rename member to ... 10693 (__base_class_info::base): ... here. 10694 * Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h 10695 * cp-tree.h (CPTI_ABI): New global tree enumeration. 10696 (abi_node): New global tree node. 10697 * decl.c (abi_node): Document. 10698 (init_decl_processing): Initialize abi_node. 10699 * rtti.c (build_dynamic_cast_1): Use abi_node for new-abi. 10700 (get_vmi_pseudo_type_info): Likewise. 10701 (create_tinfo_types): Likewise. 10702 (emit_support_tinfos): Likewise. 10703 * tinfo.h (cxxabi.h): Include for new-abi. 10704 Move rtti class definitions to new header file. 10705 * tinfo.cc (abi): Use the namespace. 10706 (std): Move new abi rtti classes from here ... 10707 (__cxxabiv1): ... to here. 10708 * tinfo2.cc (cxxabi.h): Include for new-abi. 10709 Move rtti class definitions to new header file. 10710 (std): Move new abi rtti classes from here ... 10711 (__cxxabiv1): ... to here. 10712 * inc/typeinfo (__class_type_info): Move into __cxxabiv1 10713 namespace. 10714 107152000-03-20 Jed Wing <jedwin@zloty.ugcs.caltech.edu> 10716 Jason Merrill <jason@casey.cygnus.com> 10717 10718 * method.c (build_overload_int): Use host_integerp. 10719 107202000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 10721 10722 * init.c (build_offset_ref): Handle the case of a templated member 10723 function. 10724 107252000-03-19 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10726 10727 * except.c (expand_exception_blocks): Clear catch_clauses_last. 10728 107292000-03-18 Mark Mitchell <mark@codesourcery.com> 10730 10731 * cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro. 10732 * class.c (check_bitfield_decl): Turn illegal bitfields into 10733 non-bitfields. 10734 (dfs_propagate_binfo_offsets): Adjust for new size_binop 10735 semantics. 10736 (dfs_offset_for_unshared_vbases): Likewise. 10737 * cvt.c (cp_convert_to_pointer): Convert NULL to a 10738 pointer-to-member correctly under the new ABI. 10739 * expr.c (cplus_expand_constant): Don't use cp_convert when 10740 turning an offset into a pointer-to-member. 10741 * init.c (resolve_offset_ref): Don't adjust pointers-to-members 10742 when dereferencing them under the new ABI. 10743 * typeck.c (get_member_function_from_ptrfunc): Tweak calculation 10744 of pointers-to-members under the new ABI. 10745 10746 * class.c (check_bitfield_decl): Remove restriction on really long 10747 bitfields. 10748 (layout_class_type): Implement new ABI handling of bitfields 10749 longer than their types. 10750 107512000-03-18 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10752 10753 * parse.y (extdefs): Call ggc_collect. 10754 * parse.c: Regenerated. 10755 107562000-03-18 Nathan Sidwell <nathan@codesourcery.com> 10757 10758 * class.c (build_base_field): Use TYPE_ALIGN to examine a type. 10759 (note_name_declared_in_class): Use OVL_CURRENT to get at a 10760 potential overload. 10761 10762Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10763 10764 * class.c (build_vbase_path): Use integer_zerop. 10765 (build_vtable_entry): Use tree_low_cst. 10766 (get_vfield_offset): Use bit_position. 10767 (dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT. 10768 Use tree_low_cst. 10769 (check_bitfield_decl): Set DECL_SIZE using convert. 10770 (build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop. 10771 (layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT. 10772 Use tree_low_cst. 10773 (finish_struct_1): Use bit_position. 10774 (dump_class_hierarchy): Use tree_low_cst. 10775 * cp-tree.h (min_precision): Add declaration. 10776 * decl.c (xref_tag, xref_basetypes): Use tree_low_cst. 10777 * error.c (dump_type_suffix): Use host_integerp and tree_low_cst. 10778 (dump_expr): Use integer_zerop, host_integerp, and tree_low_cst. 10779 * expr.c (cplus_expand_constant): Use bit_position. 10780 * init.c (build_vec_init): Use host_integerp and tree_low_cst. 10781 * rtti.c (get_base_offset): Use bit_position. 10782 * typeck.c (build_binary_op): Use integer_zerop, compare_tree_int, 10783 host_integerp, and tree_low_cst. 10784 (pointer_int_sum): Use integer_zerop. 10785 (build_component_addr): Use bit_position. 10786 107872000-03-17 Nathan Sidwell <nathan@codesourcery.com> 10788 10789 * typeck.c (require_complete_type): Don't assume size_zero_node. 10790 (complete_type_or_else): Likewise. 10791 107922000-03-16 Steven Grady <grady@digitaldeck.com> 10793 Jason Merrill <jason@casey.cygnus.com> 10794 10795 * rtti.c (build_dynamic_cast_1): Improve diagnostics. 10796 107972000-03-16 Nathan Sidwell <nathan@codesourcery.com> 10798 10799 * decl2.c (grokfield): Bail out if type is error_mark_node. 10800 108012000-03-15 Nathan Sidwell <nathan@codesourcery.com> 10802 10803 * tinfo2.cc (__ptr_to_member_data): Rename to ... 10804 (__pointer_to_member_data): ... here. Adjust. 10805 * rtti.c (create_tinfo_types): Adjust. 10806 108072000-03-15 Nathan Sidwell <nathan@codesourcery.com> 10808 10809 * cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove. 10810 * decl.c (ref_desc_type_node): Undocument. 10811 * rtti.c (ptr_ref_initializer): Rename to ... 10812 (ptr_initializer): ... here. Adjust comments. 10813 (ptmd_initializer): Fix comment thinko. 10814 (synthesize_tinfo_var): Remove REFERENCE_TYPE case. 10815 (create_tinfo_types): Remove ref_desc_type_node init. 10816 * tinfo2.cc (__reference_type_info): Remove. 10817 108182000-03-15 Nathan Sidwell <nathan@codesourcery.com> 10819 10820 * decl.c (cp_finish_decl): Remove obsolete comment. 10821 10822 * typeck.c (build_ptrmemfunc1): Kill uninitialized warning. 10823 108242000-03-14 Mark Mitchell <mark@codesourcery.com> 10825 10826 * cp-tree.h: Tweak documentation. 10827 * class.c (build_vbase_pointer_fields): Layout the fields, too. 10828 (avoid_overlap): Remove. 10829 (get_binfo_offset_as_int): New function. 10830 (dfs_serach_base_offsets): Likewise. 10831 (layout_nonempty_base_or_field): Likewise. 10832 (build_base_field): Layout fields here. Avoid placing two objects 10833 of the same type at the same address, under the new ABI. 10834 (build_base_fields): Adjust accordingly. 10835 (create_vtable_ptr): Return the new field, but don't attach it to 10836 TYPE_FIELDS. 10837 (remove_base_field): Remove. 10838 (remove_base_fields): Remove. 10839 (layout_basetypes): Adjust accordingly. 10840 (layout_class_type): Call layout_field for each field, rather than 10841 just making a wholesale call to layout_type. 10842 108432000-03-14 Jeff Sturm <jsturm@sigma6.com> 10844 10845 * except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw. 10846 108472000-03-13 Jason Merrill <jason@casey.cygnus.com> 10848 10849 * decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P. 10850 10851 * except.c (dtor_nothrow): New fn. 10852 (do_pop_exception): Use it. Take type parm. 10853 (push_eh_cleanup): Take type parm. 10854 (expand_start_catch_block): Pass it. 10855 (build_eh_type_type_ref): Accept null type. 10856 108572000-03-12 Mark Mitchell <mark@codesourcery.com> 10858 10859 * cp-tree.h (revert_static_member_fn): Change prototype. 10860 * decl.c (grokfndecl): Adjust call to revert_static_member_fn. 10861 (grok_op_properties): Likewise. 10862 (start_function): Likewise. 10863 (revert_static_member_fn): Simplify. 10864 * pt.c (check_explicit_specialization): Adjust call to 10865 revert_static_member_fn. 10866 108672000-03-11 Mark Mitchell <mark@codesourcery.com> 10868 10869 * cp-tree.h (scope_kind): New type. 10870 (tmpl_spec_kind): Likewise. 10871 (declare_pseudo_global_level): Remove. 10872 (pseudo_global_level_p): Rename to template_parm_scope_p. 10873 (pushlevel): Remove declaration. 10874 (begin_scope): New function. 10875 (finish_scope): Likewise. 10876 (current_tmpl_spec_kind): Likewise. 10877 * decl.c (struct binding_level): Shorten parm_flag to 2 bits. 10878 Shorten keep to 2 bits. Rename pseudo_global to template_parms_p. 10879 Add template_spec_p. 10880 (toplevel_bindings_p): Adjust. 10881 (declare_pseudo_global_level): Remove. 10882 (pseudo_global_level_p): Rename to template_parm_scope_p. 10883 (current_tmpl_spec_kind): New function. 10884 (begin_scope): Likewise. 10885 (finish_scope): Likewise. 10886 (maybe_push_to_top_level): Adjust. 10887 (maybe_process_template_type_declaration): Likewise. 10888 (pushtag): Likewise. 10889 (pushdecl_nonclass_level): Likewise. 10890 (lookup_tag): Likewise. 10891 (grokfndecl): Handle member template specializations. Share 10892 constructor and non-constructor code. 10893 * decl2.c (check_classfn): Handle member template specializations. 10894 * pt.c (begin_template_parm_list): Use begin_scope. 10895 (begin_specialization): Likewise. 10896 (end_specialization): Likewise. 10897 (check_explicit_specialization): Use current_tmpl_spec_kind. 10898 Handle member template specializations. 10899 (end_template_decl): Use finish_scope. Remove call to 10900 get_pending_sizes. 10901 (push_template_decl_real): Remove bogus error message. 10902 (tsubst_decl): Fix typo in code contained in comment. 10903 (instantiate_template): Handle member template specializations. 10904 (most_general_template): Likewise. 10905 109062000-03-11 Gabriel Dos Reis <gdr@codesourcery.com> 10907 10908 * lex.c (whitespace_cr): Compress consecutive calls to warning(). 10909 (do_identifier): Ditto for error(). 10910 10911 * pt.c (convert_nontype_argument): Ditto for cp_error(). 10912 (convert_template_argument): Ditto for cp_pedwarn(). 10913 109142000-03-11 Jason Merrill <jason@casey.cygnus.com> 10915 10916 * exception.cc (__check_null_eh_spec): New fn. 10917 * except.c (expand_end_eh_spec): Call it if the spec is throw(). 10918 109192000-03-10 Jason Merrill <jason@casey.cygnus.com> 10920 10921 * decl.c (push_throw_library_fn): Take the FUNCTION_TYPE. 10922 * except.c (expand_end_eh_spec): Add the return type. 10923 * rtti.c (throw_bad_cast): Add the parmtypes. 10924 (throw_bad_typeid): Likewise. 10925 10926 * semantics.c (expand_stmt): Only leave out rtl for unused 10927 artificials, and set DECL_IGNORED_P on them as well. 10928 * decl.c (wrapup_globals_for_namespace): Likewise. 10929 109302000-03-09 Nathan Sidwell <nathan@codesourcery.com> 10931 10932 * decl.c (maybe_commonize_var): Skip all artificial decls. 10933 * pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN. 10934 109352000-03-10 Jason Merrill <jason@casey.cygnus.com> 10936 10937 * lang-options.h, decl2.c: Add -fno-enforce-eh-specs. 10938 * cp-tree.h: Declare flag_enforce_eh_specs. 10939 * decl.c (store_parm_decls, finish_function): Check it. 10940 10941 C library functions don't throw. 10942 * Makefile.in (cfns.h): New target. 10943 (except.o): Depend on it. 10944 * Make-lang.in (cc1plus): Depend on cfns.gperf. 10945 * cfns.gperf: New file. 10946 * cfns.h: Generated. 10947 * except.c: Include it. 10948 (nothrow_libfn_p): New fn. 10949 * decl.c (grokfndecl): Use it. 10950 * cp-tree.h: Declare it. 10951 10952 * decl.c (push_overloaded_decl_1, auto_function, 10953 define_function): Lose. 10954 (build_library_fn_1): New static fn. 10955 (builtin_function): Use it. 10956 (get_atexit_node): Use build_library_fn_ptr. 10957 (build_library_fn, build_cp_library_fn, build_library_fn_ptr, 10958 build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn, 10959 push_void_library_fn, push_throw_library_fn): New fns. 10960 * cp-tree.h: Declare them. 10961 (cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID. 10962 (throw_bad_cast_node, throw_bad_typeid_node): Lose. 10963 * except.c (init_exception_processing, call_eh_info, do_pop_exception, 10964 (expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns. 10965 * rtti.c (build_runtime_decl): Lose. 10966 (throw_bad_cast, throw_bad_typeid, get_tinfo_decl, 10967 build_dynamic_cast_1, expand_si_desc, expand_class_desc, 10968 expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns. 10969 10970 * call.c (build_call): Remove result_type parm. 10971 Call mark_used on unused artificial fns. 10972 * init.c, method.c, typeck.c, except.c, rtti.c: Adjust. 10973 109742000-03-09 Jason Merrill <jason@casey.cygnus.com> 10975 10976 * call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as 10977 appropriate. 10978 * decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL. 10979 * except.c (call_eh_info, alloc_eh_object, expand_throw): Set 10980 TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate. 10981 * rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1, 10982 expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 10983 expand_generic_desc): Likewise. 10984 109852000-03-08 Nathan Sidwell <nathan@codesourcery.com> 10986 10987 * exception.cc (__cp_pop_exception): Cleanup the original object. 10988 109892000-03-08 Nathan Sidwell <nathan@codesourcery.com> 10990 10991 * decl.c (grok_op_properties): Merge conversion to void warning 10992 with other silly op warnings. 10993 109942000-03-08 Jason Merrill <jason@casey.cygnus.com> 10995 10996 * typeck2.c (process_init_constructor): Set TREE_PURPOSE of 10997 array CONSTRUCTOR elements. Don't use expr_tree_cons. 10998 109992000-03-08 Nathan Sidwell <nathan@codesourcery.com> 11000 11001 * decl.c (cp_make_fname_decl): New function. 11002 (wrapup_globals_for_namespace): Don't emit unused static vars. 11003 (init_decl_processing): Remove comment about use of 11004 array_domain_type. Set make_fname_decl. 11005 (cp_finish_decl): Remove __FUNCTION__ nadgering. 11006 * semantics.c (begin_compound_stmt): Remove 11007 current_function_name_declared flagging. 11008 (expand_stmt): Don't emit unused local statics. 11009 * typeck.c (decay_conversion): Don't treat __FUNCTION__ decls 11010 specially. 11011 110122000-03-08 Nathan Sidwell <nathan@codesourcery.com> 11013 11014 * typeck.c (convert_for_assignment): Don't look at array 11015 initializer. 11016 * call.c (convert_like_real): Likewise. 11017 110182000-03-07 Jason Merrill <jason@casey.cygnus.com> 11019 11020 Add initial support for '\uNNNN' specifier. 11021 * lex.c (read_ucs): New fn. 11022 (readescape, skip_white_space): Call it. 11023 (is_extended_char, is_extended_char_1): New fns. 11024 (utf8_extend_token): New fn, #if 0'd out. 11025 (real_yylex): Treat extended chars like letters. 11026 11027 * search.c (note_debug_info_needed): Walk the bases even if we 11028 weren't deferring the type itself. 11029 110302000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11031 11032 * decl2.c (finish_objects): Constify a char*. 11033 11034 * method.c (emit_thunk): Likewise. 11035 110362000-03-06 Nathan Sidwell <nathan@codesourcery.com> 11037 11038 * typeck.c (dubious_conversion_warnings): Look through 11039 REFERENCE_TYPE. 11040 11041Mon Mar 6 08:46:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11042 11043 * class.c (dfs_modify_vtables): I is now unsigned. 11044 (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. 11045 (build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT. 11046 * error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned. 11047 * init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 11048 * method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned. 11049 * typeck.c (build_binary_op, case TRUNC_DIV_EXPR): 11050 Call integer_all_onesp. 11051 * typeck2.c (process_init_constructor): Use compare_tree_int. 11052 11053 * lang-specs.h (as): Don't call if -syntax-only. 11054 110552000-03-06 Mark Mitchell <mark@codesourcery.com> 11056 11057 * expr.c (cplus_expand_expr, case STMT_EXPR): Don't set 11058 RTL_EXPR_HAS_NO_SCOPE after all. 11059 110602000-03-05 Mark Mitchell <mark@codesourcery.com> 11061 11062 * expr.c (cplus_expand_expr, case STMT_EXPR): Use 11063 expand_start_stmt_expr and expand_end_stmt_expr directly. Set 11064 RTL_EXPR_HAS_NO_SCOPE. 11065 11066 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little 11067 later. 11068 11069 * dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P. 11070 110712000-03-05 Nathan Sidwell <nathan@codesourcery.com> 11072 11073 * call.c (convert_like): Macrofy. 11074 (convert_like_with_context): New macro. 11075 (convert_like_real): Renamed from convert_like. Add calling 11076 context parameters, for diagnostics. Add recursive flag. Call 11077 dubious_conversion_warnings for outer conversion. 11078 (build_user_type_conversion): Use convert_like_with_context. 11079 (build_over_call): Likewise. Don't warn about dubious 11080 conversions here. Adjust convert_default_arg calls. 11081 (convert_default_arg): Add context parameters for diagnostics. 11082 Pass through to convert_like_with_context. 11083 * cp-tree.h (convert_default_arg): Add context parameters. 11084 (dubious_conversion_warnings): Prototype new function. 11085 * typeck.c (convert_arguments): Adjust convert_default_arg call. 11086 (dubious_conversion_warnings): New function, broken 11087 out of convert_for_assignment. 11088 (convert_for_assignment): Adjust. 11089 110902000-03-03 Jason Merrill <jason@casey.cygnus.com> 11091 11092 * decl2.c (key_method): Break out from... 11093 (import_export_vtable, import_export_class): ...here. 11094 11095 * decl.c (finish_function): Don't mess with flag_keep_inline_functions. 11096 * decl2.c (finish_vtable_vardecl): Don't check decl_function_context. 11097 11098 * search.c (note_debug_info_needed, dfs_debug_mark, 11099 dfs_debug_unmarkedp): Uncomment. Adjust for new scheme. 11100 * decl2.c (finish_vtable_vardecl): Call note_debug_info_needed. 11101 111022000-03-03 Nathan Sidwell <nathan@codesourcery.com> 11103 11104 * decl.c (cp_finish_decl): Remove obsolete obstack comments, fix 11105 typos. 11106 111072000-03-02 Mark Mitchell <mark@codesourcery.com> 11108 11109 * cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ... 11110 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this. 11111 (TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro. 11112 (lang_type): Split gets_new into has_new and has_array_new. 11113 (TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11114 (TYPE_GETS_NEW): Split into ... 11115 (TYPE_HAS_NEW_OPERATOR): ... this, and ... 11116 (TYPE_HAS_ARRAY_NEW_OPERATOR): ... this. 11117 (DECL_ARRAY_DELETE_OPERATOR_P): New macro 11118 (build_op_new_call): Don't declare. 11119 (build_new_1): Likewise. 11120 * call.c (build_op_new_call): Remove. 11121 * class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 11122 instead of TYPE_NEEDS_DESTRUCTOR. 11123 (finish_struct_bits): Likewise. 11124 (add_implicitly_declared_members): Likewise. 11125 (check_field_decl): Likewise. 11126 (check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it 11127 correctly under the new ABI. 11128 * decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 11129 instead of TYPE_NEEDS_DESTRUCTOR. 11130 (initialize_local_var): Likewise. 11131 (destroy_local_var): Likewise. 11132 (cp_finish_decl): Likewise. 11133 (register_dtor_fn): Likewise. 11134 (grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and 11135 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. Don't set 11136 TYPE_VEC_DELETE_TAKES_SIZE here. 11137 (xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and 11138 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. 11139 (store_parm_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11140 (finish_destructor_body): Likewise. 11141 (maybe_build_cleanup_1): Likewise. 11142 * decl2.c (do_static_destruction): Likewise. 11143 * init.c (build_new_1): Make it static. 11144 (perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11145 (expand_cleanup_for_base): Likewise. 11146 (get_cookie_size): New function. 11147 (build_new_1): Handle array-new cookies correctly under the new 11148 ABI. 11149 (build_vec_delete_1): Likewise. 11150 (build_vec_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11151 (build_delete): Likewise. 11152 (build_vec_delete): Handle array-new cookies correctly under the new 11153 ABI. 11154 * lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11155 * pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and 11156 TYPE_HAS_ARRAY_NEW_OPERATOR. 11157 * ptree.c (print_lang_type): Check them. 11158 * search.c (context_for_name_lookup): Fix typo in comment. 11159 (tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 11160 * tree.c (break_out_cleanups): Likewise. 11161 (build_cplus_array_test_1): Likewise. 11162 (cp_build_qualified_type_real): Likewise. 11163 * typeck.c (complete_type): Likewise. 11164 11165 * g++spec.c (lang_specific_driver): Add -fnew-abi at the start of 11166 the command-line, not the end. 11167 111682000-03-01 Jason Merrill <jason@casey.cygnus.com> 11169 11170 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG. 11171 111722000-03-02 Tom Tromey <tromey@cygnus.com> 11173 11174 * cp-tree.h (build_java_class_ref): Declare. 11175 * init.c (build_java_class_ref): No longer static. 11176 * except.c (expand_throw): Generate a Java-style `throw' if the 11177 thrown object is a "Java" object. 11178 (initialize_handler_parm): Generate a Java-style lookup of 11179 exception info if the caught object is a "Java" object. 11180 (catch_language, catch_language_init): New globals. 11181 (decl_is_java_type): New function. 11182 (expand_start_catch_block): Don't call push_eh_info() or 11183 push_eh_cleanup() when handling a Java-style "catch". Pass Java 11184 class reference to build_catch_block. 11185 11186Thu Mar 2 13:32:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11187 11188 * typeck.c (comptypes): Treat sizetype like its language equivalent. 11189 111902000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> 11191 11192 * typeck.c (maybe_warn_about_returning_address_of_local): Reorganize 11193 to merge reference/pointer code and fix incorrect warnings. 11194 111952000-02-29 Jason Merrill <jason@casey.cygnus.com> 11196 11197 * search.c (protected_accessible_p): Use context_for_name_lookup. 11198 11199 * init.c (construct_virtual_bases): Fix thinko. 11200 * typeck.c (expand_ptrmemfunc_cst): Fix thinko. 11201 112022000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> 11203 11204 * decl.c (current_function_decl): Move to toplev.c. 11205 112062000-02-29 Nathan Sidwell <nathan@codesourcery.com> 11207 11208 * pt.c (fn_type_unification): Unify return type, whenever 11209 provided. 11210 (get_bindings_real): Only pass return type when necessary. 11211 Remove explicit return type check. 11212 * class.c (resolve_address_of_overloaded_function): Pass desired 11213 return type to fn_type_unification. 11214 11215Mon Feb 28 08:15:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11216 11217 * class.c (build_vtbl_or_vbase_field, check_methods): Don't clear 11218 DECL_FIELD_SIZE. 11219 (check_bitfield_decl, check_field_decls): Set DECL_SIZE, not 11220 DECL_FIELD_SIZE. 11221 * rtti.c (expand_class_desc): Likewise. 11222 * cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name. 11223 (THUNK_VCALL_OFFSET): Likewise. 11224 (THUNK_DELTA): Reflect changes in ../tree.h. 11225 112262000-02-28 Jason Merrill <jason@casey.cygnus.com> 11227 11228 * search.c (protected_accessible_p): Also allow the access if 11229 the member is public in DERIVED. Lose TYPE parm. 11230 (friend_accessible_p): Lose TYPE parm. 11231 (accessible_p): Adjust. 11232 11233Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11234 11235 * class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop 11236 on things that are not sizes; ssize_binop deleted. 11237 Call size_diffop when appropriate. 11238 (dfs_build_vcall_offset_vtbl_entries): Likewise. 11239 (build_primary_vtable, build_secondary_vtable): Likewise. 11240 (dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise. 11241 Variable I is HOST_WIDE_INT. 11242 (get_vfield_offset): Pass proper types to size_binop. 11243 (size_extra_vtbl_entries, layout_virtual_bases): Likewise. 11244 (finish_struct_1): Likewise. 11245 (skip_rtti_stuff): Arg N is now pointer to signed. 11246 (layout_class_type): Use size_zero_node. 11247 * cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed. 11248 * cvt.c (cp_convert_to_pointer): Pass proper types to size_binop. 11249 * decl.c (complete_arry_type): Pass proper types to size_binop. 11250 (xref_basetypes): BINFO_OFFSET is sizetype. 11251 * error.c (dump_expr): Don't use size_binop non-sizes. 11252 * expr.c (cplus_expand_constant): Pass proper types to size_binop. 11253 * init.c (construct_virtual_bases): Fix type error. 11254 (build_vec_delete_1): Pass proper type to size_binop and don't 11255 fold result. 11256 * lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype. 11257 * rtti.c (get_base_offset): Pass proper type to size_binop. 11258 * search.c (dfs_find_vbases): Fix type error. 11259 (expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed. 11260 (dfs_get_vbase_types): BINFO_OFFSET is sizetype. 11261 * tree.c (debug_binfo): Variable N is signed. 11262 Use HOST_WIDE_INT_PRINT_DEC. 11263 * typeck.c (comptypes): sizetype is same as equivalent integer type. 11264 (c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT, 11265 size_one_node and size_zero_node. 11266 (c_alignof): Use size_one_node. 11267 (build_component_addr): Pass proper types to size_binop. 11268 (expand_ptrmemfunc_cst): Don't use size_binop on non-sizes. 11269 112702000-02-26 Jason Merrill <jason@casey.cygnus.com> 11271 11272 Implement class scope using-declarations for functions. 11273 * class.c (handle_using_decl): Call add_method for used functions. 11274 Use IDENTIFIER_CLASS_VALUE to check for conflicts. 11275 (add_method): Used functions are hidden by local functions. 11276 (check_bases_and_members): Handle using-decls before finalizing 11277 CLASSTYPE_METHOD_VEC. 11278 * call.c (add_function_candidate): Add ctype parm; if non-zero, 11279 override the type of 'this' accordingly. 11280 (add_template_candidate, add_template_candidate_real): Add ctype parm. 11281 (convert_class_to_reference, build_user_type_conversion_1, 11282 build_new_function_call, build_object_call, build_new_op, 11283 build_new_method_call): Pass ctype parm. 11284 11285 * search.c (lookup_member): Put rval_binfo, not basetype_path, in 11286 the baselink. 11287 * call.c (convert_class_to_reference, build_user_type_conversion_1, 11288 build_new_function_call, build_object_call, build_new_op, 11289 build_new_method_call, build_op_delete_call): Don't get basetype_path 11290 from a baselink. 11291 * typeck.c (build_component_ref): Likewise. 11292 * init.c (build_offset_ref): Likewise. 11293 (resolve_offset_ref): Don't call enforce_access. 11294 Call build_scoped_ref. 11295 * typeck2.c (build_scoped_ref): Simplify. Do nothing if it 11296 would cause an error or if -pedantic. 11297 * class.c (alter_access): Lose binfo parm. 11298 112992000-02-26 Mark Mitchell <mark@codesourcery.com> 11300 11301 * semantics.c (simplify_aggr_init_exprs_p): Don't walk into 11302 types. 11303 113042000-02-25 Alfred Minarik <a8601248@unet.univie.ac.at> 11305 11306 * rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info 11307 pseudo_type_info creation into the std namespace 11308 113092000-02-26 Mark Mitchell <mark@codesourcery.com> 11310 11311 * cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF. 11312 (import_export_class): Remove declaration. 11313 * decl2.c (import_export_class): Make it static. 11314 * dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR, 11315 PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, 11316 EXPR_WITH_FILE_LOCATION. 11317 * lex.c (check_newline): Tweak filename/lineno setting. 11318 * semantics.c (begin_while_stmt): Fix typo in comment. 11319 11320Sat Feb 26 19:50:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11321 11322 * lang-options.h (-fmessage-length=): Add missing option. 11323 11324 * Make-lang.in (CXX_SRCS): Add .h files and sort list. 11325 113262000-02-26 Zack Weinberg <zack@wolery.cumb.org> 11327 11328 * Make-lang.in: Delete refs to LIBGCC2_DEPS. 11329 11330Fri Feb 25 14:52:33 2000 Jim Wilson <wilson@cygnus.com> 11331 11332 * optimize.c (expand_call_inline): Emit the return label before 11333 evaluating the return value. 11334 113352000-02-24 Mark Mitchell <mark@codesourcery.com> 11336 11337 * lex.c (check_newline): Use push_srcloc and pop_srcloc, rather 11338 than duplicating functionality here. 11339 * optimize.c: Include input.h. 11340 (expand_call_inline): Use push_srcloc and pop_srcloc. 11341 * parse.y (maybe_cv_qualifier): Remove calls to emit_line_note. 11342 * parse.c: Regenerated. 11343 * Makefile.in (lex.o): Depend on input.h. 11344 (optimize.o): Likewise. 11345 113462000-02-24 Nathan Sidwell <nathan@codesourcery.com> 11347 11348 * decl.c (grokdeclarator): Diagnose qualifiers on non-member 11349 function type, rather than ICE. 11350 113512000-02-23 Jason Merrill <jason@casey.cygnus.com> 11352 11353 * decl.c (grokdeclarator): Call decl_type_access_control. 11354 * parse.y (parse_end_decl): Don't call decl_type_access_control if 11355 decl is null. 11356 113572000-02-23 Nathan Sidwell <nathan@codesourcery.com> 11358 11359 * decl.c (decls_match): Remove obsolete static member nadgering. 11360 113612000-02-21 Martin v. L�wis <loewis@informatik.hu-berlin.de> 11362 11363 * decl.c (grokdeclarator): Change ANSI to ISO. 11364 * lex.c (consume_string, readescape, do_identifier): Likewise. 11365 (parse_float, real_yylex): Likewise. 11366 * parse.y (paren_expr_or_null, paren_cond_or_null): Likewise. 11367 (unary_expr, new_initializer, cast_expr, primary, primary_no_id, 11368 new_type_id, maybe_label_decls, simple_stmt, 11369 for.init.statement): Likewise. 11370 * pt.c (do_decl_instantiation, do_type_instantiation): Likewise. 11371 * semantics.c (finish_named_return_value): Likewise. 11372 * parse.c: Regenerate. 11373 113742000-02-21 Mark Mitchell <mark@codesourcery.com> 11375 11376 * cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro. 11377 (CPTI_CLASS_STAR_TYPE): Remove. 11378 (vtable_index_type): Likewise. 11379 (class_star_type_node): Remove. 11380 (TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI. 11381 (build_binary_op_nodefault): Remove. 11382 * call.c (build_new_op): Use build_binary_op instead of 11383 build_binary_op_nodefault. 11384 * decl.c (init_decl_processing): Remove class_star_type_node 11385 initialization. Make delta_type_node ptrdiff_type_node under the 11386 new ABI. Initialize vtable_index_type. 11387 (build_ptrmemfunc_type): Build different structures for the new 11388 ABI. 11389 (build_enumerator): Use build_binary_op instead of 11390 build_binary_op_nodefault. 11391 * method.c (build_overload_value): Mangle pointers-to-members 11392 appropriately under the new ABI. 11393 * typeck.c (build_array_ref): Use build_binary_op instead of 11394 build_binary_op_nodefault. 11395 (get_member_function_from_ptrfunc): Adjust for the new ABI. 11396 (build_binary_op_nodefault): Rename to ... 11397 (build_binary_op): ... this. Remove old version. Adjust for 11398 pointer-to-member comparisons under the new ABI. 11399 (build_ptrmemfunc1): Remove dead code. Adjust for the new ABI. 11400 (build_ptrmemfunc): Adjust for the new ABI. 11401 (expand_ptrmemfunc_cst): Likewise. 11402 (delta2_from_ptrmemfunc): Assert that we're not using the new ABI. 11403 (pfn_from_ptrmemfunc): Adjust for the new ABI. 11404 114052000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> 11406 11407 * call.c (build_object_call): Compress consecutive calls to 11408 cp_error. 11409 (build_conditional_expr): Say 'ISO C++' not 'ANSI C++'. 11410 (build_op_delete_call): Adjust message formatting. 11411 11412 * class.c (check_bases): Compress consecutive calls to 11413 cp_pedwarn. 11414 (finish_struct_anon): Say 'ISO C++'. 11415 11416 * decl.c (start_decl): Same here. 11417 (grok_reference_init): Likewise. 11418 (grokfndecl): Correct message formatting. 11419 (grokfndecl): Improve diagnostic. 11420 (check_static_variable_definition): Likewise. Say 'ISO C++' 11421 (compute_array_index_type): Say 'ISO C++' 11422 (create_array_type_for_decl): Compress consecutive calls to 11423 cp_error. 11424 (grokdeclarator): Say 'ISO C++' 11425 (grok_op_properties): Likewise. 11426 11427 * decl2.c (delete_sanity): Clairify diagnostic. 11428 (check_member_template): Same here. 11429 (grok_function_init): Use consistent terminology. 11430 11431 * expr.c (do_case): Say 'ISO C++' 11432 11433 * friend.c (do_friend): Compress consecutive calls to warning. 11434 114352000-02-20 Mark Mitchell <mark@codesourcery.com> 11436 11437 * cp-tree.h (merge_primary_and_secondary_vtables_p): New macro. 11438 * class.c (build_secondary_vtable): Reorganize. Don't create a 11439 new vtable under the new ABI. 11440 (layout_vtable_decl): Don't add num_extra_vtbl_entries when 11441 computing the size. 11442 (build_vtbl_initializer): Don't return a CONSTRUCTOR; just return 11443 the initializing elements. 11444 (initialize_vtable): New function. 11445 (dfs_finish_vtbls): Use it. 11446 (dfs_accumulate_vtbl_inits): New function. 11447 (finish_vtbls): Merge primary and secondary vtables under the new 11448 ABI. 11449 (finish_struct_1): Remove redundant call to layout_vtable_decl. 11450 * init.c (expand_virtual_init): Deal with BINFO_VTABLEs that 11451 aren't VAR_DECLs. 11452 11453 * class.c (build_vtable): New function, split out from ... 11454 (get_vtable_decl): ... here, and ... 11455 (build_secondary_vtable): ... here. 11456 11457 * pt.c (tsubst_decl): Fix formatting. 11458 11459Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11460 11461 * class.c (build_primary_vtable, layout_vtable_decl): Likewise. 11462 (avoid_overlap, build_base_field): Likewise. 11463 (build_base_field, build_base_fields, is_empty_class): 11464 Test DECL_SIZE with integer_zero. 11465 (layout_class_type): Set CLASSTYPE_SIZE_UNIT. 11466 * cp-tree.h (struct lang_type): New field size_unit. 11467 (CLASSTYPE_SIZE_UNIT): New macro. 11468 * decl.c (init_decl_processing): Set DECL_SIZE_UNIT. 11469 (cp_finish_decl): Delete -Wlarger-than processing. 11470 * optimize.c (remap_decl): Walk DECL_SIZE_UNIT. 11471 * pt.c (tsubst_decl): Set DECL_SIZE_UNIT. 11472 * tree.c (make_binfo): binfo vector is one entry longer. 11473 (walk_tree): Walk DECL_SIZE_UNIT. 11474 114752000-02-19 Mark Mitchell <mark@codesourcery.com> 11476 11477 * class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in 11478 comment. 11479 (build_vtable_entry): Don't assume all vtable entries are 11480 functions. 11481 (build_vtbl_initializer): Adjust accordingly. 11482 (get_vtable_decl): Fix formatting. 11483 114842000-02-18 Jason Merrill <jason@casey.cygnus.com> 11485 11486 * semantics.c (deferred_type_access_control): Walk the entire 11487 type_lookups list. 11488 (save_type_access_control): Rename from 11489 initial_deferred_type_access_control. Just remember the value. 11490 (decl_type_access_control): New fn. 11491 (begin_function_definition): Use deferred_type_access_control, after 11492 we've started the function. Set type_lookups to error_mark_node. 11493 * parse.y (frob_specs, fn.def1): Adjust. 11494 (parse_decl0, parse_field, parse_field0, parse_bitfield): New fns. 11495 (parse_end_decl, parse_bitfield0, parse_method): New fns. 11496 (fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them. 11497 (after_type_component_declarator0): Likewise. 11498 (after_type_component_declarator): Likewise. 11499 (notype_component_declarator): Likewise. 11500 * cp-tree.h: Adjust. 11501 11502 * decl.c (redeclaration_error_message): Allow redeclaration of 11503 namespace-scope decls. 11504 115052000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 11506 11507 * typeck2.c (my_friendly_abort): Use GCCBUGURL. 11508 115092000-02-17 Mark Mitchell <mark@codesourcery.com> 11510 11511 * class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT. 11512 * decl2.c (grokclassfn): Likewise. 11513 11514 * ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS. 11515 11516 * decl2.c (lang_decode_option): Don't set default message length 11517 here. 11518 * lex.c (lang_init_options): Set it here. 11519 115202000-02-16 Mark Mitchell <mark@codesourcery.com> 11521 11522 Make DECL_CONTEXT mean the class in which a member function was 11523 declared, even for a virtual function. 11524 * cp-tree.h (DECL_CLASS_CONTEXT): Adjust. 11525 (DECL_FRIEND_CONTEXT): New macro. 11526 (DECL_REAL_CONTEXT): Remove. 11527 (SET_DECL_FRIEND_CONTEXT): Likewise. 11528 (DECL_VIRTUAL_CONTEXT): Adjust. 11529 (DECL_CLASS_SCOPE_P): Use TYPE_P. 11530 (add_friends): Remove. 11531 (hack_decl_function_context): Likewise. 11532 * call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with 11533 CP_DECL_CONTEXT. 11534 (build_over_call): Fix indentation. Use DECL_CONTEXT 11535 instead of DECL_CLASS_CONTEXT. 11536 * class.c (dfs_build_vcall_offset_vtbl_entries): Likewise. 11537 (add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 11538 (strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11539 (build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT. 11540 (build_base_field): Likewise. 11541 (finish_struct_1): Likewise. 11542 (build_self_reference): Likewise. 11543 * decl.c (push_class_binding): Use CP_DECL_CONTEXT, not 11544 DECL_REAL_CONTEXT. 11545 (pushtag): Use decl_function_context, not 11546 hack_decl_function_context. 11547 (decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 11548 (duplicate_decls): Use DECL_VIRTUAL_CONTEXT. 11549 (pushdecl): Remove bogus code. 11550 (start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT. 11551 (cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 11552 (grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11553 Use decl_function_context, nothack_decl_function_context. 11554 (grokvardecl): Don't set DECL_CLASS_CONTEXT. 11555 (grokdeclarator): Likewise. Use decl_function_context, not 11556 hack_decl_function_context. 11557 (copy_args_p): Document. Don't use DECL_CLASS_CONTEXT. 11558 (start_function): Use DECL_FRIEND_CONTEXT, not 11559 DECL_CLASS_CONTEXT. Use decl_function_context, not 11560 hack_decl_function_context. 11561 (finish_function): Use decl_function_context, not 11562 hack_decl_function_context. 11563 (maybe_retrofit_in_chrg): Use DECL_CONTEXT, not 11564 DECL_CLASS_CONTEXT. 11565 (grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT. 11566 (finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT. 11567 (grokfield): Likewise. 11568 (finish_builtin_type): Likewise. 11569 (finish_vtable_vardec): Use decl_function_context, not 11570 hack_decl_function_context. 11571 (import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11572 (start_static_initialization_or_destruction): Likewise. 11573 (finish_static_initialization_or_destruction): Likewise. 11574 (mark_used): Adjust logic for deciding when to synthesize methods. 11575 * dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not 11576 DECL_REAL_CONTEXT. 11577 * error.c (dump_function_decl): Use DECL_CONTEXT, not 11578 DECL_CLASS_CONTEXT. 11579 * friend.c (is_friend): Likewise. 11580 (add_friends): Remove. 11581 (do_friend): Use SET_DECL_FRIEND_CONTEXT. 11582 * lex.c (begin_definition_of_inclass_inline): Use 11583 decl_function_context, not hack_decl_function_context. 11584 (process_next_inline): Likewise. 11585 (do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 11586 * method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not 11587 DECL_CLASSS_CONTEXT. 11588 (hack_identifier): Likewise. 11589 (synthesize_method): Use decl_function_context, not 11590 hack_decl_function_context. 11591 * pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not 11592 DECL_REAL_CONTEXT. 11593 (is_member_template): Use decl_function_context, not 11594 hack_decl_function_context. Use DECL_CONTEXT, not 11595 DECL_CLASS_CONTEXT. 11596 (build_template_decl): Set DECL_VIRTUAL_CONTEXT, not 11597 DECL_CLASS_CONTEXT. 11598 (check_default_tmpl_args): Use CP_DECL_CONTEXT, not 11599 DECL_REAL_CONTEXT. 11600 (push_template_decl_real): Likewise. 11601 (instantiate_class_template): Don't call add_friends. 11602 (tsubst_default_argument): Use DECL_CONTEXT, not 11603 DECL_REAL_CONTEXT. 11604 (tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 11605 Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11606 (set_meangled_name_for_template_decl): Use DECL_CONTEXT, not 11607 DECL_CLASS_CONTEXT. 11608 * repo.c (repo_inline_used): Likewise. 11609 * search.c (current_scope): Adjust for new _CONTEXT macros. 11610 (context_for_name_lookup): Use CP_DECL_CONTEXT, not 11611 DECL_REAL_CONTEXT. 11612 (friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11613 (lookup_fnfields_here):Likewise. 11614 (check_final_overrider): Likewise. 11615 (init_vbase_pointers): Likewise. 11616 (virtual_context): Likewise. 11617 * semantics.c (finish_member_declaration): Just set DECL_CONTEXT. 11618 (expand_body): Use decl_function_context, not 11619 hack_decl_function_context. 11620 * tree.c (hack_decl_function_context): Remove. 11621 * typeck.c (build_x_function_call): Use DECL_CONTEXT, not 11622 DECL_CLASS_CONTEXT. 11623 * typeck2.c (error_not_base_type): Likewise. 11624 116252000-02-15 Jason Merrill <jason@casey.cygnus.com> 11626 11627 * decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE. 11628 116292000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11630 11631 * Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h. 11632 116332000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> 11634 11635 * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec. 11636 116372000-01-16 Gabriel Dos Reis <gdr@codesourcery.com> 11638 11639 * decl2.c (lang_decode_option): Enable automatic line wrapping. 11640 116412000-02-13 Jason Merrill <jason@casey.cygnus.com> 11642 11643 * parse.y (frob_specs): Split out... 11644 (parse_decl): From here. 11645 (fn.def2): Call initial_deferred_type_access_control. 11646 (after_type_component_declarator0): Call frob_specs. 11647 (notype_component_declarator0): Likewise. 11648 * search.c (friend_accessible_p): Nested classes are friends of their 11649 enclosing classes. 11650 116512000-02-10 Mark Mitchell <mark@codesourcery.com> 11652 11653 * ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be 11654 used to create an implicit temporary. 11655 11656 * class.c (dfs_modify_vtables): Tweak calculation of functions to 11657 override. 11658 116592000-02-08 Nathan Sidwell <nathan@acm.org> 11660 11661 * typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to 11662 strip array element qualifiers too. 11663 116642000-02-07 Mark Mitchell <mark@codesourcery.com> 11665 11666 * decl.c (store_parm_decls): Don't build cleanups for parameters 11667 while processing_template_decl. 11668 116692000-02-07 Jason Merrill <jason@casey.cygnus.com> 11670 11671 * cp-tree.h (struct saved_scope): Add incomplete field. 11672 (namespace_scope_incomplete): New macro. 11673 * decl.c (pushdecl): Use it. 11674 (hack_incomplete_structures): Use it. See through artificial 11675 binding levels. 11676 (mark_saved_scope): Mark it. 11677 11678 Implement access control for nested types. 11679 * search.c (type_access_control): New fn. 11680 (accessible_p): Now we do perform access control for types. 11681 * semantics.c (deferred_type_access_control): New fn. 11682 (initial_deferred_type_access_control): New fn. 11683 (begin_function_definition): Call it. Add lookups parm. 11684 * decl.c (struct binding_level): Add this_class field. 11685 (pushlevel_class): Set it. 11686 (mark_binding_level): Mark it. 11687 (lookup_name_real): Use it. Call type_access_control. 11688 (mark_saved_scope): Mark lookups field. 11689 * cp-tree.h (flagged_type_tree): Add lookups field. 11690 (struct saved_scope): Add lookups field. 11691 (type_lookups): New macro. 11692 * parse.y (declmods): Now <ftype>. 11693 (parse_decl): Add lookups parm. Call 11694 initial_deferred_type_access_control. 11695 (lang_extdef): Clear type_lookups. 11696 (typed_declspecs, declmods, typespec): Set lookups field. 11697 (initdcl): Call deferred_type_access_control. 11698 (fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0, 11699 component_decl_1, named_parm): Adjust. 11700 * friend.c (is_friend): Nested classes are friends of their 11701 enclosing classes. 11702 11703 * class.c (currently_open_derived_class): New fn. 11704 * method.c (hack_identifier): Use it. 11705 11706 * lex.c (do_identifier): Remove obsolete code. 11707 11708 * parse.y (typed_typespecs): Propagate new_type_flag properly. 11709 117102000-02-05 Zack Weinberg <zack@wolery.cumb.org> 11711 11712 * tinfo.h: Remove apostrophes from C++ comment (xgettext 11713 thinks this file is plain C). 11714 117152000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11716 11717 * Makefile.in (call.o): Depend on $(EXPR_H). 11718 11719 * call.c: Include "expr.h". 11720 11721 * class.c (dump_class_hierarchy): Add prototype. 11722 11723 * search.c (dfs_get_pure_virtuals): Likewise. 11724 117252000-02-1 Ulrich Drepper <drepper@redhat.com> 11726 11727 * parse.y (simple_stmt): Allow :: token in asm parameter list. 11728 * parse.c: Rebuilt. 11729 11730Mon Jan 31 15:35:29 2000 Jim Wilson <wilson@cygnus.com> 11731 11732 * class.c (build_vtbl_or_vbase_field): New parameter fcontext. 11733 Store it in DECL_FCONTEXT. 11734 (build_vbase_pointer_fields, create_vtable_ptr): Fix callers. 11735 117362000-01-31 Jason Merrill <jason@casey.cygnus.com> 11737 11738 * tinfo.h (old abi): #include "tconfig.h". 11739 * tinfo.cc (convert_to_base): Move into old abi section. 11740 117412000-01-31 Mark Mitchell <mark@codesourcery.com> 11742 11743 * cp-tree.h (BINFO_VIRTUALS): Tweak documentation. 11744 (CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO. 11745 (BINFO_PRIMARY_BINFO): New macro. 11746 (BF_DELTA): Rename to ... 11747 (BV_DELTA): ... this. 11748 (BF_VCALL_INDEX): Rename to ... 11749 (BV_VCALL_INDEX): ... this. 11750 (BF_FN): Rename to ... 11751 (BV_FN): ... this. 11752 * class.c (build_vbase_path): Adjust for changes to reverse_path. 11753 (set_rtti_entry): Rename BF_ macros to BV_ variants. 11754 (modify_vtable_entry): Simplify. 11755 (add_virtual_function): Rename BF_ macros to BV_ variants. 11756 (build_vtable_initializer): Likewise. 11757 (get_class_offset_1): Remove. 11758 (dfs_get_class_offset): Likewise. 11759 (get_class_offset): Likewise. 11760 (dfs_find_final_overrider): New function. 11761 (find_final_overrider): Likewise. 11762 (modify_one_vtable): Remove. 11763 (dfs_find_base): New function. 11764 (dfs_modify_vtables): Fold modify_one_vtable in here. Use 11765 find_final_overrider. 11766 (modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new 11767 virtuals. 11768 (dfs_fixup_vtable_deltas): Remove. 11769 (override_one_vtable): Remove. 11770 (merge_overrides): Likewise. 11771 (layout_virtual_bases): Make sure BINFO_OFFSET is set right for 11772 unreal chilren of virtual bases. 11773 (finish_struct_1): Don't use merge_overrides. Don't use 11774 dfs_fixup_vtable_deltas. 11775 * tree.c (reverse_path): Return a TREE_LIST, not a chain of 11776 BINFOs. 11777 117782000-01-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 11779 Jason Merrill <jason@yorick.cygnus.com> 11780 11781 * tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT. 11782 117832000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at> 11784 11785 * exception.cc (__throw_bad_typeid): Add missing std::. 11786 117872000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11788 11789 * cp-tree.h (make_thunk): PROTO -> PARAMS. 11790 117912000-01-31 Nathan Sidwell <sidwell@codesourcery.com> 11792 11793 * cp-tree.h (new_abi_rtti_p): Use flag_new_abi. 11794 11795 Runtime support for new-abi rtti. 11796 * inc/typeinfo (type_info::operator!=): Define in class. 11797 (type_info::before, type_info::name, type_info::operator==, 11798 type_info::operator!=): Define new ABI implementations. 11799 (type_info::is_pointer_p, type_info::is_function_p): Declare 11800 new virtual functions. 11801 (type_info::do_catch, type_info::do_upcast): Likewise. 11802 11803 * tinfo.h (__base_class_info): Define new class. 11804 (__class_type_info): Likewise. 11805 (__si_class_type_info): Likewise. 11806 (__vmi_class_type_info): Likewise. 11807 (__dynamic_cast): Prototype. 11808 11809 * tinfo.cc: Conditionalize old and new rtti mechanisms. 11810 (type_info::is_pointer_p): Define new function. 11811 (type_info::is_function_p): Likewise. 11812 (type_info::do_catch): Likewise. 11813 (type_info::do_upcast): Likewise. 11814 (vtable_prefix): New structure for vtable access. 11815 (adjust_pointer): Define new template function. 11816 (contained_p, public_p, virtual_p, contained_public_p, 11817 contained_nonpublic_p, contained_nonvirtual_p): Define new 11818 functions. 11819 (nonvirtual_base_type): New local variable. 11820 (__class_type_info::~__class_type_info): Define. 11821 (__si_class_type_info::~__si_class_type_info): Likewise. 11822 (__vmi_class_type_info::~__vmi_class_type_info): Likewise. 11823 (__class_type_info::do_catch): Define new function. 11824 (__class_type_info::do_upcast): Likewise. 11825 (__class_type_info::find_public_src): Likewise. 11826 (__class_type_info::do_find_public_src): Likewise. 11827 (__si_class_type_info::do_find_public_src): Likewise. 11828 (__vmi_class_type_info::do_find_public_src): Likewise. 11829 (__class_type_info::do_dyncast): Likewise. 11830 (__si_class_type_info::do_dyncast): Likewise. 11831 (__vmi_class_type_info::do_dyncast): Likewise. 11832 (__class_type_info::do_upcast): Likewise. 11833 (__si_class_type_info::do_upcast): Likewise. 11834 (__vmi_class_type_info::do_upcast): Likewise. 11835 (__dynamic_cast): Likewise. 11836 11837 * tinfo2.cc (__fundamental_type_info): Define new class. 11838 (__pointer_type_info): Likewise. 11839 (__reference_type_info): Likewise. 11840 (__array_type_info): Likewise. 11841 (__function_type_info): Likewise. 11842 (__enum_type_info): Likewise. 11843 (__ptr_to_member_type_info): Likewise. 11844 (__fundamental_type_info::~__fundamental_type_info): Define. 11845 (__pointer_type_info::~__pointer_type_info): Likewise. 11846 (__reference_type_info::~__reference_type_info): Likewise. 11847 (__array_type_info::~__array_type_info): Likewise. 11848 (__function_type_info::~__function_type_info): Likewise. 11849 (__enum_type_info::~__enum_type_info): Likewise. 11850 (__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise. 11851 (__pointer_type_info::do_catch): Define new function. 11852 (__ptr_to_member_type_info::do_catch): Define new function. 11853 11854 (__throw_type_match_rtti_2): Use new ABI interface, if enabled. 11855 (__is_pointer): Likewise. 11856 11857 * exception.cc (__cplus_type_matcher): Deal with new-abi rtti. 11858 118592000-01-30 Mark Mitchell <mark@codesourcery.com> 11860 11861 * cp/class.c (build_vtable): Rename to build_primary_vtable. 11862 (prepare_fresh_vtable): Rename to build_secondary_vtable. 11863 (make_new_vtable): New function. 11864 (modify_vtable_entry): Handle generation of new vtables correctly. 11865 (modify_one_vtable): Remove unused parameter. 11866 (dfs_fixup_vtable_deltas): Likewise. 11867 (override_one_vtable): Use build_secondary_vtable. 11868 (finish_struct_1): Use build_primary_vtable and 11869 build_secondary_vtable. 11870 118712000-01-28 Ulrich Drepper <drepper@redhat.com> 11872 11873 * cp/decl.c: Adjust variable names, comments, help strings. 11874 118752000-01-29 Nathan Sidwell <nathan@acm.org> 11876 11877 * new2.cc (operator delete[]): Use operator delete, don't assume 11878 implementation. 11879 118802000-01-29 Nathan Sidwell <sidwell@codesourcery.com> 11881 11882 * class.c (build_vtbl_initializer): Add argument to 11883 build_vtable_entry call. 11884 118852000-01-27 Mark Mitchell <mark@codesourcery.com> 11886 11887 * cp-tree.def (THUNK_DECL): Discuss vcall indices. 11888 * cp-tree.h (BINFO_VIRTUALS): Update documentation. 11889 (BF_DELTA): New macro. 11890 (BF_VCALL_INDEX): Likewise. 11891 (BF_FN): Likewise. 11892 (THUNK_VCALL_OFFSET): Likewise. 11893 (make_thunk): Change prototype. 11894 * class.c (build_vtable_entry): Integrate 11895 build_vtable_entry_for_fn. Handle vcall indices. 11896 (build_vtable_entry_for_fn): Remove. 11897 (set_rtti_entry): Handle vcall indices. Use BF_DELTA, 11898 BF_VCALL_INDEX, BF_FN. 11899 (modify_vtable_entry): Integrate common code from 11900 modify_one_vtable and dfs_fixup_vtable_deltas. 11901 (add_virtual_function): Set BF_VCALL_INDEX. 11902 (build_vtbl_initializer): Simplify. Use BF_DELTA, BF_VCALL_INDEX, 11903 and BF_FN. 11904 (modify_one_vtable): Simplify. 11905 (dfs_fixup_vtable_deltas): Likewise. 11906 (override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN. 11907 * method.c (make_thunk): Handle vcall indices. 11908 119092000-01-28 Nathan Sidwell <sidwell@codesourcery.com> 11910 11911 Compiler side new abi rtti (not enabled). 11912 * cp-tree.h (new_abi_rtti_p): New macro. 11913 (emit_support_tinfos): Prototype new function. 11914 (tinfo_decl_p): Likewise. 11915 (emit_tinfo_decl): Likwise. 11916 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor 11917 macros. 11918 (doing_runtime): New local static. 11919 (init_rtti_processing): Add new-abi initializer. 11920 (get_tinfo_decl): Add new-abi logic. 11921 (tinfo_from_decl): Likewise. 11922 (build_dynamic_cast_1): Likewise. 11923 (qualifier_flags): New static function. 11924 (tinfo_base_init): Likewise. 11925 (generic_initializer): Likewise. 11926 (ptr_ref_initializer): Likewise. 11927 (ptmd_initializer): Likewise. 11928 (class_hint_flags): Likewise. 11929 (class_initializer): Likewise. 11930 (synthesize_tinfo_var): Likewise. 11931 (create_real_tinfo_var): Likewise. 11932 (create_pseudo_type_info): Likewise. 11933 (get_vmi_pseudo_type_info): Likewise. 11934 (create_tinfo_types): Likewise. 11935 (emit_support_tinfos): New global function. 11936 (tinfo_decl_p): New global predicate. 11937 (emit_tinfo_decl): New global function. 11938 * class.c (set_rtti_entry): Generalize for old and new rtti. 11939 (build_vtbl_initializer): Likewise. 11940 * decl2.c (finish_file): Likewise. 11941 11942Thu Jan 27 20:53:36 2000 Jim Wilson <wilson@cygnus.com> 11943 11944 * optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t) 11945 and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))). 11946 11947Thu Jan 27 13:54:12 2000 Mike Stump <mrs@wrs.com> 11948 11949 * decl.c (pushdecl): Fix up shadow warnings with respect to implicit 11950 for scopes. 11951 119522000-01-26 Jason Merrill <jason@casey.cygnus.com> 11953 11954 * pt.c (unify): Use fold, not maybe_fold_nontype_arg. 11955 11956Wed Jan 26 22:19:14 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 11957 11958 * optimize.c (calls_setjmp_r): Supply new argument 11959 to special_function_p. 11960 119612000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11962 11963 * call.c: PROTO -> PARAMS. 11964 * class.c: Likewise. 11965 * cp-tree.h: Likewise. 11966 * cvt.c: Likewise. 11967 * decl.c: Likewise. 11968 * decl.h: Likewise. 11969 * decl2.c: Likewise. 11970 * dump.c: Likewise. 11971 * errfn.c: Likewise. 11972 * error.c: Likewise. 11973 * except.c: Likewise. 11974 * expr.c: Likewise. 11975 * init.c: Likewise. 11976 * input.c: Likewise. 11977 * lex.c: Likewise. 11978 * lex.h: Likewise. 11979 * method.c: Likewise. 11980 * optimize.c: Likewise. 11981 * parse.y: Likewise. 11982 * pt.c: Likewise. 11983 * repo.c: Likewise. 11984 * rtti.c: Likewise. 11985 * search.c: Likewise. 11986 * semantics.c: Likewise. 11987 * spew.c: Likewise. 11988 * tree.c: Likewise. 11989 * typeck.c: Likewise. 11990 * typeck2.c: Likewise. 11991 * xref.c: Likewise. 11992 119932000-01-25 Richard Henderson <rth@cygnus.com> 11994 11995 * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR. 11996 119972000-01-25 Mark Mitchell <mark@codesourcery.com> 11998 11999 * cp-tree.h (vcall_offset_in_vtable_p): New macro. 12000 * class.c (build_vbase_offset_vtbl_entries): Fix typo in commment. 12001 (struct vcall_offset_data_s): New type. 12002 (dfs_vcall_offset_queue_p): New function. 12003 (dfs_build_vcall_offset_vtbl_entries): Likewise. 12004 (build_vcall_offset_vtbl_entries): Likewise. 12005 (layout_vtable_decl): Likewise. 12006 (num_vfun_entries): Likewise. 12007 (num_extra_vtbl_entries): Add the entries for vcall offsets. 12008 (build_vtbl_initializer): Likewise. 12009 (dfs_finish_vtabls): Use layout_vtable_decl. 12010 (modify_one_vtables): Always duplicate vtables under the new ABI. 12011 (finish_struct_1): Use layout_vtable_decl. 12012 120132000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12014 12015 * decl.c (member_function_or_else): Change third arg from a format 12016 specifier to an `enum overload_flags'. Callers changed. 12017 120182000-01-25 Gabriel Dos Reis <gdr@codesourcery.com> 12019 12020 * typeck.c (composite_pointer_type, c_sizeof, expr_sizeof, 12021 build_binary_op_nodefault, build_unary_op, build_reinterpret_cast, 12022 build_const_cast, get_delta_difference, check_return_expr): Avoid 12023 ANSI string concatenation usage. 12024 120252000-01-24 Mark Mitchell <mark@codesourcery.com> 12026 12027 * class.c (layout_class_type): Put the fields required to make a 12028 class non-empty at the end, not the beginning, of the TYPE_FIELDs 12029 list. 12030 120312000-01-24 Jason Merrill <jason@casey.cygnus.com> 12032 12033 * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a 12034 template. 12035 12036 * decl2.c (mark_used): Do instantiate inlines that have been 12037 explicitly instantiated. 12038 120392000-01-24 Richard Henderson <rth@cygnus.com> 12040 12041 * call.c (build_over_call): Use expand_tree_builtin. 12042 * typeck.c (build_function_call_real): Likewise. 12043 (build_binary_op_nodefault): Handle unordered compares. 12044 120452000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 12046 12047 * cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New 12048 cp_tree_index values. 12049 (throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node): 12050 New global node #defines for them. 12051 * rtti.c (call_void_fn): Replace with ... 12052 (build_runtime_decl): ... new static function. 12053 (throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl. 12054 (throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl. 12055 (build_dynamic_cast_1): Always produce correctly typed result. 12056 Explicitly produce type_info addresses. Use dynamic_cast_node. 12057 * exception.cc (__throw_bad_cast): Return `void *'. 12058 (__throw_bad_typeid): Return `const type_info &'. 12059 120602000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 12061 12062 * cp-tree.h (get_vtable_decl): Prototype new function. 12063 * class.c (get_vtable_decl): New function. Broken out from ... 12064 (build_vtable): ... here. Use it. 12065 * decl2.c (finish_vtable_vardecl): Ignore dummy vtables created 12066 by get_vtable_decl. 12067 120682000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 12069 12070 * cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE, 12071 CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE, 12072 CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations. 12073 (CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE, 12074 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE, 12075 CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations. 12076 (CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ... 12077 (CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here. 12078 (CPTI_TINFO_VAR_ID): New enumeration. 12079 (__tp_desc_type_node, __access_mode_type_node, 12080 __bltn_desc_type_node, __user_desc_type_node, 12081 __class_desc_type_node, __ptr_desc_type_node, 12082 __attr_desc_type_node, __func_desc_type_node, 12083 __ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines. 12084 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, 12085 ref_desc_type_node, ary_desc_type_node, func_desc_type_node, 12086 enum_desc_type_node, class_desc_type_node, 12087 si_class_desc_type_node, vmi_class_desc_type_node, 12088 ptmd_desc_type_node, base_desc_type_node): New #defines. 12089 (tinfo_fn_id, tinfo_fn_type): Rename to ... 12090 (tinfo_decl_id, tinfo_decl_type): ... here. Adjust. 12091 (tinfo_var_id): New enumeration. 12092 (DECL_TINFO_FN_P): Augment comment. 12093 * decl.c (cp_global_trees): Adjust documentation. 12094 * rtti.c (init_rtti_processing): Adjust for tinfo_decl_id, 12095 tinfo_decl_type and tinfo_var_id. 12096 (get_tinfo_decl_dynamic): Adjust for tinfo_decl_type. 12097 (build_typeid): Remove unused variable. 12098 (get_tinfo_var): Use tinfo_var_id. 12099 (tinfo_name): New static function. 12100 (get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type. 12101 (tinfo_from_decl): Likewise. 12102 (get_base_offset): New static function, broken out of 12103 expand_class_desc. 12104 (expand_si_desc): Use tinfo_name. 12105 (expand_class_desc): Likewise. Lose local static variable. 12106 Use base_desc_type_node. Use get_base_offset. 12107 (expand_ptr_desc): Use tinfo_name. 12108 (expand_attr_desc): Likewise. 12109 (expand_generic_desc): Likewise. 12110 12111 * tinfo.cc (__GXX_ABI_VERSION): Test value and existence. 12112 * tinfo.h (__GXX_ABI_VERSION): Test value and existence. 12113 121142000-01-23 Mark Mitchell <mark@codesourcery.com> 12115 12116 * cp-tree.h (__eprintf): Remove declaration. 12117 * tree.c (__eprintf): Remove definition. 12118 121192000-01-23 Zack Weinberg <zack@rabi.columbia.edu> 12120 Mark Mitchell <mark@codesourcery.com> 12121 12122 * cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N, 12123 CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings. 12124 121252000-01-23 Brad Lucier <lucier@math.purdue.edu> 12126 12127 * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly. 12128 121292000-01-23 Mark Mitchell <mark@codesourcery.com> 12130 12131 * cp-tree.h (register_dtor_fn): New function. 12132 * decl.c (destroy_local_static): Rename to ... 12133 (register_dtor_fn): ... this. Give it external linkage. 12134 (expand_static_init): Use it. 12135 * decl2.c (do_static_initialization): Likewise, if using 12136 __cxa_atexit. 12137 (do_static_destruction): Check that __cxa_atexit is not in use. 12138 (finish_file): Don't call do_static_destruction if using 12139 __cxa_atexit. 12140 12141 * typeck.c (convert_arguments): Restore two-message error 12142 reporting. 12143 121442000-01-20 Nathan Sidwell <sidwell@codesourcery.com> 12145 12146 Remap dynamic cast hint values to be consistent across ABIs. 12147 * search.c (dynamic_cast_base_recurse): Remap generated value. 12148 (get_dynamic_cast_base_type): Adjust documentation. 12149 * tinfo.h (__user_type_info::dyncast): Likewise. 12150 (__user_type_info::find_public_subobj): Remap BOFF meaning. 12151 * tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning. 12152 (__class_type_info::do_dyncast): Likewise. 12153 (__class_type_info::do_find_public_subobj): Likewise. 12154 * tinfo2.cc (__dynamic_cast): Remap BOFF parameter. 12155 121562000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 12157 12158 * typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn. 12159 12160 * typeck2.c (incomplete_type_error): Restore previous 12161 cp_error and cp_error_at call sequence. 12162 121632000-01-20 Brad Lucier <lucier@math.purdue.edu> 12164 12165 * class.c (dump_class_hierarchy): Make format agree with argument; 12166 cast pointer to unsigned long and print with %lx. 12167 121682000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 12169 12170 * decl2.c (lang_decode_option): Set default line-wrap length to 72. 12171 12172 * typeck.c (composite_pointer_type, common_type, 12173 comp_target_parms, c_sizeof, expr_sizeof, build_array_ref, 12174 build_function_call_real, convert_arguments, 12175 build_binary_op_nodefault, pointer_int_sum, pointer_diff, 12176 build_unary_op, mark_addressable, build_compound_expr, 12177 build_static_cast, build_reinterpret_cast, build_const_cast, 12178 build_c_cast, build_modify_expr, get_delta_difference, 12179 build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with 12180 'ISO C++'. Fusion consecutive calls to diagnostic message routines 12181 into a single one. 12182 * typeck2.c (readonly_error, abstract_virtuals_error, 12183 process_init_constructor, check_for_new_type): Likewise. 12184 121852000-01-19 Mark Mitchell <mark@codesourcery.com> 12186 12187 * tree.c (bot_manip): Set DECL_CONTEXT for newly created 12188 VAR_DECLs. 12189 121902000-01-18 Nathan Sidwell <sidwell@codesourcery.com> 12191 12192 * cp-tree.h (get_tinfo_fn_dynamic): Remove prototype. 12193 (build_x_typeid): Likewise. 12194 (get_tinfo_fn): Likewise. 12195 (get_tinfo_fn_unused): Rename to ... 12196 (get_tinfo_decl): ... here. 12197 * rtti.c (build_headof): Replace logic error with assertion. 12198 (get_tinfo_fn_dynamic): Rename to ... 12199 (get_tinfo_decl_dynamic): ... here. Make static. Use 12200 complete_type_or_else. 12201 (build_x_typeid): Move into ... 12202 (build_typeid): ... here. Adjust call to 12203 get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify 12204 throw_bad_typeid expression. 12205 (get_tinfo_fn_unused): Rename to ... 12206 (get_tinfo_decl): ... here. Adjust comment. 12207 (get_tinfo_fn): Delete. 12208 (tinfo_from_decl): New static function. 12209 (get_typeid_1): Call get_tinfo_decl and tinfo_from_decl. 12210 (get_typeid): Use complete_type_or_else. 12211 (build_dynamic_cast_1): Adjust calls to 12212 get_tinfo_decl_dynamic. Simplify throw_bad_cast expression. 12213 * parse.y (primary): Adjust call to build_typeid. 12214 * except.c (build_eh_type_type_ref): Adjust call to 12215 get_tinfo_decl. Mark as used. 12216 * class.c (set_rtti_entry): Adjust call to get_tinfo_decl. 12217 * decl2.c (build_expr_from_tree): Adjust call to build_typeid. 12218 * parse.c: Regenerated. 12219 122202000-01-17 Mark Mitchell <mark@codesourcery.com> 12221 12222 * class.c (fixed_type_or_null): Don't clear NONNULL. Document 12223 calling convention. 12224 (resolves_to_fixed_type_p): Document calling convention. 12225 * rtti.c (build_x_typeid): Initialize NONNULL. 12226 12227 * cp-tree.h (build_shared_int_cst): New function. 12228 * call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity. 12229 * class.c (modify_vtable_entry): Likewise. 12230 (add_virtual_function): Split out code to generated shared 12231 INTEGER_CSTs to build_share_int_cst. 12232 (modify_all_vtables): Handle all the overridden functions here. 12233 Add overridden functions from non-primary virtual bases to the 12234 primary vtable. 12235 (finish_struct_1): Adjust call to modify_all_vtables. Add 12236 overridden functions from non-primary bases to the vtable. 12237 * tree.c (build_shared_int_cst): New function. 12238 12239 * cp-tree.h (scratchalloc): Remove. 12240 (build_scratch_list): Likewise. 12241 * call.c (convert_class_to_reference): Replace build_scratch_list 12242 and build_expr_list with build_tree_list. 12243 (add_candidate): Replace scratchalloc with expralloc. Note memory 12244 leak. 12245 (build_user_type_conversion_1): Replace build_scratch_list 12246 and build_expr_list with build_tree_list. 12247 (build_new_op): Likewise. 12248 (build_op_delete_call): Likewise. 12249 (convert_like): Likewise. 12250 * cvt.c (ocp_convert): Likewise. 12251 * decl.c (start_decl): Likewise. 12252 (start_function): Likewise. 12253 (finish_destructor_body): Likewise. 12254 (maybe_build_cleanup_1): Likewise. 12255 * decl2.c (reparse_decl_as_expr): Likewise. 12256 * init.c (perform_member_init): Likewise. 12257 (expand_cleanup_for_base): Likewise. 12258 (build_builtin_delete_call): Likewise. 12259 (build_new_1): Likewise. 12260 (build_delete): Likewise. 12261 * method.c (do_build_assign_ref): Likewise. 12262 * parse.y (already_scoped_stmt): Likewise. 12263 (nontrivial_exprlist): Likewise. 12264 (net_initializer): Likewise. 12265 (initlist): Likewise. 12266 * parse.c: Regenerated. 12267 * rtti.c (build_x_typeid): Likewise. 12268 (build_dynamic_cast_1): Likewise. 12269 * typeck.c (build_x_compound_expr): Likewise. 12270 (build_static_cast): Likewise. 12271 (build_modify_expr): Likewise. 12272 12273 * cp-tree.h (DECL_VINDEX): Add documentation. 12274 * class.c (build_vtable_entry): Likewise. 12275 (start_vtable): Add comment. 12276 (add_virtual_function): Replace pending_hard_virtuals with 12277 overridden_virtuals and pending_virtuals with new_virtuals. 12278 Replace redundant assignments with assertions. 12279 (check_for_override): Add comment. 12280 (check_bases_and_members): Replace pending_hard_virtuals with 12281 overridden_virtuals and pending_virtuals with new_virtuals. 12282 (create_vtbl_ptr): Likewise. 12283 (layout_class_type): Likewise. 12284 (finish_struct_1): Likewise. Add comments. 12285 122862000-01-16 Mark Mitchell <mark@codesourcery.com> 12287 12288 * class.c (finish_struct_1): Replace redundant code with 12289 assertions. 12290 12291 * cp-tree.h (flag_new_abi): Move. 12292 (flag_use_cxa_atexit): Likewise. 12293 (flag_honor_std): Likewise. 12294 (flag_rtti): Likewise. 12295 (vbase_offsets_in_vtable_p): Define. 12296 (vptrs_present_everywhere_p): Likewise. 12297 (TYPE_CONTAINS_VPTR_P): Likewise. 12298 (dfs_walk_real): Declare. 12299 * class.c (build_vbase_pointer_fields): Check 12300 vbase_offsets_in_vtable_p. 12301 (dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in 12302 BINFO_VPTR_FIELD. 12303 (build_vbase_offset_vtbl_entries): Simplify. 12304 (build_vbase_offset_vtbl_entries): Adjust. 12305 (build_vbase_pointer): Add ability to look up vbase offsets in 12306 vtable. 12307 (start_vtable): New function. 12308 (add_virtual_function): Use it. 12309 (determine_primary_base): Use TYPE_CONTAINS_VPTR_P. 12310 (num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p. 12311 (build_vtbl_initializer): Take the type of the complete object as 12312 input. Use it to correctly calculate vbase offsets. 12313 (dfs_finish_vtbls): Pass the complete type to 12314 build_vtbl_initializer. 12315 (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P. 12316 (create_vtable_ptr): Create a vtable even if there are no 12317 new virtual functions, under the new ABI. 12318 (finish_struct_1): Likewise. 12319 (get_vfield_name): Use TYPE_CONTAINS_VPTR_P. 12320 * decl.c (exapnd_static_init): Remove call to 12321 preserve_initializer. 12322 * decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in 12323 vtables. 12324 * init.c (initialize_vtbl_ptrs): Initialize them in pre-order. 12325 (expand_virtual_init): Use vbase_offsets_in_vtable_p. 12326 (construct_virtual_bases): Don't initialize virtual base pointers 12327 under the new ABI. 12328 (build_aggr_init): Clean up comment. 12329 (expand_aggr_init_1): Likewise. 12330 * rtti.c (expand_class_desc): Store the virtual function table 12331 index where the vbase offset lives in the offset field. 12332 * search.c (dfs_walk_real): Make it global. 12333 (dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P. 12334 * tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD. 12335 12336 * tinfo.h (USItype): Make it signed under the new ABI. 12337 * tinfo.cc (convert_to_base): New function. Encapsulate base 12338 conversion logic here. 12339 (__class_type_info::do_upcast): Use it. 12340 (__class_type_info::do_dyncast): Likewise. 12341 (__class_type_info::do_find_public_subobj): Likewise. 12342 12343 * init.c (construct_virtual_bases): Don't look up the addresses of 12344 virtual bases at run-time. 12345 12346 * class.c (build_vbase_pointer): Relocate. 12347 (build_vbase_pointer_fields): Likewise. 12348 (dfs_build_vbase_offset_vtbl_entries): Likewise. 12349 (build_vbase_offset_vtbl_entries): Likewise. 12350 12351 * decl.c (init_decl_processing): Complain if -fnew-abi 12352 -fno-vtable-thunks is used. 12353 12354 * decl2.c (lang_decode_option): Don't couple flag_honor_std to 12355 flag_new_abi. 12356 123572000-01-15 Mark Mitchell <mark@codesourcery.com> 12358 12359 * cp-tree.h (num_extra_vtbl_entries): New function. 12360 (size_extra_vtbl_entries): Likewise. 12361 (dfs_vtable_path_unmark): Likewise. 12362 (dfs_vtable_path_unmarked_real_bases_queue_p): Likewise. 12363 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 12364 * class.c (num_extra_vtbl_entries): New function. 12365 (size_extra_vtbl_entries): Likewise. 12366 (dfs_build_vbase_offset_vtbl_entries): New function. 12367 (build_vbase_offset_vtbl_entries): Likewise. 12368 (build_vtbl_initializer): Use it. 12369 (finish_struct_1): Adjust vtable sizes (using 12370 num_extra_vtbl_entries). 12371 * expr.c (cplus_expand_expr): Assert that the DECL_RTL for a 12372 THUNK_DECL is non-NULL before expanding it. 12373 * init.c (expand_virtual_init): Adjust the vtable pointer by 12374 size_extra_vtbl_entries before storing it. 12375 * search.c (get_shared_vase_if_not_primary): Adjust prototype. 12376 Handle TREE_LIST parameters here, not in the dfs_* functions. 12377 (dfs_unmarked_real_bases_queue_p): Adjust. 12378 (dfs_marked_real_bases_queue_p): Likewise. 12379 (dfs_vtable_path_unmarked_real_bases_queue_p): New function. 12380 (dfs_vtable_path_marked_real_bases_queue_p): New function. 12381 (dfs_vtable_path_unmark): Likewise. 12382 123832000-01-14 Mark Mitchell <mark@codesourcery.com> 12384 12385 * optimize.c (copy_body_r): Clear the operand three of a 12386 TARGET_EXPR when copying it. 12387 123882000-01-14 Martin v. L�wis <loewis@informatik.hu-berlin.de> 12389 12390 * method.c (build_decl_overload_real): Check whether we are in :: 12391 before returning __builtin_new/delete. 12392 123932000-01-13 Mark Mitchell <mark@codesourcery.com> 12394 12395 * pt.c (tsubst_friend_function): Improve comment. 12396 (instantiate_decl): Avoid crashing when a "nested" function is 12397 instantiated from the top level. 12398 12399 * dump.c (dqeueue_and_dump): Dump 12400 DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION. 12401 124022000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12403 12404 * call.c: If GATHER_STATISTICS, declare `n_build_method_call'. 12405 124062000-01-13 Nathan Sidwell <sidwell@codesourcery.com> 12407 12408 * g++spec.c (lang_specific_driver): Add -fnew-abi if 12409 ENABLE_NEW_GXX_ABI defined. 12410 * Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o, 12411 opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o, 12412 opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch. 12413 124142000-01-12 Mark Mitchell <mark@codesourcery.com> 12415 12416 * decl.c (start_cleanup_fn): Call pushdecl. 12417 12418 * call.c (convert_class_to_reference): Fix typos. 12419 (build_conditional_expr): Handle errors gracefully. 12420 * class.c (push_nested_class): Likewise. 12421 * cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro. 12422 (DECL_THIS_EXTERN): Use it. 12423 (DECL_THIS_STATIC): Likewise. 12424 * cvt.c (convert_to_void): Handle errors gracefully. 12425 (build_expr_type_conversion): Likewise. 12426 * decl.c (maybe_push_decl): Likewise. 12427 (start_decl_1): Likewise. 12428 (require_complete_types_for_parms): Likewise. 12429 * parse.y (structsp): Likewise. 12430 (base_class): Likewise. 12431 * parse.c: Regenerated. 12432 * pt.c (finish_member_template_decl): Likewise. 12433 * typeck.c (decay_conversion): Likewise. 12434 12435 * cp-tree.h (dfs_skip_vbases): New function. 12436 (find_vbase_instance): Likewise. 12437 * class.c (determine_primary_base): Allow a nearly empty base to 12438 serve as a primary base class under the new ABI. 12439 (get_class_offset_1): Rename to ... 12440 (dfs_get_class_offset): ... this. Simplify. Don't issue error 12441 messages here. 12442 (get_class_offset): Use it. Issue error messages here. 12443 (dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to 12444 find the right copies of virtual bases. 12445 (fixup_vtable_deltas1): Rename to ... 12446 (dfs_fixup_vtable_deltas): ... this. Adjust to handle virtual 12447 bases as primary bases. 12448 (fixup_vtable_deltas): Remove. 12449 (override_one_vtable): Handle virtual bases as primary bases. 12450 (merge_overrides): Likewise. 12451 (finish_struct_1): Likewise. 12452 (dump_class_hierarchy): Dump primary-ness of bases as well. 12453 * search.c (mark_primary_bases): Use a pre-order traversal to 12454 handle primary virtual bases. 12455 (dfs_skip_vbases): New fiunction. 12456 (expand_upcast_fixups): Adjust to handle primary virtual bases. 12457 (fixup_virtual_upcast_offsets): Likewise. 12458 (fixup_all_virtual_upcast_offsets): Likewise. 12459 (dfs_find_vbase_instances): New function. 12460 (find_vbase_instance): Likewise. 12461 124622000-01-11 Mumit Khan <khan@xraylith.wisc.edu> 12463 12464 * lex.c (DIR_SEPARATOR): Delete macro. 12465 124662000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> 12467 12468 * decl2.c (lang_decode_option): Handle automatic line wrapping 12469 option. 12470 124712000-01-11 Mark Mitchell <mark@codesourcery.com> 12472 12473 * friend.c (do_friend): Don't resolve scopes when processing 12474 template declarations, even if the qualifying scope doesn't 12475 involve template parameters. 12476 124772000-01-10 Mark Mitchell <mitchell@dumbledore.codesourcery.com> 12478 12479 * class.c (dfs_modify_vtables_queue_p): Remove. 12480 (modify_all_vtables): Use dfs_unmarked_real_bases_queue_p 12481 and dfs_marked_real_bases_queue_p instead of 12482 dfs_modify_vtables_queue_p. 12483 12484 * class.c (build_vbase_path): Simplify. 12485 (dfs_propagate_binfo_offsets): New function. 12486 (propagate_binfo_offsets): Use it. 12487 (remove_base_field): Simplify. 12488 (dfs_set_offset_for_vbases): Remove. 12489 (dfs_set_offset_for_shared_vbases): New function. 12490 (dfs_set_offset_for_unshared_vbases): Likewise. 12491 (layout_virtual_bases): Use them. 12492 (layout_basetypes): Don't call propagate_binfo_offsets. 12493 * search.c (dfs_get_vbase_types): Clone completely fresh binfos 12494 for the vbases. 12495 12496 * class.c (build_base_field): New function, split out from ... 12497 (build_base_fields): ... here. Use it. Allocate primary bases 12498 first, under the new ABI. 12499 (get_vtable_entry): Remove. 12500 (remove_base_field): New function, split out from ... 12501 (remove_base_fields): ... here. Adjust since primary bases come 12502 first under the new ABI. 12503 12504 * cp-tree.h (expand_direct_vtbls_init): Remove declaration. 12505 (initialize_vtbl_ptrs): New function. 12506 (expand_indirect_vtbls_init): Change prototype. 12507 (convert_pointer_to_vbase): Declare. 12508 * init.c (expand_direct_vtbls_init): Remove. 12509 (dfs_initialize_vtbl_ptrs): New function. 12510 (initialize_vtbl_ptrs): Likewise. 12511 (emit_base_init): Use initialize_vtbl_ptrs. 12512 * search.c (convert_pointer_to_vbase): Make it global. 12513 (expand_indirect_vtbls_init): Remove vtable initialization code. 12514 * semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs. 12515 12516 * class.c (dfs_finish_vtbls): New function. 12517 (finish_vtbls): Use it. 12518 (dump_class_hierarchy): New function. 12519 12520 * cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition. 12521 (BINFO_VBASE_PRIMARY_P): New macro. 12522 (BINFO_VIRTUALS): Add to documentation. 12523 (SET_BINFO_PRIMARY_MARKED_P): Remove. 12524 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 12525 (dfs_mark_primary_bases_queue_p): Likewise. 12526 (dfs_unmarked_real_bases_queue_p): New function. 12527 (dfs_marked_real_bases_queue_p): Likewise. 12528 * search.c (dfs_mark_primary_bases): Adjust. 12529 (mark_primary_bases): Likewise. 12530 (get_shared_vbase_if_not_primary): New function. 12531 (dfs_unmarked_real_bases_queue_p): Likewise. 12532 (dfs_marked_real_bases_queue_p): Likewise. 12533 (dfs_get_pure_virtuals): Simplify. 12534 (get_pure_virtuals): Likewise. 12535 125362000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12537 12538 * lex.c: Include tm_p.h. 12539 125402000-01-07 Nathan Sidwell <sidwell@codesourcery.com> 12541 12542 * lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro. 12543 125442000-01-06 Jason Merrill <jason@casey.cygnus.com> 12545 12546 * decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT. 12547 * pt.c (instantiate_decl): Defer comdat templates that might not be 12548 needed. 12549 12550 * cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT. 12551 * decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT. 12552 (finish_file): Likewise. 12553 12554 * decl2.c (import_export_class): Undo 12/14 change. 12555 12556 * error.c (dump_decl): operator new, not operatornew. 12557 12558 * class.c (field_decl_cmp): A nontype is "greater" than a type. 12559 * search.c (lookup_field_1): Look for the last field with the 12560 desired name. 12561 125622000-01-05 Nathan Sidwell <nathan@acm.org> 12563 12564 * decl2.c (lookup_arg_dependent): Deal with FNS not being a 12565 FUNCTION_DECL. 12566 125672000-01-05 Nathan Sidwell <nathan@acm.org> 12568 12569 * typeck.c (build_static_cast): Don't strip target qualifiers 12570 when casting from a class. 12571 125722000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12573 12574 * class.c (warn_hidden): Initialize variable `fndecl'. 12575 125762000-01-03 Ulrich Drepper <drepper@cygnus.com> 12577 12578 * decl.c (flag_isoc9x): New variable to be able to use code in 12579 c-common.c. For now always zero. 12580 125812000-01-03 Mark Mitchell <mark@codesourcery.com> 12582 12583 * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. 12584 * class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN 12585 or unshare_base_binfos for virtual bases here. 12586 * search.c (dfs_get_vbase_types): Do it here. 12587 (get_vbase_types): Adjust. 12588 125892000-01-02 Mark Mitchell <mark@codesourcery.com> 12590 12591 * cp-tree.h (CLASSTYPE_VFIELDS): Move definition. 12592 (BINFO_PRIMARY_MARKED_P): Use flag 5. 12593 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 12594 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 12595 (unmark_primary_bases): Remove declaration. 12596 (unmarkedp): Declare. 12597 (dfs_vbase_unmark): Likewise. 12598 * class.c (determine_primary_base): Return immediately if there 12599 are no base classes. Call mark_primary_bases here. 12600 (modify_all_direct_vtables): Remove. 12601 (modify_all_indirect_vtables): Remove. 12602 (dfs_modify_vtables_queue_p): New function. 12603 (dfs_modify_vtables): New function. 12604 (modify_all_vtables): Use them. 12605 (build_base_fields): Build FIELD_DECLs for primary virtual base 12606 classes. 12607 (create_vtable_ptr): Don't call determine_primary_base here. 12608 (dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ... 12609 (dfs_set_offset_for_vbases): ... this. 12610 (layout_virtual_bases): Use it. 12611 (layout_class_type): Call determine_primary_base here. 12612 * search.c (unmarkedp): Make it global. 12613 (shared_marked_p): Simplify. 12614 (shared_unmarked_p): Likewise. 12615 (dfs_primary_bases_queue_p): Remove. 12616 (dfs_unmark_primary_bases): Likewise. 12617 (unmark_primary_bases): Likewise. 12618 (mark_primary_bases): Simplify. 12619 (get_pure_virtuals): Don't call mark_primary_bases here. 12620 (dfs_vbase_unmark): New function. 12621 (get_vbase_types): Simplify. 12622 12623 * class.c (struct base_info): Remove. 12624 (determine_primary_base): Take has_virtual_p rather than a 12625 base_info as input. Don't calculate max_has_virtual. 12626 (finish_struct_bits): Remove max_has_virtual argument. 12627 (create_vtable_ptr): Remove max_has_virtual_p argument. 12628 (layout_virtual_bases): Remove max argument. 12629 (layout_basetypes): Likewise. 12630 (layout_class_type): Remove max_has_virtual_p argument. 12631 (finish_struct_1): Remove max_has_virtual. 12632 12633 * cp-tree.h (dfs_mark_primary_bases_queue_p): New function. 12634 (layout_basetypes): Remove. 12635 * class.c (propagate_binfo_offsets): Moved here from tree.c. 12636 Update to handle primary virtual bases. 12637 (remove_base_fields): New function, split out from 12638 layout_basetypes. 12639 (dfs_mark_primary_bases_and_set_vbase_offsets): New function. 12640 (layout_virtual_bases): New function, split out from 12641 layout_basetypes. Update to handle primary virtual bases. 12642 (layout_basetypes): Moved here from tree.c. Use 12643 remove_base_fields and layout_virtual_bases. 12644 * search.c (dfs_mark_primary_bases_queue_p): New function. 12645 (mark_primary_bases): Use it. 12646 * tree.c (CEIL): Remove. 12647 (propagate_binfo_offsets): Remove. 12648 (layout_basetypes): Remove. 12649 126502000-01-01 Mark Mitchell <mark@codesourcery.com> 12651 12652 * cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES. 12653 (BINFO_PRIMARY_MARKED_P): New macro. 12654 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 12655 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 12656 (mark_primary_bases): New function. 12657 (unmark_primary_bases): Likewise. 12658 * search.c (get_abstract_virtuals_1): Remove. 12659 (dfs_mark_primary_bases): New function. 12660 (mark_primary_bases): Likewise. 12661 (dfs_unmark_primary_bases): Likewise. 12662 (unmark_primary_bases): Likewise. 12663 (dfs_get_pure_virtuals): Likewise. 12664 126652000-01-01 Mark Mitchell <mark@codesourcery.com> 12666 12667 * cp-tree.h (skip_rtti_stuff): Adjust prototype. 12668 * class.c (skip_rtti_stuff): Reorganize parameters and return value. 12669 (modify_one_vtable): Adjust. 12670 (fixup_vtable_deltas1): Likewise. 12671 (override_one_vtable): Likewise. 12672 * search.c (get_abstract_virtuals_1): Likewise. 12673 (get_pure_virtuals): Likewise. 12674 (expand_upcast_fixups): Likewise. 12675 * tree.c (debug_binfo): Likewise. 12676 12677 * class.c (build_vtable): Don't return a value. Don't rebuild 12678 vtables for bases that have already been handled. 12679 (prepare_fresh_vtable): Don't rebuild vtables for bases that have 12680 already been handled. 12681 (modify_one_vtable): Adjust accordingly. 12682 (fixup_vtable_deltas1): Likewise. 12683 (finish_struct_1): Likewise. 12684 126852000-01-01 Martin v. L�wis <loewis@informatik.hu-berlin.de> 12686 12687 * call.c (build_new_method_call): Also check destructors. 12688