ChangeLog revision 96263
12002-05-03 Jason Merrill <jason@redhat.com> 2 3 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h. 4 52002-05-02 Mark Mitchell <mark@codesourcery.com> 6 7 * init.c (perform_base_cleanups): Correct order of base class 8 cleanups. 9 102002-05-01 Mark Mitchell <mark@codesourcery.com> 11 12 PR c++/6527 13 * init.c (perform_base_cleanups): Emit cleanups in reverse order 14 of construction. 15 162002-05-01 Gabriel Dos Reis <gdr@codesourcery.com> 17 18 * error.c (dump_type): Be careful about implicit typenames. 19 202002-04-30 Mark Mitchell <mark@codesourcery.com> 21 22 ABI change, returning simple classes from functions. 23 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if 24 TYPE_HAS_TRIVIAL_INIT_REF is false or 25 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true. 26 272002-04-30 Jason Merrill <jason@redhat.com> 28 29 * decl.c (grokdeclarator): Don't override TYPE_NAME of an 30 anonymous class with a typedef if there are attributes. 31 322002-04-29 Paul Eggert <eggert@twinsun.com> 33 34 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$. 35 362002-04-29 Jakub Jelinek <jakub@redhat.com> 37 38 PR c++/6477 39 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is 40 non-NULL first. 41 422002-04-29 Mark Mitchell <mark@codesourcery.com> 43 44 PR c++/6492 45 * pt.c (tsubst_friend_class): If the friend has an explicit scope, 46 enter that scope before name lookup. 47 48 PR c++/6486 49 * method.c (do_build_copy_constructor): Avoid building 50 cv-qualified reference types. 51 522002-04-29 Nathan Sidwell <nathan@codesourcery.com> 53 54 PR c++/5719 55 * decl.c (grok_op_properties): Assignment ops don't have to return 56 by value. operator% should. 57 582002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 59 60 PR c/6343 61 * decl.c (duplicate_decls): Call merge_weak. 62 632002-04-26 Mark Mitchell <mark@codesourcery.com> 64 65 PR c++/6479 66 * method.c (do_build_assign_ref): Pass a derivation to 67 build_method_call when calling base class assignment operators. 68 692002-04-24 Mark Mitchell <mark@codesourcery.com> 70 71 * mangle.c (write_type): Don't use TYPE_MAIN_VARIANT when writing 72 out an array type. 73 (write_CV_qualifiers_for_type): Use TYPE_QUALS, not cp_type_quals, 74 to determine qualifiers. 75 76 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs 77 void. 78 792002-04-24 Jason Merrill <jason@redhat.com> 80 81 PR c++/6331 82 * method.c (do_build_copy_constructor): Use cp_build_qualified_type. 83 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals. 84 The pedwarn for array assignment is now unconditional. 85 * tree.c (build_cplus_array_type_1): Still process simple array types 86 normally in templates. 87 88 PR c++/6395 89 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i 90 stuff for comdats. 91 922002-04-23 Jason Merrill <jason@redhat.com> 93 94 PR c++/5504 - but re-breaks c++/411 95 * init.c (push_base_cleanups): Rename to perform_base_cleanups. 96 Expand base cleanups now rather than pushing them. 97 * decl.c (begin_destructor_body): Don't call push_base_cleanups. 98 (finish_destructor_body): Call perform_base_cleanups. 99 * cp-tree.h: Adjust prototype. 100 1012002-04-23 Jakub Jelinek <jakub@redhat.com> 102 103 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class 104 node with attributes. 105 1062002-2-23 David O'Brien <obrien@FreeBSD.org> 107 108 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add. 109 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given. 110 1112002-04-23 Mark Mitchell <mark@codesourcery.com> 112 113 PR c++/6256: 114 * pt.c (tsubst_friend_class): Handle templates with explicit 115 nested names. 116 117 PR c++/6331: 118 * typeck.c (merge_types): Remember the cv-qualification of pointer 119 types when merging them. 120 1212002-04-18 Jason Merrill <jason@redhat.com> 122 123 PR c++/5658 124 * search.c (setup_class_bindings): A class template qualifies as a 125 type binding. 126 1272002-04-17 Jakub Jelinek <jakub@redhat.com> 128 129 PR c++/6316 130 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop 131 before expanding. 132 1332002-04-16 Mark Mitchell <mark@codesourcery.com> 134 135 * init.c (begin_init_stmts): Remove commented out code. 136 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. 137 * semantics.c (begin_gobal_stmt_expr): Adjust call to 138 expand_start_stmt_expr. 139 1402002-04-15 Mark Mitchell <mark@codesourcery.com> 141 142 * decl.c (register_dtor_fn): Pass the address of dso_handle, not 143 dso_handle itself, to __cxa_atexit. 144 1452002-04-14 Jakub Jelinek <jakub@redhat.com> 146 147 * class.c (layout_virtual_bases): Do all dsize computation on trees. 148 1492002-04-12 Mark Mitchell <mark@codesourcery.com> 150 151 PR c++/5373. 152 * semantics.c (finish_expr_stmt): Remember the type of the 153 expression before any conversions are performed. 154 155 PR c++/5189. 156 * call.c (add_template_candidate_real): Do not treat member 157 templates as copy constructors. 158 159 * decl.c (duplicate_decls): Do not copy the RTL for a variable 160 declaration if the old variable had an incomplete type and the new 161 variable does not. 162 (complete_vars): Do not call layout_decl for completed variables. 163 1642002-04-11 Andrew Haley <aph@redhat.com> 165 166 * typeck.c (type_after_usual_arithmetic_conversions): 167 If two types have the same variant, return immediately. 168 When two floating-point operands are the same precision: 169 convert to float if one of the operands is float; 170 if neither operand is one of the standard types, return the type 171 of the first operand. 172 1732002-04-12 Richard Sandiford <rsandifo@redhat.com> 174 175 * decl.c (duplicate_decls): Don't try to unify an implicit typedef 176 with an explicit one. 177 (follow_tag_typedef): New. 178 (lookup_tag): Use it to extract the tag of an explicit typedef. 179 (xref_tag): Likewise. 180 1812002-04-10 Nathan Sidwell <nathan@codesourcery.com> 182 183 PR c++/5507 184 * decl.c (make_typename_type): Remove implicit typenameness. 185 1862002-04-09 Jason Merrill <jason@redhat.com> 187 188 PR optimization/6189 189 * semantics.c (genrtl_start_function): Don't free 190 DECL_SAVED_FUNCTION_DATA for inline functions. 191 1922002-04-08 Paolo Carlini <pcarlini@unitus.it> 193 194 * parse.y (namespace_qualifier, maybe_identifier, 195 begin_explicit_instantiation, end_explicit_instantiation, 196 apparent_template_type, .finish_template_type, 197 do_id, maybe_init, defarg_again, component_decl_1): 198 Add ending ';', in accordance with POSIX. 199 2002002-04-06 Mark Mitchell <mark@codesourcery.com> 201 202 PR c++/5571 203 * class.c (layout_class_type): Remember incomplete static 204 variables. 205 (finish_struct_1): Call complete_vars, not 206 hack_incomplete_structures. 207 * cp-tree.h (hack_incomplete_structures): Rename to ... 208 (complete_vars): ... this. 209 (struct saved_scope): Remove incomplete. 210 (namespace_scope_incomplete): Remove. 211 * decl.c (struct binding_level): Remove incomplete. 212 (incomplete_vars): New variable. 213 (mark_binding_level): Don't mark incomplete. 214 (print_binding_level): Don't print it. 215 (mark_saved_scope): Don't mark incomplete. 216 (pushdecl): Use maybe_register_incopmlete_var. 217 (cxx_init_decl_processing): Register incomplete_vars for GC. 218 (start_decl_1): Clarify error message. 219 (hack_incomplete_vars): Remove. 220 (maybe_register_incomplete_var): New function. 221 (complete_vars): Likewise. 222 2232002-04-06 Jason Merrill <jason@redhat.com> 224 225 PR c++/4934 226 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is 227 set before checking it. 228 229 PR c++/6179 230 * method.c (implicitly_declare_fn): Pass unqualified type to 231 synthesize_exception_spec. 232 2332002-04-03 Jason Merrill <jason@redhat.com> 234 235 PR c++/525 236 * init.c (build_member_call): Convert to intermediate base even 237 with -pedantic. 238 239 PR c++/5636 240 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on 241 cleanup for nrv. 242 243 PR c++/5104 244 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception 245 specifiers. 246 [METHOD_TYPE]: Use same code as FUNCTION_TYPE. 247 2482002-04-03 Roger Sayle <roger@eyesopen.com> 249 250 PR c++/5998: 251 * decl.c (duplicate_decls): Don't mess with assembler names when 252 redeclaring builtin functions as static. 253 2542002-04-01 Roger Sayle <roger@eyesopen.com> 255 256 PR c++/5998: 257 * decl.c (duplicate_decls): Overwrite the RTL when (and only 258 when) overwriting a built-in function. Don't use COPY_DECL_RTL, 259 but follow the SET_DECL_RTL idiom used elsewhere in the function. 260 2612002-03-28 Roger Sayle <roger@eyesopen.com> 262 263 PR c++/5998: 264 * decl.c (cxx_init_decl_processing): Re-enable built-in functions 265 in the g++ front-end. 266 (duplicate_decl): Allow redefinition of anticipated built-ins. 267 Fix inlining problem by over-writing the old DECL_RTL. 268 (lookup_namespace_name): Fail to find an identifier in the 269 specified namespace if its still anticipated. 270 (builtin_function_1): New function split out from builtin_function 271 to create a builtin in the current namespace with given context. 272 (builtin_function): Call builtin_function_1 to define the 273 appropriate builtins in both the std and global namespaces. 274 (select_decl): Don't test for anticipated decls here. 275 (unqualified_namespace_lookup): Instead ignore them whilst 276 searching through scopes and namespaces. 277 * decl2.c (do_nonmember_using_decl): If a using declaration 278 specifies an anticipated built-in function, mark it as no longer 279 anticipated in that scope. 280 (ambiguous_decl): Avoid resolving to an anticipated decl. 281 * lex.c (do_scoped_id): Fail to find an identifier in the global 282 namespace if its still anticipated. 283 2842002-03-29 Jakub Jelinek <jakub@redhat.com> 285 286 PR c++/6073 287 * class.c (finish_struct_1): Update static field's DECL_MODE even 288 if its type is a variant of t. 289 2902002-03-27 Mark Mitchell <mark@codesourcery.com> 291 292 PR c++/4884 293 * call.c (build_op_delete_call): Allow for the fact the placement 294 may be a COMPOUND_EXPR. 295 2962002-03-26 Nathan Sidwell <nathan@codesourcery.com> 297 298 PR c++/5682 299 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better. 300 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 301 (dfs_skip_nonprimary_vbases_markedp): Remove. 302 * search.c (get_shared_vbase_if_not_primary): Remove. 303 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 304 (dfs_skip_nonprimary_vbases_markedp): Remove. 305 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo. 306 (dfs_marked_real_bases_queue_p): Likewise. 307 3082002-03-26 Mark Mitchell <mark@codesourcery.com> 309 310 PR c++/4884 311 * init.c (build_new_1): Allow for the fact the result of 312 build_function_call may be a COMPOUND_EXPR. 313 3142002-03-25 Jakub Jelinek <jakub@redhat.com> 315 316 PR c++/6037 317 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node. 318 3192002-03-22 Jeff Knaggs <jknaggs@redhat.com> 320 321 * typeck.c (expand_ptrmemfunc_cst): Scale idx down to an index 322 into the vtable_entry array regardless of 323 TARGET_PTRMEMFUNC_VBIT_LOCATION. 324 3252002-03-21 Aldy Hernandez <aldyh@redhat.com> 326 327 * tree.c (cp_cannot_inline_tree_fn): Same. 328 3292002-03-20 Jason Merrill <jason@redhat.com> 330 331 PR c++/2136 332 * init.c (build_delete): Check access for a member op delete here. 333 * decl2.c (delete_sanity): Not here. 334 3352002-03-19 Jason Merrill <jason@redhat.com> 336 337 PR c++/5118 338 * class.c (get_vfield_name): Use the constructor_name. 339 3402002-03-18 Eric Botcazou <ebotcazou@multimania.com> 341 342 PR c++/3882 343 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling... 344 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer 345 only after recording the declaration. 346 3472002-03-18 Ashif Harji <asharji@uwaterloo.ca> 348 349 * lang-specs.h (compiler default_compilers): Add 350 -no-integrated-cpp flag to invoke an external cpp. 351 3522002-03-18 Jason Merrill <jason@redhat.com> 353 354 PR c++/2039 355 * init.c (resolve_offset_ref): Hand off to build_component_ref. 356 357 PR c++/4222, c++/5995 358 * call.c (build_over_call): Fix empty class logic. 359 360 PR c++/3870 361 * cp-tree.h (struct saved_scope): Add last_parms field. 362 * decl.c (maybe_push_to_top_level): Save last_function_parms. 363 (pop_from_top_level): Restore it. 364 365 PR c++/4377 366 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip 367 NON_LVALUE_EXPRs. 368 369 PR c++/4003 370 * pt.c (tsubst_friend_function): Use decl_namespace_context. 371 372 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch. 373 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a 374 type with a nontrivial destructor. 375 3762002-03-17 Jason Merrill <jason@redhat.com> 377 378 PR c++/4460 379 * class.c (build_base_path): Virtual base layout is fixed in 380 in-charge [cd]tors. 381 382 PR c++/5757 383 * init.c (build_new_1): Pass the right pointer to op delete. 384 3852002-03-15 Richard Henderson <rth@redhat.com> 386 387 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op. 388 3892002-03-15 Richard Henderson <rth@redhat.com> 390 391 * decl.c (finish_function): Reapply accidentally reverted 392 2002-02-28 patch. 393 3942002-03-15 Mark Mitchell <mark@codesourcery.com> 395 396 * cp-tree.h (CLEANUP_DECL): Remove. 397 (CLEANUP_EXPR): Likewise. 398 * decl.c (destroy_local_var): Simplify. 399 (maybe_build_cleanup): Tidy. 400 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT. 401 * semantics.c (cp_expand_stmt): Likewise. 402 * cp/tree.c (cp_statement_code_p): Likewise. 403 4042002-03-15 Richard Henderson <rth@redhat.com> 405 406 * decl.c: Include c-pragma.h. 407 (start_decl, start_function): Invoke maybe_apply_pragma_weak. 408 * Make-lang.in: Update dependencies. 409 4102002-03-15 Jason Merrill <jason@redhat.com> 411 412 PR c++/5857 413 * decl.c (duplicate_decls): Use merge_types instead of common_type. 414 * typeck.c (common_type): Just hand off to 415 type_after_usual_arithmetic_conversions and 416 composite_pointer_type. 417 (merge_types): New fn. 418 (commonparms): Use it instead of common_type. 419 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE. 420 (composite_pointer_type): Also handle attributes. 421 * cp-tree.h: Declare merge_types. 422 423 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT 424 variables. 425 * decl2.c (maybe_make_one_only): Also mark the decl as needed. 426 4272002-03-14 Jakub Jelinek <jakub@redhat.com> 428 429 PR c++/5908 430 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too. 431 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING. 432 4332002-03-12 Richard Sandiford <rsandifo@redhat.com> 434 435 * mangle.c (write_builtin_type): Handle 128-bit integers even if 436 they are not a standard integer type. 437 4382002-03-12 Nathan Sidwell <nathan@codesourcery.com> 439 440 PR c++/5659 441 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here. 442 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for 443 definitions. 444 4452002-03-11 Nathan Sidwell <nathan@codesourcery.com> 446 447 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>, 448 DR209 is now not a defect. 449 * cp-tree.h (skip_type_access_control): Remove. 450 * decl.c (grokdeclarator): Do type access control for friend 451 declarations. 452 * semantics.c (decl_type_access_control): Don't reset 453 current_type_lookups. 454 (save_type_access_control): Always save the lookups. 455 (skip_type_access_control): Remove. 456 (finish_class_definition): Don't change type_lookups. 457 4582002-03-11 Nathan Sidwell <nathan@codesourcery.com> 459 460 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>, 461 It is incorrect. 462 * typeck.c (build_static_cast): Compare non-qualified types 463 with pointer to member conversions. 464 4652002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org> 466 467 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of 468 conditional return void. 469 4702002-03-02 Nathan Sidwell <nathan@codesourcery.com> 471 472 PR c++/775 473 * decl.c (lookup_tag): Only reject enum/class mismatch, not 474 class/union mismatch. 475 * parse.y (check_class_key): New function. 476 (structsp): Call it. 477 4782002-03-01 Michael Matz <matz@suse.de> 479 480 * typeck.c (cp_pointer_int_sum): Complete inner type which is 481 used later by size_in_bytes(). 482 4832002-03-01 Phil Edwards <pme@gcc.gnu.org> 484 485 * cp-tree.h (build_init): Remove prototype. 486 4872002-03-01 Phil Edwards <pme@gcc.gnu.org> 488 489 * cp-tree.h: Require __GNUC__ to be #defined. 490 (build_init): Add missing prototype. 491 4922002-02-28 Jason Merrill <jason@redhat.com> 493 494 * search.c (lookup_base_r): Don't clear is_non_public just because 495 we found a friendly scope. 496 497 * decl.c (finish_function): Only warn about missing return 498 statement with -Wreturn-type. 499 5002002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org> 501 502 PR c++/4093 503 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition 504 to void. 505 5062002-02-22 Jakub Jelinek <jakub@redhat.com> 507 508 PR other/5746 509 * semantics.c (finish_switch_cond): Don't call get_unwidened 510 if error_mark_node. 511 5122002-02-22 Nathan Sidwell <nathan@codesourcery.com> 513 514 PR c++/2645, DR 295 515 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals, 516 tf_keep_type_decl. 517 (make_typename_type): Use tsubst_flags_t. 518 * decl.c (make_typename_type): Adjust. Return non-artificial 519 TYPE_DECLs, if required. 520 (grokdeclarator): Simplify CVR qualification handling. Allow bad 521 qualifiers on typedef types. 522 * decl2.c (handle_class_head): Adjust make_typename_type call. 523 * parse.y (nested_name_specifier): Likewise. 524 (typename_sub0): Likewise. 525 (typename_sub1): Likewise. 526 * pt.c (convert_template_argument): Adjust make_typename_type 527 return value. 528 (tsubst): Adjust cp_build_qualified_type_real calls. 529 (check_cv_quals_for_unify): Cope with alowing bad qualifications 530 on template type parms. 531 (instantiate_decl): Recheck substitutions to give warnings on bad 532 qualifications. 533 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals. 534 5352002-02-21 Aldy Hernandez <aldyh@redhat.com> 536 537 * cp/decl.c (duplicate_decls): Merge always_inline attribute. 538 539 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0 540 unless DECL_ALWAYS_INLINE. 541 5422002-02-20 Jakub Jelinek <jakub@redhat.com> 543 544 * typeck.c (cp_pointer_int_sum): Renamed from 545 pointer_int_sum, call pointer_int_sum. 546 5472002-02-20 Jakub Jelinek <jakub@redhat.com> 548 549 * decl.c (duplicate_decls): Return 0 if issued error about 550 redeclaration. 551 5522002-02-19 Jason Merrill <jason@redhat.com> 553 554 ABI change: Mangle `void (A::*)() const' as 555 M1AKFvvE, not MK1AFvvE. 556 * mangle.c (write_function_type): Write cv-quals for member 557 function type here. 558 (write_pointer_to_member_type): Not here. 559 5602002-02-18 Jason Merrill <jason@redhat.com> 561 562 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header. 563 (do_decl_instantiation): Likewise. 564 5652002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org> 566 567 PR c++/5685 568 * decl.c (duplicate_decls): Make warning unconditional 569 if duplicate default argument declarations are present. 570 5712002-02-17 Jakub Jelinek <jakub@redhat.com> 572 573 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit 574 shortening. 575 5762002-02-15 Nathan Sidwell <nathan@codesourcery.com> 577 578 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs, 579 remove incorrect comment. Move #if 0'd code to common path. Use 580 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication. 581 5822002-02-13 Jason Merrill <jason@redhat.com> 583 584 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns. 585 (finish_function): Don't warn if current_function_returns_null. 586 587 * typeck2.c (digest_init): Do handle values of vector type. 588 589 * typeck2.c (digest_init, process_init_constructor): Treat vectors 590 like arrays. 591 5922002-02-11 Jason Merrill <jason@redhat.com> 593 594 * parse.y (reserved_declspecs): Don't handle attributes. 595 (reserved_typespecquals): Handle them here. 596 * Make-lang.in (parse.c): Adjust expected conflicts. 597 5982002-02-08 Jakub Jelinek <jakub@redhat.com> 599 600 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr 601 instead of compstmt. 602 (compstmt_or_stmtexpr): Renamed from compstmt. 603 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type. 604 6052002-02-07 Nathan Sidwell <nathan@codesourcery.com> 606 607 Rename instantiate_type_flags to tsubst_flags_t & expand use. 608 * cp-tree.h (instantiate_type_flags): Rename to ... 609 (tsubst_flags_t): ... here. Rename itf_complain to tf_error, 610 add tf_warning flag. 611 (instantiate_type): Adjust prototype. 612 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class, 613 do_type_instantiation, cp_build_qualified_type_real): Likewise. 614 cp_build_qualified_type: Adjust. 615 * class.c (instantiate_type): Adjust parameter. Rename itf_* to 616 tf_*. 617 * call.c (standard_conversion): Rename itf_* to tf_*. 618 (reference_binding): Likewise. 619 (convert_like_real): Likewise. 620 * cvt.c (cp_convert_to_pointer): Likewise. 621 (convert_to_reference): Likewise. 622 * decl.c (lookup_namespace_name): Use tf_* flags. 623 (make_typename_type): Likewise. 624 (grokdeclarator): Likewise. 625 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage. 626 (coerce_template_template_parms, convert_template_argument, 627 coerce_template_parms, maybe_get_template_decl_from_type_decl, 628 lookup_template_class, tsubst_friend_function, tsubst_friend_class, 629 instantiate_class_template, tsubst_template_arg_vector, 630 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 631 tsubst_decl, tsubst_arg_types, tsubst_function_type, 632 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 633 instantiate_template, fn_type_unification, 634 resolve_overloaded_unification, verify_class_unification, 635 unify, get_bindings_real, do_type_instantiation, 636 regenerate_decl_from_template, instantiate_decl, 637 tsubst_initializer_list, tsubst_enum, 638 get_mostly_instantiated_function_type, 639 invalid_nontype_parm_type_p): Likewise. 640 * tree.c (cp_build_qualified_type_real): Likewise. 641 * typeck.c (build_binary_op): Rename itf_* to tf_*. 642 (build_ptrmemfunc): Likewise. 643 (convert_for_assignment): Likewise. 644 6452002-02-07 Nathan Sidwell <nathan@codesourcery.com> 646 647 PR c++/109 648 * decl.c (grokdeclarator): Allow friend declarations from 649 dependent types. 650 * decl2.c (handle_class_head): Don't push into template parm contexts. 651 * pt.c (push_template_decl_real): Template parm contexts are never 652 being defined. 653 6542002-02-05 Alexandre Oliva <aoliva@redhat.com> 655 656 * class.c: Include target.h. 657 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY, 658 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS 659 bit-field layout. 660 * Make-lang.in: Adjust deps. 661 6622002-02-05 Jason Merrill <jason@redhat.com> 663 664 * error.c (dump_type): Be more helpful about VECTOR_TYPE. 665 6662002-02-04 Jakub Jelinek <jakub@redhat.com> 667 668 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE. 669 (finish_switch_cond): Set SWITCH_TYPE. 670 6712002-02-04 Richard Henderson <rth@redhat.com> 672 673 * method.c (use_thunk): Always initialize the block tree. Reindent. 674 * semantics.c (expand_body): Emit thunks after function, not before. 675 6762002-02-04 Jason Merrill <jason@redhat.com> 677 678 * decl.c (start_function): Call cplus_decl_attributes immediately 679 after grokdeclarator. 680 681 * decl.c (start_function): Combine DECL_RESULT handling code. 682 6832002-02-03 Jason Merrill <jason@redhat.com> 684 685 * xref.c: Remove. 686 * Make-lang.in (CXX_OBJS): Remove cp/xref.o 687 (cp/xref.o): Remove dependencies. 688 * class.c (finish_struct_1, check_methods): Don't call xref fns. 689 (finish_struct_1): Likewise. 690 * friend.c (make_friend_class): Likewise. 691 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise. 692 * spew.c (read_process_identifier): Likewise. 693 6942002-02-01 Jason Merrill <jason@redhat.com> 695 696 PR c++/4872 697 * decl.c (finish_function): Warn about a non-void function with 698 no return statement and no abnormal exit. 699 * cp-tree.h (struct cp_language_function): Add returns_abnormally. 700 (current_function_returns_abnormally): New macro. 701 * call.c (build_call): Set it. 702 703 * typeck.c (build_component_ref): Always complain about offsetof 704 constructs on non-PODs. Only make it an error for members of 705 virtual bases. 706 707 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS. 708 (dump_function_decl): Always dump parms. 709 710 * decl2.c (finish_static_data_member_decl): Complain about a local 711 class with a static data member. 712 713 PR c++/4286 714 * search.c (lookup_field_1): Don't xref a static data member 715 just because we looked it up. 716 7172002-01-31 Jason Merrill <jason@redhat.com> 718 719 * Make-lang.in (parse.c): Handle .output file. 720 721 PR c++/3395 722 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES, 723 not TREE_TYPE. 724 * semantics.c (finish_class_definition): Adjust. 725 726 Allow attributes in parms and casts. 727 * parse.y (named_parm): Don't strip attrs. 728 (declmods): Remove 'attributes' production. 729 (nonempty_cv_qualifiers): Accept attributes. 730 (ATTRIBUTE): Give precedence. 731 * decl.c (groktypename): Handle attributes. 732 (grokparms): Likewise. 733 7342002-01-29 Jakub Jelinek <jakub@redhat.com> 735 736 * decl2.c (cxx_decode_option): Pass 0 as last argument to 737 cpp_handle_option. 738 * lang-specs.h: Use cpp_unique_options instead of cpp_options 739 when used together with cc1_options. 740 7412002-01-29 Nathan Sidwell <nathan@codesourcery.com> 742 743 PR c++/5132 744 * typeck2.c (digest_init): Make sure non-array core type is 745 instantiated. 746 * decl2.c (reparse_absdcl_as_casts): Just store the type in the 747 constructor, rather than build a new one. 748 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the 749 PURPOSE of constructor elts. 750 7512002-01-23 Zack Weinberg <zack@codesourcery.com> 752 753 * Make-lang.in (parse.c): Adjust expected number of 754 shift-reduce conflicts. 755 (decl.o): Depend on diagnostic.h. 756 * decl.c: Include diagnostic.h. 757 (grokdeclarator): Check for null pointer. 758 (finish_function): Don't abort when 759 current_binding_level->parm_flag != 1, if errors have 760 occurred; throw away the statement tree and extra binding 761 levels, and continue. 762 * lex.c (note_list_got_semicolon): Check for null pointer. 763 * method.c (hack_identifier): Just return error_mark_node if 764 value is error_mark_node. 765 * parse.y (primary: TYPEID(type_id)): No need to use 766 TYPE_MAIN_VARIANT here. 767 (handler_seq): Accept an empty list of catch clauses and 768 generate a fake handler block to avoid later crashes. 769 (ansi_raise_identifier): Accept the error token too. 770 * semantics.c (begin_class_definition, 771 finish_class_definition): Check for error_mark_node. 772 7732002-01-23 Zack Weinberg <zack@codesourcery.com> 774 775 * typeck2.c (friendly_abort): Delete definition. 776 * cp-tree.h (friendly_abort): Don't prototype. 777 (my_friendly_assert): Use fancy_abort. 778 7792002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 780 781 * cp-tree.h (my_friendly_abort): Remove. 782 7832002-01-23 Jakub Jelinek <jakub@redhat.com> 784 785 * spew.c (pending_inlines, pending_inlines_tail, 786 processing_these_inlines): Make static. 787 (mark_pending_inlines): Remove static. 788 (begin_parsing_inclass_inline): If in function, save pi 789 for GC to cp_function_chain->unparsed_inlines instead. 790 (process_next_inline): Likewise. 791 * cp-tree.h (struct cp_language_function): Add unparsed_inlines. 792 (mark_pending_inlines): Add prototype. 793 * decl.c (spew_debug): Remove unused extern. 794 (mark_lang_function): Call mark_pending_inlines. 795 7962002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 797 798 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, 799 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, 800 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: 801 Change my_fancy_abort() to abort(). 802 8032002-01-23 Jason Merrill <jason@redhat.com> 804 805 PR c++/5453 806 * class.c (fixed_type_or_null): Fix thinko. 807 808 PR c++/3331 809 * init.c (resolve_offset_ref): Use build_indirect_ref. 810 811 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'. 812 8132002-01-22 Jason Merrill <jason@redhat.com> 814 815 * parse.y (function_body): Suppress the block for the outermost 816 curly braces. 817 * decl.c (pushdecl): Don't try to skip it. 818 (begin_function_body): Keep the block we create, not the next one. 819 * init.c (emit_base_init): Don't mess with keep_next_level. 820 821 * class.c (build_base_path): Tweak formatting. 822 8232002-01-19 Nathan Sidwell <nathan@codesourcery.com> 824 825 Fix regression introduced with patch for c++/775 826 * parse.y (class_head_defn): Check for template specializations 827 with a different class-key. 828 8292002-01-17 Jason Merrill <jason@redhat.com> 830 831 * decl.c (begin_constructor_body, begin_destructor_body): New fns. 832 (begin_function_body): Call them and keep_next_level. 833 * init.c (emit_base_init): Call keep_next_level. 834 * semantics.c (setup_vtbl_ptr): Lose. 835 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p. 836 (vtbls_set_up_p): Lose. 837 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init. 838 * method.c (do_build_copy_constructor): Likewise. 839 (synthesize_method): Call finish_mem_initializers. 840 * parse.y (nodecls): Likewise. 841 842 * error.c (dump_type_suffix): Print the exception specs before 843 recursing. 844 (dump_function_decl): Here, too. 845 846 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT. 847 8482002-01-10 Ira Ruben <ira@apple.com> 849 850 PR c++/907 851 * decl.c (start_method): Handle attrlist. 852 8532002-01-10 Jakub Jelinek <jakub@redhat.com> 854 855 * decl2.c (max_tinst_depth): Increase default limit to 500. 856 8572002-01-10 Graham Stott <grahams@redhat.com> 858 859 * spew.c (YYCHAR): Uppercase macro parameter and add 860 parenthesis. 861 (YYCODE): Likewise. 862 (NAME): Uppercase macro parameter. 863 8642002-01-09 Graham Stott <grahams@redhat.com> 865 866 * decl.h (grokdeclarator): Wrap long line. 867 868 * semantics.c (FINISH_COND): Uppercase macro paramaters and 869 add parenthesis. 870 8712002-01-08 Graham Stott <grahams@redhat.com> 872 873 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis. 874 (PALLOC): Uppercase macro parameter and whitespace. 875 (SALLOC): Uppercase macro parameter. 876 (SFREE): Uppercase macros parameter, add parenthese and 877 whitespace. 878 (STREQL): Uppercase macro parameter and whitespace. 879 (STRNEQ): Likewise. 880 (STRLSS): Likewise. 881 (STRLEQ): Likewise. 882 (STRGTR): Likewise. 883 (STRGEQ): Likewise. 884 885 * call.c (convert_like): Add parenthesis and wrap. 886 (convert_like_with_context): Likewise. 887 (ICS_RANK): Whitespace. 888 (NEED_TEMPORARY_P): Remove parenthesis. 889 890 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and 891 whitespace. 892 (VTT_MARKED_BINFO_P): Likewise. 893 894 * decl.c (BINDING_LEVEL): Add parenthesis. 895 (DEF_OPERATOR): Likewise. 896 897 * mangle.c (MANGLE_TRACE): Add parenthesis. 898 (MANGLE_TRACE_TREE): Likewise. 899 (write_signed_number): Likewise. 900 (write_unsigned_number): Likewise. 901 902 * pt.c (ccat): Uppercase macro parameter. 903 (cat): Likewise 904 905 * search.c (SET_BINFO_ACCESS): Add parenthesis. 906 9072002-01-07 Jason Merrill <jason@redhat.com> 908 909 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch 910 to pedwarn. 911 912 PR c++/3536 913 * method.c (make_thunk): If !flag_weak, give the thunk the 914 function's linkage. 915 (use_thunk): Here, too. 916 9172002-01-07 Graham Stott <grahams@redhat.com> 918 919 * error.c: Update copyright date. 920 (print_scope_operator): Add parenthesis. 921 (print_left_paren): Likewise. 922 (print_right_paren): Likewise. 923 (print_left_bracket): Likewise. 924 (print_right_bracket): Likewise. 925 (print_template_argument_list_start): Likewise. 926 (print_template_argument_list_end): Likewise. 927 (print_non_consecutive_character): Likewise. 928 (print_tree_identifier): Likewise. 929 (print_identifier): Likewise. 930 (NEXT_CODE): Uppercase macro parameter. 931 (ident_fndecl): Delete unused. 932 (GLOBAL_THING): Likewise. 933 9342002-01-06 Graham Stott <grahams@redhat.com> 935 936 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis. 937 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise. 938 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise. 939 (RECORD_OR_UNION_TYPE_CHECK): Likewise. 940 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise. 941 (C_IS_RESERVED_WORD): Uppercase macro parameter. 942 (C_RID_YYCODE) Likewise. 943 (ptrmem_cst): Use rtx. 944 (LOCAL_BINDING_P): Add whitespace. 945 (INHERITED_VALUE_BINDING_P): Likewise. 946 (BINDING_SCOPE): Wrap long line. 947 (BINDING_HAS_LEVEL_P): Remove parenthesis. 948 (BINDING_VALUE): Wrap long line. 949 (BINDING_TYPE): Whitespace. 950 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis. 951 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise. 952 (IDENTIFIER_NAMESPACE_VALUE): Likewise. 953 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise. 954 (same_type_p): Uppercase macro parameters. 955 (same_type_ignoring_top_level_qualifiers_p): Likewise. 956 (OVL_FUNCTION): Wrap long line. 957 (OVL_CHAIN): Whitespace. 958 (OVL_CURRENT): Add parenthesis and whitespace. 959 (OVL_NEXT): Whitespace. 960 (OVL_USED): Likewise. 961 (IDENTIFIER_TYPE_VALUE): Likewise. 962 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis. 963 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace. 964 (LANG_ID_FIELD): Whitespace. 965 (SET_LANG_ID(NODE,VALUE,NAME): Likewise. 966 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap. 967 (SET_IDENTIFIER_LABEL_VALUE): Whitespace. 968 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap. 969 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace. 970 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap. 971 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace. 972 (IDENTIFIER_VIRTUAL_P): Likewise. 973 (IDENTIFIER_OPNAME_P): Likewise. 974 (IDENTIFIER_TYPENAME_P): Remove parenthesis. 975 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters. 976 (C_SET_EXP_ORIGINAL_CODE): Likewise. 977 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line. 978 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise. 979 (IS_AGGR_TYPE): Uppercase macro parameter. 980 (CLASS_TYPE_P): Likewise. 981 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis. 982 (IS_AGGR_TYPE_2): Whitespace. 983 (TAGGED_TYPE_P): Uppercase macro parameter. 984 (TYPE_BUILT_IN): Whitespace. 985 (TYPE_FOR_JAVA): Likewise. 986 (FUNCTION_ARG_CHAIN): Remove parenthesis. 987 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis. 988 (FUNCTION_FIRST_USER_PARAM): Likewise. 989 (PROMOTES_TO_AGGR_TYPE): Whitespace. 990 (DERIVED_FROM_P): Add parenthesis and wrap. 991 (UNIQUELY_DERIVED_FROM_P): Likewise. 992 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise. 993 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 994 (CLASSTYPE_USE_TEMPLATE): Whitespace. 995 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis. 996 (TYPE_GETS_DELETE): Add parenthesis. 997 (TYPE_HAS_CONVERSION): Add parenthesis and wrap. 998 (TYPE_HAS_ASSIGN_REF): Likewise, 999 (TYPE_HAS_CONST_ASSIGN_REF): Likewise. 1000 (TYPE_HAS_INIT_REF): Likewise. 1001 (TYPE_HAS_CONST_INIT_REF): Likewise. 1002 (TYPE_BEING_DEFINED): Likewise. 1003 (TYPE_LANG_SPECIFIC): Likewise. 1004 (CLASSTYPE_RTTI): Likewise. 1005 (TYPE_OVERLOADS_CALL_EXPR): Likewise. 1006 (TYPE_OVERLOADS_ARRAY_REF): Likewise. 1007 (TYPE_OVERLOADS_ARROW): Likewise. 1008 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise. 1009 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis. 1010 (CLASSTYPE_METHOD_VEC): Likewise. 1011 (CLASSTYPE_MARKED_N): Likewise. 1012 (CLASSTYPE_MARKED): Likewise. 1013 (CLASSTYPE_MARKED2): Likewise. 1014 (CLASSTYPE_MARKED3): Likewise. 1015 (CLASSTYPE_MARKED4): Likewise. 1016 (CLASSTYPE_MARKED5): Likewise. 1017 (CLASSTYPE_MARKED6): Likewise. 1018 (SET_CLASSTYPE_MARKED): Whitespace. 1019 (CLEAR_CLASSTYPE_MARKED): Likewise. 1020 (SET_CLASSTYPE_MARKED2): Likewise. 1021 (CLEAR_CLASSTYPE_MARKED2): Likewise. 1022 (SET_CLASSTYPE_MARKED3): Likewise. 1023 (CLEAR_CLASSTYPE_MARKED3): Likewise. 1024 (SET_CLASSTYPE_MARKED4): Likewise. 1025 (CLEAR_CLASSTYPE_MARKED4): Likewise. 1026 (SET_CLASSTYPE_MARKED5): Likewise. 1027 (CLEAR_CLASSTYPE_MARKED5): Likewise. 1028 (SET_CLASSTYPE_MARKED6): Likewise. 1029 (CLEAR_CLASSTYPE_MARKED6): Likewise. 1030 (CLASSTYPE_TAGS): Likewise. 1031 (CLASSTYPE_VSIZE): Likewise. 1032 (CLASSTYPE_VBASECLASSES): Likewise. 1033 (CANONICAL_BINFO): Add parenthesis. 1034 (CLASSTYPE_SIZE(NODE): Likewise. 1035 (CLASSTYPE_SIZE_UNIT): Likewise. 1036 (CLASSTYPE_ALIGN(NODE): Likewise. 1037 (CLASSTYPE_USER_ALIGN): Likewise. 1038 (TYPE_JAVA_INTERFACE): Likewise. 1039 (CLASSTYPE_PURE_VIRTUALS): Likewise. 1040 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap. 1041 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise. 1042 (CLASSTYPE_HAS_MUTABLE): Likewise. 1043 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise. 1044 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap. 1045 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise. 1046 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise. 1047 (CLASSTYPE_INTERFACE_ONLY): Likewise. 1048 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 1049 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 1050 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 1051 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 1052 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 1053 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap. 1054 (BINFO_UNSHARED_MARKED): Whitespace. 1055 (BINFO_MARKED): Whitespace and wrap. 1056 (SET_BINFO_MARKED): Likewise. 1057 (CLEAR_BINFO_MARKED): Likewise. 1058 (BINFO_VTABLE_PATH_MARKED): Likewise. 1059 (SET_BINFO_VTABLE_PATH_MARKED): Likewise. 1060 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise. 1061 (BINFO_SUBVTT_INDEX): Remove parenthesis. 1062 (BINFO_VPTR_INDEX): Likewise. 1063 (BINFO_PRIMARY_BASE_OF): Likewise, 1064 (CLASSTYPE_VFIELDS): Whitespace. 1065 (VF_DERIVED_VALUE): Wrap long line. 1066 (NAMESPACE_LEVEL): Whitespace. 1067 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis. 1068 (DEFARG_POINTER): Whitespace. 1069 (DECL_NEEDED_P): Remove parenthesis. 1070 (DECL_LANGUAGE): Whitespace. 1071 (SET_DECL_LANGUAGE): Add parenthesis. 1072 (DECL_CONSTRUCTOR_P): Whitespace and wrap. 1073 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis. 1074 (DECL_IN_AGGR_P): Whitespace. 1075 (DECL_FRIEND_P): Likewise. 1076 (DECL_BEFRIENDING_CLASSES): Likewise. 1077 (DECL_STATIC_FUNCTION_P): Whitespace and wrap. 1078 (DECL_NONCONVERTING_P): Whitespace. 1079 (DECL_PURE_VIRTUAL_P): Likewise. 1080 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise. 1081 (DECL_PENDING_INLINE_INFO): Whitespace. 1082 (DECL_SORTED_FIELDS): Likewise. 1083 (DECL_DEFERRED_FN): Likewise. 1084 (DECL_TEMPLATE_INFO): Likewise. 1085 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap. 1086 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise. 1087 (SET_TYPE_TEMPLATE_INFO): Add parenthesis. 1088 (TMPL_ARGS_LEVEL): Likewise. 1089 (SET_TMPL_ARGS_LEVEL): Likewise. 1090 (INNERMOST_TEMPLATE_PARMS): Whitespace. 1091 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter. 1092 (INTEGRAL_CODE_P(CODE): Add parenthesis. 1093 (CP_INTEGRAL_TYPE_P): Remove parenthesis. 1094 (TYPE_HAS_CONSTRUCTOR): Whitespace. 1095 (TREE_HAS_CONSTRUCTOR): Likewise. 1096 (TYPE_HAS_DESTRUCTOR): Likewise. 1097 (TYPE_HAS_REAL_ASSIGN_REF): Likewise. 1098 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise. 1099 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise. 1100 (TYPE_HAS_COMPLEX_INIT_REF): Likewise. 1101 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise. 1102 (TYPE_PTRMEMFUNC_P): Likewise. 1103 (TYPE_PTRMEMFUNC_FLAG): Likewise. 1104 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise. 1105 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise. 1106 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis. 1107 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 1108 (DECL_ACCESS): Whitespace. 1109 (DECL_GLOBAL_CTOR_P): Remove parenthesis. 1110 (DECL_GLOBAL_DTOR_P): Likewise. 1111 (GLOBAL_INIT_PRIORITY): Likewise. 1112 (DECL_TEMPLATE_PARMS): Likewise. 1113 (DECL_TEMPLATE_RESULT): Likewise. 1114 (DECL_TEMPLATE_INSTANTIATIONS): Likewise. 1115 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise. 1116 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis. 1117 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. 1118 (PRIMARY_TEMPLATE_P): Add parenthesis. 1119 (DECL_USE_TEMPLATE): Whitespace. 1120 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 1121 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 1122 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 1123 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 1124 (CALL_DECLARATOR_PARMS): Remove parenthesis. 1125 (CALL_DECLARATOR_QUALS): Likewise. 1126 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise. 1127 (TEMP_NAME_P): Wrap. 1128 (VFIELD_NAME_P): Likewise. 1129 (B_SET): Uppercase macro parameters and add parenthesis. 1130 (B_CLR): Likewise. 1131 (B_TST): Likewise. 1132 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters. 1133 (LOOKUP_TYPES_ONLY): Uppercase macro parameters. 1134 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters. 1135 (same_or_base_type_p): Likewise. 1136 (cp_deprecated): Likewise. 1137 11382002-01-05 Richard Henderson <rth@redhat.com> 1139 1140 * semantics.c (expand_body): Revert last change. 1141 11422002-01-04 Jason Merrill <jason@redhat.com> 1143 1144 PR c++/4122 1145 * class.c (update_vtable_entry_for_fn): Set delta to zero for a 1146 lost primary. 1147 1148 * class.c (build_vtbl_initializer): Check for a lost primary 1149 before calculating the vtable entry to throw away. 1150 11512002-01-02 Jason Merrill <jason@redhat.com> 1152 1153 * semantics.c (expand_body): Call outlining_inline_function when 1154 emitting an inline function out of line. 1155 11562002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1157 1158 PR c++/5116, c++/764 reversion 1159 * call.c (build_new_op): Revert the instantiations. They are 1160 incorrect. 1161 11622002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1163 1164 PR c++/5089 1165 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void. 1166 11672002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1168 1169 PR c++/3716 1170 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst. 1171 (tsubst, case POINTER_TYPE): Handle pmfs here. 1172 (tsubst, case OFFSET_TYPE): Check it is not an offset to 1173 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE. 1174 11752002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1176 1177 PR c++/35 1178 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too. 1179 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too. 1180 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the 1181 PARM_DECL. 1182 (tsubst_template_parms): Break up loop statements. 1183 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template 1184 parm PARM_DECLs don't get promoted. 1185 11862002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1187 1188 PR c++/5123 1189 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR. 1190 (build_x_function_call): Cope with a COMPONENT_REF containing a 1191 TEMPLATE_ID_EXPR. 1192 11932002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1194 1195 PR c++/5213 1196 * pt.c (convert_template_argument): Be more careful determining 1197 when RECORD_TYPE templates are or are not templates. 1198 11992002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1200 1201 PR c++/775 1202 * cp-tree.h (handle_class_head): Adjust prototype. 1203 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P 1204 parameters. Use for all class heads. 1205 * parse.y (named_class_head_sans_basetype, named_class_head, 1206 named_complex_class_head_sans_basetype, 1207 named_class_head_sans_basetype_defn, 1208 unnamed_class_head): Remove. 1209 (class_head, class_head_apparent_template): Recognize class heads 1210 (class_head_decl, class_head_defn): New reductions. Process class 1211 heads. 1212 (structsp): Adjust class definition and class declaration 1213 reductions. 1214 (maybe_base_class_list): Give diagnostic on empty list. 1215 12162002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1217 1218 PR c++/4379 1219 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a 1220 single non-static member. 1221 (unary_complex_lvalue): If it cannot be a pointer to member, don't 1222 make it so. Check it is not pointer to reference. 1223 12242002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1225 1226 PR c++/5132 1227 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we 1228 are processing a template decl. 1229 12302002-01-02 Nathan Sidwell <nathan@codesourcery.com> 1231 1232 PR c++/5116, c++/764 1233 * call.c (build_new_op): Make sure template class operands are 1234 instantiated. Simplify arglist construction. 1235 12362001-12-29 Nathan Sidwell <nathan@codesourcery.com> 1237 1238 * call.c (build_user_type_conversion_1): Use my_friendly_assert 1239 rather than if ... abort. 1240 * cvt.c (convert_to_reference): Likewise. 1241 * semantics.c (setup_vtbl_ptr): Likewise. 1242 * pt.c (lookup_template_class): Comment typo. 1243 12442001-12-29 Nathan Sidwell <nathan@codesourcery.com> 1245 1246 PR c++/5125 1247 * pt.c (push_template_decl_real): Make sure DECL has 1248 DECL_LANG_SPECIFIC. 1249 12502001-12-29 Nathan Sidwell <nathan@codesourcery.com> 1251 1252 PR c++/335 1253 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer 1254 for non-reference fields. 1255 * typeck.c (require_complete_type): Use resolve_offset_ref). 1256 12572001-12-26 Nathan Sidwell <nathan@codesourcery.com> 1258 1259 PR c++/196 1260 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF. 1261 12622001-12-24 Nathan Sidwell <nathan@codesourcery.com> 1263 1264 PR c++/160 1265 * typeck.c (build_modify_expr): Remove old unreachable code & tidy 1266 up. Don't stabilize_references when initializing a reference. 1267 12682001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1269 1270 * decl2.c (lang_f_options): Const-ify. 1271 12722001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 1273 1274 * config-lang.in (diff_excludes): Remove. 1275 12762001-12-19 Nathan Sidwell <nathan@codesourcery.com> 1277 1278 PR c++/90 1279 * typeck.c (build_function_call_real): Use original function 1280 expression for errors. 1281 12822001-12-18 Jason Merrill <jason@redhat.com> 1283 1284 PR c++/3242 1285 * class.c (add_method): Do compare 'this' quals when trying to match a 1286 used function. Don't defer to another used function. 1287 12882001-12-18 Nathan Sidwell <nathan@codesourcery.com> 1289 1290 * pt.c (instantiate_clone): Remove, fold into ... 1291 (instantiate_template): ... here. Simplify by removing mutual 1292 recursion. 1293 * typeck2.c (build_m_component_ref): Don't cv qualify the function 1294 pointed to by a pointer to function. 1295 * class.c (delete_duplicate_fields_1): Typo. 1296 12972001-12-18 Jason Merrill <jason@redhat.com> 1298 1299 C++ ABI change: destroy value arguments in caller. 1300 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't 1301 create an extra binding level for the parameters. 1302 * decl.c (store_parm_decls): Don't do parameter cleanups. 1303 13042001-12-18 Nathan Sidwell <nathan@codesourcery.com> 1305 1306 * call.c (build_new_method_call): Use '%#V'. 1307 * error.c (cv_to_string): Use V parameter to determine padding. 1308 13092001-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 1310 1311 * call.c, decl2.c, init.c: Use "built-in" and "bit-field" 1312 spellings in messages. 1313 13142001-12-17 Zack Weinberg <zack@codesourcery.com> 1315 1316 * cp-tree.h: Delete #defines for cp_error, cp_warning, 1317 cp_pedwarn, and cp_compiler_error. 1318 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, 1319 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, 1320 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 1321 typeck2.c: Change calls to the above macros to use their 1322 language-independent equivalents: error, warning, pedwarn, and 1323 internal_error respectively. 1324 13252001-12-16 Neil Booth <neil@daikokuya.demon.co.uk> 1326 1327 * decl2.c (finish_file): Remove back_end_hook. 1328 13292001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 1330 1331 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c, 1332 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c, 1333 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors. 1334 13352001-12-15 Joseph S. Myers <jsm28@cam.ac.uk> 1336 1337 * lang-options.h: Use American spelling in messages. 1338 13392001-12-13 Jason Merrill <jason@redhat.com> 1340 1341 * Make-lang.in (parse.h): Separate rule, just depend on parse.c. 1342 1343 Use cleanups to run base and member destructors. 1344 * init.c (push_base_cleanups): New function, split out from... 1345 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. 1346 * decl.c (finish_destructor_body): Move vbase destruction code to 1347 push_base_cleanups. 1348 (begin_function_body, finish_function_body): New fns. 1349 (finish_function): Move [cd]tor handling and call_poplevel to 1350 finish_function_body. 1351 (pushdecl): Skip the new level. 1352 * semantics.c (genrtl_try_block): Don't call end_protect_partials. 1353 (setup_vtbl_ptr): Call push_base_cleanups. 1354 * method.c (synthesize_method): Call {begin,end}_function_body. 1355 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. 1356 * cp-tree.h: Declare new fns. 1357 * parse.y (function_body, .begin_function_body): New nonterminals. 1358 (fndef, pending_inline, function_try_block): Use function_body. 1359 (ctor_initializer_opt, function_try_block): No longer has a value. 1360 (base_init): Remove .set_base_init token. 1361 (.set_base_init, compstmt_or_error): Remove. 1362 * Make-lang.in (parse.c): Expect two fewer s/r conflicts. 1363 1364 * optimize.c (maybe_clone_body): Fix parameter updating. 1365 13662001-12-12 Jason Merrill <jason@redhat.com> 1367 1368 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft. 1369 * semantics.c (genrtl_start_function): Don't pass 1370 parms_have_cleanups or push an extra binding level. 1371 (genrtl_finish_function): Lose cleanup_label cruft. 1372 1373 * cp-tree.h (struct cp_language_function): Remove x_ctor_label. 1374 (ctor_label): Remove. 1375 * semantics.c (finish_return_stmt): Lose ctor_label support. 1376 * decl.c (finish_constructor_body, mark_lang_function): Likewise. 1377 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not 1378 dtor_label. 1379 1380 * call.c (build_new_method_call): Let resolves_to_fixed_type_p 1381 check for [cd]tors. 1382 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix. 1383 1384 * decl.c (finish_function): Check VMS_TARGET, not VMS. 1385 1386 * decl.c (start_cleanup_fn): Remove redundant pushlevel. 1387 (end_cleanup_fn): And poplevel. 1388 1389 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER 1390 if we're in a template. 1391 13922001-12-12 Jakub Jelinek <jakub@redhat.com> 1393 1394 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P, 1395 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, 1396 THIS_NAME_P): Delete. 1397 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, 1398 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash 1399 with internal naming scheme. 1400 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. 1401 14022001-12-12 Nathan Sidwell <nathan@codesourcery.com> 1403 1404 * decl.c (grokdeclarator): Deprecated implicit typename use. 1405 14062001-12-11 Nathan Sidwell <nathan@codesourcery.com> 1407 1408 PR g++/51 1409 * parse.y (frob_specs): Indicate it is a language linkage which 1410 contained the extern. 1411 * decl.c (grokdeclarator): Allow extern language linkage with 1412 other specifiers. 1413 14142001-12-10 Nathan Sidwell <nathan@codesourcery.com> 1415 1416 PR g++/72 1417 * decl.c (add_binding): Don't reject duplicate typedefs involving 1418 template parameters. 1419 14202001-12-10 Neil Booth <neil@daikokuya.demon.co.uk> 1421 1422 * parse.y, semantics.c: Similarly. 1423 14242001-12-09 Nathan Sidwell <nathan@codesourcery.com> 1425 1426 PR g++/87 1427 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p. 1428 (copy_args_p): Rename to ... 1429 (copy_fn_p): ... here. 1430 (grok_special_member_properties): New function. 1431 (grok_op_properties): Lose VIRTUALP parameter. 1432 (copy_assignment_arg_p): Remove. 1433 * call.c (build_over_call): Use copy_fn_p. 1434 * decl.c (grokfndecl): Reformat. Adjust call to 1435 grok_op_properties. 1436 (copy_args_p): Rename to ... 1437 (copy_fn_p): ... here. Reject template functions. Check for pass 1438 by value. 1439 (grok_special_member_properties): Remember special functions. 1440 (grok_ctor_properties): Don't remember them here, just check. 1441 (grok_op_properties): Likewise. 1442 (start_method): Call grok_special_member_properties. 1443 * decl2.c (grokfield): Likewise. 1444 (copy_assignment_arg_p): Remove. 1445 (grok_function_init): Don't remember abstract assignment here. 1446 * pt.c (instantiate_class_template): Call 1447 grok_special_member_properties. 1448 (tsubst_decl): Adjust grok_op_properties call. 1449 14502001-12-08 Aldy Hernandez <aldyh@redhat.com> 1451 1452 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and 1453 RID_TYPES_COMPATIBLE_P. 1454 14552001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 1456 1457 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in 1458 call to build_aggr_init. 1459 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. 1460 14612001-12-08 Neil Booth <neil@daikokuya.demon.co.uk> 1462 1463 * parse.y: Replace uses of the string non-terminal with STRING. 1464 Don't perform string concatentaion here. 1465 (string): Remove non-terminal. 1466 * semantics.c (finish_asm_stmt): Don't concatenate strings here. 1467 14682001-12-05 Jason Merrill <jason@redhat.com> 1469 1470 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. 1471 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. 1472 * tree.c (cp_start_inlining, cp_end_inlining): New fns. 1473 * pt.c (push_tinst_level): No longer static. 1474 * cp-tree.h: Declare them. 1475 1476 * init.c (resolve_offset_ref): Don't check access for the base 1477 conversion to access a FIELD_DECL. 1478 1479 * cp-tree.h (TYPE_REFFN_P): New macro. 1480 * decl.c (bad_specifiers): Check it, too. 1481 1482 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY 1483 on the __*_type_info type if we haven't seen a definition. 1484 14852001-12-05 Neil Booth <neil@daikokuya.demon.co.uk> 1486 1487 * decl.c: Include c-common.h. 1488 (shadow_warning): Move to c-common.c. 1489 1490Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1491 1492 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. 1493 14942001-12-04 Nathan Sidwell <nathan@codesourcery.com> 1495 1496 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm. 1497 14982001-12-04 Nathan Sidwell <nathan@codesourcery.com> 1499 1500 PR g++/164 1501 * init.c (sort_base_init): Allow binfos to be directly specified. 1502 * method.c (do_build_copy_constructor): Explicitly convert to the 1503 base instance. 1504 (do_build_assign_ref): Likewise. 1505 15062001-12-03 Hans-Peter Nilsson <hp@bitrange.com> 1507 1508 * decl.c (xref_basetypes): Don't use C99 construct in tag_code 1509 declaration and initialization. 1510 15112001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 1512 1513 * typeck2.c: Remove leading capital from diagnostic messages, as 1514 per GNU coding standards. 1515 15162001-12-03 Mumit Khan <khan@nanotech.wisc.edu> 1517 1518 PR c++/3394 1519 * decl.c (xref_basetypes): Handle attributes between 1520 'class' and name. 1521 15222001-12-03 Nathan Sidwell <nathan@codesourcery.com> 1523 1524 PR g++/3381 1525 * parse.y (named_complex_class_head_sans_basetype): Add new 1526 reduction. 1527 * Make-lang.in (parse.c): Adjust expected conflict count. 1528 15292001-12-03 Jason Merrill <jason@redhat.com> 1530 1531 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the 1532 immediate binfos for our virtual bases. 1533 15342001-12-02 Neil Booth <neil@daikokuya.demon.co.uk> 1535 1536 * call.c (build_java_interface_fn_ref): Similarly. 1537 * except.c (is_admissible_throw_operand): Similarly. 1538 * init.c (build_java_class_ref): Similarly. 1539 * xref.c (open_xref_file): Similarly. 1540 15412001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 1542 1543 * class.c (finish_struct): Remove trailing periods from messages. 1544 * decl.c (check_tag_decl): Similarly. 1545 * lex.c (cxx_set_yydebug): Similarly. 1546 * typeck2.c (friendly_abort): Similarly. 1547 15482001-11-29 Mark Mitchell <mark@codesourcery.com> 1549 1550 PR c++/3048 1551 * cp-tree.h (ovl_member): Remove. 1552 * decl2.c (merge_functions): Handle extern "C" functions 1553 specially. 1554 * tree.c (ovl_member): Remove. 1555 15562001-11-29 Mark Mitchell <mark@codesourcery.com> 1557 1558 PR c++/4842 1559 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a 1560 FUNCTION_DECL, as input. 1561 (mark_overriders): Remove. 1562 (warn_hidden): Rework for the new ABI. 1563 15642001-11-29 Mark Mitchell <mark@codesourcery.com> 1565 1566 PR c++/3471 1567 * call.c (convert_like_real): Do not build additional temporaries 1568 for rvalues of class type. 1569 15702001-11-28 Nathan Sidwell <nathan@codesourcery.com> 1571 1572 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base. 1573 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise. 1574 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise. 1575 (DERIVED_FROM_P): Likewise. 1576 (enum base_access): Renumber, add ba_quiet bit mask. 1577 (get_binfo): Remove. 1578 (get_base_distance): Remove. 1579 (binfo_value): Remove. 1580 (ACCESSIBLY_DERIVED_FROM_P): Remove. 1581 * call.c (standard_conversion): Use lookup_base. 1582 * class.c (strictly_overrides): Likewise. 1583 (layout_virtual_bases): Likewise. 1584 (warn_about_ambiguous_direct_bases): Likewise. 1585 (is_base_of_enclosing_class): Likewise. 1586 (add_vcall_offset_vtbl_entries_1): Likewise. 1587 * cvt.c (build_up_reference): Adjust comment. 1588 * init.c (build_member_call): Reformat. 1589 * search.c (get_binfo): Remove. 1590 (get_base_distance_recursive): Remove. 1591 (get_base_distance): Remove. 1592 (lookup_base_r): Tweak. 1593 (lookup_base): Add ba_quiet control. Complete the types here. 1594 (covariant_return_p): Use lookup_base. 1595 * tree.c (binfo_value): Remove. 1596 (maybe_dummy_object): Use lookup_base. 1597 * typeck.c (build_static_cast): Use lookup_base. 1598 (get_delta_difference): Likewise. 1599 * typeck2.c (binfo_or_else): Use lookup_base. 1600 (build_scoped_ref): Add back error_mark_check. 1601 (build_m_component_ref): Use lookup_base. 1602 16032001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 1604 1605 * Make-lang.in (c++.generated-manpages): New dummy target. 1606 1607Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1608 1609 * Make-lang.in (cp-lang.o): Depends on c-common.h. 1610 * cp-lang.c (c-common.h): Include. 1611 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. 1612 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p. 1613 * expr.c (init_cplus_expand): Don't set lang_expand_constant. 1614 16152001-11-26 Neil Booth <neil@daikokuya.demon.co.uk> 1616 1617 * decl2.c (c_language): Move to c-common.c. 1618 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c 1619 functions. 1620 (cxx_init): Update. 1621 16222001-11-26 Jason Merrill <jason@redhat.com> 1623 1624 * call.c (joust): Remove COND_EXPR hack. 1625 16262001-11-25 Aldy Hernandez <aldyh@redhat.com> 1627 1628 * search.c (lookup_base_r): Declare bk in variable declaration 1629 space. 1630 16312001-11-25 Nathan Sidwell <nathan@codesourcery.com> 1632 1633 PR g++/3145 1634 * class.c (build_vbase_pointer): Remove. 1635 (build_vbase_path): Remove. 1636 (build_base_path): New function. 1637 * cp-tree.h (base_access, base_kind): New enumerations. 1638 (build_base_path): Declare. 1639 (convert_pointer_to_real): Remove. 1640 (convert_pointer_to): Remove. 1641 (lookup_base): Declare. 1642 (convert_pointer_to_vbase): Remove. 1643 * call.c (build_scoped_method_call): Use lookup_base & 1644 build_base_path instead of convert_pointer_to_real, 1645 get_base_distance & get_binfo. 1646 (build_over_call): Likewise. 1647 * cvt.c (cp_convert_to_pointer): Likewise. 1648 (convert_to_pointer_force): Likewise. 1649 (build_up_reference): Likewise. 1650 (convert_pointer_to_real): Remove. 1651 (convert_pointer_to): Remove. 1652 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path 1653 instead of convert_pointer_to_vbase & build_vbase_path. 1654 (emit_base_init): Use build_base_path instead of 1655 convert_pointer_to_real. 1656 (expand_virtual_init): Lose unrequired conversions. 1657 (resolve_offset_ref): Use lookup_base and build_base_path 1658 instead of convert_pointer_to. 1659 * rtti.c (build_dynamic_cast_1): Use lookup_base & 1660 build_base_path instead of get_base_distance & build_vbase_path. 1661 * search.c (get_vbase_1): Remove. 1662 (get_vbase): Remove. 1663 (convert_pointer_to_vbase): Remove. 1664 (lookup_base_recursive): New function. 1665 (lookup_base): New function. 1666 * typeck.c (require_complete_type): Use lookup_base & 1667 build_base_path instead of convert_pointer_to. 1668 (build_component_ref): Likewise. 1669 (build_x_function_call): Likewise. 1670 (get_member_function_from_ptrfunc): Likewise. 1671 (build_component_addr): Likewise. 1672 * typeck2.c (build_scoped_ref): Likewise. 1673 16742001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 1675 1676 * cp-tree.h (CP_TYPE_QUALS): Removed. 1677 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree. 1678 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and 1679 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN. 1680 * dump.c (cp_dump_tree): Use void* dump_info argument to match 1681 lang-hooks prototype. 1682 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c, 1683 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to 1684 CP_TYPE_QUALS changed to cp_type_quals. 1685 * Make-lang.in: References to c-dump.h changed to tree-dump.h. 1686 (CXX_C_OBJS): Remove c-dump.o. 1687 16882001-11-21 Mark Mitchell <mark@codesourcery.com> 1689 1690 PR c++/3637 1691 * pt.c (lookup_template_class): Ensure that all specializations 1692 are registered on the list corresponding to the most general 1693 template. 1694 16952001-11-20 Mark Mitchell <mark@codesourcery.com> 1696 1697 * call.c (non_reference): Add documentation. 1698 (convert_class_to_reference): Do not strip reference types 1699 from conversion operators. 1700 (maybe_handle_ref_bind): Simplify. 1701 (compare_ics): Correct handling of references. 1702 17032001-11-19 John Wilkinson <johnw@research.att.com> 1704 1705 * dump.c (dump_op): New function. 1706 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use 1707 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs. 1708 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P, 1709 17102001-11-19 Mark Mitchell <mark@codesourcery.com> 1711 1712 PR4629 1713 * semantics.c (finish_sizeof): Make sure that expression created 1714 while processing a template do not have a type. 1715 (finish_alignof): Likewise. 1716 * typeck.c (c_sizeof): Likewise. 1717 (expr_sizeof): Likewise. 1718 17192001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 1720 1721 * lex.c (cxx_finish): Call c_common_finish. 1722 (finish_parse): Remove. 1723 17242001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1725 1726 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE 1727 when displaying error message about missing array bounds. 1728 17292001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1730 1731 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, 1732 CONST_CAST_EXPR. 1733 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. 1734 17352001-11-16 Neil Booth <neil@daikokuya.demon.co.uk> 1736 1737 * cp-tree.h (print_class_statistics): Restore. 1738 17392001-11-15 Jason Merrill <jason@redhat.com> 1740 1741 * method.c (use_thunk): Don't emit debugging information for thunks. 1742 1743 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions. 1744 * decl.c (make_typename_type): Handle getting a class template. 1745 * search.c (lookup_field_r): A class template is good enough for 1746 want_type. 1747 1748 * call.c (convert_like_real): Only use cp_convert for the bad part. 1749 (standard_conversion): Also allow bad int->enum. 1750 * typeck.c (ptr_reasonably_similar): Also allow functions to 1751 interconvert. Pointers to same-size integers are reasonably 1752 similar. 1753 1754 * cvt.c (convert_to_void): If we build a new COND_EXPR, always 1755 give it void type. 1756 17572001-11-15 Nathan Sidwell <nathan@codesourcery.com> 1758 1759 PR g++/3154 1760 * init.c (sort_base_init): Remove unreachable code. 1761 (expand_member_init): Adjust comment to reflect reality. Simplify 1762 and remove unreachable code. 1763 17642001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 1765 1766 * cp-tree.h (init_reswords, cxx_init_decl_processing): New. 1767 (cxx_init): Update prototype. 1768 * decl.c (init_decl_processing): Rename. Move null node init 1769 to its creation time. 1770 * lex.c (cxx_init_options): Update. 1771 (cxx_init): Combine with old init_parse; also call 1772 cxx_init_decl_processing. 1773 17742001-11-14 Richard Sandiford <rsandifo@redhat.com> 1775 1776 * decl.c (check_initializer): Try to complete the type of an 1777 array element before checking whether it's complete. Don't 1778 complain about arrays with complete element types but an 1779 unknown size. 1780 (cp_finish_decl): Build the hierarchical constructor before 1781 calling maybe_deduce_size_from_array_init. 1782 17832001-11-14 Joseph S. Myers <jsm28@cam.ac.uk> 1784 1785 * Make-lang.in: Change all uses of $(manext) to $(man1ext). 1786 17872001-11-13 Nathan Sidwell <nathan@codesourcery.com> 1788 1789 PR g++/4206 1790 * parse.y (already_scoped_stmt): Remove. 1791 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt. 1792 17932001-11-12 H.J. Lu <hjl@gnu.org> 1794 1795 * cvt.c (ocp_convert): Don't warn the address of a weak 1796 function is always `true'. 1797 17982001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 1799 1800 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, 1801 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, 1802 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override. 1803 * cp-tree.h (print_class_statistics): Remove. 1804 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type, 1805 cxx_print_identifier, cxx_set_yydebug): New. 1806 * lex.c (set_yydebug): Rename c_set_yydebug. 1807 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier, 1808 lang_print_xnode): Rename. 1809 * tree.c (print_lang_statistics): Rename. 1810 18112001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1812 1813 * class.c (dump_array): Fix format specifier warning. 1814 18152001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 1816 1817 * cp-lang.c (LANG_HOOKS_NAME): Override. 1818 (struct lang_hooks): Constify. 1819 * lex.c (cxx_init_options): Update. 1820 (lang_identify): Remove. 1821 * parse.y (language_string): Remove. 1822 18232001-11-08 Andreas Franck <afranck@gmx.de> 1824 1825 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME, 1826 DEMANGLER_CROSS_NAME): Handle program_transform_name the way 1827 suggested by autoconf. 1828 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define. 1829 (c++.install-common): Use the transformed target alias names. 1830 18312001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 1832 1833 * Make-lang.in: Update. 1834 * cp-lang.c: Include langhooks-def.h. 1835 18362001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1837 1838 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR. 1839 18402001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1841 1842 * lex.c (copy_lang_type): Add static prototype. 1843 18442001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1845 1846 * pt.c (unify): Handle SCOPE_REF. 1847 18482001-11-01 Jakub Jelinek <jakub@redhat.com> 1849 1850 * tree.c (cp_copy_res_decl_for_inlining): Adjust 1851 DECL_ABSTRACT_ORIGIN for the return variable. 1852 18532001-10-31 Zack Weinberg <zack@codesourcery.com> 1854 1855 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 1856 18572001-10-28 Joseph S. Myers <jsm28@cam.ac.uk> 1858 1859 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c, 1860 semantics.c, spew.c: Fix spelling errors. 1861 18622001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1863 1864 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. 1865 18662001-10-25 Zack Weinberg <zack@codesourcery.com> 1867 1868 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to 1869 pop_everything. 1870 1871Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1872 1873 * cp-lang.c (cxx_get_alias_set): New function. 1874 Point LANG_HOOKS_GET_ALIAS_SET to it. 1875 18762001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1877 1878 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node. 1879 * cp-tree.h (make_unbound_class_template): Prototype new function. 1880 * decl.c (make_unbound_class_template): New function. 1881 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE. 1882 * error.c (dump_type): Likewise. 1883 * mangle.c (write_type): Likewise. 1884 * parse.y (template_parm): Likewise. 1885 (template_argument): Use make_unbound_class_template. 1886 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE. 1887 (tsubst): Likewise. 1888 (tsubst_copy): Likewise. 1889 (unify): Likewise. 1890 * tree.c (walk_tree): Likewise. 1891 * typeck.c (comptypes): Likewise. 1892 18932001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1894 1895 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold 1896 extra calls into fewer ones. 1897 18982001-10-18 Alexandre Oliva <aoliva@redhat.com> 1899 1900 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. 1901 Warn when merging inline with attribute noinline. 1902 (start_decl, start_function): Warn if inline and attribute 1903 noinline appear in the same declaration. 1904 19052001-10-16 H.J. Lu <hjl@gnu.org> 1906 1907 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined 1908 for tree checking disabled. 1909 19102001-10-16 Hans-Peter Nilsson <hp@axis.com> 1911 1912 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL && 1913 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME. 1914 19152001-10-15 Richard Sandiford <rsandifo@redhat.com> 1916 1917 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define. 1918 (unify): Only handle MINUS_EXPR specially if the above flag is set 1919 and the subtracted constant is 1. Clear the flag on recursive calls. 1920 Set it when unifying the maximum value in an INTEGER_TYPE's range. 1921 19222001-10-15 Richard Sandiford <rsandifo@redhat.com> 1923 1924 * decl.c (bad_specifiers): Don't allow exception specifications 1925 on any typedefs. 1926 19272001-10-14 Neil Booth <neil@daikokuya.demon.co.uk> 1928 1929 * cp/lex.c (init_cp_pragma): Similarly. 1930 19312001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1932 1933 * pt.c (lookup_template_class): Build complete template arguments 1934 for BOUND_TEMPLATE_TEMPLATE_PARM. 1935 19362001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1937 1938 * cp-tree.h (TYPE_BINFO): Update comment. 1939 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro. 1940 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info. 1941 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS. 1942 (copy_type): Prototype new function. 1943 * lex.c (copy_lang_decl): Gather tree node statistics. 1944 (copy_lang_type): New function. 1945 (copy_type): Likewise. 1946 (cp_make_lang_type): Create lang_type for 1947 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE 1948 and BOUND_TEMPLATE_TEMPLATE_PARM. 1949 * pt.c (tsubst): Use copy_type instead of copy_node. 1950 * search.c (lookup_field_1): Ignore TYPENAME_TYPE. 1951 19522001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1953 1954 * pt.c (determine_specialization): Ignore functions without 1955 DECL_TEMPLATE_INFO. 1956 19572001-10-12 Nathan Sidwell <nathan@codesourcery.com> 1958 1959 PR g++/4476 1960 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes. 1961 19622001-10-11 Jason Merrill <jason_merrill@redhat.com> 1963 1964 * typeck2.c (store_init_value): Don't re-digest a bracketed 1965 initializer. 1966 1967 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of 1968 ANON_AGGR_TYPE_P. 1969 19702001-10-11 Richard Henderson <rth@redhat.com> 1971 1972 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead 1973 of an asm statement. 1974 (build_vtbl_ref_1): Split out from build_vtbl_ref. 1975 (build_vfn_ref): Use it to handle vtable descriptors before 1976 calling build_vtable_entry_ref. 1977 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. 1978 19792001-10-10 Richard Henderson <rth@redhat.com> 1980 1981 * parse.y (asm_operand): Allow named operands. 1982 * semantics.c (finish_asm_stmt): Tweek for changed location 1983 of the operand constrant. 1984 19852001-10-09 Jason Merrill <jason_merrill@redhat.com> 1986 1987 * call.c (standard_conversion): Add bad conversion between 1988 integers and pointers. 1989 (convert_like_real): Don't use convert_for_initialization for bad 1990 conversions; complain here and use cp_convert. 1991 (build_over_call): Don't handle bad conversions specially. 1992 (perform_implicit_conversion): Allow bad conversions. 1993 (can_convert_arg_bad): New fn. 1994 * cp-tree.h: Declare it. 1995 * typeck.c (convert_for_assignment): Use it. 1996 (ptr_reasonably_similar): Any target type is similar to void. 1997 19982001-10-08 Alexandre Oliva <aoliva@redhat.com> 1999 2000 * Make-lang.in (CXX_OBJS): Added cp-lang.o. 2001 (cp/cp-lang.o): New rule. 2002 * cp-tree.h: Declare hooks. 2003 * tree.c: Make hooks non-static. 2004 (init_tree): Don't initialize hooks here. 2005 * lex.c: Likewise. Move definition of lang_hooks to... 2006 * cp-lang.c: ... new file. 2007 20082001-10-08 Richard Henderson <rth@redhat.com> 2009 2010 * cp-tree.h (struct lang_decl_flags): Remove declared_inline. 2011 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl. 2012 20132001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2014 2015 * class.c (build_vtable_entry_ref): Const-ify. 2016 * decl.c (predefined_identifier, 2017 initialize_predefined_identifiers): Likewise. 2018 * init.c (build_new_1): Likewise. 2019 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): 2020 Likewise. 2021 20222001-10-05 Alexandre Oliva <aoliva@redhat.com> 2023 2024 * optimize.c (struct inline_data): Moved to ../tree-inline.c. 2025 (INSNS_PER_STMT): Likewise. 2026 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. 2027 (copy_body, initialize_inlined_parameters): Likewise. 2028 (declare_return_variable, inlinable_function_p): Likewise. 2029 (expand_call_inline, expand_calls_inline): Likewise. 2030 (optimize_inline_calls, clone_body): Likewise. 2031 * tree.c (walk_tree): Moved to ../tree-inline.c. 2032 (walk_tree_without_duplicates): Likewise. 2033 (copy_tree_r, remap_save_expr): Likewise. 2034 20352001-10-04 Alexandre Oliva <aoliva@redhat.com> 2036 2037 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. 2038 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise. 2039 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl. 2040 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h. 2041 (flag_inline_trees): Moved declaration to ../tree-inline.h. 2042 (walk_tree): Moved declaration to ../tree-inline.h. 2043 (walk_tree_without_duplicates, copy_tree_r): Likewise. 2044 (remap_save_expr): Likewise. 2045 * decl.c: Include tree-inline.h. 2046 (lang_mark_tree): Don't mark inlined_fns. 2047 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c. 2048 * optimize.c: Include tree-inline.h. 2049 (optimize_inline_calls): Move declaration to ../tree.h, as 2050 non-static. 2051 (remap_decl): Use language-independent constructs and hooks. 2052 (remap_block, copy_body_r, declare_return_variable): Likewise. 2053 (inlinable_function_p): Likewise. Don't test for 2054 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is 2055 no longer language-specific. 2056 (optimize_inline_calls): Likewise. Make it non-static. Moved 2057 call of dump_function to... 2058 (optimize_function): Here... 2059 (clone_body): New function, extracted from... 2060 (maybe_clone_body): ... here. Build decl_map locally and pass 2061 it on to clone_body. 2062 * pt.c, semantics.c: Include tree-inline.h. 2063 * tree.c: Likewise. 2064 (cp_walk_subtrees): New language-specific hook for tree inlining. 2065 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls, 2066 cp_is_overload_p, cp_auto_var_in_fn_p, 2067 cp_copy_res_decl_for_inlining): Likewise. 2068 (walk_tree): Move language-specific constructs into... 2069 (cp_walk_subtrees): this new function. 2070 (copy_tree_r): Use language-independent constructs and hooks. 2071 (init_tree): Initialize tree inlining hooks. 2072 (remap_save_expr): Adjust prototype so that the declaration 2073 does not require the definition of splay_tree. 2074 20752001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca> 2076 2077 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used 2078 to build the declaration instead of the declaration itself. 2079 20802001-10-02 Jason Merrill <jason_merrill@redhat.com> 2081 2082 * decl2.c (cxx_decode_option): Add 'else'. 2083 2084 * spew.c (end_input): No longer static. 2085 * cp-tree.h: Declare it. 2086 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. 2087 20882001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 2089 2090 * call.c (build_over_call), typeck.c (build_function_call_real): 2091 Pass type attributes to check_function_format rather than name or 2092 assembler name. Don't require there to be a name or assembler 2093 name to check formats. 2094 20952001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 2096 2097 * decl.c (init_decl_processing): Don't call 2098 init_function_format_info. Initialize lang_attribute_table 2099 earlier. 2100 (builtin_function): Call decl_attributes. 2101 (insert_default_attributes): New. 2102 21032001-10-01 Jason Merrill <jason_merrill@redhat.com> 2104 2105 * decl.c (grokdeclarator): Copy array typedef handling from C 2106 frontend. 2107 2108 * decl.c (grokdeclarator): Copy too-large array handling from C 2109 frontend. 2110 21112001-09-29 Alexandre Oliva <aoliva@redhat.com> 2112 2113 * config-lang.in (target_libs): Added target-gperf, so that we 2114 don't try to build it if C++ is disabled. 2115 21162001-09-23 Zack Weinberg <zack@codesourcery.com> 2117 2118 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o. 2119 (cp/errfn.o): Delete rule. 2120 (cp/error.o): Depend on flags.h. 2121 * errfn.c: Delete file. 2122 * cp-tree.h: Declare warn_deprecated. Remove definitions of 2123 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, 2124 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning, 2125 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and 2126 internal_error respectively. Make cp_deprecated into a macro. 2127 Don't define cp_printer typedef or declare cp_printers. 2128 * error.c: Include flags.h. 2129 Delete: struct tree_formatting_info, print_function_argument_list, 2130 print_declaration, print_expression, print_function_declaration, 2131 print_function_parameter, print_type_id, print_cv_qualifier_seq, 2132 print_type_specifier_seq, print_simple_type_specifier, 2133 print_elaborated_type_specifier, print_rest_of_abstract_declarator, 2134 print_parameter_declaration_clause, print_exception_specification, 2135 print_nested_name_specifier, and definition of cp_printers. 2136 (locate_error): New function. 2137 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and 2138 rewritten in terms of locate_error and diagnostic.c. 2139 (cp_tree_printer): Rename cp_printer; wire up to *_to_string 2140 instead of deleted print_* routines. Handle %C, %L, %O, %Q also. 2141 (init_error): Adjust to match. 2142 2143Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2144 2145 * Make-lang.in (CXX_C_OBJS): Add attribs.o. 2146 21472001-09-21 Richard Henderson <rth@redhat.com> 2148 2149 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. 2150 (build_vtbl_initializer): Likewise. 2151 (build_vfn_ref): New. 2152 * cp-tree.h: Declare it. 2153 * call.c (build_over_call): Use it. 2154 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. 2155 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. 2156 2157Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com> 2158 2159 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. 2160 21612001-09-21 Joseph S. Myers <jsm28@cam.ac.uk> 2162 2163 Table-driven attributes. 2164 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. 2165 * decl2.c (cplus_decl_attributes): Only take one attributes 2166 parameter. 2167 * cp-tree.c (cplus_decl_attributes): Update prototype. 2168 * class.c (finish_struct), decl.c (start_decl, start_function), 2169 decl2.c (grokfield), friend.c (do_friend), parse.y 2170 (parse_bitfield): Update calls to cplus_decl_attributes. 2171 * decl.c (grokdeclarator): Take a pointer to a single ordinary 2172 attribute list. 2173 * decl.h (grokdeclarator): Update prototype. 2174 * decl2.c (grokfield): Take a single ordinary attribute list. 2175 * friend.c (do_friend): Likewise. 2176 * decl.c (shadow_tag, groktypename, start_decl, 2177 start_handler_parms, grokdeclarator, grokparms, start_function, 2178 start_method), decl2.c (grokfield, grokbitfield, grokoptypename), 2179 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c 2180 (process_template_parm, do_decl_instantiation): Pass single 2181 ordinary attribute lists around. 2182 * decl.c (grokdeclarator): Correct handling of nested attributes. 2183 Revert the patch 2184 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 2185 * decl.c (grokdeclarator): Embedded attrs bind to the right, 2186 not the left. 2187 . 2188 * cp-tree.h (cp_valid_lang_attribute): Remove declaration 2189 (cp_attribute_table): Declare. 2190 * decl.c (valid_lang_attribute): Don't define. 2191 (lang_attribute_table): Define. 2192 (init_decl_processing): Initialize lang_attribute_table instead of 2193 valid_lang_attribute. 2194 * tree.c (cp_valid_lang_attribute): Remove. 2195 (handle_java_interface_attribute, handle_com_interface_attribute, 2196 handle_init_priority_attribute): New functions. 2197 (cp_attribute_table): New array. 2198 * decl2.c (import_export_class): Don't use 2199 targetm.valid_type_attribute. 2200 22012001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2202 2203 * Make-lang.in (cp/error.o): Depend on real.h 2204 * error.c: #include "real.h" 2205 22062001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2207 2208 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of 2209 xmalloc/strcpy/strcat. 2210 22112001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2212 2213 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): 2214 Const-ification. 2215 * pt.c (tsubst_decl): Likewise. 2216 22172001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2218 2219 * decl2.c (lang_f_options): Const-ification. 2220 * lex.c (cplus_tree_code_name): Likewise. 2221 * spew.c (yyerror): Likewise. 2222 22232001-09-06 Nathan Sidwell <nathan@codesourcery.com> 2224 2225 PR c++/3986 2226 * class.c (force_canonical_binfo_r): Check & move an indirect 2227 primary base first. 2228 (force_canonical_binfo): Check that it's not already 2229 canonical. 2230 (mark_primary_virtual_base): Remove BINFO parameter. 2231 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here. 2232 22332001-09-06 Nathan Sidwell <nathan@codesourcery.com> 2234 2235 Remove TYPE_NONCOPIED_PARTS. 2236 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto 2237 CLASSTYPE_PURE_VIRTUALS. 2238 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO. 2239 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS. 2240 (layout_class_type): Don't call fixup_inline_methods here ... 2241 (finish_struct_1): ... call it here. 2242 22432001-09-04 Mark Mitchell <mark@codesourcery.com> 2244 2245 * decl.c (duplicate_decls): Remove code deadling with 2246 DECL_SAVED_INSNS. 2247 * decl2.c (finish_file): Likewise. 2248 * pt.c (instantiate_decl): Likewise. 2249 * semantics.c (expand_body): Don't defer local functions if 2250 they wouldn't be deferred for some other reason. Don't 2251 generate RTL for functions that will not be emitted. 2252 (genrtl_start_function): Remove code deadling with 2253 DECL_SAVED_INSNS. 2254 (genrtl_finish_function): Likewise. 2255 22562001-09-04 Nathan Sidwell <nathan@codesourcery.com> 2257 2258 PR c++/4203 2259 * call.c (build_over_call): Do not optimize any empty base 2260 construction. 2261 22622001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2263 2264 * error.c (dump_template_decl): Output template parameters 2265 together with their specifiers. 2266 Output `class' prefix for template template parameter. 2267 (dump_decl): Fix formatting. 2268 22692001-08-30 Kurt Garloff <garloff@suse.de> 2270 2271 * optimize.c (inlinable_function_p): Allow only smaller single 2272 functions. Halve inline limit after reaching recursive limit. 2273 22742001-08-30 Joern Rennecke <amylaar@redhat.com> 2275 Jason Merrill <jason_merrill@redhat.com> 2276 2277 * class.c (build_vtable_entry_ref): Subtract in char*, not 2278 ptrdiff_t. 2279 22802001-08-23 Jason Merrill <jason_merrill@redhat.com> 2281 2282 * tree.c (cp_build_qualified_type_real): Use get_qualified_type. 2283 (build_cplus_array_type): Use cp_build_qualified_type, not 2284 TYPE_MAIN_VARIANT, to get an unqualified version. 2285 2286 * decl2.c (grok_alignof): Lose. 2287 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr. 2288 * typeck.c (c_alignof): Lose. 2289 * semantics.c (finish_sizeof, finish_alignof): New. 2290 * parse.y: Use them. 2291 * cp-tree.h: Declare them. 2292 22932001-08-22 Jason Merrill <jason_merrill@redhat.com> 2294 2295 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement. 2296 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK. 2297 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement. 2298 22992001-08-19 Jakub Jelinek <jakub@redhat.com> 2300 2301 * typeck2.c (add_exception_specifier): Only require complete type if 2302 not in processing template declaration. 2303 23042001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2305 2306 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to 2307 GNU_xref_start_scope and GNU_xref_end_scope. 2308 2309 * tree.c (TYPE_HASH): Moved to ../tree.h. 2310 23112001-08-16 Mark Mitchell <mark@codesourcery.com> 2312 2313 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 2314 on COMPOUND_EXPRs. 2315 23162001-08-14 Richard Henderson <rth@redhat.com> 2317 2318 * class.c, cp-tree.h (build_vfn_ref): Remove. 2319 * call.c, rtti.c: Replace all refernces with build_vtbl_ref. 2320 23212001-08-13 Mark Mitchell <mark@codesourcery.com> 2322 2323 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for 2324 empty class assignment as having side-effects to avoid 2325 spurious warnings. 2326 23272001-08-13 Zack Weinberg <zackw@panix.com> 2328 2329 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. 2330 * except.c: Include libfuncs.h. 2331 23322001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2333 2334 * decl.c (grokdeclarator): Clarify diagnostic message. 2335 23362001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2337 2338 * decl2.c (do_nonmember_using_decl): Replace using directive 2339 with using declaration in the error message. 2340 23412001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2342 2343 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the 2344 criterion to avoid rebuilding expression tree instead of 2345 processing_template_decl. 2346 23472001-08-07 Jason Merrill <jason_merrill@redhat.com> 2348 2349 Support named return value optimization for inlines, too. 2350 * decl.c (finish_function): Nullify returns here. 2351 * semantics.c (genrtl_start_function): Not here. 2352 (cp_expand_stmt): Don't mess with CLEANUP_STMTs. 2353 (nullify_returns_r): No longer static. Just clear RETURN_EXPR. 2354 Also nullify the CLEANUP_STMT for the nrv. 2355 * cp-tree.h: Declare it. 2356 * optimize.c (declare_return_variable): Replace the nrv with the 2357 return variable. 2358 * typeck.c (check_return_expr): Be more flexible on alignment check. 2359 Ignore cv-quals when checking for a matching type. 2360 23612001-08-09 Richard Henderson <rth@redhat.com> 2362 2363 * decl2.c (finish_objects): Use target hooks instead of 2364 assemble_constructor and assemble_destructor. 2365 23662001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 2367 2368 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'. 2369 23702001-08-07 Nathan Sidwell <nathan@codesourcery.com> 2371 2372 PR c++/3820 2373 Stop using TYPE_NONCOPIED_PARTS. 2374 * call.c (build_over_call): Be careful when copy constructing 2375 or assigning to an empty class. 2376 * class.c (check_bases_and_members): It has a 2377 COMPLEX_ASSIGN_REF if it has a vptr. 2378 (layout_class_type): Don't add empty class padding to 2379 TYPE_NONCOPIED_PARTS. 2380 (finish_struct_1): Don't add the VFIELD either. 2381 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_ 2382 initialization. 2383 23842001-08-07 Jason Merrill <jason_merrill@redhat.com> 2385 2386 * tree.c (walk_tree): Walk siblings even if !walk_subtrees. 2387 23882001-08-06 Richard Henderson <rth@redhat.com> 2389 2390 * decl2.c (finish_objects): Pass a symbol_ref and priority to 2391 assemble_{constructor,destructor}. Remove priority handling. 2392 23932001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2394 2395 Don't allow template-id in using-declaration. 2396 * decl2.c (validate_nonmember_using_decl): Handle template-ids. 2397 (do_class_using_decl): Likewise. 2398 23992001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk> 2400 2401 * cp/spew.c (read_token): No need to pop buffers. 2402 24032001-08-02 Stan Shebs <shebs@apple.com> 2404 2405 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used. 2406 (fnaddr_from_vtable_entry): Remove decl. 2407 * method.c (use_thunk): Update comment. 2408 24092001-08-01 Andrew Cagney <ac131313@redhat.com> 2410 2411 * repo.c (get_base_filename): Change return value to const char 2412 pointer. 2413 24142001-08-02 Nathan Sidwell <nathan@codesourcery.com> 2415 2416 Kill -fhonor-std. 2417 * NEWS: Document. 2418 * cp-tree.h (flag_honor_std): Remove. 2419 (CPTI_FAKE_STD): Remove. 2420 (std_node): Remove comment about it being NULL. 2421 (fake_std_node): Remove. 2422 * decl.c (in_fake_std): Remove. 2423 (walk_namespaces_r): Remove fake_std_node check. 2424 (push_namespace): Remove in_fake_std code. 2425 (pop_namespace): Likewise. 2426 (lookup_name_real): Remove fake_std_node check. 2427 (init_decl_processing): Always create std_node. Always add 2428 std:: things there. 2429 (builtin_function): Always put non '_' fns in std. 2430 * decl2.c (flag_honor_std): Remove. 2431 (lang_f_options): Remove honor-std. 2432 (unsupported_options): Add honor-std. 2433 (set_decl_namespace): Remove fake_std_node check. 2434 (validate_nonmember_using_decl): Likewise. 2435 (do_using_directive): Likewise. 2436 (handle_class_head): Likewise. 2437 * dump.c (cp_dump_tree): Likewise. 2438 * except.c (init_exception_processing): Adjust. 2439 * init.c (build_member_call): Remove fake_std_node check. 2440 (build_offset_ref): Likewise. 2441 * lang-options.h: Remove -fhonor-std, -fno-honor-std. 2442 * rtti.c (init_rtti_processing): Adjust. 2443 24442001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 2445 2446 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second 2447 operand while calling cp_tree_equal. 2448 24492001-07-31 Nathan Sidwell <nathan@codesourcery.com> 2450 2451 The 3.0 ABI no longer has vbase pointer fields. 2452 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, 2453 FORMAT_VBASE_NAME): Remove. 2454 * method.c (do_build_copy_constructor): Adjust. 2455 (do_build_assign_ref): Adjust. 2456 * search.c (lookup_field_r): Adjust. 2457 * typeck.c (build_component_ref): Adjust. 2458 2459 The 3.0 ABI always has a vtable pointer at the start of every 2460 polymorphic class. 2461 * rtti.c (build_headof_sub): Remove. 2462 (build_headof): Adjust. 2463 (get_tinfo_decl_dynamic): No need to check flag_rtti 2464 here. Adjust. 2465 (create_real_tinfo_var): Explain why we need a hidden name. 2466 24672001-07-31 Nathan Sidwell <nathan@codesourcery.com> 2468 2469 PR c++/3631 2470 * class.c (update_vtable_entry_for_fn): The fixed adjustment 2471 of a virtual thunk should be from declaring base. 2472 24732001-07-31 Nathan Sidwell <nathan@codesourcery.com> 2474 2475 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into 2476 the shared virtual base, so preserving inheritance graph order. 2477 24782001-07-30 Andreas Jaeger <aj@suse.de> 2479 2480 * decl2.c: Remove unused var global_temp_name_counter. 2481 24822001-07-28 Richard Henderson <rth@redhat.com> 2483 2484 * method.c (pending_inlines): Remove. 2485 24862001-07-27 Nathan Sidwell <nathan@codesourcery.com> 2487 2488 * class.c (mark_primary_virtual_base): Don't adjust base 2489 offsets here. 2490 (dfs_unshared_virtual_bases): Adjust them here. 2491 (mark_primary_bases): Explain why we adjust at the end. 2492 24932001-07-27 Nathan Sidwell <nathan@codesourcery.com> 2494 2495 * class.c (finish_struct_1): When copying the primary base's 2496 VFIELD, make sure we find it is at offset zero. 2497 24982001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2499 2500 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and 2501 tsubst_expr for default template arguments. 2502 25032001-07-26 Nathan Sidwell <nathan@codesourcery.com> 2504 2505 PR c++/3621 2506 * spew.c (yylex): Only copy the token's lineno, if it is 2507 non-zero. 2508 25092001-07-26 Nathan Sidwell <nathan@codesourcery.com> 2510 2511 PR c++/3624 2512 * call.c (resolve_args): Simplify, call 2513 convert_from_reference. 2514 (build_new_op): Resolve and convert from reference ARG1 2515 earlier. Adjust ARG2 & ARG3 resolve and conversion. 2516 25172001-07-26 Nathan Sidwell <nathan@codesourcery.com> 2518 2519 * decl.c (last_function_parm_tags): Remove. 2520 (current_function_parm_tags): Remove. 2521 (init_decl_processing): Adjust. 2522 (start_function): Adjust. 2523 (store_parm_decls): Adjust. 2524 2525 PR c++/3152 2526 * decl.c (grokdeclarator): Detect when a function typedef is 2527 declaring a function, and create last_function_parms correctly. 2528 25292001-07-25 Jason Merrill <jason_merrill@redhat.com> 2530 2531 * call.c (joust): Only prefer a non-builtin candidate to a builtin 2532 one if they have the same signature. 2533 2534 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on 2535 it rather than toplevel_bindings_p. Give it a mangled name if static. 2536 (convert_to_reference): Adjust. 2537 * decl2.c (get_temp_name): Lose. 2538 * mangle.c (mangle_ref_init_variable): New fn. 2539 (mangle_guard_variable): Strip the ref-init header. 2540 * cp-tree.h: Adjust. 2541 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the 2542 initializer. 2543 (grok_reference_init): Always use DECL_INITIAL. 2544 25452001-07-25 Nathan Sidwell <nathan@codesourcery.com> 2546 2547 PR c++/3416 2548 * call.c (build_conditional_expr): Recheck args after 2549 conversions. 2550 * cp-tree.h (build_conditional_expr): Move to correct file. 2551 * typeck.c (decay_conversion): Diagnose any unknown types 2552 reaching here. 2553 (build_binary_op): Don't do initial decay or default 2554 conversions on overloaded functions. 2555 (build_static_cast): Don't do a decay conversion here. 2556 25572001-07-25 Nathan Sidwell <nathan@codesourcery.com> 2558 2559 PR c++/3543 2560 * typeck.c (condition_conversion): Resolve an OFFSET_REF. 2561 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here. 2562 25632001-07-25 Nathan Sidwell <nathan@codesourcery.com> 2564 2565 * class.c (build_vtbl_or_vbase_field): Remove, move into ... 2566 (create_vtbl_ptr): ... here. 2567 25682001-07-25 Nathan Sidwell <nathan@codesourcery.com> 2569 2570 * class.c (build_vbase_offset_vbtl_entries): Look for 2571 non-primary base of which we are a sub vtable. 2572 25732001-07-24 Phil Edwards <pme@sources.redhat.com> 2574 2575 * semantics.c (finish_this_expr): Remove unused code. 2576 25772001-07-24 Nathan Sidwell <nathan@codesourcery.com> 2578 2579 Simplify rtti, now we've only one ABI. 2580 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID, 2581 CPTI_TINFO_VAR_ID. 2582 (tinfo_decl_id, tinfo_var_id): Remove. 2583 (get_typeid_1): Remove. 2584 * rtti.c 2585 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id. 2586 (typeid_ok_p): New function. 2587 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl. 2588 (get_tinfo_decl): Remove old abi documentation. 2589 (tinfo_from_decl): Remove. 2590 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1. 2591 (get_typeid_1): Remove. 2592 (get_base_offset): Remove. 2593 (synthesize_tinfo_var): Absorb get_base_offset. 2594 (create_real_tinfo_var): Don't use tinfo_decl_id. 2595 25962001-07-23 Graham Stott <grahams@redhat.com> 2597 2598 * cp/class.c (type_requires_array_cookie): Fix use of uninitialised 2599 variable has_two_argument_delete_p. 2600 26012001-07-21 Nathan Sidwell <nathan@codesourcery.com> 2602 2603 Remove flag_vtable_thunk. It is always on for the 3.0 ABI. 2604 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. 2605 (CPTI_INDEX_IDENTIFIER): Remove. 2606 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. 2607 (delta2_identifier): Remove. 2608 (index_identifier): Remove. 2609 (pfn_or_delta2_identifier): Remove. 2610 (flag_vtable_thunks): Remove. 2611 (VTABLE_DELTA2_NAME): Remove. 2612 (VTABLE_INDEX_NAME): Remove. 2613 (FNADDR_FROM_VTABLE_ENTRY): Adjust. 2614 (vfunc_ptr_type_node): Adjust. 2615 (VTABLE_NAME_PREFIX): Adjust. 2616 (build_vfn_ref): Lose first parameter. 2617 (fixup_all_virtual_upcast_offsets): Remove. 2618 * decl.c (initialize_predefined_identifiers): Remove 2619 delta2_identifier, index_identifier, pfn_or_delta2_identifier. 2620 (init_decl_processing): Remove no-vtable-thunk code. 2621 * decl2.c (flag_vtable_thunks): Remove. 2622 (mark_vtable_entries): Remove no-vtable-thunk code. 2623 * error.c (dump_decl): Remove no-vtable-thunk code. 2624 (dump_expr): Adjust ptr to member function code. 2625 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk 2626 code. 2627 * rtti.c (build_headof): Remove no-vtable-thunk code. 2628 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. 2629 * search.c (get_base_distance): Remove expand_upcast_fixups case. 2630 (virtual_context) Remove. 2631 (expand_upcast_fixups): Remove. 2632 (fixup_virtual_upcast_offsets): Remove. 2633 (fixup_all_virtual_upcast_offsets): Remove. 2634 * typeck.c (get_member_function_from_ptrfunc): Remove 2635 no-vtable-thunk code. 2636 * call.c (build_over_call): Adjust call to build_vfn_ref. 2637 * class.c (build_vfn_ref): Lose first parameter. Remove 2638 no-vtable-thunk code. 2639 (build_rtti_vtbl_entries): Remove no-vtable-thunk code. 2640 (build_vtable_entry): Remove no-vtable-thunk code. 2641 26422001-07-20 Nathan Sidwell <nathan@codesourcery.com> 2643 2644 Remove old-abi remnants. Remove comments about old abi 2645 behaviour. Remove references to 'new-abi' in comments. 2646 * cp-tree.h: Adjust comments. 2647 (vbase_offsets_in_vtable_p): Delete. 2648 (vcall_offsets_in_vtable_p): Delete. 2649 (vptrs_present_everywhere_p): Delete. 2650 (all_overridden_vfuns_in_vtables_p): Delete. 2651 (merge_primary_and_secondary_vtables_p): Delete. 2652 (TYPE_CONTAINS_VPTR_P): Adjust. 2653 (VTT_NAME_PREFIX): Remove. 2654 (CTOR_VTBL_NAME_PREFIX): Remove. 2655 (init_vbase_pointers): Remove. 2656 * class.c: Adjust coments. 2657 (build_vbase_pointer_fields): Delete. 2658 (build_vbase_pointer): Remove old-abi code. 2659 (build_secondary_vtable): Likewise. 2660 (modify_all_vtables): Likewise. 2661 (create_vtable_ptr): Likewise. 2662 (layout_class_type): Likewise. 2663 (finish_struct_1): Likewise. 2664 (finish_vtbls): Likewise. 2665 (dfs_finish_vtbls): Delete. 2666 (build_vbase_offset_vtbl_entries): Remove old-abi code. 2667 * cvt.c: Adjust comments. 2668 * decl.c: Adjust comments. 2669 * decl2.c: Adjust comments. 2670 * init.c: Adjust comments. 2671 (construct_virtual_bases): Remove old-abi code. 2672 * lang-specs.h: Remove -fno-new-abi. 2673 * mangle.c: Adjust comments. 2674 * rtti.c: Adjust comments. 2675 (get_base_offset): Remove old-abi-code. 2676 * search.c: Adjust comments. 2677 (dfs_init_vbase_pointers): Remove. 2678 (dfs_vtable_path_unmark): Remove. 2679 (init_vbase_pointers): Remove. 2680 * semantics.c: Adjust comments. 2681 (emit_associated_thunks): Remove old-abi code. 2682 * typeck.c: Adjust comments. 2683 26842001-07-20 Daniel Berlin <dan@cgsoftware.com> 2685 2686 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not 2687 params.h. 2688 26892001-07-19 Mark Mitchell <mark@codesourcery.com> 2690 2691 * class.c (finish_struct_anon): Forbid nested classes. 2692 26932001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 2694 2695 * decl2.c: Don't include dwarfout.h and dwarf2out.h. 2696 * optimize.c: Include debug.h. 2697 (maybe_clone_body): Use debug hook. 2698 * semantics.c: Include debug.h. 2699 (expand_body): Use debug hook. 2700 27012001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 2702 2703 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. 2704 27052001-07-18 Mark Mitchell <mark@codesourcery.com> 2706 2707 * class.c (type_requires_array_cookie): New function. 2708 (check_methods): Don't try to figure out whether the type needs a 2709 cookie here. 2710 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here. 2711 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove. 2712 (TYPE_VEC_NEW_USES_COOKIE): Reimplement. 2713 * pt.c (instantiate_class_template): Don't set 2714 TYPE_VEC_DELETE_TAKES_SIZE. 2715 * NEWS: Document ABI changes from GCC 3.0. 2716 27172001-07-18 Xavier Delacour <xavier@fmaudio.net>, 2718 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 2719 2720 * NEWS (Changes in GCC 3.0): Fix typo. 2721 27222001-07-13 Joseph S. Myers <jsm28@cam.ac.uk> 2723 2724 * decl2.c (cplus_decl_attributes): Take a pointer to the node to 2725 which attributes are to be attached, and a flags argument. Update 2726 call to decl_attributes. 2727 (grokfield): Update call to decl_attributes. 2728 * class.c (finish_struct): Update call to cplus_decl_attributes. 2729 * cp-tree.h (cplus_decl_attributes): Update prototype. 2730 * decl.c (start_decl, grokdeclarator, start_function): Update 2731 calls to decl_attributes and cplus_decl_attributes. 2732 * friend.c (do_friend): Update call to cplus_decl_attributes. 2733 * parse.y (parse_bitfield): Update call to cplus_decl_attributes. 2734 27352001-07-12 Mark Mitchell <mark@codesourcery.com> 2736 2737 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER 2738 for `register' variables with an asm-specification. 2739 27402001-07-11 Mark Mitchell <mark@codesourcery.com> 2741 2742 * semantics.c (finish_asm_stmt): Mark the output operands 2743 to an asm addressable, if necessary. 2744 27452001-07-11 Ben Elliston <bje@redhat.com> 2746 2747 * Revert this change -- there is a subtle bug. 2748 2749 PR c++/80 2750 * decl.c (finish_enum): New "attributes" argument; pass it to 2751 cplus_decl_attributes. Use a narrower type if the enum is packed. 2752 * cp-tree.h (finish_enum): Adjust prototype. 2753 * parse.y (enum_head): New non-terminal. 2754 (structsp): Use it. Enums now may be preceded or followed by 2755 optional attributes -- pass their chained tree to finish_enum(). 2756 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument. 2757 27582001-07-10 Mark Mitchell <mark@codesourcery.com> 2759 2760 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope 2761 variables. 2762 27632001-07-10 Jason Merrill <jason_merrill@redhat.com> 2764 2765 * semantics.c (cp_expand_stmt): Fix for null 2766 current_function_return_value. 2767 27682001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> 2769 2770 * call.c (build_op_delete_call): Initialize fn. 2771 (convert_like_real): Delete conditional. 2772 (joust): Initialize *w and *l. 2773 * class.c: Add prototype for binfo_ctor_vtable. 2774 (get_primary_binfo): Initialize result. 2775 * init.c (build_java_class_ref): Initialize name. 2776 27772001-07-09 Erik Rozendaal <dlr@acm.org> 2778 2779 * typeck.c (unary_complex_lvalue): Do not duplicate the 2780 argument to modify, pre-, or post-increment when used as an 2781 lvalue and when the argument has side-effects. 2782 27832001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 2784 2785 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 2786 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call 2787 cplus_decl_attributes even if attrs is NULL. 2788 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 2789 27902001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 2791 2792 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update 2793 calls to decl_attributes. 2794 27952001-07-06 Ira Ruben <ira@apple.com> 2796 2797 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should 2798 be DECL_TEMPLATE_RESULT. 2799 28002001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2801 2802 * cp-tree.h (copy_template_template_parm): Rename to ... 2803 (bind_template_template_parm): ... here. 2804 * tree.c (copy_template_template_parm): Rename to ... 2805 (bind_template_template_parm): ... here. Remove the case when 2806 NEWARGS is NULL_TREE. 2807 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and 2808 BOUND_TEMPLATE_TEMPLATE_PARM. 2809 * pt.c (lookup_template_class): Adjust. 2810 28112001-07-05 Jason Merrill <jason_merrill@redhat.com> 2812 2813 * cvt.c (convert_lvalue): New fn. 2814 * cp-tree.h: Declare it. 2815 * method.c (do_build_assign_ref): Use it. 2816 (do_build_copy_constructor): Convert parm to base types 2817 before calling base constructors. 2818 2819 * typeck.c (check_return_expr): Check DECL_ALIGN instead of 2820 DECL_USER_ALIGN. Check flag_elide_constructors instead of 2821 optimize. 2822 * semantics.c (cp_expand_stmt): Don't destroy the named return value. 2823 28242001-07-02 Nathan Sidwell <nathan@codesourcery.com> 2825 2826 * optimize.c (optimize_inline_calls): New function, broken out 2827 of ... 2828 (optimize_function): ... here. Call it. Don't inline if it is 2829 a thunk. 2830 (dump_function): Print name of dump flag causing this dump. 2831 * semantics.c (expand_body): Move thunk inline check to 2832 optimize_function. 2833 28342001-06-29 Joseph S. Myers <jsm28@cam.ac.uk> 2835 2836 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. 2837 (comptypes): Use target.comp_type_attributes. 2838 28392001-06-29 Nathan Sidwell <nathan@codesourcery.com> 2840 2841 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration. 2842 28432001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2844 2845 * error.c (lang_print_error_function): Add a `diagnostic_context *' 2846 parameter. Tweak. 2847 28482001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk> 2849 2850 * decl2.c (import_export_class): Update. 2851 28522001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 2853 2854 * error.c (init_error): Adjust settings. 2855 28562001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 2857 2858 * error.c (init_error): Adjust settings. 2859 28602001-06-19 Richard Sandiford <rsandifo@redhat.com> 2861 2862 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to 2863 return pointers to data members by reference rather than by value. 2864 28652001-06-18 Jason Merrill <jason_merrill@redhat.com> 2866 2867 Implement the Named Return Value optimization. 2868 * cp-tree.h (struct cp_language_function): Add x_return_value. 2869 (current_function_return_value): Now a macro. 2870 * decl.c: Don't define it. 2871 (define_label, finish_case_label): Don't clear it. 2872 (init_decl_processing): Don't register it with GC. 2873 * semantics.c (genrtl_finish_function): Don't check it for 2874 no_return_label. Copy the RTL from the return value to 2875 current_function_return_value and walk, calling... 2876 (nullify_returns_r): ...this new fn. 2877 * typeck.c (check_return_expr): Set current_function_return_value. 2878 28792001-06-15 Jason Merrill <jason_merrill@redhat.com> 2880 2881 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're 2882 sharing a ctor vtable with. Merge code for cases 1 and 2. 2883 (binfo_ctor_vtable): New fn. 2884 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it. 2885 28862001-06-14 Jason Merrill <jason_merrill@redhat.com> 2887 2888 * class.c (dfs_find_final_overrider): Fix logic. 2889 2890 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use 2891 virtual thunk instead of non-virtual. 2892 (get_matching_virtual): Uncomment. 2893 2894 * pt.c (unify): Don't recurse between the POINTER_TYPE and the 2895 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on 2896 PARM, not ARG. 2897 28982001-06-14 Nathan Sidwell <nathan@codesourcery.com> 2899 2900 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure 2901 we've not emerged from the hierarchy of RTTI_BINFO on reaching 2902 a non-virtual base. 2903 29042001-06-13 Mark Mitchell <mark@codesourcery.com> 2905 2906 * NEWS: Update release number. 2907 29082001-06-12 Nathan Sidwell <nathan@codesourcery.com> 2909 2910 PR c++/3130, c++/3131, c++/3132 2911 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define. 2912 * class.c (force_canonical_binfo_r): Move 2913 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move 2914 virtual bases unless they're primary and what they're primary 2915 too has been moved. 2916 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope 2917 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and 2918 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most 2919 derived binfo. 2920 (mark_primary_bases): Use BINFO_UNSHARED_MARKED. 2921 (layout_nonempty_base_or_field): Add most derived type 2922 parameter. Adjust. 2923 (layout_empty_base): Likewise. 2924 (build_base_field): Likewise. 2925 (build_base_fields): Likewise. 2926 (propagate_binfo_offsets): Add most derived type 2927 parameter. Skip non canonical virtual bases too. 2928 (dfs_set_offset_for_unshared_vbases): Don't skip primary 2929 bases. Do skip canonical bases. 2930 (layout_virtual_bases): Adjust. 2931 (layout_class_type): Adjust. 2932 (dfs_get_primary_binfo): Build list of virtual primary base 2933 candidates. 2934 (get_primary_binfo): Check that the shared virtual primary 2935 base candidate was found first. 2936 (accumulate_vtbl_inits): Don't do anything for non-vptr 2937 containing binfos. For case 1 primary virtual bases, keep 2938 checking that we've not emerged from the hierarchy of RTTI_BINFO. 2939 29402001-06-12 Nathan Sidwell <nathan@codesourcery.com> 2941 2942 PR c++/3089 2943 * class.c (dfs_accumulate_vtbl_inits): Always walk down the 2944 hierarchy looking for primary bases for a ctor 2945 vtable. Recursively call oneself, if we meet our primary via 2946 this route and haven't met it yet via inheritance graph order. 2947 29482001-06-11 Mark Mitchell <mark@codesourcery.com> 2949 2950 * lang-options.h: Emit documentation for -fno-honor-std, not 2951 -fhonor-std. 2952 29532001-06-10 Alexandre Oliva <aoliva@redhat.com> 2954 2955 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: 2956 Don't clobber delta. 2957 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn. 2958 29592001-06-10 Mark Mitchell <mark@codesourcery.com> 2960 Gabriel Dos Reis <gdr@codesourcery.com> 2961 2962 * Make-lang.in (cp/call.o): Depend on diagnostic.h 2963 (cp/typeck.o): Depend on diagnostic.h 2964 (cp/typeck2.o): Depend on diagnostic.h 2965 (cp/repo.o): Depend on dignostic.h 2966 * typeck.c: #include diagnostic.h 2967 (convert_for_initialization): Remove extern declaration for 2968 warningcount and errorcount. 2969 2970 * call.c: #include diagnostic.h 2971 (convert_like_real): Remove extern declaration for warnincount and 2972 errorcount. 2973 2974 * repo.c: #include diagnostic.h 2975 * typeck2.c: #include diagnostic.h 2976 29772001-06-08 Nathan Sidwell <nathan@codesourcery.com> 2978 2979 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko 2980 in previous change. 2981 29822001-06-08 Nathan Sidwell <nathan@codesourcery.com> 2983 2984 PR c++/2929 2985 * friend.c (do_friend): Use push_decl_namespace for classes at 2986 namespace scope. 2987 29882001-06-08 Nathan Sidwell <nathan@codesourcery.com> 2989 Jason Merrill <jason_merrill@redhat.com> 2990 2991 PR c++/3061 2992 * class.c (build_secondary_vtable): Use assert, rather than an error 2993 message. 2994 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL. 2995 (dfs_accumulate_vtbl_inits): A lost primary virtual base may 2996 be between ORIG_BINFO and RTTI_BINFO, but neither of them. 2997 Don't set BINFO_VTABLE for a primary virtual base. 2998 29992001-06-07 Mark Mitchell <mark@codesourcery.com> 3000 3001 * decl.c (duplicate_decls): Update source position information 3002 when a template function is defined. 3003 30042001-06-07 Phil Edwards <pme@sources.redhat.com> 3005 3006 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h. 3007 30082001-06-07 Nathan Sidwell <nathan@codesourcery.com> 3009 3010 PR c++/2914 3011 * decl.c (pushtag): Don't push into a complete type's scope. 3012 30132001-06-06 Jason Merrill <jason_merrill@redhat.com> 3014 3015 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose. 3016 (struct lang_decl_flags): Lose generate_with_vtable_p. 3017 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose. 3018 * class.c (copy_virtuals): Adjust. 3019 * decl2.c (mark_vtable_entries): Adjust. 3020 * method.c (make_thunk, build_vtable_entry): Adjust. 3021 * class.c (update_vtable_entry_for_fn): Only look as far as the 3022 first defining class. 3023 (build_vtbl_initializer): Put nothing in the slot for a function only 3024 defined in a lost primary virtual base. 3025 (add_vcall_offset_vtbl_entries_1): Use the same code for 3026 the lost primary case and the normal case. 3027 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base. 3028 (get_vfield_offset, get_derived_offset): Lose. 3029 (dfs_find_final_overrider): Use look_for_overrides_here. 3030 (get_matching_virtual): New fn. 3031 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P, 3032 not BV_VCALL_INDEX. 3033 * search.c (look_for_overrides_here): Split out from... 3034 (look_for_overrides_r): Here. 3035 3036 * class.c (find_final_overrider): Return error_mark_node on error. 3037 3038 * decl2.c (key_method): #if 0 accidental change. 3039 30402001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> 3041 3042 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P. 3043 (build_over_call): Likewise. 3044 * decl.c (grokparms): Likewise. 3045 * pt.c (tsubst_decl): Likewise. 3046 * typeck.c (convert_arguments): Likewise. 3047 30482001-06-05 Mark Mitchell <mark@codesourcery.com> 3049 3050 * semantics.c (begin_class_definition): Robustify. 3051 3052 * pt.c (instantiate_decl): Tell the repository code about the 3053 clones, not the cloned functions. 3054 * repo.c (repo_template_used): Explicitly instantiate the cloned 3055 function, not the clones. 3056 30572001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3058 3059 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and 3060 ICS_BAD_FLAG on created conversion. 3061 (compare_ics): Break out rank. 3062 30632001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3064 3065 * decl.c (xref_tag): Remove extraneous %s on dependent name 3066 lookup warning. 3067 30682001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3069 3070 * class.c (layout_vtable_decl): Fix off by one error on 3071 build_index_type. 3072 (build_vtt): Likewise. 3073 (build_ctor_vtbl_group): Likewise. 3074 30752001-06-05 Nathan Sidwell <nathan@codesourcery.com> 3076 3077 * class.c (maybe_indent_hierarchy): New function. 3078 (dump_class_hierarchy_r): Add flags. Dump extra binfo 3079 information, if enabled. Use maybe_indent_hierarchy. Adjust 3080 output format. 3081 (dump_class_hierarchy): Adjust prototype. Adjust output format. 3082 (dump_array, dump_vtable, dump_vtt): New functions. 3083 (finish_struct_1): Adjust hierarchy dumping. 3084 (initialize_vtable): Call dump_vtable. 3085 (build_vtt): Call dump_vtt. 3086 (build_ctor_vtbl_group): Call dump_vtable. 3087 * decl2.c (flag_dump_class_layout): Remove. 3088 (cxx_decode_option): Remove dump translation unit 3089 and dump class hierarchy check. Call dump_switch_p. 3090 (finish_file): Adjust dumping. 3091 (dump.c): Only dump base classes if not TDF_SLIM. 3092 Only dump namespace members if not TDF_SLIM. 3093 * optimize.c (dump_function): New function. 3094 (optimize_function): Call dump_function. 3095 * semantics.c (expand_body): Use dump_enabled_p. 3096 30972001-06-01 Nathan Sidwell <nathan@codesourcery.com> 3098 3099 PR g++/2936 3100 Part missed from first commit 3101 * decl2.c (finish_anon_union): Copy context. 3102 31032001-05-30 Nathan Sidwell <nathan@codesourcery.com> 3104 3105 PR g++/2936 3106 * optimize.c (remap_decl): Remap anonymous aggregate members too. 3107 31082001-05-26 Nathan Sidwell <nathan@codesourcery.com> 3109 3110 PR g++/2823 3111 * semantics.c (expand_body): Don't optimize thunks. 3112 31132001-05-25 Sam TH <sam@uchicago.edu> 3114 3115 * cp-tree.h lex.h: Fix header include guards. 3116 31172001-05-25 Mark Mitchell <mark@codesourcery.com> 3118 3119 * decl.c (init_decl_processing): Tweak. 3120 31212001-05-24 Mark Mitchell <mark@codesourcery.com> 3122 3123 * decl.c (duplicate_decls): Tidy. 3124 (init_decl_processing): Always set flag_no_builtin. 3125 31262001-05-24 Nathan Sidwell <nathan@codesourcery.com> 3127 3128 PR c++/2184 3129 * decl2.c (do_local_using_decl): Push the decls, even in a 3130 template. 3131 31322001-05-22 Mark Mitchell <mark@codesourcery.com> 3133 3134 * optimize.c (initialize_inlined_parameters): Don't set 3135 TREE_READONLY for a VAR_DECL taking the place of an inlined 3136 PARM_DECL. 3137 31382001-05-22 Jason Merrill <jason_merrill@redhat.com> 3139 3140 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support. 3141 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface 3142 attribute. 3143 31442001-05-22 Joseph S. Myers <jsm28@cam.ac.uk> 3145 3146 * parse.y: Refer to compound literals as such, not as 3147 constructor-expressions. 3148 31492001-05-21 Mark Mitchell <mark@codesourcery.com> 3150 3151 * call.c (build_op_delete_call): Ignore exception-specifications 3152 when looking for matching delete operators. 3153 * init.c (build_new_1): Compute whether or not the allocation 3154 function used is a placement allocation function or not, and 3155 communicate this information to build_op_delete_call. 3156 31572001-05-21 Jason Merrill <jason_merrill@redhat.com> 3158 3159 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi. 3160 (build_vtbl_ref): Adjust. 3161 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address. 3162 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks. 3163 Re-add vtable-gc. 3164 (unsupported_options): Correspondingly. 3165 3166 * decl2.c (maybe_make_one_only): Check flag_weak, not 3167 supports_one_only(). 3168 3169 * cp-tree.def (START_CATCH_STMT): Lose. 3170 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS. 3171 * tree.c (cp_statement_code_p): Don't case it. 3172 * semantics.c (cp_expand_stmt): Likewise. 3173 * cp-tree.h (START_CATCH_TYPE): Lose. 3174 (HANDLER_TYPE): New. 3175 * except.c (expand_start_catch_block): Don't start any blocks. 3176 Return the type. 3177 (expand_end_catch_block): Don't end any blocks. 3178 * parse.y (handler): Don't pass anything from finish_handler_parms 3179 to finish_handler. 3180 * pt.c (tsubst_expr): Likewise. 3181 * semantics.c (begin_handler): Call note_level_for_catch here. 3182 (finish_handler_parms): Don't return anything. 3183 (genrtl_catch_block, begin_catch_block): Lose. 3184 (genrtl_handler): Call expand_start_catch here. 3185 31862001-05-18 Jason Merrill <jason_merrill@redhat.com> 3187 3188 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here. 3189 (get_vtable_decl, build_vtt): Not here. 3190 31912001-05-20 Nathan Sidwell <nathan@codesourcery.com> 3192 3193 PR c++/2781 3194 * optimize.c (update_cloned_parm): Copy addressability and other 3195 flags. 3196 31972001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3198 3199 * pt.c (determine_specialization): Ignore artificial functions. 3200 32012001-05-20 Neil Booth <neil@daikokuya.demon.co.uk> 3202 3203 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. 3204 (C_RID_CODE): Remove. 3205 * lex.c (cxx_init_options): Call set_identifier_size. Update. 3206 (init_parse): Don't do it here. 3207 32082001-05-18 Diego Novillo <dnovillo@redhat.com> 3209 3210 * decl2.c (finish_objects): Use the original SYMBOL_REF from the 3211 function declaration to avoid stripping the symbol's attributes. 3212 32132001-05-18 Nathan Sidwell <nathan@codesourcery.com> 3214 3215 * decl.c (pushdecl): Adjust error string. 3216 (xref_tag): Adjust friend class injection warning. Remove the 3217 inherited name from the class shadowed scope. 3218 32192001-05-17 Mark Mitchell <mark@codesourcery.com> 3220 3221 * except.c (cp_protect_cleanup_actions): New function. 3222 (init_exception_processing): Don't set protect_cleanup_actions 3223 here. Do set lang_protect_cleanup_actions. 3224 32252001-05-16 Nathan Sidwell <nathan@codesourcery.com> 3226 3227 * spew.c (read_token): Call yyerror on all unexpected tokens. 3228 32292001-05-16 Nathan Sidwell <nathan@codesourcery.com> 3230 3231 * init.c (member_init_ok_or_else): Take a tree rather than 3232 string for name. 3233 (expand_member_init): Adjust. 3234 32352001-05-14 Nick Clifton <nickc@cambridge.redhat.com> 3236 3237 * decl.c (duplicate_decls): Suppress warning about duplicate 3238 decls if the first decl is a friend. 3239 32402001-05-12 Zack Weinberg <zackw@stanford.edu> 3241 3242 * except.c (choose_personality_routine): Export. Add 3243 explanatory comment. Take an enum languages, not a boolean. 3244 (initialize_handler_parm): Adjust to match. 3245 * cp-tree.h: Prototype choose_personality_routine. 3246 * lex.c (handle_pragma_java_exceptions): New function. 3247 (init_cp_pragma): Register #pragma GCC java_exceptions. 3248 32492001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk> 3250 3251 * method.c (build_mangled_C99_name): Remove unused prototype. 3252 32532001-05-12 Alexandre Oliva <aoliva@redhat.com> 3254 3255 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type. 3256 * typeck.c (get_member_function_from_ptrfunc, 3257 build_ptrmemfunc, expand_ptrmemfunc_cst): Take 3258 TARGET_PTRMEMFUNC_VBIT_LOCATION into account. 3259 3260 Reverted Geoff Keating's 2001-05-03's patch. 3261 32622001-05-11 Ira Ruben <ira@apple.com> 3263 3264 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h. 3265 32662001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 3267 3268 * cp-tree.h (finish_label_expr, lookup_label): Delete. 3269 * parse.y: Update for '&&'; don't issue warning here. 3270 * semantics.c (finish_label_expr): Delete. 3271 32722001-05-07 Mark Mitchell <mark@codesourcery.com> 3273 3274 * splay-tree.h (splay_tree_max): New function. 3275 (splay_tree_min): Likewise. 3276 32772001-05-03 Geoffrey Keating <geoffk@redhat.com> 3278 3279 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER. 3280 (pfn_vflag_identifier): Define. 3281 Update comment about layout of pointer functions. 3282 (build_ptrmemfunc1): Update prototype. 3283 (expand_ptrmemfunc_cst): Update prototype. 3284 * decl.c (initialize_predefined_identifiers): Initialize 3285 pfn_vflag_identifier. 3286 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add 3287 an extra field to the type. 3288 * expr.c (cplus_expand_constant): Pass 'flag' between 3289 expand_ptrmemfunc_cst and build_ptrmemfunc1. 3290 * typeck.c (get_member_function_from_ptrfunc): When 3291 FUNCTION_BOUNDARY < 16, look at additional field to determine 3292 if a pointer-to-member is a real pointer or a vtable offset. 3293 (build_ptrmemfunc1): Add new parameter to contain extra field. 3294 (build_ptrmemfunc): Pass the extra field around. 3295 (expand_ptrmemfunc_cst): Add new parameter to return extra field. 3296 (pfn_from_ptrmemfunc): Ignore the extra field. 3297 32982001-05-03 Mark Mitchell <mark@codesourcery.com> 3299 3300 * cp-tree.h (flag_inline_trees): Update documentation. 3301 * decl.c (init_decl_processing): Adjust handling of 3302 flag_inline_functions and flag_inline_trees to support -O3. 3303 (grokfndecl): Set DECL_INLINE on all functions if that's what 3304 the user requested. 3305 (save_function_data): Clear DECL_INLINE in 3306 current_function_cannot_inline is non-NULL. 3307 * decl2.c (flag_inline_trees): Update documentation. 3308 33092001-05-03 Nathan Sidwell <nathan@codesourcery.com> 3310 3311 * dump.c (cp_dump_tree, USING_STMT case): New case. 3312 * tree.c (cp_statement_code_p): Add USING_STMT. 3313 * decl2.c (do_using_directive): Add the using directive statement. 3314 3315 * tree.c (walk_tree): Reformat an if block. 3316 33172001-05-02 Mark Mitchell <mark@codesourcery.com> 3318 3319 * decl.c (compute_array_index_type): Don't try to do anything with 3320 the indices when processing a template. 3321 33222001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3323 3324 * call.c: NULL_PTR -> NULL. 3325 * class.c: Likewise. 3326 * cvt.c: Likewise. 3327 * decl.c: Likewise. 3328 * decl2.c: Likewise. 3329 * except.c: Likewise. 3330 * init.c: Likewise. 3331 * rtti.c: Likewise. 3332 * search.c: Likewise. 3333 * tree.c: Likewise. 3334 * typeck.c: Likewise. 3335 * typeck2.c: Likewise. 3336 33372001-05-02 Mark Mitchell <mark@codesourcery.com> 3338 3339 * decl2.c (do_using_directive): Revert previous patch. 3340 33412001-05-01 Nathan Sidwell <nathan@codesourcery.com> 3342 3343 * cp-tree.def (USING_STMT): New statement node. 3344 * cp-tree.h (USING_STMT_NAMESPACE): New macro. 3345 * decl2.c (do_using_directive): Add USING_STMT to statement 3346 tree. Don't emit errors when processing template decl. 3347 * pt.c (tsubst_expr, USING_STMT case): New case. 3348 * semantics.c (cp_expand_stmt, USING_STMT case): New case. 3349 33502001-05-01 Nathan Sidwell <nathan@codesourcery.com> 3351 3352 * call.c (build_new_op): Convert args from reference here. 3353 (build_conditional_expr): Don't convert here. 3354 33552001-05-01 Nathan Sidwell <nathan@codesourcery.com> 3356 3357 * spew.c (last_token_id): New static variable. 3358 (read_token): Set it here. 3359 (yyerror): Use it here. 3360 33612001-04-30 Richard Henderson <rth@redhat.com> 3362 3363 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. 3364 * decl.c: Likewise. 3365 33662001-04-30 Mark Mitchell <mark@codesourcery.com> 3367 3368 * gxxint.texi: Remove. 3369 * Make-lang.in: Remove all traces of gxxint.texi. 3370 3371Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com> 3372 3373 * decl2.c (start_static_initialization_or_destruction): Correct 3374 logic to handle the -fno-use-cxa-atexit case. 3375 33762001-04-30 Mark Mitchell <mark@codesourcery.com> 3377 3378 * optimize.c (update_cloned_parm): New function. 3379 (maybe_clone_body): Use it. Update the `this' parameter too. 3380 33812001-04-29 Joseph S. Myers <jsm28@cam.ac.uk> 3382 3383 * decl2.c (unsupported_options): Add new-abi. 3384 * lang-options.h: Remove no longer supported options. 3385 33862001-04-27 Nathan Sidwell <nathan@codesourcery.com> 3387 3388 * except.c (can_convert_eh): Don't check template parms, 3389 typename types etc. 3390 33912001-04-27 Nathan Sidwell <nathan@codesourcery.com> 3392 3393 * optimize.c (maybe_clone_body): Copy parameter names and locations. 3394 33952001-04-27 Nathan Sidwell <nathan@codesourcery.com> 3396 3397 * cp-tree.h (adjust_clone_args): Prototype new function. 3398 * class.c (adjust_clone_args): New function. 3399 * decl.c (start_function): Call it for in charge ctors. 3400 34012001-04-26 Mark Mitchell <mark@codesourcery.com> 3402 3403 * method.c (use_thunk): Make sure that thunks really are emitted 3404 when requested. 3405 34062001-04-26 Nathan Sidwell <nathan@codesourcery.com> 3407 3408 * mangle.c (write_chars): New macro. 3409 (hwint_to_ascii): New function 3410 (write_number): Use it. 3411 (write_integer_cst): Deal with really big numbers. 3412 34132001-04-25 Mark Mitchell <mark@codesourcery.com> 3414 3415 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting 3416 the clone. 3417 34182001-04-25 Nathan Sidwell <nathan@codesourcery.com> 3419 3420 * decl.c (grokdeclarator): Set context of namespace scope 3421 TYPE_DECLS. 3422 34232001-04-24 Zack Weinberg <zackw@stanford.edu> 3424 3425 * cp/optimize.c: Include hashtab.h. 3426 (struct inline_data): Add tree_pruner. 3427 (expand_call_inline, expand_calls_inline): Use it when calling 3428 walk_tree. 3429 (optimize_function): Initialize and free tree_pruner. 3430 34312001-04-24 Nathan Sidwell <nathan@codesourcery.com> 3432 3433 Lazy __FUNCTION__ generation. 3434 * cp-tree.def (FUNCTION_NAME): Remove. 3435 * cp-tree.h (function_name_declared_p): Remove. 3436 (cp_fname_init): Prototype. 3437 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids, 3438 don't call declare_function_name. Call start_fname_decls. 3439 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't 3440 clobber the line number. 3441 (cp_fname_init): New function. 3442 (start_function): Call start_fname_decls. 3443 (finish_function): Call finish_fname_decls. 3444 * lex.c (reswords): Add slots for __FUNCTION__ et al. 3445 (rid_to_yy): Add mappings for __FUNCTION__ et al. 3446 * optimize.c (maybe_clone_body): Remove function_name_declared_p. 3447 * parse.y (VAR_FUNC_NAME): New token. 3448 (primary): Add VAR_FUNC_NAME. 3449 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's 3450 generation. 3451 (tsubst, FUNCTION_NAME case): Remove. 3452 (tsubst_copy, FUNCTION_NAME case): Remove. 3453 (tsubst_expr, DECL_STMT case): Be careful with a 3454 DECL_PRETTY_FUNCTION_P. 3455 (instantiate_decl): Remove function_name_declared_p. 3456 * semantics.c (begin_compound_statement): Don't call 3457 declare_function_name here. 3458 (setup_vtbl_ptr). Don't save & restore function_name_declared_p. 3459 (finish_translation_unit): Call finish_fname_decls. 3460 (expand_body): Remove function_name_declared_p. 3461 * typeck2.c (digest_init): Allow any ERROR_MARK. 3462 34632001-04-24 Nathan Sidwell <nathan@codesourcery.com> 3464 3465 * pt.c (tsubst_decl): Use VOID_TYPE_P. 3466 * semantics.c: Fix some typos. 3467 34682001-04-23 Phil Edwards <pme@sources.redhat.com> 3469 3470 * cp/decl2.c (flag_honor_std): Always initialize to 1. 3471 34722001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3473 3474 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf. 3475 34762001-04-23 Jason Merrill <jason_merrill@redhat.com> 3477 3478 * except.c (build_throw): Wrap the initialization of the exception 3479 object in a MUST_NOT_THROW_EXPR. 3480 (do_free_exception): #if 0. 3481 34822001-04-20 Mark Mitchell <mark@codesourcery.com> 3483 3484 * cp-tree.h (finish_enum): Change prototype. 3485 * decl.c (finish_enum): Reorganize. 3486 * parse.y (structsp): Adjust calls to finish_enum. 3487 34882001-04-20 Nathan Sidwell <nathan@codesourcery.com> 3489 3490 * tree.c (cp_tree_equal): Adjust final switch formatting. Add 3491 't' case. 3492 34932001-04-20 Nathan Sidwell <nathan@codesourcery.com> 3494 3495 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED. 3496 (layout_empty_base): Return at end flag. 3497 (build_base_field): Likewise. 3498 (build_base_fields): Likewise. 3499 (layout_virtual_bases): Don't add 1 to eoc value. 3500 (end_of_class): Use full size for empty bases. 3501 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended 3502 empty bases. Don't add 1 to eoc value. Only add trailing padding 3503 if we're an empty class with no empty bases. 3504 (dump_class_hierarchy): Dump size and alignment. 3505 35062001-04-20 Jakub Jelinek <jakub@redhat.com> 3507 3508 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and 3509 ICS_BAD_FLAG. 3510 35112001-04-20 Jakub Jelinek <jakub@redhat.com> 3512 3513 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL 3514 is found, look first if name does not match the structure name. 3515 35162001-04-19 Mark Mitchell <mark@codesourcery.com> 3517 3518 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is 3519 set. 3520 (SET_DECL_LANGUAGE): New macro. 3521 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE. 3522 (pushdecl): Likewise. 3523 (build_library_fn_1): Likewise. 3524 (build_cp_library_fn): Likewise. 3525 (grokfndecl): Likewise. 3526 (grokvardecl): Mark `extern "C"' variables as having C linkage. 3527 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE. 3528 * lex.c (retrofit_lang_decl): Likewise. 3529 * mangle.c (mangle_decl_string): Don't mangle the names of 3530 variables declared with C language linkage. 3531 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE. 3532 35332001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca> 3534 3535 * semantics.c (simplify_aggr_init_exprs_r): Don't restore 3536 flag_access_control from uninitialized storage. 3537 35382001-04-15 Mark Mitchell <mark@codesourcery.com> 3539 3540 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation. 3541 * mangle.c (write_pointer_to_member_type): Fix mangling of 3542 pointers to cv-qualified member function types. 3543 3544 * init.c (build_delete): Create a SAVE_EXPR for the address if 3545 we're going to use it more than once. 3546 35472001-04-13 Mark Mitchell <mark@codesourcery.com> 3548 3549 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove. 3550 (expand_ptremfunc_cst): Change prototype. 3551 (delta2_from_ptrmemfunc): Remove. 3552 * expr.c (cplus_expand_constant): Adjust call to 3553 expand_ptrmemfunc_cst. 3554 * typeck.c (build_ptrmemfunc1): Simplify. 3555 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still 3556 results in a constant. 3557 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters. 3558 (delta2_from_ptrmemfunc): Remove. 3559 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst. 3560 35612001-04-12 Jason Merrill <jason_merrill@redhat.com> 3562 3563 * cp-tree.h (decl_namespace_list): New macro. 3564 (struct saved_scope): Add decl_ns_list. 3565 * decl.c (mark_saved_scope): Mark it. 3566 * decl2.c: Lose static decl_namespace_list. 3567 (init_decl2): Don't save it. 3568 35692001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3570 3571 * cp-tree.h (warn_return_type, yylex): Delete redundant 3572 declarations. 3573 3574 * decl.c (current_class_depth, global_namespace): Likewise. 3575 3576 * decl2.c (current_class_depth, flag_gnu_xref): Likewise 3577 3578 * repo.c (flag_use_repository): Likewise. 3579 35802001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3581 3582 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block, 3583 set_block, pushdecl, getdecls, gettags, init_decl_processing, 3584 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p, 3585 lvalue_or_else, print_lang_statistics, comp_target_types, 3586 unsigned_type, signed_type, signed_or_unsigned_type, 3587 build_function_call, mark_addressable, incomplete_type_error): 3588 Delete redundant declarations. 3589 35902001-04-11 Jason Merrill <jason_merrill@redhat.com> 3591 3592 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro. 3593 (TYPE_ANONYMOUS_P): New macro. 3594 (TAGGED_TYPE_P): New macro. 3595 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P. 3596 (grokfndecl, grokvardecl, grokdeclarator): Likewise. 3597 * tree.c (no_linkage_helper): Likewise. 3598 * semantics.c (begin_class_definition): Likewise. 3599 * pt.c (convert_template_argument): Likewise. 3600 * lex.c (check_for_missing_semicolon): Likewise. 3601 36022001-04-12 Nathan Sidwell <nathan@codesourcery.com> 3603 3604 * class.c (dfs_unshared_virtual_bases): New function. 3605 (mark_primary_bases): Call it. 3606 (check_bases): Ignore virtual bases when determining 3607 nearly-emptiness. 3608 36092001-04-12 Nathan Sidwell <nathan@codesourcery.com> 3610 3611 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION. 3612 36132001-04-11 Mark Mitchell <mark@codesourcery.com> 3614 3615 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the 3616 cloned function to the clone. 3617 36182001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3619 3620 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H). 3621 3622 * semantics.c: Include expr.h. 3623 36242001-04-11 Nathan Sidwell <nathan@codesourcery.com> 3625 3626 * method.c (implicitly_declare_fn): Commonize code for copy ctor 3627 and assignment op. Set TREE_USED for parameter. 3628 36292001-04-10 Mark Mitchell <mark@codesourcery.com> 3630 3631 * class.c (find_final_overrider_data): Add `candidates'. 3632 (dfs_find_final_overrider): Don't issue error messages 3633 prematurely. 3634 (find_final_overrider): Issue error messages here. 3635 (build_base_field): Don't warn about amgibuous direct bases here. 3636 (warn_about_ambiguous_direct_bases): New function. 3637 (layout_class_type): Use it. 3638 36392001-04-10 Richard Henderson <rth@redhat.com> 3640 3641 * typeck.c (build_array_ref): Push the array reference inside 3642 COMPOUND_EXPR and COND_EXPR. 3643 36442001-04-05 Mark Mitchell <mark@codesourcery.com> 3645 3646 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P. 3647 * decl.c (duplicate_decls): Adjust accordingly. 3648 (maybe_commonize_var): Likewise. 3649 (grokfndecl): Likewise. 3650 (start_function): Likewise. 3651 (start_method): Likewise. 3652 * decl2.c (key_method): Likewise. 3653 (import_export_decl): Likewise. 3654 * method.c (implicitly_declare_fn): Likewise. 3655 * optimize.c (maybe_clone_body): Likewise. 3656 36572001-04-05 Benjamin Kosnik <bkoz@redhat.com> 3658 3659 * lang-specs.h: Add __DEPRECATED. 3660 3661Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com> 3662 3663 * search.c (get_dynamic_cast_base_type): When building a new 3664 constant, set its type to ssizetype. 3665 36662001-04-04 Jakub Jelinek <jakub@redhat.com> 3667 3668 * optimize.c (expand_call_inline): Only add newly inlined statements 3669 into inlined_stmts. 3670 36712001-04-03 Mark Mitchell <mark@codesourcery.com> 3672 3673 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove. 3674 (OPERATOR_FORMAT): Likewise. 3675 (OPERATOR_TYPENAME_FORMAT): Likewise. 3676 * operators.def: Remove old name-mangling information. 3677 * decl.c (grok_op_properties): Adjust accordingly. 3678 * lex.c (init_operators): Likewise. 3679 * rtti.c (get_tinfo_decl): Issue error messages about types that 3680 have variable size. 3681 36822001-04-03 Mark Mitchell <mark@codesourcery.com> 3683 3684 * decl2.c (import_export_decl): Don't call import_export_class 3685 when processing an inline member function. 3686 * semantics.c (expand_body): Call import_export_decl before 3687 emitting inline functions. 3688 36892001-03-28 Richard Henderson <rth@redhat.com> 3690 3691 IA-64 ABI Exception Handling: 3692 * cp-tree.def (EH_SPEC_BLOCK): New. 3693 (MUST_NOT_THROW_EXPR): New. 3694 * cp-tree.h: Update changed function declarations. 3695 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove. 3696 (CPTI_CALL_UNEXPECTED): New. 3697 (struct cp_language_function): Rename x_eh_spec_try_block 3698 to x_eh_spec_block. 3699 (EH_SPEC_STMTS, EH_SPEC_RAISES): New. 3700 * decl.c (current_binding_level): If no current function 3701 bindings, revert to scope_chain. 3702 (initialize_predefined_identifiers): Remove __cp_push_exception. 3703 (store_parm_decls): Use begin_eh_spec_block. 3704 (finish_function): Use finish_eh_spec_block. 3705 (mark_lang_function): Update for name changes. 3706 * decl2.c (finish_file): No mark_all_runtime_matches. 3707 * dump.c (cp_dump_tree): Handle new tree codes. 3708 * error.c (dump_expr) [BIND_EXPR]: Fix typo. 3709 * except.c (catch_language_init, catch_language): Remove. 3710 (init_exception_processing): Don't set language code. 3711 Initialize call_unexpected_node, protect_cleanup_actions, 3712 eh_personality_libfunc, lang_eh_runtime_type. 3713 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove. 3714 (get_eh_type, get_eh_caught, get_eh_handlers): Remove. 3715 (prepare_eh_type): Split out type canonicalizations ... 3716 (build_eh_type_type): ... from here. 3717 (build_eh_type_type_ref): Remove. 3718 (mark_all_runtime_matches): Remove. 3719 (build_exc_ptr): New. 3720 (do_begin_catch, do_end_catch): New. 3721 (do_pop_exception): Remove. 3722 (build_terminate_handler): Remove. 3723 (choose_personality_routine): Split out language choice from ... 3724 (initialize_handler_parm): ... here. 3725 Use MUST_NOT_THROW_EXPR. 3726 (expand_start_catch_block): Use do_begin_catch. Simplify Java 3727 exception object handling. 3728 (expand_start_eh_spec, expand_end_eh_spec): Remove. 3729 (expand_exception_blocks, alloc_eh_object): Remove. 3730 (begin_eh_spec_block, finish_eh_spec_block): New. 3731 (do_allocate_exception, do_free_exception): New. 3732 (expand_throw): Merge into ... 3733 (build_throw): ... here. Update for abi. 3734 * expr.c (cplus_expand_expr): No expand_internal_throw. 3735 Handle MUST_NOT_THROW_EXPR. 3736 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK. 3737 * semantics.c (*) Update for except.h name changes. 3738 (genrtl_try_block): No protect_with_terminate. 3739 (genrtl_eh_spec_block): New. 3740 (genrtl_handler): Don't emit the goto here. 3741 (cp_expand_stmt): Handle EH_SPEC_BLOCK. 3742 (genrtl_finish_function): Don't expand_exception_blocks. 3743 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK. 3744 37452001-03-28 Richard Henderson <rth@redhat.com> 3746 3747 * decl.c (struct named_label_list): Rename eh_region to 3748 in_try_scope, add in_catch_scope. 3749 (struct binding_level): Rename eh_region to is_try_scope, 3750 add is_catch_scope. 3751 (note_level_for_try): Rename from note_level_for_eh. 3752 (note_level_for_catch): New. 3753 (poplevel): Copy both is_try_scope and is_catch_scope to 3754 the named_label_list struct. 3755 (check_previous_goto_1): Don't check for catch block via 3756 DECL_ARTIFICIAL; use in_try_scope instead. 3757 (check_goto): Likewise. 3758 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare. 3759 * except.c (expand_start_catch_block): Call note_level_for_catch. 3760 * semantics.c (begin_compound_stmt): Update for note_level_for_try. 3761 37622001-03-27 Richard Henderson <rth@redhat.com> 3763 3764 * except.c: Use USING_SJLJ_EXCEPTIONS instead of 3765 exceptions_via_longjmp. 3766 37672001-03-27 Phil Edwards <pme@sources.redhat.com> 3768 3769 * pt.c (check_default_tmpl_args): Make error messages clearer. 3770 37712001-03-26 Phil Edwards <pme@sources.redhat.com> 3772 3773 * error.c: Also undefine 'A' macro used for cp_printers definition. 3774 37752001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3776 3777 * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 3778 37792001-03-26 Mike Yang <yang@research.att.com> 3780 Mark Mitchell <mark@codesourcery.com> 3781 3782 * dump.c (dump_access): New function. 3783 (cp_dump_tree): Use it. Dump basetype information for class 3784 types. 3785 37862001-03-26 Mark Mitchell <mark@codesourcery.com> 3787 3788 * Makefile.in (optimize.o): Depend on params.h. 3789 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE. 3790 (init_decl_processing): Set flag_no_inline when doing 3791 inlining-on-trees. 3792 * optimize.c: Include params.h. 3793 (struct inline_data): Improve documentation of FNS. Add 3794 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P. 3795 (INSNS_PER_STMT): New macro. 3796 (remap_block): Use CLONING_P. 3797 (inlinable_function_p): Don't inline big functions. 3798 (expand_call_inline): Keep track of how much inlining we've done. 3799 (optimize_function): Set FIRST_INLINED_FN. 3800 (maybe_clone_body): Set CLONING_P. 3801 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in 3802 tree nodes. 3803 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling 3804 rest_of_compilation. Clear DECL_RTL for local variables 3805 afterwards. 3806 (clear_decl_rtl): New function. 3807 38082001-03-26 Nathan Sidwell <nathan@codesourcery.com> 3809 3810 Implement DR 209 3811 * cp-tree.h (skip_type_access_control, 3812 reset_type_access_control): Prototype. 3813 * decl.c (grokdeclarator): Access of friends is not checked. 3814 * parse.y (component_decl_list): Reset type access control. 3815 * semantics.c (decl_type_access_control): Clear 3816 current_type_lookups. 3817 (save_type_access_control): Don't save if not deferring. 3818 (skip_type_access_control, reset_type_access_control): New 3819 functions. 3820 (begin_class_definition): Do type access control for basetypes. 3821 Start deferred access control. 3822 (finish_class_definition): Resume immediate access control if 3823 this is a local class. 3824 38252001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3826 3827 * class.c (add_method): Use memcpy/memmove, not bcopy. 3828 3829 * decl.c (duplicate_decls): Likewise. 3830 38312001-03-23 Jakub Jelinek <jakub@redhat.com> 3832 3833 * mangle.c (write_discriminator): Use `_0' for discriminator 1, 3834 not `_'. 3835 38362001-03-23 Jakub Jelinek <jakub@redhat.com> 3837 3838 * decl.c (local_names): Define. 3839 (push_local_name): New. 3840 (grok_reference_init): Return init if initializing static reference 3841 variable with non-constant instead of emitting it. 3842 Move expand_static_init call to cp_finish_decl. 3843 (layout_var_decl): Call push_local_name. 3844 (maybe_commonize_var): Allow inlining functions even if they have 3845 static local variables, use comdat_linkage for them if flag_weak. 3846 (check_initializer): Call obscure_complex_init if 3847 grok_reference_init returned non-zero. 3848 (save_function_data): Clear x_local_names. 3849 (pop_cp_function_context): Free x_local_names. 3850 (mark_inlined_fns): Remove. 3851 (mark_lang_function): Mark x_local_names. 3852 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P. 3853 Mark inlined_fns as tree, remove call to mark_inlined_fns. 3854 * class.c (alter_access): Ensure DECL_ACCESS is never set if 3855 DECL_DISCRIMINATOR_P. 3856 * cp-tree.h (cp_language_function): Add x_local_names. 3857 (lang_decl_flags): Add discriminator into u2. 3858 (lang_decl_inlined_fns): Remove. 3859 (lang_decl): inlined_fns is now a TREE_VEC. 3860 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define. 3861 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a 3862 TREE_VEC, not a custom structure. 3863 (optimize_function): Likewise. 3864 * mangle.c (discriminator_for_local_entity): Discriminate among 3865 VAR_DECL local entities. 3866 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS 3867 is not valid. 3868 38692001-03-22 Bryce McKinlay <bryce@albatross.co.nz> 3870 3871 Add support for Java interface method calls. 3872 * cp-tree.h (struct lang_type): Add java_interface flag. 3873 (TYPE_JAVA_INTERFACE): New macro. 3874 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute 3875 by setting TYPE_JAVA_INTERFACE. 3876 * call.c (java_iface_lookup_fn): New static. 3877 (build_over_call): If calling a method declared in a 3878 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the 3879 expression which resolves the function address. 3880 (build_java_interface_fn_ref): New function. 3881 38822001-03-22 Richard Henderson <rth@redhat.com> 3883 3884 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h. 3885 * except.c: Don't include it. 3886 38872001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 3888 based on an idea from Joe Buck <jbuck@synopsys.com> 3889 3890 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore): 3891 New nonterminals. 3892 (data_def, component_decl): Add reductions to bad_decl. 3893 38942001-03-22 Jakub Jelinek <jakub@redhat.com> 3895 3896 * method.c (do_build_assign_ref): Don't use build_modify_expr for 3897 anonymous aggregates, since they don't have assignment operator 3898 method. 3899 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy 3900 assignment operators for anonymous structure fields. 3901 39022001-03-21 Jason Merrill <jason@redhat.com> 3903 3904 * pt.c (instantiate_decl): Abort if we see a member constant 3905 instantiation that doesn't already have its initializer. 3906 Downgrade explicit instantiation without definition to pedwarn. 3907 3908 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove. 3909 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P. 3910 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P. 3911 3912 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove. 3913 (pending_vtables): Remove. 3914 * decl2.c (pending_vtables): Remove. 3915 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not 3916 CLASSTYPE_VTABLE_NEEDS_WRITING. 3917 (import_export_class): Likewise. 3918 (init_decl2): Don't mark pending_vtables. 3919 * lex.c (handle_pragma_vtable): Just sorry. 3920 * pt.c (instantiate_class_template): Don't mess with 3921 CLASSTYPE_VTABLE_NEEDS_WRITING. 3922 (mark_class_instantiated): Likewise. 3923 * ptree.c (print_lang_type): Don't print it. 3924 * semantics.c (begin_class_definition): Don't set it. 3925 3926 * pt.c (template_tail): Replace with last_pending_template. 3927 (maybe_templates, maybe_template_tail): Remove. 3928 (add_pending_template): Adjust. 3929 (instantiate_pending_templates): Adjust. 3930 3931 * cp-tree.h (struct saved_scope): Remove lang_stack field. 3932 (current_lang_stack): Remove. 3933 * decl.c (maybe_push_to_top_level): Don't initialize it. 3934 (duplicate_decls): Use current_lang_depth. 3935 (xref_basetypes): Likewise. 3936 * class.c (current_lang_depth): New fn. 3937 (push_lang_context): Use more varray functionality. 3938 (pop_lang_context): Likewise. 3939 3940 * error.c (GLOBAL_THING): Always use '__'. 3941 39422001-03-21 Mark Mitchell <mark@codesourcery.com> 3943 3944 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME. 3945 3946 * mangle.c (mangle_decl_string): Mangle the names of overloaded 3947 operators, even when they have `extern "C"' linkage. 3948 39492001-03-19 Mark Mitchell <mark@codesourcery.com> 3950 3951 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, 3952 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 3953 where it's not necessary. 3954 (add_method): Remove optimization involving comparison of 3955 DECL_ASSEMBLER_NAME. 3956 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, 3957 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 3958 where it's not necessary. 3959 (check_methods): Likewise. 3960 (build_clone): Likewise. 3961 (built_vtt): Likewise. 3962 * cp-tree.h (DECL_NEEDED_P): Likewise. 3963 * decl.c (pushtag): Likewise. 3964 (duplicate_decls): Likewise. 3965 (pushdecl): Likewise. 3966 (builtin_function): Likewise. 3967 (build_library_fn_1): Set DECL_LANGUAGE for library functions. 3968 (build_cp_library_fn): Likewise. 3969 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, 3970 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 3971 where it's not necessary. 3972 (make_rtl_for_nonlocal_decl): Likewise. 3973 (cp_finish_decl): Likewise. 3974 (grokfndecl): Likewise. 3975 (grokvardecl): Likewise. 3976 (grokdeclarator): Likewise. 3977 (start_function): Likewise. 3978 (cp_missing_return_ok_p): Likewise. 3979 * decl2.c (grokclassfn): Likewise. 3980 (check_classfn): Likewise. 3981 (finish_static_data_member_decl): Likewise. 3982 (grokfield): Likewise. 3983 * error.c (GLOBAL_IORD_P): Remove. 3984 (dump_global_iord): Improve output. 3985 (dump_decl): Avoid using DECL_ASSEMBLER_NAME. 3986 * except.c (nothrow_libfn_p): Summarily reject any function not in 3987 namespace-scope. 3988 * init.c (build_java_class_ref): Don't explicitly set 3989 DECL_ASSEMBLER_NAME after calling mangle_decl. 3990 * mangle.c (mangle_decl_string): Handle extern "C" functions. 3991 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. 3992 * method.c (set_mangled_name_for_decl): Don't explicitly set 3993 DECL_ASSEMBLER_NAME after calling mangle_decl. 3994 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and 3995 IDENTIFIER_GLOBAL_VALUE for the thunk. 3996 * pt.c (set_mangled_name_for_template_decl): Remove. 3997 (check_explicit_specialization): Don't use it. 3998 (looup_template_class): Don't set DECL_ASSEMBLER_NAME. 3999 (tsubst_friend_function): Likewise. 4000 (tsubst_decl): Likewise. 4001 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. 4002 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, 4003 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 4004 where it's not necessary. 4005 (tinfo_base_init): Likewise. 4006 (create_real_tinfo_var): Likewise. 4007 * search.c (looup_field_1): Likewise. 4008 * semantics.c (finish_named_return_value): Likewise. 4009 * tree.c (init_tree): Set lang_set_decl_assembler_name. 4010 40112001-03-15 Gabriel Dos Reis <gdr@codesourcery.com> 4012 4013 Correct semantics restrictions checking in throw-expression. 4014 * except.c (is_admissible_throw_operand): New function. 4015 (build_throw): Use it. 4016 40172001-03-14 Mark Mitchell <mark@codesourcery.com> 4018 4019 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__ 4020 and its ilk. 4021 40222001-03-14 Mark Mitchell <mark@codesourcery.com> 4023 4024 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 4025 * cp-tree.h (DECL_IN_MEMORY_P): Likewise. 4026 * decl.c (duplicate_decls): Likewise. 4027 (builtin_function): Likewise. 4028 (build_library_fn): Likewise. 4029 (build_cp_library_fn): Likewise. 4030 (check_initializer): Likewise. 4031 (cp_finish_decl): Likewise. 4032 * decl2.c (grokfield): Likewise. 4033 (grok_function_init): Remove #if 0'd code. 4034 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 4035 * friend.c (do_friend): Likewise. 4036 * init.c (get_temp_regvar): Likewise. 4037 * method.c (make_thunk): Likewise. 4038 * pt.c (tsubst_friend_function): Likewise. 4039 (tsubst_decl): Likewise. 4040 (regenerate_decl_from_template): Likewise. 4041 * semantics.c (genrtl_named_return_value): Likewise. 4042 (expand_body): Likewise. 4043 (genrtl_finish_function): Likewise. 4044 * tree.c (cp_tree_equal): Likewise. 4045 40462001-03-12 Nathan Sidwell <nathan@codesourcery.com> 4047 4048 * call.c (convert_like_real): Add extra semantics to INNER 4049 parameter. Don't convert to temporary if a user conversion 4050 gives us an lvalue that we're about to bind to a reference. 4051 Set INNER to indicate pending reference binding on recursive 4052 calls. 4053 40542001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 4055 4056 * cp/lex.c: Delete duplicate pending_lang_change. 4057 40582001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 4059 4060 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation): 4061 Similarly. 4062 * cp/repo.c (get_base_filename, open_repo_file): Similarly. 4063 * cp/cp-tree.h: Remove file_name_nondirectory prototype. 4064 40652001-03-09 Zack Weinberg <zackw@stanford.edu> 4066 4067 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate. 4068 40692001-03-08 Stan Shebs <shebs@apple.com> 4070 4071 * cp-tree.h (set_identifier_local_value): Remove unused decl. 4072 40732001-03-06 Zack Weinberg <zackw@stanford.edu> 4074 4075 * spew.c: Remove references to CPP_OSTRING. 4076 40772001-03-06 Andrew Haley <aph@redhat.com> 4078 4079 * typeck.c (convert_arguments): Check that we have an fndecl. 4080 40812001-03-05 Andrew Haley <aph@redhat.com> 4082 4083 * typeck.c (convert_arguments): Don't do ellipsis conversion for 4084 __built_in_constant_p. 4085 40862001-03-02 Nathan Sidwell <nathan@codesourcery.com> 4087 4088 * typeck.c (build_static_cast): Allow enum to enum conversions 4089 as per DR 128. 4090 40912001-03-02 Nathan Sidwell <nathan@codesourcery.com> 4092 4093 * class.c (check_field_decls): Pointers to member do not a 4094 non-pod struct make, as per DR 148. 4095 40962001-03-02 Nathan Sidwell <nathan@codesourcery.com> 4097 4098 * call.c (joust): cp_pedwarn when using gnu extension concerning 4099 worst conversion sequences. 4100 41012001-03-01 Zack Weinberg <zackw@stanford.edu> 4102 4103 * decl.c: Replace all uses of 'boolean' with 'bool'. 4104 41052001-03-01 Zack Weinberg <zackw@stanford.edu> 4106 4107 * lang-specs.h: Add zero initializer for cpp_spec field to 4108 all array elements that need one. Don't put an #ifdef inside 4109 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and 4110 use it. 4111 41122001-03-01 Nathan Sidwell <nathan@codesourcery.com> 4113 4114 Implement using decls inside template functions. 4115 * decl2.c (validate_nonmember_using_decl): Don't special case 4116 fake_std_node in the global namespace. Don't reject early when 4117 processing a template. 4118 (do_local_using_decl): Add to statement tree. Don't do further 4119 processing when building a template. 4120 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs. 4121 41222001-03-01 Nathan Sidwell <nathan@codesourcery.com> 4123 4124 * decl2.c (do_nonmember_using_decl): Don't complain if we find 4125 same function. Do complain about ambiguating extern "C" 4126 declarations. 4127 41282001-02-28 Nathan Sidwell <nathan@codesourcery.com> 4129 4130 Remove floating point and complex type template constant parms. 4131 * pt.c (convert_nontype_argument): Remove REAL_TYPE and 4132 COMPLEX_TYPE extensions. 4133 (invalid_nontype_parm_type_p): Likewise. 4134 41352001-02-27 Jeffrey Oldham <oldham@codesourcery.com> 4136 4137 * except.c (call_eh_info): Revert "match_function"'s type. 4138 41392001-02-27 Nathan Sidwell <nathan@codesourcery.com> 4140 4141 Fix ctor vtable vcall offsets. 4142 * class.c (struct vtbl_init_data_s): Add rtti_binfo member. 4143 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter. 4144 (get_matching_base): Remove. 4145 (get_original_base): New function. 4146 (build_vtbl_initializer): Initialize vid.rtti_binfo. 4147 Use a virtual thunk for a ctor vtable with an index 4148 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a 4149 primary base within a constructor vtable. Only set 4150 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset 4151 when primary base has been lost. 4152 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment. 4153 41542001-02-26 Jeffrey Oldham <oldham@codesourcery.com> 4155 4156 * call.c (joust): Ensure more_specialized()'s argument length 4157 parameter has correct value for constructors. 4158 41592001-02-26 Nathan Sidwell <nathan@codesourcery.com> 4160 4161 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. 4162 4163 * decl.c (mark_inlined_fns): Prototype. 4164 41652001-02-22 Mark Mitchell <mark@codesourcery.com> 4166 4167 * spew.c (yylex): Correct handling of friends. 4168 41692001-02-22 Mark Mitchell <mark@codesourcery.com> 4170 4171 * mangle.c (write_encoding): Pass write_function_type the 4172 FUNCTION_DECL for the function being encoded. 4173 (write_function_type): Pass it along to write_bare_function_type. 4174 (write_bare_function_type): Pass it along to write_method_parms. 4175 (write_method_parms): Don't mangle the compiler-generated 4176 parameters to a constructor or destructor. 4177 41782001-02-22 Andreas Jaeger <aj@suse.de> 4179 4180 * optimize.c: Include toplev.h for 4181 note_deferral_of_defined_inline_function prototype. 4182 41832001-02-22 Jakub Jelinek <jakub@redhat.com> 4184 4185 * cp-tree.h (struct lang_decl_inlined_fns): New. 4186 (struct lang_decls): Add inlined_fns. 4187 (DECL_INLINED_FNS): New macro. 4188 * optimize.c (struct inline_data): Add inlined_fns. 4189 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro. 4190 (inlinable_function_p): Likewise, fix typo in comment, 4191 function is not inlinable if it already inlined function currently 4192 being optimized. 4193 (expand_call_inline): Add fn to inlined_fns if necessary. 4194 (optimize_function): Initialize inlined_fns. 4195 Save inlined_fns into DECL_INLINED_FNS after expanding inlines. 4196 * decl.c (mark_inlined_fns): New function. 4197 (lang_mark_tree): Call it. 4198 41992001-02-21 Jason Merrill <jason@redhat.com> 4200 4201 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag. 4202 (DECL_UNINLINABLE): Move to middle-end. 4203 4204 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn. 4205 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT. 4206 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone. 4207 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the 4208 parms and outer BLOCK. note_deferral_of_defined_inline_function. 4209 4210 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on 4211 second parm of op=. 4212 42132001-02-19 Mark Mitchell <mark@codesourcery.com> 4214 4215 * decl2.c (set_decl_namespace): Allow explicit instantiations in 4216 any namespace. 4217 42182001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4219 4220 * optimize.c (expand_call_inline): Don't walk subtrees of type 4221 nodes. 4222 42232001-02-18 Mark Mitchell <mark@codesourcery.com> 4224 4225 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry 4226 for a destructor. 4227 42282001-02-18 Jason Merrill <jason@redhat.com> 4229 4230 Do put the VTT parameter in DECL_ARGUMENTS. 4231 * cp-tree.h (struct cp_language_function): Add x_vtt_parm. 4232 (current_vtt_parm): New macro. 4233 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. 4234 (DECL_HAS_VTT_PARM_P): New macro. 4235 (DECL_VTT_PARM): Remove. 4236 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. 4237 * decl.c (duplicate_decls): Only copy the operator code if 4238 appropriate. 4239 (start_function): Set current_vtt_parm. 4240 (lang_mark_tree): Don't mark vtt_parm. 4241 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to 4242 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. 4243 * class.c (build_clone): Maybe remove the VTT parm. 4244 * optimize.c (maybe_clone_body): Set up the VTT parm. 4245 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. 4246 * call.c (build_over_call): Just allow the VTT arg. 4247 * method.c (make_thunk): Don't set DECL_VTT_PARM. 4248 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. 4249 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. 4250 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. 4251 * error.c (dump_function_decl): Likewise. 4252 * call.c (build_user_type_conversion_1, convert_like_real): Abort 4253 if we try to call a constructor with in-charge or VTT parms. 4254 * method.c (skip_artificial_parms_for): New fn. 4255 * call.c (add_function_candidate, build_over_call): Call it. 4256 * call.c (build_new_method_call): Use current_vtt_parm. 4257 * init.c (expand_virtual_init): Likewise. 4258 * class.c (same_signature_p): No longer static. 4259 * cp-tree.h: Declare it. 4260 * search.c (look_for_overrides_r): Use it. 4261 42622001-02-17 Mark Mitchell <mark@codesourcery.com> 4263 4264 * cp-tree.h (new_abi_rtti_p): Remove. 4265 (name_mangling_version): Likewise. 4266 (flag_do_squangling): Likewise. 4267 * class.c (build_rtti_vtbl_entries): Remove old ABI support. 4268 * decl.c (grokfndecl): Likewise. 4269 * decl2.c (name_mangling_version): Remove. 4270 (flag_do_squangling): Likewise. 4271 (lang_f_options): Remove `squangle'. 4272 (unsupported_options): Add `squangle'. 4273 (cxx_decode_option): Issue a warning about uses of 4274 -fname-mangling-version. 4275 (finish_file): Remove old ABI support. 4276 * pt.c (check_explicit_specialization): Likewise. 4277 (tsubst_decl): Likewise. 4278 * rtti.c (init_rtti_processing): Likewise. 4279 (build_headof): Likewise. 4280 (get_tinfo_decl_dynamic): Likewise. 4281 (tinfo_from_decl): Likewise. 4282 (build_dynamic_cast_1): Likewise. 4283 (synthesize_tinfo_var): Likewise. 4284 * init.c (build_new): Allow enumeration types for the array-bounds 4285 in a direct-new-declarator. 4286 4287 * semantics.c (finish_typeof): Resolve OFFSET_REFs. 4288 4289 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and 4290 TREE_PROTECTED from the template being specialized. 4291 42922001-02-17 Jason Merrill <jason@redhat.com> 4293 4294 * decl2.c (build_artificial_parm): Set TREE_READONLY. 4295 4296 * decl.c (bad_specifiers): Allow throw specs on things with 4297 pointer-to-function or -member-function type. 4298 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize 4299 a pmf. 4300 43012001-02-17 Mark Mitchell <mark@codesourcery.com> 4302 4303 * call.c (check_dtor_name): Handle template names correctly. 4304 43052001-02-16 Jason Merrill <jason@redhat.com> 4306 4307 * cp-tree.h (DECL_USE_VTT_PARM): Remove. 4308 * decl2.c (maybe_retrofit_in_chrg): Don't create it. 4309 * optimize.c (maybe_clone_body): Don't substitute it. 4310 * call.c (build_new_method_call): Check in_chrg instead. 4311 * init.c (expand_virtual_init): Likewise. 4312 43132001-02-16 Gabriel Dos Reis <gdr@codesourcery.com> 4314 4315 * decl.c (check_tag_decl): Make sure a typedef for an anonymous 4316 class-type introduces at least a type-name. 4317 43182001-02-16 Jakub Jelinek <jakub@redhat.com> 4319 4320 * call.c (convert_like_real): Create a temporary for non-lvalue. 4321 43222001-02-16 Jeffrey Oldham <oldham@codesourcery.com> 4323 4324 * cp-tree.h: Fix typos in comments. 4325 43262001-02-16 Jason Merrill <jason@redhat.com> 4327 4328 * optimize.c (remap_block): If we're compiling a clone, pass the 4329 new block to insert_block. 4330 43312001-02-16 Mark Mitchell <mark@codesourcery.com> 4332 4333 * semantics.c (finish_asm_stmt): Robustify. 4334 43352001-02-15 Mark Mitchell <mark@codesourcery.com> 4336 4337 * pt.c (push_template_decl_real): Don't remangle the name of a 4338 class template. 4339 43402001-02-15 Jim Meyering <meyering@lucent.com> 4341 4342 * Make-lang.in (c++.install-common): Depend on installdirs. 4343 (c++.install-info): Likewise. 4344 (c++.install-man): Likewise. 4345 43462001-02-15 Mark Mitchell <mark@codesourcery.com> 4347 4348 * typeck2.c (build_m_component_ref): Robustify. 4349 43502001-02-15 Alexandre Oliva <aoliva@redhat.com> 4351 4352 * friend.c (do_friend): Don't take the nested [template] class 4353 into account when deciding whether to warn about the friend 4354 function not referring to a template function. 4355 43562001-02-14 Jakub Jelinek <jakub@redhat.com> 4357 4358 * typeck.c (build_unary_op): Clarify error message. 4359 43602001-02-08 Aldy Hernandez <aldyh@redhat.com> 4361 4362 * parse.y (component_constructor_declarator): allow optional 4363 parentheses around constructor class name. 4364 43652001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4366 4367 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c 4368 section. 4369 * init.c (emit_base_init): Remove incorrect comment about 4370 virtual bases. 4371 * method.c (make_thunk): Fix comment alignment. 4372 43732001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4374 4375 Kill remnants of this is variable. 4376 * cp-tree.h (flag_this_is_variable): Remove. 4377 * decl2.c (flag_this_is_variable): Remove. 4378 * class.c (fixed_type_or_null): Add cdtor parm. Adjust. 4379 (build_vbase_path): The path is non-static, even in a cdtor. 4380 (resolves_to_fixed_type_p): Add additional return value. 4381 * search.c (init_vbase_pointers): Adjust. 4382 * tree.c (lvalue_p_1): Adjust. 4383 * typeck.c (mark_addressable): Adjust. 4384 43852001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4386 4387 * pt.c (unify): Don't check cv quals of array types. 4388 43892001-02-14 Nathan Sidwell <nathan@codesourcery.com> 4390 4391 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to 4392 check whether we already have the type. 4393 43942001-02-13 Mark Mitchell <mark@codesourcery.com> 4395 4396 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment. 4397 * call.c (build_op_delete_call): Simplify to remove duplicate 4398 code. 4399 * class.c (clone_function_decl): Don't build the deleting variant 4400 of a non-virtual destructor. 4401 * decl.c (finish_destructor_body): Don't call delete if this is a 4402 non-virtual destructor. 4403 * init.c (build_delete): Explicitly call `operator delete' when 4404 deleting an object with a non-virtual destructor. 4405 44062001-02-13 Jason Merrill <jason@redhat.com> 4407 4408 * lang-specs.h: Add more __EXCEPTIONS. 4409 44102001-02-12 Nathan Sidwell <nathan@codesourcery.com> 4411 4412 * typeck2.c (process_init_constructor): Check 4413 TREE_HAS_CONSTRUCTOR before issuing missing init warning. 4414 44152001-02-12 Nathan Sidwell <nathan@codesourcery.com> 4416 4417 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case): 4418 Remove spurious information in comment. Allow further 4419 adjustments of REFERENCE_TYPE args. 4420 44212001-02-12 Nathan Sidwell <nathan@codesourcery.com> 4422 4423 * errfn.c (cp_deprecated): Tweak diagnostic text. 4424 * parse.y (new_initializer): Deprecate initializer lists 4425 extension. 4426 44272001-02-12 Mark Mitchell <mark@codesourcery.com> 4428 4429 Remove old ABI support. 4430 44312001-02-11 Mark Mitchell <mark@codesourcery.com> 4432 4433 * decl2.c (flag_vtable_thunks): Always set it to 1. 4434 (flag_new_abi): Likewise. 4435 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI. 4436 4437 * Makefile.in (g++spec.o): Fix typo. 4438 44392001-02-09 Jason Merrill <jason@redhat.com> 4440 4441 * lang-specs.h: Restore definition of __EXCEPTIONS. 4442 44432001-02-08 Jason Merrill <jason@redhat.com> 4444 4445 * search.c (shared_member_p): New function. 4446 (lookup_field_r): Use it. 4447 * cp-tree.h (SHARED_MEMBER_P): Remove. 4448 4449 * method.c (process_overload_item): Handle template-dependent array 4450 bounds. 4451 * pt.c (type_unification_real): If we end up with undeduced nontype 4452 parms, try again. 4453 4454 * decl.c (lookup_name_real): Tweak warning to refer to decls, not 4455 types. 4456 4457 * typeck2.c (friendly_abort): Don't say anything if we have 4458 earlier errors or sorries. 4459 4460 * decl.c (check_tag_decl): Notice attempts to redefine bool and 4461 wchar_t. Ignore if in_system_header. 4462 4463 * decl.c (maybe_push_cleanup_level): New fn... 4464 (start_decl_1): ...split out from here. 4465 * cvt.c (build_up_reference): Use it. 4466 * cp-tree.h: Declare it. 4467 44682001-02-07 Mark Mitchell <mark@codesourcery.com> 4469 4470 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor 4471 spec. 4472 44732001-02-06 Nathan Sidwell <nathan@codesourcery.com> 4474 4475 * pt.c (lookup_template_class): Make sure it's a primary 4476 template or template_template_parm when called from the parser. 4477 (instantiate_template_class): Add assertion. 4478 44792001-02-05 Alexandre Oliva <aoliva@redhat.com> 4480 4481 * method.c (build_mangled_name) [old abi]: Protect flush_repeats() 4482 from error_mark_node. 4483 44842001-02-05 Nathan Sidwell <nathan@codesourcery.com> 4485 4486 Fix specification and implementation bugs in V3 ABI 4487 construction vtables. 4488 * cp-tree.h (flag_dump_class_layout): New flag. 4489 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove. 4490 (BINFO_LOST_PRIMARY_P): New flag. 4491 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts. 4492 (BINFO_PRIMARY_MARKED_P): Rename to ... 4493 (BINFO_PRIMARY_P): ... here. 4494 (binfo_via_virtual): New prototype. 4495 * decl2.c (flag_dump_class_layout): New flag. 4496 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to 4497 use `=' as a file name separator. 4498 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary 4499 bases. 4500 (build_vtbl_address): If this is a virtual primary base, then 4501 get the vtbl of what it is ultimately primary for. 4502 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust 4503 for BINFO_PRIMARY_P. 4504 (dfs_skip_nonprimary_vbases_markedp): Likewise. 4505 (get_shared_vbase_if_not_primary): Likewise. 4506 (dfs_get_pure_virtuals): Likewise. 4507 (expand_upcast_fixups): Likewise. 4508 (fixup_virtual_upcast_offsets): Likewise. 4509 (dfs_find_vbase_instance): Likewise. 4510 (find_vbase_instance): Likewise. 4511 (binfo_from_vbase): Adjust comment to reflect reality. 4512 (binfo_via_virtual): New function. 4513 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros 4514 for binfo walking during VTT construction. 4515 (dfs_mark_primary_bases): Remove. 4516 (force_canonical_binfo_r): New function. 4517 (force_canonical_binfo): New function. 4518 (mark_primary_virtual_base): New function. 4519 (mark_primary_bases): Walk in inheritance graph order, use 4520 mark_primary_virtual_base. 4521 (determine_primary_base): Use some more intermediate variables. 4522 (dfs_find_final_overrider): Don't check for overriding along a 4523 virtual path. 4524 (dfs_modify_vtables): Walk into primary virtual bases too. 4525 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P. 4526 (build_base_fields): Likewise. 4527 (dfs_set_offset_for_unshared_vbases): Likewise. 4528 (layout_virtual_bases): Likewise. 4529 (end_of_class): Likewise. 4530 (finish_struct_1): Call dump_class_hierarchy, if requested. 4531 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos. 4532 (dump_class_hierarchy_r): Add stream parameter. Emit more information. 4533 (dump_class_hierarchy): Add file parameter. Append to file, if 4534 required. 4535 (finish_vtbls): Adjust accumulate_vtbl_inits call. 4536 Use canonical base for virtual bases. 4537 (build_vtt): Add more comments. Adjust build_vtt_inits call. 4538 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm. 4539 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P, 4540 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for 4541 virtual VTTs. 4542 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P 4543 from DATA. We want virtual primary bases and all bases via virtual. 4544 Only set BINFO_VPTR_INDEX for top level. Look up from a primary 4545 virtual base when not a construction vtable. 4546 (dfs_ctor_vtable_bases_queue_p): New DFS predicate. 4547 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call. 4548 Use canonical bases when processing virtual bases. 4549 (accumulate_vtbl_inits): We're interested in any base via a 4550 virtual path. 4551 (dfs_accumulate_vtbl_inits): If this is a primary virtual base 4552 within a construction vtable, determine what is being overridden. 4553 (build_vtbl_initializer): Add more comments 4554 (add_vcall_offset_vtbl_entries_1): Adjust comment. 4555 (build_rtti_vtbl_entries): Check if the base has lost its 4556 primary. 4557 45582001-02-05 Mark Mitchell <mark@codesourcery.com> 4559 4560 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. 4561 4562Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 4563 4564 * decl.c (pushdecl): Call abort instead of fatal. 4565 * except.c (decl_is_java_type): Call fatal_error instead of fatal. 4566 * init.c (build_new_1): Likewise. 4567 (build_java_class_ref): Call internal_error and fatal_error, not fatal. 4568 * decl.c (build_typename_type): hash_table_init now returns void. 4569 decl.c (init_decl_processing): Make an error non-fatal. 4570 45712001-02-04 Mark Mitchell <mark@codesourcery.com> 4572 4573 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting. 4574 Document. 4575 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 4576 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 4577 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 4578 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 4579 * decl.c (maybe_commonize_var): Use the new name-mangling where 4580 appropriate. 4581 * decl2.c (comdat_linkage): Enhance comments. Make all 4582 compiler-generated things static, if COMDAT is not available. 4583 (get_tinfo_decl): Do not make typeinfo objects that belong in the 4584 library COMDAT. 4585 (tinfo_base_init): Use the correct mangled name for typeinfo 4586 strings, and push them into the global scope. 4587 (typeinfo_in_lib_p): New function. 4588 (synthesize_tinfo_var): Use it. 4589 (create_real_tinfo_var): Likewise. 4590 45912001-02-03 Jakub Jelinek <jakub@redhat.com> 4592 4593 * decl.c (push_class_binding): Use context_for_name_lookup instead 4594 of CP_DECL_CONTEXT. 4595 * search.c (context_for_name_lookup): Remove static. Check for NULL 4596 context in the loop. 4597 * cp-tree.h (context_for_name_lookup): Add prototype. 4598 45992001-02-02 Jakub Jelinek <jakub@redhat.com> 4600 4601 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove. 4602 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack): 4603 Remove. 4604 * call.c (convert_class_to_reference, build_user_type_conversion_1, 4605 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper. 4606 46072001-02-02 Mark Mitchell <mark@codesourcery.com> 4608 4609 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list 4610 of macros used when compiling g++spec.c. 4611 * g++spec.c (lang_specific_driver): Link with the shared 4612 libgcc by default. 4613 46142001-01-29 Joseph S. Myers <jsm28@cam.ac.uk> 4615 4616 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator, 4617 make_reference_declarator, make_call_declarator), method.c 4618 (implicitly_declare_fn), parse.y (namespace_using_decl, 4619 notype_unqualified_id, expr_or_declarator, new_type_id, 4620 after_type_declarator, direct_after_type_declarator, 4621 notype_declarator, complex_notype_declarator, 4622 complex_direct_notype_declarator, qualified_id, 4623 notype_qualified_id, overqualified_id, direct_new_declarator, 4624 absdcl, direct_abstract_declarator, conversion_declarator), pt.c 4625 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt 4626 instead of build_parse_node. 4627 46282001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4629 4630 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE. 4631 (minus_one_node): Moved to top level gcc directory. Renamed 4632 to integer_minus_one_node. 4633 4634 * init.c (init_init_processing): Don't set minus_one_node. 4635 (build_vec_init): Use integer_minus_one_node. 4636 4637 * rtti.c (get_tinfo_decl_dynamic): Likewise. 4638 46392001-01-28 Jakub Jelinek <jakub@redhat.com> 4640 4641 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments 4642 identical and they would be replaced with constant, remove 4643 MODIFY_EXPR from the tree. 4644 46452001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4646 4647 * Make-lang.in: Remove all dependencies on defaults.h. 4648 * call.c: Don't include defaults.h. 4649 * decl.c: Likewise. 4650 * decl2.c: Likewise. 4651 * except.c: Likewise. 4652 * pt.c: Likewise. 4653 * rtti.c: Likewise. 4654 * tree.c: Likewise. 4655 * typeck.c: Likewise. 4656 46572001-01-25 Jakub Jelinek <jakub@redhat.com> 4658 4659 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded 4660 operators even in "C" linkage. 4661 * method.c (set_mangled_name_for_decl): Likewise. 4662 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for 4663 overloaded operators in "C" linkage. 4664 46652001-01-24 Nathan Sidwell <nathan@codesourcery.com> 4666 4667 * pt.c (tsubst_decl): Remove IN_DECL parameter. 4668 (tsubst_arg_types): Check parameter is not void. 4669 (tsubst): Adjust tsubst_decl call. 4670 46712001-01-24 Nathan Sidwell <nathan@codesourcery.com> 4672 4673 * call.c (add_builtin_candidate): Quote std properly, from 4674 previous change. 4675 46762001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4677 4678 * pt.c (check_explicit_specialization): Clone constructors and 4679 destructors. 4680 46812001-01-23 Nathan Sidwell <nathan@codesourcery.com> 4682 4683 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC 4684 indicates anything special about template depth. Make sure we 4685 only count the user visible template classes. 4686 46872001-01-23 Nathan Sidwell <nathan@codesourcery.com> 4688 4689 * call.c (build_conv): Typo in comment. 4690 (add_builtin_candidate): Add more explanation. 4691 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR. 4692 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates 4693 when we have enumeral types. 4694 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE 4695 candidates for relops and eqops. 4696 (joust): Simplify control flow. Allow a non-template user 4697 function to hide a builtin. 4698 46992001-01-22 Nathan Sidwell <nathan@codesourcery.com> 4700 4701 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER. 4702 (more_specialized): Add deduction parameter. 4703 * call.c (joust): Adjust more_specialized call. 4704 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL, 4705 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags. 4706 (get_bindings_order): Remove. 4707 (get_bindings_real): Add DEDUCE parameter. 4708 (maybe_adjust_types_for_deduction): Return extra unify flags. Do 4709 REFERENCE_TYPE jig for DEDUCE_ORDER. 4710 (type_unification_real): Deal with DEDUCE_ORDER. Use result of 4711 maybe_adjust_types_for_deduction. 4712 (more_specialized): Add DEDUCE parameter. Call get_bindings_real 4713 directly. 4714 (try_one_overload): Use result of maybe_adjust_types_for_deduction. 4715 (check_cv_quals_for_unify): Use new unify qualifier flags. 4716 (unify): Clear new unify qualifier flags. 4717 (get_bindings_real): Add DEDUCE parameter. 4718 (get_bindings): Adjust call to get_bindings_real. 4719 (get_bindings_overload): Likewise. 4720 (most_specialized_instantiation): Adjust call to 4721 more_specialized. 4722 47232001-01-19 Jason Merrill <jason@redhat.com> 4724 4725 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI. 4726 4727 * decl.c (init_decl_processing): Just force -fvtable-thunks on if 4728 -fnew-abi. 4729 47302001-01-19 Ute Pelkmann <scope.muc@t-online.de> 4731 4732 * decl2.c (arg_assoc_class): Fix double iteration logic. 4733 47342001-01-19 Jason Merrill <jason@redhat.com> 4735 4736 * init.c (build_delete): Always call convert_force to strip cv-quals. 4737 4738 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI. 4739 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI. 4740 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI. 4741 47422001-01-19 Nathan Sidwell <nathan@codesourcery.com> 4743 4744 * search.c (get_vbase_1): Count only virtual bases. 4745 47462001-01-19 Nathan Sidwell <nathan@codesourcery.com> 4747 4748 * class.c (duplicate_tag_error): Robustify flag clearing. 4749 47502001-01-19 Nathan Sidwell <nathan@codesourcery.com> 4751 4752 * cp-tree.h (lookup_template_class): Add complain parm. 4753 * decl.c (lookup_namespace_name): Adjust call to 4754 lookup_template_class. 4755 (make_typename_type): Likewise. 4756 * semantics.c (finish_template_type): Likewise. 4757 * pt.c (lookup_template_class): Add complain parm. Adjust. 4758 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class. 4759 (tsubst): Likewise. 4760 47612001-01-19 Nathan Sidwell <nathan@codesourcery.com> 4762 4763 * pt.c (copy_default_args_to_explicit_spec): Preserve 4764 object's CV quals. Reorganize. 4765 47662001-01-18 Nathan Sidwell <nathan@codesourcery.com> 4767 4768 * typeck.c (build_modify_expr): Say `initialization' for 4769 INIT_EXPRs. 4770 * init.c (build_default_init): Convert to enumeral type, if 4771 needed. 4772 47732001-01-18 Jakub Jelinek <jakub@redhat.com> 4774 4775 * parse.y (nomods_initdcl0): Properly set things up for 4776 initdcl0_innards. 4777 47782001-01-18 Nathan Sidwell <nathan@codesourcery.com> 4779 4780 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag. 4781 (type_unification_real): Set it. 4782 (unify): Use it. 4783 47842001-01-18 Nathan Sidwell <nathan@codesourcery.com> 4785 4786 * decl.c (finish_destructor_body): Convert to vbase pointer here. 4787 47882001-01-18 Nathan Sidwell <nathan@codesourcery.com> 4789 4790 * semantics.c (begin_class_definition): Check we're not inside a 4791 template parm list. 4792 47932001-01-18 Nathan Sidwell <nathan@codesourcery.com> 4794 4795 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of 4796 BASELINK_P. 4797 47982001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4799 4800 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. 4801 * call.c (build_over_call): Add comment. 4802 48032001-01-16 Daniel Berlin <dberlin@redhat.com> 4804 4805 * cvt.c (ocp_convert): Handle vector type conversion 4806 * typeck2.c (digest_init): Handle vector type initializations 4807 48082001-01-16 Phil Edwards <pme@sources.redhat.com> 4809 4810 * g++spec.c: Don't add libraries needlessly if -fsyntax-only 4811 was given. 4812 48132001-01-15 Nathan Sidwell <nathan@codesourcery.com> 4814 4815 * pt.c (check_nontype_parm): Rename to ... 4816 (invalid_nontype_parm_type_p): ... here. 4817 (process_template_parm): Adjust. 4818 (convert_template_argument): Adjust. 4819 48202001-01-15 Nathan Sidwell <nathan@codesourcery.com> 4821 4822 * pt.c (check_nontype_parm): New function. 4823 (process_template_parm): Use it. 4824 (convert_template_argument): Use it. 4825 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to 4826 member. 4827 48282001-01-14 Jeffrey Oldham <oldham@codesourcery.com> 4829 4830 * tree.c: Add defaults.h 4831 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. 4832 * Make-lang.in (cp/tree.o): Add defaults.h. 4833 48342001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 4835 4836 * Make-lang.in (CXX_C_OBJS): Add c-format.o. 4837 48382001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 4839 4840 * g++.1: Change to be ".so man1/gcc.1". 4841 48422001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 4843 4844 * Make-lang.in (c++.info, c++.install-info): Build and install g++ 4845 internals info. 4846 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info. 4847 ($(srcdir)/cp/g++int.info): New target. 4848 * gxxint.texi: Add info directory entry. Use @@ in email address. 4849 * .cvsignore: Update. 4850 48512001-01-12 Nathan Sidwell <nathan@codesourcery.com> 4852 4853 * typeck.c (build_c_cast): Do template processing earlier. 4854 Always pedwarn on array casts. 4855 48562001-01-12 Nathan Sidwell <nathan@codesourcery.com> 4857 4858 * friend.c (make_friend_class): Make sure a templated class is 4859 actually a template. 4860 48612001-01-11 Nathan Sidwell <nathan@codesourcery.com> 4862 4863 * decl2.c (get_guard): Set linkage from guarded decl. 4864 48652001-01-11 Nathan Sidwell <nathan@codesourcery.com> 4866 4867 * call.c (convert_default_arg): Check for unprocessed 4868 DEFAULT_ARG. 4869 * cp-tree.h (replace_defarg): Move to spew.c. 4870 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to 4871 spew.c, which is where they really are. 4872 (done_pending_defargs): Declare. 4873 (unprocessed_defarg_fn): Declare. 4874 * decl.c (replace_defarg): Move to spew.c 4875 * parse.y (structsp): Call done_pending_defargs. 4876 * spew.c (defarg_fns): Rearrange list structure. 4877 (defarg_fnsdone): New static variable. 4878 (defarg_depfns): New static variable. 4879 (init_spew): Adjust. 4880 (add_defarg_fn): Store the type in TREE_TYPE. 4881 (do_pending_defargs): Detect and deal with ordering constraints 4882 and circularity. 4883 (done_pending_defargs): New function. 4884 (unprocessed_defarg_fn): New function. 4885 (replace_defarg): Moved from decl.c. Robustify. Don't save 4886 if circularity detected. 4887 48882001-01-11 Nathan Sidwell <nathan@codesourcery.com> 4889 4890 * pt.c (unify): Check array has a domain, before checking 4891 whether it is variable sized. 4892 48932001-01-11 Nathan Sidwell <nathan@codesourcery.com> 4894 4895 * decl.c (grokparms): Unobfuscate and get correct diagnostic for 4896 parameters with pointers to arrays of unknown bound. 4897 48982001-01-11 Nathan Sidwell <nathan@codesourcery.com> 4899 4900 * parse.y (template_parm_header, template_spec_header): New 4901 reductions. Split out from ... 4902 (template_header): ... here. Use them. 4903 (template_template_parm): Use template_parm_header. 4904 * semantics.c (finish_template_template_parm): Add assert. 4905 49062001-01-10 Mark Mitchell <mark@codesourcery.com> 4907 4908 * mangle.c (write_builtin_type): Fix thinko. 4909 4910 * pt.c (copy_default_args_to_explicit_spec_1): New function. 4911 (copy_default_args_to_explicit_spec): Likewise. 4912 (check_explicit_specialization): Use it. 4913 4914 * class.c (finish_struct_1): Remove last argument in call to 4915 make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 4916 * decl.c (builtin_function): Likewise. 4917 (build_cp_library_fn): Likewise. 4918 (check_initializer): Likewise. 4919 (make_rtl_for_nonlocal_decl): Likewise. 4920 (cp_finish_decl): Likewise. 4921 (start_function): Likewise. 4922 * decl2.c (finish_anon_union): Likewise. 4923 * friend.c (do_friend): Likewise. 4924 * init.c (build_java_class_ref): Likewise. 4925 * method.c (make_thunk): Likewise. 4926 * pt.c (tsubst_friend_function): Likewise. 4927 * semantics.c (expand_body): Likewise. 4928 49292001-01-10 Mark Mitchell <mark@codesourcery.com> 4930 4931 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not 4932 looking at DECL_CLONED_FUNCTION for non-functions. 4933 49342001-01-10 Nathan Sidwell <nathan@codesourcery.com> 4935 4936 * error.c (dump_template_parameter): Use parm to determine how 4937 to print default value. 4938 49392001-01-10 Nathan Sidwell <nathan@codesourcery.com> 4940 4941 * class.c (duplicate_tag_error): Clear more flags. 4942 49432001-01-10 Nathan Sidwell <nathan@codesourcery.com> 4944 4945 * call.c (build_new_method_call): Use binfo_for_vbase. 4946 49472001-01-10 Joseph S. Myers <jsm28@cam.ac.uk> 4948 4949 * cp-tree.h (flag_cond_mismatch): Don't declare. 4950 * decl2.c (flag_cond_mismatch): Don't define. 4951 (lang_f_options): Remove cond-mismatch. 4952 (unsupported_options): Add cond-mismatch. 4953 49542001-01-09 Nathan Sidwell <nathan@codesourcery.com> 4955 4956 * class.c (handle_using_decl): Reject using of constructor name 4957 of sourcing class. Allow injecting of a method with same name as 4958 nested class. Fixup error messages. 4959 49602001-01-09 Joseph S. Myers <jsm28@cam.ac.uk> 4961 4962 * decl2.c (lang_decode_option): Handle -Wformat=2. 4963 49642001-01-08 Nathan Sidwell <nathan@codesourcery.com> 4965 4966 * cp-tree.h (lang_decl_flags): Rename defined_in_class to 4967 initialized_in_class. 4968 (DECL_DEFINED_IN_CLASS_P): Rename to ... 4969 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning. 4970 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P. 4971 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P. 4972 * pt.c (check_default_tmpl_args): Adjust for 4973 DECL_INITIALIZED_IN_CLASS_P. 4974 (instantiate_class_template): Likewise. 4975 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P. 4976 4977 * class.c (finish_struct): Constify saved_filename. 4978 49792001-01-08 Nathan Sidwell <nathan@codesourcery.com> 4980 4981 * class.c (duplicate_tag_error): Adjust diagnostic. 4982 (finish_struct): Locally set location to start of struct. 4983 * decl.c (fixup_anonymous_aggr): Use cp_error_at. 4984 49852001-01-08 Nathan Sidwell <nathan@codesourcery.com> 4986 4987 * decl.c (struct binding_level): Adjust class_shadowed comments 4988 to reflect reality. 4989 (push_class_level_binding): Adjust comments to reflect reality. 4990 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. 4991 Don't set TREE_VALUE on the class_shadowed list. 4992 49932001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 4994 4995 * decl2.c (acceptable_java_type): Allow references too. 4996 * init.c (build_java_class_ref): When using the new ABI, search 4997 `class$' and have it mangled with `mangle_decl.' 4998 * mangle.c (write_java_integer_type_codes): New function. 4999 (write_builtin_type): Detect and mangle Java integer and real 5000 types. 5001 50022001-01-07 Mark Mitchell <mark@codesourcery.com> 5003 5004 * decl2.c (grokfield): Don't accept `asm' specifiers for 5005 non-static data members. 5006 50072001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5008 5009 * expr.c (cplus_expand_expr): Don't reset `target'. 5010 50112001-01-07 Neil Booth <neil@daikokuya.demon.co.uk> 5012 5013 * cp/decl2.c (cxx_post_options): Call cpp_post_options. 5014 50152001-01-05 Nathan Sidwell <nathan@codesourcery.com> 5016 5017 * parse.y (template_datadef): Check for error_mark_node. 5018 50192001-01-05 Nathan Sidwell <nathan@codesourcery.com> 5020 5021 * cp-tree.def (DEFAULT_ARG): Make `x' class. 5022 50232001-01-04 Joseph S. Myers <jsm28@cam.ac.uk> 5024 5025 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define. 5026 (record_builtin_type): Make non-static. 5027 (flag_short_double): Don't declare. 5028 (init_decl_processing): Remove the creation of many tree nodes now 5029 in c_common_nodes_and_builtins. 5030 (build_void_list_node): New function. 5031 * decl2.c (flag_short_double, flag_short_wchar): Don't define. 5032 * cp-tree.h (flag_short_wchar): Don't declare. 5033 50342001-01-04 Mark Mitchell <mark@codesourcery.com> 5035 5036 * call.c (build_conv): Don't use build1 for USER_CONV. 5037 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. 5038 50392001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 5040 5041 * lex.c (lang_init): Call c_common_lang_init. 5042 50432001-01-03 Nathan Sidwell <nathan@codesourcery.com> 5044 5045 * search.c (lookup_fnfields_here): Remove. 5046 (look_for_overrides_r): Use lookup_fnfields_1. 5047 Ignore functions from using declarations. 5048 50492001-01-03 Nathan Sidwell <nathan@codesourcery.com> 5050 5051 Implement exceptions specifiers for implicit member functions. 5052 * cp-tree.h (merge_exceptions_specifiers): Declare new function. 5053 * method.c (synthesize_exception_spec): New function. 5054 (locate_dtor, locate_ctor, locate_copy): New functions. 5055 (implicitly_declare_fn): Generate the exception spec too. 5056 * search.c (check_final_overrider): Check artificial functions 5057 too. 5058 * typeck2.c (merge_exception_specifiers): New function. 5059 50602001-01-03 Jason Merrill <jason@redhat.com> 5061 5062 * init.c (build_default_init): New fn. 5063 (perform_member_init): Split out from here. 5064 (build_new_1): Use it. Simplify initialization logic. 5065 (build_vec_init): Take an array, rather than a pointer and maxindex. 5066 Speed up simple initializations. Don't clean up if we're assigning. 5067 * cp-tree.h: Adjust. 5068 * decl2.c (do_static_initialization): Remove TREE_VEC case. 5069 * parse.y (new_initializer): Return void_zero_node for (). 5070 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR. 5071 * typeck2.c (digest_init): Only complain about user-written 5072 CONSTRUCTORs. 5073 50742000-12-22 Mike Stump <mrs@wrs.com> 5075 5076 * decl2.c: (max_tinst_depth): Increase to 50. 5077 50782001-01-02 Mark Mitchell <mark@codesourcery.com> 5079 5080 * class.c (invalidate_class_lookup_cache): Zero the 5081 previous_class_values. 5082 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not 5083 TREE_INT_CST_HIGH. 5084 (CLASSTYPE_TEMPLATE_LEVEL): Likewise. 5085 * decl.c (free_bindings): New variable. 5086 (push_binding): Don't create a new binding if we have one on the 5087 free list. 5088 (pop_binding): Put old bindings on the free list. 5089 (init_decl_processing): Use size_int, not build_int_2. 5090 Register free_bindings as a GC root. 5091 (cp_make_fname_decl): Use size_int, not build_int_2. 5092 (push_inline_template_parms_recursive): Likewise. 5093 (end_template_parm_list): Likewise. 5094 (for_each_tempalte_parm): Do not use walk_tree_without_duplicates. 5095 (tsubst_template_parms): Use size_int, not build_int_2. 5096 (tsubst): Likewise. 5097 * rtti.c (get_vmi_pseudo_type_info): Likewise. 5098 50992001-01-02 Richard Henderson <rth@redhat.com> 5100 5101 * parse.y (asm): Set ASM_INPUT_P. 5102 51032001-01-02 Jason Merrill <jason@redhat.com> 5104 5105 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE 5106 for v3 ABI. 5107 5108 * typeck.c (cp_truthvalue_conversion): New fn. 5109 * cvt.c (ocp_convert): Use it. 5110 5111 * cp-tree.h: Lose c-common.c decls. 5112 5113 * typeck.c (build_unary_op): Restore old &a.f diagnostic code. 5114 * cvt.c (convert_to_void): Use type_unknown_p. 5115 5116 * typeck.c (strip_all_pointer_quals): Also strip quals from 5117 pointer-to-member types. 5118 5119 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat 5120 parse.y as C. 5121 5122 * call.c (build_new_method_call): Do evaluate the object parameter 5123 when accessing a static member. 5124 * typeck.c (build_component_ref): Likewise. 5125 51262001-01-02 Andreas Jaeger <aj@suse.de> 5127 5128 * decl.c (cp_missing_noreturn_ok_p): New. 5129 (init_decl_processing): Set lang_missing_noreturn_ok_p. 5130 51312000-12-29 Jakub Jelinek <jakub@redhat.com> 5132 5133 * decl.c (init_decl_processing): Fix sign of wchar_type_node. 5134 51352000-12-29 Mark Mitchell <mark@codesourcery.com> 5136 5137 * class.c (pushclass): Remove #if 0'd code. 5138 * cp-tree.h (overload_template_name): Remove. 5139 * decl.c (store_bindings): Simplify. 5140 (pop_from_top_level): Likewise. 5141 * pt.c (overload_template_name): Remove. 5142 (instantiate_decl): Don't call push_to_top_level if it's not 5143 needed. 5144 51452000-12-28 Mark Mitchell <mark@codesourcery.com> 5146 5147 * pt.c (register_local_specialization): Don't return a value. 5148 (lookup_template_class): Use move-to-front heuristic when looking 5149 up template instantiations. 5150 (instantiate_decl): Only push_to_top_level when we're actually 5151 going to instantiate the template. 5152 51532000-12-29 Hans-Peter Nilsson <hp@bitrange.com> 5154 5155 * search.c (binfo_for_vtable): Return least derived class, not 5156 most. Handle secondary vtables. 5157 51582000-12-22 Jason Merrill <jason@redhat.com> 5159 5160 * pt.c (more_specialized): Don't optimize len==0. 5161 (fn_type_unification): If we're adding the return type, increase len. 5162 5163 * typeck.c (build_binary_op): Fix pmf comparison logic. 5164 5165 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not 5166 DECL_STATIC_FUNCTION_P. 5167 5168 * semantics.c (genrtl_finish_function): Don't try to jump to 5169 return_label unless it exists. 5170 5171 In partial ordering for a call, ignore parms for which we don't have 5172 a real argument. 5173 * call.c (joust): Pass len to more_specialized. 5174 (add_template_candidate_real): Strip 'this', pass len. 5175 * pt.c (more_specialized): Pass len down. Lose explicit_args parm. 5176 (get_bindings_order): New fn. Pass len down. 5177 (get_bindings_real): Strip 'this', pass len. 5178 (fn_type_unification): Likewise. 5179 (type_unification_real): Succeed after checking 'len' args. 5180 (most_specialized_instantiation): Lose explicit_args parm. 5181 * class.c (resolve_address_of_overloaded_function): Strip 'this', 5182 pass len. 5183 51842000-12-21 Jason Merrill <jason@redhat.com> 5185 5186 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not 5187 DECL_TEMPLATE_RESULT. 5188 5189 * search.c (lookup_field_r): Call lookup_fnfields_1, not 5190 lookup_fnfields_here. 5191 5192 * parse.y (typename_sub2): Return the TYPE_DECL, not the type. 5193 5194 * call.c (build_object_call): Also allow conversions that return 5195 reference to pointer to function. 5196 (add_conv_candidate): Handle totype being ref to ptr to fn. 5197 (build_field_call): Also allow members of type reference to function. 5198 Lose support for calling pointer to METHOD_TYPE fields. 5199 5200 * error.c (dump_expr): Handle *_CAST_EXPR. 5201 5202 * typeck2.c (build_scoped_ref): Always convert to the naming class. 5203 5204 * tree.c (break_out_cleanups): Lose. 5205 * cp-tree.h: Remove prototype. 5206 * typeck.c (build_component_ref): Don't break_out_cleanups. 5207 (build_compound_expr): Likewise. 5208 * semantics.c (finish_expr_stmt): Likewise. 5209 52102000-12-20 Richard Henderson <rth@redhat.com> 5211 5212 * cp-tree.h: Update declarations. 5213 * decl.c (finish_case_label): Return the new stmt node. 5214 * semantics.c (finish_goto_stmt): Likewise. 5215 (finish_expr_stmt, finish_return_stmt): Likewise. 5216 (finish_break_stmt, finish_continue_stmt): Likewise. 5217 (finish_asm_stmt): Likewise. 5218 * parse.y (already_scoped_stmt): Set STMT_LINENO. 5219 (compstmt, implicitly_scoped_stmt, stmt): Likewise. 5220 (simple_if, simple_stmt): Return the new stmt node. 5221 (save_lineno): New. 5222 52232000-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 5224 5225 * cp-tree.h: Don't declare warn_long_long. 5226 52272000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5228 5229 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of 5230 IS_AGGR_TYPE. 5231 52322000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5233 5234 * pt.c (unify): Handle when both ARG and PARM are 5235 BOUND_TEMPLATE_TEMPLATE_PARM. 5236 52372000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5238 5239 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and 5240 DECL_TEMPLATE_PARM_P. 5241 52422000-12-15 Jason Merrill <jason@redhat.com> 5243 5244 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs! 5245 5246 * init.c (build_new_1): Don't strip quals from type. 5247 5248 * decl.c (pushdecl): Don't check for linkage on a non-decl. 5249 5250 * call.c (build_op_delete_call): See through ARRAY_TYPEs. 5251 5252 * call.c (build_new_function_call): Lose space before paren in 5253 error message. 5254 (build_new_method_call): Likewise. 5255 5256 * typeck2.c (build_m_component_ref): Propagate quals from datum. 5257 52582000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5259 5260 * pt.c (check_explicit_specialization): Propagate default 5261 function arguments to explicit specializations. 5262 52632000-12-13 DJ Delorie <dj@redhat.com> 5264 5265 * typeck.c (build_binary_op): Do signed/unsigned warnings for >? 5266 and <? operators. 5267 52682000-12-08 Jason Merrill <jason@redhat.com> 5269 5270 * error.c (dump_function_name): Don't let the user see __comp_ctor. 5271 5272 Clean up copy-initialization in overloading code. 5273 * call.c (build_user_type_conversion_1): Die if we are asked to 5274 convert to the same or a base type. 5275 (implicit_conversion): Avoid doing so. Lose reference binding code. 5276 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit 5277 direct-initialization. Also do direct-init part of copy-init. 5278 (build_user_type_conversion): Don't provide context to convert_like. 5279 * cvt.c (ocp_convert): build_user_type_conversion will now provide 5280 the constructor call for copy-init. 5281 5282 * pt.c (tsubst_decl): Call clone_function_decl here if this is an 5283 instantiation of a member template. 5284 (do_decl_instantiation): Not here. 5285 52862000-12-07 Nathan Sidwell <nathan@codesourcery.com> 5287 5288 * class.c (check_field_decls): Don't special case anonymous 5289 fields in error messages. 5290 (note_name_declared_in_class): Use %D on diagnostic. 5291 5292 * tree.c (pod_type_p): Use strip_array_types. 5293 (cp_valid_lang_attribute): Likewise. 5294 * typeck.c (cp_type_quals): Strip arrays separately, to avoid 5295 multiple evaluations. 5296 (cp_has_mutable_p): Use strip_array_types. 5297 52982000-12-07 Nathan Sidwell <nathan@codesourcery.com> 5299 5300 * cp-tree.h (sufficient_parms_p): Declare new function. 5301 * call.c (sufficient_parms_p): New function, broken out of ... 5302 (add_function_candidate): ... here. Use it. 5303 (add_conv_candidate): Use it. 5304 * decl.c (grok_ctor_properties): Use it. 5305 53062000-12-07 Jakub Jelinek <jakub@redhat.com> 5307 5308 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT. 5309 53102000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> 5311 5312 * decl2.c (lang_decode_option): Handle -Wformat-security. 5313 53142000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5315 5316 * pt.c (verify_class_unification): New function. 5317 (get_class_bindings): Use it. 5318 (try_class_unification): Tidy. 5319 (unify): Handle when argument of a template-id is not 5320 template parameter dependent. 5321 (template_args_equal): Handle when TREE_CODE's do not match. 5322 53232000-12-06 Alexandre Oliva <aoliva@redhat.com> 5324 5325 * lang-specs.h (c++): When invoking the stand-alone preprocessor 5326 for -save-temps, pass all relevant -Defines to it, and then don't 5327 pass them to cc1plus. 5328 53292000-12-05 Will Cohen <wcohen@redhat.com> 5330 5331 * decl.c (finish_case_label): Cleared 5332 more_cleanups_ok in surrounding function scopes. 5333 (define_label): Likewise. 5334 53352000-12-05 Nathan Sidwell <nathan@codesourcery.com> 5336 5337 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document. 5338 (get_matching_virtual): Remove. 5339 (look_for_overrides): Declare new function. 5340 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or 5341 DECL_VINDEX here. 5342 * class.c (check_for_override): Move base class iteration code 5343 to look_for_overrides. 5344 * search.c (next_baselink): Remove. 5345 (get_virtuals_named_this): Remove. 5346 (get_virtual_destructor): Remove. 5347 (tree_has_any_destructors_p): Remove. 5348 (struct gvnt_info): Remove. 5349 (check_final_overrider): Remove `virtual' from error messages. 5350 (get_matching_virtuals): Remove. Move functionality to ... 5351 (look_for_overrides): ... here, and ... 5352 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found 5353 to be overriding. 5354 53552000-12-05 Nathan Sidwell <nathan@codesourcery.com> 5356 5357 * typeck.c (get_delta_difference): If via a virtual base, 5358 return zero. 5359 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no 5360 adjustment. 5361 53622000-12-04 Richard Henderson <rth@redhat.com> 5363 5364 * error.c (dump_tree): Use output_add_string not OB_PUTS. 5365 53662000-12-04 Jason Merrill <jason@redhat.com> 5367 5368 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". 5369 (write_builtin_type): Pass intSI_type_node and the like through 5370 type_for_mode. 5371 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. 5372 Pass intSI_type_node and the like through type_for_mode. 5373 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. 5374 * pt.c (tsubst, unify): Likewise. 5375 * tree.c (walk_tree): Likewise. 5376 * error.c (dump_type): Likewise. 5377 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. 5378 5379 * Make-lang.in: Tweak top comment for emacs. 5380 (cp/TAGS): Restore. 5381 5382 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. 5383 5384 * class.c (clone_function_decl): Robustify. 5385 53862000-12-04 Michael Matz <matzmich@cs.tu-berlin.de> 5387 5388 * decl.c (store_bindings): Only search in the non modified 5389 old_bindings for duplicates. 5390 53912000-12-04 Nathan Sidwell <nathan@codesourcery.com> 5392 5393 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not 5394 TYPE_POLYMORPHIC_P. 5395 5396 * typeck.c (build_static_cast): Remove unused variable. 5397 53982000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5399 5400 * pt.c: Fix typo in comment. 5401 54022000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 5403 5404 * decl2.c (warn_format): Remove definition. 5405 (lang_decode_option): Handle -Wformat-nonliteral, 5406 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat. 5407 54082000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 5409 5410 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. 5411 (init_decl_processing): Don't create string_type_node, 5412 const_string_type_node, wint_type_node, intmax_type_node, 5413 uintmax_type_node, default_function_type, ptrdiff_type_node and 5414 unsigned_ptrdiff_type_node. Adjust position of call to 5415 c_common_nodes_and_builtins. 5416 (identifier_global_value): New function. 5417 54182000-12-01 Nathan Sidwell <nathan@codesourcery.com> 5419 5420 * call.c (standard_conversion): Reject pointer to member 5421 conversions from ambiguous, inaccessible or virtual bases. 5422 * typeck.c (build_static_cast): Don't check pointers to members 5423 specially. 5424 54252000-11-30 Nathan Sidwell <nathan@codesourcery.com> 5426 5427 * method.c (do_build_copy_constructor): Preserve cv 5428 qualifications when accessing source object members. 5429 (do_build_assign_ref): Likewise. Remove separate diagnostics for 5430 unnamed fields. 5431 54322000-11-30 Nathan Sidwell <nathan@codesourcery.com> 5433 5434 * method.c (do_build_assign_ref): Construct appropriately 5435 CV-qualified base reference. Don't allow const casts in base 5436 conversion. 5437 54382000-11-30 Nathan Sidwell <nathan@codesourcery.com> 5439 5440 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on 5441 incomplete return type. 5442 54432000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5444 5445 * parse.y (base_class.1): Produce a _TYPE not a _DECL. 5446 * semantics.c (finish_base_specifier): Accept a _TYPE not a 5447 _DECL. 5448 54492000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5450 5451 * spew.c (yyerror): Cope if yylval.ttype is NULL. 5452 54532000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5454 5455 * decl.c (grokdeclarator): Diagnose undefined template contexts. 5456 54572000-11-28 Nathan Sidwell <nathan@codesourcery.com> 5458 5459 * decl.c (grokdeclarator): Do type access control on friend 5460 class. 5461 54622000-11-27 Nathan Sidwell <nathan@codesourcery.com> 5463 5464 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by 5465 bison parser ickiness. 5466 * pt.c (tsubst_friend_function): Enter namespace scope when 5467 tsubsting the function name. 5468 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality. 5469 54702000-11-27 Nathan Sidwell <nathan@codesourcery.com> 5471 5472 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo. 5473 * cvt.c (cp_convert_to_pointer): Add force parameter. 5474 Allow conversions via virtual base if forced. 5475 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer. 5476 (ocp_convert): Likewise. 5477 * search.c (binfo_from_vbase): Return the virtual base's binfo. 5478 * typeck.c (get_delta_difference): Adjust handling of virtual 5479 bases. 5480 54812000-11-26 Mark Mitchell <mark@codesourcery.com> 5482 5483 * tree.c (struct list_hash): Remove. 5484 (list_hash_table): Make it be an htab. 5485 (struct list_proxy): New type. 5486 (list_hash_eq): New function. 5487 (list_hash_pieces): Renamed from ... 5488 (list_hash): ... this. 5489 (list_hash_lookup): Remove. 5490 (list_hash_add): Remove. 5491 (hash_tree_cons): Use the generic hashtable. 5492 (mark_list_hash): Remove. 5493 (init_tree): Create the hashtable. 5494 54952000-11-25 Joseph S. Myers <jsm28@cam.ac.uk> 5496 5497 * method.c (build_mangled_C9x_name): Rename to 5498 build_mangled_C99_name. Change C9X references in comments to 5499 refer to C99. 5500 55012000-11-24 Nathan Sidwell <nathan@codesourcery.com> 5502 5503 * parse.y (unary_expr): Move VA_ARG from here ... 5504 (primary): ... to here. 5505 55062000-11-24 Nathan Sidwell <nathan@codesourcery.com> 5507 5508 * semantics.c (finish_id_expr): If type is error_mark, return 5509 error_mark. 5510 55112000-11-23 Nathan Sidwell <nathan@codesourcery.com> 5512 5513 * pt.c (lookup_template_class): Simplify loop exit constructs. 5514 Cope when there is no partial instantiation of a template 5515 template member. 5516 5517Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com> 5518 5519 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H). 5520 55212000-11-22 Mark Mitchell <mark@codesourcery.com> 5522 5523 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op' 5524 prefix. 5525 5526 * pt.c (do_decl_instantiate): Explicitly clone constructors and 5527 destructors that haven't already been cloned. 5528 55292000-11-20 Richard Henderson <rth@redhat.com> 5530 5531 * parse.y (yyparse_1): Rename the parser entry point. 5532 55332000-11-20 Alex Samuel <samuel@codesourcery.com> 5534 5535 * mangle.c (write_name): Use <unscoped-name> for names directly in 5536 function scope. 5537 (write_unscoped_name): Accept names directly in function scope. 5538 55392000-11-20 Nathan Sidwell <nathan@codesourcery.com> 5540 5541 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword. 5542 * parse.y (extdef): Add EXPORT reduction. 5543 * spew.c (yylex): Don't skip export here. 5544 55452000-11-19 Mark Mitchell <mark@codesourcery.com> 5546 5547 * decl.c (init_decl_processing): Correct name of pure virtual 5548 function under the new ABI. 5549 * rtti.c (throw_bad_cast): Likewise, for bad cast function. 5550 (throw_bad_typeid): Likewise for bad typeid function. 5551 55522000-11-18 Mark Mitchell <mark@codesourcery.com> 5553 5554 * decl.c (grokparms): Don't even function types of `void' type, 5555 either. 5556 * mangle.c (write_type): Don't crash when confronted with the 5557 error_mark_node. 5558 5559 * decl.c (grokparms): Don't create parameters of `void' type. 5560 55612000-11-17 Zack Weinberg <zack@wolery.stanford.edu> 5562 5563 * lex.c (mark_impl_file_chain): Delete. 5564 (init_parse): Remove call to ggc_add_string_root. No need to 5565 ggc_strdup a string constant. Do not add impl_file_chain to GC 5566 roots. 5567 (handle_pragma_implementation): No need to ggc_strdup main_filename. 5568 55692000-11-17 Nathan Sidwell <nathan@codesourcery.com> 5570 5571 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type. 5572 55732000-11-17 Nathan Sidwell <nathan@codesourcery.com> 5574 5575 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro. 5576 * decl.c (grokdeclarator): Don't reject void parms here. 5577 (require_complete_types_for_parms): Simplify, use 5578 complete_type_or_else. 5579 (grokparms): Remove bitrot. Remove funcdef parm. 5580 Deal with ellipsis parm lists here. 5581 * semantics.c (finish_parmlist): Don't append void_list_node 5582 here. Set PARMLIST_ELLIPSIS_P. 5583 55842000-11-17 Nathan Sidwell <nathan@codesourcery.com> 5585 5586 * typeck2.c (incomplete_type_error): Reorganise to avoid 5587 excessive diagnostics. 5588 55892000-11-16 Zack Weinberg <zack@wolery.stanford.edu> 5590 5591 * lex.c (struct impl_files, internal_filename): Constify a char *. 5592 55932000-11-16 Mark Mitchell <mark@codesourcery.com> 5594 5595 * mangle.c (write_special_name_constructor): Don't generate 5596 assembler junk when confronted with an old-style constructor. 5597 (write_special_name_destructor): Likewise. 5598 (mangle_decl_string): Do it here instead. 5599 56002000-11-16 Nathan Sidwell <nathan@codesourcery.com> 5601 5602 * call.c (op_error): Make error messages clearer. 5603 56042000-11-15 Mark Mitchell <mark@codesourcery.com> 5605 5606 * decl.c (wrapup_globals_for_namespace): Don't mark things 5607 TREE_ASM_WRITTEN when they're not. 5608 56092000-11-15 Jason Merrill <jason@redhat.com> 5610 5611 * typeck2.c (friendly_abort): Uncount the error before handing 5612 off to fancy_abort. 5613 56142000-11-15 Nathan Sidwell <nathan@codesourcery.com> 5615 5616 * typeck.c (lookup_anon_field): Cope with qv qualifiers. 5617 56182000-11-14 Mark Mitchell <mark@codesourcery.com> 5619 5620 * class.c (build_vtbl_initializer): Fix typo in comment. 5621 * typeck.c (expr_sizeof): Don't crash on errors. 5622 56232000-11-14 Jim Wilson <wilson@redhat.com> 5624 5625 * lang-specs.h: Add %2 after %(cc1_options). 5626 56272000-11-14 Richard Henderson <rth@redhat.com> 5628 5629 * typeck.c (c_sizeof): Be strict about casting result value 5630 back to c_size_type_node. 5631 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise. 5632 56332000-11-13 Joseph S. Myers <jsm28@cam.ac.uk> 5634 5635 * typeck.c (build_unary_op): Use boolean_increment from 5636 c-common.c, moving the relevant code there. 5637 56382000-11-11 Jason Merrill <jason@redhat.com> 5639 5640 * typeck.c (mark_addressable): Don't call put_var_into_stack. 5641 5642 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics 5643 in inlines. 5644 56452000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5646 5647 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy. 5648 * lex.c (copy_lang_decl): Likewise. 5649 56502000-11-09 Mark Mitchell <mark@codesourcery.com> 5651 5652 * dump.c (cp_dump_tree): Don't dump function bodies here. 5653 5654 * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 5655 (dump.o): Update dependency list. 5656 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove. 5657 (flag_dump_translation_unit): Likewise. 5658 (CP_TYPE_QUALS): Adjust definition. 5659 (DECL_C_BIT_FIELD): Remove. 5660 (SET_DECL_C_BIT_FIELD): Likewise. 5661 (CLEAR_DECL_C_BIT_FIELD): Likewise. 5662 (add_maybe_template): Likewise. 5663 (strip_array_types): Likewise. 5664 (dump_node_to_file): Likewise. 5665 (cp_dump_tree): New function. 5666 * decl.c (init_decl_processing): Set lang_dump_tree. 5667 * decl2.c (flag_dump_translation_unit): Remove. 5668 * dump.c: Move most of it to ../c-dump.c. 5669 (cp_dump_tree): New function. 5670 * pt.c (add_maybe_template): Remove. 5671 * typeck.c (strip_array_types): Likewise. 5672 56732000-11-07 Eric Christopher <echristo@redhat.com> 5674 5675 * decl.c (init_decl_processing): Change definition of 5676 __wchar_t to wchar_t. Remove artificial declaration of 5677 wchar_t. 5678 * lex.c: Change instances of __wchar_t to wchar_t. 5679 56802000-11-09 Nathan Sidwell <nathan@codesourcery.com> 5681 5682 * lex.c (do_identifier): Don't lookup_name for operators. 5683 * parse.y (operator): Save looking_for_typename. 5684 (unoperator): Restore it. 5685 * spew.c (frob_opname): Use nth_token for lookahead. 5686 56872000-11-08 Nathan Sidwell <nathan@codesourcery.com> 5688 5689 * decl.c (grok_op_properties): Always use coerce_new_type and 5690 coerce_delete_type. 5691 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve 5692 exception specification. Tidy up. 5693 (coerce_delete_type): Preserve exception specification. Tidy up. 5694 56952000-11-07 Joseph S. Myers <jsm28@cam.ac.uk> 5696 5697 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c 5698 (push_binding_level), error.c (cp_tree_printer), pt.c 5699 (process_partial_specialization, tsubst_template_arg_vector), 5700 search.c (lookup_member): Use memset () instead of bzero (). 5701 57022000-11-07 Nathan Sidwell <nathan@codesourcery.com> 5703 5704 * decl.c (build_ptrmemfunc_type): Allow error_mark_node. 5705 57062000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> 5707 5708 * Make-lang.in (c++.distdir): Remove. 5709 57102000-11-04 Mark Mitchell <mark@codesourcery.com> 5711 5712 * decl2.c (do_nonmember_using_decl): Allow `extern "C"' 5713 declarations from different namespaces to be combined. 5714 57152000-11-03 Zack Weinberg <zack@wolery.stanford.edu> 5716 5717 * decl.c: Include tm_p.h. 5718 57192000-11-03 Joseph S. Myers <jsm28@cam.ac.uk> 5720 5721 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp (). 5722 57232000-11-02 Joseph S. Myers <jsm28@cam.ac.uk> 5724 5725 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c 5726 (build_overload_value), repo.c (open_repo_file), xref.c 5727 (open_xref_file): Use strchr () and strrchr () instead of index () 5728 and rindex (). 5729 57302000-11-01 Bernd Schmidt <bernds@redhat.co.uk> 5731 5732 * call.c (build_over_call): Call fold on the CALL_EXPR. 5733 57342000-11-01 Gabriel Dos Reis <gdr@codesourcery.com> 5735 5736 * error.c (dump_template_decl): Separate template hearders with 5737 space not comma. 5738 57392000-10-31 Gabriel Dos Reis <gdr@codesourcery.com> 5740 5741 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace 5742 TS_* flags with corresponding TFF_*. Adjust prototypes of 5743 functions (which used to take a tree_string_flags) to take an int. 5744 5745 * cp-tree.h (enum tree_string_flags): Remove 5746 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, 5747 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS, 5748 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 5749 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 5750 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, 5751 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros. 5752 (type_as_string, decl_as_string, expr_as_string, 5753 context_as_string): Adjust prototype. 5754 5755 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER 5756 instead of TS_PLAIN. 5757 5758 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF 5759 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of 5760 plain `0'. 5761 57622000-10-30 Mark Mitchell <mark@codesourcery.com> 5763 5764 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro. 5765 (linkage_kind): New enumeration. 5766 (decl_linkage): New function. 5767 * decl2.c (comdat_linkage): Extend comment. 5768 * error.c (dump_function_decl): Print the arguments used to 5769 instantiate a template, even when not printing the type of the 5770 function. 5771 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P, 5772 not TREE_PUBLIC, to test for external linkage. 5773 * tree.c (decl_linkage): New function. 5774 57752000-10-28 Mark Mitchell <mark@codesourcery.com> 5776 5777 * pt.c (instantiate_decl): Always instantiate static data members 5778 initialized in-class. 5779 57802000-10-27 Zack Weinberg <zack@wolery.stanford.edu> 5781 5782 * Make-lang.in: Move all build rules here from Makefile.in, 5783 adapt to new context. Wrap all rules that change the current 5784 directory in parentheses. Expunge all references to $(P). 5785 When one command depends on another and they're run all at 5786 once, use && to separate them, not ;. Add OUTPUT_OPTION to 5787 all object-file generation rules. Delete obsolete variables. 5788 5789 * Makefile.in: Delete. 5790 * config-lang.in: Delete outputs= line. 5791 57922000-10-26 Gabriel Dos Reis <gdr@codesourcery.com> 5793 5794 * error.c (dump_function_decl): Print no space between 5795 `ptr-operator' the `type-specifier' of the return type. 5796 (dump_type_prefix): Make sure we put space at the appropriate 5797 place. 5798 57992000-10-23 Jason Merrill <jason@redhat.com> 5800 5801 * call.c (equal_functions): Also call decls_match for extern "C" fns. 5802 58032000-10-22 Jason Merrill <jason@redhat.com> 5804 5805 * call.c (build_conditional_expr): Use ocp_convert to force 5806 rvalue conversion. 5807 58082000-10-22 Mark Mitchell <mark@codesourcery.com> 5809 5810 * call.c (standard_conversion): Use RVALUE_CONVs for all 5811 expressions that satisfy lvalue_p, not just those that satisfy 5812 real_lvalue_p. 5813 5814 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially. 5815 5816 * typeck.c (c_sizeof): Return an expression of `size_t' type, 5817 not one with TYPE_IS_SIZETYPE set. 5818 (dubious_conversion_warnings): Remove special-case code. 5819 58202000-10-21 Geoffrey Keating <geoffk@cygnus.com> 5821 5822 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE. 5823 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE. 5824 (dump_type_prefix): Print vector-of-int as 'int vector'. 5825 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE. 5826 * tree.c (walk_tree): Handle VECTOR_TYPE. 5827 5828 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS. 5829 58302000-10-21 Jason Merrill <jason@redhat.com> 5831 5832 * parse.y (operator): Set got_object from got_scope. 5833 Set looking_for_typename. 5834 * decl.c (lookup_name_real): Clear val after setting from_obj. 5835 Reorganize diagnostic. 5836 58372000-10-20 Jason Merrill <jason@redhat.com> 5838 5839 * tree.c (walk_tree): Don't walk into default args. 5840 5841 * error.c (dump_expr): Use host_integerp. 5842 58432000-10-20 David Edelsohn <edelsohn@gnu.org> 5844 5845 * typeck2.c (abstract_virtuals_error): Use "because" instead of 5846 "since" in error message. 5847 5848Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5849 5850 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE. 5851 58522000-10-20 Jeffrey Oldham <oldham@codesourcery.com> 5853 5854 * decl.c (revert_static_member_fn): Fixed typo. 5855 58562000-10-19 Mark Mitchell <mark@codesourcery.com> 5857 5858 * class.c (subobject_offset_fn): New type. 5859 (dfs_record_base_offsets): Remove. 5860 (record_base_offsets): Likewise. 5861 (dfs_search_base_offsets): Likewise. 5862 (record_subobject_offset): New function. 5863 (check_subobject_offset): Likewise. 5864 (walk_subobject_offsets): Likewise. 5865 (record_subobject_offsets): Likewise. 5866 (layout_conflict_p): Reimplement. 5867 (layout_nonempty_base_or_field): Correct handling of type 5868 conflicts during layout. 5869 (layout_empty_base): Likewise. 5870 (build_base_field): Adjust to handle new representation of empty 5871 base offset table. 5872 (build_base_fields): Likewise. 5873 (layout_virtual_bases): Likewise. 5874 (splay_tree_compare_integer_csts): New function. 5875 (layout_class_type): Use a splay_tree, rather than a varray, to 5876 represent the offsets of empty bases. 5877 5878 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL. 5879 * decl.c (select_decl): Don't return declarations that are 5880 DECL_ANTICIPATED. 5881 58822000-10-18 Mark Mitchell <mark@codesourcery.com> 5883 5884 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD. 5885 (fake_std_node): New macro. 5886 * decl.c (in_std): Rename to ... 5887 (in_fake_std): ... this. 5888 (flag_no_builtin): Remove. 5889 (flag_no_nonansi_builtin): Likewise. 5890 (walk_namespaces_r): Use fake_std_node. 5891 (push_namespace): Use std_identifier. 5892 (pop_namespace): Use in_fake_std. 5893 (lookup_name_real): Use fake_std_node. 5894 (init_decl_processing): When -fhonor-std, create the `std' 5895 namespace. Don't create a dummy fake_std_node in that case. 5896 Adjust call to c_common_nodes_and_builtins. Use std_identifier. 5897 (builtin_function): Put builtins whose names don't begin 5898 with `_' in the std namespace. 5899 * decl2.c (flag_no_builtin): Remove. 5900 (flag_no_nonansi_builtin): Likewise. 5901 (set_decl_namespace): Use fake_std_node. 5902 (validate_nonmember_using_decl): Likewise. 5903 (do_using_directive): Likewise. 5904 (handle_class_head): Likewise. 5905 * dump.c (dequeue_and_dump): Likewise. 5906 * except.c (init_exception_processing): Use std_identifier. 5907 * init.c (build_member_call): Use fake_std_node. 5908 * rtti.c (init_rtti_processing): Use std_identifier. 5909 59102000-10-17 Mark Mitchell <mark@codesourcery.com> 5911 5912 * cp-tree.h (back_end_hook): Remove declaration. 5913 * decl2.c (back_end_hook): Remove definition. 5914 5915 * dump.c (dequeue_and_dump): Dump TREE_USED. 5916 5917Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu> 5918 5919 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). 5920 59212000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 5922 5923 * decl.c (WINT_TYPE): Define. 5924 (init_decl_processing): Create types unsigned_ptrdiff_type_node, 5925 c_size_type_node, signed_size_type_node and wint_type_node. 5926 59272000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 5928 5929 * decl2.c (warn_missing_format_attribute): New variable. 5930 (lang_decode_option): Decode -Wmissing-format-attribute. 5931 59322000-10-16 Mark Mitchell <mark@codesourcery.com> 5933 5934 * typeck.c (qualify_type): Remove. 5935 (composite_pointer_type): Fix handling of conversions to `cv void*'. 5936 59372000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5938 5939 * Makefile.in (parse.c, parse.h): Fix think-o in last patch. 5940 59412000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5942 5943 * Makefile.in (parse.c, parse.h): Create atomically. 5944 59452000-10-12 Mark Mitchell <mark@codesourcery.com> 5946 5947 * class.c (current_obstack): Remove. 5948 * decl.c (ggc_p): Remove. 5949 (start_decl): Don't use decl_tree_cons. 5950 (grokdeclarator): Don't use build_decl_list. 5951 (start_function): Don't use decl_tree_cons. 5952 (finish_function): Don't mess with obstacks. 5953 * decl2.c (grok_x_components): Don't use build_decl_list. 5954 * lex.c (make_call_declarator): Don't call decl_tree_cons. 5955 (implicitly_declare_fn): Don't call build_decl_list. 5956 * parse.y (frob_specs): Don't call build_decl_list or 5957 decl_tree_cons. 5958 (expr_or_declarator_intern): Don't call decl_tree_cons. 5959 (primary): Don't call build_decl_list. 5960 (fcast_or_absdcl): Likewise. 5961 (typed_declspecs): Don't call decl_tree_cons. 5962 (reserved_declspecs): Don't call build_decl_list. 5963 (declmods): Likewise. 5964 (reserved_typespecquals): Likewise. 5965 (aggr): Likewise. 5966 (new_type_id): Likewise. 5967 (cv_qualifiers): Likewise. 5968 (after_type_declarator_intern): Likewise. 5969 (notype_declarator_intern): Likewise. 5970 (absdcl_intern): Likewise. 5971 (named_parm): Likewise. 5972 * pt.c (most_specialized_class): Likewise. 5973 * repo.c (temporary_obstack): Make it a structure, not a pointer. 5974 (init_repo): Initialize it. 5975 * search.c (current_obstack): Remove. 5976 * typeck2.c (add_exception_specifier): Don't call build_decl_list. 5977 59782000-10-09 Richard Henderson <rth@cygnus.com> 5979 5980 * Make-lang.in (CXX_EXTRA_HEADERS): Remove. 5981 (c++ language support bits for libgcc): Remove. 5982 (c++.clean): Remove cplib2.txt cleanup. 5983 * config-lang.in (headers, lib2funcs): Remove. 5984 5985 * exception.cc, new.cc, new1.cc, new2.cc: Remove files. 5986 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files. 5987 * inc/cxxabi.h, inc/exception, inc/new: Remove files. 5988 * inc/new.h, inc/typeinfo: Remove files. 5989 59902000-10-08 Joseph S. Myers <jsm28@cam.ac.uk> 5991 5992 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already 5993 defined. 5994 (init_decl_processing): Initialize intmax_type_node and 5995 uintmax_type_node. 5996 59972000-10-06 Richard Henderson <rth@cygnus.com> 5998 5999 * cp-tree.h (struct cp_language_function): Remove x_result_rtx. 6000 (original_result_rtx): Remove. 6001 * decl.c (save_function_data): Don't clear x_result_rtx. 6002 (mark_lang_function): Don't mark it either. 6003 * expr.c (fixup_result_decl): Remove. 6004 * semantics.c (genrtl_named_return_value): Frob the return decl 6005 before calling emit_local_var. 6006 (genrtl_finish_function): Don't call fixup_result_decl. 6007 Always emit the jump to return_label. 6008 60092000-10-06 Nathan Sidwell <nathan@codesourcery.com> 6010 6011 * pt.c (lookup_template_class): Set current access for enum. 6012 (tsubst_enum): Set file & line for enum decl. 6013 6014 * spew.c (yylex): Remove unused variable. 6015 60162000-10-05 Richard Henderson <rth@cygnus.com> 6017 6018 * semantics.c (genrtl_finish_function): Don't init or check 6019 can_reach_end; remove noreturn and return value checks. 6020 60212000-10-05 Tom Tromey <tromey@cygnus.com> 6022 6023 * init.c (build_java_class_ref): Use `build_static_name' with a 6024 suffix, not a prefix, to build the class object's name. 6025 60262000-10-05 Nathan Sidwell <nathan@codesourcery.com> 6027 6028 * cp-tree.h (access_kind): Fix comment typo. 6029 * decl2.c (grokfield): Fix diagnostic typo. 6030 * semantics.c (finish_template_type): Fix comment typo. 6031 (finish_qualified_object_call_expr): Likewise. 6032 60332000-10-05 Nathan Sidwell <nathan@codesourcery.com> 6034 6035 * pt.c (tsubst_expr, DECL_STMT case): Don't process if 6036 tsubsting fails. 6037 60382000-10-05 Nathan Sidwell <nathan@codesourcery.com> 6039 6040 * spew.c (frob_id): New static function. 6041 (frob_opname): Use it. 6042 (yylex): Use it. 6043 60442000-10-01 Mark Mitchell <mark@codesourcery.com> 6045 6046 * decl.c (lang_mark_false_label_stack): Remove. 6047 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared. 6048 60492000-09-30 Joseph S. Myers <jsm28@cam.ac.uk> 6050 6051 * gxxint.texi: Use @email for formatting email addresses. 6052 60532000-09-29 Gabriel Dos Reis <gdr@codesourcery.com> 6054 6055 * error.c: Remove direct obstack manipulation. Replace with 6056 output_buffer-based formatting. Adjust calls to removed macros. 6057 (obstack_chunk_alloc, obstack_chunk_free): Remove. 6058 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP, 6059 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise. 6060 60612000-09-24 Mark Mitchell <mark@codesourcery.com> 6062 6063 * ir.texi: Move to ../c-tree.texi. 6064 60652000-09-20 Jason Merrill <jason@redhat.com> 6066 6067 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P. 6068 60692000-09-21 Andreas Jaeger <aj@suse.de> 6070 6071 * errfn.c: Move declaration of cp_printer and cp_printers to ... 6072 * cp-tree.h: ... here. 6073 6074 * error.c: Remove declaration of cp_printer. 6075 60762000-09-20 Mark Mitchell <mark@codesourcery.com> 6077 6078 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs. 6079 60802000-09-20 Hans-Peter Nilsson <hp@axis.com> 6081 6082 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and 6083 users. 6084 60852000-09-18 Mark Mitchell <mark@codesourcery.com> 6086 6087 * decl.c (start_function): Robustify. 6088 60892000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6090 6091 * cp-tree.h (check_function_format): Accept a `status' parameter. 6092 6093 * call.c, typeck.c: Updates calls to `check_function_format'. 6094 60952000-09-17 Geoffrey Keating <geoffk@cygnus.com> 6096 6097 * decl2.c (handle_class_head): Always push some scope even 6098 in the error case. 6099 61002000-09-16 Mark Mitchell <mark@codesourcery.com> 6101 6102 * cp-tree.h (struct cp_language_function): Remove 6103 x_scope_stmt_stack and name_declared. 6104 (current_scope_stmt_stack): Remove. 6105 (function_name_declared_p): New macro. 6106 (struct lang_decl_flags): Use c_lang_decl as a base class. 6107 (context): Remove. 6108 (struct lang_decl): Replace saved_tree with context. 6109 (DECL_FRIEND_CONTEXT): Adjust accordingly. 6110 (SET_DECL_FRIEND_CONTEXT): Likewise. 6111 (DECL_VIRTUAL_CONTEXT): Likewise. 6112 (DECL_SAVED_TREE): Remove. 6113 (C_DECLARED_LABEL_FLAG): Likewise. 6114 (cplus_expand_expr_stmt): Don't declare. 6115 (add_decl_stmt): Likewise. 6116 (add_scope_stmt): Likewise. 6117 * decl.c (mark_stmt_tree): Remove. 6118 (case_compare): Likewise. 6119 (finish_case_label): Use c_add_case_label. 6120 (init_decl_processing): Set more language-specific hooks. 6121 (build_enumerator): Fix typo in comment. 6122 (cplus_expand_expr_stmt): Remove. 6123 (mark_lang_function): Use mark_c_language_function. 6124 (lang_mark_tree): Use c_mark_lang_decl. 6125 * decl2.c: Change order of inclusion. 6126 * except.c: Likewise. 6127 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall 6128 back on c_expand_expr. 6129 * friend.c: Include expr.h. 6130 * init.c: Change order of inclusion. 6131 * Makefile.in: Update dependencies. 6132 * lex.h (free_lang_decl_chain): Remove. 6133 * optimize.c (maybe_clone_body): Use function_name_declared_p. 6134 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if 6135 it doesn't exist. 6136 (instantiate_decl): Use function_name_declared_p. 6137 * semantics.c (lang_expand_expr_stmt): Remove. 6138 (set_current_function_name_declared): Likewise. 6139 (current_function_name_declared): Likewise. 6140 (begin_compound_stmt): Use function_name_declared_p. 6141 (add_decl_stmt): Remove. 6142 (setup_vtbl_ptr): Use function_name_declared_p. 6143 (add_scope_stmt): Remove. 6144 (current_scope_stmt_stack): New function. 6145 (cp_expand_stmt): Don't handle SCOPE_STMTs. 6146 (expand_body): Use function_name_declared_p. 6147 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. 6148 * typeck.c: Change order of includes. 6149 (convert_sequence): Remove. 6150 61512000-09-14 Joseph S. Myers <jsm28@cam.ac.uk> 6152 6153 * lex.c (reswords): Add _Complex. 6154 6155Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6156 6157 * Make-lang.in (cplib2.txt): Depend on cp/Makefile. 6158 61592000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> 6160 6161 * init.c (begin_init_stmts): Don't use // comments. 6162 61632000-09-12 Jason Merrill <jason@redhat.com> 6164 6165 * decl.c (maybe_deduce_size_from_array_init): Set do_default for 6166 all non-extern arrays. 6167 6168 * decl.c (grokdeclarator): Complain about 'friend T' for implicit 6169 typenames, too. Downgrade complaint to pedwarn. 6170 (xref_tag): Warn about surprising behavior of 'friend struct T'. 6171 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for 6172 'class This::Inherited'. 6173 61742000-09-12 Mark Mitchell <mark@codesourcery.com> 6175 6176 * decl.c (finish_case_label): Given the LABEL_DECL a 6177 DECL_CONTEXT. 6178 61792000-09-12 Gabriel Dos Reis <gdr@codesourcery.com> 6180 6181 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, 6182 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF, 6183 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 6184 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 6185 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE): 6186 New macros. 6187 (sorry_for_unsupported_tree, print_scope_operator, 6188 print_left_paren, print_right_paren, print_left_bracket, 6189 print_right_bracket, print_whitespace): Likewise. 6190 (aggr_variety): Rename to class_key_or_enum. 6191 (print_type): Rename to print_type_id. 6192 (print_type_specifier_seq, print_simple_type_specifier, 6193 print_elaborated_type_specifier, 6194 print_rest_of_abstract_declarator, 6195 print_parameter_declaration_clause, print_exception_specification, 6196 print_nested_name_specifier, print_template_id, 6197 typedef_original_name, print_template_argument_list_start, 6198 print_template_argument_list_end): New functions. 6199 62002000-09-11 Gabriel Dos Reis <gdr@codesourcery.com> 6201 6202 * ir.texi: Add more documentation. 6203 62042000-09-11 Mark Mitchell <mark@codesourcery.com> 6205 6206 * cp-tree.h (struct saved_scope): Remove x_function_parms. 6207 (current_function_parms): Don't define. 6208 (struct cp_language_function): Remove parms_stored. 6209 (current_function_just_assigned_this): Don't define. 6210 (current_function_parms_stored): Likewise. 6211 (static_ctors): Declare. 6212 (static_dtors): Likewise. 6213 (SF_EXPAND): Don't define. 6214 (expand_start_early_try_stmts): Remove declaration. 6215 (store_parm_decls): Likewise. 6216 * decl.c (static_ctors): Don't declare. 6217 (static_dtors): Likewise. 6218 (struct binding_level): Remove this_block. 6219 (poplevel): Remove dead code. 6220 (set_block): Likewise. 6221 (mark_binding_level): Don't mark this_block. 6222 (mark_saved_scope): Don't mark x_function_parms. 6223 (init_decl_processing): Don't add current_function_parms as a GC 6224 root. 6225 (check_function_type): Change prototype. 6226 (start_function): Remove RTL-generation code. 6227 (expand_start_early_try_stmts): Remove. 6228 (store_parm_decls): Give it internal linkage. Remove 6229 RTL-generation code. 6230 (finish_function): Remove RTL-generation code. 6231 * decl2.c (static_ctors): Fix formatting. 6232 (static_dtors): Likewise. 6233 * method.c (use_thunk): Don't call store_parm_decls. 6234 (synthesize_method): Likewise. 6235 * optimize.c (maybe_clone_body): Likewise. 6236 * parse.y (fn.def2): Likewise. 6237 (.set_base_init): Likewise. 6238 (nodecls): Likewise. 6239 * pt.c (instantiate_decl): Likewise. 6240 * rtti.c (synthesize_tinfo_fn): Likewise. 6241 * semantics.c (genrtl_try_block): Simplify. 6242 (expand_body): Use genrtl_start_function and 6243 genrtl_finish_function. 6244 (genrtl_start_function): New function. 6245 (genrtl_finish_function): Likewise. 6246 62472000-09-11 Nathan Sidwell <nathan@codesourcery.com> 6248 6249 * error.c (cp_tree_printer, case 'P'): Append break. 6250 62512000-09-11 Nathan Sidwell <nathan@codesourcery.com> 6252 6253 * cp-tree.h (frob_opname): Declare. 6254 * parse.y (saved_scopes): New static variable. 6255 (cp_parse_init): Adjust. 6256 (do_id): If lastiddecl is NULL, do do_identifier. 6257 (operator): Save scope information. 6258 (unoperator): New reduction. Restore scope information. 6259 (operator_name): Append unoperator. Call frob_opname. 6260 * spew.c (frob_opname): Define. 6261 62622000-09-10 Zack Weinberg <zack@wolery.cumb.org> 6263 6264 * decl.c, rtti.c: Include defaults.h if not already included. 6265 Don't define the *_TYPE_SIZE macros. 6266 62672000-09-09 Mark Mitchell <mark@codesourcery.com> 6268 6269 * cp-tree.h (push_switch): Change prototype. 6270 (check_cp_case_value): Remove declaration. 6271 (decl_constant_value): Likewise. 6272 * decl.c (struct cp_switch): Add switch_stmt and cases. 6273 (case_compare): New function. 6274 (push_switch): Set switch_stmt. Initialize cases. 6275 (pop_switch): Clean up cases. 6276 (define_case_label): Rename to ... 6277 (finish_case_label): ... this. Do semantic analysis for case 6278 labels here. 6279 (start_function): Correct comment. 6280 * decl2.c (check_cp_case_value): Remove. 6281 * expr.c (do_case): Remove. 6282 * pt.c (tsubst_expr): Adjust call to finish_case_label. 6283 * semantics.c (genrtl_do_poplevel): Remove declaration. 6284 (RECHAIN_STMTS): Remove. 6285 (finish_break_stmt): Use build_break_stmt. 6286 (finish_continue_stmt): Use build_continue_stmt. 6287 (finish_switch_cond): Adjust condition here, rater than in 6288 c_expand_start_case. 6289 (finish_case_label): Remove. 6290 * typeck.c (c_expand_return): Remove. 6291 (c_expand_start_case): Likewise. 6292 62932000-09-07 Gabriel Dos Reis <gdr@codesourcery.com> 6294 6295 * ir.texi: Document type nodes. 6296 62972000-09-06 Mark Mitchell <mark@codesourcery.com> 6298 6299 * cp-tree.h (init_cp_semantics): Declare. 6300 (genrtl_try_block): Don't declare. 6301 (genrtl_handler): Likewise. 6302 (genrtl_catch_block): Likewise. 6303 (genrtl_ctor_stmt): Likewise. 6304 (genrtl_subobject): Likewise. 6305 (genrtl_do_poplevel): Likewise. 6306 (genrtl_named_return_value): Likewise. 6307 * lex.c (init_parse): Call init_cp_semantics. 6308 * semantics.c (genrtl_try_block): Give it internal linkage. 6309 (genrtl_handler): Likewise. 6310 (genrtl_catch_block): Likewise. 6311 (genrtl_ctor_stmt): Likewise. 6312 (genrtl_subobject): Likewise. 6313 (genrtl_do_poplevel): Likewise. 6314 (genrtl_named_return_value): Likewise. 6315 (lang_expand_stmt): Rename to ... 6316 (cp_expand_stmt): ... this. Only handle C++-specific nodes. 6317 (init_cp_semantics): Define. 6318 6319 * decl.c (initialize_local_var): Remove RTL-generating code. 6320 * semantics.c (genrtl_try_block): Fix formatting. 6321 6322 Move statement-tree facilities from C++ to C front-end. 6323 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO. 6324 (void_zero_node): Remove. 6325 (stmt_tree): Likewise. 6326 (scope_chain): Adjust. 6327 (language_function): Rename to cp_language_function. 6328 (cp_function_chain): Adjust. 6329 (current_stmt_tree): Remove. 6330 (last_tree): Likewise. 6331 (last_expr_type): Likewise. 6332 (struct lang_decl): Adjust. 6333 (STMT_IS_FULL_EXPR_P): Remove. 6334 (add_tree): Remove. 6335 (begin_stmt_tree): Likewise. 6336 (finish_stmt_tree): Likewise. 6337 (walk_tree_fn): Likewise. 6338 (walk_stmt_tree): Likewise. 6339 * class.c (finish_struct): Replace use of add_tree with add_stmt. 6340 * decl.c (mark_stmt_tree): Adjust type. 6341 (init_decl_processing): Don't build void_zero_node. 6342 (initialize_local_var): Adjust usage of current_stmt_tree. 6343 (finish_enum): Use add_stmt, not add_tree. 6344 (save_function_data): Adjust use of language_function. 6345 (finish_constructor_body): Use add_stmt, not add_tree. 6346 (finish_destructor_body): Likewise. 6347 (push_cp_function_context): Adjust use of language_function. 6348 (pop_cp_function_context): Likewise. 6349 (mark_lang_function): Likewise. 6350 (mark_cp_function_context): Likewise. 6351 * init.c (build_aggr_init): Adjust use of current_stmt_tree. 6352 (build_vec_init): Likewise. 6353 * semantics.c (SET_LAST_STMT): Remove. 6354 (RECHAIN_STMTS): Don't use it. 6355 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree. 6356 (current_stmt_tree): Define. 6357 (add_tree): Remove. 6358 (finish_goto_stmt): Use add_stmt, not add_tree. 6359 (finish_expr_stmt): Likewise. 6360 (begin_if_stmt): Likewise. 6361 (finish_then_clause): Likewise. 6362 (begin_while_stmt): Likewise. 6363 (begin_do_stmt): Likewise. 6364 (finish_return_stmt): Likewise. 6365 (begin_for_stmt): Likewise. 6366 (finish_break_stmt): Likewise. 6367 (finish_continue_stmt): Likewise. 6368 (begin_switch_stmt): Likewise. 6369 (finish_case_label): Likewise. 6370 (begin_try_block): Likewise. 6371 (begin_function_try_block): Likewise. 6372 (begin_handler): Likewise. 6373 (begin_catch_block): Likewise. 6374 (begin_compound_stmt): Likewise. 6375 (begin_asm_stmt): Likewise. 6376 (finish_asm_stmt): Likewise. 6377 (finish_label_stmt): Likewise. 6378 (add_decl_stmt): Likewise. 6379 (finish_subobject): Likewise. 6380 (finish_decl_cleanup): Likewise. 6381 (finish_named_return_value): Likewise. 6382 (setup_vtbl_ptr): Likewise. 6383 (add_scope_stmt): Likewise. 6384 (finish_stmt_expr): Likewise. 6385 (prune_unused_decls): Remove. 6386 (begin_stmt_tree): Likewise. 6387 (finish_stmt_tree): Likewise. 6388 (prep_stmt): Adjust use of current_stmt_tree. 6389 (lang_expand_stmt): Likewise. 6390 * tree.c (statement_code_p): Remove. 6391 (cp_statement_code_p): New function. 6392 (walk_stmt_tree): Remove. 6393 (init_tree): Set lang_statement_code_p. 6394 63952000-09-06 Zack Weinberg <zack@wolery.cumb.org> 6396 6397 Integrated preprocessor. 6398 6399 * Make-lang.in, Makefile.in: Remove all references to input.c, 6400 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. 6401 * gxx.gperf, hash.h, input.c: Delete. 6402 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is 6403 initialized properly. 6404 6405 * class.c (fixup_pending_inline): Take a tree, not a 6406 struct pending_inline *. All callers changed. 6407 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, 6408 RID_PROTECTED entries in ridpointers[] array here. 6409 * decl.c (duplicate_decls): Do not refer to struct 6410 pending_inline. 6411 (record_builtin_type, init_decl_processing): Use RID_MAX not 6412 CP_RID_MAX. 6413 (grokdeclarator): Use C_IS_RESERVED_WORD. 6414 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of 6415 cpplib. 6416 (grok_x_components): Do not inspect pending_inlines chain. 6417 6418 * cp-tree.h (struct lang_identifier): Add rid_code entry. 6419 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. 6420 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. 6421 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, 6422 TIME_IDENTIFIER_FILEINFO): Kill. 6423 Update prototypes. 6424 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a 6425 single 32-bit word. 6426 * parse.y: Call do_pending_inlines unconditionally. 6427 reinit_parse_for_method is now snarf_method. fn.defpen is no 6428 longer necessary. Remove unnecessary <itype> annotation on 6429 SCOPE. Do not refer to end_of_file or struct pending_inline. 6430 * semantics.c (begin_inline_definitions): Call 6431 do_pending_inlines unconditionally. 6432 6433 * lex.c: Remove all code now shared with C front end. 6434 Initialize cpplib properly if USE_CPPLIB. Put reserved words 6435 into the get_identifier table. Rewrite pragma handling to 6436 work with the registry. Move code to save tokens for later 6437 processing to spew.c. 6438 6439 * spew.c: Rewrite everything in terms of token streams instead 6440 of text. Move routines here from lex.c / input.c as 6441 appropriate. GC-mark trees hanging off the pending inlines 6442 chain. 6443 64442000-09-06 Mark Mitchell <mark@codesourcery.com> 6445 6446 * NEWS: Mention that the named return value extension has been 6447 deprecated. 6448 * cp-tree.h (original_result_rtx): Define. 6449 (TREE_REFERENCE_EXPR): Remove. 6450 (DECL_VPARENT): Likewise. 6451 (pushdecl_nonclass_level): Likewise. 6452 (store_return_init): Likewise. 6453 (reinit_lang_specific): Likewise. 6454 (genrtl_named_return_value): Change prototype. 6455 * decl.c (original_result_rtx): Remove. 6456 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs. 6457 Do not generate RTL for local variables here. 6458 (store_return_init): Remove. 6459 * semantics.c (genrtl_named_return_value): Simplify. Fold in 6460 store_return_init. 6461 (finish_named_return_value): Adjust accordingly. Warn that this 6462 extension is deprecated. 6463 (lang_expand_stmt): Adjust call to genrtl_named_return_value. 6464 64652000-09-06 Nathan Sidwell <nathan@codesourcery.com> 6466 6467 * pt.c (type_unification_real): Replace switch with if. 6468 (unify): Tsubst non-type parms before comparing. 6469 64702000-09-06 Nathan Sidwell <nathan@codesourcery.com> 6471 6472 * error.c (dump_typename): New function, broken out of ... 6473 (dump_type): ... here. Use it. 6474 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE. 6475 64762000-09-06 Nathan Sidwell <nathan@codesourcery.com> 6477 6478 * init.c (build_offset_ref): Deal with namespace scoped 6479 TEMPLATE_ID_EXPRs. 6480 64812000-09-06 Nathan Sidwell <nathan@codesourcery.com> 6482 6483 * class.c (resolve_address_of_overloaded_function): Add 6484 explanation message. 6485 * decl.c (define_case_label): Reformat explanation. 6486 * decl2.c (finish_static_data_member_decl): Likewise. 6487 (grokfield): Likewise. 6488 * friend.c (do_friend): Likewise. 6489 64902000-09-05 Zack Weinberg <zack@wolery.cumb.org> 6491 6492 * tree.c (walk_tree): Expose tail recursion. 6493 (walk_stmt_tree): New function. 6494 * cp-tree.h: Prototype walk_stmt_tree. 6495 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not 6496 the BLOCKs directly. If a BLOCK has no variables after 6497 pruning, discard it. 6498 (finish_stmt_tree): Use walk_stmt_tree. No need to save and 6499 restore the line number. 6500 65012000-09-05 Mark Mitchell <mark@codesourcery.com> 6502 6503 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H. 6504 (pt.o): Remove dependency on HTAB_H. 6505 * cp-tree.h: Include hashtab.h. 6506 (walk_tree): Change prototype. 6507 (walk_tree_without_duplicates): New function. 6508 * decl.c (check_default_argument): Use it. 6509 * optimize.c (remap_decl): Adjust calls to walk_tree. 6510 (copy_body): Likewise. 6511 (expand_calls_inline): Likewise. 6512 (calls_setjmp_p): Use walk_tree_without_duplicates. 6513 * pt.c: Don't include hashtab.h. 6514 (for_each_template_parm): Use walk_tree_without_duplicates. 6515 * semantics.c (finish-stmt_tree): Likewise. 6516 (expand_body): Likewise. 6517 * tree.c (walk_tree): Add additional parameter. 6518 (walk_tree_without_duplicates): New function. 6519 (count_trees): Use it. 6520 (verify_stmt_tree): Adjust call to walk_tree. 6521 (find_tree): Use walk_tree_without_duplicates. 6522 (no_linkage_check): Likewise. 6523 (break_out_target_exprs): Adjust call to walk_tree. 6524 (cp_unsave): Likewise. 6525 65262000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6527 6528 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code. 6529 (TEMPLATE_TEMPLATE_PARM): Adjust comment. 6530 * cp-tree.h (TYPE_BINFO): Adjust comment. 6531 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 6532 (TEMPLATE_TYPE_PARM_INDEX): Likewise. 6533 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 6534 (TYPE_TEMPLATE_INFO): Likewise. 6535 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise. 6536 * class.c (push_nested_class): Likewise. 6537 * decl.c (lookup_name_real): Likewise. 6538 (grokdeclarator): Likewise. 6539 (grok_op_properties): Likewise. 6540 (xref_tag): Likewise. 6541 (xref_basetypes): Likewise. 6542 * decl2.c (constructor_name_full): Likewise. 6543 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case. 6544 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 6545 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case. 6546 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6547 (dump_type_suffix): Likewise. 6548 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM 6549 instead. 6550 (get_aggr_from_typedef): Likewise. 6551 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case. 6552 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6553 (write_template_parm): Likewise. 6554 (write_template_template_parm): Check tree code instead of 6555 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 6556 * method.c (build_overload_nested_name): Add 6557 BOUND_TEMPLATE_TEMPLATE_PARM. 6558 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case. 6559 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6560 * pt.c (convert_template_argument): Check tree code instead of 6561 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 6562 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case. 6563 (for_each_template_parm): Adjust comment. 6564 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. 6565 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6566 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use 6567 template_args_equal to compare template template parameter cases. 6568 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6569 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM 6570 instead. 6571 * tree.c (copy_template_template_parm): Decide whether to create 6572 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node. 6573 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM. 6574 (copy_tree_r): Likewise. 6575 * typeck.c (comptypes): Likewise. Check tree code instead of 6576 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 6577 65782000-09-04 Mark Elbrecht <snowball3@bigfoot.com> 6579 6580 * decl.c (finish_function): Move the code for handling functions 6581 marked with the constructor and destructor attributes inside the 6582 expand_p block. 6583 65842000-09-04 Nathan Sidwell <nathan@codesourcery.com> 6585 6586 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR. 6587 65882000-09-04 Nathan Sidwell <nathan@codesourcery.com> 6589 6590 * pt.c (lookup_template_class): Remove abort. 6591 * tree.c (get_type_decl): Allow error_mark_node. 6592 65932000-09-04 Nathan Sidwell <nathan@codesourcery.com> 6594 6595 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside 6596 TEMPLATE_ID_EXPRs. 6597 65982000-09-03 Mark Mitchell <mark@codesourcery.com> 6599 6600 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change 6601 new ABI mangling. 6602 66032000-09-01 Nathan Sidwell <nathan@codesourcery.com> 6604 6605 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify 6606 union tag mismatch error reporting. 6607 66082000-09-01 Nathan Sidwell <nathan@codesourcery.com> 6609 6610 * call.c (build_scoped_method_call): Check it is not a namespace. 6611 66122000-08-30 Jason Merrill <jason@redhat.com> 6613 6614 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context. 6615 6616 * tree.c (bot_manip): Check TREE_CONSTANT rather than 6617 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and 6618 build_target_expr_with_type for the non-AGGR_INIT_EXPR case. 6619 6620 * decl.c (start_function): Always call make_function_rtl. 6621 66222000-08-29 Zack Weinberg <zack@wolery.cumb.org> 6623 6624 * semantics.c (prune_unused_decls): New function. 6625 (finish_stmt_tree): Call it via walk_tree. 6626 66272000-08-29 Zack Weinberg <zack@wolery.cumb.org> 6628 6629 * class.c (build_secondary_vtable): Constify a char *. 6630 * decl.c (init_decl_processing): Initialize function_id_node, 6631 pretty_function_id_node, and func_id_node. 6632 * input.c (struct input_source): Constify 'str'. 6633 (feed_input): Constify first argument. 6634 * mangle.c (write_identifier): Constify argument. 6635 * pt.c (mangle_class_name_for_template): Constify argument. 6636 66372000-08-29 Mark Mitchell <mark@codesourcery.com> 6638 6639 * typeck.c (mark_addressable): Remove code that pokes around in 6640 RTL. 6641 66422000-08-28 Jason Merrill <jason@redhat.com> 6643 6644 * lex.c (file_name_nondirectory): Move to toplev.c. 6645 6646 * cp-tree.h (LOCAL_CLASS_P): New macro. 6647 * class.c (finish_struct_1): Use it. 6648 66492000-08-27 Alex Samuel <samuel@codesourcery.com> 6650 6651 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo. 6652 (write_encoding): Pass another argument to write_name. 6653 (write_name): Add ignore_local_scope parameter. Fix handling of 6654 local names. 6655 (write_nested_name): Use write_unqualified_name. 6656 (write_prefix): Likewise. Skip out on FUNCTION_DECLs. 6657 (write_template_prefix): Use write_unqualified_name. 6658 (write_component): Remove. 6659 (write_local_name): Add parameter. Use direct local entity to 6660 discriminator calculation. 6661 (write_class_enum_type): Pass another argument to write_name. 6662 (write_template_template_arg): Likewise. 6663 (make_guard_variable): Likewise. 6664 66652000-08-27 Jason Merrill <jason@redhat.com> 6666 6667 * decl.c (pushdecl): Matching decls for local externs are found in 6668 the current level. Propagate linkage information from previous 6669 declarations. 6670 66712000-08-26 Gabriel Dos Reis <gdr@codesourcery.com> 6672 6673 * ir.texi (Expressions): Fix typo. 6674 66752000-08-25 Greg McGary <greg@mcgary.org> 6676 6677 * tree.c (init_tree): Use ARRAY_SIZE. 6678 66792000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 6680 6681 * error.c (cp_tree_printer): Rework. 6682 66832000-08-25 Mark Mitchell <mark@codesourcery.com> 6684 6685 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and 6686 dyn-string.o. 6687 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c. 6688 (cp-demangle.o): Remove target. 6689 (dyn-string.o): Likewise. 6690 6691 * decl.c (grokfndecl): Require that `main' return an `int'. 6692 * mangle.c (write_encoding): Don't mangle return types for 6693 conversion functions. 6694 66952000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 6696 6697 * error.c (tree_formatting_info): New data type. 6698 (tree_being_formatted): New macro. 6699 (tree_formatting_flags): Likewise. 6700 (put_whitespace): Likewise. 6701 (print_tree_identifier): Likewise. 6702 (print_identifier): Likewise. 6703 (cp_tree_printer, print_function_argument_list, print_declaration, 6704 print_expression, print_function_declaration, 6705 print_function_parameter, print_type, print_cv_qualifier): New 6706 functions. 6707 (init_error): Initialize lang_printer. 6708 67092000-08-24 Jason Merrill <jason@redhat.com> 6710 6711 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no 6712 adjustment necessary. 6713 67142000-08-24 Greg McGary <greg@mcgary.org> 6715 6716 * cp-tree.h (MAIN_NAME_P): Remove macro. 6717 67182000-08-24 Gabriel Dos Reis <gdr@codesourcery.com> 6719 6720 * error.c (print_instantiation_context): Don't forget to flush the 6721 buffer. 6722 67232000-08-23 Jason Merrill <jason@redhat.com> 6724 6725 * typeck.c (build_ptrmemfunc): Save the input pmf. 6726 6727 * method.c (process_modifiers): Use same_type_p. 6728 67292000-08-23 Mark Mitchell <mark@codesourcery.com> 6730 6731 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC. 6732 * mangle.c (write_function_type): Change prototype. 6733 (write_encoding): Don't mangle return types for 6734 constructors or destructors. 6735 (write_type): Adjust call to write_function_type. 6736 * pt.c (instantiate_template): Instantiate alternate entry points 6737 when instantiating the main function. 6738 67392000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 6740 6741 * error.c (cp_print_error_function): Don't use embedded '\n' in 6742 output_printf. 6743 67442000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 6745 6746 * decl.c (init_decl_processing): Remove bogus initialization. 6747 * error.c (lang_print_error_function): Restore here. 6748 (init_error): Initialize print_error_function. 6749 67502000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 6751 6752 * decl2.c (arg_assoc): Revert my 2000-08-11 change. 6753 67542000-08-22 Gabriel Dos Reis <gdr@codesourcery.com> 6755 6756 * Makefile.in (error.o): Depends on diagnostic.h 6757 6758 * cp-tree.h (problematic_instantiation_changed, 6759 record_last_problematic_instantiation, current_instantiation, 6760 print_instantiation_context): Declare. 6761 (maybe_print_template_context): Remove. 6762 6763 * decl.c (init_decl_processing): Set print_error_function to NULL. 6764 (lang_print_error_function): Remove, since we're using a new 6765 machinery. 6766 6767 * error.c: #include diagnostic.h 6768 (function_category): New function. 6769 (cp_diagnostic_starter): Likewise. 6770 (cp_diagnostic_finalizer): Likewise. 6771 (cp_print_error_function): Likewise. 6772 (maybe_print_instantiation_context): Likewise. 6773 (print_instantiation_full_context): Likewise. 6774 (print_instantiation_partial_context): Likewise. 6775 (print_instantiation_context): Define. 6776 (init_error): Initialize diagnostic pager and finalizer. 6777 6778 * pt.c (problematic_instantiation_changed): Define. 6779 (record_last_problematic_instantiation): Likewise. 6780 (current_instantiation): Likewise. 6781 (maybe_print_template_context): Remove. 6782 (print_template_context): Likewise. 6783 (current_tinst_level): Make static to reflect Brendan Kehoe's 6784 change of 1995-04-13. 6785 (push_tinst_level): Call print_instantiation_context. 6786 67872000-08-21 Nix <nix@esperi.demon.co.uk> 6788 6789 * lang-specs.h: Do not process -o or run the assembler if 6790 -fsyntax-only. 6791 67922000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> 6793 6794 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New 6795 variables. 6796 * decl2.c (lang_decode_option): Disable gettext attributes for 6797 -ansi. 6798 67992000-08-21 Gabriel Dos Reis <gdr@codesourcery.com> 6800 6801 * lex.c (lang_init_options): Default diagnostic message maximum 6802 length to 80, when line-wrapping. 6803 68042000-08-20 Mark Mitchell <mark@codesourcery.com> 6805 6806 * class.c (build_vtbl_initializer): Clear the entire 6807 vtbl_init_data. Start keeping track of the functions for which we 6808 have created vcall offsets here. 6809 (dfs_build_vcall_offset_vtbl_entries): Remove. 6810 (build_vcall_offset_vtbl_entries): Reimplement. 6811 (add_vcall_offset_vtbl_entries_r): New function. 6812 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for 6813 computing when vcall offsets are necessary. 6814 68152000-08-18 Nathan Sidwell <nathan@codesourcery.com> 6816 6817 * decl.c (member_function_or_else): Use cp_error ... %T. 6818 (grokdeclarator): Likewise. 6819 (start_method): Likewise. 6820 * friend.c (make_friend_class): Use cp_pedwarn ... %T. 6821 68222000-08-18 Nathan Sidwell <nathan@codesourcery.com> 6823 6824 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class 6825 TYPE_DECLs. 6826 68272000-08-18 Nathan Sidwell <nathan@codesourcery.com> 6828 6829 * cp-tree.h (PTRMEM_OK_P): New macro. 6830 (itf_ptrmem_ok): New enumeration value. 6831 * class.c (resolve_address_of_overloaded_function): Add PTRMEM 6832 argument. Diagnose implicit pointer to member. 6833 (instantiate_type): Don't diagnose implicit pointer to member 6834 here. Pass itf_ptrmem_ok if ok. Adjust calls to 6835 resolve_address_of_overloaded_function. 6836 * init.c (build_offset_ref): Set PTRMEM_OK_P. 6837 (resolve_offset_ref): Don't diagnose implicit pointer to member here. 6838 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here. 6839 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P. 6840 (build_unary_op): Deal with single non-static member in 6841 microsoft-land. 6842 68432000-08-18 Nathan Sidwell <nathan@codesourcery.com> 6844 6845 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE. 6846 68472000-08-18 Nathan Sidwell <nathan@codesourcery.com> 6848 6849 * cp-tree.h (enum_name_string): Remove prototype. 6850 (report_case_error): Remove prototype. 6851 * cp/typeck2.c (enum_name_string): Remove. 6852 (report_case_error): Remove. 6853 * error.c (dump_expr): Deal with enum values directly. 6854 Correctly negate integer constant. 6855 68562000-08-17 Nathan Sidwell <nathan@codesourcery.com> 6857 6858 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare. 6859 (__cxa_vec_delete2, __cxa_vec_delete3): Declare. 6860 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement. 6861 (__cxa_vec_delete2, __cxa_vec_delete3): Implement. 6862 (__cxa_vec_new): Use __cxa_vec_new2. 6863 (__cxa_vec_delete): Use __cxa_vec_delete2. 6864 68652000-08-17 Nathan Sidwell <nathan@codesourcery.com> 6866 6867 * vec.cc (__cxa_vec_new): Set "C" linkage. 6868 (__cxa_vec_ctor): Likewise. 6869 (__cxa_vec_cctor): Likewise. 6870 (__cxa_vec_dtor): Likewise. 6871 (__cxa_vec_delete): Likewise. 6872 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage. 6873 (__cxa_vec_ctor): Likewise. 6874 (__cxa_vec_cctor): Likewise. 6875 (__cxa_vec_dtor): Likewise. 6876 (__cxa_vec_delete): Likewise. 6877 68782000-08-17 Nathan Sidwell <nathan@codesourcery.com> 6879 6880 * class.c (instantiate_type): Reinstate local variable 6881 deleted in previous change. 6882 6883 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not 6884 itf_no_attributes. 6885 68862000-08-17 Nathan Sidwell <nathan@codesourcery.com> 6887 6888 * cp-tree.h (instantiate_type_flags): New enumeration. 6889 (instantiate_type): Change parameter. 6890 * class.c (instantiate_type): Adjust prototype. Adjust. 6891 * call.c (standard_conversion): Adjust instantiate_type call. 6892 (reference_binding): Likewise. 6893 (build_op_delete_call): Likewise. 6894 (convert_like_real): Likewise. 6895 * cvt.c (cp_convert_to_pointer): Likewise. 6896 (convert_to_reference): Likewise. 6897 * pt.c (convert_nontype_argument): Likewise. 6898 * typeck.c (build_binary_op): Likewise. 6899 (build_ptrmemfunc): Likewise. 6900 (convert_for_assignment): Likewise. 6901 69022000-08-17 Nathan Sidwell <nathan@codesourcery.com> 6903 6904 * cp-tree.h (CPTR_AGGR_TAG): New global tree node. 6905 (current_aggr): Define. 6906 * decl.c (grokdeclarator): Make sure a friend class is an 6907 elaborated type specifier. 6908 * parse.y (current_aggr): Remove static definition. 6909 (cp_parse_init): Adjust. 6910 (structsp): Clear and restore current_aggr. 6911 (component_decl_list): Clear current_aggr. 6912 6913 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the 6914 aggregate tag on the typename's context. 6915 6916 * pt.c (tsubst_friend_class): Return error_mark_node, if 6917 parms becomes NULL. 6918 (instantiate_class_template): Ignore error_mark_node friend types. 6919 69202000-08-14 Nathan Sidwell <nathan@codesourcery.com> 6921 6922 * cvt.c (warn_ref_binding): New static function, broken out of ... 6923 (convert_to_reference): ... here. Use it. 6924 69252000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 6926 6927 * parse.y (template_arg): Add rule for template qualified with 6928 global scope. 6929 69302000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 6931 6932 * decl2.c (add_function): Reorganize. 6933 (arg_assoc): Do not consider function template decls. 6934 69352000-08-11 Jason Merrill <jason@redhat.com> 6936 6937 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're 6938 looking inside. 6939 69402000-08-11 Nathan Sidwell <nathan@codesourcery.com> 6941 6942 * cp-tree.h (resolve_scope_to_name): Remove unused prototype. 6943 (lookup_nested_tag): Likewise. 6944 6945 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs 6946 can be produced. 6947 69482000-08-11 Nathan Sidwell <nathan@codesourcery.com> 6949 6950 * parse.y (named_complex_class_head_sans_basetype): Remove 6951 always true if. 6952 69532000-08-11 Nathan Sidwell <nathan@codesourcery.com> 6954 6955 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build 6956 explicit TEMPLATE_ID_EXPR args. 6957 (build_expr_from_tree, case CALL_EXPR): Likewise. 6958 69592000-08-11 Nathan Sidwell <nathan@codesourcery.com> 6960 6961 * decl.c (check_tag_decl): Diagnose typename's which don't 6962 declare anything. 6963 69642000-08-10 Nathan Sidwell <nathan@codesourcery.com> 6965 6966 * init.c (build_aggr_init): Reject bogus array initializers 6967 early. 6968 69692000-08-09 Nathan Sidwell <nathan@codesourcery.com> 6970 6971 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi 6972 runtime. 6973 * cp/tinfo.cc (__dynamic_cast): Likewise. 6974 * cp/inc/cxxabi.h (__dynamic_cast): Likewise. 6975 69762000-08-09 Nathan Sidwell <nathan@codesourcery.com> 6977 6978 * cvt.c (convert_to_pointer_force): Fix error message when 6979 attempting to cast from ambiguous base. 6980 69812000-08-08 Jason Merrill <jason@redhat.com> 6982 6983 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails. 6984 (tsubst_template_arg_vector): Likewise. 6985 6986 * decl2.c (build_anon_union_vars): Choose the largest field; don't 6987 assume that one will be as large as the union. 6988 69892000-08-07 Kazu Hirata <kazu@hxi.com> 6990 6991 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo. 6992 * decl.c (pop_labels): Likewise. 6993 69942000-08-04 Jeffrey Oldham <oldham@codesourcery.com> 6995 6996 * inc/cxxabi.h (__pbase_type_info): Changed member names to match 6997 specifications. 6998 (__pointer_to_member_type_info): Likewise. 6999 (__base_class_info): Likewise. 7000 (__class_type_info): Likewise. 7001 (__si_class_type_info): Likewise. 7002 (__vmi_class_type_info): Likewise. 7003 * tinfo.cc (__si_class_type_info::__do_find_public_src): 7004 Changed member names to match specifications. 7005 (__vmi_class_type_info::__do_find_public_src): Likewise. 7006 (__si_class_type_info::__do_dyncast): Likewise. 7007 (__vmi_class_type_info::__do_dyncast): Likewise. 7008 (__si_class_type_info::__do_upcast): Likewise. 7009 (__vmi_class_type_info::__do_upcast): Likewise. 7010 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise. 7011 (__pbase_type_info::__pointer_catch): Likewise. 7012 (__pointer_type_info::__pointer_catch): Likewise. 7013 (__pointer_to_member_type_info::__pointer_catch): Likewise. 7014 70152000-08-04 Zack Weinberg <zack@wolery.cumb.org> 7016 7017 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist. 7018 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS. 7019 (cc1plus): Link with $(BACKEND) and $(C_OBJS). 7020 70212000-08-04 Mark Mitchell <mark@codesourcery.com> 7022 7023 * cp-tree.h (add_method): Change prototype. 7024 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P. 7025 Don't double the size of the method vector in the error case. 7026 (handle_using_decl): Adjust call to add_method. 7027 (add_implicitly_declared_members): Likewise. 7028 (clone_function_decl): Likewise. 7029 * decl2.c (check_classfn): Likewise. 7030 * semantics.c (finish_member_declaration): Likewise. 7031 70322000-08-04 Joseph S. Myers <jsm28@cam.ac.uk> 7033 7034 * decl.c (flag_isoc94): New variable. 7035 70362000-08-02 Jason Merrill <jason@redhat.com> 7037 7038 * pt.c (do_type_instantiation): Add complain parm; don't complain 7039 if called recursively. 7040 * cp-tree.h, parse.y: Adjust. 7041 70422000-08-02 Zack Weinberg <zack@wolery.cumb.org> 7043 7044 * decl2.c: Silently ignore -Wstrict-prototypes; warn about 7045 -Wno-strict-prototypes. 7046 7047 * g++spec.c: Adjust type of second argument to 7048 lang_specific_driver, and update code as necessary. 7049 7050 * cp-tree.h: Don't prototype min_precision here. 7051 (my_friendly_assert): Cast expression to void. 7052 * semantics.c (do_poplevel): Initialize scope_stmts. 7053 70542000-08-02 Mark Mitchell <mark@codesourcery.com> 7055 7056 * cp-tree.h (DECL_NEEDED_P): Tweak. 7057 70582000-07-28 Jason Merrill <jason@redhat.com> 7059 7060 * lang-specs.h: Use %i in rule for .ii files. 7061 70622000-07-31 Zack Weinberg <zack@wolery.cumb.org> 7063 7064 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. 7065 70662000-07-30 Mark Mitchell <mark@codesourcery.com> 7067 7068 Allow indirect primary bases. 7069 * cp-tree.h (struct lang_type): Remove vfield_parent. Add 7070 primary_base. 7071 (CLASSTYPE_VFIELD_PARENT): Remove. 7072 (CLASSTYPE_PRIMARY_BINFO): Reimplement. 7073 (BINFO_PRIMARY_BINFO): Remove. 7074 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. 7075 (BINFO_VBASE_PRIMARY_P): Likewise. 7076 (BINFO_PRIMARY_BASE_OF): New macro. 7077 (BINFO_INDIRECT_PRIMARY_P): Likewise. 7078 (get_primary_binfo): New function. 7079 * decl.c (lang_mark_tree): Make lang_type::primary_base. 7080 * class.c (vcall_offset_data_s): Rename to ... 7081 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, 7082 and add ctor_vtbl_p. 7083 (get_derived_offset): Use get_primary_binfo. 7084 (dfs_mark_primary_bases): Adjust handling of virtual primary 7085 bases. 7086 (mark_primary_bases): Likewise. 7087 (set_primary_base): Take a binfo, not an integer, as a 7088 representation of the primary base. 7089 (indirect_primary_base_p): Remove. 7090 (determine_primary_base): Adjust for indirect primary bases. 7091 (dfs_find_final_overrider): Fix typo in coment. 7092 (update_vtable_entry_for_fn): Use get_primary_binfo. 7093 (layout_nonempty_base_or_field): Tweak. 7094 (build_base_fields): Adjust for new primary base semantics. 7095 (dfs_propagate_binfo_offsets): Remove. 7096 (propagate_binfo_offsets): Rewrite. 7097 (dfs_set_offset_for_shared_vbases): Remove. 7098 (layout_virtual_bases): Don't use it. 7099 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new 7100 ABI. 7101 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not 7102 CLASSTYPE_VFIELD_PARENT. 7103 (dfs_get_primary_binfo): New function. 7104 (get_primary_binfo): Likewise. 7105 (dump_class_hierarchy_r): Tweak printing of primary bases. 7106 (build_vtbl_initializer): Fix typo in comments. Use 7107 vtbl_init_data. 7108 (build_vcall_and_vbase_vtbl_entries): Likewise. 7109 (build_vbaes_offset_vtbl_entries): Likewise. 7110 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of 7111 BV_VCALL_INDEX to handle indirect primary bases. 7112 (build_vcall_offset_vtbl_entries): Use vtbl_init_data. 7113 (build_rtti_vtbl_entries): Likewise. 7114 * search.c (get_shared_vbase_if_not_primary): Tweak. 7115 (find_vbase_instance): Likewise. 7116 (binfo_for_vtable): Simplify. 7117 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. 7118 (make_binfo): Make it have 11 entries. 7119 71202000-07-30 Alex Samuel <samuel@codesourcery.com> 7121 7122 * mangle.c (DECL_TEMPLATE_ID_P): Remove. 7123 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when 7124 ascertaining primaryness. 7125 (G): Remove template_args. 7126 (decl_is_template_id): New function. 7127 (write_encoding): Use decl_is_template_id. 7128 (write_name): Likewise. Handle type_decls. Get main variant of 7129 type decls. 7130 (write_nested_name): Likewise. 7131 (write_prefix): Likewise. 7132 (write_template_prefix): Likewise. 7133 (write_special_name_constructor): Remove defunct production from 7134 comment. 7135 (write_bare_function_type): Remove comment about absent parameter. 7136 (write_template_template_arg): Add missing grammar production to 7137 comment. 7138 71392000-07-27 Jason Merrill <jason@redhat.com> 7140 7141 * decl.c (duplicate_decls): If common_type produces a non-typedef 7142 type for a typedef, just use the old type. 7143 71442000-07-27 Mark Mitchell <mark@codesourcery.com> 7145 7146 * cp-tree.h (function_depth): Declare. 7147 (verify_stmt_tree): Likewise. 7148 (find_tree): Likewise. 7149 * decl.c (function_depth): Give it external linkage. 7150 * optimize.c (optimize_function): Increment and decrement it. 7151 * tree.c (verify_stmt_tree_r): New function. 7152 (verify_stmt_tree): Likewise. 7153 (find_tree_r): Likewise. 7154 (find_tree): Likewise. 7155 71562000-07-27 Jason Merrill <jason@redhat.com> 7157 7158 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use 7159 TYPE_PTRMEMFUNC_P. 7160 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC. 7161 71622000-07-26 Mark Mitchell <mark@codesourcery.com> 7163 7164 * decl.c (start_cleanup_fn): Mark the function as `inline'. 7165 * decl2.c (get_guard): Call cp_finish_decl, not 7166 rest_of_decl_compilation, for local guards. 7167 * lex.c (do_identifier): Remove unused variable. 7168 7169Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 7170 7171 * parse.y: Add missing ';'. 7172 71732000-07-26 Mark Mitchell <mark@codesourcery.com> 7174 7175 * parse.y (empty_parms): Use `()', not `(...)', when in the scope 7176 of `extern "C++"'. 7177 71782000-07-25 Nathan Sidwell <nathan@codesourcery.com> 7179 7180 Kill strict_prototype. Backwards compatibility only for 7181 non NO_IMPLICIT_EXTERN_C systems. 7182 * cp-tree.h (flag_strict_prototype): Remove. 7183 (strict_prototype): Remove. 7184 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 7185 * decl.c (maybe_push_to_top_level): Adjust. 7186 (pop_from_top_level): Adjust. 7187 (decls_match): Only allow sloppy parm matching for ancient 7188 system headers. 7189 (init_decl_processing): Adjust. 7190 (grokdeclarator): Adjust. 7191 * decl2.c (flag_strict_prototype): Remove. 7192 (strict_prototype): Remove. 7193 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 7194 (lang_f_options): Remove "strict-prototype". 7195 (unsupported-options): Add "strict-prototype". 7196 * lex.c (do_identifier): Adjust. 7197 (do_scoped_id): Adjust. 7198 * parse.y (empty_parms): Adjust. 7199 * class.c (push_lang_context): Adjust. 7200 (pop_lang_context): Adjust. 7201 * typeck.c (comp_target_parms): Adjust. 7202 72032000-07-25 Nathan Sidwell <nathan@codesourcery.com> 7204 7205 * decl.c (poplevel): Deal with anonymous variables at for scope. 7206 (maybe_inject_for_scope_var): Likewise. 7207 72082000-07-25 Zack Weinberg <zack@wolery.cumb.org> 7209 7210 * decl.c: Remove all signal handling code, now done in toplev.c. 7211 72122000-07-23 Mark Mitchell <mark@codesourcery.com> 7213 7214 * decl.c (make_rtl_for_nonlocal_decl): Rework. 7215 7216 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set 7217 correctly. 7218 72192000-07-20 Zack Weinberg <zack@wolery.cumb.org> 7220 7221 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__. 7222 Define my_friendly_assert and my_friendly_abort as macros 7223 which may call friendly_abort. Prototype friendly abort, not 7224 my_friendly_abort or my_friendly_assert. 7225 * decl.c (signal_catch): Report the signal caught in the error 7226 message. Call fatal directly. 7227 * typeck2.c (ack, my_friendly_assert): Delete. 7228 (my_friendly_abort): Rename to friendly_abort. Expect file, 7229 line, and function parameters. Report the abort code, then 7230 call fancy_abort. Do not mask an abort if errors have 7231 already occurred. 7232 72332000-07-18 Nathan Sidwell <nathan@codesourcery.com> 7234 7235 * typeck.c (comp_target_parms): Remove obsolete parameter. 7236 (comp_target_types): Adjust. 7237 72382000-07-17 Jason Merrill <jason@redhat.com> 7239 7240 * typeck.c (mark_addressable): Never set TREE_USED. 7241 * call.c (build_call): Don't abort on calls to library functions 7242 that have been declared normally. 7243 7244 * typeck.c (build_binary_op): Fix grammar in warning. 7245 7246 * exception.cc (__eh_free): Fix prototype. 7247 7248 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR. 7249 7250 * decl.c (pushdecl): Handle seeing an OVERLOAD in 7251 IDENTIFIER_NAMESPACE_VALUE. 7252 72532000-07-16 Mark Mitchell <mark@codesourcery.com> 7254 7255 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation. 7256 * method.c (use_thunk): Correct handling of vcall offsets. 7257 72582000-07-14 Zack Weinberg <zack@wolery.cumb.org> 7259 7260 * .cvsignore: parse.h and parse.c have no cp- prefix. 7261 72622000-07-13 Mark Mitchell <mark@codesourcery.com> 7263 7264 * .cvsignore: New file. 7265 72662000-07-13 Zack Weinberg <zack@wolery.cumb.org> 7267 7268 * lang-specs.h: Use the new named specs. Remove unnecessary braces. 7269 72702000-07-12 Mark Mitchell <mark@codesourcery.com> 7271 7272 * Makefile.in ($(PARSE_H)): Depend directly on parse.y. 7273 * parse.c: Remove. 7274 * parse.h: Likewise. 7275 72762000-07-11 Mark Mitchell <mark@codesourcery.com> 7277 7278 * class.c (layout_class_type): Add pointers to virtual bases after 7279 base classes under the old ABI. 7280 72812000-07-10 Benjamin Chelf <chelf@codesourcery.com> 7282 7283 * semantics.c (finish_for_stmt): Remove call to emit_line_note. 7284 (finish_continue_stmt): Likewise. 7285 (begin_for_stmt): Remove call to note_level_for_for. 7286 (finish_goto_stmt): Change call from build_min_nt 7287 to build_stmt. 7288 (finish_expr_stmt): Likewise. 7289 (begin_if_stmt): Likewise. 7290 (begin_while_stmt): Likewise. 7291 (finish_while_stmt): Likewise. 7292 (finish_return_stmt): Likewise. 7293 (begin_for_stmt): Likewise. 7294 (finish_for_stmt): Likewise. 7295 (finish_break_stmt): Likewise. 7296 (begin_switch_stmt): Likewise. 7297 (finish_case_label): Likewise. 7298 (genrtl_try_block): Likewise. 7299 (begin_try_block): Likewise. 7300 (begin_handler): Likewise. 7301 (begin_compound_stmt): Likewise. 7302 (finish_asm_stmt): Likewise. 7303 (finish_label_stmt): Likewise. 7304 (add_decl_stmt): Likewise. 7305 (finish_subobject): Likewise. 7306 (finish_decl_cleanup): Likewise. 7307 (finish_named_return_value): Likewise. 7308 (setup_vtbl_ptr): Likewise. 7309 (add_scope_stmt): Likewise. 7310 * decl.c (finish_constructor_body): Likewise. 7311 (finish_destructor_body): Likewise. 7312 * optimize.c (copy_body_r): Likewise. 7313 (initialize_inlined_parameters): Likewise. 7314 (declare_return_variable): Likewise. 7315 (expand_call_inline): Likewise. 7316 73172000-07-10 Jakub Jelinek <jakub@redhat.com> 7318 7319 * semantics.c (expand_body): Sync interface information 7320 at the end of function body expansion. 7321 73222000-07-09 Jason Merrill <jason@redhat.com> 7323 7324 * init.c (build_new_1): Bail early if the call to new fails. 7325 7326 * decl.c (compute_array_index_type): Check specifically for 7327 an INTEGER_CST, not just TREE_CONSTANT. 7328 7329 * decl.c (duplicate_decls): Don't call duplicate_decls on 7330 the DECL_TEMPLATE_RESULT. 7331 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different 7332 codes. 7333 7334 * error.c (dump_template_bindings): Don't crash if we had an 7335 invalid argument list. 7336 7337 * typeck.c (c_expand_start_case): Do narrowing here. 7338 * semantics.c (finish_switch_cond): Not here. 7339 73402000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com> 7341 7342 * parse.y (asm_clobbers): Do string concatenation. 7343 73442000-07-09 Mark Mitchell <mark@codesourcery.com> 7345 7346 * decl.c (pushtag): Don't put local classes in template functions 7347 on the local_classes list. 7348 73492000-07-04 Scott Snyder <snyder@fnal.gov> 7350 7351 * decl2.c (get_guard): Add missing return for old ABI local 7352 variable case. 7353 73542000-07-09 Mark Mitchell <mark@codesourcery.com> 7355 7356 * cp-tree.h (char_type_p): New function. 7357 * decl.c (init_decl_processing): Don't initialize 7358 signed_wchar_type_node or unsigned_wchar_type_node. 7359 (complete_array_type): Handle brace-enclosed string-constants. 7360 * rtti.c (emit_support_tinfos): Remove #if 0'd code. 7361 * tree.c (char_type_p): New function. 7362 * typeck2.c (digest_init): Use char_type_p. 7363 73642000-07-06 Nathan Sidwell <nathan@codesourcery.com> 7365 7366 * pt.c (tsubst): Don't layout type, if it's error_mark. 7367 73682000-07-06 Nathan Sidwell <nathan@codesourcery.com> 7369 7370 * pt.c (instantiate_pending_templates): Reset template level. 7371 73722000-07-05 Jason Merrill <jason@redhat.com> 7373 7374 * call.c (joust): Don't complain about `operator char *()' beating 7375 `operator const char *() const'. 7376 73772000-07-04 scott snyder <snyder@fnal.gov> 7378 Jason Merrill <jason@redhat.com> 7379 7380 * repo.c (repo_get_id): Handle the case where a class with virtual 7381 bases has a null TYPE_BINFO_VTABLE. 7382 73832000-07-04 Kevin Buhr <buhr@stat.wisc.edu> 7384 Jason Merrill <jason@redhat.com> 7385 7386 * parse.y (member_init): Just pass in the type. 7387 * init.c (expand_member_init): Handle getting a type. 7388 73892000-07-04 Martin v. L�wis <loewis@informatik.hu-berlin.de> 7390 Jason Merrill <jason@redhat.com> 7391 7392 * decl.c (finish_function): Warn if a function has no return 7393 statement. 7394 Suggested by Andrew Koenig. 7395 * typeck.c (check_return_expr): Do set current_function_returns_value 7396 if we got an error_mark_node. 7397 73982000-07-03 Nathan Sidwell <nathan@codesourcery.com> 7399 7400 * decl2.c (push_decl_namespace): Push the original namespace. 7401 74022000-07-03 Nathan Sidwell <nathan@codesourcery.com> 7403 7404 * pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES. 7405 * semantics.c (begin_class_definition): Clear it. 7406 74072000-07-02 Benjamin Chelf <chelf@codesourcery.com> 7408 7409 * cp-tree.h (genrtl_goto_stmt): Remove declaration. 7410 (genrtl_expr_stmt): Likewise. 7411 (genrtl_decl_stmt): Likewise. 7412 (genrtl_if_stmt): Likewise. 7413 (genrtl_while_stmt): Likewise. 7414 (genrtl_do_stmt): Likewise. 7415 (genrtl_return_stmt): Likewise. 7416 (genrtl_for_stmt): Likewise. 7417 (genrtl_break_stmt): Likewise. 7418 (genrtl_continue_stmt): Likewise. 7419 (genrtl_scope_stmt): Likewise. 7420 (genrtl_switch_stmt): Likewise. 7421 (genrtl_case_label): Likewise. 7422 (genrtl_begin_compound_stmt): Likewise. 7423 (genrtl_finish_compound_stmt): Likewise. 7424 (genrtl_compound_stmt): Likewise. 7425 (genrtl_asm_stmt): Likewise. 7426 7427 * init.c (begin_init_stmts): Remove call to 7428 genrtl_begin_compound_stmt. 7429 (finish_init_stmts): Remove call to genrtl_finish_compound_stmt. 7430 7431 * semantics.c (lang_expand_stmt): Changed call to 7432 genrtl_compound_stmt to ignore return value. 7433 74342000-07-02 Mark Mitchell <mark@codesourcery.com> 7435 7436 * mangle.c (canonicalize_for_substitution): Return the canonical 7437 variant of a type. 7438 7439 * decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a 7440 TYPE_DECL. 7441 * typeck.c (commonparms): Remove obstack manipulations. 7442 74432000-07-01 Benjamin Chelf <chelf@codesourcery.com> 7444 7445 * Make-lang.in (cc1plus$(exeext)): Added c-semantics.o. 7446 7447 * Makefile.in (OBJS): Added ../c-semantics.o. 7448 (OBJDEPS): Likewise. 7449 7450 * cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to 7451 ../c-common.h. 7452 (struct stmt_tree): Added comment. 7453 (current_function_name_declared): Removed. 7454 (stmts_are_full_exprs_p): Likewise. 7455 (genrtl_do_pushlevel): Likewise. 7456 (genrtl_clear_out_block): Likewise. 7457 (COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h. 7458 (DECL_ANON_UNION_ELEMS): Likewise. 7459 (emit_local_var): Likewise. 7460 (make_rtl_for_local_static): Likewise. 7461 (do_case): Likewise. 7462 (expand_stmt): Likewise. 7463 (genrtl_decl_cleanup): Likewise. 7464 (c_expand_asm_operands): Likewise. 7465 (c_expand_return): Likewise. 7466 (c_expand_start_case): Likewise. 7467 7468 * decl.c (make_rtl_for_local_static): Moved to c-semantics.c. 7469 (emit_local_var): Likewise. 7470 (initialize_local_var): Change reference to 7471 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 7472 Change reference to stmts_are_full_exprs_p to 7473 current_stmt_tree->stmts_are_full_exprs_p. 7474 (push_cp_function_context): Likewise. 7475 7476 * expect.c (expand_throw): Change reference to 7477 stmts_are_full_exprs_p. 7478 7479 * init.c (build_aggr_init): Change reference to 7480 stmts_are_full_exprs_p. 7481 (build_vec_init): Likewise. 7482 7483 * optimize.c (maybe_clone_body): Change reference to 7484 current_function_name_declared to 7485 cp_function_chain->name_declared. 7486 7487 * pt.c (instantiate_decl): Change reference to 7488 current_function_name_declared to 7489 cp_function_chain->name_declared. 7490 7491 * semantics.c (expand_cond): Moved declaration to c-common.h. 7492 (genrtl_do_pushlevel): Moved to c-semantics.c. 7493 (genrtl_clear_out_block): Likewise. 7494 (genrtl_goto_stmt): Likewise. 7495 (genrtl_expr_stmt): Likewise. 7496 (genrtl_decl_stmt): Likewise. 7497 (gerntl_if_stmt): Likewise. 7498 (genrtl_while_stmt): Likewise. 7499 (genrtl_do_stmt): Likewise. 7500 (genrtl_return_stmt): Likewise. 7501 (genrtl_for_stmt): Likewise. 7502 (genrtl_break_stmt): Likewise. 7503 (genrtl_continue_stmt): Likewise. 7504 (genrtl_scope_stmt): Likewise. 7505 (genrtl_switch_stmt): Likewise. 7506 (genrtl_case_label): Likewise. 7507 (genrtl_begin_compound_stmt): Likewise. 7508 (genrtl_finish_compound_stmt): Likewise. 7509 (genrtl_compound_stmt): Likewise. 7510 (genrtl_asm_stmt): Likewise. 7511 (genrtl_decl_cleanup): Likewise. 7512 (expand_cond): Likewise. 7513 (expand_stmt): Renamed to ... 7514 (lang_expand_stmt): ... this. 7515 (lang_expand_expr_stmt): Initialize. 7516 (set_current_function_name_declared): Likewise. 7517 (stmts_are_full_exprs_p): Likewise. 7518 (current_function_name_declared): Likewise. 7519 (anon_aggr_type_p): Likewise. 7520 (do_poplevel): Change reference to 7521 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 7522 Change reference to stmts_are_full_exprs_p to 7523 current_stmt_tree->stmts_are_full_exprs_p. 7524 (add_tree): Likewise. 7525 (finish_expr_stmt): Likewise. 7526 (prep_stmt): Likewise. 7527 (lang_expand_stmt): Likewise. 7528 (begin_compound_stmt): Change reference to 7529 current_function_name_declared to 7530 cp_function_chain->name_declared and call to 7531 current_function_name_declared(). 7532 (setup_vtbl_ptr): Likewise. 7533 (genrtl_do_poplevel): Removed. 7534 75352000-06-30 Jason Merrill <jason@redhat.com> 7536 7537 * init.c (init_init_processing): Go back to aligning like 7538 double_type_node for old ABI. 7539 (get_cookie_size): Make cookie larger if we get a type that needs 7540 more alignment. 7541 (build_vec_delete): Call it. 7542 7543 * typeck.c (qualify_type_recursive): New fn. 7544 (composite_pointer_type): Use it. 7545 (build_binary_op): Use composite_pointer_type. 7546 75472000-06-24 Carlos O'Ryan <coryan@cs.wustl.edu> 7548 Jason Merrill <jason@redhat.com> 7549 7550 * typeck.c (check_return_expr): Don't complain about returning 7551 NULL from operator new if -fcheck-new. 7552 * cp-tree.h: Declare flag_check_new here. 7553 * init.c: Not here. 7554 75552000-06-28 Alex Samuel <samuel@codesourcery.com> 7556 7557 * mangle.c (find_substitution): Use same_type_p. 7558 (write_encoding): Don't check for substitutions. 7559 75602000-06-30 Nathan Sidwell <nathan@codesourcery.com> 7561 7562 * parse.y (expr_no_comma_rangle): New non-terminal. 7563 (template_parm): Use it for default parameter case. 7564 (template_arg): Use it. 7565 (expr_no_commas): Remove commented out undefined extensions. 7566 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 7567 * parse.h, parse.c: Rebuilt. 7568 75692000-06-30 Mark Mitchell <mark@codesourcery.com> 7570 7571 * semantics.c (genrtl_asm_stmt): Don't decay input operands here. 7572 (finish_asm_stmt): Do it here, instead. 7573 7574 * cp-tree.h (ridpointers): Don't declare. 7575 * decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX. 7576 (record_builtin_java_type): Likewise. 7577 (init_decl_processing): Likewise. 7578 * lex.c: Move inclusion of lex.h. 7579 (ridpointers): Don't define. 7580 (init_parse): Initialize ripdointers. Use CP_RID_MAX instead of 7581 RID_MAX. 7582 * lex.h (enum rid): Rename to ... 7583 (enum cp_rid): ... this. 7584 (ridpointers): Don't declare. 7585 * parse.y: Move inclusion of lex.h. 7586 * parse.c: Regenerated. 7587 * spew.c: Move inclusion of lex.h. 7588 7589 * cp-tree.h (struct language_function): Remove temp_name_counter. 7590 (temp_name_counter): Remove. 7591 (get_temp_name): Change prototype. 7592 (get_guard): New function. 7593 (get_guard_cond): Likewise. 7594 (set_guard): Likewise. 7595 * cvt.c (build_up_reference): Adjust call to get_temp_name. 7596 * decl.c (expand_static_init): Use get_guard and friends to 7597 implement guard variables. 7598 * decl2.c (get_temp_name): Assume that the variables created are 7599 always static. 7600 (get_sentry): Rename to ... 7601 (get_guard): ... this. Implement new ABI guard variables. 7602 (get_guard_bits): New function. 7603 (get_guard_cond): Likewise. 7604 (set_guard): Likewise. 7605 (start_static_initialization_or_destruction): Use them. 7606 (do_static_initialization): Replace sentry with guard throughout. 7607 (do_static_destruction): Likewise. 7608 * init.c (create_temporary_var): Add comment. 7609 76102000-06-28 Alex Samuel <samuel@codesourcery.com> 7611 7612 * mangle.c (find_substitution): Use same_type_p. 7613 (write_encoding): Don't check for substitutions. 7614 76152000-06-30 Nathan Sidwell <nathan@codesourcery.com> 7616 7617 * parse.y (expr_no_comma_rangle): New non-terminal. 7618 (template_parm): Use it for default parameter case. 7619 (template_arg): Use it. 7620 (expr_no_commas): Remove commented out undefined extensions. 7621 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 7622 * parse.h, parse.c: Rebuilt. 7623 76242000-06-29 Mark Mitchell <mark@codesourcery.com> 7625 7626 * cp-tree.h (flag_const_strings): Remove. 7627 (warn_parentheses): Likewise. 7628 (warn_format): Likewise. 7629 (common_type): Likewise. 7630 (default_conversion): Likewise. 7631 (build_binary_op): Likewise. 7632 (cp_build_binary_op): New macro. 7633 * call.c (build_new_op): Use cp_build_binary_op instead of 7634 build_binary_op. 7635 * class.c (build_vtable_entry_ref): Likewise. 7636 * decl.c (expand_static_init): Likewise. 7637 (compute_array_index_type): Likewise. 7638 (build_enumerator): Likewise. 7639 * decl2.c (delete_sanity): Likewise. 7640 (start_static_initialization_or_destruction): Likewise. 7641 * error.c (dump_type_suffix): Likewise. 7642 * init.c (resolve_offset_ref): Likewise. 7643 (build_new): Likewise. 7644 (build_new_1): Likewise. 7645 (build_vec_delete_1): Likewise. 7646 (build_vec_init): Likewise. 7647 (build_delete): Likewise. 7648 * rtti.c (synthesize_tinfo_fn): Likewise. 7649 (synthesize_tinfo_var): Likewise. 7650 * search.c (expand_upcast_fixups): Likewise. 7651 (fixup_all_virtual_upcast_offsets): Likewise. 7652 * typeck.c (build_array_ref): Likewise. 7653 (get_member_function_from_ptrfunc): Likewise. 7654 (build_binary_op): Add parameter. 7655 (pointer_int_sum): Use cp_build_binary_op. 7656 (pointer_diff): Likewise. 7657 (build_modify_expr): Likewise. 7658 (get_delta_difference): Likewise. 7659 (build_ptrmemfunc): Likewise. 7660 76612000-06-29 Nathan Sidwell <nathan@codesourcery.com> 7662 7663 * cp-tree.h (SET_DECL_ARTIFICIAL): Remove. 7664 * decl.c (create_implicit_typedef): Adjust. 7665 * decl2.c (build_artificial_parm): Adjust. 7666 * method.c (implicitly_declare_fn): Adjust. 7667 * pt.c (push_inline_template_parms_recursive): Adjust. 7668 (process_template_parm): Adjust. 7669 (overloaded_template_name): Adjust. 7670 * semantics.c (finish_template_template_parm): Adjust. 7671 76722000-06-28 Mark Mitchell <mark@codesourcery.com> 7673 7674 * cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove. 7675 * class.c (update_vtable_entry_for_fn): Correct logic for deciding 7676 where to emit thunks. 7677 (build_vtt): Adjust call to build_vtt_inits. 7678 (build_vtt_inits): Add parameter to indicate whether or not 7679 sub-VTTs for virtual bases should be included. Adjust handling of 7680 construction vtables. 7681 (get_matching_base): New function. 7682 (dfs_build_vtt_inits): Rename to ... 7683 (dfs_build_secondary_vptr_vtt_inits): Adjust handling of 7684 construction vtables. 7685 (dfs_fixup_binfo_vtbls): Likewise. 7686 (build_ctor_vtbl_groups): Build construction vtables for virtual 7687 bases, too. 7688 (accumulate_vtbl_inits): Tweak logic for deciding whether or not 7689 to build construction vtbls. 7690 (dfs_accumulate_vtbl_inits): Adjust handling of 7691 construction vtables. 7692 7693 * pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified 7694 types correctly. 7695 76962000-06-27 Mark Mitchell <mark@codesourcery.com> 7697 7698 * decl.c (grokfndecl): Set DECL_CONTEXT for static functions too. 7699 77002000-06-26 Nathan Sidwell <nathan@codesourcery.com> 7701 7702 * search.c (hides): Remove. 7703 (is_subobject_of_p): Add most_derived parameter. Use 7704 CANONICAL_BINFO. 7705 (lookup_field_queue_p): Adjust. 7706 (lookup_field_r): Adjust. 7707 77082000-06-26 Nathan Sidwell <nathan@codesourcery.com> 7709 7710 * decl2.c (handle_class_head): Bash typedefs to the type's main 7711 decl. 7712 77132000-06-25 Mark Mitchell <mark@codesourcery.com> 7714 7715 * cp-tree.h (genrtl_begin_stmt_expr): Rename to ... 7716 (begin_global_stmt_expr): ... this. 7717 (genrtl_finish_stmt_expr): Rename to ... 7718 (finish_global_stmt_expr): ... this. 7719 * init.c (begin_init_stmts): Adjust calls. 7720 (finish_init_stmts): Likewise. 7721 * semantics.c (genrtl_begin_stmt_expr): Rename to ... 7722 (begin_global_stmt_expr): ... this. 7723 (genrtl_finish_stmt_expr): Rename to ... 7724 (finish_global_stmt_expr): ... this. 7725 77262000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 7727 7728 * search.c (lookup_member): Fix typo in comment. 7729 77302000-06-24 Jason Merrill <jason@redhat.com> 7731 7732 * decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace. 7733 (push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL. 7734 77352000-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 7736 7737 * parse.y (complex_direct_notype_declarator): Support global_scope. 7738 * Makefile.in: Adjust conflict count. 7739 77402000-06-23 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 7741 7742 * parse.y (template_arg): Convert TEMPLATE_DECL 7743 that is a template template parameter to 7744 TEMPLATE_TEMPLATE_PARM here. 7745 7746 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment. 7747 * cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro. 7748 (copy_template_template_parm): Adjust prototype. 7749 * decl.c (grokdeclarator): Remove dead code. 7750 * pt.c (process_template_parm): Tidy. 7751 (lookup_template_class): Construct nodes in 7752 copy_template_template_parm. 7753 (tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to 7754 lookup_template_class. Use TYPE_TI_TEMPLATE. 7755 * tree.c (copy_template_template_parm): Add NEWARGS 7756 parameter. 7757 (mapcar): Adjust call to copy_template_template_parm. 7758 * typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. 7759 * method.c (build_template_template_parm_names): Change error 7760 code to avoid compilation warning. 7761 7762 * gxxint.texi: Document template template parameter 7763 name mangling. 7764 77652000-06-21 Alex Samuel <samuel@codesourcery.com> 7766 7767 * Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o. 7768 (CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c. 7769 (cp-demangle.o): New rule. 7770 (dyn-string.o): Likewise. 7771 * inc/cxxabi.h (__cxa_demangle): New declaration. 7772 77732000-06-22 Mark Mitchell <mark@codesourcery.com> 7774 7775 * cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. 7776 (BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise. 7777 (lang_decl_flags): Add generate_with_vtable_p. Make vcall_offset 7778 a tree, not an int. 7779 (THUNK_GENERATE_WITH_VTABLE_P): New macro. 7780 (make_thunk): Change prototype. 7781 (emit_thunk): Rename to use_thunk. 7782 (mangle_thunk): Change prototype. 7783 * class.c (get_derived_offset): Simplify. 7784 (copy_virtuals): Clear BV_USE_VCALL_INDEX_P and 7785 BV_GENERATE_THUNK_WITH_VTABLE_P. 7786 (build_primary_vtable): Simplify. 7787 (add_virtual_function): Use BV_FN, rather than TREE_VALUE. 7788 (dfs_find_base): Remove. 7789 (update_vtable_entry_for_fn): Correct bug in finding the base 7790 where a virtual function was first declared. Figure out whether 7791 or not to emit a vcall-thunk with the vtables in which it appears. 7792 Correct logic for deciding whether to use an ordinary thunk, or a 7793 vcall thunk. 7794 (finish_struct_1): Remove unnecssary code. 7795 (build_vtbl_initializer): Use ssize_int for the running counter of 7796 negative indices. 7797 (build_vtbl_initializer): Only use vcall thunks where necessary. 7798 Mark thunks as needing to be emitted with their vtables, or not. 7799 (build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in 7800 indices. Use size_binop. 7801 (dfs_build_vcall_offset_vtbl_entries): Don't rely on 7802 BINFO_PRIMARY_MARKED_P here. Use BV_FN consistently. Use 7803 size_binop. 7804 (build_rtti_vtbl_entries): Adjust call to build_vtable_entry. 7805 (build_vtable_entry): Mark thunks as needing to be emitted with 7806 their vtables, or not. 7807 * decl.c (lang_mark_tree): Mark the vcall_offset in a thunk. 7808 * decl2.c (mark_vtable_entries): Use use_thunk instead of 7809 emit_thunk. 7810 * dump.c (dequeue_and_dump): Remove dead code. Dump new thunk 7811 information. 7812 * error.c (dump_expr): Use BV_FN. 7813 * mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree, 7814 not an int. 7815 * method.c (make_thunk): Likewise. 7816 (emit_thunk): Rename to use_thunk. Allow callers to decide 7817 whether or not to actually emit the thunk. Adjust for changes in 7818 representation of vcall offsets. 7819 * search.c (dfs_get_pure_virtuals): Use BV_FN. 7820 * semantics.c (emit_associated_thunks): New function. 7821 (expand_body): Use it. 7822 * ir.texi: Adjust decriptions of thunks. 7823 78242000-06-22 Jason Merrill <jason@redhat.com> 7825 7826 * pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE. 7827 (tsubst_friend_function): Copy it here. 7828 7829 * decl.c (grok_op_properties): Fix typo. 7830 7831 * decl2.c (delete_sanity): Clarify warning, avoid failure on 7832 deleting void*. 7833 7834 * pt.c (check_explicit_specialization): Clarify error. 7835 7836 * decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from 7837 an old OVERLOAD when we're declaring a non-function. 7838 (pushdecl, destroy_local_var): Check for error_mark_node. 7839 (warn_extern_redeclared_static): Also bail early if 7840 we're a CONST_DECL. 7841 (push_overloaded_decl): Ignore an old error_mark_node. 7842 78432000-06-22 Nathan Sidwell <nathan@codesourcery.com> 7844 7845 * call.c (build_x_va_arg): Check if in a template decl. 7846 * pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg. 7847 78482000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 7849 7850 * class.c (push_lang_context): TYPE_NAME gets you to the Java 7851 types DECLs. 7852 * decl.c (check_goto): Computed gotos assumed OK. 7853 78542000-06-20 Jason Merrill <jason@redhat.com> 7855 7856 * pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs 7857 for which we don't need to look for instantiations. 7858 78592000-06-21 Nathan Sidwell <nathan@codesourcery.com> 7860 7861 * parse.y (program): Always call finish_translation_unit. 7862 * parse.c, parse.h: Rebuilt. 7863 78642000-06-20 Zack Weinberg <zack@wolery.cumb.org> 7865 7866 * method.c: Don't include hard-reg-set.h. 7867 78682000-06-20 Nathan Sidwell <nathan@codesourcery.com> 7869 7870 * rtti.c (get_base_offset): Cope when vbase field is in a base. 7871 78722000-06-20 Nathan Sidwell <nathan@codesourcery.com> 7873 7874 * call.c (build_conditional_expr): Use VOID_TYPE_P. 7875 * cvt.c (cp_convert_to_pointer): Likewise. 7876 (convert_to_void): Likewise. 7877 * error.c (dump_expr): Likewise. 7878 * except.c (complete_ptr_ref_or_void_ptr_p): Likewise. 7879 * init.c (build_delete): Likewise. 7880 * method.c (emit_thunk): Likewise. 7881 * optmize.c (declare_return_variable): Likewise. 7882 * rtti.c (get_tinfo_decl_dynamic): Likewise. 7883 (get_typeid): Likewise. 7884 (build_dynamic_cast_1): Likewise. 7885 * typeck.c (composite_pointer_type): Likewise. 7886 (common_type): Likewise. 7887 (build_indirect_ref): Likewise. 7888 (build_binary_op): Likewise. 7889 (build_x_compound_expr): Likewise. 7890 (check_return_expr): Likewise. 7891 * typeck2.c (add_exception_specifier): Likewise. 7892 7893 * mangle.c (write_method_parms): Use direct comparison for end 7894 of parmlist. 7895 78962000-06-19 Benjamin Chelf <chelf@codesourcery.com> 7897 7898 * cp-tree.h (genrtl_try_block): Declare function. 7899 (genrtl_handler): Likewise. 7900 (genrtl_catch_block): Likewise. 7901 (genrtl_ctor_stmt): Likewise. 7902 (genrtl_subobject): Likewise. 7903 (genrtl_decl_cleanup): Likewise. 7904 (genrtl_do_poplevel): Likewise. 7905 (genrtl_do_pushlevel): Likewise. 7906 (genrtl_clear_out_block): Likewise. 7907 (genrtl_goto_stmt): Likewise. 7908 (genrtl_expr_stmt): Likewise. 7909 (genrtl_decl_stmt): Likewise. 7910 (genrtl_if_stmt): Likewise. 7911 (genrtl_while_stmt): Likewise. 7912 (genrtl_do_stmt): Likewise. 7913 (genrtl_return_stmt): Likewise. 7914 (genrtl_for_stmt): Likewise. 7915 (genrtl_break_stmt): Likewise. 7916 (genrtl_continue_stmt): Likewise. 7917 (genrtl_scope_stmt): Likewise. 7918 (genrtl_switch_stmt): Likewise. 7919 (genrtl_case_label): Likewise. 7920 (genrtl_begin_compound_stmt): Likewise. 7921 (genrtl_finish_compound_stmt): Likewise. 7922 (genrtl_compound_stmt): Likewise. 7923 (genrtl_asm_stmt): Likewise. 7924 (genrtl_named_return_value): Likewise. 7925 (genrtl_begin_stmt_expr): Likewise. 7926 (genrtl_finish_stmt_expr): Likewise. 7927 (finish_for_stmt): Removed first argument. 7928 (finish_switch_stmt): Likewise. 7929 7930 * semantics.c (genrtl_try_block): Define function. 7931 (genrtl_handler): Likewise. 7932 (genrtl_catch_block): Likewise. 7933 (genrtl_ctor_stmt): Likewise. 7934 (genrtl_subobject): Likewise. 7935 (genrtl_decl_cleanup): Likewise. 7936 (genrtl_do_poplevel): Likewise. 7937 (genrtl_do_pushlevel): Likewise. 7938 (genrtl_clear_out_block): Likewise. 7939 (genrtl_goto_stmt): Likewise. 7940 (genrtl_expr_stmt): Likewise. 7941 (genrtl_decl_stmt): Likewise. 7942 (genrtl_if_stmt): Likewise. 7943 (genrtl_while_stmt): Likewise. 7944 (genrtl_do_stmt): Likewise. 7945 (genrtl_return_stmt): Likewise. 7946 (genrtl_for_stmt): Likewise. 7947 (genrtl_break_stmt): Likewise. 7948 (genrtl_continue_stmt): Likewise. 7949 (genrtl_scope_stmt): Likewise. 7950 (genrtl_switch_stmt): Likewise. 7951 (genrtl_case_label): Likewise. 7952 (genrtl_begin_compound_stmt): Likewise. 7953 (genrtl_finish_compound_stmt): Likewise. 7954 (genrtl_compound_stmt): Likewise. 7955 (genrtl_asm_stmt): Likewise. 7956 (genrtl_named_return_value): Likewise. 7957 (genrtl_begin_stmt_expr): Likewise. 7958 (genrtl_finish_stmt_expr): Likewise. 7959 (finish_for_stmt): Removed first argument and generate rtl 7960 specific code. 7961 (finish_switch_stmt): Likewise. 7962 (do_poplevel): Removed generate rtl specific code. 7963 (do_pushlevel): Likewise. 7964 (add_tree): Likewise. 7965 (finish_goto_stmt): Likewise. 7966 (finish_expr_stmt): Likewise. 7967 (begin_if_stmt): Likewise. 7968 (finish_if_stmt_cond): Likewise. 7969 (finish_then_clause): Likewise. 7970 (begin_else_clause): Likewise. 7971 (finish_else_clause): Likewise. 7972 (finish_if_stmt): Likewise. 7973 (clear_out_block): Likewise. 7974 (begin_while_stmt): Likewise. 7975 (finish_while_stmt_cond): Likewise. 7976 (finish_while_stmt): Likewise. 7977 (begin_do_stmt): Likewise. 7978 (finish_do_body): Likewise. 7979 (finish_do_stmt): Likewise. 7980 (finish_return_stmt): Likewise. 7981 (begin_for_stmt): Likewise. 7982 (finish_for_init_stmt): Likewise. 7983 (finish_for_cond): Likewise. 7984 (finish_for_expr): Likewise. 7985 (finish_break_stmt): Likewise. 7986 (finish_continue_stmt): Likewise. 7987 (begin_switch_stmt): Likewise. 7988 (finish_switch_cond): Likewise. 7989 (finish_case_label): Likewise. 7990 (begin_try_block): Likewise. 7991 (begin_function_try_block): Likewise. 7992 (finish_try_block): Likewise. 7993 (finish_cleanup_try_block): Likewise. 7994 (finish_cleanup): Likewise. 7995 (finish_function_try_block): Likewise. 7996 (finish_handler_sequence): Likewise. 7997 (finish_function_handler_sequence): Likewise. 7998 (begin_handler): Likewise. 7999 (finish_handler_parms): Likewise. 8000 (begin_catch_block): Likewise. 8001 (finish_handler): Likewise. 8002 (begin_compound_stmt): Likewise. 8003 (finish_compound_stmt): Likewise. 8004 (finish_asm_stmt): Likewise. 8005 (finish_label_stmt): Likewise. 8006 (finish_label_decl): Likewise. 8007 (finish_subobject): Likewise. 8008 (finish_decl_cleanup): Likewise. 8009 (finish_named_return_value): Likewise. 8010 (begin_stmt_expr): Likewise. 8011 (finish_stmt_expr): Likewise. 8012 8013 * decl.c (initialize_local_var): Changed call to finish_expr_stmt 8014 to call genrtl_expr_stmt when appropriate. 8015 8016 * init.c (begin_init_stmts): Changed calls to begin_stmt_expr and 8017 begin_compound_expr to call genrtl_begin_stmt_expr and 8018 genrtl_begin_compound_expr when appropriate. 8019 (finish_init_stmts): Changed calls to finish_compound_expr and 8020 finish_stmt_expr to call genrtl_finish_compound_expr and 8021 genrtl_finish_stmt_expr when appropriate. 8022 (expand_default_init): Changed call to finish_expr_stmt to call 8023 genrtl_expr_stmt when appropriate. 8024 (build_vec_init): Likewise. 8025 8026 * parse.y (simple_stmt): Removed first argument from call to 8027 finish_for_stmt. Removed first argument from call to 8028 finish_switch_stmt. 8029 8030 * parse.c: Regenerated. 8031 8032 * pt.c (tsubst_expr): Removed first argument from call to 8033 finish_for_stmt. Removed first argument from call to 8034 finish_switch_stmt. 8035 80362000-06-16 Benjamin Chelf <chelf@codesourcery.com> 8037 8038 * cp-tree.h (enum cplus_tree_code): Changed __DUMMY to 8039 CP_DUMMY_TREE_CODE. Remove #include "c-common.def". 8040 8041 * lex.c (cplus_tree_code_type[]): Removed #include "c-common.def". 8042 (cplus_tree_code_length[]): Likewise. 8043 (cplus_tree_code_name[]): Likewise. 8044 (init_parse): Added call to add_c_tree_codes. Changed 8045 LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE. 8046 80472000-06-16 Mark Mitchell <mark@codesourcery.com> 8048 8049 * cp-tree.h (finish_mem_initializers): Declare. 8050 (count_trees): Likewise. 8051 * parse.y (base_init): Use finish_mem_initializers. 8052 * semantics.c (finish_mem_initializers): New function. 8053 8054 * tree.c (count_trees_r): Prototype. Use DATA parameter to store 8055 the number of trees. 8056 (n_trees): Remove. 8057 (count_trees): Don't use it. 8058 80592000-06-15 Jason Merrill <jason@redhat.com> 8060 8061 * tree.c (count_trees): New debugging function. 8062 8063 * typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P. 8064 * init.c (build_member_call): Pull out the name of a DECL. 8065 8066 * Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H. 8067 * semantics.c (expand_body): Push to TV_INTEGRATION here. 8068 * optimize.c (optimize_function): Not here. 8069 * pt.c (instantiate_decl): Push to TV_PARSE. 8070 80712000-06-15 Mark Mitchell <mark@codesourcery.com> 8072 8073 * cp-tree.h (struct language_function): Remove x_base_init_list 8074 and x_member_init_list. 8075 (current_base_init_list): Remove. 8076 (current_member_init_list): Likewise. 8077 (setup_vtbl_ptr): Change prototype. 8078 (emit_base_init): Likewise. 8079 (expand_member_init): Likewise. 8080 (reinit_parse_for_function): Remove. 8081 * decl.c (save_function_data): Don't clear x_base_init_list and 8082 x_member_init_list. 8083 (mark_language_function): Don't mark them. 8084 * init.c (perform_member_init): Tweak comment. 8085 (sort_member_init): Take the list of initializers as an argument. 8086 (sort_base_init): Likewise. 8087 (emit_base_init): Likewise. 8088 (expand_member_init): Return the initializer. Don't use global 8089 variables. 8090 * lex.c (reinit_parse_for_function): Remove. 8091 * method.c (build_template_parm_names): Correct substitution. 8092 (do_build_copy_constructor): Don't use current_member_init_list 8093 and current_base_init_list. 8094 (synthesize_method): Likewise. 8095 * parse.y (base_init): Split mem-initializers into 8096 base-initializers and field-initializers. 8097 (member_init_list): Build up the list here. 8098 (member_init): Return the initializer. 8099 (fn.depfn): Don't use reinit_parse_for_function. 8100 * parse.c: Regenerated. 8101 * pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the 8102 ERROR_MARK. 8103 (tsubst_expr): Don't use current_member_init_list 8104 and current_base_init_list. 8105 (tsubst_expr_values): Rename to ... 8106 (tsubst_initializer_list): ... this. Use convert_from_reference. 8107 * semantics.c (setup_vtbl_ptr): Don't use current_member_init_list 8108 and current_base_init_list. 8109 (begin_function_definition): Don't call reinit_parse_for_function. 8110 8111 * dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors. 8112 8113 * error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE 8114 correctly. 8115 8116 * cp-tree.h (DECL_PENDING_INLINE_P): Relax checking. 8117 81182000-06-14 Benjamin Chelf <chelf@codesourcery.com> 8119 8120 * cp-tree.h (IF_COND): Move to c-common.h. 8121 (THEN_CLAUSE): Likewise. 8122 (ELSE_CLAUSE): Likewise. 8123 (WHILE_COND): Likewise. 8124 (WHILE_BODY): Likewise. 8125 (DO_COND): Likewise. 8126 (DO_BODY): Likewise. 8127 (RETURN_EXPR): Likewise. 8128 (EXPR_STMT_EXPR): Likewise. 8129 (FOR_INIT_STMT): Likewise. 8130 (FOR_COND): Likewise. 8131 (FOR_EXPR): Likewise. 8132 (FOR_BODY): Likewise. 8133 (SWITCH_COND): Likewise. 8134 (SWITCH_BODY): Likewise. 8135 (CASE_LOW): Likewise. 8136 (CASE_HIGH): Likewise. 8137 (GOTO_DESTINATION): Likewise. 8138 (COMPOUND_BODY): Likewise. 8139 (ASM_CV_QUAL): Likewise. 8140 (ASM_STRING): Likewise. 8141 (ASM_OUTPUTS): Likewise. 8142 (ASM_INPUTS): Likewise. 8143 (ASM_CLOBBERS): Likewise. 8144 (DECL_STMT_DECL): Likewise. 8145 (STMT_EXPR_STMT): Likewise. 8146 (LABEL_STMT_LABEL): Likewise. 8147 (SCOPE_BEGIN_P): Likewise. 8148 (SCOPE_END_P): Likewise. 8149 (SCOPE_STMT_BLOCK): Likewise. 8150 (SCOPE_NULLIFIED_P): Likewise. 8151 (SCOPE_NO_CLEANUPS_P): Likewise. 8152 (SCOPE_PARTIAL_P): Likewise. 8153 (ASM_VOLATILE_P): Likewise. 8154 (STMT_LINENO): Likewise. 8155 (STMT_LINENO_FOR_FN_P): Likewise. 8156 8157 * cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR, 8158 ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, 8159 FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, 8160 CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, 8161 SCOPE_STMT, CASE_LABEL, STMT_EXPR. 8162 8163 * Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def. 8164 8165 * Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def. 8166 (cc1plus$(exeext)): Added $(srcdir)/c-common.def. 8167 8168 * lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'. 8169 (cplus_tree_code_length[]): Added '#include "c-common.def"'. 8170 (cplus_tree_code_name[]): Added '#include "c-common.def"'. 8171 81722000-06-14 Mark Mitchell <mark@codesourcery.com> 8173 8174 * cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro. 8175 * class.c (dfs_find_final_overrider): Set it appropriately. 8176 (dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to 8177 avoid unneeded secondary vptrs. 8178 81792000-06-13 Jakub Jelinek <jakub@redhat.com> 8180 8181 * class.c (build_secondary_vtable): Set DECL_USER_ALIGN. 8182 (check_bitfield_decl, check_field_decl): Likewise. 8183 (build_vtbl_or_vbase_field, build_base_field): Likewise. 8184 (layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN. 8185 * decl.c (record_unknown_type): Set TYPE_USER_ALIGN. 8186 (xfer_tag, finish_enum): Likewise. 8187 * decl2.c (finish_builtin_type): Likewise. 8188 * init.c (init_init_processing): Likewise. 8189 * pt.c (instantiate_class_template): Likewise. 8190 * rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN. 8191 * cp-tree.h (struct lang_type): Add user_align member. 8192 (CLASSTYPE_USER_ALIGN): Define. 8193 8194Tue Jun 13 15:48:03 2000 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 8195 8196 * Make-lang.in (c++.install-common): Install g++-cross in 8197 $(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as 8198 $(target_alias)-g++ and $(target_alias)-c++. 8199 82002000-06-12 Mark Mitchell <mark@codesourcery.com> 8201 8202 * class.c (vcall_offset_data_s): Add last_init and fns. 8203 (overrides): Rename to same_signature_p. 8204 (dfs_find_final_overrider): Adjust accordingly. 8205 (mark_overriders): Likewise. 8206 (warn_hidden): Likewise. 8207 (build_vtbl_initializer): Reorganize machinery for building things 8208 at negative offsets. 8209 (build_vcall_and_vbase_vtbl_entries): Likewise. 8210 (build_vbase_offset_vtbl_entries): Likewise. 8211 (dfs_build_vcall_offset_vtbl_entries): Correct order of vcall 8212 offset entries. Do not create two entries for functions with the 8213 same signature. 8214 (build_vcall_offset_vtbl_entries): Initialize vod->fns. 8215 (build_rtti_vtbl_entries): Reorganize machinery for building things 8216 at negative offsets. 8217 8218 * optimize.c (expand_call_inline): Don't recurse into the code 8219 used to initialize the parameters more than once. 8220 82212000-06-11 Mark Mitchell <mark@codesourcery.com> 8222 8223 * mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment. 8224 (is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here. 8225 (find_substitution): Only use the `Sa' substitution for 8226 std::allocator, not instantiations of it. 8227 (write_template_prefix): Move comment. Only use a TREE_LIST to 8228 represent substitutions for a member template. 8229 (write_array_type): Mangle array dimensions correctly. 8230 * optimize.c (maybe_clone_body): Copy more information from the 8231 cloned function. 8232 * pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE 8233 on the regenerated declaration. 8234 82352000-06-11 Chip Salzenberg <chip@valinux.com> 8236 Mark Mitchell <mark@codesourcery.com> 8237 8238 * class.c (build_vtable): Clarify comment. 8239 (build_ctor_vtbl_group): Pass the most derived type to 8240 build_vtable. 8241 82422000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8243 8244 * decl2.c (compare_options): Don't needlessly cast away const-ness. 8245 82462000-06-10 Mark Mitchell <mark@codesourcery.com> 8247 8248 * decl.c (add_binding): Handle duplicate declarations of external 8249 variables. 8250 82512000-06-09 Chip Salzenberg <chip@valinux.com> 8252 Mark Mitchell <mark@codesourcery.com> 8253 8254 * mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an 8255 argument. 8256 (write_signed_number): New macro. 8257 (write_unsigned_number): Likewise. 8258 (write_source_name): Use them. 8259 (write_number): Handle signed and unsigned values. 8260 (write_integer_cst): Use tree_int_cst_sgn, and use 8261 write_unsigned_number or write_signed_number as appropriate. 8262 (write_discriminator): Use write_unsigned_number or 8263 write_signed_number as appropriate. 8264 (write_template_arg_literal): Likewise. 8265 (write_array_type): Use tree_low_cst. 8266 (write_template_parm): Use write_unsigned_number or 8267 write_signed_number as appropriate. 8268 (write_substitution): Adjust call to write_number. 8269 (write_type): Get the TYPE_MAIN_VARIANT before mangling it. 8270 (write_expression): Handle non-type template arguments of 8271 reference type correctly. 8272 (mangle_thunk): Use write_signed_number. 8273 82742000-06-09 Chip Salzenberg <chip@valinux.com> 8275 8276 * mangle.c (find_substition): Don't mangle objects with typename 8277 substitutions (e.g. "cin" as "Si"). 8278 82792000-06-09 Zack Weinberg <zack@wolery.cumb.org> 8280 8281 * call.c (add_candidate): Use ggc_alloc_cleared. 8282 * decl.c (lookup_label): Likewise. 8283 * lex.c (retrofit_lang_decl): Likewise. 8284 82852000-06-09 Jason Merrill <jason@casey.soma.redhat.com> 8286 8287 * semantics.c (expand_body): Push to TV_EXPAND. 8288 * optimize.c (optimize_function): Push to TV_INTEGRATION. 8289 * decl.c (start_function): Always call announce_function. 8290 8291 * tinfo2.cc: Just declare abort. 8292 82932000-06-09 Gabriel Dos Reis <gdr@codesourcery.com> 8294 8295 * lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @' 8296 whenever @ is a symbolic name. 8297 82982000-06-08 Jakub Jelinek <jakub@redhat.com> 8299 8300 * method.c (make_thunk): Clear DECL_VTT_PARM in thunk. 8301 83022000-06-07 Mark Mitchell <mark@codesourcery.com> 8303 8304 * decl.c (pushdecl): Look up functions by DECL_NAME, not 8305 DECL_ASSEMBLER_NAME. 8306 83072000-06-06 Mark Mitchell <mark@codesourcery.com> 8308 8309 * decl2.c (c_language): Define. 8310 83112000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 8312 8313 * lex.c (lang_init_options): Tweak. 8314 8315 * decl2.c: Remove #inclusion of diagnostic.h 8316 (lang_decode_option): Move diagnostic formatting options to 8317 toplevel. 8318 8319 * lang-options.h: Remove documentation for diagnostic options. 8320 8321 * Makefile.in (lex.o): Depends upon diagnostic.h 8322 83232000-06-06 Mark Mitchell <mark@codesourcery.com> 8324 8325 * decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have 8326 the same DECL_RESULT, it's not a redefinition. 8327 * pt.c (tsubst_decl): Remove code to handle illegal 8328 specializations. 8329 83302000-06-06 Nathan Sidwell <nathan@codesourcery.com> 8331 8332 * exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c 8333 83342000-06-05 Jason Merrill <jason@casey.soma.redhat.com> 8335 8336 * search.c (maybe_suppress_debug_info): Don't check 8337 CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set. 8338 8339 * pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION 8340 here if extern_p. 8341 8342 Remember instantiation context in deferred instantiations. 8343 * cp-tree.h (struct tinst_level): Remove. 8344 (TINST_DECL, TINST_LINE, TINST_FILE): New macros. 8345 * pt.c (current_tinst_level): Now a tree. 8346 (print_template_context, push_tinst_level, pop_tinst_level, 8347 tinst_for_decl): Adjust. 8348 (reopen_tinst_level): New fn. 8349 (init_pt): Register current_tinst_level as a root. 8350 (add_pending_template): Put current_tinst_level in TREE_PURPOSE 8351 of the pending templates list. 8352 (instantiate_pending_templates): Adjust. Call reopen_tinst_level. 8353 * lex.c (extract_interface_info): Adjust. 8354 * decl2.c (warn_if_unknown_interface): Adjust. 8355 83562000-06-05 Mark Mitchell <mark@codesourcery.com> 8357 8358 * class.c (indirect_primary_base_p): New function. 8359 (determine_primary_base): Use it. 8360 83612000-06-05 Nathan Sidwell <nathan@codesourcery.com> 8362 8363 Update new-abi dynamic cast algorithm. 8364 * tinfo.cc (__class_type_info::__dyncast_result): Add 8365 whole_details. Adjust constructor. 8366 (__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags. 8367 Avoid unnecessary searching. 8368 (__dynamic_cast): Adjust for __dyncast_result::whole_details. 8369 8370Mon Jun 5 06:48:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8371 8372 * decl.c (init_decl_processing): Don't call record_component_aliases. 8373 * tree.c (build_cplus_array_type_1): Likewise. 8374 83752000-06-04 Mark Mitchell <mark@codesourcery.com> 8376 8377 * ir.texi: Correct typo. 8378 * mangle.c (write_expression): Handle non-type template arguments 8379 with reference type. 8380 * method.c (build_overload_value): Likewise. 8381 * pt.c (convert_nontype_argument): Explicitly represent conversion 8382 to a reference with an ADDR_EXPR. 8383 (unify): Always unify arguments in left-to-right order. 8384 83852000-06-03 Alex Samuel <samuel@codesourcery.com> 8386 Mark Mitchell <mark@codesourcery.com> 8387 8388 * Make-lang.in (CXX_SRCS): Add mangle.c. 8389 * Makefile.in (CXX_OBJS): Add mangle.o. 8390 (mangle.o): New rule. 8391 8392 * class.c (local_classes): New variable. 8393 * class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI. 8394 (get_vtt_name): Use mangle_vtt_name for new ABI. 8395 (init_class_processing): Initialize local_classes. 8396 (build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI. 8397 * cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER. 8398 (std_identifier): New macro. 8399 (DECL_VOLATILE_MEMFUNC_P): New macro. 8400 (DECL_NAMESPACE_STD_P): Likewise. 8401 (local_classes): Declare. 8402 (get_mostly_instantiated_function_type): Declare. 8403 (init_mangle): Declare. 8404 (mangle_decl): Likewise. 8405 (mangle_type_string): Likewise. 8406 (mangle_type): Likewise. 8407 (mangle_typeinfo_for_type): Likewise. 8408 (mangle_typeinfo_string_for_type): Likewise. 8409 (mangle_vtbl_for_type): Likewise. 8410 (mangle_vtt_for_type): Likewise. 8411 (mangle_ctor_vtbl_for_type): Likewise. 8412 (mangle_thunk): Likewise. 8413 (mangle_conv_op_name_for_type): Likewise. 8414 (mangle_guard_variable): Likewise. 8415 * decl.c (pushtag): Keep track of local classes. 8416 (initialize_predefined_identifiers): Initialize std_identifier. 8417 (init_decl_processing): Use std_identifier. 8418 (start_decl): Don't treat instantiations as specializations. 8419 (grokdeclarator): Likewise. 8420 (grokvardecl): Call mangle_decl for new ABI. Only set mangled 8421 name for fully-instantiated templates. 8422 * decl2.c (grokclassfn): Use set_mangled_name_for_decl for 8423 destructors with the new ABI. 8424 (finish_static_data_member_decl): Use mangle_decl under the new ABI. 8425 (grokfield): Use mangle_type for new ABI. 8426 (grokoptypename): Use mangle_conv_op_for_type for new ABI. 8427 (get_sentry): Use mangle_guard_variable for new ABI. 8428 (start_static_initialization_or_destruction): Likewise. 8429 * expr.c (extract_aggr_init): Remove. 8430 (extract_scalar_init): Likewise. 8431 (extract_init): Remove #if 0'd code. 8432 * mangle.c: New function. 8433 * method.c (build_mangled_name): Assert not flag_new_abi. 8434 (build_static_name): Likewise. 8435 (build_decl_overload_real): Likewise. 8436 (build_typename_overload): Likewise. 8437 (build_overload_with_type): Likewise. 8438 (build_overload_name): Likewise. 8439 (get_ctor_vtbl_name): Likewise. 8440 (start_squangling): Likewise. 8441 (get_id_2): Likewise. 8442 (set_mangled_name_for_decl): Call mangle_decl for new ABI. 8443 (init_method): Call init_mangle for new ABI. 8444 (make_thunk): Call mangle_thunk for new ABI. 8445 * operators.def: Correct new ABI manglings for the `%' operator. 8446 Add `::' operator. 8447 * pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and 8448 DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL. 8449 (lookup_template_class): Call mangle_decl for new ABI. 8450 (get_mostly_instantiated_function_type): New function. 8451 (set_mangled_name_for_template_decl): Use it. 8452 (tsubst_decl): Use set_mangled_name_for_decl for destructors with 8453 the new ABI. Use mangle_conv_op_name_for_type for instantiated 8454 conversion op names. 8455 * rtti.c (tinfo_name): Call mangle_type_string for new ABI. 8456 (get_tinfo_decl): Call mangle_typeinfo_for_type for new ABI. 8457 (tinfo_base_init): Likewise. Mangle typeinfo string name with 8458 mangle_typeinfo_string_for_type. 8459 84602000-06-03 Mark Mitchell <mark@codesourcery.com> 8461 8462 * cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. 8463 (INNERMOST_TEMPLATE_ARGS): New macro. 8464 (innermost_args): Remove. 8465 (get_innermost_template_args): New function. 8466 * decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS. 8467 * error.c (dump_function_decl): Be caution when using 8468 most_general_template. 8469 * method.c (build_template_parm_names): Use 8470 INNERMOST_TEMPLATE_ARGS. 8471 * pt.c (add_to_template_args): Tidy comment 8472 (get_innermost_template_args): New function. 8473 (check_explicit_specialization): Clear DECL_INITIAL for a new 8474 specialization. 8475 (process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS. 8476 Tidy. 8477 (push_template_decl): Always register specializations of the most 8478 general template. 8479 (convert_template_argument): Use INNERMOST_TEMPLATE_ARGS. 8480 (coerce_template_parms): Likewise. 8481 (lookup_template_class): Likewise. 8482 (innermost_args): Remove. 8483 (tsubst_decl): Use INNERMOST_TEMPLATE_ARGS. 8484 (tsubst_decl): Handle tricky specializations. Use 8485 get_innermost_template_args. 8486 (instantiate_template): Simplify handling of partial 8487 instantiations. 8488 (get_class_bindings): Use INNERMOST_TEMPLATE_ARGS. 8489 (most_general_template): Reimplement, in a more straightforward 8490 manner. 8491 (regenerate_decl_from_template): Tweak formatting. Use 8492 TMPL_ARGS_DEPTH for clarity. 8493 (set_mangled_name_for_template_decl): Use INNERMOST_ARGS. 8494 8495 * dump.c (dequeue_and_dump): Dump information about thunks. 8496 84972000-06-01 Richard Henderson <rth@cygnus.com> 8498 8499 * decl.c (init_decl_processing): Set lang_get_alias_set first thing. 8500 85012000-06-01 Richard Henderson <rth@cygnus.com> 8502 8503 * decl2.c (unsupported_options): Fix typo, make const. 8504 (lang_decode_option): Fix bsearch argument order. 8505 85062000-06-01 Mark Mitchell <mark@codesourcery.com> 8507 8508 * init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE 8509 on FIELD_DECLs. 8510 8511Wed May 31 14:09:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8512 8513 * cp-tree.h (c_get_alias_set): Deleted. 8514 * Makefile.in (decl.o): Include ../expr.h. 8515 * decl.c (expr.h): Include. 8516 (init_decl_processing): Call record_component_aliases for arrays. 8517 (grokdeclarator): Likewise. 8518 Set TREE_ADDRESSABLE for fields that aren't bitfields. 8519 * tree.c (build_cplus_array_type_1): Call record_component_aliases. 8520 85212000-05-31 Mark Mitchell <mark@codesourcery.com> 8522 8523 Remove guiding declaration support. 8524 * cp/cp-tree.h (flag_dump_translation_unit): Make it const. 8525 (flag_guiding_decls): Remove. 8526 * call.c (build_user_type_conversion_1): Remove support for 8527 guiding decls. 8528 (build_new_function_call): Likewise. 8529 (build_new_op): Likewise. 8530 (build_new_method_call): Likewise. 8531 * decl.c (start_function): Likewise. 8532 * friend.c (is_friend): Likewise. 8533 (do_friend): Likewise. 8534 * decl2.c ((flag_dump_translation_unit): Make it const. 8535 (flag_guiding_decls): Remove. 8536 (unsupported_options): New variable 8537 (compare_options): New function. 8538 (lang_decode_option): Use them. 8539 8540 * decl.c (build_cp_library_fn): Set DECL_CONTEXT. 8541 8542 * method.c (mangle_expression): Adjust test for legal expression 8543 operators. 8544 8545 * pt.c (instantiate_decl): Save and restore the local 8546 specializations list. 8547 85482000-05-30 Jason Merrill <jason@decepticon.cygnus.com> 8549 8550 * decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING. 8551 85522000-05-30 Mark Mitchell <mark@codesourcery.com> 8553 8554 * call.c (add_template_candidate_real): Handle member template 8555 constructors for classes with virtual bases. 8556 (build_user_type_conversion_1): Use in_charge_arg_for_name. 8557 (build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P. 8558 8559 * ir.texi: Update thunk documentation. 8560 8561 * call.c (joust): Fix handling of overloaded builtin operators. 8562 85632000-05-30 Zack Weinberg <zack@wolery.cumb.org> 8564 8565 * cp-tree.h (DECL_ANTICIPATED): New macro. 8566 Document new use of DECL_LANG_FLAG_7. 8567 * decl.c (builtin_function): Set DECL_ANTICIPATED on builtins 8568 in the user namespace. 8569 * lex.c (do_identifier): If the identifier's declaration has 8570 DECL_ANTICIPATED on, it has not yet been declared. But do not 8571 replace it with an ordinary implicit declaration. 8572 8573 * tinfo2.cc: Include stdlib.h. 8574 85752000-05-29 Mark Mitchell <mark@codesourcery.com> 8576 8577 * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. 8578 * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not 8579 CLASSTYPE_ALIGN. 8580 85812000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> 8582 8583 * decl2.c (lang_decode_option): Use skip_leading_substring instead 8584 of plain strncmp. 8585 85862000-05-28 Alexandre Oliva <aoliva@cygnus.com> 8587 8588 * operators.def (<?): Duplicated, should have been... 8589 (>?): this. Fixed. 8590 85912000-05-27 Alex Samuel <samuel@codesourcery.com> 8592 Mark Mitchell <mark@codesourcery.com> 8593 8594 * cp-tree.h (ansi_opname): Make it a macro. 8595 (ansi_assopname): Likewise. 8596 (struct lang_decl_flags): Add assignment_operator_p. 8597 (struct lang_decl): Add operator_code. 8598 (DECL_VTT_PARM): Adjust. 8599 (DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an 8600 overloaded operator. 8601 (SET_OVERLOADED_OPERATOR_CODE): New macro. 8602 (DECL_ASSIGNMENT_OPERATOR_P): New macro. 8603 (DECL_ARRAY_DELETE_OPERATOR_P): Adjust. 8604 (opname_tab): Remove. 8605 (assignop_tab): Likewise. 8606 (operator_name_info_t): New type. 8607 (operator_name_info): New variable. 8608 (assignment_operator_name_info): Likewise. 8609 (build_cp_library_fn): Remove declaration. 8610 (push_cp_library_fn): Likewise. 8611 (operator_name_string): Likewise. 8612 (build_decl_overload): Likewise. 8613 * call.c (print_z_candidates): Simplify. 8614 (build_object_call): Adjust usage of ansi_opname. Use 8615 DECL_OVERLOADED_OPERATOR_P. 8616 (op_error): Adjust operator name lookup. 8617 (build_conditional_expr): Adjust usage of ansi_opname. 8618 (build_new_op): Likewise. 8619 (build_op_delete_call): Likewise. 8620 (build_over_call): Likewise. 8621 (joust): Use DECL_OVERLOADED_OPERATOR_P. 8622 * decl.c (duplicate_decls): Copy operator_code. 8623 (init_decl_processing): Adjust parameters to push_cp_library_fn. 8624 (builtin_function): Adjust parameters to build_library_fn_1. 8625 (build_library_fn_1): Accept an overloaded operator code. 8626 (build_library_fn): Pass ERROR_MARK. 8627 (build_cp_library_fn): Accept an overloaded operator code. 8628 (push_cp_library_fn): Likewise. 8629 (grokfndecl): Tweak. 8630 (grokdeclarator): Simplify code to compute names of overloaded 8631 operators. Adjust use of ansi_opname. 8632 (ambi_op_p): Work on tree_codes, not identifiers. 8633 (unary_op_p): Likewise. 8634 (grok_op_properties): Likewise. 8635 (start_function): Use DECL_OVERLOADED_OPERATOR_P. 8636 (lang_mark_tree): Don't try to mark the operator_code. 8637 * decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P. 8638 * error.c (dump_decl): Remove special handling for operator 8639 names. 8640 (dump_function_name): Likewise. 8641 (dump_expr): Adjust name lookup of operators. 8642 (op_to_string): Simplify. 8643 (assop_to_string): Likewise. 8644 * init.c (build_new_1): Adjust use of ansi_opname. 8645 * lex.c (opname_tab): Remove. 8646 (assignop_tab): Likewise. 8647 (ansi_opname): Likewise. 8648 (ansi_assopname): Likewise. 8649 (operator_name_string): Likewise. 8650 (reinit_lang_specific): Likewise. 8651 (operator_name_info): New variable. 8652 (assignment_operator_name_info): Likewise. 8653 (init_operators): New function. 8654 (init_parse): Use it. 8655 (do_identifier): Adjust use of ansi_opname. 8656 * method.c (mangle_expression): Don't use ansi_opname for 8657 mangling. 8658 (build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P. 8659 (build_decl_overload): Remove. 8660 (build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly. 8661 (do_build_assign_ref): Adjust use of ansi_opname. 8662 (synthesize_method): Likewise. 8663 (implicitly_declare_fn): Likewise. 8664 * operators.def: New file. 8665 * parse.y (operator): Adjust use of ansi_opname. 8666 * pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P. 8667 (set_mangled_name_for_template_decl): Don't play games with 8668 current_namespace. 8669 (special_function_p): Adjust use of ansi_opname. 8670 * typeck.c (check_return_expr): Likewise. 8671 * Make-lang.in (cc1plus): Depend on operators.def. 8672 * Makefile.in (lex.o): Likewise. 8673 (decl.o): Likewise. 8674 86752000-05-27 Zack Weinberg <zack@wolery.cumb.org> 8676 8677 * Make-lang.in (cplib2.ready): Eradicate. 8678 8679Sat May 27 11:25:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8680 8681 * method.c (mangle_expression): Use TREE_CODE_LENGTH. 8682 * tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. 8683 (built_min, cp_tree_equal): Likewise. 8684 86852000-05-26 Mark Mitchell <mark@codesourcery.com> 8686 8687 * class.c (layout_nonempty_base_or_field): Replace 8688 `record_layout_info' with `record_layout_info_s'. 8689 86902000-05-26 Jason Merrill <jason@casey.soma.redhat.com> 8691 8692 Fix goto checking. 8693 * cp-tree.h (struct language_function): x_named_labels is now 8694 a struct named_label_list*. 8695 * decl.c (struct named_label_use_list): Renamed from... 8696 (struct named_label_list): ...this. New struct. 8697 (push_binding_level): Don't set eh_region. 8698 (note_level_for_eh): New fn. 8699 (pop_label): Take label and old value directly. 8700 (pop_labels): Adjust for new named_labels format. 8701 (lookup_label): Likewise. 8702 (poplevel): Note characteristics of a binding level containing a 8703 named label. Mess with named label lists earlier. 8704 (mark_named_label_lists): New fn. 8705 (mark_lang_function): Call it. 8706 (use_label): New fn, split out from... 8707 (make_label_decl): ...here. Don't call it. 8708 (decl_jump_unsafe, check_previous_goto, check_previous_goto_1, 8709 check_previous_gotos): New fns, split out from... 8710 (define_label): ...here. 8711 (check_switch_goto): New fn. 8712 (define_case_label): Call it. 8713 (check_goto): New fn. 8714 * semantics.c (finish_goto_stmt): Call it and use_label. 8715 (begin_compound_stmt): If we're a try block, call note_level_for_eh. 8716 (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings. 8717 87182000-05-26 Mark Mitchell <mark@codesourcery.com> 8719 8720 * class.c (build_vtable_entry_ref): Correct usage of 8721 get_vtbl_decl_for_binfo. 8722 8723 * decl2.c (grokclassfn): Set DECL_LANGUAGE here. 8724 * method.c (implicitly_declare_fn): Not here. 8725 87262000-05-26 Nathan Sidwell <nathan@codesourcery.com> 8727 8728 * cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ... 8729 (CPTI_PTMD_DESC_TYPE): ... here. 8730 (ptmd_desc_type_node): Rename to ... 8731 (ptm_desc_type_node): ... here. 8732 * decl.c: Likewise. 8733 * rtti.c (ptmd_initializer): Rename to ... 8734 (ptm_initializer): ... here. 8735 (sythesize_tinfo_var): Adjust. Deal with pointer to member 8736 function. 8737 (create_tinfo_types): Adjust. 8738 87392000-05-25 Mark Mitchell <mark@codesourcery.com> 8740 8741 Finish implementation of VTTs. 8742 * cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and 8743 CPTI_VTT_PARM_IDENTIFIER. 8744 (vtt_parm_identifier): New macro. 8745 (vtt_parm_type): Likewise. 8746 (BINFO_SUBVTT_INDEX): Likewise. 8747 (BINFO_VPTR_INDEX): Likewise. 8748 (struct lang_decl): Add vtt_parm. 8749 (DECL_VTT_PARM): New macro. 8750 (DECL_USE_VTT_PARM): Likewise. 8751 (DECL_NEEDS_VTT_PARM_P): Likewise. 8752 (get_vtt_name): Declare. 8753 (build_artificial_parm): Likewise. 8754 (fixup_all_virtual_upcast_offsets): Likewise. 8755 (expand_indirect_vtbls_init): Remove. 8756 * call.c (build_new_method_call): Pass the vtt to subobject 8757 constructors and destructors. 8758 * class.c (get_vtt_name): Give it external linkage. 8759 (build_clone): Handle the magic VTT parameters for clones. 8760 (clone_function_decl): Fix typo in comment. 8761 (build_vtt): Keep track of the indices in the VTTs where various 8762 entities are stored. 8763 (build_vtt_inits): Likewise. 8764 (dfs_build_vtt_inits): Likewise. 8765 (build_ctor_vtbl_group): Tweak type of construction vtables. 8766 (dfs_accumulate_vtbl_inits): Build vtables for all bases, even 8767 primary bases, when building construction vtables. 8768 * decl.c (duplicate_decls): Handle DECL_VTT_PARM. 8769 (initialize_predefined_identifiers): Add vtt_parm_identifier. 8770 (init_decl_processing): Initialize vtt_parm_type. 8771 (grokfndecl): Use DECL_OVERLOADED_OPERATOR_P. 8772 (lang_mark_tree): Make vtt_parm. 8773 * decl2.c (build_artificial_parm): New function. 8774 (maybe_retrofit_in_chrg): Use it. Add VTT parameters. 8775 (grokclassfn): Use build_artificial_parm. 8776 * init.c (initialize_vtbl_ptrs): Call 8777 fixup_all_virtual_upcast_offsets directly. 8778 (perform_member_init): Use the complete subobject destructor for 8779 member cleanups. 8780 (build_vtbl_address): New function. 8781 (expand_virtual_init): Handle VTTs. 8782 * optimize (maybe_clone_body): Likewise. 8783 * search.c (fixup_all_virtual_upcast_offsets): Give it external 8784 linkage. 8785 (expand_indirect_vtbls_init): Remove. 8786 * semantics.c (setup_vtbl_ptr): Fix typos in comment. 8787 * tree.c (make_binfo): Make them bigger. 8788 87892000-05-25 Nathan Sidwell <nathan@codesourcery.com> 8790 8791 * inc/cxxabi.h (__pbase_type_info): Define, based on 8792 __pointer_type_info. 8793 (__pointer_type_info): Derive from __pbase_type_info. Adjust. 8794 (__pointer_to_member_type_info): Likewise. 8795 * tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement. 8796 (__pointer_to_member_type_info::__is_pointer_p): Remove. 8797 (__pointer_type_info::__do_catch): Rename to ... 8798 (__pbase_type_info::__do_catch): ... here. Adjust. 8799 (__pbase_type_info::__pointer_catch): Implement. 8800 (__pointer_type_info::__pointer_catch): Adjust. 8801 (__pointer_to_member_type_info::__pointer_catch): Adjust. 8802 88032000-05-25 Nathan Sidwell <nathan@codesourcery.com> 8804 8805 * tinfo.h (__user_type_info::contained_virtual_p): New 8806 predicate. 8807 * tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond 8808 shaped hierarchy. 8809 (__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to 8810 diamond shaped hierarchy. Add early out for mixed diamond and 8811 duplicate shaped hierarchy. 8812 88132000-05-24 Mark Mitchell <mark@codesourcery.com> 8814 8815 * cp-tree.h (build_delete): Change prototype. 8816 (build_vec_delete): Likewise. 8817 * call.c (build_scoped_method_call): Use special_function_kind 8818 values to indicate the kind of destruction to be done. 8819 (build_method_call): Likewise. 8820 * decl.c (finish_destructor_body): Likewise. 8821 (maybe_build_cleanup_1): Likewise. Rename to ... 8822 (maybe_build_cleanup): ... this. 8823 * decl2.c (delete_sanity): Use special_function_kind 8824 values to indicate the kind of destruction to be done. 8825 (build_cleanup): Likewise. 8826 * init.c (perform_member_init): Likewise. 8827 (build_vec_delete_1): Likewise. 8828 (build_dtor_call): Simplify. 8829 (build_delete): Use special_function_kind 8830 values to indicate the kind of destruction to be done. 8831 (build_vbase_delete): Likewise. 8832 (build_vec_delete): Likewise. 8833 8834 * init.c (sort_member_init): Fix typo in error message generation 8835 code. 8836 8837Mon May 15 11:46:29 2000 Donald Lindsay <dlindsay@cygnus.com> 8838 8839 * semantics.c (begin_class_definition): make the packed 8840 attribute be sensitive to the "-fpack-struct" command line flag 8841 88422000-05-24 Nathan Sidwell <nathan@codesourcery.com> 8843 8844 Update new-abi upcast algorithm. 8845 * inc/cxxabi.h (__class_type_info::__do_upcast): Change 8846 prototype and meaning of return value. 8847 (__si_class_type_info::__do_upcast): Likewise. 8848 (__vmi_class_type_info::__do_upcast): Likewise. 8849 * tinfo.cc (__class_type_info::__upcast_result): Replace 8850 whole2dst with part2dst. Adjust ctor. 8851 (__class_type_info::__do_upcast): Adjust call of worker function. 8852 (__class_type_info::__do_upcast): Adjust. 8853 (__si_class_type_info::__do_upcast): Adjust. Use parent's 8854 __do_upcast. 8855 (__vmi_class_type_info::__do_upcast): Likewise. Fix private 8856 virtual base in diamond hierarchy bug. 8857 88582000-05-23 Mark Mitchell <mark@codesourcery.com> 8859 8860 * cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable 8861 and bitfield to tinfo_fn_p. 8862 (DECL_TINFO_FN_P): Adjust. 8863 (SET_DECL_TINFO_FN_P): Likewise. 8864 (DECL_MUTABLE_P): Likewise. 8865 (DECL_C_BIT_FIELD): Likewise. 8866 (SET_DECL_C_BIT_FIELD): Likewise. 8867 (CLEAR_DECL_C_BIT_FIELD): Likewise. 8868 (DECL_UNINLINABLE): Likewise. 8869 * class.c (alter_access): Call retrofit_lang_decl if ncessary. 8870 (handle_using_decl): Remove assertion. 8871 (build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl, 8872 to build FIELD_DECLs. 8873 (build_base_field): Likewise. 8874 (layout_class_type): Likewise. 8875 * decl.c (init_decl_processing): Likewise. 8876 (build_ptrmemfunc_type): Likewise. 8877 (grokdeclarator): Likewise. 8878 * decl2.c (grok_x_components): Likewise. 8879 * except.c (call_eh_info): Likewise. 8880 * init.c (init_init_processing): Likewise. 8881 * rtti.c (expand_class_desc): Likewise. 8882 (create_pseudo_type_info): Likewise. 8883 (get_vmi_pseudo_type_info): Likewise. 8884 (create_tinfo_types): Likewise. 8885 * ptree.c (print_lang_decl): Adjust. 8886 * typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC 8887 before checking DECL_MUTABLE_P. 8888 8889 * decl2.c (maybe_retrofit_in_chrg): Don't create in-charge 8890 parameters for template functions. 8891 * pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for 8892 destructors as well as constructors. 8893 88942000-05-22 Mark Mitchell <mark@codesourcery.com> 8895 8896 * class.c (build_ctor_vtbl_group): Set inits. 8897 * optimize.c (maybe_clone_body): Set DECL_INLINE and 8898 DECL_THIS_INLINE appropriately for clones. 8899 8900 * cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. 8901 (DECL_CONV_FN_P): Simplify. 8902 (DECL_OPERATOR): Remove. 8903 (language_to_string): Declare. 8904 * decl.c (duplicate_decls): Fix typo in comment. 8905 (grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P. 8906 (grok_op_properties): Use DECL_CONV_FN_P instead of 8907 IDENTIFIER_TYPENAME_P. 8908 * dump.c (dequeue_and_dump): Dump the language linkage of 8909 declarations. 8910 * error.c (language_to_string): Give it external linkage. 8911 * method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P. 8912 (implicitly_declare_fn): Set DECL_LANGUAGE. 8913 * pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not 8914 IDENTIFIER_TYPENAME_P. 8915 (tsubst_decl): Likewise. 8916 (tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P. 8917 * semantics.c (finish_member_declaration): Don't mark members of 8918 classes declared in an extern "C" region as extern "C". 8919 89202000-05-22 Martin v. L�wis <loewis@informatik.hu-berlin.de> 8921 8922 * decl2.c (qualified_lookup_using_namespace): Look through 8923 namespace aliases. 8924 8925 * decl.c (push_using_decl): Return the old decl on namespace level. 8926 89272000-05-21 Mark Mitchell <mark@codesourcery.com> 8928 8929 * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks. 8930 (VTT_NAME_PREFIX): New macro. 8931 (CTOR_VTBL_NAME_PREFIX): Likewise. 8932 (get_ctor_vtbl_name): New function. 8933 * class.c (get_vtable_name): Simplify. 8934 (get_vtt_name): New function. 8935 (get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE. 8936 (dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list 8937 when a virtual base becomes primary. 8938 (finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier. Build 8939 VTTs. 8940 (finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in 8941 additional parameters. 8942 (dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED. 8943 (initialize_array): New function. 8944 (build_vtt): Likewise. 8945 (build_vtt_inits): Likewise. 8946 (dfs_build_vtt_inits): Likewise. 8947 (dfs_fixup_binfo_vtbls): Likewise. 8948 (build_ctor_vtbl_group): Likewise. 8949 (initialize_vtable): Use initialize_array. 8950 (accumulate_vtbl_inits): Reimplement to handle construction 8951 vtables. 8952 (dfs_accumulate_vtbl_inits): Likewise. 8953 (bulid_vtbl_initializer): Adjust parameter name. 8954 * method.c (build_typename_overload): Remove #if 0'd code. 8955 (get_ctor_vtbl_name): New function. 8956 * search.c (dfs_walk_real): Use BINFO_N_BASETYPES. 8957 (init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo. 8958 8959 * cp-tree.h (struct lang_type): Remove search_slot. 8960 (CLASSTYPE_SEARCH_SLOT): Remove. 8961 (emit_base_init): Change prototype. 8962 (initialize_vtbl_ptrs): Likewise. 8963 (expand_indirect_vtbls_init): Likewise. 8964 (clear_search_slots): Remove. 8965 * decl.c (lang_mark_tree): Don't mark search_slot. 8966 * init.c (initialize_vtbl_ptrs): Simplify. 8967 (emit_base_init): Likewise. 8968 * search.c (struct vbase_info): Document decl_ptr. 8969 (convert_pointer_to_single_level): Remove. 8970 (dfs_find_vbases): Remove. 8971 (dfs_init_base_pointers): Simplify. 8972 (dfs_clear_vbase_slots): Remove. 8973 (dfs_vtable_path_unmark): New function. 8974 (init_vbase_pointers): Simplify. 8975 (expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT. 8976 (expand_indirect_vtbls_init): Simplify. Don't call 8977 mark_all_temps_used. 8978 * semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and 8979 initialize_vtbl_ptrs. 8980 89812000-05-20 Zack Weinberg <zack@wolery.cumb.org> 8982 8983 * except.c: Add static prototypes. 8984 89852000-05-20 H.J. Lu <hjl@gnu.org> 8986 8987 * Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext). 8988 89892000-05-19 Mark Mitchell <mark@codesourcery.com> 8990 8991 Don't create a separate copy of virtual bases for the 8992 CLASSTYPE_VBASECLASSES list. 8993 * cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation. 8994 (BINFO_FOR_VBASE): Remove. 8995 (CANONICAL_BINFO): Adjust. 8996 (binfo_for_vbase): New function. 8997 * class.c (build_vbase_pointer_fields): Use binfo_for_vbase 8998 instead of BINFO_FOR_VBASE. 8999 (build_vbase_pointer): Likewise. 9000 (build_secondary_vtable): Likewise. 9001 (dfs_mark_primary_bases): Likewise. 9002 (mark_primary_bases): Likewise. 9003 (layout_nonempty_base_or_field): Likewise. 9004 (dfs_set_offset_for_shared_vbases): Likewise. 9005 (dfs_set_offset_for_unshared_vbases): Likewise. 9006 (layout_virtual_bases): Likewise. Adjust for changes to the 9007 CLASSTYPE_VBASECLASSES list. 9008 (dump_class_hierarchy_r): Use binfo_for_vbase 9009 instead of BINFO_FOR_VBASE. 9010 (dump_class_hierarchy): Likewise. 9011 (finish_vtbls): Likewise. 9012 (build_vtbl_initializer): Adjust for changes to the 9013 CLASSTYPE_VBASECLASSES list. 9014 (build_vbase_offset_vtbl_entries): Use binfo_for_vbase. 9015 * decl.c (finish_destructor_body): Adjust for changes to the 9016 CLASSTYPE_VBASECLASSES list. 9017 * init.c (sort_base_init): Use binfo_for_vbase. 9018 (construct_virtual_bases): Adjust for changes to the 9019 CLASSTYPE_VBASECLASSES list. 9020 (expand_member_init): Use binfo_for_vbase. 9021 (build_vbase_delete): Adjust for changes to the 9022 CLASSTYPE_VBASECLASSES list. 9023 * method.c (do_build_copy_constructor): Likewise. 9024 * rtti.c (get_base_offset): Use binfo_for_vbase. 9025 (expand_class_desc): Remove #if 0'd code. 9026 * search.c (struct vbase_info): Remove vbase_types. 9027 (get_base_distance): Use binfo_for_vbase. 9028 (lookup_field_queue_p): Use CANONICAL_BINFO. 9029 (get_shared_vbase_if_not_primary): Use binfo_for_vbase. 9030 (get_pure_virtuals): Adjust for changes to the 9031 CLASSTYPE_VBASECLASSES list. 9032 (dfs_find_vbases): Use binfo_for_vbase. 9033 (dfs_init_vbase_pointers): Likewise. 9034 (init_vbase_pointers): Don't initialize vi.vbase_types. 9035 (virtual_context): Use binfo_for_vbase. 9036 (fixup_all_virtual_upcast_offsets): Adjust for changes to the 9037 CLASSTYPE_VBASECLASSES list. 9038 (expand_indirect_vtbls_init): Simplify. 9039 (dfs_get_vbase_types): Don't replicate virtual bases. 9040 (find_vbase_instance): Use binfo_for_vbase. 9041 (binfo_for_vbase): New function. 9042 * typeck.c (get_delta_difference): Use binfo_for_vbase. 9043 90442000-05-17 Mark Mitchell <mark@codesourcery.com> 9045 9046 * decl2.c (finish_anon_union): Generalize error messages to handle 9047 anonymous structures. 9048 * init.c (perform_member_init): Remove `name' parameter. 9049 (build_field_list): New function. 9050 (sort_member_init): Handle anonymous union initialization order 9051 correctly. Check for multiple initializations of the same union. 9052 (emit_base_init): Don't look up fields by name here. 9053 (expand_member_init): Record the result of name lookup for future 9054 reference. 9055 * typeck.c (build_component_ref): Fix formatting. 9056 9057Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com> 9058 9059 * decl.c (pop_label): Replace warn_unused with warn_unused_label. 9060 * typeck.c (build_x_compound_expr): Replace warn_unused with 9061 warn_unused_value. 9062 9063 * decl2.c (lang_decode_option): Update -Wall unused flags by 9064 calling set_Wunused. 9065 90662000-05-16 Mark Mitchell <mark@codesourcery.com> 9067 9068 * cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation. 9069 * init.c (dfs_vtable_path_unmark): Remove. 9070 * search.c (marked_new_vtable_p): Likewise. 9071 (unmarked_new_vtable_p): Likewise. 9072 (dfs_search_slot_nonempty_p): Likewise. 9073 (dfs_mark): Likewise. 9074 (dfs_vtable_path_unmark): Likewise. 9075 (dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED. 9076 (dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED. 9077 (dfs_init_vbase_pointers): Remove special-case new ABI code. 9078 (dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED. 9079 (init_vbase_pointers): Simplify. 9080 (expand_indirect_vtbls_init): Likewise. 9081 9082 * class.c (copy_virtuals): New function. 9083 (build_primary_table): Use it. 9084 (build_secondary_vtable): Likewise. 9085 (modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to 9086 indicate that no vcall offset is required. 9087 (add_virtual_function): Likewise. 9088 (modify_all_vtables): Likewise. 9089 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 9090 (dfs_accumulate_vtbl_inits): Likewise. 9091 (build_vtbl_initializer): Make changes to handle construction 9092 vtables. 9093 (dfs_build_vcall_offset_vtbl_entries): Likewise. 9094 (build_rtti_vtbl_entries): Likewise. 9095 (build_vtable_entries): Handle a NULL vcall_index. 9096 90972000-05-15 Gabriel Dos Reis <gdr@codesourcery.com> 9098 9099 * decl2.c (lang_decode_option): Fix thinko. 9100 91012000-05-14 Jason Merrill <jason@casey.cygnus.com> 9102 9103 * except.c (check_handlers): New fn. 9104 * cp-tree.h: Declare it. 9105 * semantics.c (finish_handler_sequence): Call it. 9106 (finish_function_handler_sequence): Likewise. 9107 (finish_handler_parms): Set TREE_TYPE on the handler. 9108 * cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro. 9109 * search.c (get_base_distance_recursive): If protect>1, ignore 9110 special access. 9111 (get_base_distance): Don't reduce watch_access. 9112 91132000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> 9114 9115 * lex.c: #include diagnostic.h. 9116 (lang_init_options): Set default prefixing rules. 9117 9118 * lang-options.h: Add -fdiagnostics-show-location=. 9119 9120 * decl2.c: #include diagnostic.h. 9121 (lang_decode_option): Handle -fdiagnostics-show-location=. 9122 91232000-05-12 Nathan Sidwell <nathan@codesourcery.com> 9124 9125 * tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes. 9126 * vec.cc: Revert my 2000-05-07 change. 9127 91282000-05-11 Jason Merrill <jason@casey.cygnus.com> 9129 9130 * class.c (check_field_decls): Complain about non-static data 9131 members with same name as class in class with constructor. 9132 91332000-05-10 Jason Merrill <jason@casey.cygnus.com> 9134 9135 * decl.c (grokdeclarator): Allow non-static data members with 9136 same name as class. 9137 91382000-05-09 Zack Weinberg <zack@wolery.cumb.org> 9139 9140 * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, 9141 and pending_inline.filename. Update prototypes. 9142 * decl.c (define_label): Constify filename parameter. 9143 * decl2.c (warn_if_unknown_interface): Constify local char *. 9144 * input.c Constify input_source.filename. Don't declare 9145 input_filename or lineno. Constify filename parameter to feed_input. 9146 * lex.c (init_parse): Constify parameter and return value. 9147 (cp_pragma_interface, cp_pragma_implementation): Constify 9148 filename argument. 9149 (reinit_parse_for_method, reinit_parse_for_block, 9150 reinit_parse_for_expr, feed_defarg, handle_cp_pragma): 9151 Constify local char *. 9152 * pt.c: Don't declare lineno or input_filename. 9153 (print_template_context, tsubst_friend_function, tsubst_decl, 9154 tsubst, instantiate_decl): Constify local char *. 9155 * semantics.c (expand_body): Constify local char *. 9156 * tree.c (build_srcloc): Constify filename parameter. 9157 * typeck.c (c_expand_asm_operands): Constify filename 9158 parameter. 9159 91602000-05-08 Nathan Sidwell <nathan@codesourcery.com> 9161 9162 * tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix 9163 offsetof expansion. 9164 91652000-05-08 Branko Cibej <branko.cibej@hermes.si> 9166 9167 * inc/cxxabi.h: Fix typos in comment. 9168 (__base_class_info::__offset): Use a static_cast. 9169 91702000-05-07 Nathan Sidwell <nathan@codesourcery.com> 9171 9172 * inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place 9173 of std::size_t and std::ptrdiff_t respectively. 9174 * tinfo.cc: Likewise. 9175 * vec.cc: Likewise. 9176 91772000-05-06 Richard Henderson <rth@cygnus.com> 9178 9179 * typeck.c (build_c_cast): Don't warn integer->pointer size 9180 mismatch for constants. 9181 91822000-05-06 Nathan Sidwell <nathan@codesourcery.com> 9183 9184 * rtti.c (ptmd_initializer): Set non-public, if class is 9185 incomplete. 9186 9187 * inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++". 9188 (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 9189 __cxa_vec_delete): Likewise. 9190 * tinfo.cc (__dynamic_cast): Likewise. 9191 * vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 9192 __cxa_vec_delete): Likewise. 9193 91942000-05-04 Mark Mitchell <mark@codesourcery.com> 9195 9196 * cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove. 9197 (SET_FNADDR_FROM_VTABLE_ENTRY): Likewise. 9198 (lang_decl_flags): Add vcall_offset. 9199 (THUNK_VCALL_OFFSET): Use it. 9200 * decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk. 9201 * method.c (make_thunk): Create the lang_decl here, not in 9202 emit_thunk. 9203 (emit_thunk): Make generic thunks into ordinary functions once 9204 they have been fed to expand_body. 9205 * semantics.c (expand_body): Set current_function_is_thunk here. 9206 92072000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9208 9209 * class.c (update_vtable_entry_for_fn): Prototype. 9210 9211 * pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl' 9212 and `tmpl'. 9213 9214 * search.c (dfs_build_inheritance_graph_order): Prototype. 9215 92162000-05-04 Mark Mitchell <mark@codesourcery.com> 9217 9218 * cp-tree.h (special_function_kind): Add various kinds of 9219 destructors. 9220 (special_function_p): New function. 9221 * class.c (overrides): Don't let one kind of destructor override 9222 another. 9223 * decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding 9224 whether or not to instantiate a template. 9225 * tree.c (special_function_p): Define. 9226 92272000-05-03 Mark Mitchell <mark@codesourcery.com> 9228 9229 * cp-tree.def (THUNK_DECL): Remove. 9230 * cp-tree.h (DECL_THUNK_P): New macro. 9231 (DECL_NON_THUNK_FUNCTION_P): Likewise. 9232 (DECL_EXTERN_C_FUNCTION_P): Likewise. 9233 (SET_DECL_THUNK_P): Likewise. 9234 (DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P. 9235 (FNADDR_FROM_VTABLE_ENTRY): Likewise. 9236 (DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P. 9237 * decl.c (decls_match): Use DECL_EXTERN_C_P. 9238 (duplicate_decls): Likewise. 9239 (pushdecl): Likewise. Adjust thunk handling. 9240 (grokfndecl): Use DECL_EXTERN_C_P. 9241 * decl2.c (mark_vtable_entries): Use DECL_THUNK_P. 9242 * dump.c (dequeue_and_dump): Remove THUNK_DECL handling. 9243 * except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P. 9244 * expr.c (cplus_expand_expr): Remove THUNK_DECL handling. 9245 * method.c (make_thunk): Use SET_DECL_THUNK_P. Set 9246 DECL_NO_STATIC_CHAIN. 9247 (emit_thunk): Don't play games with TREE_CODE on thunks. Don't 9248 set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk. 9249 * search.c (covariant_return_p): Remove THUNK_DECL handling. 9250 * ir.texi: Update. 9251 92522000-05-01 Jason Merrill <jason@casey.cygnus.com> 9253 9254 * tree.c (walk_tree): Set lineno. 9255 92562000-05-01 Mark Mitchell <mark@codesourcery.com> 9257 9258 * exception.cc: Update license notice. 9259 * new.cc: Likewise. 9260 * new1.cc: Likewise. 9261 * new2.cc: Likewise. 9262 * tinfo.cc: Likewise. 9263 * tinfo2.cc: Likewise. 9264 * vec.cc: Likewise. 9265 * inc/cxxabi.h: Likewise. 9266 * inc/exception: Likewise. 9267 * inc/new: Likewise. 9268 * inc/new.h: Likewise. 9269 * inc/typeinfo: Likewise. 9270 92712000-05-01 Jason Merrill <jason@casey.cygnus.com> 9272 9273 * tree.c (build_target_expr_with_type): If we already have a 9274 TARGET_EXPR, just return it. 9275 9276 * optimize.c (initialize_inlined_parameters): Don't generate an 9277 EXPR_STMT if we can just use DECL_INITIAL. 9278 * decl.c (emit_local_var): Only make the initialization a 9279 full-expression if stmts_are_full_exprs_p. 9280 92812000-05-01 Mark Mitchell <mark@codesourcery.com> 9282 9283 * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New 9284 macro. 9285 * call.c (standard_conversion): Use it. 9286 (direct_reference_binding): Likewise. 9287 (build_over_call): Likewise. 9288 (is_properly_derived_from): Likewise. 9289 (compare_ics): Likewise. 9290 * class.c (resolves_to_fixed_type_p): Likewise. 9291 * optimize.c (declare_return_variable): Likewise. 9292 * pt.c (is_specialization_of): Likewise. 9293 (unify): Likewise. 9294 * typeck.c (comp_target_parms): Likeiwse. 9295 (build_static_cast): Likewise. 9296 (build_reinterpret_cast): Likewise. 9297 (build_const_cast): Likewise. 9298 (comp_ptr_ttypes_real): Likewise. 9299 (comp_ptr_ttypes_const): Likewise. 9300 * typeck2.c (process_init_constructor): Likewise. 9301 93022000-04-30 Scott Snyder <snyder@fnal.gov> 9303 9304 * decl.c (finish_destructor_body): Use the base destructor when 9305 destroying virtual bases. 9306 93072000-04-30 Mark Mitchell <mark@codesourcery.com> 9308 9309 * expr.c (cplus_expand_expr): Preserve temporaries when expanding 9310 STMT_EXPRs. 9311 * optimize.c (struct inline_data): Add target_exprs field. 9312 (declare_return_variable): When a function returns an aggregate, 9313 use the variable declared in the TARGET_EXPR as the remapped 9314 DECL_RESULT. 9315 (expand_call_inline): Update the pending target_exprs stack. 9316 (optimize_function): Initialize the stack. 9317 9318 * decl2.c (finish_file): Fix typo in comment. 9319 9320 * method.c (emit_thunk): Don't try to return a `void' value. 9321 9322 * optimize.c (initialize_inlined_parameters): If the parameter is 9323 addressable, we need to make a new VAR_DECL, even if the 9324 initializer is constant. 9325 93262000-04-28 Cosmin Truta <cosmint@cs.ubbcluj.ro> 9327 9328 * decl.c (grok_op_properties): Add an extra check of argtypes. 9329 93302000-04-27 Mark Mitchell <mark@codesourcery.com> 9331 9332 * optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying 9333 variables. 9334 (initialize_inlined_parameters): Try to avoid creating new 9335 VAR_DECLs. 9336 93372000-04-27 Alex Samuel <samuel@codesourcery.com> 9338 9339 * lex.c (my_get_run_time): Remove. 9340 (init_filename_times): Use get_run_time instead of my_get_run_time. 9341 (check_newline): Likewise. 9342 (dump_time_statistics): Likewise. 9343 * decl2.c (finish_file): Push and pop timevar TV_VARCONST instead 9344 of computing elapsed time explicitly. 9345 93462000-04-26 Mark Mitchell <mark@codesourcery.com> 9347 9348 * cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P. 9349 * init.c (decl_constant_value): Check TREE_READONLY_DECL_P. 9350 * call.c (convert_like_real): Don't test TREE_READONLY_DECL_P 9351 before calling decl_constant_value. 9352 * class.c (check_bitfield_decl): Likewise. 9353 * cvt.c (ocp_convert): Likewise. 9354 (convert): Likewise. 9355 * decl.c (compute_array_index_type): Likewise. 9356 (build_enumerator): Likewise. 9357 * decl2.c (check_cp_case_value): Likewise. 9358 * pt.c (convert_nontype_argument): Likewise. 9359 (tsubst): Likewise. 9360 * typeck.c (decay_conversion): Likewise. 9361 (build_compound_expr): Likewise. 9362 (build_reinterpret_cast): Likewise. 9363 (build_c_cast): Likewise. 9364 (convert_for_assignment): Likewise. 9365 93662000-04-26 Jason Merrill <jason@casey.cygnus.com> 9367 9368 * decl.c (finish_function): Don't play games with DECL_INLINE. 9369 93702000-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 9371 9372 * ir.texi: Correct typo. 9373 93742000-04-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9375 9376 * decl.c (grokdeclarator): Reject VLAs as members. 9377 93782000-04-24 Gabriel Dos Reis <gdr@codesourcery.com> 9379 9380 * call.c (standard_conversion): Accept conversion between 9381 COMPLEX_TYPEs. 9382 9383 * cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE. 9384 93852000-04-24 Zack Weinberg <zack@wolery.cumb.org> 9386 9387 * decl2.c (finish_file): Remove double setup for accounting 9388 compile time. 9389 93902000-04-24 Robert Lipe <robertlipe@usa.net> 9391 9392 * cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD. 9393 93942000-04-23 Benjamin Kosnik <bkoz@cygnus.com> 9395 9396 * new.cc (set_new_handler): Needs to be in std::. 9397 93982000-04-23 Mark Mitchell <mark@codesourcery.com> 9399 9400 * cp-tree.h (lang_decl): Remove pretty_function_p. 9401 (DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the 9402 language-specific node. 9403 * decl.c (cp_make_fname_decl): Use build_decl, not 9404 build_lang_decl, to build the variables. 9405 (grokvardecl): Don't call build_lang_decl for local variables in 9406 templates. 9407 (grokdeclarator): Don't call build_lang_decl for local type 9408 declarations in templates. 9409 * lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated 9410 zero'd memory, rather than calling memset. 9411 * pt.c: Include hashtab.h. 9412 (local_specializations): New variable. 9413 (retrieve_local_specialization): Use it. 9414 (register_local_specialization): Likewise. 9415 (tsubst_decl): Don't assume local variables have 9416 DECL_LANG_SPECIFIC. 9417 (instantiate_decl): Set up local_specializations. 9418 * Makefile.in (HTAB_H): New variable. 9419 94202000-04-23 Richard Henderson <rth@cygnus.com> 9421 9422 * typeck.c (c_expand_asm_operands): Restore the original 9423 contents of the output list. 9424 94252000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> 9426 9427 * ir.texi: Document complex number representation. 9428 94292000-04-20 Nathan Sidwell <nathan@codesourcery.com> 9430 9431 * rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi. 9432 (target_incomplete_p): New function. 9433 (tinfo_base_init): Create comdat NTBS name variable. 9434 (ptr_initializer): Add non_public parameter. Calculate it. 9435 (ptmd_initializer): Likewise. 9436 (synthesize_tinfo_var): Adjust. Emit incomplete class tinfo. 9437 (create_real_tinfo_var): Add non_public parameter. Use it. 9438 Push proxy into global namespace. 9439 * inc/cxxabi.h (__pointer_type_info::incomplete_class_mask): 9440 New enumeration. 9441 * inc/typeinfo (type_info::before, type_info::operator==): 9442 Compare __name addresses. 9443 9444 * tinfo2.cc: Remove new-abi builtins comment. 9445 94462000-04-20 Jason Merrill <jason@casey.cygnus.com> 9447 9448 * typeck.c (build_x_function_call): Resolve an OFFSET_REF. 9449 9450 * call.c (joust): Exit early if we get the same function, too. 9451 9452 * decl2.c (key_method): Return NULL_TREE for template classes. 9453 (import_export_class): Don't need to check for template classes. 9454 94552000-04-18 Zack Weinberg <zack@wolery.cumb.org> 9456 9457 * lex.c: Remove references to cccp.c. 9458 94592000-04-18 Mark Mitchell <mark@codesourcery.com> 9460 9461 * cp-tree.h (lang_decl_flags): Remove const_memfunc and 9462 volatile_memfunc. Add destructor_attr. Adjust dummy. 9463 (DECL_DESTRUCTOR_P): Use destructor_attr. 9464 (DECL_CONST_MEMFUNC_P): Reimplement. 9465 (DECL_VOLATILE_MEMFUNC_P): Remove. 9466 * class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS. 9467 (overrides): Use DECL_DESTRUCTOR_P. 9468 (check_for_override): Likewise. 9469 * decl.c (start_function): Likewise. 9470 * decl2.c (grokfclassfn): Likewise. 9471 (check_classfn): Likewise. 9472 (grok_function_init): Likewise. 9473 94742000-04-17 Mark Mitchell <mark@codesourcery.com> 9475 9476 * decl2.c (grokfield): Issue error on illegal data member 9477 declaration. 9478 9479Mon Apr 17 17:11:16 2000 Mark P Mitchell <mark@codesourcery.com> 9480 9481 * method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL. 9482 94832000-04-16 Mark Mitchell <mark@codesourcery.com> 9484 9485 * class.c (build_vtable_entry): Don't build thunks for type-info 9486 functions. 9487 94882000-04-16 Jason Merrill <jason@casey.cygnus.com> 9489 9490 * decl.c (decls_match): Allow a redeclaration of a builtin to 9491 specify args while the builtin did not. 9492 94932000-04-15 Mark Mitchell <mark@codesourcery.com> 9494 9495 * cp-tree.def (THUNK_DECL): Add to documentation. 9496 * cp-tree.h (flag_huge_objects): Declare. 9497 * class.c (modify_vtable_entry): Tidy. 9498 (update_vtable_entry_for_fn): Split out from dfs_modify_vtables. 9499 Calculate delta appropriately for the new ABI. 9500 (dfs_modify_vtables): Use it. 9501 (modify_all_vtables): Fix thinko in code to add overriding copies 9502 of functions to primary vtables. 9503 (build_clone): Fix typo in comment. 9504 (clone_function_decl): Correct order of destructors in vtable. 9505 (build_vbase_offset_vtbl_entries): Adjust comment. 9506 (dfs_vcall_offset_queue_p): Remove. 9507 (dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX. 9508 (build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases. 9509 (build_vtable_entry): Correct check for pure virtual functions. 9510 Don't declare flag_huge_objects. 9511 * decl.c (flag_huge_objects): Remove declaration. 9512 * method.c (make_thunk): Tweak mangling for vcall offset thunks. 9513 Use int_size_in_bytes. 9514 (emit_thunk): Handle vcall offset thunks. 9515 9516Sat Apr 15 16:00:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9517 9518 * decl2.c (parse_time, varconst_time): Delete declarations. 9519 (finish_file): Delete LINENO declaration. 9520 START_TIME and THIS_TIME now long. 9521 95222000-04-13 Nathan Sidwell <nathan@codesourcery.com> 9523 9524 * class.c (build_base_field): Reformat comment. 9525 9526 * inc/cxxabi.h (stddef.h): Comment inclusion. 9527 (__base_class_info::__offset): Comment shift. 9528 95292000-04-12 Mark Mitchell <mark@codesourcery.com> 9530 9531 * cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro. 9532 (cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER. 9533 (cp_push_exception_identifier): New macro. 9534 (DECL_COMPLETE_DESTRUCTOR_P): New macro. 9535 (DECL_BASE_DESTRUCTOR_P): Likewise. 9536 (DECL_DELETING_DESTRUCTOR_P): Likewise. 9537 (get_vtbl_decl_for_binfo): Fix formatting. 9538 (in_charge_arg_for_name): New macro. 9539 (maybe_build_cleanup_and_delete): Remove declaration. 9540 * call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P. 9541 (in_charge_arg_for_name): New function. 9542 (build_new_method_call): Use it. Handle cloned destructors. 9543 (build_clone): Don't make the base constructor virtual. 9544 Automatically defer generated functions. 9545 (clone_function_decl): Handle destructors, too. 9546 (clone_constructors_and_destructors): Likewise. 9547 (create_vtable_ptr): Don't create a vtable entry for a cloned 9548 function. 9549 * decl.c (predefined_identifier): Add ctor_or_dtor_p. 9550 (initialize_predefined_identifiers): Update appropriately. 9551 (finish_destructor_body): Simplify. 9552 (maybe_build_cleanup_and_delete): Remove. 9553 * except.c (expand_throw): Handle new-ABI destructors. 9554 * init.c (expand_cleanup_for_base): Use base_dtor_identifier. 9555 (build_dtor_call): New function. 9556 (build_delete): Use it. Simplify. 9557 * optimize.c (maybe_clone_body): Handle destructors. 9558 * search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P. 9559 9560 * exception.cc (cleanup_fn): New typedef. 9561 (CALL_CLEANUP): New macro. 9562 (cp_eh_info): Use them. 9563 (__cp_push_exception): Likewise. 9564 (__cp_pop_exception): Likewise. 9565 95662000-04-11 Mark Mitchell <mark@codesourcery.com> 9567 9568 * cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER. 9569 (complete_dtor_identifier): New macro. 9570 (CLASSTYPE_FIRST_CONVERSION): Remove. 9571 (CLASSTYPE_CONSTRUCTOR_SLOT): New macro. 9572 (CLASSTYPE_DESTRUCTOR_SLOT): Likewise. 9573 (CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise. 9574 (CLASSTYPE_CONSTRUCTORS): Likewise. 9575 (CLASSTYPE_DESTRUCTORS): Likewise. 9576 (lang_decl): Add cloned_function. 9577 (DECL_COMPLETE_CONSTRUCTOR_P): New macro. 9578 (DECL_BASE_CONSTRUCTOR_P): Likewise. 9579 (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise. 9580 (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise. 9581 (DECL_CLONED_FUNCTION_P): Likewise. 9582 (DECL_CLONED_FUNCTION): Likewise. 9583 (clone_function_decl): Declare. 9584 (maybe_clone_body): Likewise. 9585 * call.c (build_user_type_conversion_1): Call complete object 9586 constructors in the new ABI. 9587 (build_new_method_call): Don't add in-charge parameters under the 9588 new ABI. 9589 * class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, 9590 DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and 9591 CLASSTYPE_DESTRUCTOR_SLOT. 9592 (build_clone): New function. 9593 (clone_function_decl): Likewise. 9594 (clone_constructors_and_destructors): Likewise. 9595 (check_bases_and_members): Use it. 9596 * decl.c (iniitialize_predefined_identifiers): Initialize 9597 complete_dtor_identifier. 9598 (finish_function): Don't add extra code to a clone. 9599 (lang_mark_tree): Mark cloned_function. 9600 * decl2.c (mark_used): Don't bother trying to instantiate things 9601 we synthesized. 9602 * dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice. 9603 * method.c (set_mangled_name_for_decl): Don't treat clones as 9604 constructors. 9605 (synthesize_method): Sythesize cloned functions, not the clones. 9606 * optimize.c (inline_data): Update comment on ret_label. 9607 (remap_block): Don't assume DECL_INITIAL exists. 9608 (copy_body_r): Allow ret_label to be NULL. 9609 (maybe_clone_body): Define. 9610 * pt.c (tsubst_decl): Handle clones. 9611 (instantiate_clone): New function. 9612 (instantiate_template): Use it. 9613 (set_mangled_name_for_template_decl): Don't treat clones as 9614 constructors. 9615 * search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT, 9616 CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT. 9617 * semantics.c (expand_body): Clone function bodies as necessary. 9618 9619 * optimize.c (remap_decl): Avoid sharing structure for arrays 9620 whose size is only known at run-time. 9621 * tree.c (copy_tree_r): Don't copy PARM_DECLs. 9622 9623 * cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr 9624 to has_in_charge_parm_p. 9625 (DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ... 9626 (DECL_HAS_IN_CHARGE_PARM_P): ... this. 9627 (DECL_COPY_CONSTRUCTOR_P): New macro. 9628 * call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P. 9629 (build_user_type_conversion_1): Likewise. 9630 (convert_like_real): Likewise. 9631 (build_over_call): Likeiwse. Use DECL_COPY_CONSTRUCTOR_P. 9632 * decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P. 9633 (copy_args_p): Likewise. 9634 (grok_ctor_properties): Likewise. 9635 (start_function): Likewise. 9636 * decl2.c (maybe_retrofit_in_charge): Likewise. Set it. 9637 * error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P. 9638 * init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P. 9639 * method.c (do_build_copy_constructor): Use 9640 DECL_HAS_IN_CHARGE_PARM_P. 9641 (synthesize_method): Likewise. 9642 * pt.c (instantiate_template): Remove goto. 9643 * tree.c (build_cplus_method_type): Remove mention of obstacks in 9644 comment. 9645 9646 * cp-tre.h (finish_function): Change prototype. 9647 * decl.c (end_cleanup_fn): Adjust caller. 9648 (finish_function): Take only one parameter. 9649 * decl2.c (finish_objects): Adjust caller. 9650 (finish_static_storage_duration_function): Likewise. 9651 * method.c (emit_thunk): Likewise. 9652 * parse.y: Likewise. 9653 * parse.c: Regenerated. 9654 * pt.c (instantiate_decl): Likewise. 9655 * rtti.c (synthesize_tinfo_fn): Likewise. 9656 * semantics.c (expand_body): Likewise. 9657 9658 * cp-tree.h (copy_decl): New function. 9659 * class.c (finish_struct_1): Use it. 9660 * lex.c (copy_decl): Define it. 9661 * pt.c (tsubst_decl): Likewise. 9662 * tree.c (copy_template_template_parm): Likewise. 9663 9664 * cp-tree.h (lang_type): Remove has_nonpublic_ctor and 9665 has_nonpublic_assign_ref. 9666 (TYPE_HAS_NONPUBLIC_CTOR): Don't declare. 9667 (TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise. 9668 * class.c (finish_struct_methods): Don't set 9669 TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF. 9670 (interface_only): Don't declare. 9671 (interface_unknown): Likewise. 9672 96732000-04-11 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9674 9675 * tree.h (HAVE_TEMPLATES): Remove definition. 9676 * lang-options.h (-fthis-is-variable): Remove documentation. 9677 96782000-04-10 Jason Merrill <jason@casey.cygnus.com> 9679 9680 * class.c (instantiate_type): Handle object-relative template-id. 9681 9682 * semantics.c (finish_expr_stmt): Call convert_to_void here. 9683 * decl.c (cplus_expand_expr_stmt): Not here. 9684 9685 * rtti.c (build_dynamic_cast_1): Call non_lvalue. 9686 Initialize exprtype earlier. 9687 9688 * parse.y (fn.def1): Check for defining types in return types. 9689 9690 * decl.c (check_tag_decl): Notice extra fundamental types. 9691 Diagnose empty decls in classes, too. 9692 9693 * decl.c (grokdeclarator): Don't override an anonymous name if no 9694 declarator was given. 9695 9696 * cvt.c (convert_to_void): Call resolve_offset_ref. 9697 9698 * typeck.c (build_x_function_call): Abort if we get an OFFSET_REF. 9699 9700 * decl2.c (decl_namespace): Handle getting a type. 9701 9702 * typeck.c (build_c_cast): Re-enable warning for cast between 9703 pointer and integer of different size. 9704 97052000-04-10 Nathan Sidwell <nathan@codesourcery.com> 9706 9707 * inc/cxxabi.h (__pointer_type_info): Add restrict and 9708 incomplete flags. 9709 (__pointer_type_info::__pointer_catch): New virtual function. 9710 (__pointer_to_member_type_info): Derive from 9711 __pointer_type_info. Adjust. 9712 (__pointer_to_member_type_info::__do_catch): Remove. 9713 (__pointer_to_member_type_info::__is_pointer_p): Declare. 9714 (__pointer_to_member_type_info::__pointer_catch): Declare. 9715 * rtti.c (qualifier_flags): Add restrict flag. 9716 (ptmd_initializer): Reorder members. 9717 (create_tinfo_types): Expand comments. Reorder 9718 ptmd_desc_type_node members. 9719 * tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p): 9720 Implement. 9721 (__pointer_type_info::__do_catch): Move specific code into 9722 __pointer_catch. Call it. 9723 (__pointer_type_info::__pointer_catch): Non-pointer-to-member 9724 specific catch checking. Fix void conversion check. 9725 (__pointer_to_member_type_info::__do_catch): Remove. 9726 (__pointer_to_member_type_info::__pointer_catch): Implement. 9727 97282000-04-10 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9729 9730 * lex.c (init_parse): Remove traces of classof and headof. 9731 * decl2.c (flag_operator_names): Default to 1. 9732 (lang_decode_option): Do not set it for -ansi. 9733 97342000-04-09 Mark Mitchell <mark@codesourcery.com> 9735 9736 * cp-tree.h (struct lang_decl): Remove main_decl_variant. 9737 (DECL_MAIN_VARIANT): Remove. 9738 * decl.c (duplicate_decls): Don't set it. 9739 (start_function): Likewise. 9740 (lang_mark_tree): Don't mark it. 9741 * decl2.c (defer_fn): Don't use it. 9742 * lex.c (retrofit_lang_decl): Don't set it. 9743 * pt.c (tsubst_decl): Likewise. 9744 * ptree.c (print_lang_decl): Don't print it. 9745 * typeck.c (mark_addressable): Don't use it. 9746 97472000-04-09 Nathan Sidwell <nathan@codesourcery.com> 9748 9749 * vec.cc: Include <new> and <exception>. 9750 (__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup. 9751 (__cxa_vec_dtor): Catch dtor exceptions, and rethrow or 9752 terminate. 9753 (__cxa_vec_delete): Catch dtor exceptions. 9754 97552000-04-09 Nathan Sidwell <nathan@codesourcery.com> 9756 9757 Prepend __ to implementation defined names. 9758 * inc/typeinfo (type_info): Rename _name to __name. 9759 (type_info::type_info): Rename parameter. 9760 (type_info::operator==, type_info::operator!=, 9761 type_info::before): Likewise. 9762 (type_info::is_pointer_p, type_info::is_function_p, 9763 type_info::do_catch, type_info::do_upcast): Prepend __. Rename 9764 parameters. 9765 * inc/cxxabi.h 9766 (__fundamental_type_info::__fundamental_type_info) Rename parameters. 9767 (__pointer_type_info::__pointer_type_info): Likewise. 9768 (__pointer_type_info::is_pointer_p, 9769 __pointer_type_info::do_catch): Prepend __. Rename parameters. 9770 (__array_type_info::__array_type_info): Rename parameters. 9771 (__function_type_info::__function_type_info): Likewise. 9772 (__function_type_info::is_function_p): Prepend __. 9773 (__enum_type_info::__enum_type_info): Rename parameters. 9774 (__pointer_to_member_type_info::__pointer_to_member_type_info): 9775 Likewise. 9776 (__pointer_to_member_type_info::do_catch): Prepend __. Rename 9777 parameters. 9778 (__base_class_info::is_virtual_p, is_public_p, offset): Prepend __. 9779 (__class_type_info::__class_type_info): Rename parameters. 9780 (__class_type_info::sub_kind): Prepend __. Adjust member names. 9781 (__class_type_info::upcast_result, 9782 __class_type_info::dyncast_result): Prepend __. Move definition 9783 into tinfo.cc. 9784 (__class_type_info::do_upcast, __class_type_info::do_catch, 9785 __class_type_info::find_public_src, 9786 __class_type_info::do_dyncast, 9787 __class_type_info::do_find_public_src): Prepend __. Rename 9788 parameters. 9789 (__si_class_type_info::__si_class_type_info): Rename parameters. 9790 (__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast, 9791 __si_class_type_info::do_find_public_src): Prepent __. Rename 9792 parameters. 9793 (__vmi_class_type_info::__vmi_class_type_info): Rename parameters. 9794 (__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast, 9795 __vmi_class_type_info::do_find_public_src): Prepent __. Rename 9796 parameters. 9797 (__dynamic_cast): Rename parameters. 9798 * tinfo.cc (type_info::is_pointer_p, type_info::is_function_p, 9799 type_info::do_catch, type_info::do_upcast): Prepend __. 9800 (contained_p, public_p, virtual_p, contained_public_p, 9801 contained_nonpublic_p, contained_nonvirtual_p): Adjust. 9802 (__class_type_info::do_catch, 9803 __class_type_info::do_upcast): Prepend __. Adjust. 9804 (__class_type_info::__upcast_result, 9805 __class_type_info::__dyncast_result): Move from inc/cxxabi.h. 9806 Adjust. 9807 (__class_type_info::find_public_src): Prepend __. Adjust. 9808 (__class_type_info::do_find_public_src, 9809 __si_class_type_info::do_find_public_src, 9810 __vmi_class_type_info::do_find_public_src): Likewise. 9811 (__class_type_info::do_dyncast, 9812 __si_class_type_info::do_dyncast, 9813 __vmi_class_type_info::do_dyncast): Likewise. 9814 (__class_type_info::do_upcast, 9815 __si_class_type_info::do_upcast, 9816 __vmi_class_type_info::do_upcast): Likewise. 9817 (__dynamic_cast): Adjust. 9818 * tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __. 9819 (__function_type_info::is_function_p): Likewise. 9820 (__pointer_type_info::do_catch): Likewise. Adjust. 9821 (__pointer_to_member_type_info::do_catch): Likewise. Adjust. 9822 (__throw_type_match_rtti_2): Adjust. 9823 (__is_pointer): Adjust. 9824 98252000-04-08 Mark Mitchell <mark@codesourcery.com> 9826 9827 * cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER. 9828 (complete_ctor_identifier): New macro. 9829 (special_function_kind): Add sfk_copy_constructor and 9830 sfk_assignment_operator. 9831 (LOOKUP_HAS_IN_CHARGE): Remove. 9832 (cons_up_default_function): Rename to ... 9833 (implicitly_declare_fn): ... this. 9834 * call.c (build_new_method_call): Add in-charge parameters for 9835 constructors here. 9836 * class.c (add_implicitly_declared_members): Change parameter name 9837 from cant_have_assignment to cant_have_const_assignment. 9838 Replace calls to cons_up_default_function to implicitly_declare_fn. 9839 * cvt.c (ocp_convert): Use complete_ctor_identifier. 9840 * decl.c (initialize_predefined_identifiers): Initialize it. 9841 (start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of 9842 complex expression. 9843 * init.c (expand_default_init): Don't calculate the in-charge 9844 parameter here. 9845 (build_new_1): Likewise. 9846 * lex.c (cons_up_default_function): Move to method.c. 9847 * method.c (synthesize_method): Use DECL_DESTRUCTOR_P. 9848 (implicitly_declare_fn): New function. 9849 * typeck.c (build_static_cast): Use complete_ctor_identifier. 9850 (build_modify_expr): Likewise. 9851 * typeck2.c (build_functional_cast): Likewise. 9852 9853 Under the new ABI, constructors don't return `this'. 9854 * cp-tree.h (warn_reorder): Declare. 9855 (special_function_kind): New enum. 9856 (global_base_init_list): Remove declaration. 9857 (emit_base_init): Don't return a value. 9858 (check_base_init): Don't declare. 9859 (is_aggr_typedef): Likewise. 9860 * decl.c (check_special_function_return_type): New function. 9861 (return_types): Remove. 9862 (grokdeclarator): Use check_special_function_return_type. 9863 (start_function): Don't initialize ctor_label under the new ABI. 9864 (finish_construtor_body): Don't create a corresponding LABEL_STMT. 9865 * init.c (begin_init_stmts): Move to top of file. 9866 (finish_init_stmts): Likewise. 9867 (warn_reorder): Don't declare. 9868 (emit_base_init): Don't create a STMT_EXPR here. Don't return a 9869 value. 9870 (check_base_init): Remove. 9871 (is_aggr_typedef): Likewise. 9872 (build_new_1): Don't use the return value of a constructor. 9873 * semantics.c (setup_vtbl_ptr): Don't use the return value 9874 of emit_base_init. 9875 * typeck.c (check_return_expr): Don't magically convert return 9876 statements into `return this' in constructors under the new ABI. 9877 9878 * cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER, 9879 CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER. 9880 (base_ctor_identifier): New macro. 9881 (base_dtor_identifier): Likewise. 9882 (deleting_dtor_identifier): Likewise. 9883 * decl.c: Don't include obstack.h. 9884 (obstack_chunk_alloc): Don't define. 9885 (obstack_chunk_free): Likewise. 9886 (struct predefined_identifier): New type. 9887 (initialize_predefined_identifiers): New function. 9888 (init_decl_processing): Use it. 9889 (debug_temp_inits): Remove. 9890 (start_method): Don't call preserve_data. 9891 (hack_incomplete_structures): Update comment. 9892 * init.c (init_init_processing): Don't initialize 9893 nelts_identifier. 9894 (build_offset_rf): Remove dead code. 9895 (build_delete): Use CLASSTYPE_N_BASECLASSES. 9896 * search.c (init_search_processing): Don't initialize 9897 vptr_identifier. 9898 98992000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9900 9901 * typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide 9902 some sign_compare warnings. 9903 99042000-04-07 Nathan Sidwell <nathan@codesourcery.com> 9905 9906 Rename abi::__vmi_class_type_info members. 9907 * inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases, 9908 base_list, detail_masks members to vmi_flags, vmi_base_count, 9909 vmi_bases and vmi_flags_masks respectively. 9910 (__vmi_class_type_info::vmi_flags_masks): Rename 9911 details_unknown_mask to flags_unknown_mask. 9912 * tinfo.cc (__class_type_info::do_upcast): Adjust. 9913 (__vmi_class_type_info::do_find_public_src): Adjust. 9914 (__vmi_class_type_info::do_dyncast): Adjust. 9915 (__vmi_class_type_info::do_upcast): Adjust. 9916 99172000-04-07 Nathan Sidwell <nathan@codesourcery.com> 9918 9919 * tinfo.cc (convert_to_base): New function. 9920 (get_vbase_offset): Remove. Move into convert_to_base. 9921 (__vmi_class_type_info::do_find_public_src): Adjust. 9922 (__vmi_class_type_info::do_dyncast): Adjust. 9923 (__vmi_class_type_info::do_upcast): Adjust. 9924 99252000-04-06 Jason Merrill <jason@yorick.cygnus.com> 9926 9927 * tinfo.cc (operator=): Use __builtin_strcmp. 9928 * tinfo2.cc (before): Likewise. 9929 99302000-04-06 Mark Mitchell <mark@codesourcery.com> 9931 9932 * cp-tree.h (lang_decl_flags): Rename saved_inline to deferred. 9933 (DECL_SAVED_INLINE): Rename to ... 9934 (DECL_DEFERRED_FN): ... this. 9935 (in_function_p): Remove declaration. 9936 (mark_inline_for_output): Rename to ... 9937 (defer_fn): ... this. 9938 * decl.c (finish_function): Adjust call to mark_inline_for_output. 9939 (in_function_p): Remove definition. 9940 * decl2.c (saved_inlines): Rename to ... 9941 (deferred_fns): ... this. 9942 (saved_inlines_used): Rename to ... 9943 (deferred_fns_used): ... this. 9944 (mark_inline_for_output): Rename to ... 9945 (defer_fn): ... this. 9946 (finish_file): Adjust accordingly. 9947 (init_decl2): Likewise. 9948 * lex.c (cons_up_default_function): Likewise. 9949 * pt.c (mark_decl_instantiated): Likewise. 9950 (instantiate_decl): Don't set DECL_DEFER_OUTPUT under any 9951 circumstances. 9952 * rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output. 9953 * semantics.c (expand_body): Defer more functions. 9954 99552000-04-06 Nathan Sidwell <nathan@codesourcery.com> 9956 9957 * vec.cc: New file. 9958 * Make-lang.in (CXX_LIB2FUNCS): Add it. 9959 (vec.o): Build it. 9960 * inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 9961 __cxa_vec_delete): Declare. 9962 99632000-04-06 Nathan Sidwell <nathan@codesourcery.com> 9964 9965 * rtti.c (dfs_class_hint_mark): New static function. 9966 (dfs_class_hint_unmark): New static function. 9967 (class_hint_flags): Use them. 9968 99692000-04-05 Benjamin Kosnik <bkoz@cygnus.com> 9970 9971 * decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE. 9972 99732000-04-05 Mark Mitchell <mark@codesourcery.com> 9974 9975 * cp-tree.h (instantiate_decl): Change prototype. 9976 * decl2.c (mark_used): Adjust call. 9977 * optimize.c (inlinable_function_p): Adjust handling of templates. 9978 * pt.c (do_decl_instantiation): Adjust call to instantiate_decl. 9979 (do_type_instantiation): Likewise. 9980 (instantiate_decl): Defer more templates. 9981 (instantiate_pending_templates): Adjust logic to handle inline 9982 friend functions. 9983 9984 * Makefile.in (GGC_H): New variable. Use it throughout in place 9985 of ggc.h. 9986 9987 * call.c: Don't include obstack.h. Include ggc.h. 9988 (obstack_chunk_alloc): Don't define. 9989 (obstack_chunk_free): Likewise. 9990 (add_candidate): Allocate the z_candidate with ggc_alloc_obj. 9991 * decl.c (push_switch): Use xmalloc to allocate the cp_switch. 9992 (pop_switch): Free it. 9993 9994 * decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs. 9995 9996 * dump.c (dequeue_and_dump): Don't try to print the bit_position 9997 if we don't have a DECL_FIELD_OFFSET. 9998 9999Wed Apr 5 15:12:18 MET DST 2000 Jan Hubicka <jh@suse.cz> 10000 10001 * optimize.c (calls_setjmp_r): Use setjmp_call_p instead of 10002 special_function_p. 10003 100042000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10005 10006 * cfns.gperf (hash, libc_name_p): Prototype. 10007 10008 * rtti.c (build_dynamic_cast_1): Constification. 10009 10010 * search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes. 10011 10012 * semantics.c (deferred_type_access_control): Prototype. 10013 100142000-04-04 Mark Mitchell <mark@codesourcery.com> 10015 10016 Correct many new ABI issues regarding vbase and vcall offset 10017 layout. 10018 * cp-tree.h (BINFO_VTABLE): Document. 10019 (struct lang_type): Tweak formatting. 10020 (BINFO_PRIMARY_BINFO): Add to documentation. 10021 (CLASSTYPE_VSIZE): Fix typo in comment. 10022 (CLASSTYPE_VBASECLASSES): Update documentation. 10023 (BINFO_VBASE_MARKED): Remove. 10024 (SET_BINFO_VBASE_MARKED): Likewise. 10025 (CLEAR_BINFO_VBASE_MARKED): Likewise. 10026 (BINFO_FIELDS_MARKED): Remove. 10027 (SET_BINFO_FIELDS_MARKED): Likewise. 10028 (CLEAR_BINFO_FIELDS_MARKED): Likewise. 10029 (enum access_kind): New enumeration. 10030 (num_extra_vtbl_entries): Remove declaration. 10031 (size_extra_vtbl_entries): Likewise. 10032 (get_vtbl_decl_for_binfo): New function. 10033 (dfs_vbase_unmark): Remove declaration. 10034 (mark_primary_bases): Likewise. 10035 * class.c (SAME_FN): Remove. 10036 (struct vcall_offset_data_s): Move definition. 10037 (build_vbase_pointer): Use `build', not `build_binary_op', to 10038 access the vbase pointer under the new ABI. 10039 (build_vtable_entry_ref): Use get_vtbl_decl_for_binfo. 10040 (build_primary_vtable): Likewise. 10041 (dfs_mark_primary_bases): Move here from search.c. 10042 (mark_primary_bases): Likewise. 10043 (determine_primary_bases): Under the new ABI, don't make a base 10044 class a primary base just because we don't yet have any virtual 10045 functions. 10046 (layout_vtable_decl): Use get_vtbl_decl_for_binfo. 10047 (num_vfun_entries): Remove. 10048 (dfs_count_virtuals): Likewise. 10049 (num_extra_vtbl_entries): Likewise. 10050 (size_extra_vtbl_entries): Likewise. 10051 (layout_virtual_bases): Iterate in inheritance graph order under 10052 the new ABI. 10053 (finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to 10054 indicate that a vfield is present. 10055 (init_class_processing): Initialize access_public_node, etc., from 10056 ak_public, etc. 10057 (get_vtbl_decl_for_binfo): New function. 10058 (dump_class_hierarchy_r): Likewise. 10059 (dump_class_hierarchy): Use it. 10060 (finish_vtbls): Build the vtbls in inheritance graph order. 10061 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 10062 (initialize_vtable): Use get_vtbl_decl_for_binfo. 10063 (accumulate_vtbl_inits): Add comments explaining why a pre-order 10064 walk is required. 10065 (dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location 10066 where the vptr points, even for primary vtables. 10067 (build_vtbl_initializer): Adjust handling of vbase and vcall 10068 offsets. 10069 (build_vcall_and_vbase_vtable_entries): New function. 10070 (dfs_build_vbase_offset_vtbl_entries): Remove. 10071 (build_vbase_offset_vtbl_entries): Reimplement. 10072 (dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that 10073 were already handled in a primary base class vtable. 10074 (build_vcall_offset_vtbl_entries): Adjust. 10075 (build_rtti_vtbl_entries): Adjust. 10076 * decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo. 10077 * init.c (expand_virtual_init): Simplify. 10078 * repo.c (repo_get_id): Use get_vtbl_decl_for_binfo. 10079 * rtti.c (create_pseudo_type_info): Adjust calculation of vptr. 10080 * search.c (BINFO_ACCESS): New macro. 10081 (SET_BINFO_ACCESS): Likewise. 10082 (dfs_access_in_type): Manipulate access_kinds, not access nodes. 10083 (access_in_type): Likewise. 10084 (dfs_accessible_p): Likewise. 10085 (protected_accessible_p): Likewise. 10086 (lookup_fnfields_1): Adjust documentation. 10087 (dfs_mark_primary_bases): Move to class.c 10088 (mark_primary_bases): Likewise. 10089 (dfs_vbase_unmark): Remove. 10090 (virtual_context): Use BINFO_FOR_VBASE. 10091 (dfs_get_vbase_types): Simplify. 10092 (dfs_build_inheritance_graph_order): New function. 10093 (get_vbase_types): Use it. 10094 * tree.c (debug_binfo): Use get_vtbl_decl_for_binfo. 10095 10096 * tinfo.cc (get_vbase_offset): New function. 10097 (__vmi_class_type_info::do_find_public_src): Use it. 10098 (__vmi_class_type_info::do_dyncast): Likewise. 10099 (__vmi_class_type_info::do_upcast): Likewise. 10100 101012000-04-03 Zack Weinberg <zack@wolery.cumb.org> 10102 10103 * lang-specs.h: Pass -fno-show-column to the preprocessor. 10104 101052000-03-30 Nathan Sidwell <nathan@codesourcery.com> 10106 10107 * rtti.c (class_hint_flags): Rename flags. 10108 (class_initializer): Remove flags. 10109 (synthesize_tinfo_var): Combine offset and flags. Add flags 10110 for __vmi_class_type_info. 10111 (create_tinfo_types): Remove flags from __class_type_info and 10112 __si_class_type_info. Merge flags and offset from 10113 base_class_type_info. 10114 * inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags. 10115 (__base_class_info::is_virtual_p): Adjust. 10116 (__base_class_info::is_public_p): Adjust. 10117 (__base_class_info::offset): New accessor. 10118 (__class_type_info::details): Remove member. 10119 (__class_type_info::__class_type_info): Lose details. 10120 (__class_type_info::detail_masks): Remove. 10121 (__si_class_type_info::__si_class_type_info): Lose details. 10122 (__vmi_class_type_info::details): New member. 10123 (__vmi_class_type_info::__vmi_class_type_info): Adjust. 10124 (__vmi_class_type_info::detail_masks): New member. 10125 * tinfo.cc (__class_type_info::do_upcast): Initialize result 10126 with unknown_details_mask. 10127 (__vmi_class_type_info::do_find_public_src): Adjust 10128 (__vmi_class_type_info::do_dyncast): Adjust. 10129 (__vmi_class_type_info::do_upcast): Set result details, if 10130 needed. Adjust. 10131 (__dynamic_cast): Temporarily #if out optimization. 10132 101332000-03-29 Nathan Sidwell <nathan@codesourcery.com> 10134 10135 * rtti.c (get_tinfo_decl): Mark used. 10136 (emit_tinfo_decl): Don't optimize polymorphic type_info. Only 10137 mark as dealt with, if we output it. 10138 101392000-03-28 Mark Mitchell <mark@codesourcery.com> 10140 10141 * class.c: Reorganize to put virtual function table initialization 10142 machinery at the end of the file. 10143 101442000-03-28 Jason Merrill <jason@casey.cygnus.com> 10145 10146 * class.c (finish_struct): Use bitsize_zero_node. 10147 * pt.c (instantiate_class_template): Likewise. 10148 101492000-03-28 Mark Mitchell <mark@codesourcery.com> 10150 10151 Put RTTI entries at negative offsets in new ABI. 10152 * class.c (dfs_build_vbase_offset_vtbl_entries): Put the first 10153 vbase offset at index -3, not -1. 10154 (build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not 10155 dfs_vtable_path_unmarked_real_bases_queue_p to walk bases. 10156 (dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff. 10157 (build_rtti_vtbl_entries): New function. 10158 (set_rtti_entry): Remove. 10159 (build_primary_vtable): Don't use it. 10160 (build_secondary_vtable): Likewise. 10161 (start_vtable): Remove. 10162 (first_vfun_index): New function. 10163 (set_vindex): Likewise. 10164 (add_virtual_function): Don't call start_vtable. Do call 10165 set_vindex. 10166 (set_primary_base): Rename parameter. 10167 (determine_primary_base): Likewise. 10168 (num_vfun_entries): Don't use skip_rtti_stuff. 10169 (num_extra_vtbl_entries): Include RTTI information. 10170 (build_vtbl_initializer): Use build_rtti_vtbl_entries. 10171 (skip_rtti_stuff): Remove. 10172 (dfs_modify_vtables): Don't use it. 10173 (modify_all_vtables): Don't use start_vtable. Do use set_vindex. 10174 (layout_nonempty_base_or_field): Update size handling. 10175 (create_vtable_ptr): Tweak. 10176 (layout_class_type): Adjust parameter names. 10177 (finish_struct_1): Simplify. 10178 * cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation. 10179 (skip_rtti_stuff): Remove. 10180 (first_vfun_index): New function. 10181 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 10182 (dfs_vtable_path_marked_real_bases_queue_p): Remove. 10183 (marked_vtable_pathp): Declare. 10184 (unmarked_vtable_pathp): Likewise. 10185 * error.c (dump_expr): Use first_vfun_index to calculate vtable 10186 offsets. 10187 * rtti.c (build_headof): Look for RTTI at negative offsets. 10188 (get_tinfo_decl_dynamic): Likewise. 10189 (tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL 10190 here. 10191 (create_pseudo_type_info): Do it here instead. Adjust so that 10192 vptr points at first virtual function. 10193 * search.c (marked_vtable_pathp): Make it global. 10194 (unmarked_vtable_pathp): Likewise. 10195 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 10196 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 10197 (dfs_get_pure_virtuals): Don't use skip_rtti_stuff. 10198 (get_pure_virtuals): Likewise. 10199 (expand_upcast_fixups): Likewise. 10200 * tree.c (debug_binfo): Likewise. 10201 * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate 10202 negative offset. 10203 10204Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10205 10206 * class.c (check_field_decl): Fix typo. 10207 (build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS. 10208 (check_methods): Likewise. 10209 (check_field_decls): Likewise. 10210 Use DECL_CONTEXT, not DECL_FIELD_CONTEXT. 10211 * cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT): 10212 Use DECL_RESULT_FLD, not DECL_RESULT. 10213 * decl.c (xref_tag): Use DECL_TEMPLATE_RESULT. 10214 * lex.c (identifier_type): Likewise. 10215 * pt.c (determine_specialization, lookup_template_class): Likewise. 10216 (tsubst_friend_function, tsubst_decl, instantiate_template): Likewise. 10217 (resolve_overloaded_unification, more_specialized): Likewise. 10218 * semantics.c (finish_member_declaration): Likewise. 10219 * typeck.c (build_x_function_call): Likewise. 10220 102212000-03-26 Mark Mitchell <mark@codesourcery.com> 10222 10223 * class.c (layout_empty_base): Handle empty bases with non-byte 10224 alignment. 10225 (build_base_field): Likewise. 10226 (layout_virtual_bases): Likewise. 10227 10228 * class.c (finish_struct_1): Fix typo in this change: 10229 10230 Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10231 102322000-03-25 Mark Mitchell <mark@codesourcery.com> 10233 10234 * decl.c (grokdeclarator): Count partial specializations when 10235 keeping track of how many template classes have been seen. 10236 10237 * dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT. 10238 10239Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10240 10241 * class.c (build_vbase_pointer_fields): layout_field now place_field. 10242 (get_vfield_offset): Use byte_position. 10243 (set_rtti_entry): Set OFFSET to ssizetype zero. 10244 (get_binfo_offset_as_int): Deleted. 10245 (dfs_record_base_offsets): Use tree_low_cst. 10246 (dfs_search_base_offsets): Likewise. 10247 (layout_nonempty_base_or_field): Reflect changes in RLI format 10248 and call byte_position. 10249 (layout_empty_base): Convert offset to ssizetype. 10250 (build_base_field): use rli_size_unit_so_far. 10251 (dfs_propagate_binfo_offsets): Do computation in proper type. 10252 (layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets. 10253 (layout_class_type): Reflect changes in RLI names and fields. 10254 (finish_struct_1): Set DECL_FIELD_OFFSET. 10255 * dump.c (dequeue_and_dump): Call bit_position. 10256 * expr.c (cplus_expand_constant): Use byte_position. 10257 * rtti.c (expand_class_desc): Use bitsize_one_node. 10258 * typeck.c (build_component_addr): Use byte_position and don't 10259 special case for zero offset. 10260 102612000-03-24 Nathan Sidwell <nathan@codesourcery.com> 10262 10263 * decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P. 10264 10265 * rtti.c (get_tinfo_decl): Set comdat linkage on new-abi 10266 tinfo object. 10267 (emit_tinfo_decl): Only emit polymorphic tinfo's when emitting 10268 vtable. 10269 102702000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 10271 10272 * call.c (check_dtor_name, build_new_method_call): Use TYPE_P and 10273 DECL_P macros. 10274 * decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name, 10275 make_typename_type, check_initializer, cp_finish_decl, 10276 xref_tag): Likewise. 10277 * decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree, 10278 decl_namespace, arg_assoc_template_arg, arg_assoc, 10279 validate_nonmember_using_decl, do_class_using_decl): Likewise. 10280 * error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of, 10281 args_to_string): Likewise. 10282 * friend.c (is_friend): Likewise. 10283 * lex.c (note_got_semicolon, note_list_got_semicolon, 10284 is_global): Likewise. 10285 * method.c (build_overload_nested_name, build_overload_value, 10286 build_qualified_name, build_qualified_name, hack_identifier): Likewise. 10287 * parse.y (typename_sub, typename_sub1): Likewise. 10288 * pt.c (push_inline_template_parms_recursive, check_template_shadow, 10289 process_partial_specialization, convert_template_argument, 10290 template_args_equal, add_pending_template, lookup_template_class, 10291 for_each_template_parm_r, maybe_fold_nontype_arg, 10292 tsubst, instantiate_template, type_unification_real, unify, 10293 instantiate_pending_templates, set_mangled_name_for_template_decl): 10294 Likewise. 10295 * repo.c (repo_get_id, repo_template_used): Likewise. 10296 * search.c (lookup_field_1): Likewise. 10297 * tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise. 10298 * xref.c (classname): Likewise. 10299 103002000-03-22 Mark Mitchell <mark@codesourcery.com> 10301 10302 * cp-tree.h (BINFO_FOR_VBASE): Adjust documentation. 10303 (CANONICAL_BINFO): New macro. 10304 (BINFO_NEW_VTABLE_MARKED): Use it. 10305 (SET_BINFO_NEW_VTABLE_MARKED): Likewise. 10306 (CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise. 10307 * class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE, 10308 not TREE_TYPE. 10309 (build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10310 (build_secondary_vtable): Likewise. 10311 (dfs_finish_vtbls): Likewise. 10312 (dfs_accumulate_vtbl_inits): Likewise. 10313 (accumulate_vtbl_inits): New function. 10314 (finish_vtbls): Make sure that virtual bases come after 10315 non-virtual bases in the vtable group. 10316 (record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL. 10317 (finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10318 * search.c (struct vbase_info): Move definition. 10319 (marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10320 (unmarked_new_vtable_p): Likewise. 10321 (dfs_mark_vtable_path): Remove. 10322 (dfs_mark_new_vtable): Remove. 10323 (dfs_unmark_new_vtable): Likewise. 10324 (dfs_clear_search_slot): Likewise. 10325 (dfs_find_vbases): Adjust usage of BINFO_NEW_VTABLE_MARKED. 10326 (dfs_clear_vbase_slots): Likewise. 10327 (init_vbase_pointers): LIkewise. 10328 103292000-03-22 Jason Merrill <jason@casey.cygnus.com> 10330 10331 * typeck.c (type_after_usual_arithmetic_conversions): Prefer a 10332 SIZETYPE to a non-SIZETYPE. 10333 103342000-03-21 Mark Mitchell <mark@codesourcery.com> 10335 10336 * class.c (layout_virtual_bases): Adjust names in conditionally 10337 compiled code. 10338 10339 * class.c (record_base_offsets): New function. 10340 (layout_conflict_p): Likewise. 10341 (layout_nonempty_base_or_field): Use it. 10342 (layout_empty_base): New function. 10343 (build_base_field): Use it. 10344 (build_base_fields): Update comment. 10345 (layout_virtual_bases): Fold in a little code form 10346 layout_basetypes. Use layout_empty_base. 10347 (layout_basetypes): Remove. 10348 (end_of_class): New function. 10349 (layout_class_type): Use it. Adjust. 10350 10351 * cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment. 10352 (fntype_p): Remove. 10353 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in 10354 comment. 10355 (dfs_skip_nonprimary_vbases_markedp): Likewise. 10356 * typeck.c (fntype_p): Remove. 10357 10358 * cp-tree.h (TI_SPEC_INFO): Remove. 10359 (CLASSTYPE_TI_SPEC_INFO): Likewise. 10360 * pt.c (process_partial_specialization): Likewise. 10361 10362 * class.c (build_base_field): Fix thinko in computation of binfo 10363 offsets. 10364 10365 * tree.c (mark_local_for_remap_p): Mark variables declared in 10366 TARGET_EXPRs as well. 10367 103682000-03-21 Nathan Sidwell <nathan@codesourcery.com> 10369 10370 * typeck.c (require_complete_type, complete_type, 10371 complete_type_or_else, c_sizeof, c_sizeof_nowarn, 10372 build_array_ref, convert_arguments, pointer_diff, 10373 build_x_unary_op, build_unary_op, build_c_cast, 10374 build_modify_expr): Use COMPLETE_TYPE_P etc. 10375 * call.c (is_complete, convert_like_real, 10376 build_new_method_call): Likewise. 10377 * class.c (build_vbase_pointer_fields, check_bases, 10378 build_base_field, finish_struct_1, pushclass): Likewise. 10379 * cvt.c (cp_convert_to_pointer, convert_to_void): Likewise. 10380 * decl.c (maybe_process_template_type_declaration, pushtag, 10381 pushdecl, redeclaration_error_message, start_decl, start_decl_1, 10382 layout_var_decl, check_initializer, cp_finish_decl, 10383 grokdeclarator, require_complete_types_for_parms, 10384 grok_op_properties, xref_tag, xref_basetypes, 10385 check_function_type): Likewise. 10386 * decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise. 10387 * friend.c (do_friend): Likewise. 10388 * init.c (build_offset_ref): Likewise. 10389 * parse.y (structsp): Likewise. 10390 * pt.c (maybe_process_partial_specialization, 10391 tsubst_friend_function, instantiate_class_template, tsubst, 10392 do_type_instantiation, instantiate_pending_templates): Likewise. 10393 * repo.c (repo_get_id): Likewise. 10394 * rtti.c (build_typeid, get_typeid, build_dynamic_cast_1, 10395 synthesize_tinfo_var, emit_support_tinfos): Likewise. 10396 * search.c (lookup_fnfields_1, lookup_conversions): Likewise. 10397 * semantics.c (begin_class_definition): Likewise. 10398 * tree.c (build_cplus_method_type): Likewise. 10399 * typeck2.c (digest_init, build_functional_cast, 10400 add_exception_specifier): Likewise. 10401 * parse.h, parse.c: Regenerated. 10402 104032000-03-21 Nathan Sidwell <nathan@codesourcery.com> 10404 10405 * inc/cxxabi.h: New header file. Define new-abi entry points. 10406 (__pointer_type_info::target): Rename member to ... 10407 (__pointer_type_info::type): ... here. 10408 (__base_class_info::type): Rename member to ... 10409 (__base_class_info::base): ... here. 10410 * Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h 10411 * cp-tree.h (CPTI_ABI): New global tree enumeration. 10412 (abi_node): New global tree node. 10413 * decl.c (abi_node): Document. 10414 (init_decl_processing): Initialize abi_node. 10415 * rtti.c (build_dynamic_cast_1): Use abi_node for new-abi. 10416 (get_vmi_pseudo_type_info): Likewise. 10417 (create_tinfo_types): Likewise. 10418 (emit_support_tinfos): Likewise. 10419 * tinfo.h (cxxabi.h): Include for new-abi. 10420 Move rtti class definitions to new header file. 10421 * tinfo.cc (abi): Use the namespace. 10422 (std): Move new abi rtti classes from here ... 10423 (__cxxabiv1): ... to here. 10424 * tinfo2.cc (cxxabi.h): Include for new-abi. 10425 Move rtti class definitions to new header file. 10426 (std): Move new abi rtti classes from here ... 10427 (__cxxabiv1): ... to here. 10428 * inc/typeinfo (__class_type_info): Move into __cxxabiv1 10429 namespace. 10430 104312000-03-20 Jed Wing <jedwin@zloty.ugcs.caltech.edu> 10432 Jason Merrill <jason@casey.cygnus.com> 10433 10434 * method.c (build_overload_int): Use host_integerp. 10435 104362000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 10437 10438 * init.c (build_offset_ref): Handle the case of a templated member 10439 function. 10440 104412000-03-19 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10442 10443 * except.c (expand_exception_blocks): Clear catch_clauses_last. 10444 104452000-03-18 Mark Mitchell <mark@codesourcery.com> 10446 10447 * cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro. 10448 * class.c (check_bitfield_decl): Turn illegal bitfields into 10449 non-bitfields. 10450 (dfs_propagate_binfo_offsets): Adjust for new size_binop 10451 semantics. 10452 (dfs_offset_for_unshared_vbases): Likewise. 10453 * cvt.c (cp_convert_to_pointer): Convert NULL to a 10454 pointer-to-member correctly under the new ABI. 10455 * expr.c (cplus_expand_constant): Don't use cp_convert when 10456 turning an offset into a pointer-to-member. 10457 * init.c (resolve_offset_ref): Don't adjust pointers-to-members 10458 when dereferencing them under the new ABI. 10459 * typeck.c (get_member_function_from_ptrfunc): Tweak calculation 10460 of pointers-to-members under the new ABI. 10461 10462 * class.c (check_bitfield_decl): Remove restriction on really long 10463 bitfields. 10464 (layout_class_type): Implement new ABI handling of bitfields 10465 longer than their types. 10466 104672000-03-18 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10468 10469 * parse.y (extdefs): Call ggc_collect. 10470 * parse.c: Regenerated. 10471 104722000-03-18 Nathan Sidwell <nathan@codesourcery.com> 10473 10474 * class.c (build_base_field): Use TYPE_ALIGN to examine a type. 10475 (note_name_declared_in_class): Use OVL_CURRENT to get at a 10476 potential overload. 10477 10478Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10479 10480 * class.c (build_vbase_path): Use integer_zerop. 10481 (build_vtable_entry): Use tree_low_cst. 10482 (get_vfield_offset): Use bit_position. 10483 (dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT. 10484 Use tree_low_cst. 10485 (check_bitfield_decl): Set DECL_SIZE using convert. 10486 (build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop. 10487 (layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT. 10488 Use tree_low_cst. 10489 (finish_struct_1): Use bit_position. 10490 (dump_class_hierarchy): Use tree_low_cst. 10491 * cp-tree.h (min_precision): Add declaration. 10492 * decl.c (xref_tag, xref_basetypes): Use tree_low_cst. 10493 * error.c (dump_type_suffix): Use host_integerp and tree_low_cst. 10494 (dump_expr): Use integer_zerop, host_integerp, and tree_low_cst. 10495 * expr.c (cplus_expand_constant): Use bit_position. 10496 * init.c (build_vec_init): Use host_integerp and tree_low_cst. 10497 * rtti.c (get_base_offset): Use bit_position. 10498 * typeck.c (build_binary_op): Use integer_zerop, compare_tree_int, 10499 host_integerp, and tree_low_cst. 10500 (pointer_int_sum): Use integer_zerop. 10501 (build_component_addr): Use bit_position. 10502 105032000-03-17 Nathan Sidwell <nathan@codesourcery.com> 10504 10505 * typeck.c (require_complete_type): Don't assume size_zero_node. 10506 (complete_type_or_else): Likewise. 10507 105082000-03-16 Steven Grady <grady@digitaldeck.com> 10509 Jason Merrill <jason@casey.cygnus.com> 10510 10511 * rtti.c (build_dynamic_cast_1): Improve diagnostics. 10512 105132000-03-16 Nathan Sidwell <nathan@codesourcery.com> 10514 10515 * decl2.c (grokfield): Bail out if type is error_mark_node. 10516 105172000-03-15 Nathan Sidwell <nathan@codesourcery.com> 10518 10519 * tinfo2.cc (__ptr_to_member_data): Rename to ... 10520 (__pointer_to_member_data): ... here. Adjust. 10521 * rtti.c (create_tinfo_types): Adjust. 10522 105232000-03-15 Nathan Sidwell <nathan@codesourcery.com> 10524 10525 * cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove. 10526 * decl.c (ref_desc_type_node): Undocument. 10527 * rtti.c (ptr_ref_initializer): Rename to ... 10528 (ptr_initializer): ... here. Adjust comments. 10529 (ptmd_initializer): Fix comment thinko. 10530 (synthesize_tinfo_var): Remove REFERENCE_TYPE case. 10531 (create_tinfo_types): Remove ref_desc_type_node init. 10532 * tinfo2.cc (__reference_type_info): Remove. 10533 105342000-03-15 Nathan Sidwell <nathan@codesourcery.com> 10535 10536 * decl.c (cp_finish_decl): Remove obsolete comment. 10537 10538 * typeck.c (build_ptrmemfunc1): Kill uninitialized warning. 10539 105402000-03-14 Mark Mitchell <mark@codesourcery.com> 10541 10542 * cp-tree.h: Tweak documentation. 10543 * class.c (build_vbase_pointer_fields): Layout the fields, too. 10544 (avoid_overlap): Remove. 10545 (get_binfo_offset_as_int): New function. 10546 (dfs_serach_base_offsets): Likewise. 10547 (layout_nonempty_base_or_field): Likewise. 10548 (build_base_field): Layout fields here. Avoid placing two objects 10549 of the same type at the same address, under the new ABI. 10550 (build_base_fields): Adjust accordingly. 10551 (create_vtable_ptr): Return the new field, but don't attach it to 10552 TYPE_FIELDS. 10553 (remove_base_field): Remove. 10554 (remove_base_fields): Remove. 10555 (layout_basetypes): Adjust accordingly. 10556 (layout_class_type): Call layout_field for each field, rather than 10557 just making a wholesale call to layout_type. 10558 105592000-03-14 Jeff Sturm <jsturm@sigma6.com> 10560 10561 * except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw. 10562 105632000-03-13 Jason Merrill <jason@casey.cygnus.com> 10564 10565 * decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P. 10566 10567 * except.c (dtor_nothrow): New fn. 10568 (do_pop_exception): Use it. Take type parm. 10569 (push_eh_cleanup): Take type parm. 10570 (expand_start_catch_block): Pass it. 10571 (build_eh_type_type_ref): Accept null type. 10572 105732000-03-12 Mark Mitchell <mark@codesourcery.com> 10574 10575 * cp-tree.h (revert_static_member_fn): Change prototype. 10576 * decl.c (grokfndecl): Adjust call to revert_static_member_fn. 10577 (grok_op_properties): Likewise. 10578 (start_function): Likewise. 10579 (revert_static_member_fn): Simplify. 10580 * pt.c (check_explicit_specialization): Adjust call to 10581 revert_static_member_fn. 10582 105832000-03-11 Mark Mitchell <mark@codesourcery.com> 10584 10585 * cp-tree.h (scope_kind): New type. 10586 (tmpl_spec_kind): Likewise. 10587 (declare_pseudo_global_level): Remove. 10588 (pseudo_global_level_p): Rename to template_parm_scope_p. 10589 (pushlevel): Remove declaration. 10590 (begin_scope): New function. 10591 (finish_scope): Likewise. 10592 (current_tmpl_spec_kind): Likewise. 10593 * decl.c (struct binding_level): Shorten parm_flag to 2 bits. 10594 Shorten keep to 2 bits. Rename pseudo_global to template_parms_p. 10595 Add template_spec_p. 10596 (toplevel_bindings_p): Adjust. 10597 (declare_pseudo_global_level): Remove. 10598 (pseudo_global_level_p): Rename to template_parm_scope_p. 10599 (current_tmpl_spec_kind): New function. 10600 (begin_scope): Likewise. 10601 (finish_scope): Likewise. 10602 (maybe_push_to_top_level): Adjust. 10603 (maybe_process_template_type_declaration): Likewise. 10604 (pushtag): Likewise. 10605 (pushdecl_nonclass_level): Likewise. 10606 (lookup_tag): Likewise. 10607 (grokfndecl): Handle member template specializations. Share 10608 constructor and non-constructor code. 10609 * decl2.c (check_classfn): Handle member template specializations. 10610 * pt.c (begin_template_parm_list): Use begin_scope. 10611 (begin_specialization): Likewise. 10612 (end_specialization): Likewise. 10613 (check_explicit_specialization): Use current_tmpl_spec_kind. 10614 Handle member template specializations. 10615 (end_template_decl): Use finish_scope. Remove call to 10616 get_pending_sizes. 10617 (push_template_decl_real): Remove bogus error message. 10618 (tsubst_decl): Fix typo in code contained in comment. 10619 (instantiate_template): Handle member template specializations. 10620 (most_general_template): Likewise. 10621 106222000-03-11 Gabriel Dos Reis <gdr@codesourcery.com> 10623 10624 * lex.c (whitespace_cr): Compress consecutive calls to warning(). 10625 (do_identifier): Ditto for error(). 10626 10627 * pt.c (convert_nontype_argument): Ditto for cp_error(). 10628 (convert_template_argument): Ditto for cp_pedwarn(). 10629 106302000-03-11 Jason Merrill <jason@casey.cygnus.com> 10631 10632 * exception.cc (__check_null_eh_spec): New fn. 10633 * except.c (expand_end_eh_spec): Call it if the spec is throw(). 10634 106352000-03-10 Jason Merrill <jason@casey.cygnus.com> 10636 10637 * decl.c (push_throw_library_fn): Take the FUNCTION_TYPE. 10638 * except.c (expand_end_eh_spec): Add the return type. 10639 * rtti.c (throw_bad_cast): Add the parmtypes. 10640 (throw_bad_typeid): Likewise. 10641 10642 * semantics.c (expand_stmt): Only leave out rtl for unused 10643 artificials, and set DECL_IGNORED_P on them as well. 10644 * decl.c (wrapup_globals_for_namespace): Likewise. 10645 106462000-03-09 Nathan Sidwell <nathan@codesourcery.com> 10647 10648 * decl.c (maybe_commonize_var): Skip all artificial decls. 10649 * pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN. 10650 106512000-03-10 Jason Merrill <jason@casey.cygnus.com> 10652 10653 * lang-options.h, decl2.c: Add -fno-enforce-eh-specs. 10654 * cp-tree.h: Declare flag_enforce_eh_specs. 10655 * decl.c (store_parm_decls, finish_function): Check it. 10656 10657 C library functions don't throw. 10658 * Makefile.in (cfns.h): New target. 10659 (except.o): Depend on it. 10660 * Make-lang.in (cc1plus): Depend on cfns.gperf. 10661 * cfns.gperf: New file. 10662 * cfns.h: Generated. 10663 * except.c: Include it. 10664 (nothrow_libfn_p): New fn. 10665 * decl.c (grokfndecl): Use it. 10666 * cp-tree.h: Declare it. 10667 10668 * decl.c (push_overloaded_decl_1, auto_function, 10669 define_function): Lose. 10670 (build_library_fn_1): New static fn. 10671 (builtin_function): Use it. 10672 (get_atexit_node): Use build_library_fn_ptr. 10673 (build_library_fn, build_cp_library_fn, build_library_fn_ptr, 10674 build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn, 10675 push_void_library_fn, push_throw_library_fn): New fns. 10676 * cp-tree.h: Declare them. 10677 (cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID. 10678 (throw_bad_cast_node, throw_bad_typeid_node): Lose. 10679 * except.c (init_exception_processing, call_eh_info, do_pop_exception, 10680 (expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns. 10681 * rtti.c (build_runtime_decl): Lose. 10682 (throw_bad_cast, throw_bad_typeid, get_tinfo_decl, 10683 build_dynamic_cast_1, expand_si_desc, expand_class_desc, 10684 expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns. 10685 10686 * call.c (build_call): Remove result_type parm. 10687 Call mark_used on unused artificial fns. 10688 * init.c, method.c, typeck.c, except.c, rtti.c: Adjust. 10689 106902000-03-09 Jason Merrill <jason@casey.cygnus.com> 10691 10692 * call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as 10693 appropriate. 10694 * decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL. 10695 * except.c (call_eh_info, alloc_eh_object, expand_throw): Set 10696 TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate. 10697 * rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1, 10698 expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 10699 expand_generic_desc): Likewise. 10700 107012000-03-08 Nathan Sidwell <nathan@codesourcery.com> 10702 10703 * exception.cc (__cp_pop_exception): Cleanup the original object. 10704 107052000-03-08 Nathan Sidwell <nathan@codesourcery.com> 10706 10707 * decl.c (grok_op_properties): Merge conversion to void warning 10708 with other silly op warnings. 10709 107102000-03-08 Jason Merrill <jason@casey.cygnus.com> 10711 10712 * typeck2.c (process_init_constructor): Set TREE_PURPOSE of 10713 array CONSTRUCTOR elements. Don't use expr_tree_cons. 10714 107152000-03-08 Nathan Sidwell <nathan@codesourcery.com> 10716 10717 * decl.c (cp_make_fname_decl): New function. 10718 (wrapup_globals_for_namespace): Don't emit unused static vars. 10719 (init_decl_processing): Remove comment about use of 10720 array_domain_type. Set make_fname_decl. 10721 (cp_finish_decl): Remove __FUNCTION__ nadgering. 10722 * semantics.c (begin_compound_stmt): Remove 10723 current_function_name_declared flagging. 10724 (expand_stmt): Don't emit unused local statics. 10725 * typeck.c (decay_conversion): Don't treat __FUNCTION__ decls 10726 specially. 10727 107282000-03-08 Nathan Sidwell <nathan@codesourcery.com> 10729 10730 * typeck.c (convert_for_assignment): Don't look at array 10731 initializer. 10732 * call.c (convert_like_real): Likewise. 10733 107342000-03-07 Jason Merrill <jason@casey.cygnus.com> 10735 10736 Add initial support for '\uNNNN' specifier. 10737 * lex.c (read_ucs): New fn. 10738 (readescape, skip_white_space): Call it. 10739 (is_extended_char, is_extended_char_1): New fns. 10740 (utf8_extend_token): New fn, #if 0'd out. 10741 (real_yylex): Treat extended chars like letters. 10742 10743 * search.c (note_debug_info_needed): Walk the bases even if we 10744 weren't deferring the type itself. 10745 107462000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10747 10748 * decl2.c (finish_objects): Constify a char*. 10749 10750 * method.c (emit_thunk): Likewise. 10751 107522000-03-06 Nathan Sidwell <nathan@codesourcery.com> 10753 10754 * typeck.c (dubious_conversion_warnings): Look through 10755 REFERENCE_TYPE. 10756 10757Mon Mar 6 08:46:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10758 10759 * class.c (dfs_modify_vtables): I is now unsigned. 10760 (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. 10761 (build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT. 10762 * error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned. 10763 * init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 10764 * method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned. 10765 * typeck.c (build_binary_op, case TRUNC_DIV_EXPR): 10766 Call integer_all_onesp. 10767 * typeck2.c (process_init_constructor): Use compare_tree_int. 10768 10769 * lang-specs.h (as): Don't call if -syntax-only. 10770 107712000-03-06 Mark Mitchell <mark@codesourcery.com> 10772 10773 * expr.c (cplus_expand_expr, case STMT_EXPR): Don't set 10774 RTL_EXPR_HAS_NO_SCOPE after all. 10775 107762000-03-05 Mark Mitchell <mark@codesourcery.com> 10777 10778 * expr.c (cplus_expand_expr, case STMT_EXPR): Use 10779 expand_start_stmt_expr and expand_end_stmt_expr directly. Set 10780 RTL_EXPR_HAS_NO_SCOPE. 10781 10782 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little 10783 later. 10784 10785 * dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P. 10786 107872000-03-05 Nathan Sidwell <nathan@codesourcery.com> 10788 10789 * call.c (convert_like): Macrofy. 10790 (convert_like_with_context): New macro. 10791 (convert_like_real): Renamed from convert_like. Add calling 10792 context parameters, for diagnostics. Add recursive flag. Call 10793 dubious_conversion_warnings for outer conversion. 10794 (build_user_type_conversion): Use convert_like_with_context. 10795 (build_over_call): Likewise. Don't warn about dubious 10796 conversions here. Adjust convert_default_arg calls. 10797 (convert_default_arg): Add context parameters for diagnostics. 10798 Pass through to convert_like_with_context. 10799 * cp-tree.h (convert_default_arg): Add context parameters. 10800 (dubious_conversion_warnings): Prototype new function. 10801 * typeck.c (convert_arguments): Adjust convert_default_arg call. 10802 (dubious_conversion_warnings): New function, broken 10803 out of convert_for_assignment. 10804 (convert_for_assignment): Adjust. 10805 108062000-03-03 Jason Merrill <jason@casey.cygnus.com> 10807 10808 * decl2.c (key_method): Break out from... 10809 (import_export_vtable, import_export_class): ...here. 10810 10811 * decl.c (finish_function): Don't mess with flag_keep_inline_functions. 10812 * decl2.c (finish_vtable_vardecl): Don't check decl_function_context. 10813 10814 * search.c (note_debug_info_needed, dfs_debug_mark, 10815 dfs_debug_unmarkedp): Uncomment. Adjust for new scheme. 10816 * decl2.c (finish_vtable_vardecl): Call note_debug_info_needed. 10817 108182000-03-03 Nathan Sidwell <nathan@codesourcery.com> 10819 10820 * decl.c (cp_finish_decl): Remove obsolete obstack comments, fix 10821 typos. 10822 108232000-03-02 Mark Mitchell <mark@codesourcery.com> 10824 10825 * cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ... 10826 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this. 10827 (TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro. 10828 (lang_type): Split gets_new into has_new and has_array_new. 10829 (TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10830 (TYPE_GETS_NEW): Split into ... 10831 (TYPE_HAS_NEW_OPERATOR): ... this, and ... 10832 (TYPE_HAS_ARRAY_NEW_OPERATOR): ... this. 10833 (DECL_ARRAY_DELETE_OPERATOR_P): New macro 10834 (build_op_new_call): Don't declare. 10835 (build_new_1): Likewise. 10836 * call.c (build_op_new_call): Remove. 10837 * class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 10838 instead of TYPE_NEEDS_DESTRUCTOR. 10839 (finish_struct_bits): Likewise. 10840 (add_implicitly_declared_members): Likewise. 10841 (check_field_decl): Likewise. 10842 (check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it 10843 correctly under the new ABI. 10844 * decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 10845 instead of TYPE_NEEDS_DESTRUCTOR. 10846 (initialize_local_var): Likewise. 10847 (destroy_local_var): Likewise. 10848 (cp_finish_decl): Likewise. 10849 (register_dtor_fn): Likewise. 10850 (grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and 10851 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. Don't set 10852 TYPE_VEC_DELETE_TAKES_SIZE here. 10853 (xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and 10854 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. 10855 (store_parm_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10856 (finish_destructor_body): Likewise. 10857 (maybe_build_cleanup_1): Likewise. 10858 * decl2.c (do_static_destruction): Likewise. 10859 * init.c (build_new_1): Make it static. 10860 (perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10861 (expand_cleanup_for_base): Likewise. 10862 (get_cookie_size): New function. 10863 (build_new_1): Handle array-new cookies correctly under the new 10864 ABI. 10865 (build_vec_delete_1): Likewise. 10866 (build_vec_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10867 (build_delete): Likewise. 10868 (build_vec_delete): Handle array-new cookies correctly under the new 10869 ABI. 10870 * lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10871 * pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and 10872 TYPE_HAS_ARRAY_NEW_OPERATOR. 10873 * ptree.c (print_lang_type): Check them. 10874 * search.c (context_for_name_lookup): Fix typo in comment. 10875 (tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10876 * tree.c (break_out_cleanups): Likewise. 10877 (build_cplus_array_test_1): Likewise. 10878 (cp_build_qualified_type_real): Likewise. 10879 * typeck.c (complete_type): Likewise. 10880 10881 * g++spec.c (lang_specific_driver): Add -fnew-abi at the start of 10882 the command-line, not the end. 10883 108842000-03-01 Jason Merrill <jason@casey.cygnus.com> 10885 10886 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG. 10887 108882000-03-02 Tom Tromey <tromey@cygnus.com> 10889 10890 * cp-tree.h (build_java_class_ref): Declare. 10891 * init.c (build_java_class_ref): No longer static. 10892 * except.c (expand_throw): Generate a Java-style `throw' if the 10893 thrown object is a "Java" object. 10894 (initialize_handler_parm): Generate a Java-style lookup of 10895 exception info if the caught object is a "Java" object. 10896 (catch_language, catch_language_init): New globals. 10897 (decl_is_java_type): New function. 10898 (expand_start_catch_block): Don't call push_eh_info() or 10899 push_eh_cleanup() when handling a Java-style "catch". Pass Java 10900 class reference to build_catch_block. 10901 10902Thu Mar 2 13:32:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10903 10904 * typeck.c (comptypes): Treat sizetype like its language equivalent. 10905 109062000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> 10907 10908 * typeck.c (maybe_warn_about_returning_address_of_local): Reorganize 10909 to merge reference/pointer code and fix incorrect warnings. 10910 109112000-02-29 Jason Merrill <jason@casey.cygnus.com> 10912 10913 * search.c (protected_accessible_p): Use context_for_name_lookup. 10914 10915 * init.c (construct_virtual_bases): Fix thinko. 10916 * typeck.c (expand_ptrmemfunc_cst): Fix thinko. 10917 109182000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> 10919 10920 * decl.c (current_function_decl): Move to toplev.c. 10921 109222000-02-29 Nathan Sidwell <nathan@codesourcery.com> 10923 10924 * pt.c (fn_type_unification): Unify return type, whenever 10925 provided. 10926 (get_bindings_real): Only pass return type when necessary. 10927 Remove explicit return type check. 10928 * class.c (resolve_address_of_overloaded_function): Pass desired 10929 return type to fn_type_unification. 10930 10931Mon Feb 28 08:15:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10932 10933 * class.c (build_vtbl_or_vbase_field, check_methods): Don't clear 10934 DECL_FIELD_SIZE. 10935 (check_bitfield_decl, check_field_decls): Set DECL_SIZE, not 10936 DECL_FIELD_SIZE. 10937 * rtti.c (expand_class_desc): Likewise. 10938 * cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name. 10939 (THUNK_VCALL_OFFSET): Likewise. 10940 (THUNK_DELTA): Reflect changes in ../tree.h. 10941 109422000-02-28 Jason Merrill <jason@casey.cygnus.com> 10943 10944 * search.c (protected_accessible_p): Also allow the access if 10945 the member is public in DERIVED. Lose TYPE parm. 10946 (friend_accessible_p): Lose TYPE parm. 10947 (accessible_p): Adjust. 10948 10949Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10950 10951 * class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop 10952 on things that are not sizes; ssize_binop deleted. 10953 Call size_diffop when appropriate. 10954 (dfs_build_vcall_offset_vtbl_entries): Likewise. 10955 (build_primary_vtable, build_secondary_vtable): Likewise. 10956 (dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise. 10957 Variable I is HOST_WIDE_INT. 10958 (get_vfield_offset): Pass proper types to size_binop. 10959 (size_extra_vtbl_entries, layout_virtual_bases): Likewise. 10960 (finish_struct_1): Likewise. 10961 (skip_rtti_stuff): Arg N is now pointer to signed. 10962 (layout_class_type): Use size_zero_node. 10963 * cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed. 10964 * cvt.c (cp_convert_to_pointer): Pass proper types to size_binop. 10965 * decl.c (complete_arry_type): Pass proper types to size_binop. 10966 (xref_basetypes): BINFO_OFFSET is sizetype. 10967 * error.c (dump_expr): Don't use size_binop non-sizes. 10968 * expr.c (cplus_expand_constant): Pass proper types to size_binop. 10969 * init.c (construct_virtual_bases): Fix type error. 10970 (build_vec_delete_1): Pass proper type to size_binop and don't 10971 fold result. 10972 * lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype. 10973 * rtti.c (get_base_offset): Pass proper type to size_binop. 10974 * search.c (dfs_find_vbases): Fix type error. 10975 (expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed. 10976 (dfs_get_vbase_types): BINFO_OFFSET is sizetype. 10977 * tree.c (debug_binfo): Variable N is signed. 10978 Use HOST_WIDE_INT_PRINT_DEC. 10979 * typeck.c (comptypes): sizetype is same as equivalent integer type. 10980 (c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT, 10981 size_one_node and size_zero_node. 10982 (c_alignof): Use size_one_node. 10983 (build_component_addr): Pass proper types to size_binop. 10984 (expand_ptrmemfunc_cst): Don't use size_binop on non-sizes. 10985 109862000-02-26 Jason Merrill <jason@casey.cygnus.com> 10987 10988 Implement class scope using-declarations for functions. 10989 * class.c (handle_using_decl): Call add_method for used functions. 10990 Use IDENTIFIER_CLASS_VALUE to check for conflicts. 10991 (add_method): Used functions are hidden by local functions. 10992 (check_bases_and_members): Handle using-decls before finalizing 10993 CLASSTYPE_METHOD_VEC. 10994 * call.c (add_function_candidate): Add ctype parm; if non-zero, 10995 override the type of 'this' accordingly. 10996 (add_template_candidate, add_template_candidate_real): Add ctype parm. 10997 (convert_class_to_reference, build_user_type_conversion_1, 10998 build_new_function_call, build_object_call, build_new_op, 10999 build_new_method_call): Pass ctype parm. 11000 11001 * search.c (lookup_member): Put rval_binfo, not basetype_path, in 11002 the baselink. 11003 * call.c (convert_class_to_reference, build_user_type_conversion_1, 11004 build_new_function_call, build_object_call, build_new_op, 11005 build_new_method_call, build_op_delete_call): Don't get basetype_path 11006 from a baselink. 11007 * typeck.c (build_component_ref): Likewise. 11008 * init.c (build_offset_ref): Likewise. 11009 (resolve_offset_ref): Don't call enforce_access. 11010 Call build_scoped_ref. 11011 * typeck2.c (build_scoped_ref): Simplify. Do nothing if it 11012 would cause an error or if -pedantic. 11013 * class.c (alter_access): Lose binfo parm. 11014 110152000-02-26 Mark Mitchell <mark@codesourcery.com> 11016 11017 * semantics.c (simplify_aggr_init_exprs_p): Don't walk into 11018 types. 11019 110202000-02-25 Alfred Minarik <a8601248@unet.univie.ac.at> 11021 11022 * rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info 11023 pseudo_type_info creation into the std namespace 11024 110252000-02-26 Mark Mitchell <mark@codesourcery.com> 11026 11027 * cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF. 11028 (import_export_class): Remove declaration. 11029 * decl2.c (import_export_class): Make it static. 11030 * dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR, 11031 PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, 11032 EXPR_WITH_FILE_LOCATION. 11033 * lex.c (check_newline): Tweak filename/lineno setting. 11034 * semantics.c (begin_while_stmt): Fix typo in comment. 11035 11036Sat Feb 26 19:50:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11037 11038 * lang-options.h (-fmessage-length=): Add missing option. 11039 11040 * Make-lang.in (CXX_SRCS): Add .h files and sort list. 11041 110422000-02-26 Zack Weinberg <zack@wolery.cumb.org> 11043 11044 * Make-lang.in: Delete refs to LIBGCC2_DEPS. 11045 11046Fri Feb 25 14:52:33 2000 Jim Wilson <wilson@cygnus.com> 11047 11048 * optimize.c (expand_call_inline): Emit the return label before 11049 evaluating the return value. 11050 110512000-02-24 Mark Mitchell <mark@codesourcery.com> 11052 11053 * lex.c (check_newline): Use push_srcloc and pop_srcloc, rather 11054 than duplicating functionality here. 11055 * optimize.c: Include input.h. 11056 (expand_call_inline): Use push_srcloc and pop_srcloc. 11057 * parse.y (maybe_cv_qualifier): Remove calls to emit_line_note. 11058 * parse.c: Regenerated. 11059 * Makefile.in (lex.o): Depend on input.h. 11060 (optimize.o): Likewise. 11061 110622000-02-24 Nathan Sidwell <nathan@codesourcery.com> 11063 11064 * decl.c (grokdeclarator): Diagnose qualifiers on non-member 11065 function type, rather than ICE. 11066 110672000-02-23 Jason Merrill <jason@casey.cygnus.com> 11068 11069 * decl.c (grokdeclarator): Call decl_type_access_control. 11070 * parse.y (parse_end_decl): Don't call decl_type_access_control if 11071 decl is null. 11072 110732000-02-23 Nathan Sidwell <nathan@codesourcery.com> 11074 11075 * decl.c (decls_match): Remove obsolete static member nadgering. 11076 110772000-02-21 Martin v. L�wis <loewis@informatik.hu-berlin.de> 11078 11079 * decl.c (grokdeclarator): Change ANSI to ISO. 11080 * lex.c (consume_string, readescape, do_identifier): Likewise. 11081 (parse_float, real_yylex): Likewise. 11082 * parse.y (paren_expr_or_null, paren_cond_or_null): Likewise. 11083 (unary_expr, new_initializer, cast_expr, primary, primary_no_id, 11084 new_type_id, maybe_label_decls, simple_stmt, 11085 for.init.statement): Likewise. 11086 * pt.c (do_decl_instantiation, do_type_instantiation): Likewise. 11087 * semantics.c (finish_named_return_value): Likewise. 11088 * parse.c: Regenerate. 11089 110902000-02-21 Mark Mitchell <mark@codesourcery.com> 11091 11092 * cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro. 11093 (CPTI_CLASS_STAR_TYPE): Remove. 11094 (vtable_index_type): Likewise. 11095 (class_star_type_node): Remove. 11096 (TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI. 11097 (build_binary_op_nodefault): Remove. 11098 * call.c (build_new_op): Use build_binary_op instead of 11099 build_binary_op_nodefault. 11100 * decl.c (init_decl_processing): Remove class_star_type_node 11101 initialization. Make delta_type_node ptrdiff_type_node under the 11102 new ABI. Initialize vtable_index_type. 11103 (build_ptrmemfunc_type): Build different structures for the new 11104 ABI. 11105 (build_enumerator): Use build_binary_op instead of 11106 build_binary_op_nodefault. 11107 * method.c (build_overload_value): Mangle pointers-to-members 11108 appropriately under the new ABI. 11109 * typeck.c (build_array_ref): Use build_binary_op instead of 11110 build_binary_op_nodefault. 11111 (get_member_function_from_ptrfunc): Adjust for the new ABI. 11112 (build_binary_op_nodefault): Rename to ... 11113 (build_binary_op): ... this. Remove old version. Adjust for 11114 pointer-to-member comparisons under the new ABI. 11115 (build_ptrmemfunc1): Remove dead code. Adjust for the new ABI. 11116 (build_ptrmemfunc): Adjust for the new ABI. 11117 (expand_ptrmemfunc_cst): Likewise. 11118 (delta2_from_ptrmemfunc): Assert that we're not using the new ABI. 11119 (pfn_from_ptrmemfunc): Adjust for the new ABI. 11120 111212000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> 11122 11123 * call.c (build_object_call): Compress consecutive calls to 11124 cp_error. 11125 (build_conditional_expr): Say 'ISO C++' not 'ANSI C++'. 11126 (build_op_delete_call): Adjust message formatting. 11127 11128 * class.c (check_bases): Compress consecutive calls to 11129 cp_pedwarn. 11130 (finish_struct_anon): Say 'ISO C++'. 11131 11132 * decl.c (start_decl): Same here. 11133 (grok_reference_init): Likewise. 11134 (grokfndecl): Correct message formatting. 11135 (grokfndecl): Improve diagnostic. 11136 (check_static_variable_definition): Likewise. Say 'ISO C++' 11137 (compute_array_index_type): Say 'ISO C++' 11138 (create_array_type_for_decl): Compress consecutive calls to 11139 cp_error. 11140 (grokdeclarator): Say 'ISO C++' 11141 (grok_op_properties): Likewise. 11142 11143 * decl2.c (delete_sanity): Clairify diagnostic. 11144 (check_member_template): Same here. 11145 (grok_function_init): Use consistent terminology. 11146 11147 * expr.c (do_case): Say 'ISO C++' 11148 11149 * friend.c (do_friend): Compress consecutive calls to warning. 11150 111512000-02-20 Mark Mitchell <mark@codesourcery.com> 11152 11153 * cp-tree.h (merge_primary_and_secondary_vtables_p): New macro. 11154 * class.c (build_secondary_vtable): Reorganize. Don't create a 11155 new vtable under the new ABI. 11156 (layout_vtable_decl): Don't add num_extra_vtbl_entries when 11157 computing the size. 11158 (build_vtbl_initializer): Don't return a CONSTRUCTOR; just return 11159 the initializing elements. 11160 (initialize_vtable): New function. 11161 (dfs_finish_vtbls): Use it. 11162 (dfs_accumulate_vtbl_inits): New function. 11163 (finish_vtbls): Merge primary and secondary vtables under the new 11164 ABI. 11165 (finish_struct_1): Remove redundant call to layout_vtable_decl. 11166 * init.c (expand_virtual_init): Deal with BINFO_VTABLEs that 11167 aren't VAR_DECLs. 11168 11169 * class.c (build_vtable): New function, split out from ... 11170 (get_vtable_decl): ... here, and ... 11171 (build_secondary_vtable): ... here. 11172 11173 * pt.c (tsubst_decl): Fix formatting. 11174 11175Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11176 11177 * class.c (build_primary_vtable, layout_vtable_decl): Likewise. 11178 (avoid_overlap, build_base_field): Likewise. 11179 (build_base_field, build_base_fields, is_empty_class): 11180 Test DECL_SIZE with integer_zero. 11181 (layout_class_type): Set CLASSTYPE_SIZE_UNIT. 11182 * cp-tree.h (struct lang_type): New field size_unit. 11183 (CLASSTYPE_SIZE_UNIT): New macro. 11184 * decl.c (init_decl_processing): Set DECL_SIZE_UNIT. 11185 (cp_finish_decl): Delete -Wlarger-than processing. 11186 * optimize.c (remap_decl): Walk DECL_SIZE_UNIT. 11187 * pt.c (tsubst_decl): Set DECL_SIZE_UNIT. 11188 * tree.c (make_binfo): binfo vector is one entry longer. 11189 (walk_tree): Walk DECL_SIZE_UNIT. 11190 111912000-02-19 Mark Mitchell <mark@codesourcery.com> 11192 11193 * class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in 11194 comment. 11195 (build_vtable_entry): Don't assume all vtable entries are 11196 functions. 11197 (build_vtbl_initializer): Adjust accordingly. 11198 (get_vtable_decl): Fix formatting. 11199 112002000-02-18 Jason Merrill <jason@casey.cygnus.com> 11201 11202 * semantics.c (deferred_type_access_control): Walk the entire 11203 type_lookups list. 11204 (save_type_access_control): Rename from 11205 initial_deferred_type_access_control. Just remember the value. 11206 (decl_type_access_control): New fn. 11207 (begin_function_definition): Use deferred_type_access_control, after 11208 we've started the function. Set type_lookups to error_mark_node. 11209 * parse.y (frob_specs, fn.def1): Adjust. 11210 (parse_decl0, parse_field, parse_field0, parse_bitfield): New fns. 11211 (parse_end_decl, parse_bitfield0, parse_method): New fns. 11212 (fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them. 11213 (after_type_component_declarator0): Likewise. 11214 (after_type_component_declarator): Likewise. 11215 (notype_component_declarator): Likewise. 11216 * cp-tree.h: Adjust. 11217 11218 * decl.c (redeclaration_error_message): Allow redeclaration of 11219 namespace-scope decls. 11220 112212000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 11222 11223 * typeck2.c (my_friendly_abort): Use GCCBUGURL. 11224 112252000-02-17 Mark Mitchell <mark@codesourcery.com> 11226 11227 * class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT. 11228 * decl2.c (grokclassfn): Likewise. 11229 11230 * ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS. 11231 11232 * decl2.c (lang_decode_option): Don't set default message length 11233 here. 11234 * lex.c (lang_init_options): Set it here. 11235 112362000-02-16 Mark Mitchell <mark@codesourcery.com> 11237 11238 Make DECL_CONTEXT mean the class in which a member function was 11239 declared, even for a virtual function. 11240 * cp-tree.h (DECL_CLASS_CONTEXT): Adjust. 11241 (DECL_FRIEND_CONTEXT): New macro. 11242 (DECL_REAL_CONTEXT): Remove. 11243 (SET_DECL_FRIEND_CONTEXT): Likewise. 11244 (DECL_VIRTUAL_CONTEXT): Adjust. 11245 (DECL_CLASS_SCOPE_P): Use TYPE_P. 11246 (add_friends): Remove. 11247 (hack_decl_function_context): Likewise. 11248 * call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with 11249 CP_DECL_CONTEXT. 11250 (build_over_call): Fix indentation. Use DECL_CONTEXT 11251 instead of DECL_CLASS_CONTEXT. 11252 * class.c (dfs_build_vcall_offset_vtbl_entries): Likewise. 11253 (add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 11254 (strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11255 (build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT. 11256 (build_base_field): Likewise. 11257 (finish_struct_1): Likewise. 11258 (build_self_reference): Likewise. 11259 * decl.c (push_class_binding): Use CP_DECL_CONTEXT, not 11260 DECL_REAL_CONTEXT. 11261 (pushtag): Use decl_function_context, not 11262 hack_decl_function_context. 11263 (decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 11264 (duplicate_decls): Use DECL_VIRTUAL_CONTEXT. 11265 (pushdecl): Remove bogus code. 11266 (start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT. 11267 (cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 11268 (grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11269 Use decl_function_context, nothack_decl_function_context. 11270 (grokvardecl): Don't set DECL_CLASS_CONTEXT. 11271 (grokdeclarator): Likewise. Use decl_function_context, not 11272 hack_decl_function_context. 11273 (copy_args_p): Document. Don't use DECL_CLASS_CONTEXT. 11274 (start_function): Use DECL_FRIEND_CONTEXT, not 11275 DECL_CLASS_CONTEXT. Use decl_function_context, not 11276 hack_decl_function_context. 11277 (finish_function): Use decl_function_context, not 11278 hack_decl_function_context. 11279 (maybe_retrofit_in_chrg): Use DECL_CONTEXT, not 11280 DECL_CLASS_CONTEXT. 11281 (grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT. 11282 (finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT. 11283 (grokfield): Likewise. 11284 (finish_builtin_type): Likewise. 11285 (finish_vtable_vardec): Use decl_function_context, not 11286 hack_decl_function_context. 11287 (import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11288 (start_static_initialization_or_destruction): Likewise. 11289 (finish_static_initialization_or_destruction): Likewise. 11290 (mark_used): Adjust logic for deciding when to synthesize methods. 11291 * dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not 11292 DECL_REAL_CONTEXT. 11293 * error.c (dump_function_decl): Use DECL_CONTEXT, not 11294 DECL_CLASS_CONTEXT. 11295 * friend.c (is_friend): Likewise. 11296 (add_friends): Remove. 11297 (do_friend): Use SET_DECL_FRIEND_CONTEXT. 11298 * lex.c (begin_definition_of_inclass_inline): Use 11299 decl_function_context, not hack_decl_function_context. 11300 (process_next_inline): Likewise. 11301 (do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 11302 * method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not 11303 DECL_CLASSS_CONTEXT. 11304 (hack_identifier): Likewise. 11305 (synthesize_method): Use decl_function_context, not 11306 hack_decl_function_context. 11307 * pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not 11308 DECL_REAL_CONTEXT. 11309 (is_member_template): Use decl_function_context, not 11310 hack_decl_function_context. Use DECL_CONTEXT, not 11311 DECL_CLASS_CONTEXT. 11312 (build_template_decl): Set DECL_VIRTUAL_CONTEXT, not 11313 DECL_CLASS_CONTEXT. 11314 (check_default_tmpl_args): Use CP_DECL_CONTEXT, not 11315 DECL_REAL_CONTEXT. 11316 (push_template_decl_real): Likewise. 11317 (instantiate_class_template): Don't call add_friends. 11318 (tsubst_default_argument): Use DECL_CONTEXT, not 11319 DECL_REAL_CONTEXT. 11320 (tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 11321 Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11322 (set_meangled_name_for_template_decl): Use DECL_CONTEXT, not 11323 DECL_CLASS_CONTEXT. 11324 * repo.c (repo_inline_used): Likewise. 11325 * search.c (current_scope): Adjust for new _CONTEXT macros. 11326 (context_for_name_lookup): Use CP_DECL_CONTEXT, not 11327 DECL_REAL_CONTEXT. 11328 (friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 11329 (lookup_fnfields_here):Likewise. 11330 (check_final_overrider): Likewise. 11331 (init_vbase_pointers): Likewise. 11332 (virtual_context): Likewise. 11333 * semantics.c (finish_member_declaration): Just set DECL_CONTEXT. 11334 (expand_body): Use decl_function_context, not 11335 hack_decl_function_context. 11336 * tree.c (hack_decl_function_context): Remove. 11337 * typeck.c (build_x_function_call): Use DECL_CONTEXT, not 11338 DECL_CLASS_CONTEXT. 11339 * typeck2.c (error_not_base_type): Likewise. 11340 113412000-02-15 Jason Merrill <jason@casey.cygnus.com> 11342 11343 * decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE. 11344 113452000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11346 11347 * Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h. 11348 113492000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> 11350 11351 * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec. 11352 113532000-01-16 Gabriel Dos Reis <gdr@codesourcery.com> 11354 11355 * decl2.c (lang_decode_option): Enable automatic line wrapping. 11356 113572000-02-13 Jason Merrill <jason@casey.cygnus.com> 11358 11359 * parse.y (frob_specs): Split out... 11360 (parse_decl): From here. 11361 (fn.def2): Call initial_deferred_type_access_control. 11362 (after_type_component_declarator0): Call frob_specs. 11363 (notype_component_declarator0): Likewise. 11364 * search.c (friend_accessible_p): Nested classes are friends of their 11365 enclosing classes. 11366 113672000-02-10 Mark Mitchell <mark@codesourcery.com> 11368 11369 * ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be 11370 used to create an implicit temporary. 11371 11372 * class.c (dfs_modify_vtables): Tweak calculation of functions to 11373 override. 11374 113752000-02-08 Nathan Sidwell <nathan@acm.org> 11376 11377 * typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to 11378 strip array element qualifiers too. 11379 113802000-02-07 Mark Mitchell <mark@codesourcery.com> 11381 11382 * decl.c (store_parm_decls): Don't build cleanups for parameters 11383 while processing_template_decl. 11384 113852000-02-07 Jason Merrill <jason@casey.cygnus.com> 11386 11387 * cp-tree.h (struct saved_scope): Add incomplete field. 11388 (namespace_scope_incomplete): New macro. 11389 * decl.c (pushdecl): Use it. 11390 (hack_incomplete_structures): Use it. See through artificial 11391 binding levels. 11392 (mark_saved_scope): Mark it. 11393 11394 Implement access control for nested types. 11395 * search.c (type_access_control): New fn. 11396 (accessible_p): Now we do perform access control for types. 11397 * semantics.c (deferred_type_access_control): New fn. 11398 (initial_deferred_type_access_control): New fn. 11399 (begin_function_definition): Call it. Add lookups parm. 11400 * decl.c (struct binding_level): Add this_class field. 11401 (pushlevel_class): Set it. 11402 (mark_binding_level): Mark it. 11403 (lookup_name_real): Use it. Call type_access_control. 11404 (mark_saved_scope): Mark lookups field. 11405 * cp-tree.h (flagged_type_tree): Add lookups field. 11406 (struct saved_scope): Add lookups field. 11407 (type_lookups): New macro. 11408 * parse.y (declmods): Now <ftype>. 11409 (parse_decl): Add lookups parm. Call 11410 initial_deferred_type_access_control. 11411 (lang_extdef): Clear type_lookups. 11412 (typed_declspecs, declmods, typespec): Set lookups field. 11413 (initdcl): Call deferred_type_access_control. 11414 (fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0, 11415 component_decl_1, named_parm): Adjust. 11416 * friend.c (is_friend): Nested classes are friends of their 11417 enclosing classes. 11418 11419 * class.c (currently_open_derived_class): New fn. 11420 * method.c (hack_identifier): Use it. 11421 11422 * lex.c (do_identifier): Remove obsolete code. 11423 11424 * parse.y (typed_typespecs): Propagate new_type_flag properly. 11425 114262000-02-05 Zack Weinberg <zack@wolery.cumb.org> 11427 11428 * tinfo.h: Remove apostrophes from C++ comment (xgettext 11429 thinks this file is plain C). 11430 114312000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11432 11433 * Makefile.in (call.o): Depend on $(EXPR_H). 11434 11435 * call.c: Include "expr.h". 11436 11437 * class.c (dump_class_hierarchy): Add prototype. 11438 11439 * search.c (dfs_get_pure_virtuals): Likewise. 11440 114412000-02-1 Ulrich Drepper <drepper@redhat.com> 11442 11443 * parse.y (simple_stmt): Allow :: token in asm parameter list. 11444 * parse.c: Rebuilt. 11445 11446Mon Jan 31 15:35:29 2000 Jim Wilson <wilson@cygnus.com> 11447 11448 * class.c (build_vtbl_or_vbase_field): New parameter fcontext. 11449 Store it in DECL_FCONTEXT. 11450 (build_vbase_pointer_fields, create_vtable_ptr): Fix callers. 11451 114522000-01-31 Jason Merrill <jason@casey.cygnus.com> 11453 11454 * tinfo.h (old abi): #include "tconfig.h". 11455 * tinfo.cc (convert_to_base): Move into old abi section. 11456 114572000-01-31 Mark Mitchell <mark@codesourcery.com> 11458 11459 * cp-tree.h (BINFO_VIRTUALS): Tweak documentation. 11460 (CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO. 11461 (BINFO_PRIMARY_BINFO): New macro. 11462 (BF_DELTA): Rename to ... 11463 (BV_DELTA): ... this. 11464 (BF_VCALL_INDEX): Rename to ... 11465 (BV_VCALL_INDEX): ... this. 11466 (BF_FN): Rename to ... 11467 (BV_FN): ... this. 11468 * class.c (build_vbase_path): Adjust for changes to reverse_path. 11469 (set_rtti_entry): Rename BF_ macros to BV_ variants. 11470 (modify_vtable_entry): Simplify. 11471 (add_virtual_function): Rename BF_ macros to BV_ variants. 11472 (build_vtable_initializer): Likewise. 11473 (get_class_offset_1): Remove. 11474 (dfs_get_class_offset): Likewise. 11475 (get_class_offset): Likewise. 11476 (dfs_find_final_overrider): New function. 11477 (find_final_overrider): Likewise. 11478 (modify_one_vtable): Remove. 11479 (dfs_find_base): New function. 11480 (dfs_modify_vtables): Fold modify_one_vtable in here. Use 11481 find_final_overrider. 11482 (modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new 11483 virtuals. 11484 (dfs_fixup_vtable_deltas): Remove. 11485 (override_one_vtable): Remove. 11486 (merge_overrides): Likewise. 11487 (layout_virtual_bases): Make sure BINFO_OFFSET is set right for 11488 unreal chilren of virtual bases. 11489 (finish_struct_1): Don't use merge_overrides. Don't use 11490 dfs_fixup_vtable_deltas. 11491 * tree.c (reverse_path): Return a TREE_LIST, not a chain of 11492 BINFOs. 11493 114942000-01-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 11495 Jason Merrill <jason@yorick.cygnus.com> 11496 11497 * tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT. 11498 114992000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at> 11500 11501 * exception.cc (__throw_bad_typeid): Add missing std::. 11502 115032000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11504 11505 * cp-tree.h (make_thunk): PROTO -> PARAMS. 11506 115072000-01-31 Nathan Sidwell <sidwell@codesourcery.com> 11508 11509 * cp-tree.h (new_abi_rtti_p): Use flag_new_abi. 11510 11511 Runtime support for new-abi rtti. 11512 * inc/typeinfo (type_info::operator!=): Define in class. 11513 (type_info::before, type_info::name, type_info::operator==, 11514 type_info::operator!=): Define new ABI implementations. 11515 (type_info::is_pointer_p, type_info::is_function_p): Declare 11516 new virtual functions. 11517 (type_info::do_catch, type_info::do_upcast): Likewise. 11518 11519 * tinfo.h (__base_class_info): Define new class. 11520 (__class_type_info): Likewise. 11521 (__si_class_type_info): Likewise. 11522 (__vmi_class_type_info): Likewise. 11523 (__dynamic_cast): Prototype. 11524 11525 * tinfo.cc: Conditionalize old and new rtti mechanisms. 11526 (type_info::is_pointer_p): Define new function. 11527 (type_info::is_function_p): Likewise. 11528 (type_info::do_catch): Likewise. 11529 (type_info::do_upcast): Likewise. 11530 (vtable_prefix): New structure for vtable access. 11531 (adjust_pointer): Define new template function. 11532 (contained_p, public_p, virtual_p, contained_public_p, 11533 contained_nonpublic_p, contained_nonvirtual_p): Define new 11534 functions. 11535 (nonvirtual_base_type): New local variable. 11536 (__class_type_info::~__class_type_info): Define. 11537 (__si_class_type_info::~__si_class_type_info): Likewise. 11538 (__vmi_class_type_info::~__vmi_class_type_info): Likewise. 11539 (__class_type_info::do_catch): Define new function. 11540 (__class_type_info::do_upcast): Likewise. 11541 (__class_type_info::find_public_src): Likewise. 11542 (__class_type_info::do_find_public_src): Likewise. 11543 (__si_class_type_info::do_find_public_src): Likewise. 11544 (__vmi_class_type_info::do_find_public_src): Likewise. 11545 (__class_type_info::do_dyncast): Likewise. 11546 (__si_class_type_info::do_dyncast): Likewise. 11547 (__vmi_class_type_info::do_dyncast): Likewise. 11548 (__class_type_info::do_upcast): Likewise. 11549 (__si_class_type_info::do_upcast): Likewise. 11550 (__vmi_class_type_info::do_upcast): Likewise. 11551 (__dynamic_cast): Likewise. 11552 11553 * tinfo2.cc (__fundamental_type_info): Define new class. 11554 (__pointer_type_info): Likewise. 11555 (__reference_type_info): Likewise. 11556 (__array_type_info): Likewise. 11557 (__function_type_info): Likewise. 11558 (__enum_type_info): Likewise. 11559 (__ptr_to_member_type_info): Likewise. 11560 (__fundamental_type_info::~__fundamental_type_info): Define. 11561 (__pointer_type_info::~__pointer_type_info): Likewise. 11562 (__reference_type_info::~__reference_type_info): Likewise. 11563 (__array_type_info::~__array_type_info): Likewise. 11564 (__function_type_info::~__function_type_info): Likewise. 11565 (__enum_type_info::~__enum_type_info): Likewise. 11566 (__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise. 11567 (__pointer_type_info::do_catch): Define new function. 11568 (__ptr_to_member_type_info::do_catch): Define new function. 11569 11570 (__throw_type_match_rtti_2): Use new ABI interface, if enabled. 11571 (__is_pointer): Likewise. 11572 11573 * exception.cc (__cplus_type_matcher): Deal with new-abi rtti. 11574 115752000-01-30 Mark Mitchell <mark@codesourcery.com> 11576 11577 * cp/class.c (build_vtable): Rename to build_primary_vtable. 11578 (prepare_fresh_vtable): Rename to build_secondary_vtable. 11579 (make_new_vtable): New function. 11580 (modify_vtable_entry): Handle generation of new vtables correctly. 11581 (modify_one_vtable): Remove unused parameter. 11582 (dfs_fixup_vtable_deltas): Likewise. 11583 (override_one_vtable): Use build_secondary_vtable. 11584 (finish_struct_1): Use build_primary_vtable and 11585 build_secondary_vtable. 11586 115872000-01-28 Ulrich Drepper <drepper@redhat.com> 11588 11589 * cp/decl.c: Adjust variable names, comments, help strings. 11590 115912000-01-29 Nathan Sidwell <nathan@acm.org> 11592 11593 * new2.cc (operator delete[]): Use operator delete, don't assume 11594 implementation. 11595 115962000-01-29 Nathan Sidwell <sidwell@codesourcery.com> 11597 11598 * class.c (build_vtbl_initializer): Add argument to 11599 build_vtable_entry call. 11600 116012000-01-27 Mark Mitchell <mark@codesourcery.com> 11602 11603 * cp-tree.def (THUNK_DECL): Discuss vcall indices. 11604 * cp-tree.h (BINFO_VIRTUALS): Update documentation. 11605 (BF_DELTA): New macro. 11606 (BF_VCALL_INDEX): Likewise. 11607 (BF_FN): Likewise. 11608 (THUNK_VCALL_OFFSET): Likewise. 11609 (make_thunk): Change prototype. 11610 * class.c (build_vtable_entry): Integrate 11611 build_vtable_entry_for_fn. Handle vcall indices. 11612 (build_vtable_entry_for_fn): Remove. 11613 (set_rtti_entry): Handle vcall indices. Use BF_DELTA, 11614 BF_VCALL_INDEX, BF_FN. 11615 (modify_vtable_entry): Integrate common code from 11616 modify_one_vtable and dfs_fixup_vtable_deltas. 11617 (add_virtual_function): Set BF_VCALL_INDEX. 11618 (build_vtbl_initializer): Simplify. Use BF_DELTA, BF_VCALL_INDEX, 11619 and BF_FN. 11620 (modify_one_vtable): Simplify. 11621 (dfs_fixup_vtable_deltas): Likewise. 11622 (override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN. 11623 * method.c (make_thunk): Handle vcall indices. 11624 116252000-01-28 Nathan Sidwell <sidwell@codesourcery.com> 11626 11627 Compiler side new abi rtti (not enabled). 11628 * cp-tree.h (new_abi_rtti_p): New macro. 11629 (emit_support_tinfos): Prototype new function. 11630 (tinfo_decl_p): Likewise. 11631 (emit_tinfo_decl): Likwise. 11632 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor 11633 macros. 11634 (doing_runtime): New local static. 11635 (init_rtti_processing): Add new-abi initializer. 11636 (get_tinfo_decl): Add new-abi logic. 11637 (tinfo_from_decl): Likewise. 11638 (build_dynamic_cast_1): Likewise. 11639 (qualifier_flags): New static function. 11640 (tinfo_base_init): Likewise. 11641 (generic_initializer): Likewise. 11642 (ptr_ref_initializer): Likewise. 11643 (ptmd_initializer): Likewise. 11644 (class_hint_flags): Likewise. 11645 (class_initializer): Likewise. 11646 (synthesize_tinfo_var): Likewise. 11647 (create_real_tinfo_var): Likewise. 11648 (create_pseudo_type_info): Likewise. 11649 (get_vmi_pseudo_type_info): Likewise. 11650 (create_tinfo_types): Likewise. 11651 (emit_support_tinfos): New global function. 11652 (tinfo_decl_p): New global predicate. 11653 (emit_tinfo_decl): New global function. 11654 * class.c (set_rtti_entry): Generalize for old and new rtti. 11655 (build_vtbl_initializer): Likewise. 11656 * decl2.c (finish_file): Likewise. 11657 11658Thu Jan 27 20:53:36 2000 Jim Wilson <wilson@cygnus.com> 11659 11660 * optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t) 11661 and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))). 11662 11663Thu Jan 27 13:54:12 2000 Mike Stump <mrs@wrs.com> 11664 11665 * decl.c (pushdecl): Fix up shadow warnings with respect to implicit 11666 for scopes. 11667 116682000-01-26 Jason Merrill <jason@casey.cygnus.com> 11669 11670 * pt.c (unify): Use fold, not maybe_fold_nontype_arg. 11671 11672Wed Jan 26 22:19:14 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 11673 11674 * optimize.c (calls_setjmp_r): Supply new argument 11675 to special_function_p. 11676 116772000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11678 11679 * call.c: PROTO -> PARAMS. 11680 * class.c: Likewise. 11681 * cp-tree.h: Likewise. 11682 * cvt.c: Likewise. 11683 * decl.c: Likewise. 11684 * decl.h: Likewise. 11685 * decl2.c: Likewise. 11686 * dump.c: Likewise. 11687 * errfn.c: Likewise. 11688 * error.c: Likewise. 11689 * except.c: Likewise. 11690 * expr.c: Likewise. 11691 * init.c: Likewise. 11692 * input.c: Likewise. 11693 * lex.c: Likewise. 11694 * lex.h: Likewise. 11695 * method.c: Likewise. 11696 * optimize.c: Likewise. 11697 * parse.y: Likewise. 11698 * pt.c: Likewise. 11699 * repo.c: Likewise. 11700 * rtti.c: Likewise. 11701 * search.c: Likewise. 11702 * semantics.c: Likewise. 11703 * spew.c: Likewise. 11704 * tree.c: Likewise. 11705 * typeck.c: Likewise. 11706 * typeck2.c: Likewise. 11707 * xref.c: Likewise. 11708 117092000-01-25 Richard Henderson <rth@cygnus.com> 11710 11711 * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR. 11712 117132000-01-25 Mark Mitchell <mark@codesourcery.com> 11714 11715 * cp-tree.h (vcall_offset_in_vtable_p): New macro. 11716 * class.c (build_vbase_offset_vtbl_entries): Fix typo in commment. 11717 (struct vcall_offset_data_s): New type. 11718 (dfs_vcall_offset_queue_p): New function. 11719 (dfs_build_vcall_offset_vtbl_entries): Likewise. 11720 (build_vcall_offset_vtbl_entries): Likewise. 11721 (layout_vtable_decl): Likewise. 11722 (num_vfun_entries): Likewise. 11723 (num_extra_vtbl_entries): Add the entries for vcall offsets. 11724 (build_vtbl_initializer): Likewise. 11725 (dfs_finish_vtabls): Use layout_vtable_decl. 11726 (modify_one_vtables): Always duplicate vtables under the new ABI. 11727 (finish_struct_1): Use layout_vtable_decl. 11728 117292000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11730 11731 * decl.c (member_function_or_else): Change third arg from a format 11732 specifier to an `enum overload_flags'. Callers changed. 11733 117342000-01-25 Gabriel Dos Reis <gdr@codesourcery.com> 11735 11736 * typeck.c (composite_pointer_type, c_sizeof, expr_sizeof, 11737 build_binary_op_nodefault, build_unary_op, build_reinterpret_cast, 11738 build_const_cast, get_delta_difference, check_return_expr): Avoid 11739 ANSI string concatenation usage. 11740 117412000-01-24 Mark Mitchell <mark@codesourcery.com> 11742 11743 * class.c (layout_class_type): Put the fields required to make a 11744 class non-empty at the end, not the beginning, of the TYPE_FIELDs 11745 list. 11746 117472000-01-24 Jason Merrill <jason@casey.cygnus.com> 11748 11749 * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a 11750 template. 11751 11752 * decl2.c (mark_used): Do instantiate inlines that have been 11753 explicitly instantiated. 11754 117552000-01-24 Richard Henderson <rth@cygnus.com> 11756 11757 * call.c (build_over_call): Use expand_tree_builtin. 11758 * typeck.c (build_function_call_real): Likewise. 11759 (build_binary_op_nodefault): Handle unordered compares. 11760 117612000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 11762 11763 * cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New 11764 cp_tree_index values. 11765 (throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node): 11766 New global node #defines for them. 11767 * rtti.c (call_void_fn): Replace with ... 11768 (build_runtime_decl): ... new static function. 11769 (throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl. 11770 (throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl. 11771 (build_dynamic_cast_1): Always produce correctly typed result. 11772 Explicitly produce type_info addresses. Use dynamic_cast_node. 11773 * exception.cc (__throw_bad_cast): Return `void *'. 11774 (__throw_bad_typeid): Return `const type_info &'. 11775 117762000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 11777 11778 * cp-tree.h (get_vtable_decl): Prototype new function. 11779 * class.c (get_vtable_decl): New function. Broken out from ... 11780 (build_vtable): ... here. Use it. 11781 * decl2.c (finish_vtable_vardecl): Ignore dummy vtables created 11782 by get_vtable_decl. 11783 117842000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 11785 11786 * cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE, 11787 CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE, 11788 CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations. 11789 (CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE, 11790 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE, 11791 CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations. 11792 (CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ... 11793 (CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here. 11794 (CPTI_TINFO_VAR_ID): New enumeration. 11795 (__tp_desc_type_node, __access_mode_type_node, 11796 __bltn_desc_type_node, __user_desc_type_node, 11797 __class_desc_type_node, __ptr_desc_type_node, 11798 __attr_desc_type_node, __func_desc_type_node, 11799 __ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines. 11800 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, 11801 ref_desc_type_node, ary_desc_type_node, func_desc_type_node, 11802 enum_desc_type_node, class_desc_type_node, 11803 si_class_desc_type_node, vmi_class_desc_type_node, 11804 ptmd_desc_type_node, base_desc_type_node): New #defines. 11805 (tinfo_fn_id, tinfo_fn_type): Rename to ... 11806 (tinfo_decl_id, tinfo_decl_type): ... here. Adjust. 11807 (tinfo_var_id): New enumeration. 11808 (DECL_TINFO_FN_P): Augment comment. 11809 * decl.c (cp_global_trees): Adjust documentation. 11810 * rtti.c (init_rtti_processing): Adjust for tinfo_decl_id, 11811 tinfo_decl_type and tinfo_var_id. 11812 (get_tinfo_decl_dynamic): Adjust for tinfo_decl_type. 11813 (build_typeid): Remove unused variable. 11814 (get_tinfo_var): Use tinfo_var_id. 11815 (tinfo_name): New static function. 11816 (get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type. 11817 (tinfo_from_decl): Likewise. 11818 (get_base_offset): New static function, broken out of 11819 expand_class_desc. 11820 (expand_si_desc): Use tinfo_name. 11821 (expand_class_desc): Likewise. Lose local static variable. 11822 Use base_desc_type_node. Use get_base_offset. 11823 (expand_ptr_desc): Use tinfo_name. 11824 (expand_attr_desc): Likewise. 11825 (expand_generic_desc): Likewise. 11826 11827 * tinfo.cc (__GXX_ABI_VERSION): Test value and existence. 11828 * tinfo.h (__GXX_ABI_VERSION): Test value and existence. 11829 118302000-01-23 Mark Mitchell <mark@codesourcery.com> 11831 11832 * cp-tree.h (__eprintf): Remove declaration. 11833 * tree.c (__eprintf): Remove definition. 11834 118352000-01-23 Zack Weinberg <zack@rabi.columbia.edu> 11836 Mark Mitchell <mark@codesourcery.com> 11837 11838 * cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N, 11839 CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings. 11840 118412000-01-23 Brad Lucier <lucier@math.purdue.edu> 11842 11843 * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly. 11844 118452000-01-23 Mark Mitchell <mark@codesourcery.com> 11846 11847 * cp-tree.h (register_dtor_fn): New function. 11848 * decl.c (destroy_local_static): Rename to ... 11849 (register_dtor_fn): ... this. Give it external linkage. 11850 (expand_static_init): Use it. 11851 * decl2.c (do_static_initialization): Likewise, if using 11852 __cxa_atexit. 11853 (do_static_destruction): Check that __cxa_atexit is not in use. 11854 (finish_file): Don't call do_static_destruction if using 11855 __cxa_atexit. 11856 11857 * typeck.c (convert_arguments): Restore two-message error 11858 reporting. 11859 118602000-01-20 Nathan Sidwell <sidwell@codesourcery.com> 11861 11862 Remap dynamic cast hint values to be consistent across ABIs. 11863 * search.c (dynamic_cast_base_recurse): Remap generated value. 11864 (get_dynamic_cast_base_type): Adjust documentation. 11865 * tinfo.h (__user_type_info::dyncast): Likewise. 11866 (__user_type_info::find_public_subobj): Remap BOFF meaning. 11867 * tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning. 11868 (__class_type_info::do_dyncast): Likewise. 11869 (__class_type_info::do_find_public_subobj): Likewise. 11870 * tinfo2.cc (__dynamic_cast): Remap BOFF parameter. 11871 118722000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 11873 11874 * typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn. 11875 11876 * typeck2.c (incomplete_type_error): Restore previous 11877 cp_error and cp_error_at call sequence. 11878 118792000-01-20 Brad Lucier <lucier@math.purdue.edu> 11880 11881 * class.c (dump_class_hierarchy): Make format agree with argument; 11882 cast pointer to unsigned long and print with %lx. 11883 118842000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 11885 11886 * decl2.c (lang_decode_option): Set default line-wrap length to 72. 11887 11888 * typeck.c (composite_pointer_type, common_type, 11889 comp_target_parms, c_sizeof, expr_sizeof, build_array_ref, 11890 build_function_call_real, convert_arguments, 11891 build_binary_op_nodefault, pointer_int_sum, pointer_diff, 11892 build_unary_op, mark_addressable, build_compound_expr, 11893 build_static_cast, build_reinterpret_cast, build_const_cast, 11894 build_c_cast, build_modify_expr, get_delta_difference, 11895 build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with 11896 'ISO C++'. Fusion consecutive calls to diagnostic message routines 11897 into a single one. 11898 * typeck2.c (readonly_error, abstract_virtuals_error, 11899 process_init_constructor, check_for_new_type): Likewise. 11900 119012000-01-19 Mark Mitchell <mark@codesourcery.com> 11902 11903 * tree.c (bot_manip): Set DECL_CONTEXT for newly created 11904 VAR_DECLs. 11905 119062000-01-18 Nathan Sidwell <sidwell@codesourcery.com> 11907 11908 * cp-tree.h (get_tinfo_fn_dynamic): Remove prototype. 11909 (build_x_typeid): Likewise. 11910 (get_tinfo_fn): Likewise. 11911 (get_tinfo_fn_unused): Rename to ... 11912 (get_tinfo_decl): ... here. 11913 * rtti.c (build_headof): Replace logic error with assertion. 11914 (get_tinfo_fn_dynamic): Rename to ... 11915 (get_tinfo_decl_dynamic): ... here. Make static. Use 11916 complete_type_or_else. 11917 (build_x_typeid): Move into ... 11918 (build_typeid): ... here. Adjust call to 11919 get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify 11920 throw_bad_typeid expression. 11921 (get_tinfo_fn_unused): Rename to ... 11922 (get_tinfo_decl): ... here. Adjust comment. 11923 (get_tinfo_fn): Delete. 11924 (tinfo_from_decl): New static function. 11925 (get_typeid_1): Call get_tinfo_decl and tinfo_from_decl. 11926 (get_typeid): Use complete_type_or_else. 11927 (build_dynamic_cast_1): Adjust calls to 11928 get_tinfo_decl_dynamic. Simplify throw_bad_cast expression. 11929 * parse.y (primary): Adjust call to build_typeid. 11930 * except.c (build_eh_type_type_ref): Adjust call to 11931 get_tinfo_decl. Mark as used. 11932 * class.c (set_rtti_entry): Adjust call to get_tinfo_decl. 11933 * decl2.c (build_expr_from_tree): Adjust call to build_typeid. 11934 * parse.c: Regenerated. 11935 119362000-01-17 Mark Mitchell <mark@codesourcery.com> 11937 11938 * class.c (fixed_type_or_null): Don't clear NONNULL. Document 11939 calling convention. 11940 (resolves_to_fixed_type_p): Document calling convention. 11941 * rtti.c (build_x_typeid): Initialize NONNULL. 11942 11943 * cp-tree.h (build_shared_int_cst): New function. 11944 * call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity. 11945 * class.c (modify_vtable_entry): Likewise. 11946 (add_virtual_function): Split out code to generated shared 11947 INTEGER_CSTs to build_share_int_cst. 11948 (modify_all_vtables): Handle all the overridden functions here. 11949 Add overridden functions from non-primary virtual bases to the 11950 primary vtable. 11951 (finish_struct_1): Adjust call to modify_all_vtables. Add 11952 overridden functions from non-primary bases to the vtable. 11953 * tree.c (build_shared_int_cst): New function. 11954 11955 * cp-tree.h (scratchalloc): Remove. 11956 (build_scratch_list): Likewise. 11957 * call.c (convert_class_to_reference): Replace build_scratch_list 11958 and build_expr_list with build_tree_list. 11959 (add_candidate): Replace scratchalloc with expralloc. Note memory 11960 leak. 11961 (build_user_type_conversion_1): Replace build_scratch_list 11962 and build_expr_list with build_tree_list. 11963 (build_new_op): Likewise. 11964 (build_op_delete_call): Likewise. 11965 (convert_like): Likewise. 11966 * cvt.c (ocp_convert): Likewise. 11967 * decl.c (start_decl): Likewise. 11968 (start_function): Likewise. 11969 (finish_destructor_body): Likewise. 11970 (maybe_build_cleanup_1): Likewise. 11971 * decl2.c (reparse_decl_as_expr): Likewise. 11972 * init.c (perform_member_init): Likewise. 11973 (expand_cleanup_for_base): Likewise. 11974 (build_builtin_delete_call): Likewise. 11975 (build_new_1): Likewise. 11976 (build_delete): Likewise. 11977 * method.c (do_build_assign_ref): Likewise. 11978 * parse.y (already_scoped_stmt): Likewise. 11979 (nontrivial_exprlist): Likewise. 11980 (net_initializer): Likewise. 11981 (initlist): Likewise. 11982 * parse.c: Regenerated. 11983 * rtti.c (build_x_typeid): Likewise. 11984 (build_dynamic_cast_1): Likewise. 11985 * typeck.c (build_x_compound_expr): Likewise. 11986 (build_static_cast): Likewise. 11987 (build_modify_expr): Likewise. 11988 11989 * cp-tree.h (DECL_VINDEX): Add documentation. 11990 * class.c (build_vtable_entry): Likewise. 11991 (start_vtable): Add comment. 11992 (add_virtual_function): Replace pending_hard_virtuals with 11993 overridden_virtuals and pending_virtuals with new_virtuals. 11994 Replace redundant assignments with assertions. 11995 (check_for_override): Add comment. 11996 (check_bases_and_members): Replace pending_hard_virtuals with 11997 overridden_virtuals and pending_virtuals with new_virtuals. 11998 (create_vtbl_ptr): Likewise. 11999 (layout_class_type): Likewise. 12000 (finish_struct_1): Likewise. Add comments. 12001 120022000-01-16 Mark Mitchell <mark@codesourcery.com> 12003 12004 * class.c (finish_struct_1): Replace redundant code with 12005 assertions. 12006 12007 * cp-tree.h (flag_new_abi): Move. 12008 (flag_use_cxa_atexit): Likewise. 12009 (flag_honor_std): Likewise. 12010 (flag_rtti): Likewise. 12011 (vbase_offsets_in_vtable_p): Define. 12012 (vptrs_present_everywhere_p): Likewise. 12013 (TYPE_CONTAINS_VPTR_P): Likewise. 12014 (dfs_walk_real): Declare. 12015 * class.c (build_vbase_pointer_fields): Check 12016 vbase_offsets_in_vtable_p. 12017 (dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in 12018 BINFO_VPTR_FIELD. 12019 (build_vbase_offset_vtbl_entries): Simplify. 12020 (build_vbase_offset_vtbl_entries): Adjust. 12021 (build_vbase_pointer): Add ability to look up vbase offsets in 12022 vtable. 12023 (start_vtable): New function. 12024 (add_virtual_function): Use it. 12025 (determine_primary_base): Use TYPE_CONTAINS_VPTR_P. 12026 (num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p. 12027 (build_vtbl_initializer): Take the type of the complete object as 12028 input. Use it to correctly calculate vbase offsets. 12029 (dfs_finish_vtbls): Pass the complete type to 12030 build_vtbl_initializer. 12031 (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P. 12032 (create_vtable_ptr): Create a vtable even if there are no 12033 new virtual functions, under the new ABI. 12034 (finish_struct_1): Likewise. 12035 (get_vfield_name): Use TYPE_CONTAINS_VPTR_P. 12036 * decl.c (exapnd_static_init): Remove call to 12037 preserve_initializer. 12038 * decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in 12039 vtables. 12040 * init.c (initialize_vtbl_ptrs): Initialize them in pre-order. 12041 (expand_virtual_init): Use vbase_offsets_in_vtable_p. 12042 (construct_virtual_bases): Don't initialize virtual base pointers 12043 under the new ABI. 12044 (build_aggr_init): Clean up comment. 12045 (expand_aggr_init_1): Likewise. 12046 * rtti.c (expand_class_desc): Store the virtual function table 12047 index where the vbase offset lives in the offset field. 12048 * search.c (dfs_walk_real): Make it global. 12049 (dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P. 12050 * tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD. 12051 12052 * tinfo.h (USItype): Make it signed under the new ABI. 12053 * tinfo.cc (convert_to_base): New function. Encapsulate base 12054 conversion logic here. 12055 (__class_type_info::do_upcast): Use it. 12056 (__class_type_info::do_dyncast): Likewise. 12057 (__class_type_info::do_find_public_subobj): Likewise. 12058 12059 * init.c (construct_virtual_bases): Don't look up the addresses of 12060 virtual bases at run-time. 12061 12062 * class.c (build_vbase_pointer): Relocate. 12063 (build_vbase_pointer_fields): Likewise. 12064 (dfs_build_vbase_offset_vtbl_entries): Likewise. 12065 (build_vbase_offset_vtbl_entries): Likewise. 12066 12067 * decl.c (init_decl_processing): Complain if -fnew-abi 12068 -fno-vtable-thunks is used. 12069 12070 * decl2.c (lang_decode_option): Don't couple flag_honor_std to 12071 flag_new_abi. 12072 120732000-01-15 Mark Mitchell <mark@codesourcery.com> 12074 12075 * cp-tree.h (num_extra_vtbl_entries): New function. 12076 (size_extra_vtbl_entries): Likewise. 12077 (dfs_vtable_path_unmark): Likewise. 12078 (dfs_vtable_path_unmarked_real_bases_queue_p): Likewise. 12079 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 12080 * class.c (num_extra_vtbl_entries): New function. 12081 (size_extra_vtbl_entries): Likewise. 12082 (dfs_build_vbase_offset_vtbl_entries): New function. 12083 (build_vbase_offset_vtbl_entries): Likewise. 12084 (build_vtbl_initializer): Use it. 12085 (finish_struct_1): Adjust vtable sizes (using 12086 num_extra_vtbl_entries). 12087 * expr.c (cplus_expand_expr): Assert that the DECL_RTL for a 12088 THUNK_DECL is non-NULL before expanding it. 12089 * init.c (expand_virtual_init): Adjust the vtable pointer by 12090 size_extra_vtbl_entries before storing it. 12091 * search.c (get_shared_vase_if_not_primary): Adjust prototype. 12092 Handle TREE_LIST parameters here, not in the dfs_* functions. 12093 (dfs_unmarked_real_bases_queue_p): Adjust. 12094 (dfs_marked_real_bases_queue_p): Likewise. 12095 (dfs_vtable_path_unmarked_real_bases_queue_p): New function. 12096 (dfs_vtable_path_marked_real_bases_queue_p): New function. 12097 (dfs_vtable_path_unmark): Likewise. 12098 120992000-01-14 Mark Mitchell <mark@codesourcery.com> 12100 12101 * optimize.c (copy_body_r): Clear the operand three of a 12102 TARGET_EXPR when copying it. 12103 121042000-01-14 Martin v. L�wis <loewis@informatik.hu-berlin.de> 12105 12106 * method.c (build_decl_overload_real): Check whether we are in :: 12107 before returning __builtin_new/delete. 12108 121092000-01-13 Mark Mitchell <mark@codesourcery.com> 12110 12111 * pt.c (tsubst_friend_function): Improve comment. 12112 (instantiate_decl): Avoid crashing when a "nested" function is 12113 instantiated from the top level. 12114 12115 * dump.c (dqeueue_and_dump): Dump 12116 DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION. 12117 121182000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12119 12120 * call.c: If GATHER_STATISTICS, declare `n_build_method_call'. 12121 121222000-01-13 Nathan Sidwell <sidwell@codesourcery.com> 12123 12124 * g++spec.c (lang_specific_driver): Add -fnew-abi if 12125 ENABLE_NEW_GXX_ABI defined. 12126 * Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o, 12127 opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o, 12128 opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch. 12129 121302000-01-12 Mark Mitchell <mark@codesourcery.com> 12131 12132 * decl.c (start_cleanup_fn): Call pushdecl. 12133 12134 * call.c (convert_class_to_reference): Fix typos. 12135 (build_conditional_expr): Handle errors gracefully. 12136 * class.c (push_nested_class): Likewise. 12137 * cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro. 12138 (DECL_THIS_EXTERN): Use it. 12139 (DECL_THIS_STATIC): Likewise. 12140 * cvt.c (convert_to_void): Handle errors gracefully. 12141 (build_expr_type_conversion): Likewise. 12142 * decl.c (maybe_push_decl): Likewise. 12143 (start_decl_1): Likewise. 12144 (require_complete_types_for_parms): Likewise. 12145 * parse.y (structsp): Likewise. 12146 (base_class): Likewise. 12147 * parse.c: Regenerated. 12148 * pt.c (finish_member_template_decl): Likewise. 12149 * typeck.c (decay_conversion): Likewise. 12150 12151 * cp-tree.h (dfs_skip_vbases): New function. 12152 (find_vbase_instance): Likewise. 12153 * class.c (determine_primary_base): Allow a nearly empty base to 12154 serve as a primary base class under the new ABI. 12155 (get_class_offset_1): Rename to ... 12156 (dfs_get_class_offset): ... this. Simplify. Don't issue error 12157 messages here. 12158 (get_class_offset): Use it. Issue error messages here. 12159 (dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to 12160 find the right copies of virtual bases. 12161 (fixup_vtable_deltas1): Rename to ... 12162 (dfs_fixup_vtable_deltas): ... this. Adjust to handle virtual 12163 bases as primary bases. 12164 (fixup_vtable_deltas): Remove. 12165 (override_one_vtable): Handle virtual bases as primary bases. 12166 (merge_overrides): Likewise. 12167 (finish_struct_1): Likewise. 12168 (dump_class_hierarchy): Dump primary-ness of bases as well. 12169 * search.c (mark_primary_bases): Use a pre-order traversal to 12170 handle primary virtual bases. 12171 (dfs_skip_vbases): New fiunction. 12172 (expand_upcast_fixups): Adjust to handle primary virtual bases. 12173 (fixup_virtual_upcast_offsets): Likewise. 12174 (fixup_all_virtual_upcast_offsets): Likewise. 12175 (dfs_find_vbase_instances): New function. 12176 (find_vbase_instance): Likewise. 12177 121782000-01-11 Mumit Khan <khan@xraylith.wisc.edu> 12179 12180 * lex.c (DIR_SEPARATOR): Delete macro. 12181 121822000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> 12183 12184 * decl2.c (lang_decode_option): Handle automatic line wrapping 12185 option. 12186 121872000-01-11 Mark Mitchell <mark@codesourcery.com> 12188 12189 * friend.c (do_friend): Don't resolve scopes when processing 12190 template declarations, even if the qualifying scope doesn't 12191 involve template parameters. 12192 121932000-01-10 Mark Mitchell <mitchell@dumbledore.codesourcery.com> 12194 12195 * class.c (dfs_modify_vtables_queue_p): Remove. 12196 (modify_all_vtables): Use dfs_unmarked_real_bases_queue_p 12197 and dfs_marked_real_bases_queue_p instead of 12198 dfs_modify_vtables_queue_p. 12199 12200 * class.c (build_vbase_path): Simplify. 12201 (dfs_propagate_binfo_offsets): New function. 12202 (propagate_binfo_offsets): Use it. 12203 (remove_base_field): Simplify. 12204 (dfs_set_offset_for_vbases): Remove. 12205 (dfs_set_offset_for_shared_vbases): New function. 12206 (dfs_set_offset_for_unshared_vbases): Likewise. 12207 (layout_virtual_bases): Use them. 12208 (layout_basetypes): Don't call propagate_binfo_offsets. 12209 * search.c (dfs_get_vbase_types): Clone completely fresh binfos 12210 for the vbases. 12211 12212 * class.c (build_base_field): New function, split out from ... 12213 (build_base_fields): ... here. Use it. Allocate primary bases 12214 first, under the new ABI. 12215 (get_vtable_entry): Remove. 12216 (remove_base_field): New function, split out from ... 12217 (remove_base_fields): ... here. Adjust since primary bases come 12218 first under the new ABI. 12219 12220 * cp-tree.h (expand_direct_vtbls_init): Remove declaration. 12221 (initialize_vtbl_ptrs): New function. 12222 (expand_indirect_vtbls_init): Change prototype. 12223 (convert_pointer_to_vbase): Declare. 12224 * init.c (expand_direct_vtbls_init): Remove. 12225 (dfs_initialize_vtbl_ptrs): New function. 12226 (initialize_vtbl_ptrs): Likewise. 12227 (emit_base_init): Use initialize_vtbl_ptrs. 12228 * search.c (convert_pointer_to_vbase): Make it global. 12229 (expand_indirect_vtbls_init): Remove vtable initialization code. 12230 * semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs. 12231 12232 * class.c (dfs_finish_vtbls): New function. 12233 (finish_vtbls): Use it. 12234 (dump_class_hierarchy): New function. 12235 12236 * cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition. 12237 (BINFO_VBASE_PRIMARY_P): New macro. 12238 (BINFO_VIRTUALS): Add to documentation. 12239 (SET_BINFO_PRIMARY_MARKED_P): Remove. 12240 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 12241 (dfs_mark_primary_bases_queue_p): Likewise. 12242 (dfs_unmarked_real_bases_queue_p): New function. 12243 (dfs_marked_real_bases_queue_p): Likewise. 12244 * search.c (dfs_mark_primary_bases): Adjust. 12245 (mark_primary_bases): Likewise. 12246 (get_shared_vbase_if_not_primary): New function. 12247 (dfs_unmarked_real_bases_queue_p): Likewise. 12248 (dfs_marked_real_bases_queue_p): Likewise. 12249 (dfs_get_pure_virtuals): Simplify. 12250 (get_pure_virtuals): Likewise. 12251 122522000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12253 12254 * lex.c: Include tm_p.h. 12255 122562000-01-07 Nathan Sidwell <sidwell@codesourcery.com> 12257 12258 * lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro. 12259 122602000-01-06 Jason Merrill <jason@casey.cygnus.com> 12261 12262 * decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT. 12263 * pt.c (instantiate_decl): Defer comdat templates that might not be 12264 needed. 12265 12266 * cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT. 12267 * decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT. 12268 (finish_file): Likewise. 12269 12270 * decl2.c (import_export_class): Undo 12/14 change. 12271 12272 * error.c (dump_decl): operator new, not operatornew. 12273 12274 * class.c (field_decl_cmp): A nontype is "greater" than a type. 12275 * search.c (lookup_field_1): Look for the last field with the 12276 desired name. 12277 122782000-01-05 Nathan Sidwell <nathan@acm.org> 12279 12280 * decl2.c (lookup_arg_dependent): Deal with FNS not being a 12281 FUNCTION_DECL. 12282 122832000-01-05 Nathan Sidwell <nathan@acm.org> 12284 12285 * typeck.c (build_static_cast): Don't strip target qualifiers 12286 when casting from a class. 12287 122882000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12289 12290 * class.c (warn_hidden): Initialize variable `fndecl'. 12291 122922000-01-03 Ulrich Drepper <drepper@cygnus.com> 12293 12294 * decl.c (flag_isoc9x): New variable to be able to use code in 12295 c-common.c. For now always zero. 12296 122972000-01-03 Mark Mitchell <mark@codesourcery.com> 12298 12299 * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. 12300 * class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN 12301 or unshare_base_binfos for virtual bases here. 12302 * search.c (dfs_get_vbase_types): Do it here. 12303 (get_vbase_types): Adjust. 12304 123052000-01-02 Mark Mitchell <mark@codesourcery.com> 12306 12307 * cp-tree.h (CLASSTYPE_VFIELDS): Move definition. 12308 (BINFO_PRIMARY_MARKED_P): Use flag 5. 12309 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 12310 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 12311 (unmark_primary_bases): Remove declaration. 12312 (unmarkedp): Declare. 12313 (dfs_vbase_unmark): Likewise. 12314 * class.c (determine_primary_base): Return immediately if there 12315 are no base classes. Call mark_primary_bases here. 12316 (modify_all_direct_vtables): Remove. 12317 (modify_all_indirect_vtables): Remove. 12318 (dfs_modify_vtables_queue_p): New function. 12319 (dfs_modify_vtables): New function. 12320 (modify_all_vtables): Use them. 12321 (build_base_fields): Build FIELD_DECLs for primary virtual base 12322 classes. 12323 (create_vtable_ptr): Don't call determine_primary_base here. 12324 (dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ... 12325 (dfs_set_offset_for_vbases): ... this. 12326 (layout_virtual_bases): Use it. 12327 (layout_class_type): Call determine_primary_base here. 12328 * search.c (unmarkedp): Make it global. 12329 (shared_marked_p): Simplify. 12330 (shared_unmarked_p): Likewise. 12331 (dfs_primary_bases_queue_p): Remove. 12332 (dfs_unmark_primary_bases): Likewise. 12333 (unmark_primary_bases): Likewise. 12334 (mark_primary_bases): Simplify. 12335 (get_pure_virtuals): Don't call mark_primary_bases here. 12336 (dfs_vbase_unmark): New function. 12337 (get_vbase_types): Simplify. 12338 12339 * class.c (struct base_info): Remove. 12340 (determine_primary_base): Take has_virtual_p rather than a 12341 base_info as input. Don't calculate max_has_virtual. 12342 (finish_struct_bits): Remove max_has_virtual argument. 12343 (create_vtable_ptr): Remove max_has_virtual_p argument. 12344 (layout_virtual_bases): Remove max argument. 12345 (layout_basetypes): Likewise. 12346 (layout_class_type): Remove max_has_virtual_p argument. 12347 (finish_struct_1): Remove max_has_virtual. 12348 12349 * cp-tree.h (dfs_mark_primary_bases_queue_p): New function. 12350 (layout_basetypes): Remove. 12351 * class.c (propagate_binfo_offsets): Moved here from tree.c. 12352 Update to handle primary virtual bases. 12353 (remove_base_fields): New function, split out from 12354 layout_basetypes. 12355 (dfs_mark_primary_bases_and_set_vbase_offsets): New function. 12356 (layout_virtual_bases): New function, split out from 12357 layout_basetypes. Update to handle primary virtual bases. 12358 (layout_basetypes): Moved here from tree.c. Use 12359 remove_base_fields and layout_virtual_bases. 12360 * search.c (dfs_mark_primary_bases_queue_p): New function. 12361 (mark_primary_bases): Use it. 12362 * tree.c (CEIL): Remove. 12363 (propagate_binfo_offsets): Remove. 12364 (layout_basetypes): Remove. 12365 123662000-01-01 Mark Mitchell <mark@codesourcery.com> 12367 12368 * cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES. 12369 (BINFO_PRIMARY_MARKED_P): New macro. 12370 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 12371 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 12372 (mark_primary_bases): New function. 12373 (unmark_primary_bases): Likewise. 12374 * search.c (get_abstract_virtuals_1): Remove. 12375 (dfs_mark_primary_bases): New function. 12376 (mark_primary_bases): Likewise. 12377 (dfs_unmark_primary_bases): Likewise. 12378 (unmark_primary_bases): Likewise. 12379 (dfs_get_pure_virtuals): Likewise. 12380 123812000-01-01 Mark Mitchell <mark@codesourcery.com> 12382 12383 * cp-tree.h (skip_rtti_stuff): Adjust prototype. 12384 * class.c (skip_rtti_stuff): Reorganize parameters and return value. 12385 (modify_one_vtable): Adjust. 12386 (fixup_vtable_deltas1): Likewise. 12387 (override_one_vtable): Likewise. 12388 * search.c (get_abstract_virtuals_1): Likewise. 12389 (get_pure_virtuals): Likewise. 12390 (expand_upcast_fixups): Likewise. 12391 * tree.c (debug_binfo): Likewise. 12392 12393 * class.c (build_vtable): Don't return a value. Don't rebuild 12394 vtables for bases that have already been handled. 12395 (prepare_fresh_vtable): Don't rebuild vtables for bases that have 12396 already been handled. 12397 (modify_one_vtable): Adjust accordingly. 12398 (fixup_vtable_deltas1): Likewise. 12399 (finish_struct_1): Likewise. 12400 124012000-01-01 Martin v. L�wis <loewis@informatik.hu-berlin.de> 12402 12403 * call.c (build_new_method_call): Also check destructors. 12404