12005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net> 2 3 * cxx-pretty-print.c (pp_cxx_constant): New. Print 4 string-literal in parens if input program says so. 5 (pp_cxx_primary_expression): Hand off constant printing to 6 pp_cxx_constant. 7 (pp_cxx_pretty_printer_init): Set pp->c_base.constant. 8 (pp_cxx_expression): Use pp_cxx_constant for literals. 9 * error.c (dump_expr): Use pp_constant for literals. 10 112005-12-29 Nathan Sidwell <nathan@codesourcery.com> 12 13 * method.c (make_thunk): Don't set comdat_linkage here. 14 (use_thunk): Make thunk one only here, if thunk target is 15 DECL_ONE_ONLY. 16 172005-12-26 Mark Mitchell <mark@codesourcery.com> 18 19 PR c++/25439 20 * decl.c (grokdeclarator): Remove dead code. 21 * ptree.c (cxx_print_xnode): Handle BASELINK. 22 * parser.c (make_id_declarator): Add sfk parameter. 23 (cp_parser_direct_declarator): Do not pass TYPE_DECLs to 24 make_id_declarator. 25 (cp_parser_declarator_id): Simplify BASELINKs here. 26 (cp_parser_member_declaration): Adjust calls to 27 make_id_declarator. 28 292005-12-26 Mark Mitchell <mark@codesourcery.com> 30 31 PR c++/23171, c++/23172, c++/25417. 32 * typeck.c (build_unary_op): Create temporary variables for 33 compound literals whose addresses are taken. 34 * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P. 35 * decl.c (reshape_init_vector): Likewise. 36 (reshape_init): Give it external linkage. 37 (check_initializer): Use COMPOUND_LITERAL_P. 38 (initialize_artificial_var): Allow the initializer to be a 39 CONSTRUCTOR. 40 * call.c (make_temporary_var_for_ref_to_temp): Use 41 create_temporary_var. 42 * cp-tree.h (COMPOUND_LITERAL_P): New macro. 43 (rehape_init): Declare. 44 * typeck2.c (digest_init): Use COMPOUND_LITERAL_P. 45 * semantics.c (finish_compound_literal): Use reshape_init. 46 472005-12-23 Mark Mitchell <mark@codesourcery.com> 48 49 PR c++/24671 50 * pt.c (instantiate_template): Handle SFINAE. 51 522005-12-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 53 54 * decl.c (grokdeclarator): Improve diagnostic for friend 55 declarations of class members. 56 572005-12-22 Mark Mitchell <mark@codesourcery.com> 58 59 PR c++/25369 60 * tree.c (really_overloaded_fn): Tweak comment. 61 * pt.c (tsubst_call_declarator_parms): Remove. 62 (tsubst_copy): Call mark_used on the member referenced by an 63 OFFSET_REF. 64 * semantics.c (finish_qualified_id_expr): Simplify. 65 * decl2.c (mark_used): Accept BASELINKs. 66 67 PR c++/25364 68 * typeck.c (build_unary_op): Pass DECLs not names to 69 build_offset_refs. 70 * init.c (build_offset_ref): Do not do name lookup. Do not call 71 mark_used. 72 * call.c (build_call): Simplify and tidy. 73 * semantics.c (finish_qualified_id_expr): Call mark_used. 74 752005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 76 77 PR c++/23333 78 * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to 79 identify a single '0'. 80 812005-12-20 Mark Mitchell <mark@codesourcery.com> 82 83 PR c++/21228 84 * decl.c (use_eh_spec_block): New function. 85 (store_parm_decls): Use it. 86 (finish_function): Likewise. 87 882005-12-19 Mark Mitchell <mark@codesourcery.com> 89 90 PR c++/24278 91 * init.c (expand_member_init): Print messages about baseclasses 92 using %T rather than %D. 93 94 PR c++/24915 95 * class.c (add_method): Do not treat templates as identical unless 96 their return types are the same. 97 982005-12-12 Mark Mitchell <mark@codesourcery.com> 99 100 PR c++/25300 101 * tree.c (build_qualified_name): Return error_mark_node for 102 erroneous input. 103 1042005-12-10 Mark Mitchell <mark@codesourcery.com> 105 106 PR c++/25337 107 * pt.c (tsubst_copy_and_build): Permit dependent types for the 108 object in a class member access expression. 109 1102005-12-10 Terry Laurenzo <tlaurenzo@gmail.com> 111 112 PR java/9861 113 * mangle.c (write_bare_function_type): Mangle return type for 114 methods of Java classes 115 1162005-12-08 Théodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 117 118 * call.c (build_conditional_expr): Print types in error messages. 119 1202005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 121 122 * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort. 123 1242005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 125 126 * cp-gimplify.c (gimplify_cp_loop): Use fold_build3. 127 1282005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 129 130 * Make-lang.in (c++.all.build, c++.install-normal): Remove. 131 1322005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 133 134 * Make-lang.in: Remove all dependencies on s-gtype. 135 1362005-12-06 Aldy Hernandez <aldyh@redhat.com> 137 138 PR C++/24138 139 * decl.c (reshape_init_array_1): Handle max_index of -1. 140 1412005-12-06 Roger Sayle <roger@eyesopen.com> 142 143 * typeck.c (build_binary_op): Issue warning if either operand of a 144 comparison operator is a string literal, except for testing equality 145 or inequality against NULL. 146 1472005-12-06 Roger Sayle <roger@eyesopen.com> 148 149 PR c++/25263 150 * decl.c (compute_array_index_type): Check that itype is an 151 INTEGER_CST node before testing/clearing TREE_OVERFLOW. 152 1532005-12-05 Daniel Berlin <dberlin@dberlin.org> 154 155 * ptree.c (cxx_print_decl): Update to check for decl_common 156 structure. 157 1582005-12-02 Mark Mitchell <mark@codesourcery.com> 159 160 PR c++/24173 161 * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after 162 clobbering newdecl. 163 1642005-12-02 Richard Guenther <rguenther@suse.de> 165 166 * semantics.c (simplify_aggr_init_expr): Use buildN instead 167 of build. 168 1692005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net> 170 171 * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of 172 ggc_realloc. 173 (cp_parser_template_argument_list): Use XRESIZEVEC instead of 174 xrealloc. 175 * class.c (pushclass): Likewise. 176 1772005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net> 178 179 * decl2.c (get_priority_info): Use XNEW, not xmalloc. 180 * decl.c (push_switch): Likewise. 181 * lex.c (handle_pragma_implementation): Likewise. 182 * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW, 183 not ggc_alloc. 184 (cxx_initialize_diagnostics): Use XNEW, not xmalloc. 185 * class.c (init_class_processing): Use XNEWVEC, not xmalloc. 186 * g++spec.c (lang_specific_driver): Likewise. 187 * mangle.c (save_partially_mangled_name): Likewise. 188 * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc. 189 (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc. 190 (cp_parser_sizeof_operand): Likewise. 191 * repo.c (open_repo_file, open_repo_file): Likewise. 192 1932005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net> 194 195 * parser.c (cp_parser_make_typename_type): Call make_typename_type 196 with tf_none instead of magic value 0. 197 (cp_parser_explicit_instantiation): Call do_type_instantiation 198 with tf_error instead of magic value 1. 199 (cp_parser_elaborated_type_specifier): Call make_typename_type 200 with tf_error instead of magic value 1. 201 (cp_parser_class_name): Likewise. 202 (cp_parser_lookup_name): Likewise. 203 2042005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net> 205 206 * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF, 207 not RID_MAX. 208 2092005-11-30 Jason Merrill <jason@redhat.com> 210 211 PR c++/21123 212 * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference 213 parms in a thunk. 214 2152005-11-30 Ben Elliston <bje@au.ibm.com> 216 217 * typeck.c (build_x_unary_op): Correct spelling in error message. 218 2192005-11-28 Nathan Sidwell <nathan@codesourcery.com> 220 221 PR c++/21166 222 * class.c (check_field_decls): Only set DECL_PACKED on a field 223 when its natural alignment is > BITS_PER_UNIT. 224 2252005-11-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 226 227 PR c++/24979 228 * cp-tree.h (DECL_MAIN_P): Remove duplicate definition. 229 2302005-11-26 Richard Henderson <rth@redhat.com> 231 232 * lex.c: Update for pragma_lex rename. 233 * parser.c: Likewise. 234 2352005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 236 237 PR c++/9278 238 * decl.c (grokparms): Do not allow typedef-names in a '(void)' 239 parmlist. 240 2412005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 242 243 * typeck2.c (process_init_constructor_union): Remove check for 244 unnamed union members. 245 2462005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 247 248 * name-lookup.c (lookup_name_real): Merge two if's. 249 2502005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 251 252 * pt.c (instantiate_class_template): Clean-up. 253 2542005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 255 256 * pt.c (template_class_depth_real): Remove. Move functionality to ... 257 (template_class_depth): ... here, replacing count_specializations 258 with 0. Adjust comment. 259 2602005-11-24 Richard Guenther <rguenther@suse.de> 261 Dirk Mueller <dmueller@suse.de> 262 263 PR c++/14024 264 * typeck.c (build_reinterpret_cast_1): Use 265 strict_aliasing_warning. 266 2672005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net> 268 269 PR c++/24235 270 * pt.c (check_instantiated_args): Reword diagnostic message about 271 template argument involving local types. 272 2732005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net> 274 275 PR c++/21667 276 * typeck.c (build_array_ref): Avoid code duplicate. Use common 277 C/C++ diagnostic function warn_array_subscript_with_type_char. 278 2792005-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 280 281 PR c++/22238 282 * error.c (resolve_virtual_fun_from_obj_type_ref): New. 283 (dump_expr): Use it in <case CALL_EXPR>. 284 2852005-11-21 Richard Henderson <rth@redhat.com> 286 287 * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch. 288 289 * name-lookup.c (lookup_name): Remove prefer_type argument. 290 (lookup_name_prefer_type): New. 291 * decl.c (lookup_and_check_tag): Use them. 292 * pt.c (tsubst_friend_class): Likewise. 293 (lookup_template_class): Likewise. 294 (tsubst_copy_and_build): Likewise. 295 * name-lookup.h (lookup_name_prefer_type): New. 296 (lookup_name): Remove declaration. 297 2982005-11-18 Mark Mitchell <mark@codesourcery.com> 299 300 PR c++/8355 301 * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling 302 set_decl_namespace. 303 * name-lookup.c (set_decl_namespace): 304 3052005-11-18 Mike Stump <mrs@apple.com> 306 307 * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add. 308 * name-lookup.c (lookup_name_two): Remove. 309 (lookup_name_one): Add. 310 * name-lookup.h (lookup_name_two): Remove. 311 (lookup_name_one): Add. 312 3132005-11-15 Jason Merrill <jason@redhat.com> 314 315 PR c++/24580 316 * method.c (locate_copy): Also use skip_artificial_parms here. 317 (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking 318 for RECORD_TYPE. 319 (locate_ctor): Abort if we fail to find a default constructor. 320 3212005-11-15 Mike Stump <mrs@apple.com> 322 323 * name-lookup.c (lookup_name_two): Add. 324 * name-lookup.h: Likewise. 325 3262005-11-15 Mark Mitchell <mark@codesourcery.com> 327 328 PR c++/24667 329 * typeck.c (check_for_casting_away_constness): Use the diag_fn. 330 (build_const_cast_1): Call it, for C-style casts. 331 3322005-11-14 Mark Mitchell <mark@codesourcery.com> 333 334 PR c++/24687 335 * pt.c (check_explicit_specialization): Don't check for C linkage. 336 (push_template_decl_real): Likewise. 337 * parser.c (cp_parser_explicit_specialization): Check here. 338 (cp_parser_template_declaration_after_export): And here. 339 340 * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword 341 field. 342 3432005-11-14 Jason Merrill <jason@redhat.com> 344 345 PR c++/24580 346 * method.c (locate_ctor): Skip all artificial parms, not just 347 'this'. 348 3492005-11-14 Mark Mitchell <mark@codesourcery.com> 350 351 * parser.c (eof_token): Add initializer for ambiguous_p. 352 3532005-11-13 Mark Mitchell <mark@codesourcery.com> 354 355 PR c++/24817 356 * decl.c (check_redeclaration_exception_specification): New 357 function. 358 (duplicate_decls): Use it. 359 * error.c (fndecl_to_string): Print the template parameter list. 360 361 PR c++/20293 362 * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes 363 for namespaces. 364 (pp_cxx_original_namespace_definition): Likewise. 365 * name-lookup.c (ambiguous_decl): Don't issue error messages; 366 instead return lists of ambiguous candidates. 367 (select_decl): Handle ambiguous namespace lookups. 368 * parser.c (cp_token): Add ambiguous_p. 369 (cp_lexer_get_preprocessor_token): Set it. 370 (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages 371 when a qualified name uses an invalid scope. 372 (cp_parser_primary_expression): Print ambiguous candidates. 373 (cp_parser_type_parameter): Adjust comment to reflect new 374 parameter name for cp_parser_lookup_name. 375 (cp_parser_template_argument): Likewise. 376 (cp_parser_elaborated_type_specifier): Likewise. 377 (cp_parser_namespace_name): Likewise. 378 (cp_parser_class_name): Print ambiguous candidates. 379 (cp_parser_lookup_name): Rename ambiguous_p parameter to 380 ambiguous_decls. Use it to return a list of ambiguous candiates 381 when a lookup is ambiguous. 382 (cp_parser_lookup_name_simple): Adjust comment to reflect new 383 parameter name for cp_parser_lookup_name. 384 3852005-11-12 Jakub Jelinek <jakub@redhat.com> 386 387 PR c++/24780 388 * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING 389 and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants 390 of array type. 391 392 PR c++/24761 393 * pt.c (tsubst_copy_asm_operands): New function. 394 (tsubst_expr) <case ASM_EXPR>: Use it. 395 3962005-11-08 Jakub Jelinek <jakub@redhat.com> 397 398 PR c++/19450 399 * decl.c (redeclaration_error_message): Issue diagnostics about 400 olddecl and newdecl disagreement on __thread property. 401 (grokdeclarator): Set DECL_TLS_MODEL on class static variables. 402 4032005-11-08 Jason Merrill <jason@redhat.com> 404 405 PR c++/21123 406 * method.c (use_thunk): Use build_cplus_new instead of 407 force_target_expr. 408 4092005-11-06 Jason Merrill <jason@redhat.com> 410 James A. Morrison <phython@gcc.gnu.org> 411 412 PR c++/17256 413 * decl2.c (cp_finish_file): Fix conditions for undefined warning. 414 Set TREE_NO_WARNING instead of TREE_PUBLIC. 415 * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid 416 a warning on a function we didn't instantiate because of excessive 417 recursion. 418 4192005-11-06 Mark Mitchell <mark@codesourcery.com> 420 421 * class.c (record_subobject_offsets): Don't record offsets past 422 biggest empty class for non-empty base classes. 423 (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when 424 keeping track of the size of emptyclasses. 425 426 PR c++/21308 427 * class.c (sizeof_biggest_empty_class): New variable. 428 (record_subobject_offsets): Don't record offsets past biggest 429 empty class for data members. Replace vbases_p parameter with 430 is_data_member parameter. 431 (build_base_field): Adjust call. 432 (layout_class_type): Likewise. Maintain 433 sizeof_biggest_empty_class. 434 4352005-11-05 Kazu Hirata <kazu@codesourcery.com> 436 437 * decl2.c, init.c, typeck.c: Fix comment typos. 438 4392005-11-04 Richard Guenther <rguenther@suse.de> 440 441 PR c++/22487 442 * init.c (build_vec_init): Build comparison of matching 443 types. 444 4452005-11-03 Josh Conner <jconner@apple.com> 446 447 PR c++/19989 448 pt.c (tsubst): Accept zero-length array if tf_error is set 449 in complain flags. Change error message for negative- 450 length array. 451 4522005-11-04 Joseph S. Myers <joseph@codesourcery.com> 453 454 * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list* 455 parameter. 456 4572005-11-03 Joseph S. Myers <joseph@codesourcery.com> 458 459 PR c++/17964 460 * error.c (cp_cpp_error): New function. 461 * cp-tree.h (cp_cpp_error): Declare. 462 * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic 463 and error callback after lexing. 464 4652005-11-03 Mark Mitchell <mark@codesourcery.com> 466 467 PR c++/21627 468 * pt.c (register_specialization): Update inline flags on clones.y 469 4702005-11-03 Andrew Pinski <pinskia@physics.uc.edu> 471 472 PR c++/24582 473 * decl.c (declare_local_label): Return 0 for variables 474 with error_mark_node as their types. 475 4762005-11-02 Mark Mitchell <mark@codesourcery.com> 477 478 PR c++/22434 479 * call.c (build_conditional_expr): Do bad conversions, if there's 480 no other choice. 481 482 PR c++/24560 483 * parser.c (cp_parser_postfix_dot_deref_expression): Improve error 484 message for use of overloaded functions on LHS of "." operator. 485 486 PR c++/19253 487 * parser.c (cp_parser_postfix_expression): Use 488 cp_parser_elaborated_type_specifier to handle typename-types in 489 functional casts. 490 (cp_parser_enclosed_argument_list): Skip ahead to the end of the 491 template argument list if the closing ">" is not found. 492 493 PR c++/24569 494 * pt.c (instantiate_decl): Use cp_finish_decl, not 495 finish_static_data_member_decl. 496 4972005-10-28 Andrew Pinski <pinskia@physics.uc.edu> 498 499 * decl.c (grokfndecl): Remove the setting 500 of the return type of the function type 501 of main after erroring about must returning 502 int. 503 5042005-10-28 Andrew Pinski <pinskia@physics.uc.edu> 505 506 PR C++/23229 507 * decl.c (grokfndecl): Create a new function type 508 after erroring out about main not returning int. 509 5102005-10-28 Josh Conner <jconner@apple.com> 511 512 PR c++/22153 513 * parser.c (cp_parser_member_declaration): Detect and handle 514 a template specialization. 515 5162005-10-28 Andrew Pinski <pinskia@physics.uc.edu> 517 518 PR C++/23426 519 * decl.c (start_decl): Check that the decl is an 520 error_mark_node before getting the type. 521 Remove the check for the decl's type being an 522 error_mark_node. 523 5242005-10-21 Mark Mitchell <mark@codesourcery.com> 525 526 PR c++/24260 527 * parser.c (cp_parser_init_declarator): Pass attributes to 528 grokfield. 529 5302005-10-20 Mark Mitchell <mark@codesourcery.com> 531 532 PR c++/22618 533 * search.c (accessible_p): Check access in the outermost set of 534 template parameters. 535 5362005-10-20 Richard Guenther <rguenther@suse.de> 537 538 * decl.c (grokdeclarator): Fix ambiguous pedwarn message. 539 5402005-10-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 541 542 PR c++/22293 543 * decl.c (grokdeclarator): Reject unqualified destructors in 544 friend declarations. 545 5462005-10-18 Mark Mitchell <mark@codesourcery.com> 547 548 PR c++/23293 549 * pt.c (convert_template_argument): Use canonical type variants in 550 template specializations. 551 5522005-10-18 Nathan Sidwell <nathan@codesourcery.com> 553 554 PR c++/21383 555 * name-lookup.c (arg_assoc): Template args can be null in a 556 template-id-expr. 557 558 PR c++/22604 559 * class.c (update_vtable_entry_for_fn): Don't process invalid 560 covariant overriders. 561 562 PR c++/23118 563 * cp-tree.h (add_method): Add return value. 564 * class.c (add_method): Return success indicator. 565 * semantics.c (finish_member_declaration): Don't add an invalid 566 method to the method list. 567 5682005-10-17 Mark Mitchell <mark@codesourcery.com> 569 570 PR c++/21908 571 * call.c (build_new_method_call): Do not show VTT parameters to 572 the user. 573 5742005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 575 576 PR c++/23440 577 * parser.c (cp_parser_statement): If the parser reached CPP_EOF, 578 only complain about missing statement. 579 5802005-10-17 Nathan Sidwell <nathan@codesourcery.com> 581 582 PR c++/24386 583 * cp-tree.h (BASELINK_QUALIFIED_P): New. 584 * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it. 585 * typeck.c (finish_class_member_access_expr): Set it. 586 587 PR c++/21353 588 * decl.c (check_default_argument): Don't check 589 processing_template_decl or uses_template_parms here. 590 (grokparms): Only call check_default_argument when not processing 591 a template decl. 592 * parser.c (cp_parser_late_parsing_default_arg): Call 593 check_default_argument when not processing a template decl. 594 5952005-10-16 Mark Mitchell <mark@codesourcery.com> 596 597 PR c++/24389 598 * decl2.c (mark_used): Use uses_template_parms instead of 599 dependent_type_p. 600 * init.c (constant_value_1): Handle uninstantiated templates 601 specially. 602 * pt.c (instantiate_decl): Add sanity check. 603 6042005-10-16 Mark Mitchell <mark@codesourcery.com> 605 606 PR c++/22173 607 * typeck.c (check_template_keyword): Fix thinko. 608 6092005-10-16 Andrew Pinski <pinskia@physics.uc.edu> 610 611 PR c++/23959 612 * decl.c (pop_switch): Only call c_do_switch_warnings 613 when not processing templates. 614 6152005-10-16 Mark Mitchell <mark@codesourcery.com> 616 617 PR c++/22173 618 * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro. 619 (check_template_keyword): New function. 620 (finish_id_expression): Change prototoype. 621 (finish_qualified_id_expr): Change prototype. 622 (build_qualified_name): New function. 623 (finish_class_member_access_expr): Change prototype. 624 * init.c (build_offset_ref): Use build_qualified_name. 625 * mangle.c (write_expression): Likewise. 626 * parser.c (cp_parser_primary_expression): Remove qualifying_class 627 parameter. Add address_p and template_arg_p. Use 628 build_qualified_name. 629 (cp_parser_id_expression): Default *template_p to 630 template_keyword_p. Check for invalid uses of the template 631 keyword. 632 (cp_parser_postfix_expression): Eliminate special handling for 633 qualified names. Adjust call to cp_parser_primary_expression. 634 (cp_parser_postfix_dot_deref_expression): Adjust call to 635 cp_parser_id_expression and finish_class_member_access_expr. 636 (cp_parser_template_argument_list): Add comment. 637 (cp_parser_template_argument): Adjust use of 638 cp_parser_primary_expression. Remove call to 639 finish_qualified_id_expr. 640 (cp_parser_lookup_name): Use build_qualified_name. 641 * pt.c (tsubst): Use build_qualified_name. 642 (tsubst_qualified_id): Likewise. Adjust call to 643 finish_qualified_id_expr. 644 (tsubst_copy): Use build_qualified_name. 645 (tsubst_copy_and_build): Adjusts call to finish_id_expression and 646 finish_class_member_access_expr. 647 * semantics.c (finish_non_static_data_member): Use 648 build_qualified_name. 649 (finish_qualified_id_expr): Add template_p and template_arg_p 650 parameters. 651 (finish_id_expression): Remove qualifiying_class parameter. Add 652 template_p, done, address_p, and template_arg_p. Use 653 build_qualified_name. Adjust calls to 654 finish_class_member_acess_expr. 655 * tree.c (build_qualified_name): New function. 656 * typeck.c (check_template_keyword): New function. 657 (finish_class_member_access_expr): Add template_p argument. Check 658 for invalid uses of the template keyword. 659 6602005-10-15 Mark Mitchell <mark@codesourcery.com> 661 662 PR c++/21347 663 * class.c (maybe_warn_about_overly_private_class): Lazy 664 constructors are public. 665 6662005-10-14 Mark Mitchell <mark@codesourcery.com> 667 668 PR c++/19565 669 * call.c (convert_like_real): Rely on convert_and_check to issue 670 warnings about overflow and conversion to unsigned. 671 * decl.c (finish_enum): Use the location of the enumerators, not 672 the closing brace of the enumeration, when reporting warnings 673 about conversions. 674 (build_enumerator): Use error_mark_node for erroneous values. 675 * typeck2.c (digest_init): Remove reference to "signature pointer" 676 from comment. 677 6782005-10-14 Nathan Sidwell <nathan@codesourcery.com> 679 680 PR c++/17796 681 * optimize.c (update_cloned_parm): Add FIRST parameter. Use it. 682 (maybe_clone_body): Track the first clone. 683 6842005-10-13 Nathan Sidwell <nathan@codesourcery.com> 685 686 PR c++/23984 687 * class.c (build_base_path): The vtable is always the first thing 688 in the vtt. 689 6902005-10-13 Mark Mitchell <mark@codesourcery.com> 691 692 PR c++/20721 693 * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro. 694 * decl.c (duplicate_decls): Merge it into new declarations. 695 (decl_jump_unsafe): Use it, rather than DECL_INITIAL. 696 (cp_finish_decl): Set it, when appropriate. 697 698 PR c++/22180 699 * call.c (build_new_method_call): Correct pretty-printing of 700 destructor names. 701 * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an 702 identifier. 703 704 PR c++/23694 705 * decl.c (start_method): Return error_mark_node for errors. 706 707 PR c++/23307 708 * pt.c (push_template_decl_real): Complain about attempts to 709 declare template variables. 710 711 PR c++/22352 712 * pt.c (tsubst_template_parms): Set processing_template_decl while 713 processing the parameters. 714 (tsubst_decl): Set processing_template_decl when substituting into 715 a TEMPLATE_DECL. 716 717 PR c++/22405 718 * pt.c (most_specialized_instantiation): Robustify. 719 720 PR c++/22464 721 * semantics.c (finish_id_expression): Issue errors about uses of 722 local variables in containing functions even in templates. 723 7242005-10-12 Danny Smith <dannysmith@users.sourceforge.net> 725 726 PR target/21801 727 PR target/23589 728 * class.c (finish_struct_1): Call 729 targetm.cxx.adjust_class_at_definition. 730 731 7322005-10-12 Nathan Sidwell <nathan@codesourcery.com> 733 734 PR c++/21592 735 * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF 736 with already looked up member functions. Assert we're not 737 returning a NON_DEPENDENT_EXPR with unknown type. 738 * typeck.c (finish_class_member_access_expr): We can get 739 non-template-id-expr baselinks. If the lookup finds a baselink, 740 remember it even inside templates. 741 742 PR c++/23797 743 * parser.c (cp_parser_functional_cast): Cope when TYPE is not a 744 TYPE_DECL. Use dependent_type_p to check type. 745 * pt.c (uses_template_parms_p): Use dependent_type_p for a 746 TYPE_DECL. 747 (type_dependent_expression_p): Assert we've not been given a 748 TYPE_DECL. 749 750 PR c++/21117 751 * decl.c (check_function_type): Correctly overwrite incomplete 752 return type with void type. 753 * typeck.c (check_return_expr): If the function's return type is 754 void, don't try and convert a return expr. 755 7562005-10-12 David Edelsohn <edelsohn@gnu.org> 757 758 PR c++/23730 759 * call.c (build_object_call): If BINFO is NULL, bypass 760 lookup_fnfields and set fns to NULL_TREE. 761 7622005-10-12 Paolo Bonzini <bonzini@gnu.org> 763 764 PR c++/24052 765 * error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print 766 an ADDR_EXPR of a LABEL_DECL as &&. 767 7682005-10-12 Nathan Sidwell <nathan@codesourcery.com> 769 770 PR c++/19964 771 * class.c (walk_subobject_offsets): Don't walk error_mark_node. 772 7732005-10-11 Ian Lance Taylor <ian@airs.com> 774 775 PR c++/8057 776 * cvt.c (convert_to_void): Don't warn about unused values when 777 processing a template declaration. 778 7792005-10-11 Mark Mitchell <mark@codesourcery.com> 780 781 PR c++/21089 782 * call.c (convert_like_real): Use decl_constant_value, not 783 integral_constant_value. 784 * init.c (constant_value_1): New function. 785 (integral_constant_value): Use it. 786 (decl_constant_value): Likewise. 787 * typeck.c (decay_conversion): Use decl_constant_value, not 788 integral_constant_value. 789 790 PR c++/21369 791 * parser.c (cp_parser_elaborated_type_specifier): Don't treat 792 class types as templates if the type is not appearing as part of a 793 type definition or declaration. 794 7952005-10-10 Mark Mitchell <mark@codesourcery.com> 796 797 PR c++/24277 798 * pt.c (instantiate_decl): Call finish_static_data_member_decl for 799 static data members. 800 8012005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org> 802 Mark Mitchell <mark@codesourcery.com> 803 804 PR c++/23437 805 * parser.c (cp_parser_template_argument_list): Do not treat 806 contents of argument list as part of a constant expression. 807 8082005-10-10 Mark Mitchell <mark@codesourcery.com> 809 810 PR c++/24139 811 * decl.c (grokdeclarator): Do not require template parameter lists 812 for explicitly specialized class. 813 * error.c (dump_aggr_type): Do not dump template arguments for 814 non-primary specializations. 815 (dump_function_name): Likewise. 816 817 PR c++/24275 818 * pt.c (instantiate_decl): Instantiate the initializer of 819 a static data member in the namespace containing the class 820 containing the static data member. 821 8222005-10-08 James A. Morrison <phython@gcc.gnu.org> 823 824 PR c++/22172 825 * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype 826 scopes as nondependent. 827 8282005-10-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 829 830 * call.c (resolve_args): Remove redundant test. 831 8322005-10-05 Paolo Bonzini <bonzini@gnu.org> 833 834 PR tree-optimization/21419 835 PR tree-optimization/24146 836 PR tree-optimization/24151 837 838 * semantics.c (finish_asm_stmt): Call readonly_error if outputs are 839 read-only. Set ASM_VOLATILE_P for asms without outputs. 840 8412005-10-05 Nathan Sidwell <nathan@codesourcery.com> 842 843 PR c++/23513 844 * call.c (joust): Adjust length count to more_specialized_fn. 845 * pt.c (more_specialized_fn): Cope with non-static member vs 846 non-member. 847 8482005-10-04 Andrew Pinski <pinskia@physics.uc.edu> 849 850 PR middle-end/23125 851 * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name 852 instead of change_decl_assembler_name. 853 8542005-10-03 Alexandre Oliva <aoliva@redhat.com> 855 856 * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message. 857 8582005-10-03 Mark Mitchell <mark@codesourcery.com> 859 860 PR c++/17775 861 * repo.c: Include flags.h. 862 (finish_repo): Add -frandom-seed to the arguments. 863 8642005-10-02 Mark Mitchell <mark@codesourcery.com> 865 866 PR c++/22621 867 * parser.c (cp_parser_template_argument): Don't turn "T::f" into 868 "(*this).T::f". 869 * pt.c (convert_nontype_argument): Remove ??? comment. 870 871 PR c++/23840 872 * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue, 873 when class rvalues are lvalues. 874 8752005-09-28 Mark Mitchell <mark@codesourcery.com> 876 877 PR c++/16782 878 * decl.c (grokdeclarator): Always pedwarn about overqualified 879 member names. 880 8812005-09-27 Mark Mitchell <mark@codesourcery.com> 882 883 PR c++/22147 884 * name-lookup.c (maybe_process_template_type_declaration): Don't 885 treat forward declarations of classes as templates just because 886 we're processing_template_decl. 887 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend 888 functions. 889 8902005-09-26 Jason Merrill <jason@redhat.com> 891 892 PR c++/13764 893 * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro. 894 * name-lookup.c (pushdecl_maybe_friend): Check it. 895 * decl.c (begin_function_body): Do nothing if it's false. 896 (finish_function_body): Ditto. 897 (outer_curly_brace_block): New fn. 898 (finish_function): Use it. 899 9002005-09-26 Richard Guenther <rguenther@suse.de> 901 902 PR middle-end/15855 903 * decl2.c (do_static_destruction): Remove. 904 (finish_static_initialization_or_destruction): Likewise. 905 (DECL_EFFECTIVE_INIT_PRIORITY): New macro. 906 (NEEDS_GUARD_P): Likewise. 907 (do_static_initialization): Rename to 908 do_static_initialization_or_destruction. Process all 909 initializers/destructors and handle common conditionalizing. 910 (start_static_initialization_or_destruction): Rename to 911 one_static_initialization_or_destruction. Handle only 912 decl-specific conditionalizing. 913 (cp_finish_file): Call do_static_initialization_or_destruction. 914 9152005-09-22 Jakub Jelinek <jakub@redhat.com> 916 917 PR c++/21983 918 * class.c (find_final_overrider): Move diagnostic about no unique final 919 overrider to... 920 (update_vtable_entry_for_fn): ... here. 921 9222005-09-21 Mark Mitchell <mark@codesourcery.com> 923 924 PR c++/23993 925 * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P. 926 9272005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 928 929 PR c++/23965 930 * call.c (resolve_args): Return error_mark_node on arguments 931 whose TREE_TYPE is error_mark_node. 932 9332005-09-20 Jakub Jelinek <jakub@redhat.com> 934 935 PR c++/23947 936 * rtti.c (get_pseudo_ti_init): Recompute ti pointer after 937 get_tinfo_ptr calls. 938 9392005-09-16 Mark Mitchell <mark@codesourcery.com> 940 941 PR c++/23914 942 * parser.c (cp_parser_enclosed_template_argument_list): Make sure 943 skip_evaluation is false when processing template arguments. 944 945 PR c++/21514 946 * pt.c (check_instantiated_args): Treat uses of anonymous types as 947 causing type-deduction failure. 948 9492005-09-15 Jason Merrill <jason@redhat.com> 950 951 PR c++/23357 952 * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to 953 tcc_expression. 954 9552005-09-15 Mark Mitchell <mark@codesourcery.com> 956 957 PR c++/23896 958 * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when 959 processing template arguments. 960 961 * pt.c (check_explicit_instantiation_namespace): Fix typo. 962 963 PR c++/13140 964 * decl.c (check_class_member_definition_namespace): New function. 965 (grokfndecl): Use it. 966 (grokvardecl): Likewise. 967 (grokdecl): Improve documentation. 968 * pt.c (check_explicit_instantiation_namespace): New function. 969 (register_specialization): Call check_specialization_namespace 970 when replacing an implicitly instantiated function. 971 (check_explicit_specialization): Ensure that DECL_CONTEXT is set 972 correctly for namespace-scope specializations. 973 (do_decl_instantiation): Use 974 check_explicit_instantiation_namespace. 975 (do_type_instantiation): Likewise. 976 9772005-09-15 Nathan Sidwell <nathan@codesourcery.com> 978 979 PR c++/23725 980 * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE. 981 9822005-09-13 Bastian Blank <waldi@debian.org> 983 984 PR c++/16171 985 * mangle.c (find_substitution): Do not use special substitutions 986 for identifiers not in std::. 987 9882005-09-13 Mark Mitchell <mark@codesourcery.com> 989 990 PR c++/23839 991 * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER 992 for VAR_DECLs. 993 9942005-09-13 Mark Mitchell <mark@codesourcery.com> 995 996 PR c++/23842 997 * pt.c (tsubst_default_argument): Do treat default argument 998 expressions as occurring in the context of the function called. 999 10002005-09-12 Mark Mitchell <mark@codesourcery.com> 1001 1002 PR c++/23841 1003 * parser.c (cp_parser_primary_expression): Recognize the closing 1004 ">" of a template-argument-list after a floating-point literal as 1005 the end of a cast expression. 1006 10072005-09-12 Mark Mitchell <mark@codesourcery.com> 1008 1009 PR c++/23789 1010 * cvt.c (perform_qualification_conversions): Don't create 1011 unnecessary NOP_EXPRs. 1012 * pt.c (tsubst_template_arg): Use fold_non_dependent_expr. 1013 10142005-09-12 Ian Lance Taylor <ian@airs.com> 1015 1016 PR g++/7874 1017 * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p 1018 bitfield. Make dummy bitfield one bit smaller. 1019 (DECL_HIDDEN_FRIEND_P): Define. 1020 (pushdecl_maybe_friend): Declare. 1021 (pushdecl_top_level_maybe_friend): Declare. 1022 * decl.c (duplicate_decls): Add newdecl_is_friend parameter. 1023 Change prototype and all callers. Add assertion that a 1024 DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set 1025 DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if 1026 appropriate. 1027 * name-lookup.c (supplement_binding): Don't ignore a 1028 DECL_HIDDEN_FRIEND_P. 1029 (pushdecl_maybe_friend): Break out contents of pushdecl. Add 1030 is_friend parameter. Set DECL_ANTICIPATED and 1031 DECL_HIDDEN_FRIEND_P for a friend function. 1032 (pushdecl): Just call pushdecl_maybe_friend. 1033 (pushdecl_with_scope): Add is_friend parameter. Change prototype 1034 and all callers. 1035 (pushdecl_namespace_level): Likewise. 1036 (push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as 1037 well as DECL_ANTICIPATED when checking for a builtin. 1038 (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as 1039 DECL_ANTICIPATED when checking for a builtin. 1040 (do_nonmember_using_decl): Likewise. 1041 (pushdecl_top_level_1): Add is_friend parameter. Change all 1042 callers. 1043 (pushdecl_top_level_maybe_friend): New function. 1044 (remove_hidden_names): New function. 1045 (struct arg_lookup): Add args field. 1046 (friend_of_associated_class_p): New static function. 1047 (arg_assoc_namespace): Ignore hidden functions which are not 1048 friends of an associated class of some argument. 1049 (lookup_arg_dependent): Remove hidden functions from list passed 1050 in. Initialize k.args. 1051 * name-lookup.h (remove_hidden_names): Declare. 1052 * friend.c (do_friend): Call pushdecl_maybe_friend instead of 1053 pushdecl. 1054 * call.c (add_function_candidate): Change DECL_ANTICIPATED test to 1055 an assertion, with a check for DECL_HIDDEN_FRIEND_P. 1056 (build_new_function_call): Add koenig_p parameter. Change 1057 prototype and callers. 1058 * pt.c (register_specialization): Add is_friend parameter. Change 1059 all callers. 1060 (push_template_decl_real): Change is_friend parameter to bool. 1061 Change prototype and all callers. 1062 (tsubst_friend_class): Call pushdecl_top_level_maybe_friend 1063 instead of pushdecl_top_level. 1064 10652005-09-11 Richard Henderson <rth@redhat.com> 1066 1067 * decl2.c (build_anon_union_vars): Copy attributes from the base addr. 1068 * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR. 1069 10702005-09-09 Gabriel Dos Reis <gdr@integrable-solutions.net> 1071 1072 * parser.c (cp_parser_translation_unit): Simplify. The while-block 1073 was actually executed at most once. 1074 10752005-09-09 Richard Henderson <rth@redhat.com> 1076 1077 PR debug/20998 1078 * cp-tree.def (ALIAS_DECL): Remove. 1079 * cp-lang.c (cp_init_ts): Remove support for it. 1080 * error.c (dump_decl): Likewise. 1081 * name-lookup.c (pushdecl): Likewise. 1082 * semantics.c (finish_id_expression): Likewise. 1083 * decl2.c (build_anon_union_vars): Use a VAR_DECL with 1084 DECL_VALUE_EXPR instead. 1085 10862005-09-09 Mark Mitchell <mark@codesourcery.com> 1087 1088 PR c++/22252 1089 * decl.c (start_preparsed_function): Do not pay attention to 1090 #pragma interface for implicitly-defined methods. 1091 * decl2.c (cp_finish_file): Do not complain about uses of inline 1092 functions that have bodies, even if we decided not to emit the 1093 body in this translation unit. 1094 * semantics.c (note_decl_for_pch): Do not mess with linkage. 1095 (expand_or_defer_fn): Make inline, non-template functions COMDAT 1096 at this point. 1097 10982005-09-08 Richard Henderson <rth@redhat.com> 1099 1100 PR debug/23190 1101 * decl.c (wrapup_globals_for_namespace): Call 1102 emit_debug_global_declarations. 1103 * decl2.c (cp_finish_file): Likewise. 1104 11052005-09-08 Mark Mitchell <mark@codesourcery.com> 1106 1107 PR c++/23691 1108 * decl2.c (mark_used): Instantiate static data members initialized 1109 by constants, even in a template. 1110 11112005-09-08 Andrew Pinski <pinskia@physics.uc.edu> 1112 1113 PR obj-c++/16816 1114 * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as 1115 two CPP_COLON. 1116 11172005-09-07 Richard Guenther <rguenther@suse.de> 1118 1119 * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR 1120 for EMPTY_CLASS_EXPR. 1121 11222005-09-06 Jakub Jelinek <jakub@redhat.com> 1123 1124 PR c/23075 1125 * typeck.c (check_return_expr): Add no_warning argument. Set 1126 *no_warning to true if "return-statement with no value, in function 1127 returning" warning has been issued. 1128 * cp-tree.h (check_return_expr): Adjust prototype. 1129 * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if 1130 check_return_expr set *no_warning to true. 1131 11322005-09-06 Mark Mitchell <mark@codesourcery.com> 1133 1134 * cp-tree.h (rvalue): New function. 1135 * call.c (build_conditional_expr): Use it. 1136 * init.c (build_new_1): Likewise. 1137 * rtti.c (build_dynamic_cast_1): Likewise. 1138 * tree.c (rvalue): New function. 1139 * typeck.c (build_unary_op): Use it. 1140 (build_static_cast_1): Likewise. 1141 1142 PR c++/9782 1143 * init.c (build_new_1): Make sure the entire array type is 1144 complete, not just its element types. 1145 11462005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1147 1148 * decl.c (check_elaborated_type_specifier): Remove redundant check. 1149 11502005-09-06 Jakub Jelinek <jakub@redhat.com> 1151 1152 PR c++/23056 1153 * typeck.c (ignore_overflows): New helper function. 1154 (build_static_cast_1): Use it. 1155 11562005-09-06 Kazu Hirata <kazu@codesourcery.com> 1157 1158 * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos. 1159 Follow spelling conventions. 1160 11612005-09-05 Mark Mitchell <mark@codesourcery.com> 1162 1163 PR c++/23667 1164 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when 1165 copying a VAR_DECL. 1166 11672005-09-05 Mark Mitchell <mark@codesourcery.com> 1168 1169 PR c++/21440 1170 * semantics.c (finish_stmt_expr_expr): Add an explicit 1171 initialization to the last statement in the statement-expression. 1172 * (finish_stmt_expr): Adjust accordingly. 1173 11742005-09-03 Mark Mitchell <mark@codesourcery.com> 1175 1176 PR c++/23699 1177 * decl2.c (mark_used): Always instantiate static data members 1178 initialized by constant expressions. 1179 * pt.c (instantiate_decl): Instantiate the initializers for static 1180 data members initialized by constant expressions. 1181 1182 PR c++/21687 1183 * semantics.c (expand_or_defer_fn): Do not call ggc_collect when 1184 finishing processing for a template function in a local class. 1185 Revert: 1186 2005-09-02 Mark Mitchell <mark@codesourcery.com> 1187 * parser.c (cp_parser_class_specifier): Push/pop GC contexts 1188 around functions in local classes. 1189 11902005-09-02 Mark Mitchell <mark@codesourcery.com> 1191 1192 PR c++/21687 1193 * parser.c (cp_parser_class_specifier): Push/pop GC contexts 1194 around functions in local classes. 1195 11962005-08-31 Andrew Pinski <pinskia@physics.uc.edu> 1197 1198 PR obj-c++/23640 1199 * decl2.c (cp_finish_file): If this is obj-c++ and we need a static 1200 init, call generate_ctor_or_dtor_function. 1201 12022005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1203 1204 PR c++/13377 1205 * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to 1206 lookup_name_real on final parse. 1207 12082005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1209 1210 PR c++/23639 1211 * semantics.c (qualified_name_lookup_error): Do not complain again 1212 on invalid scope. 1213 12142005-08-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1215 1216 PR c++/23586 1217 * parser.c (cp_parser_namespace_name): Move diagnostic for 1218 invalid namespace-name to here from ... 1219 * name-lookup.c (do_namespace_alias): ... here and ... 1220 (do_using_directive): ... here. Remove dead code. 1221 12222005-08-28 Mark Mitchell <mark@codesourcery.com> 1223 1224 PR c++/23099 1225 * cp-tree.h (saved_scope): Add skip_evaluation. 1226 * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not 1227 DECL_INITIAL, to determine whether or not a static data member was 1228 initialized in the class-specifier. 1229 (cp_finish_decl): Add comment. 1230 * init.c (integral_constant_value): Subtitute into the 1231 initializers for static data members in templates. 1232 * name-lookup.c (push_to_top_level): Save skip_evaluation. 1233 (pop_from_top_level): Restore it. 1234 * pt.c (instantiate_class_template): Do not substitute into the 1235 intializers of static data members when instantiating a class. 1236 (regenerate_decl_from_template): Simplify. 1237 (instantiate_decl): Tidy. Substitute into the initializer for a 1238 static data member even when the definition of the data member is 1239 not available. 1240 12412005-08-26 Mark Mitchell <mark@codesourcery.com> 1242 1243 PR c++/19004 1244 * pt.c (uses_template_parms): Handle IDENTIFIER_NODE. 1245 (type_dependent_expression_p): Allow BASELINKs whose associated 1246 functions are simply a FUNCTION_DECL. 1247 1248 PR c++/23491 1249 * cp-tree.h (build_vec_init): Adjust prototype. 1250 * init.c (perform_member_init): Adjust call to build_vec_init. 1251 (build_aggr_init): Likewise. 1252 (build_new_1): Do not call build_default_init for array types. 1253 (build_vec_init): Add explicit_default_init_p parameter. Perform 1254 default initialization of vector elements when set. 1255 * typeck.c (build_modify_expr): Adjust call to build_vec_init. 1256 12572005-08-25 Nathan Sidwell <nathan@codesourcery.com> 1258 1259 PR c++/20817 1260 * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a 1261 ->*. 1262 12632005-08-24 Nathan Sidwell <nathan@codesourcery.com> 1264 1265 PR c++/22454 1266 * parser.c (cp_lexer_peek_nth_token): Relax assert. 1267 12682005-08-23 Nathan Sidwell <nathan@codesourcery.com> 1269 1270 PR c++/23044 1271 * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain. 1272 12732005-08-22 James E Wilson <wilson@specifix.com> 1274 1275 PR tree-optimization/23426 1276 * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for 1277 array size check. 1278 12792005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1280 1281 PR c++/22233 1282 * pt.c (push_template_decl_real): Return error_mark_node if the 1283 number of template parameters does not match previous definition. 1284 12852005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1286 1287 PR c++/23089 1288 * decl.c (require_complete_types_for_parms): Mark incomplete types 1289 as invalid. 1290 12912005-08-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1292 1293 * parser.c (cp_parser_nth_token_starts_template_argument_list_p): 1294 Fix typo in leading comment. 1295 12962005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1297 1298 * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF. 1299 13002005-08-15 Fariborz Jahanian <fjahanian@apple.com> 1301 1302 * cp-tree.h (can_convert_arg, fn_type_unification): New argument. 1303 * call.c (add_template_candidate_real): Pass down 'flags' to 1304 fn_type_unification. 1305 (can_convert_arg): New 'flags' argument. Pass it to call to 1306 implicit_conversion instead of LOOKUP_NORMAL. 1307 (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg. 1308 * class.c (resolve_address_of_overloaded_function): Ditto. 1309 (resolve_address_of_overloaded_function): Ditto. 1310 * decl.c (reshape_init, check_default_argument): Ditto. 1311 * typeck.c (build_ptrmemfunc): Ditto. 1312 * pt.c (type_unification_real): Add 'flags' argument. 1313 (fn_type_unification): Pass 'flags' to type_unification_real. 1314 (type_unification_real): Pass new 'flags' argument to call to 1315 can_convert_arg. 1316 13172005-08-12 Giovanni Bajo <giovannibajo@libero.it> 1318 Nathan Sidwell <nathan@codesourcery.com> 1319 1320 PR c++/21799 1321 PR c++/8271 1322 * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers 1323 explicitly. 1324 13252005-08-12 Nathan Sidwell <nathan@codesourcery.com> 1326 1327 PR c++/21799 1328 Revert my 2005-07-08 patch 1329 * pt.c (type_unification_real): Remove is_method_argument and 1330 assoicated checks. 1331 (fn_type_unification, unify): Adjust type_unification_real calls. 1332 13332005-08-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1334 1335 PR c++/23266 1336 * decl2.c (grokfield): Check that method is not static before 1337 marking it as pure. 1338 13392005-08-11 Nathan Sidwell <nathan@codesourcery.com> 1340 1341 PR c++/23219 1342 * name-lookup.c (pushtag): Process the template type before 1343 altering the identifier lookup fields. Remove unreachable code 1344 creating an empty stub decl. 1345 13462005-08-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1347 1348 PR c++/20646 1349 * decl.c (grokdeclarator): Reset storage_class after error. 1350 13512005-08-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1352 1353 PR c++/22508 1354 * init.c (build_new_1): Check for empty candidate list. 1355 13562005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1357 1358 PR c++/23191 1359 * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node 1360 before calling build_exception_variant. 1361 13622005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1363 1364 PR c++/19498 1365 * pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE 1366 if substitution of template args did not succeed. 1367 13682005-08-06 Michael Matz <matz@suse.de> 1369 1370 * method.c (use_thunk): Call init_insn_lengths. 1371 13722005-08-05 James A. Morrison <phython@gcc.gnu.org> 1373 1374 PR c++/22514 1375 * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if 1376 sorrycount or errorcount are nonzero. 1377 13782005-08-05 Mark Mitchell <mark@codesourcery.com> 1379 1380 * name-lookup.c (pushtag): Remove accidental commit from: 1381 2004-12-21 Mark Mitchell <mark@codesourcery.com> 1382 PR c++/19063 1383 * decl.c (grokdeclarator): Return error_mark_node, not 1384 void_type_node, to indicate errors. 1385 * parser.c (cp_parser_template_parameter_list): Robustify. 1386 (cp_parser_template_parameter): Likewise. 1387 13882005-08-01 Kazu Hirata <kazu@codesourcery.com> 1389 1390 * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c: 1391 Fix comment typos. 1392 13932005-07-29 Kazu Hirata <kazu@codesourcery.com> 1394 1395 * method.c: Fix a comment typo. 1396 13972005-07-28 Mark Mitchell <mark@codesourcery.com> 1398 1399 PR c++/22545 1400 * call.c (add_builtin_candidate): Adjust for changes in 1401 representation of pointer-to-member types. 1402 14032005-07-28 Mike Stump <mrs@apple.com> 1404 1405 * pt.c (check_explicit_specialization): Add visibility logic. 1406 (lookup_template_class): Likewise. 1407 (instantiate_class_template): Likewise. 1408 14092005-07-27 Devang Patel <dpatel@apple.com> 1410 1411 * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit. 1412 14132005-07-25 Ian Lance Taylor <ian@airs.com> 1414 1415 * ptree.c (cxx_print_identifier): Print a leading space if the 1416 indent level is 0. 1417 14182005-07-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1419 1420 * call.c (convert_for_arg_passing): Check function pointers when 1421 -Wmissing-format-attribute is activated. 1422 * typeck.c (convert_for_assignment): Likewise. 1423 14242005-07-22 Manfred Hollstein <mh@suse.com> 1425 1426 * parser.c (cp_parser_declaration): Fix unitialised warnings. 1427 14282005-07-21 Andrew Pinski <pinskia@physics.uc.edu> 1429 1430 * class.c (build_base_path): Fix typo. 1431 14322005-07-21 Andrew Pinski <pinskia@physics.uc.edu> 1433 1434 PR C++/22358 1435 * class.c (build_base_path): Convert BINFO_OFFSET to the correct type. 1436 14372005-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1438 1439 * call.c: Fix comment typo(s). 1440 * cxx-pretty-print.h: Likewise. 1441 * name-lookup.c: Likewise. 1442 * parser.c: Likewise. 1443 14442005-07-20 Douglas Gregor <doug.gregor@gmail.com> 1445 1446 PR c++/2922 1447 * semantics.c (perform_koenig_lookup): For dependent calls, just 1448 return the set of functions we've found so far. Later, it will be 1449 augmented by those found through argument-dependent lookup. 1450 * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing 1451 the optimization that skips namespaces where the functions were 1452 originally found. 1453 14542005-07-20 Giovanni Bajo <giovannibajo@libero.it> 1455 1456 Make CONSTRUCTOR use VEC to store initializers. 1457 * call.c (convert_default_arg): Update call to digest_init. 1458 * class.c (dump_class_hierarchy, dump_array): Update to cope with 1459 VEC in CONSTRUCTOR_ELTS. 1460 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise. 1461 (finish_compound_literal, digest_init): Update declaration. 1462 * decl.c (struct reshape_iter): New data type. 1463 (reshape_init_array): Rename to... 1464 (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS. 1465 (reshape_init): Rewrite from scratch. Split parts into... 1466 (reshape_init_array, reshape_init_vector, reshape_init_class, 1467 reshape_init_r): New functions. 1468 (check_initializer): Update call to reshape_init. Remove obsolete 1469 code. 1470 (initialize_artificial_var, cp_complete_array_type): Update to cope 1471 with VEC in CONSTRUCTOR_ELTS. 1472 * decl2.c (grokfield): Update calls to digest_init. 1473 (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS. 1474 * error.c (dump_expr_init_vec): New function. 1475 (dump_expr): Use dump_expr_init_vec. 1476 * init.c (build_zero_init, build_vec_init): Update to cope with VEC 1477 in CONSTRUCTOR_ELTS. 1478 (expand_default_init): Update call to digest_init. 1479 * parser.c (cp_parser_postfix_expression): Use a VEC for the 1480 initializers. 1481 (cp_parser_initializer_list): Build a VEC of initializers. 1482 * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC 1483 in CONSTRUCTOR_ELTS. 1484 * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer, 1485 ptm_initializer, class_initializer, get_pseudo_ti_init): Use 1486 build_constructor_from_list instead of build_constructor. 1487 * semantics.c (finish_compound_literal): Update call to digest_init. 1488 * tree.c (stabilize_init): Update to cope with VEC in 1489 CONSTRUCTOR_ELTS. 1490 * typeck.c (build_ptrmemfunc1): Likewise. 1491 * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1): 1492 Likewise. 1493 (store_init_value): Use build_constructor_from_list and update call 1494 to digest_init. 1495 (digest_init): Rewrite. 1496 (process_init_constructor): Rewrite from scratch. Split into... 1497 (process_init_constructor_array, picflag_from_initializer, 1498 process_init_constructor_record, process_init_constructor_union): 1499 New functions. 1500 (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE): 1501 New macros. 1502 (build_functional_cast): Use build_constructor_from_list instead of 1503 build_constructor. 1504 15052005-07-18 Mark Mitchell <mark@codesourcery.com> 1506 1507 PR c++/22263 1508 * cp-tree.h (instantiate_decl): Change prototype. 1509 * decl2.c (mark_used): Adjust accordingly. 1510 * pt.c (do_decl_instantiation): Likewise. 1511 (instantiate_class_member): Likewise. 1512 (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p. 1513 Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template 1514 that has no definition available. 1515 (instantiate_pending_templates): Adjust call to instantiate_decl. 1516 15172005-07-17 Mark Mitchell <mark@codesourcery.com> 1518 1519 PR c++/22139 1520 * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation. 1521 * decl.c (duplicate_decls): Re-register template specializations 1522 for functions that have DECL_TEMLPLATE_INFO, even if they do not 1523 have DECL_TEMPLATE_INSTANTIATION set. 1524 15252005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1526 1527 * call.c (diagnostic_fn_t): New. 1528 (build_temp, convert_like_real): Use diagnostic_fn_t. 1529 15302005-07-15 Mark Mitchell <mark@codesourcery.com> 1531 1532 PR c++/22204 1533 * repo.c (repo_emit_p): Robustify. 1534 15352005-07-14 Daniel Berlin <dberlin@dberlin.org> 1536 1537 Fix PR c++/22452 1538 * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL. 1539 15402005-07-15 Mark Mitchell <mark@codesourcery.com> 1541 1542 PR c++/22132 1543 * call.c (implicit_conversion): Add c_cast_p parameter. 1544 (standard_conversion): Likewise. Allow conversions between 1545 differently-qualified pointer types when performing a C-style 1546 cast. 1547 (add_function_candidate): Adjust callee. 1548 (build_builtin_candidate): Likewise. 1549 (build_user_type_conversion_1): Likewise. 1550 (conditional_conversion): Likewise. 1551 (can_convert_arg): Likewise. 1552 (can_convert_arg_bad): Likewise. 1553 (perform_implicit_conversion): Likewise. 1554 * cp-tree.h (comp_ptr_ttypes_const): Declare. 1555 * typeck.c (comp_ptr_ttypes_const): Give it external linkage. 1556 Return bool. 1557 15582005-07-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1559 Nathan Sidwell <nathan@codesourcery.com> 1560 1561 PR c++/20172 1562 * pt.c (tsubst_template_parms): Check for invalid non-type 1563 parameters. 1564 15652005-07-09 Andrew Pinski <pinskia@physics.uc.edu> 1566 1567 * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup, 1568 decl_shadowed_for_var_insert): Move over to cp-objcp-common.c. 1569 (cp_init_ts): Call init_shadowed_var_for_decl. 1570 Remove include of gt-cp-cp-lang.h. 1571 * cp-objcp-common.c (shadowed_var_for_decl, 1572 decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from 1573 cp-lang.c. 1574 (init_shadowed_var_for_decl): New function to initialize 1575 shadowed_var_for_decl. 1576 Include gt-cp-cp-objcp-common.h. 1577 * Make-lang.in (gt-cp-lang.h): Remove. 1578 (gt-cp-cp-objcp-common.h): Add. 1579 (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h. 1580 (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h. 1581 * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c. 1582 * cp-tree (init_shadowed_var_for_decl): Add prototype. 1583 15842005-07-08 Daniel Berlin <dberlin@dberlin.org> 1585 1586 * Make-lang.in: Add gt-cp-lang.h. 1587 (cp-lang.o): Ditto. 1588 * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on 1589 the field. 1590 * config-lang.in: Add cp-lang.c to gtfiles. 1591 * cp-lang.c: Include hashtab.h. 1592 (cp_init_ts): New function. 1593 (LANG_HOOK_INIT_TS): Use macro. 1594 (decl_shadowed_for_var_lookup): New function. 1595 (decl_shadowed_for_var_insert): Ditto. 1596 * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common. 1597 (NON_THUNK_FUNCTION_CHECK): Ditto. 1598 (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common. 1599 (DECL_INIT_PRIORITY): Ditto. 1600 (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto. 1601 (DECL_SHADOWED_FOR_VAR): Use hashtable. 1602 (SET_DECL_SHADOWED_FOR_VAR): Ditto. 1603 * decl.c (duplicate_decls): Update for new/updated structures. 1604 (poplevel): Use SET_DECL_SHADOWED_FOR_VAR. 1605 * decl2.c (start_static_initialization_or_destruction): Deal with 1606 priority. 1607 * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing 1608 SET_DECL_RTL. 1609 * tree.c (handle_init_priority_attribute): Handle priority. 1610 16112005-07-08 Nathan Sidwell <nathan@codesourcery.com> 1612 1613 PR c++/21799 1614 * pt.c (type_unification_real): Add is_method argument. Use it 1615 for this pointer unification. 1616 (fn_type_unification): Adjust type_unification_real call. 1617 (unify): Likewise. 1618 16192005-07-07 Nathan Sidwell <nathan@codesourcery.com> 1620 1621 * pt.c (type_unification_real): Remove allow_incomplete argument. 1622 Remove unreachable code. 1623 (fn_type_unification): Adjust call to type_unification_real. 1624 (unify): Likewise. 1625 16262005-07-05 Paolo Bonzini <bonzini@gnu.org> 1627 1628 * Makefile.in (class.o, decl2.o): Adjust dependencies. 1629 * class.c: Include tree-dump.h. 1630 * decl2.c: Include tree-dump.h. 1631 16322005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net> 1633 1634 * dump.c: Use dump_string_field. 1635 16362005-07-03 Joseph S. Myers <joseph@codesourcery.com> 1637 1638 * cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change 1639 minimum GCC version for format checking to 4.1. 1640 16412005-07-02 Kazu Hirata <kazu@codesourcery.com> 1642 1643 * Make-lang.in (cc1plus-checksum.c): Use 1644 build/genchecksum$(build_exeext), not build/genchecksum$(exeext). 1645 16462005-07-02 Joseph S. Myers <joseph@codesourcery.com> 1647 1648 * name-lookup.c, parser.c: Use %q, %< and %> to quote in 1649 diagnostics. 1650 16512005-07-02 Zack Weinberg <zack@codesourcery.com> 1652 Joseph S. Myers <joseph@codesourcery.com> 1653 1654 * error.c (location_of): Add comment. 1655 (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove. 1656 * cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove. 1657 * call.c, class.c, decl.c, decl2.c, friend.c, init.c, 1658 name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c, 1659 typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at 1660 or cp_pedwarn_at. Mark up some diagnostic strings with N_. 1661 16622005-06-30 Daniel Berlin <dberlin@dberlin.org> 1663 1664 * decl.c (require_complete_types_for_parms): Call relayout_decl 1665 instead of layout_decl. 1666 16672005-06-30 Zack Weinberg <zack@codesourcery.com> 1668 Jakub Jelinek <jakub@redhat.com> 1669 1670 * cp-lang.c: No need to include cxx-pretty-print.h. 1671 * error.c (cp_printer): Update signature. No need to process 1672 flags. 1673 (print_instantiation_partial_context): Output last newline 1674 with pp_base_newline. 1675 * Make-lang.in: Update dependencies. 1676 16772005-06-30 Steven Bosscher <stevenb@suse.de> 1678 1679 * decl.c (start_decl): Replace DECL_THREAD_LOCAL with 1680 DECL_THREAD_LOCAL_P. 1681 (cp_finish_decl): Likewise. 1682 (grokvardecl): Set the default DECL_TLS_MODEL here. 1683 16842005-06-28 Joseph S. Myers <joseph@codesourcery.com> 1685 1686 * cvt.c (ocp_convert): Use invalid_conversion hook. 1687 * typeck.c (build_binary_op): Use invalid_binary_op hook. 1688 (build_unary_op): Use invalid_unary_op hook. 1689 16902005-06-28 Paul Brook <paul@codesourcery.com> 1691 1692 * Make-lang.in (cp/except.o): Depend on $(TARGET_H) 1693 * except.c: Include target.h. 1694 (init_exception_processing): Initialize unwind_resume_libfunc. 1695 * doc/tm.texi: Document TARGET_ASM_TTYPE 1696 16972005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1698 1699 * call.c (build_over_call): Pass in named argument list to 1700 `check_function_arguments'. 1701 * typeck.c (build_function_call): Likewise. 1702 17032005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1704 1705 * cp-tree.h (lang_check_failed): Add noreturn attribute. 1706 17072005-06-25 Kelley Cook <kcook@gcc.gnu.org> 1708 1709 * all files: Update FSF address in copyright headers. 1710 17112005-06-23 Jason Merrill <jason@redhat.com> 1712 1713 PR c++/19317 1714 * semantics.c (simplify_aggr_init_expr): Use 1715 CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR. 1716 17172005-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1718 1719 * pt.c (register_specialization): Remove superfluous assertion. 1720 17212005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1722 1723 * call.c (convert_like_real): Add format attribute. 1724 * typeck.c (check_for_casting_away_constness, 1725 build_static_cast_1): Likewise. 1726 * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic): 1727 Likewise. 1728 17292005-06-17 Geoffrey Keating <geoffk@apple.com> 1730 1731 PR c++/17413 1732 * pt.c (type_unification_real): Apply template type deduction even 1733 to procedure parameters that are not dependent on a template 1734 parameter. 1735 17362005-06-16 Nathan Sidwell <nathan@codesourcery.com> 1737 1738 * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might 1739 change. 1740 (create_pseudo_type_info): First parameter is an int. 1741 17422005-06-15 Nathan Sidwell <nathan@codesourcery.com> 1743 1744 PR c++/20678 1745 * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not 1746 null. 1747 1748 * Make-lang.in: Reformat some long lines. 1749 (gt-cp-rtti.h): New target. 1750 (cp/rtti.o): Add dependency. 1751 * config-lang.in (gtfiles): Add cp/rtti.c. 1752 * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE, 1753 CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE, 1754 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, 1755 CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE, 1756 CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove. 1757 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, 1758 ary_desc_type_node, func_desc_type_node, enum_desc_type_node, 1759 class_desc_type_node, si_class_desc_type_node, 1760 vmi_class_desc_type_node, ptm_desc_type_node, 1761 base_desc_type_node): Remove. 1762 * decl.c: Adjust documentation of global trees. 1763 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL, 1764 TINFO_REAL_NAME): Remove. 1765 (struct tinfo_s): New. 1766 (enum tinfo_kind): New. 1767 (tinfo_descs): New. 1768 (get_tinfo_decl): Adjust use of tinfo descriptor. 1769 (tinfo_base_init, generic_initializer, ptr_initializer, 1770 ptm_initializer, class_initializer): Likewise. 1771 (get_pseudo_ti_init): Take descriptor index. Adjust. 1772 (create_pseudo_type_info): Likewise. 1773 (get_pseudo_ti_desc): Return descriptor index. Adjust. 1774 (create_tinfo_types): Adjust use of create_pseudo_type_info. 1775 (emit_tinfo_decl): Adjust use of tinfo descriptor. 1776 17772005-06-14 Roger Sayle <roger@eyesopen.com> 1778 1779 * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST. 1780 17812005-06-13 Geoffrey Keating <geoffk@apple.com> 1782 1783 * Make-lang.in (c++.install-man): Doesn't really depend on installdirs. 1784 (rule for installing g++.1 manpage): Does depend on installdirs. 1785 17862005-06-13 Nathan Sidwell <nathan@codesourcery.com> 1787 1788 PR c++/20789 1789 * decl.c (cp_finish_decl): Clear runtime runtime initialization if 1790 in-class decl's initializer is bad. 1791 1792 PR c++/21929 1793 * parser.c (struct cp_parser): Document that scope could be 1794 error_mark. 1795 (cp_parser_diagnose_invalid_type_name): Cope with error_mark for 1796 scope. 1797 (cp_parser_nested_name_specifier): Return NULL_TREE on error. 1798 (cp_parser_postfix_expression): Deal with null or error_mark 1799 scope. 1800 (cp_parser_elaborated_type_specifier): Adjust 1801 cp_parser_nested_name_specifier call. 1802 1803 * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup. 1804 18052005-06-12 Roger Sayle <roger@eyesopen.com> 1806 1807 PR c++/21930 1808 * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types. 1809 Treat CONVERT_EXPR identically to NOP_EXPR. 1810 18112005-06-10 Aldy Hernandez <aldyh@redhat.com> 1812 1813 PR c++/10611 1814 * cvt.c (build_expr_type_conversion): Same. 1815 * typeck.c (build_binary_op): Handle vectors. 1816 (common_type): Same. 1817 (type_after_usual_arithmetic_conversions): Same. 1818 18192005-06-08 Nathan Sidwell <nathan@codesourcery.com> 1820 1821 PR c++/19497 1822 * cp-tree.def (USING_DECL): Update documentation. 1823 * cp-tree.h (DECL_DEPENDENT_P): New. 1824 (USING_DECL_DECLS, USING_DECL_SCOPE): New. 1825 * class.c (handle_using_decl): Move most of the processing to ... 1826 * name-lookup.c (do_class_using_decl): ... here. Make stricter. 1827 (push_using_decl): Use USING_DECL_SCOPE. 1828 (cp_emit_debug_info_for_using): Make extern. 1829 * cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust. 1830 * name-lookup.h (cp_emit_debug_info_for_using): Declare. 1831 * pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl 1832 when tsubsting. 1833 (tsubst_expr): Use USING_DECL_SCOPE. 1834 * search.c (lookup_field_1): Use DECL_DEPENDENT_P. 1835 * semantics.c (finish_member_declaration): Likewise. 1836 18372005-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1838 1839 PR c++/19894 1840 * pt.c (tsubst): Reject pointer-to-member of type void. 1841 1842 PR c++/20563 1843 * parser.c (cp_parser_label_declaration): Deal with invalid/missing 1844 identifiers. 1845 18462005-06-07 Nathan Sidwell <nathan@codesourcery.com> 1847 1848 * cp-tree.def (DEFAULT_ARG): Adjust documentation. 1849 * cp-tree.h (DEFARG_INSTANTIATIONS): New. 1850 (struct tree_default_arg): Add instantiations member. 1851 * parser.c (cp_parser_late_parsing_default_args): Adjust to use a 1852 VEC. 1853 * pt.c (tsubst_arg_types): Likewise. 1854 1855 * parser.c (cp_parser_late_parsing_default_args): Fix overeager 1856 assert in previous patch. 1857 18582005-06-06 Jakub Jelinek <jakub@redhat.com> 1859 1860 * error.c (locate_error): Use gmsgid instead of msgid for argument 1861 name. 1862 (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise. 1863 18642005-06-06 Nathan Sidwell <nathan@codesourcery.com> 1865 1866 PR 21903 1867 * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use. 1868 * parser.c (cp_parser_late_parsing_default_args): Propagate parsed 1869 argument to any early instantiations. 1870 * pt.c (tsubst_arg_types): Chain early instantiation of default arg. 1871 1872 PR c++/20637 1873 * cp-tree.h (add_method): Add using_decl parameter. 1874 * class.c (add_method): Add using_decl parameter. Adjust error 1875 messages. 1876 (handle_using_decl): Pass the using decl to add_method. 1877 (clone_function_decl): Adjust add_member calls. 1878 * decl2.c (check_classfn): Likewise. 1879 * method.c (lazily_declare_fn): Likewise. 1880 * semantics.c (finish_member_declaration): Likewise. 1881 1882 * method.c (synthesize_method): Use inform, not warning. 1883 18842005-06-06 Hans-Peter Nilsson <hp@axis.se> 1885 1886 * config-lang.in (target_libs): Remove target-gperf. 1887 18882005-06-05 Mark Mitchell <mark@codesourcery.com> 1889 1890 PR c++/21619 1891 * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro. 1892 * parser.c (cp_parser_postfix_expression): Allow non-constant 1893 expressions as arguments to __builtin_constant_p. 1894 * tree.c (builtin_valid_in_constant_expr_p): Use 1895 DECL_IS_BUILTIN_CONSTANT_P. 1896 18972005-06-03 Mark Mitchell <mark@codesourcery.com> 1898 1899 PR c++/21853 1900 * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on 1901 the pointed-to type for a pointer-to-member. 1902 1903 PR c++/21336 1904 * cp-tree.h (grok_op_properties): Remove friendp parameter. 1905 * decl.c (grokfndecl): Adjust call. 1906 (grok_op_properties): Determine the class of which the function is 1907 a member by looking at its DECL_CONTEXT, not current_class_type. 1908 * pt.c (tsubst_decl): Adjust call to grok_op_properties. 1909 19102005-06-02 Nathan Sidwell <nathan@codesourcery.com> 1911 1912 * method.c (synthesize_method): Add addtional arg to warning call. 1913 1914 PR c++/21280 1915 * Make-lang.in (method.o): Add diagnostic.h 1916 * decl.c (start_preparsed_function): Use decl's location for file 1917 info. 1918 * decl2.c (cp_finish_file): Set input_location before synthesizing 1919 a function. 1920 (mark_used): When deferring a synthesized function, save current 1921 location. Do not set function's location when actually 1922 synthesizing it. 1923 * method.c: #include diagnostic.h. 1924 (synthesize_method): Set the functions source location. Show 1925 needed location if errors are emitted. 1926 1927 * decl.c (start_decl): Simplify specialization handling. Remove 1928 unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check. 1929 * mangle.c (discriminator_for_local_entity): Use VEC_index. 1930 1931 PR c++/20350 1932 * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE. 1933 1934 PR c++/21151 1935 * name-lookup.c (pushtag): Push local class even in a template. 1936 19372005-05-31 Nathan Sidwell <nathan@codesourcery.com> 1938 1939 PR c++/21165 1940 * init.c (integral_constant_value): Check the type of the 1941 initializer, not the decl. 1942 19432005-05-30 Mark Mitchell <mark@codesourcery.com> 1944 1945 PR c++/21784 1946 * name-lookup.c (do_nonmember_using_decl): Ignore builtin 1947 functions, even when the used name is not a function. 1948 19492005-05-30 Kazu Hirata <kazu@cs.umass.edu> 1950 1951 * operators.def, optimize.c: Update copyright. 1952 19532005-05-28 Mark Mitchell <mark@codesourcery.com> 1954 1955 PR c++/21210 1956 * call.c (standard_conversion): Permit conversions to complex 1957 types if conversion to the corresponding scalar type would be 1958 permitted. 1959 1960 PR c++/21340 1961 * method.c (implicitly_declare_fn): Clear processing_template_decl 1962 when generating implicit declaration. 1963 19642005-05-27 Mark Mitchell <mark@codesourcery.com> 1965 1966 PR c++/21614 1967 * typeck.c (get_member_function_from_ptrfunc): Do not attempt 1968 conversions to base classes of incomplete types. 1969 19702005-05-27 Ian Lance Taylor <ian@airs.com> 1971 1972 * semantics.c (add_stmt): Add C++ frontend specific version. 1973 * cp-tree.h (STMT_IS_FULL_EXPR_P): Define. 1974 (stmts_are_full_exprs_p): Declare. 1975 19762005-05-27 Roger Sayle <roger@eyesopen.com> 1977 Giovanni Bajo <giovannibajo@gcc.gnu.org> 1978 1979 * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code. 1980 * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead 1981 of CONVERT_EXPR. 1982 (cp_parser_unary_expression): Likewise. 1983 * typeck.c (build_unary_op): Likewise. 1984 * call.c (add_builtin_candidate, build_new_op): Likewise. 1985 * error.c (dump_expr): Likewise. 1986 * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise. 1987 * decl.c (ambi_op_p, grok_op_properties): Likewise. 1988 * dump.c (dump_op): Likewise. 1989 * lex.c (init_operators): Likewise. 1990 * operators.def ("+"): Likewise. 1991 * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a 1992 conversion, if the result and argument types differ. 1993 * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much 1994 like a NOP_EXPR when !processing_template_decl. 1995 1996 * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype. 1997 (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code. 1998 19992005-05-27 Nathan Sidwell <nathan@codesourcery.com> 2000 2001 PR c++/21455 2002 * typeck.c (get_delta_difference): Cope with incomplete but equal 2003 classes. Reorder if. 2004 2005 PR c++/21681 2006 * parser.c (cp_parser_late_parsing_for_member): Disable access 2007 checking for template functions. 2008 20092005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2010 2011 PR c++/21768 2012 * pt.c (redeclare_class_template): Change error message according 2013 to coding conventions. 2014 20152005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2016 2017 * call.c (build_op_delete_call): Fix quoting in error message. 2018 20192005-05-25 Richard Henderson <rth@redhat.com> 2020 2021 PR libgcj/21692 2022 * cp-tree.h (make_alias_for): Declare. 2023 * decl2.c (build_java_method_aliases): New. 2024 (cp_finish_file): Call it. 2025 * method.c (make_alias_for): Split out from ... 2026 (make_alias_for_thunk): ... here. 2027 20282005-05-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2029 2030 PR c++/21686 2031 * semantics.c (finish_id_expression): Fix quoting in error message. 2032 20332005-05-25 DJ Delorie <dj@redhat.com> 2034 2035 * decl.c (duplicate_decls): Move warning control from if() to 2036 warning(OPT_*). 2037 * name-lookup.c (parse_using_directive): Likewise. 2038 * parser.c (cp_parser_elaborated_type_specifier): Likewise. 2039 (cp_parser_init_declarator): Likewise. 2040 * tree.c (handle_com_interface_attribute): Likewise. 2041 20422005-05-24 Ziemowit Laski <zlaski@apple.com> 2043 2044 * class.c (layout_class_type): Do not issue C++ ABI warnings 2045 for ObjC structs. 2046 * decl.c (objc_mark_locals_volatile): Streamline by calling 2047 objc_volatilize_decl(). 2048 * parser.c (cp_parser_objc_message_expression): Allow simple 2049 type specifiers (instead of merely type names) as message 2050 receivers. 2051 * pt.c (template_args_equal): Do not call objc_comptypes(). 2052 * typeck.c (composite_pointer_type): If both pointers are 2053 ObjC-esque, arbitrarily choose the first; do not call 2054 objc_comptypes(). 2055 (comptypes): Do not call objc_comptypes(). 2056 (convert_for_assignment): Call objc_compare_types(). 2057 (comp_ptr_ttypes_real): Call objc_type_quals_match() before 2058 concluding that types do not match. 2059 20602005-05-24 Andrew Pinski <pinskia@physics.uc.edu> 2061 2062 PR C++/21645 2063 * optimize.c (update_cloned_parm): Copy the TYPE also from the 2064 original one. 2065 20662005-05-19 Jakub Jelinek <jakub@redhat.com> 2067 2068 PR c++/21495 2069 * decl.c (grokdeclarator): Fix "storage class specified for" 2070 error reporting. 2071 20722005-05-19 Kazu Hirata <kazu@cs.umass.edu> 2073 2074 * parser.c: Fix comment typos. 2075 20762005-05-18 Geoffrey Keating <geoffk@apple.com> 2077 2078 * Make-lang.in (cc1plus-dummy): New. 2079 (cc1plus-checksum.c): New. 2080 (cc1plus-checksum.o): New. 2081 (cc1plus): Add cc1plus-checksum.o. 2082 20832005-05-17 H.J. Lu <hongjiu.lu@intel.com> 2084 2085 PR C++/19664 2086 * decl2.c (determine_visibility): Don't set visibility to 2087 hidden if it has been set explicitly by user. 2088 20892005-05-17 Ziemowit Laski <zlaski@apple.com> 2090 Mike Stump <mrs@apple.com> 2091 2092 Yet more Objective-C++... 2093 2094 * cp-objcp-common.h (cxx_get_alias_set): Move from 2095 here... 2096 (cxx_warn_unused_global_decl): Likewise. 2097 (cp_expr_size): Likewise. 2098 (cp_tree_size): Likewise. 2099 (cp_var_mod_type_p): Likewise. 2100 (cxx_initialize_diagnostics): Likewise. 2101 (cxx_types_compatible_p): Likewise. 2102 * cp-tree.h: to here. 2103 (do_poplevel): Add. 2104 * lex.c (D_OBJC): Add. 2105 (init_reswords): Add. 2106 * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h. 2107 * parser.c: Add c-common.h include. 2108 * pt.c: Add c-common.h and cp-objcp-common.h includes. 2109 (template_args_equal): Use objc_comptypes as well. 2110 (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well. 2111 * semantics.c (do_poplevel): Remove static. 2112 2113 * decl.c (objc_mark_locals_volatile): Don't change decls that are 2114 already ok. 2115 * decl2.c (generate_ctor_or_dtor_function): Add code to initialize 2116 Objective C++ early enough. 2117 * lex.c (struct resword reswords): Add Objective-C++ support. 2118 * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++. 2119 (cp_parser_objc_message_receiver): Add. 2120 (cp_parser_objc_message_args): Likewise. 2121 (cp_parser_objc_message_expression): Likewise. 2122 (cp_parser_objc_encode_expression): Likewise. 2123 (cp_parser_objc_defs_expression): Likewise. 2124 (cp_parser_objc_protocol_expression): Likewise. 2125 (cp_parser_objc_selector_expression): Likewise. 2126 (cp_parser_objc_expression): Likewise. 2127 (cp_parser_objc_visibility_spec): Likewise. 2128 (cp_parser_objc_method_type): Likewise. 2129 (cp_parser_objc_protocol_qualifiers): Likewise. 2130 (cp_parser_objc_typename): Likewise. 2131 (cp_parser_objc_selector_p): Likewise. 2132 (cp_parser_objc_selector): Likewise. 2133 (cp_parser_objc_method_keyword_params): Likewise. 2134 (cp_parser_objc_method_tail_params_opt): Likewise. 2135 (cp_parser_objc_interstitial_code): Likewise. 2136 (cp_parser_objc_method_signature): Likewise. 2137 (cp_parser_objc_method_prototype_list): Likewise. 2138 (cp_parser_objc_method_definition_list): Likewise. 2139 (cp_parser_objc_class_ivars): Likewise. 2140 (cp_parser_objc_identifier_list): Likewise. 2141 (cp_parser_objc_alias_declaration): Likewise. 2142 (cp_parser_objc_class_declaration): Likewise. 2143 (cp_parser_objc_protocol_declaration): Likewise. 2144 (cp_parser_objc_protocol_refs_opt): Likewise. 2145 (cp_parser_objc_superclass_or_category): Likewise. 2146 (cp_parser_objc_class_interface): Likewise. 2147 (cp_parser_objc_class_implementation): Likewise. 2148 (cp_parser_objc_end_implementation): Likewise. 2149 (cp_parser_objc_declaration): Likewise. 2150 (cp_parser_objc_try_catch_finally_statement): Likewise. 2151 (cp_parser_objc_synchronized_statement): Likewise. 2152 (cp_parser_objc_throw_statement): Likewise. 2153 (cp_parser_objc_statement): Likewise. 2154 (cp_parser_primary_expression): Add Objective-C++. 2155 (cp_parser_statement): Likewise. 2156 (cp_parser_declaration): Likewise. 2157 (cp_parser_simple_type_specifier): Likewise. 2158 (cp_parser_type_name): Likewise. 2159 (cp_parser_parameter_declaration_list): Likewise. 2160 (cp_parser_member_declaration) Likewise. 2161 * tree.c: Include debug.h. 2162 * typeck.c (composite_pointer_type): Add Objective-C++ support. 2163 (finish_class_member_access_expr): Likewise. 2164 (build_function_call): Allow objc to rewrite FUNCTION_DECLs. 2165 (build_modify_expr): Allow objc to generate write barriers. 2166 2167 * Make-lang.in (cp/tree.o): Add debug.h. 2168 * tree.c (lvalue_p_1, case CONST_DECL): Add. 2169 21702005-05-18 Jan Hubicka <jh@suse.cz> 2171 2172 * method.c: Include tree-pass.h 2173 (use_thunk): Lower body before expanding. 2174 21752005-05-17 Jakub Jelinek <jakub@redhat.com> 2176 2177 PR c++/21454 2178 * decl.c (maybe_deduce_size_from_array_init): Call 2179 cp_apply_type_quals_to_decl after completing array type. 2180 21812005-05-16 Richard Henderson <rth@redhat.com> 2182 2183 * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ... 2184 (build_library_fn): ... here. 2185 21862005-05-12 Ian Lance Taylor <ian@airs.com> 2187 2188 * cp-tree.h (cp_stmt_codes): Don't define. 2189 (statement_code_p): Declare. 2190 (STATEMENT_CODE_P): Define. 2191 * lex.c (statement_code_p): Define. 2192 (cxx_init): Use actual codes in stmt_codes initializer, not 2193 cp_stmt_codes macro. Initialize statement_code_p directly, rather 2194 than using INIT_STATEMENT_CODES. 2195 21962005-05-09 Mark Mitchell <mark@codesourcery.com> 2197 2198 * typeck.c (build_unary_op): Do not resort to address arithmetic 2199 when taking the address of a COMPONENT_REF. 2200 22012005-05-08 Kazu Hirata <kazu@cs.umass.edu> 2202 2203 * class.c (vtbl_init_data_s): Change the type of fns to 2204 VEC(tree,gc)*. 2205 (build_vtbl_initializer, add_vcall_offset, add_vcall_offset): 2206 Use VEC instead of VARRAY. 2207 22082005-05-07 Richard Sandiford <rsandifo@redhat.com> 2209 2210 * mangle.c: Remove a reference to the MIPS -mint64 option. 2211 22122005-05-07 Kazu Hirata <kazu@cs.umass.edu> 2213 2214 * decl.c (wrapup_globals_for_namespace): Use VEC instead of 2215 VARRAY. 2216 * name-lookup.c (add_decl_to_level, begin_scope): Likewise. 2217 * name-lookup.h (cp_binding_level): Change the type of 2218 static_decls to VEC(tree,gc)*. 2219 2220 * mangle.c (globals): Change the type of substitutions to 2221 VEC(tree,gc)*. 2222 (dump_substitution_candidates, add_substitution, 2223 find_substitution, finish_mangling, init_mangle): Use VEC 2224 instead of VARRAY. 2225 22262005-05-06 Kazu Hirata <kazu@cs.umass.edu> 2227 2228 * decl2.c (spew_debug): Remove. 2229 2230 * decl2.c (ssdf_decls, start_static_storage_duration_function, 2231 generate_ctor_or_dtor_function): Use VEC instead of VARRAY. 2232 2233 * decl2.c (pending_statics, note_vague_linkage_var, 2234 cp_finish_file): Use VEC instead of VARRAY. 2235 (pending_statics_used): Remove. 2236 22372005-05-05 Kazu Hirata <kazu@cs.umass.edu> 2238 2239 * decl2.c (deferred_fns, note_vague_linkage_fn, 2240 cp_finish_file): Use VEC instead of VARRAY. 2241 22422005-05-05 Mark Mitchell <mark@codesourcery.com> 2243 2244 PR c++/21352 2245 * pt.c (build_non_dependent_expr): Use is_overloaded_fn. 2246 22472005-05-05 Kazu Hirata <kazu@cs.umass.edu> 2248 2249 * pt.c: Fix a comment typo. 2250 22512005-05-04 Kazu Hirata <kazu@cs.umass.edu> 2252 2253 * cp-tree.h (language_function): Change the type of 2254 x_local_names to VEC. 2255 * decl.c (push_local_name): Adjust uses of local_names. 2256 22572005-05-03 Kazu Hirata <kazu@cs.umass.edu> 2258 2259 * friend.c, lex.c, mangle.c, repo.c: Update copyright. 2260 22612005-05-02 Kazu Hirata <kazu@cs.umass.edu> 2262 2263 * class.c (local_classes, init_class_processing): Use VEC 2264 instead of VARRAY. 2265 * cp-tree.h (local_classes): Likewise. 2266 * mangle.c (discriminator_for_local_entity): Likewise. 2267 * name-lookup.c (pushtag): Likewise. 2268 2269 * class.c (current_lang_depth, push_lang_context, 2270 pop_lang_context): Use VEC instead of VARRAY. 2271 * cp-tree.h (saved_scope): Use VEC for lang_base instead of 2272 VARRAY. 2273 * name-lookup.c (push_to_top_level): Use VEC instead of 2274 VARRAY. 2275 22762005-05-02 Paolo Bonzini <bonzini@gnu.org> 2277 2278 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin 2279 for BUILT_IN_MD built-ins. 2280 22812005-05-02 Michael Matz <matz@suse.de> 2282 2283 PR c++/19542 2284 * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C 2285 common frontend. 2286 (null_node): Remove. 2287 * lex.c (cxx_init): Move null_node initialisation to C common frontend. 2288 22892005-04-25 Ian Lance Taylor <ian@airs.com> 2290 2291 * cp-tree.def: Add EXPR_STMT. 2292 * cp-tree.h (cp_stmt_codes): Add EXPR_STMT. 2293 (EXPR_STMT_EXPR): Define. 2294 * cp-gimplify.c: Include "flags.h". 2295 (gimplify_expr_stmt): New static function. 2296 (cp_gimplify_expr): Handle EXPR_STMT. 2297 * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression 2298 rather than pp_expression. 2299 (pp_cxx_statement): Handle EXPR_STMT. 2300 * dump.c (cp_dump_tree): Handle EXPR_STMT. 2301 * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes 2302 initializer. 2303 23042005-04-25 Andrew Pinski <pinskia@physics.uc.edu> 2305 2306 PR C++/21188 2307 * rtti.c (ifnonnull): Cast the zero comparison operand 2308 to the correct type. 2309 23102005-04-24 Jakub Jelinek <jakub@redhat.com> 2311 2312 PR middle-end/20991 2313 * class.c: Include cgraph.h. 2314 (cp_fold_obj_type_ref): Set node->local.vtable_method. 2315 * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H). 2316 23172005-04-12 Markus F.X.J. Oberhumer <markus@oberhumer.com> 2318 2319 * mangle.c (write_builtin_type): Handle integer types which are 2320 not one of the shared integer type nodes and emit a "vendor 2321 extended builtin type" with an encoding in the form of "u5int96". 2322 23232005-04-24 Ian Lance Taylor <ian@airs.com> 2324 2325 * cp-tree.def (USING_STMT): Change class to tcc_statement. 2326 (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise. 2327 (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise. 2328 (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise. 2329 23302005-04-23 DJ Delorie <dj@redhat.com> 2331 2332 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c, 2333 init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c, 2334 repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning() 2335 callers. 2336 23372005-04-22 Per Bothner <per@bothner.com> 2338 2339 * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if 2340 input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__. 2341 23422005-04-22 Alexandre Oliva <aoliva@redhat.com> 2343 2344 PR c++/21087 2345 * name-lookup.c (push_overloaded_decl): Do not overload with 2346 non-duplicate anticipated built-in. 2347 23482005-04-21 Kazu Hirata <kazu@cs.umass.edu> 2349 2350 * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT, 2351 VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove. 2352 23532005-04-21 Nathan Sidwell <nathan@codesourcery.com> 2354 2355 * cp-tree.h: Adjust for new VEC API. 2356 Define VEC(tree_pair_s,gc). 2357 (struct save_scope): Adjust. 2358 (struct lang_type_class): Adjust. 2359 (unemitted_tinfo_decls): Adjust. 2360 * class.c (add_method, resort_type_method_vec, 2361 finish_struct_methods, struct find_final_overrider_data, 2362 dfs_find_final_overrider_pre, find_final_overrider, 2363 get_vcall_index, warn_hidden, walk_subobject_offsets, 2364 check_methods, fixup_inline_methods, end_of_class, 2365 warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer, 2366 add_vcall_offset): Adjust. 2367 * decl.c (xref_basetypes, finish_method): Adjust. 2368 * decl2.c (check_classfn): Adjust. 2369 * init.c (sort_mem_initializers, push_base_cleanups): Adjust. 2370 * method.c (do_build_copy_constructor): Adjust. 2371 * name-lookup.c (new_class_binding, store_binding, 2372 store_bindings, store_class_bindings): Adjust. 2373 * name-lookup.h: Define VEC(cxx_saved_binding,gc), 2374 VEC(cp_class_binding,gc). 2375 (struct cp_binding_level): Adjust. 2376 * parser.c: Define VEC(cp_token_position,heap). 2377 (struct cp_lexer): Adjust. 2378 (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy, 2379 cp_lexer_save_tokens): Adjust. 2380 * pt.c (retrieve_specialization, 2381 check_explicit_specialization): Adjust. 2382 * rtti.c (unemitted_tinfo_decls): Adjust. 2383 (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init, 2384 get_pseudo_ti_desc): Adjust. 2385 * search.c (dfs_access_in_type, lookup_conversion_operator, 2386 lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible, 2387 dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust. 2388 * semantics.c: Define VEC(deferred_access,gc). 2389 (push_deferring_access_checks): Adjust. 2390 * typeck2.c (abstract_virtuals_error): Adjust. 2391 23922005-04-20 Ian Lance Taylor <ian@airs.com> 2393 2394 * cp-tree.def: Add STMT_EXPR. 2395 * cp-tree.h (STMT_EXPR_NO_SCOPE): Define. 2396 (STMT_EXPR_STMT): Define. 2397 * cxx-pretty-print.c (pp_cxx_primary_expression): Handle 2398 STMT_EXPR. 2399 (pp_cxx_expression): Likewise. 2400 (pp_cxx_statement): Call pp_cxx_statement, not pp_statement. 2401 * dump.c (cp_dump_tree): Handle STMT_EXPR. 2402 24032005-04-18 Kazu Hirata <kazu@cs.umass.edu> 2404 2405 * decl.c (expand_static_init): Call build2 and build3 instead 2406 of build. 2407 2408 * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove. 2409 24102005-04-17 Ian Lance Taylor <ian@airs.com> 2411 2412 * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR. 2413 * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle 2414 ARROW_EXPR. 2415 (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR. 2416 (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and 2417 ALIGNOF_EXPR. 2418 * typeck.c (cxx_sizeof_or_alignof_type): Update call to 2419 c_sizeof_or_alignof_type for change in parameter type. 2420 24212005-04-16 Mark Mitchell <mark@codesourcery.com> 2422 2423 PR c++/21025 2424 * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to 2425 which sizeof/alignof is dependent, rather than just whether we are 2426 processing_template_decl. 2427 24282005-04-17 Kazu Hirata <kazu@cs.umass.edu> 2429 2430 * cp-tree.h (LOOKUP_GLOBAL): Remove. 2431 (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION, 2432 LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES, 2433 LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust 2434 their values. 2435 24362005-04-15 Richard Henderson <rth@redhat.com> 2437 2438 PR middle-end/14311 2439 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin. 2440 24412005-04-15 Kazu Hirata <kazu@cs.umass.edu> 2442 2443 * cp-tree.h (lang_type_class): Remove redefined. Move 2444 java_interface into where redefined was. Increment the width 2445 of dummy. 2446 (TYPE_REDEFINED): Remove. 2447 24482005-04-14 Kazu Hirata <kazu@cs.umass.edu> 2449 2450 * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS, 2451 CLASSTYPE_TEMPLATE_LEVEL): Remove. 2452 24532005-04-11 Mark Mitchell <mark@codesourcery.com> 2454 2455 * decl2.c (determine_visibility): Don't use export_class_data. 2456 (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and 2457 TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY. 2458 24592005-04-09 Kazu Hirata <kazu@cs.umass.edu> 2460 2461 * cp-tree.h (cxx_alignof): Remove. 2462 2463 * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove. 2464 2465 * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST, 2466 CONV_STATIC_CAST): Remove. 2467 2468 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove. 2469 2470 * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove. 2471 2472 * cp-tree.h (cp_deprecated): Remove. 2473 24742005-04-08 Ian Lance Taylor <ian@airs.com> 2475 2476 * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT, 2477 CONTINUE_STMT, SWITCH_STMT. 2478 * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT, 2479 BREAK_STMT, CONTINUE_STMT, SWITCH_STMT. 2480 (WHILE_COND, WHILE_BODY): Define. 2481 (DO_COND, DO_BODY): Define. 2482 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define. 2483 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define. 2484 * cp-gimplify.c (enum bc_t): Define. 2485 (struct cp_gimplify_ctx, ctxp): Define. 2486 (push_context, pop_context): New static functions. 2487 (begin_bc_block, finish_bc_block): New static functions. 2488 (build_bc_goto): New static function. 2489 (gimplify_cp_loop, gimplify_for_stmt): New static functions. 2490 (gimplify_while_stmt, gimplify_do_stmt): Likewise. 2491 (gimplify_switch_stmt): Likewise. 2492 (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT, 2493 SWITCH_STMT, CONTINUE_STMT, BREAK_STMT. 2494 (cp_genericize): Call push_context and pop_context. 2495 * semantics.c (finish_break_stmt): Just call build_stmt 2496 (BREAK_STMT) rather than build_break_stmt. 2497 (finish_continue_stmt): Corresponding change. 2498 * decl.c (pop_switch): Update call to c_do_switch_warnings for new 2499 parameters. 2500 * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT, 2501 WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT. 2502 * dump.c (cp_dump_tree): Likewise. 2503 25042005-04-08 Mark Mitchell <mark@codesourcery.com> 2505 2506 PR c++/20905 2507 * parser.c (cp_parser_type_specifier_seq): Add is_condition 2508 parameter. 2509 (cp_parser_new_type_id): Pass it. 2510 (cp_parser_condition): Likewise. 2511 (cp_parser_conversion_type_id): Likewise. 2512 (cp_parser_type_id): Likewise. 2513 (cp_parser_type_specifier_seq): In a condition, do not allow 2514 invalid type-specifier combinations. 2515 (cp_parser_exception_declaration): Adjust call to 2516 cp_parser_type_specifier_seq. 2517 2518 * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P. 2519 * cp-tree.h (struct tinst_level): Add in_system_header_p. 2520 (TINST_IN_SYSTEM_HEADER_P): New macro. 2521 (make_tinst_level): Remove. 2522 * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on 2523 the instantiated class. 2524 (push_tinst_level): Do not use make_tinst_level. Set 2525 TINST_IN_SYSTEM_HEADER_P. 2526 (pop_tinst_level): Likewise. 2527 (instantiate_class_template): Set in_system_header. 2528 (instantiate_pending_templates): Likewise. 2529 * tree.c (make_tinst_level): Remove. 2530 25312005-04-06 Joseph S. Myers <joseph@codesourcery.com> 2532 2533 * decl.c (start_decl): Apply pending #pragma weak regardless of 2534 scope. 2535 25362005-04-06 Mark Mitchell <mark@codesourcery.com> 2537 2538 PR c++/20212 2539 * pt.c (regenerate_decl_from_template): Copy attributes for 2540 parameters from the pattern to the instantiation. 2541 25422005-04-05 Mark Mitchell <mark@codesourcery.com> 2543 2544 PR c++/20734 2545 * cp-tree.def (OFFSET_REF): Correct comments. 2546 * init.c (build_offset_ref): Remove misleading comment. 2547 * typeck.c (build_unary_op): Handle pointer-to-member creation 2548 here, rather than ... 2549 (unary_complex_lvalue): ... here. 2550 25512005-04-06 Jason Merrill <jason@redhat.com> 2552 2553 PR c++/19312 2554 * tree.c (stabilize_init): Don't bother trying to stabilize 2555 something with no side-effects. 2556 25572005-04-05 Mark Mitchell <mark@codesourcery.com> 2558 2559 PR c++/20763 2560 * decl.c (grokdeclarator): Correct attribute handling. 2561 25622005-04-05 Mark Mitchell <mark@codesourcery.com> 2563 2564 PR c++/19159 2565 * decl2.c (import_export_decl): Use non-COMDAT external linkage 2566 for virtual tables, typeinfo, etc. that will be emitted in only 2567 one translation unit on systems without weak symbols. 2568 25692005-04-04 Mark Mitchell <mark@codesourcery.com> 2570 2571 PR c++/20679 2572 * parser.c (cp_parser_template_name): Fix thinko. 2573 25742005-04-04 Nathan Sidwell <nathan@codesourcery.com> 2575 2576 PR c++/20746 2577 * method.c (use_thunk): Protect covariant pointer return 2578 adjustments from NULL pointers. 2579 25802005-04-04 Jan Hubicka <jh@suse.cz> 2581 2582 * decl2.c (finish_objects): Revert my previous patch. 2583 (cp_finish_file): Likewise. 2584 25852005-04-03 Kazu Hirata <kazu@cs.umass.edu> 2586 2587 * pt.c: Fix comment typos. 2588 25892005-04-03 Nathan Sidwell <nathan@codesourcery.com> 2590 2591 PR c++/20723 2592 * pt.c (more_specialized_fn): Member functions are unordered wrt 2593 non-members. Conversion operators are unordered wrt other 2594 functions. 2595 25962005-04-01 Nathan Sidwell <nathan@codesourcery.com> 2597 2598 * call.c (add_template_candidates_real): Remove length parameter 2599 from fn_type_unification call. 2600 * class.c (resolve_address_of_overloaded_function): Likewise 2601 * cp-tree.h (fn_type_unification): Remove length parameter. 2602 * pt.c (get_bindings_overload): Remove. 2603 (get_bindings_real): Rename to ... 2604 (get_bindings): ... here. Remove length and strict 2605 parameters. Change return type flag to boolean. Remove original 2606 forwarding function. 2607 (determine_specialization): Adjust get_bindings call. 2608 (fn_type_unification): Remove length parameter. Adjust. 2609 (type_unification_real): Remove length parameter. Adjust. 2610 (resolve_overloaded_unification): Adjust get_bindings call. 2611 (try_one_overload): Simplify confusing cascaded if control flow. 2612 (unify): Remove length paramter from type_unification_real call. 2613 (most_specialized_instantiation): Adjust get_bindings calls. 2614 (most_specialized): Likewise. 2615 26162005-03-31 Nathan Sidwell <nathan@codesourcery.com> 2617 2618 PR c++/19203, implement DR 214 2619 * call.c (joust): Use more_specialized_fn. 2620 * cp-tree.h (DEDUCE_ORDER): Remove. 2621 (more_specialized): Replace with ... 2622 (more_specialized_fn): ... this. 2623 * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER 2624 case. 2625 (type_unification_real): Remove DEDUCE_ORDER case. 2626 (more_specialized): Replace with ... 2627 (more_specialized_fn): ... this. Implement DR 214. 2628 (most_specialized_instantiation): Use get_bindings_real directly. 2629 26302005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net> 2631 2632 PR c++/18644 2633 * call.c (build_new_op): Remove check for -Wsynth. 2634 26352005-03-31 Jan Hubicka <jh@suse.cz> 2636 2637 * decl2.c (finish_objects): Mark ctor as needed. 2638 (cp_finish_file): Output variables only in nonunit-at-a-time. 2639 26402005-03-29 Richard Henderson <rth@redhat.com> 2641 2642 PR c/20519 2643 * decl.c (cp_complete_array_type): Rename from complete_array_type. 2644 Use the new complete_array_type in c-common.c. Update all callers. 2645 * cp-tree.h (cp_complete_array_type): Update to match. 2646 26472005-03-24 Geoffrey Keating <geoffk@apple.com> 2648 2649 * typeck.c (build_static_cast_1): Allow scalar_cast between 2650 any integral, floating, or enumeration type. 2651 26522005-03-24 Steven Bosscher <stevenb@suse.de> 2653 2654 * typeck.c (comptypes): First determine if the types are compatible 2655 from a target-independent point of view. Check target attributes 2656 last. 2657 2658 * class.c (build_base_path): 2659 (build_vbase_offset_vtbl_entries): 2660 (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN. 2661 * error.c (dump_expr): Likewise. 2662 * init.c (build_zero_init, expand_cleanup_for_base, 2663 build_vec_delete_1): Likewise. 2664 * mangle.c (write_integer_cst): Likewise. 2665 * method.c (thunk_adjust): Likewise. 2666 * pt.c (convert_nontype_argument, tsubst, unify): Likewise. 2667 * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise. 2668 * typeck.c (build_ptrmemfunc_access_expr, 2669 (get_member_function_from_ptrfunc): Likewise. 2670 26712005-03-23 Joseph S. Myers <joseph@codesourcery.com> 2672 2673 * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove. 2674 26752005-03-23 Joseph S. Myers <joseph@codesourcery.com> 2676 2677 * cp-tree.h (perform_integral_promotions): Remove. 2678 (default_conversion): Add. 2679 26802005-03-22 Mark Mitchell <mark@codesourcery.com> 2681 2682 * parser.c (cp_parser_warn_min_max): New function. 2683 (cp_parser_binary_expression): Use it. 2684 (cp_parser_assignment_operator_opt): Likewise. 2685 (cp_parser_operator): Likewise. 2686 26872005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2688 2689 PR c++/19980 2690 * decl.c (start_preparsed_function): Robustify. 2691 26922005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2693 2694 PR c++/20499 2695 * parser.c (cp_parser_class_head): Return NULL_TREE when 2696 encountering a redefinition. 2697 26982005-03-22 Nathan Sidwell <nathan@codesourcery.com> 2699 2700 PR c++/20465 2701 PR c++/20381 2702 * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a 2703 template. 2704 27052005-03-21 Paolo Carlini <pcarlini@suse.de> 2706 2707 PR c++/20461 2708 PR c++/20536 2709 * init.c (emit_mem_initializers): Don't crash on undefined 2710 types. 2711 27122005-03-21 Paolo Carlini <pcarlini@suse.de> 2713 2714 PR c++/20147 2715 * semantics.c (finish_stmt_expr_expr): Return immediately 2716 if error_operand_p (expr). 2717 27182005-03-21 Joseph S. Myers <joseph@codesourcery.com> 2719 2720 * cp-tree.h (lvalue_or_else, lvalue_p): New. 2721 * typeck.c (lvalue_or_else): New. Call lvalue_error. 2722 27232005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2724 2725 PR c++/20240 2726 * decl.c (decls_match): Compare context of VAR_DECL. 2727 27282005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2729 2730 PR c++/20333 2731 * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>: 2732 Check the return value of cp_parser_nested_name_specifier. 2733 27342005-03-18 Dale Johannesen <dalej@apple.com> 2735 2736 * cp/tree.c (cp_tree_equal): Handle SSA_NAME. 2737 27382005-03-18 Paolo Carlini <pcarlini@suse.de> 2739 2740 PR c++/20463 2741 * parser.c (cp_parser_diagnose_invalid_type_name): 2742 Check TYPE_BINFO (current_class_type) before attempting 2743 to emit inform messages. 2744 27452005-03-17 Paolo Carlini <pcarlini@suse.de> 2746 2747 PR c++/19966 2748 * cp-tree.h (grok_op_properties): Change return type to void. 2749 * decl.c (grok_op_properties): Return early - don't check the 2750 arity - in case of a static member or an operator that cannot 2751 be non-member; tidy a bit. 2752 27532005-03-17 Nathan Sidwell <nathan@codesourcery.com> 2754 2755 PR c++/20186 2756 * pt.c (contains_dependent_cast_p): Remove. 2757 (fold_non_dependent_expr): Don't use it. 2758 (value_dependent_expression_p): Use a switch statement. 2759 reference_exprs can be dependent. 2760 27612005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2762 2763 PR c++/4403 2764 PR c++/9783, DR433 2765 * name-lookup.c (pushtag): Skip template parameter scope when 2766 scope is ts_global. Don't push tag into template parameter 2767 scope. 2768 * pt.c (instantiate_class_template): Reorder friend class 2769 template substitution to handle non-dependent friend class 2770 that hasn't been previously declared. 2771 27722005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2773 2774 Friend class name lookup 5/n 2775 PR c++/1016 2776 * cp-tree.h (pushtag): Adjust declaration. 2777 * decl.c (lookup_and_check_tag): Call lookup_type_scope if 2778 lookup_name fails. 2779 (xref_tag): Adjust call to pushtag. Make hidden class visible. 2780 (start_enum): Adjust call to pushtag. 2781 * name-lookup.c (ambiguous_decl): Ignore hidden names. 2782 (qualify_lookup): Change return type to bool. 2783 (hidden_name_p): New function. 2784 (lookup_namespace_name, unqualified_namespace_lookup, 2785 lookup_name_real): Use it. 2786 (lookup_type_scope): Update comments. 2787 (maybe_process_template_type_declaration): Change parameter name 2788 from globalize to is_friend. 2789 (pushtag): Change globalize parameter of type int to tag_scope. 2790 Hide name if introduced by friend declaration. 2791 * name-lookup.h (hidden_name_p): Add declaration. 2792 * parser.c (cp_parser_lookup_name): Don't deal with hidden name 2793 here. 2794 * pt.c (push_template_decl_real): Make hidden class template 2795 visible. 2796 (lookup_template_class, instantiate_class_template): Adjust call 2797 to pushtag. 2798 * semantics.c (begin_class_definition): Likewise. 2799 * rtti.c (init_rtti_processing, build_dynamic_cast_1, 2800 tinfo_base_init, emit_support_tinfos): Use ts_current instead of 2801 ts_global. 2802 28032005-03-13 Mark Mitchell <mark@codesourcery.com> 2804 2805 PR c++/20157 2806 * pt.c (determine_specialization): Reject non-specializations. 2807 28082005-03-11 Per Bothner <per@bothner.com> 2809 2810 * cp-tree.h (struct cp_declarator): New id_loc field. 2811 * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's 2812 location using c_lex_with_flags, instead of input_location. 2813 (cp_parser_direct_declarator): Set declarator's id_loc from 2814 cp_token's id_loc. 2815 28162005-03-10 Jakub Jelinek <jakub@redhat.com> 2817 2818 PR c++/18384, c++/18327 2819 * decl.c (reshape_init_array): Use UHWI type for max_index_cst 2820 and index. Convert max_index to size_type_node if it isn't 2821 host_integerp (, 1). 2822 28232005-03-09 Mark Mitchell <mark@codesourcery.com> 2824 2825 PR c++/20208 2826 * pt.c (tsubst_decl): Apply array-to-pointer and 2827 function-to-pointer conversions to function arguments. 2828 (regenerate_decl_from_template): Likewise. 2829 28302005-03-09 Paolo Carlini <pcarlini@suse.de> 2831 2832 PR c++/16859 2833 * decl.c (complete_array_type): In pedantic mode, return 2834 3 for an empty initializer list as the initializer for an 2835 array of unknown bound (8.5.1/4). 2836 (maybe_deduce_size_from_array_init): Fix final test to use 2837 the above. 2838 28392005-03-08 Nathan Sidwell <nathan@codesourcery.com> 2840 2841 PR c++/20186 2842 * pt.c (contains_dependent_cast_p): New. 2843 (fold_non_dependent_expr): Call it. 2844 28452005-03-08 Mark Mitchell <mark@codesourcery.com> 2846 2847 PR c++/20142 2848 * cp-tree.h (target_type): Remove. 2849 * decl.c (layout_var_decl): Remove #if 0'd code. 2850 (cp_finish_decl): Remove dead code. 2851 * init.c (build_vec_init): When determining whether or not the 2852 element type has an asignment operator, look through all array 2853 dimensions. 2854 * typeck.c (target_type): Remove. 2855 28562005-03-07 Mark Mitchell <mark@codesourcery.com> 2857 2858 * class.c (finish_struct_1): Do not warn about non-virtual 2859 destructors in Java classes. 2860 28612005-03-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2862 2863 PR c++/19311 2864 * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF. 2865 * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR 2866 for OFFSET_TYPE. 2867 * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF. 2868 Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR. 2869 (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside 2870 template. 2871 28722005-03-02 Alexandre Oliva <aoliva@redhat.com> 2873 2874 * name-lookup.c (push_overloaded_decl): Don't error if the new 2875 decl matches the old one. 2876 * decl.c (redeclaration_error_message): Likewise. 2877 28782005-03-01 Per Bothner <per@bothner.com> 2879 2880 * decl.c (finish_function): Use SET_EXPR_LOCATION instead of 2881 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION. 2882 28832005-03-01 Nathan Sidwell <nathan@codesourcery.com> 2884 2885 PR c++/20232 2886 * class.c (update_vtable_entry_for_fn): Don't crash on invalid 2887 covariancy. 2888 2889 * cp-tree.g (THUNK_TARGET): Expand comment. 2890 * method.c (use_thunk): Make sure we also use the target, if that 2891 is a thunk. 2892 28932005-02-27 Jakub Jelinek <jakub@redhat.com> 2894 2895 PR c++/20206 2896 * decl.c (cxx_comdat_group): Put thunks for 2897 TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same 2898 comdat group as the thunk target. 2899 29002005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2901 2902 * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c, 2903 parser.c: Fix comment typo(s). 2904 29052005-02-24 Jakub Jelinek <jakub@redhat.com> 2906 2907 PR c++/20175 2908 * decl.c (reshape_init): Don't warn about missing braces if STRING_CST 2909 initializes a char/wchar_t array. 2910 29112005-02-23 Mark Mitchell <mark@codesourcery.com> 2912 2913 PR c++/19878 2914 * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations 2915 with internal linkage. 2916 29172005-02-23 Alexandre Oliva <aoliva@redhat.com> 2918 2919 * decl.c (grokvardecl): Don't exempt anonymous types from having 2920 linkage for variables that have linkage other than "C". 2921 29222005-02-23 Kazu Hirata <kazu@cs.umass.edu> 2923 2924 * cp-objcp-common.h, error.c: Update copyright. 2925 29262005-02-22 Mark Mitchell <mark@codesourcery.com> 2927 2928 PR c++/20073 2929 * decl.c (start_decl_1): Don't clear TREE_READONLY. 2930 (cp_finish_decl): Likewise. 2931 (complete_vars): Call cp_apply_type_quals_to_decl. 2932 * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in 2933 cases where that's not valid. 2934 2935 PR c++/19991 2936 * init.c (integral_constant_value): Iterate if the value of a decl 2937 is itself a constant. 2938 2939 PR c++/20152 2940 * parser.c (cp_parser_class_head): Check for redefintions here. 2941 * semantics.c (begin_class_definition): Not here. 2942 2943 PR c++/20153 2944 * decl2.c (build_anon_union_vars): Add type parameter. 2945 (finish_anon_union): Pass it. 2946 2947 PR c++/20148 2948 * error.c (dump_expr): Do not print the body of a BIND_EXPR. 2949 Handle STATEMENT_LIST. 2950 2951 PR c++/19883 2952 * parser.c (cp_parser_direct_declarator): Always complain about 2953 non-constant array bounds when in a function scope. 2954 * semantics.c (finish_id_expression): Do not mark dependent names 2955 as non-constant. 2956 29572005-02-21 Douglas Gregor <dgregor@cs.indiana.edu> 2958 2959 PR c++/19076 2960 PR c++/6628 2961 * cp-tree.h (cp_apply_type_quals_to_decl): Declared. 2962 * decl.c (grokdeclarator): Pedwarn about qualifying a function 2963 type. 2964 Add qualifiers when declaring a typedef of a function type. 2965 Member function pointers pick up the qualifiers of the typedef 2966 used to declare them. 2967 Don't complain about creating cv-qualified function types. 2968 Complain about qualified function typedefs that are used to 2969 declare non-static member functions or free functions. 2970 Use cp_apply_type_quals_to_decl. 2971 (start_preparsed_function): Use cp_apply_type_quals_to_decl. 2972 (grokclassfn): Use cp_apply_type_quals_to_decl. 2973 * error.c (dump_type_suffix): Print qualifiers for function 2974 types. 2975 * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl. 2976 (tsubst): When substituting a function type into a member 2977 pointer type, pass along the qualifiers. 2978 (unify): Unify member pointers to member function pointers. 2979 * tree.c (cp_build_qualified_type_real): Function types may be 2980 qualified. This includes restrict qualifiers. 2981 * typeck.c (cp_apply_type_quals_to_decl): New function to replace 2982 use of c_apply_type_quals_to_decl. Drops qualifiers that are being 2983 added to function types. 2984 29852005-02-20 Zack Weinberg <zack@codesourcery.com> 2986 2987 PR 18785 2988 * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to 2989 c_common_to_target_charset. Delete bogus comment. 2990 29912005-02-18 Richard Henderson <rth@redhat.com> 2992 2993 PR libstdc++/10606 2994 * except.c (do_get_exception_ptr): New. 2995 (expand_start_catch_block): Use it. 2996 29972005-02-19 Jakub Jelinek <jakub@redhat.com> 2998 2999 * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING 3000 if type is not error_mark_node. 3001 30022005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org> 3003 3004 PR c++/19508 3005 * decl2.c (grokfield): Do not apply attributes to template parameters 3006 as they are ignored by tsubst anyway. 3007 30082005-02-18 Jakub Jelinek <jakub@redhat.com> 3009 3010 PR c++/19813 3011 * decl.c (start_decl_1): Clear TREE_READONLY flag if 3012 its type has TYPE_NEEDS_CONSTRUCTING. 3013 (complete_vars): Likewise. 3014 30152005-02-17 Alexandre Oliva <aoliva@redhat.com> 3016 3017 PR c++/20028 3018 * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a 3019 template along with TYPE_SIZE. 3020 3021 PR c++/20022 3022 * semantics.c (perform_deferred_access_checks): Use 3023 get_deferred_access_checks to get the top of the stack. 3024 30252005-02-15 Alexandre Oliva <aoliva@redhat.com> 3026 3027 PR c++/17788 3028 * class.c (add_implicitly_declared_members, check_field_decl) 3029 (check_field_decls, check_bases): Remove arguments, tests and 3030 assignments of cant_have_default_ctor-related variables. 3031 30322005-02-15 Alexandre Oliva <aoliva@redhat.com> 3033 3034 * decl2.c (mark_used): Set the source location of the used decl to 3035 the current input location here... 3036 * method.c (synthesize_method): ... not here. Set input_location 3037 from the decl instead. 3038 30392005-02-14 Nathan Sidwell <nathan@codesourcery.com> 3040 3041 PR c++/19608 3042 * parser.c (cp_parser_late_parsing_for_member): Use 3043 current_function_decl as scope to push to and from. 3044 3045 PR c++/19884 3046 * pt.c (check_explicit_specialization): Make sure namespace 3047 binding lookup found an overloaded function. 3048 (lookup_template_function): Just assert FNS is an overloaded 3049 function. 3050 3051 PR c++/19895 3052 * decl.c (grokdeclarator): Check for error mark node in ptrmem 3053 construction. 3054 30552005-02-14 Alexandre Oliva <aoliva@redhat.com> 3056 3057 PR c++/17816 3058 * decl.c (redeclaration_error_message): Report redefinition of 3059 pure virtual function. 3060 30612005-02-14 Nathan Sidwell <nathan@codesourcery.com> 3062 3063 PR c++/19891 3064 * class.c (build_simple_base_path): Build the component_ref 3065 directly. 3066 (update_vtable_entry_for_fn): Walk the covariant's binfo chain 3067 rather than using lookup_base. 3068 * search.c (dfs_walk_once): Add non-recursive assert check. 3069 * typeck.c (build_class_member_access_expr): It is possible for 3070 the member type to be both const and volatile. 3071 30722005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3073 3074 PR c++/14479 3075 PR c++/19487 3076 * pt.c (maybe_check_template_type): Remove. 3077 * cp-tree.h (maybe_check_template_type): Remove prototype. 3078 * name-lookup.c (maybe_process_template_type_declaration): Don't 3079 use maybe_check_template_type. 3080 30812005-02-11 Richard Henderson <rth@redhat.com> 3082 3083 PR c++/19632 3084 * pt.c (get_mostly_instantiated_function_type): Save and restore 3085 flag_access_control instead of push/pop_access_scope. 3086 30872005-02-10 Mark Mitchell <mark@codesourcery.com> 3088 3089 PR c++/19755 3090 * decl.c (reshape_init): Issue warnings about missing braces. 3091 30922005-02-11 Kazu Hirata <kazu@cs.umass.edu> 3093 3094 * cp-tree.def, except.c, ptree.c: Update copyright. 3095 30962005-02-09 Mark Mitchell <mark@codesourcery.com> 3097 3098 PR c++/19811 3099 * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before 3100 attempting name lookup. 3101 3102 * parser.c (cp_parser_unqualified_id): Initialize type_decl. 3103 3104 PR c++/19787 3105 * call.c (initialize_reference): Robustify. 3106 3107 PR ++/19732 3108 * decl.c (grokdeclarator): Check for invalid use of destructor 3109 names. 3110 3111 PR c++/19762 3112 * parser.c (cp_parser_unqualified_id): Avoid creating destructor 3113 names with invalid types. 3114 3115 PR c++/19826 3116 * parser.c (cp_parser_direct_declarator): Allow type-dependent 3117 expressions as array bounds. 3118 3119 PR c++/19739 3120 * parser.c (cp_parser_attributes_list): Allow empty lists. 3121 31222005-02-08 Mark Mitchell <mark@codesourcery.com> 3123 3124 PR c++/19733 3125 * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR. 3126 (check_bases): Give warnings about a base class with a 3127 non-virtual destructor, even if it is implicit. 3128 (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR. 3129 (maybe_warn_about_overly_private_class): Don't use 3130 TYPE_HAS_DESTRUCTOR. 3131 (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR. 3132 (check_for_override): Give it external linkage. 3133 (add_implicitly_declared_members): Generate destructors lazily. 3134 (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not 3135 TYPE_HAS_DESTRUCTOR. 3136 (check_bases_and_members): Call check_methods before 3137 check_field_decls. 3138 (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not 3139 TYPE_HAS_DESTRUCTOR. 3140 (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR. 3141 * cp-tree.def (PSEUDO_DTOR_EXPR): Document. 3142 * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove. 3143 (lang_type_class): Add lazy_destructor. 3144 (CLASSTYPE_LAZY_DESTRUCTOR): New macro. 3145 (CLASSTYPE_DESTRUCTORS): Robustify. 3146 (TYPE_HAS_DESTRUCTOR): Remove. 3147 (check_for_override): Declare. 3148 (build_vbase_delete): Remove. 3149 * cvt.c (convert_to_void): Issue errors about pseudo-destructor 3150 expressions. 3151 * decl.c (cxx_maybe_build_cleanup): Remove dead code. 3152 * except.c (dtor_nothrow): Lazily create destructors if necessary. 3153 (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 3154 * init.c (build_delete): Lazily create destructors, if necessary. 3155 (build_vbase_delete): Remove. 3156 * method.c (locate_dtor): Simplify. 3157 (implicitly_declare_fn): Add support for destructors. 3158 * parser.c (cp_parser_lookup_name): Lazily create destructors, if 3159 necessary. 3160 * pt.c (check_explicit_specialization): Don't use 3161 TYPE_HAS_DESTRUCTOR. 3162 (instantiate_class_template): Likewise. 3163 * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR. 3164 * rtti.c (emit_support_tinfos): Robustify. 3165 * search.c (lookup_fnfields_1): Lazily create destructors. 3166 * typeck.c (build_class_member_access_expr): Remove 3167 PSEUDO_DTOR_EXPR handling. 3168 (lookup_destructor): Likewise. 3169 31702005-02-08 Kazu Hirata <kazu@cs.umass.edu> 3171 3172 * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update 3173 copyright. 3174 31752005-02-07 Mark Mitchell <mark@codesourcery.com> 3176 3177 * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations 3178 on boolean variables. 3179 (cp_lexer_stop_debugging): Likewise. 3180 31812005-02-03 Giovanni Bajo <giovannibajo@gcc.gnu.org> 3182 3183 PR c++/17401 3184 * parser.c (cp_parser_pure_specifier): Emit a specific error 3185 message with an invalid pure specifier. 3186 * decl2.c (grok_function_init): Remove. 3187 (grokfield): An initializer for a method is a always a pure 3188 specifier. 3189 31902005-02-02 Matt Austern <austern@apple.com> 3191 3192 PR c++/19628 3193 * cp-tree.h (builtin_valid_in_constant_expr_p): Declare. 3194 * parser.c (cp_parser_postfix_expression): Accept function call in 3195 constant expression if builtin_valid_in_constant_expr_p is true 3196 for that function. 3197 * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly. 3198 * semantics.c (finish_id_expression): Accept function call in constant 3199 expression if builtin_valid_in_constant_expr_p is true for that 3200 function. 3201 * tree.c (builtin_valid_in_constant_expr_p): New. 3202 32032005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3204 3205 PR c++/17413 3206 * pt.c (check_instantiated_args): Improve error message. 3207 Fix logic when to print its second part. 3208 32092005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3210 3211 * cp-tree.h (complete_type_or_else): Remove macro. 3212 (complete_type_or_diagnostic): Rename to complete_type_or_else 3213 and remove last argument. 3214 * typeck.c (complete_type_or_diagnostic): Rename to 3215 complete_type_or_else and remove last argument. 3216 32172005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3218 3219 * cp-tree.h (commonparms): Remove prototype. 3220 (convert_arguments): Likewise. 3221 (PFN_FROM_PTRMEMFUNC): Remove. 3222 * typeck.c (commonparms): Make static. 3223 (convert_arguments): Add prototype. Make static. 3224 (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc. 3225 32262005-01-31 Mark Mitchell <mark@codesourcery.com> 3227 3228 * parser.c (cp_parser_primary_expression): Don't complain about 3229 floating-point literals in integral constant expressions when 3230 !pedantic. 3231 32322005-02-01 Alexandre Oliva <aoliva@redhat.com> 3233 3234 * parser.c (cp_parser_template_id): Revert comment patch too. 3235 3236 PR c++/18757 3237 PR c++/19366 3238 PR c++/19499 3239 * parser.c (cp_parser_template_id): Revert 2004-12-09's patch. 3240 Issue an error when creating the template id. 3241 * pt.c (fn_type_unification): Return early if the explicit 3242 template arg list is an error_mark_node. 3243 32442005-01-31 Mark Mitchell <mark@codesourcery.com> 3245 3246 * decl.c (build_enumerator): Do not issue duplicate error messages 3247 about invalid enumeration constants. 3248 * parser.c (cp_parser_non_integral_constant_expression): Always 3249 set parser->non_integral_constant_expression_p. 3250 (cp_parser_primary_expression): Add cast_p parameter. Issue 3251 errors about invalid uses of floating-point literals in 3252 cast-expressions. 3253 (cp_parser_postfix_expression): Add cast_p parameter. 3254 (cp_parser_open_square_expression): Pass it. 3255 (cp_parser_parenthesized_expression_list): Add cast_p parameter. 3256 (cp_parser_unary_expression): Likewise. 3257 (cp_parser_new_placement): Pass it. 3258 (cp_parser_direct_new_declarator): Likewise. 3259 (cp_parser_new_initializer): Likewise. 3260 (cp_parser_cast_expression): Add cast_p parameter. 3261 (cp_parser_binary_expression): Likewise. 3262 (cp_parser_question_colon_clause): Likewise. 3263 (cp_parser_assignment_expression): Likewise. 3264 (cp_parser_expression): Likewise. 3265 (cp_parser_constant_expression): If an integral constant 3266 expression is invalid, return error_mark_node. 3267 (cp_parser_expression_statement): Pass cast_p. 3268 (cp_parser_condition): Likewise. 3269 (cp_parser_iteration_statement): Likewise. 3270 (cp_parser_jump_statement): Likewise. 3271 (cp_parser_mem_initializer): Likewise. 3272 (cp_parser_template_argument): Likewise. 3273 (cp_parser_parameter_declaration): Likewise. 3274 (cp_parser_initializer): Likewise. 3275 (cp_parser_throw_expression): Likewise. 3276 (cp_parser_attribute_list): Likewise. 3277 (cp_parser_simple_cast_expression): Likewise. 3278 (cp_parser_functional_cast): Likewise. 3279 (cp_parser_late_parsing_default_args): Likewise. 3280 (cp_parser_sizeof_operand): Save/restore 3281 non_integral_constant_expression_p. 3282 32832005-01-31 Mike Stump <mrs@apple.com> 3284 3285 * parser.c (cp_lexer_new_main): Get the first token, first, before 3286 doing anything. 3287 32882005-01-31 Mark Mitchell <mark@codesourcery.com> 3289 3290 * decl.c (start_decl): Add missing parentheses. 3291 32922005-01-30 Mark Mitchell <mark@codesourcery.com> 3293 3294 PR c++/19555 3295 * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation. 3296 * decl.c (duplicate_decls): Do not discard 3297 DECL_IMPLICIT_INSTANTIATION when merging declarations. 3298 (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for 3299 variables that do not have DECL_USE_TEMPLATE. 3300 3301 PR c++/19395 3302 * decl.c (grokdeclarator): Refactor code so that qualified names 3303 are never allowed as the declarator in a typedef. 3304 3305 PR c++/19367 3306 * name-lookup.c (do_nonmember_using_decl): Avoid overloading 3307 builtin declarations. 3308 3309 PR c++/19457 3310 * call.c (convert_like_real): Inline call to 3311 dubious_conversion_warnings here. 3312 * cp-tree.h (dubious_conversion_warnings): Remove. 3313 * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before 3314 setting TREE_NEGATED_INT. 3315 * typeck.c (dubious_conversion_warnings): Remove. 3316 3317 PR c++/19349 3318 * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd 3319 memory. 3320 33212005-01-28 Mark Mitchell <mark@codesourcery.com> 3322 3323 PR c++/19253 3324 * parser.c (cp_parser_diagnose_invalid_type_name): Commit to 3325 tentative parses. 3326 3327 PR c++/19667 3328 * pt.c (redeclare_class_template): Robustify. 3329 33302005-01-27 Steven Bosscher <stevenb@suse.de> 3331 3332 * decl.c (finish_case_label): Use SWITCH_STMT accessor macros 3333 instead of SWITCH_EXPR ones. 3334 * pt.c (tsubst_expr): Likewise. 3335 * semantics.c (begin_switch_stmt, finish_switch_cond, 3336 finish_switch_stmt): Likewise. 3337 33382005-01-26 J"orn Rennecke <joern.rennecke@st.com> 3339 3340 PR c++/18370 3341 * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p. 3342 33432005-01-25 Andrew Pinski <pinskia@physics.uc.edu> 3344 3345 * class.c (abort_fndecl_addr): New variable. 3346 (build_vtbl_initializer): If we have a pure virtual function 3347 share the abort function's address. 3348 Include gt-cp-class.h at the end. 3349 * config-lang.in (gtfiles): Add cp/class.c. 3350 33512005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3352 3353 * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static. 3354 (pp_cxx_function_definition): Make static. 3355 * cxx-pretty-print.h (pp_cxx_statement): Remove prototype. 3356 (pp_cxx_function_definition): Likewise. 3357 33582005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3359 3360 * name-lookup.c (print_binding_level): Make static. 3361 (constructor_name_full): Make static inline. 3362 (current_decl_namespace): Make static. 3363 * name-lookup.h (constructor_name_full): Remove prototype. 3364 (print_binding_level): Likewise. 3365 (current_decl_namespace): Likewise. 3366 33672005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3368 3369 * decl.h (debug_bindings_indentation): Remove. 3370 33712005-01-23 Kazu Hirata <kazu@cs.umass.edu> 3372 3373 * typeck.c: Fix a comment typo. 3374 33752005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org> 3376 3377 PR c++/19208 3378 * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr 3379 at least once. 3380 (tsubst): Use fold_decl_constant_value in place of a bare call to 3381 integral_constant_value. 3382 33832005-01-20 Kazu Hirata <kazu@cs.umass.edu> 3384 3385 * typeck.c (more_qualified_p): Remove. 3386 * cp-tree.h: Remove the corresponding prototype. 3387 33882005-01-19 Matt Austern <austern@apple.com> 3389 3390 * typeck.c (comptypes): Handle return code from objc_comptypes 3391 correctly. 3392 33932005-01-19 Kazu Hirata <kazu@cs.umass.edu> 3394 3395 * cp-tree.h, name-lookup.h: Remove unused prototypes. 3396 33972005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3398 3399 PR c++/19375 3400 * semantics.c (finish_id_expression): Disable access checking for 3401 already lookuped FIELD_DECL. 3402 34032005-01-18 Kazu Hirata <kazu@cs.umass.edu> 3404 3405 * decl.c (delete_block): Remove. 3406 * cp-tree.h: Remove the corresponding prototype. 3407 3408 * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data, 3409 walk_vtables_r, walk_vtables, walk_globals_r, walk_globals): 3410 Remove. 3411 * cp-tree.h: Remove the corresponding prototypes. 3412 3413 * tree.c (count_functions, bound_pmf_p, cp_is_overload_p, 3414 cp_update_decl_after_saving, name_p): Remove. 3415 * cp-tree.h: Remove the corresponding prototypes. 3416 34172005-01-18 Andrew Pinski <pinskia@physics.uc.edu> 3418 3419 PR c/19472 3420 * semantics.c (finish_asm_stmt): Strip nops off 3421 input memory operands. 3422 34232005-01-18 Kazu Hirata <kazu@cs.umass.edu> 3424 3425 * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c, 3426 typeck2.c: Update copyright. 3427 34282005-01-16 Kazu Hirata <kazu@cs.umass.edu> 3429 3430 * class.c (get_enclosing_class): Remove. 3431 * cp-tree.h: Remove the corresponding prototypes. 3432 3433 * cvt.c (convert_lvalue): Remove. 3434 * cp-tree.h: Remove the corresponding prototype. 3435 3436 * pt.c (tinst_for_decl): Remove. 3437 * cp-tree.h: Remove the corresponding prototypes. 3438 3439 * tree.c (hash_chainon): Remove. 3440 * cp-tree.h: Remove the corresponding prototypes. 3441 34422005-01-15 Jakub Jelinek <jakub@redhat.com> 3443 3444 PR c++/19263 3445 * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy 3446 of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified. 3447 34482005-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3449 3450 * Make-lang.in (cp-warn): Don't append $(WERROR). 3451 34522005-01-10 Kazu Hirata <kazu@cs.umass.edu> 3453 3454 * cp-tree.h: Fix a comment typo. 3455 34562005-01-07 Nathan Sidwell <nathan@codesourcery.com> 3457 3458 PR c++/19298 3459 * pt.c (tsubst_qualified_id): Call convert_from_reference. 3460 34612005-01-06 Mark Mitchell <mark@codesourcery.com> 3462 3463 PR c++/19244 3464 * class.c (add_implicitly_declared_members): Remove dead code. 3465 * decl.c (grokfndecl): Add sfk parameter. Use it do set 3466 DECL_CONSTRUCTOR_P. 3467 (grokdeclarator): Adjust calls to grokfndecl. 3468 * method.c (implicitly_declare_fn): Improve documentation. 3469 * parser.c (cp_parser_direct_declarator): Do not consider a 3470 function to be a constructor if the containing class was 3471 originally anonymous. 3472 34732005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3474 3475 PR c++/17154 3476 * search.c (lookup_field_1): Handle using declaration in 3477 class template partial specialization. 3478 34792005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3480 3481 PR c++/19258 3482 * pt.c (push_access_scope): Handle friend defined in class. 3483 (pop_access_scope): Likewise. 3484 34852005-01-06 Nathan Sidwell <nathan@codesourcery.com> 3486 3487 PR c++/19270 3488 * pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately. 3489 (tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete 3490 array-new handling code. Use build_x_binary_op. 3491 34922005-01-05 Nathan Sidwell <nathan@codesourcery.com> 3493 3494 PR c++/19030 3495 * cp-tree.h (start_decl): Take pointer to pushed scope, not bool. 3496 * name-lookup.h (push_scope): Return pushed scope, not flag. 3497 * name-lookup.c (push_scope): Return scope that should be popped, 3498 not a flag. 3499 * decl.c (start_decl): Adjust. 3500 (grokfndecl): Adjust scope push and pop. 3501 * decl2.c (check_classfn): Likewise. 3502 * parser.c (cp_parser_condition, cp_parser_conversion_function_id, 3503 cp_parser_init_declarator, cp_parser_direct_declarator, 3504 cp_parser_class_specifier, cp_parser_class_head, 3505 cp_parser_lookup_name, 3506 cp_parser_constructor_declarator_p): Likewise. 3507 * pt.c (instantiate_class_template, 3508 resolve_typename_type): Likewise. 3509 35102005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3511 3512 PR c++/14136 3513 * parser.c (cp_parser_unqualified_id): Do not issue error message 3514 for typedef-name as destructor declarator when performing an 3515 uncommitted tentative parse. 3516 35172005-01-01 Steven Bosscher <stevenb@suse.de> 3518 3519 PR middle-end/17544 3520 * decl.c (finish_function): Fix comment. Annotate the compiler 3521 generated return with the current file name and line 0. 3522 3523 3524Copyright (C) 2005 Free Software Foundation, Inc. 3525 3526Copying and distribution of this file, with or without modification, 3527are permitted in any medium without royalty provided the copyright 3528notice and this notice are preserved. 3529