12004-09-06 Release Manager 2 3 * GCC 3.4.2 released. 4 52004-08-25 Roger Sayle <roger@eyesopen.com> 6 7 PR middle-end/16693 8 PR tree-optimization/16372 9 * decl.c (finish_enum): Make the precision of the enumerated type 10 the same width as the underlying integer type. 11 122004-08-24 Jason Merrill <jason@redhat.com> 13 14 PR c++/16851 15 * tree.c (stabilize_init): See through a COMPOUND_EXPR. 16 17 PR c++/15461 18 * semantics.c (nullify_returns_r): Replace a DECL_STMT 19 for the NRV with an INIT_EXPR. 20 212004-08-24 Nathan Sidwell <nathan@codesourcery.com> 22 23 PR c++/16889 24 * (is_subobject_of_p): Resurrect & optimize. 25 (lookup_field_r): Use it. 26 272004-08-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 28 29 PR c++/16706 30 * search.c (friend_accessible_p): Increment processing_template_decl 31 when deal with TEMPLATE_DECL of SCOPE. 32 332004-08-23 Janis Johnson <janis187@us.ibm.com> 34 35 Backports from mainline: 36 37 2004-02-27 Ziemowit Laski <zlaski@apple.com> 38 2004-03-24 Ziemowit Laski <zlaski@apple.com> 39 40 * Make-lang.in (cp/mangle.o): Depend on $(TARGET_H). 41 * mangle.c (write_type): Add call to 'mangle_fundamental_type' 42 target hook. 43 * tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs. 44 452004-08-19 Mark Mitchell <mark@codesourcery.com> 46 47 PR c++/15890 48 * pt.c (push_template_decl_real): Disallow template allocation 49 functions with fewer than two parameters. 50 512004-08-18 Mark Mitchell <mark@codesourcery.com> 52 53 PR c++/17068 54 * pt.c (dependent_template_p): Treat IDENTIFIER_NODEs as 55 dependent. 56 572004-08-17 Mark Mitchell <mark@codesourcery.com> 58 59 PR c++/16246 60 * pt.c (unify): Make sure that non-type arguments have the same 61 type as the corresponding parameter. 62 632004-08-12 Mark Mitchell <mark@codesourcery.com> 64 65 PR c++/16273 66 * class.c (count_depth_data): New type. 67 (dfs_depth_post): New function. 68 (dfs_depth_q): Likewise. 69 (find_final_overrider_data_s): Change type of vpath. 70 Add vpath_list. 71 (dfs_find_final_overrider_1): New function. 72 (dfs_find_final_overrider): Use it. 73 (dfs_find_final_overrider_q): Adjust use of vpath. 74 (dfs_find_final_overrider_post): Likewise. 75 (find_final_overrider): Use dfs_depth. Allocate and deallocate 76 vpath_list. 77 782004-08-12 Jan Beulich <jbeulich@novell.com> 79 80 * parser.c (cp_parser_asm_definition): Properly consume scope operator 81 tokens preceding the clobbers. Don't check for scope operator 82 following inputs. Simplify inputs handling to match that now used for 83 clobbers. 84 852004-08-11 Mark Mitchell <mark@codesourcery.com> 86 87 PR c++/16698 88 * except.c (build_throw): Allocate cleanup_type and the function 89 for __cxa_throw separately. 90 912004-08-11 Mark Mitchell <mark@codesourcery.com> 92 93 PR c++/16717 94 * semantics.c (expand_body): Do not update static_ctors and 95 static_dtors here. 96 (expand_or_defer_fn): Do it here, instead. 97 98 PR c++/16853 99 * call.c (standard_conversion): Do not accept conversions between 100 pointers to members if the class types are unrelated. 101 102 PR c++/16870 103 * pt.c (tsubst): Just return the unknown_type_node. 104 105 PR c++/16964 106 * parser.c (cp_parser_class_specifier): Robustify. 107 108 PR c++/16904 109 * pt.c (tsubst_copy_and_build): Complain about invalid 110 qualification. 111 112 PR c++/16929 113 * pt.c (tsubst_default_argument): Clear out current_class_ptr and 114 current_class_ref while tsubsting. 115 1162004-08-01 Mark Mitchell <mark@codesourcery.com> 117 118 PR c++/16224 119 * name-lookup.c (decl_namespace): Remove. 120 (current_decl_namespace): Use decl_namespace_context instead of 121 decl_namespace. 122 (push_decl_namespace): Likewise. 123 (arg_assoc_class): Likewise. 124 (arg_assoc_type): Likewise. 125 * pt.c (check_specialization_namespace): New function. 126 (maybe_process_partial_specialization): Use it. 127 (register_specialization): Likewise. 128 1292004-08-01 Mark Mitchell <mark@codesourcery.com> 130 131 PR c++/16489 132 * cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): New macro. 133 * call.c (null_ptr_cst_p): Handle variables with constant 134 initializers. 135 * pt.c (convert_nontype_argument): Use 136 DECL_INTEGRAL_CONSTANT_VAR_P. 137 * semantics.c (finish_id_expression): Likewise. 138 139 PR c++/16529 140 * decl.c (duplicate_decls): Reject duplicate namespace 141 declarations. 142 143 PR c++/16810 144 * typeck.c (build_ptrmemfunc): Loosen assertion. 145 1462004-07-28 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 147 148 PR c++/13092 149 * init.c (build_offset_ref): Build SCOPE_REF with non-null 150 TREE_TYPE for non-dependent names. 151 * typeck.c (build_x_unary_op): Handle non-dependent SCOPE_REF. 152 * pt.c (type_dependent_expression_p): Handle SCOPE_REF with 153 unknown_type_node as its TREE_TYPE. 154 * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK. 155 * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression. 156 (dump_expr) <SCOPE_REF case>: Likewise. 157 1582004-07-21 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 159 160 PR c++/16175 161 * error.c (dump_type) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Output 162 cv qualifier. 163 1642004-07-20 Mark Mitchell <mark@codesourcery.com> 165 166 (cp_parser_simple_type_specifier): Fix typo. 167 168 PR c++/16637 169 * parser.c (cp_parser_simple_type_specifier): Do not record usage 170 of globally-qualified names. 171 1722004-07-12 Andrew Pinski <apinski@apple.com> 173 174 PR c++/16475 175 Revert: 176 2004-07-07 H.J. Lu <hongjiu.lu@intel.com> 177 PR c++/16276 178 * rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo 179 is not public. 180 181 1822004-07-07 H.J. Lu <hongjiu.lu@intel.com> 183 184 PR c++/16276 185 * rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo 186 is not public. 187 1882004-07-01 Release Manager 189 190 * GCC 3.4.1 released. 191 1922004-06-28 Nathan Sidwell <nathan@codesourcery.com> 193 194 PR C++/16174 195 * call.c (build_temp): Declare. 196 (check_constructor_callable): New. 197 (reference_binding): Only set CHECK_COPY_CONSTRUCTOR if not for 198 CONSTRUCTOR_CALLABLE. 199 (convert_like_real, initialize_reference): Use 200 check_constructor_callable. 201 * cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): New. 202 (LOOKUP_*): Renumber. 203 2042004-06-25 Jan Hubicka <jh@suse.cz> 205 206 PR C++/14865 207 * decl2.c (maybe_emit_vtables): Always import_export_vtable for the 208 reachability analysis. 209 2102004-06-22 Jan Hubicka <jh@suse.cz> 211 212 PR C++/14950 213 * pt.c (instantiate_decl): Clean TI_PENDING_TEMPLATE_FLAG before 214 expanding the function. 215 2162004-06-21 Nathan Sidwell <nathan@codesourcery.com> 217 218 PR c++/3518 219 * pt.c (check_cv_quals_for_unify): Ignore bogus CV quals at outer 220 level. 221 222 PR c++/14007 223 * pt.c (check_cv_quals_for_unify): Correct logic for disallowed 224 cv-qualifier unification. 225 * tree.c (cp_build_qualified_type_real): Renable DR295 logic. 226 2272004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org> 228 229 PR c++/15967 230 * search.c (build_new_1): Robustify. 231 2322004-06-14 Giovanni Bajo <giovannibajo@gcc.gnu.org> 233 234 PR c++/15947 235 * parser.c (cp_parser_template_name): Ctors/dtors never need a 236 template keyword to disambiguate. 237 2382004-06-14 Mark Mitchell <mark@codesourcery.com> 239 240 PR c++/15096 241 * decl.c (grokdeclarator): Ignore pointer-to-members when 242 computing template depth. 243 244 PR c++/14930 245 * name-lookup.c (pushtag): Do not try to put class declarations in 246 explicit specialization scopes. 247 248i2004-06-11 Mark Mitchell <mark@codesourcery.com> 249 250 PR c++/15862 251 * name-lookup.c (unqualified_namespace_lookup): Do not ignore type 252 bindings for undeclared built-ins. 253 2542004-06-10 Jason Merrill <jason@redhat.com> 255 256 PR c++/15875 257 Revert: 258 2004-06-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 259 * init.c (build_offset_ref): Build SCOPE_REF with non-null 260 TREE_TYPE for non-dependent names. 261 * pt.c (type_dependent_expression_p): Handle SCOPE_REF with 262 unknown_type_node as its TREE_TYPE. 263 * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK. 264 * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression. 265 (dump_expr) <SCOPE_REF case>: Likewise. 266 2672004-06-10 Mark Mitchell <mark@codesourcery.com> 268 269 PR c++/15227 270 * parser.c (cp_parser_direct_declarator): Robustify. 271 272 PR c++/15877 273 * pt.c (tsubst_copy): Use decl_constant_value on enumeration 274 constants in non-dependent contexts. 275 276 PR c++/14211 277 PR c++/15076 278 * typeck.c (build_static_cast): Wrap casts in NON_LVALUE_EXPR when 279 necessary. 280 2812004-06-09 Mark Mitchell <mark@codesourcery.com> 282 283 Revert: 284 PR c++/15815 285 2004-06-07 Mark Mitchell <mark@codesourcery.com> 286 * lex.c (handle_pragma_interface): Deprecate. 287 (handle_pragma_implementation): Likewise. 288 2892004-06-07 Dan Kegel <dank@kegel.com> 290 291 PR c++/14808 292 * method.c (make_alias_for_thunk, use_thunk): Use TARGET_IS_PE_COFF 293 instead of __CYWGIN__ and __MINGW32__. 294 2952004-06-07 Mark Mitchell <mark@codesourcery.com> 296 297 PR c++/15815 298 * lex.c (handle_pragma_interface): Deprecate. 299 (handle_pragma_implementation): Likewise. 300 301 PR c++/15766 302 * parser.c (cp_parser_iteration_statement): Fix typo in error 303 message. 304 305 PR c++/14777 306 * pt.c (tsubst_default_argument): Do not defer access checks 307 while substituting into the default argument. 308 309 PR c++/15554 310 * pt.c (tsubst_copy): Do not try to substitute for an enumeration 311 constant in a non-dependent context. 312 313 PR c++/15057 314 * except.c (build_throw): Ensure that temp_expr has been 315 initialized. 316 3172004-06-06 Giovanni Bajo <giovannibajo@gcc.gnu.org> 318 319 PR c++/15503 320 * parser.c (cp_parser_mem_initializer_id): Gracefully reject 321 'typename', and accept 'template'. 322 3232004-06-01 Jason Merrill <jason@redhat.com> 324 325 PR c++/15142 326 * call.c (call_builtin_trap): Remove type parm. 327 (convert_arg_to_ellipsis): Change a non-POD argument to integer type. 328 (build_x_va_arg): Dereference a null pointer for a non-POD argument. 329 3302004-06-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 331 332 PR c++/13092 333 * init.c (build_offset_ref): Build SCOPE_REF with non-null 334 TREE_TYPE for non-dependent names. 335 * pt.c (type_dependent_expression_p): Handle SCOPE_REF with 336 unknown_type_node as its TREE_TYPE. 337 * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK. 338 * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression. 339 (dump_expr) <SCOPE_REF case>: Likewise. 340 3412004-06-01 Giovanni Bajo <giovannibajo@gcc.gnu.org> 342 343 PR c++/14932 344 * parser.c (cp_parser_postfix_expression): Allow subscript 345 operator in offsetof. 346 3472004-05-31 Mark Mitchell <mark@codesourcery.com> 348 349 PR c++/15701 350 * friend.c (add_friend): Do not try to perform access checks for 351 functions from dependent classes. 352 353 PR c++/15742 354 * call.c (build_over_call): Set 355 current_function_returns_abnormally even in template functions. 356 357 PR c++/15696 358 * cp-tree.h (invalid_nonstatic_memfn_p): New function. 359 * cvt.c (convert_to_void): Use it. 360 * typeck.c (invalid_nonstatic_memfn_p): New function. 361 (decay_conversion): Use it. 362 363 PR c++/15625 364 * pt.c (tsubst_decl): Set DECL_FRIEND_CONTEXT for instantiated 365 templates. 366 367 PR c++/15629 368 * name-lookup.c (arg_assoc_class): Do not find template 369 specializations. 370 371 PR c++/15209 372 * tree.c (lvalue_p_1): Only consider the right-hand side of "." 373 expressions when determining whether or not an express is packed. 374 3752004-05-28 Mark Mitchell <mark@codesourcery.com> 376 377 PR c++/15083 378 * decl2.c (delete_sanity): Set TREE_SIDE_EFFECTS on a DELETE_EXPR, 379 even in a templat.e 380 * init.c (build_new): Likewise. 381 382 PR c++/15640 383 * name-lookup.c (arg_assoc): Robustify. 384 385 PR c++/15471 386 * typeck.c (unary_complex_lvalue): Use context_for_name_lookup 387 when determining the scope to use for a pointer to member. 388 (lookup_anon_field): Give it external linkage. 389 * cp-tree.h (lookup_anon_field): Declare it. 390 * expr.c (cplus_expand_constant): Use it. 391 392 PR c++/14668 393 * parser.c (cp_parser_simple_type_specifier): Call 394 maybe_note_name_used_in_class. 395 3962004-05-23 Mark Mitchell <mark@codesourcery.com> 397 398 PR c++/15044 399 * parser.c (cp_parser_class_head): Robustify. 400 401 PR c++/15317 402 * parser.c (cp_parser_decl_specifier_seq): Correct error in 403 comment. 404 (cp_parser_constructor_declarator_p): Treat attributes 405 as decl-specifiers. 406 407 PR c++/15329 408 * typeck.c (build_unary_op): Do not attempt to resolve casts to 409 base classes in templates. 410 411 PR c++/15165 412 * pt.c (instantiate_template): Robustify. 413 414 PR c++/15025 415 * decl.c (xref_tag): Issue errors about redeclaring template 416 classes as non-template classes. 417 418 PR c++/14821 419 * name-lookup.c (supplement_binding): Allow redefinitions of 420 namespace aliases. 421 422 PR c++/14883 423 * parser.c (cp_parser_template_argument): Robustify. 424 4252004-05-22 Mark Mitchell <mark@codesourcery.com> 426 427 PR c++/15285 428 PR c++/15299 429 * pt.c (build_non_dependent_expr): Expand the set of tree nodes 430 recognized as overloaded functions. 431 432 PR c++/15507 433 * class.c (layout_nonempty_base_or_field): Do not try to avoid 434 layout conflicts for unions. 435 436 PR c++/15542 437 * typeck.c (build_x_unary_op): Instantiate template class 438 specializations before looking for "operator &". 439 440 PR c++/15427 441 * typeck.c (complete_type): Layout non-dependent array types, even 442 in templates. 443 444 PR c++/15287 445 * typeck.c (build_unary_op): Do not optimize "&x[y]" when in a 446 template. 447 4482004-04-23 Giovanni Bajo <giovannibajo@gcc.gnu.org> 449 450 PR c++/15064 451 * parser.c (cp_parser_postfix_expression): typeid operator cannot be 452 used in integral constant expressions. 453 4542004-04-18 Release Manager 455 456 * GCC 3.4.0 released. 457 4582004-04-08 Danny Smith <dannysmith@users.sourceforge.net> 459 460 PR c++/14808 461 * method.c (make_alias_for_thunk): Just return function decl 462 for one_only functions if __CYGWIN__ or __MINGW32__ 463 (use_thunk): Don't put function and thunk in same one_only 464 section if __CYGWIN__ or __MINGW32__. 465 4662004-04-08 Jakub Jelinek <jakub@redhat.com> 467 468 * decl2.c (mark_used): Don't segfault if cfun != NULL but 469 current_function_decl == NULL. 470 4712004-04-01 Mark Mitchell <mark@codesourcery.com> 472 473 PR c++/14803 474 * typeck.c (get_delta_difference): Call fold before returning the 475 value. 476 4772004-04-01 Richard Henderson <rth@redhat.com> 478 479 PR c++/14804 480 * decl.c (cp_finish_decl): Preserve TREE_READONLY more often. 481 * typeck2.c (split_nonconstant_init): Clear TREE_READONLY. 482 4832004-04-01 Mark Mitchell <mark@codesourcery.com> 484 485 PR c++/14810 486 * name-lookup.c (maybe_push_cleanup_level): Robustify. 487 4882004-03-30 Mark Mitchell <mark@codesourcery.com> 489 490 PR c++/14724 491 * decl.c (start_decl_1): Do not decide whether or not to create a 492 new cleanup level until after the type has been completed. 493 494 PR c++/14763 495 * pt.c (tsubst_default_argument): Clear current_function_decl. 496 4972004-03-28 Jan Hubicka <jh@suse.cz> 498 499 PR C++/14639 500 * method.c (use_think): Do not mark thunk as referenced. 501 5022004-03-21 Mark Mitchell <mark@codesourcery.com> 503 504 PR c++/14616 505 * decl.c (cp_finish_decl): Compute the size of arrays declared in 506 templates, if their type is non-dependent. 507 5082004-03-19 Mark Mitchell <mark@codesourcery.com> 509 510 * call.c (build_op_delete_call): Do not forget the placement 511 arguments when iterating through mutiple delete operators. 512 513 * cp-tree.h (svaed_scope): Remove last_parms. 514 (NEW_DELETE_OPNAME_P): New macro. 515 (last_function_parms): Remove. 516 (do_friend): Adjust prototype. 517 * decl.c (grokparms): Return the PARM_DECLs directly, rather than 518 using last_function_parms. 519 (grokfndecl): Take the PARM_DECLs as an argument, rather than 520 using last_function_parms. 521 (grokdeclarator): Adjust accordingly. Do not form METHOD_TYPEs 522 for class-specific operator new and operator delete. 523 (grok_op_properties): Do not look for allocation functions with 524 METHOD_TYPEs. 525 (start_function): Use DECL_ARGUMENTS instead of 526 last_function_parms. 527 * decl.h (last_function_parms): Do not declare. 528 * decl2.c (grokclassfn): Do not use last_function_parms. 529 * friend.c (do_friend): Remove parmdecls parameter. 530 * name-lookup.c (push_to_top_level): Do not save last_function_parms. 531 (pop_from_top_level): Do not restore it. 532 * pt.c (check_explicit_specialization): Do not adjust 533 last_function_parms. 534 535 * name-lookup.c (do_local_using_decl): Create a local binding for 536 types brought in via using declarations. 537 538 * name-lookup.c (lookup_arg_dependent): Handle block-scope 539 function declarations correctly. 540 541 * semantics.c (finish_id_expression): Correct handling of 542 conversion operators to dependent types. 543 544 * typeck.c (lookup_destructor): Allow the use of destructors from 545 base classes. 546 5472004-03-19 Giovanni Bajo <giovannibajo@gcc.gnu.org> 548 549 PR c++/14545 550 * parser.c (cp_parser_functional_cast): A cast to anything 551 but integral or enumaration type is not an integral constant 552 expression. 553 * pt.c (value_dependent_expression_p): Handle cast expressions 554 without operands (such as "int()"). 555 5562004-03-18 Mark Mitchell <mark@codesourcery.com> 557 558 * semantics.c (finish_pseudo_destructor_expr): Allow differing 559 cv-qualification between the type named by the 560 pseudo-destructor-name and the object-type. 561 562 * search.c (accessible_base_p): Handle non-proper bases. 563 564 * name-lookup.c (do_nonmember_using_decl): If a using declaration 565 refers to a single overloaded function, set the type of the 566 function. 567 * tree.c (lvalue_type): Simplify. 568 * typeck.c (type_unknown_p): Do not assume all OVERLOADs have an 569 unknown type. 570 (build_unary_op): Handle OVERLOADs with known types. 571 572 * decl.c (duplicate_decls): Do not destroy DECL_ARGUMENTS for 573 function templates. 574 575 * parser.c (cp_parser_postfix_expression): Handle the use of 576 "typename" in non-dependent contexts. Convert appropriately when 577 when using a qualified name after "->" or ".". 578 579 * call.c (conditional_conversion): Honor the requirement that some 580 conversions refer to the original object. 581 582 * call.c (build_conditional_expr): Do not call force_rvalue for 583 operands of void_type when the conditional expression itself has 584 void type. 585 * name-lookup.c (pushdecl): Don't consider a declaration of a 586 function named "main" to be an overload of a type named "main". 587 * parser.c (cp_parser_template_name): Perform name lookup when the 588 template name is proceeded by "template" if the qualifying scope 589 is non-dependent. 590 * typeck.c (composite_pointer_type_r): Correctly handle 591 pointer-to-member types. 592 (build_const_cast): Likewise. 593 5942004-03-16 Mark Mitchell <mark@codesourcery.com> 595 596 PR c++/14586 597 * cp-tree.h (build_new_op): Change prototype. 598 (build_x_binary_op): Likewise. 599 * call.c (build_new_op): Add overloaded_p parameter. 600 * decl2.c (grok_array_decl): Adjust call to build_new_op. 601 * parser.c (cp_parser_binary_expression): Note that uses of 602 overloaded operators prevents an expression from being considered 603 an integral constant. 604 * pt.c (tsubst_copy_and_build): Adjust calls to build_new_op and/or 605 build_x_binary_op. 606 * semantics.c (finish_call_expr): Likewise. 607 * typeck.c (rationalize_conditional_expr): Likewise. 608 (build_x_indirect_ref): Likewise. 609 (build_x_binary_op): Likewise. 610 (build_x_unary_op): Likewise. 611 (build_x_compound_expr): Likewise. 612 (build_modify_expr): Likewise. 613 * typeck2.c (build_x_arrow): Likewise. 614 6152004-03-13 Mark Mitchell <mark@codesourcery.com> 616 617 PR c++/14550 618 * parser.c (cp_parser_non_integral_constant_expression): Encode 619 more of the idiom that surrounded calls to this function within 620 the function itself 621 (cp_parser_primary_expression): Adjust accordingly. 622 (cp_parser_postfix_expression): Likewise. 623 (cp_parser_unary_expression): Likewise. 624 (cp_parser_cast_expression): Likewise. 625 (cp_parser_assignment_expression): Likewise. 626 (cp_parser_expression): Likewise. 627 (cp_parser_new_expression): Note that new-expressions are not 628 allowed in integral constant expressions. 629 (cp_parser_delete_expression): Likewise. 630 6312004-03-11 Mark Mitchell <mark@codesourcery.com> 632 633 PR c++/14476 634 * decl.c (xref_tag): Do not create dummy ENUMERAL_TYPEs. 635 6362004-03-10 Mark Mitchell <mark@codesourcery.com> 637 638 PR c++/14510 639 * decl.c (xref_tag): Disregard non-type declarations when 640 looking up a tagged type. 641 6422004-03-10 Jason Merrill <jason@redhat.com> 643 644 PR c++/14452 645 * tree.c (stabilize_init): Return whether or not it worked. 646 * init.c (build_new_1): If not, use a sentry. 647 * cp-tree.h: Adjust prototype. 648 6492004-03-09 Nathan Sidwell <nathan@garibaldi.home> 650 651 PR c++/14397 652 * call.c (convert_like_real): Build a const qualified temporary, 653 when testing ctor access. 654 6552004-03-09 Mark Mitchell <mark@codesourcery.com> 656 657 * call.c (initialize_reference): Fix typo. 658 6592004-03-09 Giovanni Bajo <giovannibajo@gcc.gnu.org> 660 661 PR c++/14409 662 * pt.c (determine_specialization): For member templates, match also 663 constness. 664 665 PR c++/14448 666 * parser.c (cp_parser_initializer_clause): Fold initializer if it is 667 non-dependent. 668 * pt.c (tsubst_copy_and_build): Handle NOP_EXPRs. 669 6702004-03-09 Mark Mitchell <mark@codesourcery.com> 671 672 PR c++/14230 673 * call.c (initialize_reference): Handle initializers that are 674 class-member access expressions applies to rvalues. 675 676 PR c++/14432 677 * name-lookup.c (supplement_binding): Ignore functions that are 678 marked DECL_ANTICIPATED. 679 6802004-03-08 Mark Mitchell <mark@codesourcery.com> 681 682 PR c++/14401 683 * class.c (check_field_decls): Complain about non-static data 684 members of reference type in unions. Propagate 685 CLASSTYPE_REF_FIELDS_NEED_INIT and 686 CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static 687 data members. 688 * init.c (perform_member_init): Complain about mbmers with const 689 type that are not explicitly initialized. 690 6912004-03-08 Jason Merrill <jason@redhat.com> 692 693 PR c++/13170 694 * decl.c (xref_tag): Remove attribute handling. 695 * cp-tree.h: Adjust prototype. 696 * decl.c, parser.c, rtti.c: Adjust callers. 697 * parser.c (cp_parser_class_head): Pass back attributes in the 698 class head. 699 (cp_parser_class_specifier): Adjust. 700 7012004-03-08 Matt Austern <austern@apple.com> 702 703 PR debug/14079 704 * name-lookup.c (add_decl_to_level): Add extern variables, as well 705 as static, to static_decls array. 706 7072004-03-01 Jason Merrill <jason@redhat.com> 708 709 PR c++/13944 710 * except.c (do_free_exception): Remove #if 0 wrapper. 711 (build_throw): Use it if we elide a copy into the 712 exception object. 713 714 * tree.c (stabilize_call): Fix thinko. 715 716 * init.c (build_new_1): Preevaluate initializer. Simplify EH code. 717 (build_init): Call a constructor rather than call build_aggr_init 718 for classes. 719 * except.c (stabilize_throw_expr): Remove. 720 (build_throw): Use stabilize_init instead of stabilize_throw_expr. 721 * tree.c (stabilize_call, stabilize_init): New fns. 722 * call.c (build_over_call): A constructor no longer returns the 723 address of the object. 724 7252004-03-01 Mark Mitchell <mark@codesourcery.com> 726 727 PR c++/14324 728 * lex.c (retrofit_lang_decl): Treat entities with no linkage as 729 having C++ linkage for name-mangling purposes. 730 731 PR c++/14260 732 * parser.c (cp_parser_direct_declarator): Recognize constructor 733 declarators that use a template-id to name the class being 734 constructed. 735 736 PR c++/14337 737 * pt.c (tsubst_qualified_id): Handle dependent qualifying scopes. 738 (tsubst_expr): Do not call tsubst_copy, even when 739 processing_template_decl. 740 7412004-03-01 Mark Mitchell <mark@codesourcery.com> 742 743 PR c++/14369 744 * pt.c (build_non_dependent_expr): Do not create a 745 NON_DEPENDENT_EXPR for a THROW_EXPR. 746 747 PR c++/14360 748 * parser.c (cp_parser_postfix_expression): Do not perform Koenig 749 lookup if ordinary name-lookup finds a non-function. 750 * pt.c (tsubst_copy_and_build): Likewise. 751 752 PR c++/14361 753 * parser.c (cp_parser_late_parsing_default_args): Check that there 754 are no extra tokens after the end of the default-argument 755 expression. 756 757 PR c++/14359 758 Backport 2004-02-12 Mark Mitchell <mark@codesourcery.com> 759 * decl.c (redeclaration_error_message): Correct handling of 760 templates. 761 * pt.c (tsubst_friend_declaration): Adjust code to determine 762 whether or not a friend template is a definition. 763 (tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs. 764 7652004-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net> 766 767 PR c++/14369 768 * error.c (dump_expr): Handle THROW_EXPR. 769 7702004-02-29 Mark Mitchell <mark@codesourcery.com> 771 772 PR c++/14138 773 * name-lookup.h (push_scope): Change prototype. 774 * name-lookup.c (push_scope): Do not reenter the current class 775 scope. 776 * decl.c (grokfndecl): Check return code from push_scope before 777 calling pop_scope. 778 * decl2.c (check_classfn): Likewise. 779 * parser.c (cp_parser_conversion_function_id): Likewise. 780 (cp_parser_init_declarator): Likewise. 781 (cp_parser_direct_declarator): Likewise. 782 (cp_parser_class_specifier): Likewise. 783 (cp_parser_class_head): Likewise. 784 (cp_parser_lookup_name): Likewise. 785 (cp_parser_constructor_declarator_p): Likewise. 786 * pt.c (instantiate_class_template): Likewise. 787 (resolve_typename_type): Likewise. 788 7892004-02-27 Mark Mitchell <mark@codesourcery.com> 790 791 PR debug/12103 792 * class.c (update_vtable_entry_for_fn): Do not go through 793 covariance machinery if the type returned by an overrider is the 794 same as the original. 795 7962004-02-27 Giovanni Bajo <giovannibajo@gcc.gnu.org> 797 798 PR c++/14284 799 * pt.c (dependent_type_p_r): A template template parameter is a 800 dependent type. 801 8022004-02-26 Mark Mitchell <mark@codesourcery.com> 803 804 PR c++/14278 805 * parser.c (cp_parser_parameter_declaration_list): Commit 806 to fewer tentative parses. 807 8082004-02-26 Giovanni Bajo <giovannibajo@gcc.gnu.org> 809 810 PR c++/14246 811 * mangle.c (write_template_arg_literal): Don't rely on identity for 812 boolean constants. 813 8142004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org> 815 816 PR c++/14250 817 * cvt.c (build_expr_type_conversion): Type must be complete before 818 looking up for conversions. 819 8202004-02-20 Mark Mitchell <mark@codesourcery.com> 821 822 PR c++/14199 823 * pt.c (tsubst_copy): Call mark_used for a PARM_DECL. 824 825 PR c++/14173 826 * semantics.c (begin_class_definition): Set TYPE_PACKED correctly 827 for all type variants. 828 8292004-02-19 Mark Mitchell <mark@codesourcery.com> 830 831 PR c++/14186 832 * name-lookup.c (push_class_level_binding): Do not complain about 833 adding a binding for a member whose name is the same as the 834 enclosing class if the member is located in a base class of the 835 current class. 836 8372004-02-19 Giovanni Bajo <giovannibajo@gcc.gnu.org> 838 839 PR c++/14181 840 * parser.c (cp_parser_new_expression): Parse an ill-formed 841 direct-new-declarator after a parenthesized type-id to emit good 842 diagnostic. 843 8442004-02-17 Mark Mitchell <mark@codesourcery.com> 845 846 PR c++/11326 847 * cp-tree.h (abi_version_at_least): Remove. 848 * mangle.c: Include flags.h. 849 8502004-02-15 Mark Mitchell <mark@codesourcery.com> 851 852 PR c++/13971 853 * call.c (build_conditional_expr): Handle conversions between 854 class types which result in differently cv-qualified type 855 variants. 856 857 PR c++/14086 858 * class.c (delete_duplicate_fields_1): Remove. 859 (delete_duplicate_fields): Likewise. 860 (finish_struct_anon): Remove check for members with the same name 861 as their enclosing class. 862 (check_field_decls): Do not call duplicate_fields. 863 * decl.c (grokdeclarator): Remove check for static data members 864 with the same name as their enclosing class. 865 * name-lookup.c (push_class_level_binding): Check for members with 866 the same name as their enclosing class. 867 8682004-02-15 Gabriel Dos Reis <gdr@integrable-solutions.net> 869 870 PR c++/14085 871 * error.c (dump_decl): Handle TEMPLATE_TYPE_PARM. 872 8732004-02-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 874 875 PR c++/13635 876 * pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL 877 has full set of arguments. 878 8792004-02-13 Mark Mitchell <mark@codesourcery.com> 880 881 PR c++/14122 882 * cp-tree.h (delete_sanity): Change prototype. 883 * decl2.c (delete_sanity): Make doing_vec a bool, not an int. 884 Remove dead code. Adjust code to warn about deleting an array. 885 * typekc.c (decay_conversion): Use build_address and build_nop. 886 887 PR c++/14108 888 * search.c (accessible_p): Do not check access in thunks. 889 8902004-02-13 Giovanni Bajo <giovannibajo@gcc.gnu.org> 891 892 PR c++/13927 893 * error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations. 894 8952004-02-13 Mark Mitchell <mark@codesourcery.com> 896 897 PR c++/14083 898 * call.c (build_conditional_expr): Call force_rvalue on the 899 non-void operand in the case that one result is a throw-expression 900 and the other is not. 901 9022004-02-13 Ian Lance Taylor <ian@wasabisystems.com> 903 904 PR c++/9851 905 * parser.c (cp_parser_pseudo_destructor_name): Check for errors on 906 the type name and look ahead for ::~, and bail out early with a 907 better error message if the parse is going to fail. 908 9092004-02-10 Mark Mitchell <mark@codesourcery.com> 910 911 * typeck.c (lookup_destructor): Fix typo in error message. 912 9132004-02-07 Zack Weinberg <zack@codesourcery.com> 914 915 Bug 13856 916 * optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS. 917 * decl.c (duplicate_decls, start_function): Likewise. 918 9192004-02-07 Zack Weinberg <zack@codesourcery.com> 920 921 * name-lookup.c (pushdecl): Issue shadow warnings directly. 922 * parser.c (free_parser_stacks): Delete. 923 9242004-02-07 Kazu Hirata <kazu@cs.umass.edu> 925 926 * rtti.c, tree.c: Update copyright. 927 9282003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org> 929 930 PR c++/14033 931 * decl.c (require_complete_types_for_parms): Do not insert 932 error_mark_node in the parameter list. 933 9342003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org> 935 936 PR c++/14028 937 * parser.c (cp_parser_enclosed_template_argument_list): Emit straight 938 error when terminator can not be found. 939 9402004-02-05 Kelley Cook <kcook@gcc.gnu.org> 941 942 Make-lang.in (po-generated): Delete. 943 9442004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 945 946 PR middle-end/13750 947 Revert: 948 2004-01-15 Geoffrey Keating <geoffk@apple.com> 949 PR pch/13361 950 * cp/lex.c (handle_pragma_interface): Duplicate string from tree. 951 (handle_pragma_implementation): Likewise. 952 9532004-02-05 Mark Mitchell <mark@codesourcery.com> 954 955 PR c++/13714 956 * typeck.c (lookup_destructor): Tweak error message. 957 9582004-02-05 Paul Brook <paul@codesourcery.com> 959 960 Backport from mainline. 961 962 2003-11-05 Mark Mitchell <mark@codesourcery.com> 963 964 * decl.c (cxx_push_function_context): Do not set 965 current_function_is_thunk. 966 * method.c (use_thunk): Set CALL_FROM_THUNK on the call to the 967 actual function. 968 9692004-02-04 Mark Mitchell <mark@codesourcery.com> 970 971 PR c++/13932 972 * call.c (convert_like_real): Use "converting" rather than 973 "argument" as the descriptive keyword to 974 dubious_conversion_warnings. 975 * typeck.c (convert_for_assignment): Do not call 976 dubious_conversion_warnings. 977 9782004-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org> 979 980 PR c++/13086 981 * init.c (build_delete): Emit a more informative error message in 982 case of an incomplete type, and on the correct source line. 983 9842004-02-04 Mark Mitchell <mark@codesourcery.com> 985 986 PR c++/9941 987 * rtti.c (tinfo_base_init): Use import_export_tinfo to decide the 988 linkage for the typeinfo name string. 989 990 PR c++/13969 991 * cp-tree.h (fold_non_dependent_expr): New function. 992 * parser.c (cp_parser_fold_non_dependent_expr): Remove. 993 (cp_parser_template_argument): Use fold_non_dependent_expr. 994 (cp_parser_direct_declarator): Likewise. 995 * pt.c (fold_non_dependent_expr): New function. 996 (convert_nontype_argument): Use it. 997 (tsubst_qualified_id): Simplify. 998 (tsubst_copy_and_build): Likewise. 999 10002003-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1001 1002 PR c++/13997 1003 * pt.c (more_specialized_class): Increase processing_template_decl 1004 while partial ordering. 1005 10062004-02-03 Mark Mitchell <mark@codesourcery.com> 1007 1008 PR c++/13950 1009 * parser.c (cp_parser_class_name): Robustify. 1010 1011 PR c++/13970 1012 * parser.c (cp_parser_cache_group): Do not consume the EOF token. 1013 10142004-02-03 Mark Mitchell <mark@codesourcery.com> 1015 1016 PR c++/13925 1017 * decl.c (start_function): Do not call pushdecl for any 1018 instantiation or specialization of a primary template. 1019 1020 PR c++/14002 1021 * semantics.c (finish_id_expression): Do not return an 1022 IDENTIFIER_NODE when lookup finds a PARM_DECL. 1023 1024 PR c++/13978 1025 * pt.c (build_non_dependent_expr): Do not build 1026 NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs. 1027 1028 PR c++/13968 1029 * semantics.c (finish_id_expression): Do not return an 1030 IDENTIFIER_NODE when lookup finds a VAR_DECL. 1031 1032 PR c++/13975 1033 * parser.c (cp_parser_simple_declaration): When skipping to the 1034 end of the statement swallow the terminating semicolon. 1035 10362004-02-02 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1037 1038 DR206 1039 PR c++/13813 1040 * decl.c (grokdeclarator): Check immediatly type completeness for 1041 non-dependent types. 1042 10432004-01-30 Mark Mitchell <mark@codesourcery.com> 1044 1045 PR c++/13113 1046 * init.c (build_offset_ref): Improve error recovery for invalid 1047 uses of non-static member functions. 1048 1049 PR c++/13854 1050 * cp-tree.h (cp_build_type_attribute_variant): New function. 1051 * class.c (build_clone): Use cp_build_type_attribute_variant. 1052 * decl.c (duplicate_decls): Likewise. 1053 * pt.c (copy_default_args_to_explicit_spec): Likewise. 1054 (tsubst_function_type): Likewise. 1055 * tree.c (build_exception_variant): Check attributes before 1056 concluding that two types are the same. 1057 (cp_build_type-attribute_variant): New method. 1058 * typeck.c (merge_types): Use cp_build_type_attribute_variant. 1059 1060 PR c++/13907 1061 * call.c (convert_class_to_reference): Keep better track of 1062 pedantically invalid user-defined conversions. 1063 10642004-02-02 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1065 1066 PR c++/13957 1067 * pt.c (tsubst_qualified_id): Improved error message when a type 1068 is expected but not found. 1069 10702004-01-30 Michael Matz <matz@suse.de> 1071 1072 * parser.c (cp_parser_labeled_statement): Accept case ranges. 1073 10742004-01-28 Jan Hubicka <jh@suse.czi 1075 1076 * semantics.c (expand_body) Do emit_associated_thunks before 1077 expansion. 1078 10792004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1080 1081 PR c++/13683 1082 * call.c (convert_arg_to_ellipsis): Don't emit a warning if within 1083 a sizeof expression.block 1084 10852004-01-29 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1086 1087 * parser.c (cp_parser_template_id): Parse tentatively `[:' after a 1088 template name as it was `<::' (digraph typo). 1089 (cp_parser_nth_token_starts_template_argument_list_p): New function. 1090 (cp_parser_id_expression): Use it. 1091 (cp_parser_nested_name_specifier_opt): Likewise. 1092 (cp_parser_template_name): Likewise. 1093 (cp_parser_class_name): Likewise. 1094 (cp_lexer_get_preprocessor_token): Use c_lex_with_flags. 1095 10962004-01-29 Mark Mitchell <mark@codesourcery.com> 1097 1098 PR c++/13883 1099 * mangle.c (write_encoding): Correct encoding of member template 1100 constructors. 1101 11022004-01-28 Mark Mitchell <mark@codesourcery.com> 1103 1104 PR c++/13791 1105 * typeck.c (merge_types): Do not merge attributes into 1106 TYPENAME_TYPEs. 1107 11082004-01-28 Mark Mitchell <mark@codesourcery.com> 1109 1110 PR c++/13736 1111 * parser.c (cp_parser_direct_declarator): Do not prevent 1112 backtracking inside a parenthesized declarator. 1113 (cp_parser_parameter_declaration): Fix typo in comment. 1114 11152004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1116 1117 * cp-tree.h (language_function, lang_type_header): Use 1118 BOOL_BITFIELD. 1119 * name-lookup.h (cp_binding_level): Likewise. 1120 11212004-01-26 Mark Mitchell <mark@codesourcery.com> 1122 1123 PR c++/13663 1124 * semantics.c (finish_for_expr): Check for unresolved overloaded 1125 functions. 1126 11272004-01-26 Mark Mitchell <mark@codesourcery.com> 1128 1129 * class.c (add_method): Just check processing_template_decl to 1130 determine whether or not we are within a template. 1131 * decl2.c (maybe_retrofit_in_chrg): Likewise. 1132 * init.c (decl_constant_value): Check the type of the declaration, 1133 not TREE_READONLY. 1134 * name-lookup.c (maybe_push_to_top_level): Rename to ... 1135 (push_to_top_level): ... this. 1136 * name-lookup.h (maybe_push_to_top_level): Do not declare it. 1137 * pt.c (push_template_decl_real): Reorder condition for speed. 1138 (convert_template_argument): Use dependency-checking functions in 1139 place of uses_template_parms. 1140 (lookup_template_class): Avoid calling uses_template_parms more 1141 than once. 1142 (uses_template_parms): Reimplement, using dependency-checking 1143 functions. 1144 (instantiate_class_template): Use push_to_top_level, not 1145 maybe_push_to_top_level. 1146 (type_unification_real): Simplify. 1147 (type_dependent_expression_p): Handle OFFSET_REFs and 1148 TEMPLATE_DECLs. 1149 (any_dependent_template_arguments_p): Handle multiple levels of 1150 template argument. 1151 * semantics.c (expand_or_defer_fn): Do not check 1152 uses_template_parms for template instantiations. 1153 * typeck.c (comptypes): Avoid calling cp_type_quals. 1154 11552004-01-25 Mark Mitchell <mark@codesourcery.com> 1156 1157 PR c++/13833 1158 * call.c (build_over_call): Do not convert arguments when 1159 processing a template. 1160 * pt.c (build_non_dependent_expr): Do not build a 1161 NON_DEPENDENT_EXPR for arithmetic constants. 1162 11632004-01-25 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1164 1165 PR c++/13810 1166 * parser.c (cp_parser_type_parameter): When cp_parser_id_expression 1167 returns a TYPE_DECL. no further lookup is required. 1168 * semantics.c (check_template_template_default_arg): A TYPE_DECL 1169 is invalid. Rework to give better diagnostics. 1170 11712004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1172 1173 PR c++/13797 1174 * pt.c (instantiate_class_template): Add an error_mark_node 1175 check. 1176 (tsubst_decl) <TEMPLATE_DECL case>: Likewise. 1177 11782004-01-24 Kazu Hirata <kazu@cs.umass.edu> 1179 1180 * call.c: Update copyright. 1181 * class.c: Likewise. 1182 * decl2.c: Likewise. 1183 * except.c: Likewise. 1184 * expr.c: Likewise. 1185 * init.c: Likewise. 1186 * mangle.c: Likewise. 1187 * optimize.c: Likewise. 1188 * typeck.c: Likewise. 1189 * typeck2.c: Likewise. 1190 11912004-01-23 Andrew Pinski <pinskia@physics.uc.edu> 1192 1193 PR c++/13701 1194 * decl.c (finish_function): Move the call to 1195 finish_fname_decls below the call to 1196 finish_eh_spec_block. 1197 11982004-01-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 1199 1200 * parser.c (cp_parser_class_specifier): Prevent garbage collection. 1201 12022004-01-20 Kelley Cook <kcook@gcc.gnu.org> 1203 1204 * Make-lang.in: Replace $(docdir) with doc. 1205 (c++.info, c++.srcinfo): Dummy entry. 1206 (c++.man, c++.srcman): New rules. 1207 (c++.install-man): Revamp rule. 1208 12092004-01-19 Kelley Cook <kcook@gcc.gnu.org> 1210 1211 * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME, 1212 CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a 1213 immediate $(shell) instead of deferred backquote. 1214 12152004-01-19 Mark Mitchell <mark@codesourcery.com> 1216 1217 PR c++/13651 1218 * parser.c (cp_parser_postfix_expression): When encountering 1219 incomplete type on left-hand side of "->" or ".", treat the entire 1220 expression as erroneous. 1221 12222004-01-19 Mark Mitchell <mark@codesourcery.com> 1223 1224 PR c++/13592 1225 * call.c (build_field_call): Remove. 1226 (n_build_method_call): Likewise. 1227 (build_method_call): Likewise. 1228 (build_new_method_call): Do not call build_field_call. 1229 * class.c (n_build_method_call): Remove. 1230 (print_class_statistics): Do not print it. 1231 * cp-tree.h (build_method_call): Remove declaration. 1232 (finish_object_call_expr): Likewise. 1233 (build_new_1): Do not use build_method_call. 1234 * parser.c (cp_parser_postfix_expression): Use finish_call_expr 1235 when the function appearing on the right-hand-side of "." or "->" 1236 is not actually a function. 1237 * pt.c (tsubst_copy_and_build): Likewise. 1238 * semantics.c (finish_object_call_expr): Remove. 1239 12402004-01-18 Mark Mitchell <mark@codesourcery.com> 1241 1242 PR c++/13710 1243 * pt.c (tsubst): Use finish_typeof. 1244 12452004-01-18 Jason Merrill <jason@redhat.com> 1246 1247 PR c++/11725 1248 * except.c (build_throw): In a template, set 1249 current_function_returns_abnormally. 1250 12512004-01-17 Fred Fish <fnf@intrinsity.com> 1252 1253 PR c++/11895 1254 * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE, 1255 except don't call array_type_nelts() with a VECTOR_TYPE. 1256 12572004-01-16 Jan Hubicka <jh@suse.cz> 1258 1259 * mangle.c (write_mangled_name): Remove inline modifier. 1260 12612004-01-16 Mark Mitchell <mark@codesourcery.com> 1262 1263 PR c++/13574 1264 * decl.c (compute_array_index_type): Fix grammar in comment. 1265 * init.c (build_zero_init): Handle zero-sized arrays correctly. 1266 1267 PR c++/13178 1268 * call.c (name_as_c_string): Print conversion operator names 1269 correctly. 1270 1271 PR c++/13478 1272 * call.c (initialize_reference): Pass -1 for inner parameter to 1273 convert_like_real. 1274 12752004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1276 1277 PR c++/13407 1278 * parser.c (cp_parser_base_specifier): Check for an invalid 1279 keyword `typename' and emit an user-friendly error message. 1280 12812004-01-15 Geoffrey Keating <geoffk@apple.com> 1282 1283 PR pch/13361 1284 * cp/lex.c (handle_pragma_interface): Duplicate string from tree. 1285 (handle_pragma_implementation): Likewise. 1286 12872004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1288 1289 PR c++/9259 1290 * typeck.c (build_class_member_access_expr): Allow to access members 1291 of the currently open class. 1292 (finish_class_member_access_expr): Likewise. 1293 12942004-01-15 Alexandre Oliva <aoliva@redhat.com> 1295 1296 PR c++/13659 1297 * name-lookup.c (validate_nonmember_using_decl): Take scope and 1298 name by value, instead of computing them. 1299 (do_local_using_decl, do_toplevel_using_decl): Add scope and name 1300 arguments. Pass them to validate_nonmember_using_decl. 1301 * name-lookup.h (do_local_using_decl): Adjust. 1302 (do_toplevel_using_decl): Likewise. 1303 * parser.c (cp_parser_using_declaration): Likewise. 1304 * pt.c (tsubst_expr): Likewise. 1305 13062004-01-15 Alexandre Oliva <aoliva@redhat.com> 1307 1308 PR c++/13594 1309 PR c++/13658 1310 * name-lookup.c (qualified_lookup_using_namespace): Search 1311 strongly-associated namespaces first, and only then try other 1312 namespaces. 1313 13142004-01-15 Kelley Cook <kcook@gcc.gnu.org> 1315 1316 * Make-lang.in (c++.srcextra): Dummy entry. 1317 13182004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1319 1320 PR c++/8856 1321 * parser.c (cp_parser_template_name): Don't try to parse a 1322 conversion-function-id, as it cannot be a template-name. 1323 (cp_parser_simple_type_specifier): Check for invalid template-ids 1324 even after a built-in type. 1325 13262004-01-14 Jan Hubicka <jh@suse.cz> 1327 1328 PR c++/12850 1329 * pt.c (instantiate_decl): Do not increase function_depth. 1330 13312004-01-14 Danny Smith <dannysmith@users,sourceforge.net> 1332 1333 PR c++/9021 1334 PR c++/11005 1335 * parser.c (cp_parser_elaborated_type_specifier): Warn about 1336 attributes and discard. 1337 * decl.c (xref_tag): Don't overwite existing attributes with 1338 NULL_TREE. 1339 13402004-01-14 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1341 1342 PR c++/12335 1343 * parser.c (cp_parser_lookup_name): Return error_mark_node if there 1344 is no destructor while looking up a BIT_NOT_EXPR. 1345 13462004-01-13 Ian Lance Taylor <ian@wasabisystems.com> 1347 1348 * cxxfilt.c: Remove unused file. 1349 13502004-01-14 Jan Hubicka <jh@suse.cz> 1351 1352 Partial fix to PR c++/12850 1353 * decl2.c (mark_used): Do not proactively instantiate templates 1354 when compiling in unit-at-a-time or not optimizing. 1355 * optimize.c (maybe_clone_body): Do not increase function depth. 1356 13572004-01-13 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1358 1359 PR c++/13474 1360 * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking. 1361 13622003-01-12 Steven Bosscher <stevenb@suse.de> 1363 1364 PR c++/13558 1365 * parser.c (cp_parser_member_declaration): Any non-type is also 1366 not a class or a function. 1367 13682004-01-12 Jason Merrill <jason@redhat.com> 1369 1370 PR c++/12815 1371 * class.c (build_base_path): Do not mark vtable references as 1372 TREE_CONSTANT. 1373 (build_vtbl_ref_1): Likewise. 1374 13752004-01-12 Richard Henderson <rth@redhat.com> 1376 1377 PR opt/10776 1378 * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New. 1379 (store_init_value): Use it. 1380 * decl.c (check_initializer): Expect full initialization code 1381 from store_init_value. 1382 * init.c (expand_aggr_init_1): Likewise. 1383 * decl2.c (maybe_emit_vtables): Abort if runtime init needed. 1384 13852004-01-12 Mark Mitchell <mark@codesourcery.com> 1386 1387 * class.c (layout_class_type): For non-POD class types, also copy 1388 the DECL_SIZE and DECL_MODE of fields to the base class type. 1389 13902004-01-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1391 1392 PR c++/13289 1393 * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before 1394 calling regenerate_decl_from_template. 1395 13962004-01-12 Scott Brumbaugh <scottb.lists@verizon.net> 1397 1398 PR c++/4100 1399 * parser.c (cp_parser_decl_specifier_seq): Add check for a friend 1400 decl-specifier occurring along with a class definition. 1401 14022004-01-12 Ian Lance Taylor <ian@wasabisystems.com> 1403 1404 * parser.c (cp_parser_decl_specifier_seq): Add parenthetical 1405 clauses to comments describing declares_class_or_enum. 1406 (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not 1407 false. 1408 14092004-01-12 Jan Hubicka <jh@suse.cz> 1410 1411 * pt.c (for_each_template_parm): Do not check for duplicates. 1412 (for_each_template_parm): Use walk_tree duplicate checking code. 1413 14142004-01-11 Ian Lance Taylor <ian@wasabisystems.com> 1415 1416 PR c++/3478 1417 * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec 1418 is error_mark_node, don't add any more decl_specs. 1419 (cp_parser_init_declarator): After committing to a declaration, if 1420 the decl_specifiers start with error_mark_node, issue an error and 1421 change the type to "int". 1422 14232004-01-09 Nathanael Nerode <neroden@gcc.gnu.org> 1424 1425 PR bootstrap/7817 1426 * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so. 1427 14282004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1429 1430 DR 337 1431 PR c++/9256 1432 * pt.c (tsubst): Substitution must fail if we are attempting to 1433 create an array with element type that is an abstract class type. 1434 * decl.c (cp_finish_decl): Strip pointers and array types recursively 1435 before calling abstract_virtuals_error. 1436 14372004-01-09 Alexandre Oliva <aoliva@redhat.com> 1438 1439 * name-lookup.c (qualified_lookup_using_namespace): Consider 1440 strong using directives even if we've already found a binding. 1441 14422004-01-09 Mark Mitchell <mark@codesourcery.com> 1443 1444 * cp-tree.h (cxx_expand_expr): Change prototype. 1445 * expr.c (cxx_expand_expr): Add alt_rtl parameter. 1446 14472004-01-08 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1448 1449 PR c++/12573 1450 * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by 1451 looking into them recursively. They can be there because of the 1452 new __offsetof__ extension. 1453 14542004-01-07 Zack Weinberg <zack@codesourcery.com> 1455 1456 * parser.c (cp_parser_save_member_function_body): Mark the 1457 definition static. 1458 14592004-01-05 Mark Mitchell <mark@codesourcery.com> 1460 1461 PR c++/13057 1462 * class.c (build_clone): Copy type attributes from the original 1463 function to the clone. 1464 1465 PR c++/12815 1466 * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable 1467 references as constant. 1468 1469 PR c++/12132 1470 * parser.c (cp_parser_explicit_instantiation): Improve error 1471 recovery. 1472 (cp_parser_require): Improve indication of the error location. 1473 1474 PR c++/13451 1475 * parser.c (cp_parser_class_head): Reorder logic to check for 1476 invalid qualification. 1477 14782004-01-04 Mark Mitchell <mark@codesourcery.com> 1479 1480 PR c++/13157 1481 * name-lookup.c (lookup_using_namespace): Remove spacesp 1482 parameter. 1483 (unqualified_namespace_lookup): Likewise. 1484 (lookup_qualified_name): Adjust accordingly. 1485 (lookup_name_real): Likewise. 1486 (lookup_arg_dependent): Do not eliminate the namespace of the 1487 functions found by unqualified name lookup unless that is the 1488 current namespace. 1489 14902004-01-04 Andrew Pinski <pinskia@physics.uc.edu> 1491 1492 * semantics.c (push_deferring_access_checks): Fix format. 1493 (resume_deferring_access_checks): Likewise. 1494 (stop_deferring_access_checks): Likewise. 1495 (pop_deferring_access_checks): Likewise. 1496 (get_deferred_access_checks): Likewise. 1497 (pop_to_parent_deferring_access_checks): Likewise. 1498 (perform_deferred_access_checks): Likewise. 1499 (perform_or_defer_access_check): Likewise. 1500 15012004-01-04 Richard Henderson <rth@redhat.com> 1502 1503 * call.c (build_over_call): Don't create a save_expr of an 1504 aggregate, but rather its address. 1505 15062004-01-04 Mark Mitchell <mark@codesourcery.com> 1507 1508 PR c++/13529 1509 * parser.c (cp_parser_postfix_expression): Allow "." to appear in 1510 an offsetof expression. 1511 1512 * parser.c (cp_parser_parameter_declaration): Fix comment. 1513 1514 PR c++/12226 1515 * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro. 1516 (reference_binding): Set it when appropriate. 1517 (build_temp): New function, split out from ... 1518 (convert_like_real): ... here. Honor CHECK_COPY_CONSTRUCTOR_P. 1519 (initialize_reference): Likewise. 1520 1521 PR c++/13536 1522 * parser.c (cp_parser): Add in_type_id_in_expr_p. 1523 (cp_parser_new): Initialize it. 1524 (cp_parser_postfix_expression): Set it. 1525 (cp_parser_sizeof_operand): Likewise. 1526 (cp_parser_parameteR_declaration): Do not commit early to tenative 1527 parsers when in_type_id_in_expr_p is set. 1528 15292004-01-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1530 1531 PR c++/13094 1532 * parser.c (cp_parser_template_argument): Don't call 1533 make_unbound_class_template directly. 1534 (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from 1535 UNBOUND_CLASS_TEMPLATE tree node. 1536 15372004-01-02 Richard Sandiford <rsandifo@redhat.com> 1538 1539 PR target/12729 1540 * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr. 1541 15422004-01-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1543 1544 PR c++/13520 1545 * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro. 1546 (DECL_FUNCTION_TEMPLATE_P): Use it. 1547 (DECL_CLASS_TEMPLATE_P): Likewise. 1548 * parser.c (cp_parser_lookup_name): Add is_template parameter. 1549 (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name. 1550 (cp_parser_template_name): Likewise. 1551 (cp_parser_elaborated_type_specifier): Likewise. 1552 (cp_parser_namespace_name): Likewise. 1553 (cp_parser_class_name): Likewise. 1554 (cp_parser_lookup_name_simple): Likewise. 1555 1556See ChangeLog.3 for earlier changes. 1557