12005-05-03 Release Manager 2 3 * GCC 3.3.6 Released. 4 52005-04-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 6 7 PR c++/18644 8 * call.c (build_new_op): Remove check for warn_synth. 9 102004-12-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 11 12 PR c++/17456 13 * cvt.c (convert_to_void): Set expr to void_zero_node after 14 overload failure. 15 162004-12-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 17 18 PR c++/16806 19 * error.c (dump_expr) [BASELINK]: Use dump_expr. 20 212004-12-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 22 23 PR c++/17868 24 * error.c (dump_expr): Add missing case for RDIV_EXPR. 25 262004-12-09 Nathan Sidwell <nathan@codesourcery.com> 27 28 PR c++/16681 29 * init.c (build_zero_init): Build a RANGE_EXPR for an array 30 initializer. 31 322004-09-30 Release Manager 33 34 * GCC 3.3.5 Released. 35 362004-09-21 Giovanni Bajo <giovannibajo@gcc.gnu.org> 37 38 * decl.c (reshape_init): Remove unused variable. 39 402004-09-21 Giovanni Bajo <giovannibajo@gcc.gnu.org> 41 42 PR c++/14179 43 * decl.c (reshape_init): Extract array handling into... 44 (reshape_init_array): New function. Use integers instead of trees 45 for indices. 46 472004-09-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 48 49 PR c++/15857 50 Backport from gcc-3_4-branch 51 2004-08-24 Jason Merrill <jason@redhat.com> 52 PR c++/15461 53 * semantics.c (nullify_returns_r): Replace a DECL_STMT 54 for the NRV with an INIT_EXPR. 55 562004-07-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 57 58 PR c++/16175 59 * error.c (dump_type) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Output 60 cv qualifier. 61 622004-05-31 Release Manager 63 64 * GCC 3.3.4 Released. 65 662004-05-16 Gabriel Dos Reis <gdr@integrable-solutions.net> 67 68 Backport from mainline: 69 2004-03-18 Mark Mitchell <mark@codesourcery.com> 70 * call.c (build_conditional_expr): Do not call force_rvalue for 71 operands of void_type when the conditional expression itself has 72 void type. 73 742004-05-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 75 76 * Make-lang.in (cp/init.o): Depend on diagnostic.h. 77 * except.c (do_free_exception): Prototype. 78 * init.c: Include "diagnostic.h". 79 802004-05-04 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 81 82 Backport: 83 2004-04-01 Mark Mitchell <mark@codesourcery.com> 84 PR c++/14810 85 * decl.c (maybe_push_cleanup_level): Robustify. 86 872004-05-01 Gabriel Dos Reis <gdr@integrable-solutions.net> 88 89 Backport from gcc-3_4-branch 90 2004-03-30 Mark Mitchell <mark@codesourcery.com> 91 Jakub Jelinek <jakub@redhat.com> 92 PR c++/14763 93 * pt.c (tsubst_default_argument): Clear current_function_decl. 94 * decl2.c (mark_used): Don't segfault if cfun != NULL but 95 current_function_decl == NULL. 96 972004-05-01 Gabriel Dos Reis <gdr@integrable-solutions.net> 98 99 Backport from gcc-3_4-branch: 100 2004-03-30 Mark Mitchell <mark@codesourcery.com> 101 PR c++/14724 102 * decl.c (start_decl_1): Do not decide whether or not to create a 103 new cleanup level until after the type has been completed. 104 1052004-04-01 Richard Henderson <rth@redhat.com> 106 107 PR c++/14804 108 * decl.c (cp_finish_decl): Preserve TREE_READONLY more often. 109 * typeck2.c (split_nonconstant_init): Clear TREE_READONLY. 110 1112003-03-17 Matt Austern <austern@apple.com> 112 113 Backport: 114 PR debug/14079 115 * decl.c (add_decl_to_level): Add extern variables, as well 116 as static, to static_decls array. 117 1182004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net> 119 120 Backport: 121 2004-03-11 Mark Mitchell <mark@codesourcery.com> 122 PR c++/14476 123 * decl.c (xref_tag): Do not create dummy ENUMERAL_TYPEs. 124 1252004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net> 126 127 Backport: 128 2004-03-08 Mark Mitchell <mark@codesourcery.com> 129 PR c++/14401 130 * class.c (check_field_decls): Complain about non-static data 131 members of reference type in unions. Propagate 132 CLASSTYPE_REF_FIELDS_NEED_INIT and 133 CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static 134 data members. 135 * init.c (perform_member_init): Complain about members with const 136 type that are not explicitly initialized. 137 1382004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net> 139 140 Backport: 141 2004-03-09 Mark Mitchell <mark@codesourcery.com> 142 PR c++/14230 143 * call.c (initialize_reference): Handle initializers that are 144 class-member access expressions applies to rvalues. 145 1462004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net> 147 148 Backport: 149 2004-01-12 Richard Henderson <rth@redhat.com> 150 PR opt/10776 151 * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New. 152 (store_init_value): Use it. 153 * decl.c (check_initializer): Expect full initialization code 154 from store_init_value. 155 * init.c (expand_aggr_init_1): Likewise. 156 * decl2.c (maybe_emit_vtables): Abort if runtime init needed. 157 1582004-03-09 Giovanni Bajo <giovannibajo@gcc.gnu.org> 159 160 PR c++/14409 161 * pt.c (determine_specialization): For member templates, match also 162 constness. 163 1642004-03-05 Gabriel Dos Reis <gdr@integrable-solutions.net> 165 166 Backport: 167 2004-02-04 Mark Mitchell <mark@codesourcery.com> 168 169 PR c++/9941 170 * rtti.c (tinfo_base_init): Use import_export_tinfo to decide the 171 linkage for the typeinfo name string. 172 1732004-02-24 Jason Merrill <jason@redhat.com> 174 175 PR c++/13944 176 * except.c (do_free_exception): Remove #if 0 wrapper. 177 (build_throw): Use it if we elide a copy into the exception object. 178 1792004-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net> 180 181 * decl.c (current_binding_level): Define as an lvalue. 182 1832004-02-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 184 185 PR c++/13635 186 * pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL 187 has full set of arguments. 188 1892004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org> 190 191 PR c++/14250 192 * cvt.c (build_expr_type_conversion): Type must be complete before 193 looking up for conversions. 194 1952004-02-22 Jakub Jelinek <jakub@redhat.com> 196 197 * decl.c (reshape_init): Convert array designator to sizetype. 198 1992004-02-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 200 201 Backport from mainline 202 2004-02-13 Mark Mitchell <mark@codesourcery.com> 203 PR c++/14083 204 * call.c (build_conditional_expr): Call force_rvalue on the 205 non-void operand in the case that one result is a throw-expression 206 and the other is not. 207 2082004-02-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 209 210 Backport from mainline 211 2003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org> 212 PR c++/14033 213 * decl.c (require_complete_types_for_parms): Do not insert 214 error_mark_node in the parameter list. 215 2162004-02-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 217 218 Backport from mainline 219 2004-02-04 Mark Mitchell <mark@codesourcery.com> 220 PR c++/13932 221 * call.c (convert_like_real): Use "converting" rather than 222 "argument" as the descriptive keyword to 223 dubious_conversion_warnings. 224 * typeck.c (convert_for_assignment): Do not call 225 dubious_conversion_warnings. 226 2272004-02-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 228 229 Backport from mainline 230 2004-02-02 Mark Mitchell <mark@codesourcery.com> 231 PR c++/13907 232 * call.c (convert_class_to_reference): Keep better track of 233 pedantically invalid user-defined conversions. 234 2352004-02-14 Release Manager 236 237 * GCC 3.3.3 Released. 238 2392004-02-05 Giovanni Bajo <giovannibajo@gcc.gnu.org> 240 241 PR c++/13086 242 * init.c (build_delete): Emit a more informative error message in 243 case of an incomplete type, and on the correct source line. 244 2452004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org> 246 247 PR c++/13683 248 * call.c (convert_arg_to_ellipsis): Don't emit a warning if within 249 a sizeof expression.block 250 2512004-01-29 Aldy Hernandez <aldyh@redhat.com> 252 253 Backport: 254 255 2004-01-17 Fred Fish <fnf@intrinsity.com> 256 257 PR c++/11895 258 * cp/decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE, 259 except don't call array_type_nelts() with a VECTOR_TYPE. 260 2612004-01-29 Aldy Hernandez <aldyh@redhat.com> 262 263 Backport: 264 2003-06-03 Jason Merrill <jason@redhat.com> 265 266 * cp/cp-tree.h (CP_AGGREGATE_TYPE_P): Accept vectors. 267 268 * cp/decl.c (reshape_init): Handle vectors. 269 270 * testsuite/g++.dg/init/array10.C: New. 271 2722004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 273 274 PR c++/13797 275 * pt.c (instantiate_class_template): Add an error_mark_node 276 check. 277 (tsubst_decl) <TEMPLATE_DECL case>: Likewise. 278 279 Backport from mainline 280 2003-05-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 281 282 PR c++/10555, c++/10576 283 * pt.c (lookup_template_class): Handle class template with 284 multiple levels of parameters when one of the levels contain 285 errors. 286 2872004-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 288 289 Backport from mainline 290 2004-01-16 Mark Mitchell <mark@codesourcery.com> 291 292 PR c++/13574 293 * decl.c (compute_array_index_type): Fix grammar in comment. 294 * init.c (build_zero_init): Handle zero-sized arrays correctly. 295 2962004-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 297 298 Backport from mainline 299 2004-01-16 Mark Mitchell <mark@codesourcery.com> 300 301 PR c++/13478 302 * call.c (initialize_reference): Pass -1 for inner parameter to 303 convert_like_real. 304 3052004-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 306 307 Backport from mainline 308 2004-01-05 Mark Mitchell <mark@codesourcery.com> 309 310 PR c++/13057 311 * class.c (build_clone): Copy type attributes from the original 312 function to the clone. 313 3142004-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 315 316 Backport from mainline 317 2003-12-28 Mark Mitchell <mark@codesourcery.com> 318 319 PR c++/13009 320 * call.c (build_special_member_call): Do not assume that we have a 321 pointer to the complete object in an assignment operator. 322 3232004-01-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 324 325 PR c++/13289 326 * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before 327 calling regenerate_decl_from_template. 328 3292004-01-14 Gabriel Dos Reis <gdr@integrable-solutions.net> 330 331 Backport from mainline 332 2004-01-05 Mark Mitchell <mark@codesourcery.com> 333 334 PR c++/12816 335 * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable 336 references as constant. 337 3382004-01-11 Gabriel Dos Reis <gdr@integrable-solutions.net> 339 340 PR c++/13544 341 * decl.c (build_enumerator): Set DECL_CONTEXT after the enumerator 342 has been pushed. 343 (pushdecl): Don't use DECL_NAMESPACE_SCOPE_P to test whether a 344 decl has a namespace-scope; that isn't really what it means. 345 3462004-01-02 Matthias Klose <doko@debian.org> 347 348 Backport from mainline: 349 2003-12-28 Mark Mitchell <mark@codesourcery.com> 350 351 PR c++/13081 352 * decl.c (duplicate_decls): Preserve inline-ness when redeclaring 353 a function template. 354 3552003-12-20 Andrew Pinski <pinskia@physics.uc.edu> 356 357 Backport from mainline: 358 2003-12-30 Nathan Sidwell <nathan@codesourcery.com> 359 360 PR c++/13507 361 * decl.c (duplicate_decls): Use build_type_attribute_variant to 362 merge attributes. 363 3642003-12-30 Nathan Sidwell <nathan@codesourcery.com> 365 366 PR c++/13445 367 * pt.c (instantiate_class_template): Push to class's scope before 368 tsubsting base. 369 3702003-12-28 Roger Sayle <roger@eyesopen.com> 371 372 PR c++/13070 373 * decl.c (duplicate_decls): When setting the type of an anticipated 374 declaration, merge the existing type attributes. 375 3762003-12-27 Giovanni Bajo <giovannibajo@gcc.gnu.org> 377 378 Backport from mainline: 379 2003-12-16 Giovanni Bajo <giovannibajo@gcc.gnu.org> 380 381 PR c++/2294 382 * decl.c (push_overloaded_decl): always construct an OVERLOAD 383 if the declaration comes from an using declaration. 384 3852003-12-26 Gabriel Dos Reis <gdr@integrable-solutions.net> 386 387 Backport from mainline: 388 2003-12-16 Mark Mitchell <mark@codesourcery.com> 389 390 PR c++/12696 391 * decl.c (reshape_init): Recover quickly from errors. 392 3932003-12-26 Gabriel Dos Reis <gdr@integrable-solutions.net> 394 395 Backport from mainline: 396 2003-12-22 Mark Mitchell <mark@codesourcery.com> 397 398 PR C++/12862 399 * decl.c (pushdecl): Look up all namespace-scope entities in their 400 corresponding namespace. 401 4022003-12-22 Andrew Pinski <pinskia@physics.uc.edu> 403 404 PR c++/5050 405 * tree.c (cp_start_inlining): Remove. 406 (cp_end_inlining): Remove. 407 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Do not define. 408 (LANG_HOOKS_TREE_INLINING_END_INLINING): Do not define. 409 * cp-tree.h (cp_start_inlining): Do not declare. 410 (cp_end_inlining): Do not declare. 411 4122003-12-21 Mark Mitchell <mark@codesourcery.com> 413 414 PR c++/11554 415 * init.c (sort_mem_initializers): Add warning. 416 4172003-12-19 Jason Merrill <jason@redhat.com> 418 419 PR c++/13371 420 * typeck.c (build_modify_expr): Stabilize lhs if we're narrowing. 421 4222003-12-18 Jason Merrill <jason@redhat.com> 423 424 PR c++/12253 425 * init.c (build_vec_init): Initialization of an element from 426 an initializer list is also a full-expression. 427 4282003-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 429 430 PR c++/13262 431 * pt.c (instantiate_decl): Wrap push_nested_class and 432 pop_nested_class around cp_finish_decl call for static member 433 variable. 434 4352003-12-06 Mark Mitchell <mark@codesourcery.com> 436 437 PR c++/13323 438 * class.c (same_signature_p): Handle conversion operators 439 correctly. 440 (check_for_override): Likewise. 441 4422003-11-14 Bernardo Innocenti <bernie@develer.com> 443 444 Backport from 3.4-branch. 445 446 2003-06-25 Giovanni Bajo <giovannibajo@libero.it> 447 448 PR c++/2094 449 * pt.c (unify): Add support for PTRMEM_CST and 450 FIELD_DECL unification. 451 4522003-11-08 Bernardo Innocenti <bernie@develer.com> 453 454 Backport from 3.4-branch. 455 456 2003-10-08 Giovanni Bajo <giovannibajo@libero.it> 457 458 * cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS. 459 * error.c (dump_function_decl): Use it to skip the dump of the 460 arguments. 461 (dump_expr): When dumping a declaration found within an 462 expression, always set TFF_NO_FUNCTION_ARGUMENTS 463 in the flags. 464 4652003-10-23 Jason Merrill <jason@redhat.com> 466 467 PR c++/12726 468 * tree.c (build_target_expr_with_type): Don't call force_rvalue 469 for CONSTRUCTORs. 470 4712003-10-16 Release Manager 472 473 * GCC 3.3.2 Released. 474 4752003-10-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 476 477 PR c++/12369 478 * decl.c (grokdeclarator): Handle TEMPLATE_ID_EXPR if friend 479 is a member of other class. 480 * friend.c (do_friend): Don't build TEMPLATE_DECL if friend 481 is a specialization of function template. 482 4832003-10-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 484 485 PR c++/7939 486 * typeck.c (comptypes): Don't ICE when its first argument is 487 error_mark_node. 488 (compparms): Reverse the arguments of same_type_p. 489 4902003-10-14 Jason Merrill <jason@redhat.com> 491 492 PR c++/11878 493 * tree.c (build_target_expr_with_type): Call force_rvalue for 494 classes with non-trivial copy ctors. 495 496 PR c++/11063 497 * typeck.c (build_modify_expr): Call convert rather than abort. 498 4992003-10-06 Mark Mitchell <mark@codesourcery.com> 500 501 PR c++/10147 502 * call.c (initialize_reference): Tweak error message. 503 504 PR c++/12337 505 * init.c (build_new_1): Make sure that the expression returned is 506 not an lvalue. 507 508 PR c++/12344, c++/12236, c++/8656 509 * decl.c (start_function): Do not ignore attributes embedded in a 510 function declarator. 511 5122003-10-04 Roger Sayle <roger@eyesopen.com> 513 514 PR c++/11409 515 * class.c (resolve_address_of_overloaded_function): When building 516 list of matching non-template function decls, ignore anticipated 517 declarations of undeclared or shadowed GCC builtins. 518 5192003-10-02 Mark Mitchell <mark@codesourcery.com> 520 521 PR c++/12486 522 * typeck.c (finish_class_member_access_expr): Issue diagnostic 523 on erroneous use of qualified name. 524 5252003-07-09 Mark Mitchell <mark@codesourcery.com> 526 527 * cp-tree.h (break_out_calls): Remove declaration. 528 * tree.c (break_out_calls): Remove. 529 * typeck.c (build_modify_expr): Avoid invalid sharing of trees. 530 5312003-09-18 Mark Mitchell <mark@codesourcery.com> 532 533 * class.c (resolve_address_of_overloaded_function): Replace 534 complain parameter with flags parameter. 535 (instantiate_type): Adjust accordingly. 536 5372003-09-17 Mark Mitchell <mark@codesourcery.com> 538 539 PR c++/11991 540 * typeck2.c (incomplete_type_diagnostic): Robustify. 541 542 PR c++/12266 543 * cp-tree.h (tsubst_flags_t): Add tf_conv. 544 * class.c (standard_conversion): Pass tf_conv to 545 instantiate_type. 546 (resolve_address_of_overloaded_function): Do not call mark_used 547 when just checking conversions. 548 5492003-09-14 Mark Mitchell <mark@codesourcery.com> 550 551 PR c++/3907 552 * cp-tree.h (innermost_scope_is_class_p): New function. 553 * class.c (maybe_note_name_used_in_class): Refine test for whether 554 or not we are in a class scope. 555 * decl.c (innermost_scope_is_class_p): Define. 556 5572003-09-14 Mark Mitchell <mark@codesourcery.com> 558 559 * class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for 560 an bit-field whose width exceeds that of its type. 561 5622003-09-09 Steven Bosscher <steven@gcc.gnu.org> 563 564 PR c++/11595 565 * decl.c (define_label): Remove unreachable timevar pop. 566 Always return the decl, even if the definition is invalid. 567 5682003-09-08 Mark Mitchell <mark@codesourcery.com> 569 570 PR c++/11786 571 * decl2.c (add_function): Do not complain about seeing the same 572 non-function twice. 573 5742003-09-08 Mark Mitchell <mark@codesourcery.com> 575 576 PR c++/5296 577 * pt.c (try_one_overload): Add addr_p parameter. 578 (resolve_overloaded_unification): Pass it. 579 5802003-09-07 Jason Merrill <jason@redhat.com> 581 582 PR c++/12181 583 * typeck.c (build_modify_expr): Don't always stabilize the lhs and 584 rhs. Do stabilize the lhs of a MODIFY_EXPR used on the lhs. 585 5862003-09-06 Mark Mitchell <mark@codesourcery.com> 587 588 PR c++/11867 589 * call.c (standard_conversion): Improve comments. 590 (perform_direct_initialization): Make sure we return an expression 591 of the correct type. 592 * typeck.c (build_static_cast): Check for ambiguity and 593 accessibility when performing conversions. 594 5952003-09-05 Mark Mitchell <mark@codesourcery.com> 596 597 PR c++/12163 598 * call.c (perform_direct_initialization): Correct logic for 599 direct-initialization of a class type. 600 601 PR c++/12146 602 * pt.c (lookup_template_function): Robustify. 603 6042003-09-04 Mark Mitchell <mark@codesourcery.com> 605 606 Revert this patch: 607 * class.c (include_empty_classes): Correct logic for ABI version 1. 608 6092003-09-03 Mark Mitchell <mark@codesourcery.com> 610 611 PR c++/12053 612 * class.c (include_empty_classes): Correct logic for ABI version 1. 613 6142003-09-01 Mark Mitchell <mark@codesourcery.com> 615 616 PR c++/12114 617 * cp-tree.h (initialize_reference): Change prototype. 618 * call.c (initialize_reference): Add cleanup parameter. 619 * decl.c (grok_reference_init): Likewise. 620 (check_initializer): Likewise. 621 (cp_finish_decl): Insert a CLEANUP_STMT if necessary. 622 (duplicate_decls): When replacing an anticipated builtin, do not 623 honor TREE_NOTHROW. 624 * typeck.c (convert_for_initialization): Correct call to 625 initialize_reference. 626 6272003-08-29 Mark Mitchell <mark@codesourcery.com> 628 629 PR c++/11928 630 * search.c (add_conversions): Avoid adding two conversion 631 operators for the same type. 632 6332003-08-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 634 635 * cp-tree.h (build_function_call_real): Remove unused parameter. 636 * typeck.c (build_function_call_real): Likewise. Caller changed. 637 * decl.c (binding_table_reverse_maybe_remap): Initialize variable. 638 6392003-08-19 Gabriel Dos Reis <gdr@integrable-solutions.net> 640 641 PR c++/5293 642 * call.c (initialize_reference): Improve diagnostic. 643 6442003-08-04 Release Manager 645 646 * GCC 3.3.1 Released. 647 6482003-08-04 Mark Mitchell <mark@codesourcery.com> 649 650 PR c++/11713 651 * search.c (setup_class_bindings): Handle conversion operators 652 specially. 653 6542003-07-24 Alexandre Oliva <aoliva@redhat.com> 655 656 PR c++/10796 657 * decl.c (finish_enum): Make sure the underlying integer type has 658 the same precision as some full integer type. Reverts part 659 2003-06-27's patch that didn't play any role in fixing the PR. 660 6612003-07-24 Mark Mitchell <mark@codesourcery.com> 662 663 * cp-tree.h (convert_to_base_statically): Declare. 664 * call.c (build_special_member_call): Convert INSTANCE to the base 665 type. 666 * class.c (convert_to_base_statically): New method. 667 * init.c (construct_virtual_base): Use it. 668 * method.c (do_build_assign_ref): Fix typo in comment. 669 6702003-07-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 671 672 PR c++/11513 673 * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): Use current_scope. 674 6752003-07-23 Mark Mitchell <mark@codesourcery.com> 676 677 PR c++/11645 678 * cp-tree.h (accessible_base_p): Declare. 679 * call.c (build_over_call): Use it. 680 * search.c (accessible_base_p): New function, split out from ... 681 (lookup_base): ... here. 682 6832003-07-23 Nathan Sidwell <nathan@codesourcery.com> 684 685 PR c++/11282 686 * decl.c: (reshape_init): Always advance *INITP. 687 6882003-07-19 Mark Mitchell <mark@codesourcery.com> 689 690 PR c++/11546 691 * pt.c (lookup_template_class): Treat TYPE_DECLs as TEMPLATE_DECLs 692 where appropriate. 693 6942003-07-14 Mark Mitchell <mark@codesourcery.com> 695 696 PR c++/7053 697 * pt.c (unregister_specialization): Rename to ... 698 (reregister_specialization): ... this. 699 (tsubst_friend_function): Use it. 700 (regenerate_decl_from_template): Likewise. 701 7022003-07-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 703 704 PR c++/11154 705 * pt.c (more_specialized_class): Add full_args parameter. 706 (most_specialized_class): Adjust calls to more_specialized_class. 707 * cp-tree.h (more_specialized_class): Adjust declaration. 708 7092003-07-13 Mark Mitchell <mark@codesourcery.com> 710 711 PR c++/11503 712 * cp-tree.h (DECL_SELF_REFERENCE_P): New macro. 713 (SET_DECL_SELF_REFERENCE_P): Likewise. 714 * class.c (build_self_reference): Use SET_DECL_SELF_REFERENCE_P. 715 * pt.c (tsubst_decl): Copy it. 716 * search.c (lookup_base): Use DECL_SELF_REFERENCE_P. 717 7182003-07-11 Danny Smith <dannysmith@users.sourceforge.net> 719 720 Backport from mainline. 721 722 2003-05-21 Danny Smith <dannysmith@users.sourceforge.net> 723 724 PR c++/9738 725 * decl.c (duplicate_decls): Re-invoke make_decl_rtl 726 if the old decl had instantiated DECL_RTL. 727 (Based on Richard Henderson 2003-05-13 patch to c-decl.c). 728 7292003-07-11 Mark Mitchell <mark@codesourcery.com> 730 731 PR c++/8164 732 * decl.c (duplicate_decls): Avoid mangling names unnecessarily. 733 7342003-07-10 Mark Mitchell <mark@codesourcery.com> 735 736 PR c++/10558 737 * parse.y (class_template_ok_as_expr): New variable. 738 (template_arg_1): New non-terminal. 739 (primary): Issue errors about uses of class templates as 740 expressions. 741 7422003-07-09 Mark Mitchell <mark@codesourcery.com> 743 744 PR c++/10032 745 * decl.c (cxx_init_decl_processing): With -pedantic, pedwarns are 746 still errors. 747 748 PR c++/10527 749 * error.c (decl_to_string): Do not print default argument 750 expressions. 751 7522003-07-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 753 754 PR c++/10849 755 * decl2.c (handle_class_head_apparent_template): New function. 756 * cp-tree.h (handle_class_head_apparent_template): Add declaration. 757 * parse.y (class_head_defn): Use it. 758 * search.c (type_access_control): Revert my 2003-05-25 change. 759 7602003-07-06 Mark Mitchell <mark@codesourcery.com> 761 762 PR c++/11236 763 * cvt.c (convert_to_void): Treat an overloaded function like 764 "((void) 0)" after issuing a diagnostic. 765 766 PR c++/11345 767 * search.c (lookup_base_r): Remove is_non_public and 768 within_current_scope parameters. Remove other dead code. 769 (lookup_base): Adjust call to lookup_base_r. 770 (adjust_result_of_qualified_name_lookup): Improve comment. 771 * semantics.c (finish_call_expr): Use maybe_dummy_object. 772 7732003-07-05 Mark Mitchell <mark@codesourcery.com> 774 775 PR c++/11431 776 * typeck.c (build_static_cast): Check for reference conversions 777 earlier. 778 7792003-07-01 Mark Mitchell <mark@codesourcery.com> 780 781 PR c++/6949 782 * decl2.c (grokfield): Create TEMPLATE_DECLs for methods in local 783 classes. 784 7852003-07-01 Mark Mitchell <mark@codesourcery.com> 786 787 * call.c (resolve_scoped_fn_name): Return error_mark_node for 788 erroneous cases. 789 790 PR c++/11137 791 * decl2.c (generate_ctor_or_dtor_function): Tolerate a 792 non-existant ssdf_decls array. 793 (finish_file): Call generator_ctor_or_dtor_function when there are 794 static constructors or destructors and no other static 795 initializations. 796 797 PR c++/11149 798 * call.c (resolve_scoped_fn_name): Check that the qualifying scope 799 is a class type. 800 8012003-07-01 Mark Mitchell <mark@codesourcery.com> 802 803 PR c++/9559 804 * decl2.c (grokfield): Do not build NOP_EXPRs around the 805 error_mark_node. 806 8072003-06-30 Giovanni Bajo <giovannibajo@libero.it> 808 809 * mangle.c (write_expression): Exit gracefully when trying to 810 mangle a CALL_EXPR. 811 8122003-06-30 Giovanni Bajo <giovannibajo@libero.it> 813 814 PR c++/11106 815 * error.c (dump_decl): Call dump_decl to dump the DECL_NAME for a 816 USING_DECL, instead of print_tree_identifier. 817 8182003-06-27 Mark Mitchell <mark@codesourcery.com> 819 820 PR c++/10468 821 * pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly. 822 823 PR c++/10796 824 * decl.c (finish_enum): Implement DR377. 825 826 * decl.c (cp_finish_decl): Don't make variables with reference 827 type readonly while they are being initialized. 828 8292003-06-26 Mark Mitchell <mark@codesourcery.com> 830 831 PR c++/11332 832 * typeck.c (build_static_cast): Avoid returning expressions with 833 reference type. 834 8352003-06-25 Mark Mitchell <mark@codesourcery.com> 836 837 PR c++/10990 838 * search.c (lookup_base_r): Rely on accessible_p, rather than 839 trying to emulate that logic here. 840 841 PR c++/10931 842 * call.c (convert_like): Pass issue_conversion_warnings. 843 (convert_like_with_context): Likewise. 844 (convert_like_real): Add issue_conversion_warnings parameter. 845 (perform_direct_initialization_if_possible): New function. 846 * cp-tree.h (perform_direct_initialization_if_possible): Declare it. 847 * typeck.c (check_for_casting_away_constness): New function. 848 (build_static_cast): Rewrite. 849 8502003-06-23 Mark Mitchell <mark@codesourcery.com> 851 852 PR c++/5754 853 * parse.y (structsp): Improve error handling of invalid nested 854 template classes. 855 8562003-06-23 Jakub Jelinek <jakub@redhat.com> 857 858 * mangle.c: Include ggc.h, gt-cp-mangle.h. 859 (mangle_conv_op_name_for_type): Use htab_create_ggc instead of 860 htab_create. 861 * config-lang.in (gtfiles): Add cp/mangle.c. 862 * Make-lang.in (gt-cp-mangle.h): Depend on s-gtype. 863 (cp/mangle.o): Depend on gt-cp-mangle.h. 864 8652003-06-23 Jakub Jelinek <jakub@redhat.com> 866 867 * mangle.c (hash_type): val is the TREE_LIST itself, not a pointer 868 to it. 869 8702003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 871 872 PR c++/10784 873 * call.c (joust): Warn about choosing conversion sequence only if 874 -Wconversion. 875 8762003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 877 878 PR c++/10864 879 * call.c (op_error): Tidy. 880 * error.c (dump_expr): Properly format 'T()' when T is an 881 aggregate type. 882 8832003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 884 885 PR c++/10915 886 * decl.c (grok_op_properties): Warn possible confusing conversion 887 only if -Wconversion. 888 8892003-06-20 Mark Mitchell <mark@codesourcery.com> 890 891 PR c++/10845 892 * pt.c (try_class_unification): Correct handling of member class 893 templates. 894 8952003-06-19 Mark Mitchell <mark@codesourcery.com> 896 897 PR c++/10939 898 * Make-lang.in (decl.o): Depend on input.h. 899 * decl.c (input.h): Include it. 900 (cp_finish_decl): Revert previous change: 901 2003-06-19 Mark Mitchell <mark@codesourcery.com> 902 * decl.c (cp_finish_decl): Remove support for RESULT_DECLs. 903 Don't check building_stmt_tree. 904 * pt.c (tsubst_decl): Do not try to substitute into non-dependent 905 functions. 906 907 PR c++/9649 908 * cp-tree.h (pushdecl_class_level): Change prototype. 909 (push_class_level_binding): Likewise. 910 * decl.c (add_binding): Reject duplicate static data members. 911 (pushdecl_class_level): Return a value indicating whether or not 912 the binding was valid. 913 (push_class_level_binding): Likewise. 914 * semantics.c (finish_member_declaration): Don't keep invalid 915 declarations. 916 9172003-06-19 Mark Mitchell <mark@codesourcery.com> 918 919 PR c++/11041 920 * call.c (initialize_reference): Do not use cp_finish_decl to emit 921 temporary variables. 922 * cp-tree.h (static_aggregates): Declare. 923 (pushdecl_top_level_and_finish): Likewise. 924 * decl.c (pushdecl_top_level_1): New function. 925 (pushdecl_top_level): Use it. 926 (pushdecl_top_level_and_finish): New function. 927 (initialize_local_var): Remove redundant code. 928 (cp_finish_decl): Remove support for RESULT_DECLs. Don't check 929 building_stmt_tree. 930 * decl.h (static_aggregates): Remove. 931 * decl2.c (get_guard): Use pushdecl_top_level_and_finish. 932 * rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish. 933 (tinfo_base_init): Likewise. 934 9352003-06-19 Matt Austern <austern@apple.com> 936 937 PR c++/11228 938 * init.c (build_zero_init): Assert that number of array elements 939 is an integer constant. 940 (build_default_init) Don't use build_zero_init for arrays with 941 variable number of elements. 942 9432003-06-17 Mark Mitchell <mark@codesourcery.com> 944 945 * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format 946 string again. 947 9482003-06-17 Mark Mitchell <mark@codesourcery.com> 949 950 * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format 951 string. 952 9532003-06-17 Jason Merrill <jason@redhat.com> 954 955 PR c++/10929 956 * decl.c (grokfndecl): Don't mark a function inline for 957 -finline-functions if it isn't defined. 958 9592003-06-17 Mark Mitchell <mark@codesourcery.com> 960 961 PR c++/10712 962 * class.c (handle_using_decl): Robustify. 963 964 PR c++/11105 965 * cp-tree.h (DECL_CONV_FN_TYPE): New method. 966 * decl.c (lookup_name_real): Backport conversion operator code 967 from mainline. 968 * mangle.c (struct globals): Remove internal_mangling_p. 969 (write_unqualified_name): Use DECL_CONV_FN_TYPE. 970 (write_template_parm): Don't write out the level number. 971 (conv_type_names): New variable. 972 (hash_type): New function. 973 (compare_type): Likewise. 974 (mangle_conv_op_name_for_type): Don't try to mangle conversion 975 operator names. 976 * search.c (lookup_conversion_operator): New function. 977 (lookup_fnfields_1): Use it. 978 9792003-06-12 Mark Mitchell <mark@codesourcery.com> 980 981 PR c++/10635 982 * typeck.c (build_c_cast): Check that the destination type is 983 complete. 984 9852003-06-10 Jason Merrill <jason@redhat.com> 986 987 PR c++/10968 988 * pt.c (mark_decl_instantiated): Clear DECL_COMDAT. 989 9902003-06-09 Zack Weinberg <zack@codesourcery.com> 991 992 PR 8861 993 * mangle.c (write_real_cst): New function. Implement 994 ABI-compliant mangling of floating-point literals when 995 -fabi-version>=2; provide backward compatibility with 3.3 when 996 -fabi-version=1 (with warning). Clarify commentary. 997 (write_template_arg_literal): Use write_real_cst. 998 9992003-06-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1000 1001 PR c++/11039 1002 * decl2.c (handle_class_head): Remove implicitness in typename 1003 appeared as elaborated type specifier in declaration. 1004 10052003-06-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1006 1007 PR c++/10940 1008 * pt.c (check_explicit_specialization): Check for 'static' 1009 earlier. 1010 10112003-05-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1012 1013 PR c++/10956 1014 * pt.c (instantiate_decl): Don't use full template arguments if 1015 we are dealing with specializations. 1016 10172003-05-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 1018 1019 * decl.c (ENABLE_CHECKING_SCOPES): New macro. 1020 (binding_depth): Unconditionally define. 1021 (is_class_level): Likewise. 1022 (indent): Likewise. Take an indenting parameter. 1023 (push_binding_level): Remove conditional definittion. 1024 (pop_binding_level): Likewise. 1025 (suspend_binding_level): Likewise. 1026 (resume_binding_level): Likewise. 1027 (pushlevel): Likewise. 1028 (pushlevel_class): Likewise. 1029 (poplevel_class): Likewise. 1030 (pop_everything): Likewise. 1031 10322003-05-27 Gabriel Dos Reis <gdr@integrable-solutions.net> 1033 1034 * decl.c (global_scope_p): New macro. 1035 (pop_binding_level): Use it. 1036 (suspend_binding_level): Likewise. 1037 (global_bindings_p): Likewise. 1038 (print_other_binding_stack): Likewise. 1039 (print_binding_stack): Likewise. 1040 (maybe_push_to_top_level): Likewise. 1041 (pushdecl_namespace_level): Likewise. 1042 (start_decl): Likewise. 1043 (cp_finish_decl): Likewise. 1044 (start_function): Likewise. 1045 (cxx_init_decl_processing): Don't refer to global_binding_level. 1046 (global_binding_level): Remove. 1047 10482003-05-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1049 1050 PR c++/10849 1051 * search.c (type_access_control): Don't check access when 1052 processing_specialization. 1053 10542003-05-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1055 1056 PR c++/10682 1057 * pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to 1058 check for implicitly created typedef to an enum. 1059 10602003-05-20 Gabriel Dos Reis <gdr@integrable-solutions.net> 1061 1062 * decl.c (free_binding_entry): Fix thinko. 1063 10642003-05-19 Gabriel Dos Reis <gdr@integrable-solutions.net> 1065 1066 * cp-tree.h (struct binding_entry_s): New datatype. 1067 (binding_table): Declare. 1068 (binding_entry): Likewise. 1069 (bt_foreach_proc): Likewise. 1070 (binding_table_foreach): Likewise. 1071 (binding_table_find): Likewise. 1072 (cxx_remember_type_decls): Likewise. 1073 (CLASSTYPE_TAGS): Remove. 1074 (CLASSTYPE_NESTED_UDTS): New macro. 1075 (struct lang_type_class): Remove tags field. Add nested_types. 1076 * decl.c (ENTRY_INDEX): New macro. 1077 (free_binding_entry): New free list. 1078 (binding_entry_make): New function. 1079 (binding_entry_free): Likewise. 1080 (struct binding_table_s): New datatype. 1081 (SCOPE_DEFAULT_HT_SIZE): New macro. 1082 (CLASS_SCOPE_HT_SIZE): Likewise. 1083 (NAMESPACE_ORDINARY_HT_SIZE): Likewise. 1084 (NAMESPACE_STD_HT_SIZE): Likewise. 1085 (GLOBAL_SCOPE_HT_SIZE): Likewise. 1086 (binding_table_construct): New function. 1087 (binding_table_free): Likewise. 1088 (binding_table_new): Likewise. 1089 (binding_table_expand): Likewise. 1090 (binding_table_insert): Likewise. 1091 (binding_table_find): Likewise. 1092 (binding_table_find_anon_type): Likewise. 1093 (binding_table_reverse_maybe_remap): Likewise. 1094 (binding_table_remove_anonymous_types): Likewise. 1095 (binding_table_foreach): Likewise. 1096 (struct cp_binding_level): Remove tags field. Add type_decls. 1097 (pop_binding_level): Free binding_entries if possible. 1098 (kept_level_p): Tidy. 1099 (poplevel): Remove unused variable tags. 1100 (bt_print_entry): New function. 1101 (print_binding_level): Use it. 1102 (push_namespace): Construct binding table. 1103 (maybe_process_template_type_declaration): Tidy. 1104 (pushtag): Likewise. 1105 (clear_anon_tags): Likewise. 1106 (cxx_remember_type_decls): New function. 1107 (lookup_tag): Tidy. 1108 (lookup_tag_reverse): Likewise. 1109 (cxx_init_decl_processing): Construct binding_table for the global 1110 scope. 1111 (store_parm_decls): Remove pointless code. 1112 (gettags): Remove. 1113 (storetags): Likewise. 1114 * class.c (unreverse_member_declarations): Don't touch 1115 CLASSTYPE_TAGS. 1116 (pushclass): Remember CLASSTYPE_NESTED_UTDS. 1117 * pt.c (instantiate_class_template): Remove reference to 1118 CLASSTYPE_TAGS. Remeber CLASSTYPE_NESTED_UTDS. 1119 (bt_instantiate_type_proc): New function. 1120 (do_type_instantiation): Use it. 1121 * search.c (lookup_field_r): Use binding_table_find. 1122 * semantics.c (begin_class_definition): Remove reference to 1123 CLASSTYPE_TAGS. Nullify CLASSTYPE_NESTED_UTDS. 1124 11252003-05-15 Jason Merrill <jason@redhat.com> 1126 1127 PR c++/5388 1128 * call.c (conditional_conversion): Don't consider implicit 1129 conversions if T2 is a base of T1. 1130 * cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean. 1131 (ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 1132 1133 PR c++/10661 1134 * pt.c (instantiate_class_template): Also instantiate our 1135 enclosing class. 1136 11372003-05-13 Release Manager 1138 1139 * GCC 3.3 Released. 1140 11412003-05-02 Richard Henderson <rth@redhat.com> 1142 1143 PR c++/10570 1144 * cfns.gperf: Comment out POSIX thread cancellation points, 1145 plus abort and raise. 1146 * cfns.h: Regenerate. 1147 11482003-05-01 Mark Mitchell <mark@codesourcery.com> 1149 1150 * decl2.c (comdat_linkage): Don't externalize explicit 1151 instantiations. 1152 11532003-04-29 Mark Mitchell <mark@codesourcery.com> 1154 1155 PR c++/10551 1156 * pt.c (mark_decl_instantiated): Defer all explicit instantiations 1157 that have not yet been written out. 1158 1159 PR c++/10549 1160 * class.c (layout_class_type): Mark overlong bitfields as having 1161 the maximum size permitted by their type, after layout. 1162 11632003-04-29 Mark Mitchell <mark@codesourcery.com> 1164 1165 PR c++/10527 1166 * error.c (dump_expr): Correctly handling of NEW_EXPR.4 1167 11682003-04-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1169 1170 * lang-options.h: Fix typo. 1171 11722003-04-29 Mark Mitchell <mark@codesourcery.com> 1173 1174 PR c++/10515 1175 * cp-tree.h (lookup_field_1): Declare it. 1176 * search.c (lookup_field_1): Make it public. 1177 * decl.c (reshape_init): Handle designated initializers. 1178 11792003-04-29 Mark Mitchell <mark@codesourcery.com> 1180 1181 * decl.c (maybe_commonize_var): Further tweak support for systems 1182 without weak symbols. 1183 11842003-04-27 Mark Mitchell <mark@codesourcery.com> 1185 1186 * decl.c (maybe_commonize_var): Fix thinko in last patch. 1187 1188 PR c++/10506 1189 * method.c (use_thunk): Decrement immediate_size_expand. 1190 1191 PR c++/10503 1192 * cp-tree.h (DECL_VAR_MARKED_P): New macro. 1193 (DECL_MAYBE_TEMPLATE): Remove. 1194 * class.c (fixed_type_or_null): Avoid infinite recursion. 1195 11962003-04-27 Mark Mitchell <mark@codesourcery.com> 1197 1198 * decl.c (maybe_commonize_var): Make the code match the comments. 1199 * pt.c (instantiate_decl): Move call to import_export_decl. 1200 12012003-04-25 Mark Mitchell <mark@codesourcery.com> 1202 1203 * decl2.c (finish_file): Don't call import_export_decl for 1204 functions that are not defined. 1205 (handle_class_head): Robustify. 1206 * pt.c (instantiate_decl): Do not call cp_finish_decl for 1207 variables that are not defined. 1208 12092003-04-23 Mark Mitchell <mark@codesourcery.com> 1210 1211 PR c++/10471 1212 * call.c (build_cxx_call): Robustify. 1213 12142003-04-23 Mark Mitchell <mark@codesourcery.com> 1215 1216 PR c++/10451 1217 * decl.c (grokdeclarator): Correct logic for "mutable" errors. 1218 12192003-04-22 Mark Mitchell <mark@codesourcery.com> 1220 1221 PR c++/10446 1222 * search.c (lookup_fnfields_1): Handle empty slots in the method 1223 vector. 1224 12252003-04-22 Mark Mitchell <mark@codesourcery.com> 1226 1227 PR c++/10428 1228 * decl.c (check_elaborated_type_specifier): New function, split 1229 out from ... 1230 (xref_tag): ... here. Use the new function in more places. 1231 12322003-04-21 Mark Mitchell <mark@codesourcery.com> 1233 1234 * call.c (build_over_call): Use build_cxx_call. 1235 (build_cxx_call): New method, split out of build_over_call. 1236 * cp-tree.h (language_function): Add can_throw. 1237 (build_cxx_call): Declare it. 1238 * decl.c (finish_function): If a function does not contain any 1239 calls to functions that can throw an exception, indicate that 1240 fact. 1241 * decl2.c (mark_used): Do not defer the instantiation of 1242 functions, if the current function does not throw. 1243 * optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones. 1244 * pt.c (instantiate_decl): Make sure import_export_decl is called 1245 before emitting things. 1246 * rtti.c (throw_bad_cast): Use build_cxx_call. 1247 (build_dynamic_cast_1): Likewise. 1248 * typeck.c (build_function_call): Likewise. 1249 12502003-04-21 Nathan Sidwell <nathan@codesourcery.com> 1251 1252 PR c++/9881 1253 * typeck.c (build_unary_op): Fold all COMPONENT_REF addr 1254 expressions. Reverts my 2002-08-08 patch. 1255 12562003-04-20 Nathan Sidwell <nathan@codesourcery.com> 1257 1258 PR c++/10405 1259 * search.c (lookup_field_1): Final scan goes backwards for 1260 types, forwards for non-types. 1261 12622003-04-15 Jason Merrill <jason@redhat.com> 1263 1264 * decl2.c (mark_used): Don't instantiate anything if 1265 skip_evaluation. 1266 12672003-04-15 Mark Mitchell <mark@codesourcery.com> 1268 1269 * init.c (build_new_1): Use nullexp instead of null_node to avoid 1270 unwanted macro expansion. 1271 12722003-04-14 Ziemowit Laski <zlaski@apple.com> 1273 1274 * tree.c (build_cplus_array_type_1): Do not call 1275 uses_template_parms() on a NULL index_type. 1276 12772003-04-14 Andreas Schwab <schwab@suse.de> 1278 1279 * init.c (build_new_1): Test use_cookie instead of cookie_size to 1280 avoid code-gen bug on ia64. 1281 12822003-04-13 Mark Mitchell <mark@codesourcery.com> 1283 1284 PR c++/10300 1285 * init.c (build_new_1): Correct logic for checking whether the 1286 return value from the allocation function was zero. 1287 12882003-03-31 Mark Mitchell <mark@codesourcery.com> 1289 1290 PR c++/10278 1291 * spew.c (yyerror): Avoid crashing at all costs. 1292 12932003-03-31 Jason Merrill <jason@redhat.com> 1294 1295 PR java/10145 1296 * class.c (check_field_decl): Don't set DECL_ALIGN. 1297 12982003-03-30 Mark Mitchell <mark@codesourcery.com> 1299 1300 PR c++/7647 1301 * search.c (lookup_field_1): Add want_type parameter. 1302 (lookup_field_r): Adjust call to lookup_field_1. 1303 13042003-03-28 Jason Merrill <jason@redhat.com> 1305 1306 PR c++/10245 1307 * cvt.c (force_rvalue): New fn. 1308 * call.c (build_conditional_expr): Use it. 1309 * cp-tree.h: Declare it. 1310 13112003-03-28 Nathan Sidwell <nathan@codesourcery.com> 1312 1313 PR c++/10047 1314 * decl2.c (finish_file): Don't warn about explicitly instantiated 1315 inline decls. 1316 13172003-03-27 Nathan Sidwell <nathan@codesourcery.com> 1318 1319 PR c++/10158 1320 * spew.c (snarf_method):Set DECL_INITIALIZED_IN_CLASS for 1321 members. 1322 * pt.c (instantiate_decl): Only reduce the template args for 1323 friends that are not defined in class. 1324 13252003-03-24 Nathan Sidwell <nathan@codesourcery.com> 1326 1327 PR c++/9898, PR c++/383, DR 322 1328 * pt.c (maybe_adjust_types_for_deduction) [DEDUCE_CONV]: Look 1329 through reference types on both PARM and ARG. 1330 1331 PR c++/10199 1332 * call.c (build_method_call): Deal with LOOKUP_EXPR. 1333 * semantics.c (finish_object_call_expr): Use build_method_call 1334 when in a template decl. 1335 13362003-03-23 Mark Mitchell <mark@codesourcery.com> 1337 1338 PR c++/7086 1339 * semantics.c (genrtl_named_return_value): Adjust calls to 1340 put_var_into_stack. 1341 * typeck.c (cxx_mark_addressable): Likewise. 1342 13432003-03-20 Mark Mitchell <mark@codesourcery.com> 1344 1345 PR c++/6412 1346 * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope 1347 friends. 1348 * cp/pt.c (instantiate_class_template): Fix formatting. 1349 13502003-03-19 Jason Merrill <jason@redhat.com> 1351 1352 PR c++/8316, c++/9315, c++/10136 1353 * call.c (joust): Improve wording. 1354 13552003-03-18 Roger Sayle <roger@eyesopen.com> 1356 1357 PR c++/10031 1358 * decl.c (duplicate_decls): Use the new type when prototyping 1359 anticipated decls, even when the types match. This defines the 1360 exception list for the built-in function. 1361 13622003-03-17 Jason Merrill <jason@redhat.com> 1363 1364 PR c++/10091 1365 * typeck.c (build_class_member_access_expr): Compare 1366 TYPE_MAIN_VARIANTs. 1367 1368 * decl.c (finish_function): Don't skip a block. 1369 1370 PR c++/9993 1371 * decl.c (finish_function): Only allow the NRVO to use variables 1372 declared at function scope. 1373 13742003-03-17 Nathan Sidwell <nathan@codesourcery.com> 1375 1376 PR c++/9629 1377 * cp-tree.h (struct language_function): Add in_base_initializer. 1378 (in_base_initializer): define it. 1379 (expand_member_init): Remove INIT param. 1380 * init.c (expand_member_init): Remove INIT param, return the member. 1381 (emit_mem_initializers): Set in_base_initializer. 1382 * class.c (build_base_path): Check in_base_initializer. 1383 * parse.y (begin_member_init): New reduction. 1384 (member_init): Use it. 1385 * pt.c (tsubst_initializer_list): Set in_base_initializer. 1386 13872003-03-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1388 1389 PR c++/6440 1390 * pt.c (maybe_process_partial_specialization): Handle 1391 member class template when enclosing class template is 1392 explicit specialized. 1393 (most_general_template): Stop looking when DECL is already 1394 specialized. 1395 13962003-03-13 Jason Merrill <jason@redhat.com> 1397 1398 PR c++/9420 1399 * search.c (lookup_conversions): Call complete_type here. 1400 * call.c (implicit_conversion): Not here. 1401 14022003-03-13 Jason Merrill <jason@redhat.com> 1403 1404 PR c++/9336 1405 * decl2.c (lookup_arg_dependent): Handle error_mark_node. 1406 14072003-03-13 Mark Mitchell <mark@codesourcery.com> 1408 1409 * decl2.c (do_nonmember_using_decl): Correct handling of 1410 simultaneous type/non-type bindings. 1411 14122003-03-13 Mark Mitchell <mark@codesourcery.com> 1413 1414 * call.c (initialize_reference): Remove bogus assertion. 1415 * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09. 1416 14172003-03-12 Andrew Lewycky <andrew@mxc.ca> 1418 1419 PR c++/7050 1420 * expr.c (cxx_expand_expr): Return const0_rtx for throw 1421 expressions. 1422 14232003-03-11 Mark Mitchell <mark@codesourcery.com> 1424 1425 PR c++/9474 1426 * decl2.c (do_nonmember_using_decl): Do not call duplicate decls 1427 to merge old and new declarations. 1428 14292003-03-11 Mark Mitchell <mark@codesourcery.com> 1430 1431 PR c++/9924 1432 * decl2.c (do_nonmember_using_decl): Ignore anticipated builtins. 1433 14342003-03-11 Jason Merrill <jason@redhat.com> 1435 1436 PR c++/9820 1437 * search.c (lookup_member): Fix handling of functions in a class 1438 being defined. 1439 14402003-03-11 Mark Mitchell <mark@codesourcery.com> 1441 1442 PR c++/8700 1443 * call.c (print_z_candidates): Avoid printing duplicates. 1444 14452003-03-11 Jason Merrill <jason@redhat.com> 1446 1447 PR c++/8660 1448 * decl2.c (check_classfn): A member template only matches a 1449 member template. 1450 14512003-03-10 Devang Patel <dpatel@apple.com> 1452 1453 PR c++/9394 1454 * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWITCH_TAKES_ARG. 1455 14562003-03-10 Jason Merrill <jason@redhat.com> 1457 1458 PR c++/9798 1459 * decl.c (push_using_directive): Push before recursing. 1460 1461 PR c++/9868 1462 * call.c (resolve_scoped_fn_name): Handle the case of a function 1463 pointer member. 1464 * init.c (build_offset_ref): Handle getting a FIELD_DECL for NAME. 1465 1466 * decl2.c (build_offset_ref_call_from_tree): Only mess with 'this' 1467 argument in the pointer-to-member case. 1468 14692003-03-09 Mark Mitchell <mark@codesourcery.com> 1470 1471 PR c++/9373 1472 * cp-lang.c (cxx_get_alias_set): Use alias set zero for 1473 pointers to member functions. 1474 1475 PR c++/8534 1476 * decl.c (build_ptrmemfunc_type): Do not allow default arugments 1477 in pointer-to-member-function types. 1478 14792003-03-09 Mark Mitchell <mark@codesourcery.com> 1480 1481 PR c++/9912 1482 * cp-tree.h (is_ancestor): New function. 1483 * decl2.c (is_namespace_ancestor): Rename to ... 1484 (is_ancestor): ... this. 1485 (namespace_ancestor): Use it. 1486 (set_decl_namespace): Likewise. 1487 (handle_class_head): Check for invalid class definitions. 1488 14892003-03-10 Gabriel Dos Reis <gdr@integrable-solutions.net> 1490 1491 Compile-time improvement: 2/n. 1492 * cp-tree.h (struct cxx_binding): New datatype; 1493 (struct lang_identifier): Use it. 1494 (LOCAL_BINDING_P): Adjust definition. 1495 (INHERITED_VALUE_BINDING_P): Likewise. 1496 (BINDING_SCOPE): Likewise. 1497 (BINDING_HAS_LEVEL_P): Likewise. 1498 (BINDING_VALUE): Likewise. 1499 (BINDING_TYPE): Likewise. 1500 (IDENTIFIER_VALUE): Likewise. 1501 (struct tree_binding): Remove. 1502 (TS_CP_BINDING): Likewise. 1503 ((union lang_tree_node): Remove field "binding". 1504 (cxx_binding_clear): New macro. 1505 (binding_for_name): Adjust return type. 1506 (qualified_lookup_using_namespace): Adjust prototype. 1507 (lookup_using_namespace): Adjust prototype. 1508 (cxx_scope_find_binding_for_name): Declare. 1509 * cp-tree.def: Remove CPLUS_BINDING definition. 1510 * parse.y (parse_scoped_id): Don't type-abuse of 'id'. Allocate 1511 temporary cxx_binding on stack. Simplify. 1512 * decl.c (push_binding): Adjust local variable type. 1513 (add_binding): Likewise. 1514 (push_class_binding): Likewise. 1515 (pop_binding): Likewise. 1516 (poplevel): Likewise. 1517 (poplevel_class): Likewise. 1518 (free_bindings): Adjust type. 1519 (find_binding): Adjust return type, add a third parameter. Remove 1520 non-useful assertion now that we use static typing. 1521 (cxx_scope_find_binding_for_name): New function. 1522 (binding_for_name): Use it. Adjust local variable type. Simplify. 1523 (namespace_binding): Simplify. 1524 (set_namespace_binding): Likewise. 1525 (set_identifier_type_value_with_scope): Adjust local variable type. 1526 (lookup_tag): Don't type-abuse of local variable 'old'. 1527 (lookup_namespace_name): Likewise. Allocate binding on stack. 1528 (select_decl): Adjust prototype. 1529 (unqualified_namespace_lookup): Allocate binding on stack. 1530 Don't type-abuse of local variable 'val'. 1531 (lookup_name_real): Likewise. 1532 (maybe_inject_for_scope_var): Adjust local variable type. 1533 (cp_tree_node_structure): Remove CPLUS_BINDING case label. 1534 (namespace_binding): Adjust logic, simplify. 1535 (BINDING_LEVEL): Adjust definition. 1536 (push_class_level_binding): Adjust local variable type. 1537 (struct cxx_saved_binding): Adjust field 'binding' type. 1538 * decl2.c (ambiguous_decl): Adjust prototype. 1539 (lookup_using_namespace): Adjust local variable type. 1540 (qualified_lookup_using_namespace): Catch type error and correct 1541 ensueing logic error. 1542 (do_nonmember_using_decl): Adjust local variable type. Allocate 1543 temporary cxx_binding on stack. 1544 (do_toplevel_using_decl): Adjust local variable type. 1545 * ptree.c (cxx_print_cxx_binding): New function. 1546 (cxx_print_identifier): Use it. 1547 (cxx_print_xnode): Delete CPLUS_BINDING case label. 1548 15492003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1550 1551 PR c++/9970 1552 * decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual 1553 functions. 1554 15552003-03-07 Matt Austern <austern@apple.com> 1556 1557 * cp-tree.h (struct lang_type_class): add field for key method 1558 (cp_global_trees): rename dynamic_classes to keyed_classes 1559 (key_method): add definition 1560 * class.c (finish_struct_1): compute class's key method, and add 1561 the class to keyed_classes list if there is no key method. 1562 * decl.c (finish_function): add class to keyed_classes list if we 1563 see a definition of the class's key method. 1564 * pt.c (instantiate_class_template): add template specialization 1565 of a dynamic class to keyed_classes list. 1566 * decl2.c (key_method): remove 1567 (finish_file): iterate only through keyed_classes list when 1568 deciding whether to emit vtables, remove class from its list after 1569 we do the emission. 1570 15712003-03-08 Mark Mitchell <mark@codesourcery.com> 1572 1573 PR c++/9809 1574 * call.c (add_function_candidate): Skip builtin fuctions that have 1575 not yet been declared. 1576 15772003-03-07 Mark Mitchell <mark@codesourcery.com> 1578 1579 * call.c (reference_binding): Remove REF_IS_VAR parameter. 1580 (implicit_conversion): Adjust call to reference_binding. 1581 (make_temporary_var_for_ref_to_type): Add TYPE parameter. 1582 (initialize_reference): Adjust handling for references bound to 1583 rvalues. 1584 * cp-tree.h (make_temporary_var_for_ref_to_temp): Change 1585 prototype. 1586 (real_non_cast_lvalue_p): New method. 1587 * cvt.c (build_up_reference): Adjust use of 1588 make_temporary_var_for_ref_to_temp. 1589 * tree.c (real_non_cast_lvalue_p): New method. 1590 15912003-03-06 Mark Mitchell <mark@codesourcery.com> 1592 1593 * call.c (merge_conversion_sequences): New function. 1594 (build_conv): Set ICS_USER_FLAG for USER_CONVs. 1595 (convert_class_to_reference): Correct handling of second 1596 standard conversion sequence in a user-defined conversion 1597 sequence. 1598 (build_user_type_conversion_1): Use merge_conversion_sequences. 1599 * cp-tree.def: Add comments for CONV nodes. 1600 16012003-03-06 Mark Mitchell <mark@codesourcery.com> 1602 1603 PR c++/9965 1604 * call.c (reference_binding): Add ref_is_var parameter. 1605 (implicit_conversion): Adjust call to reference_binding. 1606 (initialize_reference): Likewise. 1607 1608 PR c++/9400 1609 * decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL 1610 PARM_DECLs. 1611 16122003-03-06 Mark Mitchell <mark@codesourcery.com> 1613 1614 PR c++/9791 1615 * class.c (get_basefndecls): Use lookup_fnfields_1. 1616 16172003-03-02 Matt Austern <austern@apple.com> 1618 1619 * decl.c (cp_binding_level): Add static_decls varray member. 1620 (add_decl_to_level): Add static/inline namespace scope 1621 declarations to static_decls array. 1622 (wrapup_global_for_namespace): Pass static_decls only, instead of 1623 all decls, to wrapup_global_declarations/check_global_declarations. 1624 (push_namespace): Initialize static_decls for ordinary namespaces. 1625 (cxx_init_decl_processing): Initialize static_decls for global 1626 namespace. 1627 16282003-03-05 Mark Mitchell <mark@codesourcery.com> 1629 1630 * class.c (end_of_class): Correct thinko. 1631 16322003-03-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 1633 1634 * cp-tree.h (cxx_saved_binding): Declare. 1635 (struct saved_scope): Adjust type of field 'old_binding'. 1636 * decl.c (cxx_saved_binding_make): New macro. 1637 (struct cxx_saved_binding): Define. 1638 (store_bindings): Adjust prototype. Use cxx_saved_binding to save 1639 C++ bindings. 1640 (maybe_push_to_top_level): Adjust local variable type. 1641 (pop_from_top_level): Likewise. 1642 16432003-03-03 Jason Merrill <jason@redhat.com> 1644 1645 * decl.c (finish_enum): Do set the type in a template. Simplify. 1646 * pt.c (tsubst_enum, tsubst_copy): Revert last patch. 1647 16482003-03-03 Mark Mitchell <mark@codesourcery.com> 1649 1650 PR c++/9878 1651 * call.c (convert_class_to_reference): Correct conversion 1652 sequences. 1653 (reference_binding): Add ref_bound_directly_to_rvalue_p parameter. 1654 (implicit_conversion): Adjust call to reference_binding. 1655 (add_candidate): Change type of candidates parameter. 1656 (add_function_candidate): Likewise. 1657 (add_conv_candidate): Likewise. 1658 (build_builtin_candidate): Likewise. 1659 (add_builtin_candidate): Likewise. 1660 (add_builtin_candidates): Likewise. 1661 (add_template_candidate_real): Likewise. 1662 (add_template_candidate): Likewise. 1663 (add_template_conv_candidate): Likewise. 1664 (build_user_type_conversion_1): Adjust accordingly. 1665 (build_object_call): Likewise. 1666 (build_conditional_expr): Likewise. 1667 (add_candidates): Likewise. 1668 (build_new_op): Likewise. 1669 (convert_like_real): Use USER_CONV_CAND. Use build_nop. 1670 (build_new_method_call): Adjust calls to add_function_candidate. 1671 (make_temporary_var_for_ref_to_temp): New function. 1672 (initialize_reference): Add decl parameter. 1673 * class.c (build_rtti_vtbl_entries): Use build_address and 1674 build_nop. 1675 * cp-tree.h (initialize_reference): Change prototype. 1676 (make_temporary_var_for_ref_to_temp): New function. 1677 (build_type_conversion): Change prototype. 1678 (build_address): New function. 1679 (build_nop): Likewise. 1680 * cvt.c (cp_convert_to_pointer): Adjust call to 1681 build_type_conversion. Avoid indicating redundant NOP_EXPRs. 1682 Use build_nop. 1683 (convert_to_pointer_force): Use build_nop. 1684 (build_up_reference): Use make_temporary_var_for_ref_to_temp. 1685 (convert_to_reference): Adjust call to build_type_conversion. 1686 (ocp_convert): Likewise. 1687 (build_type_conversion): Remove for_sure parameter. 1688 * decl.c (grok_reference_init): Use initialize_reference. 1689 * typeck.c (build_address): New function. 1690 (build_nop): Likewise. 1691 (build_unary_op): Use them. 1692 (build_ptrmemfunc): Tidy slightly. 1693 (convert_for_initialization): Adjust call to 1694 initialize_reference. 1695 * typeck2.c (store_init_value): Remove #if 0'd code. 1696 16972003-03-02 Ashif Harji <asharji@uwaterloo.ca> 1698 1699 * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to 1700 invoke an external cpp during compilation. 1701 17022003-02-28 Mark Mitchell <mark@codesourcery.com> 1703 1704 PR c++/9892 1705 * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when 1706 instantiating it. 1707 17082003-02-28 Mark Mitchell <mark@codesourcery.com> 1709 1710 PR c++/9879 1711 * cp-tree.h (build_zero_init): Add parameter. 1712 * decl.c (cp_finish_decl): Adjust call. 1713 * init.c (build_zero_init): Add nelts parameter. Adjust recursive 1714 calls. 1715 (build_default_init): Add nelts parameter. Adjust calls to 1716 build_zero_init. 1717 (build_new_1): Adjust call to build_default_init. 1718 * typeck2.c (process_init_constructor): Adjust call to build_zero_init. 1719 17202003-02-27 Devang Patel <dpatel@apple.com> 1721 1722 * decl.c (finish_enum): Merge two 'for' loops. Copy value node if required. 1723 Postpone enum setting for template decls. 1724 (build_enumerator): Delay copying value node until finish_enum (). Remove 1725 #if 0'ed code. 1726 * pt.c (tsubst_enum): Set TREE_TYPE and copy value node. 1727 (tsubst_copy): Add check for enum type. 1728 1729 17302003-02-25 Mark Mitchell <mark@codesourcery.com> 1731 1732 PR c++/9829 1733 * decl.c (grokdeclarator): Handle SCOPE_REFs whose second argument 1734 is a NAMESPACE_DECL. 1735 17362003-02-24 Gabriel Dos Reis <gdr@integrable-solutions.net> 1737 1738 * decl.c (add_binding): Time TV_NAME_LOOKUP. 1739 (push_class_binding): Likewise. 1740 (set_namespace_binding): Likewise. 1741 17422003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1743 1744 PR c++/9602 1745 * typeck2.c (abstract_virtuals_error): Don't check when we 1746 are processing a template. 1747 17482003-02-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1749 1750 PR c++/7982 1751 * decl.c (warn_about_implicit_typename_lookup): Handle TYPEOF_TYPE. 1752 17532003-02-21 Mark Mitchell <mark@codesourcery.com> 1754 1755 PR c++/9749 1756 * decl.c (grokdeclarator): Do not allow parameters with variably 1757 modified types. 1758 1759 PR c++/9727 1760 * decl2.c (push_scope): Don't pushclass for non-class types. 1761 (pop_scope): Don't popclass either. 1762 1763 PR c++/8906 1764 * decl.c (lookup_name_real): Use IMPLICIT_TYPENAME_P. 1765 * decl2.c (handle_class_head): Check it. 1766 1767 PR c++/8724 1768 * call.c (build_method_call): Make sure that the type destroyed in 1769 an explicit destructor call is complete. 1770 17712003-02-20 Mark Mitchell <mark@codesourcery.com> 1772 1773 PR c++/9729 1774 * mangle.c (mangle_conv_op_name_for_type): Issue an error message 1775 when the G++ 3.2 ABI prevents correct compilation. 1776 17772003-02-18 Mark Mitchell <mark@codesourcery.com> 1778 1779 PR c++/9704 1780 * class.c (layout_class_type): In the 3.2 ABI, take into account 1781 trailing bit fields when computing CLASSTYPE_SIZE_UNIT. 1782 17832003-02-18 Matt Austern <austern@apple.com> 1784 1785 * cp/cp-lang.c: Change lang hooks so that final_write_globals does 1786 nothing for C++. 1787 * cp/decl.c (wrapup_globals_for_namespace): Remove special 1788 handling of global namespace. 1789 17902003-02-18 Jason Merrill <jason@redhat.com> 1791 1792 PR c++/9623 1793 * decl.c (reshape_init): Don't mess with initializer labels. 1794 17952003-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1796 1797 PR c++/9459 1798 * error.c (dump_type_prefix): Handle TYPEOF_TYPE. 1799 (dump_type_suffix): Likewise. 1800 18012003-02-17 Michael Elizabeth Chastain <mec@shout.net> 1802 1803 PR debug/9717 1804 * class.c (build_base_field): Mark fields for base classes with 1805 DECL_IGNORED_P. 1806 18072003-02-13 Andrew Pinski <pinskia@physics.uc.edu> 1808 1809 * decl.c: (define_label): Fix warning for return 0 instead of NULL. 1810 18112003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 1812 1813 * Make-lang.in (cp/decl2.o): Add dependency on timevar.h 1814 * decl2.c: Include "timevar.h". 1815 (namespace_ancestor): Time name lookup. 1816 (add_using_namespace): Likewise. 1817 (lookup_using_namespace): Likewise. 1818 (qualified_lookup_using_namespace): Likewise. 1819 (decl_namespace): Likewise. 1820 (lookup_arg_dependent): Likewise. 1821 * lex.c (do_identifier): Likewise. 1822 (do_scoped_id): Likewise. 1823 * pt.c (lookup_template_class): Likewise. 1824 18252003-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net> 1826 1827 * decl.c (define_label): Don't forget to pop TV_NAME_LOOKUP. 1828 18292003-02-11 Gabriel Dos Reis <gdr@integrable-solutions.net> 1830 1831 * decl.c: Include "timevar.h". 1832 (poplevel): Time name lookup. 1833 (find_binding): Likewise. 1834 (push_namespace): Likewise. 1835 (pop_nested_namespace): Likewise. 1836 (store_bindings): Likewise. 1837 (maybe_push_to_top_level): Likewise. 1838 (pop_from_top_level): Likewise. 1839 (push_local_name): Likewise. 1840 (pushtag): Likewise. 1841 (pushdecl): Likewise. 1842 (pushdecl_with_scope): Likewise. 1843 (pushdecl_namespace_level): Likewise. 1844 (pushdecl_top_level): Likewise. 1845 (pushdecl_class_level): Likewise. 1846 (push_class_level_binding): Likewise. 1847 (push_using_decl): Likewise. 1848 (push_using_directive): Likewise. 1849 (push_overloaded_decl): Likewise. 1850 (lookup_label): Likewise. 1851 (define_label): Likewise. 1852 (lookup_tag): Likewise. 1853 (lookup_tag_reverse): Likewise. 1854 (lookup_namespace_name): Likewise. 1855 (select_decl): Likewise. 1856 (unqualified_namespace_lookup): Likewise. 1857 (lookup_name_real): Likewise. 1858 (lookup_name_current_level): Likewise. 1859 (lookup_type_current_level): Likewise. 1860 (maybe_inject_for_scope_var): Likewise. 1861 (xref_tag): Likewise. 1862 1863 * Make-lang.in (cp/decl.o): Add dependency on timevar.h 1864 18652003-02-03 Mark Mitchell <mark@codesourcery.com> 1866 1867 PR c++/7129 1868 * operators.def: Add <?= and >?=. 1869 18702003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1871 1872 PR c++/8849 1873 * error.c (dump_expr): Handle BASELINK. 1874 * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL. 1875 18762003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1877 1878 PR c++/9453 1879 * friend.c (is_friend): Always accept when SUPPLICANT is still 1880 a TEMPLATE_DECL. 1881 * pt.c (push_access_scope_real): Call push_to_top_level for 1882 function in namespace scope. 1883 (push_access_scope): Remove ARGS argument, all caller adjusted. 1884 (pop_access_scope): Call pop_from_top_level for function in 1885 namespace scope. 1886 (regenerate_decl_from_template): Use push_access_scope_real. 1887 18882003-01-29 Nathan Sidwell <nathan@codesourcery.com> 1889 1890 PR c++/9437 1891 * pt.c (unify): Don't unify '*T' with 'U C::*'. 1892 18932003-01-27 Jeffrey D. Oldham <oldham@codesourcery.com> 1894 1895 PR c++/47 1896 * cp-tree.h (lookup_nested_field): Add declaration. 1897 * decl.c (lookup_name_real): Call lookup_nested_field. 1898 * search.c (lookup_nested_field): Add function. 1899 19002003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de> 1901 1902 * Make-lang.in (c++.install-common, c++.install-man) 1903 (c++.uninstall): Prepend $(DESTDIR) to destination paths in 1904 all (un)installation commands. 1905 (c++.install-common): Rewrite $(LN) commands to support 1906 DESTDIR with "ln" as well as with "ln -s". 1907 19082003-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1909 1910 * decl2.c (check_classfn): Fix uninitialized warning. 1911 19122003-01-22 Mark Mitchell <mark@codesourcery.com> 1913 1914 PR c++/9328 1915 * error.c (dump_decl): For an OVERLOAD, just print the name of the 1916 function; it doesn't make sense to try to print its type. 1917 * semantics.c (finish_typeof): Issue errors about invalid uses. 1918 19192003-01-22 Josef Zlomek <zlomekj@suse.cz> 1920 1921 PR/9386, PR/8801 1922 2002-12-27 Mark Mitchell <mark@codesourcery.com> 1923 * typeck.c (build_class_member_access_expr): Fix anonymous union 1924 handling. 1925 19262003-01-17 Jason Merrill <jason@redhat.com> 1927 1928 PR c++/9167, c++/9358 1929 * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE. 1930 19312003-01-17 Jason Merrill <jason@redhat.com> 1932 1933 PR c++/9342 1934 * call.c (build_conditional_expr): Always do lvalue-rvalue 1935 conversion. 1936 19372003-01-16 Jason Merrill <jason@redhat.com> 1938 1939 PR c++/8564 1940 * init.c (build_vec_init): Re-add maxindex parm. 1941 (perform_member_init, build_aggr_init): Pass it. 1942 (build_new_1): Pass it. Use an incomplete array type for full_type. 1943 * typeck.c (build_modify_expr): Pass it. 1944 * cp-tree.h: Adjust. 1945 19462003-01-13 Jason Merrill <jason@redhat.com> 1947 1948 PR c++/8748 1949 * class.c (build_base_path): Take the address before calling save_expr. 1950 1951 * call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if 1952 all the ambiguous conversions are bad. 1953 1954 * class.c (maybe_warn_about_overly_private_class): Don't stop 1955 searching when we find a nonprivate method. 1956 19572003-01-09 Jakub Jelinek <jakub@redhat.com> 1958 1959 * decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs. 1960 19612003-01-09 Jakub Jelinek <jakub@redhat.com> 1962 1963 * decl.c (start_decl): Don't set DECL_COMMON for __thread variables. 1964 19652003-01-07 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1966 1967 PR c++/9030 1968 * decl.c (make_typename_type): Check access only when tf_error. 1969 (make_unbound_class_template): Likewise. 1970 * pt.c (saved_access_scope): New variable. 1971 (push_access_scope_real): New function. 1972 (push_access_scope): Likewise. 1973 (pop_access_scope): Likewise. 1974 (tsubst_default_argument): Use them. 1975 (instantiate_template): Likewise. 1976 (regenerate_decl_from_template): Likewise. 1977 (instantiate_decl): Likewise. 1978 (get_mostly_instantiated_function_type): Likewise. 1979 19802003-01-06 Mark Mitchell <mark@codesourcery.com> 1981 1982 PR c++/9165 1983 * decl2.c (build_cleanup): Mark the object as used. 1984 19852003-01-03 Nathan Sidwell <nathan@codesourcery.com> 1986 1987 PR c++/45, c++/3784 1988 * tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be 1989 the same too. 1990 19912002-12-30 Nathan Sidwell <nathan@codesourcery.com> 1992 1993 PR c++/9054 1994 * class.c (layout_class_type): Set DECL_CONTEXT of type for base. 1995 * dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types. 1996 19972002-12-26 Nathan Sidwell <nathan@codesourcery.com> 1998 1999 PR c++/4803 2000 * decl2.c (mark_used): Defer inline functions. 2001 (finish_file): Merge deferred_fns loops. Check all used 2002 inline functions have a definition. 2003 * method.c (make_thunk): Thunks are not inline. 2004 2005 PR c++/5116, c++/764 2006 * call.c (build_new_op): Make sure template class operands are 2007 instantiated. 2008 20092002-12-24 Nathan Sidwell <nathan@codesourcery.com> 2010 2011 PR C++/7964 2012 * cp-tree.h (resolve_scoped_fn_name): Prototype. 2013 * call.c (resolve_scoped_fn_name): New function. Deal with 2014 more template expansion. Broken out of ... 2015 * parse.y (parse_finish_call_expr): ... here. Call it. 2016 * decl2.c (build_expr_from_tree, CALL_EXPR): Use 2017 resolve_scoped_fn_name and build_call_from_tree. 2018 2019 PR c++/9053 2020 * decl.c (duplicate_decls): Templates may be disambiguated by 2021 return type. 2022 2023 PR c++/8702 2024 * decl2.c (check_classfn): Use lookup_fnfield_1. List all 2025 conversion operators on failure. 2026 20272002-12-22 Nathan Sidwell <nathan@codesourcery.com> 2028 2029 PR c++/8572 2030 * cp-tree.h (grokoptypename): Add SCOPE parameter. 2031 * decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type 2032 if in a template scope. 2033 * parse.y (unoperator): Return the scope. 2034 (operator_name): Adjust grokoptypename call. 2035 20362002-12-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2037 2038 * cp-tree.h (make_unbound_class_template): Use tsubst_flags_t. 2039 * decl.c (make_unbound_class_template): Adjust. Check for tf_error. 2040 * pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error. 2041 20422002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2043 2044 PR c++/8099 2045 * friend.c (make_friend_class): Allow partial specialization 2046 when declaration is not a template friend. 2047 20482002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2049 2050 PR c++/3663 2051 * pt.c (lookup_template_class): Copy TREE_PRIVATE and 2052 TREE_PROTECTED to created decl nodes. 2053 20542002-12-18 Mark Mitchell <mark@codesourcery.com> 2055 2056 * class.c (build_base_field): Do not set DECL_PACKED on the 2057 FIELD_DECL. 2058 20592002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2060 2061 * parse.y (bad_parm): Add missing argument to error function call. 2062 20632002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2064 2065 PR c++/8442 2066 * decl2.c (handle_class_head): Verify if the looked up name is a 2067 type or template. 2068 * pt.c (convert_template_argument): Fix type or template template 2069 parameter decision logic. 2070 20712002-12-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 2072 2073 PR C++/8031 2074 * cvt.c (convert_to_pointer_force): Don't try comparing against 2075 erronous type. 2076 20772002-12-13 Geoffrey Keating <geoffk@apple.com> 2078 2079 * cp-tree.h: Have the multiple-include guards around 2080 the entire file. 2081 20822002-12-10 Mark Mitchell <mark@codesourcery.com> 2083 2084 PR c++/8372 2085 * pt.c (tsubst_copy): Handle destructor names more correctly. 2086 20872002-12-10 Matt Austern <austern@apple.com> 2088 2089 * cp-tree.h: get rid of needs_virtual_reinit bit. 2090 20912002-12-09 Mark Mitchell <mark@codesourcery.com> 2092 2093 * NEWS: Document removal of in-class initialization extension for 2094 static data members of non-arithmetic, non-enumeration type. 2095 * decl.c (check_static_variable_definition): Do not allow that 2096 extension. 2097 * decl2.c (grokfield): Do not call digest_init when processing 2098 templates. 2099 21002002-12-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2101 2102 * error.c (dump_expr): Fix format specifier warning. 2103 21042002-12-04 Geoffrey Keating <geoffk@apple.com> 2105 2106 * class.c (finish_struct_1): Correct comment. 2107 * cp-tree.c (DECL_SORTED_FIELDS): Likewise. 2108 21092002-12-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 2110 2111 PR C++/8799 2112 * error.c (dump_expr): Don't ever try to dump a non-existent 2113 expression. 2114 21152002-12-03 Jason Merrill <jason@redhat.com> 2116 2117 PR c++/8674 2118 * call.c (build_over_call): Check specifically for TARGET_EXPR 2119 when eliding. 2120 2121 PR c++/8461, c++/8625 2122 * call.c (convert_for_arg_passing): Don't mess with error_mark_node. 2123 (cp_convert_parm_for_inlining): Remove. 2124 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): 2125 Remove. 2126 * cp-tree.h (ADDR_IS_INVISIREF): Remove. 2127 * except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code. 2128 2129 * call.c (build_user_type_conversion_1): Don't set ICS_BAD_FLAG on 2130 an ambiguous conversion. 2131 21322002-12-03 Mark Mitchell <mark@codesourcery.com> 2133 2134 PR c++/8688 2135 * decl.c (reshape_init): Handle erroneous initializers. 2136 21372002-12-02 Mark Mitchell <mark@codesourcery.com> 2138 2139 PR c++/8720 2140 * spew.c (remove_last_token): Make sure that last_chunk is set 2141 correctly. 2142 2143 PR c++/8615 2144 * error.c (dump_expr): Handle character constants with 2145 TREE_OVERFLOW set. 2146 21472002-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2148 2149 DR 180 2150 * decl.c (grokdeclarator): Require class-key for all friend class. 2151 Output the correct type and context in the error message. 2152 21532002-12-01 Mark Mitchell <mark@codesourcery.com> 2154 2155 PR c++/5919 2156 * pt.c (unify): Use variably_modified_type_p to test validity of 2157 template argument types. 2158 2159 PR c++/8727 2160 * cp-tree.h (lang_type_class): Add typeinfo_var. 2161 (CLASSTYPE_TYPEINFO_VAR): New macro. 2162 * rtti.c (get_tinfo_decl): Use it. 2163 2164 PR c++/8663 2165 * init.c (expand_member_init): Always get the main variant of a 2166 base class. 2167 21682002-12-01 Mark Mitchell <mark@codesourcery.com> 2169 2170 PR c++/8332 2171 PR c++/8493 2172 * decl.c (cxx_init_decl_processing): Use size_type_node, not 2173 c_size_type_node. 2174 * decl2.c (coerce_new_type): Likewise. 2175 * except.c (do_allocate_exception): Likewise. 2176 21772002-11-30 Mark Mitchell <mark@codesourcery.com> 2178 2179 PR c++/8227 2180 * decl.c (layout_var_decl): Deal gracefully with erroneous types. 2181 (check_initializer): Validate the type of the initialized 2182 variable, even if the initializer is absent. 2183 * typeck.c (cp_type_quals): Deal gracefully with erroneous types. 2184 2185 PR c++/8214 2186 * typeck.c (convert_for_assignment): Do not use 2187 decl_constant_value on the operand. 2188 2189 PR c++/8511 2190 * pt.c (instantiate_decl): Handle template friends defined outside 2191 of the class correctly. 2192 21932002-11-29 Joe Buck <jbuck@synopsys.com> 2194 2195 * parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for 2196 anonymous structs. 2197 21982002-11-29 Mark Mitchell <mark@codesourcery.com> 2199 2200 * class.c (walk_subobject_offsets): Recur on binfos as well as on 2201 types. 2202 (layout_nonempty_base_or_field): Pass it a binfo when processing a 2203 base class. 2204 (layout_empty_base): Likewise. 2205 (build_base_field): Likewise. 2206 22072002-11-27 Mark Mitchell <mark@codesourcery.com> 2208 2209 * class.c (build_base_field): Make sure we get the canonical base 2210 when descending through primary bases. 2211 22122002-11-26 Geoffrey Keating <geoffk@apple.com> 2213 2214 * decl.c (check_initializer): Don't error on initialisation of 2215 a scalar with a brace-enclosed expression. 2216 22172002-11-26 Nathan Sidwell <nathan@codesourcery.com> 2218 2219 * cp-tree.h (DECL_LANG_FLAG_4): Document more uses. 2220 (template_parms_equal): Remove prototype. 2221 * typeck.c (buuld_indirect_ref): Reformat. 2222 22232002-11-25 Mark Mitchell <mark@codesourcery.com> 2224 2225 * tree.c (cp_build_qualified_type_real): Correct handling of 2226 array types. 2227 * class.c (walk_subobject_offsets): Fix thinko. 2228 (build_base_field): Record offsets of empty bases in primary 2229 virtual bases. 2230 (layout_class_type): Record offsets of empty bases in fields. 2231 2232 * search.c (is_subobject_of_p_1): Fix thinko. 2233 (lookup_field_queue_p): Likewise. 2234 22352002-11-24 Mark Mitchell <mark@codesourcery.com> 2236 2237 * class.c (layout_class_type): Reuse tail padding when laying out 2238 virtual bases. 2239 22402002-11-22 Mark Mitchell <mark@codesourcery.com> 2241 2242 * rtti.c (qualifier_flags): Fix thinko. 2243 22442002-11-21 Glen Nakamura <glen@imodulo.com> 2245 2246 PR c++/8342 2247 * typeck.c (get_member_function_from_ptrfunc): Make sure that a 2248 SAVE_EXPR for instance_ptr doesn't get evaluated first inside one 2249 of the branches of a COND_EXPR. 2250 22512002-11-19 Mark Mitchell <mark@codesourcery.com> 2252 2253 * pt.c (for_each_template_parm): Free allocated memory. 2254 * search.c (is_subobject_of_p_1): New function. 2255 (is_subobject_of_p): Avoid walking virtual bases multiple times. 2256 22572002-11-19 Jason Thorpe <thorpej@wasabisystems.com> 2258 2259 * g++spec.c (lang_specific_spec_functions): New. 2260 22612002-11-15 Kazu Hirata <kazu@cs.umass.edu> 2262 2263 * ChangeLog: Follow spelling conventions. 2264 * class.c: Likewise. 2265 * decl2.c: Likewise. 2266 22672002-11-14 Zack Weinberg <zack@codesourcery.com> 2268 2269 * search.c (dfs_push_decls): Do not try to reorder elements 2270 3..n of method_vec if method_vec has only two elements. 2271 Reverse order of two tests to avoid accessing unallocated 2272 memory. 2273 22742002-11-14 Mark Mitchell <mark@codesourcery.com> 2275 2276 * class.c (dfs_find_final_overrider): Adjust so that the most 2277 derived object is a binfo, rather than a class type. 2278 (find_final_overrider): Likewise. 2279 (add_vcall_offset_vtbl_entries_1): Simplify accordingly. 2280 (add_vcall_offset): Likewise. 2281 22822002-11-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2283 2284 PR c++/8389 2285 * pt.c (instantiate_template): Push class scope for member 2286 functions. 2287 (get_mostly_instantiated_function_type): Likewise. Don't call 2288 tsubst on context. Remove CONTEXTP and TPARMSP parameters. 2289 * cp-tree.h (get_mostly_instantiated_function_type): Adjust. 2290 * mangle.c (write_encoding, write_unqualified_name): Adjust. 2291 22922002-11-07 Mark Mitchell <mark@codesourcery.com> 2293 2294 * class.c (add_vcall_offset_vtbl_entries_1): Correct ordering of 2295 vcall offfsets. Split out ... 2296 (add_vcall_offset): ... new function. 2297 2298 PR c++/8338 2299 * pt.c (for_each_template_parm): Add htab parameter. 2300 (process_partial_specialization): Adjust call. 2301 (push_template_decl_real): Likewise. 2302 (pair_fn_data): Add visited. 2303 (for_each_template_parm_r): Avoid walking duplicates more than 2304 once. 2305 (uses_template_parms): Adjust call to for_each_template_parm. 2306 23072002-11-07 Mark Mitchell <mark@codesourcery.com> 2308 2309 * class.c (add_implicitly_declared_members): Put implicitly 2310 declared functions at the end of TYPE_METHODs when -fabi-version 2311 is at least 2. 2312 23132002-11-05 Geoffrey Keating <geoffk@apple.com> 2314 2315 * decl2.c (finish_file): Correct spelling. 2316 23172002-11-03 Mark Mitchell <mark@codesourcery.com> 2318 2319 * call.c (build_special_member_call): Do not try to lookup VTTs by 2320 name. 2321 * class.c (vtbl_init_data): Add generate_vcall_entries. 2322 (get_vtable_decl): Do not look up virtual tables by name. 2323 (copy_virtuals): Do not use BV_USE_VCALL_INDEX_P. 2324 (set_primary_base): Do not set CLASSTYPE_RTTI. 2325 (determine_primary_base): Likewise. 2326 (get_matching_virtual): Remove. 2327 (get_vcall_index): New function. 2328 (update_vtable_entry_for_fn): Do not try to use virtual thunks 2329 when they are not required. Assign vcall indices at this point. 2330 (finish_struct_1): Do not set CLASSTYPE_NEEDS_VIRTUAL_REINIT. 2331 Do update dynamic_classes. 2332 (build_vtt): Do not add VTTs to the symbol table. 2333 (build_ctor_vtbl_group): Likewise. 2334 (build_vtbl_initializer): Simplify handling of vcall indices. 2335 (build_vcall_offset_vtbl_entries): Pretend to build vcall offsets 2336 for the most derived class. 2337 (add_vcall_offset_vtbl_entries_1): But do not actually add them to 2338 the vtable. 2339 * cp-tree.h (dynamic_classes): New macro. 2340 (lang_type_class): Remove rtti. Add vtables. Add vcall_indices. 2341 (CLASSTYPE_RTTI): Remove. 2342 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Remove. 2343 (CLASSTYPE_VCALL_INDICES): New macro. 2344 (CLASSTYPE_VTABLES): Likewise. 2345 (BV_USE_VCALL_INDEX_P): Remove. 2346 (build_vtable_path): Remove. 2347 * decl2.c (finish_vtable_vardecl): Remove. 2348 (key_method): Remove #if 0'd code. 2349 (finish_vtable_vardecl): Rename to ... 2350 (maybe_emit_vtables): ... this. 2351 (finish_file): Use it. 2352 * search.c (look_for_overrides_here): Update comment. 2353 23542002-11-01 Zack Weinberg <zack@codesourcery.com> 2355 2356 PR c/7353 redux 2357 * decl2.c (grokfield): Reject TYPE_DECLs with initializers. 2358 23592002-10-30 Jason Merrill <jason@redhat.com> 2360 2361 PR c++/8186 2362 * cp-tree.h (ADDR_IS_INVISIREF): New macro. 2363 * call.c (convert_for_arg_passing): Set it. 2364 * except.c (stabilize_throw_expr): Recurse for such an arg. 2365 23662002-10-31 Mark Mitchell <mark@codesourcery.com> 2367 2368 * cp-tree.h (lang_decl_flags): Remove init_priority. 2369 (lang_decl): Add delta. 2370 (GLOBAL_INIT_PRIORITY): Remove. 2371 (THUNK_DELTA): Revise definition. 2372 * decl2.c (start_objects): Don't set GLOBAL_INIT_PRIORITY. 2373 * dump.c (cp_dump_tree): Don't dump it. 2374 23752002-10-30 Mark Mitchell <mark@codesourcery.com> 2376 2377 PR c++/8160 2378 * typeck2.c (process_init_constructor): Call complete_array_type. 2379 2380 PR c++/8149 2381 * decl.c (make_typename_type): Issue errors about invalid results. 2382 23832002-10-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2384 2385 Core issue 287, PR c++/7639 2386 * cp-tree.h (lang_type_class): Add decl_list field. 2387 (CLASSTYPE_DECL_LIST): New macro. 2388 (maybe_add_class_template_decl_list): Add declaration. 2389 * class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST. 2390 (unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST. 2391 (maybe_add_class_template_decl_list): New function. 2392 (add_implicitly_declared_members): Use it. 2393 * decl.c (maybe_process_template_type_declaration): Likewise. 2394 (pushtag): Likewise. 2395 * friend.c (add_friend): Likewise. 2396 (make_friend_class): Likewise. 2397 * semantics.c (finish_member_declaration): Likewise. 2398 (begin_class_definition): Initialize CLASSTYPE_DECL_LIST. 2399 * pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST 2400 to process members and friends in the order of declaration. 2401 24022002-10-29 Mark Mitchell <mark@codesourcery.com> 2403 2404 PR c++/8287 2405 * decl.c (finish_destructor_body): Create the label to jump to 2406 when returning from a destructor here. 2407 (finish_function_body): Rather than here. 2408 24092002-10-25 Zack Weinberg <zack@codesourcery.com> 2410 2411 PR c++/7266 2412 * decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a 2413 SCOPE_REF is not null before dereferencing it. 2414 24152002-10-25 Mark Mitchell <mark@codesourcery.com> 2416 2417 * call.c (build_over_call): Use DECL_CONTEXT, not 2418 DECL_VIRTUAL_CONTEXT. 2419 * class.c (modify_vtable_entry): Don't mess with 2420 DECL_VIRTUAL_CONTEXT. 2421 (set_vindex): Remove. 2422 (set_primary_base): Remove vfuns_p parameter. 2423 (determine_primary_base): Likewise. 2424 (modify_all_vtables): Likewise. 2425 (layout_class_type): Likewise. Adjust calls to other functions 2426 accordingly. 2427 (finish_struct_1): Adjust calls to modified functions. Set 2428 DECL_VINDEX here. 2429 * cp-tree.h (lang_type_class): Remove vsize. 2430 (CLASSTYPE_VSIZE): Remove. 2431 (lang_decl): Remove thunks. 2432 (DECL_THUNKS): Adjust. 2433 (DECL_VIRTUAL_CONTEXT): Remove. 2434 (duplicate_decls): Don't copy it. 2435 * pt.c (build_template_decl): Don't set it. 2436 (tsubst_decl): Likewise. 2437 * typeck.c (expand_ptrmemfunc_cst): Don't use it. 2438 2439 * class.c (build_vtbl_initializer): Don't use build_vtable_entry. 2440 (build_vtable_entry): Remove. 2441 * cp-tree.h (BINFO_VIRTUALS): Expand documentation. 2442 (lang_decl): Add thunks. 2443 (DECL_THUNKS): New macro. 2444 * decl.c (duplicate_decls): Copy it. 2445 * method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS. 2446 * semantics.c (emit_associated_thunks): Simplify. 2447 24482002-10-24 David Edelsohn <edelsohn@gnu.org> 2449 2450 PR c++/7228 2451 * cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that 2452 lang_type structure exists before accessing field. 2453 (SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro. 2454 (CLASSTYPE_REF_FIELDS_NEED_INIT): Similar. 2455 (SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro. 2456 * class.c (check_field_decls): Use new macros. 2457 * typeck2.c (process_init_constructor): Remove redundant check for 2458 existence of lang_type structure. 2459 24602002-10-24 Mark Mitchell <mark@codesourcery.com> 2461 2462 * class.c (end_of_base): New method. 2463 (end_of_class): Use it. Check indirect virtual bases. 2464 2465 * class.c (check_field_decls): Fix typo. 2466 24672002-10-23 Mark Mitchell <mark@codesourcery.com> 2468 2469 PR c++/8067 2470 * decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and 2471 related variables. 2472 2473 PR c++/7679 2474 * spew.c (next_token): Do not return an endless stream of 2475 END_OF_SAVED_INPUT tokens. 2476 (snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of 2477 the cached token stream. 2478 (snarf_defarg): Likewise. 2479 24802002-10-23 Zack Weinberg <zack@codesourcery.com> 2481 2482 * cp-lang.c (cp_var_mod_type_p): New: C++ hook for 2483 variably_modified_type_p. 2484 * cp-tree.h: Remove prototype of variably_modified_type_p. 2485 * tree.c (variably_modified_type_p): Remove; now implemented 2486 in language-independent code. 2487 24882002-10-22 Mark Mitchell <mark@codesourcery.com> 2489 2490 PR c++/6579 2491 * spew.c (snarf_parenthesized_expression): New function. 2492 (snarf_block): Use it. 2493 24942002-10-22 Richard Henderson <rth@redhat.com> 2495 2496 * method.c (use_thunk): Always compute vcall_value; assert that 2497 it is not zero. Use can_output_mi_thunk; use output_mi_thunk 2498 for vcall thunks as well. 2499 25002002-10-21 Mark Mitchell <mark@codesourcery.com> 2501 2502 * class.c (empty_base_at_nonzero_offset_p): New function. 2503 (layout_nonempty_base_or_field): Do not check for conflicts when 2504 laying out a virtual base using the GCC 3.2 ABI. 2505 (build_base_field): Correct checking for presence of empty classes 2506 at nonzero offsets when clearing CLASSTYPE_NEARLY_EMPTY_P. 2507 2508 * class.c (include_empty_classes): Use normalize_rli. 2509 (layout_class_type): Likewise. 2510 2511 * decl.c (reshape_init): Tweak handling of character arrays. 2512 2513 PR c++/8218 2514 * cp-tree.h (lang_type_class): Add contains_empty_class_p. 2515 (CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro. 2516 * class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P. 2517 (check_field_decls): Likewise. 2518 (layout_class_type): Likewise. 2519 (finish_struct_1): Initialize it. 2520 (walk_subobject_offsets): Use it to prune searches. 2521 25222002-10-20 Mark Mitchell <mark@codesourcery.com> 2523 2524 * method.c (use_thunk): Compute the vcall index as a HOST_WIDE_INT. 2525 * optimize.c (optimize_function): Replace ASM_OUTPUT_MI_THUNK with 2526 TARGET_ASM_OUTPUT_MI_THUNK in comments. 2527 25282002-10-18 Zack Weinberg <zack@codesourcery.com> 2529 2530 * decl.c (start_decl): Point users of the old initialized- 2531 typedef extension at __typeof__. 2532 25332002-10-18 Mark Mitchell <mark@codesourcery.com> 2534 2535 * Make-lang.in (method.o): Depend on TARGET_H. 2536 * method.c (target.h): Include it. 2537 (use_thunk): Use target hooks. Use vcall thunks, if available. 2538 25392002-10-18 Mark Mitchell <mark@codesourcery.com> 2540 2541 * class.c (base_derived_from): Make sure return value is a bool. 2542 25432002-10-18 Mark Mitchell <mark@codesourcery.com> 2544 2545 * class.c (find_final_overrider_data_s): Remove overriding_fn and 2546 overriding_base. 2547 (dfs_base_derived_from): New function. 2548 (base_derived_from): Likewise. 2549 (dfs_find_final_overrider): Use base_derived_from. 2550 (find_final_overrider): Adjust. 2551 25522002-10-18 Jason Merrill <jason@redhat.com> 2553 2554 PR c++/8080 2555 * semantics.c (finish_for_cond, finish_while_cond): Don't mess 2556 with condition decls in a template. 2557 25582002-10-17 Nathan Sidwell <nathan@codesourcery.com> 2559 2560 * class.c (add_method): Compare template parms too. 2561 25622002-10-17 Mark Mitchell <mark@codesourcery.com> 2563 2564 PR c++/7584 2565 * class.c (handle_using_decl): Allow the declaration used to be 2566 from an ambiguous base. 2567 2568 * pt.c (convert_template_argument): Revert this change: 2569 2002-10-16 Mark Mitchell <mark@codesourcery.com> 2570 * pt.c (convert_template_argument): Do not fold non-type 2571 template rguments when inside a template. 2572 2573 * init.c (expand_default_init): Handle brace-enclosed initializers 2574 correctly. 2575 25762002-10-16 Mark Mitchell <mark@codesourcery.com> 2577 2578 * mangle.c (write_expression): Correct handling of enumeration 2579 constants. 2580 (write_template_arg): Likewise. 2581 * pt.c (convert_template_argument): Do not fold non-type template 2582 arguments when inside a template. 2583 2584 PR c++/7478 2585 * cvt.c (convert_to_reference): Allow references as the incoming 2586 type. 2587 25882002-10-16 Mark Mitchell <mark@codesourcery.com> 2589 2590 PR c++/7524 2591 * method.c (do_build_assign_ref): Use cp_build_qualified_type, not 2592 build_qualified_type. 2593 25942002-10-15 Richard Henderson <rth@redhat.com> 2595 2596 * error.c (dump_expr): Use real_to_decimal directly, and with 2597 the new arguments. 2598 25992002-10-15 Mark Mitchell <mark@codesourcery.com> 2600 2601 * decl.c (reshape_init): Fix typo. 2602 2603 * cp-tree.h (operator_name_info_t): Add arity. 2604 * lex.c (init_operators): Initialize it. 2605 * mangle.c (write_conversion_operator_name): New function. 2606 (write_unqualified_name): Use it. 2607 (write_template_args): Accept template arguments as a TREE_LIST. 2608 (write_expression): Adjust handling of qualified names to match 2609 specification. 2610 26112002-10-15 Jason Merrill <jason@redhat.com> 2612 2613 * call.c (call_builtin_trap): New fn. 2614 (convert_arg_to_ellipsis): Use it. Downgrade error to warning. 2615 (build_call): Don't set current_function_returns_abnormally outside 2616 a function. 2617 26182002-10-14 Mark Mitchell <mark@codesourcery.com> 2619 2620 * class.c (check_field_decls): Remove empty_p parameter. Instead, 2621 clear CLASSTYPE_EMPTY_P. 2622 (build_base_field): Likewise. 2623 (build_base_fields): Likewise. 2624 (check_bases_and_members): Likewise. 2625 (create_vtbl_ptr): Likewise. 2626 (layout_class_type): Likewise. Ensure that empty classes have 2627 size zero when used as base classes in the 3.2 ABI. 2628 (finish_struct_1): Initialize CLASSTYPE_EMPTY_P and 2629 CLASSTYPE_NEARLY_EMPTY_P. Adjust calls to avoid passing empty_p 2630 parameter. 2631 (is_empty_class): Correct definition when using post-3.2 ABI. 2632 * cp-tree.h (lang_type_class): Add empty_p. 2633 (CLASSTYPE_EMPTY_P): New macro. 2634 26352002-10-12 Nathan Sidwell <nathan@codesourcery.com> 2636 2637 * init.c (build_delete): Do not apply save_expr for arrays. 2638 (build_vec_delete): Likewise. 2639 26402002-10-14 Mark Mitchell <mark@codesourcery.com> 2641 2642 * decl.c (layout_var_decl): Call layout_decl even for variables 2643 whose type is an array with unspecified bounds. 2644 2645 PR c++/7176 2646 * lex.c (do_identifier): Add another option for the parsing 2647 parameter. 2648 * parse.y (do_id): Use it. 2649 26502002-10-11 Gabriel Dos Reis <gdr@integrable-solutions.net> 2651 2652 PRs C++/6803, C++/7721 and C++/7803 2653 * decl.c (grokdeclarator): Gracefully handle template-name as 2654 decl-specifier. 2655 26562002-10-11 Jason Molenda <jmolenda@apple.com> 2657 2658 * init.c (build_field_list): Provide uses_unions_p with a default 2659 value. 2660 26612002-10-11 Mark Mitchell <mark@codesourcery.com> 2662 2663 PR c++/5661 2664 * cp-tree.h (variably_modified_type_p): New function. 2665 (grokdeclarator) Tighten check for variably modified types as 2666 fields. 2667 * pt.c (convert_template_argument): Do not allow variably modified 2668 types as template arguments. 2669 * tree.c (variably_modified_type_p): New function. 2670 2671 * NEWS: Document removal of "new X = ..." extension. 2672 * class.c (initialize_array): Set TREE_HAS_CONSTRUCTOR on 2673 brace-enclosed initializers. 2674 * cp-tree.h (CP_AGGREGATE_TYPE_P): New macro. 2675 (initialize_local_var): Remove declaration. 2676 (expand_static_init): Likewise. 2677 * decl.c (next_initializable_field): New function. 2678 (reshape_init): Likewise. 2679 (check_initializer): Use them. Build dynamic initializer for 2680 aggregates here too. 2681 (initialize_local_var): Simplify, and incorporate cleanup 2682 insertion code as well. 2683 (destroy_local_var): Remove. 2684 (cp_finish_decl): Tidy. 2685 (expand_static_init): Fold checks for whether or not a variable 2686 needs initialization into this function. Simplify. 2687 * decl2.c (do_static_initialization): Simplify. 2688 * init.c (build_init): Do not set TREE_SIDE_EFFECTS when it will 2689 be done for us automatically. 2690 (expand_default_init): Handle brace-enclosed initializers 2691 correctly. 2692 (expand_aggr_init_1): Remove RTL-generation code. 2693 (build_vec_init): Remove "new X = ..." support. 2694 * parse.y (new_initializer): Likewise. 2695 * rtti.c (get_pseudo_ti_init): Set TREE_HAS_CONSTRUCTOR on 2696 brace-enclosed initializer. 2697 (create_pseudo_type_info): Likewise. 2698 * typeck2.c (store_init_value): Don't try to handle digest_init 2699 being called more than once. 2700 (digest_init): Tidy handling of brace-enclosed initializers. 2701 27022002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2703 2704 * decl.c (typename_hash): Use htab_hash_pointer. 2705 27062002-10-10 Jim Wilson <wilson@redhat.com> 2707 2708 * decl.c (duplicate_decls): Don't call decl_attributes. 2709 27102002-10-09 Zack Weinberg <zack@codesourcery.com> 2711 2712 PR c/7353 2713 * decl.c (start_decl): Unconditionally issue error for 2714 'typedef foo = bar'. 2715 (cp_finish_decl): Remove special case for TYPE_DECL with initializer. 2716 (grokdeclarator): Remove redundant error for 'typedef foo = bar'. 2717 27182002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2719 2720 * decl2.c (prune_vtable_vardecl): Delete unused function. 2721 27222002-10-03 Mark Mitchell <mark@codesourcery.com> 2723 2724 PR c++/7754 2725 * decl2.c (finish_anon_union): Do not expand anonymous unions when 2726 procesing template functions. 2727 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable 2728 type. Call layout_decl. 2729 (tsubst_expr, case DECL_STMT): Handle anonymous unions. 2730 27312002-10-07 Richard Henderson <rth@redhat.com> 2732 2733 * decl2.c, pt.c: Revert c++/7754 fix. 2734 27352002-10-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2736 2737 PR c++/7804 2738 * error.c (dump_expr) [REAL_CST]: Output in decimal format. 2739 27402002-10-03 Mark Mitchell <mark@codesourcery.com> 2741 2742 PR c++/7931 2743 * pt.c (for_each_template_parm_r): Handle BASELINKs. 2744 2745 PR c++/7754 2746 * decl2.c (finish_anon_union): Do not expand anonymous unions when 2747 procesing template functions. 2748 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable 2749 type. Call layout_decl. 2750 (tsubst_expr, case DECL_STMT): Handle anonymous unions. 2751 27522002-10-03 Mark Mitchell <mark@codesourcery.com> 2753 2754 PR c++/8006 2755 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template 2756 template parameters. 2757 (globals): Add entity and need_abi_warning. 2758 (decl_is_template_id): Use TYPE_TEMPLATE_INFO, not 2759 CLASSTYPE_TEMPLATE_INFO. 2760 (is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not 2761 TYPE_TI_TEMPLATE. 2762 (write_prefix): Handle typename types correctly. 2763 (write_template_prefix): Handle template template parameters 2764 correctly. 2765 (start_mangling): Add entity parameter. 2766 (finish_mangling): Warn about names whose mangling will change. 2767 (mangle_decl_string): Adjust. 2768 (mangle_type_string): Likewise. 2769 (mangle_special_for_type): Likewise. 2770 (mangle_ctor_vtbl_for_type): Likewise. 2771 (mangle_thunk): Likewise. 2772 (mangle_guard_variable): Likewise. 2773 (mangle_ref_init_variable): Likewise. 2774 27752002-10-02 Mark Mitchell <mark@codesourcery.com> 2776 2777 PR c++/7188. 2778 * cp-tree.def (CTOR_INITIALIZER): Use one slot, not two. 2779 * cp-tree.h (emit_base_init): Rename to .... 2780 (emit_mem_initializers): ... this. 2781 (expand_member_init): Change prototype. 2782 * init.c (perform_member_init): Compute explicit, rather than 2783 requiring it as a parameter. 2784 (sort_member_init): Rename to ... 2785 (sort_mem_initializers): ... this. Process bases and data members 2786 together. 2787 (sort_base_init): Remove. 2788 (emit_base_init): Rename to ... 2789 (emit_mem_initializers): ... this. 2790 (expand_aggr_vbase_init_1): Remove. 2791 (construct_virtual_bases): Rename to ... 2792 (construct_virtual_base): ... this. 2793 (expand_member_init): Rework handling of base initializers. 2794 * method.c (do_build_copy_constructor): Use 2795 finish_mem_initializers. 2796 * parse.y (member_init): Adjust calls to expand_member_init. 2797 * pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case. 2798 (tsubst_initializer_list): Use expand_member_init. 2799 * semantics.c (finish_mem_intiailizers): Simplify. 2800 28012002-10-02 Matt Austern <austern@apple.com> 2802 * decl.c (walk_vtables_r): Fixed typo that caused result to 2803 never get a nonzero value. 2804 28052002-10-02 Roger Sayle <roger@eyesopen.com> 2806 2807 PR optimization/6627 2808 * cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition 2809 from here, and move it to tree.h. 2810 * decl.c (cxx_init_decl_processing): If storing the vbit 2811 in function pointers, ensure that force_align_functions_log 2812 is atleast one. 2813 28142002-10-02 Matt Austern <austern@apple.com> 2815 2816 * class.c (check_field_decls): Changed warning about const member 2817 variables so that it doesn't get issued for a class aggregate. 2818 28192002-10-01 Mark Mitchell <mark@codesourcery.com> 2820 2821 * decl.c (cp_finish_decl): Make sure array types are laid out, 2822 even if the array bounds are unknown. 2823 28242002-10-01 Steve Ellcey <sje@cup.hp.com> 2825 2826 * class.c (build_vtbl_initializer): Change build_c_cast 2827 to build1. 2828 28292002-10-01 Mark Mitchell <mark@codesourcery.com> 2830 2831 * decl.c (cp_finish_decl): Make sure array types are laid out, 2832 even if the array bounds are unknown. 2833 2834 * decl.c (cp_finish_decl): Correct check for dynamic 2835 initialization of thread-local storage. 2836 28372002-09-30 Nathan Sidwell <nathan@codesourcery.com> 2838 2839 * tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also 2840 overloaded. 2841 28422002-09-30 Steve Ellcey <sje@cup.hp.com> 2843 2844 * class.c (build_vtbl_initializer): Add cast. 2845 (add_vcall_offset_vtbl_entries_1): 2846 Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset. 2847 28482002-09-30 Mark Mitchell <mark@codesourcery.com> 2849 2850 * class.c (walk_subobject_offsets): Correct the calculation of 2851 offsets for virtual bases. Correct the counting of array 2852 elements. 2853 (layout_nonempty_base_or_field): Simplify. Correct the 2854 calculation of offsets to be propagated through the binfo 2855 hierarchy. 2856 (build_base_field): Avoid creating a FIELD_DECL for empty bases. 2857 Add the FIELD_DECL to TYPE_FIELDS. 2858 (build_base_fields): Adjust accordingly. 2859 (layout_virtual_bases): Use build_base_field. 2860 (end_of_class): Return a tree, not an integer. 2861 (warn_about_ambiguous_direct_bases): Rename to ... 2862 (warn_about_ambiguous_bases): ... this. 2863 (include_empty_classes): New function. 2864 (layout_class_type): Create an alternative version of the type to 2865 be used when as a base class type. Do not call 2866 finish_record_layout until we are done laying out the class. 2867 * cp-tree.h (lang_type_class): Remove size, size_unit. Add 2868 as_base. 2869 (CLASSTYPE_SIZE): Reimplement. 2870 (CLASSTYPE_SIZE_UNIT): Likewise. 2871 (CLASSTYPE_ALIGN): Likweise. 2872 (CLASSTYPE_USER_ALIGN): Likewise. 2873 (CLASSTYPE_AS_BASE): New macro. 2874 (DECL_INITIALIZED_P): Likewise. 2875 (extract_init): Remove prototype. 2876 (build_forced_zero_init): Rename to ... 2877 (build_zero_init): ... this. 2878 (force_store_init_value): Remove. 2879 * decl.c (obscure_complex_init): Remove. 2880 (duplicate_decls): Copy DECL_INITIALIZED_P. 2881 (check_initializer): Do not leave junk in DECL_INITIAL. 2882 (cp_finish_decl): Handle zero-initialization of entities with 2883 static storage duration. 2884 * expr.c (extract_init): Remove. 2885 * init.c (build_forced_zero_init): Remove. 2886 (build_zero_init): New function. 2887 (build_default_init): Use it. 2888 (build_field_list): Skip FIELD_DECLs for base subobjects. 2889 (push_base_cleanups): Likewise. 2890 * method.c (do_build_assign_ref): Likewise. 2891 (synthesize_exception_spec): Likewise. 2892 * pt.c (tsubst_decl): Clear DECL_INITIALIZED_P. 2893 (regenerate_decl_from_template): To not set DECL_INITIAL for a 2894 static data member whose initialization took place in its class. 2895 (instantiate_decl): Do not pass an initializer to cp_finish_decl 2896 in that situation. 2897 * search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects. 2898 (dfs_unuse_fields): Likewise. 2899 * tree.c (pod_type_p): Handle error_mark_node. 2900 (zero_init_p): Likewise. 2901 * typeck.c (lookup_anon_field): Skip FIELD_DECLs for base 2902 subobjects. 2903 * typeck2.c (store_init_value): Remove #if 0'd code. 2904 (force_store_init_value): Remove. 2905 (process_init_constructor): Use build_zero_init. 2906 29072002-09-29 Nathan Sidwell <nathan@codesourcery.com> 2908 2909 PR c++/7788 2910 * rtti.c (unemitted_tinfo_decl_p): Check it has a field. 2911 29122002-09-29 Kazu Hirata <kazu@cs.umass.edu> 2913 2914 * cp-tree.h: Fix comment typos. 2915 * decl.c: Likewise. 2916 * pt.c: Likewise. 2917 29182002-09-25 Mark Mitchell <mark@codesourcery.com> 2919 2920 * cp/class.c (contains_empty_class_p): New method. 2921 (walk_subobject_offsets): Correct computation of field offset. 2922 (layout_empty_base): Correct placement of emtpy base classes. 2923 (layout_class_type): Warn about ABI changes. 2924 29252002-09-23 Mark Mitchell <mark@codesourcery.com> 2926 2927 * cp/class.c (layout_virtual_bases): Do not round the size of the 2928 type to a multiple of the alignment before laying out virtual bases. 2929 (layout_class_type): Correct handling of bit-fields that are wider 2930 than their type inside unions. Round the size of the type to a 2931 even number of bytes when computing the size without virtual 2932 bases. 2933 * cp/cp-tree.h (abi_version_at_least): New macro. 2934 29352002-09-21 Kazu Hirata <kazu@cs.umass.edu> 2936 2937 * ChangeLog: Follow spelling conventions. 2938 * ChangeLog.2: Likewise. 2939 * call.c: Likewise. 2940 * class.c: Likewise. 2941 * cp-tree.h: Likewise. 2942 * cvt.c: Likewise. 2943 * decl.c: Likewise. 2944 * decl2.c: Likewise. 2945 * except.c: Likewise. 2946 * friend.c: Likewise. 2947 * g++spec.c: Likewise. 2948 * init.c: Likewise. 2949 * lex.c: Likewise. 2950 * mangle.c: Likewise. 2951 * method.c: Likewise. 2952 * operators.def: Likewise. 2953 * optimize.c: Likewise. 2954 * pt.c: Likewise. 2955 * rtti.c: Likewise. 2956 * search.c: Likewise. 2957 * semantics.c: Likewise. 2958 * spew.c: Likewise. 2959 * tree.c: Likewise. 2960 * typeck.c: Likewise. 2961 29622002-09-18 Devang Patel <dpatel@apple.com> 2963 2964 * cp/cp-tree.h: New prototype for walk_vtabls(). 2965 * cp/decl.c (walk_vtables_r): New function. 2966 (struct cp_binding_level): Add new members, namespaces, 2967 names_size and vtables. 2968 (add_decl_to_level): Add decl in namespaces or vtables 2969 chain, if conditions match. 2970 (walk_vtables): New function. 2971 (walk_namespaces_r): Travers separate namespace chain 2972 for namespace decls. 2973 (wrapup_globals_for_namespace): Use names_size instead 2974 of list_length(). 2975 * cp/decl2.c (finish_file): Use walk_vtables() instead of 2976 walk_globals() to walk vtable decls. 2977 29782002-09-18 Nathan Sidwell <nathan@codesourcery.com> 2979 2980 * decl.c (grokdeclarator): Use assert, not internal_error. Don't 2981 ICE with invalid pointers & references. 2982 29832002-09-17 Zack Weinberg <zack@codesourcery.com> 2984 2985 * Make-lang.in: Remove all references to the demangler. 2986 * cxxfilt.c: Moved to binutils. 2987 29882002-09-16 Nathan Sidwell <nathan@codesourcery.com> 2989 2990 PR c++/7718 2991 * pt.c (tsubst_decl): Remove assert. 2992 2993 Remove DR 295 implementation. 2994 * pt.c (check_cv_quals_for_unify): Disable function & method cases. 2995 * tree.c (cp_build_qualified_type_real): Likewise. Don't warn 2996 about ignoring volatile qualifiers. 2997 2998 * search.c (lookup_member): Correct documentation. 2999 30002002-09-16 Geoffrey Keating <geoffk@apple.com> 3001 3002 * cp-tree.h (union lang_tree_node): Add chain_next option. 3003 30042002-09-16 Nathan Sidwell <nathan@codesourcery.com> 3005 3006 * parse.y (parse_finish_call_expr): Check lookup_member result. 3007 3008 PR c++/7015 3009 * semantic.c (finish_asm_stmt): Fix operand/output_operands 3010 thinko. 3011 * typeck.c (c_expand_asm_operands): Protect from error_mark_node. 3012 30132002-09-15 Nathan Sidwell <nathan@codesourcery.com> 3014 3015 PR c++/7919 3016 * call.c (build_over_call): Convert this pointer for fns found by 3017 using decls. 3018 30192002-09-15 Kazu Hirata <kazu@cs.umass.edu> 3020 3021 * ChangeLog: Follow spelling conventions. 3022 * ChangeLog.1: Likewise. 3023 30242002-09-14 Nathan Sidwell <nathan@codesourcery.com> 3025 3026 PR c++/7768 3027 * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P. 3028 30292002-09-14 Kazu Hirata <kazu@cs.umass.edu> 3030 3031 * error.c: Fix comment formatting. 3032 * except.c: Likewise. 3033 * expr.c: Likewise. 3034 * friend.c: Likewise. 3035 * g++spec.c: Likewise. 3036 * init.c: Likewise. 3037 * lex.c: Likewise. 3038 * mangle.c: Likewise. 3039 * method.c: Likewise. 3040 * optimize.c: Likewise. 3041 * pt.c: Likewise. 3042 * rtti.c: Likewise. 3043 * search.c: Likewise. 3044 * semantics.c: Likewise. 3045 * spew.c: Likewise. 3046 * tree.c: Likewise. 3047 * typeck.c: Likewise. 3048 * typeck2.c: Likewise. 3049 30502002-09-13 Matt Austern <austern@apple.com> 3051 3052 PR C++/7828 3053 * cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p. 3054 * cp/call.c: Change call-by-const-reference mechanism to use 3055 non_cast_lvalue_p when deciding whether the create a temporary. 3056 We need a temporary when passing, e.g. (long) x by const ref. 3057 30582002-09-13 Nathan Sidwell <nathan@codesourcery.com> 3059 3060 * pt.c (unify, ARRAY_TYPE): Element type can be more qualified. 3061 30622002-09-13 Kazu Hirata <kazu@cs.umass.edu> 3063 3064 * decl.c: Fix comment formatting. 3065 * decl2.c: Likewise. 3066 30672002-09-12 Kazu Hirata <kazu@cs.umass.edu> 3068 3069 * call.c: Fix comment formatting. 3070 * class.c: Likewise. 3071 * cp-lang.c: Likewise. 3072 * cp-tree.h: Likewise. 3073 * cvt.c: Likewise. 3074 30752002-09-11 Zack Weinberg <zack@codesourcery.com> 3076 3077 * Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c, 3078 and c++filt from cxxfilt.o + version.o + $(LIBDEPS). 3079 * cxxfilt.c: New file: split from libiberty/cplus-dem.c, with 3080 minor adjustments (use version_string, eliminate yet another 3081 duplicate of xmalloc) 3082 30832002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3084 3085 * cp-tree.h (require_complete_eh_spec_types): Add prototype. 3086 30872002-09-05 Jason Merrill <jason@redhat.com> 3088 3089 * typeck2.c (add_exception_specifier): Only pedwarn for an 3090 incomplete type. 3091 (require_complete_eh_spec_types): New fn. 3092 (cxx_incomplete_type_diagnostic): Also support pedwarning. 3093 * typeck.c (complete_type_or_diagnostic): Likewise. 3094 * call.c (build_call): Call require_complete_eh_spec_types. 3095 * rtti.c (get_pseudo_ti_desc): Give an error rather than aborting 3096 on an incomplete type. 3097 30982002-09-04 Jakub Jelinek <jakub@redhat.com> 3099 3100 * decl.c (start_cleanup_fn): Clear interface_only before 3101 start_function, restore it afterwards. 3102 31032002-08-31 Jason Merrill <jason@redhat.com> 3104 3105 * cp-lang.c (cp_expr_size): Allow initialization from a 3106 CONSTRUCTOR. 3107 31082002-08-30 Richard Henderson <rth@redhat.com> 3109 3110 PR opt/7515 3111 * tree.c: Include target.h. 3112 (cp_cannot_inline_tree_fn): Don't auto-inline functions that 3113 don't bind locally. 3114 * Makefile.in (tree.o): Update. 3115 31162002-08-27 Mark Mitchell <mark@codesourcery.com> 3117 3118 * class.c (layout_virtual_bases): Warn about bugs in G++ that 3119 result in incorrect object layouts. 3120 (layout_class_type): Likewise. 3121 31222002-08-24 Matt Austern <austern@apple.com> 3123 3124 * tree.c (lvalue_p_1): Add argument for whether casts of lvalues 3125 are allowable. 3126 (real_lvalue_p): Update caller. 3127 (lvalue_p): Ditto. 3128 (non_cast_lvalue_or_else): New. 3129 * tree.h: Declare it. 3130 * typeck.c (build_unary_op): Use non_cast_lvalue_or_else. 3131 31322002-08-22 Mark Mitchell <mark@codesourcery.com> 3133 3134 * typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR 3135 and COND_EXPR specially; fix error message output. 3136 31372002-08-22 Jason Merrill <jason@redhat.com> 3138 3139 * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR. 3140 * semantics.c (nullify_returns_r): Likewise. 3141 31422002-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net> 3143 3144 Fix PR/7621 3145 * typeck.c (finish_class_member_access_expr): Diagnose cases where 3146 name lookup finds nothing. 3147 31482002-08-15 Jason Merrill <jason@redhat.com> 3149 3150 * semantics.c (finish_then_clause): Remove redundant assignment. 3151 (finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the 3152 extra binding level outside the if/switch statement. 3153 (finish_while_cond, finish_for_cond): Rewrite complex condition 3154 into the loop body. 3155 31562002-08-15 Alexandre Oliva <aoliva@redhat.com> 3157 3158 * parse.y (sizeof, alignof, typeof): New non-terminals to 3159 increment skip_evaluation. Replace terminals with them and 3160 decrement skip_evaluation at the end of rules using them. 3161 * decl2.c (mark_used): Don't assemble_external if 3162 skipping evaluation. 3163 31642002-08-15 Gabriel Dos Reis <gdr@nerim.net> 3165 3166 Fix PR/7504 3167 * parse.y (parse_finish_call_expr): Handle incomplete 3168 type used to name a scope. 3169 31702002-08-15 Nathan Sidwell <nathan@codesourcery.com> 3171 3172 PR c++/7598 3173 * typeck.c (build_unary_op): Fold offsetof idiom. Fixes 3174 regression caused by my 2002-08-08 patch. 3175 31762002-08-13 Mark Mitchell <mark@codesourcery.com> 3177 3178 * decl.c (pushdecl_class_level): Honor requests to bind names to 3179 OVERLOADs. 3180 31812002-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3182 3183 * decl2.c (build_call_from_tree): Fix uninitialized variable. 3184 * parse.y (parse_finish_call_expr): Likewise. 3185 * repo.c (old_args, old_dir, old_main): Const-ify. 3186 31872002-08-11 Gabriel Dos Reis <gdr@nerim.net> 3188 3189 * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE + 3190 DECL_SOURCE_LINE with DECL_SOURCE_LOCATION. 3191 * optimize.c (maybe_clone_body): Likewise. 3192 * pt.c (tsubst_enum): Likewise. 3193 (lookup_template_class): Likewise. 3194 * tree.c (cp_copy_res_decl_for_inlining): Likewise. 3195 31962002-08-10 Neil Booth <neil@daikokuya.co.uk> 3197 3198 * lang-specs.h: Remove -ansi. 3199 32002002-08-10 Nathan Sidwell <nathan@codesourcery.com> 3201 3202 * tree.c (maybe_dummy_object): Replace // with /* */ 3203 32042002-08-09 Mark Mitchell <mark@codesourcery.com> 3205 3206 * call.c (standard_conversion): Use build_ptrmem_type. 3207 * cp-tree.h (build_ptrmem_type): New function. 3208 (adjust_result_of_qualified_name_lookup): Likewise. 3209 * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate 3210 static data members. 3211 (build_ptrmem_type): New function. 3212 (grokdeclarator): Do not use build_offset_type when encountering a 3213 qualified name. 3214 * parse.y (parse_finish_call_expr): Use 3215 adjust_result_of_qualified_name_lookup. 3216 * search.c (adjust_result_of_qualified_name_lookup): New function. 3217 * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than 3218 accessing OFFSET_TYPEs directly. 3219 32202002-08-08 Mike Stump <mrs@apple.com> 3221 3222 * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid. 3223 (type_decays_to): Likewise. 3224 * class.c (find_final_overrider): Likewise. 3225 (maybe_note_name_used_in_class): Likewise. 3226 * decl.c (current_tmpl_spec_kind): Likewise. 3227 (add_binding): Likewise. 3228 (push_class_binding): Likewise. 3229 (duplicate_decls): Likewise. 3230 (layout_var_decl): Likewise. 3231 (grokfndecl): Likewise. 3232 (grokdeclarator): Likewise. 3233 (check_default_argument): Likewise. 3234 * decl2.c (handle_class_head): Likewise. 3235 * error.c (dump_template_decl): Likewise. 3236 * init.c (build_offset_ref): Likewise. 3237 * pt.c (check_specialization_scope): Likewise. 3238 (determine_specialization): Likewise. 3239 (check_explicit_specialization): Likewise. 3240 (maybe_check_template_type): Likewise. 3241 (process_partial_specialization): Likewise. 3242 (check_default_tmpl_args): Likewise. 3243 (push_template_decl_real): Likewise. 3244 (convert_template_argument): Likewise. 3245 (try_class_unification): Likewise. 3246 (get_bindings_real): Likewise. 3247 (do_decl_instantiation): Likewise. 3248 * semantics.c (begin_function_definition): Likewise. 3249 (finish_member_declaration): Likewise. 3250 (check_multiple_declarators): Likewise. 3251 * typeck.c (comp_array_types): Likewise. 3252 (comptypes): Likewise. 3253 (expr_sizeof): Likewise. 3254 (build_binary_op): Likewise. 3255 (dubious_conversion_warnings): Likewise. 3256 (check_return_expr): Likewise. 3257 32582002-08-08 Mark Mitchell <mark@codesourcery.com> 3259 3260 * typeck.c (build_class_member_access_expr): Do not return 3261 error_mark_node when no error has occurred. 3262 32632002-08-08 Nathan Sidwell <nathan@codesourcery.com> 3264 3265 * typeck.c (build_component_addr): Remove. 3266 (build_unary_op): Just check it's not a bitfield, and then build 3267 an ADDR_EXPR. 3268 32692002-08-08 Nathan Sidwell <nathan@codesourcery.com> 3270 3271 * class.c (convert_to_base): Correct check for error_mark_node. 3272 (create_vtable_ptr): Remove unused VFUNS_P parm. 3273 32742002-08-08 Nathan Sidwell <nathan@codesourcery.com> 3275 3276 * cp/Make-lang.in (c++.mostlyclean): Remove coverage files. 3277 32782002-08-07 Mark Mitchell <mark@codesourcery.com> 3279 3280 Rework build_component_ref. 3281 * call.c (build_vfield_ref): Do not go through build_component_ref. 3282 (build_field_call): Use build_class_member_access_expr. 3283 (build_user_type_conversion_1): Use BASELINK_FUNCTIONS. 3284 (build_object_call): Likewise. 3285 * class.c (convert_to_base): New function. 3286 (type_requires_array_cookie): Use BASELINK_FUNCTIONS. 3287 (instantiate_type): Handle BASELINKs. 3288 * cp-tree.def (BASELINK): New tree code. 3289 * cp-tree.h (BASELINK_P): Reimplement. 3290 (SET_BASELINK_P): Remove. 3291 (BASELINK_BINFO): Reimplement. 3292 (BASELINK_FUNCTIONS): Likewise. 3293 (BASELINK_ACCESS_BINFO): Likewise. 3294 (BASELINK_OPTYPE): Likewise. 3295 (convert_to_base): New function. 3296 (name_p): Likewise. 3297 (build_object_ref): Remove. 3298 (build_component_ref_1): Likewise. 3299 (build_component_ref): Likewise. 3300 (build_x_component_ref): Likewise. 3301 (build_class_member_access_expr): New function. 3302 (finish_class_member_access_expr): Likewise. 3303 (build_ptrmemfunc_access_expr): Likewise. 3304 * decl.c (grokdeclarator): Handle BASELINKs. 3305 * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using 3306 finish_class_member_access_expr. 3307 (arg_assoc): Handle BASELINKs. 3308 (do_class_using_decl): Likewise. 3309 * error.c (dump_decl): Likewise. 3310 (dump_expr): Use build_ptrmemfunc_access_expr. 3311 * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find 3312 destructors. 3313 (build_throw): Use BASELINK_FUNCTIONS. 3314 * init.c (perform_member_init): Use 3315 build_class_member_access_expr. 3316 (build_offset_ref): Handle BASELINKs. Use 3317 build_class_member_access_expr. 3318 * method.c (hack_identifier): Likewise. 3319 * parse.y (do_id): Use BASELINK, not TREE_LIST. 3320 (primary): Remove uses of build_object_ref. 3321 * pt.c (lookup_template_function): Handle BASELINKs. 3322 (resolve_overloaded_unification): Likewise. 3323 * search.c (build_baselink): Build a BASELINK, not a TREE_LIST. 3324 (lookup_field): Use BASELINK, not TREE_LIST. 3325 (lookup_fnfiels): Likewise. 3326 (setup_class_bindings): Likewise. 3327 * semantics.c (finish_object_call_expr): Do not use 3328 build_method_call when we already know what function is being 3329 called. 3330 * spew.c (identifier_type): Use BASELINK, not TREE_LIST. 3331 * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not 3332 TREE_CHAIN. 3333 (name_p): New function. 3334 * typeck.c (build_object_ref): Remove. 3335 (build_component_ref_1): Likewise. 3336 (build_x_component_ref): Likewise. 3337 (build_class_member_access_expr): New function. 3338 (finish_class_member_access_expr): Likewise. 3339 (build_ptrmemfunc_access_expr): Likewise. 3340 (get_member_function_from_ptrfunc): Use 3341 build_ptrmemfunc_access_expr. 3342 (build_binary_op): Likewise. 3343 (build_unary_op): Likewise. 3344 (build_ptrmemfunc): Likewise. 3345 (pfn_from_ptrmemfunc): Likewise. 3346 * typeck2.c (build_m_component_ref): Adjust comment. 3347 33482002-08-07 Neil Booth <neil@daikokuya.co.uk> 3349 3350 * Make-lang.in (CXX_C_OBJS): Update. 3351 * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option. 3352 * cp-tree.h (cxx_decode_option): Remove. 3353 * decl2.c (compare_options, lang_f_options, unsupported_options, 3354 cxx_decode_option): Remove. 3355 33562002-08-06 Gabriel Dos Reis <gdr@nerim.net> 3357 3358 * typeck.c (build_x_unary_op): Handle pointer-to-member. 3359 33602002-08-05 Geoffrey Keating <geoffk@redhat.com> 3361 3362 * class.c: Don't include obstack.h. 3363 (popclass): 3364 * decl2.c: Delete bogus comment. 3365 * error.c: Don't include obstack.h. 3366 * except.c: Likewise. 3367 (dump_type): Correct comment. 3368 * method.c: Don't include obstack.h. 3369 * tree.c: Likewise. 3370 33712002-08-04 Gabriel Dos Reis <gdr@nerim.net> 3372 3373 Fix PR/2213 3374 * cvt.c (cp_convert_to_pointer): Reject conversions from integral 3375 expressions to pointer-to-data-member of pointer-to-member-functions. 3376 33772002-08-04 Geoffrey Keating <geoffk@redhat.com> 3378 3379 * cvt.c (ocp_convert): Delete obsolete code. 3380 * parse.y (permanent_obstack): Delete declaration. 3381 * pt.c (permanent_obstack): Delete declaration. 3382 * repo.c (permanent_obstack): Delete declaration. 3383 (open_repo_file): Use xmalloc instead of permanent_obstack. 3384 (init_repo): Use xstrdup instead of permanent_obstack. 3385 33862002-08-04 Nathan Sidwell <nathan@codesourcery.com> 3387 3388 * cp-tree.h (VF_DERIVED_VALUE): Remove. 3389 * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE. 3390 33912002-08-03 Nathan Sidwell <nathan@codesourcery.com> 3392 3393 PR 7470. 3394 C++ ABI change - vfunc ordering. 3395 * class.c (add_virtual_function): Remove. 3396 (dfs_modify_all_vtables): Take list of all declared 3397 virtuals. Assign all that are not in primary base. 3398 (check_for_override): Adjust comments. 3399 (create_vtable_ptr): Take single list of virtuals. Build chain 3400 of declared virtuals here. 3401 (layout_class_type): Take single list of virtuals. Adjust. 3402 (finish_struct_1): Keep virtuals on single list. Adjust. 3403 34042002-08-02 Mark Mitchell <mark@codesourcery.com> 3405 3406 * init.c (build_member_call): Use build_new_method_call, not 3407 build_method_call. 3408 34092002-08-02 Krister Walfridsson <cato@df.lth.se> 3410 3411 * Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies. 3412 34132002-08-02 Mark Mitchell <mark@codesourcery.com> 3414 3415 * call.c (build_method_call): Issue a more helpful error message 3416 about ambiguous method names. 3417 34182002-08-02 Nathan Sidwell <nathan@codesourcery.com> 3419 3420 * tree.c (build_shared_int_cst): Make cache file scope, and 3421 GTY it. 3422 34232002-08-02 Jason Merrill <jason@redhat.com> 3424 3425 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define. 3426 (cp_expr_size): New fn. 3427 * call.c (build_over_call): Lose empty class hackery. 3428 (convert_arg_to_ellipsis): Promote non-POD warning to error. 3429 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue. 3430 3431 * semantics.c (expand_body): Do tree optimization in the function 3432 context, too. 3433 34342002-08-01 Neil Booth <neil@daikokuya.co.uk> 3435 3436 * cp-tree.h: Move all warning and flag declarations to c-common.h. 3437 * decl.c: Move all warning and flag variables to c-common.c. 3438 * decl2.c: Move all warning and flag variables to c-common.c. 3439 * lex.c (flag_digraphs): Remove. 3440 (warn_traditional): Now in c-common.c. 3441 34422002-07-31 Mark Mitchell <mark@codesourcery.com> 3443 3444 * call.c (build_field_call): Do not look up the field by name. 3445 (build_method_call): Simplify. 3446 (struct z_candidate): Add access_path and conversion_path. Remove 3447 basetype_path. 3448 (convert_class_to_reference): Adjust use of 3449 add_function_candidate. 3450 (add_candidate): Add conversion_path argument. 3451 (add_function_candidate): Use it. 3452 (add_conv_dndidate): Likewise. 3453 (build_builtin_candidate): Likewise. 3454 (add_template_candidate_real): Add conversion_path argument. 3455 (add_template_conv_candidate): Likewise. 3456 (add_template_candidate): Likewise. 3457 (build_user_type_conversion_1): Use it. 3458 (build_new_function_call): Remove name lookup code. Adjust use of 3459 add_template_candidate and add_function_candidate. 3460 (build_new_op): Likewise. 3461 (convert_like_real): Use build_special_member_call. 3462 (build_over_call): Use cand->conversion_path. 3463 (build_special_member_call): New method. 3464 (build_new_method_call): Remove name lookup code. 3465 * cp-tree.def (OFFSET_REF): Update documentation. 3466 (TEMPLATE_ID_EXPR): Likewise. 3467 * cp-tree.h (BASELINK_ACCESS_BINFO): New macro. 3468 (BASELINK_OPTYPE): Likewise. 3469 (build_new_method_call): Adjust prototype. 3470 (build_special_member_call): New method. 3471 (build_baselink): New method. 3472 (build_offset_ref_call_from_tree): Likewise. 3473 (build_call_from_tree): Likewise. 3474 (finish_qualified_call_expr): Remove. 3475 (finish_call_expr): Adjust prototype. 3476 (build_x_function_call): Remove. 3477 * cvt.c (ocp_convert): Use build_special_member_call. 3478 * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr. 3479 (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and 3480 CALL_EXPR. 3481 (build_offset_ref_call_from_tree): New function. 3482 (build_call_from_tree): Likewise. 3483 * init.c (expand_cleanup): Use build_special_member_call. 3484 (expand_default_init): Likewise. 3485 (build_member_call): Use finish_call_expr. 3486 (build_new_1): Use build_special_member_call. 3487 (push_base_cleanups): Likewise. 3488 * method.c (do_build_assign_ref): Likewise. 3489 * parse.y (template_id): Do not pass a COMPONENT_REF to 3490 lookup_template_function. 3491 (primary): Use parse_finish_call_epxr, not finish_call_expr. 3492 (parse_finish_call_expr): New function. 3493 * pt.c (lookup_template_function): Add assertions. 3494 * search.c (lookup_base): Allow T to be a binfo. 3495 (build_baselink): New function. 3496 (lookup_member): Use it. 3497 * semantics.c (finish_call_expr): Do not do name lookup. 3498 (finish_object_call_expr): Remove #if 0'd code. 3499 (finish_qualified_call_expr): Remove. 3500 * typeck.c (build_x_function_call): Remove. 3501 (build_static_case): Use build_special_member_call. 3502 * typeck2.c (build_functional_cast): Likewise. 3503 35042002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 3505 3506 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c. 3507 35082002-07-30 Gabriel Dos Reis <gdr@nerim.net> 3509 3510 * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion. 3511 35122002-07-30 Nathan Sidwell <nathan@codesourcery.com> 3513 3514 * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more 3515 documentation. 3516 35172002-07-29 Alan Modra <amodra@bigpond.net.au> 3518 3519 * cp-tree.h: Comment typo fix. 3520 35212002-07-29 Richard Earnshaw <rearnsha@arm.com> 3522 3523 * spew.c (space_for_token): Allocate zeroed memory for a new token 3524 chunk. 3525 35262002-07-27 Roger Sayle <roger@eyesopen.com> 3527 3528 * decl.c (builtin_function_1): No need to explicitly mark 3529 BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn. 3530 35312002-07-27 Roger Sayle <roger@eyesopen.com> 3532 3533 * decl2.c (cxx_decode_option): Support -fno-builtin-foo. 3534 35352002-07-26 Jason Merrill <jason@redhat.com> 3536 3537 * call.c (build_over_call): Likewise. 3538 (cp_convert_parm_for_inlining): New fn. 3539 (convert_for_arg_passing): New fn. 3540 (convert_default_arg, build_over_call): Use it. 3541 (type_passed_as): New fn. 3542 * pt.c (tsubst_decl): Use it. 3543 * decl2.c (cp_build_parm_decl): New fn. 3544 (build_artificial_parm): Use it. 3545 (start_static_storage_duration_function): Likewise. 3546 * decl.c (start_cleanup_fn, grokdeclarater): Likewise. 3547 (grokparms): Don't mess with DECL_ARG_TYPE. 3548 * typeck.c (convert_arguments): Use convert_for_arg_passing. 3549 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): 3550 Define. 3551 * cp-tree.h: Declare new fns. 3552 35532002-07-26 Neil Booth <neil@daikokuya.co.uk> 3554 3555 * cp-tree.h (flag_operator_names): Remove. 3556 * decl2.c (flag_operator_names): Remove. 3557 (lang_f_options): Remove operator-names. 3558 * lex.c (D_OPNAME): Remove. 3559 (reswords): Remove operator names. 3560 (rid_to_yy): Remove operator names. 3561 (init_reswords): No need to handle D_OPNAME. 3562 * spew.c (read_process_identifier): There are no operator 3563 names. 3564 35652002-07-26 Jason Merrill <jason@redhat.com> 3566 3567 * dump.c (cp_dump_tree): Call c_dump_tree. 3568 * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 3569 35702002-07-25 Neil Booth <neil@daikokuya.co.uk> 3571 3572 * error.c (print_whitespace): Remove. 3573 * g++spec.c (LIBUNWIND): Move. 3574 * mangle.c (mangled_position, write_signed_number): Remove. 3575 35762002-07-25 Neil Booth <neil@daikokuya.co.uk> 3577 3578 * decl2.c (cxx_decode_option): Similarly. 3579 35802002-07-25 Gabriel Dos Reis <gdr@nerim.net> 3581 3582 * cp-tree.h (cxx_sizeof_nowarn): Now a macro. 3583 (cxx_sizeof_or_alignof_type): Take a third argument. 3584 (cxx_sizeof): Adjust definition. 3585 (cxx_alignof): Likewise. 3586 * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality. 3587 * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for 3588 complaining. 3589 (c_sizeof_nowarn): Remove definition. 3590 (build_unary_op): Use cxx_sizeof_nowarn. 3591 35922002-07-24 Geoffrey Keating <geoffk@redhat.com> 3593 3594 * tree.c (cp_build_qualified_type_real): When copying 3595 pointer-to-method types, unshare the record that holds 3596 the cached pointer-to-member-function type. 3597 35982002-07-23 Neil Booth <neil@daikokuya.co.uk> 3599 3600 * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove. 3601 36022002-07-23 Gabriel Dos Reis <gdr@nerim.net> 3603 3604 Fix PR/7363: 3605 * typeck.c (cxx_sizeof_or_alignof_type): New function. 3606 (c_sizeof): Remove definition. 3607 (expr_sizeof): Use cxx_sizeof. 3608 * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type. 3609 * decl.c (finish_destructor_body): Use cxx_sizeof. 3610 * semantics.c (finish_alignof): Likewise. 3611 (finish_alignof): Use cxx_alignof. 3612 * cp-tree.h (cxx_sizeof, cxx_alignof): New macros. 3613 (cxx_sizeof_or_alignof_type): Declare. 3614 (my_friendly_assert): Move to ../c-common.h. 3615 36162002-07-23 Neil Booth <neil@daikokuya.co.uk> 3617 3618 * class.c, method.c, pt.c, search.c: Don't define obstack macros. 3619 36202002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3621 3622 PR c++/7347, c++/7348 3623 * cp-tree.h (tsubst_flags_t): Add tf_parsing. 3624 * decl.c (make_typename_type): Use it. 3625 (make_unbound_class_template): Likewise. 3626 (lookup_name_real): Don't call type_access_control if scope is 3627 template parameter dependent. 3628 * parse.y (template_arg): Call make_unbound_class_template with 3629 tf_parsing set. 3630 (nest_name_specifier): Call make_typename_type with tf_parsing set. 3631 (typename_sub0): Likewise. 3632 (typename_sub1): Likewise. 3633 (instantiate_decl): Push class scope. 3634 * pt.c (regenerate_decl_from_template): Call pushclass and popclass 3635 for both static variable and member function template. 3636 (instantiate_decl) Call pushclass and popclass when tsubst'ing type 3637 and arguments. 3638 * search.c (type_access_control): Do type access for TEMPLATE_DECL 3639 too. 3640 36412002-07-20 Roger Sayle <roger@eyesopen.com> 3642 3643 * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions 3644 test by using positive_option. Make whitespace consistent. 3645 36462002-07-20 Gabriel Dos Reis <gdr@nerim.net> 3647 3648 * spew.c (struct unparsed_test): Replace 'filename' and 'lineno' 3649 members with 'locus'. Adjust use throughout. 3650 (struct feed): Likewise. 3651 (alloc_unparsed_test): Change prototype, take a 'const location_t *'. 3652 Adjust use. 3653 (snarf_defarg): Use error(), not error_with_file_and_line(). 3654 36552002-07-19 Chris Demetriou <cgd@broadcom.com> 3656 3657 * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever 3658 cpp_options is included. 3659 36602002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3661 3662 PR c++/2862, c++/2863 3663 * pt.c (determine_specialization): Compare the length of 3664 TYPE_ARG_TYPES. Tidy. 3665 36662002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3667 3668 PR c++/3797 3669 * decl.c (duplicate_decls): Don't propagate inlining parameters from 3670 olddecl to newdecl when newdecl is a specialization of the 3671 instantiation olddecl. 3672 36732002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3674 3675 PR c++/4802, c++/5387 3676 * decl.c (make_typename_type): Use enforce_access. 3677 36782002-07-17 Scott Snyder <snyder@fnal.gov> 3679 3680 PR c++/7320 3681 * rtti.c (get_tinfo_decl): Set DECL_COMDAT. 3682 36832002-07-12 Mark Mitchell <mark@codesourcery.com> 3684 3685 * class.c (add_method): Correct handling of conversion operators. 3686 36872002-07-11 Mark Mitchell <mark@codesourcery.com> 3688 3689 PR c++/7224 3690 * class.c (add_method): Simplify. 3691 36922002-07-11 Jason Merrill <jason@redhat.com> 3693 3694 PR c++/7279 3695 * tree.c (cp_copy_res_decl_for_inlining): Also copy 3696 TREE_ADDRESSABLE. 3697 36982002-07-10 Graham Stott <graham.stott@btinternet.com> 3699 3700 * pt.c (template_parm_this_level_p, push_template_decl_real): 3701 Pass depth as int pointer. 3702 37032002-07-11 Tim Josling <tej@melbpc.org.au> 3704 3705 Remove front end hard coding from gengtype.c. 3706 3707 * config-lang.in (gtfiles): Add files needed for this front end. 3708 37092002-07-10 Mark Mitchell <mark@codesourcery.com> 3710 3711 * cp-tree.h (unqualified_name_lookup_error): Declare it. 3712 (begin_function_definition): Adjust prototype. 3713 * lex.c (unqualified_name_lookup_error): New function, split out 3714 from ... 3715 (do_identifier): ... here. 3716 * parse.y (parse_begin_function_definition): New function. 3717 (fn.def1): Use it. 3718 * semantics.c (begin_function_definition): Accept decl-specifiers 3719 and attributes as separate parameters. 3720 37212002-07-10 Jason Merrill <jason@redhat.com> 3722 3723 PR c++/6255 3724 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than 3725 modifying the old one. 3726 37272002-07-09 Mark Mitchell <mark@codesourcery.com> 3728 3729 * cp-tree.h (constructor_name_p): Declare it. 3730 (check_template_template_default_arg): Likewise. 3731 * class.c (handle_using_decl): Use constructor_name_p. 3732 * decl.c (grokdeclarator): Likewise. 3733 * decl2.c (constructor_name_p): Define it. 3734 * init.c (build_member_call): Use constructor_name_p. 3735 * parse.y (template_parm): Use check_template_template_default_arg. 3736 * pt.c (check_explicit_specialization): Use constructor_name_p. 3737 * semantics.c (check_template_template_default_arg): New function. 3738 37392002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3740 3741 * pt.c (can_complete_type_without_circularity): Add static to 3742 function definition. 3743 37442002-07-08 Mark Mitchell <mark@codesourcery.com> 3745 3746 * cp-tree.h (have_extern_spec): Declare it 3747 * decl.c (have_extern_spec): Define it. 3748 (start_decl): Eliminate use of used_extern_spec. 3749 (start_function): Likewise. 3750 * parse.y (have_extern_spec): Remove declaration. 3751 (used_extern_spec): Likewise. 3752 (frob_specs): Eliminate use of used_extern_spec. 3753 (.hush_warning): Likewise. 3754 37552002-07-07 Mark Mitchell <mark@codesourcery.com> 3756 3757 * Make-lang.in (cp/parse.o): Depend on decl.h. 3758 * cp-tree.h (do_decl_instantiation): Change prototype. 3759 * parse.y: Include decl.h. 3760 (parse_decl_instantiation): New function. 3761 (explicit_instantiation): Use it. 3762 * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR 3763 and DECLSPECS. 3764 37652002-07-07 Roger Sayle <roger@eyesopen.com> 3766 3767 * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for 3768 constructor and destructor tests when passed a TEMPLATE_DECL. 3769 37702002-07-05 Jason Merrill <jason@redhat.com> 3771 3772 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null 3773 pointers. 3774 3775 PR optimization/7145 3776 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL. 3777 37782002-07-05 Nathan Sidwell <nathan@codesourcery.com> 3779 3780 Repair damage on weak-impared targets caused by my previous patch. 3781 * cp-tree.h (import_export_tinfo): Add parameter. 3782 * decl2.c (import_export_tinfo): Add parameter, post adjust 3783 DECL_COMDAT. 3784 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by 3785 import_export_tinfo. 3786 37872002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3788 3789 PR c++/6944 3790 * init.c (build_aggr_init): Remove qualifiers of init before calling 3791 build_vec_init. 3792 (build_vec_init): Flatten multi-dimensional array during cleanup. 3793 (build_vec_delete_1): Abort if the type of each element is array. 3794 37952002-07-03 Graham Stott <graham.stott@btinternet.com> 3796 3797 * pt.c (instantiate_class_template): Fix typo. 3798 37992002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3800 3801 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused 3802 by CVS conflict in my last patch. 3803 38042002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3805 3806 PR c++/6716 3807 * pt.c (can_complete_type_without_circularity): New function. 3808 (instantiate_class_template): Use it. 3809 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error 3810 message due to incomplete fields. 3811 38122002-07-01 Mark Mitchell <mark@codesourcery.com> 3813 3814 PR c++/7112 3815 * mangle.c (write_expression): Add mangling for sizeof when 3816 applied to a type. 3817 * operators.def: Remove stale comment. 3818 38192002-06-30 Nathan Sidwell <nathan@codesourcery.com> 3820 3821 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ... 3822 (CPTI_TYPE_INFO_PTR_TYPE): ... this. 3823 (tinfo_decl_type): Replace with ... 3824 (type_info_ptr_type): ... this. 3825 (import_export_tinfo): Declare. 3826 (tinfo_decl_p): Rename to ... 3827 (unemitted_tinfo_decl_p): ... this. 3828 * decl2.c (import_export_decl): Break out tinfo handling into ... 3829 (import_export_tinfo): ... here. New function. 3830 (finish_file): Adjust. 3831 * rtti.c (TINFO_REAL_NAME): New macro. 3832 (init_rtti_processing): Create the tinfo types. 3833 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr. 3834 (get_tinfo_decl): Adjust. 3835 (get_tinfo_ptr): New function. 3836 (get_type_id): Use it. 3837 (tinfo_base_init): Create vtable decl here, if it doesn't exist. 3838 (ptr_initializer): Use get_tinfo_ptr. 3839 (ptm_initializer): Likewise. 3840 (synthesize_tinfo_var): Break into ... 3841 (get_pseudo_ti_init): ... this. Just create the initializer. 3842 (get_pseudo_ti_desc): .. and this. 3843 (create_real_tinfo_var): Remove. 3844 (create_pseudo_type_info): Don't create the vtable decl here. 3845 (get_vmi_pseudo_type_info): Remove. 3846 (create_tinfo_types): Adjust. 3847 (tinfo_decl_p): Rename to ... 3848 (unemitted_tinfo_decl_p): ... here. Adjust. 3849 (emit_tinfo_decl): Adjust. Create the initializer. 3850 38512002-06-27 Mark Mitchell <mark@codesourcery.com> 3852 3853 PR c++/6695 3854 * pt.c (tsubst_friend_class): Substitute into the context of the 3855 friend before using it. 3856 38572002-06-26 Mark Mitchell <mark@codesourcery.com> 3858 3859 * cp-tree.h (xref_tag): Change prototype. 3860 (handle_class_head): Likewise. 3861 (build_x_component_ref): Likewise. 3862 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag. 3863 (xref_tag): Take attributes as a separate parameter. 3864 (xref_tag_from_type): Adjust call to xref_tag. 3865 * decl2.c (build_expr_from_tree): Adjust call to 3866 build_x_component_ref. 3867 (handle_class_head): Take attributes as a separate parameter. 3868 * parse.y (parse_xref_tag): New function. 3869 (parse_handle_class_head): Likewise. 3870 (primary): Use parse_xref_tag. 3871 (class_head_decl): Use parse_handle_class_head. 3872 (class_head_defn): Likewise. 3873 * rtti.c (init_rtti_processing): Adjust call to xref_tag. 3874 (build_dynamic_cast_1): Likewise. 3875 (create_pseudo_type_info): Likewise. 3876 (emit_support_tinfos): Likewise. 3877 * typeck.c (build_object_ref): Adjust call to 3878 build_x_component_ref. 3879 (build_x_component_ref): Remove protect parameter. 3880 38812002-06-25 Mark Mitchell <mark@codesourcery.com> 3882 3883 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS. 3884 * class.c (handle_using_decl): Likewise. 3885 (instantiate_type): Likewise. 3886 * cp-tree.h (BASELINK_FUNCTIONS): New macro. 3887 (xref_basetypes): Change prototype. 3888 (begin_mem_initializers): New function. 3889 (get_overloaded_fn): Likewise. 3890 * decl.c (xref_basetypes): Simplify. 3891 * error.c (dump_expr): Use BASELINK_FUNCTIONS. 3892 * init.c (build_offset_ref): Likewise. 3893 * parse.y (base_init): Use begin_mem_initializers(). 3894 (structsp): Adjust call to xref_basetypes. 3895 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS. 3896 (instantiate_class_template): Adjust call to xref_basetypes. 3897 * semantics.c (begin_mem_initializers): New function. 3898 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS. 3899 (really_overlaoded_fn): Likewise. 3900 (get_overloaded_fn): New function.' 3901 (get_first_fn): USe BASELINK_FUNCTIONS. 3902 39032002-06-24 Mark Mitchell <mark@codesourcery.com> 3904 3905 * cp-tree.h (SCALAR_TYPE_P): New macro. 3906 (check_for_out_of_scope_variable): New function. 3907 (at_class_scope_p): Likewise. 3908 (finish_fname): Likewise. 3909 * class.c (finish_struct): Use at_function_scope_p. 3910 * decl.c (check_for_out_of_scope_variable): New function, split 3911 out from do_identifier. 3912 (finish_enum): Use at_function_scope_p. 3913 * lex.c (do_identifier): Use check_for_out_of_scope_variable. 3914 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname. 3915 (primary): Use at_function_scope_p. 3916 * search.c (at_class_scope_p): New function. 3917 * semantics.c (finish_fname): Likewise. 3918 (check_multiple_declarators): Use at_function_scope_p. 3919 39202002-06-23 Mark Mitchell <mark@codesourcery.com> 3921 3922 * parse.y (parse_scoped_id): New function. 3923 (primary): Use it. 3924 * cp-tree.h (do_scoped_id): Adjust declaration. 3925 * lex.c (do_scoped_id): Remove call to yylex. 3926 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id. 3927 * typeck2.c (add_exception_specifier): Use tree_cons, rather than 3928 expanding it inline. 3929 39302002-06-23 Matt Thomas <matt@3am-software.com> 3931 3932 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to 3933 "#if VMS_TARGET". 3934 39352002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3936 3937 * mangle.c (integer_type_codes): Const-ify. 3938 39392002-06-20 Richard Henderson <rth@redhat.com> 3940 3941 PR c++/6747 3942 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early. 3943 Call put_var_into_stack. 3944 39452002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3946 3947 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit 3948 array size calculation. 3949 39502002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3951 3952 PR c++/6892 3953 * pt.c (tsubst_expr): Handle FILE_STMT. 3954 39552002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3956 3957 PR c++/6723 3958 * pt.c (lookup_template_class): Don't build complete argument of 3959 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template 3960 argument. 3961 39622002-06-19 Akim Demaille <akim@epita.fr> 3963 3964 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with 3965 decl.h's TYPENAME. 3966 * spew.c, lex.c: Adjust. 3967 * parse.y (explicit_instantiation): Add empty action to override 3968 the default $$ = $1 where it introduces a type clash. 3969 39702002-06-14 Jason Merrill <jason@redhat.com> 3971 3972 * semantics.c (begin_for_stmt): Push the 'for' scope before 3973 adding the FOR_STMT. 3974 3975 C++ ABI changes. 3976 * class.c (build_base_field): Set DECL_PACKED. 3977 (layout_class_type): Don't use tail padding of PODs. 3978 * mangle.c (write_unqualified_name): Fix template conversion op 3979 mangling. 3980 39812002-06-16 Richard Henderson <rth@redhat.com> 3982 3983 PR opt/6793 3984 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test 3985 after template instantiation. 3986 39872002-06-16 Richard Henderson <rth@redhat.com> 3988 3989 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common. 3990 39912002-06-15 Gabriel Dos Reis <gdr@codesourcery.com> 3992 3993 * cp-tree.h (compiler_error): Remove declaration. 3994 * lex.c (compiler_error): Remove definition. 3995 39962002-06-14 Steve Ellcey <sje@cup.hp.com> 3997 3998 * g++spec.c (LIBUNWIND): New. 3999 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set. 4000 40012002-06-13 Jessica Han <jessica@cup.hp.com> 4002 4003 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN. 4004 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE. 4005 (build_vbase_offset_vtbl_entries): Likewise. 4006 * rtti.c (build_headof): Likewise. 4007 (get_tinfo_decl_dynamic): Likewise. 4008 (create_pseudo_type_info): Likewise. 4009 40102002-06-12 Stan Shebs <shebs@apple.com> 4011 4012 * mpw-config.in: Remove file, no longer used. 4013 * mpw-make.sed: Ditto. 4014 40152002-06-07 Zack Weinberg <zack@codesourcery.com> 4016 4017 * decl2.c: Update call to cpp_handle_option. 4018 40192002-06-07 H.J. Lu (hjl@gnu.org) 4020 4021 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT. 4022 40232002-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 4024 4025 * error.c (cp_error_at): Fix typo. 4026 40272002-06-04 Gabriel Dos Reis <gdr@codesourcery.com> 4028 4029 * error.c (cp_diagnostic_starter): Adjust call. 4030 (maybe_print_instantiation_context): Change prototype to take a 4031 'diagnostic_info *'. 4032 (print_instantiation_full_context): Likewise. 4033 (print_instantiation_partial_context): Likewise. 4034 (cp_diagnostic_starter): Likewise. 4035 (cp_diagnostic_finalizer): Likewise. 4036 (cp_print_error_function): Likewise. 4037 (cp_printer): Take a secondary parameter as a 'text_info *'. 4038 Remove output_state savings. Adjust calls. 4039 40402002-06-03 Geoffrey Keating <geoffk@redhat.com> 4041 4042 * pt.c (inline_parm_levels): Mark for GC. 4043 4044 * mangle.c (start_mangling): Allocate G.substitutions here... 4045 (init_mangle): ... rather than here. 4046 (finish_mangling): Clear the varray pointer when done with it. 4047 * spew.c (yylexstring): Don't use VARRAY_FREE. 4048 * search.c (bfs_walk): Don't use VARRAY_FREE. 4049 * decl2.c (pending_statics): Use gengtype to mark. 4050 (deferred_fns): Likewise. 4051 (ssdf_decls): Likewise. 4052 (init_decl2): Delete. 4053 * decl.c (pop_from_top_level): Don't use VARRAY_FREE. 4054 (cxx_init_decl_processing): Don't call init_decl2. 4055 (cxx_pop_function_context): Don't use VARRAY_FREE. 4056 * cp-tree.h (struct saved_scope): No need for special marking 4057 of varrays. 4058 (struct language_function): Likewise. 4059 (local_classes): Use gengtype to mark. 4060 (init_decl2): Delete prototype. 4061 * class.c (init_class_processing): Don't use 4062 ggc_add_tree_varray_root. 4063 (build_vtbl_initializer): Don't use VARRAY_FREE. 4064 4065 * decl.c (typename_compare): Don't use same_type_p. 4066 4067 * decl.c: Include hashtab.h instead of hash.h. 4068 (typename_hash): Update to use htab_h. 4069 (typename_compare): Likewise. 4070 (typename_htab): Use gengtype to mark. 4071 (build_typename_type): Update to use htab_h. 4072 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h. 4073 4074 * Make-lang.in (gt-cp-tree.h): New rule. 4075 (cp/tree.o): Depend on gt-cp-tree.h. 4076 * config-lang.in (gtfiles): Add cp/tree.c. 4077 * tree.c: Include gt-cp-tree.h. 4078 (list_hash_table): Use gengtype to mark. 4079 (init_tree): Use gengtype to mark trees. 4080 4081 * Make-lang.in (cp/decl.o): Add debug.h dependency. 4082 * call.c (struct z_candidate): Use gengtype. 4083 (USER_CONV_CAND): Use WRAPPER_ZC. 4084 (convert_class_to_reference): Use build_zc_wrapper. 4085 (build_type_conversion_1): Likewise. 4086 (build_over_call): Use WRAPPER_ZC. 4087 (add_warning): Use build_zc_wrapper. 4088 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete. 4089 * cp-tree.h (struct lang_identifier): Use gengtype. 4090 (struct template_parm_index_s): Likewise. 4091 (struct ptrmem_cst): Likewise. 4092 (struct tree_binding): Likewise. 4093 (struct tree_overload): Likewise. 4094 (struct tree_srcloc): Likewise. 4095 (struct tree_wrapper): Likewise. Also modify to have a pointer 4096 to struct z_candidate rather than void. 4097 (enum cp_tree_node_structure_enum): New. 4098 (union lang_tree_node): New. 4099 (cxx_mark_tree): Delete prototype. 4100 (cp_tree_node_structure): New prototype. 4101 (build_ptr_wrapper): Delete prototype. 4102 (build_int_wrapper): Delete prototype. 4103 (build_zc_wrapper): New prototype. 4104 * decl.c: Include debug.h 4105 (cxx_mark_tree): Delete. 4106 (cp_tree_node_structure): New. 4107 * tree.c (build_ptr_wrapper): Delete. 4108 (build_int_wrapper): Delete. 4109 (build_zc_wrapper): New. 4110 4111 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK): 4112 Correct typo. Patch from k_fukui@highway.ne.jp. 4113 4114 * semantics.c (current_stmt_tree): Update for change to 4115 struct language_function. 4116 (finish_mem_initializers): Likewise. 4117 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status. 4118 * cp-tree.h (struct language_function): Rename from 4119 cp_language_function. Change all uses. 4120 (cp_function_chain): Don't need to cast. 4121 4122 * class.c (duplicate_tag_error): Reset discriminator. 4123 (check_bases_and_members): Update for data structure changes. 4124 * cp-tree.h (struct lang_id2): Use gengtype. 4125 (flagged_type_tree): Likewise. 4126 (SET_LANG_ID): Use GGC on struct lang_id2. 4127 (struct cp_language_function): Use gengtype. Remove field 4128 'x_vcalls_possible_p'. 4129 (current_vcalls_possible_p): Delete. 4130 (struct lang_type_header): New. 4131 (struct lang_type_class): Rename from struct lang_type. Include 4132 struct lang_type_header. 4133 (struct lang_type_ptrmem): New. 4134 (struct lang_type): New. 4135 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros. 4136 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros. 4137 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes. 4138 (struct lang_decl_flags): Use gengtype. Add discriminators. 4139 (struct lang_decl): Use gengtype. Add and use discriminators. 4140 Update the macros that reference moved fields. 4141 (LANG_DECL_U2_CHECK): New function. Use it when appropriate. 4142 (SET_DECL_THUNK_P): Set discriminator too. 4143 (clear_inline_text_obstack): Delete prototype. 4144 (finish_inline_definitions): Delete prototype. 4145 (mark_pending_inlines): Delete prototype. 4146 (lang_check_failed): New prototype. 4147 * decl.c (struct named_label_use_list): Use gengtype. 4148 (struct named_label_list): Likewise. 4149 (mark_binding_level): Delete. 4150 (mark_named_label_lists): Delete. 4151 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC. 4152 (cxx_init_decl_processing): Use generated marker routine. 4153 (begin_destructor_body): Delete dead set to 4154 current_vcalls_possible_p. 4155 (mark_lang_function): Delete. 4156 (mark_cp_function_context): Delete. 4157 (lang_mark_tree): Use generated marker routines. 4158 * decl2.c (start_objects): Set discriminator when setting 4159 GLOBAL_INIT_PRIORITY. 4160 * lex.c (retrofit_lang_decl): Set discriminators. 4161 (copy_lang_type): Update for changes to lang_type structure. 4162 (cp_make_lang_type): Set discriminator. 4163 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers. 4164 * search.c: Include ggc.h. 4165 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it. 4166 (finish_inline_definitions): Delete. 4167 * spew.c (struct token): Use gengtype. 4168 (struct token_chunk): New. 4169 (struct unparsed_text): Use gengtype. Store tokens in chunks. 4170 (struct feed): Use gengtype. 4171 (feed_obstack): Delete. 4172 (feed): Mark as GC root. 4173 (pending_inlines): Mark as GC root. 4174 (pending_inlines_tail): Likewise. 4175 (processing_these_inlines): Likewise. 4176 (token_obstack): Make static. 4177 (first_token): Likewise. 4178 (init_spew): Don't initialize deleted things; use gengtype for roots. 4179 (clear_inline_text_obstack): Delete. 4180 (feed_input): Use GC for struct feed. Update for changes to 4181 struct unparsed_text. 4182 (mark_pending_inlines): Delete. 4183 (next_token): Rename from add_token. Change all callers. Update 4184 for changes to struct unparsed_text. 4185 (space_for_token): New. 4186 (remove_last_token): New. 4187 (alloc_unparsed_text): New. 4188 (snarf_block): Take an unparsed_text. Update for changes to struct 4189 unparsed_text. 4190 (snarf_method): Update for changes to struct unparsed_text. 4191 (snarf_defarg): Update for changes to struct unparsed_text. 4192 * tree.c (lang_check_failed): New. 4193 4194 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h 4195 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules. 4196 (cp/spew.o): Add dependency on gt-<filename>.h. 4197 (cp/decl2.o): Add dependency on gt-<filename>.h. 4198 (cp/call.o): Add dependency on gt-<filename>.h. 4199 (cp/pt.o): Add dependency on gt-<filename>.h. 4200 (cp/repo.o): Add dependency on gt-<filename>.h. 4201 (cp/parse.o): Add dependency on gt-<filename>.h. 4202 * call.c: Use gengtype for roots. 4203 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c 4204 decl2.c parse.y pt.c repo.c spew.c. 4205 * cp-tree.h: Use gengtype for roots. 4206 (struct saved_scope): Use GGC, gengtype. 4207 (cp_parse_init): Delete prototype. 4208 (init_pt): Delete prototype. 4209 * decl.c: Use gengtype for roots. 4210 (mark_saved_scope): Delete. 4211 (cxx_init_decl_processing): Don't call deleted initilisation 4212 routines. 4213 (signed_size_zero_node): Delete, unused. 4214 * decl.h: Use gengtype for roots. 4215 * decl2.c: Use gengtype for roots. 4216 * lex.h: Use gengtype for roots. 4217 * parse.y: Use gengtype for roots. 4218 (cp_parse_init): Delete. 4219 * pt.c: Use gengtype for roots. 4220 (init_pt): Delete. 4221 * repo.c: Use gengtype for roots. 4222 * spew.c: Use gengtype for roots. 4223 4224 * Make-lang.in: Allow for filename changes. Add gtype-cp.h. 4225 (cp/decl.o): Add dependency on gtype-cp.h. 4226 * decl.c: Remove use of add_deletable_root, use GTY marker instead. 4227 Include gtype-cp.h. Allow for filename changes. 4228 4229 * Make-lang.in (cp/gt-decl.h): Generate using gengtype. 4230 (cp/decl.o): Add cp/gt-decl.h dependency. 4231 * config-lang.in (gtfiles): New. 4232 * tree.h: Rename struct binding_level to struct cp_binding_level. 4233 * decl.c: Rename struct binding_level to struct cp_binding_level. 4234 Include cp/gt-decl.h. 4235 (struct cp_binding_level): Use gengtype. 4236 (make_binding_level): Use GGC on struct cp_binding_level. 4237 (mark_binding_level): Use gt_ggc_m_cp_binding_level. 4238 (cxx_init_decl_processing): Mark free_binding_level as 4239 deletable. 4240 4241 * decl.c (mark_cp_function_context): Update calling sequence. 4242 4243 * decl.c (start_function): Don't free 'struct 4244 cp_language_function'. 4245 (pop_cp_function_context): Likewise. 4246 (save_function_data): Allocate it using GC. 4247 * semantics.c (genrtl_start_function): Don't free 'struct 4248 cp_language_function'. 4249 42502002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk> 4251 4252 * lang-specs.h: Use cpp_debug_options. 4253 42542002-05-28 Zack Weinberg <zack@codesourcery.com> 4255 4256 * mangle.c, tree.c: Include real.h. 4257 * Make-lang.in: Update dependency lists. 4258 42592002-05-25 Neil Booth <neil@daikokuya.demon.co.uk> 4260 4261 * lex.c: Don't include c-lex.h. 4262 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h. 4263 42642002-05-23 Neil Booth <neil@daikokuya.demon.co.uk> 4265 4266 * spew.c (yyungetc, snarf_block): Remove indent_level handling. 4267 42682002-05-22 Richard Henderson <rth@redhat.com> 4269 4270 * decl.c (obscure_complex_init): Check for VAR_DECL 4271 before using DECL_THREAD_LOCAL. 4272 42732002-05-22 Richard Henderson <rth@redhat.com> 4274 4275 * decl.c (check_tag_decl): Handle RID_THREAD. 4276 (obscure_complex_init): Reject run-time init of tls. 4277 (grokvardecl, grokdeclarator): Handle RID_THREAD. 4278 * lex.c (reswords): Add __thread. 4279 (rid_to_yy): Map RID_THREAD to SCSPEC. 4280 42812002-05-22 Neil Booth <neil@daikokuya.demon.co.uk> 4282 4283 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. 4284 * cp-tree.h (cxx_post_options): Kill. 4285 * cp-lex.c (cxx_post_options): Kill. 4286 42872002-05-21 Richard Henderson <rth@redhat.com> 4288 4289 * lex.c (rid_to_yy): Add RID_THREAD. 4290 42912002-05-21 Alexandre Oliva <aoliva@redhat.com> 4292 4293 * init.c (build_vec_init): Test for trivial copy-assignment when 4294 copy-assigning arrays. 4295 42962002-05-20 Andreas Jaeger <aj@suse.de> 4297 4298 * init.c (build_default_init): Remove unused variable. 4299 43002002-05-20 Alexandre Oliva <aoliva@redhat.com> 4301 4302 * call.c (any_strictly_viable): New. 4303 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs. 4304 43052002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4306 4307 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing. 4308 43092002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4310 4311 PR c++/186, DR 259 4312 * pt.c (do_decl_instantiation): Don't complain explicit 4313 instantiation after explicit specialization. 4314 (do_type_instantiation): Likewise. 4315 43162002-05-19 Alexandre Oliva <aoliva@redhat.com> 4317 4318 * cp-tree.h (complete_type_or_diagnostic): Changed prototype, 4319 renamed from... 4320 (complete_type_or_else): ... this. Redefined as macro. 4321 (cxx_incomplete_type_diagnostic): Declare. 4322 (cxx_incomplete_type_error): Define as macro. 4323 * init.c (build_delete): Warn about incomplete types other than 4324 void, and use the built-in operator delete for them. 4325 * typeck.c (complete_type_or_diagnostic): Renamed from 4326 complete_type_or_else. Added warn_only argument, passed to... 4327 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print 4328 warnings or errors depending on new warn_only argument. Renamed 4329 from... 4330 (cxx_incomplete_type_error): ... this. New implementation in 4331 terms of cxx_incomplete_type_diagnostic. 4332 43332002-05-18 Jason Merrill <jason@redhat.com> 4334 4335 PR c++/6611 4336 * decl2.c (import_export_decl): If we clear 4337 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set. 4338 43392002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4340 4341 PR c++/6620 4342 * pt.c (verify_class_unification): Don't check if PARM is template 4343 parameter dependent. Simplify. 4344 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template 4345 parameter dependent expression. 4346 43472002-05-14 Jason Merrill <jason@redhat.com> 4348 4349 * rtti.c (get_tinfo_decl): Don't call comdat_linkage. 4350 Do set DECL_COMDAT. 4351 (synthesize_tinfo_var): Take the public decl. 4352 (create_real_tinfo_var): Likewise. Check DECL_COMDAT. 4353 (emit_tinfo_decl): Adjust. Call import_export_decl. 4354 * decl2.c (import_export_decl): Simplify tinfo decl handling. 4355 43562002-05-14 Alexandre Oliva <aoliva@redhat.com> 4357 4358 * cp-tree.h (struct lang_type): Added non_zero_init. 4359 (CLASSTYPE_NON_ZERO_INIT_P): New macro. 4360 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare. 4361 * class.c (check_field_decls): Test non_zero_init. 4362 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for 4363 zero-to-NULL conversions. 4364 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a 4365 type that needs zero-initialization without zeros. 4366 (check_initializer_decl): Compute zero-initializer for types 4367 that require a non-trivial one. 4368 * init.c (build_forced_zero_init): New function. 4369 (build_default_init): Use it. 4370 * tree.c (zero_init_p): New function. 4371 * typeck2.c (force_store_init_value): New function. 4372 (process_init_constructor): Create non-trivial zero-initializers 4373 for array members and class fields. 4374 43752002-05-14 Neil Booth <neil@daikokuya.demon.co.uk> 4376 4377 * lang-specs.h: Remove redundant -lang-c++. 4378 43792002-05-13 Jason Merrill <jason@redhat.com> 4380 4381 * class.c (build_vtbl_ref_1): Use fixed_type_or_null. 4382 (fixed_type_or_null): See through reference vars. 4383 (build_base_path): Vtable contents are constant. 4384 * typeck.c (get_member_function_from_ptrfunc): Likewise. 4385 43862002-05-12 Jason Merrill <jason@redhat.com> 4387 4388 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created 4389 structs are safe. 4390 43912002-05-09 Neil Booth <neil@daikokuya.demon.co.uk> 4392 4393 * cp-tree.h (flag_ansi): Remove. 4394 * decl2.c (flag_ansi): Remove. 4395 (cxx_decode_option): Set flag_iso and flag_undef. 4396 43972002-05-09 Jason Merrill <jason@redhat.com> 4398 4399 * typeck.c (get_member_function_from_ptrfunc): Reorganize. 4400 Use subtraction rather than a bitmask to get the index. 4401 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node. 4402 4403 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P. 4404 44052002-05-07 Neil Booth <neil@daikokuya.demon.co.uk> 4406 4407 * Make-lang.in (decl2.o): Update. 4408 * cp-tree.h (warn_multichar): Remove. 4409 * decl2.c: Include c-common.h. 4410 (warn_multichar): Remove. 4411 44122002-05-03 Jason Merrill <jason@redhat.com> 4413 4414 * tree.c (build_cplus_array_type): Only const and volatile get 4415 special handling. 4416 4417 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h. 4418 44192002-04-30 Mark Mitchell <mark@codesourcery.com> 4420 4421 ABI change, returning simple classes from functions. 4422 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if 4423 TYPE_HAS_TRIVIAL_INIT_REF is false or 4424 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true. 4425 44262002-04-30 Jason Merrill <jason@redhat.com> 4427 4428 PR debug/6436 4429 * decl.c (grokdeclarator): Don't override TYPE_NAME of an 4430 anonymous class with a typedef if there are attributes. 4431 44322002-04-29 Paul Eggert <eggert@twinsun.com> 4433 4434 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$. 4435 44362002-04-29 Jakub Jelinek <jakub@redhat.com> 4437 4438 PR c++/6477 4439 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is 4440 non-NULL first. 4441 44422002-04-29 Mark Mitchell <mark@codesourcery.com> 4443 4444 PR c++/6492 4445 * pt.c (tsubst_friend_class): If the friend has an explicit scope, 4446 enter that scope before name lookup. 4447 4448 PR c++/6486 4449 * method.c (do_build_copy_constructor): Avoid building 4450 cv-qualified reference types. 4451 44522002-04-29 Nathan Sidwell <nathan@codesourcery.com> 4453 4454 PR c++/5719 4455 * decl.c (grok_op_properties): Assignment ops don't have to return 4456 by value. operator% should. 4457 44582002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 4459 4460 PR c/6343 4461 * decl.c (duplicate_decls): Call merge_weak. 4462 44632002-04-26 Richard Henderson <rth@redhat.com> 4464 4465 * parse.y (malloced_yyss, malloced_yyvs): New. 4466 (yyoverflow): Re-add. Set them. 4467 (free_parser_stacks): New. 4468 44692002-04-26 Mark Mitchell <mark@codesourcery.com> 4470 4471 PR c++/6497 4472 * method.c (do_build_assign_ref): Pass a derivation to 4473 build_method_call when calling base class assignment operators. 4474 44752002-04-26 Richard Henderson <rth@redhat.com> 4476 4477 * parse.y (yyoverflow): Revert. 4478 44792002-04-26 Richard Henderson <rth@redhat.com> 4480 4481 PR c/3581 4482 * parse.y (string): Remove. Update all uses to use STRING 4483 instead, and not call combine_strings. 4484 * rtti.c (tinfo_name): Use fix_string_type. 4485 * semantics.c (finish_asm_stmt): Don't call combine_strings. 4486 * spew.c (yylexstring): New. 4487 (read_token): Use it. 4488 44892002-04-25 Richard Henderson <rth@redhat.com> 4490 4491 PR c/2161 4492 * parse.y (yyoverflow): New. 4493 44942002-04-25 Jason Merrill <jason@redhat.com> 4495 4496 PR c++/5607 4497 * search.c (check_final_overrider): No longer static. 4498 * class.c (update_vtable_entry_for_fn): Call it. 4499 * cp-tree.h: Adjust. 4500 45012002-04-25 Neil Booth <neil@daikokuya.demon.co.uk> 4502 4503 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. 4504 * cp-tree.h (cxx_set_yydebug): Die. 4505 * lex.c (YYDEBUG): Get from c-lex.h. 4506 (cxx_set_yydebug): Remove. 4507 * parse.y: Include c-lex.h. 4508 (YYDEBUG): Get from c-lex.h. 4509 45102002-04-24 Mark Mitchell <mark@codesourcery.com> 4511 4512 PR c++/6438. 4513 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs 4514 void. 4515 45162002-04-24 Neil Booth <neil@daikokuya.demon.co.uk> 4517 4518 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, 4519 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): 4520 Redefine. 4521 * cp-tree.h (cp_attribute_table): Rename. 4522 * decl.c (lang_attribute_table): Remove declaration. 4523 (cxx_init_decl_processing): Don't set it. 4524 * tree.c (cp_attribute_table): Rename. 4525 45262002-04-24 Jason Merrill <jason@redhat.com> 4527 4528 PR c++/6331 4529 * method.c (do_build_copy_constructor): Use cp_build_qualified_type. 4530 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals. 4531 The pedwarn for array assignment is now unconditional. 4532 * tree.c (build_cplus_array_type_1): Still process simple array types 4533 normally in templates. 4534 4535 PR c++/6395 4536 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i 4537 stuff for comdats. 4538 45392002-04-23 Jakub Jelinek <jakub@redhat.com> 4540 4541 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class 4542 node with attributes. 4543 45442002-2-23 David O'Brien <obrien@FreeBSD.org> 4545 4546 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add. 4547 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given. 4548 45492002-04-23 Mark Mitchell <mark@codesourcery.com> 4550 4551 PR c++/6256: 4552 * pt.c (tsubst_friend_class): Handle templates with explicit 4553 nested names. 4554 4555 PR c++/6331: 4556 * typeck.c (merge_types): Remember the cv-qualification of pointer 4557 types when merging them. 4558 45592002-04-20 Neil Booth <neil@daikokuya.demon.co.uk> 4560 4561 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT, 4562 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine. 4563 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context, 4564 cxx_mark_function_context): New. 4565 * decl.c (push_cp_function_context, pop_cp_function_context, 4566 mark_cp_function_context): Rename for consistency. 4567 (cxx_init_decl_processing): Don't set old hooks. 4568 45692002-04-19 Neil Booth <neil@daikokuya.demon.co.uk> 4570 4571 * call.c (convert_type_from_ellipsis): Rename, update. 4572 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine. 4573 * cp-tree.h (convert_type_from_ellipsis): Rename. 4574 * decl.c (cxx_init_decl_processing): Don't set hook. 4575 45762002-04-18 Neil Booth <neil@daikokuya.demon.co.uk> 4577 4578 * call.c (build_new_method_call): Update. 4579 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine. 4580 * cp-tree.h (cxx_incomplete_type_error): New. 4581 * decl.c (grokdeclarator, grokparms): Update. 4582 * decl2.c (check_classfn): Update. 4583 * pt.c (tsubst): Update. 4584 * typeck.c (complete_type_or_else, expr_sizeof, 4585 decay_conversion): Update. 4586 * typeck2.c (incomplete_type_error): Rename. 4587 (add_exception_specifier): Update. 4588 45892002-04-18 Jason Merrill <jason@redhat.com> 4590 4591 PR c++/5658 4592 * search.c (setup_class_bindings): A class template qualifies as a 4593 type binding. 4594 45952002-04-17 Jakub Jelinek <jakub@redhat.com> 4596 4597 PR c++/6316 4598 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop 4599 before expanding. 4600 46012002-04-16 Mark Mitchell <mark@codesourcery.com> 4602 4603 * init.c (begin_init_stmts): Remove commented out code. 4604 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. 4605 * semantics.c (begin_gobal_stmt_expr): Adjust call to 4606 expand_start_stmt_expr. 4607 46082002-04-15 Mark Mitchell <mark@codesourcery.com> 4609 4610 * decl.c (register_dtor_fn): Pass the address of dso_handle, not 4611 dso_handle itself, to __cxa_atexit. 4612 46132002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 4614 4615 * error.c (cxx_print_error_function): Adjust call to macros. 4616 46172002-04-14 Jakub Jelinek <jakub@redhat.com> 4618 4619 * class.c (layout_virtual_bases): Do all dsize computation on trees. 4620 46212002-04-14 Jason Merrill <jason@redhat.com> 4622 4623 * typeck.c (get_member_function_from_ptrfunc): Don't do 4624 gratuitious division and multiplication on 4625 ptrmemfunc_vbit_in_delta targets. 4626 46272002-04-12 Mark Mitchell <mark@codesourcery.com> 4628 4629 PR c++/5373. 4630 * semantics.c (finish_expr_stmt): Remember the type of the 4631 expression before any conversions are performed. 4632 46332002-04-12 Mark Mitchell <mark@codesourcery.com> 4634 4635 PR c++/5189. 4636 * call.c (add_template_candidate_real): Do not treat member 4637 templates as copy constructors. 4638 46392002-04-12 Mark Mitchell <mark@codesourcery.com> 4640 4641 * decl.c (duplicate_decls): Do not copy the RTL for a variable 4642 declaration if the old variable had an incomplete type and the new 4643 variable does not. 4644 (complete_vars): Do not call layout_decl for completed variables. 4645 46462002-04-12 Richard Sandiford <rsandifo@redhat.com> 4647 4648 * decl.c (duplicate_decls): Don't try to unify an implicit typedef 4649 with an explicit one. 4650 (follow_tag_typedef): New. 4651 (lookup_tag): Use it to extract the tag of an explicit typedef. 4652 (xref_tag): Likewise. 4653 46542002-04-11 Andrew Haley <aph@redhat.com> 4655 4656 * typeck.c (type_after_usual_arithmetic_conversions): 4657 If two types have the same variant, return immediately. 4658 When two floating-point operands are the same precision: 4659 convert to float if one of the operands is float; 4660 if neither operand is one of the standard types, return the type 4661 of the first operand. 4662 46632002-04-10 Nathan Sidwell <nathan@codesourcery.com> 4664 4665 PR c++/5507 4666 * decl.c (make_typename_type): Remove implicit typenameness. 4667 46682002-04-09 Jason Merrill <jason@redhat.com> 4669 4670 PR optimization/6189 4671 * semantics.c (genrtl_start_function): Don't free 4672 DECL_SAVED_FUNCTION_DATA for inline functions. 4673 4674 * init.c (build_member_call): For now, don't convert to 4675 intermediate base if it would cause an error. 4676 46772002-04-08 Paolo Carlini <pcarlini@unitus.it> 4678 4679 * parse.y (namespace_qualifier, maybe_identifier, 4680 begin_explicit_instantiation, end_explicit_instantiation, 4681 apparent_template_type, .finish_template_type, 4682 do_id, maybe_init, defarg_again, component_decl_1): 4683 Add ending ';', in accordance with POSIX. 4684 46852002-04-06 Mark Mitchell <mark@codesourcery.com> 4686 4687 PR c++/5571 4688 * class.c (layout_class_type): Remember incomplete static 4689 variables. 4690 (finish_struct_1): Call complete_vars, not 4691 hack_incomplete_structures. 4692 * cp-tree.h (hack_incomplete_structures): Rename to ... 4693 (complete_vars): ... this. 4694 (struct saved_scope): Remove incomplete. 4695 (namespace_scope_incomplete): Remove. 4696 * decl.c (struct binding_level): Remove incomplete. 4697 (incomplete_vars): New variable. 4698 (mark_binding_level): Don't mark incomplete. 4699 (print_binding_level): Don't print it. 4700 (mark_saved_scope): Don't mark incomplete. 4701 (pushdecl): Use maybe_register_incopmlete_var. 4702 (cxx_init_decl_processing): Register incomplete_vars for GC. 4703 (start_decl_1): Clarify error message. 4704 (hack_incomplete_vars): Remove. 4705 (maybe_register_incomplete_var): New function. 4706 (complete_vars): Likewise. 4707 47082002-04-06 Jason Merrill <jason@redhat.com> 4709 4710 PR c++/4934 4711 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is 4712 set before checking it. 4713 4714 PR c++/525 4715 * init.c (build_member_call): Use build_scoped_ref. 4716 (resolve_offset_ref): Likewise. 4717 * call.c (build_scoped_method_call): Likewise. 4718 * tree.c (maybe_dummy_object): Kludge around current_class_type being 4719 wrong. 4720 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm. 4721 * cp-tree.h: Adjust. 4722 4723 * init.c (push_base_cleanups): Just use build_scoped_method_call. 4724 4725 PR c++/6179 4726 * method.c (implicitly_declare_fn): Pass unqualified type to 4727 synthesize_exception_spec. 4728 47292002-04-04 Neil Booth <neil@daikokuya.demon.co.uk> 4730 4731 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. 4732 * cvt.c: Update comment. 4733 * init.c (expand_cleanup_for_base): Update. 4734 * semantics.c (finish_parenthesized_expr): Update. 4735 * typeck.c (cp_truthvalue_conversion): Update. 4736 47372002-04-04 Jason Merrill <jason@redhat.com> 4738 4739 * semantics.c (finish_eh_cleanup): New fn. 4740 * cp-tree.h: Add prototype. 4741 * init.c (perform_member_init, expand_cleanup_for_base): Use 4742 finish_eh_cleanup. 4743 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove. 4744 * cp-tree.h: Remove references. 4745 * decl.c (begin_constructor_body, end_constructor_body): Likewise. 4746 * dump.c (cp_dump_tree): Likewise. 4747 * pt.c (tsubst_expr): Likewise. 4748 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove. 4749 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT. 4750 * tree.c (cp_statement_code_p): Likewise. 4751 4752 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup. 4753 4754 PR c++/5636 4755 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on 4756 cleanup for nrv. 4757 4758 PR c++/5104 4759 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception 4760 specifiers. 4761 [METHOD_TYPE]: Use same code as FUNCTION_TYPE. 4762 47632002-04-03 Richard Henderson <rth@redhat.com> 4764 4765 * cp-lang.c (cxx_warn_unused_global_decl): New. 4766 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New. 4767 47682002-04-03 Neil Booth <neil@daikokuya.demon.co.uk> 4769 4770 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine. 4771 * tree.c (init_tree): Don't set hook. 4772 47732002-04-03 Roger Sayle <roger@eyesopen.com> 4774 4775 PR c++/5998: 4776 * decl.c (duplicate_decls): Don't mess with assembler names when 4777 redeclaring builtin functions as static. 4778 47792002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> 4780 4781 * call.c (build_addr_func): Update. 4782 * class.c (resolve_address_of_overloaded_function): Update. 4783 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. 4784 * cp-tree.h (cxx_mark_addressable): New. 4785 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update. 4786 * decl2.c (build_cleanup): Update. 4787 * except.c (build_throw): Update. 4788 * init.c (resolve_offset_ref): Update. 4789 * pt.c (convert_nontype_argument): Update. 4790 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update. 4791 * typeck.c (decay_conversion, build_array_ref, build_unary_op, 4792 unary_complex_lvalue): Update. 4793 (mark_addressable): Rename. 4794 47952002-04-01 Roger Sayle <roger@eyesopen.com> 4796 4797 PR c++/5998: 4798 * decl.c (duplicate_decls): Overwrite the RTL when (and only 4799 when) overwriting a built-in function. Don't use COPY_DECL_RTL, 4800 but follow the SET_DECL_RTL idiom used elsewhere in the function. 4801 48022002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> 4803 4804 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, 4805 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. 4806 * decl.c (grokdeclarator): Update. 4807 * mangle.c (write_integer_cst): Update. 4808 * typeck.c (build_binary_op): Update. 4809 48102002-03-31 Neil Booth <neil@daikokuya.demon.co.uk> 4811 4812 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine. 4813 * lex.c (cxx_init): Don't set hook. 4814 48152002-03-31 Neil Booth <neil@daikokuya.demon.co.uk> 4816 4817 * Make-lang.in (error.o): Update. 4818 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine. 4819 * cp-tree.h (struct diagnostic_context): Predeclare. 4820 (cxx_print_error_function): New. 4821 * error.c: Include langhooks-def.h. 4822 (lang_print_error_function): Rename. Update. 4823 (init_error): Don't set hook. 4824 48252002-03-29 Neil Booth <neil@daikokuya.demon.co.uk> 4826 4827 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): 4828 Redefine. 4829 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks. 4830 * decl.c (finish_enum): Similarly. 4831 * error.c (dump_type): Similarly. 4832 * lex.c (cxx_init): Similarly. 4833 * mangle.c (write_builtin_type): Similarly. 4834 * typeck.c (comptypes): Similarly. 4835 48362002-03-28 Roger Sayle <roger@eyesopen.com> 4837 4838 PR c++/5998: 4839 * decl.c (cxx_init_decl_processing): Re-enable built-in functions 4840 in the g++ front-end. 4841 (duplicate_decl): Allow redefinition of anticipated built-ins. 4842 Fix inlining problem by over-writing the old DECL_RTL. 4843 (lookup_namespace_name): Fail to find an identifier in the 4844 specified namespace if its still anticipated. 4845 (builtin_function_1): New function split out from builtin_function 4846 to create a builtin in the current namespace with given context. 4847 (builtin_function): Call builtin_function_1 to define the 4848 appropriate builtins in both the std and global namespaces. 4849 (select_decl): Don't test for anticipated decls here. 4850 (unqualified_namespace_lookup): Instead ignore them whilst 4851 searching through scopes and namespaces. 4852 * decl2.c (do_nonmember_using_decl): If a using declaration 4853 specifies an anticipated built-in function, mark it as no longer 4854 anticipated in that scope. 4855 (ambiguous_decl): Avoid resolving to an anticipated decl. 4856 * lex.c (do_scoped_id): Fail to find an identifier in the global 4857 namespace if its still anticipated. 4858 48592002-03-29 Neil Booth <neil@daikokuya.demon.co.uk> 4860 4861 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine. 4862 * cp-tree.h (cp_make_lang_type): Rename. 4863 * lex.c (cp_make_lang_type): Rename. 4864 (make_aggr_type): Update. 4865 * tree.c (init_tree): Don't set make_lang_type_fn. 4866 48672002-03-29 Jakub Jelinek <jakub@redhat.com> 4868 4869 PR c++/6073 4870 * class.c (finish_struct_1): Update static field's DECL_MODE even 4871 if its type is a variant of t. 4872 48732002-03-27 Neil Booth <neil@daikokuya.demon.co.uk> 4874 4875 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine. 4876 * cp-tree.h (cxx_insert_default_attributes): New. 4877 * decl.c (insert_default_attributes): Rename. 4878 48792002-03-27 Mark Mitchell <mark@codesourcery.com> 4880 4881 PR c++/4884 4882 * call.c (build_op_delete_call): Allow for the fact the placement 4883 may be a COMPOUND_EXPR. 4884 48852002-03-27 Neil Booth <neil@daikokuya.demon.co.uk> 4886 4887 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. 4888 * cp-tree.h (init_cplus_expand): Remove. 4889 (cxx_expand_expr): New. 4890 * expr.c (cplus_expand_expr): Rename cxx_expand_expr, 4891 fix prototype. 4892 (init_cplus_expand): Remove. 4893 * lex.c (cxx_init): Don't call init_cplus_expand. 4894 48952002-03-26 Mark Mitchell <mark@codesourcery.com> 4896 4897 PR c++/4884. 4898 * init.c (build_new_1): Allow for the fact the result of 4899 build_function_call may be a COMPOUND_EXPR. 4900 49012002-03-26 Nathan Sidwell <nathan@codesourcery.com> 4902 4903 PR c++/5682 4904 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better. 4905 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 4906 (dfs_skip_nonprimary_vbases_markedp): Remove. 4907 * search.c (get_shared_vbase_if_not_primary): Remove. 4908 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 4909 (dfs_skip_nonprimary_vbases_markedp): Remove. 4910 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo. 4911 (dfs_marked_real_bases_queue_p): Likewise. 4912 49132002-03-26 Neil Booth <neil@daikokuya.demon.co.uk> 4914 4915 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine. 4916 * cp-tree.h (cxx_mark_tree): New. 4917 * decl.c (lang_mark_tree): Rename cxx_mark_tree. 4918 49192002-03-25 Neil Booth <neil@daikokuya.demon.co.uk> 4920 4921 * cp-tree.h (cxx_maybe_build_cleanup): New. 4922 * decl.c (destroy_local_var, hack_incomplete_structures): Update. 4923 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup. 4924 * tree.c (build_target_expr): Update. 4925 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine. 4926 49272002-03-24 Neil Booth <neil@daikokuya.demon.co.uk> 4928 4929 * decl2.c (cxx_decode_option): Handle -E. 4930 * lang-specs.h (default_compilers): Preprocess with cc1plus. 4931 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL. 4932 49332002-03-23 Jakub Jelinek <jakub@redhat.com> 4934 4935 PR c++/6037 4936 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node. 4937 49382002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 4939 4940 * error.c (dump_type): Be careful about implicit typenames. 4941 49422002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 4943 4944 PR C++/3656 4945 * semantics.c (finish_base_specifier): Handle erronous base 4946 classes. 4947 49482002-03-22 Zack Weinberg <zack@codesourcery.com> 4949 4950 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test 4951 REAL_IS_NOT_DOUBLE. 4952 49532002-03-22 Jeff Knaggs <jknaggs@redhat.com> 4954 4955 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to 4956 an index into the vtable_entry array regardless of 4957 TARGET_PTRMEMFUNC_VBIT_LOCATION. 4958 49592002-03-21 Aldy Hernandez <aldyh@redhat.com> 4960 4961 * tree.c (cp_cannot_inline_tree_fn): Same. 4962 49632002-03-21 Neil Booth <neil@daikokuya.demon.co.uk> 4964 4965 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block, 4966 insert_block, getdecls, global_bindings_p): New. 4967 49682002-03-20 Nathan Sidwell <nathan@codesourcery.com> 4969 4970 PR c++/4361 4971 * mangle.c (struct globals) Add internal_mangling_p member. 4972 (write_template_param): Do internal mangling, if needed. 4973 (mangle_conv_op_name_for_type): Request internal mangling. 4974 49752002-03-20 Jason Merrill <jason@redhat.com> 4976 4977 PR c++/2136 4978 * init.c (build_delete): Check access for a member op delete here. 4979 * decl2.c (delete_sanity): Not here. 4980 49812002-03-19 Jason Merrill <jason@redhat.com> 4982 4983 PR c++/5118 4984 * class.c (get_vfield_name): Use the constructor_name. 4985 49862002-03-20 Neil Booth <neil@daikokuya.demon.co.uk> 4987 4988 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. 4989 * cp-tree.h (lang_printable_name): Rename. 4990 * error.c (lang_decl_name): Use new hook. 4991 * lex.c (cxx_init): Remove old hook. 4992 * pt.c (tsubst_decl): Use new hook. 4993 * tree.c (lang_printable_name): Rename. 4994 49952002-03-18 Eric Botcazou <ebotcazou@multimania.com> 4996 4997 PR c++/3882 4998 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling... 4999 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer 5000 only after recording the declaration. 5001 50022002-03-18 Jason Merrill <jason@redhat.com> 5003 5004 PR c++/2039 5005 * init.c (resolve_offset_ref): Hand off to build_component_ref. 5006 5007 PR c++/4222, c++/5995 5008 * call.c (build_over_call): Fix empty class logic. 5009 5010 PR c++/3870 5011 * cp-tree.h (struct saved_scope): Add last_parms field. 5012 * decl.c (maybe_push_to_top_level): Save last_function_parms. 5013 (pop_from_top_level): Restore it. 5014 5015 PR c++/4377 5016 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip 5017 NON_LVALUE_EXPRs. 5018 5019 PR c++/4003 5020 * pt.c (tsubst_friend_function): Use decl_namespace_context. 5021 5022 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch. 5023 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a 5024 type with a nontrivial destructor. 5025 50262002-03-17 Jason Merrill <jason@redhat.com> 5027 5028 PR c++/4460 5029 * class.c (build_base_path): Virtual base layout is fixed in 5030 in-charge [cd]tors. 5031 50322002-03-17 Neil Booth <neil@daikokuya.demon.co.uk> 5033 5034 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine. 5035 * parse.y (yyparse): Remove macro. 5036 50372002-03-17 Jason Merrill <jason@redhat.com> 5038 5039 PR c++/5757 5040 * init.c (build_new_1): Pass the right pointer to op delete. 5041 50422002-03-16 Nathan Sidwell <nathan@codesourcery.com> 5043 5044 PR c++/4361 5045 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated 5046 conversion operators go. 5047 (struct lang_decl_flags): Add template_conv_p and unused 5048 bitfields. 5049 (DECL_TEMPLATE_CONV_FN_P): New macro. 5050 * call.c (build_user_type_conversion_1): Don't check second type 5051 conversion of overload set first. 5052 * class.c (add_method): Make sure templated conversion operators 5053 all end up on slot 2. 5054 * lex.c (do_identifier): A conversion operator token might be 5055 satisfied by a templated conversion operator. 5056 * pt.c (check_explicit_specialization): Use 5057 CLASSTYPE_FIRST_CONVERSION_SLOT. 5058 (template_parm_this_level_p): New function. 5059 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P. 5060 * search.c (lookup_fnfields_1): Template conversions will be on 5061 the first slot. 5062 * typeck.c (build_component_ref): Preserve the type of an 5063 conversion operator name on the overload type. 5064 (build_x_function_call): Retrieve the conversion operator name. 5065 50662002-03-15 Richard Henderson <rth@redhat.com> 5067 5068 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op. 5069 50702002-03-15 Mark Mitchell <mark@codesourcery.com> 5071 5072 * cp-tree.h (CLEANUP_DECL): Remove. 5073 (CLEANUP_EXPR): Likewise. 5074 * decl.c (destroy_local_var): Simplify. 5075 (maybe_build_cleanup): Tidy. 5076 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT. 5077 * semantics.c (cp_expand_stmt): Likewise. 5078 * cp/tree.c (cp_statement_code_p): Likewise. 5079 50802002-03-15 Jason Merrill <jason@redhat.com> 5081 5082 PR c++/5857 5083 * decl.c (duplicate_decls): Use merge_types instead of common_type. 5084 * typeck.c (common_type): Just hand off to 5085 type_after_usual_arithmetic_conversions and 5086 composite_pointer_type. 5087 (merge_types): New fn. 5088 (commonparms): Use it instead of common_type. 5089 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE. 5090 (composite_pointer_type): Also handle attributes. 5091 * cp-tree.h: Declare merge_types. 5092 5093 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT 5094 variables. 5095 * decl2.c (maybe_make_one_only): Also mark the decl as needed. 5096 50972002-03-14 Richard Henderson <rth@redhat.com> 5098 5099 * decl.c: Include c-pragma.h. 5100 (start_decl, start_function): Invoke maybe_apply_pragma_weak. 5101 * Make-lang.in: Update dependencies. 5102 51032002-03-14 Jakub Jelinek <jakub@redhat.com> 5104 5105 PR c++/5908 5106 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too. 5107 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING. 5108 51092002-03-12 Richard Sandiford <rsandifo@redhat.com> 5110 5111 * mangle.c (write_builtin_type): Handle 128-bit integers even if 5112 they are not a standard integer type. 5113 51142002-03-12 Richard Sandiford <rsandifo@redhat.com> 5115 5116 * cp-tree.h (init_init_processing): Remove declaration. 5117 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff. 5118 * decl.c (cxx_init_decl_processing): Don't call init_init_processing. 5119 51202002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5121 5122 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name): 5123 Define. 5124 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not 5125 tree_code_length. 5126 * lex.c (cplus_tree_code_type, cplus_tree_code_length, 5127 cplus_tree_code_name): Delete. 5128 (cxx_init): Don't call add_c_tree_codes, instead set 5129 lang_unsafe_for_reeval. Don't try to copy into the various 5130 tree_code arrays. 5131 51322002-03-12 Nathan Sidwell <nathan@codesourcery.com> 5133 5134 PR c++/5659 5135 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here. 5136 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for 5137 definitions. 5138 51392002-03-11 Nathan Sidwell <nathan@codesourcery.com> 5140 5141 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>, 5142 DR209 is now not a defect. 5143 * cp-tree.h (skip_type_access_control): Remove. 5144 * decl.c (grokdeclarator): Do type access control for friend 5145 declarations. 5146 * semantics.c (decl_type_access_control): Don't reset 5147 current_type_lookups. 5148 (save_type_access_control): Always save the lookups. 5149 (skip_type_access_control): Remove. 5150 (finish_class_definition): Don't change type_lookups. 5151 51522002-03-11 Nathan Sidwell <nathan@codesourcery.com> 5153 5154 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>, 5155 It is incorrect. 5156 * typeck.c (build_static_cast): Compare non-qualified types 5157 with pointer to member conversions. 5158 51592002-03-11 Dan Nicolaescu <dann@ics.uci.edu> 5160 Daniel Berlin <dan@dberlin.org> 5161 5162 * cp-lang.c (ok_to_generate_alias_set_for_type): New function. 5163 (cxx_get_alias_set): Use it. 5164 51652002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5166 5167 * cp-tree.h (stabilize_expr): Prototype. 5168 51692002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org> 5170 5171 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of 5172 conditional return void. 5173 51742002-03-08 Neil Booth <neil@daikokuya.demon.co.uk> 5175 5176 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine. 5177 * cp-tree.h (cxx_unsave): New. 5178 * tree.c (cp_unsave): Rename cxx_unsave, update prototype. 5179 (init_tree): Update. 5180 51812002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5182 5183 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of 5184 explicit sizeof/sizeof. 5185 * decl2.c (cxx_decode_option): Likewise. 5186 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise. 5187 51882002-03-02 Nathan Sidwell <nathan@codesourcery.com> 5189 5190 PR c++/775 5191 * decl.c (lookup_tag): Only reject enum/class mismatch, not 5192 class/union mismatch. 5193 * parse.y (check_class_key): New function. 5194 (structsp): Call it. 5195 51962002-03-01 Michael Matz <matz@suse.de> 5197 5198 * typeck.c (cp_pointer_int_sum): Complete inner type which is 5199 used later by size_in_bytes(). 5200 52012002-03-01 Phil Edwards <pme@gcc.gnu.org> 5202 5203 * cp-tree.h: Require __GNUC__ to be #defined. 5204 (build_init): Add missing prototype. 5205 52062002-03-01 Jason Merrill <jason@redhat.com> 5207 5208 * except.c: Don't include decl.h or obstack.h. Do include 5209 tree-inline.h. 5210 (build_throw): Destroy temporaries from the thrown 5211 expression before calling __cxa_throw. Construct a thrown 5212 temporary directly into the exception object. 5213 (stabilize_throw_expr): New function. 5214 (wrap_cleanups_r): New function. 5215 * tree.c (stabilize_expr): New function. 5216 * init.c (build_init): New function. 5217 * Make-lang.in (cp/except.o): Adjust .h deps. 5218 52192002-02-28 Jason Merrill <jason@redhat.com> 5220 5221 * search.c (lookup_base_r): Don't clear is_non_public just because 5222 we found a friendly scope. 5223 5224 * decl.c (finish_function): Only warn about missing return 5225 statement with -Wreturn-type. 5226 52272002-02-28 Neil Booth <neil@daikokuya.demon.co.uk> 5228 5229 * class.c (build_clone): Update. 5230 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. 5231 * cp-tree.h (cxx_dup_lang_specific_decl): New. 5232 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl. 5233 (copy_decl): Update. 5234 * method.c (make_thunk): Update. 5235 52362002-02-27 Zack Weinberg <zack@codesourcery.com> 5237 5238 * decl2.c: Delete traditional-mode-related code copied from 5239 the C front end but not used, or used only to permit the 5240 compiler to link. 5241 52422002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org> 5243 5244 PR c++/4093 5245 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition 5246 to void. 5247 52482002-02-22 Jakub Jelinek <jakub@redhat.com> 5249 5250 PR other/5746 5251 * semantics.c (finish_switch_cond): Don't call get_unwidened 5252 if error_mark_node. 5253 52542002-02-22 Nathan Sidwell <nathan@codesourcery.com> 5255 5256 PR c++/2645, DR 295 5257 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals, 5258 tf_keep_type_decl. 5259 (make_typename_type): Use tsubst_flags_t. 5260 * decl.c (make_typename_type): Adjust. Return non-artificial 5261 TYPE_DECLs, if required. 5262 (grokdeclarator): Simplify CVR qualification handling. Allow bad 5263 qualifiers on typedef types. 5264 * decl2.c (handle_class_head): Adjust make_typename_type call. 5265 * parse.y (nested_name_specifier): Likewise. 5266 (typename_sub0): Likewise. 5267 (typename_sub1): Likewise. 5268 * pt.c (convert_template_argument): Adjust make_typename_type 5269 return value. 5270 (tsubst): Adjust cp_build_qualified_type_real calls. 5271 (check_cv_quals_for_unify): Cope with allowing bad qualifications 5272 on template type parms. 5273 (instantiate_decl): Recheck substitutions to give warnings on bad 5274 qualifications. 5275 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals. 5276 52772002-02-21 Aldy Hernandez <aldyh@redhat.com> 5278 5279 * cp/decl.c (duplicate_decls): Merge always_inline attribute. 5280 5281 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0 5282 unless DECL_ALWAYS_INLINE. 5283 52842002-02-20 Jakub Jelinek <jakub@redhat.com> 5285 5286 * typeck.c (cp_pointer_int_sum): Renamed from 5287 pointer_int_sum, call pointer_int_sum. 5288 52892002-02-20 Jakub Jelinek <jakub@redhat.com> 5290 5291 * decl.c (duplicate_decls): Return 0 if issued error about 5292 redeclaration. 5293 52942002-02-19 Jason Merrill <jason@redhat.com> 5295 5296 ABI change: Mangle `void (A::*)() const' as 5297 M1AKFvvE, not MK1AFvvE. 5298 * mangle.c (write_function_type): Write cv-quals for member 5299 function type here. 5300 (write_pointer_to_member_type): Not here. 5301 53022002-02-18 Jason Merrill <jason@redhat.com> 5303 5304 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header. 5305 (do_decl_instantiation): Likewise. 5306 53072002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org> 5308 5309 PR c++/5685 5310 * decl.c (duplicate_decls): Make warning unconditional 5311 if duplicate default argument declarations are present. 5312 53132002-02-17 Jakub Jelinek <jakub@redhat.com> 5314 5315 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit 5316 shortening. 5317 53182002-02-15 Nathan Sidwell <nathan@codesourcery.com> 5319 5320 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs, 5321 remove incorrect comment. Move #if 0'd code to common path. Use 5322 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication. 5323 53242002-02-13 Jason Merrill <jason@redhat.com> 5325 5326 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns. 5327 (finish_function): Don't warn if current_function_returns_null. 5328 5329 * typeck2.c (digest_init): Do handle values of vector type. 5330 5331 * typeck2.c (digest_init, process_init_constructor): Treat vectors 5332 like arrays. 5333 53342002-02-11 Jason Merrill <jason@redhat.com> 5335 5336 * parse.y (reserved_declspecs): Don't handle attributes. 5337 (reserved_typespecquals): Handle them here. 5338 * Make-lang.in (parse.c): Adjust expected conflicts. 5339 53402002-02-08 Jakub Jelinek <jakub@redhat.com> 5341 5342 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr 5343 instead of compstmt. 5344 (compstmt_or_stmtexpr): Renamed from compstmt. 5345 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type. 5346 53472002-02-07 Nathan Sidwell <nathan@codesourcery.com> 5348 5349 Rename instantiate_type_flags to tsubst_flags_t & expand use. 5350 * cp-tree.h (instantiate_type_flags): Rename to ... 5351 (tsubst_flags_t): ... here. Rename itf_complain to tf_error, 5352 add tf_warning flag. 5353 (instantiate_type): Adjust prototype. 5354 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class, 5355 do_type_instantiation, cp_build_qualified_type_real): Likewise. 5356 cp_build_qualified_type: Adjust. 5357 * class.c (instantiate_type): Adjust parameter. Rename itf_* to 5358 tf_*. 5359 * call.c (standard_conversion): Rename itf_* to tf_*. 5360 (reference_binding): Likewise. 5361 (convert_like_real): Likewise. 5362 * cvt.c (cp_convert_to_pointer): Likewise. 5363 (convert_to_reference): Likewise. 5364 * decl.c (lookup_namespace_name): Use tf_* flags. 5365 (make_typename_type): Likewise. 5366 (grokdeclarator): Likewise. 5367 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage. 5368 (coerce_template_template_parms, convert_template_argument, 5369 coerce_template_parms, maybe_get_template_decl_from_type_decl, 5370 lookup_template_class, tsubst_friend_function, tsubst_friend_class, 5371 instantiate_class_template, tsubst_template_arg_vector, 5372 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 5373 tsubst_decl, tsubst_arg_types, tsubst_function_type, 5374 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 5375 instantiate_template, fn_type_unification, 5376 resolve_overloaded_unification, verify_class_unification, 5377 unify, get_bindings_real, do_type_instantiation, 5378 regenerate_decl_from_template, instantiate_decl, 5379 tsubst_initializer_list, tsubst_enum, 5380 get_mostly_instantiated_function_type, 5381 invalid_nontype_parm_type_p): Likewise. 5382 * tree.c (cp_build_qualified_type_real): Likewise. 5383 * typeck.c (build_binary_op): Rename itf_* to tf_*. 5384 (build_ptrmemfunc): Likewise. 5385 (convert_for_assignment): Likewise. 5386 53872002-02-07 Nathan Sidwell <nathan@codesourcery.com> 5388 5389 PR c++/109 5390 * decl.c (grokdeclarator): Allow friend declarations from 5391 dependent types. 5392 * decl2.c (handle_class_head): Don't push into template parm contexts. 5393 * pt.c (push_template_decl_real): Template parm contexts are never 5394 being defined. 5395 53962002-02-05 Alexandre Oliva <aoliva@redhat.com> 5397 5398 * class.c: Include target.h. 5399 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY, 5400 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS 5401 bit-field layout. 5402 * Make-lang.in: Adjust deps. 5403 54042002-02-05 Jason Merrill <jason@redhat.com> 5405 5406 * error.c (dump_type): Be more helpful about VECTOR_TYPE. 5407 54082002-02-04 Jakub Jelinek <jakub@redhat.com> 5409 5410 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE. 5411 (finish_switch_cond): Set SWITCH_TYPE. 5412 54132002-02-04 Richard Henderson <rth@redhat.com> 5414 5415 * method.c (use_thunk): Always initialize the block tree. Reindent. 5416 * semantics.c (expand_body): Emit thunks after function, not before. 5417 54182002-02-04 Jason Merrill <jason@redhat.com> 5419 5420 * decl.c (start_function): Call cplus_decl_attributes immediately 5421 after grokdeclarator. 5422 5423 * decl.c (start_function): Combine DECL_RESULT handling code. 5424 54252002-02-03 Jason Merrill <jason@redhat.com> 5426 5427 * xref.c: Remove. 5428 * Make-lang.in (CXX_OBJS): Remove cp/xref.o 5429 (cp/xref.o): Remove dependencies. 5430 * class.c (finish_struct_1, check_methods): Don't call xref fns. 5431 (finish_struct_1): Likewise. 5432 * friend.c (make_friend_class): Likewise. 5433 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise. 5434 * spew.c (read_process_identifier): Likewise. 5435 54362002-02-01 Jason Merrill <jason@redhat.com> 5437 5438 PR c++/4872 5439 * decl.c (finish_function): Warn about a non-void function with 5440 no return statement and no abnormal exit. 5441 * cp-tree.h (struct cp_language_function): Add returns_abnormally. 5442 (current_function_returns_abnormally): New macro. 5443 * call.c (build_call): Set it. 5444 5445 * typeck.c (build_component_ref): Always complain about offsetof 5446 constructs on non-PODs. Only make it an error for members of 5447 virtual bases. 5448 5449 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS. 5450 (dump_function_decl): Always dump parms. 5451 5452 * decl2.c (finish_static_data_member_decl): Complain about a local 5453 class with a static data member. 5454 5455 PR c++/4286 5456 * search.c (lookup_field_1): Don't xref a static data member 5457 just because we looked it up. 5458 54592002-01-31 Jason Merrill <jason@redhat.com> 5460 5461 * Make-lang.in (parse.c): Handle .output file. 5462 5463 PR c++/3395 5464 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES, 5465 not TREE_TYPE. 5466 * semantics.c (finish_class_definition): Adjust. 5467 5468 Allow attributes in parms and casts. 5469 * parse.y (named_parm): Don't strip attrs. 5470 (declmods): Remove 'attributes' production. 5471 (nonempty_cv_qualifiers): Accept attributes. 5472 (ATTRIBUTE): Give precedence. 5473 * decl.c (groktypename): Handle attributes. 5474 (grokparms): Likewise. 5475 54762002-01-29 Jakub Jelinek <jakub@redhat.com> 5477 5478 * decl2.c (cxx_decode_option): Pass 0 as last argument to 5479 cpp_handle_option. 5480 * lang-specs.h: Use cpp_unique_options instead of cpp_options 5481 when used together with cc1_options. 5482 54832002-01-29 Nathan Sidwell <nathan@codesourcery.com> 5484 5485 PR c++/5132 5486 * typeck2.c (digest_init): Make sure non-array core type is 5487 instantiated. 5488 * decl2.c (reparse_absdcl_as_casts): Just store the type in the 5489 constructor, rather than build a new one. 5490 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the 5491 PURPOSE of constructor elts. 5492 54932002-01-23 Zack Weinberg <zack@codesourcery.com> 5494 5495 * Make-lang.in (parse.c): Adjust expected number of 5496 shift-reduce conflicts. 5497 (decl.o): Depend on diagnostic.h. 5498 * decl.c: Include diagnostic.h. 5499 (grokdeclarator): Check for null pointer. 5500 (finish_function): Don't abort when 5501 current_binding_level->parm_flag != 1, if errors have 5502 occurred; throw away the statement tree and extra binding 5503 levels, and continue. 5504 * lex.c (note_list_got_semicolon): Check for null pointer. 5505 * method.c (hack_identifier): Just return error_mark_node if 5506 value is error_mark_node. 5507 * parse.y (primary: TYPEID(type_id)): No need to use 5508 TYPE_MAIN_VARIANT here. 5509 (handler_seq): Accept an empty list of catch clauses and 5510 generate a fake handler block to avoid later crashes. 5511 (ansi_raise_identifier): Accept the error token too. 5512 * semantics.c (begin_class_definition, 5513 finish_class_definition): Check for error_mark_node. 5514 55152002-01-23 Zack Weinberg <zack@codesourcery.com> 5516 5517 * typeck2.c (friendly_abort): Delete definition. 5518 * cp-tree.h (friendly_abort): Don't prototype. 5519 (my_friendly_assert): Use fancy_abort. 5520 55212002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 5522 5523 * cp-tree.h (my_friendly_abort): Remove. 5524 55252002-01-23 Jakub Jelinek <jakub@redhat.com> 5526 5527 * spew.c (pending_inlines, pending_inlines_tail, 5528 processing_these_inlines): Make static. 5529 (mark_pending_inlines): Remove static. 5530 (begin_parsing_inclass_inline): If in function, save pi 5531 for GC to cp_function_chain->unparsed_inlines instead. 5532 (process_next_inline): Likewise. 5533 * cp-tree.h (struct cp_language_function): Add unparsed_inlines. 5534 (mark_pending_inlines): Add prototype. 5535 * decl.c (spew_debug): Remove unused extern. 5536 (mark_lang_function): Call mark_pending_inlines. 5537 55382002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 5539 5540 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, 5541 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, 5542 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: 5543 Change my_fancy_abort() to abort(). 5544 55452002-01-23 Jason Merrill <jason@redhat.com> 5546 5547 PR c++/5453 5548 * class.c (fixed_type_or_null): Fix thinko. 5549 5550 PR c++/3331 5551 * init.c (resolve_offset_ref): Use build_indirect_ref. 5552 5553 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'. 5554 55552002-01-22 Jason Merrill <jason@redhat.com> 5556 5557 * parse.y (function_body): Suppress the block for the outermost 5558 curly braces. 5559 * decl.c (pushdecl): Don't try to skip it. 5560 (begin_function_body): Keep the block we create, not the next one. 5561 * init.c (emit_base_init): Don't mess with keep_next_level. 5562 5563 * class.c (build_base_path): Tweak formatting. 5564 55652002-01-19 Nathan Sidwell <nathan@codesourcery.com> 5566 5567 Fix regression introduced with patch for c++/775 5568 * parse.y (class_head_defn): Check for template specializations 5569 with a different class-key. 5570 55712002-01-17 Jason Merrill <jason@redhat.com> 5572 5573 * decl.c (begin_constructor_body, begin_destructor_body): New fns. 5574 (begin_function_body): Call them and keep_next_level. 5575 * init.c (emit_base_init): Call keep_next_level. 5576 * semantics.c (setup_vtbl_ptr): Lose. 5577 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p. 5578 (vtbls_set_up_p): Lose. 5579 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init. 5580 * method.c (do_build_copy_constructor): Likewise. 5581 (synthesize_method): Call finish_mem_initializers. 5582 * parse.y (nodecls): Likewise. 5583 5584 * error.c (dump_type_suffix): Print the exception specs before 5585 recursing. 5586 (dump_function_decl): Here, too. 5587 5588 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT. 5589 55902002-01-10 Ira Ruben <ira@apple.com> 5591 5592 PR c++/907 5593 * decl.c (start_method): Handle attrlist. 5594 55952002-01-10 Jakub Jelinek <jakub@redhat.com> 5596 5597 * decl2.c (max_tinst_depth): Increase default limit to 500. 5598 55992002-01-10 Graham Stott <grahams@redhat.com> 5600 5601 * spew.c (YYCHAR): Uppercase macro parameter and add 5602 parenthesis. 5603 (YYCODE): Likewise. 5604 (NAME): Uppercase macro parameter. 5605 56062002-01-09 Graham Stott <grahams@redhat.com> 5607 5608 * decl.h (grokdeclarator): Wrap long line. 5609 5610 * semantics.c (FINISH_COND): Uppercase macro paramaters and 5611 add parenthesis. 5612 56132002-01-08 Graham Stott <grahams@redhat.com> 5614 5615 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis. 5616 (PALLOC): Uppercase macro parameter and whitespace. 5617 (SALLOC): Uppercase macro parameter. 5618 (SFREE): Uppercase macros parameter, add parenthese and 5619 whitespace. 5620 (STREQL): Uppercase macro parameter and whitespace. 5621 (STRNEQ): Likewise. 5622 (STRLSS): Likewise. 5623 (STRLEQ): Likewise. 5624 (STRGTR): Likewise. 5625 (STRGEQ): Likewise. 5626 5627 * call.c (convert_like): Add parenthesis and wrap. 5628 (convert_like_with_context): Likewise. 5629 (ICS_RANK): Whitespace. 5630 (NEED_TEMPORARY_P): Remove parenthesis. 5631 5632 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and 5633 whitespace. 5634 (VTT_MARKED_BINFO_P): Likewise. 5635 5636 * decl.c (BINDING_LEVEL): Add parenthesis. 5637 (DEF_OPERATOR): Likewise. 5638 5639 * mangle.c (MANGLE_TRACE): Add parenthesis. 5640 (MANGLE_TRACE_TREE): Likewise. 5641 (write_signed_number): Likewise. 5642 (write_unsigned_number): Likewise. 5643 5644 * pt.c (ccat): Uppercase macro parameter. 5645 (cat): Likewise 5646 5647 * search.c (SET_BINFO_ACCESS): Add parenthesis. 5648 56492002-01-07 Jason Merrill <jason@redhat.com> 5650 5651 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch 5652 to pedwarn. 5653 5654 PR c++/3536 5655 * method.c (make_thunk): If !flag_weak, give the thunk the 5656 function's linkage. 5657 (use_thunk): Here, too. 5658 56592002-01-07 Graham Stott <grahams@redhat.com> 5660 5661 * error.c: Update copyright date. 5662 (print_scope_operator): Add parenthesis. 5663 (print_left_paren): Likewise. 5664 (print_right_paren): Likewise. 5665 (print_left_bracket): Likewise. 5666 (print_right_bracket): Likewise. 5667 (print_template_argument_list_start): Likewise. 5668 (print_template_argument_list_end): Likewise. 5669 (print_non_consecutive_character): Likewise. 5670 (print_tree_identifier): Likewise. 5671 (print_identifier): Likewise. 5672 (NEXT_CODE): Uppercase macro parameter. 5673 (ident_fndecl): Delete unused. 5674 (GLOBAL_THING): Likewise. 5675 56762002-01-06 Graham Stott <grahams@redhat.com> 5677 5678 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis. 5679 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise. 5680 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise. 5681 (RECORD_OR_UNION_TYPE_CHECK): Likewise. 5682 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise. 5683 (C_IS_RESERVED_WORD): Uppercase macro parameter. 5684 (C_RID_YYCODE) Likewise. 5685 (ptrmem_cst): Use rtx. 5686 (LOCAL_BINDING_P): Add whitespace. 5687 (INHERITED_VALUE_BINDING_P): Likewise. 5688 (BINDING_SCOPE): Wrap long line. 5689 (BINDING_HAS_LEVEL_P): Remove parenthesis. 5690 (BINDING_VALUE): Wrap long line. 5691 (BINDING_TYPE): Whitespace. 5692 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis. 5693 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise. 5694 (IDENTIFIER_NAMESPACE_VALUE): Likewise. 5695 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise. 5696 (same_type_p): Uppercase macro parameters. 5697 (same_type_ignoring_top_level_qualifiers_p): Likewise. 5698 (OVL_FUNCTION): Wrap long line. 5699 (OVL_CHAIN): Whitespace. 5700 (OVL_CURRENT): Add parenthesis and whitespace. 5701 (OVL_NEXT): Whitespace. 5702 (OVL_USED): Likewise. 5703 (IDENTIFIER_TYPE_VALUE): Likewise. 5704 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis. 5705 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace. 5706 (LANG_ID_FIELD): Whitespace. 5707 (SET_LANG_ID(NODE,VALUE,NAME): Likewise. 5708 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap. 5709 (SET_IDENTIFIER_LABEL_VALUE): Whitespace. 5710 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap. 5711 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace. 5712 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap. 5713 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace. 5714 (IDENTIFIER_VIRTUAL_P): Likewise. 5715 (IDENTIFIER_OPNAME_P): Likewise. 5716 (IDENTIFIER_TYPENAME_P): Remove parenthesis. 5717 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters. 5718 (C_SET_EXP_ORIGINAL_CODE): Likewise. 5719 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line. 5720 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise. 5721 (IS_AGGR_TYPE): Uppercase macro parameter. 5722 (CLASS_TYPE_P): Likewise. 5723 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis. 5724 (IS_AGGR_TYPE_2): Whitespace. 5725 (TAGGED_TYPE_P): Uppercase macro parameter. 5726 (TYPE_BUILT_IN): Whitespace. 5727 (TYPE_FOR_JAVA): Likewise. 5728 (FUNCTION_ARG_CHAIN): Remove parenthesis. 5729 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis. 5730 (FUNCTION_FIRST_USER_PARAM): Likewise. 5731 (PROMOTES_TO_AGGR_TYPE): Whitespace. 5732 (DERIVED_FROM_P): Add parenthesis and wrap. 5733 (UNIQUELY_DERIVED_FROM_P): Likewise. 5734 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise. 5735 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 5736 (CLASSTYPE_USE_TEMPLATE): Whitespace. 5737 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis. 5738 (TYPE_GETS_DELETE): Add parenthesis. 5739 (TYPE_HAS_CONVERSION): Add parenthesis and wrap. 5740 (TYPE_HAS_ASSIGN_REF): Likewise, 5741 (TYPE_HAS_CONST_ASSIGN_REF): Likewise. 5742 (TYPE_HAS_INIT_REF): Likewise. 5743 (TYPE_HAS_CONST_INIT_REF): Likewise. 5744 (TYPE_BEING_DEFINED): Likewise. 5745 (TYPE_LANG_SPECIFIC): Likewise. 5746 (CLASSTYPE_RTTI): Likewise. 5747 (TYPE_OVERLOADS_CALL_EXPR): Likewise. 5748 (TYPE_OVERLOADS_ARRAY_REF): Likewise. 5749 (TYPE_OVERLOADS_ARROW): Likewise. 5750 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise. 5751 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis. 5752 (CLASSTYPE_METHOD_VEC): Likewise. 5753 (CLASSTYPE_MARKED_N): Likewise. 5754 (CLASSTYPE_MARKED): Likewise. 5755 (CLASSTYPE_MARKED2): Likewise. 5756 (CLASSTYPE_MARKED3): Likewise. 5757 (CLASSTYPE_MARKED4): Likewise. 5758 (CLASSTYPE_MARKED5): Likewise. 5759 (CLASSTYPE_MARKED6): Likewise. 5760 (SET_CLASSTYPE_MARKED): Whitespace. 5761 (CLEAR_CLASSTYPE_MARKED): Likewise. 5762 (SET_CLASSTYPE_MARKED2): Likewise. 5763 (CLEAR_CLASSTYPE_MARKED2): Likewise. 5764 (SET_CLASSTYPE_MARKED3): Likewise. 5765 (CLEAR_CLASSTYPE_MARKED3): Likewise. 5766 (SET_CLASSTYPE_MARKED4): Likewise. 5767 (CLEAR_CLASSTYPE_MARKED4): Likewise. 5768 (SET_CLASSTYPE_MARKED5): Likewise. 5769 (CLEAR_CLASSTYPE_MARKED5): Likewise. 5770 (SET_CLASSTYPE_MARKED6): Likewise. 5771 (CLEAR_CLASSTYPE_MARKED6): Likewise. 5772 (CLASSTYPE_TAGS): Likewise. 5773 (CLASSTYPE_VSIZE): Likewise. 5774 (CLASSTYPE_VBASECLASSES): Likewise. 5775 (CANONICAL_BINFO): Add parenthesis. 5776 (CLASSTYPE_SIZE(NODE): Likewise. 5777 (CLASSTYPE_SIZE_UNIT): Likewise. 5778 (CLASSTYPE_ALIGN(NODE): Likewise. 5779 (CLASSTYPE_USER_ALIGN): Likewise. 5780 (TYPE_JAVA_INTERFACE): Likewise. 5781 (CLASSTYPE_PURE_VIRTUALS): Likewise. 5782 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap. 5783 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise. 5784 (CLASSTYPE_HAS_MUTABLE): Likewise. 5785 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise. 5786 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap. 5787 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise. 5788 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise. 5789 (CLASSTYPE_INTERFACE_ONLY): Likewise. 5790 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 5791 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 5792 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 5793 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 5794 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 5795 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap. 5796 (BINFO_UNSHARED_MARKED): Whitespace. 5797 (BINFO_MARKED): Whitespace and wrap. 5798 (SET_BINFO_MARKED): Likewise. 5799 (CLEAR_BINFO_MARKED): Likewise. 5800 (BINFO_VTABLE_PATH_MARKED): Likewise. 5801 (SET_BINFO_VTABLE_PATH_MARKED): Likewise. 5802 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise. 5803 (BINFO_SUBVTT_INDEX): Remove parenthesis. 5804 (BINFO_VPTR_INDEX): Likewise. 5805 (BINFO_PRIMARY_BASE_OF): Likewise, 5806 (CLASSTYPE_VFIELDS): Whitespace. 5807 (VF_DERIVED_VALUE): Wrap long line. 5808 (NAMESPACE_LEVEL): Whitespace. 5809 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis. 5810 (DEFARG_POINTER): Whitespace. 5811 (DECL_NEEDED_P): Remove parenthesis. 5812 (DECL_LANGUAGE): Whitespace. 5813 (SET_DECL_LANGUAGE): Add parenthesis. 5814 (DECL_CONSTRUCTOR_P): Whitespace and wrap. 5815 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis. 5816 (DECL_IN_AGGR_P): Whitespace. 5817 (DECL_FRIEND_P): Likewise. 5818 (DECL_BEFRIENDING_CLASSES): Likewise. 5819 (DECL_STATIC_FUNCTION_P): Whitespace and wrap. 5820 (DECL_NONCONVERTING_P): Whitespace. 5821 (DECL_PURE_VIRTUAL_P): Likewise. 5822 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise. 5823 (DECL_PENDING_INLINE_INFO): Whitespace. 5824 (DECL_SORTED_FIELDS): Likewise. 5825 (DECL_DEFERRED_FN): Likewise. 5826 (DECL_TEMPLATE_INFO): Likewise. 5827 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap. 5828 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise. 5829 (SET_TYPE_TEMPLATE_INFO): Add parenthesis. 5830 (TMPL_ARGS_LEVEL): Likewise. 5831 (SET_TMPL_ARGS_LEVEL): Likewise. 5832 (INNERMOST_TEMPLATE_PARMS): Whitespace. 5833 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter. 5834 (INTEGRAL_CODE_P(CODE): Add parenthesis. 5835 (CP_INTEGRAL_TYPE_P): Remove parenthesis. 5836 (TYPE_HAS_CONSTRUCTOR): Whitespace. 5837 (TREE_HAS_CONSTRUCTOR): Likewise. 5838 (TYPE_HAS_DESTRUCTOR): Likewise. 5839 (TYPE_HAS_REAL_ASSIGN_REF): Likewise. 5840 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise. 5841 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise. 5842 (TYPE_HAS_COMPLEX_INIT_REF): Likewise. 5843 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise. 5844 (TYPE_PTRMEMFUNC_P): Likewise. 5845 (TYPE_PTRMEMFUNC_FLAG): Likewise. 5846 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise. 5847 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise. 5848 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis. 5849 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 5850 (DECL_ACCESS): Whitespace. 5851 (DECL_GLOBAL_CTOR_P): Remove parenthesis. 5852 (DECL_GLOBAL_DTOR_P): Likewise. 5853 (GLOBAL_INIT_PRIORITY): Likewise. 5854 (DECL_TEMPLATE_PARMS): Likewise. 5855 (DECL_TEMPLATE_RESULT): Likewise. 5856 (DECL_TEMPLATE_INSTANTIATIONS): Likewise. 5857 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise. 5858 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis. 5859 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. 5860 (PRIMARY_TEMPLATE_P): Add parenthesis. 5861 (DECL_USE_TEMPLATE): Whitespace. 5862 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 5863 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 5864 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 5865 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 5866 (CALL_DECLARATOR_PARMS): Remove parenthesis. 5867 (CALL_DECLARATOR_QUALS): Likewise. 5868 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise. 5869 (TEMP_NAME_P): Wrap. 5870 (VFIELD_NAME_P): Likewise. 5871 (B_SET): Uppercase macro parameters and add parenthesis. 5872 (B_CLR): Likewise. 5873 (B_TST): Likewise. 5874 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters. 5875 (LOOKUP_TYPES_ONLY): Uppercase macro parameters. 5876 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters. 5877 (same_or_base_type_p): Likewise. 5878 (cp_deprecated): Likewise. 5879 58802002-01-05 Richard Henderson <rth@redhat.com> 5881 5882 * semantics.c (expand_body): Revert last change. 5883 58842002-01-04 Jason Merrill <jason@redhat.com> 5885 5886 PR c++/4122 5887 * class.c (update_vtable_entry_for_fn): Set delta to zero for a 5888 lost primary. 5889 5890 * class.c (build_vtbl_initializer): Check for a lost primary 5891 before calculating the vtable entry to throw away. 5892 58932002-01-02 Jason Merrill <jason@redhat.com> 5894 5895 * semantics.c (expand_body): Call outlining_inline_function when 5896 emitting an inline function out of line. 5897 58982002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5899 5900 PR c++/5116, c++/764 reversion 5901 * call.c (build_new_op): Revert the instantiations. They are 5902 incorrect. 5903 59042002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5905 5906 PR c++/5089 5907 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void. 5908 59092002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5910 5911 PR c++/3716 5912 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst. 5913 (tsubst, case POINTER_TYPE): Handle pmfs here. 5914 (tsubst, case OFFSET_TYPE): Check it is not an offset to 5915 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE. 5916 59172002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5918 5919 PR c++/35 5920 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too. 5921 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too. 5922 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the 5923 PARM_DECL. 5924 (tsubst_template_parms): Break up loop statements. 5925 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template 5926 parm PARM_DECLs don't get promoted. 5927 59282002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5929 5930 PR c++/5123 5931 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR. 5932 (build_x_function_call): Cope with a COMPONENT_REF containing a 5933 TEMPLATE_ID_EXPR. 5934 59352002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5936 5937 PR c++/5213 5938 * pt.c (convert_template_argument): Be more careful determining 5939 when RECORD_TYPE templates are or are not templates. 5940 59412002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5942 5943 PR c++/775 5944 * cp-tree.h (handle_class_head): Adjust prototype. 5945 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P 5946 parameters. Use for all class heads. 5947 * parse.y (named_class_head_sans_basetype, named_class_head, 5948 named_complex_class_head_sans_basetype, 5949 named_class_head_sans_basetype_defn, 5950 unnamed_class_head): Remove. 5951 (class_head, class_head_apparent_template): Recognize class heads 5952 (class_head_decl, class_head_defn): New reductions. Process class 5953 heads. 5954 (structsp): Adjust class definition and class declaration 5955 reductions. 5956 (maybe_base_class_list): Give diagnostic on empty list. 5957 59582002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5959 5960 PR c++/4379 5961 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a 5962 single non-static member. 5963 (unary_complex_lvalue): If it cannot be a pointer to member, don't 5964 make it so. Check it is not pointer to reference. 5965 59662002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5967 5968 PR c++/5132 5969 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we 5970 are processing a template decl. 5971 59722002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5973 5974 PR c++/5116, c++/764 5975 * call.c (build_new_op): Make sure template class operands are 5976 instantiated. Simplify arglist construction. 5977 59782001-12-29 Nathan Sidwell <nathan@codesourcery.com> 5979 5980 * call.c (build_user_type_conversion_1): Use my_friendly_assert 5981 rather than if ... abort. 5982 * cvt.c (convert_to_reference): Likewise. 5983 * semantics.c (setup_vtbl_ptr): Likewise. 5984 * pt.c (lookup_template_class): Comment typo. 5985 59862001-12-29 Nathan Sidwell <nathan@codesourcery.com> 5987 5988 PR c++/5125 5989 * pt.c (push_template_decl_real): Make sure DECL has 5990 DECL_LANG_SPECIFIC. 5991 59922001-12-29 Nathan Sidwell <nathan@codesourcery.com> 5993 5994 PR c++/335 5995 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer 5996 for non-reference fields. 5997 * typeck.c (require_complete_type): Use resolve_offset_ref). 5998 59992001-12-26 Nathan Sidwell <nathan@codesourcery.com> 6000 6001 PR c++/196 6002 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF. 6003 60042001-12-24 Nathan Sidwell <nathan@codesourcery.com> 6005 6006 PR c++/160 6007 * typeck.c (build_modify_expr): Remove old unreachable code & tidy 6008 up. Don't stabilize_references when initializing a reference. 6009 60102001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6011 6012 * decl2.c (lang_f_options): Const-ify. 6013 60142001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 6015 6016 * config-lang.in (diff_excludes): Remove. 6017 60182001-12-19 Nathan Sidwell <nathan@codesourcery.com> 6019 6020 PR c++/90 6021 * typeck.c (build_function_call_real): Use original function 6022 expression for errors. 6023 60242001-12-18 Jason Merrill <jason@redhat.com> 6025 6026 PR c++/3242 6027 * class.c (add_method): Do compare 'this' quals when trying to match a 6028 used function. Don't defer to another used function. 6029 60302001-12-18 Nathan Sidwell <nathan@codesourcery.com> 6031 6032 * pt.c (instantiate_clone): Remove, fold into ... 6033 (instantiate_template): ... here. Simplify by removing mutual 6034 recursion. 6035 * typeck2.c (build_m_component_ref): Don't cv qualify the function 6036 pointed to by a pointer to function. 6037 * class.c (delete_duplicate_fields_1): Typo. 6038 60392001-12-18 Jason Merrill <jason@redhat.com> 6040 6041 C++ ABI change: destroy value arguments in caller. 6042 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't 6043 create an extra binding level for the parameters. 6044 * decl.c (store_parm_decls): Don't do parameter cleanups. 6045 60462001-12-18 Nathan Sidwell <nathan@codesourcery.com> 6047 6048 * call.c (build_new_method_call): Use '%#V'. 6049 * error.c (cv_to_string): Use V parameter to determine padding. 6050 60512001-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 6052 6053 * call.c, decl2.c, init.c: Use "built-in" and "bit-field" 6054 spellings in messages. 6055 60562001-12-17 Zack Weinberg <zack@codesourcery.com> 6057 6058 * cp-tree.h: Delete #defines for cp_error, cp_warning, 6059 cp_pedwarn, and cp_compiler_error. 6060 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, 6061 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, 6062 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 6063 typeck2.c: Change calls to the above macros to use their 6064 language-independent equivalents: error, warning, pedwarn, and 6065 internal_error respectively. 6066 60672001-12-16 Neil Booth <neil@daikokuya.demon.co.uk> 6068 6069 * decl2.c (finish_file): Remove back_end_hook. 6070 60712001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 6072 6073 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c, 6074 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c, 6075 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors. 6076 60772001-12-15 Joseph S. Myers <jsm28@cam.ac.uk> 6078 6079 * lang-options.h: Use American spelling in messages. 6080 60812001-12-13 Jason Merrill <jason@redhat.com> 6082 6083 * Make-lang.in (parse.h): Separate rule, just depend on parse.c. 6084 6085 Use cleanups to run base and member destructors. 6086 * init.c (push_base_cleanups): New function, split out from... 6087 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. 6088 * decl.c (finish_destructor_body): Move vbase destruction code to 6089 push_base_cleanups. 6090 (begin_function_body, finish_function_body): New fns. 6091 (finish_function): Move [cd]tor handling and call_poplevel to 6092 finish_function_body. 6093 (pushdecl): Skip the new level. 6094 * semantics.c (genrtl_try_block): Don't call end_protect_partials. 6095 (setup_vtbl_ptr): Call push_base_cleanups. 6096 * method.c (synthesize_method): Call {begin,end}_function_body. 6097 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. 6098 * cp-tree.h: Declare new fns. 6099 * parse.y (function_body, .begin_function_body): New nonterminals. 6100 (fndef, pending_inline, function_try_block): Use function_body. 6101 (ctor_initializer_opt, function_try_block): No longer has a value. 6102 (base_init): Remove .set_base_init token. 6103 (.set_base_init, compstmt_or_error): Remove. 6104 * Make-lang.in (parse.c): Expect two fewer s/r conflicts. 6105 6106 * optimize.c (maybe_clone_body): Fix parameter updating. 6107 61082001-12-12 Jason Merrill <jason@redhat.com> 6109 6110 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft. 6111 * semantics.c (genrtl_start_function): Don't pass 6112 parms_have_cleanups or push an extra binding level. 6113 (genrtl_finish_function): Lose cleanup_label cruft. 6114 6115 * cp-tree.h (struct cp_language_function): Remove x_ctor_label. 6116 (ctor_label): Remove. 6117 * semantics.c (finish_return_stmt): Lose ctor_label support. 6118 * decl.c (finish_constructor_body, mark_lang_function): Likewise. 6119 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not 6120 dtor_label. 6121 6122 * call.c (build_new_method_call): Let resolves_to_fixed_type_p 6123 check for [cd]tors. 6124 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix. 6125 6126 * decl.c (finish_function): Check VMS_TARGET, not VMS. 6127 6128 * decl.c (start_cleanup_fn): Remove redundant pushlevel. 6129 (end_cleanup_fn): And poplevel. 6130 6131 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER 6132 if we're in a template. 6133 61342001-12-12 Jakub Jelinek <jakub@redhat.com> 6135 6136 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P, 6137 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, 6138 THIS_NAME_P): Delete. 6139 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, 6140 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash 6141 with internal naming scheme. 6142 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. 6143 61442001-12-12 Nathan Sidwell <nathan@codesourcery.com> 6145 6146 * decl.c (grokdeclarator): Deprecated implicit typename use. 6147 61482001-12-11 Nathan Sidwell <nathan@codesourcery.com> 6149 6150 PR g++/51 6151 * parse.y (frob_specs): Indicate it is a language linkage which 6152 contained the extern. 6153 * decl.c (grokdeclarator): Allow extern language linkage with 6154 other specifiers. 6155 61562001-12-10 Nathan Sidwell <nathan@codesourcery.com> 6157 6158 PR g++/72 6159 * decl.c (add_binding): Don't reject duplicate typedefs involving 6160 template parameters. 6161 61622001-12-10 Neil Booth <neil@daikokuya.demon.co.uk> 6163 6164 * parse.y, semantics.c: Similarly. 6165 61662001-12-09 Nathan Sidwell <nathan@codesourcery.com> 6167 6168 PR g++/87 6169 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p. 6170 (copy_args_p): Rename to ... 6171 (copy_fn_p): ... here. 6172 (grok_special_member_properties): New function. 6173 (grok_op_properties): Lose VIRTUALP parameter. 6174 (copy_assignment_arg_p): Remove. 6175 * call.c (build_over_call): Use copy_fn_p. 6176 * decl.c (grokfndecl): Reformat. Adjust call to 6177 grok_op_properties. 6178 (copy_args_p): Rename to ... 6179 (copy_fn_p): ... here. Reject template functions. Check for pass 6180 by value. 6181 (grok_special_member_properties): Remember special functions. 6182 (grok_ctor_properties): Don't remember them here, just check. 6183 (grok_op_properties): Likewise. 6184 (start_method): Call grok_special_member_properties. 6185 * decl2.c (grokfield): Likewise. 6186 (copy_assignment_arg_p): Remove. 6187 (grok_function_init): Don't remember abstract assignment here. 6188 * pt.c (instantiate_class_template): Call 6189 grok_special_member_properties. 6190 (tsubst_decl): Adjust grok_op_properties call. 6191 61922001-12-08 Aldy Hernandez <aldyh@redhat.com> 6193 6194 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and 6195 RID_TYPES_COMPATIBLE_P. 6196 61972001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 6198 6199 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in 6200 call to build_aggr_init. 6201 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. 6202 62032001-12-08 Neil Booth <neil@daikokuya.demon.co.uk> 6204 6205 * parse.y: Replace uses of the string non-terminal with STRING. 6206 Don't perform string concatentaion here. 6207 (string): Remove non-terminal. 6208 * semantics.c (finish_asm_stmt): Don't concatenate strings here. 6209 62102001-12-05 Jason Merrill <jason@redhat.com> 6211 6212 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. 6213 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. 6214 * tree.c (cp_start_inlining, cp_end_inlining): New fns. 6215 * pt.c (push_tinst_level): No longer static. 6216 * cp-tree.h: Declare them. 6217 6218 * init.c (resolve_offset_ref): Don't check access for the base 6219 conversion to access a FIELD_DECL. 6220 6221 * cp-tree.h (TYPE_REFFN_P): New macro. 6222 * decl.c (bad_specifiers): Check it, too. 6223 6224 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY 6225 on the __*_type_info type if we haven't seen a definition. 6226 62272001-12-05 Neil Booth <neil@daikokuya.demon.co.uk> 6228 6229 * decl.c: Include c-common.h. 6230 (shadow_warning): Move to c-common.c. 6231 6232Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6233 6234 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. 6235 62362001-12-04 Nathan Sidwell <nathan@codesourcery.com> 6237 6238 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm. 6239 62402001-12-04 Nathan Sidwell <nathan@codesourcery.com> 6241 6242 PR g++/164 6243 * init.c (sort_base_init): Allow binfos to be directly specified. 6244 * method.c (do_build_copy_constructor): Explicitly convert to the 6245 base instance. 6246 (do_build_assign_ref): Likewise. 6247 62482001-12-03 Hans-Peter Nilsson <hp@bitrange.com> 6249 6250 * decl.c (xref_basetypes): Don't use C99 construct in tag_code 6251 declaration and initialization. 6252 62532001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 6254 6255 * typeck2.c: Remove leading capital from diagnostic messages, as 6256 per GNU coding standards. 6257 62582001-12-03 Mumit Khan <khan@nanotech.wisc.edu> 6259 6260 PR c++/3394 6261 * decl.c (xref_basetypes): Handle attributes between 6262 'class' and name. 6263 62642001-12-03 Nathan Sidwell <nathan@codesourcery.com> 6265 6266 PR g++/3381 6267 * parse.y (named_complex_class_head_sans_basetype): Add new 6268 reduction. 6269 * Make-lang.in (parse.c): Adjust expected conflict count. 6270 62712001-12-03 Jason Merrill <jason@redhat.com> 6272 6273 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the 6274 immediate binfos for our virtual bases. 6275 62762001-12-02 Neil Booth <neil@daikokuya.demon.co.uk> 6277 6278 * call.c (build_java_interface_fn_ref): Similarly. 6279 * except.c (is_admissible_throw_operand): Similarly. 6280 * init.c (build_java_class_ref): Similarly. 6281 * xref.c (open_xref_file): Similarly. 6282 62832001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 6284 6285 * class.c (finish_struct): Remove trailing periods from messages. 6286 * decl.c (check_tag_decl): Similarly. 6287 * lex.c (cxx_set_yydebug): Similarly. 6288 * typeck2.c (friendly_abort): Similarly. 6289 62902001-11-29 Mark Mitchell <mark@codesourcery.com> 6291 6292 PR c++/3048 6293 * cp-tree.h (ovl_member): Remove. 6294 * decl2.c (merge_functions): Handle extern "C" functions 6295 specially. 6296 * tree.c (ovl_member): Remove. 6297 62982001-11-29 Mark Mitchell <mark@codesourcery.com> 6299 6300 PR c++/4842 6301 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a 6302 FUNCTION_DECL, as input. 6303 (mark_overriders): Remove. 6304 (warn_hidden): Rework for the new ABI. 6305 63062001-11-29 Mark Mitchell <mark@codesourcery.com> 6307 6308 PR c++/3471 6309 * call.c (convert_like_real): Do not build additional temporaries 6310 for rvalues of class type. 6311 63122001-11-28 Nathan Sidwell <nathan@codesourcery.com> 6313 6314 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base. 6315 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise. 6316 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise. 6317 (DERIVED_FROM_P): Likewise. 6318 (enum base_access): Renumber, add ba_quiet bit mask. 6319 (get_binfo): Remove. 6320 (get_base_distance): Remove. 6321 (binfo_value): Remove. 6322 (ACCESSIBLY_DERIVED_FROM_P): Remove. 6323 * call.c (standard_conversion): Use lookup_base. 6324 * class.c (strictly_overrides): Likewise. 6325 (layout_virtual_bases): Likewise. 6326 (warn_about_ambiguous_direct_bases): Likewise. 6327 (is_base_of_enclosing_class): Likewise. 6328 (add_vcall_offset_vtbl_entries_1): Likewise. 6329 * cvt.c (build_up_reference): Adjust comment. 6330 * init.c (build_member_call): Reformat. 6331 * search.c (get_binfo): Remove. 6332 (get_base_distance_recursive): Remove. 6333 (get_base_distance): Remove. 6334 (lookup_base_r): Tweak. 6335 (lookup_base): Add ba_quiet control. Complete the types here. 6336 (covariant_return_p): Use lookup_base. 6337 * tree.c (binfo_value): Remove. 6338 (maybe_dummy_object): Use lookup_base. 6339 * typeck.c (build_static_cast): Use lookup_base. 6340 (get_delta_difference): Likewise. 6341 * typeck2.c (binfo_or_else): Use lookup_base. 6342 (build_scoped_ref): Add back error_mark_check. 6343 (build_m_component_ref): Use lookup_base. 6344 63452001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 6346 6347 * Make-lang.in (c++.generated-manpages): New dummy target. 6348 6349Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6350 6351 * Make-lang.in (cp-lang.o): Depends on c-common.h. 6352 * cp-lang.c (c-common.h): Include. 6353 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. 6354 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p. 6355 * expr.c (init_cplus_expand): Don't set lang_expand_constant. 6356 63572001-11-26 Neil Booth <neil@daikokuya.demon.co.uk> 6358 6359 * decl2.c (c_language): Move to c-common.c. 6360 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c 6361 functions. 6362 (cxx_init): Update. 6363 63642001-11-26 Jason Merrill <jason@redhat.com> 6365 6366 * call.c (joust): Remove COND_EXPR hack. 6367 63682001-11-25 Aldy Hernandez <aldyh@redhat.com> 6369 6370 * search.c (lookup_base_r): Declare bk in variable declaration 6371 space. 6372 63732001-11-25 Nathan Sidwell <nathan@codesourcery.com> 6374 6375 PR g++/3145 6376 * class.c (build_vbase_pointer): Remove. 6377 (build_vbase_path): Remove. 6378 (build_base_path): New function. 6379 * cp-tree.h (base_access, base_kind): New enumerations. 6380 (build_base_path): Declare. 6381 (convert_pointer_to_real): Remove. 6382 (convert_pointer_to): Remove. 6383 (lookup_base): Declare. 6384 (convert_pointer_to_vbase): Remove. 6385 * call.c (build_scoped_method_call): Use lookup_base & 6386 build_base_path instead of convert_pointer_to_real, 6387 get_base_distance & get_binfo. 6388 (build_over_call): Likewise. 6389 * cvt.c (cp_convert_to_pointer): Likewise. 6390 (convert_to_pointer_force): Likewise. 6391 (build_up_reference): Likewise. 6392 (convert_pointer_to_real): Remove. 6393 (convert_pointer_to): Remove. 6394 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path 6395 instead of convert_pointer_to_vbase & build_vbase_path. 6396 (emit_base_init): Use build_base_path instead of 6397 convert_pointer_to_real. 6398 (expand_virtual_init): Lose unrequired conversions. 6399 (resolve_offset_ref): Use lookup_base and build_base_path 6400 instead of convert_pointer_to. 6401 * rtti.c (build_dynamic_cast_1): Use lookup_base & 6402 build_base_path instead of get_base_distance & build_vbase_path. 6403 * search.c (get_vbase_1): Remove. 6404 (get_vbase): Remove. 6405 (convert_pointer_to_vbase): Remove. 6406 (lookup_base_r): New function. 6407 (lookup_base): New function. 6408 * typeck.c (require_complete_type): Use lookup_base & 6409 build_base_path instead of convert_pointer_to. 6410 (build_component_ref): Likewise. 6411 (build_x_function_call): Likewise. 6412 (get_member_function_from_ptrfunc): Likewise. 6413 (build_component_addr): Likewise. 6414 * typeck2.c (build_scoped_ref): Likewise. 6415 64162001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 6417 6418 * cp-tree.h (CP_TYPE_QUALS): Removed. 6419 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree. 6420 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and 6421 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN. 6422 * dump.c (cp_dump_tree): Use void* dump_info argument to match 6423 lang-hooks prototype. 6424 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c, 6425 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to 6426 CP_TYPE_QUALS changed to cp_type_quals. 6427 * Make-lang.in: References to c-dump.h changed to tree-dump.h. 6428 (CXX_C_OBJS): Remove c-dump.o. 6429 64302001-11-21 Mark Mitchell <mark@codesourcery.com> 6431 6432 PR c++/3637 6433 * pt.c (lookup_template_class): Ensure that all specializations 6434 are registered on the list corresponding to the most general 6435 template. 6436 64372001-11-20 Mark Mitchell <mark@codesourcery.com> 6438 6439 * call.c (non_reference): Add documentation. 6440 (convert_class_to_reference): Do not strip reference types 6441 from conversion operators. 6442 (maybe_handle_ref_bind): Simplify. 6443 (compare_ics): Correct handling of references. 6444 64452001-11-19 John Wilkinson <johnw@research.att.com> 6446 6447 * dump.c (dump_op): New function. 6448 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use 6449 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs. 6450 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P, 6451 64522001-11-19 Mark Mitchell <mark@codesourcery.com> 6453 6454 PR4629 6455 * semantics.c (finish_sizeof): Make sure that expression created 6456 while processing a template do not have a type. 6457 (finish_alignof): Likewise. 6458 * typeck.c (c_sizeof): Likewise. 6459 (expr_sizeof): Likewise. 6460 64612001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 6462 6463 * lex.c (cxx_finish): Call c_common_finish. 6464 (finish_parse): Remove. 6465 64662001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6467 6468 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE 6469 when displaying error message about missing array bounds. 6470 64712001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6472 6473 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, 6474 CONST_CAST_EXPR. 6475 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. 6476 64772001-11-16 Neil Booth <neil@daikokuya.demon.co.uk> 6478 6479 * cp-tree.h (print_class_statistics): Restore. 6480 64812001-11-15 Jason Merrill <jason@redhat.com> 6482 6483 * method.c (use_thunk): Don't emit debugging information for thunks. 6484 6485 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions. 6486 * decl.c (make_typename_type): Handle getting a class template. 6487 * search.c (lookup_field_r): A class template is good enough for 6488 want_type. 6489 6490 * call.c (convert_like_real): Only use cp_convert for the bad part. 6491 (standard_conversion): Also allow bad int->enum. 6492 * typeck.c (ptr_reasonably_similar): Also allow functions to 6493 interconvert. Pointers to same-size integers are reasonably 6494 similar. 6495 6496 * cvt.c (convert_to_void): If we build a new COND_EXPR, always 6497 give it void type. 6498 64992001-11-15 Nathan Sidwell <nathan@codesourcery.com> 6500 6501 PR g++/3154 6502 * init.c (sort_base_init): Remove unreachable code. 6503 (expand_member_init): Adjust comment to reflect reality. Simplify 6504 and remove unreachable code. 6505 65062001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 6507 6508 * cp-tree.h (init_reswords, cxx_init_decl_processing): New. 6509 (cxx_init): Update prototype. 6510 * decl.c (init_decl_processing): Rename. Move null node init 6511 to its creation time. 6512 * lex.c (cxx_init_options): Update. 6513 (cxx_init): Combine with old init_parse; also call 6514 cxx_init_decl_processing. 6515 65162001-11-14 Richard Sandiford <rsandifo@redhat.com> 6517 6518 * decl.c (check_initializer): Try to complete the type of an 6519 array element before checking whether it's complete. Don't 6520 complain about arrays with complete element types but an 6521 unknown size. 6522 (cp_finish_decl): Build the hierarchical constructor before 6523 calling maybe_deduce_size_from_array_init. 6524 65252001-11-14 Joseph S. Myers <jsm28@cam.ac.uk> 6526 6527 * Make-lang.in: Change all uses of $(manext) to $(man1ext). 6528 65292001-11-13 Nathan Sidwell <nathan@codesourcery.com> 6530 6531 PR g++/4206 6532 * parse.y (already_scoped_stmt): Remove. 6533 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt. 6534 65352001-11-12 H.J. Lu <hjl@gnu.org> 6536 6537 * cvt.c (ocp_convert): Don't warn the address of a weak 6538 function is always `true'. 6539 65402001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 6541 6542 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, 6543 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, 6544 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override. 6545 * cp-tree.h (print_class_statistics): Remove. 6546 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type, 6547 cxx_print_identifier, cxx_set_yydebug): New. 6548 * lex.c (set_yydebug): Rename c_set_yydebug. 6549 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier, 6550 lang_print_xnode): Rename. 6551 * tree.c (print_lang_statistics): Rename. 6552 65532001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6554 6555 * class.c (dump_array): Fix format specifier warning. 6556 65572001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 6558 6559 * cp-lang.c (LANG_HOOKS_NAME): Override. 6560 (struct lang_hooks): Constify. 6561 * lex.c (cxx_init_options): Update. 6562 (lang_identify): Remove. 6563 * parse.y (language_string): Remove. 6564 65652001-11-08 Andreas Franck <afranck@gmx.de> 6566 6567 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME, 6568 DEMANGLER_CROSS_NAME): Handle program_transform_name the way 6569 suggested by autoconf. 6570 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define. 6571 (c++.install-common): Use the transformed target alias names. 6572 65732001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 6574 6575 * Make-lang.in: Update. 6576 * cp-lang.c: Include langhooks-def.h. 6577 65782001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6579 6580 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR. 6581 65822001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6583 6584 * lex.c (copy_lang_type): Add static prototype. 6585 65862001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6587 6588 * pt.c (unify): Handle SCOPE_REF. 6589 65902001-11-01 Jakub Jelinek <jakub@redhat.com> 6591 6592 * tree.c (cp_copy_res_decl_for_inlining): Adjust 6593 DECL_ABSTRACT_ORIGIN for the return variable. 6594 65952001-10-31 Zack Weinberg <zack@codesourcery.com> 6596 6597 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 6598 65992001-10-28 Joseph S. Myers <jsm28@cam.ac.uk> 6600 6601 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c, 6602 semantics.c, spew.c: Fix spelling errors. 6603 66042001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6605 6606 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. 6607 66082001-10-25 Zack Weinberg <zack@codesourcery.com> 6609 6610 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to 6611 pop_everything. 6612 6613Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6614 6615 * cp-lang.c (cxx_get_alias_set): New function. 6616 Point LANG_HOOKS_GET_ALIAS_SET to it. 6617 66182001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6619 6620 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node. 6621 * cp-tree.h (make_unbound_class_template): Prototype new function. 6622 * decl.c (make_unbound_class_template): New function. 6623 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE. 6624 * error.c (dump_type): Likewise. 6625 * mangle.c (write_type): Likewise. 6626 * parse.y (template_parm): Likewise. 6627 (template_argument): Use make_unbound_class_template. 6628 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE. 6629 (tsubst): Likewise. 6630 (tsubst_copy): Likewise. 6631 (unify): Likewise. 6632 * tree.c (walk_tree): Likewise. 6633 * typeck.c (comptypes): Likewise. 6634 66352001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6636 6637 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold 6638 extra calls into fewer ones. 6639 66402001-10-18 Alexandre Oliva <aoliva@redhat.com> 6641 6642 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. 6643 Warn when merging inline with attribute noinline. 6644 (start_decl, start_function): Warn if inline and attribute 6645 noinline appear in the same declaration. 6646 66472001-10-16 H.J. Lu <hjl@gnu.org> 6648 6649 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined 6650 for tree checking disabled. 6651 66522001-10-16 Hans-Peter Nilsson <hp@axis.com> 6653 6654 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL && 6655 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME. 6656 66572001-10-15 Richard Sandiford <rsandifo@redhat.com> 6658 6659 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define. 6660 (unify): Only handle MINUS_EXPR specially if the above flag is set 6661 and the subtracted constant is 1. Clear the flag on recursive calls. 6662 Set it when unifying the maximum value in an INTEGER_TYPE's range. 6663 66642001-10-15 Richard Sandiford <rsandifo@redhat.com> 6665 6666 * decl.c (bad_specifiers): Don't allow exception specifications 6667 on any typedefs. 6668 66692001-10-14 Neil Booth <neil@daikokuya.demon.co.uk> 6670 6671 * cp/lex.c (init_cp_pragma): Similarly. 6672 66732001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6674 6675 * pt.c (lookup_template_class): Build complete template arguments 6676 for BOUND_TEMPLATE_TEMPLATE_PARM. 6677 66782001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6679 6680 * cp-tree.h (TYPE_BINFO): Update comment. 6681 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro. 6682 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info. 6683 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS. 6684 (copy_type): Prototype new function. 6685 * lex.c (copy_lang_decl): Gather tree node statistics. 6686 (copy_lang_type): New function. 6687 (copy_type): Likewise. 6688 (cp_make_lang_type): Create lang_type for 6689 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE 6690 and BOUND_TEMPLATE_TEMPLATE_PARM. 6691 * pt.c (tsubst): Use copy_type instead of copy_node. 6692 * search.c (lookup_field_1): Ignore TYPENAME_TYPE. 6693 66942001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6695 6696 * pt.c (determine_specialization): Ignore functions without 6697 DECL_TEMPLATE_INFO. 6698 66992001-10-12 Nathan Sidwell <nathan@codesourcery.com> 6700 6701 PR g++/4476 6702 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes. 6703 67042001-10-11 Jason Merrill <jason_merrill@redhat.com> 6705 6706 * typeck2.c (store_init_value): Don't re-digest a bracketed 6707 initializer. 6708 6709 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of 6710 ANON_AGGR_TYPE_P. 6711 67122001-10-11 Richard Henderson <rth@redhat.com> 6713 6714 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead 6715 of an asm statement. 6716 (build_vtbl_ref_1): Split out from build_vtbl_ref. 6717 (build_vfn_ref): Use it to handle vtable descriptors before 6718 calling build_vtable_entry_ref. 6719 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. 6720 67212001-10-10 Richard Henderson <rth@redhat.com> 6722 6723 * parse.y (asm_operand): Allow named operands. 6724 * semantics.c (finish_asm_stmt): Tweek for changed location 6725 of the operand constrant. 6726 67272001-10-09 Jason Merrill <jason_merrill@redhat.com> 6728 6729 * call.c (standard_conversion): Add bad conversion between 6730 integers and pointers. 6731 (convert_like_real): Don't use convert_for_initialization for bad 6732 conversions; complain here and use cp_convert. 6733 (build_over_call): Don't handle bad conversions specially. 6734 (perform_implicit_conversion): Allow bad conversions. 6735 (can_convert_arg_bad): New fn. 6736 * cp-tree.h: Declare it. 6737 * typeck.c (convert_for_assignment): Use it. 6738 (ptr_reasonably_similar): Any target type is similar to void. 6739 67402001-10-08 Alexandre Oliva <aoliva@redhat.com> 6741 6742 * Make-lang.in (CXX_OBJS): Added cp-lang.o. 6743 (cp/cp-lang.o): New rule. 6744 * cp-tree.h: Declare hooks. 6745 * tree.c: Make hooks non-static. 6746 (init_tree): Don't initialize hooks here. 6747 * lex.c: Likewise. Move definition of lang_hooks to... 6748 * cp-lang.c: ... new file. 6749 67502001-10-08 Richard Henderson <rth@redhat.com> 6751 6752 * cp-tree.h (struct lang_decl_flags): Remove declared_inline. 6753 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl. 6754 67552001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6756 6757 * class.c (build_vtable_entry_ref): Const-ify. 6758 * decl.c (predefined_identifier, 6759 initialize_predefined_identifiers): Likewise. 6760 * init.c (build_new_1): Likewise. 6761 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): 6762 Likewise. 6763 67642001-10-05 Alexandre Oliva <aoliva@redhat.com> 6765 6766 * optimize.c (struct inline_data): Moved to ../tree-inline.c. 6767 (INSNS_PER_STMT): Likewise. 6768 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. 6769 (copy_body, initialize_inlined_parameters): Likewise. 6770 (declare_return_variable, inlinable_function_p): Likewise. 6771 (expand_call_inline, expand_calls_inline): Likewise. 6772 (optimize_inline_calls, clone_body): Likewise. 6773 * tree.c (walk_tree): Moved to ../tree-inline.c. 6774 (walk_tree_without_duplicates): Likewise. 6775 (copy_tree_r, remap_save_expr): Likewise. 6776 67772001-10-04 Alexandre Oliva <aoliva@redhat.com> 6778 6779 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. 6780 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise. 6781 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl. 6782 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h. 6783 (flag_inline_trees): Moved declaration to ../tree-inline.h. 6784 (walk_tree): Moved declaration to ../tree-inline.h. 6785 (walk_tree_without_duplicates, copy_tree_r): Likewise. 6786 (remap_save_expr): Likewise. 6787 * decl.c: Include tree-inline.h. 6788 (lang_mark_tree): Don't mark inlined_fns. 6789 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c. 6790 * optimize.c: Include tree-inline.h. 6791 (optimize_inline_calls): Move declaration to ../tree.h, as 6792 non-static. 6793 (remap_decl): Use language-independent constructs and hooks. 6794 (remap_block, copy_body_r, declare_return_variable): Likewise. 6795 (inlinable_function_p): Likewise. Don't test for 6796 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is 6797 no longer language-specific. 6798 (optimize_inline_calls): Likewise. Make it non-static. Moved 6799 call of dump_function to... 6800 (optimize_function): Here... 6801 (clone_body): New function, extracted from... 6802 (maybe_clone_body): ... here. Build decl_map locally and pass 6803 it on to clone_body. 6804 * pt.c, semantics.c: Include tree-inline.h. 6805 * tree.c: Likewise. 6806 (cp_walk_subtrees): New language-specific hook for tree inlining. 6807 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls, 6808 cp_is_overload_p, cp_auto_var_in_fn_p, 6809 cp_copy_res_decl_for_inlining): Likewise. 6810 (walk_tree): Move language-specific constructs into... 6811 (cp_walk_subtrees): this new function. 6812 (copy_tree_r): Use language-independent constructs and hooks. 6813 (init_tree): Initialize tree inlining hooks. 6814 (remap_save_expr): Adjust prototype so that the declaration 6815 does not require the definition of splay_tree. 6816 68172001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca> 6818 6819 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used 6820 to build the declaration instead of the declaration itself. 6821 68222001-10-02 Jason Merrill <jason_merrill@redhat.com> 6823 6824 * decl2.c (cxx_decode_option): Add 'else'. 6825 6826 * spew.c (end_input): No longer static. 6827 * cp-tree.h: Declare it. 6828 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. 6829 68302001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 6831 6832 * call.c (build_over_call), typeck.c (build_function_call_real): 6833 Pass type attributes to check_function_format rather than name or 6834 assembler name. Don't require there to be a name or assembler 6835 name to check formats. 6836 68372001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 6838 6839 * decl.c (init_decl_processing): Don't call 6840 init_function_format_info. Initialize lang_attribute_table 6841 earlier. 6842 (builtin_function): Call decl_attributes. 6843 (insert_default_attributes): New. 6844 68452001-10-01 Jason Merrill <jason_merrill@redhat.com> 6846 6847 * decl.c (grokdeclarator): Copy array typedef handling from C 6848 frontend. 6849 6850 * decl.c (grokdeclarator): Copy too-large array handling from C 6851 frontend. 6852 68532001-09-29 Alexandre Oliva <aoliva@redhat.com> 6854 6855 * config-lang.in (target_libs): Added target-gperf, so that we 6856 don't try to build it if C++ is disabled. 6857 68582001-09-23 Zack Weinberg <zack@codesourcery.com> 6859 6860 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o. 6861 (cp/errfn.o): Delete rule. 6862 (cp/error.o): Depend on flags.h. 6863 * errfn.c: Delete file. 6864 * cp-tree.h: Declare warn_deprecated. Remove definitions of 6865 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, 6866 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning, 6867 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and 6868 internal_error respectively. Make cp_deprecated into a macro. 6869 Don't define cp_printer typedef or declare cp_printers. 6870 * error.c: Include flags.h. 6871 Delete: struct tree_formatting_info, print_function_argument_list, 6872 print_declaration, print_expression, print_function_declaration, 6873 print_function_parameter, print_type_id, print_cv_qualifier_seq, 6874 print_type_specifier_seq, print_simple_type_specifier, 6875 print_elaborated_type_specifier, print_rest_of_abstract_declarator, 6876 print_parameter_declaration_clause, print_exception_specification, 6877 print_nested_name_specifier, and definition of cp_printers. 6878 (locate_error): New function. 6879 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and 6880 rewritten in terms of locate_error and diagnostic.c. 6881 (cp_tree_printer): Rename cp_printer; wire up to *_to_string 6882 instead of deleted print_* routines. Handle %C, %L, %O, %Q also. 6883 (init_error): Adjust to match. 6884 6885Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6886 6887 * Make-lang.in (CXX_C_OBJS): Add attribs.o. 6888 68892001-09-21 Richard Henderson <rth@redhat.com> 6890 6891 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. 6892 (build_vtbl_initializer): Likewise. 6893 (build_vfn_ref): New. 6894 * cp-tree.h: Declare it. 6895 * call.c (build_over_call): Use it. 6896 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. 6897 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. 6898 6899Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com> 6900 6901 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. 6902 69032001-09-21 Joseph S. Myers <jsm28@cam.ac.uk> 6904 6905 Table-driven attributes. 6906 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. 6907 * decl2.c (cplus_decl_attributes): Only take one attributes 6908 parameter. 6909 * cp-tree.c (cplus_decl_attributes): Update prototype. 6910 * class.c (finish_struct), decl.c (start_decl, start_function), 6911 decl2.c (grokfield), friend.c (do_friend), parse.y 6912 (parse_bitfield): Update calls to cplus_decl_attributes. 6913 * decl.c (grokdeclarator): Take a pointer to a single ordinary 6914 attribute list. 6915 * decl.h (grokdeclarator): Update prototype. 6916 * decl2.c (grokfield): Take a single ordinary attribute list. 6917 * friend.c (do_friend): Likewise. 6918 * decl.c (shadow_tag, groktypename, start_decl, 6919 start_handler_parms, grokdeclarator, grokparms, start_function, 6920 start_method), decl2.c (grokfield, grokbitfield, grokoptypename), 6921 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c 6922 (process_template_parm, do_decl_instantiation): Pass single 6923 ordinary attribute lists around. 6924 * decl.c (grokdeclarator): Correct handling of nested attributes. 6925 Revert the patch 6926 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 6927 * decl.c (grokdeclarator): Embedded attrs bind to the right, 6928 not the left. 6929 . 6930 * cp-tree.h (cp_valid_lang_attribute): Remove declaration 6931 (cp_attribute_table): Declare. 6932 * decl.c (valid_lang_attribute): Don't define. 6933 (lang_attribute_table): Define. 6934 (init_decl_processing): Initialize lang_attribute_table instead of 6935 valid_lang_attribute. 6936 * tree.c (cp_valid_lang_attribute): Remove. 6937 (handle_java_interface_attribute, handle_com_interface_attribute, 6938 handle_init_priority_attribute): New functions. 6939 (cp_attribute_table): New array. 6940 * decl2.c (import_export_class): Don't use 6941 targetm.valid_type_attribute. 6942 69432001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 6944 6945 * Make-lang.in (cp/error.o): Depend on real.h 6946 * error.c: #include "real.h" 6947 69482001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6949 6950 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of 6951 xmalloc/strcpy/strcat. 6952 69532001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6954 6955 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): 6956 Const-ification. 6957 * pt.c (tsubst_decl): Likewise. 6958 69592001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6960 6961 * decl2.c (lang_f_options): Const-ification. 6962 * lex.c (cplus_tree_code_name): Likewise. 6963 * spew.c (yyerror): Likewise. 6964 69652001-09-06 Nathan Sidwell <nathan@codesourcery.com> 6966 6967 PR c++/3986 6968 * class.c (force_canonical_binfo_r): Check & move an indirect 6969 primary base first. 6970 (force_canonical_binfo): Check that it's not already 6971 canonical. 6972 (mark_primary_virtual_base): Remove BINFO parameter. 6973 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here. 6974 69752001-09-06 Nathan Sidwell <nathan@codesourcery.com> 6976 6977 Remove TYPE_NONCOPIED_PARTS. 6978 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto 6979 CLASSTYPE_PURE_VIRTUALS. 6980 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO. 6981 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS. 6982 (layout_class_type): Don't call fixup_inline_methods here ... 6983 (finish_struct_1): ... call it here. 6984 69852001-09-04 Mark Mitchell <mark@codesourcery.com> 6986 6987 * decl.c (duplicate_decls): Remove code deadling with 6988 DECL_SAVED_INSNS. 6989 * decl2.c (finish_file): Likewise. 6990 * pt.c (instantiate_decl): Likewise. 6991 * semantics.c (expand_body): Don't defer local functions if 6992 they wouldn't be deferred for some other reason. Don't 6993 generate RTL for functions that will not be emitted. 6994 (genrtl_start_function): Remove code deadling with 6995 DECL_SAVED_INSNS. 6996 (genrtl_finish_function): Likewise. 6997 69982001-09-04 Nathan Sidwell <nathan@codesourcery.com> 6999 7000 PR c++/4203 7001 * call.c (build_over_call): Do not optimize any empty base 7002 construction. 7003 70042001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 7005 7006 * error.c (dump_template_decl): Output template parameters 7007 together with their specifiers. 7008 Output `class' prefix for template template parameter. 7009 (dump_decl): Fix formatting. 7010 70112001-08-30 Kurt Garloff <garloff@suse.de> 7012 7013 * optimize.c (inlinable_function_p): Allow only smaller single 7014 functions. Halve inline limit after reaching recursive limit. 7015 70162001-08-30 Joern Rennecke <amylaar@redhat.com> 7017 Jason Merrill <jason_merrill@redhat.com> 7018 7019 * class.c (build_vtable_entry_ref): Subtract in char*, not 7020 ptrdiff_t. 7021 70222001-08-23 Jason Merrill <jason_merrill@redhat.com> 7023 7024 * tree.c (cp_build_qualified_type_real): Use get_qualified_type. 7025 (build_cplus_array_type): Use cp_build_qualified_type, not 7026 TYPE_MAIN_VARIANT, to get an unqualified version. 7027 7028 * decl2.c (grok_alignof): Lose. 7029 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr. 7030 * typeck.c (c_alignof): Lose. 7031 * semantics.c (finish_sizeof, finish_alignof): New. 7032 * parse.y: Use them. 7033 * cp-tree.h: Declare them. 7034 70352001-08-22 Jason Merrill <jason_merrill@redhat.com> 7036 7037 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement. 7038 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK. 7039 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement. 7040 70412001-08-19 Jakub Jelinek <jakub@redhat.com> 7042 7043 * typeck2.c (add_exception_specifier): Only require complete type if 7044 not in processing template declaration. 7045 70462001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7047 7048 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to 7049 GNU_xref_start_scope and GNU_xref_end_scope. 7050 7051 * tree.c (TYPE_HASH): Moved to ../tree.h. 7052 70532001-08-16 Mark Mitchell <mark@codesourcery.com> 7054 7055 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 7056 on COMPOUND_EXPRs. 7057 70582001-08-14 Richard Henderson <rth@redhat.com> 7059 7060 * class.c, cp-tree.h (build_vfn_ref): Remove. 7061 * call.c, rtti.c: Replace all refernces with build_vtbl_ref. 7062 70632001-08-13 Mark Mitchell <mark@codesourcery.com> 7064 7065 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for 7066 empty class assignment as having side-effects to avoid 7067 spurious warnings. 7068 70692001-08-13 Zack Weinberg <zackw@panix.com> 7070 7071 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. 7072 * except.c: Include libfuncs.h. 7073 70742001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 7075 7076 * decl.c (grokdeclarator): Clarify diagnostic message. 7077 70782001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 7079 7080 * decl2.c (do_nonmember_using_decl): Replace using directive 7081 with using declaration in the error message. 7082 70832001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 7084 7085 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the 7086 criterion to avoid rebuilding expression tree instead of 7087 processing_template_decl. 7088 70892001-08-07 Jason Merrill <jason_merrill@redhat.com> 7090 7091 Support named return value optimization for inlines, too. 7092 * decl.c (finish_function): Nullify returns here. 7093 * semantics.c (genrtl_start_function): Not here. 7094 (cp_expand_stmt): Don't mess with CLEANUP_STMTs. 7095 (nullify_returns_r): No longer static. Just clear RETURN_EXPR. 7096 Also nullify the CLEANUP_STMT for the nrv. 7097 * cp-tree.h: Declare it. 7098 * optimize.c (declare_return_variable): Replace the nrv with the 7099 return variable. 7100 * typeck.c (check_return_expr): Be more flexible on alignment check. 7101 Ignore cv-quals when checking for a matching type. 7102 71032001-08-09 Richard Henderson <rth@redhat.com> 7104 7105 * decl2.c (finish_objects): Use target hooks instead of 7106 assemble_constructor and assemble_destructor. 7107 71082001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 7109 7110 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'. 7111 71122001-08-07 Nathan Sidwell <nathan@codesourcery.com> 7113 7114 PR c++/3820 7115 Stop using TYPE_NONCOPIED_PARTS. 7116 * call.c (build_over_call): Be careful when copy constructing 7117 or assigning to an empty class. 7118 * class.c (check_bases_and_members): It has a 7119 COMPLEX_ASSIGN_REF if it has a vptr. 7120 (layout_class_type): Don't add empty class padding to 7121 TYPE_NONCOPIED_PARTS. 7122 (finish_struct_1): Don't add the VFIELD either. 7123 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_ 7124 initialization. 7125 71262001-08-07 Jason Merrill <jason_merrill@redhat.com> 7127 7128 * tree.c (walk_tree): Walk siblings even if !walk_subtrees. 7129 71302001-08-06 Richard Henderson <rth@redhat.com> 7131 7132 * decl2.c (finish_objects): Pass a symbol_ref and priority to 7133 assemble_{constructor,destructor}. Remove priority handling. 7134 71352001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 7136 7137 Don't allow template-id in using-declaration. 7138 * decl2.c (validate_nonmember_using_decl): Handle template-ids. 7139 (do_class_using_decl): Likewise. 7140 71412001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk> 7142 7143 * cp/spew.c (read_token): No need to pop buffers. 7144 71452001-08-02 Stan Shebs <shebs@apple.com> 7146 7147 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used. 7148 (fnaddr_from_vtable_entry): Remove decl. 7149 * method.c (use_thunk): Update comment. 7150 71512001-08-01 Andrew Cagney <ac131313@redhat.com> 7152 7153 * repo.c (get_base_filename): Change return value to const char 7154 pointer. 7155 71562001-08-02 Nathan Sidwell <nathan@codesourcery.com> 7157 7158 Kill -fhonor-std. 7159 * NEWS: Document. 7160 * cp-tree.h (flag_honor_std): Remove. 7161 (CPTI_FAKE_STD): Remove. 7162 (std_node): Remove comment about it being NULL. 7163 (fake_std_node): Remove. 7164 * decl.c (in_fake_std): Remove. 7165 (walk_namespaces_r): Remove fake_std_node check. 7166 (push_namespace): Remove in_fake_std code. 7167 (pop_namespace): Likewise. 7168 (lookup_name_real): Remove fake_std_node check. 7169 (init_decl_processing): Always create std_node. Always add 7170 std:: things there. 7171 (builtin_function): Always put non '_' fns in std. 7172 * decl2.c (flag_honor_std): Remove. 7173 (lang_f_options): Remove honor-std. 7174 (unsupported_options): Add honor-std. 7175 (set_decl_namespace): Remove fake_std_node check. 7176 (validate_nonmember_using_decl): Likewise. 7177 (do_using_directive): Likewise. 7178 (handle_class_head): Likewise. 7179 * dump.c (cp_dump_tree): Likewise. 7180 * except.c (init_exception_processing): Adjust. 7181 * init.c (build_member_call): Remove fake_std_node check. 7182 (build_offset_ref): Likewise. 7183 * lang-options.h: Remove -fhonor-std, -fno-honor-std. 7184 * rtti.c (init_rtti_processing): Adjust. 7185 71862001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 7187 7188 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second 7189 operand while calling cp_tree_equal. 7190 71912001-07-31 Nathan Sidwell <nathan@codesourcery.com> 7192 7193 The 3.0 ABI no longer has vbase pointer fields. 7194 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, 7195 FORMAT_VBASE_NAME): Remove. 7196 * method.c (do_build_copy_constructor): Adjust. 7197 (do_build_assign_ref): Adjust. 7198 * search.c (lookup_field_r): Adjust. 7199 * typeck.c (build_component_ref): Adjust. 7200 7201 The 3.0 ABI always has a vtable pointer at the start of every 7202 polymorphic class. 7203 * rtti.c (build_headof_sub): Remove. 7204 (build_headof): Adjust. 7205 (get_tinfo_decl_dynamic): No need to check flag_rtti 7206 here. Adjust. 7207 (create_real_tinfo_var): Explain why we need a hidden name. 7208 72092001-07-31 Nathan Sidwell <nathan@codesourcery.com> 7210 7211 PR c++/3631 7212 * class.c (update_vtable_entry_for_fn): The fixed adjustment 7213 of a virtual thunk should be from declaring base. 7214 72152001-07-31 Nathan Sidwell <nathan@codesourcery.com> 7216 7217 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into 7218 the shared virtual base, so preserving inheritance graph order. 7219 72202001-07-30 Andreas Jaeger <aj@suse.de> 7221 7222 * decl2.c: Remove unused var global_temp_name_counter. 7223 72242001-07-28 Richard Henderson <rth@redhat.com> 7225 7226 * method.c (pending_inlines): Remove. 7227 72282001-07-27 Nathan Sidwell <nathan@codesourcery.com> 7229 7230 * class.c (mark_primary_virtual_base): Don't adjust base 7231 offsets here. 7232 (dfs_unshared_virtual_bases): Adjust them here. 7233 (mark_primary_bases): Explain why we adjust at the end. 7234 72352001-07-27 Nathan Sidwell <nathan@codesourcery.com> 7236 7237 * class.c (finish_struct_1): When copying the primary base's 7238 VFIELD, make sure we find it is at offset zero. 7239 72402001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 7241 7242 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and 7243 tsubst_expr for default template arguments. 7244 72452001-07-26 Nathan Sidwell <nathan@codesourcery.com> 7246 7247 PR c++/3621 7248 * spew.c (yylex): Only copy the token's lineno, if it is 7249 nonzero. 7250 72512001-07-26 Nathan Sidwell <nathan@codesourcery.com> 7252 7253 PR c++/3624 7254 * call.c (resolve_args): Simplify, call 7255 convert_from_reference. 7256 (build_new_op): Resolve and convert from reference ARG1 7257 earlier. Adjust ARG2 & ARG3 resolve and conversion. 7258 72592001-07-26 Nathan Sidwell <nathan@codesourcery.com> 7260 7261 * decl.c (last_function_parm_tags): Remove. 7262 (current_function_parm_tags): Remove. 7263 (init_decl_processing): Adjust. 7264 (start_function): Adjust. 7265 (store_parm_decls): Adjust. 7266 7267 PR c++/3152 7268 * decl.c (grokdeclarator): Detect when a function typedef is 7269 declaring a function, and create last_function_parms correctly. 7270 72712001-07-25 Jason Merrill <jason_merrill@redhat.com> 7272 7273 * call.c (joust): Only prefer a non-builtin candidate to a builtin 7274 one if they have the same signature. 7275 7276 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on 7277 it rather than toplevel_bindings_p. Give it a mangled name if static. 7278 (convert_to_reference): Adjust. 7279 * decl2.c (get_temp_name): Lose. 7280 * mangle.c (mangle_ref_init_variable): New fn. 7281 (mangle_guard_variable): Strip the ref-init header. 7282 * cp-tree.h: Adjust. 7283 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the 7284 initializer. 7285 (grok_reference_init): Always use DECL_INITIAL. 7286 72872001-07-25 Nathan Sidwell <nathan@codesourcery.com> 7288 7289 PR c++/3416 7290 * call.c (build_conditional_expr): Recheck args after 7291 conversions. 7292 * cp-tree.h (build_conditional_expr): Move to correct file. 7293 * typeck.c (decay_conversion): Diagnose any unknown types 7294 reaching here. 7295 (build_binary_op): Don't do initial decay or default 7296 conversions on overloaded functions. 7297 (build_static_cast): Don't do a decay conversion here. 7298 72992001-07-25 Nathan Sidwell <nathan@codesourcery.com> 7300 7301 PR c++/3543 7302 * typeck.c (condition_conversion): Resolve an OFFSET_REF. 7303 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here. 7304 73052001-07-25 Nathan Sidwell <nathan@codesourcery.com> 7306 7307 * class.c (build_vtbl_or_vbase_field): Remove, move into ... 7308 (create_vtbl_ptr): ... here. 7309 73102001-07-25 Nathan Sidwell <nathan@codesourcery.com> 7311 7312 * class.c (build_vbase_offset_vbtl_entries): Look for 7313 non-primary base of which we are a sub vtable. 7314 73152001-07-24 Phil Edwards <pme@sources.redhat.com> 7316 7317 * semantics.c (finish_this_expr): Remove unused code. 7318 73192001-07-24 Nathan Sidwell <nathan@codesourcery.com> 7320 7321 Simplify rtti, now we've only one ABI. 7322 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID, 7323 CPTI_TINFO_VAR_ID. 7324 (tinfo_decl_id, tinfo_var_id): Remove. 7325 (get_typeid_1): Remove. 7326 * rtti.c 7327 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id. 7328 (typeid_ok_p): New function. 7329 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl. 7330 (get_tinfo_decl): Remove old abi documentation. 7331 (tinfo_from_decl): Remove. 7332 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1. 7333 (get_typeid_1): Remove. 7334 (get_base_offset): Remove. 7335 (synthesize_tinfo_var): Absorb get_base_offset. 7336 (create_real_tinfo_var): Don't use tinfo_decl_id. 7337 73382001-07-23 Graham Stott <grahams@redhat.com> 7339 7340 * cp/class.c (type_requires_array_cookie): Fix use of uninitialized 7341 variable has_two_argument_delete_p. 7342 73432001-07-21 Nathan Sidwell <nathan@codesourcery.com> 7344 7345 Remove flag_vtable_thunk. It is always on for the 3.0 ABI. 7346 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. 7347 (CPTI_INDEX_IDENTIFIER): Remove. 7348 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. 7349 (delta2_identifier): Remove. 7350 (index_identifier): Remove. 7351 (pfn_or_delta2_identifier): Remove. 7352 (flag_vtable_thunks): Remove. 7353 (VTABLE_DELTA2_NAME): Remove. 7354 (VTABLE_INDEX_NAME): Remove. 7355 (FNADDR_FROM_VTABLE_ENTRY): Adjust. 7356 (vfunc_ptr_type_node): Adjust. 7357 (VTABLE_NAME_PREFIX): Adjust. 7358 (build_vfn_ref): Lose first parameter. 7359 (fixup_all_virtual_upcast_offsets): Remove. 7360 * decl.c (initialize_predefined_identifiers): Remove 7361 delta2_identifier, index_identifier, pfn_or_delta2_identifier. 7362 (init_decl_processing): Remove no-vtable-thunk code. 7363 * decl2.c (flag_vtable_thunks): Remove. 7364 (mark_vtable_entries): Remove no-vtable-thunk code. 7365 * error.c (dump_decl): Remove no-vtable-thunk code. 7366 (dump_expr): Adjust ptr to member function code. 7367 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk 7368 code. 7369 * rtti.c (build_headof): Remove no-vtable-thunk code. 7370 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. 7371 * search.c (get_base_distance): Remove expand_upcast_fixups case. 7372 (virtual_context) Remove. 7373 (expand_upcast_fixups): Remove. 7374 (fixup_virtual_upcast_offsets): Remove. 7375 (fixup_all_virtual_upcast_offsets): Remove. 7376 * typeck.c (get_member_function_from_ptrfunc): Remove 7377 no-vtable-thunk code. 7378 * call.c (build_over_call): Adjust call to build_vfn_ref. 7379 * class.c (build_vfn_ref): Lose first parameter. Remove 7380 no-vtable-thunk code. 7381 (build_rtti_vtbl_entries): Remove no-vtable-thunk code. 7382 (build_vtable_entry): Remove no-vtable-thunk code. 7383 73842001-07-20 Nathan Sidwell <nathan@codesourcery.com> 7385 7386 Remove old-abi remnants. Remove comments about old abi 7387 behavior. Remove references to 'new-abi' in comments. 7388 * cp-tree.h: Adjust comments. 7389 (vbase_offsets_in_vtable_p): Delete. 7390 (vcall_offsets_in_vtable_p): Delete. 7391 (vptrs_present_everywhere_p): Delete. 7392 (all_overridden_vfuns_in_vtables_p): Delete. 7393 (merge_primary_and_secondary_vtables_p): Delete. 7394 (TYPE_CONTAINS_VPTR_P): Adjust. 7395 (VTT_NAME_PREFIX): Remove. 7396 (CTOR_VTBL_NAME_PREFIX): Remove. 7397 (init_vbase_pointers): Remove. 7398 * class.c: Adjust coments. 7399 (build_vbase_pointer_fields): Delete. 7400 (build_vbase_pointer): Remove old-abi code. 7401 (build_secondary_vtable): Likewise. 7402 (modify_all_vtables): Likewise. 7403 (create_vtable_ptr): Likewise. 7404 (layout_class_type): Likewise. 7405 (finish_struct_1): Likewise. 7406 (finish_vtbls): Likewise. 7407 (dfs_finish_vtbls): Delete. 7408 (build_vbase_offset_vtbl_entries): Remove old-abi code. 7409 * cvt.c: Adjust comments. 7410 * decl.c: Adjust comments. 7411 * decl2.c: Adjust comments. 7412 * init.c: Adjust comments. 7413 (construct_virtual_bases): Remove old-abi code. 7414 * lang-specs.h: Remove -fno-new-abi. 7415 * mangle.c: Adjust comments. 7416 * rtti.c: Adjust comments. 7417 (get_base_offset): Remove old-abi-code. 7418 * search.c: Adjust comments. 7419 (dfs_init_vbase_pointers): Remove. 7420 (dfs_vtable_path_unmark): Remove. 7421 (init_vbase_pointers): Remove. 7422 * semantics.c: Adjust comments. 7423 (emit_associated_thunks): Remove old-abi code. 7424 * typeck.c: Adjust comments. 7425 74262001-07-20 Daniel Berlin <dan@cgsoftware.com> 7427 7428 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not 7429 params.h. 7430 74312001-07-19 Mark Mitchell <mark@codesourcery.com> 7432 7433 * class.c (finish_struct_anon): Forbid nested classes. 7434 74352001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 7436 7437 * decl2.c: Don't include dwarfout.h and dwarf2out.h. 7438 * optimize.c: Include debug.h. 7439 (maybe_clone_body): Use debug hook. 7440 * semantics.c: Include debug.h. 7441 (expand_body): Use debug hook. 7442 74432001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 7444 7445 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. 7446 74472001-07-18 Mark Mitchell <mark@codesourcery.com> 7448 7449 * class.c (type_requires_array_cookie): New function. 7450 (check_methods): Don't try to figure out whether the type needs a 7451 cookie here. 7452 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here. 7453 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove. 7454 (TYPE_VEC_NEW_USES_COOKIE): Reimplement. 7455 * pt.c (instantiate_class_template): Don't set 7456 TYPE_VEC_DELETE_TAKES_SIZE. 7457 * NEWS: Document ABI changes from GCC 3.0. 7458 74592001-07-18 Xavier Delacour <xavier@fmaudio.net>, 7460 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 7461 7462 * NEWS (Changes in GCC 3.0): Fix typo. 7463 74642001-07-13 Joseph S. Myers <jsm28@cam.ac.uk> 7465 7466 * decl2.c (cplus_decl_attributes): Take a pointer to the node to 7467 which attributes are to be attached, and a flags argument. Update 7468 call to decl_attributes. 7469 (grokfield): Update call to decl_attributes. 7470 * class.c (finish_struct): Update call to cplus_decl_attributes. 7471 * cp-tree.h (cplus_decl_attributes): Update prototype. 7472 * decl.c (start_decl, grokdeclarator, start_function): Update 7473 calls to decl_attributes and cplus_decl_attributes. 7474 * friend.c (do_friend): Update call to cplus_decl_attributes. 7475 * parse.y (parse_bitfield): Update call to cplus_decl_attributes. 7476 74772001-07-12 Mark Mitchell <mark@codesourcery.com> 7478 7479 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER 7480 for `register' variables with an asm-specification. 7481 74822001-07-11 Mark Mitchell <mark@codesourcery.com> 7483 7484 * semantics.c (finish_asm_stmt): Mark the output operands 7485 to an asm addressable, if necessary. 7486 74872001-07-11 Ben Elliston <bje@redhat.com> 7488 7489 * Revert this change -- there is a subtle bug. 7490 7491 PR c++/80 7492 * decl.c (finish_enum): New "attributes" argument; pass it to 7493 cplus_decl_attributes. Use a narrower type if the enum is packed. 7494 * cp-tree.h (finish_enum): Adjust prototype. 7495 * parse.y (enum_head): New non-terminal. 7496 (structsp): Use it. Enums now may be preceded or followed by 7497 optional attributes -- pass their chained tree to finish_enum(). 7498 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument. 7499 75002001-07-10 Mark Mitchell <mark@codesourcery.com> 7501 7502 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope 7503 variables. 7504 75052001-07-10 Jason Merrill <jason_merrill@redhat.com> 7506 7507 * semantics.c (cp_expand_stmt): Fix for null 7508 current_function_return_value. 7509 75102001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> 7511 7512 * call.c (build_op_delete_call): Initialize fn. 7513 (convert_like_real): Delete conditional. 7514 (joust): Initialize *w and *l. 7515 * class.c: Add prototype for binfo_ctor_vtable. 7516 (get_primary_binfo): Initialize result. 7517 * init.c (build_java_class_ref): Initialize name. 7518 75192001-07-09 Erik Rozendaal <dlr@acm.org> 7520 7521 * typeck.c (unary_complex_lvalue): Do not duplicate the 7522 argument to modify, pre-, or post-increment when used as an 7523 lvalue and when the argument has side-effects. 7524 75252001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 7526 7527 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 7528 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call 7529 cplus_decl_attributes even if attrs is NULL. 7530 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 7531 75322001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 7533 7534 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update 7535 calls to decl_attributes. 7536 75372001-07-06 Ira Ruben <ira@apple.com> 7538 7539 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should 7540 be DECL_TEMPLATE_RESULT. 7541 75422001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 7543 7544 * cp-tree.h (copy_template_template_parm): Rename to ... 7545 (bind_template_template_parm): ... here. 7546 * tree.c (copy_template_template_parm): Rename to ... 7547 (bind_template_template_parm): ... here. Remove the case when 7548 NEWARGS is NULL_TREE. 7549 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and 7550 BOUND_TEMPLATE_TEMPLATE_PARM. 7551 * pt.c (lookup_template_class): Adjust. 7552 75532001-07-05 Jason Merrill <jason_merrill@redhat.com> 7554 7555 * cvt.c (convert_lvalue): New fn. 7556 * cp-tree.h: Declare it. 7557 * method.c (do_build_assign_ref): Use it. 7558 (do_build_copy_constructor): Convert parm to base types 7559 before calling base constructors. 7560 7561 * typeck.c (check_return_expr): Check DECL_ALIGN instead of 7562 DECL_USER_ALIGN. Check flag_elide_constructors instead of 7563 optimize. 7564 * semantics.c (cp_expand_stmt): Don't destroy the named return value. 7565 75662001-07-02 Nathan Sidwell <nathan@codesourcery.com> 7567 7568 * optimize.c (optimize_inline_calls): New function, broken out 7569 of ... 7570 (optimize_function): ... here. Call it. Don't inline if it is 7571 a thunk. 7572 (dump_function): Print name of dump flag causing this dump. 7573 * semantics.c (expand_body): Move thunk inline check to 7574 optimize_function. 7575 75762001-06-29 Joseph S. Myers <jsm28@cam.ac.uk> 7577 7578 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. 7579 (comptypes): Use target.comp_type_attributes. 7580 75812001-06-29 Nathan Sidwell <nathan@codesourcery.com> 7582 7583 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration. 7584 75852001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 7586 7587 * error.c (lang_print_error_function): Add a `diagnostic_context *' 7588 parameter. Tweak. 7589 75902001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk> 7591 7592 * decl2.c (import_export_class): Update. 7593 75942001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 7595 7596 * error.c (init_error): Adjust settings. 7597 75982001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 7599 7600 * error.c (init_error): Adjust settings. 7601 76022001-06-19 Richard Sandiford <rsandifo@redhat.com> 7603 7604 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to 7605 return pointers to data members by reference rather than by value. 7606 76072001-06-18 Jason Merrill <jason_merrill@redhat.com> 7608 7609 Implement the Named Return Value optimization. 7610 * cp-tree.h (struct cp_language_function): Add x_return_value. 7611 (current_function_return_value): Now a macro. 7612 * decl.c: Don't define it. 7613 (define_label, finish_case_label): Don't clear it. 7614 (init_decl_processing): Don't register it with GC. 7615 * semantics.c (genrtl_finish_function): Don't check it for 7616 no_return_label. Copy the RTL from the return value to 7617 current_function_return_value and walk, calling... 7618 (nullify_returns_r): ...this new fn. 7619 * typeck.c (check_return_expr): Set current_function_return_value. 7620 76212001-06-15 Jason Merrill <jason_merrill@redhat.com> 7622 7623 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're 7624 sharing a ctor vtable with. Merge code for cases 1 and 2. 7625 (binfo_ctor_vtable): New fn. 7626 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it. 7627 76282001-06-14 Jason Merrill <jason_merrill@redhat.com> 7629 7630 * class.c (dfs_find_final_overrider): Fix logic. 7631 7632 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use 7633 virtual thunk instead of non-virtual. 7634 (get_matching_virtual): Uncomment. 7635 7636 * pt.c (unify): Don't recurse between the POINTER_TYPE and the 7637 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on 7638 PARM, not ARG. 7639 76402001-06-14 Nathan Sidwell <nathan@codesourcery.com> 7641 7642 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure 7643 we've not emerged from the hierarchy of RTTI_BINFO on reaching 7644 a non-virtual base. 7645 76462001-06-13 Mark Mitchell <mark@codesourcery.com> 7647 7648 * NEWS: Update release number. 7649 76502001-06-12 Nathan Sidwell <nathan@codesourcery.com> 7651 7652 PR c++/3130, c++/3131, c++/3132 7653 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define. 7654 * class.c (force_canonical_binfo_r): Move 7655 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move 7656 virtual bases unless they're primary and what they're primary 7657 too has been moved. 7658 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope 7659 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and 7660 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most 7661 derived binfo. 7662 (mark_primary_bases): Use BINFO_UNSHARED_MARKED. 7663 (layout_nonempty_base_or_field): Add most derived type 7664 parameter. Adjust. 7665 (layout_empty_base): Likewise. 7666 (build_base_field): Likewise. 7667 (build_base_fields): Likewise. 7668 (propagate_binfo_offsets): Add most derived type 7669 parameter. Skip non canonical virtual bases too. 7670 (dfs_set_offset_for_unshared_vbases): Don't skip primary 7671 bases. Do skip canonical bases. 7672 (layout_virtual_bases): Adjust. 7673 (layout_class_type): Adjust. 7674 (dfs_get_primary_binfo): Build list of virtual primary base 7675 candidates. 7676 (get_primary_binfo): Check that the shared virtual primary 7677 base candidate was found first. 7678 (accumulate_vtbl_inits): Don't do anything for non-vptr 7679 containing binfos. For case 1 primary virtual bases, keep 7680 checking that we've not emerged from the hierarchy of RTTI_BINFO. 7681 76822001-06-12 Nathan Sidwell <nathan@codesourcery.com> 7683 7684 PR c++/3089 7685 * class.c (dfs_accumulate_vtbl_inits): Always walk down the 7686 hierarchy looking for primary bases for a ctor 7687 vtable. Recursively call oneself, if we meet our primary via 7688 this route and haven't met it yet via inheritance graph order. 7689 76902001-06-11 Mark Mitchell <mark@codesourcery.com> 7691 7692 * lang-options.h: Emit documentation for -fno-honor-std, not 7693 -fhonor-std. 7694 76952001-06-10 Alexandre Oliva <aoliva@redhat.com> 7696 7697 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: 7698 Don't clobber delta. 7699 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn. 7700 77012001-06-10 Mark Mitchell <mark@codesourcery.com> 7702 Gabriel Dos Reis <gdr@codesourcery.com> 7703 7704 * Make-lang.in (cp/call.o): Depend on diagnostic.h 7705 (cp/typeck.o): Depend on diagnostic.h 7706 (cp/typeck2.o): Depend on diagnostic.h 7707 (cp/repo.o): Depend on dignostic.h 7708 * typeck.c: #include diagnostic.h 7709 (convert_for_initialization): Remove extern declaration for 7710 warningcount and errorcount. 7711 7712 * call.c: #include diagnostic.h 7713 (convert_like_real): Remove extern declaration for warnincount and 7714 errorcount. 7715 7716 * repo.c: #include diagnostic.h 7717 * typeck2.c: #include diagnostic.h 7718 77192001-06-08 Nathan Sidwell <nathan@codesourcery.com> 7720 7721 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko 7722 in previous change. 7723 77242001-06-08 Nathan Sidwell <nathan@codesourcery.com> 7725 7726 PR c++/2929 7727 * friend.c (do_friend): Use push_decl_namespace for classes at 7728 namespace scope. 7729 77302001-06-08 Nathan Sidwell <nathan@codesourcery.com> 7731 Jason Merrill <jason_merrill@redhat.com> 7732 7733 PR c++/3061 7734 * class.c (build_secondary_vtable): Use assert, rather than an error 7735 message. 7736 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL. 7737 (dfs_accumulate_vtbl_inits): A lost primary virtual base may 7738 be between ORIG_BINFO and RTTI_BINFO, but neither of them. 7739 Don't set BINFO_VTABLE for a primary virtual base. 7740 77412001-06-07 Mark Mitchell <mark@codesourcery.com> 7742 7743 * decl.c (duplicate_decls): Update source position information 7744 when a template function is defined. 7745 77462001-06-07 Phil Edwards <pme@sources.redhat.com> 7747 7748 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h. 7749 77502001-06-07 Nathan Sidwell <nathan@codesourcery.com> 7751 7752 PR c++/2914 7753 * decl.c (pushtag): Don't push into a complete type's scope. 7754 77552001-06-06 Jason Merrill <jason_merrill@redhat.com> 7756 7757 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose. 7758 (struct lang_decl_flags): Lose generate_with_vtable_p. 7759 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose. 7760 * class.c (copy_virtuals): Adjust. 7761 * decl2.c (mark_vtable_entries): Adjust. 7762 * method.c (make_thunk, build_vtable_entry): Adjust. 7763 * class.c (update_vtable_entry_for_fn): Only look as far as the 7764 first defining class. 7765 (build_vtbl_initializer): Put nothing in the slot for a function only 7766 defined in a lost primary virtual base. 7767 (add_vcall_offset_vtbl_entries_1): Use the same code for 7768 the lost primary case and the normal case. 7769 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base. 7770 (get_vfield_offset, get_derived_offset): Lose. 7771 (dfs_find_final_overrider): Use look_for_overrides_here. 7772 (get_matching_virtual): New fn. 7773 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P, 7774 not BV_VCALL_INDEX. 7775 * search.c (look_for_overrides_here): Split out from... 7776 (look_for_overrides_r): Here. 7777 7778 * class.c (find_final_overrider): Return error_mark_node on error. 7779 7780 * decl2.c (key_method): #if 0 accidental change. 7781 77822001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> 7783 7784 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P. 7785 (build_over_call): Likewise. 7786 * decl.c (grokparms): Likewise. 7787 * pt.c (tsubst_decl): Likewise. 7788 * typeck.c (convert_arguments): Likewise. 7789 77902001-06-05 Mark Mitchell <mark@codesourcery.com> 7791 7792 * semantics.c (begin_class_definition): Robustify. 7793 7794 * pt.c (instantiate_decl): Tell the repository code about the 7795 clones, not the cloned functions. 7796 * repo.c (repo_template_used): Explicitly instantiate the cloned 7797 function, not the clones. 7798 77992001-06-05 Nathan Sidwell <nathan@codesourcery.com> 7800 7801 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and 7802 ICS_BAD_FLAG on created conversion. 7803 (compare_ics): Break out rank. 7804 78052001-06-05 Nathan Sidwell <nathan@codesourcery.com> 7806 7807 * decl.c (xref_tag): Remove extraneous %s on dependent name 7808 lookup warning. 7809 78102001-06-05 Nathan Sidwell <nathan@codesourcery.com> 7811 7812 * class.c (layout_vtable_decl): Fix off by one error on 7813 build_index_type. 7814 (build_vtt): Likewise. 7815 (build_ctor_vtbl_group): Likewise. 7816 78172001-06-05 Nathan Sidwell <nathan@codesourcery.com> 7818 7819 * class.c (maybe_indent_hierarchy): New function. 7820 (dump_class_hierarchy_r): Add flags. Dump extra binfo 7821 information, if enabled. Use maybe_indent_hierarchy. Adjust 7822 output format. 7823 (dump_class_hierarchy): Adjust prototype. Adjust output format. 7824 (dump_array, dump_vtable, dump_vtt): New functions. 7825 (finish_struct_1): Adjust hierarchy dumping. 7826 (initialize_vtable): Call dump_vtable. 7827 (build_vtt): Call dump_vtt. 7828 (build_ctor_vtbl_group): Call dump_vtable. 7829 * decl2.c (flag_dump_class_layout): Remove. 7830 (cxx_decode_option): Remove dump translation unit 7831 and dump class hierarchy check. Call dump_switch_p. 7832 (finish_file): Adjust dumping. 7833 (dump.c): Only dump base classes if not TDF_SLIM. 7834 Only dump namespace members if not TDF_SLIM. 7835 * optimize.c (dump_function): New function. 7836 (optimize_function): Call dump_function. 7837 * semantics.c (expand_body): Use dump_enabled_p. 7838 78392001-06-01 Nathan Sidwell <nathan@codesourcery.com> 7840 7841 PR g++/2936 7842 Part missed from first commit 7843 * decl2.c (finish_anon_union): Copy context. 7844 78452001-05-30 Nathan Sidwell <nathan@codesourcery.com> 7846 7847 PR g++/2936 7848 * optimize.c (remap_decl): Remap anonymous aggregate members too. 7849 78502001-05-26 Nathan Sidwell <nathan@codesourcery.com> 7851 7852 PR g++/2823 7853 * semantics.c (expand_body): Don't optimize thunks. 7854 78552001-05-25 Sam TH <sam@uchicago.edu> 7856 7857 * cp-tree.h lex.h: Fix header include guards. 7858 78592001-05-25 Mark Mitchell <mark@codesourcery.com> 7860 7861 * decl.c (init_decl_processing): Tweak. 7862 78632001-05-24 Mark Mitchell <mark@codesourcery.com> 7864 7865 * decl.c (duplicate_decls): Tidy. 7866 (init_decl_processing): Always set flag_no_builtin. 7867 78682001-05-24 Nathan Sidwell <nathan@codesourcery.com> 7869 7870 PR c++/2184 7871 * decl2.c (do_local_using_decl): Push the decls, even in a 7872 template. 7873 78742001-05-22 Mark Mitchell <mark@codesourcery.com> 7875 7876 * optimize.c (initialize_inlined_parameters): Don't set 7877 TREE_READONLY for a VAR_DECL taking the place of an inlined 7878 PARM_DECL. 7879 78802001-05-22 Jason Merrill <jason_merrill@redhat.com> 7881 7882 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support. 7883 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface 7884 attribute. 7885 78862001-05-22 Joseph S. Myers <jsm28@cam.ac.uk> 7887 7888 * parse.y: Refer to compound literals as such, not as 7889 constructor-expressions. 7890 78912001-05-21 Mark Mitchell <mark@codesourcery.com> 7892 7893 * call.c (build_op_delete_call): Ignore exception-specifications 7894 when looking for matching delete operators. 7895 * init.c (build_new_1): Compute whether or not the allocation 7896 function used is a placement allocation function or not, and 7897 communicate this information to build_op_delete_call. 7898 78992001-05-21 Jason Merrill <jason_merrill@redhat.com> 7900 7901 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi. 7902 (build_vtbl_ref): Adjust. 7903 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address. 7904 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks. 7905 Re-add vtable-gc. 7906 (unsupported_options): Correspondingly. 7907 7908 * decl2.c (maybe_make_one_only): Check flag_weak, not 7909 supports_one_only(). 7910 7911 * cp-tree.def (START_CATCH_STMT): Lose. 7912 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS. 7913 * tree.c (cp_statement_code_p): Don't case it. 7914 * semantics.c (cp_expand_stmt): Likewise. 7915 * cp-tree.h (START_CATCH_TYPE): Lose. 7916 (HANDLER_TYPE): New. 7917 * except.c (expand_start_catch_block): Don't start any blocks. 7918 Return the type. 7919 (expand_end_catch_block): Don't end any blocks. 7920 * parse.y (handler): Don't pass anything from finish_handler_parms 7921 to finish_handler. 7922 * pt.c (tsubst_expr): Likewise. 7923 * semantics.c (begin_handler): Call note_level_for_catch here. 7924 (finish_handler_parms): Don't return anything. 7925 (genrtl_catch_block, begin_catch_block): Lose. 7926 (genrtl_handler): Call expand_start_catch here. 7927 79282001-05-18 Jason Merrill <jason_merrill@redhat.com> 7929 7930 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here. 7931 (get_vtable_decl, build_vtt): Not here. 7932 79332001-05-20 Nathan Sidwell <nathan@codesourcery.com> 7934 7935 PR c++/2781 7936 * optimize.c (update_cloned_parm): Copy addressability and other 7937 flags. 7938 79392001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 7940 7941 * pt.c (determine_specialization): Ignore artificial functions. 7942 79432001-05-20 Neil Booth <neil@daikokuya.demon.co.uk> 7944 7945 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. 7946 (C_RID_CODE): Remove. 7947 * lex.c (cxx_init_options): Call set_identifier_size. Update. 7948 (init_parse): Don't do it here. 7949 79502001-05-18 Diego Novillo <dnovillo@redhat.com> 7951 7952 * decl2.c (finish_objects): Use the original SYMBOL_REF from the 7953 function declaration to avoid stripping the symbol's attributes. 7954 79552001-05-18 Nathan Sidwell <nathan@codesourcery.com> 7956 7957 * decl.c (pushdecl): Adjust error string. 7958 (xref_tag): Adjust friend class injection warning. Remove the 7959 inherited name from the class shadowed scope. 7960 79612001-05-17 Mark Mitchell <mark@codesourcery.com> 7962 7963 * except.c (cp_protect_cleanup_actions): New function. 7964 (init_exception_processing): Don't set protect_cleanup_actions 7965 here. Do set lang_protect_cleanup_actions. 7966 79672001-05-16 Nathan Sidwell <nathan@codesourcery.com> 7968 7969 * spew.c (read_token): Call yyerror on all unexpected tokens. 7970 79712001-05-16 Nathan Sidwell <nathan@codesourcery.com> 7972 7973 * init.c (member_init_ok_or_else): Take a tree rather than 7974 string for name. 7975 (expand_member_init): Adjust. 7976 79772001-05-14 Nick Clifton <nickc@cambridge.redhat.com> 7978 7979 * decl.c (duplicate_decls): Suppress warning about duplicate 7980 decls if the first decl is a friend. 7981 79822001-05-12 Zack Weinberg <zackw@stanford.edu> 7983 7984 * except.c (choose_personality_routine): Export. Add 7985 explanatory comment. Take an enum languages, not a boolean. 7986 (initialize_handler_parm): Adjust to match. 7987 * cp-tree.h: Prototype choose_personality_routine. 7988 * lex.c (handle_pragma_java_exceptions): New function. 7989 (init_cp_pragma): Register #pragma GCC java_exceptions. 7990 79912001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk> 7992 7993 * method.c (build_mangled_C99_name): Remove unused prototype. 7994 79952001-05-12 Alexandre Oliva <aoliva@redhat.com> 7996 7997 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type. 7998 * typeck.c (get_member_function_from_ptrfunc, 7999 build_ptrmemfunc, expand_ptrmemfunc_cst): Take 8000 TARGET_PTRMEMFUNC_VBIT_LOCATION into account. 8001 8002 Reverted Geoff Keating's 2001-05-03's patch. 8003 80042001-05-11 Ira Ruben <ira@apple.com> 8005 8006 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h. 8007 80082001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 8009 8010 * cp-tree.h (finish_label_expr, lookup_label): Delete. 8011 * parse.y: Update for '&&'; don't issue warning here. 8012 * semantics.c (finish_label_expr): Delete. 8013 80142001-05-07 Mark Mitchell <mark@codesourcery.com> 8015 8016 * splay-tree.h (splay_tree_max): New function. 8017 (splay_tree_min): Likewise. 8018 80192001-05-03 Geoffrey Keating <geoffk@redhat.com> 8020 8021 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER. 8022 (pfn_vflag_identifier): Define. 8023 Update comment about layout of pointer functions. 8024 (build_ptrmemfunc1): Update prototype. 8025 (expand_ptrmemfunc_cst): Update prototype. 8026 * decl.c (initialize_predefined_identifiers): Initialize 8027 pfn_vflag_identifier. 8028 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add 8029 an extra field to the type. 8030 * expr.c (cplus_expand_constant): Pass 'flag' between 8031 expand_ptrmemfunc_cst and build_ptrmemfunc1. 8032 * typeck.c (get_member_function_from_ptrfunc): When 8033 FUNCTION_BOUNDARY < 16, look at additional field to determine 8034 if a pointer-to-member is a real pointer or a vtable offset. 8035 (build_ptrmemfunc1): Add new parameter to contain extra field. 8036 (build_ptrmemfunc): Pass the extra field around. 8037 (expand_ptrmemfunc_cst): Add new parameter to return extra field. 8038 (pfn_from_ptrmemfunc): Ignore the extra field. 8039 80402001-05-03 Mark Mitchell <mark@codesourcery.com> 8041 8042 * cp-tree.h (flag_inline_trees): Update documentation. 8043 * decl.c (init_decl_processing): Adjust handling of 8044 flag_inline_functions and flag_inline_trees to support -O3. 8045 (grokfndecl): Set DECL_INLINE on all functions if that's what 8046 the user requested. 8047 (save_function_data): Clear DECL_INLINE in 8048 current_function_cannot_inline is non-NULL. 8049 * decl2.c (flag_inline_trees): Update documentation. 8050 80512001-05-03 Nathan Sidwell <nathan@codesourcery.com> 8052 8053 * dump.c (cp_dump_tree, USING_STMT case): New case. 8054 * tree.c (cp_statement_code_p): Add USING_STMT. 8055 * decl2.c (do_using_directive): Add the using directive statement. 8056 8057 * tree.c (walk_tree): Reformat an if block. 8058 80592001-05-02 Mark Mitchell <mark@codesourcery.com> 8060 8061 * decl.c (compute_array_index_type): Don't try to do anything with 8062 the indices when processing a template. 8063 80642001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8065 8066 * call.c: NULL_PTR -> NULL. 8067 * class.c: Likewise. 8068 * cvt.c: Likewise. 8069 * decl.c: Likewise. 8070 * decl2.c: Likewise. 8071 * except.c: Likewise. 8072 * init.c: Likewise. 8073 * rtti.c: Likewise. 8074 * search.c: Likewise. 8075 * tree.c: Likewise. 8076 * typeck.c: Likewise. 8077 * typeck2.c: Likewise. 8078 80792001-05-02 Mark Mitchell <mark@codesourcery.com> 8080 8081 * decl2.c (do_using_directive): Revert previous patch. 8082 80832001-05-01 Nathan Sidwell <nathan@codesourcery.com> 8084 8085 * cp-tree.def (USING_STMT): New statement node. 8086 * cp-tree.h (USING_STMT_NAMESPACE): New macro. 8087 * decl2.c (do_using_directive): Add USING_STMT to statement 8088 tree. Don't emit errors when processing template decl. 8089 * pt.c (tsubst_expr, USING_STMT case): New case. 8090 * semantics.c (cp_expand_stmt, USING_STMT case): New case. 8091 80922001-05-01 Nathan Sidwell <nathan@codesourcery.com> 8093 8094 * call.c (build_new_op): Convert args from reference here. 8095 (build_conditional_expr): Don't convert here. 8096 80972001-05-01 Nathan Sidwell <nathan@codesourcery.com> 8098 8099 * spew.c (last_token_id): New static variable. 8100 (read_token): Set it here. 8101 (yyerror): Use it here. 8102 81032001-04-30 Richard Henderson <rth@redhat.com> 8104 8105 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. 8106 * decl.c: Likewise. 8107 81082001-04-30 Mark Mitchell <mark@codesourcery.com> 8109 8110 * gxxint.texi: Remove. 8111 * Make-lang.in: Remove all traces of gxxint.texi. 8112 8113Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com> 8114 8115 * decl2.c (start_static_initialization_or_destruction): Correct 8116 logic to handle the -fno-use-cxa-atexit case. 8117 81182001-04-30 Mark Mitchell <mark@codesourcery.com> 8119 8120 * optimize.c (update_cloned_parm): New function. 8121 (maybe_clone_body): Use it. Update the `this' parameter too. 8122 81232001-04-29 Joseph S. Myers <jsm28@cam.ac.uk> 8124 8125 * decl2.c (unsupported_options): Add new-abi. 8126 * lang-options.h: Remove no longer supported options. 8127 81282001-04-27 Nathan Sidwell <nathan@codesourcery.com> 8129 8130 * except.c (can_convert_eh): Don't check template parms, 8131 typename types etc. 8132 81332001-04-27 Nathan Sidwell <nathan@codesourcery.com> 8134 8135 * optimize.c (maybe_clone_body): Copy parameter names and locations. 8136 81372001-04-27 Nathan Sidwell <nathan@codesourcery.com> 8138 8139 * cp-tree.h (adjust_clone_args): Prototype new function. 8140 * class.c (adjust_clone_args): New function. 8141 * decl.c (start_function): Call it for in charge ctors. 8142 81432001-04-26 Mark Mitchell <mark@codesourcery.com> 8144 8145 * method.c (use_thunk): Make sure that thunks really are emitted 8146 when requested. 8147 81482001-04-26 Nathan Sidwell <nathan@codesourcery.com> 8149 8150 * mangle.c (write_chars): New macro. 8151 (hwint_to_ascii): New function 8152 (write_number): Use it. 8153 (write_integer_cst): Deal with really big numbers. 8154 81552001-04-25 Mark Mitchell <mark@codesourcery.com> 8156 8157 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting 8158 the clone. 8159 81602001-04-25 Nathan Sidwell <nathan@codesourcery.com> 8161 8162 * decl.c (grokdeclarator): Set context of namespace scope 8163 TYPE_DECLS. 8164 81652001-04-24 Zack Weinberg <zackw@stanford.edu> 8166 8167 * cp/optimize.c: Include hashtab.h. 8168 (struct inline_data): Add tree_pruner. 8169 (expand_call_inline, expand_calls_inline): Use it when calling 8170 walk_tree. 8171 (optimize_function): Initialize and free tree_pruner. 8172 81732001-04-24 Nathan Sidwell <nathan@codesourcery.com> 8174 8175 Lazy __FUNCTION__ generation. 8176 * cp-tree.def (FUNCTION_NAME): Remove. 8177 * cp-tree.h (function_name_declared_p): Remove. 8178 (cp_fname_init): Prototype. 8179 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids, 8180 don't call declare_function_name. Call start_fname_decls. 8181 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't 8182 clobber the line number. 8183 (cp_fname_init): New function. 8184 (start_function): Call start_fname_decls. 8185 (finish_function): Call finish_fname_decls. 8186 * lex.c (reswords): Add slots for __FUNCTION__ et al. 8187 (rid_to_yy): Add mappings for __FUNCTION__ et al. 8188 * optimize.c (maybe_clone_body): Remove function_name_declared_p. 8189 * parse.y (VAR_FUNC_NAME): New token. 8190 (primary): Add VAR_FUNC_NAME. 8191 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's 8192 generation. 8193 (tsubst, FUNCTION_NAME case): Remove. 8194 (tsubst_copy, FUNCTION_NAME case): Remove. 8195 (tsubst_expr, DECL_STMT case): Be careful with a 8196 DECL_PRETTY_FUNCTION_P. 8197 (instantiate_decl): Remove function_name_declared_p. 8198 * semantics.c (begin_compound_statement): Don't call 8199 declare_function_name here. 8200 (setup_vtbl_ptr). Don't save & restore function_name_declared_p. 8201 (finish_translation_unit): Call finish_fname_decls. 8202 (expand_body): Remove function_name_declared_p. 8203 * typeck2.c (digest_init): Allow any ERROR_MARK. 8204 82052001-04-24 Nathan Sidwell <nathan@codesourcery.com> 8206 8207 * pt.c (tsubst_decl): Use VOID_TYPE_P. 8208 * semantics.c: Fix some typos. 8209 82102001-04-23 Phil Edwards <pme@sources.redhat.com> 8211 8212 * cp/decl2.c (flag_honor_std): Always initialize to 1. 8213 82142001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8215 8216 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf. 8217 82182001-04-23 Jason Merrill <jason_merrill@redhat.com> 8219 8220 * except.c (build_throw): Wrap the initialization of the exception 8221 object in a MUST_NOT_THROW_EXPR. 8222 (do_free_exception): #if 0. 8223 82242001-04-20 Mark Mitchell <mark@codesourcery.com> 8225 8226 * cp-tree.h (finish_enum): Change prototype. 8227 * decl.c (finish_enum): Reorganize. 8228 * parse.y (structsp): Adjust calls to finish_enum. 8229 82302001-04-20 Nathan Sidwell <nathan@codesourcery.com> 8231 8232 * tree.c (cp_tree_equal): Adjust final switch formatting. Add 8233 't' case. 8234 82352001-04-20 Nathan Sidwell <nathan@codesourcery.com> 8236 8237 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED. 8238 (layout_empty_base): Return at end flag. 8239 (build_base_field): Likewise. 8240 (build_base_fields): Likewise. 8241 (layout_virtual_bases): Don't add 1 to eoc value. 8242 (end_of_class): Use full size for empty bases. 8243 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended 8244 empty bases. Don't add 1 to eoc value. Only add trailing padding 8245 if we're an empty class with no empty bases. 8246 (dump_class_hierarchy): Dump size and alignment. 8247 82482001-04-20 Jakub Jelinek <jakub@redhat.com> 8249 8250 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and 8251 ICS_BAD_FLAG. 8252 82532001-04-20 Jakub Jelinek <jakub@redhat.com> 8254 8255 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL 8256 is found, look first if name does not match the structure name. 8257 82582001-04-19 Mark Mitchell <mark@codesourcery.com> 8259 8260 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is 8261 set. 8262 (SET_DECL_LANGUAGE): New macro. 8263 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE. 8264 (pushdecl): Likewise. 8265 (build_library_fn_1): Likewise. 8266 (build_cp_library_fn): Likewise. 8267 (grokfndecl): Likewise. 8268 (grokvardecl): Mark `extern "C"' variables as having C linkage. 8269 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE. 8270 * lex.c (retrofit_lang_decl): Likewise. 8271 * mangle.c (mangle_decl_string): Don't mangle the names of 8272 variables declared with C language linkage. 8273 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE. 8274 82752001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca> 8276 8277 * semantics.c (simplify_aggr_init_exprs_r): Don't restore 8278 flag_access_control from uninitialized storage. 8279 82802001-04-15 Mark Mitchell <mark@codesourcery.com> 8281 8282 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation. 8283 * mangle.c (write_pointer_to_member_type): Fix mangling of 8284 pointers to cv-qualified member function types. 8285 8286 * init.c (build_delete): Create a SAVE_EXPR for the address if 8287 we're going to use it more than once. 8288 82892001-04-13 Mark Mitchell <mark@codesourcery.com> 8290 8291 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove. 8292 (expand_ptremfunc_cst): Change prototype. 8293 (delta2_from_ptrmemfunc): Remove. 8294 * expr.c (cplus_expand_constant): Adjust call to 8295 expand_ptrmemfunc_cst. 8296 * typeck.c (build_ptrmemfunc1): Simplify. 8297 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still 8298 results in a constant. 8299 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters. 8300 (delta2_from_ptrmemfunc): Remove. 8301 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst. 8302 83032001-04-12 Jason Merrill <jason_merrill@redhat.com> 8304 8305 * cp-tree.h (decl_namespace_list): New macro. 8306 (struct saved_scope): Add decl_ns_list. 8307 * decl.c (mark_saved_scope): Mark it. 8308 * decl2.c: Lose static decl_namespace_list. 8309 (init_decl2): Don't save it. 8310 83112001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8312 8313 * cp-tree.h (warn_return_type, yylex): Delete redundant 8314 declarations. 8315 8316 * decl.c (current_class_depth, global_namespace): Likewise. 8317 8318 * decl2.c (current_class_depth, flag_gnu_xref): Likewise 8319 8320 * repo.c (flag_use_repository): Likewise. 8321 83222001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8323 8324 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block, 8325 set_block, pushdecl, getdecls, gettags, init_decl_processing, 8326 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p, 8327 lvalue_or_else, print_lang_statistics, comp_target_types, 8328 unsigned_type, signed_type, signed_or_unsigned_type, 8329 build_function_call, mark_addressable, incomplete_type_error): 8330 Delete redundant declarations. 8331 83322001-04-11 Jason Merrill <jason_merrill@redhat.com> 8333 8334 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro. 8335 (TYPE_ANONYMOUS_P): New macro. 8336 (TAGGED_TYPE_P): New macro. 8337 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P. 8338 (grokfndecl, grokvardecl, grokdeclarator): Likewise. 8339 * tree.c (no_linkage_helper): Likewise. 8340 * semantics.c (begin_class_definition): Likewise. 8341 * pt.c (convert_template_argument): Likewise. 8342 * lex.c (check_for_missing_semicolon): Likewise. 8343 83442001-04-12 Nathan Sidwell <nathan@codesourcery.com> 8345 8346 * class.c (dfs_unshared_virtual_bases): New function. 8347 (mark_primary_bases): Call it. 8348 (check_bases): Ignore virtual bases when determining 8349 nearly-emptiness. 8350 83512001-04-12 Nathan Sidwell <nathan@codesourcery.com> 8352 8353 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION. 8354 83552001-04-11 Mark Mitchell <mark@codesourcery.com> 8356 8357 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the 8358 cloned function to the clone. 8359 83602001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8361 8362 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H). 8363 8364 * semantics.c: Include expr.h. 8365 83662001-04-11 Nathan Sidwell <nathan@codesourcery.com> 8367 8368 * method.c (implicitly_declare_fn): Commonize code for copy ctor 8369 and assignment op. Set TREE_USED for parameter. 8370 83712001-04-10 Mark Mitchell <mark@codesourcery.com> 8372 8373 * class.c (find_final_overrider_data): Add `candidates'. 8374 (dfs_find_final_overrider): Don't issue error messages 8375 prematurely. 8376 (find_final_overrider): Issue error messages here. 8377 (build_base_field): Don't warn about amgibuous direct bases here. 8378 (warn_about_ambiguous_direct_bases): New function. 8379 (layout_class_type): Use it. 8380 83812001-04-10 Richard Henderson <rth@redhat.com> 8382 8383 * typeck.c (build_array_ref): Push the array reference inside 8384 COMPOUND_EXPR and COND_EXPR. 8385 83862001-04-05 Mark Mitchell <mark@codesourcery.com> 8387 8388 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P. 8389 * decl.c (duplicate_decls): Adjust accordingly. 8390 (maybe_commonize_var): Likewise. 8391 (grokfndecl): Likewise. 8392 (start_function): Likewise. 8393 (start_method): Likewise. 8394 * decl2.c (key_method): Likewise. 8395 (import_export_decl): Likewise. 8396 * method.c (implicitly_declare_fn): Likewise. 8397 * optimize.c (maybe_clone_body): Likewise. 8398 83992001-04-05 Benjamin Kosnik <bkoz@redhat.com> 8400 8401 * lang-specs.h: Add __DEPRECATED. 8402 8403Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com> 8404 8405 * search.c (get_dynamic_cast_base_type): When building a new 8406 constant, set its type to ssizetype. 8407 84082001-04-04 Jakub Jelinek <jakub@redhat.com> 8409 8410 * optimize.c (expand_call_inline): Only add newly inlined statements 8411 into inlined_stmts. 8412 84132001-04-03 Mark Mitchell <mark@codesourcery.com> 8414 8415 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove. 8416 (OPERATOR_FORMAT): Likewise. 8417 (OPERATOR_TYPENAME_FORMAT): Likewise. 8418 * operators.def: Remove old name-mangling information. 8419 * decl.c (grok_op_properties): Adjust accordingly. 8420 * lex.c (init_operators): Likewise. 8421 * rtti.c (get_tinfo_decl): Issue error messages about types that 8422 have variable size. 8423 84242001-04-03 Mark Mitchell <mark@codesourcery.com> 8425 8426 * decl2.c (import_export_decl): Don't call import_export_class 8427 when processing an inline member function. 8428 * semantics.c (expand_body): Call import_export_decl before 8429 emitting inline functions. 8430 84312001-03-28 Richard Henderson <rth@redhat.com> 8432 8433 IA-64 ABI Exception Handling: 8434 * cp-tree.def (EH_SPEC_BLOCK): New. 8435 (MUST_NOT_THROW_EXPR): New. 8436 * cp-tree.h: Update changed function declarations. 8437 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove. 8438 (CPTI_CALL_UNEXPECTED): New. 8439 (struct cp_language_function): Rename x_eh_spec_try_block 8440 to x_eh_spec_block. 8441 (EH_SPEC_STMTS, EH_SPEC_RAISES): New. 8442 * decl.c (current_binding_level): If no current function 8443 bindings, revert to scope_chain. 8444 (initialize_predefined_identifiers): Remove __cp_push_exception. 8445 (store_parm_decls): Use begin_eh_spec_block. 8446 (finish_function): Use finish_eh_spec_block. 8447 (mark_lang_function): Update for name changes. 8448 * decl2.c (finish_file): No mark_all_runtime_matches. 8449 * dump.c (cp_dump_tree): Handle new tree codes. 8450 * error.c (dump_expr) [BIND_EXPR]: Fix typo. 8451 * except.c (catch_language_init, catch_language): Remove. 8452 (init_exception_processing): Don't set language code. 8453 Initialize call_unexpected_node, protect_cleanup_actions, 8454 eh_personality_libfunc, lang_eh_runtime_type. 8455 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove. 8456 (get_eh_type, get_eh_caught, get_eh_handlers): Remove. 8457 (prepare_eh_type): Split out type canonicalizations ... 8458 (build_eh_type_type): ... from here. 8459 (build_eh_type_type_ref): Remove. 8460 (mark_all_runtime_matches): Remove. 8461 (build_exc_ptr): New. 8462 (do_begin_catch, do_end_catch): New. 8463 (do_pop_exception): Remove. 8464 (build_terminate_handler): Remove. 8465 (choose_personality_routine): Split out language choice from ... 8466 (initialize_handler_parm): ... here. 8467 Use MUST_NOT_THROW_EXPR. 8468 (expand_start_catch_block): Use do_begin_catch. Simplify Java 8469 exception object handling. 8470 (expand_start_eh_spec, expand_end_eh_spec): Remove. 8471 (expand_exception_blocks, alloc_eh_object): Remove. 8472 (begin_eh_spec_block, finish_eh_spec_block): New. 8473 (do_allocate_exception, do_free_exception): New. 8474 (expand_throw): Merge into ... 8475 (build_throw): ... here. Update for abi. 8476 * expr.c (cplus_expand_expr): No expand_internal_throw. 8477 Handle MUST_NOT_THROW_EXPR. 8478 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK. 8479 * semantics.c (*) Update for except.h name changes. 8480 (genrtl_try_block): No protect_with_terminate. 8481 (genrtl_eh_spec_block): New. 8482 (genrtl_handler): Don't emit the goto here. 8483 (cp_expand_stmt): Handle EH_SPEC_BLOCK. 8484 (genrtl_finish_function): Don't expand_exception_blocks. 8485 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK. 8486 84872001-03-28 Richard Henderson <rth@redhat.com> 8488 8489 * decl.c (struct named_label_list): Rename eh_region to 8490 in_try_scope, add in_catch_scope. 8491 (struct binding_level): Rename eh_region to is_try_scope, 8492 add is_catch_scope. 8493 (note_level_for_try): Rename from note_level_for_eh. 8494 (note_level_for_catch): New. 8495 (poplevel): Copy both is_try_scope and is_catch_scope to 8496 the named_label_list struct. 8497 (check_previous_goto_1): Don't check for catch block via 8498 DECL_ARTIFICIAL; use in_try_scope instead. 8499 (check_goto): Likewise. 8500 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare. 8501 * except.c (expand_start_catch_block): Call note_level_for_catch. 8502 * semantics.c (begin_compound_stmt): Update for note_level_for_try. 8503 85042001-03-27 Richard Henderson <rth@redhat.com> 8505 8506 * except.c: Use USING_SJLJ_EXCEPTIONS instead of 8507 exceptions_via_longjmp. 8508 85092001-03-27 Phil Edwards <pme@sources.redhat.com> 8510 8511 * pt.c (check_default_tmpl_args): Make error messages clearer. 8512 85132001-03-26 Phil Edwards <pme@sources.redhat.com> 8514 8515 * error.c: Also undefine 'A' macro used for cp_printers definition. 8516 85172001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8518 8519 * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 8520 85212001-03-26 Mike Yang <yang@research.att.com> 8522 Mark Mitchell <mark@codesourcery.com> 8523 8524 * dump.c (dump_access): New function. 8525 (cp_dump_tree): Use it. Dump basetype information for class 8526 types. 8527 85282001-03-26 Mark Mitchell <mark@codesourcery.com> 8529 8530 * Makefile.in (optimize.o): Depend on params.h. 8531 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE. 8532 (init_decl_processing): Set flag_no_inline when doing 8533 inlining-on-trees. 8534 * optimize.c: Include params.h. 8535 (struct inline_data): Improve documentation of FNS. Add 8536 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P. 8537 (INSNS_PER_STMT): New macro. 8538 (remap_block): Use CLONING_P. 8539 (inlinable_function_p): Don't inline big functions. 8540 (expand_call_inline): Keep track of how much inlining we've done. 8541 (optimize_function): Set FIRST_INLINED_FN. 8542 (maybe_clone_body): Set CLONING_P. 8543 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in 8544 tree nodes. 8545 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling 8546 rest_of_compilation. Clear DECL_RTL for local variables 8547 afterwards. 8548 (clear_decl_rtl): New function. 8549 85502001-03-26 Nathan Sidwell <nathan@codesourcery.com> 8551 8552 Implement DR 209 8553 * cp-tree.h (skip_type_access_control, 8554 reset_type_access_control): Prototype. 8555 * decl.c (grokdeclarator): Access of friends is not checked. 8556 * parse.y (component_decl_list): Reset type access control. 8557 * semantics.c (decl_type_access_control): Clear 8558 current_type_lookups. 8559 (save_type_access_control): Don't save if not deferring. 8560 (skip_type_access_control, reset_type_access_control): New 8561 functions. 8562 (begin_class_definition): Do type access control for basetypes. 8563 Start deferred access control. 8564 (finish_class_definition): Resume immediate access control if 8565 this is a local class. 8566 85672001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8568 8569 * class.c (add_method): Use memcpy/memmove, not bcopy. 8570 8571 * decl.c (duplicate_decls): Likewise. 8572 85732001-03-23 Jakub Jelinek <jakub@redhat.com> 8574 8575 * mangle.c (write_discriminator): Use `_0' for discriminator 1, 8576 not `_'. 8577 85782001-03-23 Jakub Jelinek <jakub@redhat.com> 8579 8580 * decl.c (local_names): Define. 8581 (push_local_name): New. 8582 (grok_reference_init): Return init if initializing static reference 8583 variable with non-constant instead of emitting it. 8584 Move expand_static_init call to cp_finish_decl. 8585 (layout_var_decl): Call push_local_name. 8586 (maybe_commonize_var): Allow inlining functions even if they have 8587 static local variables, use comdat_linkage for them if flag_weak. 8588 (check_initializer): Call obscure_complex_init if 8589 grok_reference_init returned nonzero. 8590 (save_function_data): Clear x_local_names. 8591 (pop_cp_function_context): Free x_local_names. 8592 (mark_inlined_fns): Remove. 8593 (mark_lang_function): Mark x_local_names. 8594 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P. 8595 Mark inlined_fns as tree, remove call to mark_inlined_fns. 8596 * class.c (alter_access): Ensure DECL_ACCESS is never set if 8597 DECL_DISCRIMINATOR_P. 8598 * cp-tree.h (cp_language_function): Add x_local_names. 8599 (lang_decl_flags): Add discriminator into u2. 8600 (lang_decl_inlined_fns): Remove. 8601 (lang_decl): inlined_fns is now a TREE_VEC. 8602 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define. 8603 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a 8604 TREE_VEC, not a custom structure. 8605 (optimize_function): Likewise. 8606 * mangle.c (discriminator_for_local_entity): Discriminate among 8607 VAR_DECL local entities. 8608 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS 8609 is not valid. 8610 86112001-03-22 Bryce McKinlay <bryce@albatross.co.nz> 8612 8613 Add support for Java interface method calls. 8614 * cp-tree.h (struct lang_type): Add java_interface flag. 8615 (TYPE_JAVA_INTERFACE): New macro. 8616 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute 8617 by setting TYPE_JAVA_INTERFACE. 8618 * call.c (java_iface_lookup_fn): New static. 8619 (build_over_call): If calling a method declared in a 8620 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the 8621 expression which resolves the function address. 8622 (build_java_interface_fn_ref): New function. 8623 86242001-03-22 Richard Henderson <rth@redhat.com> 8625 8626 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h. 8627 * except.c: Don't include it. 8628 86292001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 8630 based on an idea from Joe Buck <jbuck@synopsys.com> 8631 8632 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore): 8633 New nonterminals. 8634 (data_def, component_decl): Add reductions to bad_decl. 8635 86362001-03-22 Jakub Jelinek <jakub@redhat.com> 8637 8638 * method.c (do_build_assign_ref): Don't use build_modify_expr for 8639 anonymous aggregates, since they don't have assignment operator 8640 method. 8641 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy 8642 assignment operators for anonymous structure fields. 8643 86442001-03-21 Jason Merrill <jason@redhat.com> 8645 8646 * pt.c (instantiate_decl): Abort if we see a member constant 8647 instantiation that doesn't already have its initializer. 8648 Downgrade explicit instantiation without definition to pedwarn. 8649 8650 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove. 8651 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P. 8652 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P. 8653 8654 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove. 8655 (pending_vtables): Remove. 8656 * decl2.c (pending_vtables): Remove. 8657 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not 8658 CLASSTYPE_VTABLE_NEEDS_WRITING. 8659 (import_export_class): Likewise. 8660 (init_decl2): Don't mark pending_vtables. 8661 * lex.c (handle_pragma_vtable): Just sorry. 8662 * pt.c (instantiate_class_template): Don't mess with 8663 CLASSTYPE_VTABLE_NEEDS_WRITING. 8664 (mark_class_instantiated): Likewise. 8665 * ptree.c (print_lang_type): Don't print it. 8666 * semantics.c (begin_class_definition): Don't set it. 8667 8668 * pt.c (template_tail): Replace with last_pending_template. 8669 (maybe_templates, maybe_template_tail): Remove. 8670 (add_pending_template): Adjust. 8671 (instantiate_pending_templates): Adjust. 8672 8673 * cp-tree.h (struct saved_scope): Remove lang_stack field. 8674 (current_lang_stack): Remove. 8675 * decl.c (maybe_push_to_top_level): Don't initialize it. 8676 (duplicate_decls): Use current_lang_depth. 8677 (xref_basetypes): Likewise. 8678 * class.c (current_lang_depth): New fn. 8679 (push_lang_context): Use more varray functionality. 8680 (pop_lang_context): Likewise. 8681 8682 * error.c (GLOBAL_THING): Always use '__'. 8683 86842001-03-21 Mark Mitchell <mark@codesourcery.com> 8685 8686 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME. 8687 8688 * mangle.c (mangle_decl_string): Mangle the names of overloaded 8689 operators, even when they have `extern "C"' linkage. 8690 86912001-03-19 Mark Mitchell <mark@codesourcery.com> 8692 8693 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, 8694 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 8695 where it's not necessary. 8696 (add_method): Remove optimization involving comparison of 8697 DECL_ASSEMBLER_NAME. 8698 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, 8699 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 8700 where it's not necessary. 8701 (check_methods): Likewise. 8702 (build_clone): Likewise. 8703 (built_vtt): Likewise. 8704 * cp-tree.h (DECL_NEEDED_P): Likewise. 8705 * decl.c (pushtag): Likewise. 8706 (duplicate_decls): Likewise. 8707 (pushdecl): Likewise. 8708 (builtin_function): Likewise. 8709 (build_library_fn_1): Set DECL_LANGUAGE for library functions. 8710 (build_cp_library_fn): Likewise. 8711 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, 8712 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 8713 where it's not necessary. 8714 (make_rtl_for_nonlocal_decl): Likewise. 8715 (cp_finish_decl): Likewise. 8716 (grokfndecl): Likewise. 8717 (grokvardecl): Likewise. 8718 (grokdeclarator): Likewise. 8719 (start_function): Likewise. 8720 (cp_missing_return_ok_p): Likewise. 8721 * decl2.c (grokclassfn): Likewise. 8722 (check_classfn): Likewise. 8723 (finish_static_data_member_decl): Likewise. 8724 (grokfield): Likewise. 8725 * error.c (GLOBAL_IORD_P): Remove. 8726 (dump_global_iord): Improve output. 8727 (dump_decl): Avoid using DECL_ASSEMBLER_NAME. 8728 * except.c (nothrow_libfn_p): Summarily reject any function not in 8729 namespace-scope. 8730 * init.c (build_java_class_ref): Don't explicitly set 8731 DECL_ASSEMBLER_NAME after calling mangle_decl. 8732 * mangle.c (mangle_decl_string): Handle extern "C" functions. 8733 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. 8734 * method.c (set_mangled_name_for_decl): Don't explicitly set 8735 DECL_ASSEMBLER_NAME after calling mangle_decl. 8736 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and 8737 IDENTIFIER_GLOBAL_VALUE for the thunk. 8738 * pt.c (set_mangled_name_for_template_decl): Remove. 8739 (check_explicit_specialization): Don't use it. 8740 (looup_template_class): Don't set DECL_ASSEMBLER_NAME. 8741 (tsubst_friend_function): Likewise. 8742 (tsubst_decl): Likewise. 8743 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. 8744 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, 8745 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 8746 where it's not necessary. 8747 (tinfo_base_init): Likewise. 8748 (create_real_tinfo_var): Likewise. 8749 * search.c (looup_field_1): Likewise. 8750 * semantics.c (finish_named_return_value): Likewise. 8751 * tree.c (init_tree): Set lang_set_decl_assembler_name. 8752 87532001-03-15 Gabriel Dos Reis <gdr@codesourcery.com> 8754 8755 Correct semantics restrictions checking in throw-expression. 8756 * except.c (is_admissible_throw_operand): New function. 8757 (build_throw): Use it. 8758 87592001-03-14 Mark Mitchell <mark@codesourcery.com> 8760 8761 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__ 8762 and its ilk. 8763 87642001-03-14 Mark Mitchell <mark@codesourcery.com> 8765 8766 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 8767 * cp-tree.h (DECL_IN_MEMORY_P): Likewise. 8768 * decl.c (duplicate_decls): Likewise. 8769 (builtin_function): Likewise. 8770 (build_library_fn): Likewise. 8771 (build_cp_library_fn): Likewise. 8772 (check_initializer): Likewise. 8773 (cp_finish_decl): Likewise. 8774 * decl2.c (grokfield): Likewise. 8775 (grok_function_init): Remove #if 0'd code. 8776 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 8777 * friend.c (do_friend): Likewise. 8778 * init.c (get_temp_regvar): Likewise. 8779 * method.c (make_thunk): Likewise. 8780 * pt.c (tsubst_friend_function): Likewise. 8781 (tsubst_decl): Likewise. 8782 (regenerate_decl_from_template): Likewise. 8783 * semantics.c (genrtl_named_return_value): Likewise. 8784 (expand_body): Likewise. 8785 (genrtl_finish_function): Likewise. 8786 * tree.c (cp_tree_equal): Likewise. 8787 87882001-03-12 Nathan Sidwell <nathan@codesourcery.com> 8789 8790 * call.c (convert_like_real): Add extra semantics to INNER 8791 parameter. Don't convert to temporary if a user conversion 8792 gives us an lvalue that we're about to bind to a reference. 8793 Set INNER to indicate pending reference binding on recursive 8794 calls. 8795 87962001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 8797 8798 * cp/lex.c: Delete duplicate pending_lang_change. 8799 88002001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 8801 8802 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation): 8803 Similarly. 8804 * cp/repo.c (get_base_filename, open_repo_file): Similarly. 8805 * cp/cp-tree.h: Remove file_name_nondirectory prototype. 8806 88072001-03-09 Zack Weinberg <zackw@stanford.edu> 8808 8809 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate. 8810 88112001-03-08 Stan Shebs <shebs@apple.com> 8812 8813 * cp-tree.h (set_identifier_local_value): Remove unused decl. 8814 88152001-03-06 Zack Weinberg <zackw@stanford.edu> 8816 8817 * spew.c: Remove references to CPP_OSTRING. 8818 88192001-03-06 Andrew Haley <aph@redhat.com> 8820 8821 * typeck.c (convert_arguments): Check that we have an fndecl. 8822 88232001-03-05 Andrew Haley <aph@redhat.com> 8824 8825 * typeck.c (convert_arguments): Don't do ellipsis conversion for 8826 __built_in_constant_p. 8827 88282001-03-02 Nathan Sidwell <nathan@codesourcery.com> 8829 8830 * typeck.c (build_static_cast): Allow enum to enum conversions 8831 as per DR 128. 8832 88332001-03-02 Nathan Sidwell <nathan@codesourcery.com> 8834 8835 * class.c (check_field_decls): Pointers to member do not a 8836 non-pod struct make, as per DR 148. 8837 88382001-03-02 Nathan Sidwell <nathan@codesourcery.com> 8839 8840 * call.c (joust): cp_pedwarn when using gnu extension concerning 8841 worst conversion sequences. 8842 88432001-03-01 Zack Weinberg <zackw@stanford.edu> 8844 8845 * decl.c: Replace all uses of 'boolean' with 'bool'. 8846 88472001-03-01 Zack Weinberg <zackw@stanford.edu> 8848 8849 * lang-specs.h: Add zero initializer for cpp_spec field to 8850 all array elements that need one. Don't put an #ifdef inside 8851 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and 8852 use it. 8853 88542001-03-01 Nathan Sidwell <nathan@codesourcery.com> 8855 8856 Implement using decls inside template functions. 8857 * decl2.c (validate_nonmember_using_decl): Don't special case 8858 fake_std_node in the global namespace. Don't reject early when 8859 processing a template. 8860 (do_local_using_decl): Add to statement tree. Don't do further 8861 processing when building a template. 8862 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs. 8863 88642001-03-01 Nathan Sidwell <nathan@codesourcery.com> 8865 8866 * decl2.c (do_nonmember_using_decl): Don't complain if we find 8867 same function. Do complain about ambiguating extern "C" 8868 declarations. 8869 88702001-02-28 Nathan Sidwell <nathan@codesourcery.com> 8871 8872 Remove floating point and complex type template constant parms. 8873 * pt.c (convert_nontype_argument): Remove REAL_TYPE and 8874 COMPLEX_TYPE extensions. 8875 (invalid_nontype_parm_type_p): Likewise. 8876 88772001-02-27 Jeffrey Oldham <oldham@codesourcery.com> 8878 8879 * except.c (call_eh_info): Revert "match_function"'s type. 8880 88812001-02-27 Nathan Sidwell <nathan@codesourcery.com> 8882 8883 Fix ctor vtable vcall offsets. 8884 * class.c (struct vtbl_init_data_s): Add rtti_binfo member. 8885 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter. 8886 (get_matching_base): Remove. 8887 (get_original_base): New function. 8888 (build_vtbl_initializer): Initialize vid.rtti_binfo. 8889 Use a virtual thunk for a ctor vtable with an index 8890 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a 8891 primary base within a constructor vtable. Only set 8892 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset 8893 when primary base has been lost. 8894 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment. 8895 88962001-02-26 Jeffrey Oldham <oldham@codesourcery.com> 8897 8898 * call.c (joust): Ensure more_specialized()'s argument length 8899 parameter has correct value for constructors. 8900 89012001-02-26 Nathan Sidwell <nathan@codesourcery.com> 8902 8903 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. 8904 8905 * decl.c (mark_inlined_fns): Prototype. 8906 89072001-02-22 Mark Mitchell <mark@codesourcery.com> 8908 8909 * spew.c (yylex): Correct handling of friends. 8910 89112001-02-22 Mark Mitchell <mark@codesourcery.com> 8912 8913 * mangle.c (write_encoding): Pass write_function_type the 8914 FUNCTION_DECL for the function being encoded. 8915 (write_function_type): Pass it along to write_bare_function_type. 8916 (write_bare_function_type): Pass it along to write_method_parms. 8917 (write_method_parms): Don't mangle the compiler-generated 8918 parameters to a constructor or destructor. 8919 89202001-02-22 Andreas Jaeger <aj@suse.de> 8921 8922 * optimize.c: Include toplev.h for 8923 note_deferral_of_defined_inline_function prototype. 8924 89252001-02-22 Jakub Jelinek <jakub@redhat.com> 8926 8927 * cp-tree.h (struct lang_decl_inlined_fns): New. 8928 (struct lang_decls): Add inlined_fns. 8929 (DECL_INLINED_FNS): New macro. 8930 * optimize.c (struct inline_data): Add inlined_fns. 8931 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro. 8932 (inlinable_function_p): Likewise, fix typo in comment, 8933 function is not inlinable if it already inlined function currently 8934 being optimized. 8935 (expand_call_inline): Add fn to inlined_fns if necessary. 8936 (optimize_function): Initialize inlined_fns. 8937 Save inlined_fns into DECL_INLINED_FNS after expanding inlines. 8938 * decl.c (mark_inlined_fns): New function. 8939 (lang_mark_tree): Call it. 8940 89412001-02-21 Jason Merrill <jason@redhat.com> 8942 8943 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag. 8944 (DECL_UNINLINABLE): Move to middle-end. 8945 8946 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn. 8947 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT. 8948 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone. 8949 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the 8950 parms and outer BLOCK. note_deferral_of_defined_inline_function. 8951 8952 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on 8953 second parm of op=. 8954 89552001-02-19 Mark Mitchell <mark@codesourcery.com> 8956 8957 * decl2.c (set_decl_namespace): Allow explicit instantiations in 8958 any namespace. 8959 89602001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 8961 8962 * optimize.c (expand_call_inline): Don't walk subtrees of type 8963 nodes. 8964 89652001-02-18 Mark Mitchell <mark@codesourcery.com> 8966 8967 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry 8968 for a destructor. 8969 89702001-02-18 Jason Merrill <jason@redhat.com> 8971 8972 Do put the VTT parameter in DECL_ARGUMENTS. 8973 * cp-tree.h (struct cp_language_function): Add x_vtt_parm. 8974 (current_vtt_parm): New macro. 8975 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. 8976 (DECL_HAS_VTT_PARM_P): New macro. 8977 (DECL_VTT_PARM): Remove. 8978 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. 8979 * decl.c (duplicate_decls): Only copy the operator code if 8980 appropriate. 8981 (start_function): Set current_vtt_parm. 8982 (lang_mark_tree): Don't mark vtt_parm. 8983 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to 8984 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. 8985 * class.c (build_clone): Maybe remove the VTT parm. 8986 * optimize.c (maybe_clone_body): Set up the VTT parm. 8987 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. 8988 * call.c (build_over_call): Just allow the VTT arg. 8989 * method.c (make_thunk): Don't set DECL_VTT_PARM. 8990 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. 8991 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. 8992 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. 8993 * error.c (dump_function_decl): Likewise. 8994 * call.c (build_user_type_conversion_1, convert_like_real): Abort 8995 if we try to call a constructor with in-charge or VTT parms. 8996 * method.c (skip_artificial_parms_for): New fn. 8997 * call.c (add_function_candidate, build_over_call): Call it. 8998 * call.c (build_new_method_call): Use current_vtt_parm. 8999 * init.c (expand_virtual_init): Likewise. 9000 * class.c (same_signature_p): No longer static. 9001 * cp-tree.h: Declare it. 9002 * search.c (look_for_overrides_r): Use it. 9003 90042001-02-17 Mark Mitchell <mark@codesourcery.com> 9005 9006 * cp-tree.h (new_abi_rtti_p): Remove. 9007 (name_mangling_version): Likewise. 9008 (flag_do_squangling): Likewise. 9009 * class.c (build_rtti_vtbl_entries): Remove old ABI support. 9010 * decl.c (grokfndecl): Likewise. 9011 * decl2.c (name_mangling_version): Remove. 9012 (flag_do_squangling): Likewise. 9013 (lang_f_options): Remove `squangle'. 9014 (unsupported_options): Add `squangle'. 9015 (cxx_decode_option): Issue a warning about uses of 9016 -fname-mangling-version. 9017 (finish_file): Remove old ABI support. 9018 * pt.c (check_explicit_specialization): Likewise. 9019 (tsubst_decl): Likewise. 9020 * rtti.c (init_rtti_processing): Likewise. 9021 (build_headof): Likewise. 9022 (get_tinfo_decl_dynamic): Likewise. 9023 (tinfo_from_decl): Likewise. 9024 (build_dynamic_cast_1): Likewise. 9025 (synthesize_tinfo_var): Likewise. 9026 * init.c (build_new): Allow enumeration types for the array-bounds 9027 in a direct-new-declarator. 9028 9029 * semantics.c (finish_typeof): Resolve OFFSET_REFs. 9030 9031 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and 9032 TREE_PROTECTED from the template being specialized. 9033 90342001-02-17 Jason Merrill <jason@redhat.com> 9035 9036 * decl2.c (build_artificial_parm): Set TREE_READONLY. 9037 9038 * decl.c (bad_specifiers): Allow throw specs on things with 9039 pointer-to-function or -member-function type. 9040 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize 9041 a pmf. 9042 90432001-02-17 Mark Mitchell <mark@codesourcery.com> 9044 9045 * call.c (check_dtor_name): Handle template names correctly. 9046 90472001-02-16 Jason Merrill <jason@redhat.com> 9048 9049 * cp-tree.h (DECL_USE_VTT_PARM): Remove. 9050 * decl2.c (maybe_retrofit_in_chrg): Don't create it. 9051 * optimize.c (maybe_clone_body): Don't substitute it. 9052 * call.c (build_new_method_call): Check in_chrg instead. 9053 * init.c (expand_virtual_init): Likewise. 9054 90552001-02-16 Gabriel Dos Reis <gdr@codesourcery.com> 9056 9057 * decl.c (check_tag_decl): Make sure a typedef for an anonymous 9058 class-type introduces at least a type-name. 9059 90602001-02-16 Jakub Jelinek <jakub@redhat.com> 9061 9062 * call.c (convert_like_real): Create a temporary for non-lvalue. 9063 90642001-02-16 Jeffrey Oldham <oldham@codesourcery.com> 9065 9066 * cp-tree.h: Fix typos in comments. 9067 90682001-02-16 Jason Merrill <jason@redhat.com> 9069 9070 * optimize.c (remap_block): If we're compiling a clone, pass the 9071 new block to insert_block. 9072 90732001-02-16 Mark Mitchell <mark@codesourcery.com> 9074 9075 * semantics.c (finish_asm_stmt): Robustify. 9076 90772001-02-15 Mark Mitchell <mark@codesourcery.com> 9078 9079 * pt.c (push_template_decl_real): Don't remangle the name of a 9080 class template. 9081 90822001-02-15 Jim Meyering <meyering@lucent.com> 9083 9084 * Make-lang.in (c++.install-common): Depend on installdirs. 9085 (c++.install-info): Likewise. 9086 (c++.install-man): Likewise. 9087 90882001-02-15 Mark Mitchell <mark@codesourcery.com> 9089 9090 * typeck2.c (build_m_component_ref): Robustify. 9091 90922001-02-15 Alexandre Oliva <aoliva@redhat.com> 9093 9094 * friend.c (do_friend): Don't take the nested [template] class 9095 into account when deciding whether to warn about the friend 9096 function not referring to a template function. 9097 90982001-02-14 Jakub Jelinek <jakub@redhat.com> 9099 9100 * typeck.c (build_unary_op): Clarify error message. 9101 91022001-02-08 Aldy Hernandez <aldyh@redhat.com> 9103 9104 * parse.y (component_constructor_declarator): allow optional 9105 parentheses around constructor class name. 9106 91072001-02-14 Nathan Sidwell <nathan@codesourcery.com> 9108 9109 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c 9110 section. 9111 * init.c (emit_base_init): Remove incorrect comment about 9112 virtual bases. 9113 * method.c (make_thunk): Fix comment alignment. 9114 91152001-02-14 Nathan Sidwell <nathan@codesourcery.com> 9116 9117 Kill remnants of this is variable. 9118 * cp-tree.h (flag_this_is_variable): Remove. 9119 * decl2.c (flag_this_is_variable): Remove. 9120 * class.c (fixed_type_or_null): Add cdtor parm. Adjust. 9121 (build_vbase_path): The path is non-static, even in a cdtor. 9122 (resolves_to_fixed_type_p): Add additional return value. 9123 * search.c (init_vbase_pointers): Adjust. 9124 * tree.c (lvalue_p_1): Adjust. 9125 * typeck.c (mark_addressable): Adjust. 9126 91272001-02-14 Nathan Sidwell <nathan@codesourcery.com> 9128 9129 * pt.c (unify): Don't check cv quals of array types. 9130 91312001-02-14 Nathan Sidwell <nathan@codesourcery.com> 9132 9133 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to 9134 check whether we already have the type. 9135 91362001-02-13 Mark Mitchell <mark@codesourcery.com> 9137 9138 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment. 9139 * call.c (build_op_delete_call): Simplify to remove duplicate 9140 code. 9141 * class.c (clone_function_decl): Don't build the deleting variant 9142 of a non-virtual destructor. 9143 * decl.c (finish_destructor_body): Don't call delete if this is a 9144 non-virtual destructor. 9145 * init.c (build_delete): Explicitly call `operator delete' when 9146 deleting an object with a non-virtual destructor. 9147 91482001-02-13 Jason Merrill <jason@redhat.com> 9149 9150 * lang-specs.h: Add more __EXCEPTIONS. 9151 91522001-02-12 Nathan Sidwell <nathan@codesourcery.com> 9153 9154 * typeck2.c (process_init_constructor): Check 9155 TREE_HAS_CONSTRUCTOR before issuing missing init warning. 9156 91572001-02-12 Nathan Sidwell <nathan@codesourcery.com> 9158 9159 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case): 9160 Remove spurious information in comment. Allow further 9161 adjustments of REFERENCE_TYPE args. 9162 91632001-02-12 Nathan Sidwell <nathan@codesourcery.com> 9164 9165 * errfn.c (cp_deprecated): Tweak diagnostic text. 9166 * parse.y (new_initializer): Deprecate initializer lists 9167 extension. 9168 91692001-02-12 Mark Mitchell <mark@codesourcery.com> 9170 9171 Remove old ABI support. 9172 91732001-02-11 Mark Mitchell <mark@codesourcery.com> 9174 9175 * decl2.c (flag_vtable_thunks): Always set it to 1. 9176 (flag_new_abi): Likewise. 9177 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI. 9178 9179 * Makefile.in (g++spec.o): Fix typo. 9180 91812001-02-09 Jason Merrill <jason@redhat.com> 9182 9183 * lang-specs.h: Restore definition of __EXCEPTIONS. 9184 91852001-02-08 Jason Merrill <jason@redhat.com> 9186 9187 * search.c (shared_member_p): New function. 9188 (lookup_field_r): Use it. 9189 * cp-tree.h (SHARED_MEMBER_P): Remove. 9190 9191 * method.c (process_overload_item): Handle template-dependent array 9192 bounds. 9193 * pt.c (type_unification_real): If we end up with undeduced nontype 9194 parms, try again. 9195 9196 * decl.c (lookup_name_real): Tweak warning to refer to decls, not 9197 types. 9198 9199 * typeck2.c (friendly_abort): Don't say anything if we have 9200 earlier errors or sorries. 9201 9202 * decl.c (check_tag_decl): Notice attempts to redefine bool and 9203 wchar_t. Ignore if in_system_header. 9204 9205 * decl.c (maybe_push_cleanup_level): New fn... 9206 (start_decl_1): ...split out from here. 9207 * cvt.c (build_up_reference): Use it. 9208 * cp-tree.h: Declare it. 9209 92102001-02-07 Mark Mitchell <mark@codesourcery.com> 9211 9212 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor 9213 spec. 9214 92152001-02-06 Nathan Sidwell <nathan@codesourcery.com> 9216 9217 * pt.c (lookup_template_class): Make sure it's a primary 9218 template or template_template_parm when called from the parser. 9219 (instantiate_template_class): Add assertion. 9220 92212001-02-05 Alexandre Oliva <aoliva@redhat.com> 9222 9223 * method.c (build_mangled_name) [old abi]: Protect flush_repeats() 9224 from error_mark_node. 9225 92262001-02-05 Nathan Sidwell <nathan@codesourcery.com> 9227 9228 Fix specification and implementation bugs in V3 ABI 9229 construction vtables. 9230 * cp-tree.h (flag_dump_class_layout): New flag. 9231 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove. 9232 (BINFO_LOST_PRIMARY_P): New flag. 9233 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts. 9234 (BINFO_PRIMARY_MARKED_P): Rename to ... 9235 (BINFO_PRIMARY_P): ... here. 9236 (binfo_via_virtual): New prototype. 9237 * decl2.c (flag_dump_class_layout): New flag. 9238 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to 9239 use `=' as a file name separator. 9240 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary 9241 bases. 9242 (build_vtbl_address): If this is a virtual primary base, then 9243 get the vtbl of what it is ultimately primary for. 9244 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust 9245 for BINFO_PRIMARY_P. 9246 (dfs_skip_nonprimary_vbases_markedp): Likewise. 9247 (get_shared_vbase_if_not_primary): Likewise. 9248 (dfs_get_pure_virtuals): Likewise. 9249 (expand_upcast_fixups): Likewise. 9250 (fixup_virtual_upcast_offsets): Likewise. 9251 (dfs_find_vbase_instance): Likewise. 9252 (find_vbase_instance): Likewise. 9253 (binfo_from_vbase): Adjust comment to reflect reality. 9254 (binfo_via_virtual): New function. 9255 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros 9256 for binfo walking during VTT construction. 9257 (dfs_mark_primary_bases): Remove. 9258 (force_canonical_binfo_r): New function. 9259 (force_canonical_binfo): New function. 9260 (mark_primary_virtual_base): New function. 9261 (mark_primary_bases): Walk in inheritance graph order, use 9262 mark_primary_virtual_base. 9263 (determine_primary_base): Use some more intermediate variables. 9264 (dfs_find_final_overrider): Don't check for overriding along a 9265 virtual path. 9266 (dfs_modify_vtables): Walk into primary virtual bases too. 9267 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P. 9268 (build_base_fields): Likewise. 9269 (dfs_set_offset_for_unshared_vbases): Likewise. 9270 (layout_virtual_bases): Likewise. 9271 (end_of_class): Likewise. 9272 (finish_struct_1): Call dump_class_hierarchy, if requested. 9273 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos. 9274 (dump_class_hierarchy_r): Add stream parameter. Emit more information. 9275 (dump_class_hierarchy): Add file parameter. Append to file, if 9276 required. 9277 (finish_vtbls): Adjust accumulate_vtbl_inits call. 9278 Use canonical base for virtual bases. 9279 (build_vtt): Add more comments. Adjust build_vtt_inits call. 9280 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm. 9281 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P, 9282 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for 9283 virtual VTTs. 9284 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P 9285 from DATA. We want virtual primary bases and all bases via virtual. 9286 Only set BINFO_VPTR_INDEX for top level. Look up from a primary 9287 virtual base when not a construction vtable. 9288 (dfs_ctor_vtable_bases_queue_p): New DFS predicate. 9289 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call. 9290 Use canonical bases when processing virtual bases. 9291 (accumulate_vtbl_inits): We're interested in any base via a 9292 virtual path. 9293 (dfs_accumulate_vtbl_inits): If this is a primary virtual base 9294 within a construction vtable, determine what is being overridden. 9295 (build_vtbl_initializer): Add more comments 9296 (add_vcall_offset_vtbl_entries_1): Adjust comment. 9297 (build_rtti_vtbl_entries): Check if the base has lost its 9298 primary. 9299 93002001-02-05 Mark Mitchell <mark@codesourcery.com> 9301 9302 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. 9303 9304Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9305 9306 * decl.c (pushdecl): Call abort instead of fatal. 9307 * except.c (decl_is_java_type): Call fatal_error instead of fatal. 9308 * init.c (build_new_1): Likewise. 9309 (build_java_class_ref): Call internal_error and fatal_error, not fatal. 9310 * decl.c (build_typename_type): hash_table_init now returns void. 9311 decl.c (init_decl_processing): Make an error non-fatal. 9312 93132001-02-04 Mark Mitchell <mark@codesourcery.com> 9314 9315 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting. 9316 Document. 9317 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 9318 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 9319 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 9320 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 9321 * decl.c (maybe_commonize_var): Use the new name-mangling where 9322 appropriate. 9323 * decl2.c (comdat_linkage): Enhance comments. Make all 9324 compiler-generated things static, if COMDAT is not available. 9325 (get_tinfo_decl): Do not make typeinfo objects that belong in the 9326 library COMDAT. 9327 (tinfo_base_init): Use the correct mangled name for typeinfo 9328 strings, and push them into the global scope. 9329 (typeinfo_in_lib_p): New function. 9330 (synthesize_tinfo_var): Use it. 9331 (create_real_tinfo_var): Likewise. 9332 93332001-02-03 Jakub Jelinek <jakub@redhat.com> 9334 9335 * decl.c (push_class_binding): Use context_for_name_lookup instead 9336 of CP_DECL_CONTEXT. 9337 * search.c (context_for_name_lookup): Remove static. Check for NULL 9338 context in the loop. 9339 * cp-tree.h (context_for_name_lookup): Add prototype. 9340 93412001-02-02 Jakub Jelinek <jakub@redhat.com> 9342 9343 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove. 9344 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack): 9345 Remove. 9346 * call.c (convert_class_to_reference, build_user_type_conversion_1, 9347 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper. 9348 93492001-02-02 Mark Mitchell <mark@codesourcery.com> 9350 9351 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list 9352 of macros used when compiling g++spec.c. 9353 * g++spec.c (lang_specific_driver): Link with the shared 9354 libgcc by default. 9355 93562001-01-29 Joseph S. Myers <jsm28@cam.ac.uk> 9357 9358 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator, 9359 make_reference_declarator, make_call_declarator), method.c 9360 (implicitly_declare_fn), parse.y (namespace_using_decl, 9361 notype_unqualified_id, expr_or_declarator, new_type_id, 9362 after_type_declarator, direct_after_type_declarator, 9363 notype_declarator, complex_notype_declarator, 9364 complex_direct_notype_declarator, qualified_id, 9365 notype_qualified_id, overqualified_id, direct_new_declarator, 9366 absdcl, direct_abstract_declarator, conversion_declarator), pt.c 9367 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt 9368 instead of build_parse_node. 9369 93702001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9371 9372 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE. 9373 (minus_one_node): Moved to top level gcc directory. Renamed 9374 to integer_minus_one_node. 9375 9376 * init.c (init_init_processing): Don't set minus_one_node. 9377 (build_vec_init): Use integer_minus_one_node. 9378 9379 * rtti.c (get_tinfo_decl_dynamic): Likewise. 9380 93812001-01-28 Jakub Jelinek <jakub@redhat.com> 9382 9383 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments 9384 identical and they would be replaced with constant, remove 9385 MODIFY_EXPR from the tree. 9386 93872001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9388 9389 * Make-lang.in: Remove all dependencies on defaults.h. 9390 * call.c: Don't include defaults.h. 9391 * decl.c: Likewise. 9392 * decl2.c: Likewise. 9393 * except.c: Likewise. 9394 * pt.c: Likewise. 9395 * rtti.c: Likewise. 9396 * tree.c: Likewise. 9397 * typeck.c: Likewise. 9398 93992001-01-25 Jakub Jelinek <jakub@redhat.com> 9400 9401 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded 9402 operators even in "C" linkage. 9403 * method.c (set_mangled_name_for_decl): Likewise. 9404 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for 9405 overloaded operators in "C" linkage. 9406 94072001-01-24 Nathan Sidwell <nathan@codesourcery.com> 9408 9409 * pt.c (tsubst_decl): Remove IN_DECL parameter. 9410 (tsubst_arg_types): Check parameter is not void. 9411 (tsubst): Adjust tsubst_decl call. 9412 94132001-01-24 Nathan Sidwell <nathan@codesourcery.com> 9414 9415 * call.c (add_builtin_candidate): Quote std properly, from 9416 previous change. 9417 94182001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9419 9420 * pt.c (check_explicit_specialization): Clone constructors and 9421 destructors. 9422 94232001-01-23 Nathan Sidwell <nathan@codesourcery.com> 9424 9425 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC 9426 indicates anything special about template depth. Make sure we 9427 only count the user visible template classes. 9428 94292001-01-23 Nathan Sidwell <nathan@codesourcery.com> 9430 9431 * call.c (build_conv): Typo in comment. 9432 (add_builtin_candidate): Add more explanation. 9433 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR. 9434 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates 9435 when we have enumeral types. 9436 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE 9437 candidates for relops and eqops. 9438 (joust): Simplify control flow. Allow a non-template user 9439 function to hide a builtin. 9440 94412001-01-22 Nathan Sidwell <nathan@codesourcery.com> 9442 9443 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER. 9444 (more_specialized): Add deduction parameter. 9445 * call.c (joust): Adjust more_specialized call. 9446 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL, 9447 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags. 9448 (get_bindings_order): Remove. 9449 (get_bindings_real): Add DEDUCE parameter. 9450 (maybe_adjust_types_for_deduction): Return extra unify flags. Do 9451 REFERENCE_TYPE jig for DEDUCE_ORDER. 9452 (type_unification_real): Deal with DEDUCE_ORDER. Use result of 9453 maybe_adjust_types_for_deduction. 9454 (more_specialized): Add DEDUCE parameter. Call get_bindings_real 9455 directly. 9456 (try_one_overload): Use result of maybe_adjust_types_for_deduction. 9457 (check_cv_quals_for_unify): Use new unify qualifier flags. 9458 (unify): Clear new unify qualifier flags. 9459 (get_bindings_real): Add DEDUCE parameter. 9460 (get_bindings): Adjust call to get_bindings_real. 9461 (get_bindings_overload): Likewise. 9462 (most_specialized_instantiation): Adjust call to 9463 more_specialized. 9464 94652001-01-19 Jason Merrill <jason@redhat.com> 9466 9467 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI. 9468 9469 * decl.c (init_decl_processing): Just force -fvtable-thunks on if 9470 -fnew-abi. 9471 94722001-01-19 Ute Pelkmann <scope.muc@t-online.de> 9473 9474 * decl2.c (arg_assoc_class): Fix double iteration logic. 9475 94762001-01-19 Jason Merrill <jason@redhat.com> 9477 9478 * init.c (build_delete): Always call convert_force to strip cv-quals. 9479 9480 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI. 9481 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI. 9482 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI. 9483 94842001-01-19 Nathan Sidwell <nathan@codesourcery.com> 9485 9486 * search.c (get_vbase_1): Count only virtual bases. 9487 94882001-01-19 Nathan Sidwell <nathan@codesourcery.com> 9489 9490 * class.c (duplicate_tag_error): Robustify flag clearing. 9491 94922001-01-19 Nathan Sidwell <nathan@codesourcery.com> 9493 9494 * cp-tree.h (lookup_template_class): Add complain parm. 9495 * decl.c (lookup_namespace_name): Adjust call to 9496 lookup_template_class. 9497 (make_typename_type): Likewise. 9498 * semantics.c (finish_template_type): Likewise. 9499 * pt.c (lookup_template_class): Add complain parm. Adjust. 9500 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class. 9501 (tsubst): Likewise. 9502 95032001-01-19 Nathan Sidwell <nathan@codesourcery.com> 9504 9505 * pt.c (copy_default_args_to_explicit_spec): Preserve 9506 object's CV quals. Reorganize. 9507 95082001-01-18 Nathan Sidwell <nathan@codesourcery.com> 9509 9510 * typeck.c (build_modify_expr): Say `initialization' for 9511 INIT_EXPRs. 9512 * init.c (build_default_init): Convert to enumeral type, if 9513 needed. 9514 95152001-01-18 Jakub Jelinek <jakub@redhat.com> 9516 9517 * parse.y (nomods_initdcl0): Properly set things up for 9518 initdcl0_innards. 9519 95202001-01-18 Nathan Sidwell <nathan@codesourcery.com> 9521 9522 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag. 9523 (type_unification_real): Set it. 9524 (unify): Use it. 9525 95262001-01-18 Nathan Sidwell <nathan@codesourcery.com> 9527 9528 * decl.c (finish_destructor_body): Convert to vbase pointer here. 9529 95302001-01-18 Nathan Sidwell <nathan@codesourcery.com> 9531 9532 * semantics.c (begin_class_definition): Check we're not inside a 9533 template parm list. 9534 95352001-01-18 Nathan Sidwell <nathan@codesourcery.com> 9536 9537 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of 9538 BASELINK_P. 9539 95402001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9541 9542 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. 9543 * call.c (build_over_call): Add comment. 9544 95452001-01-16 Daniel Berlin <dberlin@redhat.com> 9546 9547 * cvt.c (ocp_convert): Handle vector type conversion 9548 * typeck2.c (digest_init): Handle vector type initializations 9549 95502001-01-16 Phil Edwards <pme@sources.redhat.com> 9551 9552 * g++spec.c: Don't add libraries needlessly if -fsyntax-only 9553 was given. 9554 95552001-01-15 Nathan Sidwell <nathan@codesourcery.com> 9556 9557 * pt.c (check_nontype_parm): Rename to ... 9558 (invalid_nontype_parm_type_p): ... here. 9559 (process_template_parm): Adjust. 9560 (convert_template_argument): Adjust. 9561 95622001-01-15 Nathan Sidwell <nathan@codesourcery.com> 9563 9564 * pt.c (check_nontype_parm): New function. 9565 (process_template_parm): Use it. 9566 (convert_template_argument): Use it. 9567 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to 9568 member. 9569 95702001-01-14 Jeffrey Oldham <oldham@codesourcery.com> 9571 9572 * tree.c: Add defaults.h 9573 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. 9574 * Make-lang.in (cp/tree.o): Add defaults.h. 9575 95762001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 9577 9578 * Make-lang.in (CXX_C_OBJS): Add c-format.o. 9579 95802001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 9581 9582 * g++.1: Change to be ".so man1/gcc.1". 9583 95842001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 9585 9586 * Make-lang.in (c++.info, c++.install-info): Build and install g++ 9587 internals info. 9588 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info. 9589 ($(srcdir)/cp/g++int.info): New target. 9590 * gxxint.texi: Add info directory entry. Use @@ in email address. 9591 * .cvsignore: Update. 9592 95932001-01-12 Nathan Sidwell <nathan@codesourcery.com> 9594 9595 * typeck.c (build_c_cast): Do template processing earlier. 9596 Always pedwarn on array casts. 9597 95982001-01-12 Nathan Sidwell <nathan@codesourcery.com> 9599 9600 * friend.c (make_friend_class): Make sure a templated class is 9601 actually a template. 9602 96032001-01-11 Nathan Sidwell <nathan@codesourcery.com> 9604 9605 * decl2.c (get_guard): Set linkage from guarded decl. 9606 96072001-01-11 Nathan Sidwell <nathan@codesourcery.com> 9608 9609 * call.c (convert_default_arg): Check for unprocessed 9610 DEFAULT_ARG. 9611 * cp-tree.h (replace_defarg): Move to spew.c. 9612 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to 9613 spew.c, which is where they really are. 9614 (done_pending_defargs): Declare. 9615 (unprocessed_defarg_fn): Declare. 9616 * decl.c (replace_defarg): Move to spew.c 9617 * parse.y (structsp): Call done_pending_defargs. 9618 * spew.c (defarg_fns): Rearrange list structure. 9619 (defarg_fnsdone): New static variable. 9620 (defarg_depfns): New static variable. 9621 (init_spew): Adjust. 9622 (add_defarg_fn): Store the type in TREE_TYPE. 9623 (do_pending_defargs): Detect and deal with ordering constraints 9624 and circularity. 9625 (done_pending_defargs): New function. 9626 (unprocessed_defarg_fn): New function. 9627 (replace_defarg): Moved from decl.c. Robustify. Don't save 9628 if circularity detected. 9629 96302001-01-11 Nathan Sidwell <nathan@codesourcery.com> 9631 9632 * pt.c (unify): Check array has a domain, before checking 9633 whether it is variable sized. 9634 96352001-01-11 Nathan Sidwell <nathan@codesourcery.com> 9636 9637 * decl.c (grokparms): Unobfuscate and get correct diagnostic for 9638 parameters with pointers to arrays of unknown bound. 9639 96402001-01-11 Nathan Sidwell <nathan@codesourcery.com> 9641 9642 * parse.y (template_parm_header, template_spec_header): New 9643 reductions. Split out from ... 9644 (template_header): ... here. Use them. 9645 (template_template_parm): Use template_parm_header. 9646 * semantics.c (finish_template_template_parm): Add assert. 9647 96482001-01-10 Mark Mitchell <mark@codesourcery.com> 9649 9650 * mangle.c (write_builtin_type): Fix thinko. 9651 9652 * pt.c (copy_default_args_to_explicit_spec_1): New function. 9653 (copy_default_args_to_explicit_spec): Likewise. 9654 (check_explicit_specialization): Use it. 9655 9656 * class.c (finish_struct_1): Remove last argument in call to 9657 make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 9658 * decl.c (builtin_function): Likewise. 9659 (build_cp_library_fn): Likewise. 9660 (check_initializer): Likewise. 9661 (make_rtl_for_nonlocal_decl): Likewise. 9662 (cp_finish_decl): Likewise. 9663 (start_function): Likewise. 9664 * decl2.c (finish_anon_union): Likewise. 9665 * friend.c (do_friend): Likewise. 9666 * init.c (build_java_class_ref): Likewise. 9667 * method.c (make_thunk): Likewise. 9668 * pt.c (tsubst_friend_function): Likewise. 9669 * semantics.c (expand_body): Likewise. 9670 96712001-01-10 Mark Mitchell <mark@codesourcery.com> 9672 9673 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not 9674 looking at DECL_CLONED_FUNCTION for non-functions. 9675 96762001-01-10 Nathan Sidwell <nathan@codesourcery.com> 9677 9678 * error.c (dump_template_parameter): Use parm to determine how 9679 to print default value. 9680 96812001-01-10 Nathan Sidwell <nathan@codesourcery.com> 9682 9683 * class.c (duplicate_tag_error): Clear more flags. 9684 96852001-01-10 Nathan Sidwell <nathan@codesourcery.com> 9686 9687 * call.c (build_new_method_call): Use binfo_for_vbase. 9688 96892001-01-10 Joseph S. Myers <jsm28@cam.ac.uk> 9690 9691 * cp-tree.h (flag_cond_mismatch): Don't declare. 9692 * decl2.c (flag_cond_mismatch): Don't define. 9693 (lang_f_options): Remove cond-mismatch. 9694 (unsupported_options): Add cond-mismatch. 9695 96962001-01-09 Nathan Sidwell <nathan@codesourcery.com> 9697 9698 * class.c (handle_using_decl): Reject using of constructor name 9699 of sourcing class. Allow injecting of a method with same name as 9700 nested class. Fixup error messages. 9701 97022001-01-09 Joseph S. Myers <jsm28@cam.ac.uk> 9703 9704 * decl2.c (lang_decode_option): Handle -Wformat=2. 9705 97062001-01-08 Nathan Sidwell <nathan@codesourcery.com> 9707 9708 * cp-tree.h (lang_decl_flags): Rename defined_in_class to 9709 initialized_in_class. 9710 (DECL_DEFINED_IN_CLASS_P): Rename to ... 9711 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning. 9712 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P. 9713 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P. 9714 * pt.c (check_default_tmpl_args): Adjust for 9715 DECL_INITIALIZED_IN_CLASS_P. 9716 (instantiate_class_template): Likewise. 9717 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P. 9718 9719 * class.c (finish_struct): Constify saved_filename. 9720 97212001-01-08 Nathan Sidwell <nathan@codesourcery.com> 9722 9723 * class.c (duplicate_tag_error): Adjust diagnostic. 9724 (finish_struct): Locally set location to start of struct. 9725 * decl.c (fixup_anonymous_aggr): Use cp_error_at. 9726 97272001-01-08 Nathan Sidwell <nathan@codesourcery.com> 9728 9729 * decl.c (struct binding_level): Adjust class_shadowed comments 9730 to reflect reality. 9731 (push_class_level_binding): Adjust comments to reflect reality. 9732 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. 9733 Don't set TREE_VALUE on the class_shadowed list. 9734 97352001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 9736 9737 * decl2.c (acceptable_java_type): Allow references too. 9738 * init.c (build_java_class_ref): When using the new ABI, search 9739 `class$' and have it mangled with `mangle_decl.' 9740 * mangle.c (write_java_integer_type_codes): New function. 9741 (write_builtin_type): Detect and mangle Java integer and real 9742 types. 9743 97442001-01-07 Mark Mitchell <mark@codesourcery.com> 9745 9746 * decl2.c (grokfield): Don't accept `asm' specifiers for 9747 non-static data members. 9748 97492001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9750 9751 * expr.c (cplus_expand_expr): Don't reset `target'. 9752 97532001-01-07 Neil Booth <neil@daikokuya.demon.co.uk> 9754 9755 * cp/decl2.c (cxx_post_options): Call cpp_post_options. 9756 97572001-01-05 Nathan Sidwell <nathan@codesourcery.com> 9758 9759 * parse.y (template_datadef): Check for error_mark_node. 9760 97612001-01-05 Nathan Sidwell <nathan@codesourcery.com> 9762 9763 * cp-tree.def (DEFAULT_ARG): Make `x' class. 9764 97652001-01-04 Joseph S. Myers <jsm28@cam.ac.uk> 9766 9767 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define. 9768 (record_builtin_type): Make non-static. 9769 (flag_short_double): Don't declare. 9770 (init_decl_processing): Remove the creation of many tree nodes now 9771 in c_common_nodes_and_builtins. 9772 (build_void_list_node): New function. 9773 * decl2.c (flag_short_double, flag_short_wchar): Don't define. 9774 * cp-tree.h (flag_short_wchar): Don't declare. 9775 97762001-01-04 Mark Mitchell <mark@codesourcery.com> 9777 9778 * call.c (build_conv): Don't use build1 for USER_CONV. 9779 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. 9780 97812001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 9782 9783 * lex.c (lang_init): Call c_common_lang_init. 9784 97852001-01-03 Nathan Sidwell <nathan@codesourcery.com> 9786 9787 * search.c (lookup_fnfields_here): Remove. 9788 (look_for_overrides_r): Use lookup_fnfields_1. 9789 Ignore functions from using declarations. 9790 97912001-01-03 Nathan Sidwell <nathan@codesourcery.com> 9792 9793 Implement exceptions specifiers for implicit member functions. 9794 * cp-tree.h (merge_exceptions_specifiers): Declare new function. 9795 * method.c (synthesize_exception_spec): New function. 9796 (locate_dtor, locate_ctor, locate_copy): New functions. 9797 (implicitly_declare_fn): Generate the exception spec too. 9798 * search.c (check_final_overrider): Check artificial functions 9799 too. 9800 * typeck2.c (merge_exception_specifiers): New function. 9801 98022001-01-03 Jason Merrill <jason@redhat.com> 9803 9804 * init.c (build_default_init): New fn. 9805 (perform_member_init): Split out from here. 9806 (build_new_1): Use it. Simplify initialization logic. 9807 (build_vec_init): Take an array, rather than a pointer and maxindex. 9808 Speed up simple initializations. Don't clean up if we're assigning. 9809 * cp-tree.h: Adjust. 9810 * decl2.c (do_static_initialization): Remove TREE_VEC case. 9811 * parse.y (new_initializer): Return void_zero_node for (). 9812 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR. 9813 * typeck2.c (digest_init): Only complain about user-written 9814 CONSTRUCTORs. 9815 98162000-12-22 Mike Stump <mrs@wrs.com> 9817 9818 * decl2.c: (max_tinst_depth): Increase to 50. 9819 98202001-01-02 Mark Mitchell <mark@codesourcery.com> 9821 9822 * class.c (invalidate_class_lookup_cache): Zero the 9823 previous_class_values. 9824 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not 9825 TREE_INT_CST_HIGH. 9826 (CLASSTYPE_TEMPLATE_LEVEL): Likewise. 9827 * decl.c (free_bindings): New variable. 9828 (push_binding): Don't create a new binding if we have one on the 9829 free list. 9830 (pop_binding): Put old bindings on the free list. 9831 (init_decl_processing): Use size_int, not build_int_2. 9832 Register free_bindings as a GC root. 9833 (cp_make_fname_decl): Use size_int, not build_int_2. 9834 (push_inline_template_parms_recursive): Likewise. 9835 (end_template_parm_list): Likewise. 9836 (for_each_template_parm): Do not use walk_tree_without_duplicates. 9837 (tsubst_template_parms): Use size_int, not build_int_2. 9838 (tsubst): Likewise. 9839 * rtti.c (get_vmi_pseudo_type_info): Likewise. 9840 98412001-01-02 Richard Henderson <rth@redhat.com> 9842 9843 * parse.y (asm): Set ASM_INPUT_P. 9844 98452001-01-02 Jason Merrill <jason@redhat.com> 9846 9847 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE 9848 for v3 ABI. 9849 9850 * typeck.c (cp_truthvalue_conversion): New fn. 9851 * cvt.c (ocp_convert): Use it. 9852 9853 * cp-tree.h: Lose c-common.c decls. 9854 9855 * typeck.c (build_unary_op): Restore old &a.f diagnostic code. 9856 * cvt.c (convert_to_void): Use type_unknown_p. 9857 9858 * typeck.c (strip_all_pointer_quals): Also strip quals from 9859 pointer-to-member types. 9860 9861 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat 9862 parse.y as C. 9863 9864 * call.c (build_new_method_call): Do evaluate the object parameter 9865 when accessing a static member. 9866 * typeck.c (build_component_ref): Likewise. 9867 98682001-01-02 Andreas Jaeger <aj@suse.de> 9869 9870 * decl.c (cp_missing_noreturn_ok_p): New. 9871 (init_decl_processing): Set lang_missing_noreturn_ok_p. 9872 98732000-12-29 Jakub Jelinek <jakub@redhat.com> 9874 9875 * decl.c (init_decl_processing): Fix sign of wchar_type_node. 9876 98772000-12-29 Mark Mitchell <mark@codesourcery.com> 9878 9879 * class.c (pushclass): Remove #if 0'd code. 9880 * cp-tree.h (overload_template_name): Remove. 9881 * decl.c (store_bindings): Simplify. 9882 (pop_from_top_level): Likewise. 9883 * pt.c (overload_template_name): Remove. 9884 (instantiate_decl): Don't call push_to_top_level if it's not 9885 needed. 9886 98872000-12-28 Mark Mitchell <mark@codesourcery.com> 9888 9889 * pt.c (register_local_specialization): Don't return a value. 9890 (lookup_template_class): Use move-to-front heuristic when looking 9891 up template instantiations. 9892 (instantiate_decl): Only push_to_top_level when we're actually 9893 going to instantiate the template. 9894 98952000-12-29 Hans-Peter Nilsson <hp@bitrange.com> 9896 9897 * search.c (binfo_for_vtable): Return least derived class, not 9898 most. Handle secondary vtables. 9899 99002000-12-22 Jason Merrill <jason@redhat.com> 9901 9902 * pt.c (more_specialized): Don't optimize len==0. 9903 (fn_type_unification): If we're adding the return type, increase len. 9904 9905 * typeck.c (build_binary_op): Fix pmf comparison logic. 9906 9907 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not 9908 DECL_STATIC_FUNCTION_P. 9909 9910 * semantics.c (genrtl_finish_function): Don't try to jump to 9911 return_label unless it exists. 9912 9913 In partial ordering for a call, ignore parms for which we don't have 9914 a real argument. 9915 * call.c (joust): Pass len to more_specialized. 9916 (add_template_candidate_real): Strip 'this', pass len. 9917 * pt.c (more_specialized): Pass len down. Lose explicit_args parm. 9918 (get_bindings_order): New fn. Pass len down. 9919 (get_bindings_real): Strip 'this', pass len. 9920 (fn_type_unification): Likewise. 9921 (type_unification_real): Succeed after checking 'len' args. 9922 (most_specialized_instantiation): Lose explicit_args parm. 9923 * class.c (resolve_address_of_overloaded_function): Strip 'this', 9924 pass len. 9925 99262000-12-21 Jason Merrill <jason@redhat.com> 9927 9928 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not 9929 DECL_TEMPLATE_RESULT. 9930 9931 * search.c (lookup_field_r): Call lookup_fnfields_1, not 9932 lookup_fnfields_here. 9933 9934 * parse.y (typename_sub2): Return the TYPE_DECL, not the type. 9935 9936 * call.c (build_object_call): Also allow conversions that return 9937 reference to pointer to function. 9938 (add_conv_candidate): Handle totype being ref to ptr to fn. 9939 (build_field_call): Also allow members of type reference to function. 9940 Lose support for calling pointer to METHOD_TYPE fields. 9941 9942 * error.c (dump_expr): Handle *_CAST_EXPR. 9943 9944 * typeck2.c (build_scoped_ref): Always convert to the naming class. 9945 9946 * tree.c (break_out_cleanups): Lose. 9947 * cp-tree.h: Remove prototype. 9948 * typeck.c (build_component_ref): Don't break_out_cleanups. 9949 (build_compound_expr): Likewise. 9950 * semantics.c (finish_expr_stmt): Likewise. 9951 99522000-12-20 Richard Henderson <rth@redhat.com> 9953 9954 * cp-tree.h: Update declarations. 9955 * decl.c (finish_case_label): Return the new stmt node. 9956 * semantics.c (finish_goto_stmt): Likewise. 9957 (finish_expr_stmt, finish_return_stmt): Likewise. 9958 (finish_break_stmt, finish_continue_stmt): Likewise. 9959 (finish_asm_stmt): Likewise. 9960 * parse.y (already_scoped_stmt): Set STMT_LINENO. 9961 (compstmt, implicitly_scoped_stmt, stmt): Likewise. 9962 (simple_if, simple_stmt): Return the new stmt node. 9963 (save_lineno): New. 9964 99652000-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 9966 9967 * cp-tree.h: Don't declare warn_long_long. 9968 99692000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9970 9971 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of 9972 IS_AGGR_TYPE. 9973 99742000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9975 9976 * pt.c (unify): Handle when both ARG and PARM are 9977 BOUND_TEMPLATE_TEMPLATE_PARM. 9978 99792000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9980 9981 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and 9982 DECL_TEMPLATE_PARM_P. 9983 99842000-12-15 Jason Merrill <jason@redhat.com> 9985 9986 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs! 9987 9988 * init.c (build_new_1): Don't strip quals from type. 9989 9990 * decl.c (pushdecl): Don't check for linkage on a non-decl. 9991 9992 * call.c (build_op_delete_call): See through ARRAY_TYPEs. 9993 9994 * call.c (build_new_function_call): Lose space before paren in 9995 error message. 9996 (build_new_method_call): Likewise. 9997 9998 * typeck2.c (build_m_component_ref): Propagate quals from datum. 9999 100002000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 10001 10002 * pt.c (check_explicit_specialization): Propagate default 10003 function arguments to explicit specializations. 10004 100052000-12-13 DJ Delorie <dj@redhat.com> 10006 10007 * typeck.c (build_binary_op): Do signed/unsigned warnings for >? 10008 and <? operators. 10009 100102000-12-08 Jason Merrill <jason@redhat.com> 10011 10012 * error.c (dump_function_name): Don't let the user see __comp_ctor. 10013 10014 Clean up copy-initialization in overloading code. 10015 * call.c (build_user_type_conversion_1): Die if we are asked to 10016 convert to the same or a base type. 10017 (implicit_conversion): Avoid doing so. Lose reference binding code. 10018 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit 10019 direct-initialization. Also do direct-init part of copy-init. 10020 (build_user_type_conversion): Don't provide context to convert_like. 10021 * cvt.c (ocp_convert): build_user_type_conversion will now provide 10022 the constructor call for copy-init. 10023 10024 * pt.c (tsubst_decl): Call clone_function_decl here if this is an 10025 instantiation of a member template. 10026 (do_decl_instantiation): Not here. 10027 100282000-12-07 Nathan Sidwell <nathan@codesourcery.com> 10029 10030 * class.c (check_field_decls): Don't special case anonymous 10031 fields in error messages. 10032 (note_name_declared_in_class): Use %D on diagnostic. 10033 10034 * tree.c (pod_type_p): Use strip_array_types. 10035 (cp_valid_lang_attribute): Likewise. 10036 * typeck.c (cp_type_quals): Strip arrays separately, to avoid 10037 multiple evaluations. 10038 (cp_has_mutable_p): Use strip_array_types. 10039 100402000-12-07 Nathan Sidwell <nathan@codesourcery.com> 10041 10042 * cp-tree.h (sufficient_parms_p): Declare new function. 10043 * call.c (sufficient_parms_p): New function, broken out of ... 10044 (add_function_candidate): ... here. Use it. 10045 (add_conv_candidate): Use it. 10046 * decl.c (grok_ctor_properties): Use it. 10047 100482000-12-07 Jakub Jelinek <jakub@redhat.com> 10049 10050 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT. 10051 100522000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> 10053 10054 * decl2.c (lang_decode_option): Handle -Wformat-security. 10055 100562000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 10057 10058 * pt.c (verify_class_unification): New function. 10059 (get_class_bindings): Use it. 10060 (try_class_unification): Tidy. 10061 (unify): Handle when argument of a template-id is not 10062 template parameter dependent. 10063 (template_args_equal): Handle when TREE_CODE's do not match. 10064 100652000-12-06 Alexandre Oliva <aoliva@redhat.com> 10066 10067 * lang-specs.h (c++): When invoking the stand-alone preprocessor 10068 for -save-temps, pass all relevant -Defines to it, and then don't 10069 pass them to cc1plus. 10070 100712000-12-05 Will Cohen <wcohen@redhat.com> 10072 10073 * decl.c (finish_case_label): Cleared 10074 more_cleanups_ok in surrounding function scopes. 10075 (define_label): Likewise. 10076 100772000-12-05 Nathan Sidwell <nathan@codesourcery.com> 10078 10079 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document. 10080 (get_matching_virtual): Remove. 10081 (look_for_overrides): Declare new function. 10082 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or 10083 DECL_VINDEX here. 10084 * class.c (check_for_override): Move base class iteration code 10085 to look_for_overrides. 10086 * search.c (next_baselink): Remove. 10087 (get_virtuals_named_this): Remove. 10088 (get_virtual_destructor): Remove. 10089 (tree_has_any_destructors_p): Remove. 10090 (struct gvnt_info): Remove. 10091 (check_final_overrider): Remove `virtual' from error messages. 10092 (get_matching_virtuals): Remove. Move functionality to ... 10093 (look_for_overrides): ... here, and ... 10094 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found 10095 to be overriding. 10096 100972000-12-05 Nathan Sidwell <nathan@codesourcery.com> 10098 10099 * typeck.c (get_delta_difference): If via a virtual base, 10100 return zero. 10101 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no 10102 adjustment. 10103 101042000-12-04 Richard Henderson <rth@redhat.com> 10105 10106 * error.c (dump_tree): Use output_add_string not OB_PUTS. 10107 101082000-12-04 Jason Merrill <jason@redhat.com> 10109 10110 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". 10111 (write_builtin_type): Pass intSI_type_node and the like through 10112 type_for_mode. 10113 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. 10114 Pass intSI_type_node and the like through type_for_mode. 10115 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. 10116 * pt.c (tsubst, unify): Likewise. 10117 * tree.c (walk_tree): Likewise. 10118 * error.c (dump_type): Likewise. 10119 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. 10120 10121 * Make-lang.in: Tweak top comment for emacs. 10122 (cp/TAGS): Restore. 10123 10124 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. 10125 10126 * class.c (clone_function_decl): Robustify. 10127 101282000-12-04 Michael Matz <matzmich@cs.tu-berlin.de> 10129 10130 * decl.c (store_bindings): Only search in the non modified 10131 old_bindings for duplicates. 10132 101332000-12-04 Nathan Sidwell <nathan@codesourcery.com> 10134 10135 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not 10136 TYPE_POLYMORPHIC_P. 10137 10138 * typeck.c (build_static_cast): Remove unused variable. 10139 101402000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 10141 10142 * pt.c: Fix typo in comment. 10143 101442000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 10145 10146 * decl2.c (warn_format): Remove definition. 10147 (lang_decode_option): Handle -Wformat-nonliteral, 10148 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat. 10149 101502000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 10151 10152 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. 10153 (init_decl_processing): Don't create string_type_node, 10154 const_string_type_node, wint_type_node, intmax_type_node, 10155 uintmax_type_node, default_function_type, ptrdiff_type_node and 10156 unsigned_ptrdiff_type_node. Adjust position of call to 10157 c_common_nodes_and_builtins. 10158 (identifier_global_value): New function. 10159 101602000-12-01 Nathan Sidwell <nathan@codesourcery.com> 10161 10162 * call.c (standard_conversion): Reject pointer to member 10163 conversions from ambiguous, inaccessible or virtual bases. 10164 * typeck.c (build_static_cast): Don't check pointers to members 10165 specially. 10166 101672000-11-30 Nathan Sidwell <nathan@codesourcery.com> 10168 10169 * method.c (do_build_copy_constructor): Preserve cv 10170 qualifications when accessing source object members. 10171 (do_build_assign_ref): Likewise. Remove separate diagnostics for 10172 unnamed fields. 10173 101742000-11-30 Nathan Sidwell <nathan@codesourcery.com> 10175 10176 * method.c (do_build_assign_ref): Construct appropriately 10177 CV-qualified base reference. Don't allow const casts in base 10178 conversion. 10179 101802000-11-30 Nathan Sidwell <nathan@codesourcery.com> 10181 10182 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on 10183 incomplete return type. 10184 101852000-11-28 Nathan Sidwell <nathan@codesourcery.com> 10186 10187 * parse.y (base_class.1): Produce a _TYPE not a _DECL. 10188 * semantics.c (finish_base_specifier): Accept a _TYPE not a 10189 _DECL. 10190 101912000-11-28 Nathan Sidwell <nathan@codesourcery.com> 10192 10193 * spew.c (yyerror): Cope if yylval.ttype is NULL. 10194 101952000-11-28 Nathan Sidwell <nathan@codesourcery.com> 10196 10197 * decl.c (grokdeclarator): Diagnose undefined template contexts. 10198 101992000-11-28 Nathan Sidwell <nathan@codesourcery.com> 10200 10201 * decl.c (grokdeclarator): Do type access control on friend 10202 class. 10203 102042000-11-27 Nathan Sidwell <nathan@codesourcery.com> 10205 10206 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by 10207 bison parser ickiness. 10208 * pt.c (tsubst_friend_function): Enter namespace scope when 10209 tsubsting the function name. 10210 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality. 10211 102122000-11-27 Nathan Sidwell <nathan@codesourcery.com> 10213 10214 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo. 10215 * cvt.c (cp_convert_to_pointer): Add force parameter. 10216 Allow conversions via virtual base if forced. 10217 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer. 10218 (ocp_convert): Likewise. 10219 * search.c (binfo_from_vbase): Return the virtual base's binfo. 10220 * typeck.c (get_delta_difference): Adjust handling of virtual 10221 bases. 10222 102232000-11-26 Mark Mitchell <mark@codesourcery.com> 10224 10225 * tree.c (struct list_hash): Remove. 10226 (list_hash_table): Make it be an htab. 10227 (struct list_proxy): New type. 10228 (list_hash_eq): New function. 10229 (list_hash_pieces): Renamed from ... 10230 (list_hash): ... this. 10231 (list_hash_lookup): Remove. 10232 (list_hash_add): Remove. 10233 (hash_tree_cons): Use the generic hashtable. 10234 (mark_list_hash): Remove. 10235 (init_tree): Create the hashtable. 10236 102372000-11-25 Joseph S. Myers <jsm28@cam.ac.uk> 10238 10239 * method.c (build_mangled_C9x_name): Rename to 10240 build_mangled_C99_name. Change C9X references in comments to 10241 refer to C99. 10242 102432000-11-24 Nathan Sidwell <nathan@codesourcery.com> 10244 10245 * parse.y (unary_expr): Move VA_ARG from here ... 10246 (primary): ... to here. 10247 102482000-11-24 Nathan Sidwell <nathan@codesourcery.com> 10249 10250 * semantics.c (finish_id_expr): If type is error_mark, return 10251 error_mark. 10252 102532000-11-23 Nathan Sidwell <nathan@codesourcery.com> 10254 10255 * pt.c (lookup_template_class): Simplify loop exit constructs. 10256 Cope when there is no partial instantiation of a template 10257 template member. 10258 10259Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com> 10260 10261 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H). 10262 102632000-11-22 Mark Mitchell <mark@codesourcery.com> 10264 10265 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op' 10266 prefix. 10267 10268 * pt.c (do_decl_instantiate): Explicitly clone constructors and 10269 destructors that haven't already been cloned. 10270 102712000-11-20 Richard Henderson <rth@redhat.com> 10272 10273 * parse.y (yyparse_1): Rename the parser entry point. 10274 102752000-11-20 Alex Samuel <samuel@codesourcery.com> 10276 10277 * mangle.c (write_name): Use <unscoped-name> for names directly in 10278 function scope. 10279 (write_unscoped_name): Accept names directly in function scope. 10280 102812000-11-20 Nathan Sidwell <nathan@codesourcery.com> 10282 10283 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword. 10284 * parse.y (extdef): Add EXPORT reduction. 10285 * spew.c (yylex): Don't skip export here. 10286 102872000-11-19 Mark Mitchell <mark@codesourcery.com> 10288 10289 * decl.c (init_decl_processing): Correct name of pure virtual 10290 function under the new ABI. 10291 * rtti.c (throw_bad_cast): Likewise, for bad cast function. 10292 (throw_bad_typeid): Likewise for bad typeid function. 10293 102942000-11-18 Mark Mitchell <mark@codesourcery.com> 10295 10296 * decl.c (grokparms): Don't even function types of `void' type, 10297 either. 10298 * mangle.c (write_type): Don't crash when confronted with the 10299 error_mark_node. 10300 10301 * decl.c (grokparms): Don't create parameters of `void' type. 10302 103032000-11-17 Zack Weinberg <zack@wolery.stanford.edu> 10304 10305 * lex.c (mark_impl_file_chain): Delete. 10306 (init_parse): Remove call to ggc_add_string_root. No need to 10307 ggc_strdup a string constant. Do not add impl_file_chain to GC 10308 roots. 10309 (handle_pragma_implementation): No need to ggc_strdup main_filename. 10310 103112000-11-17 Nathan Sidwell <nathan@codesourcery.com> 10312 10313 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type. 10314 103152000-11-17 Nathan Sidwell <nathan@codesourcery.com> 10316 10317 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro. 10318 * decl.c (grokdeclarator): Don't reject void parms here. 10319 (require_complete_types_for_parms): Simplify, use 10320 complete_type_or_else. 10321 (grokparms): Remove bitrot. Remove funcdef parm. 10322 Deal with ellipsis parm lists here. 10323 * semantics.c (finish_parmlist): Don't append void_list_node 10324 here. Set PARMLIST_ELLIPSIS_P. 10325 103262000-11-17 Nathan Sidwell <nathan@codesourcery.com> 10327 10328 * typeck2.c (incomplete_type_error): Reorganize to avoid 10329 excessive diagnostics. 10330 103312000-11-16 Zack Weinberg <zack@wolery.stanford.edu> 10332 10333 * lex.c (struct impl_files, internal_filename): Constify a char *. 10334 103352000-11-16 Mark Mitchell <mark@codesourcery.com> 10336 10337 * mangle.c (write_special_name_constructor): Don't generate 10338 assembler junk when confronted with an old-style constructor. 10339 (write_special_name_destructor): Likewise. 10340 (mangle_decl_string): Do it here instead. 10341 103422000-11-16 Nathan Sidwell <nathan@codesourcery.com> 10343 10344 * call.c (op_error): Make error messages clearer. 10345 103462000-11-15 Mark Mitchell <mark@codesourcery.com> 10347 10348 * decl.c (wrapup_globals_for_namespace): Don't mark things 10349 TREE_ASM_WRITTEN when they're not. 10350 103512000-11-15 Jason Merrill <jason@redhat.com> 10352 10353 * typeck2.c (friendly_abort): Uncount the error before handing 10354 off to fancy_abort. 10355 103562000-11-15 Nathan Sidwell <nathan@codesourcery.com> 10357 10358 * typeck.c (lookup_anon_field): Cope with qv qualifiers. 10359 103602000-11-14 Mark Mitchell <mark@codesourcery.com> 10361 10362 * class.c (build_vtbl_initializer): Fix typo in comment. 10363 * typeck.c (expr_sizeof): Don't crash on errors. 10364 103652000-11-14 Jim Wilson <wilson@redhat.com> 10366 10367 * lang-specs.h: Add %2 after %(cc1_options). 10368 103692000-11-14 Richard Henderson <rth@redhat.com> 10370 10371 * typeck.c (c_sizeof): Be strict about casting result value 10372 back to c_size_type_node. 10373 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise. 10374 103752000-11-13 Joseph S. Myers <jsm28@cam.ac.uk> 10376 10377 * typeck.c (build_unary_op): Use boolean_increment from 10378 c-common.c, moving the relevant code there. 10379 103802000-11-11 Jason Merrill <jason@redhat.com> 10381 10382 * typeck.c (mark_addressable): Don't call put_var_into_stack. 10383 10384 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics 10385 in inlines. 10386 103872000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10388 10389 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy. 10390 * lex.c (copy_lang_decl): Likewise. 10391 103922000-11-09 Mark Mitchell <mark@codesourcery.com> 10393 10394 * dump.c (cp_dump_tree): Don't dump function bodies here. 10395 10396 * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 10397 (dump.o): Update dependency list. 10398 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove. 10399 (flag_dump_translation_unit): Likewise. 10400 (CP_TYPE_QUALS): Adjust definition. 10401 (DECL_C_BIT_FIELD): Remove. 10402 (SET_DECL_C_BIT_FIELD): Likewise. 10403 (CLEAR_DECL_C_BIT_FIELD): Likewise. 10404 (add_maybe_template): Likewise. 10405 (strip_array_types): Likewise. 10406 (dump_node_to_file): Likewise. 10407 (cp_dump_tree): New function. 10408 * decl.c (init_decl_processing): Set lang_dump_tree. 10409 * decl2.c (flag_dump_translation_unit): Remove. 10410 * dump.c: Move most of it to ../c-dump.c. 10411 (cp_dump_tree): New function. 10412 * pt.c (add_maybe_template): Remove. 10413 * typeck.c (strip_array_types): Likewise. 10414 104152000-11-07 Eric Christopher <echristo@redhat.com> 10416 10417 * decl.c (init_decl_processing): Change definition of 10418 __wchar_t to wchar_t. Remove artificial declaration of 10419 wchar_t. 10420 * lex.c: Change instances of __wchar_t to wchar_t. 10421 104222000-11-09 Nathan Sidwell <nathan@codesourcery.com> 10423 10424 * lex.c (do_identifier): Don't lookup_name for operators. 10425 * parse.y (operator): Save looking_for_typename. 10426 (unoperator): Restore it. 10427 * spew.c (frob_opname): Use nth_token for lookahead. 10428 104292000-11-08 Nathan Sidwell <nathan@codesourcery.com> 10430 10431 * decl.c (grok_op_properties): Always use coerce_new_type and 10432 coerce_delete_type. 10433 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve 10434 exception specification. Tidy up. 10435 (coerce_delete_type): Preserve exception specification. Tidy up. 10436 104372000-11-07 Joseph S. Myers <jsm28@cam.ac.uk> 10438 10439 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c 10440 (push_binding_level), error.c (cp_tree_printer), pt.c 10441 (process_partial_specialization, tsubst_template_arg_vector), 10442 search.c (lookup_member): Use memset () instead of bzero (). 10443 104442000-11-07 Nathan Sidwell <nathan@codesourcery.com> 10445 10446 * decl.c (build_ptrmemfunc_type): Allow error_mark_node. 10447 104482000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> 10449 10450 * Make-lang.in (c++.distdir): Remove. 10451 104522000-11-04 Mark Mitchell <mark@codesourcery.com> 10453 10454 * decl2.c (do_nonmember_using_decl): Allow `extern "C"' 10455 declarations from different namespaces to be combined. 10456 104572000-11-03 Zack Weinberg <zack@wolery.stanford.edu> 10458 10459 * decl.c: Include tm_p.h. 10460 104612000-11-03 Joseph S. Myers <jsm28@cam.ac.uk> 10462 10463 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp (). 10464 104652000-11-02 Joseph S. Myers <jsm28@cam.ac.uk> 10466 10467 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c 10468 (build_overload_value), repo.c (open_repo_file), xref.c 10469 (open_xref_file): Use strchr () and strrchr () instead of index () 10470 and rindex (). 10471 104722000-11-01 Bernd Schmidt <bernds@redhat.co.uk> 10473 10474 * call.c (build_over_call): Call fold on the CALL_EXPR. 10475 104762000-11-01 Gabriel Dos Reis <gdr@codesourcery.com> 10477 10478 * error.c (dump_template_decl): Separate template hearders with 10479 space not comma. 10480 104812000-10-31 Gabriel Dos Reis <gdr@codesourcery.com> 10482 10483 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace 10484 TS_* flags with corresponding TFF_*. Adjust prototypes of 10485 functions (which used to take a tree_string_flags) to take an int. 10486 10487 * cp-tree.h (enum tree_string_flags): Remove 10488 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, 10489 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS, 10490 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 10491 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 10492 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, 10493 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros. 10494 (type_as_string, decl_as_string, expr_as_string, 10495 context_as_string): Adjust prototype. 10496 10497 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER 10498 instead of TS_PLAIN. 10499 10500 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF 10501 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of 10502 plain `0'. 10503 105042000-10-30 Mark Mitchell <mark@codesourcery.com> 10505 10506 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro. 10507 (linkage_kind): New enumeration. 10508 (decl_linkage): New function. 10509 * decl2.c (comdat_linkage): Extend comment. 10510 * error.c (dump_function_decl): Print the arguments used to 10511 instantiate a template, even when not printing the type of the 10512 function. 10513 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P, 10514 not TREE_PUBLIC, to test for external linkage. 10515 * tree.c (decl_linkage): New function. 10516 105172000-10-28 Mark Mitchell <mark@codesourcery.com> 10518 10519 * pt.c (instantiate_decl): Always instantiate static data members 10520 initialized in-class. 10521 105222000-10-27 Zack Weinberg <zack@wolery.stanford.edu> 10523 10524 * Make-lang.in: Move all build rules here from Makefile.in, 10525 adapt to new context. Wrap all rules that change the current 10526 directory in parentheses. Expunge all references to $(P). 10527 When one command depends on another and they're run all at 10528 once, use && to separate them, not ;. Add OUTPUT_OPTION to 10529 all object-file generation rules. Delete obsolete variables. 10530 10531 * Makefile.in: Delete. 10532 * config-lang.in: Delete outputs= line. 10533 105342000-10-26 Gabriel Dos Reis <gdr@codesourcery.com> 10535 10536 * error.c (dump_function_decl): Print no space between 10537 `ptr-operator' the `type-specifier' of the return type. 10538 (dump_type_prefix): Make sure we put space at the appropriate 10539 place. 10540 105412000-10-23 Jason Merrill <jason@redhat.com> 10542 10543 * call.c (equal_functions): Also call decls_match for extern "C" fns. 10544 105452000-10-22 Jason Merrill <jason@redhat.com> 10546 10547 * call.c (build_conditional_expr): Use ocp_convert to force 10548 rvalue conversion. 10549 105502000-10-22 Mark Mitchell <mark@codesourcery.com> 10551 10552 * call.c (standard_conversion): Use RVALUE_CONVs for all 10553 expressions that satisfy lvalue_p, not just those that satisfy 10554 real_lvalue_p. 10555 10556 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially. 10557 10558 * typeck.c (c_sizeof): Return an expression of `size_t' type, 10559 not one with TYPE_IS_SIZETYPE set. 10560 (dubious_conversion_warnings): Remove special-case code. 10561 105622000-10-21 Geoffrey Keating <geoffk@cygnus.com> 10563 10564 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE. 10565 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE. 10566 (dump_type_prefix): Print vector-of-int as 'int vector'. 10567 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE. 10568 * tree.c (walk_tree): Handle VECTOR_TYPE. 10569 10570 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS. 10571 105722000-10-21 Jason Merrill <jason@redhat.com> 10573 10574 * parse.y (operator): Set got_object from got_scope. 10575 Set looking_for_typename. 10576 * decl.c (lookup_name_real): Clear val after setting from_obj. 10577 Reorganize diagnostic. 10578 105792000-10-20 Jason Merrill <jason@redhat.com> 10580 10581 * tree.c (walk_tree): Don't walk into default args. 10582 10583 * error.c (dump_expr): Use host_integerp. 10584 105852000-10-20 David Edelsohn <edelsohn@gnu.org> 10586 10587 * typeck2.c (abstract_virtuals_error): Use "because" instead of 10588 "since" in error message. 10589 10590Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10591 10592 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE. 10593 105942000-10-20 Jeffrey Oldham <oldham@codesourcery.com> 10595 10596 * decl.c (revert_static_member_fn): Fixed typo. 10597 105982000-10-19 Mark Mitchell <mark@codesourcery.com> 10599 10600 * class.c (subobject_offset_fn): New type. 10601 (dfs_record_base_offsets): Remove. 10602 (record_base_offsets): Likewise. 10603 (dfs_search_base_offsets): Likewise. 10604 (record_subobject_offset): New function. 10605 (check_subobject_offset): Likewise. 10606 (walk_subobject_offsets): Likewise. 10607 (record_subobject_offsets): Likewise. 10608 (layout_conflict_p): Reimplement. 10609 (layout_nonempty_base_or_field): Correct handling of type 10610 conflicts during layout. 10611 (layout_empty_base): Likewise. 10612 (build_base_field): Adjust to handle new representation of empty 10613 base offset table. 10614 (build_base_fields): Likewise. 10615 (layout_virtual_bases): Likewise. 10616 (splay_tree_compare_integer_csts): New function. 10617 (layout_class_type): Use a splay_tree, rather than a varray, to 10618 represent the offsets of empty bases. 10619 10620 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL. 10621 * decl.c (select_decl): Don't return declarations that are 10622 DECL_ANTICIPATED. 10623 106242000-10-18 Mark Mitchell <mark@codesourcery.com> 10625 10626 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD. 10627 (fake_std_node): New macro. 10628 * decl.c (in_std): Rename to ... 10629 (in_fake_std): ... this. 10630 (flag_no_builtin): Remove. 10631 (flag_no_nonansi_builtin): Likewise. 10632 (walk_namespaces_r): Use fake_std_node. 10633 (push_namespace): Use std_identifier. 10634 (pop_namespace): Use in_fake_std. 10635 (lookup_name_real): Use fake_std_node. 10636 (init_decl_processing): When -fhonor-std, create the `std' 10637 namespace. Don't create a dummy fake_std_node in that case. 10638 Adjust call to c_common_nodes_and_builtins. Use std_identifier. 10639 (builtin_function): Put builtins whose names don't begin 10640 with `_' in the std namespace. 10641 * decl2.c (flag_no_builtin): Remove. 10642 (flag_no_nonansi_builtin): Likewise. 10643 (set_decl_namespace): Use fake_std_node. 10644 (validate_nonmember_using_decl): Likewise. 10645 (do_using_directive): Likewise. 10646 (handle_class_head): Likewise. 10647 * dump.c (dequeue_and_dump): Likewise. 10648 * except.c (init_exception_processing): Use std_identifier. 10649 * init.c (build_member_call): Use fake_std_node. 10650 * rtti.c (init_rtti_processing): Use std_identifier. 10651 106522000-10-17 Mark Mitchell <mark@codesourcery.com> 10653 10654 * cp-tree.h (back_end_hook): Remove declaration. 10655 * decl2.c (back_end_hook): Remove definition. 10656 10657 * dump.c (dequeue_and_dump): Dump TREE_USED. 10658 10659Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu> 10660 10661 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). 10662 106632000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 10664 10665 * decl.c (WINT_TYPE): Define. 10666 (init_decl_processing): Create types unsigned_ptrdiff_type_node, 10667 c_size_type_node, signed_size_type_node and wint_type_node. 10668 106692000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 10670 10671 * decl2.c (warn_missing_format_attribute): New variable. 10672 (lang_decode_option): Decode -Wmissing-format-attribute. 10673 106742000-10-16 Mark Mitchell <mark@codesourcery.com> 10675 10676 * typeck.c (qualify_type): Remove. 10677 (composite_pointer_type): Fix handling of conversions to `cv void*'. 10678 106792000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10680 10681 * Makefile.in (parse.c, parse.h): Fix think-o in last patch. 10682 106832000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10684 10685 * Makefile.in (parse.c, parse.h): Create atomically. 10686 106872000-10-12 Mark Mitchell <mark@codesourcery.com> 10688 10689 * class.c (current_obstack): Remove. 10690 * decl.c (ggc_p): Remove. 10691 (start_decl): Don't use decl_tree_cons. 10692 (grokdeclarator): Don't use build_decl_list. 10693 (start_function): Don't use decl_tree_cons. 10694 (finish_function): Don't mess with obstacks. 10695 * decl2.c (grok_x_components): Don't use build_decl_list. 10696 * lex.c (make_call_declarator): Don't call decl_tree_cons. 10697 (implicitly_declare_fn): Don't call build_decl_list. 10698 * parse.y (frob_specs): Don't call build_decl_list or 10699 decl_tree_cons. 10700 (expr_or_declarator_intern): Don't call decl_tree_cons. 10701 (primary): Don't call build_decl_list. 10702 (fcast_or_absdcl): Likewise. 10703 (typed_declspecs): Don't call decl_tree_cons. 10704 (reserved_declspecs): Don't call build_decl_list. 10705 (declmods): Likewise. 10706 (reserved_typespecquals): Likewise. 10707 (aggr): Likewise. 10708 (new_type_id): Likewise. 10709 (cv_qualifiers): Likewise. 10710 (after_type_declarator_intern): Likewise. 10711 (notype_declarator_intern): Likewise. 10712 (absdcl_intern): Likewise. 10713 (named_parm): Likewise. 10714 * pt.c (most_specialized_class): Likewise. 10715 * repo.c (temporary_obstack): Make it a structure, not a pointer. 10716 (init_repo): Initialize it. 10717 * search.c (current_obstack): Remove. 10718 * typeck2.c (add_exception_specifier): Don't call build_decl_list. 10719 107202000-10-09 Richard Henderson <rth@cygnus.com> 10721 10722 * Make-lang.in (CXX_EXTRA_HEADERS): Remove. 10723 (c++ language support bits for libgcc): Remove. 10724 (c++.clean): Remove cplib2.txt cleanup. 10725 * config-lang.in (headers, lib2funcs): Remove. 10726 10727 * exception.cc, new.cc, new1.cc, new2.cc: Remove files. 10728 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files. 10729 * inc/cxxabi.h, inc/exception, inc/new: Remove files. 10730 * inc/new.h, inc/typeinfo: Remove files. 10731 107322000-10-08 Joseph S. Myers <jsm28@cam.ac.uk> 10733 10734 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already 10735 defined. 10736 (init_decl_processing): Initialize intmax_type_node and 10737 uintmax_type_node. 10738 107392000-10-06 Richard Henderson <rth@cygnus.com> 10740 10741 * cp-tree.h (struct cp_language_function): Remove x_result_rtx. 10742 (original_result_rtx): Remove. 10743 * decl.c (save_function_data): Don't clear x_result_rtx. 10744 (mark_lang_function): Don't mark it either. 10745 * expr.c (fixup_result_decl): Remove. 10746 * semantics.c (genrtl_named_return_value): Frob the return decl 10747 before calling emit_local_var. 10748 (genrtl_finish_function): Don't call fixup_result_decl. 10749 Always emit the jump to return_label. 10750 107512000-10-06 Nathan Sidwell <nathan@codesourcery.com> 10752 10753 * pt.c (lookup_template_class): Set current access for enum. 10754 (tsubst_enum): Set file & line for enum decl. 10755 10756 * spew.c (yylex): Remove unused variable. 10757 107582000-10-05 Richard Henderson <rth@cygnus.com> 10759 10760 * semantics.c (genrtl_finish_function): Don't init or check 10761 can_reach_end; remove noreturn and return value checks. 10762 107632000-10-05 Tom Tromey <tromey@cygnus.com> 10764 10765 * init.c (build_java_class_ref): Use `build_static_name' with a 10766 suffix, not a prefix, to build the class object's name. 10767 107682000-10-05 Nathan Sidwell <nathan@codesourcery.com> 10769 10770 * cp-tree.h (access_kind): Fix comment typo. 10771 * decl2.c (grokfield): Fix diagnostic typo. 10772 * semantics.c (finish_template_type): Fix comment typo. 10773 (finish_qualified_object_call_expr): Likewise. 10774 107752000-10-05 Nathan Sidwell <nathan@codesourcery.com> 10776 10777 * pt.c (tsubst_expr, DECL_STMT case): Don't process if 10778 tsubsting fails. 10779 107802000-10-05 Nathan Sidwell <nathan@codesourcery.com> 10781 10782 * spew.c (frob_id): New static function. 10783 (frob_opname): Use it. 10784 (yylex): Use it. 10785 107862000-10-01 Mark Mitchell <mark@codesourcery.com> 10787 10788 * decl.c (lang_mark_false_label_stack): Remove. 10789 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared. 10790 107912000-09-30 Joseph S. Myers <jsm28@cam.ac.uk> 10792 10793 * gxxint.texi: Use @email for formatting email addresses. 10794 107952000-09-29 Gabriel Dos Reis <gdr@codesourcery.com> 10796 10797 * error.c: Remove direct obstack manipulation. Replace with 10798 output_buffer-based formatting. Adjust calls to removed macros. 10799 (obstack_chunk_alloc, obstack_chunk_free): Remove. 10800 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP, 10801 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise. 10802 108032000-09-24 Mark Mitchell <mark@codesourcery.com> 10804 10805 * ir.texi: Move to ../c-tree.texi. 10806 108072000-09-20 Jason Merrill <jason@redhat.com> 10808 10809 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P. 10810 108112000-09-21 Andreas Jaeger <aj@suse.de> 10812 10813 * errfn.c: Move declaration of cp_printer and cp_printers to ... 10814 * cp-tree.h: ... here. 10815 10816 * error.c: Remove declaration of cp_printer. 10817 108182000-09-20 Mark Mitchell <mark@codesourcery.com> 10819 10820 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs. 10821 108222000-09-20 Hans-Peter Nilsson <hp@axis.com> 10823 10824 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and 10825 users. 10826 108272000-09-18 Mark Mitchell <mark@codesourcery.com> 10828 10829 * decl.c (start_function): Robustify. 10830 108312000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10832 10833 * cp-tree.h (check_function_format): Accept a `status' parameter. 10834 10835 * call.c, typeck.c: Updates calls to `check_function_format'. 10836 108372000-09-17 Geoffrey Keating <geoffk@cygnus.com> 10838 10839 * decl2.c (handle_class_head): Always push some scope even 10840 in the error case. 10841 108422000-09-16 Mark Mitchell <mark@codesourcery.com> 10843 10844 * cp-tree.h (struct cp_language_function): Remove 10845 x_scope_stmt_stack and name_declared. 10846 (current_scope_stmt_stack): Remove. 10847 (function_name_declared_p): New macro. 10848 (struct lang_decl_flags): Use c_lang_decl as a base class. 10849 (context): Remove. 10850 (struct lang_decl): Replace saved_tree with context. 10851 (DECL_FRIEND_CONTEXT): Adjust accordingly. 10852 (SET_DECL_FRIEND_CONTEXT): Likewise. 10853 (DECL_VIRTUAL_CONTEXT): Likewise. 10854 (DECL_SAVED_TREE): Remove. 10855 (C_DECLARED_LABEL_FLAG): Likewise. 10856 (cplus_expand_expr_stmt): Don't declare. 10857 (add_decl_stmt): Likewise. 10858 (add_scope_stmt): Likewise. 10859 * decl.c (mark_stmt_tree): Remove. 10860 (case_compare): Likewise. 10861 (finish_case_label): Use c_add_case_label. 10862 (init_decl_processing): Set more language-specific hooks. 10863 (build_enumerator): Fix typo in comment. 10864 (cplus_expand_expr_stmt): Remove. 10865 (mark_lang_function): Use mark_c_language_function. 10866 (lang_mark_tree): Use c_mark_lang_decl. 10867 * decl2.c: Change order of inclusion. 10868 * except.c: Likewise. 10869 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall 10870 back on c_expand_expr. 10871 * friend.c: Include expr.h. 10872 * init.c: Change order of inclusion. 10873 * Makefile.in: Update dependencies. 10874 * lex.h (free_lang_decl_chain): Remove. 10875 * optimize.c (maybe_clone_body): Use function_name_declared_p. 10876 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if 10877 it doesn't exist. 10878 (instantiate_decl): Use function_name_declared_p. 10879 * semantics.c (lang_expand_expr_stmt): Remove. 10880 (set_current_function_name_declared): Likewise. 10881 (current_function_name_declared): Likewise. 10882 (begin_compound_stmt): Use function_name_declared_p. 10883 (add_decl_stmt): Remove. 10884 (setup_vtbl_ptr): Use function_name_declared_p. 10885 (add_scope_stmt): Remove. 10886 (current_scope_stmt_stack): New function. 10887 (cp_expand_stmt): Don't handle SCOPE_STMTs. 10888 (expand_body): Use function_name_declared_p. 10889 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. 10890 * typeck.c: Change order of includes. 10891 (convert_sequence): Remove. 10892 108932000-09-14 Joseph S. Myers <jsm28@cam.ac.uk> 10894 10895 * lex.c (reswords): Add _Complex. 10896 10897Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10898 10899 * Make-lang.in (cplib2.txt): Depend on cp/Makefile. 10900 109012000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> 10902 10903 * init.c (begin_init_stmts): Don't use // comments. 10904 109052000-09-12 Jason Merrill <jason@redhat.com> 10906 10907 * decl.c (maybe_deduce_size_from_array_init): Set do_default for 10908 all non-extern arrays. 10909 10910 * decl.c (grokdeclarator): Complain about 'friend T' for implicit 10911 typenames, too. Downgrade complaint to pedwarn. 10912 (xref_tag): Warn about surprising behavior of 'friend struct T'. 10913 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for 10914 'class This::Inherited'. 10915 109162000-09-12 Mark Mitchell <mark@codesourcery.com> 10917 10918 * decl.c (finish_case_label): Given the LABEL_DECL a 10919 DECL_CONTEXT. 10920 109212000-09-12 Gabriel Dos Reis <gdr@codesourcery.com> 10922 10923 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, 10924 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF, 10925 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 10926 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 10927 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE): 10928 New macros. 10929 (sorry_for_unsupported_tree, print_scope_operator, 10930 print_left_paren, print_right_paren, print_left_bracket, 10931 print_right_bracket, print_whitespace): Likewise. 10932 (aggr_variety): Rename to class_key_or_enum. 10933 (print_type): Rename to print_type_id. 10934 (print_type_specifier_seq, print_simple_type_specifier, 10935 print_elaborated_type_specifier, 10936 print_rest_of_abstract_declarator, 10937 print_parameter_declaration_clause, print_exception_specification, 10938 print_nested_name_specifier, print_template_id, 10939 typedef_original_name, print_template_argument_list_start, 10940 print_template_argument_list_end): New functions. 10941 109422000-09-11 Gabriel Dos Reis <gdr@codesourcery.com> 10943 10944 * ir.texi: Add more documentation. 10945 109462000-09-11 Mark Mitchell <mark@codesourcery.com> 10947 10948 * cp-tree.h (struct saved_scope): Remove x_function_parms. 10949 (current_function_parms): Don't define. 10950 (struct cp_language_function): Remove parms_stored. 10951 (current_function_just_assigned_this): Don't define. 10952 (current_function_parms_stored): Likewise. 10953 (static_ctors): Declare. 10954 (static_dtors): Likewise. 10955 (SF_EXPAND): Don't define. 10956 (expand_start_early_try_stmts): Remove declaration. 10957 (store_parm_decls): Likewise. 10958 * decl.c (static_ctors): Don't declare. 10959 (static_dtors): Likewise. 10960 (struct binding_level): Remove this_block. 10961 (poplevel): Remove dead code. 10962 (set_block): Likewise. 10963 (mark_binding_level): Don't mark this_block. 10964 (mark_saved_scope): Don't mark x_function_parms. 10965 (init_decl_processing): Don't add current_function_parms as a GC 10966 root. 10967 (check_function_type): Change prototype. 10968 (start_function): Remove RTL-generation code. 10969 (expand_start_early_try_stmts): Remove. 10970 (store_parm_decls): Give it internal linkage. Remove 10971 RTL-generation code. 10972 (finish_function): Remove RTL-generation code. 10973 * decl2.c (static_ctors): Fix formatting. 10974 (static_dtors): Likewise. 10975 * method.c (use_thunk): Don't call store_parm_decls. 10976 (synthesize_method): Likewise. 10977 * optimize.c (maybe_clone_body): Likewise. 10978 * parse.y (fn.def2): Likewise. 10979 (.set_base_init): Likewise. 10980 (nodecls): Likewise. 10981 * pt.c (instantiate_decl): Likewise. 10982 * rtti.c (synthesize_tinfo_fn): Likewise. 10983 * semantics.c (genrtl_try_block): Simplify. 10984 (expand_body): Use genrtl_start_function and 10985 genrtl_finish_function. 10986 (genrtl_start_function): New function. 10987 (genrtl_finish_function): Likewise. 10988 109892000-09-11 Nathan Sidwell <nathan@codesourcery.com> 10990 10991 * error.c (cp_tree_printer, case 'P'): Append break. 10992 109932000-09-11 Nathan Sidwell <nathan@codesourcery.com> 10994 10995 * cp-tree.h (frob_opname): Declare. 10996 * parse.y (saved_scopes): New static variable. 10997 (cp_parse_init): Adjust. 10998 (do_id): If lastiddecl is NULL, do do_identifier. 10999 (operator): Save scope information. 11000 (unoperator): New reduction. Restore scope information. 11001 (operator_name): Append unoperator. Call frob_opname. 11002 * spew.c (frob_opname): Define. 11003 110042000-09-10 Zack Weinberg <zack@wolery.cumb.org> 11005 11006 * decl.c, rtti.c: Include defaults.h if not already included. 11007 Don't define the *_TYPE_SIZE macros. 11008 110092000-09-09 Mark Mitchell <mark@codesourcery.com> 11010 11011 * cp-tree.h (push_switch): Change prototype. 11012 (check_cp_case_value): Remove declaration. 11013 (decl_constant_value): Likewise. 11014 * decl.c (struct cp_switch): Add switch_stmt and cases. 11015 (case_compare): New function. 11016 (push_switch): Set switch_stmt. Initialize cases. 11017 (pop_switch): Clean up cases. 11018 (define_case_label): Rename to ... 11019 (finish_case_label): ... this. Do semantic analysis for case 11020 labels here. 11021 (start_function): Correct comment. 11022 * decl2.c (check_cp_case_value): Remove. 11023 * expr.c (do_case): Remove. 11024 * pt.c (tsubst_expr): Adjust call to finish_case_label. 11025 * semantics.c (genrtl_do_poplevel): Remove declaration. 11026 (RECHAIN_STMTS): Remove. 11027 (finish_break_stmt): Use build_break_stmt. 11028 (finish_continue_stmt): Use build_continue_stmt. 11029 (finish_switch_cond): Adjust condition here, rater than in 11030 c_expand_start_case. 11031 (finish_case_label): Remove. 11032 * typeck.c (c_expand_return): Remove. 11033 (c_expand_start_case): Likewise. 11034 110352000-09-07 Gabriel Dos Reis <gdr@codesourcery.com> 11036 11037 * ir.texi: Document type nodes. 11038 110392000-09-06 Mark Mitchell <mark@codesourcery.com> 11040 11041 * cp-tree.h (init_cp_semantics): Declare. 11042 (genrtl_try_block): Don't declare. 11043 (genrtl_handler): Likewise. 11044 (genrtl_catch_block): Likewise. 11045 (genrtl_ctor_stmt): Likewise. 11046 (genrtl_subobject): Likewise. 11047 (genrtl_do_poplevel): Likewise. 11048 (genrtl_named_return_value): Likewise. 11049 * lex.c (init_parse): Call init_cp_semantics. 11050 * semantics.c (genrtl_try_block): Give it internal linkage. 11051 (genrtl_handler): Likewise. 11052 (genrtl_catch_block): Likewise. 11053 (genrtl_ctor_stmt): Likewise. 11054 (genrtl_subobject): Likewise. 11055 (genrtl_do_poplevel): Likewise. 11056 (genrtl_named_return_value): Likewise. 11057 (lang_expand_stmt): Rename to ... 11058 (cp_expand_stmt): ... this. Only handle C++-specific nodes. 11059 (init_cp_semantics): Define. 11060 11061 * decl.c (initialize_local_var): Remove RTL-generating code. 11062 * semantics.c (genrtl_try_block): Fix formatting. 11063 11064 Move statement-tree facilities from C++ to C front-end. 11065 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO. 11066 (void_zero_node): Remove. 11067 (stmt_tree): Likewise. 11068 (scope_chain): Adjust. 11069 (language_function): Rename to cp_language_function. 11070 (cp_function_chain): Adjust. 11071 (current_stmt_tree): Remove. 11072 (last_tree): Likewise. 11073 (last_expr_type): Likewise. 11074 (struct lang_decl): Adjust. 11075 (STMT_IS_FULL_EXPR_P): Remove. 11076 (add_tree): Remove. 11077 (begin_stmt_tree): Likewise. 11078 (finish_stmt_tree): Likewise. 11079 (walk_tree_fn): Likewise. 11080 (walk_stmt_tree): Likewise. 11081 * class.c (finish_struct): Replace use of add_tree with add_stmt. 11082 * decl.c (mark_stmt_tree): Adjust type. 11083 (init_decl_processing): Don't build void_zero_node. 11084 (initialize_local_var): Adjust usage of current_stmt_tree. 11085 (finish_enum): Use add_stmt, not add_tree. 11086 (save_function_data): Adjust use of language_function. 11087 (finish_constructor_body): Use add_stmt, not add_tree. 11088 (finish_destructor_body): Likewise. 11089 (push_cp_function_context): Adjust use of language_function. 11090 (pop_cp_function_context): Likewise. 11091 (mark_lang_function): Likewise. 11092 (mark_cp_function_context): Likewise. 11093 * init.c (build_aggr_init): Adjust use of current_stmt_tree. 11094 (build_vec_init): Likewise. 11095 * semantics.c (SET_LAST_STMT): Remove. 11096 (RECHAIN_STMTS): Don't use it. 11097 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree. 11098 (current_stmt_tree): Define. 11099 (add_tree): Remove. 11100 (finish_goto_stmt): Use add_stmt, not add_tree. 11101 (finish_expr_stmt): Likewise. 11102 (begin_if_stmt): Likewise. 11103 (finish_then_clause): Likewise. 11104 (begin_while_stmt): Likewise. 11105 (begin_do_stmt): Likewise. 11106 (finish_return_stmt): Likewise. 11107 (begin_for_stmt): Likewise. 11108 (finish_break_stmt): Likewise. 11109 (finish_continue_stmt): Likewise. 11110 (begin_switch_stmt): Likewise. 11111 (finish_case_label): Likewise. 11112 (begin_try_block): Likewise. 11113 (begin_function_try_block): Likewise. 11114 (begin_handler): Likewise. 11115 (begin_catch_block): Likewise. 11116 (begin_compound_stmt): Likewise. 11117 (begin_asm_stmt): Likewise. 11118 (finish_asm_stmt): Likewise. 11119 (finish_label_stmt): Likewise. 11120 (add_decl_stmt): Likewise. 11121 (finish_subobject): Likewise. 11122 (finish_decl_cleanup): Likewise. 11123 (finish_named_return_value): Likewise. 11124 (setup_vtbl_ptr): Likewise. 11125 (add_scope_stmt): Likewise. 11126 (finish_stmt_expr): Likewise. 11127 (prune_unused_decls): Remove. 11128 (begin_stmt_tree): Likewise. 11129 (finish_stmt_tree): Likewise. 11130 (prep_stmt): Adjust use of current_stmt_tree. 11131 (lang_expand_stmt): Likewise. 11132 * tree.c (statement_code_p): Remove. 11133 (cp_statement_code_p): New function. 11134 (walk_stmt_tree): Remove. 11135 (init_tree): Set lang_statement_code_p. 11136 111372000-09-06 Zack Weinberg <zack@wolery.cumb.org> 11138 11139 Integrated preprocessor. 11140 11141 * Make-lang.in, Makefile.in: Remove all references to input.c, 11142 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. 11143 * gxx.gperf, hash.h, input.c: Delete. 11144 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is 11145 initialized properly. 11146 11147 * class.c (fixup_pending_inline): Take a tree, not a 11148 struct pending_inline *. All callers changed. 11149 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, 11150 RID_PROTECTED entries in ridpointers[] array here. 11151 * decl.c (duplicate_decls): Do not refer to struct 11152 pending_inline. 11153 (record_builtin_type, init_decl_processing): Use RID_MAX not 11154 CP_RID_MAX. 11155 (grokdeclarator): Use C_IS_RESERVED_WORD. 11156 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of 11157 cpplib. 11158 (grok_x_components): Do not inspect pending_inlines chain. 11159 11160 * cp-tree.h (struct lang_identifier): Add rid_code entry. 11161 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. 11162 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. 11163 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, 11164 TIME_IDENTIFIER_FILEINFO): Kill. 11165 Update prototypes. 11166 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a 11167 single 32-bit word. 11168 * parse.y: Call do_pending_inlines unconditionally. 11169 reinit_parse_for_method is now snarf_method. fn.defpen is no 11170 longer necessary. Remove unnecessary <itype> annotation on 11171 SCOPE. Do not refer to end_of_file or struct pending_inline. 11172 * semantics.c (begin_inline_definitions): Call 11173 do_pending_inlines unconditionally. 11174 11175 * lex.c: Remove all code now shared with C front end. 11176 Initialize cpplib properly if USE_CPPLIB. Put reserved words 11177 into the get_identifier table. Rewrite pragma handling to 11178 work with the registry. Move code to save tokens for later 11179 processing to spew.c. 11180 11181 * spew.c: Rewrite everything in terms of token streams instead 11182 of text. Move routines here from lex.c / input.c as 11183 appropriate. GC-mark trees hanging off the pending inlines 11184 chain. 11185 111862000-09-06 Mark Mitchell <mark@codesourcery.com> 11187 11188 * NEWS: Mention that the named return value extension has been 11189 deprecated. 11190 * cp-tree.h (original_result_rtx): Define. 11191 (TREE_REFERENCE_EXPR): Remove. 11192 (DECL_VPARENT): Likewise. 11193 (pushdecl_nonclass_level): Likewise. 11194 (store_return_init): Likewise. 11195 (reinit_lang_specific): Likewise. 11196 (genrtl_named_return_value): Change prototype. 11197 * decl.c (original_result_rtx): Remove. 11198 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs. 11199 Do not generate RTL for local variables here. 11200 (store_return_init): Remove. 11201 * semantics.c (genrtl_named_return_value): Simplify. Fold in 11202 store_return_init. 11203 (finish_named_return_value): Adjust accordingly. Warn that this 11204 extension is deprecated. 11205 (lang_expand_stmt): Adjust call to genrtl_named_return_value. 11206 112072000-09-06 Nathan Sidwell <nathan@codesourcery.com> 11208 11209 * pt.c (type_unification_real): Replace switch with if. 11210 (unify): Tsubst non-type parms before comparing. 11211 112122000-09-06 Nathan Sidwell <nathan@codesourcery.com> 11213 11214 * error.c (dump_typename): New function, broken out of ... 11215 (dump_type): ... here. Use it. 11216 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE. 11217 112182000-09-06 Nathan Sidwell <nathan@codesourcery.com> 11219 11220 * init.c (build_offset_ref): Deal with namespace scoped 11221 TEMPLATE_ID_EXPRs. 11222 112232000-09-06 Nathan Sidwell <nathan@codesourcery.com> 11224 11225 * class.c (resolve_address_of_overloaded_function): Add 11226 explanation message. 11227 * decl.c (define_case_label): Reformat explanation. 11228 * decl2.c (finish_static_data_member_decl): Likewise. 11229 (grokfield): Likewise. 11230 * friend.c (do_friend): Likewise. 11231 112322000-09-05 Zack Weinberg <zack@wolery.cumb.org> 11233 11234 * tree.c (walk_tree): Expose tail recursion. 11235 (walk_stmt_tree): New function. 11236 * cp-tree.h: Prototype walk_stmt_tree. 11237 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not 11238 the BLOCKs directly. If a BLOCK has no variables after 11239 pruning, discard it. 11240 (finish_stmt_tree): Use walk_stmt_tree. No need to save and 11241 restore the line number. 11242 112432000-09-05 Mark Mitchell <mark@codesourcery.com> 11244 11245 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H. 11246 (pt.o): Remove dependency on HTAB_H. 11247 * cp-tree.h: Include hashtab.h. 11248 (walk_tree): Change prototype. 11249 (walk_tree_without_duplicates): New function. 11250 * decl.c (check_default_argument): Use it. 11251 * optimize.c (remap_decl): Adjust calls to walk_tree. 11252 (copy_body): Likewise. 11253 (expand_calls_inline): Likewise. 11254 (calls_setjmp_p): Use walk_tree_without_duplicates. 11255 * pt.c: Don't include hashtab.h. 11256 (for_each_template_parm): Use walk_tree_without_duplicates. 11257 * semantics.c (finish-stmt_tree): Likewise. 11258 (expand_body): Likewise. 11259 * tree.c (walk_tree): Add additional parameter. 11260 (walk_tree_without_duplicates): New function. 11261 (count_trees): Use it. 11262 (verify_stmt_tree): Adjust call to walk_tree. 11263 (find_tree): Use walk_tree_without_duplicates. 11264 (no_linkage_check): Likewise. 11265 (break_out_target_exprs): Adjust call to walk_tree. 11266 (cp_unsave): Likewise. 11267 112682000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 11269 11270 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code. 11271 (TEMPLATE_TEMPLATE_PARM): Adjust comment. 11272 * cp-tree.h (TYPE_BINFO): Adjust comment. 11273 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 11274 (TEMPLATE_TYPE_PARM_INDEX): Likewise. 11275 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 11276 (TYPE_TEMPLATE_INFO): Likewise. 11277 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise. 11278 * class.c (push_nested_class): Likewise. 11279 * decl.c (lookup_name_real): Likewise. 11280 (grokdeclarator): Likewise. 11281 (grok_op_properties): Likewise. 11282 (xref_tag): Likewise. 11283 (xref_basetypes): Likewise. 11284 * decl2.c (constructor_name_full): Likewise. 11285 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case. 11286 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 11287 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case. 11288 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM. 11289 (dump_type_suffix): Likewise. 11290 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM 11291 instead. 11292 (get_aggr_from_typedef): Likewise. 11293 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case. 11294 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM. 11295 (write_template_parm): Likewise. 11296 (write_template_template_parm): Check tree code instead of 11297 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 11298 * method.c (build_overload_nested_name): Add 11299 BOUND_TEMPLATE_TEMPLATE_PARM. 11300 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case. 11301 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM. 11302 * pt.c (convert_template_argument): Check tree code instead of 11303 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 11304 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case. 11305 (for_each_template_parm): Adjust comment. 11306 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. 11307 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM. 11308 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use 11309 template_args_equal to compare template template parameter cases. 11310 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM. 11311 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM 11312 instead. 11313 * tree.c (copy_template_template_parm): Decide whether to create 11314 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node. 11315 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM. 11316 (copy_tree_r): Likewise. 11317 * typeck.c (comptypes): Likewise. Check tree code instead of 11318 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 11319 113202000-09-04 Mark Elbrecht <snowball3@bigfoot.com> 11321 11322 * decl.c (finish_function): Move the code for handling functions 11323 marked with the constructor and destructor attributes inside the 11324 expand_p block. 11325 113262000-09-04 Nathan Sidwell <nathan@codesourcery.com> 11327 11328 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR. 11329 113302000-09-04 Nathan Sidwell <nathan@codesourcery.com> 11331 11332 * pt.c (lookup_template_class): Remove abort. 11333 * tree.c (get_type_decl): Allow error_mark_node. 11334 113352000-09-04 Nathan Sidwell <nathan@codesourcery.com> 11336 11337 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside 11338 TEMPLATE_ID_EXPRs. 11339 113402000-09-03 Mark Mitchell <mark@codesourcery.com> 11341 11342 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change 11343 new ABI mangling. 11344 113452000-09-01 Nathan Sidwell <nathan@codesourcery.com> 11346 11347 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify 11348 union tag mismatch error reporting. 11349 113502000-09-01 Nathan Sidwell <nathan@codesourcery.com> 11351 11352 * call.c (build_scoped_method_call): Check it is not a namespace. 11353 113542000-08-30 Jason Merrill <jason@redhat.com> 11355 11356 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context. 11357 11358 * tree.c (bot_manip): Check TREE_CONSTANT rather than 11359 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and 11360 build_target_expr_with_type for the non-AGGR_INIT_EXPR case. 11361 11362 * decl.c (start_function): Always call make_function_rtl. 11363 113642000-08-29 Zack Weinberg <zack@wolery.cumb.org> 11365 11366 * semantics.c (prune_unused_decls): New function. 11367 (finish_stmt_tree): Call it via walk_tree. 11368 113692000-08-29 Zack Weinberg <zack@wolery.cumb.org> 11370 11371 * class.c (build_secondary_vtable): Constify a char *. 11372 * decl.c (init_decl_processing): Initialize function_id_node, 11373 pretty_function_id_node, and func_id_node. 11374 * input.c (struct input_source): Constify 'str'. 11375 (feed_input): Constify first argument. 11376 * mangle.c (write_identifier): Constify argument. 11377 * pt.c (mangle_class_name_for_template): Constify argument. 11378 113792000-08-29 Mark Mitchell <mark@codesourcery.com> 11380 11381 * typeck.c (mark_addressable): Remove code that pokes around in 11382 RTL. 11383 113842000-08-28 Jason Merrill <jason@redhat.com> 11385 11386 * lex.c (file_name_nondirectory): Move to toplev.c. 11387 11388 * cp-tree.h (LOCAL_CLASS_P): New macro. 11389 * class.c (finish_struct_1): Use it. 11390 113912000-08-27 Alex Samuel <samuel@codesourcery.com> 11392 11393 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo. 11394 (write_encoding): Pass another argument to write_name. 11395 (write_name): Add ignore_local_scope parameter. Fix handling of 11396 local names. 11397 (write_nested_name): Use write_unqualified_name. 11398 (write_prefix): Likewise. Skip out on FUNCTION_DECLs. 11399 (write_template_prefix): Use write_unqualified_name. 11400 (write_component): Remove. 11401 (write_local_name): Add parameter. Use direct local entity to 11402 discriminator calculation. 11403 (write_class_enum_type): Pass another argument to write_name. 11404 (write_template_template_arg): Likewise. 11405 (make_guard_variable): Likewise. 11406 114072000-08-27 Jason Merrill <jason@redhat.com> 11408 11409 * decl.c (pushdecl): Matching decls for local externs are found in 11410 the current level. Propagate linkage information from previous 11411 declarations. 11412 114132000-08-26 Gabriel Dos Reis <gdr@codesourcery.com> 11414 11415 * ir.texi (Expressions): Fix typo. 11416 114172000-08-25 Greg McGary <greg@mcgary.org> 11418 11419 * tree.c (init_tree): Use ARRAY_SIZE. 11420 114212000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 11422 11423 * error.c (cp_tree_printer): Rework. 11424 114252000-08-25 Mark Mitchell <mark@codesourcery.com> 11426 11427 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and 11428 dyn-string.o. 11429 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c. 11430 (cp-demangle.o): Remove target. 11431 (dyn-string.o): Likewise. 11432 11433 * decl.c (grokfndecl): Require that `main' return an `int'. 11434 * mangle.c (write_encoding): Don't mangle return types for 11435 conversion functions. 11436 114372000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 11438 11439 * error.c (tree_formatting_info): New data type. 11440 (tree_being_formatted): New macro. 11441 (tree_formatting_flags): Likewise. 11442 (put_whitespace): Likewise. 11443 (print_tree_identifier): Likewise. 11444 (print_identifier): Likewise. 11445 (cp_tree_printer, print_function_argument_list, print_declaration, 11446 print_expression, print_function_declaration, 11447 print_function_parameter, print_type, print_cv_qualifier): New 11448 functions. 11449 (init_error): Initialize lang_printer. 11450 114512000-08-24 Jason Merrill <jason@redhat.com> 11452 11453 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no 11454 adjustment necessary. 11455 114562000-08-24 Greg McGary <greg@mcgary.org> 11457 11458 * cp-tree.h (MAIN_NAME_P): Remove macro. 11459 114602000-08-24 Gabriel Dos Reis <gdr@codesourcery.com> 11461 11462 * error.c (print_instantiation_context): Don't forget to flush the 11463 buffer. 11464 114652000-08-23 Jason Merrill <jason@redhat.com> 11466 11467 * typeck.c (build_ptrmemfunc): Save the input pmf. 11468 11469 * method.c (process_modifiers): Use same_type_p. 11470 114712000-08-23 Mark Mitchell <mark@codesourcery.com> 11472 11473 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC. 11474 * mangle.c (write_function_type): Change prototype. 11475 (write_encoding): Don't mangle return types for 11476 constructors or destructors. 11477 (write_type): Adjust call to write_function_type. 11478 * pt.c (instantiate_template): Instantiate alternate entry points 11479 when instantiating the main function. 11480 114812000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 11482 11483 * error.c (cp_print_error_function): Don't use embedded '\n' in 11484 output_printf. 11485 114862000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 11487 11488 * decl.c (init_decl_processing): Remove bogus initialization. 11489 * error.c (lang_print_error_function): Restore here. 11490 (init_error): Initialize print_error_function. 11491 114922000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 11493 11494 * decl2.c (arg_assoc): Revert my 2000-08-11 change. 11495 114962000-08-22 Gabriel Dos Reis <gdr@codesourcery.com> 11497 11498 * Makefile.in (error.o): Depends on diagnostic.h 11499 11500 * cp-tree.h (problematic_instantiation_changed, 11501 record_last_problematic_instantiation, current_instantiation, 11502 print_instantiation_context): Declare. 11503 (maybe_print_template_context): Remove. 11504 11505 * decl.c (init_decl_processing): Set print_error_function to NULL. 11506 (lang_print_error_function): Remove, since we're using a new 11507 machinery. 11508 11509 * error.c: #include diagnostic.h 11510 (function_category): New function. 11511 (cp_diagnostic_starter): Likewise. 11512 (cp_diagnostic_finalizer): Likewise. 11513 (cp_print_error_function): Likewise. 11514 (maybe_print_instantiation_context): Likewise. 11515 (print_instantiation_full_context): Likewise. 11516 (print_instantiation_partial_context): Likewise. 11517 (print_instantiation_context): Define. 11518 (init_error): Initialize diagnostic pager and finalizer. 11519 11520 * pt.c (problematic_instantiation_changed): Define. 11521 (record_last_problematic_instantiation): Likewise. 11522 (current_instantiation): Likewise. 11523 (maybe_print_template_context): Remove. 11524 (print_template_context): Likewise. 11525 (current_tinst_level): Make static to reflect Brendan Kehoe's 11526 change of 1995-04-13. 11527 (push_tinst_level): Call print_instantiation_context. 11528 115292000-08-21 Nix <nix@esperi.demon.co.uk> 11530 11531 * lang-specs.h: Do not process -o or run the assembler if 11532 -fsyntax-only. 11533 115342000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> 11535 11536 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New 11537 variables. 11538 * decl2.c (lang_decode_option): Disable gettext attributes for 11539 -ansi. 11540 115412000-08-21 Gabriel Dos Reis <gdr@codesourcery.com> 11542 11543 * lex.c (lang_init_options): Default diagnostic message maximum 11544 length to 80, when line-wrapping. 11545 115462000-08-20 Mark Mitchell <mark@codesourcery.com> 11547 11548 * class.c (build_vtbl_initializer): Clear the entire 11549 vtbl_init_data. Start keeping track of the functions for which we 11550 have created vcall offsets here. 11551 (dfs_build_vcall_offset_vtbl_entries): Remove. 11552 (build_vcall_offset_vtbl_entries): Reimplement. 11553 (add_vcall_offset_vtbl_entries_r): New function. 11554 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for 11555 computing when vcall offsets are necessary. 11556 115572000-08-18 Nathan Sidwell <nathan@codesourcery.com> 11558 11559 * decl.c (member_function_or_else): Use cp_error ... %T. 11560 (grokdeclarator): Likewise. 11561 (start_method): Likewise. 11562 * friend.c (make_friend_class): Use cp_pedwarn ... %T. 11563 115642000-08-18 Nathan Sidwell <nathan@codesourcery.com> 11565 11566 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class 11567 TYPE_DECLs. 11568 115692000-08-18 Nathan Sidwell <nathan@codesourcery.com> 11570 11571 * cp-tree.h (PTRMEM_OK_P): New macro. 11572 (itf_ptrmem_ok): New enumeration value. 11573 * class.c (resolve_address_of_overloaded_function): Add PTRMEM 11574 argument. Diagnose implicit pointer to member. 11575 (instantiate_type): Don't diagnose implicit pointer to member 11576 here. Pass itf_ptrmem_ok if ok. Adjust calls to 11577 resolve_address_of_overloaded_function. 11578 * init.c (build_offset_ref): Set PTRMEM_OK_P. 11579 (resolve_offset_ref): Don't diagnose implicit pointer to member here. 11580 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here. 11581 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P. 11582 (build_unary_op): Deal with single non-static member in 11583 microsoft-land. 11584 115852000-08-18 Nathan Sidwell <nathan@codesourcery.com> 11586 11587 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE. 11588 115892000-08-18 Nathan Sidwell <nathan@codesourcery.com> 11590 11591 * cp-tree.h (enum_name_string): Remove prototype. 11592 (report_case_error): Remove prototype. 11593 * cp/typeck2.c (enum_name_string): Remove. 11594 (report_case_error): Remove. 11595 * error.c (dump_expr): Deal with enum values directly. 11596 Correctly negate integer constant. 11597 115982000-08-17 Nathan Sidwell <nathan@codesourcery.com> 11599 11600 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare. 11601 (__cxa_vec_delete2, __cxa_vec_delete3): Declare. 11602 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement. 11603 (__cxa_vec_delete2, __cxa_vec_delete3): Implement. 11604 (__cxa_vec_new): Use __cxa_vec_new2. 11605 (__cxa_vec_delete): Use __cxa_vec_delete2. 11606 116072000-08-17 Nathan Sidwell <nathan@codesourcery.com> 11608 11609 * vec.cc (__cxa_vec_new): Set "C" linkage. 11610 (__cxa_vec_ctor): Likewise. 11611 (__cxa_vec_cctor): Likewise. 11612 (__cxa_vec_dtor): Likewise. 11613 (__cxa_vec_delete): Likewise. 11614 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage. 11615 (__cxa_vec_ctor): Likewise. 11616 (__cxa_vec_cctor): Likewise. 11617 (__cxa_vec_dtor): Likewise. 11618 (__cxa_vec_delete): Likewise. 11619 116202000-08-17 Nathan Sidwell <nathan@codesourcery.com> 11621 11622 * class.c (instantiate_type): Reinstate local variable 11623 deleted in previous change. 11624 11625 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not 11626 itf_no_attributes. 11627 116282000-08-17 Nathan Sidwell <nathan@codesourcery.com> 11629 11630 * cp-tree.h (instantiate_type_flags): New enumeration. 11631 (instantiate_type): Change parameter. 11632 * class.c (instantiate_type): Adjust prototype. Adjust. 11633 * call.c (standard_conversion): Adjust instantiate_type call. 11634 (reference_binding): Likewise. 11635 (build_op_delete_call): Likewise. 11636 (convert_like_real): Likewise. 11637 * cvt.c (cp_convert_to_pointer): Likewise. 11638 (convert_to_reference): Likewise. 11639 * pt.c (convert_nontype_argument): Likewise. 11640 * typeck.c (build_binary_op): Likewise. 11641 (build_ptrmemfunc): Likewise. 11642 (convert_for_assignment): Likewise. 11643 116442000-08-17 Nathan Sidwell <nathan@codesourcery.com> 11645 11646 * cp-tree.h (CPTR_AGGR_TAG): New global tree node. 11647 (current_aggr): Define. 11648 * decl.c (grokdeclarator): Make sure a friend class is an 11649 elaborated type specifier. 11650 * parse.y (current_aggr): Remove static definition. 11651 (cp_parse_init): Adjust. 11652 (structsp): Clear and restore current_aggr. 11653 (component_decl_list): Clear current_aggr. 11654 11655 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the 11656 aggregate tag on the typename's context. 11657 11658 * pt.c (tsubst_friend_class): Return error_mark_node, if 11659 parms becomes NULL. 11660 (instantiate_class_template): Ignore error_mark_node friend types. 11661 116622000-08-14 Nathan Sidwell <nathan@codesourcery.com> 11663 11664 * cvt.c (warn_ref_binding): New static function, broken out of ... 11665 (convert_to_reference): ... here. Use it. 11666 116672000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 11668 11669 * parse.y (template_arg): Add rule for template qualified with 11670 global scope. 11671 116722000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 11673 11674 * decl2.c (add_function): Reorganize. 11675 (arg_assoc): Do not consider function template decls. 11676 116772000-08-11 Jason Merrill <jason@redhat.com> 11678 11679 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're 11680 looking inside. 11681 116822000-08-11 Nathan Sidwell <nathan@codesourcery.com> 11683 11684 * cp-tree.h (resolve_scope_to_name): Remove unused prototype. 11685 (lookup_nested_tag): Likewise. 11686 11687 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs 11688 can be produced. 11689 116902000-08-11 Nathan Sidwell <nathan@codesourcery.com> 11691 11692 * parse.y (named_complex_class_head_sans_basetype): Remove 11693 always true if. 11694 116952000-08-11 Nathan Sidwell <nathan@codesourcery.com> 11696 11697 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build 11698 explicit TEMPLATE_ID_EXPR args. 11699 (build_expr_from_tree, case CALL_EXPR): Likewise. 11700 117012000-08-11 Nathan Sidwell <nathan@codesourcery.com> 11702 11703 * decl.c (check_tag_decl): Diagnose typename's which don't 11704 declare anything. 11705 117062000-08-10 Nathan Sidwell <nathan@codesourcery.com> 11707 11708 * init.c (build_aggr_init): Reject bogus array initializers 11709 early. 11710 117112000-08-09 Nathan Sidwell <nathan@codesourcery.com> 11712 11713 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi 11714 runtime. 11715 * cp/tinfo.cc (__dynamic_cast): Likewise. 11716 * cp/inc/cxxabi.h (__dynamic_cast): Likewise. 11717 117182000-08-09 Nathan Sidwell <nathan@codesourcery.com> 11719 11720 * cvt.c (convert_to_pointer_force): Fix error message when 11721 attempting to cast from ambiguous base. 11722 117232000-08-08 Jason Merrill <jason@redhat.com> 11724 11725 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails. 11726 (tsubst_template_arg_vector): Likewise. 11727 11728 * decl2.c (build_anon_union_vars): Choose the largest field; don't 11729 assume that one will be as large as the union. 11730 117312000-08-07 Kazu Hirata <kazu@hxi.com> 11732 11733 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo. 11734 * decl.c (pop_labels): Likewise. 11735 117362000-08-04 Jeffrey Oldham <oldham@codesourcery.com> 11737 11738 * inc/cxxabi.h (__pbase_type_info): Changed member names to match 11739 specifications. 11740 (__pointer_to_member_type_info): Likewise. 11741 (__base_class_info): Likewise. 11742 (__class_type_info): Likewise. 11743 (__si_class_type_info): Likewise. 11744 (__vmi_class_type_info): Likewise. 11745 * tinfo.cc (__si_class_type_info::__do_find_public_src): 11746 Changed member names to match specifications. 11747 (__vmi_class_type_info::__do_find_public_src): Likewise. 11748 (__si_class_type_info::__do_dyncast): Likewise. 11749 (__vmi_class_type_info::__do_dyncast): Likewise. 11750 (__si_class_type_info::__do_upcast): Likewise. 11751 (__vmi_class_type_info::__do_upcast): Likewise. 11752 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise. 11753 (__pbase_type_info::__pointer_catch): Likewise. 11754 (__pointer_type_info::__pointer_catch): Likewise. 11755 (__pointer_to_member_type_info::__pointer_catch): Likewise. 11756 117572000-08-04 Zack Weinberg <zack@wolery.cumb.org> 11758 11759 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist. 11760 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS. 11761 (cc1plus): Link with $(BACKEND) and $(C_OBJS). 11762 117632000-08-04 Mark Mitchell <mark@codesourcery.com> 11764 11765 * cp-tree.h (add_method): Change prototype. 11766 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P. 11767 Don't double the size of the method vector in the error case. 11768 (handle_using_decl): Adjust call to add_method. 11769 (add_implicitly_declared_members): Likewise. 11770 (clone_function_decl): Likewise. 11771 * decl2.c (check_classfn): Likewise. 11772 * semantics.c (finish_member_declaration): Likewise. 11773 117742000-08-04 Joseph S. Myers <jsm28@cam.ac.uk> 11775 11776 * decl.c (flag_isoc94): New variable. 11777 117782000-08-02 Jason Merrill <jason@redhat.com> 11779 11780 * pt.c (do_type_instantiation): Add complain parm; don't complain 11781 if called recursively. 11782 * cp-tree.h, parse.y: Adjust. 11783 117842000-08-02 Zack Weinberg <zack@wolery.cumb.org> 11785 11786 * decl2.c: Silently ignore -Wstrict-prototypes; warn about 11787 -Wno-strict-prototypes. 11788 11789 * g++spec.c: Adjust type of second argument to 11790 lang_specific_driver, and update code as necessary. 11791 11792 * cp-tree.h: Don't prototype min_precision here. 11793 (my_friendly_assert): Cast expression to void. 11794 * semantics.c (do_poplevel): Initialize scope_stmts. 11795 117962000-08-02 Mark Mitchell <mark@codesourcery.com> 11797 11798 * cp-tree.h (DECL_NEEDED_P): Tweak. 11799 118002000-07-28 Jason Merrill <jason@redhat.com> 11801 11802 * lang-specs.h: Use %i in rule for .ii files. 11803 118042000-07-31 Zack Weinberg <zack@wolery.cumb.org> 11805 11806 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. 11807 118082000-07-30 Mark Mitchell <mark@codesourcery.com> 11809 11810 Allow indirect primary bases. 11811 * cp-tree.h (struct lang_type): Remove vfield_parent. Add 11812 primary_base. 11813 (CLASSTYPE_VFIELD_PARENT): Remove. 11814 (CLASSTYPE_PRIMARY_BINFO): Reimplement. 11815 (BINFO_PRIMARY_BINFO): Remove. 11816 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. 11817 (BINFO_VBASE_PRIMARY_P): Likewise. 11818 (BINFO_PRIMARY_BASE_OF): New macro. 11819 (BINFO_INDIRECT_PRIMARY_P): Likewise. 11820 (get_primary_binfo): New function. 11821 * decl.c (lang_mark_tree): Make lang_type::primary_base. 11822 * class.c (vcall_offset_data_s): Rename to ... 11823 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, 11824 and add ctor_vtbl_p. 11825 (get_derived_offset): Use get_primary_binfo. 11826 (dfs_mark_primary_bases): Adjust handling of virtual primary 11827 bases. 11828 (mark_primary_bases): Likewise. 11829 (set_primary_base): Take a binfo, not an integer, as a 11830 representation of the primary base. 11831 (indirect_primary_base_p): Remove. 11832 (determine_primary_base): Adjust for indirect primary bases. 11833 (dfs_find_final_overrider): Fix typo in coment. 11834 (update_vtable_entry_for_fn): Use get_primary_binfo. 11835 (layout_nonempty_base_or_field): Tweak. 11836 (build_base_fields): Adjust for new primary base semantics. 11837 (dfs_propagate_binfo_offsets): Remove. 11838 (propagate_binfo_offsets): Rewrite. 11839 (dfs_set_offset_for_shared_vbases): Remove. 11840 (layout_virtual_bases): Don't use it. 11841 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new 11842 ABI. 11843 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not 11844 CLASSTYPE_VFIELD_PARENT. 11845 (dfs_get_primary_binfo): New function. 11846 (get_primary_binfo): Likewise. 11847 (dump_class_hierarchy_r): Tweak printing of primary bases. 11848 (build_vtbl_initializer): Fix typo in comments. Use 11849 vtbl_init_data. 11850 (build_vcall_and_vbase_vtbl_entries): Likewise. 11851 (build_vbaes_offset_vtbl_entries): Likewise. 11852 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of 11853 BV_VCALL_INDEX to handle indirect primary bases. 11854 (build_vcall_offset_vtbl_entries): Use vtbl_init_data. 11855 (build_rtti_vtbl_entries): Likewise. 11856 * search.c (get_shared_vbase_if_not_primary): Tweak. 11857 (find_vbase_instance): Likewise. 11858 (binfo_for_vtable): Simplify. 11859 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. 11860 (make_binfo): Make it have 11 entries. 11861 118622000-07-30 Alex Samuel <samuel@codesourcery.com> 11863 11864 * mangle.c (DECL_TEMPLATE_ID_P): Remove. 11865 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when 11866 ascertaining primaryness. 11867 (G): Remove template_args. 11868 (decl_is_template_id): New function. 11869 (write_encoding): Use decl_is_template_id. 11870 (write_name): Likewise. Handle type_decls. Get main variant of 11871 type decls. 11872 (write_nested_name): Likewise. 11873 (write_prefix): Likewise. 11874 (write_template_prefix): Likewise. 11875 (write_special_name_constructor): Remove defunct production from 11876 comment. 11877 (write_bare_function_type): Remove comment about absent parameter. 11878 (write_template_template_arg): Add missing grammar production to 11879 comment. 11880 118812000-07-27 Jason Merrill <jason@redhat.com> 11882 11883 * decl.c (duplicate_decls): If common_type produces a non-typedef 11884 type for a typedef, just use the old type. 11885 118862000-07-27 Mark Mitchell <mark@codesourcery.com> 11887 11888 * cp-tree.h (function_depth): Declare. 11889 (verify_stmt_tree): Likewise. 11890 (find_tree): Likewise. 11891 * decl.c (function_depth): Give it external linkage. 11892 * optimize.c (optimize_function): Increment and decrement it. 11893 * tree.c (verify_stmt_tree_r): New function. 11894 (verify_stmt_tree): Likewise. 11895 (find_tree_r): Likewise. 11896 (find_tree): Likewise. 11897 118982000-07-27 Jason Merrill <jason@redhat.com> 11899 11900 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use 11901 TYPE_PTRMEMFUNC_P. 11902 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC. 11903 119042000-07-26 Mark Mitchell <mark@codesourcery.com> 11905 11906 * decl.c (start_cleanup_fn): Mark the function as `inline'. 11907 * decl2.c (get_guard): Call cp_finish_decl, not 11908 rest_of_decl_compilation, for local guards. 11909 * lex.c (do_identifier): Remove unused variable. 11910 11911Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 11912 11913 * parse.y: Add missing ';'. 11914 119152000-07-26 Mark Mitchell <mark@codesourcery.com> 11916 11917 * parse.y (empty_parms): Use `()', not `(...)', when in the scope 11918 of `extern "C++"'. 11919 119202000-07-25 Nathan Sidwell <nathan@codesourcery.com> 11921 11922 Kill strict_prototype. Backwards compatibility only for 11923 non NO_IMPLICIT_EXTERN_C systems. 11924 * cp-tree.h (flag_strict_prototype): Remove. 11925 (strict_prototype): Remove. 11926 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 11927 * decl.c (maybe_push_to_top_level): Adjust. 11928 (pop_from_top_level): Adjust. 11929 (decls_match): Only allow sloppy parm matching for ancient 11930 system headers. 11931 (init_decl_processing): Adjust. 11932 (grokdeclarator): Adjust. 11933 * decl2.c (flag_strict_prototype): Remove. 11934 (strict_prototype): Remove. 11935 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 11936 (lang_f_options): Remove "strict-prototype". 11937 (unsupported-options): Add "strict-prototype". 11938 * lex.c (do_identifier): Adjust. 11939 (do_scoped_id): Adjust. 11940 * parse.y (empty_parms): Adjust. 11941 * class.c (push_lang_context): Adjust. 11942 (pop_lang_context): Adjust. 11943 * typeck.c (comp_target_parms): Adjust. 11944 119452000-07-25 Nathan Sidwell <nathan@codesourcery.com> 11946 11947 * decl.c (poplevel): Deal with anonymous variables at for scope. 11948 (maybe_inject_for_scope_var): Likewise. 11949 119502000-07-25 Zack Weinberg <zack@wolery.cumb.org> 11951 11952 * decl.c: Remove all signal handling code, now done in toplev.c. 11953 119542000-07-23 Mark Mitchell <mark@codesourcery.com> 11955 11956 * decl.c (make_rtl_for_nonlocal_decl): Rework. 11957 11958 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set 11959 correctly. 11960 119612000-07-20 Zack Weinberg <zack@wolery.cumb.org> 11962 11963 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__. 11964 Define my_friendly_assert and my_friendly_abort as macros 11965 which may call friendly_abort. Prototype friendly abort, not 11966 my_friendly_abort or my_friendly_assert. 11967 * decl.c (signal_catch): Report the signal caught in the error 11968 message. Call fatal directly. 11969 * typeck2.c (ack, my_friendly_assert): Delete. 11970 (my_friendly_abort): Rename to friendly_abort. Expect file, 11971 line, and function parameters. Report the abort code, then 11972 call fancy_abort. Do not mask an abort if errors have 11973 already occurred. 11974 119752000-07-18 Nathan Sidwell <nathan@codesourcery.com> 11976 11977 * typeck.c (comp_target_parms): Remove obsolete parameter. 11978 (comp_target_types): Adjust. 11979 119802000-07-17 Jason Merrill <jason@redhat.com> 11981 11982 * typeck.c (mark_addressable): Never set TREE_USED. 11983 * call.c (build_call): Don't abort on calls to library functions 11984 that have been declared normally. 11985 11986 * typeck.c (build_binary_op): Fix grammar in warning. 11987 11988 * exception.cc (__eh_free): Fix prototype. 11989 11990 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR. 11991 11992 * decl.c (pushdecl): Handle seeing an OVERLOAD in 11993 IDENTIFIER_NAMESPACE_VALUE. 11994 119952000-07-16 Mark Mitchell <mark@codesourcery.com> 11996 11997 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation. 11998 * method.c (use_thunk): Correct handling of vcall offsets. 11999 120002000-07-14 Zack Weinberg <zack@wolery.cumb.org> 12001 12002 * .cvsignore: parse.h and parse.c have no cp- prefix. 12003 120042000-07-13 Mark Mitchell <mark@codesourcery.com> 12005 12006 * .cvsignore: New file. 12007 120082000-07-13 Zack Weinberg <zack@wolery.cumb.org> 12009 12010 * lang-specs.h: Use the new named specs. Remove unnecessary braces. 12011 120122000-07-12 Mark Mitchell <mark@codesourcery.com> 12013 12014 * Makefile.in ($(PARSE_H)): Depend directly on parse.y. 12015 * parse.c: Remove. 12016 * parse.h: Likewise. 12017 120182000-07-11 Mark Mitchell <mark@codesourcery.com> 12019 12020 * class.c (layout_class_type): Add pointers to virtual bases after 12021 base classes under the old ABI. 12022 120232000-07-10 Benjamin Chelf <chelf@codesourcery.com> 12024 12025 * semantics.c (finish_for_stmt): Remove call to emit_line_note. 12026 (finish_continue_stmt): Likewise. 12027 (begin_for_stmt): Remove call to note_level_for_for. 12028 (finish_goto_stmt): Change call from build_min_nt 12029 to build_stmt. 12030 (finish_expr_stmt): Likewise. 12031 (begin_if_stmt): Likewise. 12032 (begin_while_stmt): Likewise. 12033 (finish_while_stmt): Likewise. 12034 (finish_return_stmt): Likewise. 12035 (begin_for_stmt): Likewise. 12036 (finish_for_stmt): Likewise. 12037 (finish_break_stmt): Likewise. 12038 (begin_switch_stmt): Likewise. 12039 (finish_case_label): Likewise. 12040 (genrtl_try_block): Likewise. 12041 (begin_try_block): Likewise. 12042 (begin_handler): Likewise. 12043 (begin_compound_stmt): Likewise. 12044 (finish_asm_stmt): Likewise. 12045 (finish_label_stmt): Likewise. 12046 (add_decl_stmt): Likewise. 12047 (finish_subobject): Likewise. 12048 (finish_decl_cleanup): Likewise. 12049 (finish_named_return_value): Likewise. 12050 (setup_vtbl_ptr): Likewise. 12051 (add_scope_stmt): Likewise. 12052 * decl.c (finish_constructor_body): Likewise. 12053 (finish_destructor_body): Likewise. 12054 * optimize.c (copy_body_r): Likewise. 12055 (initialize_inlined_parameters): Likewise. 12056 (declare_return_variable): Likewise. 12057 (expand_call_inline): Likewise. 12058 120592000-07-10 Jakub Jelinek <jakub@redhat.com> 12060 12061 * semantics.c (expand_body): Sync interface information 12062 at the end of function body expansion. 12063 120642000-07-09 Jason Merrill <jason@redhat.com> 12065 12066 * init.c (build_new_1): Bail early if the call to new fails. 12067 12068 * decl.c (compute_array_index_type): Check specifically for 12069 an INTEGER_CST, not just TREE_CONSTANT. 12070 12071 * decl.c (duplicate_decls): Don't call duplicate_decls on 12072 the DECL_TEMPLATE_RESULT. 12073 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different 12074 codes. 12075 12076 * error.c (dump_template_bindings): Don't crash if we had an 12077 invalid argument list. 12078 12079 * typeck.c (c_expand_start_case): Do narrowing here. 12080 * semantics.c (finish_switch_cond): Not here. 12081 120822000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com> 12083 12084 * parse.y (asm_clobbers): Do string concatenation. 12085 120862000-07-09 Mark Mitchell <mark@codesourcery.com> 12087 12088 * decl.c (pushtag): Don't put local classes in template functions 12089 on the local_classes list. 12090 120912000-07-04 Scott Snyder <snyder@fnal.gov> 12092 12093 * decl2.c (get_guard): Add missing return for old ABI local 12094 variable case. 12095 120962000-07-09 Mark Mitchell <mark@codesourcery.com> 12097 12098 * cp-tree.h (char_type_p): New function. 12099 * decl.c (init_decl_processing): Don't initialize 12100 signed_wchar_type_node or unsigned_wchar_type_node. 12101 (complete_array_type): Handle brace-enclosed string-constants. 12102 * rtti.c (emit_support_tinfos): Remove #if 0'd code. 12103 * tree.c (char_type_p): New function. 12104 * typeck2.c (digest_init): Use char_type_p. 12105 121062000-07-06 Nathan Sidwell <nathan@codesourcery.com> 12107 12108 * pt.c (tsubst): Don't layout type, if it's error_mark. 12109 121102000-07-06 Nathan Sidwell <nathan@codesourcery.com> 12111 12112 * pt.c (instantiate_pending_templates): Reset template level. 12113 121142000-07-05 Jason Merrill <jason@redhat.com> 12115 12116 * call.c (joust): Don't complain about `operator char *()' beating 12117 `operator const char *() const'. 12118 121192000-07-04 scott snyder <snyder@fnal.gov> 12120 Jason Merrill <jason@redhat.com> 12121 12122 * repo.c (repo_get_id): Handle the case where a class with virtual 12123 bases has a null TYPE_BINFO_VTABLE. 12124 121252000-07-04 Kevin Buhr <buhr@stat.wisc.edu> 12126 Jason Merrill <jason@redhat.com> 12127 12128 * parse.y (member_init): Just pass in the type. 12129 * init.c (expand_member_init): Handle getting a type. 12130 121312000-07-04 Martin v. L�wis <loewis@informatik.hu-berlin.de> 12132 Jason Merrill <jason@redhat.com> 12133 12134 * decl.c (finish_function): Warn if a function has no return 12135 statement. 12136 Suggested by Andrew Koenig. 12137 * typeck.c (check_return_expr): Do set current_function_returns_value 12138 if we got an error_mark_node. 12139 121402000-07-03 Nathan Sidwell <nathan@codesourcery.com> 12141 12142 * decl2.c (push_decl_namespace): Push the original namespace. 12143 121442000-07-03 Nathan Sidwell <nathan@codesourcery.com> 12145 12146 * pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES. 12147 * semantics.c (begin_class_definition): Clear it. 12148 121492000-07-02 Benjamin Chelf <chelf@codesourcery.com> 12150 12151 * cp-tree.h (genrtl_goto_stmt): Remove declaration. 12152 (genrtl_expr_stmt): Likewise. 12153 (genrtl_decl_stmt): Likewise. 12154 (genrtl_if_stmt): Likewise. 12155 (genrtl_while_stmt): Likewise. 12156 (genrtl_do_stmt): Likewise. 12157 (genrtl_return_stmt): Likewise. 12158 (genrtl_for_stmt): Likewise. 12159 (genrtl_break_stmt): Likewise. 12160 (genrtl_continue_stmt): Likewise. 12161 (genrtl_scope_stmt): Likewise. 12162 (genrtl_switch_stmt): Likewise. 12163 (genrtl_case_label): Likewise. 12164 (genrtl_begin_compound_stmt): Likewise. 12165 (genrtl_finish_compound_stmt): Likewise. 12166 (genrtl_compound_stmt): Likewise. 12167 (genrtl_asm_stmt): Likewise. 12168 12169 * init.c (begin_init_stmts): Remove call to 12170 genrtl_begin_compound_stmt. 12171 (finish_init_stmts): Remove call to genrtl_finish_compound_stmt. 12172 12173 * semantics.c (lang_expand_stmt): Changed call to 12174 genrtl_compound_stmt to ignore return value. 12175 121762000-07-02 Mark Mitchell <mark@codesourcery.com> 12177 12178 * mangle.c (canonicalize_for_substitution): Return the canonical 12179 variant of a type. 12180 12181 * decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a 12182 TYPE_DECL. 12183 * typeck.c (commonparms): Remove obstack manipulations. 12184 121852000-07-01 Benjamin Chelf <chelf@codesourcery.com> 12186 12187 * Make-lang.in (cc1plus$(exeext)): Added c-semantics.o. 12188 12189 * Makefile.in (OBJS): Added ../c-semantics.o. 12190 (OBJDEPS): Likewise. 12191 12192 * cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to 12193 ../c-common.h. 12194 (struct stmt_tree): Added comment. 12195 (current_function_name_declared): Removed. 12196 (stmts_are_full_exprs_p): Likewise. 12197 (genrtl_do_pushlevel): Likewise. 12198 (genrtl_clear_out_block): Likewise. 12199 (COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h. 12200 (DECL_ANON_UNION_ELEMS): Likewise. 12201 (emit_local_var): Likewise. 12202 (make_rtl_for_local_static): Likewise. 12203 (do_case): Likewise. 12204 (expand_stmt): Likewise. 12205 (genrtl_decl_cleanup): Likewise. 12206 (c_expand_asm_operands): Likewise. 12207 (c_expand_return): Likewise. 12208 (c_expand_start_case): Likewise. 12209 12210 * decl.c (make_rtl_for_local_static): Moved to c-semantics.c. 12211 (emit_local_var): Likewise. 12212 (initialize_local_var): Change reference to 12213 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 12214 Change reference to stmts_are_full_exprs_p to 12215 current_stmt_tree->stmts_are_full_exprs_p. 12216 (push_cp_function_context): Likewise. 12217 12218 * expect.c (expand_throw): Change reference to 12219 stmts_are_full_exprs_p. 12220 12221 * init.c (build_aggr_init): Change reference to 12222 stmts_are_full_exprs_p. 12223 (build_vec_init): Likewise. 12224 12225 * optimize.c (maybe_clone_body): Change reference to 12226 current_function_name_declared to 12227 cp_function_chain->name_declared. 12228 12229 * pt.c (instantiate_decl): Change reference to 12230 current_function_name_declared to 12231 cp_function_chain->name_declared. 12232 12233 * semantics.c (expand_cond): Moved declaration to c-common.h. 12234 (genrtl_do_pushlevel): Moved to c-semantics.c. 12235 (genrtl_clear_out_block): Likewise. 12236 (genrtl_goto_stmt): Likewise. 12237 (genrtl_expr_stmt): Likewise. 12238 (genrtl_decl_stmt): Likewise. 12239 (gerntl_if_stmt): Likewise. 12240 (genrtl_while_stmt): Likewise. 12241 (genrtl_do_stmt): Likewise. 12242 (genrtl_return_stmt): Likewise. 12243 (genrtl_for_stmt): Likewise. 12244 (genrtl_break_stmt): Likewise. 12245 (genrtl_continue_stmt): Likewise. 12246 (genrtl_scope_stmt): Likewise. 12247 (genrtl_switch_stmt): Likewise. 12248 (genrtl_case_label): Likewise. 12249 (genrtl_begin_compound_stmt): Likewise. 12250 (genrtl_finish_compound_stmt): Likewise. 12251 (genrtl_compound_stmt): Likewise. 12252 (genrtl_asm_stmt): Likewise. 12253 (genrtl_decl_cleanup): Likewise. 12254 (expand_cond): Likewise. 12255 (expand_stmt): Renamed to ... 12256 (lang_expand_stmt): ... this. 12257 (lang_expand_expr_stmt): Initialize. 12258 (set_current_function_name_declared): Likewise. 12259 (stmts_are_full_exprs_p): Likewise. 12260 (current_function_name_declared): Likewise. 12261 (anon_aggr_type_p): Likewise. 12262 (do_poplevel): Change reference to 12263 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 12264 Change reference to stmts_are_full_exprs_p to 12265 current_stmt_tree->stmts_are_full_exprs_p. 12266 (add_tree): Likewise. 12267 (finish_expr_stmt): Likewise. 12268 (prep_stmt): Likewise. 12269 (lang_expand_stmt): Likewise. 12270 (begin_compound_stmt): Change reference to 12271 current_function_name_declared to 12272 cp_function_chain->name_declared and call to 12273 current_function_name_declared(). 12274 (setup_vtbl_ptr): Likewise. 12275 (genrtl_do_poplevel): Removed. 12276 122772000-06-30 Jason Merrill <jason@redhat.com> 12278 12279 * init.c (init_init_processing): Go back to aligning like 12280 double_type_node for old ABI. 12281 (get_cookie_size): Make cookie larger if we get a type that needs 12282 more alignment. 12283 (build_vec_delete): Call it. 12284 12285 * typeck.c (qualify_type_recursive): New fn. 12286 (composite_pointer_type): Use it. 12287 (build_binary_op): Use composite_pointer_type. 12288 122892000-06-24 Carlos O'Ryan <coryan@cs.wustl.edu> 12290 Jason Merrill <jason@redhat.com> 12291 12292 * typeck.c (check_return_expr): Don't complain about returning 12293 NULL from operator new if -fcheck-new. 12294 * cp-tree.h: Declare flag_check_new here. 12295 * init.c: Not here. 12296 122972000-06-28 Alex Samuel <samuel@codesourcery.com> 12298 12299 * mangle.c (find_substitution): Use same_type_p. 12300 (write_encoding): Don't check for substitutions. 12301 123022000-06-30 Nathan Sidwell <nathan@codesourcery.com> 12303 12304 * parse.y (expr_no_comma_rangle): New non-terminal. 12305 (template_parm): Use it for default parameter case. 12306 (template_arg): Use it. 12307 (expr_no_commas): Remove commented out undefined extensions. 12308 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 12309 * parse.h, parse.c: Rebuilt. 12310 123112000-06-30 Mark Mitchell <mark@codesourcery.com> 12312 12313 * semantics.c (genrtl_asm_stmt): Don't decay input operands here. 12314 (finish_asm_stmt): Do it here, instead. 12315 12316 * cp-tree.h (ridpointers): Don't declare. 12317 * decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX. 12318 (record_builtin_java_type): Likewise. 12319 (init_decl_processing): Likewise. 12320 * lex.c: Move inclusion of lex.h. 12321 (ridpointers): Don't define. 12322 (init_parse): Initialize ripdointers. Use CP_RID_MAX instead of 12323 RID_MAX. 12324 * lex.h (enum rid): Rename to ... 12325 (enum cp_rid): ... this. 12326 (ridpointers): Don't declare. 12327 * parse.y: Move inclusion of lex.h. 12328 * parse.c: Regenerated. 12329 * spew.c: Move inclusion of lex.h. 12330 12331 * cp-tree.h (struct language_function): Remove temp_name_counter. 12332 (temp_name_counter): Remove. 12333 (get_temp_name): Change prototype. 12334 (get_guard): New function. 12335 (get_guard_cond): Likewise. 12336 (set_guard): Likewise. 12337 * cvt.c (build_up_reference): Adjust call to get_temp_name. 12338 * decl.c (expand_static_init): Use get_guard and friends to 12339 implement guard variables. 12340 * decl2.c (get_temp_name): Assume that the variables created are 12341 always static. 12342 (get_sentry): Rename to ... 12343 (get_guard): ... this. Implement new ABI guard variables. 12344 (get_guard_bits): New function. 12345 (get_guard_cond): Likewise. 12346 (set_guard): Likewise. 12347 (start_static_initialization_or_destruction): Use them. 12348 (do_static_initialization): Replace sentry with guard throughout. 12349 (do_static_destruction): Likewise. 12350 * init.c (create_temporary_var): Add comment. 12351 123522000-06-28 Alex Samuel <samuel@codesourcery.com> 12353 12354 * mangle.c (find_substitution): Use same_type_p. 12355 (write_encoding): Don't check for substitutions. 12356 123572000-06-30 Nathan Sidwell <nathan@codesourcery.com> 12358 12359 * parse.y (expr_no_comma_rangle): New non-terminal. 12360 (template_parm): Use it for default parameter case. 12361 (template_arg): Use it. 12362 (expr_no_commas): Remove commented out undefined extensions. 12363 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 12364 * parse.h, parse.c: Rebuilt. 12365 123662000-06-29 Mark Mitchell <mark@codesourcery.com> 12367 12368 * cp-tree.h (flag_const_strings): Remove. 12369 (warn_parentheses): Likewise. 12370 (warn_format): Likewise. 12371 (common_type): Likewise. 12372 (default_conversion): Likewise. 12373 (build_binary_op): Likewise. 12374 (cp_build_binary_op): New macro. 12375 * call.c (build_new_op): Use cp_build_binary_op instead of 12376 build_binary_op. 12377 * class.c (build_vtable_entry_ref): Likewise. 12378 * decl.c (expand_static_init): Likewise. 12379 (compute_array_index_type): Likewise. 12380 (build_enumerator): Likewise. 12381 * decl2.c (delete_sanity): Likewise. 12382 (start_static_initialization_or_destruction): Likewise. 12383 * error.c (dump_type_suffix): Likewise. 12384 * init.c (resolve_offset_ref): Likewise. 12385 (build_new): Likewise. 12386 (build_new_1): Likewise. 12387 (build_vec_delete_1): Likewise. 12388 (build_vec_init): Likewise. 12389 (build_delete): Likewise. 12390 * rtti.c (synthesize_tinfo_fn): Likewise. 12391 (synthesize_tinfo_var): Likewise. 12392 * search.c (expand_upcast_fixups): Likewise. 12393 (fixup_all_virtual_upcast_offsets): Likewise. 12394 * typeck.c (build_array_ref): Likewise. 12395 (get_member_function_from_ptrfunc): Likewise. 12396 (build_binary_op): Add parameter. 12397 (pointer_int_sum): Use cp_build_binary_op. 12398 (pointer_diff): Likewise. 12399 (build_modify_expr): Likewise. 12400 (get_delta_difference): Likewise. 12401 (build_ptrmemfunc): Likewise. 12402 124032000-06-29 Nathan Sidwell <nathan@codesourcery.com> 12404 12405 * cp-tree.h (SET_DECL_ARTIFICIAL): Remove. 12406 * decl.c (create_implicit_typedef): Adjust. 12407 * decl2.c (build_artificial_parm): Adjust. 12408 * method.c (implicitly_declare_fn): Adjust. 12409 * pt.c (push_inline_template_parms_recursive): Adjust. 12410 (process_template_parm): Adjust. 12411 (overloaded_template_name): Adjust. 12412 * semantics.c (finish_template_template_parm): Adjust. 12413 124142000-06-28 Mark Mitchell <mark@codesourcery.com> 12415 12416 * cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove. 12417 * class.c (update_vtable_entry_for_fn): Correct logic for deciding 12418 where to emit thunks. 12419 (build_vtt): Adjust call to build_vtt_inits. 12420 (build_vtt_inits): Add parameter to indicate whether or not 12421 sub-VTTs for virtual bases should be included. Adjust handling of 12422 construction vtables. 12423 (get_matching_base): New function. 12424 (dfs_build_vtt_inits): Rename to ... 12425 (dfs_build_secondary_vptr_vtt_inits): Adjust handling of 12426 construction vtables. 12427 (dfs_fixup_binfo_vtbls): Likewise. 12428 (build_ctor_vtbl_groups): Build construction vtables for virtual 12429 bases, too. 12430 (accumulate_vtbl_inits): Tweak logic for deciding whether or not 12431 to build construction vtbls. 12432 (dfs_accumulate_vtbl_inits): Adjust handling of 12433 construction vtables. 12434 12435 * pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified 12436 types correctly. 12437 124382000-06-27 Mark Mitchell <mark@codesourcery.com> 12439 12440 * decl.c (grokfndecl): Set DECL_CONTEXT for static functions too. 12441 124422000-06-26 Nathan Sidwell <nathan@codesourcery.com> 12443 12444 * search.c (hides): Remove. 12445 (is_subobject_of_p): Add most_derived parameter. Use 12446 CANONICAL_BINFO. 12447 (lookup_field_queue_p): Adjust. 12448 (lookup_field_r): Adjust. 12449 124502000-06-26 Nathan Sidwell <nathan@codesourcery.com> 12451 12452 * decl2.c (handle_class_head): Bash typedefs to the type's main 12453 decl. 12454 124552000-06-25 Mark Mitchell <mark@codesourcery.com> 12456 12457 * cp-tree.h (genrtl_begin_stmt_expr): Rename to ... 12458 (begin_global_stmt_expr): ... this. 12459 (genrtl_finish_stmt_expr): Rename to ... 12460 (finish_global_stmt_expr): ... this. 12461 * init.c (begin_init_stmts): Adjust calls. 12462 (finish_init_stmts): Likewise. 12463 * semantics.c (genrtl_begin_stmt_expr): Rename to ... 12464 (begin_global_stmt_expr): ... this. 12465 (genrtl_finish_stmt_expr): Rename to ... 12466 (finish_global_stmt_expr): ... this. 12467 124682000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 12469 12470 * search.c (lookup_member): Fix typo in comment. 12471 124722000-06-24 Jason Merrill <jason@redhat.com> 12473 12474 * decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace. 12475 (push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL. 12476 124772000-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 12478 12479 * parse.y (complex_direct_notype_declarator): Support global_scope. 12480 * Makefile.in: Adjust conflict count. 12481 124822000-06-23 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 12483 12484 * parse.y (template_arg): Convert TEMPLATE_DECL 12485 that is a template template parameter to 12486 TEMPLATE_TEMPLATE_PARM here. 12487 12488 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment. 12489 * cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro. 12490 (copy_template_template_parm): Adjust prototype. 12491 * decl.c (grokdeclarator): Remove dead code. 12492 * pt.c (process_template_parm): Tidy. 12493 (lookup_template_class): Construct nodes in 12494 copy_template_template_parm. 12495 (tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to 12496 lookup_template_class. Use TYPE_TI_TEMPLATE. 12497 * tree.c (copy_template_template_parm): Add NEWARGS 12498 parameter. 12499 (mapcar): Adjust call to copy_template_template_parm. 12500 * typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. 12501 * method.c (build_template_template_parm_names): Change error 12502 code to avoid compilation warning. 12503 12504 * gxxint.texi: Document template template parameter 12505 name mangling. 12506 125072000-06-21 Alex Samuel <samuel@codesourcery.com> 12508 12509 * Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o. 12510 (CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c. 12511 (cp-demangle.o): New rule. 12512 (dyn-string.o): Likewise. 12513 * inc/cxxabi.h (__cxa_demangle): New declaration. 12514 125152000-06-22 Mark Mitchell <mark@codesourcery.com> 12516 12517 * cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. 12518 (BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise. 12519 (lang_decl_flags): Add generate_with_vtable_p. Make vcall_offset 12520 a tree, not an int. 12521 (THUNK_GENERATE_WITH_VTABLE_P): New macro. 12522 (make_thunk): Change prototype. 12523 (emit_thunk): Rename to use_thunk. 12524 (mangle_thunk): Change prototype. 12525 * class.c (get_derived_offset): Simplify. 12526 (copy_virtuals): Clear BV_USE_VCALL_INDEX_P and 12527 BV_GENERATE_THUNK_WITH_VTABLE_P. 12528 (build_primary_vtable): Simplify. 12529 (add_virtual_function): Use BV_FN, rather than TREE_VALUE. 12530 (dfs_find_base): Remove. 12531 (update_vtable_entry_for_fn): Correct bug in finding the base 12532 where a virtual function was first declared. Figure out whether 12533 or not to emit a vcall-thunk with the vtables in which it appears. 12534 Correct logic for deciding whether to use an ordinary thunk, or a 12535 vcall thunk. 12536 (finish_struct_1): Remove unnecssary code. 12537 (build_vtbl_initializer): Use ssize_int for the running counter of 12538 negative indices. 12539 (build_vtbl_initializer): Only use vcall thunks where necessary. 12540 Mark thunks as needing to be emitted with their vtables, or not. 12541 (build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in 12542 indices. Use size_binop. 12543 (dfs_build_vcall_offset_vtbl_entries): Don't rely on 12544 BINFO_PRIMARY_MARKED_P here. Use BV_FN consistently. Use 12545 size_binop. 12546 (build_rtti_vtbl_entries): Adjust call to build_vtable_entry. 12547 (build_vtable_entry): Mark thunks as needing to be emitted with 12548 their vtables, or not. 12549 * decl.c (lang_mark_tree): Mark the vcall_offset in a thunk. 12550 * decl2.c (mark_vtable_entries): Use use_thunk instead of 12551 emit_thunk. 12552 * dump.c (dequeue_and_dump): Remove dead code. Dump new thunk 12553 information. 12554 * error.c (dump_expr): Use BV_FN. 12555 * mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree, 12556 not an int. 12557 * method.c (make_thunk): Likewise. 12558 (emit_thunk): Rename to use_thunk. Allow callers to decide 12559 whether or not to actually emit the thunk. Adjust for changes in 12560 representation of vcall offsets. 12561 * search.c (dfs_get_pure_virtuals): Use BV_FN. 12562 * semantics.c (emit_associated_thunks): New function. 12563 (expand_body): Use it. 12564 * ir.texi: Adjust decriptions of thunks. 12565 125662000-06-22 Jason Merrill <jason@redhat.com> 12567 12568 * pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE. 12569 (tsubst_friend_function): Copy it here. 12570 12571 * decl.c (grok_op_properties): Fix typo. 12572 12573 * decl2.c (delete_sanity): Clarify warning, avoid failure on 12574 deleting void*. 12575 12576 * pt.c (check_explicit_specialization): Clarify error. 12577 12578 * decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from 12579 an old OVERLOAD when we're declaring a non-function. 12580 (pushdecl, destroy_local_var): Check for error_mark_node. 12581 (warn_extern_redeclared_static): Also bail early if 12582 we're a CONST_DECL. 12583 (push_overloaded_decl): Ignore an old error_mark_node. 12584 125852000-06-22 Nathan Sidwell <nathan@codesourcery.com> 12586 12587 * call.c (build_x_va_arg): Check if in a template decl. 12588 * pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg. 12589 125902000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 12591 12592 * class.c (push_lang_context): TYPE_NAME gets you to the Java 12593 types DECLs. 12594 * decl.c (check_goto): Computed gotos assumed OK. 12595 125962000-06-20 Jason Merrill <jason@redhat.com> 12597 12598 * pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs 12599 for which we don't need to look for instantiations. 12600 126012000-06-21 Nathan Sidwell <nathan@codesourcery.com> 12602 12603 * parse.y (program): Always call finish_translation_unit. 12604 * parse.c, parse.h: Rebuilt. 12605 126062000-06-20 Zack Weinberg <zack@wolery.cumb.org> 12607 12608 * method.c: Don't include hard-reg-set.h. 12609 126102000-06-20 Nathan Sidwell <nathan@codesourcery.com> 12611 12612 * rtti.c (get_base_offset): Cope when vbase field is in a base. 12613 126142000-06-20 Nathan Sidwell <nathan@codesourcery.com> 12615 12616 * call.c (build_conditional_expr): Use VOID_TYPE_P. 12617 * cvt.c (cp_convert_to_pointer): Likewise. 12618 (convert_to_void): Likewise. 12619 * error.c (dump_expr): Likewise. 12620 * except.c (complete_ptr_ref_or_void_ptr_p): Likewise. 12621 * init.c (build_delete): Likewise. 12622 * method.c (emit_thunk): Likewise. 12623 * optmize.c (declare_return_variable): Likewise. 12624 * rtti.c (get_tinfo_decl_dynamic): Likewise. 12625 (get_typeid): Likewise. 12626 (build_dynamic_cast_1): Likewise. 12627 * typeck.c (composite_pointer_type): Likewise. 12628 (common_type): Likewise. 12629 (build_indirect_ref): Likewise. 12630 (build_binary_op): Likewise. 12631 (build_x_compound_expr): Likewise. 12632 (check_return_expr): Likewise. 12633 * typeck2.c (add_exception_specifier): Likewise. 12634 12635 * mangle.c (write_method_parms): Use direct comparison for end 12636 of parmlist. 12637 126382000-06-19 Benjamin Chelf <chelf@codesourcery.com> 12639 12640 * cp-tree.h (genrtl_try_block): Declare function. 12641 (genrtl_handler): Likewise. 12642 (genrtl_catch_block): Likewise. 12643 (genrtl_ctor_stmt): Likewise. 12644 (genrtl_subobject): Likewise. 12645 (genrtl_decl_cleanup): Likewise. 12646 (genrtl_do_poplevel): Likewise. 12647 (genrtl_do_pushlevel): Likewise. 12648 (genrtl_clear_out_block): Likewise. 12649 (genrtl_goto_stmt): Likewise. 12650 (genrtl_expr_stmt): Likewise. 12651 (genrtl_decl_stmt): Likewise. 12652 (genrtl_if_stmt): Likewise. 12653 (genrtl_while_stmt): Likewise. 12654 (genrtl_do_stmt): Likewise. 12655 (genrtl_return_stmt): Likewise. 12656 (genrtl_for_stmt): Likewise. 12657 (genrtl_break_stmt): Likewise. 12658 (genrtl_continue_stmt): Likewise. 12659 (genrtl_scope_stmt): Likewise. 12660 (genrtl_switch_stmt): Likewise. 12661 (genrtl_case_label): Likewise. 12662 (genrtl_begin_compound_stmt): Likewise. 12663 (genrtl_finish_compound_stmt): Likewise. 12664 (genrtl_compound_stmt): Likewise. 12665 (genrtl_asm_stmt): Likewise. 12666 (genrtl_named_return_value): Likewise. 12667 (genrtl_begin_stmt_expr): Likewise. 12668 (genrtl_finish_stmt_expr): Likewise. 12669 (finish_for_stmt): Removed first argument. 12670 (finish_switch_stmt): Likewise. 12671 12672 * semantics.c (genrtl_try_block): Define function. 12673 (genrtl_handler): Likewise. 12674 (genrtl_catch_block): Likewise. 12675 (genrtl_ctor_stmt): Likewise. 12676 (genrtl_subobject): Likewise. 12677 (genrtl_decl_cleanup): Likewise. 12678 (genrtl_do_poplevel): Likewise. 12679 (genrtl_do_pushlevel): Likewise. 12680 (genrtl_clear_out_block): Likewise. 12681 (genrtl_goto_stmt): Likewise. 12682 (genrtl_expr_stmt): Likewise. 12683 (genrtl_decl_stmt): Likewise. 12684 (genrtl_if_stmt): Likewise. 12685 (genrtl_while_stmt): Likewise. 12686 (genrtl_do_stmt): Likewise. 12687 (genrtl_return_stmt): Likewise. 12688 (genrtl_for_stmt): Likewise. 12689 (genrtl_break_stmt): Likewise. 12690 (genrtl_continue_stmt): Likewise. 12691 (genrtl_scope_stmt): Likewise. 12692 (genrtl_switch_stmt): Likewise. 12693 (genrtl_case_label): Likewise. 12694 (genrtl_begin_compound_stmt): Likewise. 12695 (genrtl_finish_compound_stmt): Likewise. 12696 (genrtl_compound_stmt): Likewise. 12697 (genrtl_asm_stmt): Likewise. 12698 (genrtl_named_return_value): Likewise. 12699 (genrtl_begin_stmt_expr): Likewise. 12700 (genrtl_finish_stmt_expr): Likewise. 12701 (finish_for_stmt): Removed first argument and generate rtl 12702 specific code. 12703 (finish_switch_stmt): Likewise. 12704 (do_poplevel): Removed generate rtl specific code. 12705 (do_pushlevel): Likewise. 12706 (add_tree): Likewise. 12707 (finish_goto_stmt): Likewise. 12708 (finish_expr_stmt): Likewise. 12709 (begin_if_stmt): Likewise. 12710 (finish_if_stmt_cond): Likewise. 12711 (finish_then_clause): Likewise. 12712 (begin_else_clause): Likewise. 12713 (finish_else_clause): Likewise. 12714 (finish_if_stmt): Likewise. 12715 (clear_out_block): Likewise. 12716 (begin_while_stmt): Likewise. 12717 (finish_while_stmt_cond): Likewise. 12718 (finish_while_stmt): Likewise. 12719 (begin_do_stmt): Likewise. 12720 (finish_do_body): Likewise. 12721 (finish_do_stmt): Likewise. 12722 (finish_return_stmt): Likewise. 12723 (begin_for_stmt): Likewise. 12724 (finish_for_init_stmt): Likewise. 12725 (finish_for_cond): Likewise. 12726 (finish_for_expr): Likewise. 12727 (finish_break_stmt): Likewise. 12728 (finish_continue_stmt): Likewise. 12729 (begin_switch_stmt): Likewise. 12730 (finish_switch_cond): Likewise. 12731 (finish_case_label): Likewise. 12732 (begin_try_block): Likewise. 12733 (begin_function_try_block): Likewise. 12734 (finish_try_block): Likewise. 12735 (finish_cleanup_try_block): Likewise. 12736 (finish_cleanup): Likewise. 12737 (finish_function_try_block): Likewise. 12738 (finish_handler_sequence): Likewise. 12739 (finish_function_handler_sequence): Likewise. 12740 (begin_handler): Likewise. 12741 (finish_handler_parms): Likewise. 12742 (begin_catch_block): Likewise. 12743 (finish_handler): Likewise. 12744 (begin_compound_stmt): Likewise. 12745 (finish_compound_stmt): Likewise. 12746 (finish_asm_stmt): Likewise. 12747 (finish_label_stmt): Likewise. 12748 (finish_label_decl): Likewise. 12749 (finish_subobject): Likewise. 12750 (finish_decl_cleanup): Likewise. 12751 (finish_named_return_value): Likewise. 12752 (begin_stmt_expr): Likewise. 12753 (finish_stmt_expr): Likewise. 12754 12755 * decl.c (initialize_local_var): Changed call to finish_expr_stmt 12756 to call genrtl_expr_stmt when appropriate. 12757 12758 * init.c (begin_init_stmts): Changed calls to begin_stmt_expr and 12759 begin_compound_expr to call genrtl_begin_stmt_expr and 12760 genrtl_begin_compound_expr when appropriate. 12761 (finish_init_stmts): Changed calls to finish_compound_expr and 12762 finish_stmt_expr to call genrtl_finish_compound_expr and 12763 genrtl_finish_stmt_expr when appropriate. 12764 (expand_default_init): Changed call to finish_expr_stmt to call 12765 genrtl_expr_stmt when appropriate. 12766 (build_vec_init): Likewise. 12767 12768 * parse.y (simple_stmt): Removed first argument from call to 12769 finish_for_stmt. Removed first argument from call to 12770 finish_switch_stmt. 12771 12772 * parse.c: Regenerated. 12773 12774 * pt.c (tsubst_expr): Removed first argument from call to 12775 finish_for_stmt. Removed first argument from call to 12776 finish_switch_stmt. 12777 127782000-06-16 Benjamin Chelf <chelf@codesourcery.com> 12779 12780 * cp-tree.h (enum cplus_tree_code): Changed __DUMMY to 12781 CP_DUMMY_TREE_CODE. Remove #include "c-common.def". 12782 12783 * lex.c (cplus_tree_code_type[]): Removed #include "c-common.def". 12784 (cplus_tree_code_length[]): Likewise. 12785 (cplus_tree_code_name[]): Likewise. 12786 (init_parse): Added call to add_c_tree_codes. Changed 12787 LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE. 12788 127892000-06-16 Mark Mitchell <mark@codesourcery.com> 12790 12791 * cp-tree.h (finish_mem_initializers): Declare. 12792 (count_trees): Likewise. 12793 * parse.y (base_init): Use finish_mem_initializers. 12794 * semantics.c (finish_mem_initializers): New function. 12795 12796 * tree.c (count_trees_r): Prototype. Use DATA parameter to store 12797 the number of trees. 12798 (n_trees): Remove. 12799 (count_trees): Don't use it. 12800 128012000-06-15 Jason Merrill <jason@redhat.com> 12802 12803 * tree.c (count_trees): New debugging function. 12804 12805 * typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P. 12806 * init.c (build_member_call): Pull out the name of a DECL. 12807 12808 * Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H. 12809 * semantics.c (expand_body): Push to TV_INTEGRATION here. 12810 * optimize.c (optimize_function): Not here. 12811 * pt.c (instantiate_decl): Push to TV_PARSE. 12812 128132000-06-15 Mark Mitchell <mark@codesourcery.com> 12814 12815 * cp-tree.h (struct language_function): Remove x_base_init_list 12816 and x_member_init_list. 12817 (current_base_init_list): Remove. 12818 (current_member_init_list): Likewise. 12819 (setup_vtbl_ptr): Change prototype. 12820 (emit_base_init): Likewise. 12821 (expand_member_init): Likewise. 12822 (reinit_parse_for_function): Remove. 12823 * decl.c (save_function_data): Don't clear x_base_init_list and 12824 x_member_init_list. 12825 (mark_language_function): Don't mark them. 12826 * init.c (perform_member_init): Tweak comment. 12827 (sort_member_init): Take the list of initializers as an argument. 12828 (sort_base_init): Likewise. 12829 (emit_base_init): Likewise. 12830 (expand_member_init): Return the initializer. Don't use global 12831 variables. 12832 * lex.c (reinit_parse_for_function): Remove. 12833 * method.c (build_template_parm_names): Correct substitution. 12834 (do_build_copy_constructor): Don't use current_member_init_list 12835 and current_base_init_list. 12836 (synthesize_method): Likewise. 12837 * parse.y (base_init): Split mem-initializers into 12838 base-initializers and field-initializers. 12839 (member_init_list): Build up the list here. 12840 (member_init): Return the initializer. 12841 (fn.depfn): Don't use reinit_parse_for_function. 12842 * parse.c: Regenerated. 12843 * pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the 12844 ERROR_MARK. 12845 (tsubst_expr): Don't use current_member_init_list 12846 and current_base_init_list. 12847 (tsubst_expr_values): Rename to ... 12848 (tsubst_initializer_list): ... this. Use convert_from_reference. 12849 * semantics.c (setup_vtbl_ptr): Don't use current_member_init_list 12850 and current_base_init_list. 12851 (begin_function_definition): Don't call reinit_parse_for_function. 12852 12853 * dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors. 12854 12855 * error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE 12856 correctly. 12857 12858 * cp-tree.h (DECL_PENDING_INLINE_P): Relax checking. 12859 128602000-06-14 Benjamin Chelf <chelf@codesourcery.com> 12861 12862 * cp-tree.h (IF_COND): Move to c-common.h. 12863 (THEN_CLAUSE): Likewise. 12864 (ELSE_CLAUSE): Likewise. 12865 (WHILE_COND): Likewise. 12866 (WHILE_BODY): Likewise. 12867 (DO_COND): Likewise. 12868 (DO_BODY): Likewise. 12869 (RETURN_EXPR): Likewise. 12870 (EXPR_STMT_EXPR): Likewise. 12871 (FOR_INIT_STMT): Likewise. 12872 (FOR_COND): Likewise. 12873 (FOR_EXPR): Likewise. 12874 (FOR_BODY): Likewise. 12875 (SWITCH_COND): Likewise. 12876 (SWITCH_BODY): Likewise. 12877 (CASE_LOW): Likewise. 12878 (CASE_HIGH): Likewise. 12879 (GOTO_DESTINATION): Likewise. 12880 (COMPOUND_BODY): Likewise. 12881 (ASM_CV_QUAL): Likewise. 12882 (ASM_STRING): Likewise. 12883 (ASM_OUTPUTS): Likewise. 12884 (ASM_INPUTS): Likewise. 12885 (ASM_CLOBBERS): Likewise. 12886 (DECL_STMT_DECL): Likewise. 12887 (STMT_EXPR_STMT): Likewise. 12888 (LABEL_STMT_LABEL): Likewise. 12889 (SCOPE_BEGIN_P): Likewise. 12890 (SCOPE_END_P): Likewise. 12891 (SCOPE_STMT_BLOCK): Likewise. 12892 (SCOPE_NULLIFIED_P): Likewise. 12893 (SCOPE_NO_CLEANUPS_P): Likewise. 12894 (SCOPE_PARTIAL_P): Likewise. 12895 (ASM_VOLATILE_P): Likewise. 12896 (STMT_LINENO): Likewise. 12897 (STMT_LINENO_FOR_FN_P): Likewise. 12898 12899 * cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR, 12900 ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, 12901 FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, 12902 CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, 12903 SCOPE_STMT, CASE_LABEL, STMT_EXPR. 12904 12905 * Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def. 12906 12907 * Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def. 12908 (cc1plus$(exeext)): Added $(srcdir)/c-common.def. 12909 12910 * lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'. 12911 (cplus_tree_code_length[]): Added '#include "c-common.def"'. 12912 (cplus_tree_code_name[]): Added '#include "c-common.def"'. 12913 129142000-06-14 Mark Mitchell <mark@codesourcery.com> 12915 12916 * cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro. 12917 * class.c (dfs_find_final_overrider): Set it appropriately. 12918 (dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to 12919 avoid unneeded secondary vptrs. 12920 129212000-06-13 Jakub Jelinek <jakub@redhat.com> 12922 12923 * class.c (build_secondary_vtable): Set DECL_USER_ALIGN. 12924 (check_bitfield_decl, check_field_decl): Likewise. 12925 (build_vtbl_or_vbase_field, build_base_field): Likewise. 12926 (layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN. 12927 * decl.c (record_unknown_type): Set TYPE_USER_ALIGN. 12928 (xfer_tag, finish_enum): Likewise. 12929 * decl2.c (finish_builtin_type): Likewise. 12930 * init.c (init_init_processing): Likewise. 12931 * pt.c (instantiate_class_template): Likewise. 12932 * rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN. 12933 * cp-tree.h (struct lang_type): Add user_align member. 12934 (CLASSTYPE_USER_ALIGN): Define. 12935 12936Tue Jun 13 15:48:03 2000 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 12937 12938 * Make-lang.in (c++.install-common): Install g++-cross in 12939 $(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as 12940 $(target_alias)-g++ and $(target_alias)-c++. 12941 129422000-06-12 Mark Mitchell <mark@codesourcery.com> 12943 12944 * class.c (vcall_offset_data_s): Add last_init and fns. 12945 (overrides): Rename to same_signature_p. 12946 (dfs_find_final_overrider): Adjust accordingly. 12947 (mark_overriders): Likewise. 12948 (warn_hidden): Likewise. 12949 (build_vtbl_initializer): Reorganize machinery for building things 12950 at negative offsets. 12951 (build_vcall_and_vbase_vtbl_entries): Likewise. 12952 (build_vbase_offset_vtbl_entries): Likewise. 12953 (dfs_build_vcall_offset_vtbl_entries): Correct order of vcall 12954 offset entries. Do not create two entries for functions with the 12955 same signature. 12956 (build_vcall_offset_vtbl_entries): Initialize vod->fns. 12957 (build_rtti_vtbl_entries): Reorganize machinery for building things 12958 at negative offsets. 12959 12960 * optimize.c (expand_call_inline): Don't recurse into the code 12961 used to initialize the parameters more than once. 12962 129632000-06-11 Mark Mitchell <mark@codesourcery.com> 12964 12965 * mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment. 12966 (is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here. 12967 (find_substitution): Only use the `Sa' substitution for 12968 std::allocator, not instantiations of it. 12969 (write_template_prefix): Move comment. Only use a TREE_LIST to 12970 represent substitutions for a member template. 12971 (write_array_type): Mangle array dimensions correctly. 12972 * optimize.c (maybe_clone_body): Copy more information from the 12973 cloned function. 12974 * pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE 12975 on the regenerated declaration. 12976 129772000-06-11 Chip Salzenberg <chip@valinux.com> 12978 Mark Mitchell <mark@codesourcery.com> 12979 12980 * class.c (build_vtable): Clarify comment. 12981 (build_ctor_vtbl_group): Pass the most derived type to 12982 build_vtable. 12983 129842000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12985 12986 * decl2.c (compare_options): Don't needlessly cast away const-ness. 12987 129882000-06-10 Mark Mitchell <mark@codesourcery.com> 12989 12990 * decl.c (add_binding): Handle duplicate declarations of external 12991 variables. 12992 129932000-06-09 Chip Salzenberg <chip@valinux.com> 12994 Mark Mitchell <mark@codesourcery.com> 12995 12996 * mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an 12997 argument. 12998 (write_signed_number): New macro. 12999 (write_unsigned_number): Likewise. 13000 (write_source_name): Use them. 13001 (write_number): Handle signed and unsigned values. 13002 (write_integer_cst): Use tree_int_cst_sgn, and use 13003 write_unsigned_number or write_signed_number as appropriate. 13004 (write_discriminator): Use write_unsigned_number or 13005 write_signed_number as appropriate. 13006 (write_template_arg_literal): Likewise. 13007 (write_array_type): Use tree_low_cst. 13008 (write_template_parm): Use write_unsigned_number or 13009 write_signed_number as appropriate. 13010 (write_substitution): Adjust call to write_number. 13011 (write_type): Get the TYPE_MAIN_VARIANT before mangling it. 13012 (write_expression): Handle non-type template arguments of 13013 reference type correctly. 13014 (mangle_thunk): Use write_signed_number. 13015 130162000-06-09 Chip Salzenberg <chip@valinux.com> 13017 13018 * mangle.c (find_substition): Don't mangle objects with typename 13019 substitutions (e.g. "cin" as "Si"). 13020 130212000-06-09 Zack Weinberg <zack@wolery.cumb.org> 13022 13023 * call.c (add_candidate): Use ggc_alloc_cleared. 13024 * decl.c (lookup_label): Likewise. 13025 * lex.c (retrofit_lang_decl): Likewise. 13026 130272000-06-09 Jason Merrill <jason@casey.soma.redhat.com> 13028 13029 * semantics.c (expand_body): Push to TV_EXPAND. 13030 * optimize.c (optimize_function): Push to TV_INTEGRATION. 13031 * decl.c (start_function): Always call announce_function. 13032 13033 * tinfo2.cc: Just declare abort. 13034 130352000-06-09 Gabriel Dos Reis <gdr@codesourcery.com> 13036 13037 * lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @' 13038 whenever @ is a symbolic name. 13039 130402000-06-08 Jakub Jelinek <jakub@redhat.com> 13041 13042 * method.c (make_thunk): Clear DECL_VTT_PARM in thunk. 13043 130442000-06-07 Mark Mitchell <mark@codesourcery.com> 13045 13046 * decl.c (pushdecl): Look up functions by DECL_NAME, not 13047 DECL_ASSEMBLER_NAME. 13048 130492000-06-06 Mark Mitchell <mark@codesourcery.com> 13050 13051 * decl2.c (c_language): Define. 13052 130532000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 13054 13055 * lex.c (lang_init_options): Tweak. 13056 13057 * decl2.c: Remove #inclusion of diagnostic.h 13058 (lang_decode_option): Move diagnostic formatting options to 13059 toplevel. 13060 13061 * lang-options.h: Remove documentation for diagnostic options. 13062 13063 * Makefile.in (lex.o): Depends upon diagnostic.h 13064 130652000-06-06 Mark Mitchell <mark@codesourcery.com> 13066 13067 * decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have 13068 the same DECL_RESULT, it's not a redefinition. 13069 * pt.c (tsubst_decl): Remove code to handle illegal 13070 specializations. 13071 130722000-06-06 Nathan Sidwell <nathan@codesourcery.com> 13073 13074 * exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c 13075 130762000-06-05 Jason Merrill <jason@casey.soma.redhat.com> 13077 13078 * search.c (maybe_suppress_debug_info): Don't check 13079 CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set. 13080 13081 * pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION 13082 here if extern_p. 13083 13084 Remember instantiation context in deferred instantiations. 13085 * cp-tree.h (struct tinst_level): Remove. 13086 (TINST_DECL, TINST_LINE, TINST_FILE): New macros. 13087 * pt.c (current_tinst_level): Now a tree. 13088 (print_template_context, push_tinst_level, pop_tinst_level, 13089 tinst_for_decl): Adjust. 13090 (reopen_tinst_level): New fn. 13091 (init_pt): Register current_tinst_level as a root. 13092 (add_pending_template): Put current_tinst_level in TREE_PURPOSE 13093 of the pending templates list. 13094 (instantiate_pending_templates): Adjust. Call reopen_tinst_level. 13095 * lex.c (extract_interface_info): Adjust. 13096 * decl2.c (warn_if_unknown_interface): Adjust. 13097 130982000-06-05 Mark Mitchell <mark@codesourcery.com> 13099 13100 * class.c (indirect_primary_base_p): New function. 13101 (determine_primary_base): Use it. 13102 131032000-06-05 Nathan Sidwell <nathan@codesourcery.com> 13104 13105 Update new-abi dynamic cast algorithm. 13106 * tinfo.cc (__class_type_info::__dyncast_result): Add 13107 whole_details. Adjust constructor. 13108 (__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags. 13109 Avoid unnecessary searching. 13110 (__dynamic_cast): Adjust for __dyncast_result::whole_details. 13111 13112Mon Jun 5 06:48:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 13113 13114 * decl.c (init_decl_processing): Don't call record_component_aliases. 13115 * tree.c (build_cplus_array_type_1): Likewise. 13116 131172000-06-04 Mark Mitchell <mark@codesourcery.com> 13118 13119 * ir.texi: Correct typo. 13120 * mangle.c (write_expression): Handle non-type template arguments 13121 with reference type. 13122 * method.c (build_overload_value): Likewise. 13123 * pt.c (convert_nontype_argument): Explicitly represent conversion 13124 to a reference with an ADDR_EXPR. 13125 (unify): Always unify arguments in left-to-right order. 13126 131272000-06-03 Alex Samuel <samuel@codesourcery.com> 13128 Mark Mitchell <mark@codesourcery.com> 13129 13130 * Make-lang.in (CXX_SRCS): Add mangle.c. 13131 * Makefile.in (CXX_OBJS): Add mangle.o. 13132 (mangle.o): New rule. 13133 13134 * class.c (local_classes): New variable. 13135 * class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI. 13136 (get_vtt_name): Use mangle_vtt_name for new ABI. 13137 (init_class_processing): Initialize local_classes. 13138 (build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI. 13139 * cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER. 13140 (std_identifier): New macro. 13141 (DECL_VOLATILE_MEMFUNC_P): New macro. 13142 (DECL_NAMESPACE_STD_P): Likewise. 13143 (local_classes): Declare. 13144 (get_mostly_instantiated_function_type): Declare. 13145 (init_mangle): Declare. 13146 (mangle_decl): Likewise. 13147 (mangle_type_string): Likewise. 13148 (mangle_type): Likewise. 13149 (mangle_typeinfo_for_type): Likewise. 13150 (mangle_typeinfo_string_for_type): Likewise. 13151 (mangle_vtbl_for_type): Likewise. 13152 (mangle_vtt_for_type): Likewise. 13153 (mangle_ctor_vtbl_for_type): Likewise. 13154 (mangle_thunk): Likewise. 13155 (mangle_conv_op_name_for_type): Likewise. 13156 (mangle_guard_variable): Likewise. 13157 * decl.c (pushtag): Keep track of local classes. 13158 (initialize_predefined_identifiers): Initialize std_identifier. 13159 (init_decl_processing): Use std_identifier. 13160 (start_decl): Don't treat instantiations as specializations. 13161 (grokdeclarator): Likewise. 13162 (grokvardecl): Call mangle_decl for new ABI. Only set mangled 13163 name for fully-instantiated templates. 13164 * decl2.c (grokclassfn): Use set_mangled_name_for_decl for 13165 destructors with the new ABI. 13166 (finish_static_data_member_decl): Use mangle_decl under the new ABI. 13167 (grokfield): Use mangle_type for new ABI. 13168 (grokoptypename): Use mangle_conv_op_for_type for new ABI. 13169 (get_sentry): Use mangle_guard_variable for new ABI. 13170 (start_static_initialization_or_destruction): Likewise. 13171 * expr.c (extract_aggr_init): Remove. 13172 (extract_scalar_init): Likewise. 13173 (extract_init): Remove #if 0'd code. 13174 * mangle.c: New function. 13175 * method.c (build_mangled_name): Assert not flag_new_abi. 13176 (build_static_name): Likewise. 13177 (build_decl_overload_real): Likewise. 13178 (build_typename_overload): Likewise. 13179 (build_overload_with_type): Likewise. 13180 (build_overload_name): Likewise. 13181 (get_ctor_vtbl_name): Likewise. 13182 (start_squangling): Likewise. 13183 (get_id_2): Likewise. 13184 (set_mangled_name_for_decl): Call mangle_decl for new ABI. 13185 (init_method): Call init_mangle for new ABI. 13186 (make_thunk): Call mangle_thunk for new ABI. 13187 * operators.def: Correct new ABI manglings for the `%' operator. 13188 Add `::' operator. 13189 * pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and 13190 DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL. 13191 (lookup_template_class): Call mangle_decl for new ABI. 13192 (get_mostly_instantiated_function_type): New function. 13193 (set_mangled_name_for_template_decl): Use it. 13194 (tsubst_decl): Use set_mangled_name_for_decl for destructors with 13195 the new ABI. Use mangle_conv_op_name_for_type for instantiated 13196 conversion op names. 13197 * rtti.c (tinfo_name): Call mangle_type_string for new ABI. 13198 (get_tinfo_decl): Call mangle_typeinfo_for_type for new ABI. 13199 (tinfo_base_init): Likewise. Mangle typeinfo string name with 13200 mangle_typeinfo_string_for_type. 13201 132022000-06-03 Mark Mitchell <mark@codesourcery.com> 13203 13204 * cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. 13205 (INNERMOST_TEMPLATE_ARGS): New macro. 13206 (innermost_args): Remove. 13207 (get_innermost_template_args): New function. 13208 * decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS. 13209 * error.c (dump_function_decl): Be caution when using 13210 most_general_template. 13211 * method.c (build_template_parm_names): Use 13212 INNERMOST_TEMPLATE_ARGS. 13213 * pt.c (add_to_template_args): Tidy comment 13214 (get_innermost_template_args): New function. 13215 (check_explicit_specialization): Clear DECL_INITIAL for a new 13216 specialization. 13217 (process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS. 13218 Tidy. 13219 (push_template_decl): Always register specializations of the most 13220 general template. 13221 (convert_template_argument): Use INNERMOST_TEMPLATE_ARGS. 13222 (coerce_template_parms): Likewise. 13223 (lookup_template_class): Likewise. 13224 (innermost_args): Remove. 13225 (tsubst_decl): Use INNERMOST_TEMPLATE_ARGS. 13226 (tsubst_decl): Handle tricky specializations. Use 13227 get_innermost_template_args. 13228 (instantiate_template): Simplify handling of partial 13229 instantiations. 13230 (get_class_bindings): Use INNERMOST_TEMPLATE_ARGS. 13231 (most_general_template): Reimplement, in a more straightforward 13232 manner. 13233 (regenerate_decl_from_template): Tweak formatting. Use 13234 TMPL_ARGS_DEPTH for clarity. 13235 (set_mangled_name_for_template_decl): Use INNERMOST_ARGS. 13236 13237 * dump.c (dequeue_and_dump): Dump information about thunks. 13238 132392000-06-01 Richard Henderson <rth@cygnus.com> 13240 13241 * decl.c (init_decl_processing): Set lang_get_alias_set first thing. 13242 132432000-06-01 Richard Henderson <rth@cygnus.com> 13244 13245 * decl2.c (unsupported_options): Fix typo, make const. 13246 (lang_decode_option): Fix bsearch argument order. 13247 132482000-06-01 Mark Mitchell <mark@codesourcery.com> 13249 13250 * init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE 13251 on FIELD_DECLs. 13252 13253Wed May 31 14:09:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 13254 13255 * cp-tree.h (c_get_alias_set): Deleted. 13256 * Makefile.in (decl.o): Include ../expr.h. 13257 * decl.c (expr.h): Include. 13258 (init_decl_processing): Call record_component_aliases for arrays. 13259 (grokdeclarator): Likewise. 13260 Set TREE_ADDRESSABLE for fields that aren't bitfields. 13261 * tree.c (build_cplus_array_type_1): Call record_component_aliases. 13262 132632000-05-31 Mark Mitchell <mark@codesourcery.com> 13264 13265 Remove guiding declaration support. 13266 * cp/cp-tree.h (flag_dump_translation_unit): Make it const. 13267 (flag_guiding_decls): Remove. 13268 * call.c (build_user_type_conversion_1): Remove support for 13269 guiding decls. 13270 (build_new_function_call): Likewise. 13271 (build_new_op): Likewise. 13272 (build_new_method_call): Likewise. 13273 * decl.c (start_function): Likewise. 13274 * friend.c (is_friend): Likewise. 13275 (do_friend): Likewise. 13276 * decl2.c ((flag_dump_translation_unit): Make it const. 13277 (flag_guiding_decls): Remove. 13278 (unsupported_options): New variable 13279 (compare_options): New function. 13280 (lang_decode_option): Use them. 13281 13282 * decl.c (build_cp_library_fn): Set DECL_CONTEXT. 13283 13284 * method.c (mangle_expression): Adjust test for legal expression 13285 operators. 13286 13287 * pt.c (instantiate_decl): Save and restore the local 13288 specializations list. 13289 132902000-05-30 Jason Merrill <jason@decepticon.cygnus.com> 13291 13292 * decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING. 13293 132942000-05-30 Mark Mitchell <mark@codesourcery.com> 13295 13296 * call.c (add_template_candidate_real): Handle member template 13297 constructors for classes with virtual bases. 13298 (build_user_type_conversion_1): Use in_charge_arg_for_name. 13299 (build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P. 13300 13301 * ir.texi: Update thunk documentation. 13302 13303 * call.c (joust): Fix handling of overloaded builtin operators. 13304 133052000-05-30 Zack Weinberg <zack@wolery.cumb.org> 13306 13307 * cp-tree.h (DECL_ANTICIPATED): New macro. 13308 Document new use of DECL_LANG_FLAG_7. 13309 * decl.c (builtin_function): Set DECL_ANTICIPATED on builtins 13310 in the user namespace. 13311 * lex.c (do_identifier): If the identifier's declaration has 13312 DECL_ANTICIPATED on, it has not yet been declared. But do not 13313 replace it with an ordinary implicit declaration. 13314 13315 * tinfo2.cc: Include stdlib.h. 13316 133172000-05-29 Mark Mitchell <mark@codesourcery.com> 13318 13319 * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. 13320 * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not 13321 CLASSTYPE_ALIGN. 13322 133232000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> 13324 13325 * decl2.c (lang_decode_option): Use skip_leading_substring instead 13326 of plain strncmp. 13327 133282000-05-28 Alexandre Oliva <aoliva@cygnus.com> 13329 13330 * operators.def (<?): Duplicated, should have been... 13331 (>?): this. Fixed. 13332 133332000-05-27 Alex Samuel <samuel@codesourcery.com> 13334 Mark Mitchell <mark@codesourcery.com> 13335 13336 * cp-tree.h (ansi_opname): Make it a macro. 13337 (ansi_assopname): Likewise. 13338 (struct lang_decl_flags): Add assignment_operator_p. 13339 (struct lang_decl): Add operator_code. 13340 (DECL_VTT_PARM): Adjust. 13341 (DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an 13342 overloaded operator. 13343 (SET_OVERLOADED_OPERATOR_CODE): New macro. 13344 (DECL_ASSIGNMENT_OPERATOR_P): New macro. 13345 (DECL_ARRAY_DELETE_OPERATOR_P): Adjust. 13346 (opname_tab): Remove. 13347 (assignop_tab): Likewise. 13348 (operator_name_info_t): New type. 13349 (operator_name_info): New variable. 13350 (assignment_operator_name_info): Likewise. 13351 (build_cp_library_fn): Remove declaration. 13352 (push_cp_library_fn): Likewise. 13353 (operator_name_string): Likewise. 13354 (build_decl_overload): Likewise. 13355 * call.c (print_z_candidates): Simplify. 13356 (build_object_call): Adjust usage of ansi_opname. Use 13357 DECL_OVERLOADED_OPERATOR_P. 13358 (op_error): Adjust operator name lookup. 13359 (build_conditional_expr): Adjust usage of ansi_opname. 13360 (build_new_op): Likewise. 13361 (build_op_delete_call): Likewise. 13362 (build_over_call): Likewise. 13363 (joust): Use DECL_OVERLOADED_OPERATOR_P. 13364 * decl.c (duplicate_decls): Copy operator_code. 13365 (init_decl_processing): Adjust parameters to push_cp_library_fn. 13366 (builtin_function): Adjust parameters to build_library_fn_1. 13367 (build_library_fn_1): Accept an overloaded operator code. 13368 (build_library_fn): Pass ERROR_MARK. 13369 (build_cp_library_fn): Accept an overloaded operator code. 13370 (push_cp_library_fn): Likewise. 13371 (grokfndecl): Tweak. 13372 (grokdeclarator): Simplify code to compute names of overloaded 13373 operators. Adjust use of ansi_opname. 13374 (ambi_op_p): Work on tree_codes, not identifiers. 13375 (unary_op_p): Likewise. 13376 (grok_op_properties): Likewise. 13377 (start_function): Use DECL_OVERLOADED_OPERATOR_P. 13378 (lang_mark_tree): Don't try to mark the operator_code. 13379 * decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P. 13380 * error.c (dump_decl): Remove special handling for operator 13381 names. 13382 (dump_function_name): Likewise. 13383 (dump_expr): Adjust name lookup of operators. 13384 (op_to_string): Simplify. 13385 (assop_to_string): Likewise. 13386 * init.c (build_new_1): Adjust use of ansi_opname. 13387 * lex.c (opname_tab): Remove. 13388 (assignop_tab): Likewise. 13389 (ansi_opname): Likewise. 13390 (ansi_assopname): Likewise. 13391 (operator_name_string): Likewise. 13392 (reinit_lang_specific): Likewise. 13393 (operator_name_info): New variable. 13394 (assignment_operator_name_info): Likewise. 13395 (init_operators): New function. 13396 (init_parse): Use it. 13397 (do_identifier): Adjust use of ansi_opname. 13398 * method.c (mangle_expression): Don't use ansi_opname for 13399 mangling. 13400 (build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P. 13401 (build_decl_overload): Remove. 13402 (build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly. 13403 (do_build_assign_ref): Adjust use of ansi_opname. 13404 (synthesize_method): Likewise. 13405 (implicitly_declare_fn): Likewise. 13406 * operators.def: New file. 13407 * parse.y (operator): Adjust use of ansi_opname. 13408 * pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P. 13409 (set_mangled_name_for_template_decl): Don't play games with 13410 current_namespace. 13411 (special_function_p): Adjust use of ansi_opname. 13412 * typeck.c (check_return_expr): Likewise. 13413 * Make-lang.in (cc1plus): Depend on operators.def. 13414 * Makefile.in (lex.o): Likewise. 13415 (decl.o): Likewise. 13416 134172000-05-27 Zack Weinberg <zack@wolery.cumb.org> 13418 13419 * Make-lang.in (cplib2.ready): Eradicate. 13420 13421Sat May 27 11:25:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 13422 13423 * method.c (mangle_expression): Use TREE_CODE_LENGTH. 13424 * tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. 13425 (built_min, cp_tree_equal): Likewise. 13426 134272000-05-26 Mark Mitchell <mark@codesourcery.com> 13428 13429 * class.c (layout_nonempty_base_or_field): Replace 13430 `record_layout_info' with `record_layout_info_s'. 13431 134322000-05-26 Jason Merrill <jason@casey.soma.redhat.com> 13433 13434 Fix goto checking. 13435 * cp-tree.h (struct language_function): x_named_labels is now 13436 a struct named_label_list*. 13437 * decl.c (struct named_label_use_list): Renamed from... 13438 (struct named_label_list): ...this. New struct. 13439 (push_binding_level): Don't set eh_region. 13440 (note_level_for_eh): New fn. 13441 (pop_label): Take label and old value directly. 13442 (pop_labels): Adjust for new named_labels format. 13443 (lookup_label): Likewise. 13444 (poplevel): Note characteristics of a binding level containing a 13445 named label. Mess with named label lists earlier. 13446 (mark_named_label_lists): New fn. 13447 (mark_lang_function): Call it. 13448 (use_label): New fn, split out from... 13449 (make_label_decl): ...here. Don't call it. 13450 (decl_jump_unsafe, check_previous_goto, check_previous_goto_1, 13451 check_previous_gotos): New fns, split out from... 13452 (define_label): ...here. 13453 (check_switch_goto): New fn. 13454 (define_case_label): Call it. 13455 (check_goto): New fn. 13456 * semantics.c (finish_goto_stmt): Call it and use_label. 13457 (begin_compound_stmt): If we're a try block, call note_level_for_eh. 13458 (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings. 13459 134602000-05-26 Mark Mitchell <mark@codesourcery.com> 13461 13462 * class.c (build_vtable_entry_ref): Correct usage of 13463 get_vtbl_decl_for_binfo. 13464 13465 * decl2.c (grokclassfn): Set DECL_LANGUAGE here. 13466 * method.c (implicitly_declare_fn): Not here. 13467 134682000-05-26 Nathan Sidwell <nathan@codesourcery.com> 13469 13470 * cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ... 13471 (CPTI_PTMD_DESC_TYPE): ... here. 13472 (ptmd_desc_type_node): Rename to ... 13473 (ptm_desc_type_node): ... here. 13474 * decl.c: Likewise. 13475 * rtti.c (ptmd_initializer): Rename to ... 13476 (ptm_initializer): ... here. 13477 (sythesize_tinfo_var): Adjust. Deal with pointer to member 13478 function. 13479 (create_tinfo_types): Adjust. 13480 134812000-05-25 Mark Mitchell <mark@codesourcery.com> 13482 13483 Finish implementation of VTTs. 13484 * cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and 13485 CPTI_VTT_PARM_IDENTIFIER. 13486 (vtt_parm_identifier): New macro. 13487 (vtt_parm_type): Likewise. 13488 (BINFO_SUBVTT_INDEX): Likewise. 13489 (BINFO_VPTR_INDEX): Likewise. 13490 (struct lang_decl): Add vtt_parm. 13491 (DECL_VTT_PARM): New macro. 13492 (DECL_USE_VTT_PARM): Likewise. 13493 (DECL_NEEDS_VTT_PARM_P): Likewise. 13494 (get_vtt_name): Declare. 13495 (build_artificial_parm): Likewise. 13496 (fixup_all_virtual_upcast_offsets): Likewise. 13497 (expand_indirect_vtbls_init): Remove. 13498 * call.c (build_new_method_call): Pass the vtt to subobject 13499 constructors and destructors. 13500 * class.c (get_vtt_name): Give it external linkage. 13501 (build_clone): Handle the magic VTT parameters for clones. 13502 (clone_function_decl): Fix typo in comment. 13503 (build_vtt): Keep track of the indices in the VTTs where various 13504 entities are stored. 13505 (build_vtt_inits): Likewise. 13506 (dfs_build_vtt_inits): Likewise. 13507 (build_ctor_vtbl_group): Tweak type of construction vtables. 13508 (dfs_accumulate_vtbl_inits): Build vtables for all bases, even 13509 primary bases, when building construction vtables. 13510 * decl.c (duplicate_decls): Handle DECL_VTT_PARM. 13511 (initialize_predefined_identifiers): Add vtt_parm_identifier. 13512 (init_decl_processing): Initialize vtt_parm_type. 13513 (grokfndecl): Use DECL_OVERLOADED_OPERATOR_P. 13514 (lang_mark_tree): Make vtt_parm. 13515 * decl2.c (build_artificial_parm): New function. 13516 (maybe_retrofit_in_chrg): Use it. Add VTT parameters. 13517 (grokclassfn): Use build_artificial_parm. 13518 * init.c (initialize_vtbl_ptrs): Call 13519 fixup_all_virtual_upcast_offsets directly. 13520 (perform_member_init): Use the complete subobject destructor for 13521 member cleanups. 13522 (build_vtbl_address): New function. 13523 (expand_virtual_init): Handle VTTs. 13524 * optimize (maybe_clone_body): Likewise. 13525 * search.c (fixup_all_virtual_upcast_offsets): Give it external 13526 linkage. 13527 (expand_indirect_vtbls_init): Remove. 13528 * semantics.c (setup_vtbl_ptr): Fix typos in comment. 13529 * tree.c (make_binfo): Make them bigger. 13530 135312000-05-25 Nathan Sidwell <nathan@codesourcery.com> 13532 13533 * inc/cxxabi.h (__pbase_type_info): Define, based on 13534 __pointer_type_info. 13535 (__pointer_type_info): Derive from __pbase_type_info. Adjust. 13536 (__pointer_to_member_type_info): Likewise. 13537 * tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement. 13538 (__pointer_to_member_type_info::__is_pointer_p): Remove. 13539 (__pointer_type_info::__do_catch): Rename to ... 13540 (__pbase_type_info::__do_catch): ... here. Adjust. 13541 (__pbase_type_info::__pointer_catch): Implement. 13542 (__pointer_type_info::__pointer_catch): Adjust. 13543 (__pointer_to_member_type_info::__pointer_catch): Adjust. 13544 135452000-05-25 Nathan Sidwell <nathan@codesourcery.com> 13546 13547 * tinfo.h (__user_type_info::contained_virtual_p): New 13548 predicate. 13549 * tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond 13550 shaped hierarchy. 13551 (__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to 13552 diamond shaped hierarchy. Add early out for mixed diamond and 13553 duplicate shaped hierarchy. 13554 135552000-05-24 Mark Mitchell <mark@codesourcery.com> 13556 13557 * cp-tree.h (build_delete): Change prototype. 13558 (build_vec_delete): Likewise. 13559 * call.c (build_scoped_method_call): Use special_function_kind 13560 values to indicate the kind of destruction to be done. 13561 (build_method_call): Likewise. 13562 * decl.c (finish_destructor_body): Likewise. 13563 (maybe_build_cleanup_1): Likewise. Rename to ... 13564 (maybe_build_cleanup): ... this. 13565 * decl2.c (delete_sanity): Use special_function_kind 13566 values to indicate the kind of destruction to be done. 13567 (build_cleanup): Likewise. 13568 * init.c (perform_member_init): Likewise. 13569 (build_vec_delete_1): Likewise. 13570 (build_dtor_call): Simplify. 13571 (build_delete): Use special_function_kind 13572 values to indicate the kind of destruction to be done. 13573 (build_vbase_delete): Likewise. 13574 (build_vec_delete): Likewise. 13575 13576 * init.c (sort_member_init): Fix typo in error message generation 13577 code. 13578 13579Mon May 15 11:46:29 2000 Donald Lindsay <dlindsay@cygnus.com> 13580 13581 * semantics.c (begin_class_definition): make the packed 13582 attribute be sensitive to the "-fpack-struct" command line flag 13583 135842000-05-24 Nathan Sidwell <nathan@codesourcery.com> 13585 13586 Update new-abi upcast algorithm. 13587 * inc/cxxabi.h (__class_type_info::__do_upcast): Change 13588 prototype and meaning of return value. 13589 (__si_class_type_info::__do_upcast): Likewise. 13590 (__vmi_class_type_info::__do_upcast): Likewise. 13591 * tinfo.cc (__class_type_info::__upcast_result): Replace 13592 whole2dst with part2dst. Adjust ctor. 13593 (__class_type_info::__do_upcast): Adjust call of worker function. 13594 (__class_type_info::__do_upcast): Adjust. 13595 (__si_class_type_info::__do_upcast): Adjust. Use parent's 13596 __do_upcast. 13597 (__vmi_class_type_info::__do_upcast): Likewise. Fix private 13598 virtual base in diamond hierarchy bug. 13599 136002000-05-23 Mark Mitchell <mark@codesourcery.com> 13601 13602 * cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable 13603 and bitfield to tinfo_fn_p. 13604 (DECL_TINFO_FN_P): Adjust. 13605 (SET_DECL_TINFO_FN_P): Likewise. 13606 (DECL_MUTABLE_P): Likewise. 13607 (DECL_C_BIT_FIELD): Likewise. 13608 (SET_DECL_C_BIT_FIELD): Likewise. 13609 (CLEAR_DECL_C_BIT_FIELD): Likewise. 13610 (DECL_UNINLINABLE): Likewise. 13611 * class.c (alter_access): Call retrofit_lang_decl if ncessary. 13612 (handle_using_decl): Remove assertion. 13613 (build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl, 13614 to build FIELD_DECLs. 13615 (build_base_field): Likewise. 13616 (layout_class_type): Likewise. 13617 * decl.c (init_decl_processing): Likewise. 13618 (build_ptrmemfunc_type): Likewise. 13619 (grokdeclarator): Likewise. 13620 * decl2.c (grok_x_components): Likewise. 13621 * except.c (call_eh_info): Likewise. 13622 * init.c (init_init_processing): Likewise. 13623 * rtti.c (expand_class_desc): Likewise. 13624 (create_pseudo_type_info): Likewise. 13625 (get_vmi_pseudo_type_info): Likewise. 13626 (create_tinfo_types): Likewise. 13627 * ptree.c (print_lang_decl): Adjust. 13628 * typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC 13629 before checking DECL_MUTABLE_P. 13630 13631 * decl2.c (maybe_retrofit_in_chrg): Don't create in-charge 13632 parameters for template functions. 13633 * pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for 13634 destructors as well as constructors. 13635 136362000-05-22 Mark Mitchell <mark@codesourcery.com> 13637 13638 * class.c (build_ctor_vtbl_group): Set inits. 13639 * optimize.c (maybe_clone_body): Set DECL_INLINE and 13640 DECL_THIS_INLINE appropriately for clones. 13641 13642 * cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. 13643 (DECL_CONV_FN_P): Simplify. 13644 (DECL_OPERATOR): Remove. 13645 (language_to_string): Declare. 13646 * decl.c (duplicate_decls): Fix typo in comment. 13647 (grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P. 13648 (grok_op_properties): Use DECL_CONV_FN_P instead of 13649 IDENTIFIER_TYPENAME_P. 13650 * dump.c (dequeue_and_dump): Dump the language linkage of 13651 declarations. 13652 * error.c (language_to_string): Give it external linkage. 13653 * method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P. 13654 (implicitly_declare_fn): Set DECL_LANGUAGE. 13655 * pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not 13656 IDENTIFIER_TYPENAME_P. 13657 (tsubst_decl): Likewise. 13658 (tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P. 13659 * semantics.c (finish_member_declaration): Don't mark members of 13660 classes declared in an extern "C" region as extern "C". 13661 136622000-05-22 Martin v. L�wis <loewis@informatik.hu-berlin.de> 13663 13664 * decl2.c (qualified_lookup_using_namespace): Look through 13665 namespace aliases. 13666 13667 * decl.c (push_using_decl): Return the old decl on namespace level. 13668 136692000-05-21 Mark Mitchell <mark@codesourcery.com> 13670 13671 * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks. 13672 (VTT_NAME_PREFIX): New macro. 13673 (CTOR_VTBL_NAME_PREFIX): Likewise. 13674 (get_ctor_vtbl_name): New function. 13675 * class.c (get_vtable_name): Simplify. 13676 (get_vtt_name): New function. 13677 (get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE. 13678 (dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list 13679 when a virtual base becomes primary. 13680 (finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier. Build 13681 VTTs. 13682 (finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in 13683 additional parameters. 13684 (dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED. 13685 (initialize_array): New function. 13686 (build_vtt): Likewise. 13687 (build_vtt_inits): Likewise. 13688 (dfs_build_vtt_inits): Likewise. 13689 (dfs_fixup_binfo_vtbls): Likewise. 13690 (build_ctor_vtbl_group): Likewise. 13691 (initialize_vtable): Use initialize_array. 13692 (accumulate_vtbl_inits): Reimplement to handle construction 13693 vtables. 13694 (dfs_accumulate_vtbl_inits): Likewise. 13695 (bulid_vtbl_initializer): Adjust parameter name. 13696 * method.c (build_typename_overload): Remove #if 0'd code. 13697 (get_ctor_vtbl_name): New function. 13698 * search.c (dfs_walk_real): Use BINFO_N_BASETYPES. 13699 (init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo. 13700 13701 * cp-tree.h (struct lang_type): Remove search_slot. 13702 (CLASSTYPE_SEARCH_SLOT): Remove. 13703 (emit_base_init): Change prototype. 13704 (initialize_vtbl_ptrs): Likewise. 13705 (expand_indirect_vtbls_init): Likewise. 13706 (clear_search_slots): Remove. 13707 * decl.c (lang_mark_tree): Don't mark search_slot. 13708 * init.c (initialize_vtbl_ptrs): Simplify. 13709 (emit_base_init): Likewise. 13710 * search.c (struct vbase_info): Document decl_ptr. 13711 (convert_pointer_to_single_level): Remove. 13712 (dfs_find_vbases): Remove. 13713 (dfs_init_base_pointers): Simplify. 13714 (dfs_clear_vbase_slots): Remove. 13715 (dfs_vtable_path_unmark): New function. 13716 (init_vbase_pointers): Simplify. 13717 (expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT. 13718 (expand_indirect_vtbls_init): Simplify. Don't call 13719 mark_all_temps_used. 13720 * semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and 13721 initialize_vtbl_ptrs. 13722 137232000-05-20 Zack Weinberg <zack@wolery.cumb.org> 13724 13725 * except.c: Add static prototypes. 13726 137272000-05-20 H.J. Lu <hjl@gnu.org> 13728 13729 * Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext). 13730 137312000-05-19 Mark Mitchell <mark@codesourcery.com> 13732 13733 Don't create a separate copy of virtual bases for the 13734 CLASSTYPE_VBASECLASSES list. 13735 * cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation. 13736 (BINFO_FOR_VBASE): Remove. 13737 (CANONICAL_BINFO): Adjust. 13738 (binfo_for_vbase): New function. 13739 * class.c (build_vbase_pointer_fields): Use binfo_for_vbase 13740 instead of BINFO_FOR_VBASE. 13741 (build_vbase_pointer): Likewise. 13742 (build_secondary_vtable): Likewise. 13743 (dfs_mark_primary_bases): Likewise. 13744 (mark_primary_bases): Likewise. 13745 (layout_nonempty_base_or_field): Likewise. 13746 (dfs_set_offset_for_shared_vbases): Likewise. 13747 (dfs_set_offset_for_unshared_vbases): Likewise. 13748 (layout_virtual_bases): Likewise. Adjust for changes to the 13749 CLASSTYPE_VBASECLASSES list. 13750 (dump_class_hierarchy_r): Use binfo_for_vbase 13751 instead of BINFO_FOR_VBASE. 13752 (dump_class_hierarchy): Likewise. 13753 (finish_vtbls): Likewise. 13754 (build_vtbl_initializer): Adjust for changes to the 13755 CLASSTYPE_VBASECLASSES list. 13756 (build_vbase_offset_vtbl_entries): Use binfo_for_vbase. 13757 * decl.c (finish_destructor_body): Adjust for changes to the 13758 CLASSTYPE_VBASECLASSES list. 13759 * init.c (sort_base_init): Use binfo_for_vbase. 13760 (construct_virtual_bases): Adjust for changes to the 13761 CLASSTYPE_VBASECLASSES list. 13762 (expand_member_init): Use binfo_for_vbase. 13763 (build_vbase_delete): Adjust for changes to the 13764 CLASSTYPE_VBASECLASSES list. 13765 * method.c (do_build_copy_constructor): Likewise. 13766 * rtti.c (get_base_offset): Use binfo_for_vbase. 13767 (expand_class_desc): Remove #if 0'd code. 13768 * search.c (struct vbase_info): Remove vbase_types. 13769 (get_base_distance): Use binfo_for_vbase. 13770 (lookup_field_queue_p): Use CANONICAL_BINFO. 13771 (get_shared_vbase_if_not_primary): Use binfo_for_vbase. 13772 (get_pure_virtuals): Adjust for changes to the 13773 CLASSTYPE_VBASECLASSES list. 13774 (dfs_find_vbases): Use binfo_for_vbase. 13775 (dfs_init_vbase_pointers): Likewise. 13776 (init_vbase_pointers): Don't initialize vi.vbase_types. 13777 (virtual_context): Use binfo_for_vbase. 13778 (fixup_all_virtual_upcast_offsets): Adjust for changes to the 13779 CLASSTYPE_VBASECLASSES list. 13780 (expand_indirect_vtbls_init): Simplify. 13781 (dfs_get_vbase_types): Don't replicate virtual bases. 13782 (find_vbase_instance): Use binfo_for_vbase. 13783 (binfo_for_vbase): New function. 13784 * typeck.c (get_delta_difference): Use binfo_for_vbase. 13785 137862000-05-17 Mark Mitchell <mark@codesourcery.com> 13787 13788 * decl2.c (finish_anon_union): Generalize error messages to handle 13789 anonymous structures. 13790 * init.c (perform_member_init): Remove `name' parameter. 13791 (build_field_list): New function. 13792 (sort_member_init): Handle anonymous union initialization order 13793 correctly. Check for multiple initializations of the same union. 13794 (emit_base_init): Don't look up fields by name here. 13795 (expand_member_init): Record the result of name lookup for future 13796 reference. 13797 * typeck.c (build_component_ref): Fix formatting. 13798 13799Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com> 13800 13801 * decl.c (pop_label): Replace warn_unused with warn_unused_label. 13802 * typeck.c (build_x_compound_expr): Replace warn_unused with 13803 warn_unused_value. 13804 13805 * decl2.c (lang_decode_option): Update -Wall unused flags by 13806 calling set_Wunused. 13807 138082000-05-16 Mark Mitchell <mark@codesourcery.com> 13809 13810 * cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation. 13811 * init.c (dfs_vtable_path_unmark): Remove. 13812 * search.c (marked_new_vtable_p): Likewise. 13813 (unmarked_new_vtable_p): Likewise. 13814 (dfs_search_slot_nonempty_p): Likewise. 13815 (dfs_mark): Likewise. 13816 (dfs_vtable_path_unmark): Likewise. 13817 (dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED. 13818 (dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED. 13819 (dfs_init_vbase_pointers): Remove special-case new ABI code. 13820 (dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED. 13821 (init_vbase_pointers): Simplify. 13822 (expand_indirect_vtbls_init): Likewise. 13823 13824 * class.c (copy_virtuals): New function. 13825 (build_primary_table): Use it. 13826 (build_secondary_vtable): Likewise. 13827 (modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to 13828 indicate that no vcall offset is required. 13829 (add_virtual_function): Likewise. 13830 (modify_all_vtables): Likewise. 13831 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 13832 (dfs_accumulate_vtbl_inits): Likewise. 13833 (build_vtbl_initializer): Make changes to handle construction 13834 vtables. 13835 (dfs_build_vcall_offset_vtbl_entries): Likewise. 13836 (build_rtti_vtbl_entries): Likewise. 13837 (build_vtable_entries): Handle a NULL vcall_index. 13838 138392000-05-15 Gabriel Dos Reis <gdr@codesourcery.com> 13840 13841 * decl2.c (lang_decode_option): Fix thinko. 13842 138432000-05-14 Jason Merrill <jason@casey.cygnus.com> 13844 13845 * except.c (check_handlers): New fn. 13846 * cp-tree.h: Declare it. 13847 * semantics.c (finish_handler_sequence): Call it. 13848 (finish_function_handler_sequence): Likewise. 13849 (finish_handler_parms): Set TREE_TYPE on the handler. 13850 * cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro. 13851 * search.c (get_base_distance_recursive): If protect>1, ignore 13852 special access. 13853 (get_base_distance): Don't reduce watch_access. 13854 138552000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> 13856 13857 * lex.c: #include diagnostic.h. 13858 (lang_init_options): Set default prefixing rules. 13859 13860 * lang-options.h: Add -fdiagnostics-show-location=. 13861 13862 * decl2.c: #include diagnostic.h. 13863 (lang_decode_option): Handle -fdiagnostics-show-location=. 13864 138652000-05-12 Nathan Sidwell <nathan@codesourcery.com> 13866 13867 * tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes. 13868 * vec.cc: Revert my 2000-05-07 change. 13869 138702000-05-11 Jason Merrill <jason@casey.cygnus.com> 13871 13872 * class.c (check_field_decls): Complain about non-static data 13873 members with same name as class in class with constructor. 13874 138752000-05-10 Jason Merrill <jason@casey.cygnus.com> 13876 13877 * decl.c (grokdeclarator): Allow non-static data members with 13878 same name as class. 13879 138802000-05-09 Zack Weinberg <zack@wolery.cumb.org> 13881 13882 * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, 13883 and pending_inline.filename. Update prototypes. 13884 * decl.c (define_label): Constify filename parameter. 13885 * decl2.c (warn_if_unknown_interface): Constify local char *. 13886 * input.c Constify input_source.filename. Don't declare 13887 input_filename or lineno. Constify filename parameter to feed_input. 13888 * lex.c (init_parse): Constify parameter and return value. 13889 (cp_pragma_interface, cp_pragma_implementation): Constify 13890 filename argument. 13891 (reinit_parse_for_method, reinit_parse_for_block, 13892 reinit_parse_for_expr, feed_defarg, handle_cp_pragma): 13893 Constify local char *. 13894 * pt.c: Don't declare lineno or input_filename. 13895 (print_template_context, tsubst_friend_function, tsubst_decl, 13896 tsubst, instantiate_decl): Constify local char *. 13897 * semantics.c (expand_body): Constify local char *. 13898 * tree.c (build_srcloc): Constify filename parameter. 13899 * typeck.c (c_expand_asm_operands): Constify filename 13900 parameter. 13901 139022000-05-08 Nathan Sidwell <nathan@codesourcery.com> 13903 13904 * tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix 13905 offsetof expansion. 13906 139072000-05-08 Branko Cibej <branko.cibej@hermes.si> 13908 13909 * inc/cxxabi.h: Fix typos in comment. 13910 (__base_class_info::__offset): Use a static_cast. 13911 139122000-05-07 Nathan Sidwell <nathan@codesourcery.com> 13913 13914 * inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place 13915 of std::size_t and std::ptrdiff_t respectively. 13916 * tinfo.cc: Likewise. 13917 * vec.cc: Likewise. 13918 139192000-05-06 Richard Henderson <rth@cygnus.com> 13920 13921 * typeck.c (build_c_cast): Don't warn integer->pointer size 13922 mismatch for constants. 13923 139242000-05-06 Nathan Sidwell <nathan@codesourcery.com> 13925 13926 * rtti.c (ptmd_initializer): Set non-public, if class is 13927 incomplete. 13928 13929 * inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++". 13930 (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 13931 __cxa_vec_delete): Likewise. 13932 * tinfo.cc (__dynamic_cast): Likewise. 13933 * vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 13934 __cxa_vec_delete): Likewise. 13935 139362000-05-04 Mark Mitchell <mark@codesourcery.com> 13937 13938 * cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove. 13939 (SET_FNADDR_FROM_VTABLE_ENTRY): Likewise. 13940 (lang_decl_flags): Add vcall_offset. 13941 (THUNK_VCALL_OFFSET): Use it. 13942 * decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk. 13943 * method.c (make_thunk): Create the lang_decl here, not in 13944 emit_thunk. 13945 (emit_thunk): Make generic thunks into ordinary functions once 13946 they have been fed to expand_body. 13947 * semantics.c (expand_body): Set current_function_is_thunk here. 13948 139492000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13950 13951 * class.c (update_vtable_entry_for_fn): Prototype. 13952 13953 * pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl' 13954 and `tmpl'. 13955 13956 * search.c (dfs_build_inheritance_graph_order): Prototype. 13957 139582000-05-04 Mark Mitchell <mark@codesourcery.com> 13959 13960 * cp-tree.h (special_function_kind): Add various kinds of 13961 destructors. 13962 (special_function_p): New function. 13963 * class.c (overrides): Don't let one kind of destructor override 13964 another. 13965 * decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding 13966 whether or not to instantiate a template. 13967 * tree.c (special_function_p): Define. 13968 139692000-05-03 Mark Mitchell <mark@codesourcery.com> 13970 13971 * cp-tree.def (THUNK_DECL): Remove. 13972 * cp-tree.h (DECL_THUNK_P): New macro. 13973 (DECL_NON_THUNK_FUNCTION_P): Likewise. 13974 (DECL_EXTERN_C_FUNCTION_P): Likewise. 13975 (SET_DECL_THUNK_P): Likewise. 13976 (DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P. 13977 (FNADDR_FROM_VTABLE_ENTRY): Likewise. 13978 (DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P. 13979 * decl.c (decls_match): Use DECL_EXTERN_C_P. 13980 (duplicate_decls): Likewise. 13981 (pushdecl): Likewise. Adjust thunk handling. 13982 (grokfndecl): Use DECL_EXTERN_C_P. 13983 * decl2.c (mark_vtable_entries): Use DECL_THUNK_P. 13984 * dump.c (dequeue_and_dump): Remove THUNK_DECL handling. 13985 * except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P. 13986 * expr.c (cplus_expand_expr): Remove THUNK_DECL handling. 13987 * method.c (make_thunk): Use SET_DECL_THUNK_P. Set 13988 DECL_NO_STATIC_CHAIN. 13989 (emit_thunk): Don't play games with TREE_CODE on thunks. Don't 13990 set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk. 13991 * search.c (covariant_return_p): Remove THUNK_DECL handling. 13992 * ir.texi: Update. 13993 139942000-05-01 Jason Merrill <jason@casey.cygnus.com> 13995 13996 * tree.c (walk_tree): Set lineno. 13997 139982000-05-01 Mark Mitchell <mark@codesourcery.com> 13999 14000 * exception.cc: Update license notice. 14001 * new.cc: Likewise. 14002 * new1.cc: Likewise. 14003 * new2.cc: Likewise. 14004 * tinfo.cc: Likewise. 14005 * tinfo2.cc: Likewise. 14006 * vec.cc: Likewise. 14007 * inc/cxxabi.h: Likewise. 14008 * inc/exception: Likewise. 14009 * inc/new: Likewise. 14010 * inc/new.h: Likewise. 14011 * inc/typeinfo: Likewise. 14012 140132000-05-01 Jason Merrill <jason@casey.cygnus.com> 14014 14015 * tree.c (build_target_expr_with_type): If we already have a 14016 TARGET_EXPR, just return it. 14017 14018 * optimize.c (initialize_inlined_parameters): Don't generate an 14019 EXPR_STMT if we can just use DECL_INITIAL. 14020 * decl.c (emit_local_var): Only make the initialization a 14021 full-expression if stmts_are_full_exprs_p. 14022 140232000-05-01 Mark Mitchell <mark@codesourcery.com> 14024 14025 * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New 14026 macro. 14027 * call.c (standard_conversion): Use it. 14028 (direct_reference_binding): Likewise. 14029 (build_over_call): Likewise. 14030 (is_properly_derived_from): Likewise. 14031 (compare_ics): Likewise. 14032 * class.c (resolves_to_fixed_type_p): Likewise. 14033 * optimize.c (declare_return_variable): Likewise. 14034 * pt.c (is_specialization_of): Likewise. 14035 (unify): Likewise. 14036 * typeck.c (comp_target_parms): Likeiwse. 14037 (build_static_cast): Likewise. 14038 (build_reinterpret_cast): Likewise. 14039 (build_const_cast): Likewise. 14040 (comp_ptr_ttypes_real): Likewise. 14041 (comp_ptr_ttypes_const): Likewise. 14042 * typeck2.c (process_init_constructor): Likewise. 14043 140442000-04-30 Scott Snyder <snyder@fnal.gov> 14045 14046 * decl.c (finish_destructor_body): Use the base destructor when 14047 destroying virtual bases. 14048 140492000-04-30 Mark Mitchell <mark@codesourcery.com> 14050 14051 * expr.c (cplus_expand_expr): Preserve temporaries when expanding 14052 STMT_EXPRs. 14053 * optimize.c (struct inline_data): Add target_exprs field. 14054 (declare_return_variable): When a function returns an aggregate, 14055 use the variable declared in the TARGET_EXPR as the remapped 14056 DECL_RESULT. 14057 (expand_call_inline): Update the pending target_exprs stack. 14058 (optimize_function): Initialize the stack. 14059 14060 * decl2.c (finish_file): Fix typo in comment. 14061 14062 * method.c (emit_thunk): Don't try to return a `void' value. 14063 14064 * optimize.c (initialize_inlined_parameters): If the parameter is 14065 addressable, we need to make a new VAR_DECL, even if the 14066 initializer is constant. 14067 140682000-04-28 Cosmin Truta <cosmint@cs.ubbcluj.ro> 14069 14070 * decl.c (grok_op_properties): Add an extra check of argtypes. 14071 140722000-04-27 Mark Mitchell <mark@codesourcery.com> 14073 14074 * optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying 14075 variables. 14076 (initialize_inlined_parameters): Try to avoid creating new 14077 VAR_DECLs. 14078 140792000-04-27 Alex Samuel <samuel@codesourcery.com> 14080 14081 * lex.c (my_get_run_time): Remove. 14082 (init_filename_times): Use get_run_time instead of my_get_run_time. 14083 (check_newline): Likewise. 14084 (dump_time_statistics): Likewise. 14085 * decl2.c (finish_file): Push and pop timevar TV_VARCONST instead 14086 of computing elapsed time explicitly. 14087 140882000-04-26 Mark Mitchell <mark@codesourcery.com> 14089 14090 * cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P. 14091 * init.c (decl_constant_value): Check TREE_READONLY_DECL_P. 14092 * call.c (convert_like_real): Don't test TREE_READONLY_DECL_P 14093 before calling decl_constant_value. 14094 * class.c (check_bitfield_decl): Likewise. 14095 * cvt.c (ocp_convert): Likewise. 14096 (convert): Likewise. 14097 * decl.c (compute_array_index_type): Likewise. 14098 (build_enumerator): Likewise. 14099 * decl2.c (check_cp_case_value): Likewise. 14100 * pt.c (convert_nontype_argument): Likewise. 14101 (tsubst): Likewise. 14102 * typeck.c (decay_conversion): Likewise. 14103 (build_compound_expr): Likewise. 14104 (build_reinterpret_cast): Likewise. 14105 (build_c_cast): Likewise. 14106 (convert_for_assignment): Likewise. 14107 141082000-04-26 Jason Merrill <jason@casey.cygnus.com> 14109 14110 * decl.c (finish_function): Don't play games with DECL_INLINE. 14111 141122000-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 14113 14114 * ir.texi: Correct typo. 14115 141162000-04-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 14117 14118 * decl.c (grokdeclarator): Reject VLAs as members. 14119 141202000-04-24 Gabriel Dos Reis <gdr@codesourcery.com> 14121 14122 * call.c (standard_conversion): Accept conversion between 14123 COMPLEX_TYPEs. 14124 14125 * cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE. 14126 141272000-04-24 Zack Weinberg <zack@wolery.cumb.org> 14128 14129 * decl2.c (finish_file): Remove double setup for accounting 14130 compile time. 14131 141322000-04-24 Robert Lipe <robertlipe@usa.net> 14133 14134 * cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD. 14135 141362000-04-23 Benjamin Kosnik <bkoz@cygnus.com> 14137 14138 * new.cc (set_new_handler): Needs to be in std::. 14139 141402000-04-23 Mark Mitchell <mark@codesourcery.com> 14141 14142 * cp-tree.h (lang_decl): Remove pretty_function_p. 14143 (DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the 14144 language-specific node. 14145 * decl.c (cp_make_fname_decl): Use build_decl, not 14146 build_lang_decl, to build the variables. 14147 (grokvardecl): Don't call build_lang_decl for local variables in 14148 templates. 14149 (grokdeclarator): Don't call build_lang_decl for local type 14150 declarations in templates. 14151 * lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated 14152 zero'd memory, rather than calling memset. 14153 * pt.c: Include hashtab.h. 14154 (local_specializations): New variable. 14155 (retrieve_local_specialization): Use it. 14156 (register_local_specialization): Likewise. 14157 (tsubst_decl): Don't assume local variables have 14158 DECL_LANG_SPECIFIC. 14159 (instantiate_decl): Set up local_specializations. 14160 * Makefile.in (HTAB_H): New variable. 14161 141622000-04-23 Richard Henderson <rth@cygnus.com> 14163 14164 * typeck.c (c_expand_asm_operands): Restore the original 14165 contents of the output list. 14166 141672000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> 14168 14169 * ir.texi: Document complex number representation. 14170 141712000-04-20 Nathan Sidwell <nathan@codesourcery.com> 14172 14173 * rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi. 14174 (target_incomplete_p): New function. 14175 (tinfo_base_init): Create comdat NTBS name variable. 14176 (ptr_initializer): Add non_public parameter. Calculate it. 14177 (ptmd_initializer): Likewise. 14178 (synthesize_tinfo_var): Adjust. Emit incomplete class tinfo. 14179 (create_real_tinfo_var): Add non_public parameter. Use it. 14180 Push proxy into global namespace. 14181 * inc/cxxabi.h (__pointer_type_info::incomplete_class_mask): 14182 New enumeration. 14183 * inc/typeinfo (type_info::before, type_info::operator==): 14184 Compare __name addresses. 14185 14186 * tinfo2.cc: Remove new-abi builtins comment. 14187 141882000-04-20 Jason Merrill <jason@casey.cygnus.com> 14189 14190 * typeck.c (build_x_function_call): Resolve an OFFSET_REF. 14191 14192 * call.c (joust): Exit early if we get the same function, too. 14193 14194 * decl2.c (key_method): Return NULL_TREE for template classes. 14195 (import_export_class): Don't need to check for template classes. 14196 141972000-04-18 Zack Weinberg <zack@wolery.cumb.org> 14198 14199 * lex.c: Remove references to cccp.c. 14200 142012000-04-18 Mark Mitchell <mark@codesourcery.com> 14202 14203 * cp-tree.h (lang_decl_flags): Remove const_memfunc and 14204 volatile_memfunc. Add destructor_attr. Adjust dummy. 14205 (DECL_DESTRUCTOR_P): Use destructor_attr. 14206 (DECL_CONST_MEMFUNC_P): Reimplement. 14207 (DECL_VOLATILE_MEMFUNC_P): Remove. 14208 * class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS. 14209 (overrides): Use DECL_DESTRUCTOR_P. 14210 (check_for_override): Likewise. 14211 * decl.c (start_function): Likewise. 14212 * decl2.c (grokfclassfn): Likewise. 14213 (check_classfn): Likewise. 14214 (grok_function_init): Likewise. 14215 142162000-04-17 Mark Mitchell <mark@codesourcery.com> 14217 14218 * decl2.c (grokfield): Issue error on illegal data member 14219 declaration. 14220 14221Mon Apr 17 17:11:16 2000 Mark P Mitchell <mark@codesourcery.com> 14222 14223 * method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL. 14224 142252000-04-16 Mark Mitchell <mark@codesourcery.com> 14226 14227 * class.c (build_vtable_entry): Don't build thunks for type-info 14228 functions. 14229 142302000-04-16 Jason Merrill <jason@casey.cygnus.com> 14231 14232 * decl.c (decls_match): Allow a redeclaration of a builtin to 14233 specify args while the builtin did not. 14234 142352000-04-15 Mark Mitchell <mark@codesourcery.com> 14236 14237 * cp-tree.def (THUNK_DECL): Add to documentation. 14238 * cp-tree.h (flag_huge_objects): Declare. 14239 * class.c (modify_vtable_entry): Tidy. 14240 (update_vtable_entry_for_fn): Split out from dfs_modify_vtables. 14241 Calculate delta appropriately for the new ABI. 14242 (dfs_modify_vtables): Use it. 14243 (modify_all_vtables): Fix thinko in code to add overriding copies 14244 of functions to primary vtables. 14245 (build_clone): Fix typo in comment. 14246 (clone_function_decl): Correct order of destructors in vtable. 14247 (build_vbase_offset_vtbl_entries): Adjust comment. 14248 (dfs_vcall_offset_queue_p): Remove. 14249 (dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX. 14250 (build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases. 14251 (build_vtable_entry): Correct check for pure virtual functions. 14252 Don't declare flag_huge_objects. 14253 * decl.c (flag_huge_objects): Remove declaration. 14254 * method.c (make_thunk): Tweak mangling for vcall offset thunks. 14255 Use int_size_in_bytes. 14256 (emit_thunk): Handle vcall offset thunks. 14257 14258Sat Apr 15 16:00:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14259 14260 * decl2.c (parse_time, varconst_time): Delete declarations. 14261 (finish_file): Delete LINENO declaration. 14262 START_TIME and THIS_TIME now long. 14263 142642000-04-13 Nathan Sidwell <nathan@codesourcery.com> 14265 14266 * class.c (build_base_field): Reformat comment. 14267 14268 * inc/cxxabi.h (stddef.h): Comment inclusion. 14269 (__base_class_info::__offset): Comment shift. 14270 142712000-04-12 Mark Mitchell <mark@codesourcery.com> 14272 14273 * cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro. 14274 (cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER. 14275 (cp_push_exception_identifier): New macro. 14276 (DECL_COMPLETE_DESTRUCTOR_P): New macro. 14277 (DECL_BASE_DESTRUCTOR_P): Likewise. 14278 (DECL_DELETING_DESTRUCTOR_P): Likewise. 14279 (get_vtbl_decl_for_binfo): Fix formatting. 14280 (in_charge_arg_for_name): New macro. 14281 (maybe_build_cleanup_and_delete): Remove declaration. 14282 * call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P. 14283 (in_charge_arg_for_name): New function. 14284 (build_new_method_call): Use it. Handle cloned destructors. 14285 (build_clone): Don't make the base constructor virtual. 14286 Automatically defer generated functions. 14287 (clone_function_decl): Handle destructors, too. 14288 (clone_constructors_and_destructors): Likewise. 14289 (create_vtable_ptr): Don't create a vtable entry for a cloned 14290 function. 14291 * decl.c (predefined_identifier): Add ctor_or_dtor_p. 14292 (initialize_predefined_identifiers): Update appropriately. 14293 (finish_destructor_body): Simplify. 14294 (maybe_build_cleanup_and_delete): Remove. 14295 * except.c (expand_throw): Handle new-ABI destructors. 14296 * init.c (expand_cleanup_for_base): Use base_dtor_identifier. 14297 (build_dtor_call): New function. 14298 (build_delete): Use it. Simplify. 14299 * optimize.c (maybe_clone_body): Handle destructors. 14300 * search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P. 14301 14302 * exception.cc (cleanup_fn): New typedef. 14303 (CALL_CLEANUP): New macro. 14304 (cp_eh_info): Use them. 14305 (__cp_push_exception): Likewise. 14306 (__cp_pop_exception): Likewise. 14307 143082000-04-11 Mark Mitchell <mark@codesourcery.com> 14309 14310 * cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER. 14311 (complete_dtor_identifier): New macro. 14312 (CLASSTYPE_FIRST_CONVERSION): Remove. 14313 (CLASSTYPE_CONSTRUCTOR_SLOT): New macro. 14314 (CLASSTYPE_DESTRUCTOR_SLOT): Likewise. 14315 (CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise. 14316 (CLASSTYPE_CONSTRUCTORS): Likewise. 14317 (CLASSTYPE_DESTRUCTORS): Likewise. 14318 (lang_decl): Add cloned_function. 14319 (DECL_COMPLETE_CONSTRUCTOR_P): New macro. 14320 (DECL_BASE_CONSTRUCTOR_P): Likewise. 14321 (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise. 14322 (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise. 14323 (DECL_CLONED_FUNCTION_P): Likewise. 14324 (DECL_CLONED_FUNCTION): Likewise. 14325 (clone_function_decl): Declare. 14326 (maybe_clone_body): Likewise. 14327 * call.c (build_user_type_conversion_1): Call complete object 14328 constructors in the new ABI. 14329 (build_new_method_call): Don't add in-charge parameters under the 14330 new ABI. 14331 * class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, 14332 DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and 14333 CLASSTYPE_DESTRUCTOR_SLOT. 14334 (build_clone): New function. 14335 (clone_function_decl): Likewise. 14336 (clone_constructors_and_destructors): Likewise. 14337 (check_bases_and_members): Use it. 14338 * decl.c (iniitialize_predefined_identifiers): Initialize 14339 complete_dtor_identifier. 14340 (finish_function): Don't add extra code to a clone. 14341 (lang_mark_tree): Mark cloned_function. 14342 * decl2.c (mark_used): Don't bother trying to instantiate things 14343 we synthesized. 14344 * dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice. 14345 * method.c (set_mangled_name_for_decl): Don't treat clones as 14346 constructors. 14347 (synthesize_method): Sythesize cloned functions, not the clones. 14348 * optimize.c (inline_data): Update comment on ret_label. 14349 (remap_block): Don't assume DECL_INITIAL exists. 14350 (copy_body_r): Allow ret_label to be NULL. 14351 (maybe_clone_body): Define. 14352 * pt.c (tsubst_decl): Handle clones. 14353 (instantiate_clone): New function. 14354 (instantiate_template): Use it. 14355 (set_mangled_name_for_template_decl): Don't treat clones as 14356 constructors. 14357 * search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT, 14358 CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT. 14359 * semantics.c (expand_body): Clone function bodies as necessary. 14360 14361 * optimize.c (remap_decl): Avoid sharing structure for arrays 14362 whose size is only known at run-time. 14363 * tree.c (copy_tree_r): Don't copy PARM_DECLs. 14364 14365 * cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr 14366 to has_in_charge_parm_p. 14367 (DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ... 14368 (DECL_HAS_IN_CHARGE_PARM_P): ... this. 14369 (DECL_COPY_CONSTRUCTOR_P): New macro. 14370 * call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P. 14371 (build_user_type_conversion_1): Likewise. 14372 (convert_like_real): Likewise. 14373 (build_over_call): Likeiwse. Use DECL_COPY_CONSTRUCTOR_P. 14374 * decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P. 14375 (copy_args_p): Likewise. 14376 (grok_ctor_properties): Likewise. 14377 (start_function): Likewise. 14378 * decl2.c (maybe_retrofit_in_charge): Likewise. Set it. 14379 * error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P. 14380 * init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P. 14381 * method.c (do_build_copy_constructor): Use 14382 DECL_HAS_IN_CHARGE_PARM_P. 14383 (synthesize_method): Likewise. 14384 * pt.c (instantiate_template): Remove goto. 14385 * tree.c (build_cplus_method_type): Remove mention of obstacks in 14386 comment. 14387 14388 * cp-tre.h (finish_function): Change prototype. 14389 * decl.c (end_cleanup_fn): Adjust caller. 14390 (finish_function): Take only one parameter. 14391 * decl2.c (finish_objects): Adjust caller. 14392 (finish_static_storage_duration_function): Likewise. 14393 * method.c (emit_thunk): Likewise. 14394 * parse.y: Likewise. 14395 * parse.c: Regenerated. 14396 * pt.c (instantiate_decl): Likewise. 14397 * rtti.c (synthesize_tinfo_fn): Likewise. 14398 * semantics.c (expand_body): Likewise. 14399 14400 * cp-tree.h (copy_decl): New function. 14401 * class.c (finish_struct_1): Use it. 14402 * lex.c (copy_decl): Define it. 14403 * pt.c (tsubst_decl): Likewise. 14404 * tree.c (copy_template_template_parm): Likewise. 14405 14406 * cp-tree.h (lang_type): Remove has_nonpublic_ctor and 14407 has_nonpublic_assign_ref. 14408 (TYPE_HAS_NONPUBLIC_CTOR): Don't declare. 14409 (TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise. 14410 * class.c (finish_struct_methods): Don't set 14411 TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF. 14412 (interface_only): Don't declare. 14413 (interface_unknown): Likewise. 14414 144152000-04-11 Martin v. L�wis <loewis@informatik.hu-berlin.de> 14416 14417 * tree.h (HAVE_TEMPLATES): Remove definition. 14418 * lang-options.h (-fthis-is-variable): Remove documentation. 14419 144202000-04-10 Jason Merrill <jason@casey.cygnus.com> 14421 14422 * class.c (instantiate_type): Handle object-relative template-id. 14423 14424 * semantics.c (finish_expr_stmt): Call convert_to_void here. 14425 * decl.c (cplus_expand_expr_stmt): Not here. 14426 14427 * rtti.c (build_dynamic_cast_1): Call non_lvalue. 14428 Initialize exprtype earlier. 14429 14430 * parse.y (fn.def1): Check for defining types in return types. 14431 14432 * decl.c (check_tag_decl): Notice extra fundamental types. 14433 Diagnose empty decls in classes, too. 14434 14435 * decl.c (grokdeclarator): Don't override an anonymous name if no 14436 declarator was given. 14437 14438 * cvt.c (convert_to_void): Call resolve_offset_ref. 14439 14440 * typeck.c (build_x_function_call): Abort if we get an OFFSET_REF. 14441 14442 * decl2.c (decl_namespace): Handle getting a type. 14443 14444 * typeck.c (build_c_cast): Re-enable warning for cast between 14445 pointer and integer of different size. 14446 144472000-04-10 Nathan Sidwell <nathan@codesourcery.com> 14448 14449 * inc/cxxabi.h (__pointer_type_info): Add restrict and 14450 incomplete flags. 14451 (__pointer_type_info::__pointer_catch): New virtual function. 14452 (__pointer_to_member_type_info): Derive from 14453 __pointer_type_info. Adjust. 14454 (__pointer_to_member_type_info::__do_catch): Remove. 14455 (__pointer_to_member_type_info::__is_pointer_p): Declare. 14456 (__pointer_to_member_type_info::__pointer_catch): Declare. 14457 * rtti.c (qualifier_flags): Add restrict flag. 14458 (ptmd_initializer): Reorder members. 14459 (create_tinfo_types): Expand comments. Reorder 14460 ptmd_desc_type_node members. 14461 * tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p): 14462 Implement. 14463 (__pointer_type_info::__do_catch): Move specific code into 14464 __pointer_catch. Call it. 14465 (__pointer_type_info::__pointer_catch): Non-pointer-to-member 14466 specific catch checking. Fix void conversion check. 14467 (__pointer_to_member_type_info::__do_catch): Remove. 14468 (__pointer_to_member_type_info::__pointer_catch): Implement. 14469 144702000-04-10 Martin v. L�wis <loewis@informatik.hu-berlin.de> 14471 14472 * lex.c (init_parse): Remove traces of classof and headof. 14473 * decl2.c (flag_operator_names): Default to 1. 14474 (lang_decode_option): Do not set it for -ansi. 14475 144762000-04-09 Mark Mitchell <mark@codesourcery.com> 14477 14478 * cp-tree.h (struct lang_decl): Remove main_decl_variant. 14479 (DECL_MAIN_VARIANT): Remove. 14480 * decl.c (duplicate_decls): Don't set it. 14481 (start_function): Likewise. 14482 (lang_mark_tree): Don't mark it. 14483 * decl2.c (defer_fn): Don't use it. 14484 * lex.c (retrofit_lang_decl): Don't set it. 14485 * pt.c (tsubst_decl): Likewise. 14486 * ptree.c (print_lang_decl): Don't print it. 14487 * typeck.c (mark_addressable): Don't use it. 14488 144892000-04-09 Nathan Sidwell <nathan@codesourcery.com> 14490 14491 * vec.cc: Include <new> and <exception>. 14492 (__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup. 14493 (__cxa_vec_dtor): Catch dtor exceptions, and rethrow or 14494 terminate. 14495 (__cxa_vec_delete): Catch dtor exceptions. 14496 144972000-04-09 Nathan Sidwell <nathan@codesourcery.com> 14498 14499 Prepend __ to implementation defined names. 14500 * inc/typeinfo (type_info): Rename _name to __name. 14501 (type_info::type_info): Rename parameter. 14502 (type_info::operator==, type_info::operator!=, 14503 type_info::before): Likewise. 14504 (type_info::is_pointer_p, type_info::is_function_p, 14505 type_info::do_catch, type_info::do_upcast): Prepend __. Rename 14506 parameters. 14507 * inc/cxxabi.h 14508 (__fundamental_type_info::__fundamental_type_info) Rename parameters. 14509 (__pointer_type_info::__pointer_type_info): Likewise. 14510 (__pointer_type_info::is_pointer_p, 14511 __pointer_type_info::do_catch): Prepend __. Rename parameters. 14512 (__array_type_info::__array_type_info): Rename parameters. 14513 (__function_type_info::__function_type_info): Likewise. 14514 (__function_type_info::is_function_p): Prepend __. 14515 (__enum_type_info::__enum_type_info): Rename parameters. 14516 (__pointer_to_member_type_info::__pointer_to_member_type_info): 14517 Likewise. 14518 (__pointer_to_member_type_info::do_catch): Prepend __. Rename 14519 parameters. 14520 (__base_class_info::is_virtual_p, is_public_p, offset): Prepend __. 14521 (__class_type_info::__class_type_info): Rename parameters. 14522 (__class_type_info::sub_kind): Prepend __. Adjust member names. 14523 (__class_type_info::upcast_result, 14524 __class_type_info::dyncast_result): Prepend __. Move definition 14525 into tinfo.cc. 14526 (__class_type_info::do_upcast, __class_type_info::do_catch, 14527 __class_type_info::find_public_src, 14528 __class_type_info::do_dyncast, 14529 __class_type_info::do_find_public_src): Prepend __. Rename 14530 parameters. 14531 (__si_class_type_info::__si_class_type_info): Rename parameters. 14532 (__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast, 14533 __si_class_type_info::do_find_public_src): Prepent __. Rename 14534 parameters. 14535 (__vmi_class_type_info::__vmi_class_type_info): Rename parameters. 14536 (__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast, 14537 __vmi_class_type_info::do_find_public_src): Prepent __. Rename 14538 parameters. 14539 (__dynamic_cast): Rename parameters. 14540 * tinfo.cc (type_info::is_pointer_p, type_info::is_function_p, 14541 type_info::do_catch, type_info::do_upcast): Prepend __. 14542 (contained_p, public_p, virtual_p, contained_public_p, 14543 contained_nonpublic_p, contained_nonvirtual_p): Adjust. 14544 (__class_type_info::do_catch, 14545 __class_type_info::do_upcast): Prepend __. Adjust. 14546 (__class_type_info::__upcast_result, 14547 __class_type_info::__dyncast_result): Move from inc/cxxabi.h. 14548 Adjust. 14549 (__class_type_info::find_public_src): Prepend __. Adjust. 14550 (__class_type_info::do_find_public_src, 14551 __si_class_type_info::do_find_public_src, 14552 __vmi_class_type_info::do_find_public_src): Likewise. 14553 (__class_type_info::do_dyncast, 14554 __si_class_type_info::do_dyncast, 14555 __vmi_class_type_info::do_dyncast): Likewise. 14556 (__class_type_info::do_upcast, 14557 __si_class_type_info::do_upcast, 14558 __vmi_class_type_info::do_upcast): Likewise. 14559 (__dynamic_cast): Adjust. 14560 * tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __. 14561 (__function_type_info::is_function_p): Likewise. 14562 (__pointer_type_info::do_catch): Likewise. Adjust. 14563 (__pointer_to_member_type_info::do_catch): Likewise. Adjust. 14564 (__throw_type_match_rtti_2): Adjust. 14565 (__is_pointer): Adjust. 14566 145672000-04-08 Mark Mitchell <mark@codesourcery.com> 14568 14569 * cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER. 14570 (complete_ctor_identifier): New macro. 14571 (special_function_kind): Add sfk_copy_constructor and 14572 sfk_assignment_operator. 14573 (LOOKUP_HAS_IN_CHARGE): Remove. 14574 (cons_up_default_function): Rename to ... 14575 (implicitly_declare_fn): ... this. 14576 * call.c (build_new_method_call): Add in-charge parameters for 14577 constructors here. 14578 * class.c (add_implicitly_declared_members): Change parameter name 14579 from cant_have_assignment to cant_have_const_assignment. 14580 Replace calls to cons_up_default_function to implicitly_declare_fn. 14581 * cvt.c (ocp_convert): Use complete_ctor_identifier. 14582 * decl.c (initialize_predefined_identifiers): Initialize it. 14583 (start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of 14584 complex expression. 14585 * init.c (expand_default_init): Don't calculate the in-charge 14586 parameter here. 14587 (build_new_1): Likewise. 14588 * lex.c (cons_up_default_function): Move to method.c. 14589 * method.c (synthesize_method): Use DECL_DESTRUCTOR_P. 14590 (implicitly_declare_fn): New function. 14591 * typeck.c (build_static_cast): Use complete_ctor_identifier. 14592 (build_modify_expr): Likewise. 14593 * typeck2.c (build_functional_cast): Likewise. 14594 14595 Under the new ABI, constructors don't return `this'. 14596 * cp-tree.h (warn_reorder): Declare. 14597 (special_function_kind): New enum. 14598 (global_base_init_list): Remove declaration. 14599 (emit_base_init): Don't return a value. 14600 (check_base_init): Don't declare. 14601 (is_aggr_typedef): Likewise. 14602 * decl.c (check_special_function_return_type): New function. 14603 (return_types): Remove. 14604 (grokdeclarator): Use check_special_function_return_type. 14605 (start_function): Don't initialize ctor_label under the new ABI. 14606 (finish_construtor_body): Don't create a corresponding LABEL_STMT. 14607 * init.c (begin_init_stmts): Move to top of file. 14608 (finish_init_stmts): Likewise. 14609 (warn_reorder): Don't declare. 14610 (emit_base_init): Don't create a STMT_EXPR here. Don't return a 14611 value. 14612 (check_base_init): Remove. 14613 (is_aggr_typedef): Likewise. 14614 (build_new_1): Don't use the return value of a constructor. 14615 * semantics.c (setup_vtbl_ptr): Don't use the return value 14616 of emit_base_init. 14617 * typeck.c (check_return_expr): Don't magically convert return 14618 statements into `return this' in constructors under the new ABI. 14619 14620 * cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER, 14621 CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER. 14622 (base_ctor_identifier): New macro. 14623 (base_dtor_identifier): Likewise. 14624 (deleting_dtor_identifier): Likewise. 14625 * decl.c: Don't include obstack.h. 14626 (obstack_chunk_alloc): Don't define. 14627 (obstack_chunk_free): Likewise. 14628 (struct predefined_identifier): New type. 14629 (initialize_predefined_identifiers): New function. 14630 (init_decl_processing): Use it. 14631 (debug_temp_inits): Remove. 14632 (start_method): Don't call preserve_data. 14633 (hack_incomplete_structures): Update comment. 14634 * init.c (init_init_processing): Don't initialize 14635 nelts_identifier. 14636 (build_offset_rf): Remove dead code. 14637 (build_delete): Use CLASSTYPE_N_BASECLASSES. 14638 * search.c (init_search_processing): Don't initialize 14639 vptr_identifier. 14640 146412000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14642 14643 * typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide 14644 some sign_compare warnings. 14645 146462000-04-07 Nathan Sidwell <nathan@codesourcery.com> 14647 14648 Rename abi::__vmi_class_type_info members. 14649 * inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases, 14650 base_list, detail_masks members to vmi_flags, vmi_base_count, 14651 vmi_bases and vmi_flags_masks respectively. 14652 (__vmi_class_type_info::vmi_flags_masks): Rename 14653 details_unknown_mask to flags_unknown_mask. 14654 * tinfo.cc (__class_type_info::do_upcast): Adjust. 14655 (__vmi_class_type_info::do_find_public_src): Adjust. 14656 (__vmi_class_type_info::do_dyncast): Adjust. 14657 (__vmi_class_type_info::do_upcast): Adjust. 14658 146592000-04-07 Nathan Sidwell <nathan@codesourcery.com> 14660 14661 * tinfo.cc (convert_to_base): New function. 14662 (get_vbase_offset): Remove. Move into convert_to_base. 14663 (__vmi_class_type_info::do_find_public_src): Adjust. 14664 (__vmi_class_type_info::do_dyncast): Adjust. 14665 (__vmi_class_type_info::do_upcast): Adjust. 14666 146672000-04-06 Jason Merrill <jason@yorick.cygnus.com> 14668 14669 * tinfo.cc (operator=): Use __builtin_strcmp. 14670 * tinfo2.cc (before): Likewise. 14671 146722000-04-06 Mark Mitchell <mark@codesourcery.com> 14673 14674 * cp-tree.h (lang_decl_flags): Rename saved_inline to deferred. 14675 (DECL_SAVED_INLINE): Rename to ... 14676 (DECL_DEFERRED_FN): ... this. 14677 (in_function_p): Remove declaration. 14678 (mark_inline_for_output): Rename to ... 14679 (defer_fn): ... this. 14680 * decl.c (finish_function): Adjust call to mark_inline_for_output. 14681 (in_function_p): Remove definition. 14682 * decl2.c (saved_inlines): Rename to ... 14683 (deferred_fns): ... this. 14684 (saved_inlines_used): Rename to ... 14685 (deferred_fns_used): ... this. 14686 (mark_inline_for_output): Rename to ... 14687 (defer_fn): ... this. 14688 (finish_file): Adjust accordingly. 14689 (init_decl2): Likewise. 14690 * lex.c (cons_up_default_function): Likewise. 14691 * pt.c (mark_decl_instantiated): Likewise. 14692 (instantiate_decl): Don't set DECL_DEFER_OUTPUT under any 14693 circumstances. 14694 * rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output. 14695 * semantics.c (expand_body): Defer more functions. 14696 146972000-04-06 Nathan Sidwell <nathan@codesourcery.com> 14698 14699 * vec.cc: New file. 14700 * Make-lang.in (CXX_LIB2FUNCS): Add it. 14701 (vec.o): Build it. 14702 * inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 14703 __cxa_vec_delete): Declare. 14704 147052000-04-06 Nathan Sidwell <nathan@codesourcery.com> 14706 14707 * rtti.c (dfs_class_hint_mark): New static function. 14708 (dfs_class_hint_unmark): New static function. 14709 (class_hint_flags): Use them. 14710 147112000-04-05 Benjamin Kosnik <bkoz@cygnus.com> 14712 14713 * decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE. 14714 147152000-04-05 Mark Mitchell <mark@codesourcery.com> 14716 14717 * cp-tree.h (instantiate_decl): Change prototype. 14718 * decl2.c (mark_used): Adjust call. 14719 * optimize.c (inlinable_function_p): Adjust handling of templates. 14720 * pt.c (do_decl_instantiation): Adjust call to instantiate_decl. 14721 (do_type_instantiation): Likewise. 14722 (instantiate_decl): Defer more templates. 14723 (instantiate_pending_templates): Adjust logic to handle inline 14724 friend functions. 14725 14726 * Makefile.in (GGC_H): New variable. Use it throughout in place 14727 of ggc.h. 14728 14729 * call.c: Don't include obstack.h. Include ggc.h. 14730 (obstack_chunk_alloc): Don't define. 14731 (obstack_chunk_free): Likewise. 14732 (add_candidate): Allocate the z_candidate with ggc_alloc_obj. 14733 * decl.c (push_switch): Use xmalloc to allocate the cp_switch. 14734 (pop_switch): Free it. 14735 14736 * decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs. 14737 14738 * dump.c (dequeue_and_dump): Don't try to print the bit_position 14739 if we don't have a DECL_FIELD_OFFSET. 14740 14741Wed Apr 5 15:12:18 MET DST 2000 Jan Hubicka <jh@suse.cz> 14742 14743 * optimize.c (calls_setjmp_r): Use setjmp_call_p instead of 14744 special_function_p. 14745 147462000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14747 14748 * cfns.gperf (hash, libc_name_p): Prototype. 14749 14750 * rtti.c (build_dynamic_cast_1): Constification. 14751 14752 * search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes. 14753 14754 * semantics.c (deferred_type_access_control): Prototype. 14755 147562000-04-04 Mark Mitchell <mark@codesourcery.com> 14757 14758 Correct many new ABI issues regarding vbase and vcall offset 14759 layout. 14760 * cp-tree.h (BINFO_VTABLE): Document. 14761 (struct lang_type): Tweak formatting. 14762 (BINFO_PRIMARY_BINFO): Add to documentation. 14763 (CLASSTYPE_VSIZE): Fix typo in comment. 14764 (CLASSTYPE_VBASECLASSES): Update documentation. 14765 (BINFO_VBASE_MARKED): Remove. 14766 (SET_BINFO_VBASE_MARKED): Likewise. 14767 (CLEAR_BINFO_VBASE_MARKED): Likewise. 14768 (BINFO_FIELDS_MARKED): Remove. 14769 (SET_BINFO_FIELDS_MARKED): Likewise. 14770 (CLEAR_BINFO_FIELDS_MARKED): Likewise. 14771 (enum access_kind): New enumeration. 14772 (num_extra_vtbl_entries): Remove declaration. 14773 (size_extra_vtbl_entries): Likewise. 14774 (get_vtbl_decl_for_binfo): New function. 14775 (dfs_vbase_unmark): Remove declaration. 14776 (mark_primary_bases): Likewise. 14777 * class.c (SAME_FN): Remove. 14778 (struct vcall_offset_data_s): Move definition. 14779 (build_vbase_pointer): Use `build', not `build_binary_op', to 14780 access the vbase pointer under the new ABI. 14781 (build_vtable_entry_ref): Use get_vtbl_decl_for_binfo. 14782 (build_primary_vtable): Likewise. 14783 (dfs_mark_primary_bases): Move here from search.c. 14784 (mark_primary_bases): Likewise. 14785 (determine_primary_bases): Under the new ABI, don't make a base 14786 class a primary base just because we don't yet have any virtual 14787 functions. 14788 (layout_vtable_decl): Use get_vtbl_decl_for_binfo. 14789 (num_vfun_entries): Remove. 14790 (dfs_count_virtuals): Likewise. 14791 (num_extra_vtbl_entries): Likewise. 14792 (size_extra_vtbl_entries): Likewise. 14793 (layout_virtual_bases): Iterate in inheritance graph order under 14794 the new ABI. 14795 (finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to 14796 indicate that a vfield is present. 14797 (init_class_processing): Initialize access_public_node, etc., from 14798 ak_public, etc. 14799 (get_vtbl_decl_for_binfo): New function. 14800 (dump_class_hierarchy_r): Likewise. 14801 (dump_class_hierarchy): Use it. 14802 (finish_vtbls): Build the vtbls in inheritance graph order. 14803 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 14804 (initialize_vtable): Use get_vtbl_decl_for_binfo. 14805 (accumulate_vtbl_inits): Add comments explaining why a pre-order 14806 walk is required. 14807 (dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location 14808 where the vptr points, even for primary vtables. 14809 (build_vtbl_initializer): Adjust handling of vbase and vcall 14810 offsets. 14811 (build_vcall_and_vbase_vtable_entries): New function. 14812 (dfs_build_vbase_offset_vtbl_entries): Remove. 14813 (build_vbase_offset_vtbl_entries): Reimplement. 14814 (dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that 14815 were already handled in a primary base class vtable. 14816 (build_vcall_offset_vtbl_entries): Adjust. 14817 (build_rtti_vtbl_entries): Adjust. 14818 * decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo. 14819 * init.c (expand_virtual_init): Simplify. 14820 * repo.c (repo_get_id): Use get_vtbl_decl_for_binfo. 14821 * rtti.c (create_pseudo_type_info): Adjust calculation of vptr. 14822 * search.c (BINFO_ACCESS): New macro. 14823 (SET_BINFO_ACCESS): Likewise. 14824 (dfs_access_in_type): Manipulate access_kinds, not access nodes. 14825 (access_in_type): Likewise. 14826 (dfs_accessible_p): Likewise. 14827 (protected_accessible_p): Likewise. 14828 (lookup_fnfields_1): Adjust documentation. 14829 (dfs_mark_primary_bases): Move to class.c 14830 (mark_primary_bases): Likewise. 14831 (dfs_vbase_unmark): Remove. 14832 (virtual_context): Use BINFO_FOR_VBASE. 14833 (dfs_get_vbase_types): Simplify. 14834 (dfs_build_inheritance_graph_order): New function. 14835 (get_vbase_types): Use it. 14836 * tree.c (debug_binfo): Use get_vtbl_decl_for_binfo. 14837 14838 * tinfo.cc (get_vbase_offset): New function. 14839 (__vmi_class_type_info::do_find_public_src): Use it. 14840 (__vmi_class_type_info::do_dyncast): Likewise. 14841 (__vmi_class_type_info::do_upcast): Likewise. 14842 148432000-04-03 Zack Weinberg <zack@wolery.cumb.org> 14844 14845 * lang-specs.h: Pass -fno-show-column to the preprocessor. 14846 148472000-03-30 Nathan Sidwell <nathan@codesourcery.com> 14848 14849 * rtti.c (class_hint_flags): Rename flags. 14850 (class_initializer): Remove flags. 14851 (synthesize_tinfo_var): Combine offset and flags. Add flags 14852 for __vmi_class_type_info. 14853 (create_tinfo_types): Remove flags from __class_type_info and 14854 __si_class_type_info. Merge flags and offset from 14855 base_class_type_info. 14856 * inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags. 14857 (__base_class_info::is_virtual_p): Adjust. 14858 (__base_class_info::is_public_p): Adjust. 14859 (__base_class_info::offset): New accessor. 14860 (__class_type_info::details): Remove member. 14861 (__class_type_info::__class_type_info): Lose details. 14862 (__class_type_info::detail_masks): Remove. 14863 (__si_class_type_info::__si_class_type_info): Lose details. 14864 (__vmi_class_type_info::details): New member. 14865 (__vmi_class_type_info::__vmi_class_type_info): Adjust. 14866 (__vmi_class_type_info::detail_masks): New member. 14867 * tinfo.cc (__class_type_info::do_upcast): Initialize result 14868 with unknown_details_mask. 14869 (__vmi_class_type_info::do_find_public_src): Adjust 14870 (__vmi_class_type_info::do_dyncast): Adjust. 14871 (__vmi_class_type_info::do_upcast): Set result details, if 14872 needed. Adjust. 14873 (__dynamic_cast): Temporarily #if out optimization. 14874 148752000-03-29 Nathan Sidwell <nathan@codesourcery.com> 14876 14877 * rtti.c (get_tinfo_decl): Mark used. 14878 (emit_tinfo_decl): Don't optimize polymorphic type_info. Only 14879 mark as dealt with, if we output it. 14880 148812000-03-28 Mark Mitchell <mark@codesourcery.com> 14882 14883 * class.c: Reorganize to put virtual function table initialization 14884 machinery at the end of the file. 14885 148862000-03-28 Jason Merrill <jason@casey.cygnus.com> 14887 14888 * class.c (finish_struct): Use bitsize_zero_node. 14889 * pt.c (instantiate_class_template): Likewise. 14890 148912000-03-28 Mark Mitchell <mark@codesourcery.com> 14892 14893 Put RTTI entries at negative offsets in new ABI. 14894 * class.c (dfs_build_vbase_offset_vtbl_entries): Put the first 14895 vbase offset at index -3, not -1. 14896 (build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not 14897 dfs_vtable_path_unmarked_real_bases_queue_p to walk bases. 14898 (dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff. 14899 (build_rtti_vtbl_entries): New function. 14900 (set_rtti_entry): Remove. 14901 (build_primary_vtable): Don't use it. 14902 (build_secondary_vtable): Likewise. 14903 (start_vtable): Remove. 14904 (first_vfun_index): New function. 14905 (set_vindex): Likewise. 14906 (add_virtual_function): Don't call start_vtable. Do call 14907 set_vindex. 14908 (set_primary_base): Rename parameter. 14909 (determine_primary_base): Likewise. 14910 (num_vfun_entries): Don't use skip_rtti_stuff. 14911 (num_extra_vtbl_entries): Include RTTI information. 14912 (build_vtbl_initializer): Use build_rtti_vtbl_entries. 14913 (skip_rtti_stuff): Remove. 14914 (dfs_modify_vtables): Don't use it. 14915 (modify_all_vtables): Don't use start_vtable. Do use set_vindex. 14916 (layout_nonempty_base_or_field): Update size handling. 14917 (create_vtable_ptr): Tweak. 14918 (layout_class_type): Adjust parameter names. 14919 (finish_struct_1): Simplify. 14920 * cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation. 14921 (skip_rtti_stuff): Remove. 14922 (first_vfun_index): New function. 14923 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 14924 (dfs_vtable_path_marked_real_bases_queue_p): Remove. 14925 (marked_vtable_pathp): Declare. 14926 (unmarked_vtable_pathp): Likewise. 14927 * error.c (dump_expr): Use first_vfun_index to calculate vtable 14928 offsets. 14929 * rtti.c (build_headof): Look for RTTI at negative offsets. 14930 (get_tinfo_decl_dynamic): Likewise. 14931 (tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL 14932 here. 14933 (create_pseudo_type_info): Do it here instead. Adjust so that 14934 vptr points at first virtual function. 14935 * search.c (marked_vtable_pathp): Make it global. 14936 (unmarked_vtable_pathp): Likewise. 14937 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 14938 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 14939 (dfs_get_pure_virtuals): Don't use skip_rtti_stuff. 14940 (get_pure_virtuals): Likewise. 14941 (expand_upcast_fixups): Likewise. 14942 * tree.c (debug_binfo): Likewise. 14943 * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate 14944 negative offset. 14945 14946Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14947 14948 * class.c (check_field_decl): Fix typo. 14949 (build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS. 14950 (check_methods): Likewise. 14951 (check_field_decls): Likewise. 14952 Use DECL_CONTEXT, not DECL_FIELD_CONTEXT. 14953 * cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT): 14954 Use DECL_RESULT_FLD, not DECL_RESULT. 14955 * decl.c (xref_tag): Use DECL_TEMPLATE_RESULT. 14956 * lex.c (identifier_type): Likewise. 14957 * pt.c (determine_specialization, lookup_template_class): Likewise. 14958 (tsubst_friend_function, tsubst_decl, instantiate_template): Likewise. 14959 (resolve_overloaded_unification, more_specialized): Likewise. 14960 * semantics.c (finish_member_declaration): Likewise. 14961 * typeck.c (build_x_function_call): Likewise. 14962 149632000-03-26 Mark Mitchell <mark@codesourcery.com> 14964 14965 * class.c (layout_empty_base): Handle empty bases with non-byte 14966 alignment. 14967 (build_base_field): Likewise. 14968 (layout_virtual_bases): Likewise. 14969 14970 * class.c (finish_struct_1): Fix typo in this change: 14971 14972 Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14973 149742000-03-25 Mark Mitchell <mark@codesourcery.com> 14975 14976 * decl.c (grokdeclarator): Count partial specializations when 14977 keeping track of how many template classes have been seen. 14978 14979 * dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT. 14980 14981Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14982 14983 * class.c (build_vbase_pointer_fields): layout_field now place_field. 14984 (get_vfield_offset): Use byte_position. 14985 (set_rtti_entry): Set OFFSET to ssizetype zero. 14986 (get_binfo_offset_as_int): Deleted. 14987 (dfs_record_base_offsets): Use tree_low_cst. 14988 (dfs_search_base_offsets): Likewise. 14989 (layout_nonempty_base_or_field): Reflect changes in RLI format 14990 and call byte_position. 14991 (layout_empty_base): Convert offset to ssizetype. 14992 (build_base_field): use rli_size_unit_so_far. 14993 (dfs_propagate_binfo_offsets): Do computation in proper type. 14994 (layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets. 14995 (layout_class_type): Reflect changes in RLI names and fields. 14996 (finish_struct_1): Set DECL_FIELD_OFFSET. 14997 * dump.c (dequeue_and_dump): Call bit_position. 14998 * expr.c (cplus_expand_constant): Use byte_position. 14999 * rtti.c (expand_class_desc): Use bitsize_one_node. 15000 * typeck.c (build_component_addr): Use byte_position and don't 15001 special case for zero offset. 15002 150032000-03-24 Nathan Sidwell <nathan@codesourcery.com> 15004 15005 * decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P. 15006 15007 * rtti.c (get_tinfo_decl): Set comdat linkage on new-abi 15008 tinfo object. 15009 (emit_tinfo_decl): Only emit polymorphic tinfo's when emitting 15010 vtable. 15011 150122000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 15013 15014 * call.c (check_dtor_name, build_new_method_call): Use TYPE_P and 15015 DECL_P macros. 15016 * decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name, 15017 make_typename_type, check_initializer, cp_finish_decl, 15018 xref_tag): Likewise. 15019 * decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree, 15020 decl_namespace, arg_assoc_template_arg, arg_assoc, 15021 validate_nonmember_using_decl, do_class_using_decl): Likewise. 15022 * error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of, 15023 args_to_string): Likewise. 15024 * friend.c (is_friend): Likewise. 15025 * lex.c (note_got_semicolon, note_list_got_semicolon, 15026 is_global): Likewise. 15027 * method.c (build_overload_nested_name, build_overload_value, 15028 build_qualified_name, build_qualified_name, hack_identifier): Likewise. 15029 * parse.y (typename_sub, typename_sub1): Likewise. 15030 * pt.c (push_inline_template_parms_recursive, check_template_shadow, 15031 process_partial_specialization, convert_template_argument, 15032 template_args_equal, add_pending_template, lookup_template_class, 15033 for_each_template_parm_r, maybe_fold_nontype_arg, 15034 tsubst, instantiate_template, type_unification_real, unify, 15035 instantiate_pending_templates, set_mangled_name_for_template_decl): 15036 Likewise. 15037 * repo.c (repo_get_id, repo_template_used): Likewise. 15038 * search.c (lookup_field_1): Likewise. 15039 * tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise. 15040 * xref.c (classname): Likewise. 15041 150422000-03-22 Mark Mitchell <mark@codesourcery.com> 15043 15044 * cp-tree.h (BINFO_FOR_VBASE): Adjust documentation. 15045 (CANONICAL_BINFO): New macro. 15046 (BINFO_NEW_VTABLE_MARKED): Use it. 15047 (SET_BINFO_NEW_VTABLE_MARKED): Likewise. 15048 (CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise. 15049 * class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE, 15050 not TREE_TYPE. 15051 (build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED. 15052 (build_secondary_vtable): Likewise. 15053 (dfs_finish_vtbls): Likewise. 15054 (dfs_accumulate_vtbl_inits): Likewise. 15055 (accumulate_vtbl_inits): New function. 15056 (finish_vtbls): Make sure that virtual bases come after 15057 non-virtual bases in the vtable group. 15058 (record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL. 15059 (finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED. 15060 * search.c (struct vbase_info): Move definition. 15061 (marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED. 15062 (unmarked_new_vtable_p): Likewise. 15063 (dfs_mark_vtable_path): Remove. 15064 (dfs_mark_new_vtable): Remove. 15065 (dfs_unmark_new_vtable): Likewise. 15066 (dfs_clear_search_slot): Likewise. 15067 (dfs_find_vbases): Adjust usage of BINFO_NEW_VTABLE_MARKED. 15068 (dfs_clear_vbase_slots): Likewise. 15069 (init_vbase_pointers): LIkewise. 15070 150712000-03-22 Jason Merrill <jason@casey.cygnus.com> 15072 15073 * typeck.c (type_after_usual_arithmetic_conversions): Prefer a 15074 SIZETYPE to a non-SIZETYPE. 15075 150762000-03-21 Mark Mitchell <mark@codesourcery.com> 15077 15078 * class.c (layout_virtual_bases): Adjust names in conditionally 15079 compiled code. 15080 15081 * class.c (record_base_offsets): New function. 15082 (layout_conflict_p): Likewise. 15083 (layout_nonempty_base_or_field): Use it. 15084 (layout_empty_base): New function. 15085 (build_base_field): Use it. 15086 (build_base_fields): Update comment. 15087 (layout_virtual_bases): Fold in a little code form 15088 layout_basetypes. Use layout_empty_base. 15089 (layout_basetypes): Remove. 15090 (end_of_class): New function. 15091 (layout_class_type): Use it. Adjust. 15092 15093 * cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment. 15094 (fntype_p): Remove. 15095 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in 15096 comment. 15097 (dfs_skip_nonprimary_vbases_markedp): Likewise. 15098 * typeck.c (fntype_p): Remove. 15099 15100 * cp-tree.h (TI_SPEC_INFO): Remove. 15101 (CLASSTYPE_TI_SPEC_INFO): Likewise. 15102 * pt.c (process_partial_specialization): Likewise. 15103 15104 * class.c (build_base_field): Fix thinko in computation of binfo 15105 offsets. 15106 15107 * tree.c (mark_local_for_remap_p): Mark variables declared in 15108 TARGET_EXPRs as well. 15109 151102000-03-21 Nathan Sidwell <nathan@codesourcery.com> 15111 15112 * typeck.c (require_complete_type, complete_type, 15113 complete_type_or_else, c_sizeof, c_sizeof_nowarn, 15114 build_array_ref, convert_arguments, pointer_diff, 15115 build_x_unary_op, build_unary_op, build_c_cast, 15116 build_modify_expr): Use COMPLETE_TYPE_P etc. 15117 * call.c (is_complete, convert_like_real, 15118 build_new_method_call): Likewise. 15119 * class.c (build_vbase_pointer_fields, check_bases, 15120 build_base_field, finish_struct_1, pushclass): Likewise. 15121 * cvt.c (cp_convert_to_pointer, convert_to_void): Likewise. 15122 * decl.c (maybe_process_template_type_declaration, pushtag, 15123 pushdecl, redeclaration_error_message, start_decl, start_decl_1, 15124 layout_var_decl, check_initializer, cp_finish_decl, 15125 grokdeclarator, require_complete_types_for_parms, 15126 grok_op_properties, xref_tag, xref_basetypes, 15127 check_function_type): Likewise. 15128 * decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise. 15129 * friend.c (do_friend): Likewise. 15130 * init.c (build_offset_ref): Likewise. 15131 * parse.y (structsp): Likewise. 15132 * pt.c (maybe_process_partial_specialization, 15133 tsubst_friend_function, instantiate_class_template, tsubst, 15134 do_type_instantiation, instantiate_pending_templates): Likewise. 15135 * repo.c (repo_get_id): Likewise. 15136 * rtti.c (build_typeid, get_typeid, build_dynamic_cast_1, 15137 synthesize_tinfo_var, emit_support_tinfos): Likewise. 15138 * search.c (lookup_fnfields_1, lookup_conversions): Likewise. 15139 * semantics.c (begin_class_definition): Likewise. 15140 * tree.c (build_cplus_method_type): Likewise. 15141 * typeck2.c (digest_init, build_functional_cast, 15142 add_exception_specifier): Likewise. 15143 * parse.h, parse.c: Regenerated. 15144 151452000-03-21 Nathan Sidwell <nathan@codesourcery.com> 15146 15147 * inc/cxxabi.h: New header file. Define new-abi entry points. 15148 (__pointer_type_info::target): Rename member to ... 15149 (__pointer_type_info::type): ... here. 15150 (__base_class_info::type): Rename member to ... 15151 (__base_class_info::base): ... here. 15152 * Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h 15153 * cp-tree.h (CPTI_ABI): New global tree enumeration. 15154 (abi_node): New global tree node. 15155 * decl.c (abi_node): Document. 15156 (init_decl_processing): Initialize abi_node. 15157 * rtti.c (build_dynamic_cast_1): Use abi_node for new-abi. 15158 (get_vmi_pseudo_type_info): Likewise. 15159 (create_tinfo_types): Likewise. 15160 (emit_support_tinfos): Likewise. 15161 * tinfo.h (cxxabi.h): Include for new-abi. 15162 Move rtti class definitions to new header file. 15163 * tinfo.cc (abi): Use the namespace. 15164 (std): Move new abi rtti classes from here ... 15165 (__cxxabiv1): ... to here. 15166 * tinfo2.cc (cxxabi.h): Include for new-abi. 15167 Move rtti class definitions to new header file. 15168 (std): Move new abi rtti classes from here ... 15169 (__cxxabiv1): ... to here. 15170 * inc/typeinfo (__class_type_info): Move into __cxxabiv1 15171 namespace. 15172 151732000-03-20 Jed Wing <jedwin@zloty.ugcs.caltech.edu> 15174 Jason Merrill <jason@casey.cygnus.com> 15175 15176 * method.c (build_overload_int): Use host_integerp. 15177 151782000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 15179 15180 * init.c (build_offset_ref): Handle the case of a templated member 15181 function. 15182 151832000-03-19 Martin v. L�wis <loewis@informatik.hu-berlin.de> 15184 15185 * except.c (expand_exception_blocks): Clear catch_clauses_last. 15186 151872000-03-18 Mark Mitchell <mark@codesourcery.com> 15188 15189 * cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro. 15190 * class.c (check_bitfield_decl): Turn illegal bitfields into 15191 non-bitfields. 15192 (dfs_propagate_binfo_offsets): Adjust for new size_binop 15193 semantics. 15194 (dfs_offset_for_unshared_vbases): Likewise. 15195 * cvt.c (cp_convert_to_pointer): Convert NULL to a 15196 pointer-to-member correctly under the new ABI. 15197 * expr.c (cplus_expand_constant): Don't use cp_convert when 15198 turning an offset into a pointer-to-member. 15199 * init.c (resolve_offset_ref): Don't adjust pointers-to-members 15200 when dereferencing them under the new ABI. 15201 * typeck.c (get_member_function_from_ptrfunc): Tweak calculation 15202 of pointers-to-members under the new ABI. 15203 15204 * class.c (check_bitfield_decl): Remove restriction on really long 15205 bitfields. 15206 (layout_class_type): Implement new ABI handling of bitfields 15207 longer than their types. 15208 152092000-03-18 Martin v. L�wis <loewis@informatik.hu-berlin.de> 15210 15211 * parse.y (extdefs): Call ggc_collect. 15212 * parse.c: Regenerated. 15213 152142000-03-18 Nathan Sidwell <nathan@codesourcery.com> 15215 15216 * class.c (build_base_field): Use TYPE_ALIGN to examine a type. 15217 (note_name_declared_in_class): Use OVL_CURRENT to get at a 15218 potential overload. 15219 15220Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15221 15222 * class.c (build_vbase_path): Use integer_zerop. 15223 (build_vtable_entry): Use tree_low_cst. 15224 (get_vfield_offset): Use bit_position. 15225 (dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT. 15226 Use tree_low_cst. 15227 (check_bitfield_decl): Set DECL_SIZE using convert. 15228 (build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop. 15229 (layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT. 15230 Use tree_low_cst. 15231 (finish_struct_1): Use bit_position. 15232 (dump_class_hierarchy): Use tree_low_cst. 15233 * cp-tree.h (min_precision): Add declaration. 15234 * decl.c (xref_tag, xref_basetypes): Use tree_low_cst. 15235 * error.c (dump_type_suffix): Use host_integerp and tree_low_cst. 15236 (dump_expr): Use integer_zerop, host_integerp, and tree_low_cst. 15237 * expr.c (cplus_expand_constant): Use bit_position. 15238 * init.c (build_vec_init): Use host_integerp and tree_low_cst. 15239 * rtti.c (get_base_offset): Use bit_position. 15240 * typeck.c (build_binary_op): Use integer_zerop, compare_tree_int, 15241 host_integerp, and tree_low_cst. 15242 (pointer_int_sum): Use integer_zerop. 15243 (build_component_addr): Use bit_position. 15244 152452000-03-17 Nathan Sidwell <nathan@codesourcery.com> 15246 15247 * typeck.c (require_complete_type): Don't assume size_zero_node. 15248 (complete_type_or_else): Likewise. 15249 152502000-03-16 Steven Grady <grady@digitaldeck.com> 15251 Jason Merrill <jason@casey.cygnus.com> 15252 15253 * rtti.c (build_dynamic_cast_1): Improve diagnostics. 15254 152552000-03-16 Nathan Sidwell <nathan@codesourcery.com> 15256 15257 * decl2.c (grokfield): Bail out if type is error_mark_node. 15258 152592000-03-15 Nathan Sidwell <nathan@codesourcery.com> 15260 15261 * tinfo2.cc (__ptr_to_member_data): Rename to ... 15262 (__pointer_to_member_data): ... here. Adjust. 15263 * rtti.c (create_tinfo_types): Adjust. 15264 152652000-03-15 Nathan Sidwell <nathan@codesourcery.com> 15266 15267 * cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove. 15268 * decl.c (ref_desc_type_node): Undocument. 15269 * rtti.c (ptr_ref_initializer): Rename to ... 15270 (ptr_initializer): ... here. Adjust comments. 15271 (ptmd_initializer): Fix comment thinko. 15272 (synthesize_tinfo_var): Remove REFERENCE_TYPE case. 15273 (create_tinfo_types): Remove ref_desc_type_node init. 15274 * tinfo2.cc (__reference_type_info): Remove. 15275 152762000-03-15 Nathan Sidwell <nathan@codesourcery.com> 15277 15278 * decl.c (cp_finish_decl): Remove obsolete comment. 15279 15280 * typeck.c (build_ptrmemfunc1): Kill uninitialized warning. 15281 152822000-03-14 Mark Mitchell <mark@codesourcery.com> 15283 15284 * cp-tree.h: Tweak documentation. 15285 * class.c (build_vbase_pointer_fields): Layout the fields, too. 15286 (avoid_overlap): Remove. 15287 (get_binfo_offset_as_int): New function. 15288 (dfs_serach_base_offsets): Likewise. 15289 (layout_nonempty_base_or_field): Likewise. 15290 (build_base_field): Layout fields here. Avoid placing two objects 15291 of the same type at the same address, under the new ABI. 15292 (build_base_fields): Adjust accordingly. 15293 (create_vtable_ptr): Return the new field, but don't attach it to 15294 TYPE_FIELDS. 15295 (remove_base_field): Remove. 15296 (remove_base_fields): Remove. 15297 (layout_basetypes): Adjust accordingly. 15298 (layout_class_type): Call layout_field for each field, rather than 15299 just making a wholesale call to layout_type. 15300 153012000-03-14 Jeff Sturm <jsturm@sigma6.com> 15302 15303 * except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw. 15304 153052000-03-13 Jason Merrill <jason@casey.cygnus.com> 15306 15307 * decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P. 15308 15309 * except.c (dtor_nothrow): New fn. 15310 (do_pop_exception): Use it. Take type parm. 15311 (push_eh_cleanup): Take type parm. 15312 (expand_start_catch_block): Pass it. 15313 (build_eh_type_type_ref): Accept null type. 15314 153152000-03-12 Mark Mitchell <mark@codesourcery.com> 15316 15317 * cp-tree.h (revert_static_member_fn): Change prototype. 15318 * decl.c (grokfndecl): Adjust call to revert_static_member_fn. 15319 (grok_op_properties): Likewise. 15320 (start_function): Likewise. 15321 (revert_static_member_fn): Simplify. 15322 * pt.c (check_explicit_specialization): Adjust call to 15323 revert_static_member_fn. 15324 153252000-03-11 Mark Mitchell <mark@codesourcery.com> 15326 15327 * cp-tree.h (scope_kind): New type. 15328 (tmpl_spec_kind): Likewise. 15329 (declare_pseudo_global_level): Remove. 15330 (pseudo_global_level_p): Rename to template_parm_scope_p. 15331 (pushlevel): Remove declaration. 15332 (begin_scope): New function. 15333 (finish_scope): Likewise. 15334 (current_tmpl_spec_kind): Likewise. 15335 * decl.c (struct binding_level): Shorten parm_flag to 2 bits. 15336 Shorten keep to 2 bits. Rename pseudo_global to template_parms_p. 15337 Add template_spec_p. 15338 (toplevel_bindings_p): Adjust. 15339 (declare_pseudo_global_level): Remove. 15340 (pseudo_global_level_p): Rename to template_parm_scope_p. 15341 (current_tmpl_spec_kind): New function. 15342 (begin_scope): Likewise. 15343 (finish_scope): Likewise. 15344 (maybe_push_to_top_level): Adjust. 15345 (maybe_process_template_type_declaration): Likewise. 15346 (pushtag): Likewise. 15347 (pushdecl_nonclass_level): Likewise. 15348 (lookup_tag): Likewise. 15349 (grokfndecl): Handle member template specializations. Share 15350 constructor and non-constructor code. 15351 * decl2.c (check_classfn): Handle member template specializations. 15352 * pt.c (begin_template_parm_list): Use begin_scope. 15353 (begin_specialization): Likewise. 15354 (end_specialization): Likewise. 15355 (check_explicit_specialization): Use current_tmpl_spec_kind. 15356 Handle member template specializations. 15357 (end_template_decl): Use finish_scope. Remove call to 15358 get_pending_sizes. 15359 (push_template_decl_real): Remove bogus error message. 15360 (tsubst_decl): Fix typo in code contained in comment. 15361 (instantiate_template): Handle member template specializations. 15362 (most_general_template): Likewise. 15363 153642000-03-11 Gabriel Dos Reis <gdr@codesourcery.com> 15365 15366 * lex.c (whitespace_cr): Compress consecutive calls to warning(). 15367 (do_identifier): Ditto for error(). 15368 15369 * pt.c (convert_nontype_argument): Ditto for cp_error(). 15370 (convert_template_argument): Ditto for cp_pedwarn(). 15371 153722000-03-11 Jason Merrill <jason@casey.cygnus.com> 15373 15374 * exception.cc (__check_null_eh_spec): New fn. 15375 * except.c (expand_end_eh_spec): Call it if the spec is throw(). 15376 153772000-03-10 Jason Merrill <jason@casey.cygnus.com> 15378 15379 * decl.c (push_throw_library_fn): Take the FUNCTION_TYPE. 15380 * except.c (expand_end_eh_spec): Add the return type. 15381 * rtti.c (throw_bad_cast): Add the parmtypes. 15382 (throw_bad_typeid): Likewise. 15383 15384 * semantics.c (expand_stmt): Only leave out rtl for unused 15385 artificials, and set DECL_IGNORED_P on them as well. 15386 * decl.c (wrapup_globals_for_namespace): Likewise. 15387 153882000-03-09 Nathan Sidwell <nathan@codesourcery.com> 15389 15390 * decl.c (maybe_commonize_var): Skip all artificial decls. 15391 * pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN. 15392 153932000-03-10 Jason Merrill <jason@casey.cygnus.com> 15394 15395 * lang-options.h, decl2.c: Add -fno-enforce-eh-specs. 15396 * cp-tree.h: Declare flag_enforce_eh_specs. 15397 * decl.c (store_parm_decls, finish_function): Check it. 15398 15399 C library functions don't throw. 15400 * Makefile.in (cfns.h): New target. 15401 (except.o): Depend on it. 15402 * Make-lang.in (cc1plus): Depend on cfns.gperf. 15403 * cfns.gperf: New file. 15404 * cfns.h: Generated. 15405 * except.c: Include it. 15406 (nothrow_libfn_p): New fn. 15407 * decl.c (grokfndecl): Use it. 15408 * cp-tree.h: Declare it. 15409 15410 * decl.c (push_overloaded_decl_1, auto_function, 15411 define_function): Lose. 15412 (build_library_fn_1): New static fn. 15413 (builtin_function): Use it. 15414 (get_atexit_node): Use build_library_fn_ptr. 15415 (build_library_fn, build_cp_library_fn, build_library_fn_ptr, 15416 build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn, 15417 push_void_library_fn, push_throw_library_fn): New fns. 15418 * cp-tree.h: Declare them. 15419 (cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID. 15420 (throw_bad_cast_node, throw_bad_typeid_node): Lose. 15421 * except.c (init_exception_processing, call_eh_info, do_pop_exception, 15422 (expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns. 15423 * rtti.c (build_runtime_decl): Lose. 15424 (throw_bad_cast, throw_bad_typeid, get_tinfo_decl, 15425 build_dynamic_cast_1, expand_si_desc, expand_class_desc, 15426 expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns. 15427 15428 * call.c (build_call): Remove result_type parm. 15429 Call mark_used on unused artificial fns. 15430 * init.c, method.c, typeck.c, except.c, rtti.c: Adjust. 15431 154322000-03-09 Jason Merrill <jason@casey.cygnus.com> 15433 15434 * call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as 15435 appropriate. 15436 * decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL. 15437 * except.c (call_eh_info, alloc_eh_object, expand_throw): Set 15438 TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate. 15439 * rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1, 15440 expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 15441 expand_generic_desc): Likewise. 15442 154432000-03-08 Nathan Sidwell <nathan@codesourcery.com> 15444 15445 * exception.cc (__cp_pop_exception): Cleanup the original object. 15446 154472000-03-08 Nathan Sidwell <nathan@codesourcery.com> 15448 15449 * decl.c (grok_op_properties): Merge conversion to void warning 15450 with other silly op warnings. 15451 154522000-03-08 Jason Merrill <jason@casey.cygnus.com> 15453 15454 * typeck2.c (process_init_constructor): Set TREE_PURPOSE of 15455 array CONSTRUCTOR elements. Don't use expr_tree_cons. 15456 154572000-03-08 Nathan Sidwell <nathan@codesourcery.com> 15458 15459 * decl.c (cp_make_fname_decl): New function. 15460 (wrapup_globals_for_namespace): Don't emit unused static vars. 15461 (init_decl_processing): Remove comment about use of 15462 array_domain_type. Set make_fname_decl. 15463 (cp_finish_decl): Remove __FUNCTION__ nadgering. 15464 * semantics.c (begin_compound_stmt): Remove 15465 current_function_name_declared flagging. 15466 (expand_stmt): Don't emit unused local statics. 15467 * typeck.c (decay_conversion): Don't treat __FUNCTION__ decls 15468 specially. 15469 154702000-03-08 Nathan Sidwell <nathan@codesourcery.com> 15471 15472 * typeck.c (convert_for_assignment): Don't look at array 15473 initializer. 15474 * call.c (convert_like_real): Likewise. 15475 154762000-03-07 Jason Merrill <jason@casey.cygnus.com> 15477 15478 Add initial support for '\uNNNN' specifier. 15479 * lex.c (read_ucs): New fn. 15480 (readescape, skip_white_space): Call it. 15481 (is_extended_char, is_extended_char_1): New fns. 15482 (utf8_extend_token): New fn, #if 0'd out. 15483 (real_yylex): Treat extended chars like letters. 15484 15485 * search.c (note_debug_info_needed): Walk the bases even if we 15486 weren't deferring the type itself. 15487 154882000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15489 15490 * decl2.c (finish_objects): Constify a char*. 15491 15492 * method.c (emit_thunk): Likewise. 15493 154942000-03-06 Nathan Sidwell <nathan@codesourcery.com> 15495 15496 * typeck.c (dubious_conversion_warnings): Look through 15497 REFERENCE_TYPE. 15498 15499Mon Mar 6 08:46:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15500 15501 * class.c (dfs_modify_vtables): I is now unsigned. 15502 (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. 15503 (build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT. 15504 * error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned. 15505 * init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 15506 * method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned. 15507 * typeck.c (build_binary_op, case TRUNC_DIV_EXPR): 15508 Call integer_all_onesp. 15509 * typeck2.c (process_init_constructor): Use compare_tree_int. 15510 15511 * lang-specs.h (as): Don't call if -syntax-only. 15512 155132000-03-06 Mark Mitchell <mark@codesourcery.com> 15514 15515 * expr.c (cplus_expand_expr, case STMT_EXPR): Don't set 15516 RTL_EXPR_HAS_NO_SCOPE after all. 15517 155182000-03-05 Mark Mitchell <mark@codesourcery.com> 15519 15520 * expr.c (cplus_expand_expr, case STMT_EXPR): Use 15521 expand_start_stmt_expr and expand_end_stmt_expr directly. Set 15522 RTL_EXPR_HAS_NO_SCOPE. 15523 15524 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little 15525 later. 15526 15527 * dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P. 15528 155292000-03-05 Nathan Sidwell <nathan@codesourcery.com> 15530 15531 * call.c (convert_like): Macrofy. 15532 (convert_like_with_context): New macro. 15533 (convert_like_real): Renamed from convert_like. Add calling 15534 context parameters, for diagnostics. Add recursive flag. Call 15535 dubious_conversion_warnings for outer conversion. 15536 (build_user_type_conversion): Use convert_like_with_context. 15537 (build_over_call): Likewise. Don't warn about dubious 15538 conversions here. Adjust convert_default_arg calls. 15539 (convert_default_arg): Add context parameters for diagnostics. 15540 Pass through to convert_like_with_context. 15541 * cp-tree.h (convert_default_arg): Add context parameters. 15542 (dubious_conversion_warnings): Prototype new function. 15543 * typeck.c (convert_arguments): Adjust convert_default_arg call. 15544 (dubious_conversion_warnings): New function, broken 15545 out of convert_for_assignment. 15546 (convert_for_assignment): Adjust. 15547 155482000-03-03 Jason Merrill <jason@casey.cygnus.com> 15549 15550 * decl2.c (key_method): Break out from... 15551 (import_export_vtable, import_export_class): ...here. 15552 15553 * decl.c (finish_function): Don't mess with flag_keep_inline_functions. 15554 * decl2.c (finish_vtable_vardecl): Don't check decl_function_context. 15555 15556 * search.c (note_debug_info_needed, dfs_debug_mark, 15557 dfs_debug_unmarkedp): Uncomment. Adjust for new scheme. 15558 * decl2.c (finish_vtable_vardecl): Call note_debug_info_needed. 15559 155602000-03-03 Nathan Sidwell <nathan@codesourcery.com> 15561 15562 * decl.c (cp_finish_decl): Remove obsolete obstack comments, fix 15563 typos. 15564 155652000-03-02 Mark Mitchell <mark@codesourcery.com> 15566 15567 * cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ... 15568 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this. 15569 (TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro. 15570 (lang_type): Split gets_new into has_new and has_array_new. 15571 (TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 15572 (TYPE_GETS_NEW): Split into ... 15573 (TYPE_HAS_NEW_OPERATOR): ... this, and ... 15574 (TYPE_HAS_ARRAY_NEW_OPERATOR): ... this. 15575 (DECL_ARRAY_DELETE_OPERATOR_P): New macro 15576 (build_op_new_call): Don't declare. 15577 (build_new_1): Likewise. 15578 * call.c (build_op_new_call): Remove. 15579 * class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 15580 instead of TYPE_NEEDS_DESTRUCTOR. 15581 (finish_struct_bits): Likewise. 15582 (add_implicitly_declared_members): Likewise. 15583 (check_field_decl): Likewise. 15584 (check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it 15585 correctly under the new ABI. 15586 * decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 15587 instead of TYPE_NEEDS_DESTRUCTOR. 15588 (initialize_local_var): Likewise. 15589 (destroy_local_var): Likewise. 15590 (cp_finish_decl): Likewise. 15591 (register_dtor_fn): Likewise. 15592 (grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and 15593 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. Don't set 15594 TYPE_VEC_DELETE_TAKES_SIZE here. 15595 (xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and 15596 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. 15597 (store_parm_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 15598 (finish_destructor_body): Likewise. 15599 (maybe_build_cleanup_1): Likewise. 15600 * decl2.c (do_static_destruction): Likewise. 15601 * init.c (build_new_1): Make it static. 15602 (perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 15603 (expand_cleanup_for_base): Likewise. 15604 (get_cookie_size): New function. 15605 (build_new_1): Handle array-new cookies correctly under the new 15606 ABI. 15607 (build_vec_delete_1): Likewise. 15608 (build_vec_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 15609 (build_delete): Likewise. 15610 (build_vec_delete): Handle array-new cookies correctly under the new 15611 ABI. 15612 * lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 15613 * pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and 15614 TYPE_HAS_ARRAY_NEW_OPERATOR. 15615 * ptree.c (print_lang_type): Check them. 15616 * search.c (context_for_name_lookup): Fix typo in comment. 15617 (tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 15618 * tree.c (break_out_cleanups): Likewise. 15619 (build_cplus_array_test_1): Likewise. 15620 (cp_build_qualified_type_real): Likewise. 15621 * typeck.c (complete_type): Likewise. 15622 15623 * g++spec.c (lang_specific_driver): Add -fnew-abi at the start of 15624 the command-line, not the end. 15625 156262000-03-01 Jason Merrill <jason@casey.cygnus.com> 15627 15628 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG. 15629 156302000-03-02 Tom Tromey <tromey@cygnus.com> 15631 15632 * cp-tree.h (build_java_class_ref): Declare. 15633 * init.c (build_java_class_ref): No longer static. 15634 * except.c (expand_throw): Generate a Java-style `throw' if the 15635 thrown object is a "Java" object. 15636 (initialize_handler_parm): Generate a Java-style lookup of 15637 exception info if the caught object is a "Java" object. 15638 (catch_language, catch_language_init): New globals. 15639 (decl_is_java_type): New function. 15640 (expand_start_catch_block): Don't call push_eh_info() or 15641 push_eh_cleanup() when handling a Java-style "catch". Pass Java 15642 class reference to build_catch_block. 15643 15644Thu Mar 2 13:32:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15645 15646 * typeck.c (comptypes): Treat sizetype like its language equivalent. 15647 156482000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> 15649 15650 * typeck.c (maybe_warn_about_returning_address_of_local): Reorganize 15651 to merge reference/pointer code and fix incorrect warnings. 15652 156532000-02-29 Jason Merrill <jason@casey.cygnus.com> 15654 15655 * search.c (protected_accessible_p): Use context_for_name_lookup. 15656 15657 * init.c (construct_virtual_bases): Fix thinko. 15658 * typeck.c (expand_ptrmemfunc_cst): Fix thinko. 15659 156602000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> 15661 15662 * decl.c (current_function_decl): Move to toplev.c. 15663 156642000-02-29 Nathan Sidwell <nathan@codesourcery.com> 15665 15666 * pt.c (fn_type_unification): Unify return type, whenever 15667 provided. 15668 (get_bindings_real): Only pass return type when necessary. 15669 Remove explicit return type check. 15670 * class.c (resolve_address_of_overloaded_function): Pass desired 15671 return type to fn_type_unification. 15672 15673Mon Feb 28 08:15:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15674 15675 * class.c (build_vtbl_or_vbase_field, check_methods): Don't clear 15676 DECL_FIELD_SIZE. 15677 (check_bitfield_decl, check_field_decls): Set DECL_SIZE, not 15678 DECL_FIELD_SIZE. 15679 * rtti.c (expand_class_desc): Likewise. 15680 * cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name. 15681 (THUNK_VCALL_OFFSET): Likewise. 15682 (THUNK_DELTA): Reflect changes in ../tree.h. 15683 156842000-02-28 Jason Merrill <jason@casey.cygnus.com> 15685 15686 * search.c (protected_accessible_p): Also allow the access if 15687 the member is public in DERIVED. Lose TYPE parm. 15688 (friend_accessible_p): Lose TYPE parm. 15689 (accessible_p): Adjust. 15690 15691Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15692 15693 * class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop 15694 on things that are not sizes; ssize_binop deleted. 15695 Call size_diffop when appropriate. 15696 (dfs_build_vcall_offset_vtbl_entries): Likewise. 15697 (build_primary_vtable, build_secondary_vtable): Likewise. 15698 (dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise. 15699 Variable I is HOST_WIDE_INT. 15700 (get_vfield_offset): Pass proper types to size_binop. 15701 (size_extra_vtbl_entries, layout_virtual_bases): Likewise. 15702 (finish_struct_1): Likewise. 15703 (skip_rtti_stuff): Arg N is now pointer to signed. 15704 (layout_class_type): Use size_zero_node. 15705 * cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed. 15706 * cvt.c (cp_convert_to_pointer): Pass proper types to size_binop. 15707 * decl.c (complete_arry_type): Pass proper types to size_binop. 15708 (xref_basetypes): BINFO_OFFSET is sizetype. 15709 * error.c (dump_expr): Don't use size_binop non-sizes. 15710 * expr.c (cplus_expand_constant): Pass proper types to size_binop. 15711 * init.c (construct_virtual_bases): Fix type error. 15712 (build_vec_delete_1): Pass proper type to size_binop and don't 15713 fold result. 15714 * lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype. 15715 * rtti.c (get_base_offset): Pass proper type to size_binop. 15716 * search.c (dfs_find_vbases): Fix type error. 15717 (expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed. 15718 (dfs_get_vbase_types): BINFO_OFFSET is sizetype. 15719 * tree.c (debug_binfo): Variable N is signed. 15720 Use HOST_WIDE_INT_PRINT_DEC. 15721 * typeck.c (comptypes): sizetype is same as equivalent integer type. 15722 (c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT, 15723 size_one_node and size_zero_node. 15724 (c_alignof): Use size_one_node. 15725 (build_component_addr): Pass proper types to size_binop. 15726 (expand_ptrmemfunc_cst): Don't use size_binop on non-sizes. 15727 157282000-02-26 Jason Merrill <jason@casey.cygnus.com> 15729 15730 Implement class scope using-declarations for functions. 15731 * class.c (handle_using_decl): Call add_method for used functions. 15732 Use IDENTIFIER_CLASS_VALUE to check for conflicts. 15733 (add_method): Used functions are hidden by local functions. 15734 (check_bases_and_members): Handle using-decls before finalizing 15735 CLASSTYPE_METHOD_VEC. 15736 * call.c (add_function_candidate): Add ctype parm; if nonzero, 15737 override the type of 'this' accordingly. 15738 (add_template_candidate, add_template_candidate_real): Add ctype parm. 15739 (convert_class_to_reference, build_user_type_conversion_1, 15740 build_new_function_call, build_object_call, build_new_op, 15741 build_new_method_call): Pass ctype parm. 15742 15743 * search.c (lookup_member): Put rval_binfo, not basetype_path, in 15744 the baselink. 15745 * call.c (convert_class_to_reference, build_user_type_conversion_1, 15746 build_new_function_call, build_object_call, build_new_op, 15747 build_new_method_call, build_op_delete_call): Don't get basetype_path 15748 from a baselink. 15749 * typeck.c (build_component_ref): Likewise. 15750 * init.c (build_offset_ref): Likewise. 15751 (resolve_offset_ref): Don't call enforce_access. 15752 Call build_scoped_ref. 15753 * typeck2.c (build_scoped_ref): Simplify. Do nothing if it 15754 would cause an error or if -pedantic. 15755 * class.c (alter_access): Lose binfo parm. 15756 157572000-02-26 Mark Mitchell <mark@codesourcery.com> 15758 15759 * semantics.c (simplify_aggr_init_exprs_p): Don't walk into 15760 types. 15761 157622000-02-25 Alfred Minarik <a8601248@unet.univie.ac.at> 15763 15764 * rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info 15765 pseudo_type_info creation into the std namespace 15766 157672000-02-26 Mark Mitchell <mark@codesourcery.com> 15768 15769 * cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF. 15770 (import_export_class): Remove declaration. 15771 * decl2.c (import_export_class): Make it static. 15772 * dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR, 15773 PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, 15774 EXPR_WITH_FILE_LOCATION. 15775 * lex.c (check_newline): Tweak filename/lineno setting. 15776 * semantics.c (begin_while_stmt): Fix typo in comment. 15777 15778Sat Feb 26 19:50:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15779 15780 * lang-options.h (-fmessage-length=): Add missing option. 15781 15782 * Make-lang.in (CXX_SRCS): Add .h files and sort list. 15783 157842000-02-26 Zack Weinberg <zack@wolery.cumb.org> 15785 15786 * Make-lang.in: Delete refs to LIBGCC2_DEPS. 15787 15788Fri Feb 25 14:52:33 2000 Jim Wilson <wilson@cygnus.com> 15789 15790 * optimize.c (expand_call_inline): Emit the return label before 15791 evaluating the return value. 15792 157932000-02-24 Mark Mitchell <mark@codesourcery.com> 15794 15795 * lex.c (check_newline): Use push_srcloc and pop_srcloc, rather 15796 than duplicating functionality here. 15797 * optimize.c: Include input.h. 15798 (expand_call_inline): Use push_srcloc and pop_srcloc. 15799 * parse.y (maybe_cv_qualifier): Remove calls to emit_line_note. 15800 * parse.c: Regenerated. 15801 * Makefile.in (lex.o): Depend on input.h. 15802 (optimize.o): Likewise. 15803 158042000-02-24 Nathan Sidwell <nathan@codesourcery.com> 15805 15806 * decl.c (grokdeclarator): Diagnose qualifiers on non-member 15807 function type, rather than ICE. 15808 158092000-02-23 Jason Merrill <jason@casey.cygnus.com> 15810 15811 * decl.c (grokdeclarator): Call decl_type_access_control. 15812 * parse.y (parse_end_decl): Don't call decl_type_access_control if 15813 decl is null. 15814 158152000-02-23 Nathan Sidwell <nathan@codesourcery.com> 15816 15817 * decl.c (decls_match): Remove obsolete static member nadgering. 15818 158192000-02-21 Martin v. L�wis <loewis@informatik.hu-berlin.de> 15820 15821 * decl.c (grokdeclarator): Change ANSI to ISO. 15822 * lex.c (consume_string, readescape, do_identifier): Likewise. 15823 (parse_float, real_yylex): Likewise. 15824 * parse.y (paren_expr_or_null, paren_cond_or_null): Likewise. 15825 (unary_expr, new_initializer, cast_expr, primary, primary_no_id, 15826 new_type_id, maybe_label_decls, simple_stmt, 15827 for.init.statement): Likewise. 15828 * pt.c (do_decl_instantiation, do_type_instantiation): Likewise. 15829 * semantics.c (finish_named_return_value): Likewise. 15830 * parse.c: Regenerate. 15831 158322000-02-21 Mark Mitchell <mark@codesourcery.com> 15833 15834 * cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro. 15835 (CPTI_CLASS_STAR_TYPE): Remove. 15836 (vtable_index_type): Likewise. 15837 (class_star_type_node): Remove. 15838 (TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI. 15839 (build_binary_op_nodefault): Remove. 15840 * call.c (build_new_op): Use build_binary_op instead of 15841 build_binary_op_nodefault. 15842 * decl.c (init_decl_processing): Remove class_star_type_node 15843 initialization. Make delta_type_node ptrdiff_type_node under the 15844 new ABI. Initialize vtable_index_type. 15845 (build_ptrmemfunc_type): Build different structures for the new 15846 ABI. 15847 (build_enumerator): Use build_binary_op instead of 15848 build_binary_op_nodefault. 15849 * method.c (build_overload_value): Mangle pointers-to-members 15850 appropriately under the new ABI. 15851 * typeck.c (build_array_ref): Use build_binary_op instead of 15852 build_binary_op_nodefault. 15853 (get_member_function_from_ptrfunc): Adjust for the new ABI. 15854 (build_binary_op_nodefault): Rename to ... 15855 (build_binary_op): ... this. Remove old version. Adjust for 15856 pointer-to-member comparisons under the new ABI. 15857 (build_ptrmemfunc1): Remove dead code. Adjust for the new ABI. 15858 (build_ptrmemfunc): Adjust for the new ABI. 15859 (expand_ptrmemfunc_cst): Likewise. 15860 (delta2_from_ptrmemfunc): Assert that we're not using the new ABI. 15861 (pfn_from_ptrmemfunc): Adjust for the new ABI. 15862 158632000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> 15864 15865 * call.c (build_object_call): Compress consecutive calls to 15866 cp_error. 15867 (build_conditional_expr): Say 'ISO C++' not 'ANSI C++'. 15868 (build_op_delete_call): Adjust message formatting. 15869 15870 * class.c (check_bases): Compress consecutive calls to 15871 cp_pedwarn. 15872 (finish_struct_anon): Say 'ISO C++'. 15873 15874 * decl.c (start_decl): Same here. 15875 (grok_reference_init): Likewise. 15876 (grokfndecl): Correct message formatting. 15877 (grokfndecl): Improve diagnostic. 15878 (check_static_variable_definition): Likewise. Say 'ISO C++' 15879 (compute_array_index_type): Say 'ISO C++' 15880 (create_array_type_for_decl): Compress consecutive calls to 15881 cp_error. 15882 (grokdeclarator): Say 'ISO C++' 15883 (grok_op_properties): Likewise. 15884 15885 * decl2.c (delete_sanity): Clairify diagnostic. 15886 (check_member_template): Same here. 15887 (grok_function_init): Use consistent terminology. 15888 15889 * expr.c (do_case): Say 'ISO C++' 15890 15891 * friend.c (do_friend): Compress consecutive calls to warning. 15892 158932000-02-20 Mark Mitchell <mark@codesourcery.com> 15894 15895 * cp-tree.h (merge_primary_and_secondary_vtables_p): New macro. 15896 * class.c (build_secondary_vtable): Reorganize. Don't create a 15897 new vtable under the new ABI. 15898 (layout_vtable_decl): Don't add num_extra_vtbl_entries when 15899 computing the size. 15900 (build_vtbl_initializer): Don't return a CONSTRUCTOR; just return 15901 the initializing elements. 15902 (initialize_vtable): New function. 15903 (dfs_finish_vtbls): Use it. 15904 (dfs_accumulate_vtbl_inits): New function. 15905 (finish_vtbls): Merge primary and secondary vtables under the new 15906 ABI. 15907 (finish_struct_1): Remove redundant call to layout_vtable_decl. 15908 * init.c (expand_virtual_init): Deal with BINFO_VTABLEs that 15909 aren't VAR_DECLs. 15910 15911 * class.c (build_vtable): New function, split out from ... 15912 (get_vtable_decl): ... here, and ... 15913 (build_secondary_vtable): ... here. 15914 15915 * pt.c (tsubst_decl): Fix formatting. 15916 15917Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15918 15919 * class.c (build_primary_vtable, layout_vtable_decl): Likewise. 15920 (avoid_overlap, build_base_field): Likewise. 15921 (build_base_field, build_base_fields, is_empty_class): 15922 Test DECL_SIZE with integer_zero. 15923 (layout_class_type): Set CLASSTYPE_SIZE_UNIT. 15924 * cp-tree.h (struct lang_type): New field size_unit. 15925 (CLASSTYPE_SIZE_UNIT): New macro. 15926 * decl.c (init_decl_processing): Set DECL_SIZE_UNIT. 15927 (cp_finish_decl): Delete -Wlarger-than processing. 15928 * optimize.c (remap_decl): Walk DECL_SIZE_UNIT. 15929 * pt.c (tsubst_decl): Set DECL_SIZE_UNIT. 15930 * tree.c (make_binfo): binfo vector is one entry longer. 15931 (walk_tree): Walk DECL_SIZE_UNIT. 15932 159332000-02-19 Mark Mitchell <mark@codesourcery.com> 15934 15935 * class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in 15936 comment. 15937 (build_vtable_entry): Don't assume all vtable entries are 15938 functions. 15939 (build_vtbl_initializer): Adjust accordingly. 15940 (get_vtable_decl): Fix formatting. 15941 159422000-02-18 Jason Merrill <jason@casey.cygnus.com> 15943 15944 * semantics.c (deferred_type_access_control): Walk the entire 15945 type_lookups list. 15946 (save_type_access_control): Rename from 15947 initial_deferred_type_access_control. Just remember the value. 15948 (decl_type_access_control): New fn. 15949 (begin_function_definition): Use deferred_type_access_control, after 15950 we've started the function. Set type_lookups to error_mark_node. 15951 * parse.y (frob_specs, fn.def1): Adjust. 15952 (parse_decl0, parse_field, parse_field0, parse_bitfield): New fns. 15953 (parse_end_decl, parse_bitfield0, parse_method): New fns. 15954 (fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them. 15955 (after_type_component_declarator0): Likewise. 15956 (after_type_component_declarator): Likewise. 15957 (notype_component_declarator): Likewise. 15958 * cp-tree.h: Adjust. 15959 15960 * decl.c (redeclaration_error_message): Allow redeclaration of 15961 namespace-scope decls. 15962 159632000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 15964 15965 * typeck2.c (my_friendly_abort): Use GCCBUGURL. 15966 159672000-02-17 Mark Mitchell <mark@codesourcery.com> 15968 15969 * class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT. 15970 * decl2.c (grokclassfn): Likewise. 15971 15972 * ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS. 15973 15974 * decl2.c (lang_decode_option): Don't set default message length 15975 here. 15976 * lex.c (lang_init_options): Set it here. 15977 159782000-02-16 Mark Mitchell <mark@codesourcery.com> 15979 15980 Make DECL_CONTEXT mean the class in which a member function was 15981 declared, even for a virtual function. 15982 * cp-tree.h (DECL_CLASS_CONTEXT): Adjust. 15983 (DECL_FRIEND_CONTEXT): New macro. 15984 (DECL_REAL_CONTEXT): Remove. 15985 (SET_DECL_FRIEND_CONTEXT): Likewise. 15986 (DECL_VIRTUAL_CONTEXT): Adjust. 15987 (DECL_CLASS_SCOPE_P): Use TYPE_P. 15988 (add_friends): Remove. 15989 (hack_decl_function_context): Likewise. 15990 * call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with 15991 CP_DECL_CONTEXT. 15992 (build_over_call): Fix indentation. Use DECL_CONTEXT 15993 instead of DECL_CLASS_CONTEXT. 15994 * class.c (dfs_build_vcall_offset_vtbl_entries): Likewise. 15995 (add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 15996 (strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 15997 (build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT. 15998 (build_base_field): Likewise. 15999 (finish_struct_1): Likewise. 16000 (build_self_reference): Likewise. 16001 * decl.c (push_class_binding): Use CP_DECL_CONTEXT, not 16002 DECL_REAL_CONTEXT. 16003 (pushtag): Use decl_function_context, not 16004 hack_decl_function_context. 16005 (decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 16006 (duplicate_decls): Use DECL_VIRTUAL_CONTEXT. 16007 (pushdecl): Remove bogus code. 16008 (start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT. 16009 (cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 16010 (grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 16011 Use decl_function_context, nothack_decl_function_context. 16012 (grokvardecl): Don't set DECL_CLASS_CONTEXT. 16013 (grokdeclarator): Likewise. Use decl_function_context, not 16014 hack_decl_function_context. 16015 (copy_args_p): Document. Don't use DECL_CLASS_CONTEXT. 16016 (start_function): Use DECL_FRIEND_CONTEXT, not 16017 DECL_CLASS_CONTEXT. Use decl_function_context, not 16018 hack_decl_function_context. 16019 (finish_function): Use decl_function_context, not 16020 hack_decl_function_context. 16021 (maybe_retrofit_in_chrg): Use DECL_CONTEXT, not 16022 DECL_CLASS_CONTEXT. 16023 (grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT. 16024 (finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT. 16025 (grokfield): Likewise. 16026 (finish_builtin_type): Likewise. 16027 (finish_vtable_vardec): Use decl_function_context, not 16028 hack_decl_function_context. 16029 (import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 16030 (start_static_initialization_or_destruction): Likewise. 16031 (finish_static_initialization_or_destruction): Likewise. 16032 (mark_used): Adjust logic for deciding when to synthesize methods. 16033 * dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not 16034 DECL_REAL_CONTEXT. 16035 * error.c (dump_function_decl): Use DECL_CONTEXT, not 16036 DECL_CLASS_CONTEXT. 16037 * friend.c (is_friend): Likewise. 16038 (add_friends): Remove. 16039 (do_friend): Use SET_DECL_FRIEND_CONTEXT. 16040 * lex.c (begin_definition_of_inclass_inline): Use 16041 decl_function_context, not hack_decl_function_context. 16042 (process_next_inline): Likewise. 16043 (do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 16044 * method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not 16045 DECL_CLASSS_CONTEXT. 16046 (hack_identifier): Likewise. 16047 (synthesize_method): Use decl_function_context, not 16048 hack_decl_function_context. 16049 * pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not 16050 DECL_REAL_CONTEXT. 16051 (is_member_template): Use decl_function_context, not 16052 hack_decl_function_context. Use DECL_CONTEXT, not 16053 DECL_CLASS_CONTEXT. 16054 (build_template_decl): Set DECL_VIRTUAL_CONTEXT, not 16055 DECL_CLASS_CONTEXT. 16056 (check_default_tmpl_args): Use CP_DECL_CONTEXT, not 16057 DECL_REAL_CONTEXT. 16058 (push_template_decl_real): Likewise. 16059 (instantiate_class_template): Don't call add_friends. 16060 (tsubst_default_argument): Use DECL_CONTEXT, not 16061 DECL_REAL_CONTEXT. 16062 (tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 16063 Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 16064 (set_meangled_name_for_template_decl): Use DECL_CONTEXT, not 16065 DECL_CLASS_CONTEXT. 16066 * repo.c (repo_inline_used): Likewise. 16067 * search.c (current_scope): Adjust for new _CONTEXT macros. 16068 (context_for_name_lookup): Use CP_DECL_CONTEXT, not 16069 DECL_REAL_CONTEXT. 16070 (friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 16071 (lookup_fnfields_here):Likewise. 16072 (check_final_overrider): Likewise. 16073 (init_vbase_pointers): Likewise. 16074 (virtual_context): Likewise. 16075 * semantics.c (finish_member_declaration): Just set DECL_CONTEXT. 16076 (expand_body): Use decl_function_context, not 16077 hack_decl_function_context. 16078 * tree.c (hack_decl_function_context): Remove. 16079 * typeck.c (build_x_function_call): Use DECL_CONTEXT, not 16080 DECL_CLASS_CONTEXT. 16081 * typeck2.c (error_not_base_type): Likewise. 16082 160832000-02-15 Jason Merrill <jason@casey.cygnus.com> 16084 16085 * decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE. 16086 160872000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16088 16089 * Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h. 16090 160912000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> 16092 16093 * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec. 16094 160952000-01-16 Gabriel Dos Reis <gdr@codesourcery.com> 16096 16097 * decl2.c (lang_decode_option): Enable automatic line wrapping. 16098 160992000-02-13 Jason Merrill <jason@casey.cygnus.com> 16100 16101 * parse.y (frob_specs): Split out... 16102 (parse_decl): From here. 16103 (fn.def2): Call initial_deferred_type_access_control. 16104 (after_type_component_declarator0): Call frob_specs. 16105 (notype_component_declarator0): Likewise. 16106 * search.c (friend_accessible_p): Nested classes are friends of their 16107 enclosing classes. 16108 161092000-02-10 Mark Mitchell <mark@codesourcery.com> 16110 16111 * ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be 16112 used to create an implicit temporary. 16113 16114 * class.c (dfs_modify_vtables): Tweak calculation of functions to 16115 override. 16116 161172000-02-08 Nathan Sidwell <nathan@acm.org> 16118 16119 * typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to 16120 strip array element qualifiers too. 16121 161222000-02-07 Mark Mitchell <mark@codesourcery.com> 16123 16124 * decl.c (store_parm_decls): Don't build cleanups for parameters 16125 while processing_template_decl. 16126 161272000-02-07 Jason Merrill <jason@casey.cygnus.com> 16128 16129 * cp-tree.h (struct saved_scope): Add incomplete field. 16130 (namespace_scope_incomplete): New macro. 16131 * decl.c (pushdecl): Use it. 16132 (hack_incomplete_structures): Use it. See through artificial 16133 binding levels. 16134 (mark_saved_scope): Mark it. 16135 16136 Implement access control for nested types. 16137 * search.c (type_access_control): New fn. 16138 (accessible_p): Now we do perform access control for types. 16139 * semantics.c (deferred_type_access_control): New fn. 16140 (initial_deferred_type_access_control): New fn. 16141 (begin_function_definition): Call it. Add lookups parm. 16142 * decl.c (struct binding_level): Add this_class field. 16143 (pushlevel_class): Set it. 16144 (mark_binding_level): Mark it. 16145 (lookup_name_real): Use it. Call type_access_control. 16146 (mark_saved_scope): Mark lookups field. 16147 * cp-tree.h (flagged_type_tree): Add lookups field. 16148 (struct saved_scope): Add lookups field. 16149 (type_lookups): New macro. 16150 * parse.y (declmods): Now <ftype>. 16151 (parse_decl): Add lookups parm. Call 16152 initial_deferred_type_access_control. 16153 (lang_extdef): Clear type_lookups. 16154 (typed_declspecs, declmods, typespec): Set lookups field. 16155 (initdcl): Call deferred_type_access_control. 16156 (fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0, 16157 component_decl_1, named_parm): Adjust. 16158 * friend.c (is_friend): Nested classes are friends of their 16159 enclosing classes. 16160 16161 * class.c (currently_open_derived_class): New fn. 16162 * method.c (hack_identifier): Use it. 16163 16164 * lex.c (do_identifier): Remove obsolete code. 16165 16166 * parse.y (typed_typespecs): Propagate new_type_flag properly. 16167 161682000-02-05 Zack Weinberg <zack@wolery.cumb.org> 16169 16170 * tinfo.h: Remove apostrophes from C++ comment (xgettext 16171 thinks this file is plain C). 16172 161732000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16174 16175 * Makefile.in (call.o): Depend on $(EXPR_H). 16176 16177 * call.c: Include "expr.h". 16178 16179 * class.c (dump_class_hierarchy): Add prototype. 16180 16181 * search.c (dfs_get_pure_virtuals): Likewise. 16182 161832000-02-1 Ulrich Drepper <drepper@redhat.com> 16184 16185 * parse.y (simple_stmt): Allow :: token in asm parameter list. 16186 * parse.c: Rebuilt. 16187 16188Mon Jan 31 15:35:29 2000 Jim Wilson <wilson@cygnus.com> 16189 16190 * class.c (build_vtbl_or_vbase_field): New parameter fcontext. 16191 Store it in DECL_FCONTEXT. 16192 (build_vbase_pointer_fields, create_vtable_ptr): Fix callers. 16193 161942000-01-31 Jason Merrill <jason@casey.cygnus.com> 16195 16196 * tinfo.h (old abi): #include "tconfig.h". 16197 * tinfo.cc (convert_to_base): Move into old abi section. 16198 161992000-01-31 Mark Mitchell <mark@codesourcery.com> 16200 16201 * cp-tree.h (BINFO_VIRTUALS): Tweak documentation. 16202 (CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO. 16203 (BINFO_PRIMARY_BINFO): New macro. 16204 (BF_DELTA): Rename to ... 16205 (BV_DELTA): ... this. 16206 (BF_VCALL_INDEX): Rename to ... 16207 (BV_VCALL_INDEX): ... this. 16208 (BF_FN): Rename to ... 16209 (BV_FN): ... this. 16210 * class.c (build_vbase_path): Adjust for changes to reverse_path. 16211 (set_rtti_entry): Rename BF_ macros to BV_ variants. 16212 (modify_vtable_entry): Simplify. 16213 (add_virtual_function): Rename BF_ macros to BV_ variants. 16214 (build_vtable_initializer): Likewise. 16215 (get_class_offset_1): Remove. 16216 (dfs_get_class_offset): Likewise. 16217 (get_class_offset): Likewise. 16218 (dfs_find_final_overrider): New function. 16219 (find_final_overrider): Likewise. 16220 (modify_one_vtable): Remove. 16221 (dfs_find_base): New function. 16222 (dfs_modify_vtables): Fold modify_one_vtable in here. Use 16223 find_final_overrider. 16224 (modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new 16225 virtuals. 16226 (dfs_fixup_vtable_deltas): Remove. 16227 (override_one_vtable): Remove. 16228 (merge_overrides): Likewise. 16229 (layout_virtual_bases): Make sure BINFO_OFFSET is set right for 16230 unreal chilren of virtual bases. 16231 (finish_struct_1): Don't use merge_overrides. Don't use 16232 dfs_fixup_vtable_deltas. 16233 * tree.c (reverse_path): Return a TREE_LIST, not a chain of 16234 BINFOs. 16235 162362000-01-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 16237 Jason Merrill <jason@yorick.cygnus.com> 16238 16239 * tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT. 16240 162412000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at> 16242 16243 * exception.cc (__throw_bad_typeid): Add missing std::. 16244 162452000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16246 16247 * cp-tree.h (make_thunk): PROTO -> PARAMS. 16248 162492000-01-31 Nathan Sidwell <sidwell@codesourcery.com> 16250 16251 * cp-tree.h (new_abi_rtti_p): Use flag_new_abi. 16252 16253 Runtime support for new-abi rtti. 16254 * inc/typeinfo (type_info::operator!=): Define in class. 16255 (type_info::before, type_info::name, type_info::operator==, 16256 type_info::operator!=): Define new ABI implementations. 16257 (type_info::is_pointer_p, type_info::is_function_p): Declare 16258 new virtual functions. 16259 (type_info::do_catch, type_info::do_upcast): Likewise. 16260 16261 * tinfo.h (__base_class_info): Define new class. 16262 (__class_type_info): Likewise. 16263 (__si_class_type_info): Likewise. 16264 (__vmi_class_type_info): Likewise. 16265 (__dynamic_cast): Prototype. 16266 16267 * tinfo.cc: Conditionalize old and new rtti mechanisms. 16268 (type_info::is_pointer_p): Define new function. 16269 (type_info::is_function_p): Likewise. 16270 (type_info::do_catch): Likewise. 16271 (type_info::do_upcast): Likewise. 16272 (vtable_prefix): New structure for vtable access. 16273 (adjust_pointer): Define new template function. 16274 (contained_p, public_p, virtual_p, contained_public_p, 16275 contained_nonpublic_p, contained_nonvirtual_p): Define new 16276 functions. 16277 (nonvirtual_base_type): New local variable. 16278 (__class_type_info::~__class_type_info): Define. 16279 (__si_class_type_info::~__si_class_type_info): Likewise. 16280 (__vmi_class_type_info::~__vmi_class_type_info): Likewise. 16281 (__class_type_info::do_catch): Define new function. 16282 (__class_type_info::do_upcast): Likewise. 16283 (__class_type_info::find_public_src): Likewise. 16284 (__class_type_info::do_find_public_src): Likewise. 16285 (__si_class_type_info::do_find_public_src): Likewise. 16286 (__vmi_class_type_info::do_find_public_src): Likewise. 16287 (__class_type_info::do_dyncast): Likewise. 16288 (__si_class_type_info::do_dyncast): Likewise. 16289 (__vmi_class_type_info::do_dyncast): Likewise. 16290 (__class_type_info::do_upcast): Likewise. 16291 (__si_class_type_info::do_upcast): Likewise. 16292 (__vmi_class_type_info::do_upcast): Likewise. 16293 (__dynamic_cast): Likewise. 16294 16295 * tinfo2.cc (__fundamental_type_info): Define new class. 16296 (__pointer_type_info): Likewise. 16297 (__reference_type_info): Likewise. 16298 (__array_type_info): Likewise. 16299 (__function_type_info): Likewise. 16300 (__enum_type_info): Likewise. 16301 (__ptr_to_member_type_info): Likewise. 16302 (__fundamental_type_info::~__fundamental_type_info): Define. 16303 (__pointer_type_info::~__pointer_type_info): Likewise. 16304 (__reference_type_info::~__reference_type_info): Likewise. 16305 (__array_type_info::~__array_type_info): Likewise. 16306 (__function_type_info::~__function_type_info): Likewise. 16307 (__enum_type_info::~__enum_type_info): Likewise. 16308 (__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise. 16309 (__pointer_type_info::do_catch): Define new function. 16310 (__ptr_to_member_type_info::do_catch): Define new function. 16311 16312 (__throw_type_match_rtti_2): Use new ABI interface, if enabled. 16313 (__is_pointer): Likewise. 16314 16315 * exception.cc (__cplus_type_matcher): Deal with new-abi rtti. 16316 163172000-01-30 Mark Mitchell <mark@codesourcery.com> 16318 16319 * cp/class.c (build_vtable): Rename to build_primary_vtable. 16320 (prepare_fresh_vtable): Rename to build_secondary_vtable. 16321 (make_new_vtable): New function. 16322 (modify_vtable_entry): Handle generation of new vtables correctly. 16323 (modify_one_vtable): Remove unused parameter. 16324 (dfs_fixup_vtable_deltas): Likewise. 16325 (override_one_vtable): Use build_secondary_vtable. 16326 (finish_struct_1): Use build_primary_vtable and 16327 build_secondary_vtable. 16328 163292000-01-28 Ulrich Drepper <drepper@redhat.com> 16330 16331 * cp/decl.c: Adjust variable names, comments, help strings. 16332 163332000-01-29 Nathan Sidwell <nathan@acm.org> 16334 16335 * new2.cc (operator delete[]): Use operator delete, don't assume 16336 implementation. 16337 163382000-01-29 Nathan Sidwell <sidwell@codesourcery.com> 16339 16340 * class.c (build_vtbl_initializer): Add argument to 16341 build_vtable_entry call. 16342 163432000-01-27 Mark Mitchell <mark@codesourcery.com> 16344 16345 * cp-tree.def (THUNK_DECL): Discuss vcall indices. 16346 * cp-tree.h (BINFO_VIRTUALS): Update documentation. 16347 (BF_DELTA): New macro. 16348 (BF_VCALL_INDEX): Likewise. 16349 (BF_FN): Likewise. 16350 (THUNK_VCALL_OFFSET): Likewise. 16351 (make_thunk): Change prototype. 16352 * class.c (build_vtable_entry): Integrate 16353 build_vtable_entry_for_fn. Handle vcall indices. 16354 (build_vtable_entry_for_fn): Remove. 16355 (set_rtti_entry): Handle vcall indices. Use BF_DELTA, 16356 BF_VCALL_INDEX, BF_FN. 16357 (modify_vtable_entry): Integrate common code from 16358 modify_one_vtable and dfs_fixup_vtable_deltas. 16359 (add_virtual_function): Set BF_VCALL_INDEX. 16360 (build_vtbl_initializer): Simplify. Use BF_DELTA, BF_VCALL_INDEX, 16361 and BF_FN. 16362 (modify_one_vtable): Simplify. 16363 (dfs_fixup_vtable_deltas): Likewise. 16364 (override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN. 16365 * method.c (make_thunk): Handle vcall indices. 16366 163672000-01-28 Nathan Sidwell <sidwell@codesourcery.com> 16368 16369 Compiler side new abi rtti (not enabled). 16370 * cp-tree.h (new_abi_rtti_p): New macro. 16371 (emit_support_tinfos): Prototype new function. 16372 (tinfo_decl_p): Likewise. 16373 (emit_tinfo_decl): Likwise. 16374 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor 16375 macros. 16376 (doing_runtime): New local static. 16377 (init_rtti_processing): Add new-abi initializer. 16378 (get_tinfo_decl): Add new-abi logic. 16379 (tinfo_from_decl): Likewise. 16380 (build_dynamic_cast_1): Likewise. 16381 (qualifier_flags): New static function. 16382 (tinfo_base_init): Likewise. 16383 (generic_initializer): Likewise. 16384 (ptr_ref_initializer): Likewise. 16385 (ptmd_initializer): Likewise. 16386 (class_hint_flags): Likewise. 16387 (class_initializer): Likewise. 16388 (synthesize_tinfo_var): Likewise. 16389 (create_real_tinfo_var): Likewise. 16390 (create_pseudo_type_info): Likewise. 16391 (get_vmi_pseudo_type_info): Likewise. 16392 (create_tinfo_types): Likewise. 16393 (emit_support_tinfos): New global function. 16394 (tinfo_decl_p): New global predicate. 16395 (emit_tinfo_decl): New global function. 16396 * class.c (set_rtti_entry): Generalize for old and new rtti. 16397 (build_vtbl_initializer): Likewise. 16398 * decl2.c (finish_file): Likewise. 16399 16400Thu Jan 27 20:53:36 2000 Jim Wilson <wilson@cygnus.com> 16401 16402 * optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t) 16403 and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))). 16404 16405Thu Jan 27 13:54:12 2000 Mike Stump <mrs@wrs.com> 16406 16407 * decl.c (pushdecl): Fix up shadow warnings with respect to implicit 16408 for scopes. 16409 164102000-01-26 Jason Merrill <jason@casey.cygnus.com> 16411 16412 * pt.c (unify): Use fold, not maybe_fold_nontype_arg. 16413 16414Wed Jan 26 22:19:14 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 16415 16416 * optimize.c (calls_setjmp_r): Supply new argument 16417 to special_function_p. 16418 164192000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16420 16421 * call.c: PROTO -> PARAMS. 16422 * class.c: Likewise. 16423 * cp-tree.h: Likewise. 16424 * cvt.c: Likewise. 16425 * decl.c: Likewise. 16426 * decl.h: Likewise. 16427 * decl2.c: Likewise. 16428 * dump.c: Likewise. 16429 * errfn.c: Likewise. 16430 * error.c: Likewise. 16431 * except.c: Likewise. 16432 * expr.c: Likewise. 16433 * init.c: Likewise. 16434 * input.c: Likewise. 16435 * lex.c: Likewise. 16436 * lex.h: Likewise. 16437 * method.c: Likewise. 16438 * optimize.c: Likewise. 16439 * parse.y: Likewise. 16440 * pt.c: Likewise. 16441 * repo.c: Likewise. 16442 * rtti.c: Likewise. 16443 * search.c: Likewise. 16444 * semantics.c: Likewise. 16445 * spew.c: Likewise. 16446 * tree.c: Likewise. 16447 * typeck.c: Likewise. 16448 * typeck2.c: Likewise. 16449 * xref.c: Likewise. 16450 164512000-01-25 Richard Henderson <rth@cygnus.com> 16452 16453 * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR. 16454 164552000-01-25 Mark Mitchell <mark@codesourcery.com> 16456 16457 * cp-tree.h (vcall_offset_in_vtable_p): New macro. 16458 * class.c (build_vbase_offset_vtbl_entries): Fix typo in commment. 16459 (struct vcall_offset_data_s): New type. 16460 (dfs_vcall_offset_queue_p): New function. 16461 (dfs_build_vcall_offset_vtbl_entries): Likewise. 16462 (build_vcall_offset_vtbl_entries): Likewise. 16463 (layout_vtable_decl): Likewise. 16464 (num_vfun_entries): Likewise. 16465 (num_extra_vtbl_entries): Add the entries for vcall offsets. 16466 (build_vtbl_initializer): Likewise. 16467 (dfs_finish_vtabls): Use layout_vtable_decl. 16468 (modify_one_vtables): Always duplicate vtables under the new ABI. 16469 (finish_struct_1): Use layout_vtable_decl. 16470 164712000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16472 16473 * decl.c (member_function_or_else): Change third arg from a format 16474 specifier to an `enum overload_flags'. Callers changed. 16475 164762000-01-25 Gabriel Dos Reis <gdr@codesourcery.com> 16477 16478 * typeck.c (composite_pointer_type, c_sizeof, expr_sizeof, 16479 build_binary_op_nodefault, build_unary_op, build_reinterpret_cast, 16480 build_const_cast, get_delta_difference, check_return_expr): Avoid 16481 ANSI string concatenation usage. 16482 164832000-01-24 Mark Mitchell <mark@codesourcery.com> 16484 16485 * class.c (layout_class_type): Put the fields required to make a 16486 class non-empty at the end, not the beginning, of the TYPE_FIELDs 16487 list. 16488 164892000-01-24 Jason Merrill <jason@casey.cygnus.com> 16490 16491 * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a 16492 template. 16493 16494 * decl2.c (mark_used): Do instantiate inlines that have been 16495 explicitly instantiated. 16496 164972000-01-24 Richard Henderson <rth@cygnus.com> 16498 16499 * call.c (build_over_call): Use expand_tree_builtin. 16500 * typeck.c (build_function_call_real): Likewise. 16501 (build_binary_op_nodefault): Handle unordered compares. 16502 165032000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 16504 16505 * cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New 16506 cp_tree_index values. 16507 (throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node): 16508 New global node #defines for them. 16509 * rtti.c (call_void_fn): Replace with ... 16510 (build_runtime_decl): ... new static function. 16511 (throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl. 16512 (throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl. 16513 (build_dynamic_cast_1): Always produce correctly typed result. 16514 Explicitly produce type_info addresses. Use dynamic_cast_node. 16515 * exception.cc (__throw_bad_cast): Return `void *'. 16516 (__throw_bad_typeid): Return `const type_info &'. 16517 165182000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 16519 16520 * cp-tree.h (get_vtable_decl): Prototype new function. 16521 * class.c (get_vtable_decl): New function. Broken out from ... 16522 (build_vtable): ... here. Use it. 16523 * decl2.c (finish_vtable_vardecl): Ignore dummy vtables created 16524 by get_vtable_decl. 16525 165262000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 16527 16528 * cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE, 16529 CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE, 16530 CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations. 16531 (CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE, 16532 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE, 16533 CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations. 16534 (CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ... 16535 (CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here. 16536 (CPTI_TINFO_VAR_ID): New enumeration. 16537 (__tp_desc_type_node, __access_mode_type_node, 16538 __bltn_desc_type_node, __user_desc_type_node, 16539 __class_desc_type_node, __ptr_desc_type_node, 16540 __attr_desc_type_node, __func_desc_type_node, 16541 __ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines. 16542 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, 16543 ref_desc_type_node, ary_desc_type_node, func_desc_type_node, 16544 enum_desc_type_node, class_desc_type_node, 16545 si_class_desc_type_node, vmi_class_desc_type_node, 16546 ptmd_desc_type_node, base_desc_type_node): New #defines. 16547 (tinfo_fn_id, tinfo_fn_type): Rename to ... 16548 (tinfo_decl_id, tinfo_decl_type): ... here. Adjust. 16549 (tinfo_var_id): New enumeration. 16550 (DECL_TINFO_FN_P): Augment comment. 16551 * decl.c (cp_global_trees): Adjust documentation. 16552 * rtti.c (init_rtti_processing): Adjust for tinfo_decl_id, 16553 tinfo_decl_type and tinfo_var_id. 16554 (get_tinfo_decl_dynamic): Adjust for tinfo_decl_type. 16555 (build_typeid): Remove unused variable. 16556 (get_tinfo_var): Use tinfo_var_id. 16557 (tinfo_name): New static function. 16558 (get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type. 16559 (tinfo_from_decl): Likewise. 16560 (get_base_offset): New static function, broken out of 16561 expand_class_desc. 16562 (expand_si_desc): Use tinfo_name. 16563 (expand_class_desc): Likewise. Lose local static variable. 16564 Use base_desc_type_node. Use get_base_offset. 16565 (expand_ptr_desc): Use tinfo_name. 16566 (expand_attr_desc): Likewise. 16567 (expand_generic_desc): Likewise. 16568 16569 * tinfo.cc (__GXX_ABI_VERSION): Test value and existence. 16570 * tinfo.h (__GXX_ABI_VERSION): Test value and existence. 16571 165722000-01-23 Mark Mitchell <mark@codesourcery.com> 16573 16574 * cp-tree.h (__eprintf): Remove declaration. 16575 * tree.c (__eprintf): Remove definition. 16576 165772000-01-23 Zack Weinberg <zack@rabi.columbia.edu> 16578 Mark Mitchell <mark@codesourcery.com> 16579 16580 * cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N, 16581 CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings. 16582 165832000-01-23 Brad Lucier <lucier@math.purdue.edu> 16584 16585 * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly. 16586 165872000-01-23 Mark Mitchell <mark@codesourcery.com> 16588 16589 * cp-tree.h (register_dtor_fn): New function. 16590 * decl.c (destroy_local_static): Rename to ... 16591 (register_dtor_fn): ... this. Give it external linkage. 16592 (expand_static_init): Use it. 16593 * decl2.c (do_static_initialization): Likewise, if using 16594 __cxa_atexit. 16595 (do_static_destruction): Check that __cxa_atexit is not in use. 16596 (finish_file): Don't call do_static_destruction if using 16597 __cxa_atexit. 16598 16599 * typeck.c (convert_arguments): Restore two-message error 16600 reporting. 16601 166022000-01-20 Nathan Sidwell <sidwell@codesourcery.com> 16603 16604 Remap dynamic cast hint values to be consistent across ABIs. 16605 * search.c (dynamic_cast_base_recurse): Remap generated value. 16606 (get_dynamic_cast_base_type): Adjust documentation. 16607 * tinfo.h (__user_type_info::dyncast): Likewise. 16608 (__user_type_info::find_public_subobj): Remap BOFF meaning. 16609 * tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning. 16610 (__class_type_info::do_dyncast): Likewise. 16611 (__class_type_info::do_find_public_subobj): Likewise. 16612 * tinfo2.cc (__dynamic_cast): Remap BOFF parameter. 16613 166142000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 16615 16616 * typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn. 16617 16618 * typeck2.c (incomplete_type_error): Restore previous 16619 cp_error and cp_error_at call sequence. 16620 166212000-01-20 Brad Lucier <lucier@math.purdue.edu> 16622 16623 * class.c (dump_class_hierarchy): Make format agree with argument; 16624 cast pointer to unsigned long and print with %lx. 16625 166262000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 16627 16628 * decl2.c (lang_decode_option): Set default line-wrap length to 72. 16629 16630 * typeck.c (composite_pointer_type, common_type, 16631 comp_target_parms, c_sizeof, expr_sizeof, build_array_ref, 16632 build_function_call_real, convert_arguments, 16633 build_binary_op_nodefault, pointer_int_sum, pointer_diff, 16634 build_unary_op, mark_addressable, build_compound_expr, 16635 build_static_cast, build_reinterpret_cast, build_const_cast, 16636 build_c_cast, build_modify_expr, get_delta_difference, 16637 build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with 16638 'ISO C++'. Fusion consecutive calls to diagnostic message routines 16639 into a single one. 16640 * typeck2.c (readonly_error, abstract_virtuals_error, 16641 process_init_constructor, check_for_new_type): Likewise. 16642 166432000-01-19 Mark Mitchell <mark@codesourcery.com> 16644 16645 * tree.c (bot_manip): Set DECL_CONTEXT for newly created 16646 VAR_DECLs. 16647 166482000-01-18 Nathan Sidwell <sidwell@codesourcery.com> 16649 16650 * cp-tree.h (get_tinfo_fn_dynamic): Remove prototype. 16651 (build_x_typeid): Likewise. 16652 (get_tinfo_fn): Likewise. 16653 (get_tinfo_fn_unused): Rename to ... 16654 (get_tinfo_decl): ... here. 16655 * rtti.c (build_headof): Replace logic error with assertion. 16656 (get_tinfo_fn_dynamic): Rename to ... 16657 (get_tinfo_decl_dynamic): ... here. Make static. Use 16658 complete_type_or_else. 16659 (build_x_typeid): Move into ... 16660 (build_typeid): ... here. Adjust call to 16661 get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify 16662 throw_bad_typeid expression. 16663 (get_tinfo_fn_unused): Rename to ... 16664 (get_tinfo_decl): ... here. Adjust comment. 16665 (get_tinfo_fn): Delete. 16666 (tinfo_from_decl): New static function. 16667 (get_typeid_1): Call get_tinfo_decl and tinfo_from_decl. 16668 (get_typeid): Use complete_type_or_else. 16669 (build_dynamic_cast_1): Adjust calls to 16670 get_tinfo_decl_dynamic. Simplify throw_bad_cast expression. 16671 * parse.y (primary): Adjust call to build_typeid. 16672 * except.c (build_eh_type_type_ref): Adjust call to 16673 get_tinfo_decl. Mark as used. 16674 * class.c (set_rtti_entry): Adjust call to get_tinfo_decl. 16675 * decl2.c (build_expr_from_tree): Adjust call to build_typeid. 16676 * parse.c: Regenerated. 16677 166782000-01-17 Mark Mitchell <mark@codesourcery.com> 16679 16680 * class.c (fixed_type_or_null): Don't clear NONNULL. Document 16681 calling convention. 16682 (resolves_to_fixed_type_p): Document calling convention. 16683 * rtti.c (build_x_typeid): Initialize NONNULL. 16684 16685 * cp-tree.h (build_shared_int_cst): New function. 16686 * call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity. 16687 * class.c (modify_vtable_entry): Likewise. 16688 (add_virtual_function): Split out code to generated shared 16689 INTEGER_CSTs to build_share_int_cst. 16690 (modify_all_vtables): Handle all the overridden functions here. 16691 Add overridden functions from non-primary virtual bases to the 16692 primary vtable. 16693 (finish_struct_1): Adjust call to modify_all_vtables. Add 16694 overridden functions from non-primary bases to the vtable. 16695 * tree.c (build_shared_int_cst): New function. 16696 16697 * cp-tree.h (scratchalloc): Remove. 16698 (build_scratch_list): Likewise. 16699 * call.c (convert_class_to_reference): Replace build_scratch_list 16700 and build_expr_list with build_tree_list. 16701 (add_candidate): Replace scratchalloc with expralloc. Note memory 16702 leak. 16703 (build_user_type_conversion_1): Replace build_scratch_list 16704 and build_expr_list with build_tree_list. 16705 (build_new_op): Likewise. 16706 (build_op_delete_call): Likewise. 16707 (convert_like): Likewise. 16708 * cvt.c (ocp_convert): Likewise. 16709 * decl.c (start_decl): Likewise. 16710 (start_function): Likewise. 16711 (finish_destructor_body): Likewise. 16712 (maybe_build_cleanup_1): Likewise. 16713 * decl2.c (reparse_decl_as_expr): Likewise. 16714 * init.c (perform_member_init): Likewise. 16715 (expand_cleanup_for_base): Likewise. 16716 (build_builtin_delete_call): Likewise. 16717 (build_new_1): Likewise. 16718 (build_delete): Likewise. 16719 * method.c (do_build_assign_ref): Likewise. 16720 * parse.y (already_scoped_stmt): Likewise. 16721 (nontrivial_exprlist): Likewise. 16722 (net_initializer): Likewise. 16723 (initlist): Likewise. 16724 * parse.c: Regenerated. 16725 * rtti.c (build_x_typeid): Likewise. 16726 (build_dynamic_cast_1): Likewise. 16727 * typeck.c (build_x_compound_expr): Likewise. 16728 (build_static_cast): Likewise. 16729 (build_modify_expr): Likewise. 16730 16731 * cp-tree.h (DECL_VINDEX): Add documentation. 16732 * class.c (build_vtable_entry): Likewise. 16733 (start_vtable): Add comment. 16734 (add_virtual_function): Replace pending_hard_virtuals with 16735 overridden_virtuals and pending_virtuals with new_virtuals. 16736 Replace redundant assignments with assertions. 16737 (check_for_override): Add comment. 16738 (check_bases_and_members): Replace pending_hard_virtuals with 16739 overridden_virtuals and pending_virtuals with new_virtuals. 16740 (create_vtbl_ptr): Likewise. 16741 (layout_class_type): Likewise. 16742 (finish_struct_1): Likewise. Add comments. 16743 167442000-01-16 Mark Mitchell <mark@codesourcery.com> 16745 16746 * class.c (finish_struct_1): Replace redundant code with 16747 assertions. 16748 16749 * cp-tree.h (flag_new_abi): Move. 16750 (flag_use_cxa_atexit): Likewise. 16751 (flag_honor_std): Likewise. 16752 (flag_rtti): Likewise. 16753 (vbase_offsets_in_vtable_p): Define. 16754 (vptrs_present_everywhere_p): Likewise. 16755 (TYPE_CONTAINS_VPTR_P): Likewise. 16756 (dfs_walk_real): Declare. 16757 * class.c (build_vbase_pointer_fields): Check 16758 vbase_offsets_in_vtable_p. 16759 (dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in 16760 BINFO_VPTR_FIELD. 16761 (build_vbase_offset_vtbl_entries): Simplify. 16762 (build_vbase_offset_vtbl_entries): Adjust. 16763 (build_vbase_pointer): Add ability to look up vbase offsets in 16764 vtable. 16765 (start_vtable): New function. 16766 (add_virtual_function): Use it. 16767 (determine_primary_base): Use TYPE_CONTAINS_VPTR_P. 16768 (num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p. 16769 (build_vtbl_initializer): Take the type of the complete object as 16770 input. Use it to correctly calculate vbase offsets. 16771 (dfs_finish_vtbls): Pass the complete type to 16772 build_vtbl_initializer. 16773 (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P. 16774 (create_vtable_ptr): Create a vtable even if there are no 16775 new virtual functions, under the new ABI. 16776 (finish_struct_1): Likewise. 16777 (get_vfield_name): Use TYPE_CONTAINS_VPTR_P. 16778 * decl.c (exapnd_static_init): Remove call to 16779 preserve_initializer. 16780 * decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in 16781 vtables. 16782 * init.c (initialize_vtbl_ptrs): Initialize them in pre-order. 16783 (expand_virtual_init): Use vbase_offsets_in_vtable_p. 16784 (construct_virtual_bases): Don't initialize virtual base pointers 16785 under the new ABI. 16786 (build_aggr_init): Clean up comment. 16787 (expand_aggr_init_1): Likewise. 16788 * rtti.c (expand_class_desc): Store the virtual function table 16789 index where the vbase offset lives in the offset field. 16790 * search.c (dfs_walk_real): Make it global. 16791 (dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P. 16792 * tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD. 16793 16794 * tinfo.h (USItype): Make it signed under the new ABI. 16795 * tinfo.cc (convert_to_base): New function. Encapsulate base 16796 conversion logic here. 16797 (__class_type_info::do_upcast): Use it. 16798 (__class_type_info::do_dyncast): Likewise. 16799 (__class_type_info::do_find_public_subobj): Likewise. 16800 16801 * init.c (construct_virtual_bases): Don't look up the addresses of 16802 virtual bases at run-time. 16803 16804 * class.c (build_vbase_pointer): Relocate. 16805 (build_vbase_pointer_fields): Likewise. 16806 (dfs_build_vbase_offset_vtbl_entries): Likewise. 16807 (build_vbase_offset_vtbl_entries): Likewise. 16808 16809 * decl.c (init_decl_processing): Complain if -fnew-abi 16810 -fno-vtable-thunks is used. 16811 16812 * decl2.c (lang_decode_option): Don't couple flag_honor_std to 16813 flag_new_abi. 16814 168152000-01-15 Mark Mitchell <mark@codesourcery.com> 16816 16817 * cp-tree.h (num_extra_vtbl_entries): New function. 16818 (size_extra_vtbl_entries): Likewise. 16819 (dfs_vtable_path_unmark): Likewise. 16820 (dfs_vtable_path_unmarked_real_bases_queue_p): Likewise. 16821 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 16822 * class.c (num_extra_vtbl_entries): New function. 16823 (size_extra_vtbl_entries): Likewise. 16824 (dfs_build_vbase_offset_vtbl_entries): New function. 16825 (build_vbase_offset_vtbl_entries): Likewise. 16826 (build_vtbl_initializer): Use it. 16827 (finish_struct_1): Adjust vtable sizes (using 16828 num_extra_vtbl_entries). 16829 * expr.c (cplus_expand_expr): Assert that the DECL_RTL for a 16830 THUNK_DECL is non-NULL before expanding it. 16831 * init.c (expand_virtual_init): Adjust the vtable pointer by 16832 size_extra_vtbl_entries before storing it. 16833 * search.c (get_shared_vase_if_not_primary): Adjust prototype. 16834 Handle TREE_LIST parameters here, not in the dfs_* functions. 16835 (dfs_unmarked_real_bases_queue_p): Adjust. 16836 (dfs_marked_real_bases_queue_p): Likewise. 16837 (dfs_vtable_path_unmarked_real_bases_queue_p): New function. 16838 (dfs_vtable_path_marked_real_bases_queue_p): New function. 16839 (dfs_vtable_path_unmark): Likewise. 16840 168412000-01-14 Mark Mitchell <mark@codesourcery.com> 16842 16843 * optimize.c (copy_body_r): Clear the operand three of a 16844 TARGET_EXPR when copying it. 16845 168462000-01-14 Martin v. L�wis <loewis@informatik.hu-berlin.de> 16847 16848 * method.c (build_decl_overload_real): Check whether we are in :: 16849 before returning __builtin_new/delete. 16850 168512000-01-13 Mark Mitchell <mark@codesourcery.com> 16852 16853 * pt.c (tsubst_friend_function): Improve comment. 16854 (instantiate_decl): Avoid crashing when a "nested" function is 16855 instantiated from the top level. 16856 16857 * dump.c (dqeueue_and_dump): Dump 16858 DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION. 16859 168602000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16861 16862 * call.c: If GATHER_STATISTICS, declare `n_build_method_call'. 16863 168642000-01-13 Nathan Sidwell <sidwell@codesourcery.com> 16865 16866 * g++spec.c (lang_specific_driver): Add -fnew-abi if 16867 ENABLE_NEW_GXX_ABI defined. 16868 * Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o, 16869 opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o, 16870 opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch. 16871 168722000-01-12 Mark Mitchell <mark@codesourcery.com> 16873 16874 * decl.c (start_cleanup_fn): Call pushdecl. 16875 16876 * call.c (convert_class_to_reference): Fix typos. 16877 (build_conditional_expr): Handle errors gracefully. 16878 * class.c (push_nested_class): Likewise. 16879 * cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro. 16880 (DECL_THIS_EXTERN): Use it. 16881 (DECL_THIS_STATIC): Likewise. 16882 * cvt.c (convert_to_void): Handle errors gracefully. 16883 (build_expr_type_conversion): Likewise. 16884 * decl.c (maybe_push_decl): Likewise. 16885 (start_decl_1): Likewise. 16886 (require_complete_types_for_parms): Likewise. 16887 * parse.y (structsp): Likewise. 16888 (base_class): Likewise. 16889 * parse.c: Regenerated. 16890 * pt.c (finish_member_template_decl): Likewise. 16891 * typeck.c (decay_conversion): Likewise. 16892 16893 * cp-tree.h (dfs_skip_vbases): New function. 16894 (find_vbase_instance): Likewise. 16895 * class.c (determine_primary_base): Allow a nearly empty base to 16896 serve as a primary base class under the new ABI. 16897 (get_class_offset_1): Rename to ... 16898 (dfs_get_class_offset): ... this. Simplify. Don't issue error 16899 messages here. 16900 (get_class_offset): Use it. Issue error messages here. 16901 (dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to 16902 find the right copies of virtual bases. 16903 (fixup_vtable_deltas1): Rename to ... 16904 (dfs_fixup_vtable_deltas): ... this. Adjust to handle virtual 16905 bases as primary bases. 16906 (fixup_vtable_deltas): Remove. 16907 (override_one_vtable): Handle virtual bases as primary bases. 16908 (merge_overrides): Likewise. 16909 (finish_struct_1): Likewise. 16910 (dump_class_hierarchy): Dump primary-ness of bases as well. 16911 * search.c (mark_primary_bases): Use a pre-order traversal to 16912 handle primary virtual bases. 16913 (dfs_skip_vbases): New fiunction. 16914 (expand_upcast_fixups): Adjust to handle primary virtual bases. 16915 (fixup_virtual_upcast_offsets): Likewise. 16916 (fixup_all_virtual_upcast_offsets): Likewise. 16917 (dfs_find_vbase_instances): New function. 16918 (find_vbase_instance): Likewise. 16919 169202000-01-11 Mumit Khan <khan@xraylith.wisc.edu> 16921 16922 * lex.c (DIR_SEPARATOR): Delete macro. 16923 169242000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> 16925 16926 * decl2.c (lang_decode_option): Handle automatic line wrapping 16927 option. 16928 169292000-01-11 Mark Mitchell <mark@codesourcery.com> 16930 16931 * friend.c (do_friend): Don't resolve scopes when processing 16932 template declarations, even if the qualifying scope doesn't 16933 involve template parameters. 16934 169352000-01-10 Mark Mitchell <mitchell@dumbledore.codesourcery.com> 16936 16937 * class.c (dfs_modify_vtables_queue_p): Remove. 16938 (modify_all_vtables): Use dfs_unmarked_real_bases_queue_p 16939 and dfs_marked_real_bases_queue_p instead of 16940 dfs_modify_vtables_queue_p. 16941 16942 * class.c (build_vbase_path): Simplify. 16943 (dfs_propagate_binfo_offsets): New function. 16944 (propagate_binfo_offsets): Use it. 16945 (remove_base_field): Simplify. 16946 (dfs_set_offset_for_vbases): Remove. 16947 (dfs_set_offset_for_shared_vbases): New function. 16948 (dfs_set_offset_for_unshared_vbases): Likewise. 16949 (layout_virtual_bases): Use them. 16950 (layout_basetypes): Don't call propagate_binfo_offsets. 16951 * search.c (dfs_get_vbase_types): Clone completely fresh binfos 16952 for the vbases. 16953 16954 * class.c (build_base_field): New function, split out from ... 16955 (build_base_fields): ... here. Use it. Allocate primary bases 16956 first, under the new ABI. 16957 (get_vtable_entry): Remove. 16958 (remove_base_field): New function, split out from ... 16959 (remove_base_fields): ... here. Adjust since primary bases come 16960 first under the new ABI. 16961 16962 * cp-tree.h (expand_direct_vtbls_init): Remove declaration. 16963 (initialize_vtbl_ptrs): New function. 16964 (expand_indirect_vtbls_init): Change prototype. 16965 (convert_pointer_to_vbase): Declare. 16966 * init.c (expand_direct_vtbls_init): Remove. 16967 (dfs_initialize_vtbl_ptrs): New function. 16968 (initialize_vtbl_ptrs): Likewise. 16969 (emit_base_init): Use initialize_vtbl_ptrs. 16970 * search.c (convert_pointer_to_vbase): Make it global. 16971 (expand_indirect_vtbls_init): Remove vtable initialization code. 16972 * semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs. 16973 16974 * class.c (dfs_finish_vtbls): New function. 16975 (finish_vtbls): Use it. 16976 (dump_class_hierarchy): New function. 16977 16978 * cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition. 16979 (BINFO_VBASE_PRIMARY_P): New macro. 16980 (BINFO_VIRTUALS): Add to documentation. 16981 (SET_BINFO_PRIMARY_MARKED_P): Remove. 16982 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 16983 (dfs_mark_primary_bases_queue_p): Likewise. 16984 (dfs_unmarked_real_bases_queue_p): New function. 16985 (dfs_marked_real_bases_queue_p): Likewise. 16986 * search.c (dfs_mark_primary_bases): Adjust. 16987 (mark_primary_bases): Likewise. 16988 (get_shared_vbase_if_not_primary): New function. 16989 (dfs_unmarked_real_bases_queue_p): Likewise. 16990 (dfs_marked_real_bases_queue_p): Likewise. 16991 (dfs_get_pure_virtuals): Simplify. 16992 (get_pure_virtuals): Likewise. 16993 169942000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16995 16996 * lex.c: Include tm_p.h. 16997 169982000-01-07 Nathan Sidwell <sidwell@codesourcery.com> 16999 17000 * lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro. 17001 170022000-01-06 Jason Merrill <jason@casey.cygnus.com> 17003 17004 * decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT. 17005 * pt.c (instantiate_decl): Defer comdat templates that might not be 17006 needed. 17007 17008 * cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT. 17009 * decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT. 17010 (finish_file): Likewise. 17011 17012 * decl2.c (import_export_class): Undo 12/14 change. 17013 17014 * error.c (dump_decl): operator new, not operatornew. 17015 17016 * class.c (field_decl_cmp): A nontype is "greater" than a type. 17017 * search.c (lookup_field_1): Look for the last field with the 17018 desired name. 17019 170202000-01-05 Nathan Sidwell <nathan@acm.org> 17021 17022 * decl2.c (lookup_arg_dependent): Deal with FNS not being a 17023 FUNCTION_DECL. 17024 170252000-01-05 Nathan Sidwell <nathan@acm.org> 17026 17027 * typeck.c (build_static_cast): Don't strip target qualifiers 17028 when casting from a class. 17029 170302000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17031 17032 * class.c (warn_hidden): Initialize variable `fndecl'. 17033 170342000-01-03 Ulrich Drepper <drepper@cygnus.com> 17035 17036 * decl.c (flag_isoc9x): New variable to be able to use code in 17037 c-common.c. For now always zero. 17038 170392000-01-03 Mark Mitchell <mark@codesourcery.com> 17040 17041 * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. 17042 * class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN 17043 or unshare_base_binfos for virtual bases here. 17044 * search.c (dfs_get_vbase_types): Do it here. 17045 (get_vbase_types): Adjust. 17046 170472000-01-02 Mark Mitchell <mark@codesourcery.com> 17048 17049 * cp-tree.h (CLASSTYPE_VFIELDS): Move definition. 17050 (BINFO_PRIMARY_MARKED_P): Use flag 5. 17051 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 17052 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 17053 (unmark_primary_bases): Remove declaration. 17054 (unmarkedp): Declare. 17055 (dfs_vbase_unmark): Likewise. 17056 * class.c (determine_primary_base): Return immediately if there 17057 are no base classes. Call mark_primary_bases here. 17058 (modify_all_direct_vtables): Remove. 17059 (modify_all_indirect_vtables): Remove. 17060 (dfs_modify_vtables_queue_p): New function. 17061 (dfs_modify_vtables): New function. 17062 (modify_all_vtables): Use them. 17063 (build_base_fields): Build FIELD_DECLs for primary virtual base 17064 classes. 17065 (create_vtable_ptr): Don't call determine_primary_base here. 17066 (dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ... 17067 (dfs_set_offset_for_vbases): ... this. 17068 (layout_virtual_bases): Use it. 17069 (layout_class_type): Call determine_primary_base here. 17070 * search.c (unmarkedp): Make it global. 17071 (shared_marked_p): Simplify. 17072 (shared_unmarked_p): Likewise. 17073 (dfs_primary_bases_queue_p): Remove. 17074 (dfs_unmark_primary_bases): Likewise. 17075 (unmark_primary_bases): Likewise. 17076 (mark_primary_bases): Simplify. 17077 (get_pure_virtuals): Don't call mark_primary_bases here. 17078 (dfs_vbase_unmark): New function. 17079 (get_vbase_types): Simplify. 17080 17081 * class.c (struct base_info): Remove. 17082 (determine_primary_base): Take has_virtual_p rather than a 17083 base_info as input. Don't calculate max_has_virtual. 17084 (finish_struct_bits): Remove max_has_virtual argument. 17085 (create_vtable_ptr): Remove max_has_virtual_p argument. 17086 (layout_virtual_bases): Remove max argument. 17087 (layout_basetypes): Likewise. 17088 (layout_class_type): Remove max_has_virtual_p argument. 17089 (finish_struct_1): Remove max_has_virtual. 17090 17091 * cp-tree.h (dfs_mark_primary_bases_queue_p): New function. 17092 (layout_basetypes): Remove. 17093 * class.c (propagate_binfo_offsets): Moved here from tree.c. 17094 Update to handle primary virtual bases. 17095 (remove_base_fields): New function, split out from 17096 layout_basetypes. 17097 (dfs_mark_primary_bases_and_set_vbase_offsets): New function. 17098 (layout_virtual_bases): New function, split out from 17099 layout_basetypes. Update to handle primary virtual bases. 17100 (layout_basetypes): Moved here from tree.c. Use 17101 remove_base_fields and layout_virtual_bases. 17102 * search.c (dfs_mark_primary_bases_queue_p): New function. 17103 (mark_primary_bases): Use it. 17104 * tree.c (CEIL): Remove. 17105 (propagate_binfo_offsets): Remove. 17106 (layout_basetypes): Remove. 17107 171082000-01-01 Mark Mitchell <mark@codesourcery.com> 17109 17110 * cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES. 17111 (BINFO_PRIMARY_MARKED_P): New macro. 17112 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 17113 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 17114 (mark_primary_bases): New function. 17115 (unmark_primary_bases): Likewise. 17116 * search.c (get_abstract_virtuals_1): Remove. 17117 (dfs_mark_primary_bases): New function. 17118 (mark_primary_bases): Likewise. 17119 (dfs_unmark_primary_bases): Likewise. 17120 (unmark_primary_bases): Likewise. 17121 (dfs_get_pure_virtuals): Likewise. 17122 171232000-01-01 Mark Mitchell <mark@codesourcery.com> 17124 17125 * cp-tree.h (skip_rtti_stuff): Adjust prototype. 17126 * class.c (skip_rtti_stuff): Reorganize parameters and return value. 17127 (modify_one_vtable): Adjust. 17128 (fixup_vtable_deltas1): Likewise. 17129 (override_one_vtable): Likewise. 17130 * search.c (get_abstract_virtuals_1): Likewise. 17131 (get_pure_virtuals): Likewise. 17132 (expand_upcast_fixups): Likewise. 17133 * tree.c (debug_binfo): Likewise. 17134 17135 * class.c (build_vtable): Don't return a value. Don't rebuild 17136 vtables for bases that have already been handled. 17137 (prepare_fresh_vtable): Don't rebuild vtables for bases that have 17138 already been handled. 17139 (modify_one_vtable): Adjust accordingly. 17140 (fixup_vtable_deltas1): Likewise. 17141 (finish_struct_1): Likewise. 17142 171432000-01-01 Martin v. L�wis <loewis@informatik.hu-berlin.de> 17144 17145 * call.c (build_new_method_call): Also check destructors. 17146