ChangeLog revision 117395
12003-07-09 Mark Mitchell <mark@codesourcery.com> 2 3 PR c++/10032 4 * decl.c (cxx_init_decl_processing): With -pedantic, pedwarns are 5 still errors. 6 7 PR c++/10527 8 * error.c (decl_to_string): Do not print default argument 9 expressions. 10 112003-07-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 12 13 PR c++/10849 14 * decl2.c (handle_class_head_apparent_template): New function. 15 * cp-tree.h (handle_class_head_apparent_template): Add declaration. 16 * parse.y (class_head_defn): Use it. 17 * search.c (type_access_control): Revert my 2003-05-25 change. 18 192003-07-06 Mark Mitchell <mark@codesourcery.com> 20 21 PR c++/11236 22 * cvt.c (convert_to_void): Treat an overloaded function like 23 "((void) 0)" after issuing a diagnostic. 24 25 PR c++/11345 26 * search.c (lookup_base_r): Remove is_non_public and 27 within_current_scope parameters. Remove other dead code. 28 (lookup_base): Adjust call to lookup_base_r. 29 (adjust_result_of_qualified_name_lookup): Improve comment. 30 * semantics.c (finish_call_expr): Use maybe_dummy_object. 31 322003-07-05 Mark Mitchell <mark@codesourcery.com> 33 34 PR c++/11431 35 * typeck.c (build_static_cast): Check for reference conversions 36 earlier. 37 382003-07-01 Mark Mitchell <mark@codesourcery.com> 39 40 PR c++/6949 41 * decl2.c (grokfield): Create TEMPLATE_DECLs for methods in local 42 classes. 43 442003-07-01 Mark Mitchell <mark@codesourcery.com> 45 46 * call.c (resolve_scoped_fn_name): Return error_mark_node for 47 erroneous cases. 48 49 PR c++/11137 50 * decl2.c (generate_ctor_or_dtor_function): Tolerate a 51 non-existant ssdf_decls array. 52 (finish_file): Call generator_ctor_or_dtor_function when there are 53 static constructors or destructors and no other static 54 initializations. 55 56 PR c++/11149 57 * call.c (resolve_scoped_fn_name): Check that the qualifying scope 58 is a class type. 59 602003-07-01 Mark Mitchell <mark@codesourcery.com> 61 62 PR c++/9559 63 * decl2.c (grokfield): Do not build NOP_EXPRs around the 64 error_mark_node. 65 662003-06-30 Giovanni Bajo <giovannibajo@libero.it> 67 68 * mangle.c (write_expression): Exit gracefully when trying to 69 mangle a CALL_EXPR. 70 712003-06-30 Giovanni Bajo <giovannibajo@libero.it> 72 73 PR c++/11106 74 * error.c (dump_decl): Call dump_decl to dump the DECL_NAME for a 75 USING_DECL, instead of print_tree_identifier. 76 772003-06-27 Mark Mitchell <mark@codesourcery.com> 78 79 PR c++/10468 80 * pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly. 81 82 PR c++/10796 83 * decl.c (finish_enum): Implement DR377. 84 85 * decl.c (cp_finish_decl): Don't make variables with reference 86 type readonly while they are being initialized. 87 882003-06-26 Mark Mitchell <mark@codesourcery.com> 89 90 PR c++/11332 91 * typeck.c (build_static_cast): Avoid returning expressions with 92 reference type. 93 942003-06-25 Mark Mitchell <mark@codesourcery.com> 95 96 PR c++/10990 97 * search.c (lookup_base_r): Rely on accessible_p, rather than 98 trying to emulate that logic here. 99 100 PR c++/10931 101 * call.c (convert_like): Pass issue_conversion_warnings. 102 (convert_like_with_context): Likewise. 103 (convert_like_real): Add issue_conversion_warnings parameter. 104 (perform_direct_initialization_if_possible): New function. 105 * cp-tree.h (perform_direct_initialization_if_possible): Declare it. 106 * typeck.c (check_for_casting_away_constness): New function. 107 (build_static_cast): Rewrite. 108 1092003-06-23 Mark Mitchell <mark@codesourcery.com> 110 111 PR c++/5754 112 * parse.y (structsp): Improve error handling of invalid nested 113 template classes. 114 1152003-06-23 Jakub Jelinek <jakub@redhat.com> 116 117 * mangle.c: Include ggc.h, gt-cp-mangle.h. 118 (mangle_conv_op_name_for_type): Use htab_create_ggc instead of 119 htab_create. 120 * config-lang.in (gtfiles): Add cp/mangle.c. 121 * Make-lang.in (gt-cp-mangle.h): Depend on s-gtype. 122 (cp/mangle.o): Depend on gt-cp-mangle.h. 123 1242003-06-23 Jakub Jelinek <jakub@redhat.com> 125 126 * mangle.c (hash_type): val is the TREE_LIST itself, not a pointer 127 to it. 128 1292003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 130 131 PR c++/10784 132 * call.c (joust): Warn about choosing conversion sequence only if 133 -Wconversion. 134 1352003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 136 137 PR c++/10864 138 * call.c (op_error): Tidy. 139 * error.c (dump_expr): Properly format 'T()' when T is an 140 aggregate type. 141 1422003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 143 144 PR c++/10915 145 * decl.c (grok_op_properties): Warn possible confusing conversion 146 only if -Wconversion. 147 1482003-06-20 Mark Mitchell <mark@codesourcery.com> 149 150 PR c++/10845 151 * pt.c (try_class_unification): Correct handling of member class 152 templates. 153 1542003-06-19 Mark Mitchell <mark@codesourcery.com> 155 156 PR c++/10939 157 * Make-lang.in (decl.o): Depend on input.h. 158 * decl.c (input.h): Include it. 159 (cp_finish_decl): Revert previous change: 160 2003-06-19 Mark Mitchell <mark@codesourcery.com> 161 * decl.c (cp_finish_decl): Remove support for RESULT_DECLs. 162 Don't check building_stmt_tree. 163 * pt.c (tsubst_decl): Do not try to substitute into non-dependent 164 functions. 165 166 PR c++/9649 167 * cp-tree.h (pushdecl_class_level): Change prototype. 168 (push_class_level_binding): Likewise. 169 * decl.c (add_binding): Reject duplicate static data members. 170 (pushdecl_class_level): Return a value indicating whether or not 171 the binding was valid. 172 (push_class_level_binding): Likewise. 173 * semantics.c (finish_member_declaration): Don't keep invalid 174 declarations. 175 1762003-06-19 Mark Mitchell <mark@codesourcery.com> 177 178 PR c++/11041 179 * call.c (initialize_reference): Do not use cp_finish_decl to emit 180 temporary variables. 181 * cp-tree.h (static_aggregates): Declare. 182 (pushdecl_top_level_and_finish): Likewise. 183 * decl.c (pushdecl_top_level_1): New function. 184 (pushdecl_top_level): Use it. 185 (pushdecl_top_level_and_finish): New function. 186 (initialize_local_var): Remove redundant code. 187 (cp_finish_decl): Remove support for RESULT_DECLs. Don't check 188 building_stmt_tree. 189 * decl.h (static_aggregates): Remove. 190 * decl2.c (get_guard): Use pushdecl_top_level_and_finish. 191 * rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish. 192 (tinfo_base_init): Likewise. 193 1942003-06-19 Matt Austern <austern@apple.com> 195 196 PR c++/11228 197 * init.c (build_zero_init): Assert that number of array elements 198 is an integer constant. 199 (build_default_init) Don't use build_zero_init for arrays with 200 variable number of elements. 201 2022003-06-17 Mark Mitchell <mark@codesourcery.com> 203 204 * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format 205 string again. 206 2072003-06-17 Mark Mitchell <mark@codesourcery.com> 208 209 * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format 210 string. 211 2122003-06-17 Jason Merrill <jason@redhat.com> 213 214 PR c++/10929 215 * decl.c (grokfndecl): Don't mark a function inline for 216 -finline-functions if it isn't defined. 217 2182003-06-17 Mark Mitchell <mark@codesourcery.com> 219 220 PR c++/10712 221 * class.c (handle_using_decl): Robustify. 222 223 PR c++/11105 224 * cp-tree.h (DECL_CONV_FN_TYPE): New method. 225 * decl.c (lookup_name_real): Backport conversion operator code 226 from mainline. 227 * mangle.c (struct globals): Remove internal_mangling_p. 228 (write_unqualified_name): Use DECL_CONV_FN_TYPE. 229 (write_template_parm): Don't write out the level number. 230 (conv_type_names): New variable. 231 (hash_type): New function. 232 (compare_type): Likewise. 233 (mangle_conv_op_name_for_type): Don't try to mangle conversion 234 operator names. 235 * search.c (lookup_conversion_operator): New function. 236 (lookup_fnfields_1): Use it. 237 2382003-06-12 Mark Mitchell <mark@codesourcery.com> 239 240 PR c++/10635 241 * typeck.c (build_c_cast): Check that the destination type is 242 complete. 243 2442003-06-10 Jason Merrill <jason@redhat.com> 245 246 PR c++/10968 247 * pt.c (mark_decl_instantiated): Clear DECL_COMDAT. 248 2492003-06-09 Zack Weinberg <zack@codesourcery.com> 250 251 PR 8861 252 * mangle.c (write_real_cst): New function. Implement 253 ABI-compliant mangling of floating-point literals when 254 -fabi-version>=2; provide backward compatibility with 3.3 when 255 -fabi-version=1 (with warning). Clarify commentary. 256 (write_template_arg_literal): Use write_real_cst. 257 2582003-06-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 259 260 PR c++/11039 261 * decl2.c (handle_class_head): Remove implicitness in typename 262 appeared as elaborated type specifier in declaration. 263 2642003-06-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 265 266 PR c++/10940 267 * pt.c (check_explicit_specialization): Check for 'static' 268 earlier. 269 2702003-05-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 271 272 PR c++/10956 273 * pt.c (instantiate_decl): Don't use full template arguments if 274 we are dealing with specializations. 275 2762003-05-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 277 278 * decl.c (ENABLE_CHECKING_SCOPES): New macro. 279 (binding_depth): Unconditionally define. 280 (is_class_level): Likewise. 281 (indent): Likewise. Take an indenting parameter. 282 (push_binding_level): Remove conditional definittion. 283 (pop_binding_level): Likewise. 284 (suspend_binding_level): Likewise. 285 (resume_binding_level): Likewise. 286 (pushlevel): Likewise. 287 (pushlevel_class): Likewise. 288 (poplevel_class): Likewise. 289 (pop_everything): Likewise. 290 2912003-05-27 Gabriel Dos Reis <gdr@integrable-solutions.net> 292 293 * decl.c (global_scope_p): New macro. 294 (pop_binding_level): Use it. 295 (suspend_binding_level): Likewise. 296 (global_bindings_p): Likewise. 297 (print_other_binding_stack): Likewise. 298 (print_binding_stack): Likewise. 299 (maybe_push_to_top_level): Likewise. 300 (pushdecl_namespace_level): Likewise. 301 (start_decl): Likewise. 302 (cp_finish_decl): Likewise. 303 (start_function): Likewise. 304 (cxx_init_decl_processing): Don't refer to global_binding_level. 305 (global_binding_level): Remove. 306 3072003-05-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 308 309 PR c++/10849 310 * search.c (type_access_control): Don't check access when 311 processing_specialization. 312 3132003-05-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 314 315 PR c++/10682 316 * pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to 317 check for implicitly created typedef to an enum. 318 3192003-05-20 Gabriel Dos Reis <gdr@integrable-solutions.net> 320 321 * decl.c (free_binding_entry): Fix thinko. 322 3232003-05-19 Gabriel Dos Reis <gdr@integrable-solutions.net> 324 325 * cp-tree.h (struct binding_entry_s): New datatype. 326 (binding_table): Declare. 327 (binding_entry): Likewise. 328 (bt_foreach_proc): Likewise. 329 (binding_table_foreach): Likewise. 330 (binding_table_find): Likewise. 331 (cxx_remember_type_decls): Likewise. 332 (CLASSTYPE_TAGS): Remove. 333 (CLASSTYPE_NESTED_UDTS): New macro. 334 (struct lang_type_class): Remove tags field. Add nested_types. 335 * decl.c (ENTRY_INDEX): New macro. 336 (free_binding_entry): New free list. 337 (binding_entry_make): New function. 338 (binding_entry_free): Likewise. 339 (struct binding_table_s): New datatype. 340 (SCOPE_DEFAULT_HT_SIZE): New macro. 341 (CLASS_SCOPE_HT_SIZE): Likewise. 342 (NAMESPACE_ORDINARY_HT_SIZE): Likewise. 343 (NAMESPACE_STD_HT_SIZE): Likewise. 344 (GLOBAL_SCOPE_HT_SIZE): Likewise. 345 (binding_table_construct): New function. 346 (binding_table_free): Likewise. 347 (binding_table_new): Likewise. 348 (binding_table_expand): Likewise. 349 (binding_table_insert): Likewise. 350 (binding_table_find): Likewise. 351 (binding_table_find_anon_type): Likewise. 352 (binding_table_reverse_maybe_remap): Likewise. 353 (binding_table_remove_anonymous_types): Likewise. 354 (binding_table_foreach): Likewise. 355 (struct cp_binding_level): Remove tags field. Add type_decls. 356 (pop_binding_level): Free binding_entries if possible. 357 (kept_level_p): Tidy. 358 (poplevel): Remove unused variable tags. 359 (bt_print_entry): New function. 360 (print_binding_level): Use it. 361 (push_namespace): Construct binding table. 362 (maybe_process_template_type_declaration): Tidy. 363 (pushtag): Likewise. 364 (clear_anon_tags): Likewise. 365 (cxx_remember_type_decls): New function. 366 (lookup_tag): Tidy. 367 (lookup_tag_reverse): Likewise. 368 (cxx_init_decl_processing): Construct binding_table for the global 369 scope. 370 (store_parm_decls): Remove pointless code. 371 (gettags): Remove. 372 (storetags): Likewise. 373 * class.c (unreverse_member_declarations): Don't touch 374 CLASSTYPE_TAGS. 375 (pushclass): Remember CLASSTYPE_NESTED_UTDS. 376 * pt.c (instantiate_class_template): Remove reference to 377 CLASSTYPE_TAGS. Remeber CLASSTYPE_NESTED_UTDS. 378 (bt_instantiate_type_proc): New function. 379 (do_type_instantiation): Use it. 380 * search.c (lookup_field_r): Use binding_table_find. 381 * semantics.c (begin_class_definition): Remove reference to 382 CLASSTYPE_TAGS. Nullify CLASSTYPE_NESTED_UTDS. 383 3842003-05-15 Jason Merrill <jason@redhat.com> 385 386 PR c++/5388 387 * call.c (conditional_conversion): Don't consider implicit 388 conversions if T2 is a base of T1. 389 * cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean. 390 (ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 391 392 PR c++/10661 393 * pt.c (instantiate_class_template): Also instantiate our 394 enclosing class. 395 3962003-05-13 Release Manager 397 398 * GCC 3.3 Released. 399 4002003-05-02 Richard Henderson <rth@redhat.com> 401 402 PR c++/10570 403 * cfns.gperf: Comment out POSIX thread cancellation points, 404 plus abort and raise. 405 * cfns.h: Regenerate. 406 4072003-05-01 Mark Mitchell <mark@codesourcery.com> 408 409 * decl2.c (comdat_linkage): Don't externalize explicit 410 instantiations. 411 4122003-04-29 Mark Mitchell <mark@codesourcery.com> 413 414 PR c++/10551 415 * pt.c (mark_decl_instantiated): Defer all explicit instantiations 416 that have not yet been written out. 417 418 PR c++/10549 419 * class.c (layout_class_type): Mark overlong bitfields as having 420 the maximum size permitted by their type, after layout. 421 4222003-04-29 Mark Mitchell <mark@codesourcery.com> 423 424 PR c++/10527 425 * error.c (dump_expr): Correctly handling of NEW_EXPR.4 426 4272003-04-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 428 429 * lang-options.h: Fix typo. 430 4312003-04-29 Mark Mitchell <mark@codesourcery.com> 432 433 PR c++/10515 434 * cp-tree.h (lookup_field_1): Declare it. 435 * search.c (lookup_field_1): Make it public. 436 * decl.c (reshape_init): Handle designated initializers. 437 4382003-04-29 Mark Mitchell <mark@codesourcery.com> 439 440 * decl.c (maybe_commonize_var): Further tweak support for systems 441 without weak symbols. 442 4432003-04-27 Mark Mitchell <mark@codesourcery.com> 444 445 * decl.c (maybe_commonize_var): Fix thinko in last patch. 446 447 PR c++/10506 448 * method.c (use_thunk): Decrement immediate_size_expand. 449 450 PR c++/10503 451 * cp-tree.h (DECL_VAR_MARKED_P): New macro. 452 (DECL_MAYBE_TEMPLATE): Remove. 453 * class.c (fixed_type_or_null): Avoid infinite recursion. 454 4552003-04-27 Mark Mitchell <mark@codesourcery.com> 456 457 * decl.c (maybe_commonize_var): Make the code match the comments. 458 * pt.c (instantiate_decl): Move call to import_export_decl. 459 4602003-04-25 Mark Mitchell <mark@codesourcery.com> 461 462 * decl2.c (finish_file): Don't call import_export_decl for 463 functions that are not defined. 464 (handle_class_head): Robustify. 465 * pt.c (instantiate_decl): Do not call cp_finish_decl for 466 variables that are not defined. 467 4682003-04-23 Mark Mitchell <mark@codesourcery.com> 469 470 PR c++/10471 471 * call.c (build_cxx_call): Robustify. 472 4732003-04-23 Mark Mitchell <mark@codesourcery.com> 474 475 PR c++/10451 476 * decl.c (grokdeclarator): Correct logic for "mutable" errors. 477 4782003-04-22 Mark Mitchell <mark@codesourcery.com> 479 480 PR c++/10446 481 * search.c (lookup_fnfields_1): Handle empty slots in the method 482 vector. 483 4842003-04-22 Mark Mitchell <mark@codesourcery.com> 485 486 PR c++/10428 487 * decl.c (check_elaborated_type_specifier): New function, split 488 out from ... 489 (xref_tag): ... here. Use the new function in more places. 490 4912003-04-21 Mark Mitchell <mark@codesourcery.com> 492 493 * call.c (build_over_call): Use build_cxx_call. 494 (build_cxx_call): New method, split out of build_over_call. 495 * cp-tree.h (language_function): Add can_throw. 496 (build_cxx_call): Declare it. 497 * decl.c (finish_function): If a function does not contain any 498 calls to functions that can throw an exception, indicate that 499 fact. 500 * decl2.c (mark_used): Do not defer the instantiation of 501 functions, if the current function does not throw. 502 * optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones. 503 * pt.c (instantiate_decl): Make sure import_export_decl is called 504 before emitting things. 505 * rtti.c (throw_bad_cast): Use build_cxx_call. 506 (build_dynamic_cast_1): Likewise. 507 * typeck.c (build_function_call): Likewise. 508 5092003-04-21 Nathan Sidwell <nathan@codesourcery.com> 510 511 PR c++/9881 512 * typeck.c (build_unary_op): Fold all COMPONENT_REF addr 513 expressions. Reverts my 2002-08-08 patch. 514 5152003-04-20 Nathan Sidwell <nathan@codesourcery.com> 516 517 PR c++/10405 518 * search.c (lookup_field_1): Final scan goes backwards for 519 types, forwards for non-types. 520 5212003-04-15 Jason Merrill <jason@redhat.com> 522 523 * decl2.c (mark_used): Don't instantiate anything if 524 skip_evaluation. 525 5262003-04-15 Mark Mitchell <mark@codesourcery.com> 527 528 * init.c (build_new_1): Use nullexp instead of null_node to avoid 529 unwanted macro expansion. 530 5312003-04-14 Ziemowit Laski <zlaski@apple.com> 532 533 * tree.c (build_cplus_array_type_1): Do not call 534 uses_template_parms() on a NULL index_type. 535 5362003-04-14 Andreas Schwab <schwab@suse.de> 537 538 * init.c (build_new_1): Test use_cookie instead of cookie_size to 539 avoid code-gen bug on ia64. 540 5412003-04-13 Mark Mitchell <mark@codesourcery.com> 542 543 PR c++/10300 544 * init.c (build_new_1): Correct logic for checking whether the 545 return value from the allocation function was zero. 546 5472003-03-31 Mark Mitchell <mark@codesourcery.com> 548 549 PR c++/10278 550 * spew.c (yyerror): Avoid crashing at all costs. 551 5522003-03-31 Jason Merrill <jason@redhat.com> 553 554 PR java/10145 555 * class.c (check_field_decl): Don't set DECL_ALIGN. 556 5572003-03-30 Mark Mitchell <mark@codesourcery.com> 558 559 PR c++/7647 560 * search.c (lookup_field_1): Add want_type parameter. 561 (lookup_field_r): Adjust call to lookup_field_1. 562 5632003-03-28 Jason Merrill <jason@redhat.com> 564 565 PR c++/10245 566 * cvt.c (force_rvalue): New fn. 567 * call.c (build_conditional_expr): Use it. 568 * cp-tree.h: Declare it. 569 5702003-03-28 Nathan Sidwell <nathan@codesourcery.com> 571 572 PR c++/10047 573 * decl2.c (finish_file): Don't warn about explicitly instantiated 574 inline decls. 575 5762003-03-27 Nathan Sidwell <nathan@codesourcery.com> 577 578 PR c++/10158 579 * spew.c (snarf_method):Set DECL_INITIALIZED_IN_CLASS for 580 members. 581 * pt.c (instantiate_decl): Only reduce the template args for 582 friends that are not defined in class. 583 5842003-03-24 Nathan Sidwell <nathan@codesourcery.com> 585 586 PR c++/9898, PR c++/383, DR 322 587 * pt.c (maybe_adjust_types_for_deduction) [DEDUCE_CONV]: Look 588 through reference types on both PARM and ARG. 589 590 PR c++/10199 591 * call.c (build_method_call): Deal with LOOKUP_EXPR. 592 * semantics.c (finish_object_call_expr): Use build_method_call 593 when in a template decl. 594 5952003-03-23 Mark Mitchell <mark@codesourcery.com> 596 597 PR c++/7086 598 * semantics.c (genrtl_named_return_value): Adjust calls to 599 put_var_into_stack. 600 * typeck.c (cxx_mark_addressable): Likewise. 601 6022003-03-20 Mark Mitchell <mark@codesourcery.com> 603 604 PR c++/6412 605 * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope 606 friends. 607 * cp/pt.c (instantiate_class_template): Fix formatting. 608 6092003-03-19 Jason Merrill <jason@redhat.com> 610 611 PR c++/8316, c++/9315, c++/10136 612 * call.c (joust): Improve wording. 613 6142003-03-18 Roger Sayle <roger@eyesopen.com> 615 616 PR c++/10031 617 * decl.c (duplicate_decls): Use the new type when prototyping 618 anticipated decls, even when the types match. This defines the 619 exception list for the built-in function. 620 6212003-03-17 Jason Merrill <jason@redhat.com> 622 623 PR c++/10091 624 * typeck.c (build_class_member_access_expr): Compare 625 TYPE_MAIN_VARIANTs. 626 627 * decl.c (finish_function): Don't skip a block. 628 629 PR c++/9993 630 * decl.c (finish_function): Only allow the NRVO to use variables 631 declared at function scope. 632 6332003-03-17 Nathan Sidwell <nathan@codesourcery.com> 634 635 PR c++/9629 636 * cp-tree.h (struct language_function): Add in_base_initializer. 637 (in_base_initializer): define it. 638 (expand_member_init): Remove INIT param. 639 * init.c (expand_member_init): Remove INIT param, return the member. 640 (emit_mem_initializers): Set in_base_initializer. 641 * class.c (build_base_path): Check in_base_initializer. 642 * parse.y (begin_member_init): New reduction. 643 (member_init): Use it. 644 * pt.c (tsubst_initializer_list): Set in_base_initializer. 645 6462003-03-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 647 648 PR c++/6440 649 * pt.c (maybe_process_partial_specialization): Handle 650 member class template when enclosing class template is 651 explicit specialized. 652 (most_general_template): Stop looking when DECL is already 653 specialized. 654 6552003-03-13 Jason Merrill <jason@redhat.com> 656 657 PR c++/9420 658 * search.c (lookup_conversions): Call complete_type here. 659 * call.c (implicit_conversion): Not here. 660 6612003-03-13 Jason Merrill <jason@redhat.com> 662 663 PR c++/9336 664 * decl2.c (lookup_arg_dependent): Handle error_mark_node. 665 6662003-03-13 Mark Mitchell <mark@codesourcery.com> 667 668 * decl2.c (do_nonmember_using_decl): Correct handling of 669 simultaneous type/non-type bindings. 670 6712003-03-13 Mark Mitchell <mark@codesourcery.com> 672 673 * call.c (initialize_reference): Remove bogus assertion. 674 * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09. 675 6762003-03-12 Andrew Lewycky <andrew@mxc.ca> 677 678 PR c++/7050 679 * expr.c (cxx_expand_expr): Return const0_rtx for throw 680 expressions. 681 6822003-03-11 Mark Mitchell <mark@codesourcery.com> 683 684 PR c++/9474 685 * decl2.c (do_nonmember_using_decl): Do not call duplicate decls 686 to merge old and new declarations. 687 6882003-03-11 Mark Mitchell <mark@codesourcery.com> 689 690 PR c++/9924 691 * decl2.c (do_nonmember_using_decl): Ignore anticipated builtins. 692 6932003-03-11 Jason Merrill <jason@redhat.com> 694 695 PR c++/9820 696 * search.c (lookup_member): Fix handling of functions in a class 697 being defined. 698 6992003-03-11 Mark Mitchell <mark@codesourcery.com> 700 701 PR c++/8700 702 * call.c (print_z_candidates): Avoid printing duplicates. 703 7042003-03-11 Jason Merrill <jason@redhat.com> 705 706 PR c++/8660 707 * decl2.c (check_classfn): A member template only matches a 708 member template. 709 7102003-03-10 Devang Patel <dpatel@apple.com> 711 712 PR c++/9394 713 * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWITCH_TAKES_ARG. 714 7152003-03-10 Jason Merrill <jason@redhat.com> 716 717 PR c++/9798 718 * decl.c (push_using_directive): Push before recursing. 719 720 PR c++/9868 721 * call.c (resolve_scoped_fn_name): Handle the case of a function 722 pointer member. 723 * init.c (build_offset_ref): Handle getting a FIELD_DECL for NAME. 724 725 * decl2.c (build_offset_ref_call_from_tree): Only mess with 'this' 726 argument in the pointer-to-member case. 727 7282003-03-09 Mark Mitchell <mark@codesourcery.com> 729 730 PR c++/9373 731 * cp-lang.c (cxx_get_alias_set): Use alias set zero for 732 pointers to member functions. 733 734 PR c++/8534 735 * decl.c (build_ptrmemfunc_type): Do not allow default arugments 736 in pointer-to-member-function types. 737 7382003-03-09 Mark Mitchell <mark@codesourcery.com> 739 740 PR c++/9912 741 * cp-tree.h (is_ancestor): New function. 742 * decl2.c (is_namespace_ancestor): Rename to ... 743 (is_ancestor): ... this. 744 (namespace_ancestor): Use it. 745 (set_decl_namespace): Likewise. 746 (handle_class_head): Check for invalid class definitions. 747 7482003-03-10 Gabriel Dos Reis <gdr@integrable-solutions.net> 749 750 Compile-time improvement: 2/n. 751 * cp-tree.h (struct cxx_binding): New datatype; 752 (struct lang_identifier): Use it. 753 (LOCAL_BINDING_P): Adjust definition. 754 (INHERITED_VALUE_BINDING_P): Likewise. 755 (BINDING_SCOPE): Likewise. 756 (BINDING_HAS_LEVEL_P): Likewise. 757 (BINDING_VALUE): Likewise. 758 (BINDING_TYPE): Likewise. 759 (IDENTIFIER_VALUE): Likewise. 760 (struct tree_binding): Remove. 761 (TS_CP_BINDING): Likewise. 762 ((union lang_tree_node): Remove field "binding". 763 (cxx_binding_clear): New macro. 764 (binding_for_name): Adjust return type. 765 (qualified_lookup_using_namespace): Adjust prototype. 766 (lookup_using_namespace): Adjust prototype. 767 (cxx_scope_find_binding_for_name): Declare. 768 * cp-tree.def: Remove CPLUS_BINDING definition. 769 * parse.y (parse_scoped_id): Don't type-abuse of 'id'. Allocate 770 temporary cxx_binding on stack. Simplify. 771 * decl.c (push_binding): Adjust local variable type. 772 (add_binding): Likewise. 773 (push_class_binding): Likewise. 774 (pop_binding): Likewise. 775 (poplevel): Likewise. 776 (poplevel_class): Likewise. 777 (free_bindings): Adjust type. 778 (find_binding): Adjust return type, add a third parameter. Remove 779 non-useful assertion now that we use static typing. 780 (cxx_scope_find_binding_for_name): New function. 781 (binding_for_name): Use it. Adjust local variable type. Simplify. 782 (namespace_binding): Simplify. 783 (set_namespace_binding): Likewise. 784 (set_identifier_type_value_with_scope): Adjust local variable type. 785 (lookup_tag): Don't type-abuse of local variable 'old'. 786 (lookup_namespace_name): Likewise. Allocate binding on stack. 787 (select_decl): Adjust prototype. 788 (unqualified_namespace_lookup): Allocate binding on stack. 789 Don't type-abuse of local variable 'val'. 790 (lookup_name_real): Likewise. 791 (maybe_inject_for_scope_var): Adjust local variable type. 792 (cp_tree_node_structure): Remove CPLUS_BINDING case label. 793 (namespace_binding): Adjust logic, simplify. 794 (BINDING_LEVEL): Adjust definition. 795 (push_class_level_binding): Adjust local variable type. 796 (struct cxx_saved_binding): Adjust field 'binding' type. 797 * decl2.c (ambiguous_decl): Adjust prototype. 798 (lookup_using_namespace): Adjust local variable type. 799 (qualified_lookup_using_namespace): Catch type error and correct 800 ensueing logic error. 801 (do_nonmember_using_decl): Adjust local variable type. Allocate 802 temporary cxx_binding on stack. 803 (do_toplevel_using_decl): Adjust local variable type. 804 * ptree.c (cxx_print_cxx_binding): New function. 805 (cxx_print_identifier): Use it. 806 (cxx_print_xnode): Delete CPLUS_BINDING case label. 807 8082003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 809 810 PR c++/9970 811 * decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual 812 functions. 813 8142003-03-07 Matt Austern <austern@apple.com> 815 816 * cp-tree.h (struct lang_type_class): add field for key method 817 (cp_global_trees): rename dynamic_classes to keyed_classes 818 (key_method): add definition 819 * class.c (finish_struct_1): compute class's key method, and add 820 the class to keyed_classes list if there is no key method. 821 * decl.c (finish_function): add class to keyed_classes list if we 822 see a definition of the class's key method. 823 * pt.c (instantiate_class_template): add template specialization 824 of a dynamic class to keyed_classes list. 825 * decl2.c (key_method): remove 826 (finish_file): iterate only through keyed_classes list when 827 deciding whether to emit vtables, remove class from its list after 828 we do the emission. 829 8302003-03-08 Mark Mitchell <mark@codesourcery.com> 831 832 PR c++/9809 833 * call.c (add_function_candidate): Skip builtin fuctions that have 834 not yet been declared. 835 8362003-03-07 Mark Mitchell <mark@codesourcery.com> 837 838 * call.c (reference_binding): Remove REF_IS_VAR parameter. 839 (implicit_conversion): Adjust call to reference_binding. 840 (make_temporary_var_for_ref_to_type): Add TYPE parameter. 841 (initialize_reference): Adjust handling for references bound to 842 rvalues. 843 * cp-tree.h (make_temporary_var_for_ref_to_temp): Change 844 prototype. 845 (real_non_cast_lvalue_p): New method. 846 * cvt.c (build_up_reference): Adjust use of 847 make_temporary_var_for_ref_to_temp. 848 * tree.c (real_non_cast_lvalue_p): New method. 849 8502003-03-06 Mark Mitchell <mark@codesourcery.com> 851 852 * call.c (merge_conversion_sequences): New function. 853 (build_conv): Set ICS_USER_FLAG for USER_CONVs. 854 (convert_class_to_reference): Correct handling of second 855 standard conversion sequence in a user-defined conversion 856 sequence. 857 (build_user_type_conversion_1): Use merge_conversion_sequences. 858 * cp-tree.def: Add comments for CONV nodes. 859 8602003-03-06 Mark Mitchell <mark@codesourcery.com> 861 862 PR c++/9965 863 * call.c (reference_binding): Add ref_is_var parameter. 864 (implicit_conversion): Adjust call to reference_binding. 865 (initialize_reference): Likewise. 866 867 PR c++/9400 868 * decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL 869 PARM_DECLs. 870 8712003-03-06 Mark Mitchell <mark@codesourcery.com> 872 873 PR c++/9791 874 * class.c (get_basefndecls): Use lookup_fnfields_1. 875 8762003-03-02 Matt Austern <austern@apple.com> 877 878 * decl.c (cp_binding_level): Add static_decls varray member. 879 (add_decl_to_level): Add static/inline namespace scope 880 declarations to static_decls array. 881 (wrapup_global_for_namespace): Pass static_decls only, instead of 882 all decls, to wrapup_global_declarations/check_global_declarations. 883 (push_namespace): Initialize static_decls for ordinary namespaces. 884 (cxx_init_decl_processing): Initialize static_decls for global 885 namespace. 886 8872003-03-05 Mark Mitchell <mark@codesourcery.com> 888 889 * class.c (end_of_class): Correct thinko. 890 8912003-03-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 892 893 * cp-tree.h (cxx_saved_binding): Declare. 894 (struct saved_scope): Adjust type of field 'old_binding'. 895 * decl.c (cxx_saved_binding_make): New macro. 896 (struct cxx_saved_binding): Define. 897 (store_bindings): Adjust prototype. Use cxx_saved_binding to save 898 C++ bindings. 899 (maybe_push_to_top_level): Adjust local variable type. 900 (pop_from_top_level): Likewise. 901 9022003-03-03 Jason Merrill <jason@redhat.com> 903 904 * decl.c (finish_enum): Do set the type in a template. Simplify. 905 * pt.c (tsubst_enum, tsubst_copy): Revert last patch. 906 9072003-03-03 Mark Mitchell <mark@codesourcery.com> 908 909 PR c++/9878 910 * call.c (convert_class_to_reference): Correct conversion 911 sequences. 912 (reference_binding): Add ref_bound_directly_to_rvalue_p parameter. 913 (implicit_conversion): Adjust call to reference_binding. 914 (add_candidate): Change type of candidates parameter. 915 (add_function_candidate): Likewise. 916 (add_conv_candidate): Likewise. 917 (build_builtin_candidate): Likewise. 918 (add_builtin_candidate): Likewise. 919 (add_builtin_candidates): Likewise. 920 (add_template_candidate_real): Likewise. 921 (add_template_candidate): Likewise. 922 (add_template_conv_candidate): Likewise. 923 (build_user_type_conversion_1): Adjust accordingly. 924 (build_object_call): Likewise. 925 (build_conditional_expr): Likewise. 926 (add_candidates): Likewise. 927 (build_new_op): Likewise. 928 (convert_like_real): Use USER_CONV_CAND. Use build_nop. 929 (build_new_method_call): Adjust calls to add_function_candidate. 930 (make_temporary_var_for_ref_to_temp): New function. 931 (initialize_reference): Add decl parameter. 932 * class.c (build_rtti_vtbl_entries): Use build_address and 933 build_nop. 934 * cp-tree.h (initialize_reference): Change prototype. 935 (make_temporary_var_for_ref_to_temp): New function. 936 (build_type_conversion): Change prototype. 937 (build_address): New function. 938 (build_nop): Likewise. 939 * cvt.c (cp_convert_to_pointer): Adjust call to 940 build_type_conversion. Avoid indicating redundant NOP_EXPRs. 941 Use build_nop. 942 (convert_to_pointer_force): Use build_nop. 943 (build_up_reference): Use make_temporary_var_for_ref_to_temp. 944 (convert_to_reference): Adjust call to build_type_conversion. 945 (ocp_convert): Likewise. 946 (build_type_conversion): Remove for_sure parameter. 947 * decl.c (grok_reference_init): Use initialize_reference. 948 * typeck.c (build_address): New function. 949 (build_nop): Likewise. 950 (build_unary_op): Use them. 951 (build_ptrmemfunc): Tidy slightly. 952 (convert_for_initialization): Adjust call to 953 initialize_reference. 954 * typeck2.c (store_init_value): Remove #if 0'd code. 955 9562003-03-02 Ashif Harji <asharji@uwaterloo.ca> 957 958 * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to 959 invoke an external cpp during compilation. 960 9612003-02-28 Mark Mitchell <mark@codesourcery.com> 962 963 PR c++/9892 964 * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when 965 instantiating it. 966 9672003-02-28 Mark Mitchell <mark@codesourcery.com> 968 969 PR c++/9879 970 * cp-tree.h (build_zero_init): Add parameter. 971 * decl.c (cp_finish_decl): Adjust call. 972 * init.c (build_zero_init): Add nelts parameter. Adjust recursive 973 calls. 974 (build_default_init): Add nelts parameter. Adjust calls to 975 build_zero_init. 976 (build_new_1): Adjust call to build_default_init. 977 * typeck2.c (process_init_constructor): Adjust call to build_zero_init. 978 9792003-02-27 Devang Patel <dpatel@apple.com> 980 981 * decl.c (finish_enum): Merge two 'for' loops. Copy value node if required. 982 Postpone enum setting for template decls. 983 (build_enumerator): Delay copying value node until finish_enum (). Remove 984 #if 0'ed code. 985 * pt.c (tsubst_enum): Set TREE_TYPE and copy value node. 986 (tsubst_copy): Add check for enum type. 987 988 9892003-02-25 Mark Mitchell <mark@codesourcery.com> 990 991 PR c++/9829 992 * decl.c (grokdeclarator): Handle SCOPE_REFs whose second argument 993 is a NAMESPACE_DECL. 994 9952003-02-24 Gabriel Dos Reis <gdr@integrable-solutions.net> 996 997 * decl.c (add_binding): Time TV_NAME_LOOKUP. 998 (push_class_binding): Likewise. 999 (set_namespace_binding): Likewise. 1000 10012003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1002 1003 PR c++/9602 1004 * typeck2.c (abstract_virtuals_error): Don't check when we 1005 are processing a template. 1006 10072003-02-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1008 1009 PR c++/7982 1010 * decl.c (warn_about_implicit_typename_lookup): Handle TYPEOF_TYPE. 1011 10122003-02-21 Mark Mitchell <mark@codesourcery.com> 1013 1014 PR c++/9749 1015 * decl.c (grokdeclarator): Do not allow parameters with variably 1016 modified types. 1017 1018 PR c++/9727 1019 * decl2.c (push_scope): Don't pushclass for non-class types. 1020 (pop_scope): Don't popclass either. 1021 1022 PR c++/8906 1023 * decl.c (lookup_name_real): Use IMPLICIT_TYPENAME_P. 1024 * decl2.c (handle_class_head): Check it. 1025 1026 PR c++/8724 1027 * call.c (build_method_call): Make sure that the type destroyed in 1028 an explicit destructor call is complete. 1029 10302003-02-20 Mark Mitchell <mark@codesourcery.com> 1031 1032 PR c++/9729 1033 * mangle.c (mangle_conv_op_name_for_type): Issue an error message 1034 when the G++ 3.2 ABI prevents correct compilation. 1035 10362003-02-18 Mark Mitchell <mark@codesourcery.com> 1037 1038 PR c++/9704 1039 * class.c (layout_class_type): In the 3.2 ABI, take into account 1040 trailing bit fields when computing CLASSTYPE_SIZE_UNIT. 1041 10422003-02-18 Matt Austern <austern@apple.com> 1043 1044 * cp/cp-lang.c: Change lang hooks so that final_write_globals does 1045 nothing for C++. 1046 * cp/decl.c (wrapup_globals_for_namespace): Remove special 1047 handling of global namespace. 1048 10492003-02-18 Jason Merrill <jason@redhat.com> 1050 1051 PR c++/9623 1052 * decl.c (reshape_init): Don't mess with initializer labels. 1053 10542003-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1055 1056 PR c++/9459 1057 * error.c (dump_type_prefix): Handle TYPEOF_TYPE. 1058 (dump_type_suffix): Likewise. 1059 10602003-02-17 Michael Elizabeth Chastain <mec@shout.net> 1061 1062 PR debug/9717 1063 * class.c (build_base_field): Mark fields for base classes with 1064 DECL_IGNORED_P. 1065 10662003-02-13 Andrew Pinski <pinskia@physics.uc.edu> 1067 1068 * decl.c: (define_label): Fix warning for return 0 instead of NULL. 1069 10702003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 1071 1072 * Make-lang.in (cp/decl2.o): Add dependency on timevar.h 1073 * decl2.c: Include "timevar.h". 1074 (namespace_ancestor): Time name lookup. 1075 (add_using_namespace): Likewise. 1076 (lookup_using_namespace): Likewise. 1077 (qualified_lookup_using_namespace): Likewise. 1078 (decl_namespace): Likewise. 1079 (lookup_arg_dependent): Likewise. 1080 * lex.c (do_identifier): Likewise. 1081 (do_scoped_id): Likewise. 1082 * pt.c (lookup_template_class): Likewise. 1083 10842003-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net> 1085 1086 * decl.c (define_label): Don't forget to pop TV_NAME_LOOKUP. 1087 10882003-02-11 Gabriel Dos Reis <gdr@integrable-solutions.net> 1089 1090 * decl.c: Include "timevar.h". 1091 (poplevel): Time name lookup. 1092 (find_binding): Likewise. 1093 (push_namespace): Likewise. 1094 (pop_nested_namespace): Likewise. 1095 (store_bindings): Likewise. 1096 (maybe_push_to_top_level): Likewise. 1097 (pop_from_top_level): Likewise. 1098 (push_local_name): Likewise. 1099 (pushtag): Likewise. 1100 (pushdecl): Likewise. 1101 (pushdecl_with_scope): Likewise. 1102 (pushdecl_namespace_level): Likewise. 1103 (pushdecl_top_level): Likewise. 1104 (pushdecl_class_level): Likewise. 1105 (push_class_level_binding): Likewise. 1106 (push_using_decl): Likewise. 1107 (push_using_directive): Likewise. 1108 (push_overloaded_decl): Likewise. 1109 (lookup_label): Likewise. 1110 (define_label): Likewise. 1111 (lookup_tag): Likewise. 1112 (lookup_tag_reverse): Likewise. 1113 (lookup_namespace_name): Likewise. 1114 (select_decl): Likewise. 1115 (unqualified_namespace_lookup): Likewise. 1116 (lookup_name_real): Likewise. 1117 (lookup_name_current_level): Likewise. 1118 (lookup_type_current_level): Likewise. 1119 (maybe_inject_for_scope_var): Likewise. 1120 (xref_tag): Likewise. 1121 1122 * Make-lang.in (cp/decl.o): Add dependency on timevar.h 1123 11242003-02-03 Mark Mitchell <mark@codesourcery.com> 1125 1126 PR c++/7129 1127 * operators.def: Add <?= and >?=. 1128 11292003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1130 1131 PR c++/8849 1132 * error.c (dump_expr): Handle BASELINK. 1133 * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL. 1134 11352003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1136 1137 PR c++/9453 1138 * friend.c (is_friend): Always accept when SUPPLICANT is still 1139 a TEMPLATE_DECL. 1140 * pt.c (push_access_scope_real): Call push_to_top_level for 1141 function in namespace scope. 1142 (push_access_scope): Remove ARGS argument, all caller adjusted. 1143 (pop_access_scope): Call pop_from_top_level for function in 1144 namespace scope. 1145 (regenerate_decl_from_template): Use push_access_scope_real. 1146 11472003-01-29 Nathan Sidwell <nathan@codesourcery.com> 1148 1149 PR c++/9437 1150 * pt.c (unify): Don't unify '*T' with 'U C::*'. 1151 11522003-01-27 Jeffrey D. Oldham <oldham@codesourcery.com> 1153 1154 PR c++/47 1155 * cp-tree.h (lookup_nested_field): Add declaration. 1156 * decl.c (lookup_name_real): Call lookup_nested_field. 1157 * search.c (lookup_nested_field): Add function. 1158 11592003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de> 1160 1161 * Make-lang.in (c++.install-common, c++.install-man) 1162 (c++.uninstall): Prepend $(DESTDIR) to destination paths in 1163 all (un)installation commands. 1164 (c++.install-common): Rewrite $(LN) commands to support 1165 DESTDIR with "ln" as well as with "ln -s". 1166 11672003-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1168 1169 * decl2.c (check_classfn): Fix uninitialized warning. 1170 11712003-01-22 Mark Mitchell <mark@codesourcery.com> 1172 1173 PR c++/9328 1174 * error.c (dump_decl): For an OVERLOAD, just print the name of the 1175 function; it doesn't make sense to try to print its type. 1176 * semantics.c (finish_typeof): Issue errors about invalid uses. 1177 11782003-01-22 Josef Zlomek <zlomekj@suse.cz> 1179 1180 PR/9386, PR/8801 1181 2002-12-27 Mark Mitchell <mark@codesourcery.com> 1182 * typeck.c (build_class_member_access_expr): Fix anonymous union 1183 handling. 1184 11852003-01-17 Jason Merrill <jason@redhat.com> 1186 1187 PR c++/9167, c++/9358 1188 * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE. 1189 11902003-01-17 Jason Merrill <jason@redhat.com> 1191 1192 PR c++/9342 1193 * call.c (build_conditional_expr): Always do lvalue-rvalue 1194 conversion. 1195 11962003-01-16 Jason Merrill <jason@redhat.com> 1197 1198 PR c++/8564 1199 * init.c (build_vec_init): Re-add maxindex parm. 1200 (perform_member_init, build_aggr_init): Pass it. 1201 (build_new_1): Pass it. Use an incomplete array type for full_type. 1202 * typeck.c (build_modify_expr): Pass it. 1203 * cp-tree.h: Adjust. 1204 12052003-01-13 Jason Merrill <jason@redhat.com> 1206 1207 PR c++/8748 1208 * class.c (build_base_path): Take the address before calling save_expr. 1209 1210 * call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if 1211 all the ambiguous conversions are bad. 1212 1213 * class.c (maybe_warn_about_overly_private_class): Don't stop 1214 searching when we find a nonprivate method. 1215 12162003-01-09 Jakub Jelinek <jakub@redhat.com> 1217 1218 * decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs. 1219 12202003-01-09 Jakub Jelinek <jakub@redhat.com> 1221 1222 * decl.c (start_decl): Don't set DECL_COMMON for __thread variables. 1223 12242003-01-07 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1225 1226 PR c++/9030 1227 * decl.c (make_typename_type): Check access only when tf_error. 1228 (make_unbound_class_template): Likewise. 1229 * pt.c (saved_access_scope): New variable. 1230 (push_access_scope_real): New function. 1231 (push_access_scope): Likewise. 1232 (pop_access_scope): Likewise. 1233 (tsubst_default_argument): Use them. 1234 (instantiate_template): Likewise. 1235 (regenerate_decl_from_template): Likewise. 1236 (instantiate_decl): Likewise. 1237 (get_mostly_instantiated_function_type): Likewise. 1238 12392003-01-06 Mark Mitchell <mark@codesourcery.com> 1240 1241 PR c++/9165 1242 * decl2.c (build_cleanup): Mark the object as used. 1243 12442003-01-03 Nathan Sidwell <nathan@codesourcery.com> 1245 1246 PR c++/45, c++/3784 1247 * tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be 1248 the same too. 1249 12502002-12-30 Nathan Sidwell <nathan@codesourcery.com> 1251 1252 PR c++/9054 1253 * class.c (layout_class_type): Set DECL_CONTEXT of type for base. 1254 * dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types. 1255 12562002-12-26 Nathan Sidwell <nathan@codesourcery.com> 1257 1258 PR c++/4803 1259 * decl2.c (mark_used): Defer inline functions. 1260 (finish_file): Merge deferred_fns loops. Check all used 1261 inline functions have a definition. 1262 * method.c (make_thunk): Thunks are not inline. 1263 1264 PR c++/5116, c++/764 1265 * call.c (build_new_op): Make sure template class operands are 1266 instantiated. 1267 12682002-12-24 Nathan Sidwell <nathan@codesourcery.com> 1269 1270 PR C++/7964 1271 * cp-tree.h (resolve_scoped_fn_name): Prototype. 1272 * call.c (resolve_scoped_fn_name): New function. Deal with 1273 more template expansion. Broken out of ... 1274 * parse.y (parse_finish_call_expr): ... here. Call it. 1275 * decl2.c (build_expr_from_tree, CALL_EXPR): Use 1276 resolve_scoped_fn_name and build_call_from_tree. 1277 1278 PR c++/9053 1279 * decl.c (duplicate_decls): Templates may be disambiguated by 1280 return type. 1281 1282 PR c++/8702 1283 * decl2.c (check_classfn): Use lookup_fnfield_1. List all 1284 conversion operators on failure. 1285 12862002-12-22 Nathan Sidwell <nathan@codesourcery.com> 1287 1288 PR c++/8572 1289 * cp-tree.h (grokoptypename): Add SCOPE parameter. 1290 * decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type 1291 if in a template scope. 1292 * parse.y (unoperator): Return the scope. 1293 (operator_name): Adjust grokoptypename call. 1294 12952002-12-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1296 1297 * cp-tree.h (make_unbound_class_template): Use tsubst_flags_t. 1298 * decl.c (make_unbound_class_template): Adjust. Check for tf_error. 1299 * pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error. 1300 13012002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1302 1303 PR c++/8099 1304 * friend.c (make_friend_class): Allow partial specialization 1305 when declaration is not a template friend. 1306 13072002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1308 1309 PR c++/3663 1310 * pt.c (lookup_template_class): Copy TREE_PRIVATE and 1311 TREE_PROTECTED to created decl nodes. 1312 13132002-12-18 Mark Mitchell <mark@codesourcery.com> 1314 1315 * class.c (build_base_field): Do not set DECL_PACKED on the 1316 FIELD_DECL. 1317 13182002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1319 1320 * parse.y (bad_parm): Add missing argument to error function call. 1321 13222002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1323 1324 PR c++/8442 1325 * decl2.c (handle_class_head): Verify if the looked up name is a 1326 type or template. 1327 * pt.c (convert_template_argument): Fix type or template template 1328 parameter decision logic. 1329 13302002-12-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 1331 1332 PR C++/8031 1333 * cvt.c (convert_to_pointer_force): Don't try comparing against 1334 erronous type. 1335 13362002-12-13 Geoffrey Keating <geoffk@apple.com> 1337 1338 * cp-tree.h: Have the multiple-include guards around 1339 the entire file. 1340 13412002-12-10 Mark Mitchell <mark@codesourcery.com> 1342 1343 PR c++/8372 1344 * pt.c (tsubst_copy): Handle destructor names more correctly. 1345 13462002-12-10 Matt Austern <austern@apple.com> 1347 1348 * cp-tree.h: get rid of needs_virtual_reinit bit. 1349 13502002-12-09 Mark Mitchell <mark@codesourcery.com> 1351 1352 * NEWS: Document removal of in-class initialization extension for 1353 static data members of non-arithmetic, non-enumeration type. 1354 * decl.c (check_static_variable_definition): Do not allow that 1355 extension. 1356 * decl2.c (grokfield): Do not call digest_init when processing 1357 templates. 1358 13592002-12-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1360 1361 * error.c (dump_expr): Fix format specifier warning. 1362 13632002-12-04 Geoffrey Keating <geoffk@apple.com> 1364 1365 * class.c (finish_struct_1): Correct comment. 1366 * cp-tree.c (DECL_SORTED_FIELDS): Likewise. 1367 13682002-12-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 1369 1370 PR C++/8799 1371 * error.c (dump_expr): Don't ever try to dump a non-existent 1372 expression. 1373 13742002-12-03 Jason Merrill <jason@redhat.com> 1375 1376 PR c++/8674 1377 * call.c (build_over_call): Check specifically for TARGET_EXPR 1378 when eliding. 1379 1380 PR c++/8461, c++/8625 1381 * call.c (convert_for_arg_passing): Don't mess with error_mark_node. 1382 (cp_convert_parm_for_inlining): Remove. 1383 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): 1384 Remove. 1385 * cp-tree.h (ADDR_IS_INVISIREF): Remove. 1386 * except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code. 1387 1388 * call.c (build_user_type_conversion_1): Don't set ICS_BAD_FLAG on 1389 an ambiguous conversion. 1390 13912002-12-03 Mark Mitchell <mark@codesourcery.com> 1392 1393 PR c++/8688 1394 * decl.c (reshape_init): Handle erroneous initializers. 1395 13962002-12-02 Mark Mitchell <mark@codesourcery.com> 1397 1398 PR c++/8720 1399 * spew.c (remove_last_token): Make sure that last_chunk is set 1400 correctly. 1401 1402 PR c++/8615 1403 * error.c (dump_expr): Handle character constants with 1404 TREE_OVERFLOW set. 1405 14062002-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1407 1408 DR 180 1409 * decl.c (grokdeclarator): Require class-key for all friend class. 1410 Output the correct type and context in the error message. 1411 14122002-12-01 Mark Mitchell <mark@codesourcery.com> 1413 1414 PR c++/5919 1415 * pt.c (unify): Use variably_modified_type_p to test validity of 1416 template argument types. 1417 1418 PR c++/8727 1419 * cp-tree.h (lang_type_class): Add typeinfo_var. 1420 (CLASSTYPE_TYPEINFO_VAR): New macro. 1421 * rtti.c (get_tinfo_decl): Use it. 1422 1423 PR c++/8663 1424 * init.c (expand_member_init): Always get the main variant of a 1425 base class. 1426 14272002-12-01 Mark Mitchell <mark@codesourcery.com> 1428 1429 PR c++/8332 1430 PR c++/8493 1431 * decl.c (cxx_init_decl_processing): Use size_type_node, not 1432 c_size_type_node. 1433 * decl2.c (coerce_new_type): Likewise. 1434 * except.c (do_allocate_exception): Likewise. 1435 14362002-11-30 Mark Mitchell <mark@codesourcery.com> 1437 1438 PR c++/8227 1439 * decl.c (layout_var_decl): Deal gracefully with erroneous types. 1440 (check_initializer): Validate the type of the initialized 1441 variable, even if the initializer is absent. 1442 * typeck.c (cp_type_quals): Deal gracefully with erroneous types. 1443 1444 PR c++/8214 1445 * typeck.c (convert_for_assignment): Do not use 1446 decl_constant_value on the operand. 1447 1448 PR c++/8511 1449 * pt.c (instantiate_decl): Handle template friends defined outside 1450 of the class correctly. 1451 14522002-11-29 Joe Buck <jbuck@synopsys.com> 1453 1454 * parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for 1455 anonymous structs. 1456 14572002-11-29 Mark Mitchell <mark@codesourcery.com> 1458 1459 * class.c (walk_subobject_offsets): Recur on binfos as well as on 1460 types. 1461 (layout_nonempty_base_or_field): Pass it a binfo when processing a 1462 base class. 1463 (layout_empty_base): Likewise. 1464 (build_base_field): Likewise. 1465 14662002-11-27 Mark Mitchell <mark@codesourcery.com> 1467 1468 * class.c (build_base_field): Make sure we get the canonical base 1469 when descending through primary bases. 1470 14712002-11-26 Geoffrey Keating <geoffk@apple.com> 1472 1473 * decl.c (check_initializer): Don't error on initialisation of 1474 a scalar with a brace-enclosed expression. 1475 14762002-11-26 Nathan Sidwell <nathan@codesourcery.com> 1477 1478 * cp-tree.h (DECL_LANG_FLAG_4): Document more uses. 1479 (template_parms_equal): Remove prototype. 1480 * typeck.c (buuld_indirect_ref): Reformat. 1481 14822002-11-25 Mark Mitchell <mark@codesourcery.com> 1483 1484 * tree.c (cp_build_qualified_type_real): Correct handling of 1485 array types. 1486 * class.c (walk_subobject_offsets): Fix thinko. 1487 (build_base_field): Record offsets of empty bases in primary 1488 virtual bases. 1489 (layout_class_type): Record offsets of empty bases in fields. 1490 1491 * search.c (is_subobject_of_p_1): Fix thinko. 1492 (lookup_field_queue_p): Likewise. 1493 14942002-11-24 Mark Mitchell <mark@codesourcery.com> 1495 1496 * class.c (layout_class_type): Reuse tail padding when laying out 1497 virtual bases. 1498 14992002-11-22 Mark Mitchell <mark@codesourcery.com> 1500 1501 * rtti.c (qualifier_flags): Fix thinko. 1502 15032002-11-21 Glen Nakamura <glen@imodulo.com> 1504 1505 PR c++/8342 1506 * typeck.c (get_member_function_from_ptrfunc): Make sure that a 1507 SAVE_EXPR for instance_ptr doesn't get evaluated first inside one 1508 of the branches of a COND_EXPR. 1509 15102002-11-19 Mark Mitchell <mark@codesourcery.com> 1511 1512 * pt.c (for_each_template_parm): Free allocated memory. 1513 * search.c (is_subobject_of_p_1): New function. 1514 (is_subobject_of_p): Avoid walking virtual bases multiple times. 1515 15162002-11-19 Jason Thorpe <thorpej@wasabisystems.com> 1517 1518 * g++spec.c (lang_specific_spec_functions): New. 1519 15202002-11-15 Kazu Hirata <kazu@cs.umass.edu> 1521 1522 * ChangeLog: Follow spelling conventions. 1523 * class.c: Likewise. 1524 * decl2.c: Likewise. 1525 15262002-11-14 Zack Weinberg <zack@codesourcery.com> 1527 1528 * search.c (dfs_push_decls): Do not try to reorder elements 1529 3..n of method_vec if method_vec has only two elements. 1530 Reverse order of two tests to avoid accessing unallocated 1531 memory. 1532 15332002-11-14 Mark Mitchell <mark@codesourcery.com> 1534 1535 * class.c (dfs_find_final_overrider): Adjust so that the most 1536 derived object is a binfo, rather than a class type. 1537 (find_final_overrider): Likewise. 1538 (add_vcall_offset_vtbl_entries_1): Simplify accordingly. 1539 (add_vcall_offset): Likewise. 1540 15412002-11-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1542 1543 PR c++/8389 1544 * pt.c (instantiate_template): Push class scope for member 1545 functions. 1546 (get_mostly_instantiated_function_type): Likewise. Don't call 1547 tsubst on context. Remove CONTEXTP and TPARMSP parameters. 1548 * cp-tree.h (get_mostly_instantiated_function_type): Adjust. 1549 * mangle.c (write_encoding, write_unqualified_name): Adjust. 1550 15512002-11-07 Mark Mitchell <mark@codesourcery.com> 1552 1553 * class.c (add_vcall_offset_vtbl_entries_1): Correct ordering of 1554 vcall offfsets. Split out ... 1555 (add_vcall_offset): ... new function. 1556 1557 PR c++/8338 1558 * pt.c (for_each_template_parm): Add htab parameter. 1559 (process_partial_specialization): Adjust call. 1560 (push_template_decl_real): Likewise. 1561 (pair_fn_data): Add visited. 1562 (for_each_template_parm_r): Avoid walking duplicates more than 1563 once. 1564 (uses_template_parms): Adjust call to for_each_template_parm. 1565 15662002-11-07 Mark Mitchell <mark@codesourcery.com> 1567 1568 * class.c (add_implicitly_declared_members): Put implicitly 1569 declared functions at the end of TYPE_METHODs when -fabi-version 1570 is at least 2. 1571 15722002-11-05 Geoffrey Keating <geoffk@apple.com> 1573 1574 * decl2.c (finish_file): Correct spelling. 1575 15762002-11-03 Mark Mitchell <mark@codesourcery.com> 1577 1578 * call.c (build_special_member_call): Do not try to lookup VTTs by 1579 name. 1580 * class.c (vtbl_init_data): Add generate_vcall_entries. 1581 (get_vtable_decl): Do not look up virtual tables by name. 1582 (copy_virtuals): Do not use BV_USE_VCALL_INDEX_P. 1583 (set_primary_base): Do not set CLASSTYPE_RTTI. 1584 (determine_primary_base): Likewise. 1585 (get_matching_virtual): Remove. 1586 (get_vcall_index): New function. 1587 (update_vtable_entry_for_fn): Do not try to use virtual thunks 1588 when they are not required. Assign vcall indices at this point. 1589 (finish_struct_1): Do not set CLASSTYPE_NEEDS_VIRTUAL_REINIT. 1590 Do update dynamic_classes. 1591 (build_vtt): Do not add VTTs to the symbol table. 1592 (build_ctor_vtbl_group): Likewise. 1593 (build_vtbl_initializer): Simplify handling of vcall indices. 1594 (build_vcall_offset_vtbl_entries): Pretend to build vcall offsets 1595 for the most derived class. 1596 (add_vcall_offset_vtbl_entries_1): But do not actually add them to 1597 the vtable. 1598 * cp-tree.h (dynamic_classes): New macro. 1599 (lang_type_class): Remove rtti. Add vtables. Add vcall_indices. 1600 (CLASSTYPE_RTTI): Remove. 1601 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Remove. 1602 (CLASSTYPE_VCALL_INDICES): New macro. 1603 (CLASSTYPE_VTABLES): Likewise. 1604 (BV_USE_VCALL_INDEX_P): Remove. 1605 (build_vtable_path): Remove. 1606 * decl2.c (finish_vtable_vardecl): Remove. 1607 (key_method): Remove #if 0'd code. 1608 (finish_vtable_vardecl): Rename to ... 1609 (maybe_emit_vtables): ... this. 1610 (finish_file): Use it. 1611 * search.c (look_for_overrides_here): Update comment. 1612 16132002-11-01 Zack Weinberg <zack@codesourcery.com> 1614 1615 PR c/7353 redux 1616 * decl2.c (grokfield): Reject TYPE_DECLs with initializers. 1617 16182002-10-30 Jason Merrill <jason@redhat.com> 1619 1620 PR c++/8186 1621 * cp-tree.h (ADDR_IS_INVISIREF): New macro. 1622 * call.c (convert_for_arg_passing): Set it. 1623 * except.c (stabilize_throw_expr): Recurse for such an arg. 1624 16252002-10-31 Mark Mitchell <mark@codesourcery.com> 1626 1627 * cp-tree.h (lang_decl_flags): Remove init_priority. 1628 (lang_decl): Add delta. 1629 (GLOBAL_INIT_PRIORITY): Remove. 1630 (THUNK_DELTA): Revise definition. 1631 * decl2.c (start_objects): Don't set GLOBAL_INIT_PRIORITY. 1632 * dump.c (cp_dump_tree): Don't dump it. 1633 16342002-10-30 Mark Mitchell <mark@codesourcery.com> 1635 1636 PR c++/8160 1637 * typeck2.c (process_init_constructor): Call complete_array_type. 1638 1639 PR c++/8149 1640 * decl.c (make_typename_type): Issue errors about invalid results. 1641 16422002-10-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1643 1644 Core issue 287, PR c++/7639 1645 * cp-tree.h (lang_type_class): Add decl_list field. 1646 (CLASSTYPE_DECL_LIST): New macro. 1647 (maybe_add_class_template_decl_list): Add declaration. 1648 * class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST. 1649 (unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST. 1650 (maybe_add_class_template_decl_list): New function. 1651 (add_implicitly_declared_members): Use it. 1652 * decl.c (maybe_process_template_type_declaration): Likewise. 1653 (pushtag): Likewise. 1654 * friend.c (add_friend): Likewise. 1655 (make_friend_class): Likewise. 1656 * semantics.c (finish_member_declaration): Likewise. 1657 (begin_class_definition): Initialize CLASSTYPE_DECL_LIST. 1658 * pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST 1659 to process members and friends in the order of declaration. 1660 16612002-10-29 Mark Mitchell <mark@codesourcery.com> 1662 1663 PR c++/8287 1664 * decl.c (finish_destructor_body): Create the label to jump to 1665 when returning from a destructor here. 1666 (finish_function_body): Rather than here. 1667 16682002-10-25 Zack Weinberg <zack@codesourcery.com> 1669 1670 PR c++/7266 1671 * decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a 1672 SCOPE_REF is not null before dereferencing it. 1673 16742002-10-25 Mark Mitchell <mark@codesourcery.com> 1675 1676 * call.c (build_over_call): Use DECL_CONTEXT, not 1677 DECL_VIRTUAL_CONTEXT. 1678 * class.c (modify_vtable_entry): Don't mess with 1679 DECL_VIRTUAL_CONTEXT. 1680 (set_vindex): Remove. 1681 (set_primary_base): Remove vfuns_p parameter. 1682 (determine_primary_base): Likewise. 1683 (modify_all_vtables): Likewise. 1684 (layout_class_type): Likewise. Adjust calls to other functions 1685 accordingly. 1686 (finish_struct_1): Adjust calls to modified functions. Set 1687 DECL_VINDEX here. 1688 * cp-tree.h (lang_type_class): Remove vsize. 1689 (CLASSTYPE_VSIZE): Remove. 1690 (lang_decl): Remove thunks. 1691 (DECL_THUNKS): Adjust. 1692 (DECL_VIRTUAL_CONTEXT): Remove. 1693 (duplicate_decls): Don't copy it. 1694 * pt.c (build_template_decl): Don't set it. 1695 (tsubst_decl): Likewise. 1696 * typeck.c (expand_ptrmemfunc_cst): Don't use it. 1697 1698 * class.c (build_vtbl_initializer): Don't use build_vtable_entry. 1699 (build_vtable_entry): Remove. 1700 * cp-tree.h (BINFO_VIRTUALS): Expand documentation. 1701 (lang_decl): Add thunks. 1702 (DECL_THUNKS): New macro. 1703 * decl.c (duplicate_decls): Copy it. 1704 * method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS. 1705 * semantics.c (emit_associated_thunks): Simplify. 1706 17072002-10-24 David Edelsohn <edelsohn@gnu.org> 1708 1709 PR c++/7228 1710 * cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that 1711 lang_type structure exists before accessing field. 1712 (SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro. 1713 (CLASSTYPE_REF_FIELDS_NEED_INIT): Similar. 1714 (SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro. 1715 * class.c (check_field_decls): Use new macros. 1716 * typeck2.c (process_init_constructor): Remove redundant check for 1717 existence of lang_type structure. 1718 17192002-10-24 Mark Mitchell <mark@codesourcery.com> 1720 1721 * class.c (end_of_base): New method. 1722 (end_of_class): Use it. Check indirect virtual bases. 1723 1724 * class.c (check_field_decls): Fix typo. 1725 17262002-10-23 Mark Mitchell <mark@codesourcery.com> 1727 1728 PR c++/8067 1729 * decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and 1730 related variables. 1731 1732 PR c++/7679 1733 * spew.c (next_token): Do not return an endless stream of 1734 END_OF_SAVED_INPUT tokens. 1735 (snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of 1736 the cached token stream. 1737 (snarf_defarg): Likewise. 1738 17392002-10-23 Zack Weinberg <zack@codesourcery.com> 1740 1741 * cp-lang.c (cp_var_mod_type_p): New: C++ hook for 1742 variably_modified_type_p. 1743 * cp-tree.h: Remove prototype of variably_modified_type_p. 1744 * tree.c (variably_modified_type_p): Remove; now implemented 1745 in language-independent code. 1746 17472002-10-22 Mark Mitchell <mark@codesourcery.com> 1748 1749 PR c++/6579 1750 * spew.c (snarf_parenthesized_expression): New function. 1751 (snarf_block): Use it. 1752 17532002-10-22 Richard Henderson <rth@redhat.com> 1754 1755 * method.c (use_thunk): Always compute vcall_value; assert that 1756 it is not zero. Use can_output_mi_thunk; use output_mi_thunk 1757 for vcall thunks as well. 1758 17592002-10-21 Mark Mitchell <mark@codesourcery.com> 1760 1761 * class.c (empty_base_at_nonzero_offset_p): New function. 1762 (layout_nonempty_base_or_field): Do not check for conflicts when 1763 laying out a virtual base using the GCC 3.2 ABI. 1764 (build_base_field): Correct checking for presence of empty classes 1765 at nonzero offsets when clearing CLASSTYPE_NEARLY_EMPTY_P. 1766 1767 * class.c (include_empty_classes): Use normalize_rli. 1768 (layout_class_type): Likewise. 1769 1770 * decl.c (reshape_init): Tweak handling of character arrays. 1771 1772 PR c++/8218 1773 * cp-tree.h (lang_type_class): Add contains_empty_class_p. 1774 (CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro. 1775 * class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P. 1776 (check_field_decls): Likewise. 1777 (layout_class_type): Likewise. 1778 (finish_struct_1): Initialize it. 1779 (walk_subobject_offsets): Use it to prune searches. 1780 17812002-10-20 Mark Mitchell <mark@codesourcery.com> 1782 1783 * method.c (use_thunk): Compute the vcall index as a HOST_WIDE_INT. 1784 * optimize.c (optimize_function): Replace ASM_OUTPUT_MI_THUNK with 1785 TARGET_ASM_OUTPUT_MI_THUNK in comments. 1786 17872002-10-18 Zack Weinberg <zack@codesourcery.com> 1788 1789 * decl.c (start_decl): Point users of the old initialized- 1790 typedef extension at __typeof__. 1791 17922002-10-18 Mark Mitchell <mark@codesourcery.com> 1793 1794 * Make-lang.in (method.o): Depend on TARGET_H. 1795 * method.c (target.h): Include it. 1796 (use_thunk): Use target hooks. Use vcall thunks, if available. 1797 17982002-10-18 Mark Mitchell <mark@codesourcery.com> 1799 1800 * class.c (base_derived_from): Make sure return value is a bool. 1801 18022002-10-18 Mark Mitchell <mark@codesourcery.com> 1803 1804 * class.c (find_final_overrider_data_s): Remove overriding_fn and 1805 overriding_base. 1806 (dfs_base_derived_from): New function. 1807 (base_derived_from): Likewise. 1808 (dfs_find_final_overrider): Use base_derived_from. 1809 (find_final_overrider): Adjust. 1810 18112002-10-18 Jason Merrill <jason@redhat.com> 1812 1813 PR c++/8080 1814 * semantics.c (finish_for_cond, finish_while_cond): Don't mess 1815 with condition decls in a template. 1816 18172002-10-17 Nathan Sidwell <nathan@codesourcery.com> 1818 1819 * class.c (add_method): Compare template parms too. 1820 18212002-10-17 Mark Mitchell <mark@codesourcery.com> 1822 1823 PR c++/7584 1824 * class.c (handle_using_decl): Allow the declaration used to be 1825 from an ambiguous base. 1826 1827 * pt.c (convert_template_argument): Revert this change: 1828 2002-10-16 Mark Mitchell <mark@codesourcery.com> 1829 * pt.c (convert_template_argument): Do not fold non-type 1830 template rguments when inside a template. 1831 1832 * init.c (expand_default_init): Handle brace-enclosed initializers 1833 correctly. 1834 18352002-10-16 Mark Mitchell <mark@codesourcery.com> 1836 1837 * mangle.c (write_expression): Correct handling of enumeration 1838 constants. 1839 (write_template_arg): Likewise. 1840 * pt.c (convert_template_argument): Do not fold non-type template 1841 arguments when inside a template. 1842 1843 PR c++/7478 1844 * cvt.c (convert_to_reference): Allow references as the incoming 1845 type. 1846 18472002-10-16 Mark Mitchell <mark@codesourcery.com> 1848 1849 PR c++/7524 1850 * method.c (do_build_assign_ref): Use cp_build_qualified_type, not 1851 build_qualified_type. 1852 18532002-10-15 Richard Henderson <rth@redhat.com> 1854 1855 * error.c (dump_expr): Use real_to_decimal directly, and with 1856 the new arguments. 1857 18582002-10-15 Mark Mitchell <mark@codesourcery.com> 1859 1860 * decl.c (reshape_init): Fix typo. 1861 1862 * cp-tree.h (operator_name_info_t): Add arity. 1863 * lex.c (init_operators): Initialize it. 1864 * mangle.c (write_conversion_operator_name): New function. 1865 (write_unqualified_name): Use it. 1866 (write_template_args): Accept template arguments as a TREE_LIST. 1867 (write_expression): Adjust handling of qualified names to match 1868 specification. 1869 18702002-10-15 Jason Merrill <jason@redhat.com> 1871 1872 * call.c (call_builtin_trap): New fn. 1873 (convert_arg_to_ellipsis): Use it. Downgrade error to warning. 1874 (build_call): Don't set current_function_returns_abnormally outside 1875 a function. 1876 18772002-10-14 Mark Mitchell <mark@codesourcery.com> 1878 1879 * class.c (check_field_decls): Remove empty_p parameter. Instead, 1880 clear CLASSTYPE_EMPTY_P. 1881 (build_base_field): Likewise. 1882 (build_base_fields): Likewise. 1883 (check_bases_and_members): Likewise. 1884 (create_vtbl_ptr): Likewise. 1885 (layout_class_type): Likewise. Ensure that empty classes have 1886 size zero when used as base classes in the 3.2 ABI. 1887 (finish_struct_1): Initialize CLASSTYPE_EMPTY_P and 1888 CLASSTYPE_NEARLY_EMPTY_P. Adjust calls to avoid passing empty_p 1889 parameter. 1890 (is_empty_class): Correct definition when using post-3.2 ABI. 1891 * cp-tree.h (lang_type_class): Add empty_p. 1892 (CLASSTYPE_EMPTY_P): New macro. 1893 18942002-10-12 Nathan Sidwell <nathan@codesourcery.com> 1895 1896 * init.c (build_delete): Do not apply save_expr for arrays. 1897 (build_vec_delete): Likewise. 1898 18992002-10-14 Mark Mitchell <mark@codesourcery.com> 1900 1901 * decl.c (layout_var_decl): Call layout_decl even for variables 1902 whose type is an array with unspecified bounds. 1903 1904 PR c++/7176 1905 * lex.c (do_identifier): Add another option for the parsing 1906 parameter. 1907 * parse.y (do_id): Use it. 1908 19092002-10-11 Gabriel Dos Reis <gdr@integrable-solutions.net> 1910 1911 PRs C++/6803, C++/7721 and C++/7803 1912 * decl.c (grokdeclarator): Gracefully handle template-name as 1913 decl-specifier. 1914 19152002-10-11 Jason Molenda <jmolenda@apple.com> 1916 1917 * init.c (build_field_list): Provide uses_unions_p with a default 1918 value. 1919 19202002-10-11 Mark Mitchell <mark@codesourcery.com> 1921 1922 PR c++/5661 1923 * cp-tree.h (variably_modified_type_p): New function. 1924 (grokdeclarator) Tighten check for variably modified types as 1925 fields. 1926 * pt.c (convert_template_argument): Do not allow variably modified 1927 types as template arguments. 1928 * tree.c (variably_modified_type_p): New function. 1929 1930 * NEWS: Document removal of "new X = ..." extension. 1931 * class.c (initialize_array): Set TREE_HAS_CONSTRUCTOR on 1932 brace-enclosed initializers. 1933 * cp-tree.h (CP_AGGREGATE_TYPE_P): New macro. 1934 (initialize_local_var): Remove declaration. 1935 (expand_static_init): Likewise. 1936 * decl.c (next_initializable_field): New function. 1937 (reshape_init): Likewise. 1938 (check_initializer): Use them. Build dynamic initializer for 1939 aggregates here too. 1940 (initialize_local_var): Simplify, and incorporate cleanup 1941 insertion code as well. 1942 (destroy_local_var): Remove. 1943 (cp_finish_decl): Tidy. 1944 (expand_static_init): Fold checks for whether or not a variable 1945 needs initialization into this function. Simplify. 1946 * decl2.c (do_static_initialization): Simplify. 1947 * init.c (build_init): Do not set TREE_SIDE_EFFECTS when it will 1948 be done for us automatically. 1949 (expand_default_init): Handle brace-enclosed initializers 1950 correctly. 1951 (expand_aggr_init_1): Remove RTL-generation code. 1952 (build_vec_init): Remove "new X = ..." support. 1953 * parse.y (new_initializer): Likewise. 1954 * rtti.c (get_pseudo_ti_init): Set TREE_HAS_CONSTRUCTOR on 1955 brace-enclosed initializer. 1956 (create_pseudo_type_info): Likewise. 1957 * typeck2.c (store_init_value): Don't try to handle digest_init 1958 being called more than once. 1959 (digest_init): Tidy handling of brace-enclosed initializers. 1960 19612002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1962 1963 * decl.c (typename_hash): Use htab_hash_pointer. 1964 19652002-10-10 Jim Wilson <wilson@redhat.com> 1966 1967 * decl.c (duplicate_decls): Don't call decl_attributes. 1968 19692002-10-09 Zack Weinberg <zack@codesourcery.com> 1970 1971 PR c/7353 1972 * decl.c (start_decl): Unconditionally issue error for 1973 'typedef foo = bar'. 1974 (cp_finish_decl): Remove special case for TYPE_DECL with initializer. 1975 (grokdeclarator): Remove redundant error for 'typedef foo = bar'. 1976 19772002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1978 1979 * decl2.c (prune_vtable_vardecl): Delete unused function. 1980 19812002-10-03 Mark Mitchell <mark@codesourcery.com> 1982 1983 PR c++/7754 1984 * decl2.c (finish_anon_union): Do not expand anonymous unions when 1985 procesing template functions. 1986 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable 1987 type. Call layout_decl. 1988 (tsubst_expr, case DECL_STMT): Handle anonymous unions. 1989 19902002-10-07 Richard Henderson <rth@redhat.com> 1991 1992 * decl2.c, pt.c: Revert c++/7754 fix. 1993 19942002-10-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1995 1996 PR c++/7804 1997 * error.c (dump_expr) [REAL_CST]: Output in decimal format. 1998 19992002-10-03 Mark Mitchell <mark@codesourcery.com> 2000 2001 PR c++/7931 2002 * pt.c (for_each_template_parm_r): Handle BASELINKs. 2003 2004 PR c++/7754 2005 * decl2.c (finish_anon_union): Do not expand anonymous unions when 2006 procesing template functions. 2007 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable 2008 type. Call layout_decl. 2009 (tsubst_expr, case DECL_STMT): Handle anonymous unions. 2010 20112002-10-03 Mark Mitchell <mark@codesourcery.com> 2012 2013 PR c++/8006 2014 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template 2015 template parameters. 2016 (globals): Add entity and need_abi_warning. 2017 (decl_is_template_id): Use TYPE_TEMPLATE_INFO, not 2018 CLASSTYPE_TEMPLATE_INFO. 2019 (is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not 2020 TYPE_TI_TEMPLATE. 2021 (write_prefix): Handle typename types correctly. 2022 (write_template_prefix): Handle template template parameters 2023 correctly. 2024 (start_mangling): Add entity parameter. 2025 (finish_mangling): Warn about names whose mangling will change. 2026 (mangle_decl_string): Adjust. 2027 (mangle_type_string): Likewise. 2028 (mangle_special_for_type): Likewise. 2029 (mangle_ctor_vtbl_for_type): Likewise. 2030 (mangle_thunk): Likewise. 2031 (mangle_guard_variable): Likewise. 2032 (mangle_ref_init_variable): Likewise. 2033 20342002-10-02 Mark Mitchell <mark@codesourcery.com> 2035 2036 PR c++/7188. 2037 * cp-tree.def (CTOR_INITIALIZER): Use one slot, not two. 2038 * cp-tree.h (emit_base_init): Rename to .... 2039 (emit_mem_initializers): ... this. 2040 (expand_member_init): Change prototype. 2041 * init.c (perform_member_init): Compute explicit, rather than 2042 requiring it as a parameter. 2043 (sort_member_init): Rename to ... 2044 (sort_mem_initializers): ... this. Process bases and data members 2045 together. 2046 (sort_base_init): Remove. 2047 (emit_base_init): Rename to ... 2048 (emit_mem_initializers): ... this. 2049 (expand_aggr_vbase_init_1): Remove. 2050 (construct_virtual_bases): Rename to ... 2051 (construct_virtual_base): ... this. 2052 (expand_member_init): Rework handling of base initializers. 2053 * method.c (do_build_copy_constructor): Use 2054 finish_mem_initializers. 2055 * parse.y (member_init): Adjust calls to expand_member_init. 2056 * pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case. 2057 (tsubst_initializer_list): Use expand_member_init. 2058 * semantics.c (finish_mem_intiailizers): Simplify. 2059 20602002-10-02 Matt Austern <austern@apple.com> 2061 * decl.c (walk_vtables_r): Fixed typo that caused result to 2062 never get a nonzero value. 2063 20642002-10-02 Roger Sayle <roger@eyesopen.com> 2065 2066 PR optimization/6627 2067 * cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition 2068 from here, and move it to tree.h. 2069 * decl.c (cxx_init_decl_processing): If storing the vbit 2070 in function pointers, ensure that force_align_functions_log 2071 is atleast one. 2072 20732002-10-02 Matt Austern <austern@apple.com> 2074 2075 * class.c (check_field_decls): Changed warning about const member 2076 variables so that it doesn't get issued for a class aggregate. 2077 20782002-10-01 Mark Mitchell <mark@codesourcery.com> 2079 2080 * decl.c (cp_finish_decl): Make sure array types are laid out, 2081 even if the array bounds are unknown. 2082 20832002-10-01 Steve Ellcey <sje@cup.hp.com> 2084 2085 * class.c (build_vtbl_initializer): Change build_c_cast 2086 to build1. 2087 20882002-10-01 Mark Mitchell <mark@codesourcery.com> 2089 2090 * decl.c (cp_finish_decl): Make sure array types are laid out, 2091 even if the array bounds are unknown. 2092 2093 * decl.c (cp_finish_decl): Correct check for dynamic 2094 initialization of thread-local storage. 2095 20962002-09-30 Nathan Sidwell <nathan@codesourcery.com> 2097 2098 * tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also 2099 overloaded. 2100 21012002-09-30 Steve Ellcey <sje@cup.hp.com> 2102 2103 * class.c (build_vtbl_initializer): Add cast. 2104 (add_vcall_offset_vtbl_entries_1): 2105 Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset. 2106 21072002-09-30 Mark Mitchell <mark@codesourcery.com> 2108 2109 * class.c (walk_subobject_offsets): Correct the calculation of 2110 offsets for virtual bases. Correct the counting of array 2111 elements. 2112 (layout_nonempty_base_or_field): Simplify. Correct the 2113 calculation of offsets to be propagated through the binfo 2114 hierarchy. 2115 (build_base_field): Avoid creating a FIELD_DECL for empty bases. 2116 Add the FIELD_DECL to TYPE_FIELDS. 2117 (build_base_fields): Adjust accordingly. 2118 (layout_virtual_bases): Use build_base_field. 2119 (end_of_class): Return a tree, not an integer. 2120 (warn_about_ambiguous_direct_bases): Rename to ... 2121 (warn_about_ambiguous_bases): ... this. 2122 (include_empty_classes): New function. 2123 (layout_class_type): Create an alternative version of the type to 2124 be used when as a base class type. Do not call 2125 finish_record_layout until we are done laying out the class. 2126 * cp-tree.h (lang_type_class): Remove size, size_unit. Add 2127 as_base. 2128 (CLASSTYPE_SIZE): Reimplement. 2129 (CLASSTYPE_SIZE_UNIT): Likewise. 2130 (CLASSTYPE_ALIGN): Likweise. 2131 (CLASSTYPE_USER_ALIGN): Likewise. 2132 (CLASSTYPE_AS_BASE): New macro. 2133 (DECL_INITIALIZED_P): Likewise. 2134 (extract_init): Remove prototype. 2135 (build_forced_zero_init): Rename to ... 2136 (build_zero_init): ... this. 2137 (force_store_init_value): Remove. 2138 * decl.c (obscure_complex_init): Remove. 2139 (duplicate_decls): Copy DECL_INITIALIZED_P. 2140 (check_initializer): Do not leave junk in DECL_INITIAL. 2141 (cp_finish_decl): Handle zero-initialization of entities with 2142 static storage duration. 2143 * expr.c (extract_init): Remove. 2144 * init.c (build_forced_zero_init): Remove. 2145 (build_zero_init): New function. 2146 (build_default_init): Use it. 2147 (build_field_list): Skip FIELD_DECLs for base subobjects. 2148 (push_base_cleanups): Likewise. 2149 * method.c (do_build_assign_ref): Likewise. 2150 (synthesize_exception_spec): Likewise. 2151 * pt.c (tsubst_decl): Clear DECL_INITIALIZED_P. 2152 (regenerate_decl_from_template): To not set DECL_INITIAL for a 2153 static data member whose initialization took place in its class. 2154 (instantiate_decl): Do not pass an initializer to cp_finish_decl 2155 in that situation. 2156 * search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects. 2157 (dfs_unuse_fields): Likewise. 2158 * tree.c (pod_type_p): Handle error_mark_node. 2159 (zero_init_p): Likewise. 2160 * typeck.c (lookup_anon_field): Skip FIELD_DECLs for base 2161 subobjects. 2162 * typeck2.c (store_init_value): Remove #if 0'd code. 2163 (force_store_init_value): Remove. 2164 (process_init_constructor): Use build_zero_init. 2165 21662002-09-29 Nathan Sidwell <nathan@codesourcery.com> 2167 2168 PR c++/7788 2169 * rtti.c (unemitted_tinfo_decl_p): Check it has a field. 2170 21712002-09-29 Kazu Hirata <kazu@cs.umass.edu> 2172 2173 * cp-tree.h: Fix comment typos. 2174 * decl.c: Likewise. 2175 * pt.c: Likewise. 2176 21772002-09-25 Mark Mitchell <mark@codesourcery.com> 2178 2179 * cp/class.c (contains_empty_class_p): New method. 2180 (walk_subobject_offsets): Correct computation of field offset. 2181 (layout_empty_base): Correct placement of emtpy base classes. 2182 (layout_class_type): Warn about ABI changes. 2183 21842002-09-23 Mark Mitchell <mark@codesourcery.com> 2185 2186 * cp/class.c (layout_virtual_bases): Do not round the size of the 2187 type to a multiple of the alignment before laying out virtual bases. 2188 (layout_class_type): Correct handling of bit-fields that are wider 2189 than their type inside unions. Round the size of the type to a 2190 even number of bytes when computing the size without virtual 2191 bases. 2192 * cp/cp-tree.h (abi_version_at_least): New macro. 2193 21942002-09-21 Kazu Hirata <kazu@cs.umass.edu> 2195 2196 * ChangeLog: Follow spelling conventions. 2197 * ChangeLog.2: Likewise. 2198 * call.c: Likewise. 2199 * class.c: Likewise. 2200 * cp-tree.h: Likewise. 2201 * cvt.c: Likewise. 2202 * decl.c: Likewise. 2203 * decl2.c: Likewise. 2204 * except.c: Likewise. 2205 * friend.c: Likewise. 2206 * g++spec.c: Likewise. 2207 * init.c: Likewise. 2208 * lex.c: Likewise. 2209 * mangle.c: Likewise. 2210 * method.c: Likewise. 2211 * operators.def: Likewise. 2212 * optimize.c: Likewise. 2213 * pt.c: Likewise. 2214 * rtti.c: Likewise. 2215 * search.c: Likewise. 2216 * semantics.c: Likewise. 2217 * spew.c: Likewise. 2218 * tree.c: Likewise. 2219 * typeck.c: Likewise. 2220 22212002-09-18 Devang Patel <dpatel@apple.com> 2222 2223 * cp/cp-tree.h: New prototype for walk_vtabls(). 2224 * cp/decl.c (walk_vtables_r): New function. 2225 (struct cp_binding_level): Add new members, namespaces, 2226 names_size and vtables. 2227 (add_decl_to_level): Add decl in namespaces or vtables 2228 chain, if conditions match. 2229 (walk_vtables): New function. 2230 (walk_namespaces_r): Travers separate namespace chain 2231 for namespace decls. 2232 (wrapup_globals_for_namespace): Use names_size instead 2233 of list_length(). 2234 * cp/decl2.c (finish_file): Use walk_vtables() instead of 2235 walk_globals() to walk vtable decls. 2236 22372002-09-18 Nathan Sidwell <nathan@codesourcery.com> 2238 2239 * decl.c (grokdeclarator): Use assert, not internal_error. Don't 2240 ICE with invalid pointers & references. 2241 22422002-09-17 Zack Weinberg <zack@codesourcery.com> 2243 2244 * Make-lang.in: Remove all references to the demangler. 2245 * cxxfilt.c: Moved to binutils. 2246 22472002-09-16 Nathan Sidwell <nathan@codesourcery.com> 2248 2249 PR c++/7718 2250 * pt.c (tsubst_decl): Remove assert. 2251 2252 Remove DR 295 implementation. 2253 * pt.c (check_cv_quals_for_unify): Disable function & method cases. 2254 * tree.c (cp_build_qualified_type_real): Likewise. Don't warn 2255 about ignoring volatile qualifiers. 2256 2257 * search.c (lookup_member): Correct documentation. 2258 22592002-09-16 Geoffrey Keating <geoffk@apple.com> 2260 2261 * cp-tree.h (union lang_tree_node): Add chain_next option. 2262 22632002-09-16 Nathan Sidwell <nathan@codesourcery.com> 2264 2265 * parse.y (parse_finish_call_expr): Check lookup_member result. 2266 2267 PR c++/7015 2268 * semantic.c (finish_asm_stmt): Fix operand/output_operands 2269 thinko. 2270 * typeck.c (c_expand_asm_operands): Protect from error_mark_node. 2271 22722002-09-15 Nathan Sidwell <nathan@codesourcery.com> 2273 2274 PR c++/7919 2275 * call.c (build_over_call): Convert this pointer for fns found by 2276 using decls. 2277 22782002-09-15 Kazu Hirata <kazu@cs.umass.edu> 2279 2280 * ChangeLog: Follow spelling conventions. 2281 * ChangeLog.1: Likewise. 2282 22832002-09-14 Nathan Sidwell <nathan@codesourcery.com> 2284 2285 PR c++/7768 2286 * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P. 2287 22882002-09-14 Kazu Hirata <kazu@cs.umass.edu> 2289 2290 * error.c: Fix comment formatting. 2291 * except.c: Likewise. 2292 * expr.c: Likewise. 2293 * friend.c: Likewise. 2294 * g++spec.c: Likewise. 2295 * init.c: Likewise. 2296 * lex.c: Likewise. 2297 * mangle.c: Likewise. 2298 * method.c: Likewise. 2299 * optimize.c: Likewise. 2300 * pt.c: Likewise. 2301 * rtti.c: Likewise. 2302 * search.c: Likewise. 2303 * semantics.c: Likewise. 2304 * spew.c: Likewise. 2305 * tree.c: Likewise. 2306 * typeck.c: Likewise. 2307 * typeck2.c: Likewise. 2308 23092002-09-13 Matt Austern <austern@apple.com> 2310 2311 PR C++/7828 2312 * cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p. 2313 * cp/call.c: Change call-by-const-reference mechanism to use 2314 non_cast_lvalue_p when deciding whether the create a temporary. 2315 We need a temporary when passing, e.g. (long) x by const ref. 2316 23172002-09-13 Nathan Sidwell <nathan@codesourcery.com> 2318 2319 * pt.c (unify, ARRAY_TYPE): Element type can be more qualified. 2320 23212002-09-13 Kazu Hirata <kazu@cs.umass.edu> 2322 2323 * decl.c: Fix comment formatting. 2324 * decl2.c: Likewise. 2325 23262002-09-12 Kazu Hirata <kazu@cs.umass.edu> 2327 2328 * call.c: Fix comment formatting. 2329 * class.c: Likewise. 2330 * cp-lang.c: Likewise. 2331 * cp-tree.h: Likewise. 2332 * cvt.c: Likewise. 2333 23342002-09-11 Zack Weinberg <zack@codesourcery.com> 2335 2336 * Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c, 2337 and c++filt from cxxfilt.o + version.o + $(LIBDEPS). 2338 * cxxfilt.c: New file: split from libiberty/cplus-dem.c, with 2339 minor adjustments (use version_string, eliminate yet another 2340 duplicate of xmalloc) 2341 23422002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2343 2344 * cp-tree.h (require_complete_eh_spec_types): Add prototype. 2345 23462002-09-05 Jason Merrill <jason@redhat.com> 2347 2348 * typeck2.c (add_exception_specifier): Only pedwarn for an 2349 incomplete type. 2350 (require_complete_eh_spec_types): New fn. 2351 (cxx_incomplete_type_diagnostic): Also support pedwarning. 2352 * typeck.c (complete_type_or_diagnostic): Likewise. 2353 * call.c (build_call): Call require_complete_eh_spec_types. 2354 * rtti.c (get_pseudo_ti_desc): Give an error rather than aborting 2355 on an incomplete type. 2356 23572002-09-04 Jakub Jelinek <jakub@redhat.com> 2358 2359 * decl.c (start_cleanup_fn): Clear interface_only before 2360 start_function, restore it afterwards. 2361 23622002-08-31 Jason Merrill <jason@redhat.com> 2363 2364 * cp-lang.c (cp_expr_size): Allow initialization from a 2365 CONSTRUCTOR. 2366 23672002-08-30 Richard Henderson <rth@redhat.com> 2368 2369 PR opt/7515 2370 * tree.c: Include target.h. 2371 (cp_cannot_inline_tree_fn): Don't auto-inline functions that 2372 don't bind locally. 2373 * Makefile.in (tree.o): Update. 2374 23752002-08-27 Mark Mitchell <mark@codesourcery.com> 2376 2377 * class.c (layout_virtual_bases): Warn about bugs in G++ that 2378 result in incorrect object layouts. 2379 (layout_class_type): Likewise. 2380 23812002-08-24 Matt Austern <austern@apple.com> 2382 2383 * tree.c (lvalue_p_1): Add argument for whether casts of lvalues 2384 are allowable. 2385 (real_lvalue_p): Update caller. 2386 (lvalue_p): Ditto. 2387 (non_cast_lvalue_or_else): New. 2388 * tree.h: Declare it. 2389 * typeck.c (build_unary_op): Use non_cast_lvalue_or_else. 2390 23912002-08-22 Mark Mitchell <mark@codesourcery.com> 2392 2393 * typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR 2394 and COND_EXPR specially; fix error message output. 2395 23962002-08-22 Jason Merrill <jason@redhat.com> 2397 2398 * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR. 2399 * semantics.c (nullify_returns_r): Likewise. 2400 24012002-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net> 2402 2403 Fix PR/7621 2404 * typeck.c (finish_class_member_access_expr): Diagnose cases where 2405 name lookup finds nothing. 2406 24072002-08-15 Jason Merrill <jason@redhat.com> 2408 2409 * semantics.c (finish_then_clause): Remove redundant assignment. 2410 (finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the 2411 extra binding level outside the if/switch statement. 2412 (finish_while_cond, finish_for_cond): Rewrite complex condition 2413 into the loop body. 2414 24152002-08-15 Alexandre Oliva <aoliva@redhat.com> 2416 2417 * parse.y (sizeof, alignof, typeof): New non-terminals to 2418 increment skip_evaluation. Replace terminals with them and 2419 decrement skip_evaluation at the end of rules using them. 2420 * decl2.c (mark_used): Don't assemble_external if 2421 skipping evaluation. 2422 24232002-08-15 Gabriel Dos Reis <gdr@nerim.net> 2424 2425 Fix PR/7504 2426 * parse.y (parse_finish_call_expr): Handle incomplete 2427 type used to name a scope. 2428 24292002-08-15 Nathan Sidwell <nathan@codesourcery.com> 2430 2431 PR c++/7598 2432 * typeck.c (build_unary_op): Fold offsetof idiom. Fixes 2433 regression caused by my 2002-08-08 patch. 2434 24352002-08-13 Mark Mitchell <mark@codesourcery.com> 2436 2437 * decl.c (pushdecl_class_level): Honor requests to bind names to 2438 OVERLOADs. 2439 24402002-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2441 2442 * decl2.c (build_call_from_tree): Fix uninitialized variable. 2443 * parse.y (parse_finish_call_expr): Likewise. 2444 * repo.c (old_args, old_dir, old_main): Const-ify. 2445 24462002-08-11 Gabriel Dos Reis <gdr@nerim.net> 2447 2448 * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE + 2449 DECL_SOURCE_LINE with DECL_SOURCE_LOCATION. 2450 * optimize.c (maybe_clone_body): Likewise. 2451 * pt.c (tsubst_enum): Likewise. 2452 (lookup_template_class): Likewise. 2453 * tree.c (cp_copy_res_decl_for_inlining): Likewise. 2454 24552002-08-10 Neil Booth <neil@daikokuya.co.uk> 2456 2457 * lang-specs.h: Remove -ansi. 2458 24592002-08-10 Nathan Sidwell <nathan@codesourcery.com> 2460 2461 * tree.c (maybe_dummy_object): Replace // with /* */ 2462 24632002-08-09 Mark Mitchell <mark@codesourcery.com> 2464 2465 * call.c (standard_conversion): Use build_ptrmem_type. 2466 * cp-tree.h (build_ptrmem_type): New function. 2467 (adjust_result_of_qualified_name_lookup): Likewise. 2468 * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate 2469 static data members. 2470 (build_ptrmem_type): New function. 2471 (grokdeclarator): Do not use build_offset_type when encountering a 2472 qualified name. 2473 * parse.y (parse_finish_call_expr): Use 2474 adjust_result_of_qualified_name_lookup. 2475 * search.c (adjust_result_of_qualified_name_lookup): New function. 2476 * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than 2477 accessing OFFSET_TYPEs directly. 2478 24792002-08-08 Mike Stump <mrs@apple.com> 2480 2481 * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid. 2482 (type_decays_to): Likewise. 2483 * class.c (find_final_overrider): Likewise. 2484 (maybe_note_name_used_in_class): Likewise. 2485 * decl.c (current_tmpl_spec_kind): Likewise. 2486 (add_binding): Likewise. 2487 (push_class_binding): Likewise. 2488 (duplicate_decls): Likewise. 2489 (layout_var_decl): Likewise. 2490 (grokfndecl): Likewise. 2491 (grokdeclarator): Likewise. 2492 (check_default_argument): Likewise. 2493 * decl2.c (handle_class_head): Likewise. 2494 * error.c (dump_template_decl): Likewise. 2495 * init.c (build_offset_ref): Likewise. 2496 * pt.c (check_specialization_scope): Likewise. 2497 (determine_specialization): Likewise. 2498 (check_explicit_specialization): Likewise. 2499 (maybe_check_template_type): Likewise. 2500 (process_partial_specialization): Likewise. 2501 (check_default_tmpl_args): Likewise. 2502 (push_template_decl_real): Likewise. 2503 (convert_template_argument): Likewise. 2504 (try_class_unification): Likewise. 2505 (get_bindings_real): Likewise. 2506 (do_decl_instantiation): Likewise. 2507 * semantics.c (begin_function_definition): Likewise. 2508 (finish_member_declaration): Likewise. 2509 (check_multiple_declarators): Likewise. 2510 * typeck.c (comp_array_types): Likewise. 2511 (comptypes): Likewise. 2512 (expr_sizeof): Likewise. 2513 (build_binary_op): Likewise. 2514 (dubious_conversion_warnings): Likewise. 2515 (check_return_expr): Likewise. 2516 25172002-08-08 Mark Mitchell <mark@codesourcery.com> 2518 2519 * typeck.c (build_class_member_access_expr): Do not return 2520 error_mark_node when no error has occurred. 2521 25222002-08-08 Nathan Sidwell <nathan@codesourcery.com> 2523 2524 * typeck.c (build_component_addr): Remove. 2525 (build_unary_op): Just check it's not a bitfield, and then build 2526 an ADDR_EXPR. 2527 25282002-08-08 Nathan Sidwell <nathan@codesourcery.com> 2529 2530 * class.c (convert_to_base): Correct check for error_mark_node. 2531 (create_vtable_ptr): Remove unused VFUNS_P parm. 2532 25332002-08-08 Nathan Sidwell <nathan@codesourcery.com> 2534 2535 * cp/Make-lang.in (c++.mostlyclean): Remove coverage files. 2536 25372002-08-07 Mark Mitchell <mark@codesourcery.com> 2538 2539 Rework build_component_ref. 2540 * call.c (build_vfield_ref): Do not go through build_component_ref. 2541 (build_field_call): Use build_class_member_access_expr. 2542 (build_user_type_conversion_1): Use BASELINK_FUNCTIONS. 2543 (build_object_call): Likewise. 2544 * class.c (convert_to_base): New function. 2545 (type_requires_array_cookie): Use BASELINK_FUNCTIONS. 2546 (instantiate_type): Handle BASELINKs. 2547 * cp-tree.def (BASELINK): New tree code. 2548 * cp-tree.h (BASELINK_P): Reimplement. 2549 (SET_BASELINK_P): Remove. 2550 (BASELINK_BINFO): Reimplement. 2551 (BASELINK_FUNCTIONS): Likewise. 2552 (BASELINK_ACCESS_BINFO): Likewise. 2553 (BASELINK_OPTYPE): Likewise. 2554 (convert_to_base): New function. 2555 (name_p): Likewise. 2556 (build_object_ref): Remove. 2557 (build_component_ref_1): Likewise. 2558 (build_component_ref): Likewise. 2559 (build_x_component_ref): Likewise. 2560 (build_class_member_access_expr): New function. 2561 (finish_class_member_access_expr): Likewise. 2562 (build_ptrmemfunc_access_expr): Likewise. 2563 * decl.c (grokdeclarator): Handle BASELINKs. 2564 * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using 2565 finish_class_member_access_expr. 2566 (arg_assoc): Handle BASELINKs. 2567 (do_class_using_decl): Likewise. 2568 * error.c (dump_decl): Likewise. 2569 (dump_expr): Use build_ptrmemfunc_access_expr. 2570 * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find 2571 destructors. 2572 (build_throw): Use BASELINK_FUNCTIONS. 2573 * init.c (perform_member_init): Use 2574 build_class_member_access_expr. 2575 (build_offset_ref): Handle BASELINKs. Use 2576 build_class_member_access_expr. 2577 * method.c (hack_identifier): Likewise. 2578 * parse.y (do_id): Use BASELINK, not TREE_LIST. 2579 (primary): Remove uses of build_object_ref. 2580 * pt.c (lookup_template_function): Handle BASELINKs. 2581 (resolve_overloaded_unification): Likewise. 2582 * search.c (build_baselink): Build a BASELINK, not a TREE_LIST. 2583 (lookup_field): Use BASELINK, not TREE_LIST. 2584 (lookup_fnfiels): Likewise. 2585 (setup_class_bindings): Likewise. 2586 * semantics.c (finish_object_call_expr): Do not use 2587 build_method_call when we already know what function is being 2588 called. 2589 * spew.c (identifier_type): Use BASELINK, not TREE_LIST. 2590 * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not 2591 TREE_CHAIN. 2592 (name_p): New function. 2593 * typeck.c (build_object_ref): Remove. 2594 (build_component_ref_1): Likewise. 2595 (build_x_component_ref): Likewise. 2596 (build_class_member_access_expr): New function. 2597 (finish_class_member_access_expr): Likewise. 2598 (build_ptrmemfunc_access_expr): Likewise. 2599 (get_member_function_from_ptrfunc): Use 2600 build_ptrmemfunc_access_expr. 2601 (build_binary_op): Likewise. 2602 (build_unary_op): Likewise. 2603 (build_ptrmemfunc): Likewise. 2604 (pfn_from_ptrmemfunc): Likewise. 2605 * typeck2.c (build_m_component_ref): Adjust comment. 2606 26072002-08-07 Neil Booth <neil@daikokuya.co.uk> 2608 2609 * Make-lang.in (CXX_C_OBJS): Update. 2610 * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option. 2611 * cp-tree.h (cxx_decode_option): Remove. 2612 * decl2.c (compare_options, lang_f_options, unsupported_options, 2613 cxx_decode_option): Remove. 2614 26152002-08-06 Gabriel Dos Reis <gdr@nerim.net> 2616 2617 * typeck.c (build_x_unary_op): Handle pointer-to-member. 2618 26192002-08-05 Geoffrey Keating <geoffk@redhat.com> 2620 2621 * class.c: Don't include obstack.h. 2622 (popclass): 2623 * decl2.c: Delete bogus comment. 2624 * error.c: Don't include obstack.h. 2625 * except.c: Likewise. 2626 (dump_type): Correct comment. 2627 * method.c: Don't include obstack.h. 2628 * tree.c: Likewise. 2629 26302002-08-04 Gabriel Dos Reis <gdr@nerim.net> 2631 2632 Fix PR/2213 2633 * cvt.c (cp_convert_to_pointer): Reject conversions from integral 2634 expressions to pointer-to-data-member of pointer-to-member-functions. 2635 26362002-08-04 Geoffrey Keating <geoffk@redhat.com> 2637 2638 * cvt.c (ocp_convert): Delete obsolete code. 2639 * parse.y (permanent_obstack): Delete declaration. 2640 * pt.c (permanent_obstack): Delete declaration. 2641 * repo.c (permanent_obstack): Delete declaration. 2642 (open_repo_file): Use xmalloc instead of permanent_obstack. 2643 (init_repo): Use xstrdup instead of permanent_obstack. 2644 26452002-08-04 Nathan Sidwell <nathan@codesourcery.com> 2646 2647 * cp-tree.h (VF_DERIVED_VALUE): Remove. 2648 * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE. 2649 26502002-08-03 Nathan Sidwell <nathan@codesourcery.com> 2651 2652 PR 7470. 2653 C++ ABI change - vfunc ordering. 2654 * class.c (add_virtual_function): Remove. 2655 (dfs_modify_all_vtables): Take list of all declared 2656 virtuals. Assign all that are not in primary base. 2657 (check_for_override): Adjust comments. 2658 (create_vtable_ptr): Take single list of virtuals. Build chain 2659 of declared virtuals here. 2660 (layout_class_type): Take single list of virtuals. Adjust. 2661 (finish_struct_1): Keep virtuals on single list. Adjust. 2662 26632002-08-02 Mark Mitchell <mark@codesourcery.com> 2664 2665 * init.c (build_member_call): Use build_new_method_call, not 2666 build_method_call. 2667 26682002-08-02 Krister Walfridsson <cato@df.lth.se> 2669 2670 * Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies. 2671 26722002-08-02 Mark Mitchell <mark@codesourcery.com> 2673 2674 * call.c (build_method_call): Issue a more helpful error message 2675 about ambiguous method names. 2676 26772002-08-02 Nathan Sidwell <nathan@codesourcery.com> 2678 2679 * tree.c (build_shared_int_cst): Make cache file scope, and 2680 GTY it. 2681 26822002-08-02 Jason Merrill <jason@redhat.com> 2683 2684 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define. 2685 (cp_expr_size): New fn. 2686 * call.c (build_over_call): Lose empty class hackery. 2687 (convert_arg_to_ellipsis): Promote non-POD warning to error. 2688 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue. 2689 2690 * semantics.c (expand_body): Do tree optimization in the function 2691 context, too. 2692 26932002-08-01 Neil Booth <neil@daikokuya.co.uk> 2694 2695 * cp-tree.h: Move all warning and flag declarations to c-common.h. 2696 * decl.c: Move all warning and flag variables to c-common.c. 2697 * decl2.c: Move all warning and flag variables to c-common.c. 2698 * lex.c (flag_digraphs): Remove. 2699 (warn_traditional): Now in c-common.c. 2700 27012002-07-31 Mark Mitchell <mark@codesourcery.com> 2702 2703 * call.c (build_field_call): Do not look up the field by name. 2704 (build_method_call): Simplify. 2705 (struct z_candidate): Add access_path and conversion_path. Remove 2706 basetype_path. 2707 (convert_class_to_reference): Adjust use of 2708 add_function_candidate. 2709 (add_candidate): Add conversion_path argument. 2710 (add_function_candidate): Use it. 2711 (add_conv_dndidate): Likewise. 2712 (build_builtin_candidate): Likewise. 2713 (add_template_candidate_real): Add conversion_path argument. 2714 (add_template_conv_candidate): Likewise. 2715 (add_template_candidate): Likewise. 2716 (build_user_type_conversion_1): Use it. 2717 (build_new_function_call): Remove name lookup code. Adjust use of 2718 add_template_candidate and add_function_candidate. 2719 (build_new_op): Likewise. 2720 (convert_like_real): Use build_special_member_call. 2721 (build_over_call): Use cand->conversion_path. 2722 (build_special_member_call): New method. 2723 (build_new_method_call): Remove name lookup code. 2724 * cp-tree.def (OFFSET_REF): Update documentation. 2725 (TEMPLATE_ID_EXPR): Likewise. 2726 * cp-tree.h (BASELINK_ACCESS_BINFO): New macro. 2727 (BASELINK_OPTYPE): Likewise. 2728 (build_new_method_call): Adjust prototype. 2729 (build_special_member_call): New method. 2730 (build_baselink): New method. 2731 (build_offset_ref_call_from_tree): Likewise. 2732 (build_call_from_tree): Likewise. 2733 (finish_qualified_call_expr): Remove. 2734 (finish_call_expr): Adjust prototype. 2735 (build_x_function_call): Remove. 2736 * cvt.c (ocp_convert): Use build_special_member_call. 2737 * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr. 2738 (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and 2739 CALL_EXPR. 2740 (build_offset_ref_call_from_tree): New function. 2741 (build_call_from_tree): Likewise. 2742 * init.c (expand_cleanup): Use build_special_member_call. 2743 (expand_default_init): Likewise. 2744 (build_member_call): Use finish_call_expr. 2745 (build_new_1): Use build_special_member_call. 2746 (push_base_cleanups): Likewise. 2747 * method.c (do_build_assign_ref): Likewise. 2748 * parse.y (template_id): Do not pass a COMPONENT_REF to 2749 lookup_template_function. 2750 (primary): Use parse_finish_call_epxr, not finish_call_expr. 2751 (parse_finish_call_expr): New function. 2752 * pt.c (lookup_template_function): Add assertions. 2753 * search.c (lookup_base): Allow T to be a binfo. 2754 (build_baselink): New function. 2755 (lookup_member): Use it. 2756 * semantics.c (finish_call_expr): Do not do name lookup. 2757 (finish_object_call_expr): Remove #if 0'd code. 2758 (finish_qualified_call_expr): Remove. 2759 * typeck.c (build_x_function_call): Remove. 2760 (build_static_case): Use build_special_member_call. 2761 * typeck2.c (build_functional_cast): Likewise. 2762 27632002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 2764 2765 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c. 2766 27672002-07-30 Gabriel Dos Reis <gdr@nerim.net> 2768 2769 * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion. 2770 27712002-07-30 Nathan Sidwell <nathan@codesourcery.com> 2772 2773 * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more 2774 documentation. 2775 27762002-07-29 Alan Modra <amodra@bigpond.net.au> 2777 2778 * cp-tree.h: Comment typo fix. 2779 27802002-07-29 Richard Earnshaw <rearnsha@arm.com> 2781 2782 * spew.c (space_for_token): Allocate zeroed memory for a new token 2783 chunk. 2784 27852002-07-27 Roger Sayle <roger@eyesopen.com> 2786 2787 * decl.c (builtin_function_1): No need to explicitly mark 2788 BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn. 2789 27902002-07-27 Roger Sayle <roger@eyesopen.com> 2791 2792 * decl2.c (cxx_decode_option): Support -fno-builtin-foo. 2793 27942002-07-26 Jason Merrill <jason@redhat.com> 2795 2796 * call.c (build_over_call): Likewise. 2797 (cp_convert_parm_for_inlining): New fn. 2798 (convert_for_arg_passing): New fn. 2799 (convert_default_arg, build_over_call): Use it. 2800 (type_passed_as): New fn. 2801 * pt.c (tsubst_decl): Use it. 2802 * decl2.c (cp_build_parm_decl): New fn. 2803 (build_artificial_parm): Use it. 2804 (start_static_storage_duration_function): Likewise. 2805 * decl.c (start_cleanup_fn, grokdeclarater): Likewise. 2806 (grokparms): Don't mess with DECL_ARG_TYPE. 2807 * typeck.c (convert_arguments): Use convert_for_arg_passing. 2808 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): 2809 Define. 2810 * cp-tree.h: Declare new fns. 2811 28122002-07-26 Neil Booth <neil@daikokuya.co.uk> 2813 2814 * cp-tree.h (flag_operator_names): Remove. 2815 * decl2.c (flag_operator_names): Remove. 2816 (lang_f_options): Remove operator-names. 2817 * lex.c (D_OPNAME): Remove. 2818 (reswords): Remove operator names. 2819 (rid_to_yy): Remove operator names. 2820 (init_reswords): No need to handle D_OPNAME. 2821 * spew.c (read_process_identifier): There are no operator 2822 names. 2823 28242002-07-26 Jason Merrill <jason@redhat.com> 2825 2826 * dump.c (cp_dump_tree): Call c_dump_tree. 2827 * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 2828 28292002-07-25 Neil Booth <neil@daikokuya.co.uk> 2830 2831 * error.c (print_whitespace): Remove. 2832 * g++spec.c (LIBUNWIND): Move. 2833 * mangle.c (mangled_position, write_signed_number): Remove. 2834 28352002-07-25 Neil Booth <neil@daikokuya.co.uk> 2836 2837 * decl2.c (cxx_decode_option): Similarly. 2838 28392002-07-25 Gabriel Dos Reis <gdr@nerim.net> 2840 2841 * cp-tree.h (cxx_sizeof_nowarn): Now a macro. 2842 (cxx_sizeof_or_alignof_type): Take a third argument. 2843 (cxx_sizeof): Adjust definition. 2844 (cxx_alignof): Likewise. 2845 * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality. 2846 * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for 2847 complaining. 2848 (c_sizeof_nowarn): Remove definition. 2849 (build_unary_op): Use cxx_sizeof_nowarn. 2850 28512002-07-24 Geoffrey Keating <geoffk@redhat.com> 2852 2853 * tree.c (cp_build_qualified_type_real): When copying 2854 pointer-to-method types, unshare the record that holds 2855 the cached pointer-to-member-function type. 2856 28572002-07-23 Neil Booth <neil@daikokuya.co.uk> 2858 2859 * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove. 2860 28612002-07-23 Gabriel Dos Reis <gdr@nerim.net> 2862 2863 Fix PR/7363: 2864 * typeck.c (cxx_sizeof_or_alignof_type): New function. 2865 (c_sizeof): Remove definition. 2866 (expr_sizeof): Use cxx_sizeof. 2867 * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type. 2868 * decl.c (finish_destructor_body): Use cxx_sizeof. 2869 * semantics.c (finish_alignof): Likewise. 2870 (finish_alignof): Use cxx_alignof. 2871 * cp-tree.h (cxx_sizeof, cxx_alignof): New macros. 2872 (cxx_sizeof_or_alignof_type): Declare. 2873 (my_friendly_assert): Move to ../c-common.h. 2874 28752002-07-23 Neil Booth <neil@daikokuya.co.uk> 2876 2877 * class.c, method.c, pt.c, search.c: Don't define obstack macros. 2878 28792002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2880 2881 PR c++/7347, c++/7348 2882 * cp-tree.h (tsubst_flags_t): Add tf_parsing. 2883 * decl.c (make_typename_type): Use it. 2884 (make_unbound_class_template): Likewise. 2885 (lookup_name_real): Don't call type_access_control if scope is 2886 template parameter dependent. 2887 * parse.y (template_arg): Call make_unbound_class_template with 2888 tf_parsing set. 2889 (nest_name_specifier): Call make_typename_type with tf_parsing set. 2890 (typename_sub0): Likewise. 2891 (typename_sub1): Likewise. 2892 (instantiate_decl): Push class scope. 2893 * pt.c (regenerate_decl_from_template): Call pushclass and popclass 2894 for both static variable and member function template. 2895 (instantiate_decl) Call pushclass and popclass when tsubst'ing type 2896 and arguments. 2897 * search.c (type_access_control): Do type access for TEMPLATE_DECL 2898 too. 2899 29002002-07-20 Roger Sayle <roger@eyesopen.com> 2901 2902 * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions 2903 test by using positive_option. Make whitespace consistent. 2904 29052002-07-20 Gabriel Dos Reis <gdr@nerim.net> 2906 2907 * spew.c (struct unparsed_test): Replace 'filename' and 'lineno' 2908 members with 'locus'. Adjust use throughout. 2909 (struct feed): Likewise. 2910 (alloc_unparsed_test): Change prototype, take a 'const location_t *'. 2911 Adjust use. 2912 (snarf_defarg): Use error(), not error_with_file_and_line(). 2913 29142002-07-19 Chris Demetriou <cgd@broadcom.com> 2915 2916 * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever 2917 cpp_options is included. 2918 29192002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2920 2921 PR c++/2862, c++/2863 2922 * pt.c (determine_specialization): Compare the length of 2923 TYPE_ARG_TYPES. Tidy. 2924 29252002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2926 2927 PR c++/3797 2928 * decl.c (duplicate_decls): Don't propagate inlining parameters from 2929 olddecl to newdecl when newdecl is a specialization of the 2930 instantiation olddecl. 2931 29322002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2933 2934 PR c++/4802, c++/5387 2935 * decl.c (make_typename_type): Use enforce_access. 2936 29372002-07-17 Scott Snyder <snyder@fnal.gov> 2938 2939 PR c++/7320 2940 * rtti.c (get_tinfo_decl): Set DECL_COMDAT. 2941 29422002-07-12 Mark Mitchell <mark@codesourcery.com> 2943 2944 * class.c (add_method): Correct handling of conversion operators. 2945 29462002-07-11 Mark Mitchell <mark@codesourcery.com> 2947 2948 PR c++/7224 2949 * class.c (add_method): Simplify. 2950 29512002-07-11 Jason Merrill <jason@redhat.com> 2952 2953 PR c++/7279 2954 * tree.c (cp_copy_res_decl_for_inlining): Also copy 2955 TREE_ADDRESSABLE. 2956 29572002-07-10 Graham Stott <graham.stott@btinternet.com> 2958 2959 * pt.c (template_parm_this_level_p, push_template_decl_real): 2960 Pass depth as int pointer. 2961 29622002-07-11 Tim Josling <tej@melbpc.org.au> 2963 2964 Remove front end hard coding from gengtype.c. 2965 2966 * config-lang.in (gtfiles): Add files needed for this front end. 2967 29682002-07-10 Mark Mitchell <mark@codesourcery.com> 2969 2970 * cp-tree.h (unqualified_name_lookup_error): Declare it. 2971 (begin_function_definition): Adjust prototype. 2972 * lex.c (unqualified_name_lookup_error): New function, split out 2973 from ... 2974 (do_identifier): ... here. 2975 * parse.y (parse_begin_function_definition): New function. 2976 (fn.def1): Use it. 2977 * semantics.c (begin_function_definition): Accept decl-specifiers 2978 and attributes as separate parameters. 2979 29802002-07-10 Jason Merrill <jason@redhat.com> 2981 2982 PR c++/6255 2983 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than 2984 modifying the old one. 2985 29862002-07-09 Mark Mitchell <mark@codesourcery.com> 2987 2988 * cp-tree.h (constructor_name_p): Declare it. 2989 (check_template_template_default_arg): Likewise. 2990 * class.c (handle_using_decl): Use constructor_name_p. 2991 * decl.c (grokdeclarator): Likewise. 2992 * decl2.c (constructor_name_p): Define it. 2993 * init.c (build_member_call): Use constructor_name_p. 2994 * parse.y (template_parm): Use check_template_template_default_arg. 2995 * pt.c (check_explicit_specialization): Use constructor_name_p. 2996 * semantics.c (check_template_template_default_arg): New function. 2997 29982002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2999 3000 * pt.c (can_complete_type_without_circularity): Add static to 3001 function definition. 3002 30032002-07-08 Mark Mitchell <mark@codesourcery.com> 3004 3005 * cp-tree.h (have_extern_spec): Declare it 3006 * decl.c (have_extern_spec): Define it. 3007 (start_decl): Eliminate use of used_extern_spec. 3008 (start_function): Likewise. 3009 * parse.y (have_extern_spec): Remove declaration. 3010 (used_extern_spec): Likewise. 3011 (frob_specs): Eliminate use of used_extern_spec. 3012 (.hush_warning): Likewise. 3013 30142002-07-07 Mark Mitchell <mark@codesourcery.com> 3015 3016 * Make-lang.in (cp/parse.o): Depend on decl.h. 3017 * cp-tree.h (do_decl_instantiation): Change prototype. 3018 * parse.y: Include decl.h. 3019 (parse_decl_instantiation): New function. 3020 (explicit_instantiation): Use it. 3021 * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR 3022 and DECLSPECS. 3023 30242002-07-07 Roger Sayle <roger@eyesopen.com> 3025 3026 * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for 3027 constructor and destructor tests when passed a TEMPLATE_DECL. 3028 30292002-07-05 Jason Merrill <jason@redhat.com> 3030 3031 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null 3032 pointers. 3033 3034 PR optimization/7145 3035 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL. 3036 30372002-07-05 Nathan Sidwell <nathan@codesourcery.com> 3038 3039 Repair damage on weak-impared targets caused by my previous patch. 3040 * cp-tree.h (import_export_tinfo): Add parameter. 3041 * decl2.c (import_export_tinfo): Add parameter, post adjust 3042 DECL_COMDAT. 3043 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by 3044 import_export_tinfo. 3045 30462002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3047 3048 PR c++/6944 3049 * init.c (build_aggr_init): Remove qualifiers of init before calling 3050 build_vec_init. 3051 (build_vec_init): Flatten multi-dimensional array during cleanup. 3052 (build_vec_delete_1): Abort if the type of each element is array. 3053 30542002-07-03 Graham Stott <graham.stott@btinternet.com> 3055 3056 * pt.c (instantiate_class_template): Fix typo. 3057 30582002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3059 3060 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused 3061 by CVS conflict in my last patch. 3062 30632002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3064 3065 PR c++/6716 3066 * pt.c (can_complete_type_without_circularity): New function. 3067 (instantiate_class_template): Use it. 3068 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error 3069 message due to incomplete fields. 3070 30712002-07-01 Mark Mitchell <mark@codesourcery.com> 3072 3073 PR c++/7112 3074 * mangle.c (write_expression): Add mangling for sizeof when 3075 applied to a type. 3076 * operators.def: Remove stale comment. 3077 30782002-06-30 Nathan Sidwell <nathan@codesourcery.com> 3079 3080 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ... 3081 (CPTI_TYPE_INFO_PTR_TYPE): ... this. 3082 (tinfo_decl_type): Replace with ... 3083 (type_info_ptr_type): ... this. 3084 (import_export_tinfo): Declare. 3085 (tinfo_decl_p): Rename to ... 3086 (unemitted_tinfo_decl_p): ... this. 3087 * decl2.c (import_export_decl): Break out tinfo handling into ... 3088 (import_export_tinfo): ... here. New function. 3089 (finish_file): Adjust. 3090 * rtti.c (TINFO_REAL_NAME): New macro. 3091 (init_rtti_processing): Create the tinfo types. 3092 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr. 3093 (get_tinfo_decl): Adjust. 3094 (get_tinfo_ptr): New function. 3095 (get_type_id): Use it. 3096 (tinfo_base_init): Create vtable decl here, if it doesn't exist. 3097 (ptr_initializer): Use get_tinfo_ptr. 3098 (ptm_initializer): Likewise. 3099 (synthesize_tinfo_var): Break into ... 3100 (get_pseudo_ti_init): ... this. Just create the initializer. 3101 (get_pseudo_ti_desc): .. and this. 3102 (create_real_tinfo_var): Remove. 3103 (create_pseudo_type_info): Don't create the vtable decl here. 3104 (get_vmi_pseudo_type_info): Remove. 3105 (create_tinfo_types): Adjust. 3106 (tinfo_decl_p): Rename to ... 3107 (unemitted_tinfo_decl_p): ... here. Adjust. 3108 (emit_tinfo_decl): Adjust. Create the initializer. 3109 31102002-06-27 Mark Mitchell <mark@codesourcery.com> 3111 3112 PR c++/6695 3113 * pt.c (tsubst_friend_class): Substitute into the context of the 3114 friend before using it. 3115 31162002-06-26 Mark Mitchell <mark@codesourcery.com> 3117 3118 * cp-tree.h (xref_tag): Change prototype. 3119 (handle_class_head): Likewise. 3120 (build_x_component_ref): Likewise. 3121 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag. 3122 (xref_tag): Take attributes as a separate parameter. 3123 (xref_tag_from_type): Adjust call to xref_tag. 3124 * decl2.c (build_expr_from_tree): Adjust call to 3125 build_x_component_ref. 3126 (handle_class_head): Take attributes as a separate parameter. 3127 * parse.y (parse_xref_tag): New function. 3128 (parse_handle_class_head): Likewise. 3129 (primary): Use parse_xref_tag. 3130 (class_head_decl): Use parse_handle_class_head. 3131 (class_head_defn): Likewise. 3132 * rtti.c (init_rtti_processing): Adjust call to xref_tag. 3133 (build_dynamic_cast_1): Likewise. 3134 (create_pseudo_type_info): Likewise. 3135 (emit_support_tinfos): Likewise. 3136 * typeck.c (build_object_ref): Adjust call to 3137 build_x_component_ref. 3138 (build_x_component_ref): Remove protect parameter. 3139 31402002-06-25 Mark Mitchell <mark@codesourcery.com> 3141 3142 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS. 3143 * class.c (handle_using_decl): Likewise. 3144 (instantiate_type): Likewise. 3145 * cp-tree.h (BASELINK_FUNCTIONS): New macro. 3146 (xref_basetypes): Change prototype. 3147 (begin_mem_initializers): New function. 3148 (get_overloaded_fn): Likewise. 3149 * decl.c (xref_basetypes): Simplify. 3150 * error.c (dump_expr): Use BASELINK_FUNCTIONS. 3151 * init.c (build_offset_ref): Likewise. 3152 * parse.y (base_init): Use begin_mem_initializers(). 3153 (structsp): Adjust call to xref_basetypes. 3154 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS. 3155 (instantiate_class_template): Adjust call to xref_basetypes. 3156 * semantics.c (begin_mem_initializers): New function. 3157 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS. 3158 (really_overlaoded_fn): Likewise. 3159 (get_overloaded_fn): New function.' 3160 (get_first_fn): USe BASELINK_FUNCTIONS. 3161 31622002-06-24 Mark Mitchell <mark@codesourcery.com> 3163 3164 * cp-tree.h (SCALAR_TYPE_P): New macro. 3165 (check_for_out_of_scope_variable): New function. 3166 (at_class_scope_p): Likewise. 3167 (finish_fname): Likewise. 3168 * class.c (finish_struct): Use at_function_scope_p. 3169 * decl.c (check_for_out_of_scope_variable): New function, split 3170 out from do_identifier. 3171 (finish_enum): Use at_function_scope_p. 3172 * lex.c (do_identifier): Use check_for_out_of_scope_variable. 3173 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname. 3174 (primary): Use at_function_scope_p. 3175 * search.c (at_class_scope_p): New function. 3176 * semantics.c (finish_fname): Likewise. 3177 (check_multiple_declarators): Use at_function_scope_p. 3178 31792002-06-23 Mark Mitchell <mark@codesourcery.com> 3180 3181 * parse.y (parse_scoped_id): New function. 3182 (primary): Use it. 3183 * cp-tree.h (do_scoped_id): Adjust declaration. 3184 * lex.c (do_scoped_id): Remove call to yylex. 3185 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id. 3186 * typeck2.c (add_exception_specifier): Use tree_cons, rather than 3187 expanding it inline. 3188 31892002-06-23 Matt Thomas <matt@3am-software.com> 3190 3191 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to 3192 "#if VMS_TARGET". 3193 31942002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3195 3196 * mangle.c (integer_type_codes): Const-ify. 3197 31982002-06-20 Richard Henderson <rth@redhat.com> 3199 3200 PR c++/6747 3201 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early. 3202 Call put_var_into_stack. 3203 32042002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3205 3206 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit 3207 array size calculation. 3208 32092002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3210 3211 PR c++/6892 3212 * pt.c (tsubst_expr): Handle FILE_STMT. 3213 32142002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3215 3216 PR c++/6723 3217 * pt.c (lookup_template_class): Don't build complete argument of 3218 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template 3219 argument. 3220 32212002-06-19 Akim Demaille <akim@epita.fr> 3222 3223 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with 3224 decl.h's TYPENAME. 3225 * spew.c, lex.c: Adjust. 3226 * parse.y (explicit_instantiation): Add empty action to override 3227 the default $$ = $1 where it introduces a type clash. 3228 32292002-06-14 Jason Merrill <jason@redhat.com> 3230 3231 * semantics.c (begin_for_stmt): Push the 'for' scope before 3232 adding the FOR_STMT. 3233 3234 C++ ABI changes. 3235 * class.c (build_base_field): Set DECL_PACKED. 3236 (layout_class_type): Don't use tail padding of PODs. 3237 * mangle.c (write_unqualified_name): Fix template conversion op 3238 mangling. 3239 32402002-06-16 Richard Henderson <rth@redhat.com> 3241 3242 PR opt/6793 3243 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test 3244 after template instantiation. 3245 32462002-06-16 Richard Henderson <rth@redhat.com> 3247 3248 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common. 3249 32502002-06-15 Gabriel Dos Reis <gdr@codesourcery.com> 3251 3252 * cp-tree.h (compiler_error): Remove declaration. 3253 * lex.c (compiler_error): Remove definition. 3254 32552002-06-14 Steve Ellcey <sje@cup.hp.com> 3256 3257 * g++spec.c (LIBUNWIND): New. 3258 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set. 3259 32602002-06-13 Jessica Han <jessica@cup.hp.com> 3261 3262 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN. 3263 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE. 3264 (build_vbase_offset_vtbl_entries): Likewise. 3265 * rtti.c (build_headof): Likewise. 3266 (get_tinfo_decl_dynamic): Likewise. 3267 (create_pseudo_type_info): Likewise. 3268 32692002-06-12 Stan Shebs <shebs@apple.com> 3270 3271 * mpw-config.in: Remove file, no longer used. 3272 * mpw-make.sed: Ditto. 3273 32742002-06-07 Zack Weinberg <zack@codesourcery.com> 3275 3276 * decl2.c: Update call to cpp_handle_option. 3277 32782002-06-07 H.J. Lu (hjl@gnu.org) 3279 3280 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT. 3281 32822002-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 3283 3284 * error.c (cp_error_at): Fix typo. 3285 32862002-06-04 Gabriel Dos Reis <gdr@codesourcery.com> 3287 3288 * error.c (cp_diagnostic_starter): Adjust call. 3289 (maybe_print_instantiation_context): Change prototype to take a 3290 'diagnostic_info *'. 3291 (print_instantiation_full_context): Likewise. 3292 (print_instantiation_partial_context): Likewise. 3293 (cp_diagnostic_starter): Likewise. 3294 (cp_diagnostic_finalizer): Likewise. 3295 (cp_print_error_function): Likewise. 3296 (cp_printer): Take a secondary parameter as a 'text_info *'. 3297 Remove output_state savings. Adjust calls. 3298 32992002-06-03 Geoffrey Keating <geoffk@redhat.com> 3300 3301 * pt.c (inline_parm_levels): Mark for GC. 3302 3303 * mangle.c (start_mangling): Allocate G.substitutions here... 3304 (init_mangle): ... rather than here. 3305 (finish_mangling): Clear the varray pointer when done with it. 3306 * spew.c (yylexstring): Don't use VARRAY_FREE. 3307 * search.c (bfs_walk): Don't use VARRAY_FREE. 3308 * decl2.c (pending_statics): Use gengtype to mark. 3309 (deferred_fns): Likewise. 3310 (ssdf_decls): Likewise. 3311 (init_decl2): Delete. 3312 * decl.c (pop_from_top_level): Don't use VARRAY_FREE. 3313 (cxx_init_decl_processing): Don't call init_decl2. 3314 (cxx_pop_function_context): Don't use VARRAY_FREE. 3315 * cp-tree.h (struct saved_scope): No need for special marking 3316 of varrays. 3317 (struct language_function): Likewise. 3318 (local_classes): Use gengtype to mark. 3319 (init_decl2): Delete prototype. 3320 * class.c (init_class_processing): Don't use 3321 ggc_add_tree_varray_root. 3322 (build_vtbl_initializer): Don't use VARRAY_FREE. 3323 3324 * decl.c (typename_compare): Don't use same_type_p. 3325 3326 * decl.c: Include hashtab.h instead of hash.h. 3327 (typename_hash): Update to use htab_h. 3328 (typename_compare): Likewise. 3329 (typename_htab): Use gengtype to mark. 3330 (build_typename_type): Update to use htab_h. 3331 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h. 3332 3333 * Make-lang.in (gt-cp-tree.h): New rule. 3334 (cp/tree.o): Depend on gt-cp-tree.h. 3335 * config-lang.in (gtfiles): Add cp/tree.c. 3336 * tree.c: Include gt-cp-tree.h. 3337 (list_hash_table): Use gengtype to mark. 3338 (init_tree): Use gengtype to mark trees. 3339 3340 * Make-lang.in (cp/decl.o): Add debug.h dependency. 3341 * call.c (struct z_candidate): Use gengtype. 3342 (USER_CONV_CAND): Use WRAPPER_ZC. 3343 (convert_class_to_reference): Use build_zc_wrapper. 3344 (build_type_conversion_1): Likewise. 3345 (build_over_call): Use WRAPPER_ZC. 3346 (add_warning): Use build_zc_wrapper. 3347 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete. 3348 * cp-tree.h (struct lang_identifier): Use gengtype. 3349 (struct template_parm_index_s): Likewise. 3350 (struct ptrmem_cst): Likewise. 3351 (struct tree_binding): Likewise. 3352 (struct tree_overload): Likewise. 3353 (struct tree_srcloc): Likewise. 3354 (struct tree_wrapper): Likewise. Also modify to have a pointer 3355 to struct z_candidate rather than void. 3356 (enum cp_tree_node_structure_enum): New. 3357 (union lang_tree_node): New. 3358 (cxx_mark_tree): Delete prototype. 3359 (cp_tree_node_structure): New prototype. 3360 (build_ptr_wrapper): Delete prototype. 3361 (build_int_wrapper): Delete prototype. 3362 (build_zc_wrapper): New prototype. 3363 * decl.c: Include debug.h 3364 (cxx_mark_tree): Delete. 3365 (cp_tree_node_structure): New. 3366 * tree.c (build_ptr_wrapper): Delete. 3367 (build_int_wrapper): Delete. 3368 (build_zc_wrapper): New. 3369 3370 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK): 3371 Correct typo. Patch from k_fukui@highway.ne.jp. 3372 3373 * semantics.c (current_stmt_tree): Update for change to 3374 struct language_function. 3375 (finish_mem_initializers): Likewise. 3376 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status. 3377 * cp-tree.h (struct language_function): Rename from 3378 cp_language_function. Change all uses. 3379 (cp_function_chain): Don't need to cast. 3380 3381 * class.c (duplicate_tag_error): Reset discriminator. 3382 (check_bases_and_members): Update for data structure changes. 3383 * cp-tree.h (struct lang_id2): Use gengtype. 3384 (flagged_type_tree): Likewise. 3385 (SET_LANG_ID): Use GGC on struct lang_id2. 3386 (struct cp_language_function): Use gengtype. Remove field 3387 'x_vcalls_possible_p'. 3388 (current_vcalls_possible_p): Delete. 3389 (struct lang_type_header): New. 3390 (struct lang_type_class): Rename from struct lang_type. Include 3391 struct lang_type_header. 3392 (struct lang_type_ptrmem): New. 3393 (struct lang_type): New. 3394 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros. 3395 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros. 3396 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes. 3397 (struct lang_decl_flags): Use gengtype. Add discriminators. 3398 (struct lang_decl): Use gengtype. Add and use discriminators. 3399 Update the macros that reference moved fields. 3400 (LANG_DECL_U2_CHECK): New function. Use it when appropriate. 3401 (SET_DECL_THUNK_P): Set discriminator too. 3402 (clear_inline_text_obstack): Delete prototype. 3403 (finish_inline_definitions): Delete prototype. 3404 (mark_pending_inlines): Delete prototype. 3405 (lang_check_failed): New prototype. 3406 * decl.c (struct named_label_use_list): Use gengtype. 3407 (struct named_label_list): Likewise. 3408 (mark_binding_level): Delete. 3409 (mark_named_label_lists): Delete. 3410 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC. 3411 (cxx_init_decl_processing): Use generated marker routine. 3412 (begin_destructor_body): Delete dead set to 3413 current_vcalls_possible_p. 3414 (mark_lang_function): Delete. 3415 (mark_cp_function_context): Delete. 3416 (lang_mark_tree): Use generated marker routines. 3417 * decl2.c (start_objects): Set discriminator when setting 3418 GLOBAL_INIT_PRIORITY. 3419 * lex.c (retrofit_lang_decl): Set discriminators. 3420 (copy_lang_type): Update for changes to lang_type structure. 3421 (cp_make_lang_type): Set discriminator. 3422 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers. 3423 * search.c: Include ggc.h. 3424 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it. 3425 (finish_inline_definitions): Delete. 3426 * spew.c (struct token): Use gengtype. 3427 (struct token_chunk): New. 3428 (struct unparsed_text): Use gengtype. Store tokens in chunks. 3429 (struct feed): Use gengtype. 3430 (feed_obstack): Delete. 3431 (feed): Mark as GC root. 3432 (pending_inlines): Mark as GC root. 3433 (pending_inlines_tail): Likewise. 3434 (processing_these_inlines): Likewise. 3435 (token_obstack): Make static. 3436 (first_token): Likewise. 3437 (init_spew): Don't initialize deleted things; use gengtype for roots. 3438 (clear_inline_text_obstack): Delete. 3439 (feed_input): Use GC for struct feed. Update for changes to 3440 struct unparsed_text. 3441 (mark_pending_inlines): Delete. 3442 (next_token): Rename from add_token. Change all callers. Update 3443 for changes to struct unparsed_text. 3444 (space_for_token): New. 3445 (remove_last_token): New. 3446 (alloc_unparsed_text): New. 3447 (snarf_block): Take an unparsed_text. Update for changes to struct 3448 unparsed_text. 3449 (snarf_method): Update for changes to struct unparsed_text. 3450 (snarf_defarg): Update for changes to struct unparsed_text. 3451 * tree.c (lang_check_failed): New. 3452 3453 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h 3454 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules. 3455 (cp/spew.o): Add dependency on gt-<filename>.h. 3456 (cp/decl2.o): Add dependency on gt-<filename>.h. 3457 (cp/call.o): Add dependency on gt-<filename>.h. 3458 (cp/pt.o): Add dependency on gt-<filename>.h. 3459 (cp/repo.o): Add dependency on gt-<filename>.h. 3460 (cp/parse.o): Add dependency on gt-<filename>.h. 3461 * call.c: Use gengtype for roots. 3462 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c 3463 decl2.c parse.y pt.c repo.c spew.c. 3464 * cp-tree.h: Use gengtype for roots. 3465 (struct saved_scope): Use GGC, gengtype. 3466 (cp_parse_init): Delete prototype. 3467 (init_pt): Delete prototype. 3468 * decl.c: Use gengtype for roots. 3469 (mark_saved_scope): Delete. 3470 (cxx_init_decl_processing): Don't call deleted initilisation 3471 routines. 3472 (signed_size_zero_node): Delete, unused. 3473 * decl.h: Use gengtype for roots. 3474 * decl2.c: Use gengtype for roots. 3475 * lex.h: Use gengtype for roots. 3476 * parse.y: Use gengtype for roots. 3477 (cp_parse_init): Delete. 3478 * pt.c: Use gengtype for roots. 3479 (init_pt): Delete. 3480 * repo.c: Use gengtype for roots. 3481 * spew.c: Use gengtype for roots. 3482 3483 * Make-lang.in: Allow for filename changes. Add gtype-cp.h. 3484 (cp/decl.o): Add dependency on gtype-cp.h. 3485 * decl.c: Remove use of add_deletable_root, use GTY marker instead. 3486 Include gtype-cp.h. Allow for filename changes. 3487 3488 * Make-lang.in (cp/gt-decl.h): Generate using gengtype. 3489 (cp/decl.o): Add cp/gt-decl.h dependency. 3490 * config-lang.in (gtfiles): New. 3491 * tree.h: Rename struct binding_level to struct cp_binding_level. 3492 * decl.c: Rename struct binding_level to struct cp_binding_level. 3493 Include cp/gt-decl.h. 3494 (struct cp_binding_level): Use gengtype. 3495 (make_binding_level): Use GGC on struct cp_binding_level. 3496 (mark_binding_level): Use gt_ggc_m_cp_binding_level. 3497 (cxx_init_decl_processing): Mark free_binding_level as 3498 deletable. 3499 3500 * decl.c (mark_cp_function_context): Update calling sequence. 3501 3502 * decl.c (start_function): Don't free 'struct 3503 cp_language_function'. 3504 (pop_cp_function_context): Likewise. 3505 (save_function_data): Allocate it using GC. 3506 * semantics.c (genrtl_start_function): Don't free 'struct 3507 cp_language_function'. 3508 35092002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk> 3510 3511 * lang-specs.h: Use cpp_debug_options. 3512 35132002-05-28 Zack Weinberg <zack@codesourcery.com> 3514 3515 * mangle.c, tree.c: Include real.h. 3516 * Make-lang.in: Update dependency lists. 3517 35182002-05-25 Neil Booth <neil@daikokuya.demon.co.uk> 3519 3520 * lex.c: Don't include c-lex.h. 3521 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h. 3522 35232002-05-23 Neil Booth <neil@daikokuya.demon.co.uk> 3524 3525 * spew.c (yyungetc, snarf_block): Remove indent_level handling. 3526 35272002-05-22 Richard Henderson <rth@redhat.com> 3528 3529 * decl.c (obscure_complex_init): Check for VAR_DECL 3530 before using DECL_THREAD_LOCAL. 3531 35322002-05-22 Richard Henderson <rth@redhat.com> 3533 3534 * decl.c (check_tag_decl): Handle RID_THREAD. 3535 (obscure_complex_init): Reject run-time init of tls. 3536 (grokvardecl, grokdeclarator): Handle RID_THREAD. 3537 * lex.c (reswords): Add __thread. 3538 (rid_to_yy): Map RID_THREAD to SCSPEC. 3539 35402002-05-22 Neil Booth <neil@daikokuya.demon.co.uk> 3541 3542 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. 3543 * cp-tree.h (cxx_post_options): Kill. 3544 * cp-lex.c (cxx_post_options): Kill. 3545 35462002-05-21 Richard Henderson <rth@redhat.com> 3547 3548 * lex.c (rid_to_yy): Add RID_THREAD. 3549 35502002-05-21 Alexandre Oliva <aoliva@redhat.com> 3551 3552 * init.c (build_vec_init): Test for trivial copy-assignment when 3553 copy-assigning arrays. 3554 35552002-05-20 Andreas Jaeger <aj@suse.de> 3556 3557 * init.c (build_default_init): Remove unused variable. 3558 35592002-05-20 Alexandre Oliva <aoliva@redhat.com> 3560 3561 * call.c (any_strictly_viable): New. 3562 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs. 3563 35642002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3565 3566 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing. 3567 35682002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3569 3570 PR c++/186, DR 259 3571 * pt.c (do_decl_instantiation): Don't complain explicit 3572 instantiation after explicit specialization. 3573 (do_type_instantiation): Likewise. 3574 35752002-05-19 Alexandre Oliva <aoliva@redhat.com> 3576 3577 * cp-tree.h (complete_type_or_diagnostic): Changed prototype, 3578 renamed from... 3579 (complete_type_or_else): ... this. Redefined as macro. 3580 (cxx_incomplete_type_diagnostic): Declare. 3581 (cxx_incomplete_type_error): Define as macro. 3582 * init.c (build_delete): Warn about incomplete types other than 3583 void, and use the built-in operator delete for them. 3584 * typeck.c (complete_type_or_diagnostic): Renamed from 3585 complete_type_or_else. Added warn_only argument, passed to... 3586 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print 3587 warnings or errors depending on new warn_only argument. Renamed 3588 from... 3589 (cxx_incomplete_type_error): ... this. New implementation in 3590 terms of cxx_incomplete_type_diagnostic. 3591 35922002-05-18 Jason Merrill <jason@redhat.com> 3593 3594 PR c++/6611 3595 * decl2.c (import_export_decl): If we clear 3596 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set. 3597 35982002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3599 3600 PR c++/6620 3601 * pt.c (verify_class_unification): Don't check if PARM is template 3602 parameter dependent. Simplify. 3603 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template 3604 parameter dependent expression. 3605 36062002-05-14 Jason Merrill <jason@redhat.com> 3607 3608 * rtti.c (get_tinfo_decl): Don't call comdat_linkage. 3609 Do set DECL_COMDAT. 3610 (synthesize_tinfo_var): Take the public decl. 3611 (create_real_tinfo_var): Likewise. Check DECL_COMDAT. 3612 (emit_tinfo_decl): Adjust. Call import_export_decl. 3613 * decl2.c (import_export_decl): Simplify tinfo decl handling. 3614 36152002-05-14 Alexandre Oliva <aoliva@redhat.com> 3616 3617 * cp-tree.h (struct lang_type): Added non_zero_init. 3618 (CLASSTYPE_NON_ZERO_INIT_P): New macro. 3619 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare. 3620 * class.c (check_field_decls): Test non_zero_init. 3621 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for 3622 zero-to-NULL conversions. 3623 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a 3624 type that needs zero-initialization without zeros. 3625 (check_initializer_decl): Compute zero-initializer for types 3626 that require a non-trivial one. 3627 * init.c (build_forced_zero_init): New function. 3628 (build_default_init): Use it. 3629 * tree.c (zero_init_p): New function. 3630 * typeck2.c (force_store_init_value): New function. 3631 (process_init_constructor): Create non-trivial zero-initializers 3632 for array members and class fields. 3633 36342002-05-14 Neil Booth <neil@daikokuya.demon.co.uk> 3635 3636 * lang-specs.h: Remove redundant -lang-c++. 3637 36382002-05-13 Jason Merrill <jason@redhat.com> 3639 3640 * class.c (build_vtbl_ref_1): Use fixed_type_or_null. 3641 (fixed_type_or_null): See through reference vars. 3642 (build_base_path): Vtable contents are constant. 3643 * typeck.c (get_member_function_from_ptrfunc): Likewise. 3644 36452002-05-12 Jason Merrill <jason@redhat.com> 3646 3647 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created 3648 structs are safe. 3649 36502002-05-09 Neil Booth <neil@daikokuya.demon.co.uk> 3651 3652 * cp-tree.h (flag_ansi): Remove. 3653 * decl2.c (flag_ansi): Remove. 3654 (cxx_decode_option): Set flag_iso and flag_undef. 3655 36562002-05-09 Jason Merrill <jason@redhat.com> 3657 3658 * typeck.c (get_member_function_from_ptrfunc): Reorganize. 3659 Use subtraction rather than a bitmask to get the index. 3660 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node. 3661 3662 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P. 3663 36642002-05-07 Neil Booth <neil@daikokuya.demon.co.uk> 3665 3666 * Make-lang.in (decl2.o): Update. 3667 * cp-tree.h (warn_multichar): Remove. 3668 * decl2.c: Include c-common.h. 3669 (warn_multichar): Remove. 3670 36712002-05-03 Jason Merrill <jason@redhat.com> 3672 3673 * tree.c (build_cplus_array_type): Only const and volatile get 3674 special handling. 3675 3676 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h. 3677 36782002-04-30 Mark Mitchell <mark@codesourcery.com> 3679 3680 ABI change, returning simple classes from functions. 3681 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if 3682 TYPE_HAS_TRIVIAL_INIT_REF is false or 3683 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true. 3684 36852002-04-30 Jason Merrill <jason@redhat.com> 3686 3687 PR debug/6436 3688 * decl.c (grokdeclarator): Don't override TYPE_NAME of an 3689 anonymous class with a typedef if there are attributes. 3690 36912002-04-29 Paul Eggert <eggert@twinsun.com> 3692 3693 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$. 3694 36952002-04-29 Jakub Jelinek <jakub@redhat.com> 3696 3697 PR c++/6477 3698 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is 3699 non-NULL first. 3700 37012002-04-29 Mark Mitchell <mark@codesourcery.com> 3702 3703 PR c++/6492 3704 * pt.c (tsubst_friend_class): If the friend has an explicit scope, 3705 enter that scope before name lookup. 3706 3707 PR c++/6486 3708 * method.c (do_build_copy_constructor): Avoid building 3709 cv-qualified reference types. 3710 37112002-04-29 Nathan Sidwell <nathan@codesourcery.com> 3712 3713 PR c++/5719 3714 * decl.c (grok_op_properties): Assignment ops don't have to return 3715 by value. operator% should. 3716 37172002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 3718 3719 PR c/6343 3720 * decl.c (duplicate_decls): Call merge_weak. 3721 37222002-04-26 Richard Henderson <rth@redhat.com> 3723 3724 * parse.y (malloced_yyss, malloced_yyvs): New. 3725 (yyoverflow): Re-add. Set them. 3726 (free_parser_stacks): New. 3727 37282002-04-26 Mark Mitchell <mark@codesourcery.com> 3729 3730 PR c++/6497 3731 * method.c (do_build_assign_ref): Pass a derivation to 3732 build_method_call when calling base class assignment operators. 3733 37342002-04-26 Richard Henderson <rth@redhat.com> 3735 3736 * parse.y (yyoverflow): Revert. 3737 37382002-04-26 Richard Henderson <rth@redhat.com> 3739 3740 PR c/3581 3741 * parse.y (string): Remove. Update all uses to use STRING 3742 instead, and not call combine_strings. 3743 * rtti.c (tinfo_name): Use fix_string_type. 3744 * semantics.c (finish_asm_stmt): Don't call combine_strings. 3745 * spew.c (yylexstring): New. 3746 (read_token): Use it. 3747 37482002-04-25 Richard Henderson <rth@redhat.com> 3749 3750 PR c/2161 3751 * parse.y (yyoverflow): New. 3752 37532002-04-25 Jason Merrill <jason@redhat.com> 3754 3755 PR c++/5607 3756 * search.c (check_final_overrider): No longer static. 3757 * class.c (update_vtable_entry_for_fn): Call it. 3758 * cp-tree.h: Adjust. 3759 37602002-04-25 Neil Booth <neil@daikokuya.demon.co.uk> 3761 3762 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. 3763 * cp-tree.h (cxx_set_yydebug): Die. 3764 * lex.c (YYDEBUG): Get from c-lex.h. 3765 (cxx_set_yydebug): Remove. 3766 * parse.y: Include c-lex.h. 3767 (YYDEBUG): Get from c-lex.h. 3768 37692002-04-24 Mark Mitchell <mark@codesourcery.com> 3770 3771 PR c++/6438. 3772 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs 3773 void. 3774 37752002-04-24 Neil Booth <neil@daikokuya.demon.co.uk> 3776 3777 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, 3778 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): 3779 Redefine. 3780 * cp-tree.h (cp_attribute_table): Rename. 3781 * decl.c (lang_attribute_table): Remove declaration. 3782 (cxx_init_decl_processing): Don't set it. 3783 * tree.c (cp_attribute_table): Rename. 3784 37852002-04-24 Jason Merrill <jason@redhat.com> 3786 3787 PR c++/6331 3788 * method.c (do_build_copy_constructor): Use cp_build_qualified_type. 3789 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals. 3790 The pedwarn for array assignment is now unconditional. 3791 * tree.c (build_cplus_array_type_1): Still process simple array types 3792 normally in templates. 3793 3794 PR c++/6395 3795 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i 3796 stuff for comdats. 3797 37982002-04-23 Jakub Jelinek <jakub@redhat.com> 3799 3800 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class 3801 node with attributes. 3802 38032002-2-23 David O'Brien <obrien@FreeBSD.org> 3804 3805 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add. 3806 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given. 3807 38082002-04-23 Mark Mitchell <mark@codesourcery.com> 3809 3810 PR c++/6256: 3811 * pt.c (tsubst_friend_class): Handle templates with explicit 3812 nested names. 3813 3814 PR c++/6331: 3815 * typeck.c (merge_types): Remember the cv-qualification of pointer 3816 types when merging them. 3817 38182002-04-20 Neil Booth <neil@daikokuya.demon.co.uk> 3819 3820 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT, 3821 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine. 3822 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context, 3823 cxx_mark_function_context): New. 3824 * decl.c (push_cp_function_context, pop_cp_function_context, 3825 mark_cp_function_context): Rename for consistency. 3826 (cxx_init_decl_processing): Don't set old hooks. 3827 38282002-04-19 Neil Booth <neil@daikokuya.demon.co.uk> 3829 3830 * call.c (convert_type_from_ellipsis): Rename, update. 3831 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine. 3832 * cp-tree.h (convert_type_from_ellipsis): Rename. 3833 * decl.c (cxx_init_decl_processing): Don't set hook. 3834 38352002-04-18 Neil Booth <neil@daikokuya.demon.co.uk> 3836 3837 * call.c (build_new_method_call): Update. 3838 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine. 3839 * cp-tree.h (cxx_incomplete_type_error): New. 3840 * decl.c (grokdeclarator, grokparms): Update. 3841 * decl2.c (check_classfn): Update. 3842 * pt.c (tsubst): Update. 3843 * typeck.c (complete_type_or_else, expr_sizeof, 3844 decay_conversion): Update. 3845 * typeck2.c (incomplete_type_error): Rename. 3846 (add_exception_specifier): Update. 3847 38482002-04-18 Jason Merrill <jason@redhat.com> 3849 3850 PR c++/5658 3851 * search.c (setup_class_bindings): A class template qualifies as a 3852 type binding. 3853 38542002-04-17 Jakub Jelinek <jakub@redhat.com> 3855 3856 PR c++/6316 3857 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop 3858 before expanding. 3859 38602002-04-16 Mark Mitchell <mark@codesourcery.com> 3861 3862 * init.c (begin_init_stmts): Remove commented out code. 3863 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. 3864 * semantics.c (begin_gobal_stmt_expr): Adjust call to 3865 expand_start_stmt_expr. 3866 38672002-04-15 Mark Mitchell <mark@codesourcery.com> 3868 3869 * decl.c (register_dtor_fn): Pass the address of dso_handle, not 3870 dso_handle itself, to __cxa_atexit. 3871 38722002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 3873 3874 * error.c (cxx_print_error_function): Adjust call to macros. 3875 38762002-04-14 Jakub Jelinek <jakub@redhat.com> 3877 3878 * class.c (layout_virtual_bases): Do all dsize computation on trees. 3879 38802002-04-14 Jason Merrill <jason@redhat.com> 3881 3882 * typeck.c (get_member_function_from_ptrfunc): Don't do 3883 gratuitious division and multiplication on 3884 ptrmemfunc_vbit_in_delta targets. 3885 38862002-04-12 Mark Mitchell <mark@codesourcery.com> 3887 3888 PR c++/5373. 3889 * semantics.c (finish_expr_stmt): Remember the type of the 3890 expression before any conversions are performed. 3891 38922002-04-12 Mark Mitchell <mark@codesourcery.com> 3893 3894 PR c++/5189. 3895 * call.c (add_template_candidate_real): Do not treat member 3896 templates as copy constructors. 3897 38982002-04-12 Mark Mitchell <mark@codesourcery.com> 3899 3900 * decl.c (duplicate_decls): Do not copy the RTL for a variable 3901 declaration if the old variable had an incomplete type and the new 3902 variable does not. 3903 (complete_vars): Do not call layout_decl for completed variables. 3904 39052002-04-12 Richard Sandiford <rsandifo@redhat.com> 3906 3907 * decl.c (duplicate_decls): Don't try to unify an implicit typedef 3908 with an explicit one. 3909 (follow_tag_typedef): New. 3910 (lookup_tag): Use it to extract the tag of an explicit typedef. 3911 (xref_tag): Likewise. 3912 39132002-04-11 Andrew Haley <aph@redhat.com> 3914 3915 * typeck.c (type_after_usual_arithmetic_conversions): 3916 If two types have the same variant, return immediately. 3917 When two floating-point operands are the same precision: 3918 convert to float if one of the operands is float; 3919 if neither operand is one of the standard types, return the type 3920 of the first operand. 3921 39222002-04-10 Nathan Sidwell <nathan@codesourcery.com> 3923 3924 PR c++/5507 3925 * decl.c (make_typename_type): Remove implicit typenameness. 3926 39272002-04-09 Jason Merrill <jason@redhat.com> 3928 3929 PR optimization/6189 3930 * semantics.c (genrtl_start_function): Don't free 3931 DECL_SAVED_FUNCTION_DATA for inline functions. 3932 3933 * init.c (build_member_call): For now, don't convert to 3934 intermediate base if it would cause an error. 3935 39362002-04-08 Paolo Carlini <pcarlini@unitus.it> 3937 3938 * parse.y (namespace_qualifier, maybe_identifier, 3939 begin_explicit_instantiation, end_explicit_instantiation, 3940 apparent_template_type, .finish_template_type, 3941 do_id, maybe_init, defarg_again, component_decl_1): 3942 Add ending ';', in accordance with POSIX. 3943 39442002-04-06 Mark Mitchell <mark@codesourcery.com> 3945 3946 PR c++/5571 3947 * class.c (layout_class_type): Remember incomplete static 3948 variables. 3949 (finish_struct_1): Call complete_vars, not 3950 hack_incomplete_structures. 3951 * cp-tree.h (hack_incomplete_structures): Rename to ... 3952 (complete_vars): ... this. 3953 (struct saved_scope): Remove incomplete. 3954 (namespace_scope_incomplete): Remove. 3955 * decl.c (struct binding_level): Remove incomplete. 3956 (incomplete_vars): New variable. 3957 (mark_binding_level): Don't mark incomplete. 3958 (print_binding_level): Don't print it. 3959 (mark_saved_scope): Don't mark incomplete. 3960 (pushdecl): Use maybe_register_incopmlete_var. 3961 (cxx_init_decl_processing): Register incomplete_vars for GC. 3962 (start_decl_1): Clarify error message. 3963 (hack_incomplete_vars): Remove. 3964 (maybe_register_incomplete_var): New function. 3965 (complete_vars): Likewise. 3966 39672002-04-06 Jason Merrill <jason@redhat.com> 3968 3969 PR c++/4934 3970 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is 3971 set before checking it. 3972 3973 PR c++/525 3974 * init.c (build_member_call): Use build_scoped_ref. 3975 (resolve_offset_ref): Likewise. 3976 * call.c (build_scoped_method_call): Likewise. 3977 * tree.c (maybe_dummy_object): Kludge around current_class_type being 3978 wrong. 3979 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm. 3980 * cp-tree.h: Adjust. 3981 3982 * init.c (push_base_cleanups): Just use build_scoped_method_call. 3983 3984 PR c++/6179 3985 * method.c (implicitly_declare_fn): Pass unqualified type to 3986 synthesize_exception_spec. 3987 39882002-04-04 Neil Booth <neil@daikokuya.demon.co.uk> 3989 3990 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. 3991 * cvt.c: Update comment. 3992 * init.c (expand_cleanup_for_base): Update. 3993 * semantics.c (finish_parenthesized_expr): Update. 3994 * typeck.c (cp_truthvalue_conversion): Update. 3995 39962002-04-04 Jason Merrill <jason@redhat.com> 3997 3998 * semantics.c (finish_eh_cleanup): New fn. 3999 * cp-tree.h: Add prototype. 4000 * init.c (perform_member_init, expand_cleanup_for_base): Use 4001 finish_eh_cleanup. 4002 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove. 4003 * cp-tree.h: Remove references. 4004 * decl.c (begin_constructor_body, end_constructor_body): Likewise. 4005 * dump.c (cp_dump_tree): Likewise. 4006 * pt.c (tsubst_expr): Likewise. 4007 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove. 4008 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT. 4009 * tree.c (cp_statement_code_p): Likewise. 4010 4011 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup. 4012 4013 PR c++/5636 4014 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on 4015 cleanup for nrv. 4016 4017 PR c++/5104 4018 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception 4019 specifiers. 4020 [METHOD_TYPE]: Use same code as FUNCTION_TYPE. 4021 40222002-04-03 Richard Henderson <rth@redhat.com> 4023 4024 * cp-lang.c (cxx_warn_unused_global_decl): New. 4025 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New. 4026 40272002-04-03 Neil Booth <neil@daikokuya.demon.co.uk> 4028 4029 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine. 4030 * tree.c (init_tree): Don't set hook. 4031 40322002-04-03 Roger Sayle <roger@eyesopen.com> 4033 4034 PR c++/5998: 4035 * decl.c (duplicate_decls): Don't mess with assembler names when 4036 redeclaring builtin functions as static. 4037 40382002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> 4039 4040 * call.c (build_addr_func): Update. 4041 * class.c (resolve_address_of_overloaded_function): Update. 4042 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. 4043 * cp-tree.h (cxx_mark_addressable): New. 4044 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update. 4045 * decl2.c (build_cleanup): Update. 4046 * except.c (build_throw): Update. 4047 * init.c (resolve_offset_ref): Update. 4048 * pt.c (convert_nontype_argument): Update. 4049 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update. 4050 * typeck.c (decay_conversion, build_array_ref, build_unary_op, 4051 unary_complex_lvalue): Update. 4052 (mark_addressable): Rename. 4053 40542002-04-01 Roger Sayle <roger@eyesopen.com> 4055 4056 PR c++/5998: 4057 * decl.c (duplicate_decls): Overwrite the RTL when (and only 4058 when) overwriting a built-in function. Don't use COPY_DECL_RTL, 4059 but follow the SET_DECL_RTL idiom used elsewhere in the function. 4060 40612002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> 4062 4063 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, 4064 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. 4065 * decl.c (grokdeclarator): Update. 4066 * mangle.c (write_integer_cst): Update. 4067 * typeck.c (build_binary_op): Update. 4068 40692002-03-31 Neil Booth <neil@daikokuya.demon.co.uk> 4070 4071 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine. 4072 * lex.c (cxx_init): Don't set hook. 4073 40742002-03-31 Neil Booth <neil@daikokuya.demon.co.uk> 4075 4076 * Make-lang.in (error.o): Update. 4077 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine. 4078 * cp-tree.h (struct diagnostic_context): Predeclare. 4079 (cxx_print_error_function): New. 4080 * error.c: Include langhooks-def.h. 4081 (lang_print_error_function): Rename. Update. 4082 (init_error): Don't set hook. 4083 40842002-03-29 Neil Booth <neil@daikokuya.demon.co.uk> 4085 4086 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): 4087 Redefine. 4088 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks. 4089 * decl.c (finish_enum): Similarly. 4090 * error.c (dump_type): Similarly. 4091 * lex.c (cxx_init): Similarly. 4092 * mangle.c (write_builtin_type): Similarly. 4093 * typeck.c (comptypes): Similarly. 4094 40952002-03-28 Roger Sayle <roger@eyesopen.com> 4096 4097 PR c++/5998: 4098 * decl.c (cxx_init_decl_processing): Re-enable built-in functions 4099 in the g++ front-end. 4100 (duplicate_decl): Allow redefinition of anticipated built-ins. 4101 Fix inlining problem by over-writing the old DECL_RTL. 4102 (lookup_namespace_name): Fail to find an identifier in the 4103 specified namespace if its still anticipated. 4104 (builtin_function_1): New function split out from builtin_function 4105 to create a builtin in the current namespace with given context. 4106 (builtin_function): Call builtin_function_1 to define the 4107 appropriate builtins in both the std and global namespaces. 4108 (select_decl): Don't test for anticipated decls here. 4109 (unqualified_namespace_lookup): Instead ignore them whilst 4110 searching through scopes and namespaces. 4111 * decl2.c (do_nonmember_using_decl): If a using declaration 4112 specifies an anticipated built-in function, mark it as no longer 4113 anticipated in that scope. 4114 (ambiguous_decl): Avoid resolving to an anticipated decl. 4115 * lex.c (do_scoped_id): Fail to find an identifier in the global 4116 namespace if its still anticipated. 4117 41182002-03-29 Neil Booth <neil@daikokuya.demon.co.uk> 4119 4120 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine. 4121 * cp-tree.h (cp_make_lang_type): Rename. 4122 * lex.c (cp_make_lang_type): Rename. 4123 (make_aggr_type): Update. 4124 * tree.c (init_tree): Don't set make_lang_type_fn. 4125 41262002-03-29 Jakub Jelinek <jakub@redhat.com> 4127 4128 PR c++/6073 4129 * class.c (finish_struct_1): Update static field's DECL_MODE even 4130 if its type is a variant of t. 4131 41322002-03-27 Neil Booth <neil@daikokuya.demon.co.uk> 4133 4134 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine. 4135 * cp-tree.h (cxx_insert_default_attributes): New. 4136 * decl.c (insert_default_attributes): Rename. 4137 41382002-03-27 Mark Mitchell <mark@codesourcery.com> 4139 4140 PR c++/4884 4141 * call.c (build_op_delete_call): Allow for the fact the placement 4142 may be a COMPOUND_EXPR. 4143 41442002-03-27 Neil Booth <neil@daikokuya.demon.co.uk> 4145 4146 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. 4147 * cp-tree.h (init_cplus_expand): Remove. 4148 (cxx_expand_expr): New. 4149 * expr.c (cplus_expand_expr): Rename cxx_expand_expr, 4150 fix prototype. 4151 (init_cplus_expand): Remove. 4152 * lex.c (cxx_init): Don't call init_cplus_expand. 4153 41542002-03-26 Mark Mitchell <mark@codesourcery.com> 4155 4156 PR c++/4884. 4157 * init.c (build_new_1): Allow for the fact the result of 4158 build_function_call may be a COMPOUND_EXPR. 4159 41602002-03-26 Nathan Sidwell <nathan@codesourcery.com> 4161 4162 PR c++/5682 4163 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better. 4164 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 4165 (dfs_skip_nonprimary_vbases_markedp): Remove. 4166 * search.c (get_shared_vbase_if_not_primary): Remove. 4167 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 4168 (dfs_skip_nonprimary_vbases_markedp): Remove. 4169 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo. 4170 (dfs_marked_real_bases_queue_p): Likewise. 4171 41722002-03-26 Neil Booth <neil@daikokuya.demon.co.uk> 4173 4174 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine. 4175 * cp-tree.h (cxx_mark_tree): New. 4176 * decl.c (lang_mark_tree): Rename cxx_mark_tree. 4177 41782002-03-25 Neil Booth <neil@daikokuya.demon.co.uk> 4179 4180 * cp-tree.h (cxx_maybe_build_cleanup): New. 4181 * decl.c (destroy_local_var, hack_incomplete_structures): Update. 4182 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup. 4183 * tree.c (build_target_expr): Update. 4184 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine. 4185 41862002-03-24 Neil Booth <neil@daikokuya.demon.co.uk> 4187 4188 * decl2.c (cxx_decode_option): Handle -E. 4189 * lang-specs.h (default_compilers): Preprocess with cc1plus. 4190 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL. 4191 41922002-03-23 Jakub Jelinek <jakub@redhat.com> 4193 4194 PR c++/6037 4195 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node. 4196 41972002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 4198 4199 * error.c (dump_type): Be careful about implicit typenames. 4200 42012002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 4202 4203 PR C++/3656 4204 * semantics.c (finish_base_specifier): Handle erronous base 4205 classes. 4206 42072002-03-22 Zack Weinberg <zack@codesourcery.com> 4208 4209 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test 4210 REAL_IS_NOT_DOUBLE. 4211 42122002-03-22 Jeff Knaggs <jknaggs@redhat.com> 4213 4214 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to 4215 an index into the vtable_entry array regardless of 4216 TARGET_PTRMEMFUNC_VBIT_LOCATION. 4217 42182002-03-21 Aldy Hernandez <aldyh@redhat.com> 4219 4220 * tree.c (cp_cannot_inline_tree_fn): Same. 4221 42222002-03-21 Neil Booth <neil@daikokuya.demon.co.uk> 4223 4224 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block, 4225 insert_block, getdecls, global_bindings_p): New. 4226 42272002-03-20 Nathan Sidwell <nathan@codesourcery.com> 4228 4229 PR c++/4361 4230 * mangle.c (struct globals) Add internal_mangling_p member. 4231 (write_template_param): Do internal mangling, if needed. 4232 (mangle_conv_op_name_for_type): Request internal mangling. 4233 42342002-03-20 Jason Merrill <jason@redhat.com> 4235 4236 PR c++/2136 4237 * init.c (build_delete): Check access for a member op delete here. 4238 * decl2.c (delete_sanity): Not here. 4239 42402002-03-19 Jason Merrill <jason@redhat.com> 4241 4242 PR c++/5118 4243 * class.c (get_vfield_name): Use the constructor_name. 4244 42452002-03-20 Neil Booth <neil@daikokuya.demon.co.uk> 4246 4247 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. 4248 * cp-tree.h (lang_printable_name): Rename. 4249 * error.c (lang_decl_name): Use new hook. 4250 * lex.c (cxx_init): Remove old hook. 4251 * pt.c (tsubst_decl): Use new hook. 4252 * tree.c (lang_printable_name): Rename. 4253 42542002-03-18 Eric Botcazou <ebotcazou@multimania.com> 4255 4256 PR c++/3882 4257 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling... 4258 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer 4259 only after recording the declaration. 4260 42612002-03-18 Jason Merrill <jason@redhat.com> 4262 4263 PR c++/2039 4264 * init.c (resolve_offset_ref): Hand off to build_component_ref. 4265 4266 PR c++/4222, c++/5995 4267 * call.c (build_over_call): Fix empty class logic. 4268 4269 PR c++/3870 4270 * cp-tree.h (struct saved_scope): Add last_parms field. 4271 * decl.c (maybe_push_to_top_level): Save last_function_parms. 4272 (pop_from_top_level): Restore it. 4273 4274 PR c++/4377 4275 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip 4276 NON_LVALUE_EXPRs. 4277 4278 PR c++/4003 4279 * pt.c (tsubst_friend_function): Use decl_namespace_context. 4280 4281 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch. 4282 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a 4283 type with a nontrivial destructor. 4284 42852002-03-17 Jason Merrill <jason@redhat.com> 4286 4287 PR c++/4460 4288 * class.c (build_base_path): Virtual base layout is fixed in 4289 in-charge [cd]tors. 4290 42912002-03-17 Neil Booth <neil@daikokuya.demon.co.uk> 4292 4293 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine. 4294 * parse.y (yyparse): Remove macro. 4295 42962002-03-17 Jason Merrill <jason@redhat.com> 4297 4298 PR c++/5757 4299 * init.c (build_new_1): Pass the right pointer to op delete. 4300 43012002-03-16 Nathan Sidwell <nathan@codesourcery.com> 4302 4303 PR c++/4361 4304 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated 4305 conversion operators go. 4306 (struct lang_decl_flags): Add template_conv_p and unused 4307 bitfields. 4308 (DECL_TEMPLATE_CONV_FN_P): New macro. 4309 * call.c (build_user_type_conversion_1): Don't check second type 4310 conversion of overload set first. 4311 * class.c (add_method): Make sure templated conversion operators 4312 all end up on slot 2. 4313 * lex.c (do_identifier): A conversion operator token might be 4314 satisfied by a templated conversion operator. 4315 * pt.c (check_explicit_specialization): Use 4316 CLASSTYPE_FIRST_CONVERSION_SLOT. 4317 (template_parm_this_level_p): New function. 4318 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P. 4319 * search.c (lookup_fnfields_1): Template conversions will be on 4320 the first slot. 4321 * typeck.c (build_component_ref): Preserve the type of an 4322 conversion operator name on the overload type. 4323 (build_x_function_call): Retrieve the conversion operator name. 4324 43252002-03-15 Richard Henderson <rth@redhat.com> 4326 4327 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op. 4328 43292002-03-15 Mark Mitchell <mark@codesourcery.com> 4330 4331 * cp-tree.h (CLEANUP_DECL): Remove. 4332 (CLEANUP_EXPR): Likewise. 4333 * decl.c (destroy_local_var): Simplify. 4334 (maybe_build_cleanup): Tidy. 4335 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT. 4336 * semantics.c (cp_expand_stmt): Likewise. 4337 * cp/tree.c (cp_statement_code_p): Likewise. 4338 43392002-03-15 Jason Merrill <jason@redhat.com> 4340 4341 PR c++/5857 4342 * decl.c (duplicate_decls): Use merge_types instead of common_type. 4343 * typeck.c (common_type): Just hand off to 4344 type_after_usual_arithmetic_conversions and 4345 composite_pointer_type. 4346 (merge_types): New fn. 4347 (commonparms): Use it instead of common_type. 4348 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE. 4349 (composite_pointer_type): Also handle attributes. 4350 * cp-tree.h: Declare merge_types. 4351 4352 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT 4353 variables. 4354 * decl2.c (maybe_make_one_only): Also mark the decl as needed. 4355 43562002-03-14 Richard Henderson <rth@redhat.com> 4357 4358 * decl.c: Include c-pragma.h. 4359 (start_decl, start_function): Invoke maybe_apply_pragma_weak. 4360 * Make-lang.in: Update dependencies. 4361 43622002-03-14 Jakub Jelinek <jakub@redhat.com> 4363 4364 PR c++/5908 4365 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too. 4366 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING. 4367 43682002-03-12 Richard Sandiford <rsandifo@redhat.com> 4369 4370 * mangle.c (write_builtin_type): Handle 128-bit integers even if 4371 they are not a standard integer type. 4372 43732002-03-12 Richard Sandiford <rsandifo@redhat.com> 4374 4375 * cp-tree.h (init_init_processing): Remove declaration. 4376 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff. 4377 * decl.c (cxx_init_decl_processing): Don't call init_init_processing. 4378 43792002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4380 4381 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name): 4382 Define. 4383 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not 4384 tree_code_length. 4385 * lex.c (cplus_tree_code_type, cplus_tree_code_length, 4386 cplus_tree_code_name): Delete. 4387 (cxx_init): Don't call add_c_tree_codes, instead set 4388 lang_unsafe_for_reeval. Don't try to copy into the various 4389 tree_code arrays. 4390 43912002-03-12 Nathan Sidwell <nathan@codesourcery.com> 4392 4393 PR c++/5659 4394 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here. 4395 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for 4396 definitions. 4397 43982002-03-11 Nathan Sidwell <nathan@codesourcery.com> 4399 4400 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>, 4401 DR209 is now not a defect. 4402 * cp-tree.h (skip_type_access_control): Remove. 4403 * decl.c (grokdeclarator): Do type access control for friend 4404 declarations. 4405 * semantics.c (decl_type_access_control): Don't reset 4406 current_type_lookups. 4407 (save_type_access_control): Always save the lookups. 4408 (skip_type_access_control): Remove. 4409 (finish_class_definition): Don't change type_lookups. 4410 44112002-03-11 Nathan Sidwell <nathan@codesourcery.com> 4412 4413 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>, 4414 It is incorrect. 4415 * typeck.c (build_static_cast): Compare non-qualified types 4416 with pointer to member conversions. 4417 44182002-03-11 Dan Nicolaescu <dann@ics.uci.edu> 4419 Daniel Berlin <dan@dberlin.org> 4420 4421 * cp-lang.c (ok_to_generate_alias_set_for_type): New function. 4422 (cxx_get_alias_set): Use it. 4423 44242002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4425 4426 * cp-tree.h (stabilize_expr): Prototype. 4427 44282002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org> 4429 4430 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of 4431 conditional return void. 4432 44332002-03-08 Neil Booth <neil@daikokuya.demon.co.uk> 4434 4435 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine. 4436 * cp-tree.h (cxx_unsave): New. 4437 * tree.c (cp_unsave): Rename cxx_unsave, update prototype. 4438 (init_tree): Update. 4439 44402002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4441 4442 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of 4443 explicit sizeof/sizeof. 4444 * decl2.c (cxx_decode_option): Likewise. 4445 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise. 4446 44472002-03-02 Nathan Sidwell <nathan@codesourcery.com> 4448 4449 PR c++/775 4450 * decl.c (lookup_tag): Only reject enum/class mismatch, not 4451 class/union mismatch. 4452 * parse.y (check_class_key): New function. 4453 (structsp): Call it. 4454 44552002-03-01 Michael Matz <matz@suse.de> 4456 4457 * typeck.c (cp_pointer_int_sum): Complete inner type which is 4458 used later by size_in_bytes(). 4459 44602002-03-01 Phil Edwards <pme@gcc.gnu.org> 4461 4462 * cp-tree.h: Require __GNUC__ to be #defined. 4463 (build_init): Add missing prototype. 4464 44652002-03-01 Jason Merrill <jason@redhat.com> 4466 4467 * except.c: Don't include decl.h or obstack.h. Do include 4468 tree-inline.h. 4469 (build_throw): Destroy temporaries from the thrown 4470 expression before calling __cxa_throw. Construct a thrown 4471 temporary directly into the exception object. 4472 (stabilize_throw_expr): New function. 4473 (wrap_cleanups_r): New function. 4474 * tree.c (stabilize_expr): New function. 4475 * init.c (build_init): New function. 4476 * Make-lang.in (cp/except.o): Adjust .h deps. 4477 44782002-02-28 Jason Merrill <jason@redhat.com> 4479 4480 * search.c (lookup_base_r): Don't clear is_non_public just because 4481 we found a friendly scope. 4482 4483 * decl.c (finish_function): Only warn about missing return 4484 statement with -Wreturn-type. 4485 44862002-02-28 Neil Booth <neil@daikokuya.demon.co.uk> 4487 4488 * class.c (build_clone): Update. 4489 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. 4490 * cp-tree.h (cxx_dup_lang_specific_decl): New. 4491 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl. 4492 (copy_decl): Update. 4493 * method.c (make_thunk): Update. 4494 44952002-02-27 Zack Weinberg <zack@codesourcery.com> 4496 4497 * decl2.c: Delete traditional-mode-related code copied from 4498 the C front end but not used, or used only to permit the 4499 compiler to link. 4500 45012002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org> 4502 4503 PR c++/4093 4504 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition 4505 to void. 4506 45072002-02-22 Jakub Jelinek <jakub@redhat.com> 4508 4509 PR other/5746 4510 * semantics.c (finish_switch_cond): Don't call get_unwidened 4511 if error_mark_node. 4512 45132002-02-22 Nathan Sidwell <nathan@codesourcery.com> 4514 4515 PR c++/2645, DR 295 4516 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals, 4517 tf_keep_type_decl. 4518 (make_typename_type): Use tsubst_flags_t. 4519 * decl.c (make_typename_type): Adjust. Return non-artificial 4520 TYPE_DECLs, if required. 4521 (grokdeclarator): Simplify CVR qualification handling. Allow bad 4522 qualifiers on typedef types. 4523 * decl2.c (handle_class_head): Adjust make_typename_type call. 4524 * parse.y (nested_name_specifier): Likewise. 4525 (typename_sub0): Likewise. 4526 (typename_sub1): Likewise. 4527 * pt.c (convert_template_argument): Adjust make_typename_type 4528 return value. 4529 (tsubst): Adjust cp_build_qualified_type_real calls. 4530 (check_cv_quals_for_unify): Cope with allowing bad qualifications 4531 on template type parms. 4532 (instantiate_decl): Recheck substitutions to give warnings on bad 4533 qualifications. 4534 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals. 4535 45362002-02-21 Aldy Hernandez <aldyh@redhat.com> 4537 4538 * cp/decl.c (duplicate_decls): Merge always_inline attribute. 4539 4540 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0 4541 unless DECL_ALWAYS_INLINE. 4542 45432002-02-20 Jakub Jelinek <jakub@redhat.com> 4544 4545 * typeck.c (cp_pointer_int_sum): Renamed from 4546 pointer_int_sum, call pointer_int_sum. 4547 45482002-02-20 Jakub Jelinek <jakub@redhat.com> 4549 4550 * decl.c (duplicate_decls): Return 0 if issued error about 4551 redeclaration. 4552 45532002-02-19 Jason Merrill <jason@redhat.com> 4554 4555 ABI change: Mangle `void (A::*)() const' as 4556 M1AKFvvE, not MK1AFvvE. 4557 * mangle.c (write_function_type): Write cv-quals for member 4558 function type here. 4559 (write_pointer_to_member_type): Not here. 4560 45612002-02-18 Jason Merrill <jason@redhat.com> 4562 4563 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header. 4564 (do_decl_instantiation): Likewise. 4565 45662002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org> 4567 4568 PR c++/5685 4569 * decl.c (duplicate_decls): Make warning unconditional 4570 if duplicate default argument declarations are present. 4571 45722002-02-17 Jakub Jelinek <jakub@redhat.com> 4573 4574 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit 4575 shortening. 4576 45772002-02-15 Nathan Sidwell <nathan@codesourcery.com> 4578 4579 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs, 4580 remove incorrect comment. Move #if 0'd code to common path. Use 4581 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication. 4582 45832002-02-13 Jason Merrill <jason@redhat.com> 4584 4585 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns. 4586 (finish_function): Don't warn if current_function_returns_null. 4587 4588 * typeck2.c (digest_init): Do handle values of vector type. 4589 4590 * typeck2.c (digest_init, process_init_constructor): Treat vectors 4591 like arrays. 4592 45932002-02-11 Jason Merrill <jason@redhat.com> 4594 4595 * parse.y (reserved_declspecs): Don't handle attributes. 4596 (reserved_typespecquals): Handle them here. 4597 * Make-lang.in (parse.c): Adjust expected conflicts. 4598 45992002-02-08 Jakub Jelinek <jakub@redhat.com> 4600 4601 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr 4602 instead of compstmt. 4603 (compstmt_or_stmtexpr): Renamed from compstmt. 4604 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type. 4605 46062002-02-07 Nathan Sidwell <nathan@codesourcery.com> 4607 4608 Rename instantiate_type_flags to tsubst_flags_t & expand use. 4609 * cp-tree.h (instantiate_type_flags): Rename to ... 4610 (tsubst_flags_t): ... here. Rename itf_complain to tf_error, 4611 add tf_warning flag. 4612 (instantiate_type): Adjust prototype. 4613 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class, 4614 do_type_instantiation, cp_build_qualified_type_real): Likewise. 4615 cp_build_qualified_type: Adjust. 4616 * class.c (instantiate_type): Adjust parameter. Rename itf_* to 4617 tf_*. 4618 * call.c (standard_conversion): Rename itf_* to tf_*. 4619 (reference_binding): Likewise. 4620 (convert_like_real): Likewise. 4621 * cvt.c (cp_convert_to_pointer): Likewise. 4622 (convert_to_reference): Likewise. 4623 * decl.c (lookup_namespace_name): Use tf_* flags. 4624 (make_typename_type): Likewise. 4625 (grokdeclarator): Likewise. 4626 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage. 4627 (coerce_template_template_parms, convert_template_argument, 4628 coerce_template_parms, maybe_get_template_decl_from_type_decl, 4629 lookup_template_class, tsubst_friend_function, tsubst_friend_class, 4630 instantiate_class_template, tsubst_template_arg_vector, 4631 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 4632 tsubst_decl, tsubst_arg_types, tsubst_function_type, 4633 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 4634 instantiate_template, fn_type_unification, 4635 resolve_overloaded_unification, verify_class_unification, 4636 unify, get_bindings_real, do_type_instantiation, 4637 regenerate_decl_from_template, instantiate_decl, 4638 tsubst_initializer_list, tsubst_enum, 4639 get_mostly_instantiated_function_type, 4640 invalid_nontype_parm_type_p): Likewise. 4641 * tree.c (cp_build_qualified_type_real): Likewise. 4642 * typeck.c (build_binary_op): Rename itf_* to tf_*. 4643 (build_ptrmemfunc): Likewise. 4644 (convert_for_assignment): Likewise. 4645 46462002-02-07 Nathan Sidwell <nathan@codesourcery.com> 4647 4648 PR c++/109 4649 * decl.c (grokdeclarator): Allow friend declarations from 4650 dependent types. 4651 * decl2.c (handle_class_head): Don't push into template parm contexts. 4652 * pt.c (push_template_decl_real): Template parm contexts are never 4653 being defined. 4654 46552002-02-05 Alexandre Oliva <aoliva@redhat.com> 4656 4657 * class.c: Include target.h. 4658 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY, 4659 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS 4660 bit-field layout. 4661 * Make-lang.in: Adjust deps. 4662 46632002-02-05 Jason Merrill <jason@redhat.com> 4664 4665 * error.c (dump_type): Be more helpful about VECTOR_TYPE. 4666 46672002-02-04 Jakub Jelinek <jakub@redhat.com> 4668 4669 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE. 4670 (finish_switch_cond): Set SWITCH_TYPE. 4671 46722002-02-04 Richard Henderson <rth@redhat.com> 4673 4674 * method.c (use_thunk): Always initialize the block tree. Reindent. 4675 * semantics.c (expand_body): Emit thunks after function, not before. 4676 46772002-02-04 Jason Merrill <jason@redhat.com> 4678 4679 * decl.c (start_function): Call cplus_decl_attributes immediately 4680 after grokdeclarator. 4681 4682 * decl.c (start_function): Combine DECL_RESULT handling code. 4683 46842002-02-03 Jason Merrill <jason@redhat.com> 4685 4686 * xref.c: Remove. 4687 * Make-lang.in (CXX_OBJS): Remove cp/xref.o 4688 (cp/xref.o): Remove dependencies. 4689 * class.c (finish_struct_1, check_methods): Don't call xref fns. 4690 (finish_struct_1): Likewise. 4691 * friend.c (make_friend_class): Likewise. 4692 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise. 4693 * spew.c (read_process_identifier): Likewise. 4694 46952002-02-01 Jason Merrill <jason@redhat.com> 4696 4697 PR c++/4872 4698 * decl.c (finish_function): Warn about a non-void function with 4699 no return statement and no abnormal exit. 4700 * cp-tree.h (struct cp_language_function): Add returns_abnormally. 4701 (current_function_returns_abnormally): New macro. 4702 * call.c (build_call): Set it. 4703 4704 * typeck.c (build_component_ref): Always complain about offsetof 4705 constructs on non-PODs. Only make it an error for members of 4706 virtual bases. 4707 4708 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS. 4709 (dump_function_decl): Always dump parms. 4710 4711 * decl2.c (finish_static_data_member_decl): Complain about a local 4712 class with a static data member. 4713 4714 PR c++/4286 4715 * search.c (lookup_field_1): Don't xref a static data member 4716 just because we looked it up. 4717 47182002-01-31 Jason Merrill <jason@redhat.com> 4719 4720 * Make-lang.in (parse.c): Handle .output file. 4721 4722 PR c++/3395 4723 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES, 4724 not TREE_TYPE. 4725 * semantics.c (finish_class_definition): Adjust. 4726 4727 Allow attributes in parms and casts. 4728 * parse.y (named_parm): Don't strip attrs. 4729 (declmods): Remove 'attributes' production. 4730 (nonempty_cv_qualifiers): Accept attributes. 4731 (ATTRIBUTE): Give precedence. 4732 * decl.c (groktypename): Handle attributes. 4733 (grokparms): Likewise. 4734 47352002-01-29 Jakub Jelinek <jakub@redhat.com> 4736 4737 * decl2.c (cxx_decode_option): Pass 0 as last argument to 4738 cpp_handle_option. 4739 * lang-specs.h: Use cpp_unique_options instead of cpp_options 4740 when used together with cc1_options. 4741 47422002-01-29 Nathan Sidwell <nathan@codesourcery.com> 4743 4744 PR c++/5132 4745 * typeck2.c (digest_init): Make sure non-array core type is 4746 instantiated. 4747 * decl2.c (reparse_absdcl_as_casts): Just store the type in the 4748 constructor, rather than build a new one. 4749 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the 4750 PURPOSE of constructor elts. 4751 47522002-01-23 Zack Weinberg <zack@codesourcery.com> 4753 4754 * Make-lang.in (parse.c): Adjust expected number of 4755 shift-reduce conflicts. 4756 (decl.o): Depend on diagnostic.h. 4757 * decl.c: Include diagnostic.h. 4758 (grokdeclarator): Check for null pointer. 4759 (finish_function): Don't abort when 4760 current_binding_level->parm_flag != 1, if errors have 4761 occurred; throw away the statement tree and extra binding 4762 levels, and continue. 4763 * lex.c (note_list_got_semicolon): Check for null pointer. 4764 * method.c (hack_identifier): Just return error_mark_node if 4765 value is error_mark_node. 4766 * parse.y (primary: TYPEID(type_id)): No need to use 4767 TYPE_MAIN_VARIANT here. 4768 (handler_seq): Accept an empty list of catch clauses and 4769 generate a fake handler block to avoid later crashes. 4770 (ansi_raise_identifier): Accept the error token too. 4771 * semantics.c (begin_class_definition, 4772 finish_class_definition): Check for error_mark_node. 4773 47742002-01-23 Zack Weinberg <zack@codesourcery.com> 4775 4776 * typeck2.c (friendly_abort): Delete definition. 4777 * cp-tree.h (friendly_abort): Don't prototype. 4778 (my_friendly_assert): Use fancy_abort. 4779 47802002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 4781 4782 * cp-tree.h (my_friendly_abort): Remove. 4783 47842002-01-23 Jakub Jelinek <jakub@redhat.com> 4785 4786 * spew.c (pending_inlines, pending_inlines_tail, 4787 processing_these_inlines): Make static. 4788 (mark_pending_inlines): Remove static. 4789 (begin_parsing_inclass_inline): If in function, save pi 4790 for GC to cp_function_chain->unparsed_inlines instead. 4791 (process_next_inline): Likewise. 4792 * cp-tree.h (struct cp_language_function): Add unparsed_inlines. 4793 (mark_pending_inlines): Add prototype. 4794 * decl.c (spew_debug): Remove unused extern. 4795 (mark_lang_function): Call mark_pending_inlines. 4796 47972002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 4798 4799 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, 4800 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, 4801 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: 4802 Change my_fancy_abort() to abort(). 4803 48042002-01-23 Jason Merrill <jason@redhat.com> 4805 4806 PR c++/5453 4807 * class.c (fixed_type_or_null): Fix thinko. 4808 4809 PR c++/3331 4810 * init.c (resolve_offset_ref): Use build_indirect_ref. 4811 4812 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'. 4813 48142002-01-22 Jason Merrill <jason@redhat.com> 4815 4816 * parse.y (function_body): Suppress the block for the outermost 4817 curly braces. 4818 * decl.c (pushdecl): Don't try to skip it. 4819 (begin_function_body): Keep the block we create, not the next one. 4820 * init.c (emit_base_init): Don't mess with keep_next_level. 4821 4822 * class.c (build_base_path): Tweak formatting. 4823 48242002-01-19 Nathan Sidwell <nathan@codesourcery.com> 4825 4826 Fix regression introduced with patch for c++/775 4827 * parse.y (class_head_defn): Check for template specializations 4828 with a different class-key. 4829 48302002-01-17 Jason Merrill <jason@redhat.com> 4831 4832 * decl.c (begin_constructor_body, begin_destructor_body): New fns. 4833 (begin_function_body): Call them and keep_next_level. 4834 * init.c (emit_base_init): Call keep_next_level. 4835 * semantics.c (setup_vtbl_ptr): Lose. 4836 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p. 4837 (vtbls_set_up_p): Lose. 4838 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init. 4839 * method.c (do_build_copy_constructor): Likewise. 4840 (synthesize_method): Call finish_mem_initializers. 4841 * parse.y (nodecls): Likewise. 4842 4843 * error.c (dump_type_suffix): Print the exception specs before 4844 recursing. 4845 (dump_function_decl): Here, too. 4846 4847 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT. 4848 48492002-01-10 Ira Ruben <ira@apple.com> 4850 4851 PR c++/907 4852 * decl.c (start_method): Handle attrlist. 4853 48542002-01-10 Jakub Jelinek <jakub@redhat.com> 4855 4856 * decl2.c (max_tinst_depth): Increase default limit to 500. 4857 48582002-01-10 Graham Stott <grahams@redhat.com> 4859 4860 * spew.c (YYCHAR): Uppercase macro parameter and add 4861 parenthesis. 4862 (YYCODE): Likewise. 4863 (NAME): Uppercase macro parameter. 4864 48652002-01-09 Graham Stott <grahams@redhat.com> 4866 4867 * decl.h (grokdeclarator): Wrap long line. 4868 4869 * semantics.c (FINISH_COND): Uppercase macro paramaters and 4870 add parenthesis. 4871 48722002-01-08 Graham Stott <grahams@redhat.com> 4873 4874 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis. 4875 (PALLOC): Uppercase macro parameter and whitespace. 4876 (SALLOC): Uppercase macro parameter. 4877 (SFREE): Uppercase macros parameter, add parenthese and 4878 whitespace. 4879 (STREQL): Uppercase macro parameter and whitespace. 4880 (STRNEQ): Likewise. 4881 (STRLSS): Likewise. 4882 (STRLEQ): Likewise. 4883 (STRGTR): Likewise. 4884 (STRGEQ): Likewise. 4885 4886 * call.c (convert_like): Add parenthesis and wrap. 4887 (convert_like_with_context): Likewise. 4888 (ICS_RANK): Whitespace. 4889 (NEED_TEMPORARY_P): Remove parenthesis. 4890 4891 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and 4892 whitespace. 4893 (VTT_MARKED_BINFO_P): Likewise. 4894 4895 * decl.c (BINDING_LEVEL): Add parenthesis. 4896 (DEF_OPERATOR): Likewise. 4897 4898 * mangle.c (MANGLE_TRACE): Add parenthesis. 4899 (MANGLE_TRACE_TREE): Likewise. 4900 (write_signed_number): Likewise. 4901 (write_unsigned_number): Likewise. 4902 4903 * pt.c (ccat): Uppercase macro parameter. 4904 (cat): Likewise 4905 4906 * search.c (SET_BINFO_ACCESS): Add parenthesis. 4907 49082002-01-07 Jason Merrill <jason@redhat.com> 4909 4910 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch 4911 to pedwarn. 4912 4913 PR c++/3536 4914 * method.c (make_thunk): If !flag_weak, give the thunk the 4915 function's linkage. 4916 (use_thunk): Here, too. 4917 49182002-01-07 Graham Stott <grahams@redhat.com> 4919 4920 * error.c: Update copyright date. 4921 (print_scope_operator): Add parenthesis. 4922 (print_left_paren): Likewise. 4923 (print_right_paren): Likewise. 4924 (print_left_bracket): Likewise. 4925 (print_right_bracket): Likewise. 4926 (print_template_argument_list_start): Likewise. 4927 (print_template_argument_list_end): Likewise. 4928 (print_non_consecutive_character): Likewise. 4929 (print_tree_identifier): Likewise. 4930 (print_identifier): Likewise. 4931 (NEXT_CODE): Uppercase macro parameter. 4932 (ident_fndecl): Delete unused. 4933 (GLOBAL_THING): Likewise. 4934 49352002-01-06 Graham Stott <grahams@redhat.com> 4936 4937 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis. 4938 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise. 4939 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise. 4940 (RECORD_OR_UNION_TYPE_CHECK): Likewise. 4941 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise. 4942 (C_IS_RESERVED_WORD): Uppercase macro parameter. 4943 (C_RID_YYCODE) Likewise. 4944 (ptrmem_cst): Use rtx. 4945 (LOCAL_BINDING_P): Add whitespace. 4946 (INHERITED_VALUE_BINDING_P): Likewise. 4947 (BINDING_SCOPE): Wrap long line. 4948 (BINDING_HAS_LEVEL_P): Remove parenthesis. 4949 (BINDING_VALUE): Wrap long line. 4950 (BINDING_TYPE): Whitespace. 4951 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis. 4952 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise. 4953 (IDENTIFIER_NAMESPACE_VALUE): Likewise. 4954 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise. 4955 (same_type_p): Uppercase macro parameters. 4956 (same_type_ignoring_top_level_qualifiers_p): Likewise. 4957 (OVL_FUNCTION): Wrap long line. 4958 (OVL_CHAIN): Whitespace. 4959 (OVL_CURRENT): Add parenthesis and whitespace. 4960 (OVL_NEXT): Whitespace. 4961 (OVL_USED): Likewise. 4962 (IDENTIFIER_TYPE_VALUE): Likewise. 4963 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis. 4964 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace. 4965 (LANG_ID_FIELD): Whitespace. 4966 (SET_LANG_ID(NODE,VALUE,NAME): Likewise. 4967 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap. 4968 (SET_IDENTIFIER_LABEL_VALUE): Whitespace. 4969 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap. 4970 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace. 4971 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap. 4972 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace. 4973 (IDENTIFIER_VIRTUAL_P): Likewise. 4974 (IDENTIFIER_OPNAME_P): Likewise. 4975 (IDENTIFIER_TYPENAME_P): Remove parenthesis. 4976 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters. 4977 (C_SET_EXP_ORIGINAL_CODE): Likewise. 4978 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line. 4979 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise. 4980 (IS_AGGR_TYPE): Uppercase macro parameter. 4981 (CLASS_TYPE_P): Likewise. 4982 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis. 4983 (IS_AGGR_TYPE_2): Whitespace. 4984 (TAGGED_TYPE_P): Uppercase macro parameter. 4985 (TYPE_BUILT_IN): Whitespace. 4986 (TYPE_FOR_JAVA): Likewise. 4987 (FUNCTION_ARG_CHAIN): Remove parenthesis. 4988 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis. 4989 (FUNCTION_FIRST_USER_PARAM): Likewise. 4990 (PROMOTES_TO_AGGR_TYPE): Whitespace. 4991 (DERIVED_FROM_P): Add parenthesis and wrap. 4992 (UNIQUELY_DERIVED_FROM_P): Likewise. 4993 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise. 4994 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 4995 (CLASSTYPE_USE_TEMPLATE): Whitespace. 4996 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis. 4997 (TYPE_GETS_DELETE): Add parenthesis. 4998 (TYPE_HAS_CONVERSION): Add parenthesis and wrap. 4999 (TYPE_HAS_ASSIGN_REF): Likewise, 5000 (TYPE_HAS_CONST_ASSIGN_REF): Likewise. 5001 (TYPE_HAS_INIT_REF): Likewise. 5002 (TYPE_HAS_CONST_INIT_REF): Likewise. 5003 (TYPE_BEING_DEFINED): Likewise. 5004 (TYPE_LANG_SPECIFIC): Likewise. 5005 (CLASSTYPE_RTTI): Likewise. 5006 (TYPE_OVERLOADS_CALL_EXPR): Likewise. 5007 (TYPE_OVERLOADS_ARRAY_REF): Likewise. 5008 (TYPE_OVERLOADS_ARROW): Likewise. 5009 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise. 5010 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis. 5011 (CLASSTYPE_METHOD_VEC): Likewise. 5012 (CLASSTYPE_MARKED_N): Likewise. 5013 (CLASSTYPE_MARKED): Likewise. 5014 (CLASSTYPE_MARKED2): Likewise. 5015 (CLASSTYPE_MARKED3): Likewise. 5016 (CLASSTYPE_MARKED4): Likewise. 5017 (CLASSTYPE_MARKED5): Likewise. 5018 (CLASSTYPE_MARKED6): Likewise. 5019 (SET_CLASSTYPE_MARKED): Whitespace. 5020 (CLEAR_CLASSTYPE_MARKED): Likewise. 5021 (SET_CLASSTYPE_MARKED2): Likewise. 5022 (CLEAR_CLASSTYPE_MARKED2): Likewise. 5023 (SET_CLASSTYPE_MARKED3): Likewise. 5024 (CLEAR_CLASSTYPE_MARKED3): Likewise. 5025 (SET_CLASSTYPE_MARKED4): Likewise. 5026 (CLEAR_CLASSTYPE_MARKED4): Likewise. 5027 (SET_CLASSTYPE_MARKED5): Likewise. 5028 (CLEAR_CLASSTYPE_MARKED5): Likewise. 5029 (SET_CLASSTYPE_MARKED6): Likewise. 5030 (CLEAR_CLASSTYPE_MARKED6): Likewise. 5031 (CLASSTYPE_TAGS): Likewise. 5032 (CLASSTYPE_VSIZE): Likewise. 5033 (CLASSTYPE_VBASECLASSES): Likewise. 5034 (CANONICAL_BINFO): Add parenthesis. 5035 (CLASSTYPE_SIZE(NODE): Likewise. 5036 (CLASSTYPE_SIZE_UNIT): Likewise. 5037 (CLASSTYPE_ALIGN(NODE): Likewise. 5038 (CLASSTYPE_USER_ALIGN): Likewise. 5039 (TYPE_JAVA_INTERFACE): Likewise. 5040 (CLASSTYPE_PURE_VIRTUALS): Likewise. 5041 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap. 5042 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise. 5043 (CLASSTYPE_HAS_MUTABLE): Likewise. 5044 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise. 5045 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap. 5046 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise. 5047 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise. 5048 (CLASSTYPE_INTERFACE_ONLY): Likewise. 5049 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 5050 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 5051 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 5052 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 5053 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 5054 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap. 5055 (BINFO_UNSHARED_MARKED): Whitespace. 5056 (BINFO_MARKED): Whitespace and wrap. 5057 (SET_BINFO_MARKED): Likewise. 5058 (CLEAR_BINFO_MARKED): Likewise. 5059 (BINFO_VTABLE_PATH_MARKED): Likewise. 5060 (SET_BINFO_VTABLE_PATH_MARKED): Likewise. 5061 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise. 5062 (BINFO_SUBVTT_INDEX): Remove parenthesis. 5063 (BINFO_VPTR_INDEX): Likewise. 5064 (BINFO_PRIMARY_BASE_OF): Likewise, 5065 (CLASSTYPE_VFIELDS): Whitespace. 5066 (VF_DERIVED_VALUE): Wrap long line. 5067 (NAMESPACE_LEVEL): Whitespace. 5068 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis. 5069 (DEFARG_POINTER): Whitespace. 5070 (DECL_NEEDED_P): Remove parenthesis. 5071 (DECL_LANGUAGE): Whitespace. 5072 (SET_DECL_LANGUAGE): Add parenthesis. 5073 (DECL_CONSTRUCTOR_P): Whitespace and wrap. 5074 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis. 5075 (DECL_IN_AGGR_P): Whitespace. 5076 (DECL_FRIEND_P): Likewise. 5077 (DECL_BEFRIENDING_CLASSES): Likewise. 5078 (DECL_STATIC_FUNCTION_P): Whitespace and wrap. 5079 (DECL_NONCONVERTING_P): Whitespace. 5080 (DECL_PURE_VIRTUAL_P): Likewise. 5081 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise. 5082 (DECL_PENDING_INLINE_INFO): Whitespace. 5083 (DECL_SORTED_FIELDS): Likewise. 5084 (DECL_DEFERRED_FN): Likewise. 5085 (DECL_TEMPLATE_INFO): Likewise. 5086 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap. 5087 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise. 5088 (SET_TYPE_TEMPLATE_INFO): Add parenthesis. 5089 (TMPL_ARGS_LEVEL): Likewise. 5090 (SET_TMPL_ARGS_LEVEL): Likewise. 5091 (INNERMOST_TEMPLATE_PARMS): Whitespace. 5092 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter. 5093 (INTEGRAL_CODE_P(CODE): Add parenthesis. 5094 (CP_INTEGRAL_TYPE_P): Remove parenthesis. 5095 (TYPE_HAS_CONSTRUCTOR): Whitespace. 5096 (TREE_HAS_CONSTRUCTOR): Likewise. 5097 (TYPE_HAS_DESTRUCTOR): Likewise. 5098 (TYPE_HAS_REAL_ASSIGN_REF): Likewise. 5099 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise. 5100 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise. 5101 (TYPE_HAS_COMPLEX_INIT_REF): Likewise. 5102 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise. 5103 (TYPE_PTRMEMFUNC_P): Likewise. 5104 (TYPE_PTRMEMFUNC_FLAG): Likewise. 5105 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise. 5106 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise. 5107 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis. 5108 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 5109 (DECL_ACCESS): Whitespace. 5110 (DECL_GLOBAL_CTOR_P): Remove parenthesis. 5111 (DECL_GLOBAL_DTOR_P): Likewise. 5112 (GLOBAL_INIT_PRIORITY): Likewise. 5113 (DECL_TEMPLATE_PARMS): Likewise. 5114 (DECL_TEMPLATE_RESULT): Likewise. 5115 (DECL_TEMPLATE_INSTANTIATIONS): Likewise. 5116 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise. 5117 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis. 5118 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. 5119 (PRIMARY_TEMPLATE_P): Add parenthesis. 5120 (DECL_USE_TEMPLATE): Whitespace. 5121 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 5122 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 5123 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 5124 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 5125 (CALL_DECLARATOR_PARMS): Remove parenthesis. 5126 (CALL_DECLARATOR_QUALS): Likewise. 5127 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise. 5128 (TEMP_NAME_P): Wrap. 5129 (VFIELD_NAME_P): Likewise. 5130 (B_SET): Uppercase macro parameters and add parenthesis. 5131 (B_CLR): Likewise. 5132 (B_TST): Likewise. 5133 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters. 5134 (LOOKUP_TYPES_ONLY): Uppercase macro parameters. 5135 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters. 5136 (same_or_base_type_p): Likewise. 5137 (cp_deprecated): Likewise. 5138 51392002-01-05 Richard Henderson <rth@redhat.com> 5140 5141 * semantics.c (expand_body): Revert last change. 5142 51432002-01-04 Jason Merrill <jason@redhat.com> 5144 5145 PR c++/4122 5146 * class.c (update_vtable_entry_for_fn): Set delta to zero for a 5147 lost primary. 5148 5149 * class.c (build_vtbl_initializer): Check for a lost primary 5150 before calculating the vtable entry to throw away. 5151 51522002-01-02 Jason Merrill <jason@redhat.com> 5153 5154 * semantics.c (expand_body): Call outlining_inline_function when 5155 emitting an inline function out of line. 5156 51572002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5158 5159 PR c++/5116, c++/764 reversion 5160 * call.c (build_new_op): Revert the instantiations. They are 5161 incorrect. 5162 51632002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5164 5165 PR c++/5089 5166 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void. 5167 51682002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5169 5170 PR c++/3716 5171 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst. 5172 (tsubst, case POINTER_TYPE): Handle pmfs here. 5173 (tsubst, case OFFSET_TYPE): Check it is not an offset to 5174 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE. 5175 51762002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5177 5178 PR c++/35 5179 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too. 5180 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too. 5181 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the 5182 PARM_DECL. 5183 (tsubst_template_parms): Break up loop statements. 5184 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template 5185 parm PARM_DECLs don't get promoted. 5186 51872002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5188 5189 PR c++/5123 5190 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR. 5191 (build_x_function_call): Cope with a COMPONENT_REF containing a 5192 TEMPLATE_ID_EXPR. 5193 51942002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5195 5196 PR c++/5213 5197 * pt.c (convert_template_argument): Be more careful determining 5198 when RECORD_TYPE templates are or are not templates. 5199 52002002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5201 5202 PR c++/775 5203 * cp-tree.h (handle_class_head): Adjust prototype. 5204 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P 5205 parameters. Use for all class heads. 5206 * parse.y (named_class_head_sans_basetype, named_class_head, 5207 named_complex_class_head_sans_basetype, 5208 named_class_head_sans_basetype_defn, 5209 unnamed_class_head): Remove. 5210 (class_head, class_head_apparent_template): Recognize class heads 5211 (class_head_decl, class_head_defn): New reductions. Process class 5212 heads. 5213 (structsp): Adjust class definition and class declaration 5214 reductions. 5215 (maybe_base_class_list): Give diagnostic on empty list. 5216 52172002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5218 5219 PR c++/4379 5220 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a 5221 single non-static member. 5222 (unary_complex_lvalue): If it cannot be a pointer to member, don't 5223 make it so. Check it is not pointer to reference. 5224 52252002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5226 5227 PR c++/5132 5228 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we 5229 are processing a template decl. 5230 52312002-01-02 Nathan Sidwell <nathan@codesourcery.com> 5232 5233 PR c++/5116, c++/764 5234 * call.c (build_new_op): Make sure template class operands are 5235 instantiated. Simplify arglist construction. 5236 52372001-12-29 Nathan Sidwell <nathan@codesourcery.com> 5238 5239 * call.c (build_user_type_conversion_1): Use my_friendly_assert 5240 rather than if ... abort. 5241 * cvt.c (convert_to_reference): Likewise. 5242 * semantics.c (setup_vtbl_ptr): Likewise. 5243 * pt.c (lookup_template_class): Comment typo. 5244 52452001-12-29 Nathan Sidwell <nathan@codesourcery.com> 5246 5247 PR c++/5125 5248 * pt.c (push_template_decl_real): Make sure DECL has 5249 DECL_LANG_SPECIFIC. 5250 52512001-12-29 Nathan Sidwell <nathan@codesourcery.com> 5252 5253 PR c++/335 5254 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer 5255 for non-reference fields. 5256 * typeck.c (require_complete_type): Use resolve_offset_ref). 5257 52582001-12-26 Nathan Sidwell <nathan@codesourcery.com> 5259 5260 PR c++/196 5261 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF. 5262 52632001-12-24 Nathan Sidwell <nathan@codesourcery.com> 5264 5265 PR c++/160 5266 * typeck.c (build_modify_expr): Remove old unreachable code & tidy 5267 up. Don't stabilize_references when initializing a reference. 5268 52692001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5270 5271 * decl2.c (lang_f_options): Const-ify. 5272 52732001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 5274 5275 * config-lang.in (diff_excludes): Remove. 5276 52772001-12-19 Nathan Sidwell <nathan@codesourcery.com> 5278 5279 PR c++/90 5280 * typeck.c (build_function_call_real): Use original function 5281 expression for errors. 5282 52832001-12-18 Jason Merrill <jason@redhat.com> 5284 5285 PR c++/3242 5286 * class.c (add_method): Do compare 'this' quals when trying to match a 5287 used function. Don't defer to another used function. 5288 52892001-12-18 Nathan Sidwell <nathan@codesourcery.com> 5290 5291 * pt.c (instantiate_clone): Remove, fold into ... 5292 (instantiate_template): ... here. Simplify by removing mutual 5293 recursion. 5294 * typeck2.c (build_m_component_ref): Don't cv qualify the function 5295 pointed to by a pointer to function. 5296 * class.c (delete_duplicate_fields_1): Typo. 5297 52982001-12-18 Jason Merrill <jason@redhat.com> 5299 5300 C++ ABI change: destroy value arguments in caller. 5301 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't 5302 create an extra binding level for the parameters. 5303 * decl.c (store_parm_decls): Don't do parameter cleanups. 5304 53052001-12-18 Nathan Sidwell <nathan@codesourcery.com> 5306 5307 * call.c (build_new_method_call): Use '%#V'. 5308 * error.c (cv_to_string): Use V parameter to determine padding. 5309 53102001-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 5311 5312 * call.c, decl2.c, init.c: Use "built-in" and "bit-field" 5313 spellings in messages. 5314 53152001-12-17 Zack Weinberg <zack@codesourcery.com> 5316 5317 * cp-tree.h: Delete #defines for cp_error, cp_warning, 5318 cp_pedwarn, and cp_compiler_error. 5319 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, 5320 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, 5321 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 5322 typeck2.c: Change calls to the above macros to use their 5323 language-independent equivalents: error, warning, pedwarn, and 5324 internal_error respectively. 5325 53262001-12-16 Neil Booth <neil@daikokuya.demon.co.uk> 5327 5328 * decl2.c (finish_file): Remove back_end_hook. 5329 53302001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 5331 5332 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c, 5333 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c, 5334 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors. 5335 53362001-12-15 Joseph S. Myers <jsm28@cam.ac.uk> 5337 5338 * lang-options.h: Use American spelling in messages. 5339 53402001-12-13 Jason Merrill <jason@redhat.com> 5341 5342 * Make-lang.in (parse.h): Separate rule, just depend on parse.c. 5343 5344 Use cleanups to run base and member destructors. 5345 * init.c (push_base_cleanups): New function, split out from... 5346 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. 5347 * decl.c (finish_destructor_body): Move vbase destruction code to 5348 push_base_cleanups. 5349 (begin_function_body, finish_function_body): New fns. 5350 (finish_function): Move [cd]tor handling and call_poplevel to 5351 finish_function_body. 5352 (pushdecl): Skip the new level. 5353 * semantics.c (genrtl_try_block): Don't call end_protect_partials. 5354 (setup_vtbl_ptr): Call push_base_cleanups. 5355 * method.c (synthesize_method): Call {begin,end}_function_body. 5356 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. 5357 * cp-tree.h: Declare new fns. 5358 * parse.y (function_body, .begin_function_body): New nonterminals. 5359 (fndef, pending_inline, function_try_block): Use function_body. 5360 (ctor_initializer_opt, function_try_block): No longer has a value. 5361 (base_init): Remove .set_base_init token. 5362 (.set_base_init, compstmt_or_error): Remove. 5363 * Make-lang.in (parse.c): Expect two fewer s/r conflicts. 5364 5365 * optimize.c (maybe_clone_body): Fix parameter updating. 5366 53672001-12-12 Jason Merrill <jason@redhat.com> 5368 5369 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft. 5370 * semantics.c (genrtl_start_function): Don't pass 5371 parms_have_cleanups or push an extra binding level. 5372 (genrtl_finish_function): Lose cleanup_label cruft. 5373 5374 * cp-tree.h (struct cp_language_function): Remove x_ctor_label. 5375 (ctor_label): Remove. 5376 * semantics.c (finish_return_stmt): Lose ctor_label support. 5377 * decl.c (finish_constructor_body, mark_lang_function): Likewise. 5378 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not 5379 dtor_label. 5380 5381 * call.c (build_new_method_call): Let resolves_to_fixed_type_p 5382 check for [cd]tors. 5383 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix. 5384 5385 * decl.c (finish_function): Check VMS_TARGET, not VMS. 5386 5387 * decl.c (start_cleanup_fn): Remove redundant pushlevel. 5388 (end_cleanup_fn): And poplevel. 5389 5390 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER 5391 if we're in a template. 5392 53932001-12-12 Jakub Jelinek <jakub@redhat.com> 5394 5395 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P, 5396 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, 5397 THIS_NAME_P): Delete. 5398 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, 5399 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash 5400 with internal naming scheme. 5401 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. 5402 54032001-12-12 Nathan Sidwell <nathan@codesourcery.com> 5404 5405 * decl.c (grokdeclarator): Deprecated implicit typename use. 5406 54072001-12-11 Nathan Sidwell <nathan@codesourcery.com> 5408 5409 PR g++/51 5410 * parse.y (frob_specs): Indicate it is a language linkage which 5411 contained the extern. 5412 * decl.c (grokdeclarator): Allow extern language linkage with 5413 other specifiers. 5414 54152001-12-10 Nathan Sidwell <nathan@codesourcery.com> 5416 5417 PR g++/72 5418 * decl.c (add_binding): Don't reject duplicate typedefs involving 5419 template parameters. 5420 54212001-12-10 Neil Booth <neil@daikokuya.demon.co.uk> 5422 5423 * parse.y, semantics.c: Similarly. 5424 54252001-12-09 Nathan Sidwell <nathan@codesourcery.com> 5426 5427 PR g++/87 5428 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p. 5429 (copy_args_p): Rename to ... 5430 (copy_fn_p): ... here. 5431 (grok_special_member_properties): New function. 5432 (grok_op_properties): Lose VIRTUALP parameter. 5433 (copy_assignment_arg_p): Remove. 5434 * call.c (build_over_call): Use copy_fn_p. 5435 * decl.c (grokfndecl): Reformat. Adjust call to 5436 grok_op_properties. 5437 (copy_args_p): Rename to ... 5438 (copy_fn_p): ... here. Reject template functions. Check for pass 5439 by value. 5440 (grok_special_member_properties): Remember special functions. 5441 (grok_ctor_properties): Don't remember them here, just check. 5442 (grok_op_properties): Likewise. 5443 (start_method): Call grok_special_member_properties. 5444 * decl2.c (grokfield): Likewise. 5445 (copy_assignment_arg_p): Remove. 5446 (grok_function_init): Don't remember abstract assignment here. 5447 * pt.c (instantiate_class_template): Call 5448 grok_special_member_properties. 5449 (tsubst_decl): Adjust grok_op_properties call. 5450 54512001-12-08 Aldy Hernandez <aldyh@redhat.com> 5452 5453 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and 5454 RID_TYPES_COMPATIBLE_P. 5455 54562001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 5457 5458 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in 5459 call to build_aggr_init. 5460 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. 5461 54622001-12-08 Neil Booth <neil@daikokuya.demon.co.uk> 5463 5464 * parse.y: Replace uses of the string non-terminal with STRING. 5465 Don't perform string concatentaion here. 5466 (string): Remove non-terminal. 5467 * semantics.c (finish_asm_stmt): Don't concatenate strings here. 5468 54692001-12-05 Jason Merrill <jason@redhat.com> 5470 5471 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. 5472 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. 5473 * tree.c (cp_start_inlining, cp_end_inlining): New fns. 5474 * pt.c (push_tinst_level): No longer static. 5475 * cp-tree.h: Declare them. 5476 5477 * init.c (resolve_offset_ref): Don't check access for the base 5478 conversion to access a FIELD_DECL. 5479 5480 * cp-tree.h (TYPE_REFFN_P): New macro. 5481 * decl.c (bad_specifiers): Check it, too. 5482 5483 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY 5484 on the __*_type_info type if we haven't seen a definition. 5485 54862001-12-05 Neil Booth <neil@daikokuya.demon.co.uk> 5487 5488 * decl.c: Include c-common.h. 5489 (shadow_warning): Move to c-common.c. 5490 5491Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5492 5493 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. 5494 54952001-12-04 Nathan Sidwell <nathan@codesourcery.com> 5496 5497 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm. 5498 54992001-12-04 Nathan Sidwell <nathan@codesourcery.com> 5500 5501 PR g++/164 5502 * init.c (sort_base_init): Allow binfos to be directly specified. 5503 * method.c (do_build_copy_constructor): Explicitly convert to the 5504 base instance. 5505 (do_build_assign_ref): Likewise. 5506 55072001-12-03 Hans-Peter Nilsson <hp@bitrange.com> 5508 5509 * decl.c (xref_basetypes): Don't use C99 construct in tag_code 5510 declaration and initialization. 5511 55122001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 5513 5514 * typeck2.c: Remove leading capital from diagnostic messages, as 5515 per GNU coding standards. 5516 55172001-12-03 Mumit Khan <khan@nanotech.wisc.edu> 5518 5519 PR c++/3394 5520 * decl.c (xref_basetypes): Handle attributes between 5521 'class' and name. 5522 55232001-12-03 Nathan Sidwell <nathan@codesourcery.com> 5524 5525 PR g++/3381 5526 * parse.y (named_complex_class_head_sans_basetype): Add new 5527 reduction. 5528 * Make-lang.in (parse.c): Adjust expected conflict count. 5529 55302001-12-03 Jason Merrill <jason@redhat.com> 5531 5532 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the 5533 immediate binfos for our virtual bases. 5534 55352001-12-02 Neil Booth <neil@daikokuya.demon.co.uk> 5536 5537 * call.c (build_java_interface_fn_ref): Similarly. 5538 * except.c (is_admissible_throw_operand): Similarly. 5539 * init.c (build_java_class_ref): Similarly. 5540 * xref.c (open_xref_file): Similarly. 5541 55422001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 5543 5544 * class.c (finish_struct): Remove trailing periods from messages. 5545 * decl.c (check_tag_decl): Similarly. 5546 * lex.c (cxx_set_yydebug): Similarly. 5547 * typeck2.c (friendly_abort): Similarly. 5548 55492001-11-29 Mark Mitchell <mark@codesourcery.com> 5550 5551 PR c++/3048 5552 * cp-tree.h (ovl_member): Remove. 5553 * decl2.c (merge_functions): Handle extern "C" functions 5554 specially. 5555 * tree.c (ovl_member): Remove. 5556 55572001-11-29 Mark Mitchell <mark@codesourcery.com> 5558 5559 PR c++/4842 5560 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a 5561 FUNCTION_DECL, as input. 5562 (mark_overriders): Remove. 5563 (warn_hidden): Rework for the new ABI. 5564 55652001-11-29 Mark Mitchell <mark@codesourcery.com> 5566 5567 PR c++/3471 5568 * call.c (convert_like_real): Do not build additional temporaries 5569 for rvalues of class type. 5570 55712001-11-28 Nathan Sidwell <nathan@codesourcery.com> 5572 5573 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base. 5574 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise. 5575 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise. 5576 (DERIVED_FROM_P): Likewise. 5577 (enum base_access): Renumber, add ba_quiet bit mask. 5578 (get_binfo): Remove. 5579 (get_base_distance): Remove. 5580 (binfo_value): Remove. 5581 (ACCESSIBLY_DERIVED_FROM_P): Remove. 5582 * call.c (standard_conversion): Use lookup_base. 5583 * class.c (strictly_overrides): Likewise. 5584 (layout_virtual_bases): Likewise. 5585 (warn_about_ambiguous_direct_bases): Likewise. 5586 (is_base_of_enclosing_class): Likewise. 5587 (add_vcall_offset_vtbl_entries_1): Likewise. 5588 * cvt.c (build_up_reference): Adjust comment. 5589 * init.c (build_member_call): Reformat. 5590 * search.c (get_binfo): Remove. 5591 (get_base_distance_recursive): Remove. 5592 (get_base_distance): Remove. 5593 (lookup_base_r): Tweak. 5594 (lookup_base): Add ba_quiet control. Complete the types here. 5595 (covariant_return_p): Use lookup_base. 5596 * tree.c (binfo_value): Remove. 5597 (maybe_dummy_object): Use lookup_base. 5598 * typeck.c (build_static_cast): Use lookup_base. 5599 (get_delta_difference): Likewise. 5600 * typeck2.c (binfo_or_else): Use lookup_base. 5601 (build_scoped_ref): Add back error_mark_check. 5602 (build_m_component_ref): Use lookup_base. 5603 56042001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 5605 5606 * Make-lang.in (c++.generated-manpages): New dummy target. 5607 5608Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5609 5610 * Make-lang.in (cp-lang.o): Depends on c-common.h. 5611 * cp-lang.c (c-common.h): Include. 5612 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. 5613 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p. 5614 * expr.c (init_cplus_expand): Don't set lang_expand_constant. 5615 56162001-11-26 Neil Booth <neil@daikokuya.demon.co.uk> 5617 5618 * decl2.c (c_language): Move to c-common.c. 5619 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c 5620 functions. 5621 (cxx_init): Update. 5622 56232001-11-26 Jason Merrill <jason@redhat.com> 5624 5625 * call.c (joust): Remove COND_EXPR hack. 5626 56272001-11-25 Aldy Hernandez <aldyh@redhat.com> 5628 5629 * search.c (lookup_base_r): Declare bk in variable declaration 5630 space. 5631 56322001-11-25 Nathan Sidwell <nathan@codesourcery.com> 5633 5634 PR g++/3145 5635 * class.c (build_vbase_pointer): Remove. 5636 (build_vbase_path): Remove. 5637 (build_base_path): New function. 5638 * cp-tree.h (base_access, base_kind): New enumerations. 5639 (build_base_path): Declare. 5640 (convert_pointer_to_real): Remove. 5641 (convert_pointer_to): Remove. 5642 (lookup_base): Declare. 5643 (convert_pointer_to_vbase): Remove. 5644 * call.c (build_scoped_method_call): Use lookup_base & 5645 build_base_path instead of convert_pointer_to_real, 5646 get_base_distance & get_binfo. 5647 (build_over_call): Likewise. 5648 * cvt.c (cp_convert_to_pointer): Likewise. 5649 (convert_to_pointer_force): Likewise. 5650 (build_up_reference): Likewise. 5651 (convert_pointer_to_real): Remove. 5652 (convert_pointer_to): Remove. 5653 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path 5654 instead of convert_pointer_to_vbase & build_vbase_path. 5655 (emit_base_init): Use build_base_path instead of 5656 convert_pointer_to_real. 5657 (expand_virtual_init): Lose unrequired conversions. 5658 (resolve_offset_ref): Use lookup_base and build_base_path 5659 instead of convert_pointer_to. 5660 * rtti.c (build_dynamic_cast_1): Use lookup_base & 5661 build_base_path instead of get_base_distance & build_vbase_path. 5662 * search.c (get_vbase_1): Remove. 5663 (get_vbase): Remove. 5664 (convert_pointer_to_vbase): Remove. 5665 (lookup_base_r): New function. 5666 (lookup_base): New function. 5667 * typeck.c (require_complete_type): Use lookup_base & 5668 build_base_path instead of convert_pointer_to. 5669 (build_component_ref): Likewise. 5670 (build_x_function_call): Likewise. 5671 (get_member_function_from_ptrfunc): Likewise. 5672 (build_component_addr): Likewise. 5673 * typeck2.c (build_scoped_ref): Likewise. 5674 56752001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 5676 5677 * cp-tree.h (CP_TYPE_QUALS): Removed. 5678 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree. 5679 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and 5680 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN. 5681 * dump.c (cp_dump_tree): Use void* dump_info argument to match 5682 lang-hooks prototype. 5683 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c, 5684 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to 5685 CP_TYPE_QUALS changed to cp_type_quals. 5686 * Make-lang.in: References to c-dump.h changed to tree-dump.h. 5687 (CXX_C_OBJS): Remove c-dump.o. 5688 56892001-11-21 Mark Mitchell <mark@codesourcery.com> 5690 5691 PR c++/3637 5692 * pt.c (lookup_template_class): Ensure that all specializations 5693 are registered on the list corresponding to the most general 5694 template. 5695 56962001-11-20 Mark Mitchell <mark@codesourcery.com> 5697 5698 * call.c (non_reference): Add documentation. 5699 (convert_class_to_reference): Do not strip reference types 5700 from conversion operators. 5701 (maybe_handle_ref_bind): Simplify. 5702 (compare_ics): Correct handling of references. 5703 57042001-11-19 John Wilkinson <johnw@research.att.com> 5705 5706 * dump.c (dump_op): New function. 5707 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use 5708 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs. 5709 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P, 5710 57112001-11-19 Mark Mitchell <mark@codesourcery.com> 5712 5713 PR4629 5714 * semantics.c (finish_sizeof): Make sure that expression created 5715 while processing a template do not have a type. 5716 (finish_alignof): Likewise. 5717 * typeck.c (c_sizeof): Likewise. 5718 (expr_sizeof): Likewise. 5719 57202001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 5721 5722 * lex.c (cxx_finish): Call c_common_finish. 5723 (finish_parse): Remove. 5724 57252001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5726 5727 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE 5728 when displaying error message about missing array bounds. 5729 57302001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5731 5732 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, 5733 CONST_CAST_EXPR. 5734 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. 5735 57362001-11-16 Neil Booth <neil@daikokuya.demon.co.uk> 5737 5738 * cp-tree.h (print_class_statistics): Restore. 5739 57402001-11-15 Jason Merrill <jason@redhat.com> 5741 5742 * method.c (use_thunk): Don't emit debugging information for thunks. 5743 5744 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions. 5745 * decl.c (make_typename_type): Handle getting a class template. 5746 * search.c (lookup_field_r): A class template is good enough for 5747 want_type. 5748 5749 * call.c (convert_like_real): Only use cp_convert for the bad part. 5750 (standard_conversion): Also allow bad int->enum. 5751 * typeck.c (ptr_reasonably_similar): Also allow functions to 5752 interconvert. Pointers to same-size integers are reasonably 5753 similar. 5754 5755 * cvt.c (convert_to_void): If we build a new COND_EXPR, always 5756 give it void type. 5757 57582001-11-15 Nathan Sidwell <nathan@codesourcery.com> 5759 5760 PR g++/3154 5761 * init.c (sort_base_init): Remove unreachable code. 5762 (expand_member_init): Adjust comment to reflect reality. Simplify 5763 and remove unreachable code. 5764 57652001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 5766 5767 * cp-tree.h (init_reswords, cxx_init_decl_processing): New. 5768 (cxx_init): Update prototype. 5769 * decl.c (init_decl_processing): Rename. Move null node init 5770 to its creation time. 5771 * lex.c (cxx_init_options): Update. 5772 (cxx_init): Combine with old init_parse; also call 5773 cxx_init_decl_processing. 5774 57752001-11-14 Richard Sandiford <rsandifo@redhat.com> 5776 5777 * decl.c (check_initializer): Try to complete the type of an 5778 array element before checking whether it's complete. Don't 5779 complain about arrays with complete element types but an 5780 unknown size. 5781 (cp_finish_decl): Build the hierarchical constructor before 5782 calling maybe_deduce_size_from_array_init. 5783 57842001-11-14 Joseph S. Myers <jsm28@cam.ac.uk> 5785 5786 * Make-lang.in: Change all uses of $(manext) to $(man1ext). 5787 57882001-11-13 Nathan Sidwell <nathan@codesourcery.com> 5789 5790 PR g++/4206 5791 * parse.y (already_scoped_stmt): Remove. 5792 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt. 5793 57942001-11-12 H.J. Lu <hjl@gnu.org> 5795 5796 * cvt.c (ocp_convert): Don't warn the address of a weak 5797 function is always `true'. 5798 57992001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 5800 5801 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, 5802 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, 5803 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override. 5804 * cp-tree.h (print_class_statistics): Remove. 5805 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type, 5806 cxx_print_identifier, cxx_set_yydebug): New. 5807 * lex.c (set_yydebug): Rename c_set_yydebug. 5808 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier, 5809 lang_print_xnode): Rename. 5810 * tree.c (print_lang_statistics): Rename. 5811 58122001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5813 5814 * class.c (dump_array): Fix format specifier warning. 5815 58162001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 5817 5818 * cp-lang.c (LANG_HOOKS_NAME): Override. 5819 (struct lang_hooks): Constify. 5820 * lex.c (cxx_init_options): Update. 5821 (lang_identify): Remove. 5822 * parse.y (language_string): Remove. 5823 58242001-11-08 Andreas Franck <afranck@gmx.de> 5825 5826 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME, 5827 DEMANGLER_CROSS_NAME): Handle program_transform_name the way 5828 suggested by autoconf. 5829 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define. 5830 (c++.install-common): Use the transformed target alias names. 5831 58322001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 5833 5834 * Make-lang.in: Update. 5835 * cp-lang.c: Include langhooks-def.h. 5836 58372001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5838 5839 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR. 5840 58412001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5842 5843 * lex.c (copy_lang_type): Add static prototype. 5844 58452001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5846 5847 * pt.c (unify): Handle SCOPE_REF. 5848 58492001-11-01 Jakub Jelinek <jakub@redhat.com> 5850 5851 * tree.c (cp_copy_res_decl_for_inlining): Adjust 5852 DECL_ABSTRACT_ORIGIN for the return variable. 5853 58542001-10-31 Zack Weinberg <zack@codesourcery.com> 5855 5856 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 5857 58582001-10-28 Joseph S. Myers <jsm28@cam.ac.uk> 5859 5860 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c, 5861 semantics.c, spew.c: Fix spelling errors. 5862 58632001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5864 5865 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. 5866 58672001-10-25 Zack Weinberg <zack@codesourcery.com> 5868 5869 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to 5870 pop_everything. 5871 5872Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5873 5874 * cp-lang.c (cxx_get_alias_set): New function. 5875 Point LANG_HOOKS_GET_ALIAS_SET to it. 5876 58772001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5878 5879 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node. 5880 * cp-tree.h (make_unbound_class_template): Prototype new function. 5881 * decl.c (make_unbound_class_template): New function. 5882 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE. 5883 * error.c (dump_type): Likewise. 5884 * mangle.c (write_type): Likewise. 5885 * parse.y (template_parm): Likewise. 5886 (template_argument): Use make_unbound_class_template. 5887 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE. 5888 (tsubst): Likewise. 5889 (tsubst_copy): Likewise. 5890 (unify): Likewise. 5891 * tree.c (walk_tree): Likewise. 5892 * typeck.c (comptypes): Likewise. 5893 58942001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5895 5896 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold 5897 extra calls into fewer ones. 5898 58992001-10-18 Alexandre Oliva <aoliva@redhat.com> 5900 5901 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. 5902 Warn when merging inline with attribute noinline. 5903 (start_decl, start_function): Warn if inline and attribute 5904 noinline appear in the same declaration. 5905 59062001-10-16 H.J. Lu <hjl@gnu.org> 5907 5908 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined 5909 for tree checking disabled. 5910 59112001-10-16 Hans-Peter Nilsson <hp@axis.com> 5912 5913 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL && 5914 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME. 5915 59162001-10-15 Richard Sandiford <rsandifo@redhat.com> 5917 5918 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define. 5919 (unify): Only handle MINUS_EXPR specially if the above flag is set 5920 and the subtracted constant is 1. Clear the flag on recursive calls. 5921 Set it when unifying the maximum value in an INTEGER_TYPE's range. 5922 59232001-10-15 Richard Sandiford <rsandifo@redhat.com> 5924 5925 * decl.c (bad_specifiers): Don't allow exception specifications 5926 on any typedefs. 5927 59282001-10-14 Neil Booth <neil@daikokuya.demon.co.uk> 5929 5930 * cp/lex.c (init_cp_pragma): Similarly. 5931 59322001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5933 5934 * pt.c (lookup_template_class): Build complete template arguments 5935 for BOUND_TEMPLATE_TEMPLATE_PARM. 5936 59372001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5938 5939 * cp-tree.h (TYPE_BINFO): Update comment. 5940 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro. 5941 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info. 5942 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS. 5943 (copy_type): Prototype new function. 5944 * lex.c (copy_lang_decl): Gather tree node statistics. 5945 (copy_lang_type): New function. 5946 (copy_type): Likewise. 5947 (cp_make_lang_type): Create lang_type for 5948 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE 5949 and BOUND_TEMPLATE_TEMPLATE_PARM. 5950 * pt.c (tsubst): Use copy_type instead of copy_node. 5951 * search.c (lookup_field_1): Ignore TYPENAME_TYPE. 5952 59532001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5954 5955 * pt.c (determine_specialization): Ignore functions without 5956 DECL_TEMPLATE_INFO. 5957 59582001-10-12 Nathan Sidwell <nathan@codesourcery.com> 5959 5960 PR g++/4476 5961 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes. 5962 59632001-10-11 Jason Merrill <jason_merrill@redhat.com> 5964 5965 * typeck2.c (store_init_value): Don't re-digest a bracketed 5966 initializer. 5967 5968 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of 5969 ANON_AGGR_TYPE_P. 5970 59712001-10-11 Richard Henderson <rth@redhat.com> 5972 5973 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead 5974 of an asm statement. 5975 (build_vtbl_ref_1): Split out from build_vtbl_ref. 5976 (build_vfn_ref): Use it to handle vtable descriptors before 5977 calling build_vtable_entry_ref. 5978 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. 5979 59802001-10-10 Richard Henderson <rth@redhat.com> 5981 5982 * parse.y (asm_operand): Allow named operands. 5983 * semantics.c (finish_asm_stmt): Tweek for changed location 5984 of the operand constrant. 5985 59862001-10-09 Jason Merrill <jason_merrill@redhat.com> 5987 5988 * call.c (standard_conversion): Add bad conversion between 5989 integers and pointers. 5990 (convert_like_real): Don't use convert_for_initialization for bad 5991 conversions; complain here and use cp_convert. 5992 (build_over_call): Don't handle bad conversions specially. 5993 (perform_implicit_conversion): Allow bad conversions. 5994 (can_convert_arg_bad): New fn. 5995 * cp-tree.h: Declare it. 5996 * typeck.c (convert_for_assignment): Use it. 5997 (ptr_reasonably_similar): Any target type is similar to void. 5998 59992001-10-08 Alexandre Oliva <aoliva@redhat.com> 6000 6001 * Make-lang.in (CXX_OBJS): Added cp-lang.o. 6002 (cp/cp-lang.o): New rule. 6003 * cp-tree.h: Declare hooks. 6004 * tree.c: Make hooks non-static. 6005 (init_tree): Don't initialize hooks here. 6006 * lex.c: Likewise. Move definition of lang_hooks to... 6007 * cp-lang.c: ... new file. 6008 60092001-10-08 Richard Henderson <rth@redhat.com> 6010 6011 * cp-tree.h (struct lang_decl_flags): Remove declared_inline. 6012 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl. 6013 60142001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6015 6016 * class.c (build_vtable_entry_ref): Const-ify. 6017 * decl.c (predefined_identifier, 6018 initialize_predefined_identifiers): Likewise. 6019 * init.c (build_new_1): Likewise. 6020 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): 6021 Likewise. 6022 60232001-10-05 Alexandre Oliva <aoliva@redhat.com> 6024 6025 * optimize.c (struct inline_data): Moved to ../tree-inline.c. 6026 (INSNS_PER_STMT): Likewise. 6027 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. 6028 (copy_body, initialize_inlined_parameters): Likewise. 6029 (declare_return_variable, inlinable_function_p): Likewise. 6030 (expand_call_inline, expand_calls_inline): Likewise. 6031 (optimize_inline_calls, clone_body): Likewise. 6032 * tree.c (walk_tree): Moved to ../tree-inline.c. 6033 (walk_tree_without_duplicates): Likewise. 6034 (copy_tree_r, remap_save_expr): Likewise. 6035 60362001-10-04 Alexandre Oliva <aoliva@redhat.com> 6037 6038 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. 6039 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise. 6040 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl. 6041 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h. 6042 (flag_inline_trees): Moved declaration to ../tree-inline.h. 6043 (walk_tree): Moved declaration to ../tree-inline.h. 6044 (walk_tree_without_duplicates, copy_tree_r): Likewise. 6045 (remap_save_expr): Likewise. 6046 * decl.c: Include tree-inline.h. 6047 (lang_mark_tree): Don't mark inlined_fns. 6048 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c. 6049 * optimize.c: Include tree-inline.h. 6050 (optimize_inline_calls): Move declaration to ../tree.h, as 6051 non-static. 6052 (remap_decl): Use language-independent constructs and hooks. 6053 (remap_block, copy_body_r, declare_return_variable): Likewise. 6054 (inlinable_function_p): Likewise. Don't test for 6055 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is 6056 no longer language-specific. 6057 (optimize_inline_calls): Likewise. Make it non-static. Moved 6058 call of dump_function to... 6059 (optimize_function): Here... 6060 (clone_body): New function, extracted from... 6061 (maybe_clone_body): ... here. Build decl_map locally and pass 6062 it on to clone_body. 6063 * pt.c, semantics.c: Include tree-inline.h. 6064 * tree.c: Likewise. 6065 (cp_walk_subtrees): New language-specific hook for tree inlining. 6066 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls, 6067 cp_is_overload_p, cp_auto_var_in_fn_p, 6068 cp_copy_res_decl_for_inlining): Likewise. 6069 (walk_tree): Move language-specific constructs into... 6070 (cp_walk_subtrees): this new function. 6071 (copy_tree_r): Use language-independent constructs and hooks. 6072 (init_tree): Initialize tree inlining hooks. 6073 (remap_save_expr): Adjust prototype so that the declaration 6074 does not require the definition of splay_tree. 6075 60762001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca> 6077 6078 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used 6079 to build the declaration instead of the declaration itself. 6080 60812001-10-02 Jason Merrill <jason_merrill@redhat.com> 6082 6083 * decl2.c (cxx_decode_option): Add 'else'. 6084 6085 * spew.c (end_input): No longer static. 6086 * cp-tree.h: Declare it. 6087 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. 6088 60892001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 6090 6091 * call.c (build_over_call), typeck.c (build_function_call_real): 6092 Pass type attributes to check_function_format rather than name or 6093 assembler name. Don't require there to be a name or assembler 6094 name to check formats. 6095 60962001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 6097 6098 * decl.c (init_decl_processing): Don't call 6099 init_function_format_info. Initialize lang_attribute_table 6100 earlier. 6101 (builtin_function): Call decl_attributes. 6102 (insert_default_attributes): New. 6103 61042001-10-01 Jason Merrill <jason_merrill@redhat.com> 6105 6106 * decl.c (grokdeclarator): Copy array typedef handling from C 6107 frontend. 6108 6109 * decl.c (grokdeclarator): Copy too-large array handling from C 6110 frontend. 6111 61122001-09-29 Alexandre Oliva <aoliva@redhat.com> 6113 6114 * config-lang.in (target_libs): Added target-gperf, so that we 6115 don't try to build it if C++ is disabled. 6116 61172001-09-23 Zack Weinberg <zack@codesourcery.com> 6118 6119 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o. 6120 (cp/errfn.o): Delete rule. 6121 (cp/error.o): Depend on flags.h. 6122 * errfn.c: Delete file. 6123 * cp-tree.h: Declare warn_deprecated. Remove definitions of 6124 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, 6125 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning, 6126 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and 6127 internal_error respectively. Make cp_deprecated into a macro. 6128 Don't define cp_printer typedef or declare cp_printers. 6129 * error.c: Include flags.h. 6130 Delete: struct tree_formatting_info, print_function_argument_list, 6131 print_declaration, print_expression, print_function_declaration, 6132 print_function_parameter, print_type_id, print_cv_qualifier_seq, 6133 print_type_specifier_seq, print_simple_type_specifier, 6134 print_elaborated_type_specifier, print_rest_of_abstract_declarator, 6135 print_parameter_declaration_clause, print_exception_specification, 6136 print_nested_name_specifier, and definition of cp_printers. 6137 (locate_error): New function. 6138 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and 6139 rewritten in terms of locate_error and diagnostic.c. 6140 (cp_tree_printer): Rename cp_printer; wire up to *_to_string 6141 instead of deleted print_* routines. Handle %C, %L, %O, %Q also. 6142 (init_error): Adjust to match. 6143 6144Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6145 6146 * Make-lang.in (CXX_C_OBJS): Add attribs.o. 6147 61482001-09-21 Richard Henderson <rth@redhat.com> 6149 6150 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. 6151 (build_vtbl_initializer): Likewise. 6152 (build_vfn_ref): New. 6153 * cp-tree.h: Declare it. 6154 * call.c (build_over_call): Use it. 6155 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. 6156 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. 6157 6158Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com> 6159 6160 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. 6161 61622001-09-21 Joseph S. Myers <jsm28@cam.ac.uk> 6163 6164 Table-driven attributes. 6165 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. 6166 * decl2.c (cplus_decl_attributes): Only take one attributes 6167 parameter. 6168 * cp-tree.c (cplus_decl_attributes): Update prototype. 6169 * class.c (finish_struct), decl.c (start_decl, start_function), 6170 decl2.c (grokfield), friend.c (do_friend), parse.y 6171 (parse_bitfield): Update calls to cplus_decl_attributes. 6172 * decl.c (grokdeclarator): Take a pointer to a single ordinary 6173 attribute list. 6174 * decl.h (grokdeclarator): Update prototype. 6175 * decl2.c (grokfield): Take a single ordinary attribute list. 6176 * friend.c (do_friend): Likewise. 6177 * decl.c (shadow_tag, groktypename, start_decl, 6178 start_handler_parms, grokdeclarator, grokparms, start_function, 6179 start_method), decl2.c (grokfield, grokbitfield, grokoptypename), 6180 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c 6181 (process_template_parm, do_decl_instantiation): Pass single 6182 ordinary attribute lists around. 6183 * decl.c (grokdeclarator): Correct handling of nested attributes. 6184 Revert the patch 6185 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 6186 * decl.c (grokdeclarator): Embedded attrs bind to the right, 6187 not the left. 6188 . 6189 * cp-tree.h (cp_valid_lang_attribute): Remove declaration 6190 (cp_attribute_table): Declare. 6191 * decl.c (valid_lang_attribute): Don't define. 6192 (lang_attribute_table): Define. 6193 (init_decl_processing): Initialize lang_attribute_table instead of 6194 valid_lang_attribute. 6195 * tree.c (cp_valid_lang_attribute): Remove. 6196 (handle_java_interface_attribute, handle_com_interface_attribute, 6197 handle_init_priority_attribute): New functions. 6198 (cp_attribute_table): New array. 6199 * decl2.c (import_export_class): Don't use 6200 targetm.valid_type_attribute. 6201 62022001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 6203 6204 * Make-lang.in (cp/error.o): Depend on real.h 6205 * error.c: #include "real.h" 6206 62072001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6208 6209 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of 6210 xmalloc/strcpy/strcat. 6211 62122001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6213 6214 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): 6215 Const-ification. 6216 * pt.c (tsubst_decl): Likewise. 6217 62182001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6219 6220 * decl2.c (lang_f_options): Const-ification. 6221 * lex.c (cplus_tree_code_name): Likewise. 6222 * spew.c (yyerror): Likewise. 6223 62242001-09-06 Nathan Sidwell <nathan@codesourcery.com> 6225 6226 PR c++/3986 6227 * class.c (force_canonical_binfo_r): Check & move an indirect 6228 primary base first. 6229 (force_canonical_binfo): Check that it's not already 6230 canonical. 6231 (mark_primary_virtual_base): Remove BINFO parameter. 6232 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here. 6233 62342001-09-06 Nathan Sidwell <nathan@codesourcery.com> 6235 6236 Remove TYPE_NONCOPIED_PARTS. 6237 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto 6238 CLASSTYPE_PURE_VIRTUALS. 6239 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO. 6240 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS. 6241 (layout_class_type): Don't call fixup_inline_methods here ... 6242 (finish_struct_1): ... call it here. 6243 62442001-09-04 Mark Mitchell <mark@codesourcery.com> 6245 6246 * decl.c (duplicate_decls): Remove code deadling with 6247 DECL_SAVED_INSNS. 6248 * decl2.c (finish_file): Likewise. 6249 * pt.c (instantiate_decl): Likewise. 6250 * semantics.c (expand_body): Don't defer local functions if 6251 they wouldn't be deferred for some other reason. Don't 6252 generate RTL for functions that will not be emitted. 6253 (genrtl_start_function): Remove code deadling with 6254 DECL_SAVED_INSNS. 6255 (genrtl_finish_function): Likewise. 6256 62572001-09-04 Nathan Sidwell <nathan@codesourcery.com> 6258 6259 PR c++/4203 6260 * call.c (build_over_call): Do not optimize any empty base 6261 construction. 6262 62632001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6264 6265 * error.c (dump_template_decl): Output template parameters 6266 together with their specifiers. 6267 Output `class' prefix for template template parameter. 6268 (dump_decl): Fix formatting. 6269 62702001-08-30 Kurt Garloff <garloff@suse.de> 6271 6272 * optimize.c (inlinable_function_p): Allow only smaller single 6273 functions. Halve inline limit after reaching recursive limit. 6274 62752001-08-30 Joern Rennecke <amylaar@redhat.com> 6276 Jason Merrill <jason_merrill@redhat.com> 6277 6278 * class.c (build_vtable_entry_ref): Subtract in char*, not 6279 ptrdiff_t. 6280 62812001-08-23 Jason Merrill <jason_merrill@redhat.com> 6282 6283 * tree.c (cp_build_qualified_type_real): Use get_qualified_type. 6284 (build_cplus_array_type): Use cp_build_qualified_type, not 6285 TYPE_MAIN_VARIANT, to get an unqualified version. 6286 6287 * decl2.c (grok_alignof): Lose. 6288 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr. 6289 * typeck.c (c_alignof): Lose. 6290 * semantics.c (finish_sizeof, finish_alignof): New. 6291 * parse.y: Use them. 6292 * cp-tree.h: Declare them. 6293 62942001-08-22 Jason Merrill <jason_merrill@redhat.com> 6295 6296 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement. 6297 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK. 6298 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement. 6299 63002001-08-19 Jakub Jelinek <jakub@redhat.com> 6301 6302 * typeck2.c (add_exception_specifier): Only require complete type if 6303 not in processing template declaration. 6304 63052001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6306 6307 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to 6308 GNU_xref_start_scope and GNU_xref_end_scope. 6309 6310 * tree.c (TYPE_HASH): Moved to ../tree.h. 6311 63122001-08-16 Mark Mitchell <mark@codesourcery.com> 6313 6314 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 6315 on COMPOUND_EXPRs. 6316 63172001-08-14 Richard Henderson <rth@redhat.com> 6318 6319 * class.c, cp-tree.h (build_vfn_ref): Remove. 6320 * call.c, rtti.c: Replace all refernces with build_vtbl_ref. 6321 63222001-08-13 Mark Mitchell <mark@codesourcery.com> 6323 6324 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for 6325 empty class assignment as having side-effects to avoid 6326 spurious warnings. 6327 63282001-08-13 Zack Weinberg <zackw@panix.com> 6329 6330 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. 6331 * except.c: Include libfuncs.h. 6332 63332001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 6334 6335 * decl.c (grokdeclarator): Clarify diagnostic message. 6336 63372001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6338 6339 * decl2.c (do_nonmember_using_decl): Replace using directive 6340 with using declaration in the error message. 6341 63422001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6343 6344 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the 6345 criterion to avoid rebuilding expression tree instead of 6346 processing_template_decl. 6347 63482001-08-07 Jason Merrill <jason_merrill@redhat.com> 6349 6350 Support named return value optimization for inlines, too. 6351 * decl.c (finish_function): Nullify returns here. 6352 * semantics.c (genrtl_start_function): Not here. 6353 (cp_expand_stmt): Don't mess with CLEANUP_STMTs. 6354 (nullify_returns_r): No longer static. Just clear RETURN_EXPR. 6355 Also nullify the CLEANUP_STMT for the nrv. 6356 * cp-tree.h: Declare it. 6357 * optimize.c (declare_return_variable): Replace the nrv with the 6358 return variable. 6359 * typeck.c (check_return_expr): Be more flexible on alignment check. 6360 Ignore cv-quals when checking for a matching type. 6361 63622001-08-09 Richard Henderson <rth@redhat.com> 6363 6364 * decl2.c (finish_objects): Use target hooks instead of 6365 assemble_constructor and assemble_destructor. 6366 63672001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 6368 6369 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'. 6370 63712001-08-07 Nathan Sidwell <nathan@codesourcery.com> 6372 6373 PR c++/3820 6374 Stop using TYPE_NONCOPIED_PARTS. 6375 * call.c (build_over_call): Be careful when copy constructing 6376 or assigning to an empty class. 6377 * class.c (check_bases_and_members): It has a 6378 COMPLEX_ASSIGN_REF if it has a vptr. 6379 (layout_class_type): Don't add empty class padding to 6380 TYPE_NONCOPIED_PARTS. 6381 (finish_struct_1): Don't add the VFIELD either. 6382 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_ 6383 initialization. 6384 63852001-08-07 Jason Merrill <jason_merrill@redhat.com> 6386 6387 * tree.c (walk_tree): Walk siblings even if !walk_subtrees. 6388 63892001-08-06 Richard Henderson <rth@redhat.com> 6390 6391 * decl2.c (finish_objects): Pass a symbol_ref and priority to 6392 assemble_{constructor,destructor}. Remove priority handling. 6393 63942001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 6395 6396 Don't allow template-id in using-declaration. 6397 * decl2.c (validate_nonmember_using_decl): Handle template-ids. 6398 (do_class_using_decl): Likewise. 6399 64002001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk> 6401 6402 * cp/spew.c (read_token): No need to pop buffers. 6403 64042001-08-02 Stan Shebs <shebs@apple.com> 6405 6406 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used. 6407 (fnaddr_from_vtable_entry): Remove decl. 6408 * method.c (use_thunk): Update comment. 6409 64102001-08-01 Andrew Cagney <ac131313@redhat.com> 6411 6412 * repo.c (get_base_filename): Change return value to const char 6413 pointer. 6414 64152001-08-02 Nathan Sidwell <nathan@codesourcery.com> 6416 6417 Kill -fhonor-std. 6418 * NEWS: Document. 6419 * cp-tree.h (flag_honor_std): Remove. 6420 (CPTI_FAKE_STD): Remove. 6421 (std_node): Remove comment about it being NULL. 6422 (fake_std_node): Remove. 6423 * decl.c (in_fake_std): Remove. 6424 (walk_namespaces_r): Remove fake_std_node check. 6425 (push_namespace): Remove in_fake_std code. 6426 (pop_namespace): Likewise. 6427 (lookup_name_real): Remove fake_std_node check. 6428 (init_decl_processing): Always create std_node. Always add 6429 std:: things there. 6430 (builtin_function): Always put non '_' fns in std. 6431 * decl2.c (flag_honor_std): Remove. 6432 (lang_f_options): Remove honor-std. 6433 (unsupported_options): Add honor-std. 6434 (set_decl_namespace): Remove fake_std_node check. 6435 (validate_nonmember_using_decl): Likewise. 6436 (do_using_directive): Likewise. 6437 (handle_class_head): Likewise. 6438 * dump.c (cp_dump_tree): Likewise. 6439 * except.c (init_exception_processing): Adjust. 6440 * init.c (build_member_call): Remove fake_std_node check. 6441 (build_offset_ref): Likewise. 6442 * lang-options.h: Remove -fhonor-std, -fno-honor-std. 6443 * rtti.c (init_rtti_processing): Adjust. 6444 64452001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 6446 6447 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second 6448 operand while calling cp_tree_equal. 6449 64502001-07-31 Nathan Sidwell <nathan@codesourcery.com> 6451 6452 The 3.0 ABI no longer has vbase pointer fields. 6453 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, 6454 FORMAT_VBASE_NAME): Remove. 6455 * method.c (do_build_copy_constructor): Adjust. 6456 (do_build_assign_ref): Adjust. 6457 * search.c (lookup_field_r): Adjust. 6458 * typeck.c (build_component_ref): Adjust. 6459 6460 The 3.0 ABI always has a vtable pointer at the start of every 6461 polymorphic class. 6462 * rtti.c (build_headof_sub): Remove. 6463 (build_headof): Adjust. 6464 (get_tinfo_decl_dynamic): No need to check flag_rtti 6465 here. Adjust. 6466 (create_real_tinfo_var): Explain why we need a hidden name. 6467 64682001-07-31 Nathan Sidwell <nathan@codesourcery.com> 6469 6470 PR c++/3631 6471 * class.c (update_vtable_entry_for_fn): The fixed adjustment 6472 of a virtual thunk should be from declaring base. 6473 64742001-07-31 Nathan Sidwell <nathan@codesourcery.com> 6475 6476 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into 6477 the shared virtual base, so preserving inheritance graph order. 6478 64792001-07-30 Andreas Jaeger <aj@suse.de> 6480 6481 * decl2.c: Remove unused var global_temp_name_counter. 6482 64832001-07-28 Richard Henderson <rth@redhat.com> 6484 6485 * method.c (pending_inlines): Remove. 6486 64872001-07-27 Nathan Sidwell <nathan@codesourcery.com> 6488 6489 * class.c (mark_primary_virtual_base): Don't adjust base 6490 offsets here. 6491 (dfs_unshared_virtual_bases): Adjust them here. 6492 (mark_primary_bases): Explain why we adjust at the end. 6493 64942001-07-27 Nathan Sidwell <nathan@codesourcery.com> 6495 6496 * class.c (finish_struct_1): When copying the primary base's 6497 VFIELD, make sure we find it is at offset zero. 6498 64992001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6500 6501 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and 6502 tsubst_expr for default template arguments. 6503 65042001-07-26 Nathan Sidwell <nathan@codesourcery.com> 6505 6506 PR c++/3621 6507 * spew.c (yylex): Only copy the token's lineno, if it is 6508 nonzero. 6509 65102001-07-26 Nathan Sidwell <nathan@codesourcery.com> 6511 6512 PR c++/3624 6513 * call.c (resolve_args): Simplify, call 6514 convert_from_reference. 6515 (build_new_op): Resolve and convert from reference ARG1 6516 earlier. Adjust ARG2 & ARG3 resolve and conversion. 6517 65182001-07-26 Nathan Sidwell <nathan@codesourcery.com> 6519 6520 * decl.c (last_function_parm_tags): Remove. 6521 (current_function_parm_tags): Remove. 6522 (init_decl_processing): Adjust. 6523 (start_function): Adjust. 6524 (store_parm_decls): Adjust. 6525 6526 PR c++/3152 6527 * decl.c (grokdeclarator): Detect when a function typedef is 6528 declaring a function, and create last_function_parms correctly. 6529 65302001-07-25 Jason Merrill <jason_merrill@redhat.com> 6531 6532 * call.c (joust): Only prefer a non-builtin candidate to a builtin 6533 one if they have the same signature. 6534 6535 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on 6536 it rather than toplevel_bindings_p. Give it a mangled name if static. 6537 (convert_to_reference): Adjust. 6538 * decl2.c (get_temp_name): Lose. 6539 * mangle.c (mangle_ref_init_variable): New fn. 6540 (mangle_guard_variable): Strip the ref-init header. 6541 * cp-tree.h: Adjust. 6542 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the 6543 initializer. 6544 (grok_reference_init): Always use DECL_INITIAL. 6545 65462001-07-25 Nathan Sidwell <nathan@codesourcery.com> 6547 6548 PR c++/3416 6549 * call.c (build_conditional_expr): Recheck args after 6550 conversions. 6551 * cp-tree.h (build_conditional_expr): Move to correct file. 6552 * typeck.c (decay_conversion): Diagnose any unknown types 6553 reaching here. 6554 (build_binary_op): Don't do initial decay or default 6555 conversions on overloaded functions. 6556 (build_static_cast): Don't do a decay conversion here. 6557 65582001-07-25 Nathan Sidwell <nathan@codesourcery.com> 6559 6560 PR c++/3543 6561 * typeck.c (condition_conversion): Resolve an OFFSET_REF. 6562 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here. 6563 65642001-07-25 Nathan Sidwell <nathan@codesourcery.com> 6565 6566 * class.c (build_vtbl_or_vbase_field): Remove, move into ... 6567 (create_vtbl_ptr): ... here. 6568 65692001-07-25 Nathan Sidwell <nathan@codesourcery.com> 6570 6571 * class.c (build_vbase_offset_vbtl_entries): Look for 6572 non-primary base of which we are a sub vtable. 6573 65742001-07-24 Phil Edwards <pme@sources.redhat.com> 6575 6576 * semantics.c (finish_this_expr): Remove unused code. 6577 65782001-07-24 Nathan Sidwell <nathan@codesourcery.com> 6579 6580 Simplify rtti, now we've only one ABI. 6581 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID, 6582 CPTI_TINFO_VAR_ID. 6583 (tinfo_decl_id, tinfo_var_id): Remove. 6584 (get_typeid_1): Remove. 6585 * rtti.c 6586 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id. 6587 (typeid_ok_p): New function. 6588 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl. 6589 (get_tinfo_decl): Remove old abi documentation. 6590 (tinfo_from_decl): Remove. 6591 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1. 6592 (get_typeid_1): Remove. 6593 (get_base_offset): Remove. 6594 (synthesize_tinfo_var): Absorb get_base_offset. 6595 (create_real_tinfo_var): Don't use tinfo_decl_id. 6596 65972001-07-23 Graham Stott <grahams@redhat.com> 6598 6599 * cp/class.c (type_requires_array_cookie): Fix use of uninitialized 6600 variable has_two_argument_delete_p. 6601 66022001-07-21 Nathan Sidwell <nathan@codesourcery.com> 6603 6604 Remove flag_vtable_thunk. It is always on for the 3.0 ABI. 6605 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. 6606 (CPTI_INDEX_IDENTIFIER): Remove. 6607 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. 6608 (delta2_identifier): Remove. 6609 (index_identifier): Remove. 6610 (pfn_or_delta2_identifier): Remove. 6611 (flag_vtable_thunks): Remove. 6612 (VTABLE_DELTA2_NAME): Remove. 6613 (VTABLE_INDEX_NAME): Remove. 6614 (FNADDR_FROM_VTABLE_ENTRY): Adjust. 6615 (vfunc_ptr_type_node): Adjust. 6616 (VTABLE_NAME_PREFIX): Adjust. 6617 (build_vfn_ref): Lose first parameter. 6618 (fixup_all_virtual_upcast_offsets): Remove. 6619 * decl.c (initialize_predefined_identifiers): Remove 6620 delta2_identifier, index_identifier, pfn_or_delta2_identifier. 6621 (init_decl_processing): Remove no-vtable-thunk code. 6622 * decl2.c (flag_vtable_thunks): Remove. 6623 (mark_vtable_entries): Remove no-vtable-thunk code. 6624 * error.c (dump_decl): Remove no-vtable-thunk code. 6625 (dump_expr): Adjust ptr to member function code. 6626 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk 6627 code. 6628 * rtti.c (build_headof): Remove no-vtable-thunk code. 6629 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. 6630 * search.c (get_base_distance): Remove expand_upcast_fixups case. 6631 (virtual_context) Remove. 6632 (expand_upcast_fixups): Remove. 6633 (fixup_virtual_upcast_offsets): Remove. 6634 (fixup_all_virtual_upcast_offsets): Remove. 6635 * typeck.c (get_member_function_from_ptrfunc): Remove 6636 no-vtable-thunk code. 6637 * call.c (build_over_call): Adjust call to build_vfn_ref. 6638 * class.c (build_vfn_ref): Lose first parameter. Remove 6639 no-vtable-thunk code. 6640 (build_rtti_vtbl_entries): Remove no-vtable-thunk code. 6641 (build_vtable_entry): Remove no-vtable-thunk code. 6642 66432001-07-20 Nathan Sidwell <nathan@codesourcery.com> 6644 6645 Remove old-abi remnants. Remove comments about old abi 6646 behavior. Remove references to 'new-abi' in comments. 6647 * cp-tree.h: Adjust comments. 6648 (vbase_offsets_in_vtable_p): Delete. 6649 (vcall_offsets_in_vtable_p): Delete. 6650 (vptrs_present_everywhere_p): Delete. 6651 (all_overridden_vfuns_in_vtables_p): Delete. 6652 (merge_primary_and_secondary_vtables_p): Delete. 6653 (TYPE_CONTAINS_VPTR_P): Adjust. 6654 (VTT_NAME_PREFIX): Remove. 6655 (CTOR_VTBL_NAME_PREFIX): Remove. 6656 (init_vbase_pointers): Remove. 6657 * class.c: Adjust coments. 6658 (build_vbase_pointer_fields): Delete. 6659 (build_vbase_pointer): Remove old-abi code. 6660 (build_secondary_vtable): Likewise. 6661 (modify_all_vtables): Likewise. 6662 (create_vtable_ptr): Likewise. 6663 (layout_class_type): Likewise. 6664 (finish_struct_1): Likewise. 6665 (finish_vtbls): Likewise. 6666 (dfs_finish_vtbls): Delete. 6667 (build_vbase_offset_vtbl_entries): Remove old-abi code. 6668 * cvt.c: Adjust comments. 6669 * decl.c: Adjust comments. 6670 * decl2.c: Adjust comments. 6671 * init.c: Adjust comments. 6672 (construct_virtual_bases): Remove old-abi code. 6673 * lang-specs.h: Remove -fno-new-abi. 6674 * mangle.c: Adjust comments. 6675 * rtti.c: Adjust comments. 6676 (get_base_offset): Remove old-abi-code. 6677 * search.c: Adjust comments. 6678 (dfs_init_vbase_pointers): Remove. 6679 (dfs_vtable_path_unmark): Remove. 6680 (init_vbase_pointers): Remove. 6681 * semantics.c: Adjust comments. 6682 (emit_associated_thunks): Remove old-abi code. 6683 * typeck.c: Adjust comments. 6684 66852001-07-20 Daniel Berlin <dan@cgsoftware.com> 6686 6687 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not 6688 params.h. 6689 66902001-07-19 Mark Mitchell <mark@codesourcery.com> 6691 6692 * class.c (finish_struct_anon): Forbid nested classes. 6693 66942001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 6695 6696 * decl2.c: Don't include dwarfout.h and dwarf2out.h. 6697 * optimize.c: Include debug.h. 6698 (maybe_clone_body): Use debug hook. 6699 * semantics.c: Include debug.h. 6700 (expand_body): Use debug hook. 6701 67022001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 6703 6704 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. 6705 67062001-07-18 Mark Mitchell <mark@codesourcery.com> 6707 6708 * class.c (type_requires_array_cookie): New function. 6709 (check_methods): Don't try to figure out whether the type needs a 6710 cookie here. 6711 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here. 6712 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove. 6713 (TYPE_VEC_NEW_USES_COOKIE): Reimplement. 6714 * pt.c (instantiate_class_template): Don't set 6715 TYPE_VEC_DELETE_TAKES_SIZE. 6716 * NEWS: Document ABI changes from GCC 3.0. 6717 67182001-07-18 Xavier Delacour <xavier@fmaudio.net>, 6719 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 6720 6721 * NEWS (Changes in GCC 3.0): Fix typo. 6722 67232001-07-13 Joseph S. Myers <jsm28@cam.ac.uk> 6724 6725 * decl2.c (cplus_decl_attributes): Take a pointer to the node to 6726 which attributes are to be attached, and a flags argument. Update 6727 call to decl_attributes. 6728 (grokfield): Update call to decl_attributes. 6729 * class.c (finish_struct): Update call to cplus_decl_attributes. 6730 * cp-tree.h (cplus_decl_attributes): Update prototype. 6731 * decl.c (start_decl, grokdeclarator, start_function): Update 6732 calls to decl_attributes and cplus_decl_attributes. 6733 * friend.c (do_friend): Update call to cplus_decl_attributes. 6734 * parse.y (parse_bitfield): Update call to cplus_decl_attributes. 6735 67362001-07-12 Mark Mitchell <mark@codesourcery.com> 6737 6738 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER 6739 for `register' variables with an asm-specification. 6740 67412001-07-11 Mark Mitchell <mark@codesourcery.com> 6742 6743 * semantics.c (finish_asm_stmt): Mark the output operands 6744 to an asm addressable, if necessary. 6745 67462001-07-11 Ben Elliston <bje@redhat.com> 6747 6748 * Revert this change -- there is a subtle bug. 6749 6750 PR c++/80 6751 * decl.c (finish_enum): New "attributes" argument; pass it to 6752 cplus_decl_attributes. Use a narrower type if the enum is packed. 6753 * cp-tree.h (finish_enum): Adjust prototype. 6754 * parse.y (enum_head): New non-terminal. 6755 (structsp): Use it. Enums now may be preceded or followed by 6756 optional attributes -- pass their chained tree to finish_enum(). 6757 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument. 6758 67592001-07-10 Mark Mitchell <mark@codesourcery.com> 6760 6761 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope 6762 variables. 6763 67642001-07-10 Jason Merrill <jason_merrill@redhat.com> 6765 6766 * semantics.c (cp_expand_stmt): Fix for null 6767 current_function_return_value. 6768 67692001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> 6770 6771 * call.c (build_op_delete_call): Initialize fn. 6772 (convert_like_real): Delete conditional. 6773 (joust): Initialize *w and *l. 6774 * class.c: Add prototype for binfo_ctor_vtable. 6775 (get_primary_binfo): Initialize result. 6776 * init.c (build_java_class_ref): Initialize name. 6777 67782001-07-09 Erik Rozendaal <dlr@acm.org> 6779 6780 * typeck.c (unary_complex_lvalue): Do not duplicate the 6781 argument to modify, pre-, or post-increment when used as an 6782 lvalue and when the argument has side-effects. 6783 67842001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 6785 6786 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 6787 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call 6788 cplus_decl_attributes even if attrs is NULL. 6789 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 6790 67912001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 6792 6793 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update 6794 calls to decl_attributes. 6795 67962001-07-06 Ira Ruben <ira@apple.com> 6797 6798 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should 6799 be DECL_TEMPLATE_RESULT. 6800 68012001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6802 6803 * cp-tree.h (copy_template_template_parm): Rename to ... 6804 (bind_template_template_parm): ... here. 6805 * tree.c (copy_template_template_parm): Rename to ... 6806 (bind_template_template_parm): ... here. Remove the case when 6807 NEWARGS is NULL_TREE. 6808 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and 6809 BOUND_TEMPLATE_TEMPLATE_PARM. 6810 * pt.c (lookup_template_class): Adjust. 6811 68122001-07-05 Jason Merrill <jason_merrill@redhat.com> 6813 6814 * cvt.c (convert_lvalue): New fn. 6815 * cp-tree.h: Declare it. 6816 * method.c (do_build_assign_ref): Use it. 6817 (do_build_copy_constructor): Convert parm to base types 6818 before calling base constructors. 6819 6820 * typeck.c (check_return_expr): Check DECL_ALIGN instead of 6821 DECL_USER_ALIGN. Check flag_elide_constructors instead of 6822 optimize. 6823 * semantics.c (cp_expand_stmt): Don't destroy the named return value. 6824 68252001-07-02 Nathan Sidwell <nathan@codesourcery.com> 6826 6827 * optimize.c (optimize_inline_calls): New function, broken out 6828 of ... 6829 (optimize_function): ... here. Call it. Don't inline if it is 6830 a thunk. 6831 (dump_function): Print name of dump flag causing this dump. 6832 * semantics.c (expand_body): Move thunk inline check to 6833 optimize_function. 6834 68352001-06-29 Joseph S. Myers <jsm28@cam.ac.uk> 6836 6837 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. 6838 (comptypes): Use target.comp_type_attributes. 6839 68402001-06-29 Nathan Sidwell <nathan@codesourcery.com> 6841 6842 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration. 6843 68442001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 6845 6846 * error.c (lang_print_error_function): Add a `diagnostic_context *' 6847 parameter. Tweak. 6848 68492001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk> 6850 6851 * decl2.c (import_export_class): Update. 6852 68532001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 6854 6855 * error.c (init_error): Adjust settings. 6856 68572001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 6858 6859 * error.c (init_error): Adjust settings. 6860 68612001-06-19 Richard Sandiford <rsandifo@redhat.com> 6862 6863 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to 6864 return pointers to data members by reference rather than by value. 6865 68662001-06-18 Jason Merrill <jason_merrill@redhat.com> 6867 6868 Implement the Named Return Value optimization. 6869 * cp-tree.h (struct cp_language_function): Add x_return_value. 6870 (current_function_return_value): Now a macro. 6871 * decl.c: Don't define it. 6872 (define_label, finish_case_label): Don't clear it. 6873 (init_decl_processing): Don't register it with GC. 6874 * semantics.c (genrtl_finish_function): Don't check it for 6875 no_return_label. Copy the RTL from the return value to 6876 current_function_return_value and walk, calling... 6877 (nullify_returns_r): ...this new fn. 6878 * typeck.c (check_return_expr): Set current_function_return_value. 6879 68802001-06-15 Jason Merrill <jason_merrill@redhat.com> 6881 6882 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're 6883 sharing a ctor vtable with. Merge code for cases 1 and 2. 6884 (binfo_ctor_vtable): New fn. 6885 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it. 6886 68872001-06-14 Jason Merrill <jason_merrill@redhat.com> 6888 6889 * class.c (dfs_find_final_overrider): Fix logic. 6890 6891 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use 6892 virtual thunk instead of non-virtual. 6893 (get_matching_virtual): Uncomment. 6894 6895 * pt.c (unify): Don't recurse between the POINTER_TYPE and the 6896 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on 6897 PARM, not ARG. 6898 68992001-06-14 Nathan Sidwell <nathan@codesourcery.com> 6900 6901 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure 6902 we've not emerged from the hierarchy of RTTI_BINFO on reaching 6903 a non-virtual base. 6904 69052001-06-13 Mark Mitchell <mark@codesourcery.com> 6906 6907 * NEWS: Update release number. 6908 69092001-06-12 Nathan Sidwell <nathan@codesourcery.com> 6910 6911 PR c++/3130, c++/3131, c++/3132 6912 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define. 6913 * class.c (force_canonical_binfo_r): Move 6914 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move 6915 virtual bases unless they're primary and what they're primary 6916 too has been moved. 6917 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope 6918 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and 6919 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most 6920 derived binfo. 6921 (mark_primary_bases): Use BINFO_UNSHARED_MARKED. 6922 (layout_nonempty_base_or_field): Add most derived type 6923 parameter. Adjust. 6924 (layout_empty_base): Likewise. 6925 (build_base_field): Likewise. 6926 (build_base_fields): Likewise. 6927 (propagate_binfo_offsets): Add most derived type 6928 parameter. Skip non canonical virtual bases too. 6929 (dfs_set_offset_for_unshared_vbases): Don't skip primary 6930 bases. Do skip canonical bases. 6931 (layout_virtual_bases): Adjust. 6932 (layout_class_type): Adjust. 6933 (dfs_get_primary_binfo): Build list of virtual primary base 6934 candidates. 6935 (get_primary_binfo): Check that the shared virtual primary 6936 base candidate was found first. 6937 (accumulate_vtbl_inits): Don't do anything for non-vptr 6938 containing binfos. For case 1 primary virtual bases, keep 6939 checking that we've not emerged from the hierarchy of RTTI_BINFO. 6940 69412001-06-12 Nathan Sidwell <nathan@codesourcery.com> 6942 6943 PR c++/3089 6944 * class.c (dfs_accumulate_vtbl_inits): Always walk down the 6945 hierarchy looking for primary bases for a ctor 6946 vtable. Recursively call oneself, if we meet our primary via 6947 this route and haven't met it yet via inheritance graph order. 6948 69492001-06-11 Mark Mitchell <mark@codesourcery.com> 6950 6951 * lang-options.h: Emit documentation for -fno-honor-std, not 6952 -fhonor-std. 6953 69542001-06-10 Alexandre Oliva <aoliva@redhat.com> 6955 6956 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: 6957 Don't clobber delta. 6958 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn. 6959 69602001-06-10 Mark Mitchell <mark@codesourcery.com> 6961 Gabriel Dos Reis <gdr@codesourcery.com> 6962 6963 * Make-lang.in (cp/call.o): Depend on diagnostic.h 6964 (cp/typeck.o): Depend on diagnostic.h 6965 (cp/typeck2.o): Depend on diagnostic.h 6966 (cp/repo.o): Depend on dignostic.h 6967 * typeck.c: #include diagnostic.h 6968 (convert_for_initialization): Remove extern declaration for 6969 warningcount and errorcount. 6970 6971 * call.c: #include diagnostic.h 6972 (convert_like_real): Remove extern declaration for warnincount and 6973 errorcount. 6974 6975 * repo.c: #include diagnostic.h 6976 * typeck2.c: #include diagnostic.h 6977 69782001-06-08 Nathan Sidwell <nathan@codesourcery.com> 6979 6980 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko 6981 in previous change. 6982 69832001-06-08 Nathan Sidwell <nathan@codesourcery.com> 6984 6985 PR c++/2929 6986 * friend.c (do_friend): Use push_decl_namespace for classes at 6987 namespace scope. 6988 69892001-06-08 Nathan Sidwell <nathan@codesourcery.com> 6990 Jason Merrill <jason_merrill@redhat.com> 6991 6992 PR c++/3061 6993 * class.c (build_secondary_vtable): Use assert, rather than an error 6994 message. 6995 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL. 6996 (dfs_accumulate_vtbl_inits): A lost primary virtual base may 6997 be between ORIG_BINFO and RTTI_BINFO, but neither of them. 6998 Don't set BINFO_VTABLE for a primary virtual base. 6999 70002001-06-07 Mark Mitchell <mark@codesourcery.com> 7001 7002 * decl.c (duplicate_decls): Update source position information 7003 when a template function is defined. 7004 70052001-06-07 Phil Edwards <pme@sources.redhat.com> 7006 7007 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h. 7008 70092001-06-07 Nathan Sidwell <nathan@codesourcery.com> 7010 7011 PR c++/2914 7012 * decl.c (pushtag): Don't push into a complete type's scope. 7013 70142001-06-06 Jason Merrill <jason_merrill@redhat.com> 7015 7016 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose. 7017 (struct lang_decl_flags): Lose generate_with_vtable_p. 7018 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose. 7019 * class.c (copy_virtuals): Adjust. 7020 * decl2.c (mark_vtable_entries): Adjust. 7021 * method.c (make_thunk, build_vtable_entry): Adjust. 7022 * class.c (update_vtable_entry_for_fn): Only look as far as the 7023 first defining class. 7024 (build_vtbl_initializer): Put nothing in the slot for a function only 7025 defined in a lost primary virtual base. 7026 (add_vcall_offset_vtbl_entries_1): Use the same code for 7027 the lost primary case and the normal case. 7028 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base. 7029 (get_vfield_offset, get_derived_offset): Lose. 7030 (dfs_find_final_overrider): Use look_for_overrides_here. 7031 (get_matching_virtual): New fn. 7032 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P, 7033 not BV_VCALL_INDEX. 7034 * search.c (look_for_overrides_here): Split out from... 7035 (look_for_overrides_r): Here. 7036 7037 * class.c (find_final_overrider): Return error_mark_node on error. 7038 7039 * decl2.c (key_method): #if 0 accidental change. 7040 70412001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> 7042 7043 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P. 7044 (build_over_call): Likewise. 7045 * decl.c (grokparms): Likewise. 7046 * pt.c (tsubst_decl): Likewise. 7047 * typeck.c (convert_arguments): Likewise. 7048 70492001-06-05 Mark Mitchell <mark@codesourcery.com> 7050 7051 * semantics.c (begin_class_definition): Robustify. 7052 7053 * pt.c (instantiate_decl): Tell the repository code about the 7054 clones, not the cloned functions. 7055 * repo.c (repo_template_used): Explicitly instantiate the cloned 7056 function, not the clones. 7057 70582001-06-05 Nathan Sidwell <nathan@codesourcery.com> 7059 7060 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and 7061 ICS_BAD_FLAG on created conversion. 7062 (compare_ics): Break out rank. 7063 70642001-06-05 Nathan Sidwell <nathan@codesourcery.com> 7065 7066 * decl.c (xref_tag): Remove extraneous %s on dependent name 7067 lookup warning. 7068 70692001-06-05 Nathan Sidwell <nathan@codesourcery.com> 7070 7071 * class.c (layout_vtable_decl): Fix off by one error on 7072 build_index_type. 7073 (build_vtt): Likewise. 7074 (build_ctor_vtbl_group): Likewise. 7075 70762001-06-05 Nathan Sidwell <nathan@codesourcery.com> 7077 7078 * class.c (maybe_indent_hierarchy): New function. 7079 (dump_class_hierarchy_r): Add flags. Dump extra binfo 7080 information, if enabled. Use maybe_indent_hierarchy. Adjust 7081 output format. 7082 (dump_class_hierarchy): Adjust prototype. Adjust output format. 7083 (dump_array, dump_vtable, dump_vtt): New functions. 7084 (finish_struct_1): Adjust hierarchy dumping. 7085 (initialize_vtable): Call dump_vtable. 7086 (build_vtt): Call dump_vtt. 7087 (build_ctor_vtbl_group): Call dump_vtable. 7088 * decl2.c (flag_dump_class_layout): Remove. 7089 (cxx_decode_option): Remove dump translation unit 7090 and dump class hierarchy check. Call dump_switch_p. 7091 (finish_file): Adjust dumping. 7092 (dump.c): Only dump base classes if not TDF_SLIM. 7093 Only dump namespace members if not TDF_SLIM. 7094 * optimize.c (dump_function): New function. 7095 (optimize_function): Call dump_function. 7096 * semantics.c (expand_body): Use dump_enabled_p. 7097 70982001-06-01 Nathan Sidwell <nathan@codesourcery.com> 7099 7100 PR g++/2936 7101 Part missed from first commit 7102 * decl2.c (finish_anon_union): Copy context. 7103 71042001-05-30 Nathan Sidwell <nathan@codesourcery.com> 7105 7106 PR g++/2936 7107 * optimize.c (remap_decl): Remap anonymous aggregate members too. 7108 71092001-05-26 Nathan Sidwell <nathan@codesourcery.com> 7110 7111 PR g++/2823 7112 * semantics.c (expand_body): Don't optimize thunks. 7113 71142001-05-25 Sam TH <sam@uchicago.edu> 7115 7116 * cp-tree.h lex.h: Fix header include guards. 7117 71182001-05-25 Mark Mitchell <mark@codesourcery.com> 7119 7120 * decl.c (init_decl_processing): Tweak. 7121 71222001-05-24 Mark Mitchell <mark@codesourcery.com> 7123 7124 * decl.c (duplicate_decls): Tidy. 7125 (init_decl_processing): Always set flag_no_builtin. 7126 71272001-05-24 Nathan Sidwell <nathan@codesourcery.com> 7128 7129 PR c++/2184 7130 * decl2.c (do_local_using_decl): Push the decls, even in a 7131 template. 7132 71332001-05-22 Mark Mitchell <mark@codesourcery.com> 7134 7135 * optimize.c (initialize_inlined_parameters): Don't set 7136 TREE_READONLY for a VAR_DECL taking the place of an inlined 7137 PARM_DECL. 7138 71392001-05-22 Jason Merrill <jason_merrill@redhat.com> 7140 7141 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support. 7142 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface 7143 attribute. 7144 71452001-05-22 Joseph S. Myers <jsm28@cam.ac.uk> 7146 7147 * parse.y: Refer to compound literals as such, not as 7148 constructor-expressions. 7149 71502001-05-21 Mark Mitchell <mark@codesourcery.com> 7151 7152 * call.c (build_op_delete_call): Ignore exception-specifications 7153 when looking for matching delete operators. 7154 * init.c (build_new_1): Compute whether or not the allocation 7155 function used is a placement allocation function or not, and 7156 communicate this information to build_op_delete_call. 7157 71582001-05-21 Jason Merrill <jason_merrill@redhat.com> 7159 7160 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi. 7161 (build_vtbl_ref): Adjust. 7162 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address. 7163 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks. 7164 Re-add vtable-gc. 7165 (unsupported_options): Correspondingly. 7166 7167 * decl2.c (maybe_make_one_only): Check flag_weak, not 7168 supports_one_only(). 7169 7170 * cp-tree.def (START_CATCH_STMT): Lose. 7171 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS. 7172 * tree.c (cp_statement_code_p): Don't case it. 7173 * semantics.c (cp_expand_stmt): Likewise. 7174 * cp-tree.h (START_CATCH_TYPE): Lose. 7175 (HANDLER_TYPE): New. 7176 * except.c (expand_start_catch_block): Don't start any blocks. 7177 Return the type. 7178 (expand_end_catch_block): Don't end any blocks. 7179 * parse.y (handler): Don't pass anything from finish_handler_parms 7180 to finish_handler. 7181 * pt.c (tsubst_expr): Likewise. 7182 * semantics.c (begin_handler): Call note_level_for_catch here. 7183 (finish_handler_parms): Don't return anything. 7184 (genrtl_catch_block, begin_catch_block): Lose. 7185 (genrtl_handler): Call expand_start_catch here. 7186 71872001-05-18 Jason Merrill <jason_merrill@redhat.com> 7188 7189 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here. 7190 (get_vtable_decl, build_vtt): Not here. 7191 71922001-05-20 Nathan Sidwell <nathan@codesourcery.com> 7193 7194 PR c++/2781 7195 * optimize.c (update_cloned_parm): Copy addressability and other 7196 flags. 7197 71982001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 7199 7200 * pt.c (determine_specialization): Ignore artificial functions. 7201 72022001-05-20 Neil Booth <neil@daikokuya.demon.co.uk> 7203 7204 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. 7205 (C_RID_CODE): Remove. 7206 * lex.c (cxx_init_options): Call set_identifier_size. Update. 7207 (init_parse): Don't do it here. 7208 72092001-05-18 Diego Novillo <dnovillo@redhat.com> 7210 7211 * decl2.c (finish_objects): Use the original SYMBOL_REF from the 7212 function declaration to avoid stripping the symbol's attributes. 7213 72142001-05-18 Nathan Sidwell <nathan@codesourcery.com> 7215 7216 * decl.c (pushdecl): Adjust error string. 7217 (xref_tag): Adjust friend class injection warning. Remove the 7218 inherited name from the class shadowed scope. 7219 72202001-05-17 Mark Mitchell <mark@codesourcery.com> 7221 7222 * except.c (cp_protect_cleanup_actions): New function. 7223 (init_exception_processing): Don't set protect_cleanup_actions 7224 here. Do set lang_protect_cleanup_actions. 7225 72262001-05-16 Nathan Sidwell <nathan@codesourcery.com> 7227 7228 * spew.c (read_token): Call yyerror on all unexpected tokens. 7229 72302001-05-16 Nathan Sidwell <nathan@codesourcery.com> 7231 7232 * init.c (member_init_ok_or_else): Take a tree rather than 7233 string for name. 7234 (expand_member_init): Adjust. 7235 72362001-05-14 Nick Clifton <nickc@cambridge.redhat.com> 7237 7238 * decl.c (duplicate_decls): Suppress warning about duplicate 7239 decls if the first decl is a friend. 7240 72412001-05-12 Zack Weinberg <zackw@stanford.edu> 7242 7243 * except.c (choose_personality_routine): Export. Add 7244 explanatory comment. Take an enum languages, not a boolean. 7245 (initialize_handler_parm): Adjust to match. 7246 * cp-tree.h: Prototype choose_personality_routine. 7247 * lex.c (handle_pragma_java_exceptions): New function. 7248 (init_cp_pragma): Register #pragma GCC java_exceptions. 7249 72502001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk> 7251 7252 * method.c (build_mangled_C99_name): Remove unused prototype. 7253 72542001-05-12 Alexandre Oliva <aoliva@redhat.com> 7255 7256 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type. 7257 * typeck.c (get_member_function_from_ptrfunc, 7258 build_ptrmemfunc, expand_ptrmemfunc_cst): Take 7259 TARGET_PTRMEMFUNC_VBIT_LOCATION into account. 7260 7261 Reverted Geoff Keating's 2001-05-03's patch. 7262 72632001-05-11 Ira Ruben <ira@apple.com> 7264 7265 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h. 7266 72672001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 7268 7269 * cp-tree.h (finish_label_expr, lookup_label): Delete. 7270 * parse.y: Update for '&&'; don't issue warning here. 7271 * semantics.c (finish_label_expr): Delete. 7272 72732001-05-07 Mark Mitchell <mark@codesourcery.com> 7274 7275 * splay-tree.h (splay_tree_max): New function. 7276 (splay_tree_min): Likewise. 7277 72782001-05-03 Geoffrey Keating <geoffk@redhat.com> 7279 7280 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER. 7281 (pfn_vflag_identifier): Define. 7282 Update comment about layout of pointer functions. 7283 (build_ptrmemfunc1): Update prototype. 7284 (expand_ptrmemfunc_cst): Update prototype. 7285 * decl.c (initialize_predefined_identifiers): Initialize 7286 pfn_vflag_identifier. 7287 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add 7288 an extra field to the type. 7289 * expr.c (cplus_expand_constant): Pass 'flag' between 7290 expand_ptrmemfunc_cst and build_ptrmemfunc1. 7291 * typeck.c (get_member_function_from_ptrfunc): When 7292 FUNCTION_BOUNDARY < 16, look at additional field to determine 7293 if a pointer-to-member is a real pointer or a vtable offset. 7294 (build_ptrmemfunc1): Add new parameter to contain extra field. 7295 (build_ptrmemfunc): Pass the extra field around. 7296 (expand_ptrmemfunc_cst): Add new parameter to return extra field. 7297 (pfn_from_ptrmemfunc): Ignore the extra field. 7298 72992001-05-03 Mark Mitchell <mark@codesourcery.com> 7300 7301 * cp-tree.h (flag_inline_trees): Update documentation. 7302 * decl.c (init_decl_processing): Adjust handling of 7303 flag_inline_functions and flag_inline_trees to support -O3. 7304 (grokfndecl): Set DECL_INLINE on all functions if that's what 7305 the user requested. 7306 (save_function_data): Clear DECL_INLINE in 7307 current_function_cannot_inline is non-NULL. 7308 * decl2.c (flag_inline_trees): Update documentation. 7309 73102001-05-03 Nathan Sidwell <nathan@codesourcery.com> 7311 7312 * dump.c (cp_dump_tree, USING_STMT case): New case. 7313 * tree.c (cp_statement_code_p): Add USING_STMT. 7314 * decl2.c (do_using_directive): Add the using directive statement. 7315 7316 * tree.c (walk_tree): Reformat an if block. 7317 73182001-05-02 Mark Mitchell <mark@codesourcery.com> 7319 7320 * decl.c (compute_array_index_type): Don't try to do anything with 7321 the indices when processing a template. 7322 73232001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7324 7325 * call.c: NULL_PTR -> NULL. 7326 * class.c: Likewise. 7327 * cvt.c: Likewise. 7328 * decl.c: Likewise. 7329 * decl2.c: Likewise. 7330 * except.c: Likewise. 7331 * init.c: Likewise. 7332 * rtti.c: Likewise. 7333 * search.c: Likewise. 7334 * tree.c: Likewise. 7335 * typeck.c: Likewise. 7336 * typeck2.c: Likewise. 7337 73382001-05-02 Mark Mitchell <mark@codesourcery.com> 7339 7340 * decl2.c (do_using_directive): Revert previous patch. 7341 73422001-05-01 Nathan Sidwell <nathan@codesourcery.com> 7343 7344 * cp-tree.def (USING_STMT): New statement node. 7345 * cp-tree.h (USING_STMT_NAMESPACE): New macro. 7346 * decl2.c (do_using_directive): Add USING_STMT to statement 7347 tree. Don't emit errors when processing template decl. 7348 * pt.c (tsubst_expr, USING_STMT case): New case. 7349 * semantics.c (cp_expand_stmt, USING_STMT case): New case. 7350 73512001-05-01 Nathan Sidwell <nathan@codesourcery.com> 7352 7353 * call.c (build_new_op): Convert args from reference here. 7354 (build_conditional_expr): Don't convert here. 7355 73562001-05-01 Nathan Sidwell <nathan@codesourcery.com> 7357 7358 * spew.c (last_token_id): New static variable. 7359 (read_token): Set it here. 7360 (yyerror): Use it here. 7361 73622001-04-30 Richard Henderson <rth@redhat.com> 7363 7364 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. 7365 * decl.c: Likewise. 7366 73672001-04-30 Mark Mitchell <mark@codesourcery.com> 7368 7369 * gxxint.texi: Remove. 7370 * Make-lang.in: Remove all traces of gxxint.texi. 7371 7372Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com> 7373 7374 * decl2.c (start_static_initialization_or_destruction): Correct 7375 logic to handle the -fno-use-cxa-atexit case. 7376 73772001-04-30 Mark Mitchell <mark@codesourcery.com> 7378 7379 * optimize.c (update_cloned_parm): New function. 7380 (maybe_clone_body): Use it. Update the `this' parameter too. 7381 73822001-04-29 Joseph S. Myers <jsm28@cam.ac.uk> 7383 7384 * decl2.c (unsupported_options): Add new-abi. 7385 * lang-options.h: Remove no longer supported options. 7386 73872001-04-27 Nathan Sidwell <nathan@codesourcery.com> 7388 7389 * except.c (can_convert_eh): Don't check template parms, 7390 typename types etc. 7391 73922001-04-27 Nathan Sidwell <nathan@codesourcery.com> 7393 7394 * optimize.c (maybe_clone_body): Copy parameter names and locations. 7395 73962001-04-27 Nathan Sidwell <nathan@codesourcery.com> 7397 7398 * cp-tree.h (adjust_clone_args): Prototype new function. 7399 * class.c (adjust_clone_args): New function. 7400 * decl.c (start_function): Call it for in charge ctors. 7401 74022001-04-26 Mark Mitchell <mark@codesourcery.com> 7403 7404 * method.c (use_thunk): Make sure that thunks really are emitted 7405 when requested. 7406 74072001-04-26 Nathan Sidwell <nathan@codesourcery.com> 7408 7409 * mangle.c (write_chars): New macro. 7410 (hwint_to_ascii): New function 7411 (write_number): Use it. 7412 (write_integer_cst): Deal with really big numbers. 7413 74142001-04-25 Mark Mitchell <mark@codesourcery.com> 7415 7416 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting 7417 the clone. 7418 74192001-04-25 Nathan Sidwell <nathan@codesourcery.com> 7420 7421 * decl.c (grokdeclarator): Set context of namespace scope 7422 TYPE_DECLS. 7423 74242001-04-24 Zack Weinberg <zackw@stanford.edu> 7425 7426 * cp/optimize.c: Include hashtab.h. 7427 (struct inline_data): Add tree_pruner. 7428 (expand_call_inline, expand_calls_inline): Use it when calling 7429 walk_tree. 7430 (optimize_function): Initialize and free tree_pruner. 7431 74322001-04-24 Nathan Sidwell <nathan@codesourcery.com> 7433 7434 Lazy __FUNCTION__ generation. 7435 * cp-tree.def (FUNCTION_NAME): Remove. 7436 * cp-tree.h (function_name_declared_p): Remove. 7437 (cp_fname_init): Prototype. 7438 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids, 7439 don't call declare_function_name. Call start_fname_decls. 7440 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't 7441 clobber the line number. 7442 (cp_fname_init): New function. 7443 (start_function): Call start_fname_decls. 7444 (finish_function): Call finish_fname_decls. 7445 * lex.c (reswords): Add slots for __FUNCTION__ et al. 7446 (rid_to_yy): Add mappings for __FUNCTION__ et al. 7447 * optimize.c (maybe_clone_body): Remove function_name_declared_p. 7448 * parse.y (VAR_FUNC_NAME): New token. 7449 (primary): Add VAR_FUNC_NAME. 7450 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's 7451 generation. 7452 (tsubst, FUNCTION_NAME case): Remove. 7453 (tsubst_copy, FUNCTION_NAME case): Remove. 7454 (tsubst_expr, DECL_STMT case): Be careful with a 7455 DECL_PRETTY_FUNCTION_P. 7456 (instantiate_decl): Remove function_name_declared_p. 7457 * semantics.c (begin_compound_statement): Don't call 7458 declare_function_name here. 7459 (setup_vtbl_ptr). Don't save & restore function_name_declared_p. 7460 (finish_translation_unit): Call finish_fname_decls. 7461 (expand_body): Remove function_name_declared_p. 7462 * typeck2.c (digest_init): Allow any ERROR_MARK. 7463 74642001-04-24 Nathan Sidwell <nathan@codesourcery.com> 7465 7466 * pt.c (tsubst_decl): Use VOID_TYPE_P. 7467 * semantics.c: Fix some typos. 7468 74692001-04-23 Phil Edwards <pme@sources.redhat.com> 7470 7471 * cp/decl2.c (flag_honor_std): Always initialize to 1. 7472 74732001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7474 7475 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf. 7476 74772001-04-23 Jason Merrill <jason_merrill@redhat.com> 7478 7479 * except.c (build_throw): Wrap the initialization of the exception 7480 object in a MUST_NOT_THROW_EXPR. 7481 (do_free_exception): #if 0. 7482 74832001-04-20 Mark Mitchell <mark@codesourcery.com> 7484 7485 * cp-tree.h (finish_enum): Change prototype. 7486 * decl.c (finish_enum): Reorganize. 7487 * parse.y (structsp): Adjust calls to finish_enum. 7488 74892001-04-20 Nathan Sidwell <nathan@codesourcery.com> 7490 7491 * tree.c (cp_tree_equal): Adjust final switch formatting. Add 7492 't' case. 7493 74942001-04-20 Nathan Sidwell <nathan@codesourcery.com> 7495 7496 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED. 7497 (layout_empty_base): Return at end flag. 7498 (build_base_field): Likewise. 7499 (build_base_fields): Likewise. 7500 (layout_virtual_bases): Don't add 1 to eoc value. 7501 (end_of_class): Use full size for empty bases. 7502 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended 7503 empty bases. Don't add 1 to eoc value. Only add trailing padding 7504 if we're an empty class with no empty bases. 7505 (dump_class_hierarchy): Dump size and alignment. 7506 75072001-04-20 Jakub Jelinek <jakub@redhat.com> 7508 7509 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and 7510 ICS_BAD_FLAG. 7511 75122001-04-20 Jakub Jelinek <jakub@redhat.com> 7513 7514 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL 7515 is found, look first if name does not match the structure name. 7516 75172001-04-19 Mark Mitchell <mark@codesourcery.com> 7518 7519 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is 7520 set. 7521 (SET_DECL_LANGUAGE): New macro. 7522 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE. 7523 (pushdecl): Likewise. 7524 (build_library_fn_1): Likewise. 7525 (build_cp_library_fn): Likewise. 7526 (grokfndecl): Likewise. 7527 (grokvardecl): Mark `extern "C"' variables as having C linkage. 7528 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE. 7529 * lex.c (retrofit_lang_decl): Likewise. 7530 * mangle.c (mangle_decl_string): Don't mangle the names of 7531 variables declared with C language linkage. 7532 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE. 7533 75342001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca> 7535 7536 * semantics.c (simplify_aggr_init_exprs_r): Don't restore 7537 flag_access_control from uninitialized storage. 7538 75392001-04-15 Mark Mitchell <mark@codesourcery.com> 7540 7541 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation. 7542 * mangle.c (write_pointer_to_member_type): Fix mangling of 7543 pointers to cv-qualified member function types. 7544 7545 * init.c (build_delete): Create a SAVE_EXPR for the address if 7546 we're going to use it more than once. 7547 75482001-04-13 Mark Mitchell <mark@codesourcery.com> 7549 7550 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove. 7551 (expand_ptremfunc_cst): Change prototype. 7552 (delta2_from_ptrmemfunc): Remove. 7553 * expr.c (cplus_expand_constant): Adjust call to 7554 expand_ptrmemfunc_cst. 7555 * typeck.c (build_ptrmemfunc1): Simplify. 7556 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still 7557 results in a constant. 7558 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters. 7559 (delta2_from_ptrmemfunc): Remove. 7560 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst. 7561 75622001-04-12 Jason Merrill <jason_merrill@redhat.com> 7563 7564 * cp-tree.h (decl_namespace_list): New macro. 7565 (struct saved_scope): Add decl_ns_list. 7566 * decl.c (mark_saved_scope): Mark it. 7567 * decl2.c: Lose static decl_namespace_list. 7568 (init_decl2): Don't save it. 7569 75702001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7571 7572 * cp-tree.h (warn_return_type, yylex): Delete redundant 7573 declarations. 7574 7575 * decl.c (current_class_depth, global_namespace): Likewise. 7576 7577 * decl2.c (current_class_depth, flag_gnu_xref): Likewise 7578 7579 * repo.c (flag_use_repository): Likewise. 7580 75812001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7582 7583 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block, 7584 set_block, pushdecl, getdecls, gettags, init_decl_processing, 7585 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p, 7586 lvalue_or_else, print_lang_statistics, comp_target_types, 7587 unsigned_type, signed_type, signed_or_unsigned_type, 7588 build_function_call, mark_addressable, incomplete_type_error): 7589 Delete redundant declarations. 7590 75912001-04-11 Jason Merrill <jason_merrill@redhat.com> 7592 7593 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro. 7594 (TYPE_ANONYMOUS_P): New macro. 7595 (TAGGED_TYPE_P): New macro. 7596 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P. 7597 (grokfndecl, grokvardecl, grokdeclarator): Likewise. 7598 * tree.c (no_linkage_helper): Likewise. 7599 * semantics.c (begin_class_definition): Likewise. 7600 * pt.c (convert_template_argument): Likewise. 7601 * lex.c (check_for_missing_semicolon): Likewise. 7602 76032001-04-12 Nathan Sidwell <nathan@codesourcery.com> 7604 7605 * class.c (dfs_unshared_virtual_bases): New function. 7606 (mark_primary_bases): Call it. 7607 (check_bases): Ignore virtual bases when determining 7608 nearly-emptiness. 7609 76102001-04-12 Nathan Sidwell <nathan@codesourcery.com> 7611 7612 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION. 7613 76142001-04-11 Mark Mitchell <mark@codesourcery.com> 7615 7616 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the 7617 cloned function to the clone. 7618 76192001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7620 7621 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H). 7622 7623 * semantics.c: Include expr.h. 7624 76252001-04-11 Nathan Sidwell <nathan@codesourcery.com> 7626 7627 * method.c (implicitly_declare_fn): Commonize code for copy ctor 7628 and assignment op. Set TREE_USED for parameter. 7629 76302001-04-10 Mark Mitchell <mark@codesourcery.com> 7631 7632 * class.c (find_final_overrider_data): Add `candidates'. 7633 (dfs_find_final_overrider): Don't issue error messages 7634 prematurely. 7635 (find_final_overrider): Issue error messages here. 7636 (build_base_field): Don't warn about amgibuous direct bases here. 7637 (warn_about_ambiguous_direct_bases): New function. 7638 (layout_class_type): Use it. 7639 76402001-04-10 Richard Henderson <rth@redhat.com> 7641 7642 * typeck.c (build_array_ref): Push the array reference inside 7643 COMPOUND_EXPR and COND_EXPR. 7644 76452001-04-05 Mark Mitchell <mark@codesourcery.com> 7646 7647 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P. 7648 * decl.c (duplicate_decls): Adjust accordingly. 7649 (maybe_commonize_var): Likewise. 7650 (grokfndecl): Likewise. 7651 (start_function): Likewise. 7652 (start_method): Likewise. 7653 * decl2.c (key_method): Likewise. 7654 (import_export_decl): Likewise. 7655 * method.c (implicitly_declare_fn): Likewise. 7656 * optimize.c (maybe_clone_body): Likewise. 7657 76582001-04-05 Benjamin Kosnik <bkoz@redhat.com> 7659 7660 * lang-specs.h: Add __DEPRECATED. 7661 7662Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com> 7663 7664 * search.c (get_dynamic_cast_base_type): When building a new 7665 constant, set its type to ssizetype. 7666 76672001-04-04 Jakub Jelinek <jakub@redhat.com> 7668 7669 * optimize.c (expand_call_inline): Only add newly inlined statements 7670 into inlined_stmts. 7671 76722001-04-03 Mark Mitchell <mark@codesourcery.com> 7673 7674 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove. 7675 (OPERATOR_FORMAT): Likewise. 7676 (OPERATOR_TYPENAME_FORMAT): Likewise. 7677 * operators.def: Remove old name-mangling information. 7678 * decl.c (grok_op_properties): Adjust accordingly. 7679 * lex.c (init_operators): Likewise. 7680 * rtti.c (get_tinfo_decl): Issue error messages about types that 7681 have variable size. 7682 76832001-04-03 Mark Mitchell <mark@codesourcery.com> 7684 7685 * decl2.c (import_export_decl): Don't call import_export_class 7686 when processing an inline member function. 7687 * semantics.c (expand_body): Call import_export_decl before 7688 emitting inline functions. 7689 76902001-03-28 Richard Henderson <rth@redhat.com> 7691 7692 IA-64 ABI Exception Handling: 7693 * cp-tree.def (EH_SPEC_BLOCK): New. 7694 (MUST_NOT_THROW_EXPR): New. 7695 * cp-tree.h: Update changed function declarations. 7696 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove. 7697 (CPTI_CALL_UNEXPECTED): New. 7698 (struct cp_language_function): Rename x_eh_spec_try_block 7699 to x_eh_spec_block. 7700 (EH_SPEC_STMTS, EH_SPEC_RAISES): New. 7701 * decl.c (current_binding_level): If no current function 7702 bindings, revert to scope_chain. 7703 (initialize_predefined_identifiers): Remove __cp_push_exception. 7704 (store_parm_decls): Use begin_eh_spec_block. 7705 (finish_function): Use finish_eh_spec_block. 7706 (mark_lang_function): Update for name changes. 7707 * decl2.c (finish_file): No mark_all_runtime_matches. 7708 * dump.c (cp_dump_tree): Handle new tree codes. 7709 * error.c (dump_expr) [BIND_EXPR]: Fix typo. 7710 * except.c (catch_language_init, catch_language): Remove. 7711 (init_exception_processing): Don't set language code. 7712 Initialize call_unexpected_node, protect_cleanup_actions, 7713 eh_personality_libfunc, lang_eh_runtime_type. 7714 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove. 7715 (get_eh_type, get_eh_caught, get_eh_handlers): Remove. 7716 (prepare_eh_type): Split out type canonicalizations ... 7717 (build_eh_type_type): ... from here. 7718 (build_eh_type_type_ref): Remove. 7719 (mark_all_runtime_matches): Remove. 7720 (build_exc_ptr): New. 7721 (do_begin_catch, do_end_catch): New. 7722 (do_pop_exception): Remove. 7723 (build_terminate_handler): Remove. 7724 (choose_personality_routine): Split out language choice from ... 7725 (initialize_handler_parm): ... here. 7726 Use MUST_NOT_THROW_EXPR. 7727 (expand_start_catch_block): Use do_begin_catch. Simplify Java 7728 exception object handling. 7729 (expand_start_eh_spec, expand_end_eh_spec): Remove. 7730 (expand_exception_blocks, alloc_eh_object): Remove. 7731 (begin_eh_spec_block, finish_eh_spec_block): New. 7732 (do_allocate_exception, do_free_exception): New. 7733 (expand_throw): Merge into ... 7734 (build_throw): ... here. Update for abi. 7735 * expr.c (cplus_expand_expr): No expand_internal_throw. 7736 Handle MUST_NOT_THROW_EXPR. 7737 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK. 7738 * semantics.c (*) Update for except.h name changes. 7739 (genrtl_try_block): No protect_with_terminate. 7740 (genrtl_eh_spec_block): New. 7741 (genrtl_handler): Don't emit the goto here. 7742 (cp_expand_stmt): Handle EH_SPEC_BLOCK. 7743 (genrtl_finish_function): Don't expand_exception_blocks. 7744 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK. 7745 77462001-03-28 Richard Henderson <rth@redhat.com> 7747 7748 * decl.c (struct named_label_list): Rename eh_region to 7749 in_try_scope, add in_catch_scope. 7750 (struct binding_level): Rename eh_region to is_try_scope, 7751 add is_catch_scope. 7752 (note_level_for_try): Rename from note_level_for_eh. 7753 (note_level_for_catch): New. 7754 (poplevel): Copy both is_try_scope and is_catch_scope to 7755 the named_label_list struct. 7756 (check_previous_goto_1): Don't check for catch block via 7757 DECL_ARTIFICIAL; use in_try_scope instead. 7758 (check_goto): Likewise. 7759 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare. 7760 * except.c (expand_start_catch_block): Call note_level_for_catch. 7761 * semantics.c (begin_compound_stmt): Update for note_level_for_try. 7762 77632001-03-27 Richard Henderson <rth@redhat.com> 7764 7765 * except.c: Use USING_SJLJ_EXCEPTIONS instead of 7766 exceptions_via_longjmp. 7767 77682001-03-27 Phil Edwards <pme@sources.redhat.com> 7769 7770 * pt.c (check_default_tmpl_args): Make error messages clearer. 7771 77722001-03-26 Phil Edwards <pme@sources.redhat.com> 7773 7774 * error.c: Also undefine 'A' macro used for cp_printers definition. 7775 77762001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7777 7778 * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 7779 77802001-03-26 Mike Yang <yang@research.att.com> 7781 Mark Mitchell <mark@codesourcery.com> 7782 7783 * dump.c (dump_access): New function. 7784 (cp_dump_tree): Use it. Dump basetype information for class 7785 types. 7786 77872001-03-26 Mark Mitchell <mark@codesourcery.com> 7788 7789 * Makefile.in (optimize.o): Depend on params.h. 7790 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE. 7791 (init_decl_processing): Set flag_no_inline when doing 7792 inlining-on-trees. 7793 * optimize.c: Include params.h. 7794 (struct inline_data): Improve documentation of FNS. Add 7795 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P. 7796 (INSNS_PER_STMT): New macro. 7797 (remap_block): Use CLONING_P. 7798 (inlinable_function_p): Don't inline big functions. 7799 (expand_call_inline): Keep track of how much inlining we've done. 7800 (optimize_function): Set FIRST_INLINED_FN. 7801 (maybe_clone_body): Set CLONING_P. 7802 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in 7803 tree nodes. 7804 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling 7805 rest_of_compilation. Clear DECL_RTL for local variables 7806 afterwards. 7807 (clear_decl_rtl): New function. 7808 78092001-03-26 Nathan Sidwell <nathan@codesourcery.com> 7810 7811 Implement DR 209 7812 * cp-tree.h (skip_type_access_control, 7813 reset_type_access_control): Prototype. 7814 * decl.c (grokdeclarator): Access of friends is not checked. 7815 * parse.y (component_decl_list): Reset type access control. 7816 * semantics.c (decl_type_access_control): Clear 7817 current_type_lookups. 7818 (save_type_access_control): Don't save if not deferring. 7819 (skip_type_access_control, reset_type_access_control): New 7820 functions. 7821 (begin_class_definition): Do type access control for basetypes. 7822 Start deferred access control. 7823 (finish_class_definition): Resume immediate access control if 7824 this is a local class. 7825 78262001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7827 7828 * class.c (add_method): Use memcpy/memmove, not bcopy. 7829 7830 * decl.c (duplicate_decls): Likewise. 7831 78322001-03-23 Jakub Jelinek <jakub@redhat.com> 7833 7834 * mangle.c (write_discriminator): Use `_0' for discriminator 1, 7835 not `_'. 7836 78372001-03-23 Jakub Jelinek <jakub@redhat.com> 7838 7839 * decl.c (local_names): Define. 7840 (push_local_name): New. 7841 (grok_reference_init): Return init if initializing static reference 7842 variable with non-constant instead of emitting it. 7843 Move expand_static_init call to cp_finish_decl. 7844 (layout_var_decl): Call push_local_name. 7845 (maybe_commonize_var): Allow inlining functions even if they have 7846 static local variables, use comdat_linkage for them if flag_weak. 7847 (check_initializer): Call obscure_complex_init if 7848 grok_reference_init returned nonzero. 7849 (save_function_data): Clear x_local_names. 7850 (pop_cp_function_context): Free x_local_names. 7851 (mark_inlined_fns): Remove. 7852 (mark_lang_function): Mark x_local_names. 7853 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P. 7854 Mark inlined_fns as tree, remove call to mark_inlined_fns. 7855 * class.c (alter_access): Ensure DECL_ACCESS is never set if 7856 DECL_DISCRIMINATOR_P. 7857 * cp-tree.h (cp_language_function): Add x_local_names. 7858 (lang_decl_flags): Add discriminator into u2. 7859 (lang_decl_inlined_fns): Remove. 7860 (lang_decl): inlined_fns is now a TREE_VEC. 7861 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define. 7862 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a 7863 TREE_VEC, not a custom structure. 7864 (optimize_function): Likewise. 7865 * mangle.c (discriminator_for_local_entity): Discriminate among 7866 VAR_DECL local entities. 7867 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS 7868 is not valid. 7869 78702001-03-22 Bryce McKinlay <bryce@albatross.co.nz> 7871 7872 Add support for Java interface method calls. 7873 * cp-tree.h (struct lang_type): Add java_interface flag. 7874 (TYPE_JAVA_INTERFACE): New macro. 7875 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute 7876 by setting TYPE_JAVA_INTERFACE. 7877 * call.c (java_iface_lookup_fn): New static. 7878 (build_over_call): If calling a method declared in a 7879 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the 7880 expression which resolves the function address. 7881 (build_java_interface_fn_ref): New function. 7882 78832001-03-22 Richard Henderson <rth@redhat.com> 7884 7885 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h. 7886 * except.c: Don't include it. 7887 78882001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 7889 based on an idea from Joe Buck <jbuck@synopsys.com> 7890 7891 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore): 7892 New nonterminals. 7893 (data_def, component_decl): Add reductions to bad_decl. 7894 78952001-03-22 Jakub Jelinek <jakub@redhat.com> 7896 7897 * method.c (do_build_assign_ref): Don't use build_modify_expr for 7898 anonymous aggregates, since they don't have assignment operator 7899 method. 7900 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy 7901 assignment operators for anonymous structure fields. 7902 79032001-03-21 Jason Merrill <jason@redhat.com> 7904 7905 * pt.c (instantiate_decl): Abort if we see a member constant 7906 instantiation that doesn't already have its initializer. 7907 Downgrade explicit instantiation without definition to pedwarn. 7908 7909 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove. 7910 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P. 7911 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P. 7912 7913 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove. 7914 (pending_vtables): Remove. 7915 * decl2.c (pending_vtables): Remove. 7916 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not 7917 CLASSTYPE_VTABLE_NEEDS_WRITING. 7918 (import_export_class): Likewise. 7919 (init_decl2): Don't mark pending_vtables. 7920 * lex.c (handle_pragma_vtable): Just sorry. 7921 * pt.c (instantiate_class_template): Don't mess with 7922 CLASSTYPE_VTABLE_NEEDS_WRITING. 7923 (mark_class_instantiated): Likewise. 7924 * ptree.c (print_lang_type): Don't print it. 7925 * semantics.c (begin_class_definition): Don't set it. 7926 7927 * pt.c (template_tail): Replace with last_pending_template. 7928 (maybe_templates, maybe_template_tail): Remove. 7929 (add_pending_template): Adjust. 7930 (instantiate_pending_templates): Adjust. 7931 7932 * cp-tree.h (struct saved_scope): Remove lang_stack field. 7933 (current_lang_stack): Remove. 7934 * decl.c (maybe_push_to_top_level): Don't initialize it. 7935 (duplicate_decls): Use current_lang_depth. 7936 (xref_basetypes): Likewise. 7937 * class.c (current_lang_depth): New fn. 7938 (push_lang_context): Use more varray functionality. 7939 (pop_lang_context): Likewise. 7940 7941 * error.c (GLOBAL_THING): Always use '__'. 7942 79432001-03-21 Mark Mitchell <mark@codesourcery.com> 7944 7945 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME. 7946 7947 * mangle.c (mangle_decl_string): Mangle the names of overloaded 7948 operators, even when they have `extern "C"' linkage. 7949 79502001-03-19 Mark Mitchell <mark@codesourcery.com> 7951 7952 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, 7953 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 7954 where it's not necessary. 7955 (add_method): Remove optimization involving comparison of 7956 DECL_ASSEMBLER_NAME. 7957 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, 7958 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 7959 where it's not necessary. 7960 (check_methods): Likewise. 7961 (build_clone): Likewise. 7962 (built_vtt): Likewise. 7963 * cp-tree.h (DECL_NEEDED_P): Likewise. 7964 * decl.c (pushtag): Likewise. 7965 (duplicate_decls): Likewise. 7966 (pushdecl): Likewise. 7967 (builtin_function): Likewise. 7968 (build_library_fn_1): Set DECL_LANGUAGE for library functions. 7969 (build_cp_library_fn): Likewise. 7970 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, 7971 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 7972 where it's not necessary. 7973 (make_rtl_for_nonlocal_decl): Likewise. 7974 (cp_finish_decl): Likewise. 7975 (grokfndecl): Likewise. 7976 (grokvardecl): Likewise. 7977 (grokdeclarator): Likewise. 7978 (start_function): Likewise. 7979 (cp_missing_return_ok_p): Likewise. 7980 * decl2.c (grokclassfn): Likewise. 7981 (check_classfn): Likewise. 7982 (finish_static_data_member_decl): Likewise. 7983 (grokfield): Likewise. 7984 * error.c (GLOBAL_IORD_P): Remove. 7985 (dump_global_iord): Improve output. 7986 (dump_decl): Avoid using DECL_ASSEMBLER_NAME. 7987 * except.c (nothrow_libfn_p): Summarily reject any function not in 7988 namespace-scope. 7989 * init.c (build_java_class_ref): Don't explicitly set 7990 DECL_ASSEMBLER_NAME after calling mangle_decl. 7991 * mangle.c (mangle_decl_string): Handle extern "C" functions. 7992 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. 7993 * method.c (set_mangled_name_for_decl): Don't explicitly set 7994 DECL_ASSEMBLER_NAME after calling mangle_decl. 7995 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and 7996 IDENTIFIER_GLOBAL_VALUE for the thunk. 7997 * pt.c (set_mangled_name_for_template_decl): Remove. 7998 (check_explicit_specialization): Don't use it. 7999 (looup_template_class): Don't set DECL_ASSEMBLER_NAME. 8000 (tsubst_friend_function): Likewise. 8001 (tsubst_decl): Likewise. 8002 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. 8003 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, 8004 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 8005 where it's not necessary. 8006 (tinfo_base_init): Likewise. 8007 (create_real_tinfo_var): Likewise. 8008 * search.c (looup_field_1): Likewise. 8009 * semantics.c (finish_named_return_value): Likewise. 8010 * tree.c (init_tree): Set lang_set_decl_assembler_name. 8011 80122001-03-15 Gabriel Dos Reis <gdr@codesourcery.com> 8013 8014 Correct semantics restrictions checking in throw-expression. 8015 * except.c (is_admissible_throw_operand): New function. 8016 (build_throw): Use it. 8017 80182001-03-14 Mark Mitchell <mark@codesourcery.com> 8019 8020 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__ 8021 and its ilk. 8022 80232001-03-14 Mark Mitchell <mark@codesourcery.com> 8024 8025 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 8026 * cp-tree.h (DECL_IN_MEMORY_P): Likewise. 8027 * decl.c (duplicate_decls): Likewise. 8028 (builtin_function): Likewise. 8029 (build_library_fn): Likewise. 8030 (build_cp_library_fn): Likewise. 8031 (check_initializer): Likewise. 8032 (cp_finish_decl): Likewise. 8033 * decl2.c (grokfield): Likewise. 8034 (grok_function_init): Remove #if 0'd code. 8035 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 8036 * friend.c (do_friend): Likewise. 8037 * init.c (get_temp_regvar): Likewise. 8038 * method.c (make_thunk): Likewise. 8039 * pt.c (tsubst_friend_function): Likewise. 8040 (tsubst_decl): Likewise. 8041 (regenerate_decl_from_template): Likewise. 8042 * semantics.c (genrtl_named_return_value): Likewise. 8043 (expand_body): Likewise. 8044 (genrtl_finish_function): Likewise. 8045 * tree.c (cp_tree_equal): Likewise. 8046 80472001-03-12 Nathan Sidwell <nathan@codesourcery.com> 8048 8049 * call.c (convert_like_real): Add extra semantics to INNER 8050 parameter. Don't convert to temporary if a user conversion 8051 gives us an lvalue that we're about to bind to a reference. 8052 Set INNER to indicate pending reference binding on recursive 8053 calls. 8054 80552001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 8056 8057 * cp/lex.c: Delete duplicate pending_lang_change. 8058 80592001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 8060 8061 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation): 8062 Similarly. 8063 * cp/repo.c (get_base_filename, open_repo_file): Similarly. 8064 * cp/cp-tree.h: Remove file_name_nondirectory prototype. 8065 80662001-03-09 Zack Weinberg <zackw@stanford.edu> 8067 8068 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate. 8069 80702001-03-08 Stan Shebs <shebs@apple.com> 8071 8072 * cp-tree.h (set_identifier_local_value): Remove unused decl. 8073 80742001-03-06 Zack Weinberg <zackw@stanford.edu> 8075 8076 * spew.c: Remove references to CPP_OSTRING. 8077 80782001-03-06 Andrew Haley <aph@redhat.com> 8079 8080 * typeck.c (convert_arguments): Check that we have an fndecl. 8081 80822001-03-05 Andrew Haley <aph@redhat.com> 8083 8084 * typeck.c (convert_arguments): Don't do ellipsis conversion for 8085 __built_in_constant_p. 8086 80872001-03-02 Nathan Sidwell <nathan@codesourcery.com> 8088 8089 * typeck.c (build_static_cast): Allow enum to enum conversions 8090 as per DR 128. 8091 80922001-03-02 Nathan Sidwell <nathan@codesourcery.com> 8093 8094 * class.c (check_field_decls): Pointers to member do not a 8095 non-pod struct make, as per DR 148. 8096 80972001-03-02 Nathan Sidwell <nathan@codesourcery.com> 8098 8099 * call.c (joust): cp_pedwarn when using gnu extension concerning 8100 worst conversion sequences. 8101 81022001-03-01 Zack Weinberg <zackw@stanford.edu> 8103 8104 * decl.c: Replace all uses of 'boolean' with 'bool'. 8105 81062001-03-01 Zack Weinberg <zackw@stanford.edu> 8107 8108 * lang-specs.h: Add zero initializer for cpp_spec field to 8109 all array elements that need one. Don't put an #ifdef inside 8110 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and 8111 use it. 8112 81132001-03-01 Nathan Sidwell <nathan@codesourcery.com> 8114 8115 Implement using decls inside template functions. 8116 * decl2.c (validate_nonmember_using_decl): Don't special case 8117 fake_std_node in the global namespace. Don't reject early when 8118 processing a template. 8119 (do_local_using_decl): Add to statement tree. Don't do further 8120 processing when building a template. 8121 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs. 8122 81232001-03-01 Nathan Sidwell <nathan@codesourcery.com> 8124 8125 * decl2.c (do_nonmember_using_decl): Don't complain if we find 8126 same function. Do complain about ambiguating extern "C" 8127 declarations. 8128 81292001-02-28 Nathan Sidwell <nathan@codesourcery.com> 8130 8131 Remove floating point and complex type template constant parms. 8132 * pt.c (convert_nontype_argument): Remove REAL_TYPE and 8133 COMPLEX_TYPE extensions. 8134 (invalid_nontype_parm_type_p): Likewise. 8135 81362001-02-27 Jeffrey Oldham <oldham@codesourcery.com> 8137 8138 * except.c (call_eh_info): Revert "match_function"'s type. 8139 81402001-02-27 Nathan Sidwell <nathan@codesourcery.com> 8141 8142 Fix ctor vtable vcall offsets. 8143 * class.c (struct vtbl_init_data_s): Add rtti_binfo member. 8144 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter. 8145 (get_matching_base): Remove. 8146 (get_original_base): New function. 8147 (build_vtbl_initializer): Initialize vid.rtti_binfo. 8148 Use a virtual thunk for a ctor vtable with an index 8149 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a 8150 primary base within a constructor vtable. Only set 8151 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset 8152 when primary base has been lost. 8153 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment. 8154 81552001-02-26 Jeffrey Oldham <oldham@codesourcery.com> 8156 8157 * call.c (joust): Ensure more_specialized()'s argument length 8158 parameter has correct value for constructors. 8159 81602001-02-26 Nathan Sidwell <nathan@codesourcery.com> 8161 8162 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. 8163 8164 * decl.c (mark_inlined_fns): Prototype. 8165 81662001-02-22 Mark Mitchell <mark@codesourcery.com> 8167 8168 * spew.c (yylex): Correct handling of friends. 8169 81702001-02-22 Mark Mitchell <mark@codesourcery.com> 8171 8172 * mangle.c (write_encoding): Pass write_function_type the 8173 FUNCTION_DECL for the function being encoded. 8174 (write_function_type): Pass it along to write_bare_function_type. 8175 (write_bare_function_type): Pass it along to write_method_parms. 8176 (write_method_parms): Don't mangle the compiler-generated 8177 parameters to a constructor or destructor. 8178 81792001-02-22 Andreas Jaeger <aj@suse.de> 8180 8181 * optimize.c: Include toplev.h for 8182 note_deferral_of_defined_inline_function prototype. 8183 81842001-02-22 Jakub Jelinek <jakub@redhat.com> 8185 8186 * cp-tree.h (struct lang_decl_inlined_fns): New. 8187 (struct lang_decls): Add inlined_fns. 8188 (DECL_INLINED_FNS): New macro. 8189 * optimize.c (struct inline_data): Add inlined_fns. 8190 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro. 8191 (inlinable_function_p): Likewise, fix typo in comment, 8192 function is not inlinable if it already inlined function currently 8193 being optimized. 8194 (expand_call_inline): Add fn to inlined_fns if necessary. 8195 (optimize_function): Initialize inlined_fns. 8196 Save inlined_fns into DECL_INLINED_FNS after expanding inlines. 8197 * decl.c (mark_inlined_fns): New function. 8198 (lang_mark_tree): Call it. 8199 82002001-02-21 Jason Merrill <jason@redhat.com> 8201 8202 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag. 8203 (DECL_UNINLINABLE): Move to middle-end. 8204 8205 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn. 8206 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT. 8207 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone. 8208 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the 8209 parms and outer BLOCK. note_deferral_of_defined_inline_function. 8210 8211 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on 8212 second parm of op=. 8213 82142001-02-19 Mark Mitchell <mark@codesourcery.com> 8215 8216 * decl2.c (set_decl_namespace): Allow explicit instantiations in 8217 any namespace. 8218 82192001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 8220 8221 * optimize.c (expand_call_inline): Don't walk subtrees of type 8222 nodes. 8223 82242001-02-18 Mark Mitchell <mark@codesourcery.com> 8225 8226 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry 8227 for a destructor. 8228 82292001-02-18 Jason Merrill <jason@redhat.com> 8230 8231 Do put the VTT parameter in DECL_ARGUMENTS. 8232 * cp-tree.h (struct cp_language_function): Add x_vtt_parm. 8233 (current_vtt_parm): New macro. 8234 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. 8235 (DECL_HAS_VTT_PARM_P): New macro. 8236 (DECL_VTT_PARM): Remove. 8237 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. 8238 * decl.c (duplicate_decls): Only copy the operator code if 8239 appropriate. 8240 (start_function): Set current_vtt_parm. 8241 (lang_mark_tree): Don't mark vtt_parm. 8242 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to 8243 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. 8244 * class.c (build_clone): Maybe remove the VTT parm. 8245 * optimize.c (maybe_clone_body): Set up the VTT parm. 8246 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. 8247 * call.c (build_over_call): Just allow the VTT arg. 8248 * method.c (make_thunk): Don't set DECL_VTT_PARM. 8249 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. 8250 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. 8251 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. 8252 * error.c (dump_function_decl): Likewise. 8253 * call.c (build_user_type_conversion_1, convert_like_real): Abort 8254 if we try to call a constructor with in-charge or VTT parms. 8255 * method.c (skip_artificial_parms_for): New fn. 8256 * call.c (add_function_candidate, build_over_call): Call it. 8257 * call.c (build_new_method_call): Use current_vtt_parm. 8258 * init.c (expand_virtual_init): Likewise. 8259 * class.c (same_signature_p): No longer static. 8260 * cp-tree.h: Declare it. 8261 * search.c (look_for_overrides_r): Use it. 8262 82632001-02-17 Mark Mitchell <mark@codesourcery.com> 8264 8265 * cp-tree.h (new_abi_rtti_p): Remove. 8266 (name_mangling_version): Likewise. 8267 (flag_do_squangling): Likewise. 8268 * class.c (build_rtti_vtbl_entries): Remove old ABI support. 8269 * decl.c (grokfndecl): Likewise. 8270 * decl2.c (name_mangling_version): Remove. 8271 (flag_do_squangling): Likewise. 8272 (lang_f_options): Remove `squangle'. 8273 (unsupported_options): Add `squangle'. 8274 (cxx_decode_option): Issue a warning about uses of 8275 -fname-mangling-version. 8276 (finish_file): Remove old ABI support. 8277 * pt.c (check_explicit_specialization): Likewise. 8278 (tsubst_decl): Likewise. 8279 * rtti.c (init_rtti_processing): Likewise. 8280 (build_headof): Likewise. 8281 (get_tinfo_decl_dynamic): Likewise. 8282 (tinfo_from_decl): Likewise. 8283 (build_dynamic_cast_1): Likewise. 8284 (synthesize_tinfo_var): Likewise. 8285 * init.c (build_new): Allow enumeration types for the array-bounds 8286 in a direct-new-declarator. 8287 8288 * semantics.c (finish_typeof): Resolve OFFSET_REFs. 8289 8290 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and 8291 TREE_PROTECTED from the template being specialized. 8292 82932001-02-17 Jason Merrill <jason@redhat.com> 8294 8295 * decl2.c (build_artificial_parm): Set TREE_READONLY. 8296 8297 * decl.c (bad_specifiers): Allow throw specs on things with 8298 pointer-to-function or -member-function type. 8299 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize 8300 a pmf. 8301 83022001-02-17 Mark Mitchell <mark@codesourcery.com> 8303 8304 * call.c (check_dtor_name): Handle template names correctly. 8305 83062001-02-16 Jason Merrill <jason@redhat.com> 8307 8308 * cp-tree.h (DECL_USE_VTT_PARM): Remove. 8309 * decl2.c (maybe_retrofit_in_chrg): Don't create it. 8310 * optimize.c (maybe_clone_body): Don't substitute it. 8311 * call.c (build_new_method_call): Check in_chrg instead. 8312 * init.c (expand_virtual_init): Likewise. 8313 83142001-02-16 Gabriel Dos Reis <gdr@codesourcery.com> 8315 8316 * decl.c (check_tag_decl): Make sure a typedef for an anonymous 8317 class-type introduces at least a type-name. 8318 83192001-02-16 Jakub Jelinek <jakub@redhat.com> 8320 8321 * call.c (convert_like_real): Create a temporary for non-lvalue. 8322 83232001-02-16 Jeffrey Oldham <oldham@codesourcery.com> 8324 8325 * cp-tree.h: Fix typos in comments. 8326 83272001-02-16 Jason Merrill <jason@redhat.com> 8328 8329 * optimize.c (remap_block): If we're compiling a clone, pass the 8330 new block to insert_block. 8331 83322001-02-16 Mark Mitchell <mark@codesourcery.com> 8333 8334 * semantics.c (finish_asm_stmt): Robustify. 8335 83362001-02-15 Mark Mitchell <mark@codesourcery.com> 8337 8338 * pt.c (push_template_decl_real): Don't remangle the name of a 8339 class template. 8340 83412001-02-15 Jim Meyering <meyering@lucent.com> 8342 8343 * Make-lang.in (c++.install-common): Depend on installdirs. 8344 (c++.install-info): Likewise. 8345 (c++.install-man): Likewise. 8346 83472001-02-15 Mark Mitchell <mark@codesourcery.com> 8348 8349 * typeck2.c (build_m_component_ref): Robustify. 8350 83512001-02-15 Alexandre Oliva <aoliva@redhat.com> 8352 8353 * friend.c (do_friend): Don't take the nested [template] class 8354 into account when deciding whether to warn about the friend 8355 function not referring to a template function. 8356 83572001-02-14 Jakub Jelinek <jakub@redhat.com> 8358 8359 * typeck.c (build_unary_op): Clarify error message. 8360 83612001-02-08 Aldy Hernandez <aldyh@redhat.com> 8362 8363 * parse.y (component_constructor_declarator): allow optional 8364 parentheses around constructor class name. 8365 83662001-02-14 Nathan Sidwell <nathan@codesourcery.com> 8367 8368 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c 8369 section. 8370 * init.c (emit_base_init): Remove incorrect comment about 8371 virtual bases. 8372 * method.c (make_thunk): Fix comment alignment. 8373 83742001-02-14 Nathan Sidwell <nathan@codesourcery.com> 8375 8376 Kill remnants of this is variable. 8377 * cp-tree.h (flag_this_is_variable): Remove. 8378 * decl2.c (flag_this_is_variable): Remove. 8379 * class.c (fixed_type_or_null): Add cdtor parm. Adjust. 8380 (build_vbase_path): The path is non-static, even in a cdtor. 8381 (resolves_to_fixed_type_p): Add additional return value. 8382 * search.c (init_vbase_pointers): Adjust. 8383 * tree.c (lvalue_p_1): Adjust. 8384 * typeck.c (mark_addressable): Adjust. 8385 83862001-02-14 Nathan Sidwell <nathan@codesourcery.com> 8387 8388 * pt.c (unify): Don't check cv quals of array types. 8389 83902001-02-14 Nathan Sidwell <nathan@codesourcery.com> 8391 8392 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to 8393 check whether we already have the type. 8394 83952001-02-13 Mark Mitchell <mark@codesourcery.com> 8396 8397 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment. 8398 * call.c (build_op_delete_call): Simplify to remove duplicate 8399 code. 8400 * class.c (clone_function_decl): Don't build the deleting variant 8401 of a non-virtual destructor. 8402 * decl.c (finish_destructor_body): Don't call delete if this is a 8403 non-virtual destructor. 8404 * init.c (build_delete): Explicitly call `operator delete' when 8405 deleting an object with a non-virtual destructor. 8406 84072001-02-13 Jason Merrill <jason@redhat.com> 8408 8409 * lang-specs.h: Add more __EXCEPTIONS. 8410 84112001-02-12 Nathan Sidwell <nathan@codesourcery.com> 8412 8413 * typeck2.c (process_init_constructor): Check 8414 TREE_HAS_CONSTRUCTOR before issuing missing init warning. 8415 84162001-02-12 Nathan Sidwell <nathan@codesourcery.com> 8417 8418 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case): 8419 Remove spurious information in comment. Allow further 8420 adjustments of REFERENCE_TYPE args. 8421 84222001-02-12 Nathan Sidwell <nathan@codesourcery.com> 8423 8424 * errfn.c (cp_deprecated): Tweak diagnostic text. 8425 * parse.y (new_initializer): Deprecate initializer lists 8426 extension. 8427 84282001-02-12 Mark Mitchell <mark@codesourcery.com> 8429 8430 Remove old ABI support. 8431 84322001-02-11 Mark Mitchell <mark@codesourcery.com> 8433 8434 * decl2.c (flag_vtable_thunks): Always set it to 1. 8435 (flag_new_abi): Likewise. 8436 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI. 8437 8438 * Makefile.in (g++spec.o): Fix typo. 8439 84402001-02-09 Jason Merrill <jason@redhat.com> 8441 8442 * lang-specs.h: Restore definition of __EXCEPTIONS. 8443 84442001-02-08 Jason Merrill <jason@redhat.com> 8445 8446 * search.c (shared_member_p): New function. 8447 (lookup_field_r): Use it. 8448 * cp-tree.h (SHARED_MEMBER_P): Remove. 8449 8450 * method.c (process_overload_item): Handle template-dependent array 8451 bounds. 8452 * pt.c (type_unification_real): If we end up with undeduced nontype 8453 parms, try again. 8454 8455 * decl.c (lookup_name_real): Tweak warning to refer to decls, not 8456 types. 8457 8458 * typeck2.c (friendly_abort): Don't say anything if we have 8459 earlier errors or sorries. 8460 8461 * decl.c (check_tag_decl): Notice attempts to redefine bool and 8462 wchar_t. Ignore if in_system_header. 8463 8464 * decl.c (maybe_push_cleanup_level): New fn... 8465 (start_decl_1): ...split out from here. 8466 * cvt.c (build_up_reference): Use it. 8467 * cp-tree.h: Declare it. 8468 84692001-02-07 Mark Mitchell <mark@codesourcery.com> 8470 8471 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor 8472 spec. 8473 84742001-02-06 Nathan Sidwell <nathan@codesourcery.com> 8475 8476 * pt.c (lookup_template_class): Make sure it's a primary 8477 template or template_template_parm when called from the parser. 8478 (instantiate_template_class): Add assertion. 8479 84802001-02-05 Alexandre Oliva <aoliva@redhat.com> 8481 8482 * method.c (build_mangled_name) [old abi]: Protect flush_repeats() 8483 from error_mark_node. 8484 84852001-02-05 Nathan Sidwell <nathan@codesourcery.com> 8486 8487 Fix specification and implementation bugs in V3 ABI 8488 construction vtables. 8489 * cp-tree.h (flag_dump_class_layout): New flag. 8490 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove. 8491 (BINFO_LOST_PRIMARY_P): New flag. 8492 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts. 8493 (BINFO_PRIMARY_MARKED_P): Rename to ... 8494 (BINFO_PRIMARY_P): ... here. 8495 (binfo_via_virtual): New prototype. 8496 * decl2.c (flag_dump_class_layout): New flag. 8497 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to 8498 use `=' as a file name separator. 8499 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary 8500 bases. 8501 (build_vtbl_address): If this is a virtual primary base, then 8502 get the vtbl of what it is ultimately primary for. 8503 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust 8504 for BINFO_PRIMARY_P. 8505 (dfs_skip_nonprimary_vbases_markedp): Likewise. 8506 (get_shared_vbase_if_not_primary): Likewise. 8507 (dfs_get_pure_virtuals): Likewise. 8508 (expand_upcast_fixups): Likewise. 8509 (fixup_virtual_upcast_offsets): Likewise. 8510 (dfs_find_vbase_instance): Likewise. 8511 (find_vbase_instance): Likewise. 8512 (binfo_from_vbase): Adjust comment to reflect reality. 8513 (binfo_via_virtual): New function. 8514 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros 8515 for binfo walking during VTT construction. 8516 (dfs_mark_primary_bases): Remove. 8517 (force_canonical_binfo_r): New function. 8518 (force_canonical_binfo): New function. 8519 (mark_primary_virtual_base): New function. 8520 (mark_primary_bases): Walk in inheritance graph order, use 8521 mark_primary_virtual_base. 8522 (determine_primary_base): Use some more intermediate variables. 8523 (dfs_find_final_overrider): Don't check for overriding along a 8524 virtual path. 8525 (dfs_modify_vtables): Walk into primary virtual bases too. 8526 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P. 8527 (build_base_fields): Likewise. 8528 (dfs_set_offset_for_unshared_vbases): Likewise. 8529 (layout_virtual_bases): Likewise. 8530 (end_of_class): Likewise. 8531 (finish_struct_1): Call dump_class_hierarchy, if requested. 8532 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos. 8533 (dump_class_hierarchy_r): Add stream parameter. Emit more information. 8534 (dump_class_hierarchy): Add file parameter. Append to file, if 8535 required. 8536 (finish_vtbls): Adjust accumulate_vtbl_inits call. 8537 Use canonical base for virtual bases. 8538 (build_vtt): Add more comments. Adjust build_vtt_inits call. 8539 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm. 8540 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P, 8541 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for 8542 virtual VTTs. 8543 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P 8544 from DATA. We want virtual primary bases and all bases via virtual. 8545 Only set BINFO_VPTR_INDEX for top level. Look up from a primary 8546 virtual base when not a construction vtable. 8547 (dfs_ctor_vtable_bases_queue_p): New DFS predicate. 8548 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call. 8549 Use canonical bases when processing virtual bases. 8550 (accumulate_vtbl_inits): We're interested in any base via a 8551 virtual path. 8552 (dfs_accumulate_vtbl_inits): If this is a primary virtual base 8553 within a construction vtable, determine what is being overridden. 8554 (build_vtbl_initializer): Add more comments 8555 (add_vcall_offset_vtbl_entries_1): Adjust comment. 8556 (build_rtti_vtbl_entries): Check if the base has lost its 8557 primary. 8558 85592001-02-05 Mark Mitchell <mark@codesourcery.com> 8560 8561 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. 8562 8563Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8564 8565 * decl.c (pushdecl): Call abort instead of fatal. 8566 * except.c (decl_is_java_type): Call fatal_error instead of fatal. 8567 * init.c (build_new_1): Likewise. 8568 (build_java_class_ref): Call internal_error and fatal_error, not fatal. 8569 * decl.c (build_typename_type): hash_table_init now returns void. 8570 decl.c (init_decl_processing): Make an error non-fatal. 8571 85722001-02-04 Mark Mitchell <mark@codesourcery.com> 8573 8574 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting. 8575 Document. 8576 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 8577 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 8578 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 8579 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 8580 * decl.c (maybe_commonize_var): Use the new name-mangling where 8581 appropriate. 8582 * decl2.c (comdat_linkage): Enhance comments. Make all 8583 compiler-generated things static, if COMDAT is not available. 8584 (get_tinfo_decl): Do not make typeinfo objects that belong in the 8585 library COMDAT. 8586 (tinfo_base_init): Use the correct mangled name for typeinfo 8587 strings, and push them into the global scope. 8588 (typeinfo_in_lib_p): New function. 8589 (synthesize_tinfo_var): Use it. 8590 (create_real_tinfo_var): Likewise. 8591 85922001-02-03 Jakub Jelinek <jakub@redhat.com> 8593 8594 * decl.c (push_class_binding): Use context_for_name_lookup instead 8595 of CP_DECL_CONTEXT. 8596 * search.c (context_for_name_lookup): Remove static. Check for NULL 8597 context in the loop. 8598 * cp-tree.h (context_for_name_lookup): Add prototype. 8599 86002001-02-02 Jakub Jelinek <jakub@redhat.com> 8601 8602 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove. 8603 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack): 8604 Remove. 8605 * call.c (convert_class_to_reference, build_user_type_conversion_1, 8606 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper. 8607 86082001-02-02 Mark Mitchell <mark@codesourcery.com> 8609 8610 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list 8611 of macros used when compiling g++spec.c. 8612 * g++spec.c (lang_specific_driver): Link with the shared 8613 libgcc by default. 8614 86152001-01-29 Joseph S. Myers <jsm28@cam.ac.uk> 8616 8617 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator, 8618 make_reference_declarator, make_call_declarator), method.c 8619 (implicitly_declare_fn), parse.y (namespace_using_decl, 8620 notype_unqualified_id, expr_or_declarator, new_type_id, 8621 after_type_declarator, direct_after_type_declarator, 8622 notype_declarator, complex_notype_declarator, 8623 complex_direct_notype_declarator, qualified_id, 8624 notype_qualified_id, overqualified_id, direct_new_declarator, 8625 absdcl, direct_abstract_declarator, conversion_declarator), pt.c 8626 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt 8627 instead of build_parse_node. 8628 86292001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8630 8631 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE. 8632 (minus_one_node): Moved to top level gcc directory. Renamed 8633 to integer_minus_one_node. 8634 8635 * init.c (init_init_processing): Don't set minus_one_node. 8636 (build_vec_init): Use integer_minus_one_node. 8637 8638 * rtti.c (get_tinfo_decl_dynamic): Likewise. 8639 86402001-01-28 Jakub Jelinek <jakub@redhat.com> 8641 8642 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments 8643 identical and they would be replaced with constant, remove 8644 MODIFY_EXPR from the tree. 8645 86462001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8647 8648 * Make-lang.in: Remove all dependencies on defaults.h. 8649 * call.c: Don't include defaults.h. 8650 * decl.c: Likewise. 8651 * decl2.c: Likewise. 8652 * except.c: Likewise. 8653 * pt.c: Likewise. 8654 * rtti.c: Likewise. 8655 * tree.c: Likewise. 8656 * typeck.c: Likewise. 8657 86582001-01-25 Jakub Jelinek <jakub@redhat.com> 8659 8660 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded 8661 operators even in "C" linkage. 8662 * method.c (set_mangled_name_for_decl): Likewise. 8663 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for 8664 overloaded operators in "C" linkage. 8665 86662001-01-24 Nathan Sidwell <nathan@codesourcery.com> 8667 8668 * pt.c (tsubst_decl): Remove IN_DECL parameter. 8669 (tsubst_arg_types): Check parameter is not void. 8670 (tsubst): Adjust tsubst_decl call. 8671 86722001-01-24 Nathan Sidwell <nathan@codesourcery.com> 8673 8674 * call.c (add_builtin_candidate): Quote std properly, from 8675 previous change. 8676 86772001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 8678 8679 * pt.c (check_explicit_specialization): Clone constructors and 8680 destructors. 8681 86822001-01-23 Nathan Sidwell <nathan@codesourcery.com> 8683 8684 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC 8685 indicates anything special about template depth. Make sure we 8686 only count the user visible template classes. 8687 86882001-01-23 Nathan Sidwell <nathan@codesourcery.com> 8689 8690 * call.c (build_conv): Typo in comment. 8691 (add_builtin_candidate): Add more explanation. 8692 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR. 8693 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates 8694 when we have enumeral types. 8695 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE 8696 candidates for relops and eqops. 8697 (joust): Simplify control flow. Allow a non-template user 8698 function to hide a builtin. 8699 87002001-01-22 Nathan Sidwell <nathan@codesourcery.com> 8701 8702 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER. 8703 (more_specialized): Add deduction parameter. 8704 * call.c (joust): Adjust more_specialized call. 8705 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL, 8706 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags. 8707 (get_bindings_order): Remove. 8708 (get_bindings_real): Add DEDUCE parameter. 8709 (maybe_adjust_types_for_deduction): Return extra unify flags. Do 8710 REFERENCE_TYPE jig for DEDUCE_ORDER. 8711 (type_unification_real): Deal with DEDUCE_ORDER. Use result of 8712 maybe_adjust_types_for_deduction. 8713 (more_specialized): Add DEDUCE parameter. Call get_bindings_real 8714 directly. 8715 (try_one_overload): Use result of maybe_adjust_types_for_deduction. 8716 (check_cv_quals_for_unify): Use new unify qualifier flags. 8717 (unify): Clear new unify qualifier flags. 8718 (get_bindings_real): Add DEDUCE parameter. 8719 (get_bindings): Adjust call to get_bindings_real. 8720 (get_bindings_overload): Likewise. 8721 (most_specialized_instantiation): Adjust call to 8722 more_specialized. 8723 87242001-01-19 Jason Merrill <jason@redhat.com> 8725 8726 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI. 8727 8728 * decl.c (init_decl_processing): Just force -fvtable-thunks on if 8729 -fnew-abi. 8730 87312001-01-19 Ute Pelkmann <scope.muc@t-online.de> 8732 8733 * decl2.c (arg_assoc_class): Fix double iteration logic. 8734 87352001-01-19 Jason Merrill <jason@redhat.com> 8736 8737 * init.c (build_delete): Always call convert_force to strip cv-quals. 8738 8739 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI. 8740 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI. 8741 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI. 8742 87432001-01-19 Nathan Sidwell <nathan@codesourcery.com> 8744 8745 * search.c (get_vbase_1): Count only virtual bases. 8746 87472001-01-19 Nathan Sidwell <nathan@codesourcery.com> 8748 8749 * class.c (duplicate_tag_error): Robustify flag clearing. 8750 87512001-01-19 Nathan Sidwell <nathan@codesourcery.com> 8752 8753 * cp-tree.h (lookup_template_class): Add complain parm. 8754 * decl.c (lookup_namespace_name): Adjust call to 8755 lookup_template_class. 8756 (make_typename_type): Likewise. 8757 * semantics.c (finish_template_type): Likewise. 8758 * pt.c (lookup_template_class): Add complain parm. Adjust. 8759 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class. 8760 (tsubst): Likewise. 8761 87622001-01-19 Nathan Sidwell <nathan@codesourcery.com> 8763 8764 * pt.c (copy_default_args_to_explicit_spec): Preserve 8765 object's CV quals. Reorganize. 8766 87672001-01-18 Nathan Sidwell <nathan@codesourcery.com> 8768 8769 * typeck.c (build_modify_expr): Say `initialization' for 8770 INIT_EXPRs. 8771 * init.c (build_default_init): Convert to enumeral type, if 8772 needed. 8773 87742001-01-18 Jakub Jelinek <jakub@redhat.com> 8775 8776 * parse.y (nomods_initdcl0): Properly set things up for 8777 initdcl0_innards. 8778 87792001-01-18 Nathan Sidwell <nathan@codesourcery.com> 8780 8781 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag. 8782 (type_unification_real): Set it. 8783 (unify): Use it. 8784 87852001-01-18 Nathan Sidwell <nathan@codesourcery.com> 8786 8787 * decl.c (finish_destructor_body): Convert to vbase pointer here. 8788 87892001-01-18 Nathan Sidwell <nathan@codesourcery.com> 8790 8791 * semantics.c (begin_class_definition): Check we're not inside a 8792 template parm list. 8793 87942001-01-18 Nathan Sidwell <nathan@codesourcery.com> 8795 8796 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of 8797 BASELINK_P. 8798 87992001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 8800 8801 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. 8802 * call.c (build_over_call): Add comment. 8803 88042001-01-16 Daniel Berlin <dberlin@redhat.com> 8805 8806 * cvt.c (ocp_convert): Handle vector type conversion 8807 * typeck2.c (digest_init): Handle vector type initializations 8808 88092001-01-16 Phil Edwards <pme@sources.redhat.com> 8810 8811 * g++spec.c: Don't add libraries needlessly if -fsyntax-only 8812 was given. 8813 88142001-01-15 Nathan Sidwell <nathan@codesourcery.com> 8815 8816 * pt.c (check_nontype_parm): Rename to ... 8817 (invalid_nontype_parm_type_p): ... here. 8818 (process_template_parm): Adjust. 8819 (convert_template_argument): Adjust. 8820 88212001-01-15 Nathan Sidwell <nathan@codesourcery.com> 8822 8823 * pt.c (check_nontype_parm): New function. 8824 (process_template_parm): Use it. 8825 (convert_template_argument): Use it. 8826 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to 8827 member. 8828 88292001-01-14 Jeffrey Oldham <oldham@codesourcery.com> 8830 8831 * tree.c: Add defaults.h 8832 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. 8833 * Make-lang.in (cp/tree.o): Add defaults.h. 8834 88352001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 8836 8837 * Make-lang.in (CXX_C_OBJS): Add c-format.o. 8838 88392001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 8840 8841 * g++.1: Change to be ".so man1/gcc.1". 8842 88432001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 8844 8845 * Make-lang.in (c++.info, c++.install-info): Build and install g++ 8846 internals info. 8847 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info. 8848 ($(srcdir)/cp/g++int.info): New target. 8849 * gxxint.texi: Add info directory entry. Use @@ in email address. 8850 * .cvsignore: Update. 8851 88522001-01-12 Nathan Sidwell <nathan@codesourcery.com> 8853 8854 * typeck.c (build_c_cast): Do template processing earlier. 8855 Always pedwarn on array casts. 8856 88572001-01-12 Nathan Sidwell <nathan@codesourcery.com> 8858 8859 * friend.c (make_friend_class): Make sure a templated class is 8860 actually a template. 8861 88622001-01-11 Nathan Sidwell <nathan@codesourcery.com> 8863 8864 * decl2.c (get_guard): Set linkage from guarded decl. 8865 88662001-01-11 Nathan Sidwell <nathan@codesourcery.com> 8867 8868 * call.c (convert_default_arg): Check for unprocessed 8869 DEFAULT_ARG. 8870 * cp-tree.h (replace_defarg): Move to spew.c. 8871 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to 8872 spew.c, which is where they really are. 8873 (done_pending_defargs): Declare. 8874 (unprocessed_defarg_fn): Declare. 8875 * decl.c (replace_defarg): Move to spew.c 8876 * parse.y (structsp): Call done_pending_defargs. 8877 * spew.c (defarg_fns): Rearrange list structure. 8878 (defarg_fnsdone): New static variable. 8879 (defarg_depfns): New static variable. 8880 (init_spew): Adjust. 8881 (add_defarg_fn): Store the type in TREE_TYPE. 8882 (do_pending_defargs): Detect and deal with ordering constraints 8883 and circularity. 8884 (done_pending_defargs): New function. 8885 (unprocessed_defarg_fn): New function. 8886 (replace_defarg): Moved from decl.c. Robustify. Don't save 8887 if circularity detected. 8888 88892001-01-11 Nathan Sidwell <nathan@codesourcery.com> 8890 8891 * pt.c (unify): Check array has a domain, before checking 8892 whether it is variable sized. 8893 88942001-01-11 Nathan Sidwell <nathan@codesourcery.com> 8895 8896 * decl.c (grokparms): Unobfuscate and get correct diagnostic for 8897 parameters with pointers to arrays of unknown bound. 8898 88992001-01-11 Nathan Sidwell <nathan@codesourcery.com> 8900 8901 * parse.y (template_parm_header, template_spec_header): New 8902 reductions. Split out from ... 8903 (template_header): ... here. Use them. 8904 (template_template_parm): Use template_parm_header. 8905 * semantics.c (finish_template_template_parm): Add assert. 8906 89072001-01-10 Mark Mitchell <mark@codesourcery.com> 8908 8909 * mangle.c (write_builtin_type): Fix thinko. 8910 8911 * pt.c (copy_default_args_to_explicit_spec_1): New function. 8912 (copy_default_args_to_explicit_spec): Likewise. 8913 (check_explicit_specialization): Use it. 8914 8915 * class.c (finish_struct_1): Remove last argument in call to 8916 make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 8917 * decl.c (builtin_function): Likewise. 8918 (build_cp_library_fn): Likewise. 8919 (check_initializer): Likewise. 8920 (make_rtl_for_nonlocal_decl): Likewise. 8921 (cp_finish_decl): Likewise. 8922 (start_function): Likewise. 8923 * decl2.c (finish_anon_union): Likewise. 8924 * friend.c (do_friend): Likewise. 8925 * init.c (build_java_class_ref): Likewise. 8926 * method.c (make_thunk): Likewise. 8927 * pt.c (tsubst_friend_function): Likewise. 8928 * semantics.c (expand_body): Likewise. 8929 89302001-01-10 Mark Mitchell <mark@codesourcery.com> 8931 8932 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not 8933 looking at DECL_CLONED_FUNCTION for non-functions. 8934 89352001-01-10 Nathan Sidwell <nathan@codesourcery.com> 8936 8937 * error.c (dump_template_parameter): Use parm to determine how 8938 to print default value. 8939 89402001-01-10 Nathan Sidwell <nathan@codesourcery.com> 8941 8942 * class.c (duplicate_tag_error): Clear more flags. 8943 89442001-01-10 Nathan Sidwell <nathan@codesourcery.com> 8945 8946 * call.c (build_new_method_call): Use binfo_for_vbase. 8947 89482001-01-10 Joseph S. Myers <jsm28@cam.ac.uk> 8949 8950 * cp-tree.h (flag_cond_mismatch): Don't declare. 8951 * decl2.c (flag_cond_mismatch): Don't define. 8952 (lang_f_options): Remove cond-mismatch. 8953 (unsupported_options): Add cond-mismatch. 8954 89552001-01-09 Nathan Sidwell <nathan@codesourcery.com> 8956 8957 * class.c (handle_using_decl): Reject using of constructor name 8958 of sourcing class. Allow injecting of a method with same name as 8959 nested class. Fixup error messages. 8960 89612001-01-09 Joseph S. Myers <jsm28@cam.ac.uk> 8962 8963 * decl2.c (lang_decode_option): Handle -Wformat=2. 8964 89652001-01-08 Nathan Sidwell <nathan@codesourcery.com> 8966 8967 * cp-tree.h (lang_decl_flags): Rename defined_in_class to 8968 initialized_in_class. 8969 (DECL_DEFINED_IN_CLASS_P): Rename to ... 8970 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning. 8971 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P. 8972 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P. 8973 * pt.c (check_default_tmpl_args): Adjust for 8974 DECL_INITIALIZED_IN_CLASS_P. 8975 (instantiate_class_template): Likewise. 8976 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P. 8977 8978 * class.c (finish_struct): Constify saved_filename. 8979 89802001-01-08 Nathan Sidwell <nathan@codesourcery.com> 8981 8982 * class.c (duplicate_tag_error): Adjust diagnostic. 8983 (finish_struct): Locally set location to start of struct. 8984 * decl.c (fixup_anonymous_aggr): Use cp_error_at. 8985 89862001-01-08 Nathan Sidwell <nathan@codesourcery.com> 8987 8988 * decl.c (struct binding_level): Adjust class_shadowed comments 8989 to reflect reality. 8990 (push_class_level_binding): Adjust comments to reflect reality. 8991 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. 8992 Don't set TREE_VALUE on the class_shadowed list. 8993 89942001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 8995 8996 * decl2.c (acceptable_java_type): Allow references too. 8997 * init.c (build_java_class_ref): When using the new ABI, search 8998 `class$' and have it mangled with `mangle_decl.' 8999 * mangle.c (write_java_integer_type_codes): New function. 9000 (write_builtin_type): Detect and mangle Java integer and real 9001 types. 9002 90032001-01-07 Mark Mitchell <mark@codesourcery.com> 9004 9005 * decl2.c (grokfield): Don't accept `asm' specifiers for 9006 non-static data members. 9007 90082001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9009 9010 * expr.c (cplus_expand_expr): Don't reset `target'. 9011 90122001-01-07 Neil Booth <neil@daikokuya.demon.co.uk> 9013 9014 * cp/decl2.c (cxx_post_options): Call cpp_post_options. 9015 90162001-01-05 Nathan Sidwell <nathan@codesourcery.com> 9017 9018 * parse.y (template_datadef): Check for error_mark_node. 9019 90202001-01-05 Nathan Sidwell <nathan@codesourcery.com> 9021 9022 * cp-tree.def (DEFAULT_ARG): Make `x' class. 9023 90242001-01-04 Joseph S. Myers <jsm28@cam.ac.uk> 9025 9026 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define. 9027 (record_builtin_type): Make non-static. 9028 (flag_short_double): Don't declare. 9029 (init_decl_processing): Remove the creation of many tree nodes now 9030 in c_common_nodes_and_builtins. 9031 (build_void_list_node): New function. 9032 * decl2.c (flag_short_double, flag_short_wchar): Don't define. 9033 * cp-tree.h (flag_short_wchar): Don't declare. 9034 90352001-01-04 Mark Mitchell <mark@codesourcery.com> 9036 9037 * call.c (build_conv): Don't use build1 for USER_CONV. 9038 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. 9039 90402001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 9041 9042 * lex.c (lang_init): Call c_common_lang_init. 9043 90442001-01-03 Nathan Sidwell <nathan@codesourcery.com> 9045 9046 * search.c (lookup_fnfields_here): Remove. 9047 (look_for_overrides_r): Use lookup_fnfields_1. 9048 Ignore functions from using declarations. 9049 90502001-01-03 Nathan Sidwell <nathan@codesourcery.com> 9051 9052 Implement exceptions specifiers for implicit member functions. 9053 * cp-tree.h (merge_exceptions_specifiers): Declare new function. 9054 * method.c (synthesize_exception_spec): New function. 9055 (locate_dtor, locate_ctor, locate_copy): New functions. 9056 (implicitly_declare_fn): Generate the exception spec too. 9057 * search.c (check_final_overrider): Check artificial functions 9058 too. 9059 * typeck2.c (merge_exception_specifiers): New function. 9060 90612001-01-03 Jason Merrill <jason@redhat.com> 9062 9063 * init.c (build_default_init): New fn. 9064 (perform_member_init): Split out from here. 9065 (build_new_1): Use it. Simplify initialization logic. 9066 (build_vec_init): Take an array, rather than a pointer and maxindex. 9067 Speed up simple initializations. Don't clean up if we're assigning. 9068 * cp-tree.h: Adjust. 9069 * decl2.c (do_static_initialization): Remove TREE_VEC case. 9070 * parse.y (new_initializer): Return void_zero_node for (). 9071 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR. 9072 * typeck2.c (digest_init): Only complain about user-written 9073 CONSTRUCTORs. 9074 90752000-12-22 Mike Stump <mrs@wrs.com> 9076 9077 * decl2.c: (max_tinst_depth): Increase to 50. 9078 90792001-01-02 Mark Mitchell <mark@codesourcery.com> 9080 9081 * class.c (invalidate_class_lookup_cache): Zero the 9082 previous_class_values. 9083 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not 9084 TREE_INT_CST_HIGH. 9085 (CLASSTYPE_TEMPLATE_LEVEL): Likewise. 9086 * decl.c (free_bindings): New variable. 9087 (push_binding): Don't create a new binding if we have one on the 9088 free list. 9089 (pop_binding): Put old bindings on the free list. 9090 (init_decl_processing): Use size_int, not build_int_2. 9091 Register free_bindings as a GC root. 9092 (cp_make_fname_decl): Use size_int, not build_int_2. 9093 (push_inline_template_parms_recursive): Likewise. 9094 (end_template_parm_list): Likewise. 9095 (for_each_template_parm): Do not use walk_tree_without_duplicates. 9096 (tsubst_template_parms): Use size_int, not build_int_2. 9097 (tsubst): Likewise. 9098 * rtti.c (get_vmi_pseudo_type_info): Likewise. 9099 91002001-01-02 Richard Henderson <rth@redhat.com> 9101 9102 * parse.y (asm): Set ASM_INPUT_P. 9103 91042001-01-02 Jason Merrill <jason@redhat.com> 9105 9106 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE 9107 for v3 ABI. 9108 9109 * typeck.c (cp_truthvalue_conversion): New fn. 9110 * cvt.c (ocp_convert): Use it. 9111 9112 * cp-tree.h: Lose c-common.c decls. 9113 9114 * typeck.c (build_unary_op): Restore old &a.f diagnostic code. 9115 * cvt.c (convert_to_void): Use type_unknown_p. 9116 9117 * typeck.c (strip_all_pointer_quals): Also strip quals from 9118 pointer-to-member types. 9119 9120 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat 9121 parse.y as C. 9122 9123 * call.c (build_new_method_call): Do evaluate the object parameter 9124 when accessing a static member. 9125 * typeck.c (build_component_ref): Likewise. 9126 91272001-01-02 Andreas Jaeger <aj@suse.de> 9128 9129 * decl.c (cp_missing_noreturn_ok_p): New. 9130 (init_decl_processing): Set lang_missing_noreturn_ok_p. 9131 91322000-12-29 Jakub Jelinek <jakub@redhat.com> 9133 9134 * decl.c (init_decl_processing): Fix sign of wchar_type_node. 9135 91362000-12-29 Mark Mitchell <mark@codesourcery.com> 9137 9138 * class.c (pushclass): Remove #if 0'd code. 9139 * cp-tree.h (overload_template_name): Remove. 9140 * decl.c (store_bindings): Simplify. 9141 (pop_from_top_level): Likewise. 9142 * pt.c (overload_template_name): Remove. 9143 (instantiate_decl): Don't call push_to_top_level if it's not 9144 needed. 9145 91462000-12-28 Mark Mitchell <mark@codesourcery.com> 9147 9148 * pt.c (register_local_specialization): Don't return a value. 9149 (lookup_template_class): Use move-to-front heuristic when looking 9150 up template instantiations. 9151 (instantiate_decl): Only push_to_top_level when we're actually 9152 going to instantiate the template. 9153 91542000-12-29 Hans-Peter Nilsson <hp@bitrange.com> 9155 9156 * search.c (binfo_for_vtable): Return least derived class, not 9157 most. Handle secondary vtables. 9158 91592000-12-22 Jason Merrill <jason@redhat.com> 9160 9161 * pt.c (more_specialized): Don't optimize len==0. 9162 (fn_type_unification): If we're adding the return type, increase len. 9163 9164 * typeck.c (build_binary_op): Fix pmf comparison logic. 9165 9166 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not 9167 DECL_STATIC_FUNCTION_P. 9168 9169 * semantics.c (genrtl_finish_function): Don't try to jump to 9170 return_label unless it exists. 9171 9172 In partial ordering for a call, ignore parms for which we don't have 9173 a real argument. 9174 * call.c (joust): Pass len to more_specialized. 9175 (add_template_candidate_real): Strip 'this', pass len. 9176 * pt.c (more_specialized): Pass len down. Lose explicit_args parm. 9177 (get_bindings_order): New fn. Pass len down. 9178 (get_bindings_real): Strip 'this', pass len. 9179 (fn_type_unification): Likewise. 9180 (type_unification_real): Succeed after checking 'len' args. 9181 (most_specialized_instantiation): Lose explicit_args parm. 9182 * class.c (resolve_address_of_overloaded_function): Strip 'this', 9183 pass len. 9184 91852000-12-21 Jason Merrill <jason@redhat.com> 9186 9187 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not 9188 DECL_TEMPLATE_RESULT. 9189 9190 * search.c (lookup_field_r): Call lookup_fnfields_1, not 9191 lookup_fnfields_here. 9192 9193 * parse.y (typename_sub2): Return the TYPE_DECL, not the type. 9194 9195 * call.c (build_object_call): Also allow conversions that return 9196 reference to pointer to function. 9197 (add_conv_candidate): Handle totype being ref to ptr to fn. 9198 (build_field_call): Also allow members of type reference to function. 9199 Lose support for calling pointer to METHOD_TYPE fields. 9200 9201 * error.c (dump_expr): Handle *_CAST_EXPR. 9202 9203 * typeck2.c (build_scoped_ref): Always convert to the naming class. 9204 9205 * tree.c (break_out_cleanups): Lose. 9206 * cp-tree.h: Remove prototype. 9207 * typeck.c (build_component_ref): Don't break_out_cleanups. 9208 (build_compound_expr): Likewise. 9209 * semantics.c (finish_expr_stmt): Likewise. 9210 92112000-12-20 Richard Henderson <rth@redhat.com> 9212 9213 * cp-tree.h: Update declarations. 9214 * decl.c (finish_case_label): Return the new stmt node. 9215 * semantics.c (finish_goto_stmt): Likewise. 9216 (finish_expr_stmt, finish_return_stmt): Likewise. 9217 (finish_break_stmt, finish_continue_stmt): Likewise. 9218 (finish_asm_stmt): Likewise. 9219 * parse.y (already_scoped_stmt): Set STMT_LINENO. 9220 (compstmt, implicitly_scoped_stmt, stmt): Likewise. 9221 (simple_if, simple_stmt): Return the new stmt node. 9222 (save_lineno): New. 9223 92242000-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 9225 9226 * cp-tree.h: Don't declare warn_long_long. 9227 92282000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9229 9230 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of 9231 IS_AGGR_TYPE. 9232 92332000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9234 9235 * pt.c (unify): Handle when both ARG and PARM are 9236 BOUND_TEMPLATE_TEMPLATE_PARM. 9237 92382000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9239 9240 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and 9241 DECL_TEMPLATE_PARM_P. 9242 92432000-12-15 Jason Merrill <jason@redhat.com> 9244 9245 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs! 9246 9247 * init.c (build_new_1): Don't strip quals from type. 9248 9249 * decl.c (pushdecl): Don't check for linkage on a non-decl. 9250 9251 * call.c (build_op_delete_call): See through ARRAY_TYPEs. 9252 9253 * call.c (build_new_function_call): Lose space before paren in 9254 error message. 9255 (build_new_method_call): Likewise. 9256 9257 * typeck2.c (build_m_component_ref): Propagate quals from datum. 9258 92592000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9260 9261 * pt.c (check_explicit_specialization): Propagate default 9262 function arguments to explicit specializations. 9263 92642000-12-13 DJ Delorie <dj@redhat.com> 9265 9266 * typeck.c (build_binary_op): Do signed/unsigned warnings for >? 9267 and <? operators. 9268 92692000-12-08 Jason Merrill <jason@redhat.com> 9270 9271 * error.c (dump_function_name): Don't let the user see __comp_ctor. 9272 9273 Clean up copy-initialization in overloading code. 9274 * call.c (build_user_type_conversion_1): Die if we are asked to 9275 convert to the same or a base type. 9276 (implicit_conversion): Avoid doing so. Lose reference binding code. 9277 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit 9278 direct-initialization. Also do direct-init part of copy-init. 9279 (build_user_type_conversion): Don't provide context to convert_like. 9280 * cvt.c (ocp_convert): build_user_type_conversion will now provide 9281 the constructor call for copy-init. 9282 9283 * pt.c (tsubst_decl): Call clone_function_decl here if this is an 9284 instantiation of a member template. 9285 (do_decl_instantiation): Not here. 9286 92872000-12-07 Nathan Sidwell <nathan@codesourcery.com> 9288 9289 * class.c (check_field_decls): Don't special case anonymous 9290 fields in error messages. 9291 (note_name_declared_in_class): Use %D on diagnostic. 9292 9293 * tree.c (pod_type_p): Use strip_array_types. 9294 (cp_valid_lang_attribute): Likewise. 9295 * typeck.c (cp_type_quals): Strip arrays separately, to avoid 9296 multiple evaluations. 9297 (cp_has_mutable_p): Use strip_array_types. 9298 92992000-12-07 Nathan Sidwell <nathan@codesourcery.com> 9300 9301 * cp-tree.h (sufficient_parms_p): Declare new function. 9302 * call.c (sufficient_parms_p): New function, broken out of ... 9303 (add_function_candidate): ... here. Use it. 9304 (add_conv_candidate): Use it. 9305 * decl.c (grok_ctor_properties): Use it. 9306 93072000-12-07 Jakub Jelinek <jakub@redhat.com> 9308 9309 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT. 9310 93112000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> 9312 9313 * decl2.c (lang_decode_option): Handle -Wformat-security. 9314 93152000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9316 9317 * pt.c (verify_class_unification): New function. 9318 (get_class_bindings): Use it. 9319 (try_class_unification): Tidy. 9320 (unify): Handle when argument of a template-id is not 9321 template parameter dependent. 9322 (template_args_equal): Handle when TREE_CODE's do not match. 9323 93242000-12-06 Alexandre Oliva <aoliva@redhat.com> 9325 9326 * lang-specs.h (c++): When invoking the stand-alone preprocessor 9327 for -save-temps, pass all relevant -Defines to it, and then don't 9328 pass them to cc1plus. 9329 93302000-12-05 Will Cohen <wcohen@redhat.com> 9331 9332 * decl.c (finish_case_label): Cleared 9333 more_cleanups_ok in surrounding function scopes. 9334 (define_label): Likewise. 9335 93362000-12-05 Nathan Sidwell <nathan@codesourcery.com> 9337 9338 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document. 9339 (get_matching_virtual): Remove. 9340 (look_for_overrides): Declare new function. 9341 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or 9342 DECL_VINDEX here. 9343 * class.c (check_for_override): Move base class iteration code 9344 to look_for_overrides. 9345 * search.c (next_baselink): Remove. 9346 (get_virtuals_named_this): Remove. 9347 (get_virtual_destructor): Remove. 9348 (tree_has_any_destructors_p): Remove. 9349 (struct gvnt_info): Remove. 9350 (check_final_overrider): Remove `virtual' from error messages. 9351 (get_matching_virtuals): Remove. Move functionality to ... 9352 (look_for_overrides): ... here, and ... 9353 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found 9354 to be overriding. 9355 93562000-12-05 Nathan Sidwell <nathan@codesourcery.com> 9357 9358 * typeck.c (get_delta_difference): If via a virtual base, 9359 return zero. 9360 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no 9361 adjustment. 9362 93632000-12-04 Richard Henderson <rth@redhat.com> 9364 9365 * error.c (dump_tree): Use output_add_string not OB_PUTS. 9366 93672000-12-04 Jason Merrill <jason@redhat.com> 9368 9369 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". 9370 (write_builtin_type): Pass intSI_type_node and the like through 9371 type_for_mode. 9372 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. 9373 Pass intSI_type_node and the like through type_for_mode. 9374 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. 9375 * pt.c (tsubst, unify): Likewise. 9376 * tree.c (walk_tree): Likewise. 9377 * error.c (dump_type): Likewise. 9378 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. 9379 9380 * Make-lang.in: Tweak top comment for emacs. 9381 (cp/TAGS): Restore. 9382 9383 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. 9384 9385 * class.c (clone_function_decl): Robustify. 9386 93872000-12-04 Michael Matz <matzmich@cs.tu-berlin.de> 9388 9389 * decl.c (store_bindings): Only search in the non modified 9390 old_bindings for duplicates. 9391 93922000-12-04 Nathan Sidwell <nathan@codesourcery.com> 9393 9394 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not 9395 TYPE_POLYMORPHIC_P. 9396 9397 * typeck.c (build_static_cast): Remove unused variable. 9398 93992000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 9400 9401 * pt.c: Fix typo in comment. 9402 94032000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 9404 9405 * decl2.c (warn_format): Remove definition. 9406 (lang_decode_option): Handle -Wformat-nonliteral, 9407 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat. 9408 94092000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 9410 9411 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. 9412 (init_decl_processing): Don't create string_type_node, 9413 const_string_type_node, wint_type_node, intmax_type_node, 9414 uintmax_type_node, default_function_type, ptrdiff_type_node and 9415 unsigned_ptrdiff_type_node. Adjust position of call to 9416 c_common_nodes_and_builtins. 9417 (identifier_global_value): New function. 9418 94192000-12-01 Nathan Sidwell <nathan@codesourcery.com> 9420 9421 * call.c (standard_conversion): Reject pointer to member 9422 conversions from ambiguous, inaccessible or virtual bases. 9423 * typeck.c (build_static_cast): Don't check pointers to members 9424 specially. 9425 94262000-11-30 Nathan Sidwell <nathan@codesourcery.com> 9427 9428 * method.c (do_build_copy_constructor): Preserve cv 9429 qualifications when accessing source object members. 9430 (do_build_assign_ref): Likewise. Remove separate diagnostics for 9431 unnamed fields. 9432 94332000-11-30 Nathan Sidwell <nathan@codesourcery.com> 9434 9435 * method.c (do_build_assign_ref): Construct appropriately 9436 CV-qualified base reference. Don't allow const casts in base 9437 conversion. 9438 94392000-11-30 Nathan Sidwell <nathan@codesourcery.com> 9440 9441 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on 9442 incomplete return type. 9443 94442000-11-28 Nathan Sidwell <nathan@codesourcery.com> 9445 9446 * parse.y (base_class.1): Produce a _TYPE not a _DECL. 9447 * semantics.c (finish_base_specifier): Accept a _TYPE not a 9448 _DECL. 9449 94502000-11-28 Nathan Sidwell <nathan@codesourcery.com> 9451 9452 * spew.c (yyerror): Cope if yylval.ttype is NULL. 9453 94542000-11-28 Nathan Sidwell <nathan@codesourcery.com> 9455 9456 * decl.c (grokdeclarator): Diagnose undefined template contexts. 9457 94582000-11-28 Nathan Sidwell <nathan@codesourcery.com> 9459 9460 * decl.c (grokdeclarator): Do type access control on friend 9461 class. 9462 94632000-11-27 Nathan Sidwell <nathan@codesourcery.com> 9464 9465 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by 9466 bison parser ickiness. 9467 * pt.c (tsubst_friend_function): Enter namespace scope when 9468 tsubsting the function name. 9469 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality. 9470 94712000-11-27 Nathan Sidwell <nathan@codesourcery.com> 9472 9473 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo. 9474 * cvt.c (cp_convert_to_pointer): Add force parameter. 9475 Allow conversions via virtual base if forced. 9476 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer. 9477 (ocp_convert): Likewise. 9478 * search.c (binfo_from_vbase): Return the virtual base's binfo. 9479 * typeck.c (get_delta_difference): Adjust handling of virtual 9480 bases. 9481 94822000-11-26 Mark Mitchell <mark@codesourcery.com> 9483 9484 * tree.c (struct list_hash): Remove. 9485 (list_hash_table): Make it be an htab. 9486 (struct list_proxy): New type. 9487 (list_hash_eq): New function. 9488 (list_hash_pieces): Renamed from ... 9489 (list_hash): ... this. 9490 (list_hash_lookup): Remove. 9491 (list_hash_add): Remove. 9492 (hash_tree_cons): Use the generic hashtable. 9493 (mark_list_hash): Remove. 9494 (init_tree): Create the hashtable. 9495 94962000-11-25 Joseph S. Myers <jsm28@cam.ac.uk> 9497 9498 * method.c (build_mangled_C9x_name): Rename to 9499 build_mangled_C99_name. Change C9X references in comments to 9500 refer to C99. 9501 95022000-11-24 Nathan Sidwell <nathan@codesourcery.com> 9503 9504 * parse.y (unary_expr): Move VA_ARG from here ... 9505 (primary): ... to here. 9506 95072000-11-24 Nathan Sidwell <nathan@codesourcery.com> 9508 9509 * semantics.c (finish_id_expr): If type is error_mark, return 9510 error_mark. 9511 95122000-11-23 Nathan Sidwell <nathan@codesourcery.com> 9513 9514 * pt.c (lookup_template_class): Simplify loop exit constructs. 9515 Cope when there is no partial instantiation of a template 9516 template member. 9517 9518Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com> 9519 9520 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H). 9521 95222000-11-22 Mark Mitchell <mark@codesourcery.com> 9523 9524 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op' 9525 prefix. 9526 9527 * pt.c (do_decl_instantiate): Explicitly clone constructors and 9528 destructors that haven't already been cloned. 9529 95302000-11-20 Richard Henderson <rth@redhat.com> 9531 9532 * parse.y (yyparse_1): Rename the parser entry point. 9533 95342000-11-20 Alex Samuel <samuel@codesourcery.com> 9535 9536 * mangle.c (write_name): Use <unscoped-name> for names directly in 9537 function scope. 9538 (write_unscoped_name): Accept names directly in function scope. 9539 95402000-11-20 Nathan Sidwell <nathan@codesourcery.com> 9541 9542 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword. 9543 * parse.y (extdef): Add EXPORT reduction. 9544 * spew.c (yylex): Don't skip export here. 9545 95462000-11-19 Mark Mitchell <mark@codesourcery.com> 9547 9548 * decl.c (init_decl_processing): Correct name of pure virtual 9549 function under the new ABI. 9550 * rtti.c (throw_bad_cast): Likewise, for bad cast function. 9551 (throw_bad_typeid): Likewise for bad typeid function. 9552 95532000-11-18 Mark Mitchell <mark@codesourcery.com> 9554 9555 * decl.c (grokparms): Don't even function types of `void' type, 9556 either. 9557 * mangle.c (write_type): Don't crash when confronted with the 9558 error_mark_node. 9559 9560 * decl.c (grokparms): Don't create parameters of `void' type. 9561 95622000-11-17 Zack Weinberg <zack@wolery.stanford.edu> 9563 9564 * lex.c (mark_impl_file_chain): Delete. 9565 (init_parse): Remove call to ggc_add_string_root. No need to 9566 ggc_strdup a string constant. Do not add impl_file_chain to GC 9567 roots. 9568 (handle_pragma_implementation): No need to ggc_strdup main_filename. 9569 95702000-11-17 Nathan Sidwell <nathan@codesourcery.com> 9571 9572 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type. 9573 95742000-11-17 Nathan Sidwell <nathan@codesourcery.com> 9575 9576 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro. 9577 * decl.c (grokdeclarator): Don't reject void parms here. 9578 (require_complete_types_for_parms): Simplify, use 9579 complete_type_or_else. 9580 (grokparms): Remove bitrot. Remove funcdef parm. 9581 Deal with ellipsis parm lists here. 9582 * semantics.c (finish_parmlist): Don't append void_list_node 9583 here. Set PARMLIST_ELLIPSIS_P. 9584 95852000-11-17 Nathan Sidwell <nathan@codesourcery.com> 9586 9587 * typeck2.c (incomplete_type_error): Reorganize to avoid 9588 excessive diagnostics. 9589 95902000-11-16 Zack Weinberg <zack@wolery.stanford.edu> 9591 9592 * lex.c (struct impl_files, internal_filename): Constify a char *. 9593 95942000-11-16 Mark Mitchell <mark@codesourcery.com> 9595 9596 * mangle.c (write_special_name_constructor): Don't generate 9597 assembler junk when confronted with an old-style constructor. 9598 (write_special_name_destructor): Likewise. 9599 (mangle_decl_string): Do it here instead. 9600 96012000-11-16 Nathan Sidwell <nathan@codesourcery.com> 9602 9603 * call.c (op_error): Make error messages clearer. 9604 96052000-11-15 Mark Mitchell <mark@codesourcery.com> 9606 9607 * decl.c (wrapup_globals_for_namespace): Don't mark things 9608 TREE_ASM_WRITTEN when they're not. 9609 96102000-11-15 Jason Merrill <jason@redhat.com> 9611 9612 * typeck2.c (friendly_abort): Uncount the error before handing 9613 off to fancy_abort. 9614 96152000-11-15 Nathan Sidwell <nathan@codesourcery.com> 9616 9617 * typeck.c (lookup_anon_field): Cope with qv qualifiers. 9618 96192000-11-14 Mark Mitchell <mark@codesourcery.com> 9620 9621 * class.c (build_vtbl_initializer): Fix typo in comment. 9622 * typeck.c (expr_sizeof): Don't crash on errors. 9623 96242000-11-14 Jim Wilson <wilson@redhat.com> 9625 9626 * lang-specs.h: Add %2 after %(cc1_options). 9627 96282000-11-14 Richard Henderson <rth@redhat.com> 9629 9630 * typeck.c (c_sizeof): Be strict about casting result value 9631 back to c_size_type_node. 9632 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise. 9633 96342000-11-13 Joseph S. Myers <jsm28@cam.ac.uk> 9635 9636 * typeck.c (build_unary_op): Use boolean_increment from 9637 c-common.c, moving the relevant code there. 9638 96392000-11-11 Jason Merrill <jason@redhat.com> 9640 9641 * typeck.c (mark_addressable): Don't call put_var_into_stack. 9642 9643 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics 9644 in inlines. 9645 96462000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9647 9648 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy. 9649 * lex.c (copy_lang_decl): Likewise. 9650 96512000-11-09 Mark Mitchell <mark@codesourcery.com> 9652 9653 * dump.c (cp_dump_tree): Don't dump function bodies here. 9654 9655 * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 9656 (dump.o): Update dependency list. 9657 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove. 9658 (flag_dump_translation_unit): Likewise. 9659 (CP_TYPE_QUALS): Adjust definition. 9660 (DECL_C_BIT_FIELD): Remove. 9661 (SET_DECL_C_BIT_FIELD): Likewise. 9662 (CLEAR_DECL_C_BIT_FIELD): Likewise. 9663 (add_maybe_template): Likewise. 9664 (strip_array_types): Likewise. 9665 (dump_node_to_file): Likewise. 9666 (cp_dump_tree): New function. 9667 * decl.c (init_decl_processing): Set lang_dump_tree. 9668 * decl2.c (flag_dump_translation_unit): Remove. 9669 * dump.c: Move most of it to ../c-dump.c. 9670 (cp_dump_tree): New function. 9671 * pt.c (add_maybe_template): Remove. 9672 * typeck.c (strip_array_types): Likewise. 9673 96742000-11-07 Eric Christopher <echristo@redhat.com> 9675 9676 * decl.c (init_decl_processing): Change definition of 9677 __wchar_t to wchar_t. Remove artificial declaration of 9678 wchar_t. 9679 * lex.c: Change instances of __wchar_t to wchar_t. 9680 96812000-11-09 Nathan Sidwell <nathan@codesourcery.com> 9682 9683 * lex.c (do_identifier): Don't lookup_name for operators. 9684 * parse.y (operator): Save looking_for_typename. 9685 (unoperator): Restore it. 9686 * spew.c (frob_opname): Use nth_token for lookahead. 9687 96882000-11-08 Nathan Sidwell <nathan@codesourcery.com> 9689 9690 * decl.c (grok_op_properties): Always use coerce_new_type and 9691 coerce_delete_type. 9692 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve 9693 exception specification. Tidy up. 9694 (coerce_delete_type): Preserve exception specification. Tidy up. 9695 96962000-11-07 Joseph S. Myers <jsm28@cam.ac.uk> 9697 9698 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c 9699 (push_binding_level), error.c (cp_tree_printer), pt.c 9700 (process_partial_specialization, tsubst_template_arg_vector), 9701 search.c (lookup_member): Use memset () instead of bzero (). 9702 97032000-11-07 Nathan Sidwell <nathan@codesourcery.com> 9704 9705 * decl.c (build_ptrmemfunc_type): Allow error_mark_node. 9706 97072000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> 9708 9709 * Make-lang.in (c++.distdir): Remove. 9710 97112000-11-04 Mark Mitchell <mark@codesourcery.com> 9712 9713 * decl2.c (do_nonmember_using_decl): Allow `extern "C"' 9714 declarations from different namespaces to be combined. 9715 97162000-11-03 Zack Weinberg <zack@wolery.stanford.edu> 9717 9718 * decl.c: Include tm_p.h. 9719 97202000-11-03 Joseph S. Myers <jsm28@cam.ac.uk> 9721 9722 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp (). 9723 97242000-11-02 Joseph S. Myers <jsm28@cam.ac.uk> 9725 9726 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c 9727 (build_overload_value), repo.c (open_repo_file), xref.c 9728 (open_xref_file): Use strchr () and strrchr () instead of index () 9729 and rindex (). 9730 97312000-11-01 Bernd Schmidt <bernds@redhat.co.uk> 9732 9733 * call.c (build_over_call): Call fold on the CALL_EXPR. 9734 97352000-11-01 Gabriel Dos Reis <gdr@codesourcery.com> 9736 9737 * error.c (dump_template_decl): Separate template hearders with 9738 space not comma. 9739 97402000-10-31 Gabriel Dos Reis <gdr@codesourcery.com> 9741 9742 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace 9743 TS_* flags with corresponding TFF_*. Adjust prototypes of 9744 functions (which used to take a tree_string_flags) to take an int. 9745 9746 * cp-tree.h (enum tree_string_flags): Remove 9747 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, 9748 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS, 9749 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 9750 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 9751 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, 9752 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros. 9753 (type_as_string, decl_as_string, expr_as_string, 9754 context_as_string): Adjust prototype. 9755 9756 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER 9757 instead of TS_PLAIN. 9758 9759 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF 9760 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of 9761 plain `0'. 9762 97632000-10-30 Mark Mitchell <mark@codesourcery.com> 9764 9765 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro. 9766 (linkage_kind): New enumeration. 9767 (decl_linkage): New function. 9768 * decl2.c (comdat_linkage): Extend comment. 9769 * error.c (dump_function_decl): Print the arguments used to 9770 instantiate a template, even when not printing the type of the 9771 function. 9772 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P, 9773 not TREE_PUBLIC, to test for external linkage. 9774 * tree.c (decl_linkage): New function. 9775 97762000-10-28 Mark Mitchell <mark@codesourcery.com> 9777 9778 * pt.c (instantiate_decl): Always instantiate static data members 9779 initialized in-class. 9780 97812000-10-27 Zack Weinberg <zack@wolery.stanford.edu> 9782 9783 * Make-lang.in: Move all build rules here from Makefile.in, 9784 adapt to new context. Wrap all rules that change the current 9785 directory in parentheses. Expunge all references to $(P). 9786 When one command depends on another and they're run all at 9787 once, use && to separate them, not ;. Add OUTPUT_OPTION to 9788 all object-file generation rules. Delete obsolete variables. 9789 9790 * Makefile.in: Delete. 9791 * config-lang.in: Delete outputs= line. 9792 97932000-10-26 Gabriel Dos Reis <gdr@codesourcery.com> 9794 9795 * error.c (dump_function_decl): Print no space between 9796 `ptr-operator' the `type-specifier' of the return type. 9797 (dump_type_prefix): Make sure we put space at the appropriate 9798 place. 9799 98002000-10-23 Jason Merrill <jason@redhat.com> 9801 9802 * call.c (equal_functions): Also call decls_match for extern "C" fns. 9803 98042000-10-22 Jason Merrill <jason@redhat.com> 9805 9806 * call.c (build_conditional_expr): Use ocp_convert to force 9807 rvalue conversion. 9808 98092000-10-22 Mark Mitchell <mark@codesourcery.com> 9810 9811 * call.c (standard_conversion): Use RVALUE_CONVs for all 9812 expressions that satisfy lvalue_p, not just those that satisfy 9813 real_lvalue_p. 9814 9815 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially. 9816 9817 * typeck.c (c_sizeof): Return an expression of `size_t' type, 9818 not one with TYPE_IS_SIZETYPE set. 9819 (dubious_conversion_warnings): Remove special-case code. 9820 98212000-10-21 Geoffrey Keating <geoffk@cygnus.com> 9822 9823 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE. 9824 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE. 9825 (dump_type_prefix): Print vector-of-int as 'int vector'. 9826 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE. 9827 * tree.c (walk_tree): Handle VECTOR_TYPE. 9828 9829 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS. 9830 98312000-10-21 Jason Merrill <jason@redhat.com> 9832 9833 * parse.y (operator): Set got_object from got_scope. 9834 Set looking_for_typename. 9835 * decl.c (lookup_name_real): Clear val after setting from_obj. 9836 Reorganize diagnostic. 9837 98382000-10-20 Jason Merrill <jason@redhat.com> 9839 9840 * tree.c (walk_tree): Don't walk into default args. 9841 9842 * error.c (dump_expr): Use host_integerp. 9843 98442000-10-20 David Edelsohn <edelsohn@gnu.org> 9845 9846 * typeck2.c (abstract_virtuals_error): Use "because" instead of 9847 "since" in error message. 9848 9849Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9850 9851 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE. 9852 98532000-10-20 Jeffrey Oldham <oldham@codesourcery.com> 9854 9855 * decl.c (revert_static_member_fn): Fixed typo. 9856 98572000-10-19 Mark Mitchell <mark@codesourcery.com> 9858 9859 * class.c (subobject_offset_fn): New type. 9860 (dfs_record_base_offsets): Remove. 9861 (record_base_offsets): Likewise. 9862 (dfs_search_base_offsets): Likewise. 9863 (record_subobject_offset): New function. 9864 (check_subobject_offset): Likewise. 9865 (walk_subobject_offsets): Likewise. 9866 (record_subobject_offsets): Likewise. 9867 (layout_conflict_p): Reimplement. 9868 (layout_nonempty_base_or_field): Correct handling of type 9869 conflicts during layout. 9870 (layout_empty_base): Likewise. 9871 (build_base_field): Adjust to handle new representation of empty 9872 base offset table. 9873 (build_base_fields): Likewise. 9874 (layout_virtual_bases): Likewise. 9875 (splay_tree_compare_integer_csts): New function. 9876 (layout_class_type): Use a splay_tree, rather than a varray, to 9877 represent the offsets of empty bases. 9878 9879 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL. 9880 * decl.c (select_decl): Don't return declarations that are 9881 DECL_ANTICIPATED. 9882 98832000-10-18 Mark Mitchell <mark@codesourcery.com> 9884 9885 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD. 9886 (fake_std_node): New macro. 9887 * decl.c (in_std): Rename to ... 9888 (in_fake_std): ... this. 9889 (flag_no_builtin): Remove. 9890 (flag_no_nonansi_builtin): Likewise. 9891 (walk_namespaces_r): Use fake_std_node. 9892 (push_namespace): Use std_identifier. 9893 (pop_namespace): Use in_fake_std. 9894 (lookup_name_real): Use fake_std_node. 9895 (init_decl_processing): When -fhonor-std, create the `std' 9896 namespace. Don't create a dummy fake_std_node in that case. 9897 Adjust call to c_common_nodes_and_builtins. Use std_identifier. 9898 (builtin_function): Put builtins whose names don't begin 9899 with `_' in the std namespace. 9900 * decl2.c (flag_no_builtin): Remove. 9901 (flag_no_nonansi_builtin): Likewise. 9902 (set_decl_namespace): Use fake_std_node. 9903 (validate_nonmember_using_decl): Likewise. 9904 (do_using_directive): Likewise. 9905 (handle_class_head): Likewise. 9906 * dump.c (dequeue_and_dump): Likewise. 9907 * except.c (init_exception_processing): Use std_identifier. 9908 * init.c (build_member_call): Use fake_std_node. 9909 * rtti.c (init_rtti_processing): Use std_identifier. 9910 99112000-10-17 Mark Mitchell <mark@codesourcery.com> 9912 9913 * cp-tree.h (back_end_hook): Remove declaration. 9914 * decl2.c (back_end_hook): Remove definition. 9915 9916 * dump.c (dequeue_and_dump): Dump TREE_USED. 9917 9918Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu> 9919 9920 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). 9921 99222000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 9923 9924 * decl.c (WINT_TYPE): Define. 9925 (init_decl_processing): Create types unsigned_ptrdiff_type_node, 9926 c_size_type_node, signed_size_type_node and wint_type_node. 9927 99282000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 9929 9930 * decl2.c (warn_missing_format_attribute): New variable. 9931 (lang_decode_option): Decode -Wmissing-format-attribute. 9932 99332000-10-16 Mark Mitchell <mark@codesourcery.com> 9934 9935 * typeck.c (qualify_type): Remove. 9936 (composite_pointer_type): Fix handling of conversions to `cv void*'. 9937 99382000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9939 9940 * Makefile.in (parse.c, parse.h): Fix think-o in last patch. 9941 99422000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9943 9944 * Makefile.in (parse.c, parse.h): Create atomically. 9945 99462000-10-12 Mark Mitchell <mark@codesourcery.com> 9947 9948 * class.c (current_obstack): Remove. 9949 * decl.c (ggc_p): Remove. 9950 (start_decl): Don't use decl_tree_cons. 9951 (grokdeclarator): Don't use build_decl_list. 9952 (start_function): Don't use decl_tree_cons. 9953 (finish_function): Don't mess with obstacks. 9954 * decl2.c (grok_x_components): Don't use build_decl_list. 9955 * lex.c (make_call_declarator): Don't call decl_tree_cons. 9956 (implicitly_declare_fn): Don't call build_decl_list. 9957 * parse.y (frob_specs): Don't call build_decl_list or 9958 decl_tree_cons. 9959 (expr_or_declarator_intern): Don't call decl_tree_cons. 9960 (primary): Don't call build_decl_list. 9961 (fcast_or_absdcl): Likewise. 9962 (typed_declspecs): Don't call decl_tree_cons. 9963 (reserved_declspecs): Don't call build_decl_list. 9964 (declmods): Likewise. 9965 (reserved_typespecquals): Likewise. 9966 (aggr): Likewise. 9967 (new_type_id): Likewise. 9968 (cv_qualifiers): Likewise. 9969 (after_type_declarator_intern): Likewise. 9970 (notype_declarator_intern): Likewise. 9971 (absdcl_intern): Likewise. 9972 (named_parm): Likewise. 9973 * pt.c (most_specialized_class): Likewise. 9974 * repo.c (temporary_obstack): Make it a structure, not a pointer. 9975 (init_repo): Initialize it. 9976 * search.c (current_obstack): Remove. 9977 * typeck2.c (add_exception_specifier): Don't call build_decl_list. 9978 99792000-10-09 Richard Henderson <rth@cygnus.com> 9980 9981 * Make-lang.in (CXX_EXTRA_HEADERS): Remove. 9982 (c++ language support bits for libgcc): Remove. 9983 (c++.clean): Remove cplib2.txt cleanup. 9984 * config-lang.in (headers, lib2funcs): Remove. 9985 9986 * exception.cc, new.cc, new1.cc, new2.cc: Remove files. 9987 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files. 9988 * inc/cxxabi.h, inc/exception, inc/new: Remove files. 9989 * inc/new.h, inc/typeinfo: Remove files. 9990 99912000-10-08 Joseph S. Myers <jsm28@cam.ac.uk> 9992 9993 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already 9994 defined. 9995 (init_decl_processing): Initialize intmax_type_node and 9996 uintmax_type_node. 9997 99982000-10-06 Richard Henderson <rth@cygnus.com> 9999 10000 * cp-tree.h (struct cp_language_function): Remove x_result_rtx. 10001 (original_result_rtx): Remove. 10002 * decl.c (save_function_data): Don't clear x_result_rtx. 10003 (mark_lang_function): Don't mark it either. 10004 * expr.c (fixup_result_decl): Remove. 10005 * semantics.c (genrtl_named_return_value): Frob the return decl 10006 before calling emit_local_var. 10007 (genrtl_finish_function): Don't call fixup_result_decl. 10008 Always emit the jump to return_label. 10009 100102000-10-06 Nathan Sidwell <nathan@codesourcery.com> 10011 10012 * pt.c (lookup_template_class): Set current access for enum. 10013 (tsubst_enum): Set file & line for enum decl. 10014 10015 * spew.c (yylex): Remove unused variable. 10016 100172000-10-05 Richard Henderson <rth@cygnus.com> 10018 10019 * semantics.c (genrtl_finish_function): Don't init or check 10020 can_reach_end; remove noreturn and return value checks. 10021 100222000-10-05 Tom Tromey <tromey@cygnus.com> 10023 10024 * init.c (build_java_class_ref): Use `build_static_name' with a 10025 suffix, not a prefix, to build the class object's name. 10026 100272000-10-05 Nathan Sidwell <nathan@codesourcery.com> 10028 10029 * cp-tree.h (access_kind): Fix comment typo. 10030 * decl2.c (grokfield): Fix diagnostic typo. 10031 * semantics.c (finish_template_type): Fix comment typo. 10032 (finish_qualified_object_call_expr): Likewise. 10033 100342000-10-05 Nathan Sidwell <nathan@codesourcery.com> 10035 10036 * pt.c (tsubst_expr, DECL_STMT case): Don't process if 10037 tsubsting fails. 10038 100392000-10-05 Nathan Sidwell <nathan@codesourcery.com> 10040 10041 * spew.c (frob_id): New static function. 10042 (frob_opname): Use it. 10043 (yylex): Use it. 10044 100452000-10-01 Mark Mitchell <mark@codesourcery.com> 10046 10047 * decl.c (lang_mark_false_label_stack): Remove. 10048 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared. 10049 100502000-09-30 Joseph S. Myers <jsm28@cam.ac.uk> 10051 10052 * gxxint.texi: Use @email for formatting email addresses. 10053 100542000-09-29 Gabriel Dos Reis <gdr@codesourcery.com> 10055 10056 * error.c: Remove direct obstack manipulation. Replace with 10057 output_buffer-based formatting. Adjust calls to removed macros. 10058 (obstack_chunk_alloc, obstack_chunk_free): Remove. 10059 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP, 10060 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise. 10061 100622000-09-24 Mark Mitchell <mark@codesourcery.com> 10063 10064 * ir.texi: Move to ../c-tree.texi. 10065 100662000-09-20 Jason Merrill <jason@redhat.com> 10067 10068 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P. 10069 100702000-09-21 Andreas Jaeger <aj@suse.de> 10071 10072 * errfn.c: Move declaration of cp_printer and cp_printers to ... 10073 * cp-tree.h: ... here. 10074 10075 * error.c: Remove declaration of cp_printer. 10076 100772000-09-20 Mark Mitchell <mark@codesourcery.com> 10078 10079 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs. 10080 100812000-09-20 Hans-Peter Nilsson <hp@axis.com> 10082 10083 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and 10084 users. 10085 100862000-09-18 Mark Mitchell <mark@codesourcery.com> 10087 10088 * decl.c (start_function): Robustify. 10089 100902000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10091 10092 * cp-tree.h (check_function_format): Accept a `status' parameter. 10093 10094 * call.c, typeck.c: Updates calls to `check_function_format'. 10095 100962000-09-17 Geoffrey Keating <geoffk@cygnus.com> 10097 10098 * decl2.c (handle_class_head): Always push some scope even 10099 in the error case. 10100 101012000-09-16 Mark Mitchell <mark@codesourcery.com> 10102 10103 * cp-tree.h (struct cp_language_function): Remove 10104 x_scope_stmt_stack and name_declared. 10105 (current_scope_stmt_stack): Remove. 10106 (function_name_declared_p): New macro. 10107 (struct lang_decl_flags): Use c_lang_decl as a base class. 10108 (context): Remove. 10109 (struct lang_decl): Replace saved_tree with context. 10110 (DECL_FRIEND_CONTEXT): Adjust accordingly. 10111 (SET_DECL_FRIEND_CONTEXT): Likewise. 10112 (DECL_VIRTUAL_CONTEXT): Likewise. 10113 (DECL_SAVED_TREE): Remove. 10114 (C_DECLARED_LABEL_FLAG): Likewise. 10115 (cplus_expand_expr_stmt): Don't declare. 10116 (add_decl_stmt): Likewise. 10117 (add_scope_stmt): Likewise. 10118 * decl.c (mark_stmt_tree): Remove. 10119 (case_compare): Likewise. 10120 (finish_case_label): Use c_add_case_label. 10121 (init_decl_processing): Set more language-specific hooks. 10122 (build_enumerator): Fix typo in comment. 10123 (cplus_expand_expr_stmt): Remove. 10124 (mark_lang_function): Use mark_c_language_function. 10125 (lang_mark_tree): Use c_mark_lang_decl. 10126 * decl2.c: Change order of inclusion. 10127 * except.c: Likewise. 10128 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall 10129 back on c_expand_expr. 10130 * friend.c: Include expr.h. 10131 * init.c: Change order of inclusion. 10132 * Makefile.in: Update dependencies. 10133 * lex.h (free_lang_decl_chain): Remove. 10134 * optimize.c (maybe_clone_body): Use function_name_declared_p. 10135 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if 10136 it doesn't exist. 10137 (instantiate_decl): Use function_name_declared_p. 10138 * semantics.c (lang_expand_expr_stmt): Remove. 10139 (set_current_function_name_declared): Likewise. 10140 (current_function_name_declared): Likewise. 10141 (begin_compound_stmt): Use function_name_declared_p. 10142 (add_decl_stmt): Remove. 10143 (setup_vtbl_ptr): Use function_name_declared_p. 10144 (add_scope_stmt): Remove. 10145 (current_scope_stmt_stack): New function. 10146 (cp_expand_stmt): Don't handle SCOPE_STMTs. 10147 (expand_body): Use function_name_declared_p. 10148 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. 10149 * typeck.c: Change order of includes. 10150 (convert_sequence): Remove. 10151 101522000-09-14 Joseph S. Myers <jsm28@cam.ac.uk> 10153 10154 * lex.c (reswords): Add _Complex. 10155 10156Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10157 10158 * Make-lang.in (cplib2.txt): Depend on cp/Makefile. 10159 101602000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> 10161 10162 * init.c (begin_init_stmts): Don't use // comments. 10163 101642000-09-12 Jason Merrill <jason@redhat.com> 10165 10166 * decl.c (maybe_deduce_size_from_array_init): Set do_default for 10167 all non-extern arrays. 10168 10169 * decl.c (grokdeclarator): Complain about 'friend T' for implicit 10170 typenames, too. Downgrade complaint to pedwarn. 10171 (xref_tag): Warn about surprising behavior of 'friend struct T'. 10172 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for 10173 'class This::Inherited'. 10174 101752000-09-12 Mark Mitchell <mark@codesourcery.com> 10176 10177 * decl.c (finish_case_label): Given the LABEL_DECL a 10178 DECL_CONTEXT. 10179 101802000-09-12 Gabriel Dos Reis <gdr@codesourcery.com> 10181 10182 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, 10183 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF, 10184 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 10185 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 10186 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE): 10187 New macros. 10188 (sorry_for_unsupported_tree, print_scope_operator, 10189 print_left_paren, print_right_paren, print_left_bracket, 10190 print_right_bracket, print_whitespace): Likewise. 10191 (aggr_variety): Rename to class_key_or_enum. 10192 (print_type): Rename to print_type_id. 10193 (print_type_specifier_seq, print_simple_type_specifier, 10194 print_elaborated_type_specifier, 10195 print_rest_of_abstract_declarator, 10196 print_parameter_declaration_clause, print_exception_specification, 10197 print_nested_name_specifier, print_template_id, 10198 typedef_original_name, print_template_argument_list_start, 10199 print_template_argument_list_end): New functions. 10200 102012000-09-11 Gabriel Dos Reis <gdr@codesourcery.com> 10202 10203 * ir.texi: Add more documentation. 10204 102052000-09-11 Mark Mitchell <mark@codesourcery.com> 10206 10207 * cp-tree.h (struct saved_scope): Remove x_function_parms. 10208 (current_function_parms): Don't define. 10209 (struct cp_language_function): Remove parms_stored. 10210 (current_function_just_assigned_this): Don't define. 10211 (current_function_parms_stored): Likewise. 10212 (static_ctors): Declare. 10213 (static_dtors): Likewise. 10214 (SF_EXPAND): Don't define. 10215 (expand_start_early_try_stmts): Remove declaration. 10216 (store_parm_decls): Likewise. 10217 * decl.c (static_ctors): Don't declare. 10218 (static_dtors): Likewise. 10219 (struct binding_level): Remove this_block. 10220 (poplevel): Remove dead code. 10221 (set_block): Likewise. 10222 (mark_binding_level): Don't mark this_block. 10223 (mark_saved_scope): Don't mark x_function_parms. 10224 (init_decl_processing): Don't add current_function_parms as a GC 10225 root. 10226 (check_function_type): Change prototype. 10227 (start_function): Remove RTL-generation code. 10228 (expand_start_early_try_stmts): Remove. 10229 (store_parm_decls): Give it internal linkage. Remove 10230 RTL-generation code. 10231 (finish_function): Remove RTL-generation code. 10232 * decl2.c (static_ctors): Fix formatting. 10233 (static_dtors): Likewise. 10234 * method.c (use_thunk): Don't call store_parm_decls. 10235 (synthesize_method): Likewise. 10236 * optimize.c (maybe_clone_body): Likewise. 10237 * parse.y (fn.def2): Likewise. 10238 (.set_base_init): Likewise. 10239 (nodecls): Likewise. 10240 * pt.c (instantiate_decl): Likewise. 10241 * rtti.c (synthesize_tinfo_fn): Likewise. 10242 * semantics.c (genrtl_try_block): Simplify. 10243 (expand_body): Use genrtl_start_function and 10244 genrtl_finish_function. 10245 (genrtl_start_function): New function. 10246 (genrtl_finish_function): Likewise. 10247 102482000-09-11 Nathan Sidwell <nathan@codesourcery.com> 10249 10250 * error.c (cp_tree_printer, case 'P'): Append break. 10251 102522000-09-11 Nathan Sidwell <nathan@codesourcery.com> 10253 10254 * cp-tree.h (frob_opname): Declare. 10255 * parse.y (saved_scopes): New static variable. 10256 (cp_parse_init): Adjust. 10257 (do_id): If lastiddecl is NULL, do do_identifier. 10258 (operator): Save scope information. 10259 (unoperator): New reduction. Restore scope information. 10260 (operator_name): Append unoperator. Call frob_opname. 10261 * spew.c (frob_opname): Define. 10262 102632000-09-10 Zack Weinberg <zack@wolery.cumb.org> 10264 10265 * decl.c, rtti.c: Include defaults.h if not already included. 10266 Don't define the *_TYPE_SIZE macros. 10267 102682000-09-09 Mark Mitchell <mark@codesourcery.com> 10269 10270 * cp-tree.h (push_switch): Change prototype. 10271 (check_cp_case_value): Remove declaration. 10272 (decl_constant_value): Likewise. 10273 * decl.c (struct cp_switch): Add switch_stmt and cases. 10274 (case_compare): New function. 10275 (push_switch): Set switch_stmt. Initialize cases. 10276 (pop_switch): Clean up cases. 10277 (define_case_label): Rename to ... 10278 (finish_case_label): ... this. Do semantic analysis for case 10279 labels here. 10280 (start_function): Correct comment. 10281 * decl2.c (check_cp_case_value): Remove. 10282 * expr.c (do_case): Remove. 10283 * pt.c (tsubst_expr): Adjust call to finish_case_label. 10284 * semantics.c (genrtl_do_poplevel): Remove declaration. 10285 (RECHAIN_STMTS): Remove. 10286 (finish_break_stmt): Use build_break_stmt. 10287 (finish_continue_stmt): Use build_continue_stmt. 10288 (finish_switch_cond): Adjust condition here, rater than in 10289 c_expand_start_case. 10290 (finish_case_label): Remove. 10291 * typeck.c (c_expand_return): Remove. 10292 (c_expand_start_case): Likewise. 10293 102942000-09-07 Gabriel Dos Reis <gdr@codesourcery.com> 10295 10296 * ir.texi: Document type nodes. 10297 102982000-09-06 Mark Mitchell <mark@codesourcery.com> 10299 10300 * cp-tree.h (init_cp_semantics): Declare. 10301 (genrtl_try_block): Don't declare. 10302 (genrtl_handler): Likewise. 10303 (genrtl_catch_block): Likewise. 10304 (genrtl_ctor_stmt): Likewise. 10305 (genrtl_subobject): Likewise. 10306 (genrtl_do_poplevel): Likewise. 10307 (genrtl_named_return_value): Likewise. 10308 * lex.c (init_parse): Call init_cp_semantics. 10309 * semantics.c (genrtl_try_block): Give it internal linkage. 10310 (genrtl_handler): Likewise. 10311 (genrtl_catch_block): Likewise. 10312 (genrtl_ctor_stmt): Likewise. 10313 (genrtl_subobject): Likewise. 10314 (genrtl_do_poplevel): Likewise. 10315 (genrtl_named_return_value): Likewise. 10316 (lang_expand_stmt): Rename to ... 10317 (cp_expand_stmt): ... this. Only handle C++-specific nodes. 10318 (init_cp_semantics): Define. 10319 10320 * decl.c (initialize_local_var): Remove RTL-generating code. 10321 * semantics.c (genrtl_try_block): Fix formatting. 10322 10323 Move statement-tree facilities from C++ to C front-end. 10324 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO. 10325 (void_zero_node): Remove. 10326 (stmt_tree): Likewise. 10327 (scope_chain): Adjust. 10328 (language_function): Rename to cp_language_function. 10329 (cp_function_chain): Adjust. 10330 (current_stmt_tree): Remove. 10331 (last_tree): Likewise. 10332 (last_expr_type): Likewise. 10333 (struct lang_decl): Adjust. 10334 (STMT_IS_FULL_EXPR_P): Remove. 10335 (add_tree): Remove. 10336 (begin_stmt_tree): Likewise. 10337 (finish_stmt_tree): Likewise. 10338 (walk_tree_fn): Likewise. 10339 (walk_stmt_tree): Likewise. 10340 * class.c (finish_struct): Replace use of add_tree with add_stmt. 10341 * decl.c (mark_stmt_tree): Adjust type. 10342 (init_decl_processing): Don't build void_zero_node. 10343 (initialize_local_var): Adjust usage of current_stmt_tree. 10344 (finish_enum): Use add_stmt, not add_tree. 10345 (save_function_data): Adjust use of language_function. 10346 (finish_constructor_body): Use add_stmt, not add_tree. 10347 (finish_destructor_body): Likewise. 10348 (push_cp_function_context): Adjust use of language_function. 10349 (pop_cp_function_context): Likewise. 10350 (mark_lang_function): Likewise. 10351 (mark_cp_function_context): Likewise. 10352 * init.c (build_aggr_init): Adjust use of current_stmt_tree. 10353 (build_vec_init): Likewise. 10354 * semantics.c (SET_LAST_STMT): Remove. 10355 (RECHAIN_STMTS): Don't use it. 10356 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree. 10357 (current_stmt_tree): Define. 10358 (add_tree): Remove. 10359 (finish_goto_stmt): Use add_stmt, not add_tree. 10360 (finish_expr_stmt): Likewise. 10361 (begin_if_stmt): Likewise. 10362 (finish_then_clause): Likewise. 10363 (begin_while_stmt): Likewise. 10364 (begin_do_stmt): Likewise. 10365 (finish_return_stmt): Likewise. 10366 (begin_for_stmt): Likewise. 10367 (finish_break_stmt): Likewise. 10368 (finish_continue_stmt): Likewise. 10369 (begin_switch_stmt): Likewise. 10370 (finish_case_label): Likewise. 10371 (begin_try_block): Likewise. 10372 (begin_function_try_block): Likewise. 10373 (begin_handler): Likewise. 10374 (begin_catch_block): Likewise. 10375 (begin_compound_stmt): Likewise. 10376 (begin_asm_stmt): Likewise. 10377 (finish_asm_stmt): Likewise. 10378 (finish_label_stmt): Likewise. 10379 (add_decl_stmt): Likewise. 10380 (finish_subobject): Likewise. 10381 (finish_decl_cleanup): Likewise. 10382 (finish_named_return_value): Likewise. 10383 (setup_vtbl_ptr): Likewise. 10384 (add_scope_stmt): Likewise. 10385 (finish_stmt_expr): Likewise. 10386 (prune_unused_decls): Remove. 10387 (begin_stmt_tree): Likewise. 10388 (finish_stmt_tree): Likewise. 10389 (prep_stmt): Adjust use of current_stmt_tree. 10390 (lang_expand_stmt): Likewise. 10391 * tree.c (statement_code_p): Remove. 10392 (cp_statement_code_p): New function. 10393 (walk_stmt_tree): Remove. 10394 (init_tree): Set lang_statement_code_p. 10395 103962000-09-06 Zack Weinberg <zack@wolery.cumb.org> 10397 10398 Integrated preprocessor. 10399 10400 * Make-lang.in, Makefile.in: Remove all references to input.c, 10401 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. 10402 * gxx.gperf, hash.h, input.c: Delete. 10403 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is 10404 initialized properly. 10405 10406 * class.c (fixup_pending_inline): Take a tree, not a 10407 struct pending_inline *. All callers changed. 10408 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, 10409 RID_PROTECTED entries in ridpointers[] array here. 10410 * decl.c (duplicate_decls): Do not refer to struct 10411 pending_inline. 10412 (record_builtin_type, init_decl_processing): Use RID_MAX not 10413 CP_RID_MAX. 10414 (grokdeclarator): Use C_IS_RESERVED_WORD. 10415 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of 10416 cpplib. 10417 (grok_x_components): Do not inspect pending_inlines chain. 10418 10419 * cp-tree.h (struct lang_identifier): Add rid_code entry. 10420 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. 10421 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. 10422 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, 10423 TIME_IDENTIFIER_FILEINFO): Kill. 10424 Update prototypes. 10425 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a 10426 single 32-bit word. 10427 * parse.y: Call do_pending_inlines unconditionally. 10428 reinit_parse_for_method is now snarf_method. fn.defpen is no 10429 longer necessary. Remove unnecessary <itype> annotation on 10430 SCOPE. Do not refer to end_of_file or struct pending_inline. 10431 * semantics.c (begin_inline_definitions): Call 10432 do_pending_inlines unconditionally. 10433 10434 * lex.c: Remove all code now shared with C front end. 10435 Initialize cpplib properly if USE_CPPLIB. Put reserved words 10436 into the get_identifier table. Rewrite pragma handling to 10437 work with the registry. Move code to save tokens for later 10438 processing to spew.c. 10439 10440 * spew.c: Rewrite everything in terms of token streams instead 10441 of text. Move routines here from lex.c / input.c as 10442 appropriate. GC-mark trees hanging off the pending inlines 10443 chain. 10444 104452000-09-06 Mark Mitchell <mark@codesourcery.com> 10446 10447 * NEWS: Mention that the named return value extension has been 10448 deprecated. 10449 * cp-tree.h (original_result_rtx): Define. 10450 (TREE_REFERENCE_EXPR): Remove. 10451 (DECL_VPARENT): Likewise. 10452 (pushdecl_nonclass_level): Likewise. 10453 (store_return_init): Likewise. 10454 (reinit_lang_specific): Likewise. 10455 (genrtl_named_return_value): Change prototype. 10456 * decl.c (original_result_rtx): Remove. 10457 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs. 10458 Do not generate RTL for local variables here. 10459 (store_return_init): Remove. 10460 * semantics.c (genrtl_named_return_value): Simplify. Fold in 10461 store_return_init. 10462 (finish_named_return_value): Adjust accordingly. Warn that this 10463 extension is deprecated. 10464 (lang_expand_stmt): Adjust call to genrtl_named_return_value. 10465 104662000-09-06 Nathan Sidwell <nathan@codesourcery.com> 10467 10468 * pt.c (type_unification_real): Replace switch with if. 10469 (unify): Tsubst non-type parms before comparing. 10470 104712000-09-06 Nathan Sidwell <nathan@codesourcery.com> 10472 10473 * error.c (dump_typename): New function, broken out of ... 10474 (dump_type): ... here. Use it. 10475 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE. 10476 104772000-09-06 Nathan Sidwell <nathan@codesourcery.com> 10478 10479 * init.c (build_offset_ref): Deal with namespace scoped 10480 TEMPLATE_ID_EXPRs. 10481 104822000-09-06 Nathan Sidwell <nathan@codesourcery.com> 10483 10484 * class.c (resolve_address_of_overloaded_function): Add 10485 explanation message. 10486 * decl.c (define_case_label): Reformat explanation. 10487 * decl2.c (finish_static_data_member_decl): Likewise. 10488 (grokfield): Likewise. 10489 * friend.c (do_friend): Likewise. 10490 104912000-09-05 Zack Weinberg <zack@wolery.cumb.org> 10492 10493 * tree.c (walk_tree): Expose tail recursion. 10494 (walk_stmt_tree): New function. 10495 * cp-tree.h: Prototype walk_stmt_tree. 10496 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not 10497 the BLOCKs directly. If a BLOCK has no variables after 10498 pruning, discard it. 10499 (finish_stmt_tree): Use walk_stmt_tree. No need to save and 10500 restore the line number. 10501 105022000-09-05 Mark Mitchell <mark@codesourcery.com> 10503 10504 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H. 10505 (pt.o): Remove dependency on HTAB_H. 10506 * cp-tree.h: Include hashtab.h. 10507 (walk_tree): Change prototype. 10508 (walk_tree_without_duplicates): New function. 10509 * decl.c (check_default_argument): Use it. 10510 * optimize.c (remap_decl): Adjust calls to walk_tree. 10511 (copy_body): Likewise. 10512 (expand_calls_inline): Likewise. 10513 (calls_setjmp_p): Use walk_tree_without_duplicates. 10514 * pt.c: Don't include hashtab.h. 10515 (for_each_template_parm): Use walk_tree_without_duplicates. 10516 * semantics.c (finish-stmt_tree): Likewise. 10517 (expand_body): Likewise. 10518 * tree.c (walk_tree): Add additional parameter. 10519 (walk_tree_without_duplicates): New function. 10520 (count_trees): Use it. 10521 (verify_stmt_tree): Adjust call to walk_tree. 10522 (find_tree): Use walk_tree_without_duplicates. 10523 (no_linkage_check): Likewise. 10524 (break_out_target_exprs): Adjust call to walk_tree. 10525 (cp_unsave): Likewise. 10526 105272000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 10528 10529 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code. 10530 (TEMPLATE_TEMPLATE_PARM): Adjust comment. 10531 * cp-tree.h (TYPE_BINFO): Adjust comment. 10532 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 10533 (TEMPLATE_TYPE_PARM_INDEX): Likewise. 10534 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 10535 (TYPE_TEMPLATE_INFO): Likewise. 10536 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise. 10537 * class.c (push_nested_class): Likewise. 10538 * decl.c (lookup_name_real): Likewise. 10539 (grokdeclarator): Likewise. 10540 (grok_op_properties): Likewise. 10541 (xref_tag): Likewise. 10542 (xref_basetypes): Likewise. 10543 * decl2.c (constructor_name_full): Likewise. 10544 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case. 10545 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 10546 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case. 10547 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM. 10548 (dump_type_suffix): Likewise. 10549 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM 10550 instead. 10551 (get_aggr_from_typedef): Likewise. 10552 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case. 10553 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM. 10554 (write_template_parm): Likewise. 10555 (write_template_template_parm): Check tree code instead of 10556 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 10557 * method.c (build_overload_nested_name): Add 10558 BOUND_TEMPLATE_TEMPLATE_PARM. 10559 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case. 10560 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM. 10561 * pt.c (convert_template_argument): Check tree code instead of 10562 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 10563 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case. 10564 (for_each_template_parm): Adjust comment. 10565 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. 10566 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM. 10567 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use 10568 template_args_equal to compare template template parameter cases. 10569 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM. 10570 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM 10571 instead. 10572 * tree.c (copy_template_template_parm): Decide whether to create 10573 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node. 10574 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM. 10575 (copy_tree_r): Likewise. 10576 * typeck.c (comptypes): Likewise. Check tree code instead of 10577 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 10578 105792000-09-04 Mark Elbrecht <snowball3@bigfoot.com> 10580 10581 * decl.c (finish_function): Move the code for handling functions 10582 marked with the constructor and destructor attributes inside the 10583 expand_p block. 10584 105852000-09-04 Nathan Sidwell <nathan@codesourcery.com> 10586 10587 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR. 10588 105892000-09-04 Nathan Sidwell <nathan@codesourcery.com> 10590 10591 * pt.c (lookup_template_class): Remove abort. 10592 * tree.c (get_type_decl): Allow error_mark_node. 10593 105942000-09-04 Nathan Sidwell <nathan@codesourcery.com> 10595 10596 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside 10597 TEMPLATE_ID_EXPRs. 10598 105992000-09-03 Mark Mitchell <mark@codesourcery.com> 10600 10601 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change 10602 new ABI mangling. 10603 106042000-09-01 Nathan Sidwell <nathan@codesourcery.com> 10605 10606 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify 10607 union tag mismatch error reporting. 10608 106092000-09-01 Nathan Sidwell <nathan@codesourcery.com> 10610 10611 * call.c (build_scoped_method_call): Check it is not a namespace. 10612 106132000-08-30 Jason Merrill <jason@redhat.com> 10614 10615 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context. 10616 10617 * tree.c (bot_manip): Check TREE_CONSTANT rather than 10618 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and 10619 build_target_expr_with_type for the non-AGGR_INIT_EXPR case. 10620 10621 * decl.c (start_function): Always call make_function_rtl. 10622 106232000-08-29 Zack Weinberg <zack@wolery.cumb.org> 10624 10625 * semantics.c (prune_unused_decls): New function. 10626 (finish_stmt_tree): Call it via walk_tree. 10627 106282000-08-29 Zack Weinberg <zack@wolery.cumb.org> 10629 10630 * class.c (build_secondary_vtable): Constify a char *. 10631 * decl.c (init_decl_processing): Initialize function_id_node, 10632 pretty_function_id_node, and func_id_node. 10633 * input.c (struct input_source): Constify 'str'. 10634 (feed_input): Constify first argument. 10635 * mangle.c (write_identifier): Constify argument. 10636 * pt.c (mangle_class_name_for_template): Constify argument. 10637 106382000-08-29 Mark Mitchell <mark@codesourcery.com> 10639 10640 * typeck.c (mark_addressable): Remove code that pokes around in 10641 RTL. 10642 106432000-08-28 Jason Merrill <jason@redhat.com> 10644 10645 * lex.c (file_name_nondirectory): Move to toplev.c. 10646 10647 * cp-tree.h (LOCAL_CLASS_P): New macro. 10648 * class.c (finish_struct_1): Use it. 10649 106502000-08-27 Alex Samuel <samuel@codesourcery.com> 10651 10652 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo. 10653 (write_encoding): Pass another argument to write_name. 10654 (write_name): Add ignore_local_scope parameter. Fix handling of 10655 local names. 10656 (write_nested_name): Use write_unqualified_name. 10657 (write_prefix): Likewise. Skip out on FUNCTION_DECLs. 10658 (write_template_prefix): Use write_unqualified_name. 10659 (write_component): Remove. 10660 (write_local_name): Add parameter. Use direct local entity to 10661 discriminator calculation. 10662 (write_class_enum_type): Pass another argument to write_name. 10663 (write_template_template_arg): Likewise. 10664 (make_guard_variable): Likewise. 10665 106662000-08-27 Jason Merrill <jason@redhat.com> 10667 10668 * decl.c (pushdecl): Matching decls for local externs are found in 10669 the current level. Propagate linkage information from previous 10670 declarations. 10671 106722000-08-26 Gabriel Dos Reis <gdr@codesourcery.com> 10673 10674 * ir.texi (Expressions): Fix typo. 10675 106762000-08-25 Greg McGary <greg@mcgary.org> 10677 10678 * tree.c (init_tree): Use ARRAY_SIZE. 10679 106802000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 10681 10682 * error.c (cp_tree_printer): Rework. 10683 106842000-08-25 Mark Mitchell <mark@codesourcery.com> 10685 10686 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and 10687 dyn-string.o. 10688 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c. 10689 (cp-demangle.o): Remove target. 10690 (dyn-string.o): Likewise. 10691 10692 * decl.c (grokfndecl): Require that `main' return an `int'. 10693 * mangle.c (write_encoding): Don't mangle return types for 10694 conversion functions. 10695 106962000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 10697 10698 * error.c (tree_formatting_info): New data type. 10699 (tree_being_formatted): New macro. 10700 (tree_formatting_flags): Likewise. 10701 (put_whitespace): Likewise. 10702 (print_tree_identifier): Likewise. 10703 (print_identifier): Likewise. 10704 (cp_tree_printer, print_function_argument_list, print_declaration, 10705 print_expression, print_function_declaration, 10706 print_function_parameter, print_type, print_cv_qualifier): New 10707 functions. 10708 (init_error): Initialize lang_printer. 10709 107102000-08-24 Jason Merrill <jason@redhat.com> 10711 10712 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no 10713 adjustment necessary. 10714 107152000-08-24 Greg McGary <greg@mcgary.org> 10716 10717 * cp-tree.h (MAIN_NAME_P): Remove macro. 10718 107192000-08-24 Gabriel Dos Reis <gdr@codesourcery.com> 10720 10721 * error.c (print_instantiation_context): Don't forget to flush the 10722 buffer. 10723 107242000-08-23 Jason Merrill <jason@redhat.com> 10725 10726 * typeck.c (build_ptrmemfunc): Save the input pmf. 10727 10728 * method.c (process_modifiers): Use same_type_p. 10729 107302000-08-23 Mark Mitchell <mark@codesourcery.com> 10731 10732 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC. 10733 * mangle.c (write_function_type): Change prototype. 10734 (write_encoding): Don't mangle return types for 10735 constructors or destructors. 10736 (write_type): Adjust call to write_function_type. 10737 * pt.c (instantiate_template): Instantiate alternate entry points 10738 when instantiating the main function. 10739 107402000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 10741 10742 * error.c (cp_print_error_function): Don't use embedded '\n' in 10743 output_printf. 10744 107452000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 10746 10747 * decl.c (init_decl_processing): Remove bogus initialization. 10748 * error.c (lang_print_error_function): Restore here. 10749 (init_error): Initialize print_error_function. 10750 107512000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 10752 10753 * decl2.c (arg_assoc): Revert my 2000-08-11 change. 10754 107552000-08-22 Gabriel Dos Reis <gdr@codesourcery.com> 10756 10757 * Makefile.in (error.o): Depends on diagnostic.h 10758 10759 * cp-tree.h (problematic_instantiation_changed, 10760 record_last_problematic_instantiation, current_instantiation, 10761 print_instantiation_context): Declare. 10762 (maybe_print_template_context): Remove. 10763 10764 * decl.c (init_decl_processing): Set print_error_function to NULL. 10765 (lang_print_error_function): Remove, since we're using a new 10766 machinery. 10767 10768 * error.c: #include diagnostic.h 10769 (function_category): New function. 10770 (cp_diagnostic_starter): Likewise. 10771 (cp_diagnostic_finalizer): Likewise. 10772 (cp_print_error_function): Likewise. 10773 (maybe_print_instantiation_context): Likewise. 10774 (print_instantiation_full_context): Likewise. 10775 (print_instantiation_partial_context): Likewise. 10776 (print_instantiation_context): Define. 10777 (init_error): Initialize diagnostic pager and finalizer. 10778 10779 * pt.c (problematic_instantiation_changed): Define. 10780 (record_last_problematic_instantiation): Likewise. 10781 (current_instantiation): Likewise. 10782 (maybe_print_template_context): Remove. 10783 (print_template_context): Likewise. 10784 (current_tinst_level): Make static to reflect Brendan Kehoe's 10785 change of 1995-04-13. 10786 (push_tinst_level): Call print_instantiation_context. 10787 107882000-08-21 Nix <nix@esperi.demon.co.uk> 10789 10790 * lang-specs.h: Do not process -o or run the assembler if 10791 -fsyntax-only. 10792 107932000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> 10794 10795 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New 10796 variables. 10797 * decl2.c (lang_decode_option): Disable gettext attributes for 10798 -ansi. 10799 108002000-08-21 Gabriel Dos Reis <gdr@codesourcery.com> 10801 10802 * lex.c (lang_init_options): Default diagnostic message maximum 10803 length to 80, when line-wrapping. 10804 108052000-08-20 Mark Mitchell <mark@codesourcery.com> 10806 10807 * class.c (build_vtbl_initializer): Clear the entire 10808 vtbl_init_data. Start keeping track of the functions for which we 10809 have created vcall offsets here. 10810 (dfs_build_vcall_offset_vtbl_entries): Remove. 10811 (build_vcall_offset_vtbl_entries): Reimplement. 10812 (add_vcall_offset_vtbl_entries_r): New function. 10813 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for 10814 computing when vcall offsets are necessary. 10815 108162000-08-18 Nathan Sidwell <nathan@codesourcery.com> 10817 10818 * decl.c (member_function_or_else): Use cp_error ... %T. 10819 (grokdeclarator): Likewise. 10820 (start_method): Likewise. 10821 * friend.c (make_friend_class): Use cp_pedwarn ... %T. 10822 108232000-08-18 Nathan Sidwell <nathan@codesourcery.com> 10824 10825 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class 10826 TYPE_DECLs. 10827 108282000-08-18 Nathan Sidwell <nathan@codesourcery.com> 10829 10830 * cp-tree.h (PTRMEM_OK_P): New macro. 10831 (itf_ptrmem_ok): New enumeration value. 10832 * class.c (resolve_address_of_overloaded_function): Add PTRMEM 10833 argument. Diagnose implicit pointer to member. 10834 (instantiate_type): Don't diagnose implicit pointer to member 10835 here. Pass itf_ptrmem_ok if ok. Adjust calls to 10836 resolve_address_of_overloaded_function. 10837 * init.c (build_offset_ref): Set PTRMEM_OK_P. 10838 (resolve_offset_ref): Don't diagnose implicit pointer to member here. 10839 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here. 10840 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P. 10841 (build_unary_op): Deal with single non-static member in 10842 microsoft-land. 10843 108442000-08-18 Nathan Sidwell <nathan@codesourcery.com> 10845 10846 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE. 10847 108482000-08-18 Nathan Sidwell <nathan@codesourcery.com> 10849 10850 * cp-tree.h (enum_name_string): Remove prototype. 10851 (report_case_error): Remove prototype. 10852 * cp/typeck2.c (enum_name_string): Remove. 10853 (report_case_error): Remove. 10854 * error.c (dump_expr): Deal with enum values directly. 10855 Correctly negate integer constant. 10856 108572000-08-17 Nathan Sidwell <nathan@codesourcery.com> 10858 10859 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare. 10860 (__cxa_vec_delete2, __cxa_vec_delete3): Declare. 10861 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement. 10862 (__cxa_vec_delete2, __cxa_vec_delete3): Implement. 10863 (__cxa_vec_new): Use __cxa_vec_new2. 10864 (__cxa_vec_delete): Use __cxa_vec_delete2. 10865 108662000-08-17 Nathan Sidwell <nathan@codesourcery.com> 10867 10868 * vec.cc (__cxa_vec_new): Set "C" linkage. 10869 (__cxa_vec_ctor): Likewise. 10870 (__cxa_vec_cctor): Likewise. 10871 (__cxa_vec_dtor): Likewise. 10872 (__cxa_vec_delete): Likewise. 10873 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage. 10874 (__cxa_vec_ctor): Likewise. 10875 (__cxa_vec_cctor): Likewise. 10876 (__cxa_vec_dtor): Likewise. 10877 (__cxa_vec_delete): Likewise. 10878 108792000-08-17 Nathan Sidwell <nathan@codesourcery.com> 10880 10881 * class.c (instantiate_type): Reinstate local variable 10882 deleted in previous change. 10883 10884 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not 10885 itf_no_attributes. 10886 108872000-08-17 Nathan Sidwell <nathan@codesourcery.com> 10888 10889 * cp-tree.h (instantiate_type_flags): New enumeration. 10890 (instantiate_type): Change parameter. 10891 * class.c (instantiate_type): Adjust prototype. Adjust. 10892 * call.c (standard_conversion): Adjust instantiate_type call. 10893 (reference_binding): Likewise. 10894 (build_op_delete_call): Likewise. 10895 (convert_like_real): Likewise. 10896 * cvt.c (cp_convert_to_pointer): Likewise. 10897 (convert_to_reference): Likewise. 10898 * pt.c (convert_nontype_argument): Likewise. 10899 * typeck.c (build_binary_op): Likewise. 10900 (build_ptrmemfunc): Likewise. 10901 (convert_for_assignment): Likewise. 10902 109032000-08-17 Nathan Sidwell <nathan@codesourcery.com> 10904 10905 * cp-tree.h (CPTR_AGGR_TAG): New global tree node. 10906 (current_aggr): Define. 10907 * decl.c (grokdeclarator): Make sure a friend class is an 10908 elaborated type specifier. 10909 * parse.y (current_aggr): Remove static definition. 10910 (cp_parse_init): Adjust. 10911 (structsp): Clear and restore current_aggr. 10912 (component_decl_list): Clear current_aggr. 10913 10914 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the 10915 aggregate tag on the typename's context. 10916 10917 * pt.c (tsubst_friend_class): Return error_mark_node, if 10918 parms becomes NULL. 10919 (instantiate_class_template): Ignore error_mark_node friend types. 10920 109212000-08-14 Nathan Sidwell <nathan@codesourcery.com> 10922 10923 * cvt.c (warn_ref_binding): New static function, broken out of ... 10924 (convert_to_reference): ... here. Use it. 10925 109262000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 10927 10928 * parse.y (template_arg): Add rule for template qualified with 10929 global scope. 10930 109312000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 10932 10933 * decl2.c (add_function): Reorganize. 10934 (arg_assoc): Do not consider function template decls. 10935 109362000-08-11 Jason Merrill <jason@redhat.com> 10937 10938 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're 10939 looking inside. 10940 109412000-08-11 Nathan Sidwell <nathan@codesourcery.com> 10942 10943 * cp-tree.h (resolve_scope_to_name): Remove unused prototype. 10944 (lookup_nested_tag): Likewise. 10945 10946 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs 10947 can be produced. 10948 109492000-08-11 Nathan Sidwell <nathan@codesourcery.com> 10950 10951 * parse.y (named_complex_class_head_sans_basetype): Remove 10952 always true if. 10953 109542000-08-11 Nathan Sidwell <nathan@codesourcery.com> 10955 10956 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build 10957 explicit TEMPLATE_ID_EXPR args. 10958 (build_expr_from_tree, case CALL_EXPR): Likewise. 10959 109602000-08-11 Nathan Sidwell <nathan@codesourcery.com> 10961 10962 * decl.c (check_tag_decl): Diagnose typename's which don't 10963 declare anything. 10964 109652000-08-10 Nathan Sidwell <nathan@codesourcery.com> 10966 10967 * init.c (build_aggr_init): Reject bogus array initializers 10968 early. 10969 109702000-08-09 Nathan Sidwell <nathan@codesourcery.com> 10971 10972 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi 10973 runtime. 10974 * cp/tinfo.cc (__dynamic_cast): Likewise. 10975 * cp/inc/cxxabi.h (__dynamic_cast): Likewise. 10976 109772000-08-09 Nathan Sidwell <nathan@codesourcery.com> 10978 10979 * cvt.c (convert_to_pointer_force): Fix error message when 10980 attempting to cast from ambiguous base. 10981 109822000-08-08 Jason Merrill <jason@redhat.com> 10983 10984 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails. 10985 (tsubst_template_arg_vector): Likewise. 10986 10987 * decl2.c (build_anon_union_vars): Choose the largest field; don't 10988 assume that one will be as large as the union. 10989 109902000-08-07 Kazu Hirata <kazu@hxi.com> 10991 10992 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo. 10993 * decl.c (pop_labels): Likewise. 10994 109952000-08-04 Jeffrey Oldham <oldham@codesourcery.com> 10996 10997 * inc/cxxabi.h (__pbase_type_info): Changed member names to match 10998 specifications. 10999 (__pointer_to_member_type_info): Likewise. 11000 (__base_class_info): Likewise. 11001 (__class_type_info): Likewise. 11002 (__si_class_type_info): Likewise. 11003 (__vmi_class_type_info): Likewise. 11004 * tinfo.cc (__si_class_type_info::__do_find_public_src): 11005 Changed member names to match specifications. 11006 (__vmi_class_type_info::__do_find_public_src): Likewise. 11007 (__si_class_type_info::__do_dyncast): Likewise. 11008 (__vmi_class_type_info::__do_dyncast): Likewise. 11009 (__si_class_type_info::__do_upcast): Likewise. 11010 (__vmi_class_type_info::__do_upcast): Likewise. 11011 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise. 11012 (__pbase_type_info::__pointer_catch): Likewise. 11013 (__pointer_type_info::__pointer_catch): Likewise. 11014 (__pointer_to_member_type_info::__pointer_catch): Likewise. 11015 110162000-08-04 Zack Weinberg <zack@wolery.cumb.org> 11017 11018 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist. 11019 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS. 11020 (cc1plus): Link with $(BACKEND) and $(C_OBJS). 11021 110222000-08-04 Mark Mitchell <mark@codesourcery.com> 11023 11024 * cp-tree.h (add_method): Change prototype. 11025 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P. 11026 Don't double the size of the method vector in the error case. 11027 (handle_using_decl): Adjust call to add_method. 11028 (add_implicitly_declared_members): Likewise. 11029 (clone_function_decl): Likewise. 11030 * decl2.c (check_classfn): Likewise. 11031 * semantics.c (finish_member_declaration): Likewise. 11032 110332000-08-04 Joseph S. Myers <jsm28@cam.ac.uk> 11034 11035 * decl.c (flag_isoc94): New variable. 11036 110372000-08-02 Jason Merrill <jason@redhat.com> 11038 11039 * pt.c (do_type_instantiation): Add complain parm; don't complain 11040 if called recursively. 11041 * cp-tree.h, parse.y: Adjust. 11042 110432000-08-02 Zack Weinberg <zack@wolery.cumb.org> 11044 11045 * decl2.c: Silently ignore -Wstrict-prototypes; warn about 11046 -Wno-strict-prototypes. 11047 11048 * g++spec.c: Adjust type of second argument to 11049 lang_specific_driver, and update code as necessary. 11050 11051 * cp-tree.h: Don't prototype min_precision here. 11052 (my_friendly_assert): Cast expression to void. 11053 * semantics.c (do_poplevel): Initialize scope_stmts. 11054 110552000-08-02 Mark Mitchell <mark@codesourcery.com> 11056 11057 * cp-tree.h (DECL_NEEDED_P): Tweak. 11058 110592000-07-28 Jason Merrill <jason@redhat.com> 11060 11061 * lang-specs.h: Use %i in rule for .ii files. 11062 110632000-07-31 Zack Weinberg <zack@wolery.cumb.org> 11064 11065 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. 11066 110672000-07-30 Mark Mitchell <mark@codesourcery.com> 11068 11069 Allow indirect primary bases. 11070 * cp-tree.h (struct lang_type): Remove vfield_parent. Add 11071 primary_base. 11072 (CLASSTYPE_VFIELD_PARENT): Remove. 11073 (CLASSTYPE_PRIMARY_BINFO): Reimplement. 11074 (BINFO_PRIMARY_BINFO): Remove. 11075 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. 11076 (BINFO_VBASE_PRIMARY_P): Likewise. 11077 (BINFO_PRIMARY_BASE_OF): New macro. 11078 (BINFO_INDIRECT_PRIMARY_P): Likewise. 11079 (get_primary_binfo): New function. 11080 * decl.c (lang_mark_tree): Make lang_type::primary_base. 11081 * class.c (vcall_offset_data_s): Rename to ... 11082 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, 11083 and add ctor_vtbl_p. 11084 (get_derived_offset): Use get_primary_binfo. 11085 (dfs_mark_primary_bases): Adjust handling of virtual primary 11086 bases. 11087 (mark_primary_bases): Likewise. 11088 (set_primary_base): Take a binfo, not an integer, as a 11089 representation of the primary base. 11090 (indirect_primary_base_p): Remove. 11091 (determine_primary_base): Adjust for indirect primary bases. 11092 (dfs_find_final_overrider): Fix typo in coment. 11093 (update_vtable_entry_for_fn): Use get_primary_binfo. 11094 (layout_nonempty_base_or_field): Tweak. 11095 (build_base_fields): Adjust for new primary base semantics. 11096 (dfs_propagate_binfo_offsets): Remove. 11097 (propagate_binfo_offsets): Rewrite. 11098 (dfs_set_offset_for_shared_vbases): Remove. 11099 (layout_virtual_bases): Don't use it. 11100 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new 11101 ABI. 11102 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not 11103 CLASSTYPE_VFIELD_PARENT. 11104 (dfs_get_primary_binfo): New function. 11105 (get_primary_binfo): Likewise. 11106 (dump_class_hierarchy_r): Tweak printing of primary bases. 11107 (build_vtbl_initializer): Fix typo in comments. Use 11108 vtbl_init_data. 11109 (build_vcall_and_vbase_vtbl_entries): Likewise. 11110 (build_vbaes_offset_vtbl_entries): Likewise. 11111 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of 11112 BV_VCALL_INDEX to handle indirect primary bases. 11113 (build_vcall_offset_vtbl_entries): Use vtbl_init_data. 11114 (build_rtti_vtbl_entries): Likewise. 11115 * search.c (get_shared_vbase_if_not_primary): Tweak. 11116 (find_vbase_instance): Likewise. 11117 (binfo_for_vtable): Simplify. 11118 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. 11119 (make_binfo): Make it have 11 entries. 11120 111212000-07-30 Alex Samuel <samuel@codesourcery.com> 11122 11123 * mangle.c (DECL_TEMPLATE_ID_P): Remove. 11124 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when 11125 ascertaining primaryness. 11126 (G): Remove template_args. 11127 (decl_is_template_id): New function. 11128 (write_encoding): Use decl_is_template_id. 11129 (write_name): Likewise. Handle type_decls. Get main variant of 11130 type decls. 11131 (write_nested_name): Likewise. 11132 (write_prefix): Likewise. 11133 (write_template_prefix): Likewise. 11134 (write_special_name_constructor): Remove defunct production from 11135 comment. 11136 (write_bare_function_type): Remove comment about absent parameter. 11137 (write_template_template_arg): Add missing grammar production to 11138 comment. 11139 111402000-07-27 Jason Merrill <jason@redhat.com> 11141 11142 * decl.c (duplicate_decls): If common_type produces a non-typedef 11143 type for a typedef, just use the old type. 11144 111452000-07-27 Mark Mitchell <mark@codesourcery.com> 11146 11147 * cp-tree.h (function_depth): Declare. 11148 (verify_stmt_tree): Likewise. 11149 (find_tree): Likewise. 11150 * decl.c (function_depth): Give it external linkage. 11151 * optimize.c (optimize_function): Increment and decrement it. 11152 * tree.c (verify_stmt_tree_r): New function. 11153 (verify_stmt_tree): Likewise. 11154 (find_tree_r): Likewise. 11155 (find_tree): Likewise. 11156 111572000-07-27 Jason Merrill <jason@redhat.com> 11158 11159 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use 11160 TYPE_PTRMEMFUNC_P. 11161 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC. 11162 111632000-07-26 Mark Mitchell <mark@codesourcery.com> 11164 11165 * decl.c (start_cleanup_fn): Mark the function as `inline'. 11166 * decl2.c (get_guard): Call cp_finish_decl, not 11167 rest_of_decl_compilation, for local guards. 11168 * lex.c (do_identifier): Remove unused variable. 11169 11170Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 11171 11172 * parse.y: Add missing ';'. 11173 111742000-07-26 Mark Mitchell <mark@codesourcery.com> 11175 11176 * parse.y (empty_parms): Use `()', not `(...)', when in the scope 11177 of `extern "C++"'. 11178 111792000-07-25 Nathan Sidwell <nathan@codesourcery.com> 11180 11181 Kill strict_prototype. Backwards compatibility only for 11182 non NO_IMPLICIT_EXTERN_C systems. 11183 * cp-tree.h (flag_strict_prototype): Remove. 11184 (strict_prototype): Remove. 11185 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 11186 * decl.c (maybe_push_to_top_level): Adjust. 11187 (pop_from_top_level): Adjust. 11188 (decls_match): Only allow sloppy parm matching for ancient 11189 system headers. 11190 (init_decl_processing): Adjust. 11191 (grokdeclarator): Adjust. 11192 * decl2.c (flag_strict_prototype): Remove. 11193 (strict_prototype): Remove. 11194 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 11195 (lang_f_options): Remove "strict-prototype". 11196 (unsupported-options): Add "strict-prototype". 11197 * lex.c (do_identifier): Adjust. 11198 (do_scoped_id): Adjust. 11199 * parse.y (empty_parms): Adjust. 11200 * class.c (push_lang_context): Adjust. 11201 (pop_lang_context): Adjust. 11202 * typeck.c (comp_target_parms): Adjust. 11203 112042000-07-25 Nathan Sidwell <nathan@codesourcery.com> 11205 11206 * decl.c (poplevel): Deal with anonymous variables at for scope. 11207 (maybe_inject_for_scope_var): Likewise. 11208 112092000-07-25 Zack Weinberg <zack@wolery.cumb.org> 11210 11211 * decl.c: Remove all signal handling code, now done in toplev.c. 11212 112132000-07-23 Mark Mitchell <mark@codesourcery.com> 11214 11215 * decl.c (make_rtl_for_nonlocal_decl): Rework. 11216 11217 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set 11218 correctly. 11219 112202000-07-20 Zack Weinberg <zack@wolery.cumb.org> 11221 11222 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__. 11223 Define my_friendly_assert and my_friendly_abort as macros 11224 which may call friendly_abort. Prototype friendly abort, not 11225 my_friendly_abort or my_friendly_assert. 11226 * decl.c (signal_catch): Report the signal caught in the error 11227 message. Call fatal directly. 11228 * typeck2.c (ack, my_friendly_assert): Delete. 11229 (my_friendly_abort): Rename to friendly_abort. Expect file, 11230 line, and function parameters. Report the abort code, then 11231 call fancy_abort. Do not mask an abort if errors have 11232 already occurred. 11233 112342000-07-18 Nathan Sidwell <nathan@codesourcery.com> 11235 11236 * typeck.c (comp_target_parms): Remove obsolete parameter. 11237 (comp_target_types): Adjust. 11238 112392000-07-17 Jason Merrill <jason@redhat.com> 11240 11241 * typeck.c (mark_addressable): Never set TREE_USED. 11242 * call.c (build_call): Don't abort on calls to library functions 11243 that have been declared normally. 11244 11245 * typeck.c (build_binary_op): Fix grammar in warning. 11246 11247 * exception.cc (__eh_free): Fix prototype. 11248 11249 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR. 11250 11251 * decl.c (pushdecl): Handle seeing an OVERLOAD in 11252 IDENTIFIER_NAMESPACE_VALUE. 11253 112542000-07-16 Mark Mitchell <mark@codesourcery.com> 11255 11256 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation. 11257 * method.c (use_thunk): Correct handling of vcall offsets. 11258 112592000-07-14 Zack Weinberg <zack@wolery.cumb.org> 11260 11261 * .cvsignore: parse.h and parse.c have no cp- prefix. 11262 112632000-07-13 Mark Mitchell <mark@codesourcery.com> 11264 11265 * .cvsignore: New file. 11266 112672000-07-13 Zack Weinberg <zack@wolery.cumb.org> 11268 11269 * lang-specs.h: Use the new named specs. Remove unnecessary braces. 11270 112712000-07-12 Mark Mitchell <mark@codesourcery.com> 11272 11273 * Makefile.in ($(PARSE_H)): Depend directly on parse.y. 11274 * parse.c: Remove. 11275 * parse.h: Likewise. 11276 112772000-07-11 Mark Mitchell <mark@codesourcery.com> 11278 11279 * class.c (layout_class_type): Add pointers to virtual bases after 11280 base classes under the old ABI. 11281 112822000-07-10 Benjamin Chelf <chelf@codesourcery.com> 11283 11284 * semantics.c (finish_for_stmt): Remove call to emit_line_note. 11285 (finish_continue_stmt): Likewise. 11286 (begin_for_stmt): Remove call to note_level_for_for. 11287 (finish_goto_stmt): Change call from build_min_nt 11288 to build_stmt. 11289 (finish_expr_stmt): Likewise. 11290 (begin_if_stmt): Likewise. 11291 (begin_while_stmt): Likewise. 11292 (finish_while_stmt): Likewise. 11293 (finish_return_stmt): Likewise. 11294 (begin_for_stmt): Likewise. 11295 (finish_for_stmt): Likewise. 11296 (finish_break_stmt): Likewise. 11297 (begin_switch_stmt): Likewise. 11298 (finish_case_label): Likewise. 11299 (genrtl_try_block): Likewise. 11300 (begin_try_block): Likewise. 11301 (begin_handler): Likewise. 11302 (begin_compound_stmt): Likewise. 11303 (finish_asm_stmt): Likewise. 11304 (finish_label_stmt): Likewise. 11305 (add_decl_stmt): Likewise. 11306 (finish_subobject): Likewise. 11307 (finish_decl_cleanup): Likewise. 11308 (finish_named_return_value): Likewise. 11309 (setup_vtbl_ptr): Likewise. 11310 (add_scope_stmt): Likewise. 11311 * decl.c (finish_constructor_body): Likewise. 11312 (finish_destructor_body): Likewise. 11313 * optimize.c (copy_body_r): Likewise. 11314 (initialize_inlined_parameters): Likewise. 11315 (declare_return_variable): Likewise. 11316 (expand_call_inline): Likewise. 11317 113182000-07-10 Jakub Jelinek <jakub@redhat.com> 11319 11320 * semantics.c (expand_body): Sync interface information 11321 at the end of function body expansion. 11322 113232000-07-09 Jason Merrill <jason@redhat.com> 11324 11325 * init.c (build_new_1): Bail early if the call to new fails. 11326 11327 * decl.c (compute_array_index_type): Check specifically for 11328 an INTEGER_CST, not just TREE_CONSTANT. 11329 11330 * decl.c (duplicate_decls): Don't call duplicate_decls on 11331 the DECL_TEMPLATE_RESULT. 11332 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different 11333 codes. 11334 11335 * error.c (dump_template_bindings): Don't crash if we had an 11336 invalid argument list. 11337 11338 * typeck.c (c_expand_start_case): Do narrowing here. 11339 * semantics.c (finish_switch_cond): Not here. 11340 113412000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com> 11342 11343 * parse.y (asm_clobbers): Do string concatenation. 11344 113452000-07-09 Mark Mitchell <mark@codesourcery.com> 11346 11347 * decl.c (pushtag): Don't put local classes in template functions 11348 on the local_classes list. 11349 113502000-07-04 Scott Snyder <snyder@fnal.gov> 11351 11352 * decl2.c (get_guard): Add missing return for old ABI local 11353 variable case. 11354 113552000-07-09 Mark Mitchell <mark@codesourcery.com> 11356 11357 * cp-tree.h (char_type_p): New function. 11358 * decl.c (init_decl_processing): Don't initialize 11359 signed_wchar_type_node or unsigned_wchar_type_node. 11360 (complete_array_type): Handle brace-enclosed string-constants. 11361 * rtti.c (emit_support_tinfos): Remove #if 0'd code. 11362 * tree.c (char_type_p): New function. 11363 * typeck2.c (digest_init): Use char_type_p. 11364 113652000-07-06 Nathan Sidwell <nathan@codesourcery.com> 11366 11367 * pt.c (tsubst): Don't layout type, if it's error_mark. 11368 113692000-07-06 Nathan Sidwell <nathan@codesourcery.com> 11370 11371 * pt.c (instantiate_pending_templates): Reset template level. 11372 113732000-07-05 Jason Merrill <jason@redhat.com> 11374 11375 * call.c (joust): Don't complain about `operator char *()' beating 11376 `operator const char *() const'. 11377 113782000-07-04 scott snyder <snyder@fnal.gov> 11379 Jason Merrill <jason@redhat.com> 11380 11381 * repo.c (repo_get_id): Handle the case where a class with virtual 11382 bases has a null TYPE_BINFO_VTABLE. 11383 113842000-07-04 Kevin Buhr <buhr@stat.wisc.edu> 11385 Jason Merrill <jason@redhat.com> 11386 11387 * parse.y (member_init): Just pass in the type. 11388 * init.c (expand_member_init): Handle getting a type. 11389 113902000-07-04 Martin v. L�wis <loewis@informatik.hu-berlin.de> 11391 Jason Merrill <jason@redhat.com> 11392 11393 * decl.c (finish_function): Warn if a function has no return 11394 statement. 11395 Suggested by Andrew Koenig. 11396 * typeck.c (check_return_expr): Do set current_function_returns_value 11397 if we got an error_mark_node. 11398 113992000-07-03 Nathan Sidwell <nathan@codesourcery.com> 11400 11401 * decl2.c (push_decl_namespace): Push the original namespace. 11402 114032000-07-03 Nathan Sidwell <nathan@codesourcery.com> 11404 11405 * pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES. 11406 * semantics.c (begin_class_definition): Clear it. 11407 114082000-07-02 Benjamin Chelf <chelf@codesourcery.com> 11409 11410 * cp-tree.h (genrtl_goto_stmt): Remove declaration. 11411 (genrtl_expr_stmt): Likewise. 11412 (genrtl_decl_stmt): Likewise. 11413 (genrtl_if_stmt): Likewise. 11414 (genrtl_while_stmt): Likewise. 11415 (genrtl_do_stmt): Likewise. 11416 (genrtl_return_stmt): Likewise. 11417 (genrtl_for_stmt): Likewise. 11418 (genrtl_break_stmt): Likewise. 11419 (genrtl_continue_stmt): Likewise. 11420 (genrtl_scope_stmt): Likewise. 11421 (genrtl_switch_stmt): Likewise. 11422 (genrtl_case_label): Likewise. 11423 (genrtl_begin_compound_stmt): Likewise. 11424 (genrtl_finish_compound_stmt): Likewise. 11425 (genrtl_compound_stmt): Likewise. 11426 (genrtl_asm_stmt): Likewise. 11427 11428 * init.c (begin_init_stmts): Remove call to 11429 genrtl_begin_compound_stmt. 11430 (finish_init_stmts): Remove call to genrtl_finish_compound_stmt. 11431 11432 * semantics.c (lang_expand_stmt): Changed call to 11433 genrtl_compound_stmt to ignore return value. 11434 114352000-07-02 Mark Mitchell <mark@codesourcery.com> 11436 11437 * mangle.c (canonicalize_for_substitution): Return the canonical 11438 variant of a type. 11439 11440 * decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a 11441 TYPE_DECL. 11442 * typeck.c (commonparms): Remove obstack manipulations. 11443 114442000-07-01 Benjamin Chelf <chelf@codesourcery.com> 11445 11446 * Make-lang.in (cc1plus$(exeext)): Added c-semantics.o. 11447 11448 * Makefile.in (OBJS): Added ../c-semantics.o. 11449 (OBJDEPS): Likewise. 11450 11451 * cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to 11452 ../c-common.h. 11453 (struct stmt_tree): Added comment. 11454 (current_function_name_declared): Removed. 11455 (stmts_are_full_exprs_p): Likewise. 11456 (genrtl_do_pushlevel): Likewise. 11457 (genrtl_clear_out_block): Likewise. 11458 (COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h. 11459 (DECL_ANON_UNION_ELEMS): Likewise. 11460 (emit_local_var): Likewise. 11461 (make_rtl_for_local_static): Likewise. 11462 (do_case): Likewise. 11463 (expand_stmt): Likewise. 11464 (genrtl_decl_cleanup): Likewise. 11465 (c_expand_asm_operands): Likewise. 11466 (c_expand_return): Likewise. 11467 (c_expand_start_case): Likewise. 11468 11469 * decl.c (make_rtl_for_local_static): Moved to c-semantics.c. 11470 (emit_local_var): Likewise. 11471 (initialize_local_var): Change reference to 11472 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 11473 Change reference to stmts_are_full_exprs_p to 11474 current_stmt_tree->stmts_are_full_exprs_p. 11475 (push_cp_function_context): Likewise. 11476 11477 * expect.c (expand_throw): Change reference to 11478 stmts_are_full_exprs_p. 11479 11480 * init.c (build_aggr_init): Change reference to 11481 stmts_are_full_exprs_p. 11482 (build_vec_init): Likewise. 11483 11484 * optimize.c (maybe_clone_body): Change reference to 11485 current_function_name_declared to 11486 cp_function_chain->name_declared. 11487 11488 * pt.c (instantiate_decl): Change reference to 11489 current_function_name_declared to 11490 cp_function_chain->name_declared. 11491 11492 * semantics.c (expand_cond): Moved declaration to c-common.h. 11493 (genrtl_do_pushlevel): Moved to c-semantics.c. 11494 (genrtl_clear_out_block): Likewise. 11495 (genrtl_goto_stmt): Likewise. 11496 (genrtl_expr_stmt): Likewise. 11497 (genrtl_decl_stmt): Likewise. 11498 (gerntl_if_stmt): Likewise. 11499 (genrtl_while_stmt): Likewise. 11500 (genrtl_do_stmt): Likewise. 11501 (genrtl_return_stmt): Likewise. 11502 (genrtl_for_stmt): Likewise. 11503 (genrtl_break_stmt): Likewise. 11504 (genrtl_continue_stmt): Likewise. 11505 (genrtl_scope_stmt): Likewise. 11506 (genrtl_switch_stmt): Likewise. 11507 (genrtl_case_label): Likewise. 11508 (genrtl_begin_compound_stmt): Likewise. 11509 (genrtl_finish_compound_stmt): Likewise. 11510 (genrtl_compound_stmt): Likewise. 11511 (genrtl_asm_stmt): Likewise. 11512 (genrtl_decl_cleanup): Likewise. 11513 (expand_cond): Likewise. 11514 (expand_stmt): Renamed to ... 11515 (lang_expand_stmt): ... this. 11516 (lang_expand_expr_stmt): Initialize. 11517 (set_current_function_name_declared): Likewise. 11518 (stmts_are_full_exprs_p): Likewise. 11519 (current_function_name_declared): Likewise. 11520 (anon_aggr_type_p): Likewise. 11521 (do_poplevel): Change reference to 11522 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 11523 Change reference to stmts_are_full_exprs_p to 11524 current_stmt_tree->stmts_are_full_exprs_p. 11525 (add_tree): Likewise. 11526 (finish_expr_stmt): Likewise. 11527 (prep_stmt): Likewise. 11528 (lang_expand_stmt): Likewise. 11529 (begin_compound_stmt): Change reference to 11530 current_function_name_declared to 11531 cp_function_chain->name_declared and call to 11532 current_function_name_declared(). 11533 (setup_vtbl_ptr): Likewise. 11534 (genrtl_do_poplevel): Removed. 11535 115362000-06-30 Jason Merrill <jason@redhat.com> 11537 11538 * init.c (init_init_processing): Go back to aligning like 11539 double_type_node for old ABI. 11540 (get_cookie_size): Make cookie larger if we get a type that needs 11541 more alignment. 11542 (build_vec_delete): Call it. 11543 11544 * typeck.c (qualify_type_recursive): New fn. 11545 (composite_pointer_type): Use it. 11546 (build_binary_op): Use composite_pointer_type. 11547 115482000-06-24 Carlos O'Ryan <coryan@cs.wustl.edu> 11549 Jason Merrill <jason@redhat.com> 11550 11551 * typeck.c (check_return_expr): Don't complain about returning 11552 NULL from operator new if -fcheck-new. 11553 * cp-tree.h: Declare flag_check_new here. 11554 * init.c: Not here. 11555 115562000-06-28 Alex Samuel <samuel@codesourcery.com> 11557 11558 * mangle.c (find_substitution): Use same_type_p. 11559 (write_encoding): Don't check for substitutions. 11560 115612000-06-30 Nathan Sidwell <nathan@codesourcery.com> 11562 11563 * parse.y (expr_no_comma_rangle): New non-terminal. 11564 (template_parm): Use it for default parameter case. 11565 (template_arg): Use it. 11566 (expr_no_commas): Remove commented out undefined extensions. 11567 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 11568 * parse.h, parse.c: Rebuilt. 11569 115702000-06-30 Mark Mitchell <mark@codesourcery.com> 11571 11572 * semantics.c (genrtl_asm_stmt): Don't decay input operands here. 11573 (finish_asm_stmt): Do it here, instead. 11574 11575 * cp-tree.h (ridpointers): Don't declare. 11576 * decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX. 11577 (record_builtin_java_type): Likewise. 11578 (init_decl_processing): Likewise. 11579 * lex.c: Move inclusion of lex.h. 11580 (ridpointers): Don't define. 11581 (init_parse): Initialize ripdointers. Use CP_RID_MAX instead of 11582 RID_MAX. 11583 * lex.h (enum rid): Rename to ... 11584 (enum cp_rid): ... this. 11585 (ridpointers): Don't declare. 11586 * parse.y: Move inclusion of lex.h. 11587 * parse.c: Regenerated. 11588 * spew.c: Move inclusion of lex.h. 11589 11590 * cp-tree.h (struct language_function): Remove temp_name_counter. 11591 (temp_name_counter): Remove. 11592 (get_temp_name): Change prototype. 11593 (get_guard): New function. 11594 (get_guard_cond): Likewise. 11595 (set_guard): Likewise. 11596 * cvt.c (build_up_reference): Adjust call to get_temp_name. 11597 * decl.c (expand_static_init): Use get_guard and friends to 11598 implement guard variables. 11599 * decl2.c (get_temp_name): Assume that the variables created are 11600 always static. 11601 (get_sentry): Rename to ... 11602 (get_guard): ... this. Implement new ABI guard variables. 11603 (get_guard_bits): New function. 11604 (get_guard_cond): Likewise. 11605 (set_guard): Likewise. 11606 (start_static_initialization_or_destruction): Use them. 11607 (do_static_initialization): Replace sentry with guard throughout. 11608 (do_static_destruction): Likewise. 11609 * init.c (create_temporary_var): Add comment. 11610 116112000-06-28 Alex Samuel <samuel@codesourcery.com> 11612 11613 * mangle.c (find_substitution): Use same_type_p. 11614 (write_encoding): Don't check for substitutions. 11615 116162000-06-30 Nathan Sidwell <nathan@codesourcery.com> 11617 11618 * parse.y (expr_no_comma_rangle): New non-terminal. 11619 (template_parm): Use it for default parameter case. 11620 (template_arg): Use it. 11621 (expr_no_commas): Remove commented out undefined extensions. 11622 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 11623 * parse.h, parse.c: Rebuilt. 11624 116252000-06-29 Mark Mitchell <mark@codesourcery.com> 11626 11627 * cp-tree.h (flag_const_strings): Remove. 11628 (warn_parentheses): Likewise. 11629 (warn_format): Likewise. 11630 (common_type): Likewise. 11631 (default_conversion): Likewise. 11632 (build_binary_op): Likewise. 11633 (cp_build_binary_op): New macro. 11634 * call.c (build_new_op): Use cp_build_binary_op instead of 11635 build_binary_op. 11636 * class.c (build_vtable_entry_ref): Likewise. 11637 * decl.c (expand_static_init): Likewise. 11638 (compute_array_index_type): Likewise. 11639 (build_enumerator): Likewise. 11640 * decl2.c (delete_sanity): Likewise. 11641 (start_static_initialization_or_destruction): Likewise. 11642 * error.c (dump_type_suffix): Likewise. 11643 * init.c (resolve_offset_ref): Likewise. 11644 (build_new): Likewise. 11645 (build_new_1): Likewise. 11646 (build_vec_delete_1): Likewise. 11647 (build_vec_init): Likewise. 11648 (build_delete): Likewise. 11649 * rtti.c (synthesize_tinfo_fn): Likewise. 11650 (synthesize_tinfo_var): Likewise. 11651 * search.c (expand_upcast_fixups): Likewise. 11652 (fixup_all_virtual_upcast_offsets): Likewise. 11653 * typeck.c (build_array_ref): Likewise. 11654 (get_member_function_from_ptrfunc): Likewise. 11655 (build_binary_op): Add parameter. 11656 (pointer_int_sum): Use cp_build_binary_op. 11657 (pointer_diff): Likewise. 11658 (build_modify_expr): Likewise. 11659 (get_delta_difference): Likewise. 11660 (build_ptrmemfunc): Likewise. 11661 116622000-06-29 Nathan Sidwell <nathan@codesourcery.com> 11663 11664 * cp-tree.h (SET_DECL_ARTIFICIAL): Remove. 11665 * decl.c (create_implicit_typedef): Adjust. 11666 * decl2.c (build_artificial_parm): Adjust. 11667 * method.c (implicitly_declare_fn): Adjust. 11668 * pt.c (push_inline_template_parms_recursive): Adjust. 11669 (process_template_parm): Adjust. 11670 (overloaded_template_name): Adjust. 11671 * semantics.c (finish_template_template_parm): Adjust. 11672 116732000-06-28 Mark Mitchell <mark@codesourcery.com> 11674 11675 * cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove. 11676 * class.c (update_vtable_entry_for_fn): Correct logic for deciding 11677 where to emit thunks. 11678 (build_vtt): Adjust call to build_vtt_inits. 11679 (build_vtt_inits): Add parameter to indicate whether or not 11680 sub-VTTs for virtual bases should be included. Adjust handling of 11681 construction vtables. 11682 (get_matching_base): New function. 11683 (dfs_build_vtt_inits): Rename to ... 11684 (dfs_build_secondary_vptr_vtt_inits): Adjust handling of 11685 construction vtables. 11686 (dfs_fixup_binfo_vtbls): Likewise. 11687 (build_ctor_vtbl_groups): Build construction vtables for virtual 11688 bases, too. 11689 (accumulate_vtbl_inits): Tweak logic for deciding whether or not 11690 to build construction vtbls. 11691 (dfs_accumulate_vtbl_inits): Adjust handling of 11692 construction vtables. 11693 11694 * pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified 11695 types correctly. 11696 116972000-06-27 Mark Mitchell <mark@codesourcery.com> 11698 11699 * decl.c (grokfndecl): Set DECL_CONTEXT for static functions too. 11700 117012000-06-26 Nathan Sidwell <nathan@codesourcery.com> 11702 11703 * search.c (hides): Remove. 11704 (is_subobject_of_p): Add most_derived parameter. Use 11705 CANONICAL_BINFO. 11706 (lookup_field_queue_p): Adjust. 11707 (lookup_field_r): Adjust. 11708 117092000-06-26 Nathan Sidwell <nathan@codesourcery.com> 11710 11711 * decl2.c (handle_class_head): Bash typedefs to the type's main 11712 decl. 11713 117142000-06-25 Mark Mitchell <mark@codesourcery.com> 11715 11716 * cp-tree.h (genrtl_begin_stmt_expr): Rename to ... 11717 (begin_global_stmt_expr): ... this. 11718 (genrtl_finish_stmt_expr): Rename to ... 11719 (finish_global_stmt_expr): ... this. 11720 * init.c (begin_init_stmts): Adjust calls. 11721 (finish_init_stmts): Likewise. 11722 * semantics.c (genrtl_begin_stmt_expr): Rename to ... 11723 (begin_global_stmt_expr): ... this. 11724 (genrtl_finish_stmt_expr): Rename to ... 11725 (finish_global_stmt_expr): ... this. 11726 117272000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 11728 11729 * search.c (lookup_member): Fix typo in comment. 11730 117312000-06-24 Jason Merrill <jason@redhat.com> 11732 11733 * decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace. 11734 (push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL. 11735 117362000-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 11737 11738 * parse.y (complex_direct_notype_declarator): Support global_scope. 11739 * Makefile.in: Adjust conflict count. 11740 117412000-06-23 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 11742 11743 * parse.y (template_arg): Convert TEMPLATE_DECL 11744 that is a template template parameter to 11745 TEMPLATE_TEMPLATE_PARM here. 11746 11747 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment. 11748 * cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro. 11749 (copy_template_template_parm): Adjust prototype. 11750 * decl.c (grokdeclarator): Remove dead code. 11751 * pt.c (process_template_parm): Tidy. 11752 (lookup_template_class): Construct nodes in 11753 copy_template_template_parm. 11754 (tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to 11755 lookup_template_class. Use TYPE_TI_TEMPLATE. 11756 * tree.c (copy_template_template_parm): Add NEWARGS 11757 parameter. 11758 (mapcar): Adjust call to copy_template_template_parm. 11759 * typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. 11760 * method.c (build_template_template_parm_names): Change error 11761 code to avoid compilation warning. 11762 11763 * gxxint.texi: Document template template parameter 11764 name mangling. 11765 117662000-06-21 Alex Samuel <samuel@codesourcery.com> 11767 11768 * Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o. 11769 (CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c. 11770 (cp-demangle.o): New rule. 11771 (dyn-string.o): Likewise. 11772 * inc/cxxabi.h (__cxa_demangle): New declaration. 11773 117742000-06-22 Mark Mitchell <mark@codesourcery.com> 11775 11776 * cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. 11777 (BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise. 11778 (lang_decl_flags): Add generate_with_vtable_p. Make vcall_offset 11779 a tree, not an int. 11780 (THUNK_GENERATE_WITH_VTABLE_P): New macro. 11781 (make_thunk): Change prototype. 11782 (emit_thunk): Rename to use_thunk. 11783 (mangle_thunk): Change prototype. 11784 * class.c (get_derived_offset): Simplify. 11785 (copy_virtuals): Clear BV_USE_VCALL_INDEX_P and 11786 BV_GENERATE_THUNK_WITH_VTABLE_P. 11787 (build_primary_vtable): Simplify. 11788 (add_virtual_function): Use BV_FN, rather than TREE_VALUE. 11789 (dfs_find_base): Remove. 11790 (update_vtable_entry_for_fn): Correct bug in finding the base 11791 where a virtual function was first declared. Figure out whether 11792 or not to emit a vcall-thunk with the vtables in which it appears. 11793 Correct logic for deciding whether to use an ordinary thunk, or a 11794 vcall thunk. 11795 (finish_struct_1): Remove unnecssary code. 11796 (build_vtbl_initializer): Use ssize_int for the running counter of 11797 negative indices. 11798 (build_vtbl_initializer): Only use vcall thunks where necessary. 11799 Mark thunks as needing to be emitted with their vtables, or not. 11800 (build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in 11801 indices. Use size_binop. 11802 (dfs_build_vcall_offset_vtbl_entries): Don't rely on 11803 BINFO_PRIMARY_MARKED_P here. Use BV_FN consistently. Use 11804 size_binop. 11805 (build_rtti_vtbl_entries): Adjust call to build_vtable_entry. 11806 (build_vtable_entry): Mark thunks as needing to be emitted with 11807 their vtables, or not. 11808 * decl.c (lang_mark_tree): Mark the vcall_offset in a thunk. 11809 * decl2.c (mark_vtable_entries): Use use_thunk instead of 11810 emit_thunk. 11811 * dump.c (dequeue_and_dump): Remove dead code. Dump new thunk 11812 information. 11813 * error.c (dump_expr): Use BV_FN. 11814 * mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree, 11815 not an int. 11816 * method.c (make_thunk): Likewise. 11817 (emit_thunk): Rename to use_thunk. Allow callers to decide 11818 whether or not to actually emit the thunk. Adjust for changes in 11819 representation of vcall offsets. 11820 * search.c (dfs_get_pure_virtuals): Use BV_FN. 11821 * semantics.c (emit_associated_thunks): New function. 11822 (expand_body): Use it. 11823 * ir.texi: Adjust decriptions of thunks. 11824 118252000-06-22 Jason Merrill <jason@redhat.com> 11826 11827 * pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE. 11828 (tsubst_friend_function): Copy it here. 11829 11830 * decl.c (grok_op_properties): Fix typo. 11831 11832 * decl2.c (delete_sanity): Clarify warning, avoid failure on 11833 deleting void*. 11834 11835 * pt.c (check_explicit_specialization): Clarify error. 11836 11837 * decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from 11838 an old OVERLOAD when we're declaring a non-function. 11839 (pushdecl, destroy_local_var): Check for error_mark_node. 11840 (warn_extern_redeclared_static): Also bail early if 11841 we're a CONST_DECL. 11842 (push_overloaded_decl): Ignore an old error_mark_node. 11843 118442000-06-22 Nathan Sidwell <nathan@codesourcery.com> 11845 11846 * call.c (build_x_va_arg): Check if in a template decl. 11847 * pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg. 11848 118492000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 11850 11851 * class.c (push_lang_context): TYPE_NAME gets you to the Java 11852 types DECLs. 11853 * decl.c (check_goto): Computed gotos assumed OK. 11854 118552000-06-20 Jason Merrill <jason@redhat.com> 11856 11857 * pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs 11858 for which we don't need to look for instantiations. 11859 118602000-06-21 Nathan Sidwell <nathan@codesourcery.com> 11861 11862 * parse.y (program): Always call finish_translation_unit. 11863 * parse.c, parse.h: Rebuilt. 11864 118652000-06-20 Zack Weinberg <zack@wolery.cumb.org> 11866 11867 * method.c: Don't include hard-reg-set.h. 11868 118692000-06-20 Nathan Sidwell <nathan@codesourcery.com> 11870 11871 * rtti.c (get_base_offset): Cope when vbase field is in a base. 11872 118732000-06-20 Nathan Sidwell <nathan@codesourcery.com> 11874 11875 * call.c (build_conditional_expr): Use VOID_TYPE_P. 11876 * cvt.c (cp_convert_to_pointer): Likewise. 11877 (convert_to_void): Likewise. 11878 * error.c (dump_expr): Likewise. 11879 * except.c (complete_ptr_ref_or_void_ptr_p): Likewise. 11880 * init.c (build_delete): Likewise. 11881 * method.c (emit_thunk): Likewise. 11882 * optmize.c (declare_return_variable): Likewise. 11883 * rtti.c (get_tinfo_decl_dynamic): Likewise. 11884 (get_typeid): Likewise. 11885 (build_dynamic_cast_1): Likewise. 11886 * typeck.c (composite_pointer_type): Likewise. 11887 (common_type): Likewise. 11888 (build_indirect_ref): Likewise. 11889 (build_binary_op): Likewise. 11890 (build_x_compound_expr): Likewise. 11891 (check_return_expr): Likewise. 11892 * typeck2.c (add_exception_specifier): Likewise. 11893 11894 * mangle.c (write_method_parms): Use direct comparison for end 11895 of parmlist. 11896 118972000-06-19 Benjamin Chelf <chelf@codesourcery.com> 11898 11899 * cp-tree.h (genrtl_try_block): Declare function. 11900 (genrtl_handler): Likewise. 11901 (genrtl_catch_block): Likewise. 11902 (genrtl_ctor_stmt): Likewise. 11903 (genrtl_subobject): Likewise. 11904 (genrtl_decl_cleanup): Likewise. 11905 (genrtl_do_poplevel): Likewise. 11906 (genrtl_do_pushlevel): Likewise. 11907 (genrtl_clear_out_block): Likewise. 11908 (genrtl_goto_stmt): Likewise. 11909 (genrtl_expr_stmt): Likewise. 11910 (genrtl_decl_stmt): Likewise. 11911 (genrtl_if_stmt): Likewise. 11912 (genrtl_while_stmt): Likewise. 11913 (genrtl_do_stmt): Likewise. 11914 (genrtl_return_stmt): Likewise. 11915 (genrtl_for_stmt): Likewise. 11916 (genrtl_break_stmt): Likewise. 11917 (genrtl_continue_stmt): Likewise. 11918 (genrtl_scope_stmt): Likewise. 11919 (genrtl_switch_stmt): Likewise. 11920 (genrtl_case_label): Likewise. 11921 (genrtl_begin_compound_stmt): Likewise. 11922 (genrtl_finish_compound_stmt): Likewise. 11923 (genrtl_compound_stmt): Likewise. 11924 (genrtl_asm_stmt): Likewise. 11925 (genrtl_named_return_value): Likewise. 11926 (genrtl_begin_stmt_expr): Likewise. 11927 (genrtl_finish_stmt_expr): Likewise. 11928 (finish_for_stmt): Removed first argument. 11929 (finish_switch_stmt): Likewise. 11930 11931 * semantics.c (genrtl_try_block): Define function. 11932 (genrtl_handler): Likewise. 11933 (genrtl_catch_block): Likewise. 11934 (genrtl_ctor_stmt): Likewise. 11935 (genrtl_subobject): Likewise. 11936 (genrtl_decl_cleanup): Likewise. 11937 (genrtl_do_poplevel): Likewise. 11938 (genrtl_do_pushlevel): Likewise. 11939 (genrtl_clear_out_block): Likewise. 11940 (genrtl_goto_stmt): Likewise. 11941 (genrtl_expr_stmt): Likewise. 11942 (genrtl_decl_stmt): Likewise. 11943 (genrtl_if_stmt): Likewise. 11944 (genrtl_while_stmt): Likewise. 11945 (genrtl_do_stmt): Likewise. 11946 (genrtl_return_stmt): Likewise. 11947 (genrtl_for_stmt): Likewise. 11948 (genrtl_break_stmt): Likewise. 11949 (genrtl_continue_stmt): Likewise. 11950 (genrtl_scope_stmt): Likewise. 11951 (genrtl_switch_stmt): Likewise. 11952 (genrtl_case_label): Likewise. 11953 (genrtl_begin_compound_stmt): Likewise. 11954 (genrtl_finish_compound_stmt): Likewise. 11955 (genrtl_compound_stmt): Likewise. 11956 (genrtl_asm_stmt): Likewise. 11957 (genrtl_named_return_value): Likewise. 11958 (genrtl_begin_stmt_expr): Likewise. 11959 (genrtl_finish_stmt_expr): Likewise. 11960 (finish_for_stmt): Removed first argument and generate rtl 11961 specific code. 11962 (finish_switch_stmt): Likewise. 11963 (do_poplevel): Removed generate rtl specific code. 11964 (do_pushlevel): Likewise. 11965 (add_tree): Likewise. 11966 (finish_goto_stmt): Likewise. 11967 (finish_expr_stmt): Likewise. 11968 (begin_if_stmt): Likewise. 11969 (finish_if_stmt_cond): Likewise. 11970 (finish_then_clause): Likewise. 11971 (begin_else_clause): Likewise. 11972 (finish_else_clause): Likewise. 11973 (finish_if_stmt): Likewise. 11974 (clear_out_block): Likewise. 11975 (begin_while_stmt): Likewise. 11976 (finish_while_stmt_cond): Likewise. 11977 (finish_while_stmt): Likewise. 11978 (begin_do_stmt): Likewise. 11979 (finish_do_body): Likewise. 11980 (finish_do_stmt): Likewise. 11981 (finish_return_stmt): Likewise. 11982 (begin_for_stmt): Likewise. 11983 (finish_for_init_stmt): Likewise. 11984 (finish_for_cond): Likewise. 11985 (finish_for_expr): Likewise. 11986 (finish_break_stmt): Likewise. 11987 (finish_continue_stmt): Likewise. 11988 (begin_switch_stmt): Likewise. 11989 (finish_switch_cond): Likewise. 11990 (finish_case_label): Likewise. 11991 (begin_try_block): Likewise. 11992 (begin_function_try_block): Likewise. 11993 (finish_try_block): Likewise. 11994 (finish_cleanup_try_block): Likewise. 11995 (finish_cleanup): Likewise. 11996 (finish_function_try_block): Likewise. 11997 (finish_handler_sequence): Likewise. 11998 (finish_function_handler_sequence): Likewise. 11999 (begin_handler): Likewise. 12000 (finish_handler_parms): Likewise. 12001 (begin_catch_block): Likewise. 12002 (finish_handler): Likewise. 12003 (begin_compound_stmt): Likewise. 12004 (finish_compound_stmt): Likewise. 12005 (finish_asm_stmt): Likewise. 12006 (finish_label_stmt): Likewise. 12007 (finish_label_decl): Likewise. 12008 (finish_subobject): Likewise. 12009 (finish_decl_cleanup): Likewise. 12010 (finish_named_return_value): Likewise. 12011 (begin_stmt_expr): Likewise. 12012 (finish_stmt_expr): Likewise. 12013 12014 * decl.c (initialize_local_var): Changed call to finish_expr_stmt 12015 to call genrtl_expr_stmt when appropriate. 12016 12017 * init.c (begin_init_stmts): Changed calls to begin_stmt_expr and 12018 begin_compound_expr to call genrtl_begin_stmt_expr and 12019 genrtl_begin_compound_expr when appropriate. 12020 (finish_init_stmts): Changed calls to finish_compound_expr and 12021 finish_stmt_expr to call genrtl_finish_compound_expr and 12022 genrtl_finish_stmt_expr when appropriate. 12023 (expand_default_init): Changed call to finish_expr_stmt to call 12024 genrtl_expr_stmt when appropriate. 12025 (build_vec_init): Likewise. 12026 12027 * parse.y (simple_stmt): Removed first argument from call to 12028 finish_for_stmt. Removed first argument from call to 12029 finish_switch_stmt. 12030 12031 * parse.c: Regenerated. 12032 12033 * pt.c (tsubst_expr): Removed first argument from call to 12034 finish_for_stmt. Removed first argument from call to 12035 finish_switch_stmt. 12036 120372000-06-16 Benjamin Chelf <chelf@codesourcery.com> 12038 12039 * cp-tree.h (enum cplus_tree_code): Changed __DUMMY to 12040 CP_DUMMY_TREE_CODE. Remove #include "c-common.def". 12041 12042 * lex.c (cplus_tree_code_type[]): Removed #include "c-common.def". 12043 (cplus_tree_code_length[]): Likewise. 12044 (cplus_tree_code_name[]): Likewise. 12045 (init_parse): Added call to add_c_tree_codes. Changed 12046 LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE. 12047 120482000-06-16 Mark Mitchell <mark@codesourcery.com> 12049 12050 * cp-tree.h (finish_mem_initializers): Declare. 12051 (count_trees): Likewise. 12052 * parse.y (base_init): Use finish_mem_initializers. 12053 * semantics.c (finish_mem_initializers): New function. 12054 12055 * tree.c (count_trees_r): Prototype. Use DATA parameter to store 12056 the number of trees. 12057 (n_trees): Remove. 12058 (count_trees): Don't use it. 12059 120602000-06-15 Jason Merrill <jason@redhat.com> 12061 12062 * tree.c (count_trees): New debugging function. 12063 12064 * typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P. 12065 * init.c (build_member_call): Pull out the name of a DECL. 12066 12067 * Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H. 12068 * semantics.c (expand_body): Push to TV_INTEGRATION here. 12069 * optimize.c (optimize_function): Not here. 12070 * pt.c (instantiate_decl): Push to TV_PARSE. 12071 120722000-06-15 Mark Mitchell <mark@codesourcery.com> 12073 12074 * cp-tree.h (struct language_function): Remove x_base_init_list 12075 and x_member_init_list. 12076 (current_base_init_list): Remove. 12077 (current_member_init_list): Likewise. 12078 (setup_vtbl_ptr): Change prototype. 12079 (emit_base_init): Likewise. 12080 (expand_member_init): Likewise. 12081 (reinit_parse_for_function): Remove. 12082 * decl.c (save_function_data): Don't clear x_base_init_list and 12083 x_member_init_list. 12084 (mark_language_function): Don't mark them. 12085 * init.c (perform_member_init): Tweak comment. 12086 (sort_member_init): Take the list of initializers as an argument. 12087 (sort_base_init): Likewise. 12088 (emit_base_init): Likewise. 12089 (expand_member_init): Return the initializer. Don't use global 12090 variables. 12091 * lex.c (reinit_parse_for_function): Remove. 12092 * method.c (build_template_parm_names): Correct substitution. 12093 (do_build_copy_constructor): Don't use current_member_init_list 12094 and current_base_init_list. 12095 (synthesize_method): Likewise. 12096 * parse.y (base_init): Split mem-initializers into 12097 base-initializers and field-initializers. 12098 (member_init_list): Build up the list here. 12099 (member_init): Return the initializer. 12100 (fn.depfn): Don't use reinit_parse_for_function. 12101 * parse.c: Regenerated. 12102 * pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the 12103 ERROR_MARK. 12104 (tsubst_expr): Don't use current_member_init_list 12105 and current_base_init_list. 12106 (tsubst_expr_values): Rename to ... 12107 (tsubst_initializer_list): ... this. Use convert_from_reference. 12108 * semantics.c (setup_vtbl_ptr): Don't use current_member_init_list 12109 and current_base_init_list. 12110 (begin_function_definition): Don't call reinit_parse_for_function. 12111 12112 * dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors. 12113 12114 * error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE 12115 correctly. 12116 12117 * cp-tree.h (DECL_PENDING_INLINE_P): Relax checking. 12118 121192000-06-14 Benjamin Chelf <chelf@codesourcery.com> 12120 12121 * cp-tree.h (IF_COND): Move to c-common.h. 12122 (THEN_CLAUSE): Likewise. 12123 (ELSE_CLAUSE): Likewise. 12124 (WHILE_COND): Likewise. 12125 (WHILE_BODY): Likewise. 12126 (DO_COND): Likewise. 12127 (DO_BODY): Likewise. 12128 (RETURN_EXPR): Likewise. 12129 (EXPR_STMT_EXPR): Likewise. 12130 (FOR_INIT_STMT): Likewise. 12131 (FOR_COND): Likewise. 12132 (FOR_EXPR): Likewise. 12133 (FOR_BODY): Likewise. 12134 (SWITCH_COND): Likewise. 12135 (SWITCH_BODY): Likewise. 12136 (CASE_LOW): Likewise. 12137 (CASE_HIGH): Likewise. 12138 (GOTO_DESTINATION): Likewise. 12139 (COMPOUND_BODY): Likewise. 12140 (ASM_CV_QUAL): Likewise. 12141 (ASM_STRING): Likewise. 12142 (ASM_OUTPUTS): Likewise. 12143 (ASM_INPUTS): Likewise. 12144 (ASM_CLOBBERS): Likewise. 12145 (DECL_STMT_DECL): Likewise. 12146 (STMT_EXPR_STMT): Likewise. 12147 (LABEL_STMT_LABEL): Likewise. 12148 (SCOPE_BEGIN_P): Likewise. 12149 (SCOPE_END_P): Likewise. 12150 (SCOPE_STMT_BLOCK): Likewise. 12151 (SCOPE_NULLIFIED_P): Likewise. 12152 (SCOPE_NO_CLEANUPS_P): Likewise. 12153 (SCOPE_PARTIAL_P): Likewise. 12154 (ASM_VOLATILE_P): Likewise. 12155 (STMT_LINENO): Likewise. 12156 (STMT_LINENO_FOR_FN_P): Likewise. 12157 12158 * cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR, 12159 ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, 12160 FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, 12161 CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, 12162 SCOPE_STMT, CASE_LABEL, STMT_EXPR. 12163 12164 * Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def. 12165 12166 * Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def. 12167 (cc1plus$(exeext)): Added $(srcdir)/c-common.def. 12168 12169 * lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'. 12170 (cplus_tree_code_length[]): Added '#include "c-common.def"'. 12171 (cplus_tree_code_name[]): Added '#include "c-common.def"'. 12172 121732000-06-14 Mark Mitchell <mark@codesourcery.com> 12174 12175 * cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro. 12176 * class.c (dfs_find_final_overrider): Set it appropriately. 12177 (dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to 12178 avoid unneeded secondary vptrs. 12179 121802000-06-13 Jakub Jelinek <jakub@redhat.com> 12181 12182 * class.c (build_secondary_vtable): Set DECL_USER_ALIGN. 12183 (check_bitfield_decl, check_field_decl): Likewise. 12184 (build_vtbl_or_vbase_field, build_base_field): Likewise. 12185 (layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN. 12186 * decl.c (record_unknown_type): Set TYPE_USER_ALIGN. 12187 (xfer_tag, finish_enum): Likewise. 12188 * decl2.c (finish_builtin_type): Likewise. 12189 * init.c (init_init_processing): Likewise. 12190 * pt.c (instantiate_class_template): Likewise. 12191 * rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN. 12192 * cp-tree.h (struct lang_type): Add user_align member. 12193 (CLASSTYPE_USER_ALIGN): Define. 12194 12195Tue Jun 13 15:48:03 2000 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 12196 12197 * Make-lang.in (c++.install-common): Install g++-cross in 12198 $(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as 12199 $(target_alias)-g++ and $(target_alias)-c++. 12200 122012000-06-12 Mark Mitchell <mark@codesourcery.com> 12202 12203 * class.c (vcall_offset_data_s): Add last_init and fns. 12204 (overrides): Rename to same_signature_p. 12205 (dfs_find_final_overrider): Adjust accordingly. 12206 (mark_overriders): Likewise. 12207 (warn_hidden): Likewise. 12208 (build_vtbl_initializer): Reorganize machinery for building things 12209 at negative offsets. 12210 (build_vcall_and_vbase_vtbl_entries): Likewise. 12211 (build_vbase_offset_vtbl_entries): Likewise. 12212 (dfs_build_vcall_offset_vtbl_entries): Correct order of vcall 12213 offset entries. Do not create two entries for functions with the 12214 same signature. 12215 (build_vcall_offset_vtbl_entries): Initialize vod->fns. 12216 (build_rtti_vtbl_entries): Reorganize machinery for building things 12217 at negative offsets. 12218 12219 * optimize.c (expand_call_inline): Don't recurse into the code 12220 used to initialize the parameters more than once. 12221 122222000-06-11 Mark Mitchell <mark@codesourcery.com> 12223 12224 * mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment. 12225 (is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here. 12226 (find_substitution): Only use the `Sa' substitution for 12227 std::allocator, not instantiations of it. 12228 (write_template_prefix): Move comment. Only use a TREE_LIST to 12229 represent substitutions for a member template. 12230 (write_array_type): Mangle array dimensions correctly. 12231 * optimize.c (maybe_clone_body): Copy more information from the 12232 cloned function. 12233 * pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE 12234 on the regenerated declaration. 12235 122362000-06-11 Chip Salzenberg <chip@valinux.com> 12237 Mark Mitchell <mark@codesourcery.com> 12238 12239 * class.c (build_vtable): Clarify comment. 12240 (build_ctor_vtbl_group): Pass the most derived type to 12241 build_vtable. 12242 122432000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12244 12245 * decl2.c (compare_options): Don't needlessly cast away const-ness. 12246 122472000-06-10 Mark Mitchell <mark@codesourcery.com> 12248 12249 * decl.c (add_binding): Handle duplicate declarations of external 12250 variables. 12251 122522000-06-09 Chip Salzenberg <chip@valinux.com> 12253 Mark Mitchell <mark@codesourcery.com> 12254 12255 * mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an 12256 argument. 12257 (write_signed_number): New macro. 12258 (write_unsigned_number): Likewise. 12259 (write_source_name): Use them. 12260 (write_number): Handle signed and unsigned values. 12261 (write_integer_cst): Use tree_int_cst_sgn, and use 12262 write_unsigned_number or write_signed_number as appropriate. 12263 (write_discriminator): Use write_unsigned_number or 12264 write_signed_number as appropriate. 12265 (write_template_arg_literal): Likewise. 12266 (write_array_type): Use tree_low_cst. 12267 (write_template_parm): Use write_unsigned_number or 12268 write_signed_number as appropriate. 12269 (write_substitution): Adjust call to write_number. 12270 (write_type): Get the TYPE_MAIN_VARIANT before mangling it. 12271 (write_expression): Handle non-type template arguments of 12272 reference type correctly. 12273 (mangle_thunk): Use write_signed_number. 12274 122752000-06-09 Chip Salzenberg <chip@valinux.com> 12276 12277 * mangle.c (find_substition): Don't mangle objects with typename 12278 substitutions (e.g. "cin" as "Si"). 12279 122802000-06-09 Zack Weinberg <zack@wolery.cumb.org> 12281 12282 * call.c (add_candidate): Use ggc_alloc_cleared. 12283 * decl.c (lookup_label): Likewise. 12284 * lex.c (retrofit_lang_decl): Likewise. 12285 122862000-06-09 Jason Merrill <jason@casey.soma.redhat.com> 12287 12288 * semantics.c (expand_body): Push to TV_EXPAND. 12289 * optimize.c (optimize_function): Push to TV_INTEGRATION. 12290 * decl.c (start_function): Always call announce_function. 12291 12292 * tinfo2.cc: Just declare abort. 12293 122942000-06-09 Gabriel Dos Reis <gdr@codesourcery.com> 12295 12296 * lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @' 12297 whenever @ is a symbolic name. 12298 122992000-06-08 Jakub Jelinek <jakub@redhat.com> 12300 12301 * method.c (make_thunk): Clear DECL_VTT_PARM in thunk. 12302 123032000-06-07 Mark Mitchell <mark@codesourcery.com> 12304 12305 * decl.c (pushdecl): Look up functions by DECL_NAME, not 12306 DECL_ASSEMBLER_NAME. 12307 123082000-06-06 Mark Mitchell <mark@codesourcery.com> 12309 12310 * decl2.c (c_language): Define. 12311 123122000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 12313 12314 * lex.c (lang_init_options): Tweak. 12315 12316 * decl2.c: Remove #inclusion of diagnostic.h 12317 (lang_decode_option): Move diagnostic formatting options to 12318 toplevel. 12319 12320 * lang-options.h: Remove documentation for diagnostic options. 12321 12322 * Makefile.in (lex.o): Depends upon diagnostic.h 12323 123242000-06-06 Mark Mitchell <mark@codesourcery.com> 12325 12326 * decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have 12327 the same DECL_RESULT, it's not a redefinition. 12328 * pt.c (tsubst_decl): Remove code to handle illegal 12329 specializations. 12330 123312000-06-06 Nathan Sidwell <nathan@codesourcery.com> 12332 12333 * exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c 12334 123352000-06-05 Jason Merrill <jason@casey.soma.redhat.com> 12336 12337 * search.c (maybe_suppress_debug_info): Don't check 12338 CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set. 12339 12340 * pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION 12341 here if extern_p. 12342 12343 Remember instantiation context in deferred instantiations. 12344 * cp-tree.h (struct tinst_level): Remove. 12345 (TINST_DECL, TINST_LINE, TINST_FILE): New macros. 12346 * pt.c (current_tinst_level): Now a tree. 12347 (print_template_context, push_tinst_level, pop_tinst_level, 12348 tinst_for_decl): Adjust. 12349 (reopen_tinst_level): New fn. 12350 (init_pt): Register current_tinst_level as a root. 12351 (add_pending_template): Put current_tinst_level in TREE_PURPOSE 12352 of the pending templates list. 12353 (instantiate_pending_templates): Adjust. Call reopen_tinst_level. 12354 * lex.c (extract_interface_info): Adjust. 12355 * decl2.c (warn_if_unknown_interface): Adjust. 12356 123572000-06-05 Mark Mitchell <mark@codesourcery.com> 12358 12359 * class.c (indirect_primary_base_p): New function. 12360 (determine_primary_base): Use it. 12361 123622000-06-05 Nathan Sidwell <nathan@codesourcery.com> 12363 12364 Update new-abi dynamic cast algorithm. 12365 * tinfo.cc (__class_type_info::__dyncast_result): Add 12366 whole_details. Adjust constructor. 12367 (__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags. 12368 Avoid unnecessary searching. 12369 (__dynamic_cast): Adjust for __dyncast_result::whole_details. 12370 12371Mon Jun 5 06:48:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12372 12373 * decl.c (init_decl_processing): Don't call record_component_aliases. 12374 * tree.c (build_cplus_array_type_1): Likewise. 12375 123762000-06-04 Mark Mitchell <mark@codesourcery.com> 12377 12378 * ir.texi: Correct typo. 12379 * mangle.c (write_expression): Handle non-type template arguments 12380 with reference type. 12381 * method.c (build_overload_value): Likewise. 12382 * pt.c (convert_nontype_argument): Explicitly represent conversion 12383 to a reference with an ADDR_EXPR. 12384 (unify): Always unify arguments in left-to-right order. 12385 123862000-06-03 Alex Samuel <samuel@codesourcery.com> 12387 Mark Mitchell <mark@codesourcery.com> 12388 12389 * Make-lang.in (CXX_SRCS): Add mangle.c. 12390 * Makefile.in (CXX_OBJS): Add mangle.o. 12391 (mangle.o): New rule. 12392 12393 * class.c (local_classes): New variable. 12394 * class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI. 12395 (get_vtt_name): Use mangle_vtt_name for new ABI. 12396 (init_class_processing): Initialize local_classes. 12397 (build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI. 12398 * cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER. 12399 (std_identifier): New macro. 12400 (DECL_VOLATILE_MEMFUNC_P): New macro. 12401 (DECL_NAMESPACE_STD_P): Likewise. 12402 (local_classes): Declare. 12403 (get_mostly_instantiated_function_type): Declare. 12404 (init_mangle): Declare. 12405 (mangle_decl): Likewise. 12406 (mangle_type_string): Likewise. 12407 (mangle_type): Likewise. 12408 (mangle_typeinfo_for_type): Likewise. 12409 (mangle_typeinfo_string_for_type): Likewise. 12410 (mangle_vtbl_for_type): Likewise. 12411 (mangle_vtt_for_type): Likewise. 12412 (mangle_ctor_vtbl_for_type): Likewise. 12413 (mangle_thunk): Likewise. 12414 (mangle_conv_op_name_for_type): Likewise. 12415 (mangle_guard_variable): Likewise. 12416 * decl.c (pushtag): Keep track of local classes. 12417 (initialize_predefined_identifiers): Initialize std_identifier. 12418 (init_decl_processing): Use std_identifier. 12419 (start_decl): Don't treat instantiations as specializations. 12420 (grokdeclarator): Likewise. 12421 (grokvardecl): Call mangle_decl for new ABI. Only set mangled 12422 name for fully-instantiated templates. 12423 * decl2.c (grokclassfn): Use set_mangled_name_for_decl for 12424 destructors with the new ABI. 12425 (finish_static_data_member_decl): Use mangle_decl under the new ABI. 12426 (grokfield): Use mangle_type for new ABI. 12427 (grokoptypename): Use mangle_conv_op_for_type for new ABI. 12428 (get_sentry): Use mangle_guard_variable for new ABI. 12429 (start_static_initialization_or_destruction): Likewise. 12430 * expr.c (extract_aggr_init): Remove. 12431 (extract_scalar_init): Likewise. 12432 (extract_init): Remove #if 0'd code. 12433 * mangle.c: New function. 12434 * method.c (build_mangled_name): Assert not flag_new_abi. 12435 (build_static_name): Likewise. 12436 (build_decl_overload_real): Likewise. 12437 (build_typename_overload): Likewise. 12438 (build_overload_with_type): Likewise. 12439 (build_overload_name): Likewise. 12440 (get_ctor_vtbl_name): Likewise. 12441 (start_squangling): Likewise. 12442 (get_id_2): Likewise. 12443 (set_mangled_name_for_decl): Call mangle_decl for new ABI. 12444 (init_method): Call init_mangle for new ABI. 12445 (make_thunk): Call mangle_thunk for new ABI. 12446 * operators.def: Correct new ABI manglings for the `%' operator. 12447 Add `::' operator. 12448 * pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and 12449 DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL. 12450 (lookup_template_class): Call mangle_decl for new ABI. 12451 (get_mostly_instantiated_function_type): New function. 12452 (set_mangled_name_for_template_decl): Use it. 12453 (tsubst_decl): Use set_mangled_name_for_decl for destructors with 12454 the new ABI. Use mangle_conv_op_name_for_type for instantiated 12455 conversion op names. 12456 * rtti.c (tinfo_name): Call mangle_type_string for new ABI. 12457 (get_tinfo_decl): Call mangle_typeinfo_for_type for new ABI. 12458 (tinfo_base_init): Likewise. Mangle typeinfo string name with 12459 mangle_typeinfo_string_for_type. 12460 124612000-06-03 Mark Mitchell <mark@codesourcery.com> 12462 12463 * cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. 12464 (INNERMOST_TEMPLATE_ARGS): New macro. 12465 (innermost_args): Remove. 12466 (get_innermost_template_args): New function. 12467 * decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS. 12468 * error.c (dump_function_decl): Be caution when using 12469 most_general_template. 12470 * method.c (build_template_parm_names): Use 12471 INNERMOST_TEMPLATE_ARGS. 12472 * pt.c (add_to_template_args): Tidy comment 12473 (get_innermost_template_args): New function. 12474 (check_explicit_specialization): Clear DECL_INITIAL for a new 12475 specialization. 12476 (process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS. 12477 Tidy. 12478 (push_template_decl): Always register specializations of the most 12479 general template. 12480 (convert_template_argument): Use INNERMOST_TEMPLATE_ARGS. 12481 (coerce_template_parms): Likewise. 12482 (lookup_template_class): Likewise. 12483 (innermost_args): Remove. 12484 (tsubst_decl): Use INNERMOST_TEMPLATE_ARGS. 12485 (tsubst_decl): Handle tricky specializations. Use 12486 get_innermost_template_args. 12487 (instantiate_template): Simplify handling of partial 12488 instantiations. 12489 (get_class_bindings): Use INNERMOST_TEMPLATE_ARGS. 12490 (most_general_template): Reimplement, in a more straightforward 12491 manner. 12492 (regenerate_decl_from_template): Tweak formatting. Use 12493 TMPL_ARGS_DEPTH for clarity. 12494 (set_mangled_name_for_template_decl): Use INNERMOST_ARGS. 12495 12496 * dump.c (dequeue_and_dump): Dump information about thunks. 12497 124982000-06-01 Richard Henderson <rth@cygnus.com> 12499 12500 * decl.c (init_decl_processing): Set lang_get_alias_set first thing. 12501 125022000-06-01 Richard Henderson <rth@cygnus.com> 12503 12504 * decl2.c (unsupported_options): Fix typo, make const. 12505 (lang_decode_option): Fix bsearch argument order. 12506 125072000-06-01 Mark Mitchell <mark@codesourcery.com> 12508 12509 * init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE 12510 on FIELD_DECLs. 12511 12512Wed May 31 14:09:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12513 12514 * cp-tree.h (c_get_alias_set): Deleted. 12515 * Makefile.in (decl.o): Include ../expr.h. 12516 * decl.c (expr.h): Include. 12517 (init_decl_processing): Call record_component_aliases for arrays. 12518 (grokdeclarator): Likewise. 12519 Set TREE_ADDRESSABLE for fields that aren't bitfields. 12520 * tree.c (build_cplus_array_type_1): Call record_component_aliases. 12521 125222000-05-31 Mark Mitchell <mark@codesourcery.com> 12523 12524 Remove guiding declaration support. 12525 * cp/cp-tree.h (flag_dump_translation_unit): Make it const. 12526 (flag_guiding_decls): Remove. 12527 * call.c (build_user_type_conversion_1): Remove support for 12528 guiding decls. 12529 (build_new_function_call): Likewise. 12530 (build_new_op): Likewise. 12531 (build_new_method_call): Likewise. 12532 * decl.c (start_function): Likewise. 12533 * friend.c (is_friend): Likewise. 12534 (do_friend): Likewise. 12535 * decl2.c ((flag_dump_translation_unit): Make it const. 12536 (flag_guiding_decls): Remove. 12537 (unsupported_options): New variable 12538 (compare_options): New function. 12539 (lang_decode_option): Use them. 12540 12541 * decl.c (build_cp_library_fn): Set DECL_CONTEXT. 12542 12543 * method.c (mangle_expression): Adjust test for legal expression 12544 operators. 12545 12546 * pt.c (instantiate_decl): Save and restore the local 12547 specializations list. 12548 125492000-05-30 Jason Merrill <jason@decepticon.cygnus.com> 12550 12551 * decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING. 12552 125532000-05-30 Mark Mitchell <mark@codesourcery.com> 12554 12555 * call.c (add_template_candidate_real): Handle member template 12556 constructors for classes with virtual bases. 12557 (build_user_type_conversion_1): Use in_charge_arg_for_name. 12558 (build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P. 12559 12560 * ir.texi: Update thunk documentation. 12561 12562 * call.c (joust): Fix handling of overloaded builtin operators. 12563 125642000-05-30 Zack Weinberg <zack@wolery.cumb.org> 12565 12566 * cp-tree.h (DECL_ANTICIPATED): New macro. 12567 Document new use of DECL_LANG_FLAG_7. 12568 * decl.c (builtin_function): Set DECL_ANTICIPATED on builtins 12569 in the user namespace. 12570 * lex.c (do_identifier): If the identifier's declaration has 12571 DECL_ANTICIPATED on, it has not yet been declared. But do not 12572 replace it with an ordinary implicit declaration. 12573 12574 * tinfo2.cc: Include stdlib.h. 12575 125762000-05-29 Mark Mitchell <mark@codesourcery.com> 12577 12578 * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. 12579 * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not 12580 CLASSTYPE_ALIGN. 12581 125822000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> 12583 12584 * decl2.c (lang_decode_option): Use skip_leading_substring instead 12585 of plain strncmp. 12586 125872000-05-28 Alexandre Oliva <aoliva@cygnus.com> 12588 12589 * operators.def (<?): Duplicated, should have been... 12590 (>?): this. Fixed. 12591 125922000-05-27 Alex Samuel <samuel@codesourcery.com> 12593 Mark Mitchell <mark@codesourcery.com> 12594 12595 * cp-tree.h (ansi_opname): Make it a macro. 12596 (ansi_assopname): Likewise. 12597 (struct lang_decl_flags): Add assignment_operator_p. 12598 (struct lang_decl): Add operator_code. 12599 (DECL_VTT_PARM): Adjust. 12600 (DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an 12601 overloaded operator. 12602 (SET_OVERLOADED_OPERATOR_CODE): New macro. 12603 (DECL_ASSIGNMENT_OPERATOR_P): New macro. 12604 (DECL_ARRAY_DELETE_OPERATOR_P): Adjust. 12605 (opname_tab): Remove. 12606 (assignop_tab): Likewise. 12607 (operator_name_info_t): New type. 12608 (operator_name_info): New variable. 12609 (assignment_operator_name_info): Likewise. 12610 (build_cp_library_fn): Remove declaration. 12611 (push_cp_library_fn): Likewise. 12612 (operator_name_string): Likewise. 12613 (build_decl_overload): Likewise. 12614 * call.c (print_z_candidates): Simplify. 12615 (build_object_call): Adjust usage of ansi_opname. Use 12616 DECL_OVERLOADED_OPERATOR_P. 12617 (op_error): Adjust operator name lookup. 12618 (build_conditional_expr): Adjust usage of ansi_opname. 12619 (build_new_op): Likewise. 12620 (build_op_delete_call): Likewise. 12621 (build_over_call): Likewise. 12622 (joust): Use DECL_OVERLOADED_OPERATOR_P. 12623 * decl.c (duplicate_decls): Copy operator_code. 12624 (init_decl_processing): Adjust parameters to push_cp_library_fn. 12625 (builtin_function): Adjust parameters to build_library_fn_1. 12626 (build_library_fn_1): Accept an overloaded operator code. 12627 (build_library_fn): Pass ERROR_MARK. 12628 (build_cp_library_fn): Accept an overloaded operator code. 12629 (push_cp_library_fn): Likewise. 12630 (grokfndecl): Tweak. 12631 (grokdeclarator): Simplify code to compute names of overloaded 12632 operators. Adjust use of ansi_opname. 12633 (ambi_op_p): Work on tree_codes, not identifiers. 12634 (unary_op_p): Likewise. 12635 (grok_op_properties): Likewise. 12636 (start_function): Use DECL_OVERLOADED_OPERATOR_P. 12637 (lang_mark_tree): Don't try to mark the operator_code. 12638 * decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P. 12639 * error.c (dump_decl): Remove special handling for operator 12640 names. 12641 (dump_function_name): Likewise. 12642 (dump_expr): Adjust name lookup of operators. 12643 (op_to_string): Simplify. 12644 (assop_to_string): Likewise. 12645 * init.c (build_new_1): Adjust use of ansi_opname. 12646 * lex.c (opname_tab): Remove. 12647 (assignop_tab): Likewise. 12648 (ansi_opname): Likewise. 12649 (ansi_assopname): Likewise. 12650 (operator_name_string): Likewise. 12651 (reinit_lang_specific): Likewise. 12652 (operator_name_info): New variable. 12653 (assignment_operator_name_info): Likewise. 12654 (init_operators): New function. 12655 (init_parse): Use it. 12656 (do_identifier): Adjust use of ansi_opname. 12657 * method.c (mangle_expression): Don't use ansi_opname for 12658 mangling. 12659 (build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P. 12660 (build_decl_overload): Remove. 12661 (build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly. 12662 (do_build_assign_ref): Adjust use of ansi_opname. 12663 (synthesize_method): Likewise. 12664 (implicitly_declare_fn): Likewise. 12665 * operators.def: New file. 12666 * parse.y (operator): Adjust use of ansi_opname. 12667 * pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P. 12668 (set_mangled_name_for_template_decl): Don't play games with 12669 current_namespace. 12670 (special_function_p): Adjust use of ansi_opname. 12671 * typeck.c (check_return_expr): Likewise. 12672 * Make-lang.in (cc1plus): Depend on operators.def. 12673 * Makefile.in (lex.o): Likewise. 12674 (decl.o): Likewise. 12675 126762000-05-27 Zack Weinberg <zack@wolery.cumb.org> 12677 12678 * Make-lang.in (cplib2.ready): Eradicate. 12679 12680Sat May 27 11:25:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12681 12682 * method.c (mangle_expression): Use TREE_CODE_LENGTH. 12683 * tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. 12684 (built_min, cp_tree_equal): Likewise. 12685 126862000-05-26 Mark Mitchell <mark@codesourcery.com> 12687 12688 * class.c (layout_nonempty_base_or_field): Replace 12689 `record_layout_info' with `record_layout_info_s'. 12690 126912000-05-26 Jason Merrill <jason@casey.soma.redhat.com> 12692 12693 Fix goto checking. 12694 * cp-tree.h (struct language_function): x_named_labels is now 12695 a struct named_label_list*. 12696 * decl.c (struct named_label_use_list): Renamed from... 12697 (struct named_label_list): ...this. New struct. 12698 (push_binding_level): Don't set eh_region. 12699 (note_level_for_eh): New fn. 12700 (pop_label): Take label and old value directly. 12701 (pop_labels): Adjust for new named_labels format. 12702 (lookup_label): Likewise. 12703 (poplevel): Note characteristics of a binding level containing a 12704 named label. Mess with named label lists earlier. 12705 (mark_named_label_lists): New fn. 12706 (mark_lang_function): Call it. 12707 (use_label): New fn, split out from... 12708 (make_label_decl): ...here. Don't call it. 12709 (decl_jump_unsafe, check_previous_goto, check_previous_goto_1, 12710 check_previous_gotos): New fns, split out from... 12711 (define_label): ...here. 12712 (check_switch_goto): New fn. 12713 (define_case_label): Call it. 12714 (check_goto): New fn. 12715 * semantics.c (finish_goto_stmt): Call it and use_label. 12716 (begin_compound_stmt): If we're a try block, call note_level_for_eh. 12717 (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings. 12718 127192000-05-26 Mark Mitchell <mark@codesourcery.com> 12720 12721 * class.c (build_vtable_entry_ref): Correct usage of 12722 get_vtbl_decl_for_binfo. 12723 12724 * decl2.c (grokclassfn): Set DECL_LANGUAGE here. 12725 * method.c (implicitly_declare_fn): Not here. 12726 127272000-05-26 Nathan Sidwell <nathan@codesourcery.com> 12728 12729 * cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ... 12730 (CPTI_PTMD_DESC_TYPE): ... here. 12731 (ptmd_desc_type_node): Rename to ... 12732 (ptm_desc_type_node): ... here. 12733 * decl.c: Likewise. 12734 * rtti.c (ptmd_initializer): Rename to ... 12735 (ptm_initializer): ... here. 12736 (sythesize_tinfo_var): Adjust. Deal with pointer to member 12737 function. 12738 (create_tinfo_types): Adjust. 12739 127402000-05-25 Mark Mitchell <mark@codesourcery.com> 12741 12742 Finish implementation of VTTs. 12743 * cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and 12744 CPTI_VTT_PARM_IDENTIFIER. 12745 (vtt_parm_identifier): New macro. 12746 (vtt_parm_type): Likewise. 12747 (BINFO_SUBVTT_INDEX): Likewise. 12748 (BINFO_VPTR_INDEX): Likewise. 12749 (struct lang_decl): Add vtt_parm. 12750 (DECL_VTT_PARM): New macro. 12751 (DECL_USE_VTT_PARM): Likewise. 12752 (DECL_NEEDS_VTT_PARM_P): Likewise. 12753 (get_vtt_name): Declare. 12754 (build_artificial_parm): Likewise. 12755 (fixup_all_virtual_upcast_offsets): Likewise. 12756 (expand_indirect_vtbls_init): Remove. 12757 * call.c (build_new_method_call): Pass the vtt to subobject 12758 constructors and destructors. 12759 * class.c (get_vtt_name): Give it external linkage. 12760 (build_clone): Handle the magic VTT parameters for clones. 12761 (clone_function_decl): Fix typo in comment. 12762 (build_vtt): Keep track of the indices in the VTTs where various 12763 entities are stored. 12764 (build_vtt_inits): Likewise. 12765 (dfs_build_vtt_inits): Likewise. 12766 (build_ctor_vtbl_group): Tweak type of construction vtables. 12767 (dfs_accumulate_vtbl_inits): Build vtables for all bases, even 12768 primary bases, when building construction vtables. 12769 * decl.c (duplicate_decls): Handle DECL_VTT_PARM. 12770 (initialize_predefined_identifiers): Add vtt_parm_identifier. 12771 (init_decl_processing): Initialize vtt_parm_type. 12772 (grokfndecl): Use DECL_OVERLOADED_OPERATOR_P. 12773 (lang_mark_tree): Make vtt_parm. 12774 * decl2.c (build_artificial_parm): New function. 12775 (maybe_retrofit_in_chrg): Use it. Add VTT parameters. 12776 (grokclassfn): Use build_artificial_parm. 12777 * init.c (initialize_vtbl_ptrs): Call 12778 fixup_all_virtual_upcast_offsets directly. 12779 (perform_member_init): Use the complete subobject destructor for 12780 member cleanups. 12781 (build_vtbl_address): New function. 12782 (expand_virtual_init): Handle VTTs. 12783 * optimize (maybe_clone_body): Likewise. 12784 * search.c (fixup_all_virtual_upcast_offsets): Give it external 12785 linkage. 12786 (expand_indirect_vtbls_init): Remove. 12787 * semantics.c (setup_vtbl_ptr): Fix typos in comment. 12788 * tree.c (make_binfo): Make them bigger. 12789 127902000-05-25 Nathan Sidwell <nathan@codesourcery.com> 12791 12792 * inc/cxxabi.h (__pbase_type_info): Define, based on 12793 __pointer_type_info. 12794 (__pointer_type_info): Derive from __pbase_type_info. Adjust. 12795 (__pointer_to_member_type_info): Likewise. 12796 * tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement. 12797 (__pointer_to_member_type_info::__is_pointer_p): Remove. 12798 (__pointer_type_info::__do_catch): Rename to ... 12799 (__pbase_type_info::__do_catch): ... here. Adjust. 12800 (__pbase_type_info::__pointer_catch): Implement. 12801 (__pointer_type_info::__pointer_catch): Adjust. 12802 (__pointer_to_member_type_info::__pointer_catch): Adjust. 12803 128042000-05-25 Nathan Sidwell <nathan@codesourcery.com> 12805 12806 * tinfo.h (__user_type_info::contained_virtual_p): New 12807 predicate. 12808 * tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond 12809 shaped hierarchy. 12810 (__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to 12811 diamond shaped hierarchy. Add early out for mixed diamond and 12812 duplicate shaped hierarchy. 12813 128142000-05-24 Mark Mitchell <mark@codesourcery.com> 12815 12816 * cp-tree.h (build_delete): Change prototype. 12817 (build_vec_delete): Likewise. 12818 * call.c (build_scoped_method_call): Use special_function_kind 12819 values to indicate the kind of destruction to be done. 12820 (build_method_call): Likewise. 12821 * decl.c (finish_destructor_body): Likewise. 12822 (maybe_build_cleanup_1): Likewise. Rename to ... 12823 (maybe_build_cleanup): ... this. 12824 * decl2.c (delete_sanity): Use special_function_kind 12825 values to indicate the kind of destruction to be done. 12826 (build_cleanup): Likewise. 12827 * init.c (perform_member_init): Likewise. 12828 (build_vec_delete_1): Likewise. 12829 (build_dtor_call): Simplify. 12830 (build_delete): Use special_function_kind 12831 values to indicate the kind of destruction to be done. 12832 (build_vbase_delete): Likewise. 12833 (build_vec_delete): Likewise. 12834 12835 * init.c (sort_member_init): Fix typo in error message generation 12836 code. 12837 12838Mon May 15 11:46:29 2000 Donald Lindsay <dlindsay@cygnus.com> 12839 12840 * semantics.c (begin_class_definition): make the packed 12841 attribute be sensitive to the "-fpack-struct" command line flag 12842 128432000-05-24 Nathan Sidwell <nathan@codesourcery.com> 12844 12845 Update new-abi upcast algorithm. 12846 * inc/cxxabi.h (__class_type_info::__do_upcast): Change 12847 prototype and meaning of return value. 12848 (__si_class_type_info::__do_upcast): Likewise. 12849 (__vmi_class_type_info::__do_upcast): Likewise. 12850 * tinfo.cc (__class_type_info::__upcast_result): Replace 12851 whole2dst with part2dst. Adjust ctor. 12852 (__class_type_info::__do_upcast): Adjust call of worker function. 12853 (__class_type_info::__do_upcast): Adjust. 12854 (__si_class_type_info::__do_upcast): Adjust. Use parent's 12855 __do_upcast. 12856 (__vmi_class_type_info::__do_upcast): Likewise. Fix private 12857 virtual base in diamond hierarchy bug. 12858 128592000-05-23 Mark Mitchell <mark@codesourcery.com> 12860 12861 * cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable 12862 and bitfield to tinfo_fn_p. 12863 (DECL_TINFO_FN_P): Adjust. 12864 (SET_DECL_TINFO_FN_P): Likewise. 12865 (DECL_MUTABLE_P): Likewise. 12866 (DECL_C_BIT_FIELD): Likewise. 12867 (SET_DECL_C_BIT_FIELD): Likewise. 12868 (CLEAR_DECL_C_BIT_FIELD): Likewise. 12869 (DECL_UNINLINABLE): Likewise. 12870 * class.c (alter_access): Call retrofit_lang_decl if ncessary. 12871 (handle_using_decl): Remove assertion. 12872 (build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl, 12873 to build FIELD_DECLs. 12874 (build_base_field): Likewise. 12875 (layout_class_type): Likewise. 12876 * decl.c (init_decl_processing): Likewise. 12877 (build_ptrmemfunc_type): Likewise. 12878 (grokdeclarator): Likewise. 12879 * decl2.c (grok_x_components): Likewise. 12880 * except.c (call_eh_info): Likewise. 12881 * init.c (init_init_processing): Likewise. 12882 * rtti.c (expand_class_desc): Likewise. 12883 (create_pseudo_type_info): Likewise. 12884 (get_vmi_pseudo_type_info): Likewise. 12885 (create_tinfo_types): Likewise. 12886 * ptree.c (print_lang_decl): Adjust. 12887 * typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC 12888 before checking DECL_MUTABLE_P. 12889 12890 * decl2.c (maybe_retrofit_in_chrg): Don't create in-charge 12891 parameters for template functions. 12892 * pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for 12893 destructors as well as constructors. 12894 128952000-05-22 Mark Mitchell <mark@codesourcery.com> 12896 12897 * class.c (build_ctor_vtbl_group): Set inits. 12898 * optimize.c (maybe_clone_body): Set DECL_INLINE and 12899 DECL_THIS_INLINE appropriately for clones. 12900 12901 * cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. 12902 (DECL_CONV_FN_P): Simplify. 12903 (DECL_OPERATOR): Remove. 12904 (language_to_string): Declare. 12905 * decl.c (duplicate_decls): Fix typo in comment. 12906 (grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P. 12907 (grok_op_properties): Use DECL_CONV_FN_P instead of 12908 IDENTIFIER_TYPENAME_P. 12909 * dump.c (dequeue_and_dump): Dump the language linkage of 12910 declarations. 12911 * error.c (language_to_string): Give it external linkage. 12912 * method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P. 12913 (implicitly_declare_fn): Set DECL_LANGUAGE. 12914 * pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not 12915 IDENTIFIER_TYPENAME_P. 12916 (tsubst_decl): Likewise. 12917 (tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P. 12918 * semantics.c (finish_member_declaration): Don't mark members of 12919 classes declared in an extern "C" region as extern "C". 12920 129212000-05-22 Martin v. L�wis <loewis@informatik.hu-berlin.de> 12922 12923 * decl2.c (qualified_lookup_using_namespace): Look through 12924 namespace aliases. 12925 12926 * decl.c (push_using_decl): Return the old decl on namespace level. 12927 129282000-05-21 Mark Mitchell <mark@codesourcery.com> 12929 12930 * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks. 12931 (VTT_NAME_PREFIX): New macro. 12932 (CTOR_VTBL_NAME_PREFIX): Likewise. 12933 (get_ctor_vtbl_name): New function. 12934 * class.c (get_vtable_name): Simplify. 12935 (get_vtt_name): New function. 12936 (get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE. 12937 (dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list 12938 when a virtual base becomes primary. 12939 (finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier. Build 12940 VTTs. 12941 (finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in 12942 additional parameters. 12943 (dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED. 12944 (initialize_array): New function. 12945 (build_vtt): Likewise. 12946 (build_vtt_inits): Likewise. 12947 (dfs_build_vtt_inits): Likewise. 12948 (dfs_fixup_binfo_vtbls): Likewise. 12949 (build_ctor_vtbl_group): Likewise. 12950 (initialize_vtable): Use initialize_array. 12951 (accumulate_vtbl_inits): Reimplement to handle construction 12952 vtables. 12953 (dfs_accumulate_vtbl_inits): Likewise. 12954 (bulid_vtbl_initializer): Adjust parameter name. 12955 * method.c (build_typename_overload): Remove #if 0'd code. 12956 (get_ctor_vtbl_name): New function. 12957 * search.c (dfs_walk_real): Use BINFO_N_BASETYPES. 12958 (init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo. 12959 12960 * cp-tree.h (struct lang_type): Remove search_slot. 12961 (CLASSTYPE_SEARCH_SLOT): Remove. 12962 (emit_base_init): Change prototype. 12963 (initialize_vtbl_ptrs): Likewise. 12964 (expand_indirect_vtbls_init): Likewise. 12965 (clear_search_slots): Remove. 12966 * decl.c (lang_mark_tree): Don't mark search_slot. 12967 * init.c (initialize_vtbl_ptrs): Simplify. 12968 (emit_base_init): Likewise. 12969 * search.c (struct vbase_info): Document decl_ptr. 12970 (convert_pointer_to_single_level): Remove. 12971 (dfs_find_vbases): Remove. 12972 (dfs_init_base_pointers): Simplify. 12973 (dfs_clear_vbase_slots): Remove. 12974 (dfs_vtable_path_unmark): New function. 12975 (init_vbase_pointers): Simplify. 12976 (expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT. 12977 (expand_indirect_vtbls_init): Simplify. Don't call 12978 mark_all_temps_used. 12979 * semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and 12980 initialize_vtbl_ptrs. 12981 129822000-05-20 Zack Weinberg <zack@wolery.cumb.org> 12983 12984 * except.c: Add static prototypes. 12985 129862000-05-20 H.J. Lu <hjl@gnu.org> 12987 12988 * Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext). 12989 129902000-05-19 Mark Mitchell <mark@codesourcery.com> 12991 12992 Don't create a separate copy of virtual bases for the 12993 CLASSTYPE_VBASECLASSES list. 12994 * cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation. 12995 (BINFO_FOR_VBASE): Remove. 12996 (CANONICAL_BINFO): Adjust. 12997 (binfo_for_vbase): New function. 12998 * class.c (build_vbase_pointer_fields): Use binfo_for_vbase 12999 instead of BINFO_FOR_VBASE. 13000 (build_vbase_pointer): Likewise. 13001 (build_secondary_vtable): Likewise. 13002 (dfs_mark_primary_bases): Likewise. 13003 (mark_primary_bases): Likewise. 13004 (layout_nonempty_base_or_field): Likewise. 13005 (dfs_set_offset_for_shared_vbases): Likewise. 13006 (dfs_set_offset_for_unshared_vbases): Likewise. 13007 (layout_virtual_bases): Likewise. Adjust for changes to the 13008 CLASSTYPE_VBASECLASSES list. 13009 (dump_class_hierarchy_r): Use binfo_for_vbase 13010 instead of BINFO_FOR_VBASE. 13011 (dump_class_hierarchy): Likewise. 13012 (finish_vtbls): Likewise. 13013 (build_vtbl_initializer): Adjust for changes to the 13014 CLASSTYPE_VBASECLASSES list. 13015 (build_vbase_offset_vtbl_entries): Use binfo_for_vbase. 13016 * decl.c (finish_destructor_body): Adjust for changes to the 13017 CLASSTYPE_VBASECLASSES list. 13018 * init.c (sort_base_init): Use binfo_for_vbase. 13019 (construct_virtual_bases): Adjust for changes to the 13020 CLASSTYPE_VBASECLASSES list. 13021 (expand_member_init): Use binfo_for_vbase. 13022 (build_vbase_delete): Adjust for changes to the 13023 CLASSTYPE_VBASECLASSES list. 13024 * method.c (do_build_copy_constructor): Likewise. 13025 * rtti.c (get_base_offset): Use binfo_for_vbase. 13026 (expand_class_desc): Remove #if 0'd code. 13027 * search.c (struct vbase_info): Remove vbase_types. 13028 (get_base_distance): Use binfo_for_vbase. 13029 (lookup_field_queue_p): Use CANONICAL_BINFO. 13030 (get_shared_vbase_if_not_primary): Use binfo_for_vbase. 13031 (get_pure_virtuals): Adjust for changes to the 13032 CLASSTYPE_VBASECLASSES list. 13033 (dfs_find_vbases): Use binfo_for_vbase. 13034 (dfs_init_vbase_pointers): Likewise. 13035 (init_vbase_pointers): Don't initialize vi.vbase_types. 13036 (virtual_context): Use binfo_for_vbase. 13037 (fixup_all_virtual_upcast_offsets): Adjust for changes to the 13038 CLASSTYPE_VBASECLASSES list. 13039 (expand_indirect_vtbls_init): Simplify. 13040 (dfs_get_vbase_types): Don't replicate virtual bases. 13041 (find_vbase_instance): Use binfo_for_vbase. 13042 (binfo_for_vbase): New function. 13043 * typeck.c (get_delta_difference): Use binfo_for_vbase. 13044 130452000-05-17 Mark Mitchell <mark@codesourcery.com> 13046 13047 * decl2.c (finish_anon_union): Generalize error messages to handle 13048 anonymous structures. 13049 * init.c (perform_member_init): Remove `name' parameter. 13050 (build_field_list): New function. 13051 (sort_member_init): Handle anonymous union initialization order 13052 correctly. Check for multiple initializations of the same union. 13053 (emit_base_init): Don't look up fields by name here. 13054 (expand_member_init): Record the result of name lookup for future 13055 reference. 13056 * typeck.c (build_component_ref): Fix formatting. 13057 13058Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com> 13059 13060 * decl.c (pop_label): Replace warn_unused with warn_unused_label. 13061 * typeck.c (build_x_compound_expr): Replace warn_unused with 13062 warn_unused_value. 13063 13064 * decl2.c (lang_decode_option): Update -Wall unused flags by 13065 calling set_Wunused. 13066 130672000-05-16 Mark Mitchell <mark@codesourcery.com> 13068 13069 * cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation. 13070 * init.c (dfs_vtable_path_unmark): Remove. 13071 * search.c (marked_new_vtable_p): Likewise. 13072 (unmarked_new_vtable_p): Likewise. 13073 (dfs_search_slot_nonempty_p): Likewise. 13074 (dfs_mark): Likewise. 13075 (dfs_vtable_path_unmark): Likewise. 13076 (dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED. 13077 (dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED. 13078 (dfs_init_vbase_pointers): Remove special-case new ABI code. 13079 (dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED. 13080 (init_vbase_pointers): Simplify. 13081 (expand_indirect_vtbls_init): Likewise. 13082 13083 * class.c (copy_virtuals): New function. 13084 (build_primary_table): Use it. 13085 (build_secondary_vtable): Likewise. 13086 (modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to 13087 indicate that no vcall offset is required. 13088 (add_virtual_function): Likewise. 13089 (modify_all_vtables): Likewise. 13090 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 13091 (dfs_accumulate_vtbl_inits): Likewise. 13092 (build_vtbl_initializer): Make changes to handle construction 13093 vtables. 13094 (dfs_build_vcall_offset_vtbl_entries): Likewise. 13095 (build_rtti_vtbl_entries): Likewise. 13096 (build_vtable_entries): Handle a NULL vcall_index. 13097 130982000-05-15 Gabriel Dos Reis <gdr@codesourcery.com> 13099 13100 * decl2.c (lang_decode_option): Fix thinko. 13101 131022000-05-14 Jason Merrill <jason@casey.cygnus.com> 13103 13104 * except.c (check_handlers): New fn. 13105 * cp-tree.h: Declare it. 13106 * semantics.c (finish_handler_sequence): Call it. 13107 (finish_function_handler_sequence): Likewise. 13108 (finish_handler_parms): Set TREE_TYPE on the handler. 13109 * cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro. 13110 * search.c (get_base_distance_recursive): If protect>1, ignore 13111 special access. 13112 (get_base_distance): Don't reduce watch_access. 13113 131142000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> 13115 13116 * lex.c: #include diagnostic.h. 13117 (lang_init_options): Set default prefixing rules. 13118 13119 * lang-options.h: Add -fdiagnostics-show-location=. 13120 13121 * decl2.c: #include diagnostic.h. 13122 (lang_decode_option): Handle -fdiagnostics-show-location=. 13123 131242000-05-12 Nathan Sidwell <nathan@codesourcery.com> 13125 13126 * tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes. 13127 * vec.cc: Revert my 2000-05-07 change. 13128 131292000-05-11 Jason Merrill <jason@casey.cygnus.com> 13130 13131 * class.c (check_field_decls): Complain about non-static data 13132 members with same name as class in class with constructor. 13133 131342000-05-10 Jason Merrill <jason@casey.cygnus.com> 13135 13136 * decl.c (grokdeclarator): Allow non-static data members with 13137 same name as class. 13138 131392000-05-09 Zack Weinberg <zack@wolery.cumb.org> 13140 13141 * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, 13142 and pending_inline.filename. Update prototypes. 13143 * decl.c (define_label): Constify filename parameter. 13144 * decl2.c (warn_if_unknown_interface): Constify local char *. 13145 * input.c Constify input_source.filename. Don't declare 13146 input_filename or lineno. Constify filename parameter to feed_input. 13147 * lex.c (init_parse): Constify parameter and return value. 13148 (cp_pragma_interface, cp_pragma_implementation): Constify 13149 filename argument. 13150 (reinit_parse_for_method, reinit_parse_for_block, 13151 reinit_parse_for_expr, feed_defarg, handle_cp_pragma): 13152 Constify local char *. 13153 * pt.c: Don't declare lineno or input_filename. 13154 (print_template_context, tsubst_friend_function, tsubst_decl, 13155 tsubst, instantiate_decl): Constify local char *. 13156 * semantics.c (expand_body): Constify local char *. 13157 * tree.c (build_srcloc): Constify filename parameter. 13158 * typeck.c (c_expand_asm_operands): Constify filename 13159 parameter. 13160 131612000-05-08 Nathan Sidwell <nathan@codesourcery.com> 13162 13163 * tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix 13164 offsetof expansion. 13165 131662000-05-08 Branko Cibej <branko.cibej@hermes.si> 13167 13168 * inc/cxxabi.h: Fix typos in comment. 13169 (__base_class_info::__offset): Use a static_cast. 13170 131712000-05-07 Nathan Sidwell <nathan@codesourcery.com> 13172 13173 * inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place 13174 of std::size_t and std::ptrdiff_t respectively. 13175 * tinfo.cc: Likewise. 13176 * vec.cc: Likewise. 13177 131782000-05-06 Richard Henderson <rth@cygnus.com> 13179 13180 * typeck.c (build_c_cast): Don't warn integer->pointer size 13181 mismatch for constants. 13182 131832000-05-06 Nathan Sidwell <nathan@codesourcery.com> 13184 13185 * rtti.c (ptmd_initializer): Set non-public, if class is 13186 incomplete. 13187 13188 * inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++". 13189 (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 13190 __cxa_vec_delete): Likewise. 13191 * tinfo.cc (__dynamic_cast): Likewise. 13192 * vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 13193 __cxa_vec_delete): Likewise. 13194 131952000-05-04 Mark Mitchell <mark@codesourcery.com> 13196 13197 * cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove. 13198 (SET_FNADDR_FROM_VTABLE_ENTRY): Likewise. 13199 (lang_decl_flags): Add vcall_offset. 13200 (THUNK_VCALL_OFFSET): Use it. 13201 * decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk. 13202 * method.c (make_thunk): Create the lang_decl here, not in 13203 emit_thunk. 13204 (emit_thunk): Make generic thunks into ordinary functions once 13205 they have been fed to expand_body. 13206 * semantics.c (expand_body): Set current_function_is_thunk here. 13207 132082000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13209 13210 * class.c (update_vtable_entry_for_fn): Prototype. 13211 13212 * pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl' 13213 and `tmpl'. 13214 13215 * search.c (dfs_build_inheritance_graph_order): Prototype. 13216 132172000-05-04 Mark Mitchell <mark@codesourcery.com> 13218 13219 * cp-tree.h (special_function_kind): Add various kinds of 13220 destructors. 13221 (special_function_p): New function. 13222 * class.c (overrides): Don't let one kind of destructor override 13223 another. 13224 * decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding 13225 whether or not to instantiate a template. 13226 * tree.c (special_function_p): Define. 13227 132282000-05-03 Mark Mitchell <mark@codesourcery.com> 13229 13230 * cp-tree.def (THUNK_DECL): Remove. 13231 * cp-tree.h (DECL_THUNK_P): New macro. 13232 (DECL_NON_THUNK_FUNCTION_P): Likewise. 13233 (DECL_EXTERN_C_FUNCTION_P): Likewise. 13234 (SET_DECL_THUNK_P): Likewise. 13235 (DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P. 13236 (FNADDR_FROM_VTABLE_ENTRY): Likewise. 13237 (DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P. 13238 * decl.c (decls_match): Use DECL_EXTERN_C_P. 13239 (duplicate_decls): Likewise. 13240 (pushdecl): Likewise. Adjust thunk handling. 13241 (grokfndecl): Use DECL_EXTERN_C_P. 13242 * decl2.c (mark_vtable_entries): Use DECL_THUNK_P. 13243 * dump.c (dequeue_and_dump): Remove THUNK_DECL handling. 13244 * except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P. 13245 * expr.c (cplus_expand_expr): Remove THUNK_DECL handling. 13246 * method.c (make_thunk): Use SET_DECL_THUNK_P. Set 13247 DECL_NO_STATIC_CHAIN. 13248 (emit_thunk): Don't play games with TREE_CODE on thunks. Don't 13249 set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk. 13250 * search.c (covariant_return_p): Remove THUNK_DECL handling. 13251 * ir.texi: Update. 13252 132532000-05-01 Jason Merrill <jason@casey.cygnus.com> 13254 13255 * tree.c (walk_tree): Set lineno. 13256 132572000-05-01 Mark Mitchell <mark@codesourcery.com> 13258 13259 * exception.cc: Update license notice. 13260 * new.cc: Likewise. 13261 * new1.cc: Likewise. 13262 * new2.cc: Likewise. 13263 * tinfo.cc: Likewise. 13264 * tinfo2.cc: Likewise. 13265 * vec.cc: Likewise. 13266 * inc/cxxabi.h: Likewise. 13267 * inc/exception: Likewise. 13268 * inc/new: Likewise. 13269 * inc/new.h: Likewise. 13270 * inc/typeinfo: Likewise. 13271 132722000-05-01 Jason Merrill <jason@casey.cygnus.com> 13273 13274 * tree.c (build_target_expr_with_type): If we already have a 13275 TARGET_EXPR, just return it. 13276 13277 * optimize.c (initialize_inlined_parameters): Don't generate an 13278 EXPR_STMT if we can just use DECL_INITIAL. 13279 * decl.c (emit_local_var): Only make the initialization a 13280 full-expression if stmts_are_full_exprs_p. 13281 132822000-05-01 Mark Mitchell <mark@codesourcery.com> 13283 13284 * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New 13285 macro. 13286 * call.c (standard_conversion): Use it. 13287 (direct_reference_binding): Likewise. 13288 (build_over_call): Likewise. 13289 (is_properly_derived_from): Likewise. 13290 (compare_ics): Likewise. 13291 * class.c (resolves_to_fixed_type_p): Likewise. 13292 * optimize.c (declare_return_variable): Likewise. 13293 * pt.c (is_specialization_of): Likewise. 13294 (unify): Likewise. 13295 * typeck.c (comp_target_parms): Likeiwse. 13296 (build_static_cast): Likewise. 13297 (build_reinterpret_cast): Likewise. 13298 (build_const_cast): Likewise. 13299 (comp_ptr_ttypes_real): Likewise. 13300 (comp_ptr_ttypes_const): Likewise. 13301 * typeck2.c (process_init_constructor): Likewise. 13302 133032000-04-30 Scott Snyder <snyder@fnal.gov> 13304 13305 * decl.c (finish_destructor_body): Use the base destructor when 13306 destroying virtual bases. 13307 133082000-04-30 Mark Mitchell <mark@codesourcery.com> 13309 13310 * expr.c (cplus_expand_expr): Preserve temporaries when expanding 13311 STMT_EXPRs. 13312 * optimize.c (struct inline_data): Add target_exprs field. 13313 (declare_return_variable): When a function returns an aggregate, 13314 use the variable declared in the TARGET_EXPR as the remapped 13315 DECL_RESULT. 13316 (expand_call_inline): Update the pending target_exprs stack. 13317 (optimize_function): Initialize the stack. 13318 13319 * decl2.c (finish_file): Fix typo in comment. 13320 13321 * method.c (emit_thunk): Don't try to return a `void' value. 13322 13323 * optimize.c (initialize_inlined_parameters): If the parameter is 13324 addressable, we need to make a new VAR_DECL, even if the 13325 initializer is constant. 13326 133272000-04-28 Cosmin Truta <cosmint@cs.ubbcluj.ro> 13328 13329 * decl.c (grok_op_properties): Add an extra check of argtypes. 13330 133312000-04-27 Mark Mitchell <mark@codesourcery.com> 13332 13333 * optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying 13334 variables. 13335 (initialize_inlined_parameters): Try to avoid creating new 13336 VAR_DECLs. 13337 133382000-04-27 Alex Samuel <samuel@codesourcery.com> 13339 13340 * lex.c (my_get_run_time): Remove. 13341 (init_filename_times): Use get_run_time instead of my_get_run_time. 13342 (check_newline): Likewise. 13343 (dump_time_statistics): Likewise. 13344 * decl2.c (finish_file): Push and pop timevar TV_VARCONST instead 13345 of computing elapsed time explicitly. 13346 133472000-04-26 Mark Mitchell <mark@codesourcery.com> 13348 13349 * cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P. 13350 * init.c (decl_constant_value): Check TREE_READONLY_DECL_P. 13351 * call.c (convert_like_real): Don't test TREE_READONLY_DECL_P 13352 before calling decl_constant_value. 13353 * class.c (check_bitfield_decl): Likewise. 13354 * cvt.c (ocp_convert): Likewise. 13355 (convert): Likewise. 13356 * decl.c (compute_array_index_type): Likewise. 13357 (build_enumerator): Likewise. 13358 * decl2.c (check_cp_case_value): Likewise. 13359 * pt.c (convert_nontype_argument): Likewise. 13360 (tsubst): Likewise. 13361 * typeck.c (decay_conversion): Likewise. 13362 (build_compound_expr): Likewise. 13363 (build_reinterpret_cast): Likewise. 13364 (build_c_cast): Likewise. 13365 (convert_for_assignment): Likewise. 13366 133672000-04-26 Jason Merrill <jason@casey.cygnus.com> 13368 13369 * decl.c (finish_function): Don't play games with DECL_INLINE. 13370 133712000-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 13372 13373 * ir.texi: Correct typo. 13374 133752000-04-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 13376 13377 * decl.c (grokdeclarator): Reject VLAs as members. 13378 133792000-04-24 Gabriel Dos Reis <gdr@codesourcery.com> 13380 13381 * call.c (standard_conversion): Accept conversion between 13382 COMPLEX_TYPEs. 13383 13384 * cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE. 13385 133862000-04-24 Zack Weinberg <zack@wolery.cumb.org> 13387 13388 * decl2.c (finish_file): Remove double setup for accounting 13389 compile time. 13390 133912000-04-24 Robert Lipe <robertlipe@usa.net> 13392 13393 * cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD. 13394 133952000-04-23 Benjamin Kosnik <bkoz@cygnus.com> 13396 13397 * new.cc (set_new_handler): Needs to be in std::. 13398 133992000-04-23 Mark Mitchell <mark@codesourcery.com> 13400 13401 * cp-tree.h (lang_decl): Remove pretty_function_p. 13402 (DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the 13403 language-specific node. 13404 * decl.c (cp_make_fname_decl): Use build_decl, not 13405 build_lang_decl, to build the variables. 13406 (grokvardecl): Don't call build_lang_decl for local variables in 13407 templates. 13408 (grokdeclarator): Don't call build_lang_decl for local type 13409 declarations in templates. 13410 * lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated 13411 zero'd memory, rather than calling memset. 13412 * pt.c: Include hashtab.h. 13413 (local_specializations): New variable. 13414 (retrieve_local_specialization): Use it. 13415 (register_local_specialization): Likewise. 13416 (tsubst_decl): Don't assume local variables have 13417 DECL_LANG_SPECIFIC. 13418 (instantiate_decl): Set up local_specializations. 13419 * Makefile.in (HTAB_H): New variable. 13420 134212000-04-23 Richard Henderson <rth@cygnus.com> 13422 13423 * typeck.c (c_expand_asm_operands): Restore the original 13424 contents of the output list. 13425 134262000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> 13427 13428 * ir.texi: Document complex number representation. 13429 134302000-04-20 Nathan Sidwell <nathan@codesourcery.com> 13431 13432 * rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi. 13433 (target_incomplete_p): New function. 13434 (tinfo_base_init): Create comdat NTBS name variable. 13435 (ptr_initializer): Add non_public parameter. Calculate it. 13436 (ptmd_initializer): Likewise. 13437 (synthesize_tinfo_var): Adjust. Emit incomplete class tinfo. 13438 (create_real_tinfo_var): Add non_public parameter. Use it. 13439 Push proxy into global namespace. 13440 * inc/cxxabi.h (__pointer_type_info::incomplete_class_mask): 13441 New enumeration. 13442 * inc/typeinfo (type_info::before, type_info::operator==): 13443 Compare __name addresses. 13444 13445 * tinfo2.cc: Remove new-abi builtins comment. 13446 134472000-04-20 Jason Merrill <jason@casey.cygnus.com> 13448 13449 * typeck.c (build_x_function_call): Resolve an OFFSET_REF. 13450 13451 * call.c (joust): Exit early if we get the same function, too. 13452 13453 * decl2.c (key_method): Return NULL_TREE for template classes. 13454 (import_export_class): Don't need to check for template classes. 13455 134562000-04-18 Zack Weinberg <zack@wolery.cumb.org> 13457 13458 * lex.c: Remove references to cccp.c. 13459 134602000-04-18 Mark Mitchell <mark@codesourcery.com> 13461 13462 * cp-tree.h (lang_decl_flags): Remove const_memfunc and 13463 volatile_memfunc. Add destructor_attr. Adjust dummy. 13464 (DECL_DESTRUCTOR_P): Use destructor_attr. 13465 (DECL_CONST_MEMFUNC_P): Reimplement. 13466 (DECL_VOLATILE_MEMFUNC_P): Remove. 13467 * class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS. 13468 (overrides): Use DECL_DESTRUCTOR_P. 13469 (check_for_override): Likewise. 13470 * decl.c (start_function): Likewise. 13471 * decl2.c (grokfclassfn): Likewise. 13472 (check_classfn): Likewise. 13473 (grok_function_init): Likewise. 13474 134752000-04-17 Mark Mitchell <mark@codesourcery.com> 13476 13477 * decl2.c (grokfield): Issue error on illegal data member 13478 declaration. 13479 13480Mon Apr 17 17:11:16 2000 Mark P Mitchell <mark@codesourcery.com> 13481 13482 * method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL. 13483 134842000-04-16 Mark Mitchell <mark@codesourcery.com> 13485 13486 * class.c (build_vtable_entry): Don't build thunks for type-info 13487 functions. 13488 134892000-04-16 Jason Merrill <jason@casey.cygnus.com> 13490 13491 * decl.c (decls_match): Allow a redeclaration of a builtin to 13492 specify args while the builtin did not. 13493 134942000-04-15 Mark Mitchell <mark@codesourcery.com> 13495 13496 * cp-tree.def (THUNK_DECL): Add to documentation. 13497 * cp-tree.h (flag_huge_objects): Declare. 13498 * class.c (modify_vtable_entry): Tidy. 13499 (update_vtable_entry_for_fn): Split out from dfs_modify_vtables. 13500 Calculate delta appropriately for the new ABI. 13501 (dfs_modify_vtables): Use it. 13502 (modify_all_vtables): Fix thinko in code to add overriding copies 13503 of functions to primary vtables. 13504 (build_clone): Fix typo in comment. 13505 (clone_function_decl): Correct order of destructors in vtable. 13506 (build_vbase_offset_vtbl_entries): Adjust comment. 13507 (dfs_vcall_offset_queue_p): Remove. 13508 (dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX. 13509 (build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases. 13510 (build_vtable_entry): Correct check for pure virtual functions. 13511 Don't declare flag_huge_objects. 13512 * decl.c (flag_huge_objects): Remove declaration. 13513 * method.c (make_thunk): Tweak mangling for vcall offset thunks. 13514 Use int_size_in_bytes. 13515 (emit_thunk): Handle vcall offset thunks. 13516 13517Sat Apr 15 16:00:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 13518 13519 * decl2.c (parse_time, varconst_time): Delete declarations. 13520 (finish_file): Delete LINENO declaration. 13521 START_TIME and THIS_TIME now long. 13522 135232000-04-13 Nathan Sidwell <nathan@codesourcery.com> 13524 13525 * class.c (build_base_field): Reformat comment. 13526 13527 * inc/cxxabi.h (stddef.h): Comment inclusion. 13528 (__base_class_info::__offset): Comment shift. 13529 135302000-04-12 Mark Mitchell <mark@codesourcery.com> 13531 13532 * cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro. 13533 (cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER. 13534 (cp_push_exception_identifier): New macro. 13535 (DECL_COMPLETE_DESTRUCTOR_P): New macro. 13536 (DECL_BASE_DESTRUCTOR_P): Likewise. 13537 (DECL_DELETING_DESTRUCTOR_P): Likewise. 13538 (get_vtbl_decl_for_binfo): Fix formatting. 13539 (in_charge_arg_for_name): New macro. 13540 (maybe_build_cleanup_and_delete): Remove declaration. 13541 * call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P. 13542 (in_charge_arg_for_name): New function. 13543 (build_new_method_call): Use it. Handle cloned destructors. 13544 (build_clone): Don't make the base constructor virtual. 13545 Automatically defer generated functions. 13546 (clone_function_decl): Handle destructors, too. 13547 (clone_constructors_and_destructors): Likewise. 13548 (create_vtable_ptr): Don't create a vtable entry for a cloned 13549 function. 13550 * decl.c (predefined_identifier): Add ctor_or_dtor_p. 13551 (initialize_predefined_identifiers): Update appropriately. 13552 (finish_destructor_body): Simplify. 13553 (maybe_build_cleanup_and_delete): Remove. 13554 * except.c (expand_throw): Handle new-ABI destructors. 13555 * init.c (expand_cleanup_for_base): Use base_dtor_identifier. 13556 (build_dtor_call): New function. 13557 (build_delete): Use it. Simplify. 13558 * optimize.c (maybe_clone_body): Handle destructors. 13559 * search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P. 13560 13561 * exception.cc (cleanup_fn): New typedef. 13562 (CALL_CLEANUP): New macro. 13563 (cp_eh_info): Use them. 13564 (__cp_push_exception): Likewise. 13565 (__cp_pop_exception): Likewise. 13566 135672000-04-11 Mark Mitchell <mark@codesourcery.com> 13568 13569 * cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER. 13570 (complete_dtor_identifier): New macro. 13571 (CLASSTYPE_FIRST_CONVERSION): Remove. 13572 (CLASSTYPE_CONSTRUCTOR_SLOT): New macro. 13573 (CLASSTYPE_DESTRUCTOR_SLOT): Likewise. 13574 (CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise. 13575 (CLASSTYPE_CONSTRUCTORS): Likewise. 13576 (CLASSTYPE_DESTRUCTORS): Likewise. 13577 (lang_decl): Add cloned_function. 13578 (DECL_COMPLETE_CONSTRUCTOR_P): New macro. 13579 (DECL_BASE_CONSTRUCTOR_P): Likewise. 13580 (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise. 13581 (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise. 13582 (DECL_CLONED_FUNCTION_P): Likewise. 13583 (DECL_CLONED_FUNCTION): Likewise. 13584 (clone_function_decl): Declare. 13585 (maybe_clone_body): Likewise. 13586 * call.c (build_user_type_conversion_1): Call complete object 13587 constructors in the new ABI. 13588 (build_new_method_call): Don't add in-charge parameters under the 13589 new ABI. 13590 * class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, 13591 DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and 13592 CLASSTYPE_DESTRUCTOR_SLOT. 13593 (build_clone): New function. 13594 (clone_function_decl): Likewise. 13595 (clone_constructors_and_destructors): Likewise. 13596 (check_bases_and_members): Use it. 13597 * decl.c (iniitialize_predefined_identifiers): Initialize 13598 complete_dtor_identifier. 13599 (finish_function): Don't add extra code to a clone. 13600 (lang_mark_tree): Mark cloned_function. 13601 * decl2.c (mark_used): Don't bother trying to instantiate things 13602 we synthesized. 13603 * dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice. 13604 * method.c (set_mangled_name_for_decl): Don't treat clones as 13605 constructors. 13606 (synthesize_method): Sythesize cloned functions, not the clones. 13607 * optimize.c (inline_data): Update comment on ret_label. 13608 (remap_block): Don't assume DECL_INITIAL exists. 13609 (copy_body_r): Allow ret_label to be NULL. 13610 (maybe_clone_body): Define. 13611 * pt.c (tsubst_decl): Handle clones. 13612 (instantiate_clone): New function. 13613 (instantiate_template): Use it. 13614 (set_mangled_name_for_template_decl): Don't treat clones as 13615 constructors. 13616 * search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT, 13617 CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT. 13618 * semantics.c (expand_body): Clone function bodies as necessary. 13619 13620 * optimize.c (remap_decl): Avoid sharing structure for arrays 13621 whose size is only known at run-time. 13622 * tree.c (copy_tree_r): Don't copy PARM_DECLs. 13623 13624 * cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr 13625 to has_in_charge_parm_p. 13626 (DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ... 13627 (DECL_HAS_IN_CHARGE_PARM_P): ... this. 13628 (DECL_COPY_CONSTRUCTOR_P): New macro. 13629 * call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P. 13630 (build_user_type_conversion_1): Likewise. 13631 (convert_like_real): Likewise. 13632 (build_over_call): Likeiwse. Use DECL_COPY_CONSTRUCTOR_P. 13633 * decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P. 13634 (copy_args_p): Likewise. 13635 (grok_ctor_properties): Likewise. 13636 (start_function): Likewise. 13637 * decl2.c (maybe_retrofit_in_charge): Likewise. Set it. 13638 * error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P. 13639 * init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P. 13640 * method.c (do_build_copy_constructor): Use 13641 DECL_HAS_IN_CHARGE_PARM_P. 13642 (synthesize_method): Likewise. 13643 * pt.c (instantiate_template): Remove goto. 13644 * tree.c (build_cplus_method_type): Remove mention of obstacks in 13645 comment. 13646 13647 * cp-tre.h (finish_function): Change prototype. 13648 * decl.c (end_cleanup_fn): Adjust caller. 13649 (finish_function): Take only one parameter. 13650 * decl2.c (finish_objects): Adjust caller. 13651 (finish_static_storage_duration_function): Likewise. 13652 * method.c (emit_thunk): Likewise. 13653 * parse.y: Likewise. 13654 * parse.c: Regenerated. 13655 * pt.c (instantiate_decl): Likewise. 13656 * rtti.c (synthesize_tinfo_fn): Likewise. 13657 * semantics.c (expand_body): Likewise. 13658 13659 * cp-tree.h (copy_decl): New function. 13660 * class.c (finish_struct_1): Use it. 13661 * lex.c (copy_decl): Define it. 13662 * pt.c (tsubst_decl): Likewise. 13663 * tree.c (copy_template_template_parm): Likewise. 13664 13665 * cp-tree.h (lang_type): Remove has_nonpublic_ctor and 13666 has_nonpublic_assign_ref. 13667 (TYPE_HAS_NONPUBLIC_CTOR): Don't declare. 13668 (TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise. 13669 * class.c (finish_struct_methods): Don't set 13670 TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF. 13671 (interface_only): Don't declare. 13672 (interface_unknown): Likewise. 13673 136742000-04-11 Martin v. L�wis <loewis@informatik.hu-berlin.de> 13675 13676 * tree.h (HAVE_TEMPLATES): Remove definition. 13677 * lang-options.h (-fthis-is-variable): Remove documentation. 13678 136792000-04-10 Jason Merrill <jason@casey.cygnus.com> 13680 13681 * class.c (instantiate_type): Handle object-relative template-id. 13682 13683 * semantics.c (finish_expr_stmt): Call convert_to_void here. 13684 * decl.c (cplus_expand_expr_stmt): Not here. 13685 13686 * rtti.c (build_dynamic_cast_1): Call non_lvalue. 13687 Initialize exprtype earlier. 13688 13689 * parse.y (fn.def1): Check for defining types in return types. 13690 13691 * decl.c (check_tag_decl): Notice extra fundamental types. 13692 Diagnose empty decls in classes, too. 13693 13694 * decl.c (grokdeclarator): Don't override an anonymous name if no 13695 declarator was given. 13696 13697 * cvt.c (convert_to_void): Call resolve_offset_ref. 13698 13699 * typeck.c (build_x_function_call): Abort if we get an OFFSET_REF. 13700 13701 * decl2.c (decl_namespace): Handle getting a type. 13702 13703 * typeck.c (build_c_cast): Re-enable warning for cast between 13704 pointer and integer of different size. 13705 137062000-04-10 Nathan Sidwell <nathan@codesourcery.com> 13707 13708 * inc/cxxabi.h (__pointer_type_info): Add restrict and 13709 incomplete flags. 13710 (__pointer_type_info::__pointer_catch): New virtual function. 13711 (__pointer_to_member_type_info): Derive from 13712 __pointer_type_info. Adjust. 13713 (__pointer_to_member_type_info::__do_catch): Remove. 13714 (__pointer_to_member_type_info::__is_pointer_p): Declare. 13715 (__pointer_to_member_type_info::__pointer_catch): Declare. 13716 * rtti.c (qualifier_flags): Add restrict flag. 13717 (ptmd_initializer): Reorder members. 13718 (create_tinfo_types): Expand comments. Reorder 13719 ptmd_desc_type_node members. 13720 * tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p): 13721 Implement. 13722 (__pointer_type_info::__do_catch): Move specific code into 13723 __pointer_catch. Call it. 13724 (__pointer_type_info::__pointer_catch): Non-pointer-to-member 13725 specific catch checking. Fix void conversion check. 13726 (__pointer_to_member_type_info::__do_catch): Remove. 13727 (__pointer_to_member_type_info::__pointer_catch): Implement. 13728 137292000-04-10 Martin v. L�wis <loewis@informatik.hu-berlin.de> 13730 13731 * lex.c (init_parse): Remove traces of classof and headof. 13732 * decl2.c (flag_operator_names): Default to 1. 13733 (lang_decode_option): Do not set it for -ansi. 13734 137352000-04-09 Mark Mitchell <mark@codesourcery.com> 13736 13737 * cp-tree.h (struct lang_decl): Remove main_decl_variant. 13738 (DECL_MAIN_VARIANT): Remove. 13739 * decl.c (duplicate_decls): Don't set it. 13740 (start_function): Likewise. 13741 (lang_mark_tree): Don't mark it. 13742 * decl2.c (defer_fn): Don't use it. 13743 * lex.c (retrofit_lang_decl): Don't set it. 13744 * pt.c (tsubst_decl): Likewise. 13745 * ptree.c (print_lang_decl): Don't print it. 13746 * typeck.c (mark_addressable): Don't use it. 13747 137482000-04-09 Nathan Sidwell <nathan@codesourcery.com> 13749 13750 * vec.cc: Include <new> and <exception>. 13751 (__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup. 13752 (__cxa_vec_dtor): Catch dtor exceptions, and rethrow or 13753 terminate. 13754 (__cxa_vec_delete): Catch dtor exceptions. 13755 137562000-04-09 Nathan Sidwell <nathan@codesourcery.com> 13757 13758 Prepend __ to implementation defined names. 13759 * inc/typeinfo (type_info): Rename _name to __name. 13760 (type_info::type_info): Rename parameter. 13761 (type_info::operator==, type_info::operator!=, 13762 type_info::before): Likewise. 13763 (type_info::is_pointer_p, type_info::is_function_p, 13764 type_info::do_catch, type_info::do_upcast): Prepend __. Rename 13765 parameters. 13766 * inc/cxxabi.h 13767 (__fundamental_type_info::__fundamental_type_info) Rename parameters. 13768 (__pointer_type_info::__pointer_type_info): Likewise. 13769 (__pointer_type_info::is_pointer_p, 13770 __pointer_type_info::do_catch): Prepend __. Rename parameters. 13771 (__array_type_info::__array_type_info): Rename parameters. 13772 (__function_type_info::__function_type_info): Likewise. 13773 (__function_type_info::is_function_p): Prepend __. 13774 (__enum_type_info::__enum_type_info): Rename parameters. 13775 (__pointer_to_member_type_info::__pointer_to_member_type_info): 13776 Likewise. 13777 (__pointer_to_member_type_info::do_catch): Prepend __. Rename 13778 parameters. 13779 (__base_class_info::is_virtual_p, is_public_p, offset): Prepend __. 13780 (__class_type_info::__class_type_info): Rename parameters. 13781 (__class_type_info::sub_kind): Prepend __. Adjust member names. 13782 (__class_type_info::upcast_result, 13783 __class_type_info::dyncast_result): Prepend __. Move definition 13784 into tinfo.cc. 13785 (__class_type_info::do_upcast, __class_type_info::do_catch, 13786 __class_type_info::find_public_src, 13787 __class_type_info::do_dyncast, 13788 __class_type_info::do_find_public_src): Prepend __. Rename 13789 parameters. 13790 (__si_class_type_info::__si_class_type_info): Rename parameters. 13791 (__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast, 13792 __si_class_type_info::do_find_public_src): Prepent __. Rename 13793 parameters. 13794 (__vmi_class_type_info::__vmi_class_type_info): Rename parameters. 13795 (__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast, 13796 __vmi_class_type_info::do_find_public_src): Prepent __. Rename 13797 parameters. 13798 (__dynamic_cast): Rename parameters. 13799 * tinfo.cc (type_info::is_pointer_p, type_info::is_function_p, 13800 type_info::do_catch, type_info::do_upcast): Prepend __. 13801 (contained_p, public_p, virtual_p, contained_public_p, 13802 contained_nonpublic_p, contained_nonvirtual_p): Adjust. 13803 (__class_type_info::do_catch, 13804 __class_type_info::do_upcast): Prepend __. Adjust. 13805 (__class_type_info::__upcast_result, 13806 __class_type_info::__dyncast_result): Move from inc/cxxabi.h. 13807 Adjust. 13808 (__class_type_info::find_public_src): Prepend __. Adjust. 13809 (__class_type_info::do_find_public_src, 13810 __si_class_type_info::do_find_public_src, 13811 __vmi_class_type_info::do_find_public_src): Likewise. 13812 (__class_type_info::do_dyncast, 13813 __si_class_type_info::do_dyncast, 13814 __vmi_class_type_info::do_dyncast): Likewise. 13815 (__class_type_info::do_upcast, 13816 __si_class_type_info::do_upcast, 13817 __vmi_class_type_info::do_upcast): Likewise. 13818 (__dynamic_cast): Adjust. 13819 * tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __. 13820 (__function_type_info::is_function_p): Likewise. 13821 (__pointer_type_info::do_catch): Likewise. Adjust. 13822 (__pointer_to_member_type_info::do_catch): Likewise. Adjust. 13823 (__throw_type_match_rtti_2): Adjust. 13824 (__is_pointer): Adjust. 13825 138262000-04-08 Mark Mitchell <mark@codesourcery.com> 13827 13828 * cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER. 13829 (complete_ctor_identifier): New macro. 13830 (special_function_kind): Add sfk_copy_constructor and 13831 sfk_assignment_operator. 13832 (LOOKUP_HAS_IN_CHARGE): Remove. 13833 (cons_up_default_function): Rename to ... 13834 (implicitly_declare_fn): ... this. 13835 * call.c (build_new_method_call): Add in-charge parameters for 13836 constructors here. 13837 * class.c (add_implicitly_declared_members): Change parameter name 13838 from cant_have_assignment to cant_have_const_assignment. 13839 Replace calls to cons_up_default_function to implicitly_declare_fn. 13840 * cvt.c (ocp_convert): Use complete_ctor_identifier. 13841 * decl.c (initialize_predefined_identifiers): Initialize it. 13842 (start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of 13843 complex expression. 13844 * init.c (expand_default_init): Don't calculate the in-charge 13845 parameter here. 13846 (build_new_1): Likewise. 13847 * lex.c (cons_up_default_function): Move to method.c. 13848 * method.c (synthesize_method): Use DECL_DESTRUCTOR_P. 13849 (implicitly_declare_fn): New function. 13850 * typeck.c (build_static_cast): Use complete_ctor_identifier. 13851 (build_modify_expr): Likewise. 13852 * typeck2.c (build_functional_cast): Likewise. 13853 13854 Under the new ABI, constructors don't return `this'. 13855 * cp-tree.h (warn_reorder): Declare. 13856 (special_function_kind): New enum. 13857 (global_base_init_list): Remove declaration. 13858 (emit_base_init): Don't return a value. 13859 (check_base_init): Don't declare. 13860 (is_aggr_typedef): Likewise. 13861 * decl.c (check_special_function_return_type): New function. 13862 (return_types): Remove. 13863 (grokdeclarator): Use check_special_function_return_type. 13864 (start_function): Don't initialize ctor_label under the new ABI. 13865 (finish_construtor_body): Don't create a corresponding LABEL_STMT. 13866 * init.c (begin_init_stmts): Move to top of file. 13867 (finish_init_stmts): Likewise. 13868 (warn_reorder): Don't declare. 13869 (emit_base_init): Don't create a STMT_EXPR here. Don't return a 13870 value. 13871 (check_base_init): Remove. 13872 (is_aggr_typedef): Likewise. 13873 (build_new_1): Don't use the return value of a constructor. 13874 * semantics.c (setup_vtbl_ptr): Don't use the return value 13875 of emit_base_init. 13876 * typeck.c (check_return_expr): Don't magically convert return 13877 statements into `return this' in constructors under the new ABI. 13878 13879 * cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER, 13880 CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER. 13881 (base_ctor_identifier): New macro. 13882 (base_dtor_identifier): Likewise. 13883 (deleting_dtor_identifier): Likewise. 13884 * decl.c: Don't include obstack.h. 13885 (obstack_chunk_alloc): Don't define. 13886 (obstack_chunk_free): Likewise. 13887 (struct predefined_identifier): New type. 13888 (initialize_predefined_identifiers): New function. 13889 (init_decl_processing): Use it. 13890 (debug_temp_inits): Remove. 13891 (start_method): Don't call preserve_data. 13892 (hack_incomplete_structures): Update comment. 13893 * init.c (init_init_processing): Don't initialize 13894 nelts_identifier. 13895 (build_offset_rf): Remove dead code. 13896 (build_delete): Use CLASSTYPE_N_BASECLASSES. 13897 * search.c (init_search_processing): Don't initialize 13898 vptr_identifier. 13899 139002000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13901 13902 * typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide 13903 some sign_compare warnings. 13904 139052000-04-07 Nathan Sidwell <nathan@codesourcery.com> 13906 13907 Rename abi::__vmi_class_type_info members. 13908 * inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases, 13909 base_list, detail_masks members to vmi_flags, vmi_base_count, 13910 vmi_bases and vmi_flags_masks respectively. 13911 (__vmi_class_type_info::vmi_flags_masks): Rename 13912 details_unknown_mask to flags_unknown_mask. 13913 * tinfo.cc (__class_type_info::do_upcast): Adjust. 13914 (__vmi_class_type_info::do_find_public_src): Adjust. 13915 (__vmi_class_type_info::do_dyncast): Adjust. 13916 (__vmi_class_type_info::do_upcast): Adjust. 13917 139182000-04-07 Nathan Sidwell <nathan@codesourcery.com> 13919 13920 * tinfo.cc (convert_to_base): New function. 13921 (get_vbase_offset): Remove. Move into convert_to_base. 13922 (__vmi_class_type_info::do_find_public_src): Adjust. 13923 (__vmi_class_type_info::do_dyncast): Adjust. 13924 (__vmi_class_type_info::do_upcast): Adjust. 13925 139262000-04-06 Jason Merrill <jason@yorick.cygnus.com> 13927 13928 * tinfo.cc (operator=): Use __builtin_strcmp. 13929 * tinfo2.cc (before): Likewise. 13930 139312000-04-06 Mark Mitchell <mark@codesourcery.com> 13932 13933 * cp-tree.h (lang_decl_flags): Rename saved_inline to deferred. 13934 (DECL_SAVED_INLINE): Rename to ... 13935 (DECL_DEFERRED_FN): ... this. 13936 (in_function_p): Remove declaration. 13937 (mark_inline_for_output): Rename to ... 13938 (defer_fn): ... this. 13939 * decl.c (finish_function): Adjust call to mark_inline_for_output. 13940 (in_function_p): Remove definition. 13941 * decl2.c (saved_inlines): Rename to ... 13942 (deferred_fns): ... this. 13943 (saved_inlines_used): Rename to ... 13944 (deferred_fns_used): ... this. 13945 (mark_inline_for_output): Rename to ... 13946 (defer_fn): ... this. 13947 (finish_file): Adjust accordingly. 13948 (init_decl2): Likewise. 13949 * lex.c (cons_up_default_function): Likewise. 13950 * pt.c (mark_decl_instantiated): Likewise. 13951 (instantiate_decl): Don't set DECL_DEFER_OUTPUT under any 13952 circumstances. 13953 * rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output. 13954 * semantics.c (expand_body): Defer more functions. 13955 139562000-04-06 Nathan Sidwell <nathan@codesourcery.com> 13957 13958 * vec.cc: New file. 13959 * Make-lang.in (CXX_LIB2FUNCS): Add it. 13960 (vec.o): Build it. 13961 * inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 13962 __cxa_vec_delete): Declare. 13963 139642000-04-06 Nathan Sidwell <nathan@codesourcery.com> 13965 13966 * rtti.c (dfs_class_hint_mark): New static function. 13967 (dfs_class_hint_unmark): New static function. 13968 (class_hint_flags): Use them. 13969 139702000-04-05 Benjamin Kosnik <bkoz@cygnus.com> 13971 13972 * decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE. 13973 139742000-04-05 Mark Mitchell <mark@codesourcery.com> 13975 13976 * cp-tree.h (instantiate_decl): Change prototype. 13977 * decl2.c (mark_used): Adjust call. 13978 * optimize.c (inlinable_function_p): Adjust handling of templates. 13979 * pt.c (do_decl_instantiation): Adjust call to instantiate_decl. 13980 (do_type_instantiation): Likewise. 13981 (instantiate_decl): Defer more templates. 13982 (instantiate_pending_templates): Adjust logic to handle inline 13983 friend functions. 13984 13985 * Makefile.in (GGC_H): New variable. Use it throughout in place 13986 of ggc.h. 13987 13988 * call.c: Don't include obstack.h. Include ggc.h. 13989 (obstack_chunk_alloc): Don't define. 13990 (obstack_chunk_free): Likewise. 13991 (add_candidate): Allocate the z_candidate with ggc_alloc_obj. 13992 * decl.c (push_switch): Use xmalloc to allocate the cp_switch. 13993 (pop_switch): Free it. 13994 13995 * decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs. 13996 13997 * dump.c (dequeue_and_dump): Don't try to print the bit_position 13998 if we don't have a DECL_FIELD_OFFSET. 13999 14000Wed Apr 5 15:12:18 MET DST 2000 Jan Hubicka <jh@suse.cz> 14001 14002 * optimize.c (calls_setjmp_r): Use setjmp_call_p instead of 14003 special_function_p. 14004 140052000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14006 14007 * cfns.gperf (hash, libc_name_p): Prototype. 14008 14009 * rtti.c (build_dynamic_cast_1): Constification. 14010 14011 * search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes. 14012 14013 * semantics.c (deferred_type_access_control): Prototype. 14014 140152000-04-04 Mark Mitchell <mark@codesourcery.com> 14016 14017 Correct many new ABI issues regarding vbase and vcall offset 14018 layout. 14019 * cp-tree.h (BINFO_VTABLE): Document. 14020 (struct lang_type): Tweak formatting. 14021 (BINFO_PRIMARY_BINFO): Add to documentation. 14022 (CLASSTYPE_VSIZE): Fix typo in comment. 14023 (CLASSTYPE_VBASECLASSES): Update documentation. 14024 (BINFO_VBASE_MARKED): Remove. 14025 (SET_BINFO_VBASE_MARKED): Likewise. 14026 (CLEAR_BINFO_VBASE_MARKED): Likewise. 14027 (BINFO_FIELDS_MARKED): Remove. 14028 (SET_BINFO_FIELDS_MARKED): Likewise. 14029 (CLEAR_BINFO_FIELDS_MARKED): Likewise. 14030 (enum access_kind): New enumeration. 14031 (num_extra_vtbl_entries): Remove declaration. 14032 (size_extra_vtbl_entries): Likewise. 14033 (get_vtbl_decl_for_binfo): New function. 14034 (dfs_vbase_unmark): Remove declaration. 14035 (mark_primary_bases): Likewise. 14036 * class.c (SAME_FN): Remove. 14037 (struct vcall_offset_data_s): Move definition. 14038 (build_vbase_pointer): Use `build', not `build_binary_op', to 14039 access the vbase pointer under the new ABI. 14040 (build_vtable_entry_ref): Use get_vtbl_decl_for_binfo. 14041 (build_primary_vtable): Likewise. 14042 (dfs_mark_primary_bases): Move here from search.c. 14043 (mark_primary_bases): Likewise. 14044 (determine_primary_bases): Under the new ABI, don't make a base 14045 class a primary base just because we don't yet have any virtual 14046 functions. 14047 (layout_vtable_decl): Use get_vtbl_decl_for_binfo. 14048 (num_vfun_entries): Remove. 14049 (dfs_count_virtuals): Likewise. 14050 (num_extra_vtbl_entries): Likewise. 14051 (size_extra_vtbl_entries): Likewise. 14052 (layout_virtual_bases): Iterate in inheritance graph order under 14053 the new ABI. 14054 (finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to 14055 indicate that a vfield is present. 14056 (init_class_processing): Initialize access_public_node, etc., from 14057 ak_public, etc. 14058 (get_vtbl_decl_for_binfo): New function. 14059 (dump_class_hierarchy_r): Likewise. 14060 (dump_class_hierarchy): Use it. 14061 (finish_vtbls): Build the vtbls in inheritance graph order. 14062 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 14063 (initialize_vtable): Use get_vtbl_decl_for_binfo. 14064 (accumulate_vtbl_inits): Add comments explaining why a pre-order 14065 walk is required. 14066 (dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location 14067 where the vptr points, even for primary vtables. 14068 (build_vtbl_initializer): Adjust handling of vbase and vcall 14069 offsets. 14070 (build_vcall_and_vbase_vtable_entries): New function. 14071 (dfs_build_vbase_offset_vtbl_entries): Remove. 14072 (build_vbase_offset_vtbl_entries): Reimplement. 14073 (dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that 14074 were already handled in a primary base class vtable. 14075 (build_vcall_offset_vtbl_entries): Adjust. 14076 (build_rtti_vtbl_entries): Adjust. 14077 * decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo. 14078 * init.c (expand_virtual_init): Simplify. 14079 * repo.c (repo_get_id): Use get_vtbl_decl_for_binfo. 14080 * rtti.c (create_pseudo_type_info): Adjust calculation of vptr. 14081 * search.c (BINFO_ACCESS): New macro. 14082 (SET_BINFO_ACCESS): Likewise. 14083 (dfs_access_in_type): Manipulate access_kinds, not access nodes. 14084 (access_in_type): Likewise. 14085 (dfs_accessible_p): Likewise. 14086 (protected_accessible_p): Likewise. 14087 (lookup_fnfields_1): Adjust documentation. 14088 (dfs_mark_primary_bases): Move to class.c 14089 (mark_primary_bases): Likewise. 14090 (dfs_vbase_unmark): Remove. 14091 (virtual_context): Use BINFO_FOR_VBASE. 14092 (dfs_get_vbase_types): Simplify. 14093 (dfs_build_inheritance_graph_order): New function. 14094 (get_vbase_types): Use it. 14095 * tree.c (debug_binfo): Use get_vtbl_decl_for_binfo. 14096 14097 * tinfo.cc (get_vbase_offset): New function. 14098 (__vmi_class_type_info::do_find_public_src): Use it. 14099 (__vmi_class_type_info::do_dyncast): Likewise. 14100 (__vmi_class_type_info::do_upcast): Likewise. 14101 141022000-04-03 Zack Weinberg <zack@wolery.cumb.org> 14103 14104 * lang-specs.h: Pass -fno-show-column to the preprocessor. 14105 141062000-03-30 Nathan Sidwell <nathan@codesourcery.com> 14107 14108 * rtti.c (class_hint_flags): Rename flags. 14109 (class_initializer): Remove flags. 14110 (synthesize_tinfo_var): Combine offset and flags. Add flags 14111 for __vmi_class_type_info. 14112 (create_tinfo_types): Remove flags from __class_type_info and 14113 __si_class_type_info. Merge flags and offset from 14114 base_class_type_info. 14115 * inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags. 14116 (__base_class_info::is_virtual_p): Adjust. 14117 (__base_class_info::is_public_p): Adjust. 14118 (__base_class_info::offset): New accessor. 14119 (__class_type_info::details): Remove member. 14120 (__class_type_info::__class_type_info): Lose details. 14121 (__class_type_info::detail_masks): Remove. 14122 (__si_class_type_info::__si_class_type_info): Lose details. 14123 (__vmi_class_type_info::details): New member. 14124 (__vmi_class_type_info::__vmi_class_type_info): Adjust. 14125 (__vmi_class_type_info::detail_masks): New member. 14126 * tinfo.cc (__class_type_info::do_upcast): Initialize result 14127 with unknown_details_mask. 14128 (__vmi_class_type_info::do_find_public_src): Adjust 14129 (__vmi_class_type_info::do_dyncast): Adjust. 14130 (__vmi_class_type_info::do_upcast): Set result details, if 14131 needed. Adjust. 14132 (__dynamic_cast): Temporarily #if out optimization. 14133 141342000-03-29 Nathan Sidwell <nathan@codesourcery.com> 14135 14136 * rtti.c (get_tinfo_decl): Mark used. 14137 (emit_tinfo_decl): Don't optimize polymorphic type_info. Only 14138 mark as dealt with, if we output it. 14139 141402000-03-28 Mark Mitchell <mark@codesourcery.com> 14141 14142 * class.c: Reorganize to put virtual function table initialization 14143 machinery at the end of the file. 14144 141452000-03-28 Jason Merrill <jason@casey.cygnus.com> 14146 14147 * class.c (finish_struct): Use bitsize_zero_node. 14148 * pt.c (instantiate_class_template): Likewise. 14149 141502000-03-28 Mark Mitchell <mark@codesourcery.com> 14151 14152 Put RTTI entries at negative offsets in new ABI. 14153 * class.c (dfs_build_vbase_offset_vtbl_entries): Put the first 14154 vbase offset at index -3, not -1. 14155 (build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not 14156 dfs_vtable_path_unmarked_real_bases_queue_p to walk bases. 14157 (dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff. 14158 (build_rtti_vtbl_entries): New function. 14159 (set_rtti_entry): Remove. 14160 (build_primary_vtable): Don't use it. 14161 (build_secondary_vtable): Likewise. 14162 (start_vtable): Remove. 14163 (first_vfun_index): New function. 14164 (set_vindex): Likewise. 14165 (add_virtual_function): Don't call start_vtable. Do call 14166 set_vindex. 14167 (set_primary_base): Rename parameter. 14168 (determine_primary_base): Likewise. 14169 (num_vfun_entries): Don't use skip_rtti_stuff. 14170 (num_extra_vtbl_entries): Include RTTI information. 14171 (build_vtbl_initializer): Use build_rtti_vtbl_entries. 14172 (skip_rtti_stuff): Remove. 14173 (dfs_modify_vtables): Don't use it. 14174 (modify_all_vtables): Don't use start_vtable. Do use set_vindex. 14175 (layout_nonempty_base_or_field): Update size handling. 14176 (create_vtable_ptr): Tweak. 14177 (layout_class_type): Adjust parameter names. 14178 (finish_struct_1): Simplify. 14179 * cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation. 14180 (skip_rtti_stuff): Remove. 14181 (first_vfun_index): New function. 14182 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 14183 (dfs_vtable_path_marked_real_bases_queue_p): Remove. 14184 (marked_vtable_pathp): Declare. 14185 (unmarked_vtable_pathp): Likewise. 14186 * error.c (dump_expr): Use first_vfun_index to calculate vtable 14187 offsets. 14188 * rtti.c (build_headof): Look for RTTI at negative offsets. 14189 (get_tinfo_decl_dynamic): Likewise. 14190 (tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL 14191 here. 14192 (create_pseudo_type_info): Do it here instead. Adjust so that 14193 vptr points at first virtual function. 14194 * search.c (marked_vtable_pathp): Make it global. 14195 (unmarked_vtable_pathp): Likewise. 14196 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 14197 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 14198 (dfs_get_pure_virtuals): Don't use skip_rtti_stuff. 14199 (get_pure_virtuals): Likewise. 14200 (expand_upcast_fixups): Likewise. 14201 * tree.c (debug_binfo): Likewise. 14202 * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate 14203 negative offset. 14204 14205Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14206 14207 * class.c (check_field_decl): Fix typo. 14208 (build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS. 14209 (check_methods): Likewise. 14210 (check_field_decls): Likewise. 14211 Use DECL_CONTEXT, not DECL_FIELD_CONTEXT. 14212 * cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT): 14213 Use DECL_RESULT_FLD, not DECL_RESULT. 14214 * decl.c (xref_tag): Use DECL_TEMPLATE_RESULT. 14215 * lex.c (identifier_type): Likewise. 14216 * pt.c (determine_specialization, lookup_template_class): Likewise. 14217 (tsubst_friend_function, tsubst_decl, instantiate_template): Likewise. 14218 (resolve_overloaded_unification, more_specialized): Likewise. 14219 * semantics.c (finish_member_declaration): Likewise. 14220 * typeck.c (build_x_function_call): Likewise. 14221 142222000-03-26 Mark Mitchell <mark@codesourcery.com> 14223 14224 * class.c (layout_empty_base): Handle empty bases with non-byte 14225 alignment. 14226 (build_base_field): Likewise. 14227 (layout_virtual_bases): Likewise. 14228 14229 * class.c (finish_struct_1): Fix typo in this change: 14230 14231 Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14232 142332000-03-25 Mark Mitchell <mark@codesourcery.com> 14234 14235 * decl.c (grokdeclarator): Count partial specializations when 14236 keeping track of how many template classes have been seen. 14237 14238 * dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT. 14239 14240Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14241 14242 * class.c (build_vbase_pointer_fields): layout_field now place_field. 14243 (get_vfield_offset): Use byte_position. 14244 (set_rtti_entry): Set OFFSET to ssizetype zero. 14245 (get_binfo_offset_as_int): Deleted. 14246 (dfs_record_base_offsets): Use tree_low_cst. 14247 (dfs_search_base_offsets): Likewise. 14248 (layout_nonempty_base_or_field): Reflect changes in RLI format 14249 and call byte_position. 14250 (layout_empty_base): Convert offset to ssizetype. 14251 (build_base_field): use rli_size_unit_so_far. 14252 (dfs_propagate_binfo_offsets): Do computation in proper type. 14253 (layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets. 14254 (layout_class_type): Reflect changes in RLI names and fields. 14255 (finish_struct_1): Set DECL_FIELD_OFFSET. 14256 * dump.c (dequeue_and_dump): Call bit_position. 14257 * expr.c (cplus_expand_constant): Use byte_position. 14258 * rtti.c (expand_class_desc): Use bitsize_one_node. 14259 * typeck.c (build_component_addr): Use byte_position and don't 14260 special case for zero offset. 14261 142622000-03-24 Nathan Sidwell <nathan@codesourcery.com> 14263 14264 * decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P. 14265 14266 * rtti.c (get_tinfo_decl): Set comdat linkage on new-abi 14267 tinfo object. 14268 (emit_tinfo_decl): Only emit polymorphic tinfo's when emitting 14269 vtable. 14270 142712000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 14272 14273 * call.c (check_dtor_name, build_new_method_call): Use TYPE_P and 14274 DECL_P macros. 14275 * decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name, 14276 make_typename_type, check_initializer, cp_finish_decl, 14277 xref_tag): Likewise. 14278 * decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree, 14279 decl_namespace, arg_assoc_template_arg, arg_assoc, 14280 validate_nonmember_using_decl, do_class_using_decl): Likewise. 14281 * error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of, 14282 args_to_string): Likewise. 14283 * friend.c (is_friend): Likewise. 14284 * lex.c (note_got_semicolon, note_list_got_semicolon, 14285 is_global): Likewise. 14286 * method.c (build_overload_nested_name, build_overload_value, 14287 build_qualified_name, build_qualified_name, hack_identifier): Likewise. 14288 * parse.y (typename_sub, typename_sub1): Likewise. 14289 * pt.c (push_inline_template_parms_recursive, check_template_shadow, 14290 process_partial_specialization, convert_template_argument, 14291 template_args_equal, add_pending_template, lookup_template_class, 14292 for_each_template_parm_r, maybe_fold_nontype_arg, 14293 tsubst, instantiate_template, type_unification_real, unify, 14294 instantiate_pending_templates, set_mangled_name_for_template_decl): 14295 Likewise. 14296 * repo.c (repo_get_id, repo_template_used): Likewise. 14297 * search.c (lookup_field_1): Likewise. 14298 * tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise. 14299 * xref.c (classname): Likewise. 14300 143012000-03-22 Mark Mitchell <mark@codesourcery.com> 14302 14303 * cp-tree.h (BINFO_FOR_VBASE): Adjust documentation. 14304 (CANONICAL_BINFO): New macro. 14305 (BINFO_NEW_VTABLE_MARKED): Use it. 14306 (SET_BINFO_NEW_VTABLE_MARKED): Likewise. 14307 (CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise. 14308 * class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE, 14309 not TREE_TYPE. 14310 (build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED. 14311 (build_secondary_vtable): Likewise. 14312 (dfs_finish_vtbls): Likewise. 14313 (dfs_accumulate_vtbl_inits): Likewise. 14314 (accumulate_vtbl_inits): New function. 14315 (finish_vtbls): Make sure that virtual bases come after 14316 non-virtual bases in the vtable group. 14317 (record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL. 14318 (finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED. 14319 * search.c (struct vbase_info): Move definition. 14320 (marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED. 14321 (unmarked_new_vtable_p): Likewise. 14322 (dfs_mark_vtable_path): Remove. 14323 (dfs_mark_new_vtable): Remove. 14324 (dfs_unmark_new_vtable): Likewise. 14325 (dfs_clear_search_slot): Likewise. 14326 (dfs_find_vbases): Adjust usage of BINFO_NEW_VTABLE_MARKED. 14327 (dfs_clear_vbase_slots): Likewise. 14328 (init_vbase_pointers): LIkewise. 14329 143302000-03-22 Jason Merrill <jason@casey.cygnus.com> 14331 14332 * typeck.c (type_after_usual_arithmetic_conversions): Prefer a 14333 SIZETYPE to a non-SIZETYPE. 14334 143352000-03-21 Mark Mitchell <mark@codesourcery.com> 14336 14337 * class.c (layout_virtual_bases): Adjust names in conditionally 14338 compiled code. 14339 14340 * class.c (record_base_offsets): New function. 14341 (layout_conflict_p): Likewise. 14342 (layout_nonempty_base_or_field): Use it. 14343 (layout_empty_base): New function. 14344 (build_base_field): Use it. 14345 (build_base_fields): Update comment. 14346 (layout_virtual_bases): Fold in a little code form 14347 layout_basetypes. Use layout_empty_base. 14348 (layout_basetypes): Remove. 14349 (end_of_class): New function. 14350 (layout_class_type): Use it. Adjust. 14351 14352 * cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment. 14353 (fntype_p): Remove. 14354 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in 14355 comment. 14356 (dfs_skip_nonprimary_vbases_markedp): Likewise. 14357 * typeck.c (fntype_p): Remove. 14358 14359 * cp-tree.h (TI_SPEC_INFO): Remove. 14360 (CLASSTYPE_TI_SPEC_INFO): Likewise. 14361 * pt.c (process_partial_specialization): Likewise. 14362 14363 * class.c (build_base_field): Fix thinko in computation of binfo 14364 offsets. 14365 14366 * tree.c (mark_local_for_remap_p): Mark variables declared in 14367 TARGET_EXPRs as well. 14368 143692000-03-21 Nathan Sidwell <nathan@codesourcery.com> 14370 14371 * typeck.c (require_complete_type, complete_type, 14372 complete_type_or_else, c_sizeof, c_sizeof_nowarn, 14373 build_array_ref, convert_arguments, pointer_diff, 14374 build_x_unary_op, build_unary_op, build_c_cast, 14375 build_modify_expr): Use COMPLETE_TYPE_P etc. 14376 * call.c (is_complete, convert_like_real, 14377 build_new_method_call): Likewise. 14378 * class.c (build_vbase_pointer_fields, check_bases, 14379 build_base_field, finish_struct_1, pushclass): Likewise. 14380 * cvt.c (cp_convert_to_pointer, convert_to_void): Likewise. 14381 * decl.c (maybe_process_template_type_declaration, pushtag, 14382 pushdecl, redeclaration_error_message, start_decl, start_decl_1, 14383 layout_var_decl, check_initializer, cp_finish_decl, 14384 grokdeclarator, require_complete_types_for_parms, 14385 grok_op_properties, xref_tag, xref_basetypes, 14386 check_function_type): Likewise. 14387 * decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise. 14388 * friend.c (do_friend): Likewise. 14389 * init.c (build_offset_ref): Likewise. 14390 * parse.y (structsp): Likewise. 14391 * pt.c (maybe_process_partial_specialization, 14392 tsubst_friend_function, instantiate_class_template, tsubst, 14393 do_type_instantiation, instantiate_pending_templates): Likewise. 14394 * repo.c (repo_get_id): Likewise. 14395 * rtti.c (build_typeid, get_typeid, build_dynamic_cast_1, 14396 synthesize_tinfo_var, emit_support_tinfos): Likewise. 14397 * search.c (lookup_fnfields_1, lookup_conversions): Likewise. 14398 * semantics.c (begin_class_definition): Likewise. 14399 * tree.c (build_cplus_method_type): Likewise. 14400 * typeck2.c (digest_init, build_functional_cast, 14401 add_exception_specifier): Likewise. 14402 * parse.h, parse.c: Regenerated. 14403 144042000-03-21 Nathan Sidwell <nathan@codesourcery.com> 14405 14406 * inc/cxxabi.h: New header file. Define new-abi entry points. 14407 (__pointer_type_info::target): Rename member to ... 14408 (__pointer_type_info::type): ... here. 14409 (__base_class_info::type): Rename member to ... 14410 (__base_class_info::base): ... here. 14411 * Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h 14412 * cp-tree.h (CPTI_ABI): New global tree enumeration. 14413 (abi_node): New global tree node. 14414 * decl.c (abi_node): Document. 14415 (init_decl_processing): Initialize abi_node. 14416 * rtti.c (build_dynamic_cast_1): Use abi_node for new-abi. 14417 (get_vmi_pseudo_type_info): Likewise. 14418 (create_tinfo_types): Likewise. 14419 (emit_support_tinfos): Likewise. 14420 * tinfo.h (cxxabi.h): Include for new-abi. 14421 Move rtti class definitions to new header file. 14422 * tinfo.cc (abi): Use the namespace. 14423 (std): Move new abi rtti classes from here ... 14424 (__cxxabiv1): ... to here. 14425 * tinfo2.cc (cxxabi.h): Include for new-abi. 14426 Move rtti class definitions to new header file. 14427 (std): Move new abi rtti classes from here ... 14428 (__cxxabiv1): ... to here. 14429 * inc/typeinfo (__class_type_info): Move into __cxxabiv1 14430 namespace. 14431 144322000-03-20 Jed Wing <jedwin@zloty.ugcs.caltech.edu> 14433 Jason Merrill <jason@casey.cygnus.com> 14434 14435 * method.c (build_overload_int): Use host_integerp. 14436 144372000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 14438 14439 * init.c (build_offset_ref): Handle the case of a templated member 14440 function. 14441 144422000-03-19 Martin v. L�wis <loewis@informatik.hu-berlin.de> 14443 14444 * except.c (expand_exception_blocks): Clear catch_clauses_last. 14445 144462000-03-18 Mark Mitchell <mark@codesourcery.com> 14447 14448 * cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro. 14449 * class.c (check_bitfield_decl): Turn illegal bitfields into 14450 non-bitfields. 14451 (dfs_propagate_binfo_offsets): Adjust for new size_binop 14452 semantics. 14453 (dfs_offset_for_unshared_vbases): Likewise. 14454 * cvt.c (cp_convert_to_pointer): Convert NULL to a 14455 pointer-to-member correctly under the new ABI. 14456 * expr.c (cplus_expand_constant): Don't use cp_convert when 14457 turning an offset into a pointer-to-member. 14458 * init.c (resolve_offset_ref): Don't adjust pointers-to-members 14459 when dereferencing them under the new ABI. 14460 * typeck.c (get_member_function_from_ptrfunc): Tweak calculation 14461 of pointers-to-members under the new ABI. 14462 14463 * class.c (check_bitfield_decl): Remove restriction on really long 14464 bitfields. 14465 (layout_class_type): Implement new ABI handling of bitfields 14466 longer than their types. 14467 144682000-03-18 Martin v. L�wis <loewis@informatik.hu-berlin.de> 14469 14470 * parse.y (extdefs): Call ggc_collect. 14471 * parse.c: Regenerated. 14472 144732000-03-18 Nathan Sidwell <nathan@codesourcery.com> 14474 14475 * class.c (build_base_field): Use TYPE_ALIGN to examine a type. 14476 (note_name_declared_in_class): Use OVL_CURRENT to get at a 14477 potential overload. 14478 14479Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14480 14481 * class.c (build_vbase_path): Use integer_zerop. 14482 (build_vtable_entry): Use tree_low_cst. 14483 (get_vfield_offset): Use bit_position. 14484 (dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT. 14485 Use tree_low_cst. 14486 (check_bitfield_decl): Set DECL_SIZE using convert. 14487 (build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop. 14488 (layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT. 14489 Use tree_low_cst. 14490 (finish_struct_1): Use bit_position. 14491 (dump_class_hierarchy): Use tree_low_cst. 14492 * cp-tree.h (min_precision): Add declaration. 14493 * decl.c (xref_tag, xref_basetypes): Use tree_low_cst. 14494 * error.c (dump_type_suffix): Use host_integerp and tree_low_cst. 14495 (dump_expr): Use integer_zerop, host_integerp, and tree_low_cst. 14496 * expr.c (cplus_expand_constant): Use bit_position. 14497 * init.c (build_vec_init): Use host_integerp and tree_low_cst. 14498 * rtti.c (get_base_offset): Use bit_position. 14499 * typeck.c (build_binary_op): Use integer_zerop, compare_tree_int, 14500 host_integerp, and tree_low_cst. 14501 (pointer_int_sum): Use integer_zerop. 14502 (build_component_addr): Use bit_position. 14503 145042000-03-17 Nathan Sidwell <nathan@codesourcery.com> 14505 14506 * typeck.c (require_complete_type): Don't assume size_zero_node. 14507 (complete_type_or_else): Likewise. 14508 145092000-03-16 Steven Grady <grady@digitaldeck.com> 14510 Jason Merrill <jason@casey.cygnus.com> 14511 14512 * rtti.c (build_dynamic_cast_1): Improve diagnostics. 14513 145142000-03-16 Nathan Sidwell <nathan@codesourcery.com> 14515 14516 * decl2.c (grokfield): Bail out if type is error_mark_node. 14517 145182000-03-15 Nathan Sidwell <nathan@codesourcery.com> 14519 14520 * tinfo2.cc (__ptr_to_member_data): Rename to ... 14521 (__pointer_to_member_data): ... here. Adjust. 14522 * rtti.c (create_tinfo_types): Adjust. 14523 145242000-03-15 Nathan Sidwell <nathan@codesourcery.com> 14525 14526 * cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove. 14527 * decl.c (ref_desc_type_node): Undocument. 14528 * rtti.c (ptr_ref_initializer): Rename to ... 14529 (ptr_initializer): ... here. Adjust comments. 14530 (ptmd_initializer): Fix comment thinko. 14531 (synthesize_tinfo_var): Remove REFERENCE_TYPE case. 14532 (create_tinfo_types): Remove ref_desc_type_node init. 14533 * tinfo2.cc (__reference_type_info): Remove. 14534 145352000-03-15 Nathan Sidwell <nathan@codesourcery.com> 14536 14537 * decl.c (cp_finish_decl): Remove obsolete comment. 14538 14539 * typeck.c (build_ptrmemfunc1): Kill uninitialized warning. 14540 145412000-03-14 Mark Mitchell <mark@codesourcery.com> 14542 14543 * cp-tree.h: Tweak documentation. 14544 * class.c (build_vbase_pointer_fields): Layout the fields, too. 14545 (avoid_overlap): Remove. 14546 (get_binfo_offset_as_int): New function. 14547 (dfs_serach_base_offsets): Likewise. 14548 (layout_nonempty_base_or_field): Likewise. 14549 (build_base_field): Layout fields here. Avoid placing two objects 14550 of the same type at the same address, under the new ABI. 14551 (build_base_fields): Adjust accordingly. 14552 (create_vtable_ptr): Return the new field, but don't attach it to 14553 TYPE_FIELDS. 14554 (remove_base_field): Remove. 14555 (remove_base_fields): Remove. 14556 (layout_basetypes): Adjust accordingly. 14557 (layout_class_type): Call layout_field for each field, rather than 14558 just making a wholesale call to layout_type. 14559 145602000-03-14 Jeff Sturm <jsturm@sigma6.com> 14561 14562 * except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw. 14563 145642000-03-13 Jason Merrill <jason@casey.cygnus.com> 14565 14566 * decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P. 14567 14568 * except.c (dtor_nothrow): New fn. 14569 (do_pop_exception): Use it. Take type parm. 14570 (push_eh_cleanup): Take type parm. 14571 (expand_start_catch_block): Pass it. 14572 (build_eh_type_type_ref): Accept null type. 14573 145742000-03-12 Mark Mitchell <mark@codesourcery.com> 14575 14576 * cp-tree.h (revert_static_member_fn): Change prototype. 14577 * decl.c (grokfndecl): Adjust call to revert_static_member_fn. 14578 (grok_op_properties): Likewise. 14579 (start_function): Likewise. 14580 (revert_static_member_fn): Simplify. 14581 * pt.c (check_explicit_specialization): Adjust call to 14582 revert_static_member_fn. 14583 145842000-03-11 Mark Mitchell <mark@codesourcery.com> 14585 14586 * cp-tree.h (scope_kind): New type. 14587 (tmpl_spec_kind): Likewise. 14588 (declare_pseudo_global_level): Remove. 14589 (pseudo_global_level_p): Rename to template_parm_scope_p. 14590 (pushlevel): Remove declaration. 14591 (begin_scope): New function. 14592 (finish_scope): Likewise. 14593 (current_tmpl_spec_kind): Likewise. 14594 * decl.c (struct binding_level): Shorten parm_flag to 2 bits. 14595 Shorten keep to 2 bits. Rename pseudo_global to template_parms_p. 14596 Add template_spec_p. 14597 (toplevel_bindings_p): Adjust. 14598 (declare_pseudo_global_level): Remove. 14599 (pseudo_global_level_p): Rename to template_parm_scope_p. 14600 (current_tmpl_spec_kind): New function. 14601 (begin_scope): Likewise. 14602 (finish_scope): Likewise. 14603 (maybe_push_to_top_level): Adjust. 14604 (maybe_process_template_type_declaration): Likewise. 14605 (pushtag): Likewise. 14606 (pushdecl_nonclass_level): Likewise. 14607 (lookup_tag): Likewise. 14608 (grokfndecl): Handle member template specializations. Share 14609 constructor and non-constructor code. 14610 * decl2.c (check_classfn): Handle member template specializations. 14611 * pt.c (begin_template_parm_list): Use begin_scope. 14612 (begin_specialization): Likewise. 14613 (end_specialization): Likewise. 14614 (check_explicit_specialization): Use current_tmpl_spec_kind. 14615 Handle member template specializations. 14616 (end_template_decl): Use finish_scope. Remove call to 14617 get_pending_sizes. 14618 (push_template_decl_real): Remove bogus error message. 14619 (tsubst_decl): Fix typo in code contained in comment. 14620 (instantiate_template): Handle member template specializations. 14621 (most_general_template): Likewise. 14622 146232000-03-11 Gabriel Dos Reis <gdr@codesourcery.com> 14624 14625 * lex.c (whitespace_cr): Compress consecutive calls to warning(). 14626 (do_identifier): Ditto for error(). 14627 14628 * pt.c (convert_nontype_argument): Ditto for cp_error(). 14629 (convert_template_argument): Ditto for cp_pedwarn(). 14630 146312000-03-11 Jason Merrill <jason@casey.cygnus.com> 14632 14633 * exception.cc (__check_null_eh_spec): New fn. 14634 * except.c (expand_end_eh_spec): Call it if the spec is throw(). 14635 146362000-03-10 Jason Merrill <jason@casey.cygnus.com> 14637 14638 * decl.c (push_throw_library_fn): Take the FUNCTION_TYPE. 14639 * except.c (expand_end_eh_spec): Add the return type. 14640 * rtti.c (throw_bad_cast): Add the parmtypes. 14641 (throw_bad_typeid): Likewise. 14642 14643 * semantics.c (expand_stmt): Only leave out rtl for unused 14644 artificials, and set DECL_IGNORED_P on them as well. 14645 * decl.c (wrapup_globals_for_namespace): Likewise. 14646 146472000-03-09 Nathan Sidwell <nathan@codesourcery.com> 14648 14649 * decl.c (maybe_commonize_var): Skip all artificial decls. 14650 * pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN. 14651 146522000-03-10 Jason Merrill <jason@casey.cygnus.com> 14653 14654 * lang-options.h, decl2.c: Add -fno-enforce-eh-specs. 14655 * cp-tree.h: Declare flag_enforce_eh_specs. 14656 * decl.c (store_parm_decls, finish_function): Check it. 14657 14658 C library functions don't throw. 14659 * Makefile.in (cfns.h): New target. 14660 (except.o): Depend on it. 14661 * Make-lang.in (cc1plus): Depend on cfns.gperf. 14662 * cfns.gperf: New file. 14663 * cfns.h: Generated. 14664 * except.c: Include it. 14665 (nothrow_libfn_p): New fn. 14666 * decl.c (grokfndecl): Use it. 14667 * cp-tree.h: Declare it. 14668 14669 * decl.c (push_overloaded_decl_1, auto_function, 14670 define_function): Lose. 14671 (build_library_fn_1): New static fn. 14672 (builtin_function): Use it. 14673 (get_atexit_node): Use build_library_fn_ptr. 14674 (build_library_fn, build_cp_library_fn, build_library_fn_ptr, 14675 build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn, 14676 push_void_library_fn, push_throw_library_fn): New fns. 14677 * cp-tree.h: Declare them. 14678 (cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID. 14679 (throw_bad_cast_node, throw_bad_typeid_node): Lose. 14680 * except.c (init_exception_processing, call_eh_info, do_pop_exception, 14681 (expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns. 14682 * rtti.c (build_runtime_decl): Lose. 14683 (throw_bad_cast, throw_bad_typeid, get_tinfo_decl, 14684 build_dynamic_cast_1, expand_si_desc, expand_class_desc, 14685 expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns. 14686 14687 * call.c (build_call): Remove result_type parm. 14688 Call mark_used on unused artificial fns. 14689 * init.c, method.c, typeck.c, except.c, rtti.c: Adjust. 14690 146912000-03-09 Jason Merrill <jason@casey.cygnus.com> 14692 14693 * call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as 14694 appropriate. 14695 * decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL. 14696 * except.c (call_eh_info, alloc_eh_object, expand_throw): Set 14697 TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate. 14698 * rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1, 14699 expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 14700 expand_generic_desc): Likewise. 14701 147022000-03-08 Nathan Sidwell <nathan@codesourcery.com> 14703 14704 * exception.cc (__cp_pop_exception): Cleanup the original object. 14705 147062000-03-08 Nathan Sidwell <nathan@codesourcery.com> 14707 14708 * decl.c (grok_op_properties): Merge conversion to void warning 14709 with other silly op warnings. 14710 147112000-03-08 Jason Merrill <jason@casey.cygnus.com> 14712 14713 * typeck2.c (process_init_constructor): Set TREE_PURPOSE of 14714 array CONSTRUCTOR elements. Don't use expr_tree_cons. 14715 147162000-03-08 Nathan Sidwell <nathan@codesourcery.com> 14717 14718 * decl.c (cp_make_fname_decl): New function. 14719 (wrapup_globals_for_namespace): Don't emit unused static vars. 14720 (init_decl_processing): Remove comment about use of 14721 array_domain_type. Set make_fname_decl. 14722 (cp_finish_decl): Remove __FUNCTION__ nadgering. 14723 * semantics.c (begin_compound_stmt): Remove 14724 current_function_name_declared flagging. 14725 (expand_stmt): Don't emit unused local statics. 14726 * typeck.c (decay_conversion): Don't treat __FUNCTION__ decls 14727 specially. 14728 147292000-03-08 Nathan Sidwell <nathan@codesourcery.com> 14730 14731 * typeck.c (convert_for_assignment): Don't look at array 14732 initializer. 14733 * call.c (convert_like_real): Likewise. 14734 147352000-03-07 Jason Merrill <jason@casey.cygnus.com> 14736 14737 Add initial support for '\uNNNN' specifier. 14738 * lex.c (read_ucs): New fn. 14739 (readescape, skip_white_space): Call it. 14740 (is_extended_char, is_extended_char_1): New fns. 14741 (utf8_extend_token): New fn, #if 0'd out. 14742 (real_yylex): Treat extended chars like letters. 14743 14744 * search.c (note_debug_info_needed): Walk the bases even if we 14745 weren't deferring the type itself. 14746 147472000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14748 14749 * decl2.c (finish_objects): Constify a char*. 14750 14751 * method.c (emit_thunk): Likewise. 14752 147532000-03-06 Nathan Sidwell <nathan@codesourcery.com> 14754 14755 * typeck.c (dubious_conversion_warnings): Look through 14756 REFERENCE_TYPE. 14757 14758Mon Mar 6 08:46:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14759 14760 * class.c (dfs_modify_vtables): I is now unsigned. 14761 (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. 14762 (build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT. 14763 * error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned. 14764 * init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 14765 * method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned. 14766 * typeck.c (build_binary_op, case TRUNC_DIV_EXPR): 14767 Call integer_all_onesp. 14768 * typeck2.c (process_init_constructor): Use compare_tree_int. 14769 14770 * lang-specs.h (as): Don't call if -syntax-only. 14771 147722000-03-06 Mark Mitchell <mark@codesourcery.com> 14773 14774 * expr.c (cplus_expand_expr, case STMT_EXPR): Don't set 14775 RTL_EXPR_HAS_NO_SCOPE after all. 14776 147772000-03-05 Mark Mitchell <mark@codesourcery.com> 14778 14779 * expr.c (cplus_expand_expr, case STMT_EXPR): Use 14780 expand_start_stmt_expr and expand_end_stmt_expr directly. Set 14781 RTL_EXPR_HAS_NO_SCOPE. 14782 14783 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little 14784 later. 14785 14786 * dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P. 14787 147882000-03-05 Nathan Sidwell <nathan@codesourcery.com> 14789 14790 * call.c (convert_like): Macrofy. 14791 (convert_like_with_context): New macro. 14792 (convert_like_real): Renamed from convert_like. Add calling 14793 context parameters, for diagnostics. Add recursive flag. Call 14794 dubious_conversion_warnings for outer conversion. 14795 (build_user_type_conversion): Use convert_like_with_context. 14796 (build_over_call): Likewise. Don't warn about dubious 14797 conversions here. Adjust convert_default_arg calls. 14798 (convert_default_arg): Add context parameters for diagnostics. 14799 Pass through to convert_like_with_context. 14800 * cp-tree.h (convert_default_arg): Add context parameters. 14801 (dubious_conversion_warnings): Prototype new function. 14802 * typeck.c (convert_arguments): Adjust convert_default_arg call. 14803 (dubious_conversion_warnings): New function, broken 14804 out of convert_for_assignment. 14805 (convert_for_assignment): Adjust. 14806 148072000-03-03 Jason Merrill <jason@casey.cygnus.com> 14808 14809 * decl2.c (key_method): Break out from... 14810 (import_export_vtable, import_export_class): ...here. 14811 14812 * decl.c (finish_function): Don't mess with flag_keep_inline_functions. 14813 * decl2.c (finish_vtable_vardecl): Don't check decl_function_context. 14814 14815 * search.c (note_debug_info_needed, dfs_debug_mark, 14816 dfs_debug_unmarkedp): Uncomment. Adjust for new scheme. 14817 * decl2.c (finish_vtable_vardecl): Call note_debug_info_needed. 14818 148192000-03-03 Nathan Sidwell <nathan@codesourcery.com> 14820 14821 * decl.c (cp_finish_decl): Remove obsolete obstack comments, fix 14822 typos. 14823 148242000-03-02 Mark Mitchell <mark@codesourcery.com> 14825 14826 * cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ... 14827 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this. 14828 (TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro. 14829 (lang_type): Split gets_new into has_new and has_array_new. 14830 (TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 14831 (TYPE_GETS_NEW): Split into ... 14832 (TYPE_HAS_NEW_OPERATOR): ... this, and ... 14833 (TYPE_HAS_ARRAY_NEW_OPERATOR): ... this. 14834 (DECL_ARRAY_DELETE_OPERATOR_P): New macro 14835 (build_op_new_call): Don't declare. 14836 (build_new_1): Likewise. 14837 * call.c (build_op_new_call): Remove. 14838 * class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 14839 instead of TYPE_NEEDS_DESTRUCTOR. 14840 (finish_struct_bits): Likewise. 14841 (add_implicitly_declared_members): Likewise. 14842 (check_field_decl): Likewise. 14843 (check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it 14844 correctly under the new ABI. 14845 * decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 14846 instead of TYPE_NEEDS_DESTRUCTOR. 14847 (initialize_local_var): Likewise. 14848 (destroy_local_var): Likewise. 14849 (cp_finish_decl): Likewise. 14850 (register_dtor_fn): Likewise. 14851 (grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and 14852 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. Don't set 14853 TYPE_VEC_DELETE_TAKES_SIZE here. 14854 (xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and 14855 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. 14856 (store_parm_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 14857 (finish_destructor_body): Likewise. 14858 (maybe_build_cleanup_1): Likewise. 14859 * decl2.c (do_static_destruction): Likewise. 14860 * init.c (build_new_1): Make it static. 14861 (perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 14862 (expand_cleanup_for_base): Likewise. 14863 (get_cookie_size): New function. 14864 (build_new_1): Handle array-new cookies correctly under the new 14865 ABI. 14866 (build_vec_delete_1): Likewise. 14867 (build_vec_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 14868 (build_delete): Likewise. 14869 (build_vec_delete): Handle array-new cookies correctly under the new 14870 ABI. 14871 * lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 14872 * pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and 14873 TYPE_HAS_ARRAY_NEW_OPERATOR. 14874 * ptree.c (print_lang_type): Check them. 14875 * search.c (context_for_name_lookup): Fix typo in comment. 14876 (tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 14877 * tree.c (break_out_cleanups): Likewise. 14878 (build_cplus_array_test_1): Likewise. 14879 (cp_build_qualified_type_real): Likewise. 14880 * typeck.c (complete_type): Likewise. 14881 14882 * g++spec.c (lang_specific_driver): Add -fnew-abi at the start of 14883 the command-line, not the end. 14884 148852000-03-01 Jason Merrill <jason@casey.cygnus.com> 14886 14887 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG. 14888 148892000-03-02 Tom Tromey <tromey@cygnus.com> 14890 14891 * cp-tree.h (build_java_class_ref): Declare. 14892 * init.c (build_java_class_ref): No longer static. 14893 * except.c (expand_throw): Generate a Java-style `throw' if the 14894 thrown object is a "Java" object. 14895 (initialize_handler_parm): Generate a Java-style lookup of 14896 exception info if the caught object is a "Java" object. 14897 (catch_language, catch_language_init): New globals. 14898 (decl_is_java_type): New function. 14899 (expand_start_catch_block): Don't call push_eh_info() or 14900 push_eh_cleanup() when handling a Java-style "catch". Pass Java 14901 class reference to build_catch_block. 14902 14903Thu Mar 2 13:32:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14904 14905 * typeck.c (comptypes): Treat sizetype like its language equivalent. 14906 149072000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> 14908 14909 * typeck.c (maybe_warn_about_returning_address_of_local): Reorganize 14910 to merge reference/pointer code and fix incorrect warnings. 14911 149122000-02-29 Jason Merrill <jason@casey.cygnus.com> 14913 14914 * search.c (protected_accessible_p): Use context_for_name_lookup. 14915 14916 * init.c (construct_virtual_bases): Fix thinko. 14917 * typeck.c (expand_ptrmemfunc_cst): Fix thinko. 14918 149192000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> 14920 14921 * decl.c (current_function_decl): Move to toplev.c. 14922 149232000-02-29 Nathan Sidwell <nathan@codesourcery.com> 14924 14925 * pt.c (fn_type_unification): Unify return type, whenever 14926 provided. 14927 (get_bindings_real): Only pass return type when necessary. 14928 Remove explicit return type check. 14929 * class.c (resolve_address_of_overloaded_function): Pass desired 14930 return type to fn_type_unification. 14931 14932Mon Feb 28 08:15:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14933 14934 * class.c (build_vtbl_or_vbase_field, check_methods): Don't clear 14935 DECL_FIELD_SIZE. 14936 (check_bitfield_decl, check_field_decls): Set DECL_SIZE, not 14937 DECL_FIELD_SIZE. 14938 * rtti.c (expand_class_desc): Likewise. 14939 * cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name. 14940 (THUNK_VCALL_OFFSET): Likewise. 14941 (THUNK_DELTA): Reflect changes in ../tree.h. 14942 149432000-02-28 Jason Merrill <jason@casey.cygnus.com> 14944 14945 * search.c (protected_accessible_p): Also allow the access if 14946 the member is public in DERIVED. Lose TYPE parm. 14947 (friend_accessible_p): Lose TYPE parm. 14948 (accessible_p): Adjust. 14949 14950Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14951 14952 * class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop 14953 on things that are not sizes; ssize_binop deleted. 14954 Call size_diffop when appropriate. 14955 (dfs_build_vcall_offset_vtbl_entries): Likewise. 14956 (build_primary_vtable, build_secondary_vtable): Likewise. 14957 (dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise. 14958 Variable I is HOST_WIDE_INT. 14959 (get_vfield_offset): Pass proper types to size_binop. 14960 (size_extra_vtbl_entries, layout_virtual_bases): Likewise. 14961 (finish_struct_1): Likewise. 14962 (skip_rtti_stuff): Arg N is now pointer to signed. 14963 (layout_class_type): Use size_zero_node. 14964 * cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed. 14965 * cvt.c (cp_convert_to_pointer): Pass proper types to size_binop. 14966 * decl.c (complete_arry_type): Pass proper types to size_binop. 14967 (xref_basetypes): BINFO_OFFSET is sizetype. 14968 * error.c (dump_expr): Don't use size_binop non-sizes. 14969 * expr.c (cplus_expand_constant): Pass proper types to size_binop. 14970 * init.c (construct_virtual_bases): Fix type error. 14971 (build_vec_delete_1): Pass proper type to size_binop and don't 14972 fold result. 14973 * lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype. 14974 * rtti.c (get_base_offset): Pass proper type to size_binop. 14975 * search.c (dfs_find_vbases): Fix type error. 14976 (expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed. 14977 (dfs_get_vbase_types): BINFO_OFFSET is sizetype. 14978 * tree.c (debug_binfo): Variable N is signed. 14979 Use HOST_WIDE_INT_PRINT_DEC. 14980 * typeck.c (comptypes): sizetype is same as equivalent integer type. 14981 (c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT, 14982 size_one_node and size_zero_node. 14983 (c_alignof): Use size_one_node. 14984 (build_component_addr): Pass proper types to size_binop. 14985 (expand_ptrmemfunc_cst): Don't use size_binop on non-sizes. 14986 149872000-02-26 Jason Merrill <jason@casey.cygnus.com> 14988 14989 Implement class scope using-declarations for functions. 14990 * class.c (handle_using_decl): Call add_method for used functions. 14991 Use IDENTIFIER_CLASS_VALUE to check for conflicts. 14992 (add_method): Used functions are hidden by local functions. 14993 (check_bases_and_members): Handle using-decls before finalizing 14994 CLASSTYPE_METHOD_VEC. 14995 * call.c (add_function_candidate): Add ctype parm; if nonzero, 14996 override the type of 'this' accordingly. 14997 (add_template_candidate, add_template_candidate_real): Add ctype parm. 14998 (convert_class_to_reference, build_user_type_conversion_1, 14999 build_new_function_call, build_object_call, build_new_op, 15000 build_new_method_call): Pass ctype parm. 15001 15002 * search.c (lookup_member): Put rval_binfo, not basetype_path, in 15003 the baselink. 15004 * call.c (convert_class_to_reference, build_user_type_conversion_1, 15005 build_new_function_call, build_object_call, build_new_op, 15006 build_new_method_call, build_op_delete_call): Don't get basetype_path 15007 from a baselink. 15008 * typeck.c (build_component_ref): Likewise. 15009 * init.c (build_offset_ref): Likewise. 15010 (resolve_offset_ref): Don't call enforce_access. 15011 Call build_scoped_ref. 15012 * typeck2.c (build_scoped_ref): Simplify. Do nothing if it 15013 would cause an error or if -pedantic. 15014 * class.c (alter_access): Lose binfo parm. 15015 150162000-02-26 Mark Mitchell <mark@codesourcery.com> 15017 15018 * semantics.c (simplify_aggr_init_exprs_p): Don't walk into 15019 types. 15020 150212000-02-25 Alfred Minarik <a8601248@unet.univie.ac.at> 15022 15023 * rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info 15024 pseudo_type_info creation into the std namespace 15025 150262000-02-26 Mark Mitchell <mark@codesourcery.com> 15027 15028 * cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF. 15029 (import_export_class): Remove declaration. 15030 * decl2.c (import_export_class): Make it static. 15031 * dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR, 15032 PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, 15033 EXPR_WITH_FILE_LOCATION. 15034 * lex.c (check_newline): Tweak filename/lineno setting. 15035 * semantics.c (begin_while_stmt): Fix typo in comment. 15036 15037Sat Feb 26 19:50:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15038 15039 * lang-options.h (-fmessage-length=): Add missing option. 15040 15041 * Make-lang.in (CXX_SRCS): Add .h files and sort list. 15042 150432000-02-26 Zack Weinberg <zack@wolery.cumb.org> 15044 15045 * Make-lang.in: Delete refs to LIBGCC2_DEPS. 15046 15047Fri Feb 25 14:52:33 2000 Jim Wilson <wilson@cygnus.com> 15048 15049 * optimize.c (expand_call_inline): Emit the return label before 15050 evaluating the return value. 15051 150522000-02-24 Mark Mitchell <mark@codesourcery.com> 15053 15054 * lex.c (check_newline): Use push_srcloc and pop_srcloc, rather 15055 than duplicating functionality here. 15056 * optimize.c: Include input.h. 15057 (expand_call_inline): Use push_srcloc and pop_srcloc. 15058 * parse.y (maybe_cv_qualifier): Remove calls to emit_line_note. 15059 * parse.c: Regenerated. 15060 * Makefile.in (lex.o): Depend on input.h. 15061 (optimize.o): Likewise. 15062 150632000-02-24 Nathan Sidwell <nathan@codesourcery.com> 15064 15065 * decl.c (grokdeclarator): Diagnose qualifiers on non-member 15066 function type, rather than ICE. 15067 150682000-02-23 Jason Merrill <jason@casey.cygnus.com> 15069 15070 * decl.c (grokdeclarator): Call decl_type_access_control. 15071 * parse.y (parse_end_decl): Don't call decl_type_access_control if 15072 decl is null. 15073 150742000-02-23 Nathan Sidwell <nathan@codesourcery.com> 15075 15076 * decl.c (decls_match): Remove obsolete static member nadgering. 15077 150782000-02-21 Martin v. L�wis <loewis@informatik.hu-berlin.de> 15079 15080 * decl.c (grokdeclarator): Change ANSI to ISO. 15081 * lex.c (consume_string, readescape, do_identifier): Likewise. 15082 (parse_float, real_yylex): Likewise. 15083 * parse.y (paren_expr_or_null, paren_cond_or_null): Likewise. 15084 (unary_expr, new_initializer, cast_expr, primary, primary_no_id, 15085 new_type_id, maybe_label_decls, simple_stmt, 15086 for.init.statement): Likewise. 15087 * pt.c (do_decl_instantiation, do_type_instantiation): Likewise. 15088 * semantics.c (finish_named_return_value): Likewise. 15089 * parse.c: Regenerate. 15090 150912000-02-21 Mark Mitchell <mark@codesourcery.com> 15092 15093 * cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro. 15094 (CPTI_CLASS_STAR_TYPE): Remove. 15095 (vtable_index_type): Likewise. 15096 (class_star_type_node): Remove. 15097 (TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI. 15098 (build_binary_op_nodefault): Remove. 15099 * call.c (build_new_op): Use build_binary_op instead of 15100 build_binary_op_nodefault. 15101 * decl.c (init_decl_processing): Remove class_star_type_node 15102 initialization. Make delta_type_node ptrdiff_type_node under the 15103 new ABI. Initialize vtable_index_type. 15104 (build_ptrmemfunc_type): Build different structures for the new 15105 ABI. 15106 (build_enumerator): Use build_binary_op instead of 15107 build_binary_op_nodefault. 15108 * method.c (build_overload_value): Mangle pointers-to-members 15109 appropriately under the new ABI. 15110 * typeck.c (build_array_ref): Use build_binary_op instead of 15111 build_binary_op_nodefault. 15112 (get_member_function_from_ptrfunc): Adjust for the new ABI. 15113 (build_binary_op_nodefault): Rename to ... 15114 (build_binary_op): ... this. Remove old version. Adjust for 15115 pointer-to-member comparisons under the new ABI. 15116 (build_ptrmemfunc1): Remove dead code. Adjust for the new ABI. 15117 (build_ptrmemfunc): Adjust for the new ABI. 15118 (expand_ptrmemfunc_cst): Likewise. 15119 (delta2_from_ptrmemfunc): Assert that we're not using the new ABI. 15120 (pfn_from_ptrmemfunc): Adjust for the new ABI. 15121 151222000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> 15123 15124 * call.c (build_object_call): Compress consecutive calls to 15125 cp_error. 15126 (build_conditional_expr): Say 'ISO C++' not 'ANSI C++'. 15127 (build_op_delete_call): Adjust message formatting. 15128 15129 * class.c (check_bases): Compress consecutive calls to 15130 cp_pedwarn. 15131 (finish_struct_anon): Say 'ISO C++'. 15132 15133 * decl.c (start_decl): Same here. 15134 (grok_reference_init): Likewise. 15135 (grokfndecl): Correct message formatting. 15136 (grokfndecl): Improve diagnostic. 15137 (check_static_variable_definition): Likewise. Say 'ISO C++' 15138 (compute_array_index_type): Say 'ISO C++' 15139 (create_array_type_for_decl): Compress consecutive calls to 15140 cp_error. 15141 (grokdeclarator): Say 'ISO C++' 15142 (grok_op_properties): Likewise. 15143 15144 * decl2.c (delete_sanity): Clairify diagnostic. 15145 (check_member_template): Same here. 15146 (grok_function_init): Use consistent terminology. 15147 15148 * expr.c (do_case): Say 'ISO C++' 15149 15150 * friend.c (do_friend): Compress consecutive calls to warning. 15151 151522000-02-20 Mark Mitchell <mark@codesourcery.com> 15153 15154 * cp-tree.h (merge_primary_and_secondary_vtables_p): New macro. 15155 * class.c (build_secondary_vtable): Reorganize. Don't create a 15156 new vtable under the new ABI. 15157 (layout_vtable_decl): Don't add num_extra_vtbl_entries when 15158 computing the size. 15159 (build_vtbl_initializer): Don't return a CONSTRUCTOR; just return 15160 the initializing elements. 15161 (initialize_vtable): New function. 15162 (dfs_finish_vtbls): Use it. 15163 (dfs_accumulate_vtbl_inits): New function. 15164 (finish_vtbls): Merge primary and secondary vtables under the new 15165 ABI. 15166 (finish_struct_1): Remove redundant call to layout_vtable_decl. 15167 * init.c (expand_virtual_init): Deal with BINFO_VTABLEs that 15168 aren't VAR_DECLs. 15169 15170 * class.c (build_vtable): New function, split out from ... 15171 (get_vtable_decl): ... here, and ... 15172 (build_secondary_vtable): ... here. 15173 15174 * pt.c (tsubst_decl): Fix formatting. 15175 15176Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15177 15178 * class.c (build_primary_vtable, layout_vtable_decl): Likewise. 15179 (avoid_overlap, build_base_field): Likewise. 15180 (build_base_field, build_base_fields, is_empty_class): 15181 Test DECL_SIZE with integer_zero. 15182 (layout_class_type): Set CLASSTYPE_SIZE_UNIT. 15183 * cp-tree.h (struct lang_type): New field size_unit. 15184 (CLASSTYPE_SIZE_UNIT): New macro. 15185 * decl.c (init_decl_processing): Set DECL_SIZE_UNIT. 15186 (cp_finish_decl): Delete -Wlarger-than processing. 15187 * optimize.c (remap_decl): Walk DECL_SIZE_UNIT. 15188 * pt.c (tsubst_decl): Set DECL_SIZE_UNIT. 15189 * tree.c (make_binfo): binfo vector is one entry longer. 15190 (walk_tree): Walk DECL_SIZE_UNIT. 15191 151922000-02-19 Mark Mitchell <mark@codesourcery.com> 15193 15194 * class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in 15195 comment. 15196 (build_vtable_entry): Don't assume all vtable entries are 15197 functions. 15198 (build_vtbl_initializer): Adjust accordingly. 15199 (get_vtable_decl): Fix formatting. 15200 152012000-02-18 Jason Merrill <jason@casey.cygnus.com> 15202 15203 * semantics.c (deferred_type_access_control): Walk the entire 15204 type_lookups list. 15205 (save_type_access_control): Rename from 15206 initial_deferred_type_access_control. Just remember the value. 15207 (decl_type_access_control): New fn. 15208 (begin_function_definition): Use deferred_type_access_control, after 15209 we've started the function. Set type_lookups to error_mark_node. 15210 * parse.y (frob_specs, fn.def1): Adjust. 15211 (parse_decl0, parse_field, parse_field0, parse_bitfield): New fns. 15212 (parse_end_decl, parse_bitfield0, parse_method): New fns. 15213 (fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them. 15214 (after_type_component_declarator0): Likewise. 15215 (after_type_component_declarator): Likewise. 15216 (notype_component_declarator): Likewise. 15217 * cp-tree.h: Adjust. 15218 15219 * decl.c (redeclaration_error_message): Allow redeclaration of 15220 namespace-scope decls. 15221 152222000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 15223 15224 * typeck2.c (my_friendly_abort): Use GCCBUGURL. 15225 152262000-02-17 Mark Mitchell <mark@codesourcery.com> 15227 15228 * class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT. 15229 * decl2.c (grokclassfn): Likewise. 15230 15231 * ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS. 15232 15233 * decl2.c (lang_decode_option): Don't set default message length 15234 here. 15235 * lex.c (lang_init_options): Set it here. 15236 152372000-02-16 Mark Mitchell <mark@codesourcery.com> 15238 15239 Make DECL_CONTEXT mean the class in which a member function was 15240 declared, even for a virtual function. 15241 * cp-tree.h (DECL_CLASS_CONTEXT): Adjust. 15242 (DECL_FRIEND_CONTEXT): New macro. 15243 (DECL_REAL_CONTEXT): Remove. 15244 (SET_DECL_FRIEND_CONTEXT): Likewise. 15245 (DECL_VIRTUAL_CONTEXT): Adjust. 15246 (DECL_CLASS_SCOPE_P): Use TYPE_P. 15247 (add_friends): Remove. 15248 (hack_decl_function_context): Likewise. 15249 * call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with 15250 CP_DECL_CONTEXT. 15251 (build_over_call): Fix indentation. Use DECL_CONTEXT 15252 instead of DECL_CLASS_CONTEXT. 15253 * class.c (dfs_build_vcall_offset_vtbl_entries): Likewise. 15254 (add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 15255 (strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 15256 (build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT. 15257 (build_base_field): Likewise. 15258 (finish_struct_1): Likewise. 15259 (build_self_reference): Likewise. 15260 * decl.c (push_class_binding): Use CP_DECL_CONTEXT, not 15261 DECL_REAL_CONTEXT. 15262 (pushtag): Use decl_function_context, not 15263 hack_decl_function_context. 15264 (decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 15265 (duplicate_decls): Use DECL_VIRTUAL_CONTEXT. 15266 (pushdecl): Remove bogus code. 15267 (start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT. 15268 (cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 15269 (grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 15270 Use decl_function_context, nothack_decl_function_context. 15271 (grokvardecl): Don't set DECL_CLASS_CONTEXT. 15272 (grokdeclarator): Likewise. Use decl_function_context, not 15273 hack_decl_function_context. 15274 (copy_args_p): Document. Don't use DECL_CLASS_CONTEXT. 15275 (start_function): Use DECL_FRIEND_CONTEXT, not 15276 DECL_CLASS_CONTEXT. Use decl_function_context, not 15277 hack_decl_function_context. 15278 (finish_function): Use decl_function_context, not 15279 hack_decl_function_context. 15280 (maybe_retrofit_in_chrg): Use DECL_CONTEXT, not 15281 DECL_CLASS_CONTEXT. 15282 (grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT. 15283 (finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT. 15284 (grokfield): Likewise. 15285 (finish_builtin_type): Likewise. 15286 (finish_vtable_vardec): Use decl_function_context, not 15287 hack_decl_function_context. 15288 (import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 15289 (start_static_initialization_or_destruction): Likewise. 15290 (finish_static_initialization_or_destruction): Likewise. 15291 (mark_used): Adjust logic for deciding when to synthesize methods. 15292 * dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not 15293 DECL_REAL_CONTEXT. 15294 * error.c (dump_function_decl): Use DECL_CONTEXT, not 15295 DECL_CLASS_CONTEXT. 15296 * friend.c (is_friend): Likewise. 15297 (add_friends): Remove. 15298 (do_friend): Use SET_DECL_FRIEND_CONTEXT. 15299 * lex.c (begin_definition_of_inclass_inline): Use 15300 decl_function_context, not hack_decl_function_context. 15301 (process_next_inline): Likewise. 15302 (do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 15303 * method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not 15304 DECL_CLASSS_CONTEXT. 15305 (hack_identifier): Likewise. 15306 (synthesize_method): Use decl_function_context, not 15307 hack_decl_function_context. 15308 * pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not 15309 DECL_REAL_CONTEXT. 15310 (is_member_template): Use decl_function_context, not 15311 hack_decl_function_context. Use DECL_CONTEXT, not 15312 DECL_CLASS_CONTEXT. 15313 (build_template_decl): Set DECL_VIRTUAL_CONTEXT, not 15314 DECL_CLASS_CONTEXT. 15315 (check_default_tmpl_args): Use CP_DECL_CONTEXT, not 15316 DECL_REAL_CONTEXT. 15317 (push_template_decl_real): Likewise. 15318 (instantiate_class_template): Don't call add_friends. 15319 (tsubst_default_argument): Use DECL_CONTEXT, not 15320 DECL_REAL_CONTEXT. 15321 (tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 15322 Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 15323 (set_meangled_name_for_template_decl): Use DECL_CONTEXT, not 15324 DECL_CLASS_CONTEXT. 15325 * repo.c (repo_inline_used): Likewise. 15326 * search.c (current_scope): Adjust for new _CONTEXT macros. 15327 (context_for_name_lookup): Use CP_DECL_CONTEXT, not 15328 DECL_REAL_CONTEXT. 15329 (friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 15330 (lookup_fnfields_here):Likewise. 15331 (check_final_overrider): Likewise. 15332 (init_vbase_pointers): Likewise. 15333 (virtual_context): Likewise. 15334 * semantics.c (finish_member_declaration): Just set DECL_CONTEXT. 15335 (expand_body): Use decl_function_context, not 15336 hack_decl_function_context. 15337 * tree.c (hack_decl_function_context): Remove. 15338 * typeck.c (build_x_function_call): Use DECL_CONTEXT, not 15339 DECL_CLASS_CONTEXT. 15340 * typeck2.c (error_not_base_type): Likewise. 15341 153422000-02-15 Jason Merrill <jason@casey.cygnus.com> 15343 15344 * decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE. 15345 153462000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15347 15348 * Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h. 15349 153502000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> 15351 15352 * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec. 15353 153542000-01-16 Gabriel Dos Reis <gdr@codesourcery.com> 15355 15356 * decl2.c (lang_decode_option): Enable automatic line wrapping. 15357 153582000-02-13 Jason Merrill <jason@casey.cygnus.com> 15359 15360 * parse.y (frob_specs): Split out... 15361 (parse_decl): From here. 15362 (fn.def2): Call initial_deferred_type_access_control. 15363 (after_type_component_declarator0): Call frob_specs. 15364 (notype_component_declarator0): Likewise. 15365 * search.c (friend_accessible_p): Nested classes are friends of their 15366 enclosing classes. 15367 153682000-02-10 Mark Mitchell <mark@codesourcery.com> 15369 15370 * ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be 15371 used to create an implicit temporary. 15372 15373 * class.c (dfs_modify_vtables): Tweak calculation of functions to 15374 override. 15375 153762000-02-08 Nathan Sidwell <nathan@acm.org> 15377 15378 * typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to 15379 strip array element qualifiers too. 15380 153812000-02-07 Mark Mitchell <mark@codesourcery.com> 15382 15383 * decl.c (store_parm_decls): Don't build cleanups for parameters 15384 while processing_template_decl. 15385 153862000-02-07 Jason Merrill <jason@casey.cygnus.com> 15387 15388 * cp-tree.h (struct saved_scope): Add incomplete field. 15389 (namespace_scope_incomplete): New macro. 15390 * decl.c (pushdecl): Use it. 15391 (hack_incomplete_structures): Use it. See through artificial 15392 binding levels. 15393 (mark_saved_scope): Mark it. 15394 15395 Implement access control for nested types. 15396 * search.c (type_access_control): New fn. 15397 (accessible_p): Now we do perform access control for types. 15398 * semantics.c (deferred_type_access_control): New fn. 15399 (initial_deferred_type_access_control): New fn. 15400 (begin_function_definition): Call it. Add lookups parm. 15401 * decl.c (struct binding_level): Add this_class field. 15402 (pushlevel_class): Set it. 15403 (mark_binding_level): Mark it. 15404 (lookup_name_real): Use it. Call type_access_control. 15405 (mark_saved_scope): Mark lookups field. 15406 * cp-tree.h (flagged_type_tree): Add lookups field. 15407 (struct saved_scope): Add lookups field. 15408 (type_lookups): New macro. 15409 * parse.y (declmods): Now <ftype>. 15410 (parse_decl): Add lookups parm. Call 15411 initial_deferred_type_access_control. 15412 (lang_extdef): Clear type_lookups. 15413 (typed_declspecs, declmods, typespec): Set lookups field. 15414 (initdcl): Call deferred_type_access_control. 15415 (fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0, 15416 component_decl_1, named_parm): Adjust. 15417 * friend.c (is_friend): Nested classes are friends of their 15418 enclosing classes. 15419 15420 * class.c (currently_open_derived_class): New fn. 15421 * method.c (hack_identifier): Use it. 15422 15423 * lex.c (do_identifier): Remove obsolete code. 15424 15425 * parse.y (typed_typespecs): Propagate new_type_flag properly. 15426 154272000-02-05 Zack Weinberg <zack@wolery.cumb.org> 15428 15429 * tinfo.h: Remove apostrophes from C++ comment (xgettext 15430 thinks this file is plain C). 15431 154322000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15433 15434 * Makefile.in (call.o): Depend on $(EXPR_H). 15435 15436 * call.c: Include "expr.h". 15437 15438 * class.c (dump_class_hierarchy): Add prototype. 15439 15440 * search.c (dfs_get_pure_virtuals): Likewise. 15441 154422000-02-1 Ulrich Drepper <drepper@redhat.com> 15443 15444 * parse.y (simple_stmt): Allow :: token in asm parameter list. 15445 * parse.c: Rebuilt. 15446 15447Mon Jan 31 15:35:29 2000 Jim Wilson <wilson@cygnus.com> 15448 15449 * class.c (build_vtbl_or_vbase_field): New parameter fcontext. 15450 Store it in DECL_FCONTEXT. 15451 (build_vbase_pointer_fields, create_vtable_ptr): Fix callers. 15452 154532000-01-31 Jason Merrill <jason@casey.cygnus.com> 15454 15455 * tinfo.h (old abi): #include "tconfig.h". 15456 * tinfo.cc (convert_to_base): Move into old abi section. 15457 154582000-01-31 Mark Mitchell <mark@codesourcery.com> 15459 15460 * cp-tree.h (BINFO_VIRTUALS): Tweak documentation. 15461 (CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO. 15462 (BINFO_PRIMARY_BINFO): New macro. 15463 (BF_DELTA): Rename to ... 15464 (BV_DELTA): ... this. 15465 (BF_VCALL_INDEX): Rename to ... 15466 (BV_VCALL_INDEX): ... this. 15467 (BF_FN): Rename to ... 15468 (BV_FN): ... this. 15469 * class.c (build_vbase_path): Adjust for changes to reverse_path. 15470 (set_rtti_entry): Rename BF_ macros to BV_ variants. 15471 (modify_vtable_entry): Simplify. 15472 (add_virtual_function): Rename BF_ macros to BV_ variants. 15473 (build_vtable_initializer): Likewise. 15474 (get_class_offset_1): Remove. 15475 (dfs_get_class_offset): Likewise. 15476 (get_class_offset): Likewise. 15477 (dfs_find_final_overrider): New function. 15478 (find_final_overrider): Likewise. 15479 (modify_one_vtable): Remove. 15480 (dfs_find_base): New function. 15481 (dfs_modify_vtables): Fold modify_one_vtable in here. Use 15482 find_final_overrider. 15483 (modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new 15484 virtuals. 15485 (dfs_fixup_vtable_deltas): Remove. 15486 (override_one_vtable): Remove. 15487 (merge_overrides): Likewise. 15488 (layout_virtual_bases): Make sure BINFO_OFFSET is set right for 15489 unreal chilren of virtual bases. 15490 (finish_struct_1): Don't use merge_overrides. Don't use 15491 dfs_fixup_vtable_deltas. 15492 * tree.c (reverse_path): Return a TREE_LIST, not a chain of 15493 BINFOs. 15494 154952000-01-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 15496 Jason Merrill <jason@yorick.cygnus.com> 15497 15498 * tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT. 15499 155002000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at> 15501 15502 * exception.cc (__throw_bad_typeid): Add missing std::. 15503 155042000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15505 15506 * cp-tree.h (make_thunk): PROTO -> PARAMS. 15507 155082000-01-31 Nathan Sidwell <sidwell@codesourcery.com> 15509 15510 * cp-tree.h (new_abi_rtti_p): Use flag_new_abi. 15511 15512 Runtime support for new-abi rtti. 15513 * inc/typeinfo (type_info::operator!=): Define in class. 15514 (type_info::before, type_info::name, type_info::operator==, 15515 type_info::operator!=): Define new ABI implementations. 15516 (type_info::is_pointer_p, type_info::is_function_p): Declare 15517 new virtual functions. 15518 (type_info::do_catch, type_info::do_upcast): Likewise. 15519 15520 * tinfo.h (__base_class_info): Define new class. 15521 (__class_type_info): Likewise. 15522 (__si_class_type_info): Likewise. 15523 (__vmi_class_type_info): Likewise. 15524 (__dynamic_cast): Prototype. 15525 15526 * tinfo.cc: Conditionalize old and new rtti mechanisms. 15527 (type_info::is_pointer_p): Define new function. 15528 (type_info::is_function_p): Likewise. 15529 (type_info::do_catch): Likewise. 15530 (type_info::do_upcast): Likewise. 15531 (vtable_prefix): New structure for vtable access. 15532 (adjust_pointer): Define new template function. 15533 (contained_p, public_p, virtual_p, contained_public_p, 15534 contained_nonpublic_p, contained_nonvirtual_p): Define new 15535 functions. 15536 (nonvirtual_base_type): New local variable. 15537 (__class_type_info::~__class_type_info): Define. 15538 (__si_class_type_info::~__si_class_type_info): Likewise. 15539 (__vmi_class_type_info::~__vmi_class_type_info): Likewise. 15540 (__class_type_info::do_catch): Define new function. 15541 (__class_type_info::do_upcast): Likewise. 15542 (__class_type_info::find_public_src): Likewise. 15543 (__class_type_info::do_find_public_src): Likewise. 15544 (__si_class_type_info::do_find_public_src): Likewise. 15545 (__vmi_class_type_info::do_find_public_src): Likewise. 15546 (__class_type_info::do_dyncast): Likewise. 15547 (__si_class_type_info::do_dyncast): Likewise. 15548 (__vmi_class_type_info::do_dyncast): Likewise. 15549 (__class_type_info::do_upcast): Likewise. 15550 (__si_class_type_info::do_upcast): Likewise. 15551 (__vmi_class_type_info::do_upcast): Likewise. 15552 (__dynamic_cast): Likewise. 15553 15554 * tinfo2.cc (__fundamental_type_info): Define new class. 15555 (__pointer_type_info): Likewise. 15556 (__reference_type_info): Likewise. 15557 (__array_type_info): Likewise. 15558 (__function_type_info): Likewise. 15559 (__enum_type_info): Likewise. 15560 (__ptr_to_member_type_info): Likewise. 15561 (__fundamental_type_info::~__fundamental_type_info): Define. 15562 (__pointer_type_info::~__pointer_type_info): Likewise. 15563 (__reference_type_info::~__reference_type_info): Likewise. 15564 (__array_type_info::~__array_type_info): Likewise. 15565 (__function_type_info::~__function_type_info): Likewise. 15566 (__enum_type_info::~__enum_type_info): Likewise. 15567 (__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise. 15568 (__pointer_type_info::do_catch): Define new function. 15569 (__ptr_to_member_type_info::do_catch): Define new function. 15570 15571 (__throw_type_match_rtti_2): Use new ABI interface, if enabled. 15572 (__is_pointer): Likewise. 15573 15574 * exception.cc (__cplus_type_matcher): Deal with new-abi rtti. 15575 155762000-01-30 Mark Mitchell <mark@codesourcery.com> 15577 15578 * cp/class.c (build_vtable): Rename to build_primary_vtable. 15579 (prepare_fresh_vtable): Rename to build_secondary_vtable. 15580 (make_new_vtable): New function. 15581 (modify_vtable_entry): Handle generation of new vtables correctly. 15582 (modify_one_vtable): Remove unused parameter. 15583 (dfs_fixup_vtable_deltas): Likewise. 15584 (override_one_vtable): Use build_secondary_vtable. 15585 (finish_struct_1): Use build_primary_vtable and 15586 build_secondary_vtable. 15587 155882000-01-28 Ulrich Drepper <drepper@redhat.com> 15589 15590 * cp/decl.c: Adjust variable names, comments, help strings. 15591 155922000-01-29 Nathan Sidwell <nathan@acm.org> 15593 15594 * new2.cc (operator delete[]): Use operator delete, don't assume 15595 implementation. 15596 155972000-01-29 Nathan Sidwell <sidwell@codesourcery.com> 15598 15599 * class.c (build_vtbl_initializer): Add argument to 15600 build_vtable_entry call. 15601 156022000-01-27 Mark Mitchell <mark@codesourcery.com> 15603 15604 * cp-tree.def (THUNK_DECL): Discuss vcall indices. 15605 * cp-tree.h (BINFO_VIRTUALS): Update documentation. 15606 (BF_DELTA): New macro. 15607 (BF_VCALL_INDEX): Likewise. 15608 (BF_FN): Likewise. 15609 (THUNK_VCALL_OFFSET): Likewise. 15610 (make_thunk): Change prototype. 15611 * class.c (build_vtable_entry): Integrate 15612 build_vtable_entry_for_fn. Handle vcall indices. 15613 (build_vtable_entry_for_fn): Remove. 15614 (set_rtti_entry): Handle vcall indices. Use BF_DELTA, 15615 BF_VCALL_INDEX, BF_FN. 15616 (modify_vtable_entry): Integrate common code from 15617 modify_one_vtable and dfs_fixup_vtable_deltas. 15618 (add_virtual_function): Set BF_VCALL_INDEX. 15619 (build_vtbl_initializer): Simplify. Use BF_DELTA, BF_VCALL_INDEX, 15620 and BF_FN. 15621 (modify_one_vtable): Simplify. 15622 (dfs_fixup_vtable_deltas): Likewise. 15623 (override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN. 15624 * method.c (make_thunk): Handle vcall indices. 15625 156262000-01-28 Nathan Sidwell <sidwell@codesourcery.com> 15627 15628 Compiler side new abi rtti (not enabled). 15629 * cp-tree.h (new_abi_rtti_p): New macro. 15630 (emit_support_tinfos): Prototype new function. 15631 (tinfo_decl_p): Likewise. 15632 (emit_tinfo_decl): Likwise. 15633 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor 15634 macros. 15635 (doing_runtime): New local static. 15636 (init_rtti_processing): Add new-abi initializer. 15637 (get_tinfo_decl): Add new-abi logic. 15638 (tinfo_from_decl): Likewise. 15639 (build_dynamic_cast_1): Likewise. 15640 (qualifier_flags): New static function. 15641 (tinfo_base_init): Likewise. 15642 (generic_initializer): Likewise. 15643 (ptr_ref_initializer): Likewise. 15644 (ptmd_initializer): Likewise. 15645 (class_hint_flags): Likewise. 15646 (class_initializer): Likewise. 15647 (synthesize_tinfo_var): Likewise. 15648 (create_real_tinfo_var): Likewise. 15649 (create_pseudo_type_info): Likewise. 15650 (get_vmi_pseudo_type_info): Likewise. 15651 (create_tinfo_types): Likewise. 15652 (emit_support_tinfos): New global function. 15653 (tinfo_decl_p): New global predicate. 15654 (emit_tinfo_decl): New global function. 15655 * class.c (set_rtti_entry): Generalize for old and new rtti. 15656 (build_vtbl_initializer): Likewise. 15657 * decl2.c (finish_file): Likewise. 15658 15659Thu Jan 27 20:53:36 2000 Jim Wilson <wilson@cygnus.com> 15660 15661 * optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t) 15662 and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))). 15663 15664Thu Jan 27 13:54:12 2000 Mike Stump <mrs@wrs.com> 15665 15666 * decl.c (pushdecl): Fix up shadow warnings with respect to implicit 15667 for scopes. 15668 156692000-01-26 Jason Merrill <jason@casey.cygnus.com> 15670 15671 * pt.c (unify): Use fold, not maybe_fold_nontype_arg. 15672 15673Wed Jan 26 22:19:14 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 15674 15675 * optimize.c (calls_setjmp_r): Supply new argument 15676 to special_function_p. 15677 156782000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15679 15680 * call.c: PROTO -> PARAMS. 15681 * class.c: Likewise. 15682 * cp-tree.h: Likewise. 15683 * cvt.c: Likewise. 15684 * decl.c: Likewise. 15685 * decl.h: Likewise. 15686 * decl2.c: Likewise. 15687 * dump.c: Likewise. 15688 * errfn.c: Likewise. 15689 * error.c: Likewise. 15690 * except.c: Likewise. 15691 * expr.c: Likewise. 15692 * init.c: Likewise. 15693 * input.c: Likewise. 15694 * lex.c: Likewise. 15695 * lex.h: Likewise. 15696 * method.c: Likewise. 15697 * optimize.c: Likewise. 15698 * parse.y: Likewise. 15699 * pt.c: Likewise. 15700 * repo.c: Likewise. 15701 * rtti.c: Likewise. 15702 * search.c: Likewise. 15703 * semantics.c: Likewise. 15704 * spew.c: Likewise. 15705 * tree.c: Likewise. 15706 * typeck.c: Likewise. 15707 * typeck2.c: Likewise. 15708 * xref.c: Likewise. 15709 157102000-01-25 Richard Henderson <rth@cygnus.com> 15711 15712 * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR. 15713 157142000-01-25 Mark Mitchell <mark@codesourcery.com> 15715 15716 * cp-tree.h (vcall_offset_in_vtable_p): New macro. 15717 * class.c (build_vbase_offset_vtbl_entries): Fix typo in commment. 15718 (struct vcall_offset_data_s): New type. 15719 (dfs_vcall_offset_queue_p): New function. 15720 (dfs_build_vcall_offset_vtbl_entries): Likewise. 15721 (build_vcall_offset_vtbl_entries): Likewise. 15722 (layout_vtable_decl): Likewise. 15723 (num_vfun_entries): Likewise. 15724 (num_extra_vtbl_entries): Add the entries for vcall offsets. 15725 (build_vtbl_initializer): Likewise. 15726 (dfs_finish_vtabls): Use layout_vtable_decl. 15727 (modify_one_vtables): Always duplicate vtables under the new ABI. 15728 (finish_struct_1): Use layout_vtable_decl. 15729 157302000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15731 15732 * decl.c (member_function_or_else): Change third arg from a format 15733 specifier to an `enum overload_flags'. Callers changed. 15734 157352000-01-25 Gabriel Dos Reis <gdr@codesourcery.com> 15736 15737 * typeck.c (composite_pointer_type, c_sizeof, expr_sizeof, 15738 build_binary_op_nodefault, build_unary_op, build_reinterpret_cast, 15739 build_const_cast, get_delta_difference, check_return_expr): Avoid 15740 ANSI string concatenation usage. 15741 157422000-01-24 Mark Mitchell <mark@codesourcery.com> 15743 15744 * class.c (layout_class_type): Put the fields required to make a 15745 class non-empty at the end, not the beginning, of the TYPE_FIELDs 15746 list. 15747 157482000-01-24 Jason Merrill <jason@casey.cygnus.com> 15749 15750 * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a 15751 template. 15752 15753 * decl2.c (mark_used): Do instantiate inlines that have been 15754 explicitly instantiated. 15755 157562000-01-24 Richard Henderson <rth@cygnus.com> 15757 15758 * call.c (build_over_call): Use expand_tree_builtin. 15759 * typeck.c (build_function_call_real): Likewise. 15760 (build_binary_op_nodefault): Handle unordered compares. 15761 157622000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 15763 15764 * cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New 15765 cp_tree_index values. 15766 (throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node): 15767 New global node #defines for them. 15768 * rtti.c (call_void_fn): Replace with ... 15769 (build_runtime_decl): ... new static function. 15770 (throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl. 15771 (throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl. 15772 (build_dynamic_cast_1): Always produce correctly typed result. 15773 Explicitly produce type_info addresses. Use dynamic_cast_node. 15774 * exception.cc (__throw_bad_cast): Return `void *'. 15775 (__throw_bad_typeid): Return `const type_info &'. 15776 157772000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 15778 15779 * cp-tree.h (get_vtable_decl): Prototype new function. 15780 * class.c (get_vtable_decl): New function. Broken out from ... 15781 (build_vtable): ... here. Use it. 15782 * decl2.c (finish_vtable_vardecl): Ignore dummy vtables created 15783 by get_vtable_decl. 15784 157852000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 15786 15787 * cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE, 15788 CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE, 15789 CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations. 15790 (CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE, 15791 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE, 15792 CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations. 15793 (CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ... 15794 (CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here. 15795 (CPTI_TINFO_VAR_ID): New enumeration. 15796 (__tp_desc_type_node, __access_mode_type_node, 15797 __bltn_desc_type_node, __user_desc_type_node, 15798 __class_desc_type_node, __ptr_desc_type_node, 15799 __attr_desc_type_node, __func_desc_type_node, 15800 __ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines. 15801 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, 15802 ref_desc_type_node, ary_desc_type_node, func_desc_type_node, 15803 enum_desc_type_node, class_desc_type_node, 15804 si_class_desc_type_node, vmi_class_desc_type_node, 15805 ptmd_desc_type_node, base_desc_type_node): New #defines. 15806 (tinfo_fn_id, tinfo_fn_type): Rename to ... 15807 (tinfo_decl_id, tinfo_decl_type): ... here. Adjust. 15808 (tinfo_var_id): New enumeration. 15809 (DECL_TINFO_FN_P): Augment comment. 15810 * decl.c (cp_global_trees): Adjust documentation. 15811 * rtti.c (init_rtti_processing): Adjust for tinfo_decl_id, 15812 tinfo_decl_type and tinfo_var_id. 15813 (get_tinfo_decl_dynamic): Adjust for tinfo_decl_type. 15814 (build_typeid): Remove unused variable. 15815 (get_tinfo_var): Use tinfo_var_id. 15816 (tinfo_name): New static function. 15817 (get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type. 15818 (tinfo_from_decl): Likewise. 15819 (get_base_offset): New static function, broken out of 15820 expand_class_desc. 15821 (expand_si_desc): Use tinfo_name. 15822 (expand_class_desc): Likewise. Lose local static variable. 15823 Use base_desc_type_node. Use get_base_offset. 15824 (expand_ptr_desc): Use tinfo_name. 15825 (expand_attr_desc): Likewise. 15826 (expand_generic_desc): Likewise. 15827 15828 * tinfo.cc (__GXX_ABI_VERSION): Test value and existence. 15829 * tinfo.h (__GXX_ABI_VERSION): Test value and existence. 15830 158312000-01-23 Mark Mitchell <mark@codesourcery.com> 15832 15833 * cp-tree.h (__eprintf): Remove declaration. 15834 * tree.c (__eprintf): Remove definition. 15835 158362000-01-23 Zack Weinberg <zack@rabi.columbia.edu> 15837 Mark Mitchell <mark@codesourcery.com> 15838 15839 * cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N, 15840 CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings. 15841 158422000-01-23 Brad Lucier <lucier@math.purdue.edu> 15843 15844 * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly. 15845 158462000-01-23 Mark Mitchell <mark@codesourcery.com> 15847 15848 * cp-tree.h (register_dtor_fn): New function. 15849 * decl.c (destroy_local_static): Rename to ... 15850 (register_dtor_fn): ... this. Give it external linkage. 15851 (expand_static_init): Use it. 15852 * decl2.c (do_static_initialization): Likewise, if using 15853 __cxa_atexit. 15854 (do_static_destruction): Check that __cxa_atexit is not in use. 15855 (finish_file): Don't call do_static_destruction if using 15856 __cxa_atexit. 15857 15858 * typeck.c (convert_arguments): Restore two-message error 15859 reporting. 15860 158612000-01-20 Nathan Sidwell <sidwell@codesourcery.com> 15862 15863 Remap dynamic cast hint values to be consistent across ABIs. 15864 * search.c (dynamic_cast_base_recurse): Remap generated value. 15865 (get_dynamic_cast_base_type): Adjust documentation. 15866 * tinfo.h (__user_type_info::dyncast): Likewise. 15867 (__user_type_info::find_public_subobj): Remap BOFF meaning. 15868 * tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning. 15869 (__class_type_info::do_dyncast): Likewise. 15870 (__class_type_info::do_find_public_subobj): Likewise. 15871 * tinfo2.cc (__dynamic_cast): Remap BOFF parameter. 15872 158732000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 15874 15875 * typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn. 15876 15877 * typeck2.c (incomplete_type_error): Restore previous 15878 cp_error and cp_error_at call sequence. 15879 158802000-01-20 Brad Lucier <lucier@math.purdue.edu> 15881 15882 * class.c (dump_class_hierarchy): Make format agree with argument; 15883 cast pointer to unsigned long and print with %lx. 15884 158852000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 15886 15887 * decl2.c (lang_decode_option): Set default line-wrap length to 72. 15888 15889 * typeck.c (composite_pointer_type, common_type, 15890 comp_target_parms, c_sizeof, expr_sizeof, build_array_ref, 15891 build_function_call_real, convert_arguments, 15892 build_binary_op_nodefault, pointer_int_sum, pointer_diff, 15893 build_unary_op, mark_addressable, build_compound_expr, 15894 build_static_cast, build_reinterpret_cast, build_const_cast, 15895 build_c_cast, build_modify_expr, get_delta_difference, 15896 build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with 15897 'ISO C++'. Fusion consecutive calls to diagnostic message routines 15898 into a single one. 15899 * typeck2.c (readonly_error, abstract_virtuals_error, 15900 process_init_constructor, check_for_new_type): Likewise. 15901 159022000-01-19 Mark Mitchell <mark@codesourcery.com> 15903 15904 * tree.c (bot_manip): Set DECL_CONTEXT for newly created 15905 VAR_DECLs. 15906 159072000-01-18 Nathan Sidwell <sidwell@codesourcery.com> 15908 15909 * cp-tree.h (get_tinfo_fn_dynamic): Remove prototype. 15910 (build_x_typeid): Likewise. 15911 (get_tinfo_fn): Likewise. 15912 (get_tinfo_fn_unused): Rename to ... 15913 (get_tinfo_decl): ... here. 15914 * rtti.c (build_headof): Replace logic error with assertion. 15915 (get_tinfo_fn_dynamic): Rename to ... 15916 (get_tinfo_decl_dynamic): ... here. Make static. Use 15917 complete_type_or_else. 15918 (build_x_typeid): Move into ... 15919 (build_typeid): ... here. Adjust call to 15920 get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify 15921 throw_bad_typeid expression. 15922 (get_tinfo_fn_unused): Rename to ... 15923 (get_tinfo_decl): ... here. Adjust comment. 15924 (get_tinfo_fn): Delete. 15925 (tinfo_from_decl): New static function. 15926 (get_typeid_1): Call get_tinfo_decl and tinfo_from_decl. 15927 (get_typeid): Use complete_type_or_else. 15928 (build_dynamic_cast_1): Adjust calls to 15929 get_tinfo_decl_dynamic. Simplify throw_bad_cast expression. 15930 * parse.y (primary): Adjust call to build_typeid. 15931 * except.c (build_eh_type_type_ref): Adjust call to 15932 get_tinfo_decl. Mark as used. 15933 * class.c (set_rtti_entry): Adjust call to get_tinfo_decl. 15934 * decl2.c (build_expr_from_tree): Adjust call to build_typeid. 15935 * parse.c: Regenerated. 15936 159372000-01-17 Mark Mitchell <mark@codesourcery.com> 15938 15939 * class.c (fixed_type_or_null): Don't clear NONNULL. Document 15940 calling convention. 15941 (resolves_to_fixed_type_p): Document calling convention. 15942 * rtti.c (build_x_typeid): Initialize NONNULL. 15943 15944 * cp-tree.h (build_shared_int_cst): New function. 15945 * call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity. 15946 * class.c (modify_vtable_entry): Likewise. 15947 (add_virtual_function): Split out code to generated shared 15948 INTEGER_CSTs to build_share_int_cst. 15949 (modify_all_vtables): Handle all the overridden functions here. 15950 Add overridden functions from non-primary virtual bases to the 15951 primary vtable. 15952 (finish_struct_1): Adjust call to modify_all_vtables. Add 15953 overridden functions from non-primary bases to the vtable. 15954 * tree.c (build_shared_int_cst): New function. 15955 15956 * cp-tree.h (scratchalloc): Remove. 15957 (build_scratch_list): Likewise. 15958 * call.c (convert_class_to_reference): Replace build_scratch_list 15959 and build_expr_list with build_tree_list. 15960 (add_candidate): Replace scratchalloc with expralloc. Note memory 15961 leak. 15962 (build_user_type_conversion_1): Replace build_scratch_list 15963 and build_expr_list with build_tree_list. 15964 (build_new_op): Likewise. 15965 (build_op_delete_call): Likewise. 15966 (convert_like): Likewise. 15967 * cvt.c (ocp_convert): Likewise. 15968 * decl.c (start_decl): Likewise. 15969 (start_function): Likewise. 15970 (finish_destructor_body): Likewise. 15971 (maybe_build_cleanup_1): Likewise. 15972 * decl2.c (reparse_decl_as_expr): Likewise. 15973 * init.c (perform_member_init): Likewise. 15974 (expand_cleanup_for_base): Likewise. 15975 (build_builtin_delete_call): Likewise. 15976 (build_new_1): Likewise. 15977 (build_delete): Likewise. 15978 * method.c (do_build_assign_ref): Likewise. 15979 * parse.y (already_scoped_stmt): Likewise. 15980 (nontrivial_exprlist): Likewise. 15981 (net_initializer): Likewise. 15982 (initlist): Likewise. 15983 * parse.c: Regenerated. 15984 * rtti.c (build_x_typeid): Likewise. 15985 (build_dynamic_cast_1): Likewise. 15986 * typeck.c (build_x_compound_expr): Likewise. 15987 (build_static_cast): Likewise. 15988 (build_modify_expr): Likewise. 15989 15990 * cp-tree.h (DECL_VINDEX): Add documentation. 15991 * class.c (build_vtable_entry): Likewise. 15992 (start_vtable): Add comment. 15993 (add_virtual_function): Replace pending_hard_virtuals with 15994 overridden_virtuals and pending_virtuals with new_virtuals. 15995 Replace redundant assignments with assertions. 15996 (check_for_override): Add comment. 15997 (check_bases_and_members): Replace pending_hard_virtuals with 15998 overridden_virtuals and pending_virtuals with new_virtuals. 15999 (create_vtbl_ptr): Likewise. 16000 (layout_class_type): Likewise. 16001 (finish_struct_1): Likewise. Add comments. 16002 160032000-01-16 Mark Mitchell <mark@codesourcery.com> 16004 16005 * class.c (finish_struct_1): Replace redundant code with 16006 assertions. 16007 16008 * cp-tree.h (flag_new_abi): Move. 16009 (flag_use_cxa_atexit): Likewise. 16010 (flag_honor_std): Likewise. 16011 (flag_rtti): Likewise. 16012 (vbase_offsets_in_vtable_p): Define. 16013 (vptrs_present_everywhere_p): Likewise. 16014 (TYPE_CONTAINS_VPTR_P): Likewise. 16015 (dfs_walk_real): Declare. 16016 * class.c (build_vbase_pointer_fields): Check 16017 vbase_offsets_in_vtable_p. 16018 (dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in 16019 BINFO_VPTR_FIELD. 16020 (build_vbase_offset_vtbl_entries): Simplify. 16021 (build_vbase_offset_vtbl_entries): Adjust. 16022 (build_vbase_pointer): Add ability to look up vbase offsets in 16023 vtable. 16024 (start_vtable): New function. 16025 (add_virtual_function): Use it. 16026 (determine_primary_base): Use TYPE_CONTAINS_VPTR_P. 16027 (num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p. 16028 (build_vtbl_initializer): Take the type of the complete object as 16029 input. Use it to correctly calculate vbase offsets. 16030 (dfs_finish_vtbls): Pass the complete type to 16031 build_vtbl_initializer. 16032 (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P. 16033 (create_vtable_ptr): Create a vtable even if there are no 16034 new virtual functions, under the new ABI. 16035 (finish_struct_1): Likewise. 16036 (get_vfield_name): Use TYPE_CONTAINS_VPTR_P. 16037 * decl.c (exapnd_static_init): Remove call to 16038 preserve_initializer. 16039 * decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in 16040 vtables. 16041 * init.c (initialize_vtbl_ptrs): Initialize them in pre-order. 16042 (expand_virtual_init): Use vbase_offsets_in_vtable_p. 16043 (construct_virtual_bases): Don't initialize virtual base pointers 16044 under the new ABI. 16045 (build_aggr_init): Clean up comment. 16046 (expand_aggr_init_1): Likewise. 16047 * rtti.c (expand_class_desc): Store the virtual function table 16048 index where the vbase offset lives in the offset field. 16049 * search.c (dfs_walk_real): Make it global. 16050 (dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P. 16051 * tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD. 16052 16053 * tinfo.h (USItype): Make it signed under the new ABI. 16054 * tinfo.cc (convert_to_base): New function. Encapsulate base 16055 conversion logic here. 16056 (__class_type_info::do_upcast): Use it. 16057 (__class_type_info::do_dyncast): Likewise. 16058 (__class_type_info::do_find_public_subobj): Likewise. 16059 16060 * init.c (construct_virtual_bases): Don't look up the addresses of 16061 virtual bases at run-time. 16062 16063 * class.c (build_vbase_pointer): Relocate. 16064 (build_vbase_pointer_fields): Likewise. 16065 (dfs_build_vbase_offset_vtbl_entries): Likewise. 16066 (build_vbase_offset_vtbl_entries): Likewise. 16067 16068 * decl.c (init_decl_processing): Complain if -fnew-abi 16069 -fno-vtable-thunks is used. 16070 16071 * decl2.c (lang_decode_option): Don't couple flag_honor_std to 16072 flag_new_abi. 16073 160742000-01-15 Mark Mitchell <mark@codesourcery.com> 16075 16076 * cp-tree.h (num_extra_vtbl_entries): New function. 16077 (size_extra_vtbl_entries): Likewise. 16078 (dfs_vtable_path_unmark): Likewise. 16079 (dfs_vtable_path_unmarked_real_bases_queue_p): Likewise. 16080 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 16081 * class.c (num_extra_vtbl_entries): New function. 16082 (size_extra_vtbl_entries): Likewise. 16083 (dfs_build_vbase_offset_vtbl_entries): New function. 16084 (build_vbase_offset_vtbl_entries): Likewise. 16085 (build_vtbl_initializer): Use it. 16086 (finish_struct_1): Adjust vtable sizes (using 16087 num_extra_vtbl_entries). 16088 * expr.c (cplus_expand_expr): Assert that the DECL_RTL for a 16089 THUNK_DECL is non-NULL before expanding it. 16090 * init.c (expand_virtual_init): Adjust the vtable pointer by 16091 size_extra_vtbl_entries before storing it. 16092 * search.c (get_shared_vase_if_not_primary): Adjust prototype. 16093 Handle TREE_LIST parameters here, not in the dfs_* functions. 16094 (dfs_unmarked_real_bases_queue_p): Adjust. 16095 (dfs_marked_real_bases_queue_p): Likewise. 16096 (dfs_vtable_path_unmarked_real_bases_queue_p): New function. 16097 (dfs_vtable_path_marked_real_bases_queue_p): New function. 16098 (dfs_vtable_path_unmark): Likewise. 16099 161002000-01-14 Mark Mitchell <mark@codesourcery.com> 16101 16102 * optimize.c (copy_body_r): Clear the operand three of a 16103 TARGET_EXPR when copying it. 16104 161052000-01-14 Martin v. L�wis <loewis@informatik.hu-berlin.de> 16106 16107 * method.c (build_decl_overload_real): Check whether we are in :: 16108 before returning __builtin_new/delete. 16109 161102000-01-13 Mark Mitchell <mark@codesourcery.com> 16111 16112 * pt.c (tsubst_friend_function): Improve comment. 16113 (instantiate_decl): Avoid crashing when a "nested" function is 16114 instantiated from the top level. 16115 16116 * dump.c (dqeueue_and_dump): Dump 16117 DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION. 16118 161192000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16120 16121 * call.c: If GATHER_STATISTICS, declare `n_build_method_call'. 16122 161232000-01-13 Nathan Sidwell <sidwell@codesourcery.com> 16124 16125 * g++spec.c (lang_specific_driver): Add -fnew-abi if 16126 ENABLE_NEW_GXX_ABI defined. 16127 * Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o, 16128 opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o, 16129 opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch. 16130 161312000-01-12 Mark Mitchell <mark@codesourcery.com> 16132 16133 * decl.c (start_cleanup_fn): Call pushdecl. 16134 16135 * call.c (convert_class_to_reference): Fix typos. 16136 (build_conditional_expr): Handle errors gracefully. 16137 * class.c (push_nested_class): Likewise. 16138 * cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro. 16139 (DECL_THIS_EXTERN): Use it. 16140 (DECL_THIS_STATIC): Likewise. 16141 * cvt.c (convert_to_void): Handle errors gracefully. 16142 (build_expr_type_conversion): Likewise. 16143 * decl.c (maybe_push_decl): Likewise. 16144 (start_decl_1): Likewise. 16145 (require_complete_types_for_parms): Likewise. 16146 * parse.y (structsp): Likewise. 16147 (base_class): Likewise. 16148 * parse.c: Regenerated. 16149 * pt.c (finish_member_template_decl): Likewise. 16150 * typeck.c (decay_conversion): Likewise. 16151 16152 * cp-tree.h (dfs_skip_vbases): New function. 16153 (find_vbase_instance): Likewise. 16154 * class.c (determine_primary_base): Allow a nearly empty base to 16155 serve as a primary base class under the new ABI. 16156 (get_class_offset_1): Rename to ... 16157 (dfs_get_class_offset): ... this. Simplify. Don't issue error 16158 messages here. 16159 (get_class_offset): Use it. Issue error messages here. 16160 (dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to 16161 find the right copies of virtual bases. 16162 (fixup_vtable_deltas1): Rename to ... 16163 (dfs_fixup_vtable_deltas): ... this. Adjust to handle virtual 16164 bases as primary bases. 16165 (fixup_vtable_deltas): Remove. 16166 (override_one_vtable): Handle virtual bases as primary bases. 16167 (merge_overrides): Likewise. 16168 (finish_struct_1): Likewise. 16169 (dump_class_hierarchy): Dump primary-ness of bases as well. 16170 * search.c (mark_primary_bases): Use a pre-order traversal to 16171 handle primary virtual bases. 16172 (dfs_skip_vbases): New fiunction. 16173 (expand_upcast_fixups): Adjust to handle primary virtual bases. 16174 (fixup_virtual_upcast_offsets): Likewise. 16175 (fixup_all_virtual_upcast_offsets): Likewise. 16176 (dfs_find_vbase_instances): New function. 16177 (find_vbase_instance): Likewise. 16178 161792000-01-11 Mumit Khan <khan@xraylith.wisc.edu> 16180 16181 * lex.c (DIR_SEPARATOR): Delete macro. 16182 161832000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> 16184 16185 * decl2.c (lang_decode_option): Handle automatic line wrapping 16186 option. 16187 161882000-01-11 Mark Mitchell <mark@codesourcery.com> 16189 16190 * friend.c (do_friend): Don't resolve scopes when processing 16191 template declarations, even if the qualifying scope doesn't 16192 involve template parameters. 16193 161942000-01-10 Mark Mitchell <mitchell@dumbledore.codesourcery.com> 16195 16196 * class.c (dfs_modify_vtables_queue_p): Remove. 16197 (modify_all_vtables): Use dfs_unmarked_real_bases_queue_p 16198 and dfs_marked_real_bases_queue_p instead of 16199 dfs_modify_vtables_queue_p. 16200 16201 * class.c (build_vbase_path): Simplify. 16202 (dfs_propagate_binfo_offsets): New function. 16203 (propagate_binfo_offsets): Use it. 16204 (remove_base_field): Simplify. 16205 (dfs_set_offset_for_vbases): Remove. 16206 (dfs_set_offset_for_shared_vbases): New function. 16207 (dfs_set_offset_for_unshared_vbases): Likewise. 16208 (layout_virtual_bases): Use them. 16209 (layout_basetypes): Don't call propagate_binfo_offsets. 16210 * search.c (dfs_get_vbase_types): Clone completely fresh binfos 16211 for the vbases. 16212 16213 * class.c (build_base_field): New function, split out from ... 16214 (build_base_fields): ... here. Use it. Allocate primary bases 16215 first, under the new ABI. 16216 (get_vtable_entry): Remove. 16217 (remove_base_field): New function, split out from ... 16218 (remove_base_fields): ... here. Adjust since primary bases come 16219 first under the new ABI. 16220 16221 * cp-tree.h (expand_direct_vtbls_init): Remove declaration. 16222 (initialize_vtbl_ptrs): New function. 16223 (expand_indirect_vtbls_init): Change prototype. 16224 (convert_pointer_to_vbase): Declare. 16225 * init.c (expand_direct_vtbls_init): Remove. 16226 (dfs_initialize_vtbl_ptrs): New function. 16227 (initialize_vtbl_ptrs): Likewise. 16228 (emit_base_init): Use initialize_vtbl_ptrs. 16229 * search.c (convert_pointer_to_vbase): Make it global. 16230 (expand_indirect_vtbls_init): Remove vtable initialization code. 16231 * semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs. 16232 16233 * class.c (dfs_finish_vtbls): New function. 16234 (finish_vtbls): Use it. 16235 (dump_class_hierarchy): New function. 16236 16237 * cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition. 16238 (BINFO_VBASE_PRIMARY_P): New macro. 16239 (BINFO_VIRTUALS): Add to documentation. 16240 (SET_BINFO_PRIMARY_MARKED_P): Remove. 16241 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 16242 (dfs_mark_primary_bases_queue_p): Likewise. 16243 (dfs_unmarked_real_bases_queue_p): New function. 16244 (dfs_marked_real_bases_queue_p): Likewise. 16245 * search.c (dfs_mark_primary_bases): Adjust. 16246 (mark_primary_bases): Likewise. 16247 (get_shared_vbase_if_not_primary): New function. 16248 (dfs_unmarked_real_bases_queue_p): Likewise. 16249 (dfs_marked_real_bases_queue_p): Likewise. 16250 (dfs_get_pure_virtuals): Simplify. 16251 (get_pure_virtuals): Likewise. 16252 162532000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16254 16255 * lex.c: Include tm_p.h. 16256 162572000-01-07 Nathan Sidwell <sidwell@codesourcery.com> 16258 16259 * lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro. 16260 162612000-01-06 Jason Merrill <jason@casey.cygnus.com> 16262 16263 * decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT. 16264 * pt.c (instantiate_decl): Defer comdat templates that might not be 16265 needed. 16266 16267 * cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT. 16268 * decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT. 16269 (finish_file): Likewise. 16270 16271 * decl2.c (import_export_class): Undo 12/14 change. 16272 16273 * error.c (dump_decl): operator new, not operatornew. 16274 16275 * class.c (field_decl_cmp): A nontype is "greater" than a type. 16276 * search.c (lookup_field_1): Look for the last field with the 16277 desired name. 16278 162792000-01-05 Nathan Sidwell <nathan@acm.org> 16280 16281 * decl2.c (lookup_arg_dependent): Deal with FNS not being a 16282 FUNCTION_DECL. 16283 162842000-01-05 Nathan Sidwell <nathan@acm.org> 16285 16286 * typeck.c (build_static_cast): Don't strip target qualifiers 16287 when casting from a class. 16288 162892000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16290 16291 * class.c (warn_hidden): Initialize variable `fndecl'. 16292 162932000-01-03 Ulrich Drepper <drepper@cygnus.com> 16294 16295 * decl.c (flag_isoc9x): New variable to be able to use code in 16296 c-common.c. For now always zero. 16297 162982000-01-03 Mark Mitchell <mark@codesourcery.com> 16299 16300 * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. 16301 * class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN 16302 or unshare_base_binfos for virtual bases here. 16303 * search.c (dfs_get_vbase_types): Do it here. 16304 (get_vbase_types): Adjust. 16305 163062000-01-02 Mark Mitchell <mark@codesourcery.com> 16307 16308 * cp-tree.h (CLASSTYPE_VFIELDS): Move definition. 16309 (BINFO_PRIMARY_MARKED_P): Use flag 5. 16310 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 16311 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 16312 (unmark_primary_bases): Remove declaration. 16313 (unmarkedp): Declare. 16314 (dfs_vbase_unmark): Likewise. 16315 * class.c (determine_primary_base): Return immediately if there 16316 are no base classes. Call mark_primary_bases here. 16317 (modify_all_direct_vtables): Remove. 16318 (modify_all_indirect_vtables): Remove. 16319 (dfs_modify_vtables_queue_p): New function. 16320 (dfs_modify_vtables): New function. 16321 (modify_all_vtables): Use them. 16322 (build_base_fields): Build FIELD_DECLs for primary virtual base 16323 classes. 16324 (create_vtable_ptr): Don't call determine_primary_base here. 16325 (dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ... 16326 (dfs_set_offset_for_vbases): ... this. 16327 (layout_virtual_bases): Use it. 16328 (layout_class_type): Call determine_primary_base here. 16329 * search.c (unmarkedp): Make it global. 16330 (shared_marked_p): Simplify. 16331 (shared_unmarked_p): Likewise. 16332 (dfs_primary_bases_queue_p): Remove. 16333 (dfs_unmark_primary_bases): Likewise. 16334 (unmark_primary_bases): Likewise. 16335 (mark_primary_bases): Simplify. 16336 (get_pure_virtuals): Don't call mark_primary_bases here. 16337 (dfs_vbase_unmark): New function. 16338 (get_vbase_types): Simplify. 16339 16340 * class.c (struct base_info): Remove. 16341 (determine_primary_base): Take has_virtual_p rather than a 16342 base_info as input. Don't calculate max_has_virtual. 16343 (finish_struct_bits): Remove max_has_virtual argument. 16344 (create_vtable_ptr): Remove max_has_virtual_p argument. 16345 (layout_virtual_bases): Remove max argument. 16346 (layout_basetypes): Likewise. 16347 (layout_class_type): Remove max_has_virtual_p argument. 16348 (finish_struct_1): Remove max_has_virtual. 16349 16350 * cp-tree.h (dfs_mark_primary_bases_queue_p): New function. 16351 (layout_basetypes): Remove. 16352 * class.c (propagate_binfo_offsets): Moved here from tree.c. 16353 Update to handle primary virtual bases. 16354 (remove_base_fields): New function, split out from 16355 layout_basetypes. 16356 (dfs_mark_primary_bases_and_set_vbase_offsets): New function. 16357 (layout_virtual_bases): New function, split out from 16358 layout_basetypes. Update to handle primary virtual bases. 16359 (layout_basetypes): Moved here from tree.c. Use 16360 remove_base_fields and layout_virtual_bases. 16361 * search.c (dfs_mark_primary_bases_queue_p): New function. 16362 (mark_primary_bases): Use it. 16363 * tree.c (CEIL): Remove. 16364 (propagate_binfo_offsets): Remove. 16365 (layout_basetypes): Remove. 16366 163672000-01-01 Mark Mitchell <mark@codesourcery.com> 16368 16369 * cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES. 16370 (BINFO_PRIMARY_MARKED_P): New macro. 16371 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 16372 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 16373 (mark_primary_bases): New function. 16374 (unmark_primary_bases): Likewise. 16375 * search.c (get_abstract_virtuals_1): Remove. 16376 (dfs_mark_primary_bases): New function. 16377 (mark_primary_bases): Likewise. 16378 (dfs_unmark_primary_bases): Likewise. 16379 (unmark_primary_bases): Likewise. 16380 (dfs_get_pure_virtuals): Likewise. 16381 163822000-01-01 Mark Mitchell <mark@codesourcery.com> 16383 16384 * cp-tree.h (skip_rtti_stuff): Adjust prototype. 16385 * class.c (skip_rtti_stuff): Reorganize parameters and return value. 16386 (modify_one_vtable): Adjust. 16387 (fixup_vtable_deltas1): Likewise. 16388 (override_one_vtable): Likewise. 16389 * search.c (get_abstract_virtuals_1): Likewise. 16390 (get_pure_virtuals): Likewise. 16391 (expand_upcast_fixups): Likewise. 16392 * tree.c (debug_binfo): Likewise. 16393 16394 * class.c (build_vtable): Don't return a value. Don't rebuild 16395 vtables for bases that have already been handled. 16396 (prepare_fresh_vtable): Don't rebuild vtables for bases that have 16397 already been handled. 16398 (modify_one_vtable): Adjust accordingly. 16399 (fixup_vtable_deltas1): Likewise. 16400 (finish_struct_1): Likewise. 16401 164022000-01-01 Martin v. L�wis <loewis@informatik.hu-berlin.de> 16403 16404 * call.c (build_new_method_call): Also check destructors. 16405