12006-12-31 Simon Martin <simartin@users.sourceforge.net> 2 3 PR c++/29731 4 * parser.c (cp_parser_primary_expression): Return error_mark_node when 5 a statement-expression is found outside of a function body. 6 72006-12-28 Kazu Hirata <kazu@codesourcery.com> 8 9 * cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P): 10 Remove. 11 12 * decl2.c: Fix a comment typo. 13 142006-12-21 Andrew Pinski <pinskia@gmail.com> 15 16 PR C++/30225 17 * decl.c (cxx_builtin_function): Only copy the decl if adding 18 it to the std namespace. 19 202006-12-21 Andrew Pinski <pinskia@gmail.com> 21 22 PR C++/30168 23 * optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also. 24 252006-12-22 Kazu Hirata <kazu@codesourcery.com> 26 27 * decl.c: Fix a coment typo. 28 292006-12-18 Ian Lance Taylor <iant@google.com> 30 31 * decl.c (start_preparsed_function): Add support for 32 -Wmissing-declarations. 33 342006-12-16 Simon Martin <simartin@users.sourceforge.net> 35 36 PR c++/29475 37 * cp-tree.h (struct deferred_access_check): New structure to represent a 38 deferred access check. It replaces the previous representation as a tree. 39 (get_deferred_access_checks): Return a vector of struct 40 deferred_access_check instead of a tree list. 41 (perform_access_checks): Take a vector of struct deferred_access_check 42 instead of a tree list. 43 * semantics.c (struct deferred_access): Store the deferred access checks 44 as a vector of struct deferred_access_check instead of a tree list. 45 (push_deferring_access_checks): Handle the change in struct 46 deferred_access. 47 (get_deferred_access_checks): Likewise. 48 (pop_to_parent_deferring_access_checks): Likewise. 49 (perform_or_defer_access_check): Likewise. 50 (perform_access_checks): Take a vector of struct deferred_access_check 51 instead of a tree list. 52 * parser.c (struct tree_check): New structure to store various data 53 associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token. 54 (struct cp_token): Changed the value field to be a union with a pointer to 55 a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID 56 tokens and a tree field for all other tokens. 57 (eof_token): Adjusted due to the change in struct cp_token. 58 (cp_lexer_get_preprocessor_token): Likewise. 59 (cp_lexer_purge_token): Likewise. 60 (cp_lexer_purge_tokens_after): Likewise. 61 (cp_lexer_print_token): Likewise. 62 (cp_parser_error): Likewise. 63 (cp_parser_identifier): Likewise. 64 (cp_parser_string_literal): Likewise. 65 (cp_parser_primary_expression): Likewise. 66 (cp_parser_unqualified_id): Likewise. 67 (cp_parser_parenthesized_expression_list): Likewise. 68 (cp_parser_storage_class_specifier_opt): Likewise. 69 (cp_parser_function_specifier_opt): Likewise. 70 (cp_parser_type_specifier): Likewise. 71 (cp_parser_simple_type_specifier): Likewise. 72 (cp_parser_initializer_list): Likewise. 73 (cp_parser_member_specification_opt): Likewise. 74 (cp_parser_attribute_list): Likewise. 75 (cp_parser_objc_expression): Likewise. 76 (cp_parser_objc_protocol_qualifiers): Likewise. 77 (cp_parser_objc_selector): Likewise. 78 (cp_parser_objc_declaration): Likewise. 79 (cp_parser_objc_statement): Likewise. 80 (cp_parser_omp_clause_name): Likewise. 81 (cp_parser_omp_clause_default): Likewise. 82 (cp_parser_omp_clause_schedule): Likewise. 83 (cp_parser_omp_parallel): Likewise. 84 (cp_parser_initial_pragma): Likewise. 85 (pragma_lex): Likewise. 86 (cp_parser_pre_parsed_nested_name_specifier): Likewise. 87 (cp_parser_nested_name_specifier_opt): Likewise. 88 Use cp_token::u::tree_check_value to save the token's value, the 89 associated deferred checks and its qualifying scope. 90 (cp_parser_template_id): Likewise. 91 (cp_parser_template_declaration_after_export): Adjusted the call to 92 get_deferred_access_checks. 93 (cp_parser_init_declarator): Take the access checks as a vector of struct 94 deferred_access_check instead of a tree list. 95 (cp_parser_single_declaration): Likewise. 96 (cp_parser_perform_template_parameter_access_checks): Likewise. 97 (cp_parser_simple_declaration): Adjusted the call to 98 cp_parser_init_declarator. 99 (cp_parser_explicit_specialization): Adjusted the call to 100 cp_parser_single_declaration. 101 1022006-12-13 Ian Lance Taylor <iant@google.com> 103 104 PR c++/19564 105 PR c++/19756 106 * parser.c (cp_parser_expression_stack_entry): Add field 107 lhs_type. 108 (cp_parser_binary_expression): Track tree code of left hand side 109 of expression. Use it when calling build_x_binary_op. 110 (cp_parser_selection_statement): Add if_p parameter. Change all 111 callers. Warn about ambiguous else. 112 (cp_parser_statement): Add if_p parameter. Change all callers. 113 (cp_parser_implicitly_scoped_statement): Likewise. 114 * typeck.c (build_x_binary_op): Add parameters arg1_code and 115 arg2_code. Change all callers. Call warn_about_parentheses. 116 * cp-tree.h (build_x_binary_op): Update declaration. 117 1182006-12-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 119 120 * decl.c (build_enumerator): Update error message to match C 121 front-end. 122 1232006-12-11 Jan Hubicka <jh@suse.cz> 124 125 * decl2.c (var_finalized_p): Update for renamed varpool functions. 126 1272006-12-09 Zack Weinberg <zackw@panix.com> 128 129 * parser.c (yydebug, enum pragma_omp_clause): Delete. 130 1312006-12-07 Mark Mitchell <mark@codesourcery.com> 132 133 PR c++/29732 134 * cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations. 135 (explicit_class_specialization_p): Declare. 136 * pt.c (explicit_class_specialization_p): New function. 137 * parser.c (cp_parser_init_declarator): Check correct number of 138 template parameters for in-class function definitions. 139 (cp_parser_check_declrator_template_parameters): Stop looking for 140 template classes when we find an explicit specialization. 141 1422006-12-07 Lee Millward <lee.millward@codesourcery.com> 143 144 PR c++/29980 145 * cp_parser_elaborated_type_specifier: Check 146 the return value of check_elaborated_type_specifier. 147 1482006-12-06 Mark Mitchell <mark@codesourcery.com> 149 150 PR c++/29730 151 * parser.c (cp_parser_init_declarator): Reject initialization of 152 functions. 153 1542006-12-05 Mark Mitchell <mark@codesourcery.com> 155 156 PR c++/29729 157 * decl2.c (check_member_template): Move check for member 158 templates in local classes to ... 159 * parser.c (cp_parser_template_declaration_after_export): 160 ... here. 161 162 PR c++/29728 163 * decl.c (check_array_designated_initializer): New function. 164 (maybe_deduce_size_from_array_init): Use it. 165 (reshape_init_array): Likewise. 166 1672006-12-05 Aldy Hernandez <aldyh@redhat.com> 168 169 Merge from gimple-tuples-branch. 170 171 2006-10-05 Aldy Hernandez <aldyh@redhat.com> 172 173 * cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT. 174 (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT. 175 (cxx_omp_clause_copy_ctor): Same. 176 (cxx_omp_clause_assign_op): Same. 177 178 2006-09-28 Aldy Hernandez <aldyh@redhat.com> 179 180 * cp-tree.h (union lang_tree_node): Gimple statements do not 181 have a TREE_CHAIN. 182 (TREE_INDIRECT_USING): Look in base. 183 1842006-12-04 Jan Hubicka <jh@suse.cz> 185 186 * cp-objcp-common.c (cp_expr_size): Return NULL in the case 187 size is undefined. 188 1892006-12-04 Mark Mitchell <mark@codesourcery.com> 190 191 PR c++/29733 192 * pt.c (tsubst_decl): Disallow variables of function type. 193 194 PR c++/29632 195 * call.c (add_builtin_candidate): Do not permit NULL pointer 196 constants to be compared with template parameters. 197 1982006-12-04 Eric Botcazou <ebotcazou@adacore.com> 199 200 * pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case. 201 Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE. 202 2032006-12-03 Richard Henderson <rth@redhat.com> 204 Andrew Pinski <pinskia@gmail.com> 205 206 PR C++/14329 207 * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR. 208 2092006-12-02 Andrew Pinski <andrew_pinski@playstation.sony.com> 210 211 PR C++/30033 212 * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT. 213 2142006-12-02 Kazu Hirata <kazu@codesourcery.com> 215 216 * name-lookup.c: Follow spelling conventions. 217 2182006-12-01 Geoffrey Keating <geoffk@apple.com> 219 220 * decl.c (poplevel): Check DECL_INITIAL invariant. 221 (duplicate_decls): Preserve DECL_INITIAL when eliminating 222 a new definition in favour of an old declaration. 223 (start_preparsed_function): Define and document value of 224 DECL_INITIAL before and after routine. 225 (finish_function): Check DECL_INITIAL invariant. 226 * parser.c 227 (cp_parser_function_definition_from_specifiers_and_declarator): 228 Skip duplicate function definitions. 229 2302006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 231 232 PR c++/30022 233 * typeck.c (type_after_usual_arithmetic_conversions): 234 Fix assertion for vector types. 235 (build_binary_op): Use temporary for inner type of vector types. 236 2372006-12-01 Ryan Mansfield <rmansfield@qnx.com> 238 239 PR c++/29066 240 * typeck.c (build_binary_op): Fix pointer to member function 241 comparison for ptrmemfunc_vbit_in_delta targets. 242 2432006-12-01 Dirk Mueller <dmueller@suse.de> 244 245 PR c++/18313 246 * decl.c (grokdeclarator): Warn for type qualifiers on return 247 type for non-dependent types. 248 * pt.c (tsubst_function_type): Warn for type qualifiers on 249 return type for dependent types. 250 2512006-11-30 Geoffrey Keating <geoffk@apple.com> 252 253 * rtti.c (get_tinfo_decl): Handle return value from 254 pushdecl_top_level_and_finish. 255 2562006-11-29 Lee Millward <lee.millward@codesourcery.com> 257 258 PR c++/29022 259 * parser.c (cp_parser_class_head): Move processing 260 of any base classes to... 261 (cp_parser_class_specifier) ...here. Take an extra 262 tree* parameter for any base classes. Only process 263 them if the opening brace was found. 264 2652006-11-28 Jakub Jelinek <jakub@redhat.com> 266 267 PR c++/29735 268 * decl.c (grokfndecl): Check main's type after applying 269 attributes, not before. 270 2712006-11-27 Mark Mitchell <mark@codesourcery.com> 272 273 * class.c (build_vcall_offset_vtbl_entries): Do not add vcall 274 entries for a primary construction virtual table. 275 2762006-11-26 Mark Mitchell <mark@codesourcery.com> 277 278 PR c++/29886 279 * parser.c (cp_parser): Add in_function_body. 280 (cp_parser_new): Initialize it. 281 (cp_parser_primary_expression): Use parser->in_function_body 282 instead of at_function_scope_p. 283 (cp_parser_asm_definition): Likewise. 284 (cp_parser_direct_declarator): Likewise. 285 (cp_parser_class_specifier): Clear parser->in_function_body. 286 (cp_parser_constructor_declarator_p): Use parser->in_function_body 287 instead of at_function_scope_p. 288 (cp_parser_function_body_after_declarator): Set 289 parser->in_function_body. 290 2912006-11-21 Douglas Gregor <doug.gregor@gmail.com> 292 293 * cp-tree.def (STATIC_ASSERT): New. 294 * cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT. 295 * error.c (dump_decl): Handle STATIC_ASSERT. 296 * cp-tree.h (STATIC_ASSERT_CONDITION): New. 297 (STATIC_ASSERT_MESSAGE): New. 298 (STATIC_ASSERT_SOURCE_LOCATION): New. 299 (struct tree_static_assert): New. 300 (enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT. 301 (union lang_tree_node): Add static_assertion. 302 (finish_static_assert): Declare. 303 * cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT. 304 (pp_cxx_declaration): Handle STATIC_ASSERT. 305 * pt.c (instantiate_class_template): Handle 306 STATIC_ASSERT members. 307 (tsubst_expr): Handle STATIC_ASSERT statements. 308 * semantics.c (finish_static_assert): New. 309 * lex.c (D_CPP0X): New. 310 (reswords): Add static_assert keyword. 311 (init_reswords): If not flag_cpp0x, mask out C++0x keywords. 312 * parser.c (cp_parser_block_declaration): Parse static 313 assertions. 314 (cp_parser_static_assert): New. 315 (cp_parser_member_declaration): Parse static assertions. 316 3172006-11-21 Jakub Jelinek <jakub@redhat.com> 318 319 PR c++/29570 320 * decl.c (cp_finish_decl): Check for value dependent brace enclosed 321 scalar initializer. 322 323 PR c++/29734 324 * cp-tree.h (WANT_VECTOR): Define. 325 (WANT_ARITH): Add WANT_VECTOR. 326 * cvt.c (build_expr_type_conversion): Handle vector types. 327 * typeck.c (build_unary_op): Add WANT_VECTOR to 328 build_expr_type_conversion flags. 329 3302006-11-20 Simon Martin <simartin@users.sourceforge.net> 331 332 PR c++/29475 333 * cp-tree.h (enforce_access, perform_or_defer_access_check): Added an 334 extra argument that represents the declaration to use to print 335 potential error messages. 336 * init.c (build_offset_ref): Adjusted the call to 337 perform_or_defer_access_check. 338 * class.c (alter_access, resolve_address_of_overloaded_function): 339 Likewise. 340 * decl.c (make_typename_type, make_unbound_class_template): Likewise. 341 * search.c (lookup_member): Likewise. 342 * friend.c (add_friend): Likewise. 343 * parser.c (cp_parser_template_id, 344 cp_parser_pre_parsed_nested_name_specifier): Likewise. 345 * semantics.c (finish_non_static_data_member, 346 check_accessibility_of_qualified_id, finish_id_expression): Likewise. 347 (pop_to_parent_deferring_access_checks, perform_access_checks, 348 perform_or_defer_access_check): Adjusted the call to enforce_access. 349 * call.c (enforce_access): Use the new extra argument to build the 350 error message. 351 (build_op_delete_call): Adjusted the call to 352 perform_or_defer_access_check. 353 (build_over_call): Likewise. 354 3552006-11-16 Dirk Mueller <dmueller@suse.de> 356 357 * name-lookup.c (begin_scope): Use GGC_CNEW instead of 358 GGC_NEW and memset. 359 3602006-11-13 Roger Sayle <roger@eyesopen.com> 361 362 * rtti.c (get_pseudo_ti_init): Ensure that the offset field of the 363 base type info initializer has the correct type. 364 3652006-11-13 Mark Mitchell <mark@codesourcery.com> 366 367 PR c++/29518 368 * pt.c (coerce_template_parms): Do not skip_evaluation while 369 substituting template arguments. 370 3712006-11-11 Richard Guenther <rguenther@suse.de> 372 373 * typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR, 374 FIX_FLOOR_EXPR and FIX_ROUND_EXPR. 375 3762006-11-03 Roger Sayle <roger@eyesopen.com> 377 378 * call.c (build_op_delete_call): Test user-visible type against 379 size_type_node, instead of against the internal type, sizetype. 380 * class.c (type_requires_array_cookie): Likewise. 381 * mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special 382 handling of TYPE_IS_SIZETYPE. 383 * typeck.c (type_after_usual_arithmetic_conversions): Remove 384 special case handling of TYPE_IS_SIZETYPE. 385 (comptypes): Likewise. 386 3872006-11-01 Danny Smith <dannysmith@users.sourceforge.net> 388 389 * decl.c (get_atexit_node): Reference atexit, not __cxa_exit. 390 if targetm.cxx.use_atexit_for cxa_atexit. 391 (start_cleanup_fn): Likewise. 392 (register_dtor_fn): Likewise. 393 3942006-09-25 Geoffrey Keating <geoffk@apple.com> 395 396 * decl2.c (cp_write_global_declarations): Rename from 397 cp_finish_file. 398 * cp-lang.c (finish_file): Don't call cp_finish_file. 399 * cp-tree.h (cp_write_global_declarations): Rename from 400 cp_finish_file. 401 * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to 402 cp_write_global_declarations. 403 4042006-10-31 Geoffrey Keating <geoffk@apple.com> 405 406 * name-lookup.c (get_anonymous_namespace_name): New. 407 (push_namespace_with_attribs): Use get_anonymous_namespace_name. 408 * decl2.c (start_objects): Update for rename of 409 get_file_function_name_long. 410 4112006-10-30 Dirk Mueller <dmueller@suse.de> 412 413 PR c++/28704 414 * decl.c (grokdeclarator): Duplicate diagnostic message 415 for easier translation. 416 * decl.c (grokdeclarator): Fix line-wrapping. 417 4182006-10-30 Dirk Mueller <dmueller@suse.de> 419 420 PR c++/6321 421 * decl.c (grokfndecl): Use check_main_parameter_types. 422 4232006-10-30 Dirk Mueller <dmueller@suse.de> 424 425 PR c++/28669 426 * decl.c (grokfndecl): Duplicate warning message for 427 easier translation. 428 4292006-10-30 Dirk Mueller <dmueller@suse.de> 430 431 * typeck.c (build_unary_op): Fix indenting. Use G_(). 432 4332006-10-29 Dirk Mueller <dmueller@suse.de> 434 435 PR c++/29089 436 * typeck.c (build_unary_op): Duplicate warning message 437 for easier translation. 438 4392006-10-29 Dirk Mueller <dmueller@suse.de> 440 441 PR c++/16307 442 * typeck.c (build_array_ref): Warn for char subscriptions 443 on pointers. 444 4452006-10-29 Kazu Hirata <kazu@codesourcery.com> 446 447 * decl.c: Fix a comment typo. 448 4492006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com> 450 451 PR C++/29295 452 * typeck.c (build_unary_op): Use same_type_p when comparing to 453 boolean type. 454 4552006-10-29 Dirk Mueller <dmueller@suse.de> 456 457 PR c++/29033 458 * typeck.c (build_binary_op): Duplicate warning message 459 for better translation. 460 4612006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 462 463 * decl.c (builtin_function_1): Move common code to 464 add_builtin_function. 465 (builtin_function): Rename to cxx_builtin_function. 466 Change the signature. 467 * call.c: Include langhooks.h. 468 (build_java_interface_fn_ref): Replace calls to 469 builtin_function with add_builtin_function. 470 * Make-lang.in (cp/call.o): Depend on langhooks.h. 471 * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as 472 cxx_builtin_function. 473 * cp-tree.h (builtin_function): Rename to cxx_builtin_function. 474 Change the signature. 475 4762006-10-22 Nathan Sidwell <nathan@codesourcery.com> 477 478 PR c++/20647 479 * rtti.c (tinfo_base_init): The type info string is always global. 480 4812006-10-20 Lee Millward <lee.millward@codesourcery.com> 482 Mark Mitchell <mark@codesourcery.com> 483 484 PR c++/28053 485 * decl2.c (grokbitfield): Detect invalid non-integral 486 types earlier when possible. 487 4882006-10-18 Mark Shinwell <shinwell@codesourcery.com> 489 490 PR c++/26884 491 * typeck2.c (digest_init): Raise error upon attempts to 492 initialize arrays with variables. 493 4942006-10-17 Lee Millward <lee.millward@codesourcery.com> 495 496 PR c++/27952 497 * cp-tree.h (xref_basetypes): Return bool instead of void. 498 * decl.c (xref_basetypes): Adjust definition. Return false 499 if the class bases are invalid. 500 * parser.c (cp_parser_class_head): Check the return value 501 from xref_basetypes. 502 5032006-10-17 Mark Mitchell <mark@codesourcery.com> 504 505 PR c++/28261 506 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add 507 comment. 508 509 PR c++/28261 510 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New 511 function. 512 (cp_parser_constructor_declarator_p): Use it. 513 (cp_parser_check_type_definition): Return a value indicating 514 whether or not the definition is valid. 515 (cp_parser_enum_specifier): Skip invalid enum definitions. 516 5172006-10-17 Mark Mitchell <mark@codesourcery.com> 518 519 PR c++/29039 520 * typeck2.c (build_functional_cast): Don't zero-initialize 521 non-PODs; instead, call their constructors. 522 * method.c (synthesize_method): Always build mem-initializers, if 523 we're synthesizing the default constructor. 524 5252006-10-17 Mark Mitchell <mark@codesourcery.com> 526 527 PR c++/27270 528 * decl.c (reshape_init_class): Move check for designated 529 to ... 530 * parser.c (cp_parser_initializer_list): ... here. 531 * pt.c (tsubst_copy_and_build): Use finish_compound_literal. 532 5332006-10-16 Mark Mitchell <mark@codesourcery.com> 534 535 PR c++/27270 536 * typeck2.c (process_init_constructor_array): Reword comment. 537 * pt.c (tsubst_copy_and_built): Call reshape_init before calling 538 digest_init. 539 540 PR c++/29408 541 * parser.c (cp_parser_using_declaration): Stop parsing when 542 something goes wrong with an access declaration. 543 544 PR c++/29435 545 * typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent 546 types when their sizes are required. Refine test for VLAs. 547 548 PR c++/28211 549 * parser.c (cp_parser_template_argument): Don't consider "&var" a 550 possible constant-expression. 551 * pt.c (convert_nontype_argument): Refine handling of arguments of 552 pointer type. 553 5542006-10-13 Mark Mitchell <mark@codesourcery.com> 555 556 PR c++/28506 557 * parser.c (function_declarator_p): New function. 558 (cp_parser_init_declarator): Use it. 559 (cp_parser_member_declaration): Likewise. 560 5612006-10-12 Mark Mitchell <mark@codesourcery.com> 562 563 PR c++/29318 564 * rtti.c (get_tinfo_decl): Refuse to create type info objects for 565 variably modified types. 566 5672006-10-12 Lee Millward <lee.millward@codesourcery.com> 568 569 PR c++/27961 570 * decl.c (start_decl): Return error_mark_node if a 571 function is initialized like a variable. 572 (check_var_type): If a variable of field is declared void, 573 set the type to error_mark_node. 574 (grokdeclarator): Check the return type of check_var_type. 575 * class.c (finish_struct_1): Robustify. 576 5772006-10-11 Mark Mitchell <mark@codesourcery.com> 578 579 PR c++/29175 580 * decl.c (check_initializer): Issue errors about trying to 581 initialize arrays whose elements have variable size. 582 5832006-10-11 Lee Millward <lee.millward@codesourcery.com> 584 585 PR c++/29024 586 * cp-tree (struct cp_decl_specifier_seq): Rename to 587 conflicting_specifiers_p 588 * parser.c (cp_parser_set_storage_class): Set 589 conflicting_specifiers_p for the input decl specifier 590 if a typedef specifier is present. Rename uses of 591 multiple_specifiers_p to conflicting_specifiers_p. 592 (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage 593 class specifier has already been set for this declaration, 594 set conflicting_specifiers_p to true on the decl_specs. 595 * decl.c (grokdeclarator): Rename uses of 596 multiple_specifiers_p to conflicting_specifiers_p. 597 5982006-10-10 Brooks Moses <bmoses@stanford.edu> 599 600 * Make-lang.in: Added "c++.pdf" target support. 601 6022006-10-10 Richard Guenther <rguenther@suse.de> 603 604 PR rtl-optimization/29323 605 * decl.c (finish_function): Set TREE_NOTHROW only for 606 functions that bind local. 607 6082006-10-09 Richard Henderson <rth@redhat.com> 609 610 Revert emutls patch. 611 6122006-10-04 Richard Henderson <rth@redhat.com> 613 Jakub Jelinek <jakub@redhat.com> 614 615 * decl.c (grokvardecl): Don't error if !have_tls. 616 (grokdeclarator): Likewise. 617 * parser.c (cp_parser_omp_threadprivate): Likewise. 618 6192006-10-03 Mark Mitchell <mark@codesourcery.com> 620 621 PR c++/29020 622 * friend.c (do_friend): Improve comments; add assertion. 623 * parser.c (cp_parser_nested_name_specifier_opt): Resolve 624 typenames for qualified names used in declarations, even when 625 caching qualified name lookup. 626 627 PR c++/29138 628 * decl2.c (grokfield): Don't handle access declarations here. 629 * parser.c (cp_parser_using_declaration): Handle access 630 declarations too. 631 (cp_parser_block_declaration): Adjust calls to 632 cp_parser_using_declaration. 633 (cp_parser_member_declaration): Likewise. Use 634 cp_parser_using_declaration to look for access_declarations. 635 6362006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 637 638 PR c++/29291 639 * init.c (build_new): Check for invalid init. 640 6412006-10-02 Mark Mitchell <mark@codesourcery.com> 642 643 PR c++/29226 644 * typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do 645 not try to actually evaluate sizeof for a VLA type. 646 6472006-10-01 Mark Mitchell <mark@codesourcery.com> 648 649 PR c++/29105 650 * pt.c (tsubst_baselink): Substituteinto the qualifying scope. 651 * semantics.c (baselink_for_fns): Build a baselink, even when 652 processing a template. 653 654 PR c++/29080 655 * parser.c (cp_parser_postfix_dot_deref_expression): Use 656 BASELINK_ACCESS_BINFO as the qualifying scope when calling 657 adjust_result_of_qualified_name_lookup. 658 6592006-09-25 Lee Millward <lee.millward@codesourcery.com> 660 661 PR c++/27329 662 PR c++/26938 663 * cp-tree.h (redeclare_class_template): Adjust declaration 664 to return bool instead of void. 665 * pt.c (redeclare_class_template): Update definition. 666 Return false on error. 667 * decl.c (xref_tag): Return error_mark_node if 668 redeclare_class_template returned false. 669 670 PR c++/27667 671 * cp-tree.h (begin_specialization): Return bool 672 instead of void. 673 * pt.c (check_specialization_scope): Likwise. 674 Adjust comment. Return false if a specialization 675 isn't permitted in the current scope. 676 (begin_specialization): Use the return value of 677 check_specialization_scope. 678 * parser.c (cp_parser_explicit_specialization): If 679 begin_specialization returned false, skip the rest 680 of the specialization. 681 6822006-09-21 Mark Mitchell <mark@codesourcery.com> 683 684 PR c++/29016 685 * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a 686 BASELINK. 687 6882006-09-21 Lee Millward <lee.millward@codesourcery.com> 689 690 PR c++/28861 691 * decl.c (shadow_tag): Return error_mark_node 692 if maybe_process_partial_specialization failed. 693 694 PR c++/28303 695 * decl.c (grokdeclarator): Return error_mark_node on 696 declaration with two or more data types. 697 6982006-09-20 Danny Smith <dannysmith@users.sourceforge.net> 699 700 PR target/27650 701 * class.c (check_for_override): Remove dllimport from virtual 702 methods. 703 7042006-09-18 Steven Bosscher <steven@gcc.gnu.org> 705 706 PR c++/29087 707 * parser.c (cp_parser_labeled_statement): Return nothing. Do 708 not take in_statement_expr and in_compound as arguments. Rename 709 to cp_parser_label_for_labeled_statement. Parse only the label, 710 not the statement. 711 (cp_parser_statement): Parse the statement of a labeled-statement 712 from here, using tail recursion. 713 7142006-09-14 Andrew Pinski <pinskia@physics.uc.edu> 715 716 PR C++/29002 717 * init.c (build_zero_init): If we have an error mark node for 718 the array size, return. 719 7202006-09-10 Mark Mitchell <mark@codesourcery.com> 721 722 PR c++/28991 723 * cp-objcp-common.c (cxx_staticp): New function. 724 * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it. 725 * cp-tree.h (cxx_staticp): New function. 726 7272006-09-09 Jason Merrill <jason@redhat.com> 728 729 PR c++/28996 730 * cvt.c (convert_to_void): Strip COMPONENT_REF to functions. 731 7322006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 733 734 PR c++/28858 735 * parser.c (cp_parser_skip_until_found): Rename to 736 cp_parser_skip_to_end_of_template_parameter_list. Remove last two 737 parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'. 738 Reorganize. Adjust comment. 739 (cp_parser_template_declaration_after_export): Adjust call. 740 (cp_parser_enclosed_template_argument_list): Likewise. 741 7422006-09-07 Andrew Pinski <pinskia@physics.uc.edu> 743 744 PR C++/28906 745 * init.c (build_new_1): Build a distinct type copy 746 for the array type that was returned from 747 build_cplus_array_type. 748 7492006-09-07 Jason Merrill <jason@redhat.com> 750 751 PR c++/27371 752 * cvt.c (convert_to_void): Enable previous change. 753 754 PR c++/26957 755 * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied 756 parms. 757 7582006-09-07 Simon Martin <simartin@users.sourceforge.net> 759 760 PR c++/28284 761 * pt.c (fold_non_dependent_expr): Make sure expr is not 762 dereferenced if it is NULL. 763 7642006-09-06 Zak Kipling <zak@transversal.com> 765 766 PR c++/26195 767 * decl.c (make_rtl_for_nonlocal_decl), 768 (start_preparsed_function): Don't use lbasename on 769 input_filename when calling get_fileinfo. 770 * semantics.c (begin_class_definition): Likewise. 771 * lex.c (cxx_make_type): Likewise. 772 (handle_pragma_interface): Call get_fileinfo on input_filename, 773 not on the parameter to the directive. 774 7752006-09-06 Mark Mitchell <mark@codesourcery.com> 776 777 PR c++/28903 778 * pt.c (tsubst): Use fold_non_dependent_expr to fold array 779 dimensions. 780 781 PR c++/28886 782 * pt.c (unify): Avoid unnecessary calls to fold_build2 for array 783 dimensions. 784 7852006-09-06 Jason Merrill <jason@redhat.com> 786 787 PR c++/27371 788 * cvt.c (convert_to_void): Strip useless TARGET_EXPR. 789 * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro. 790 * tree.c (build_cplus_new): Set it. 791 792 PR c++/26696 793 * cvt.c (convert_to_void): Replace a subexpression with no side 794 effects with void_zero_node. 795 * tree.c (is_overloaded_fn): Look through COMPONENT_REF. 796 (get_first_fn): Ditto. 797 * decl.c (grokdeclarator): No need to look through COMPONENT_REF. 798 7992006-09-05 Jason Merrill <jason@redhat.com> 800 801 PR c++/26571 802 * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case 803 where the name is a type used incorrectly. 804 805 PR c++/26671 806 * typeck.c (maybe_warn_about_returning_address_of_local): Look 807 through COMPONENT_REF and ARRAY_REF. 808 809 PR c++/26102 810 * name-lookup.c (do_class_using_decl): Try to find the base even 811 if bases_dependent_p. 812 * pt.c (type_dependent_expression_p): A USING_DECL is dependent. 813 814 PR c++/19809 815 * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl. 816 8172006-09-04 Nathan Sidwell <nathan@codesourcery.com> 818 819 PR 23287 Revert my 2006-09-01 patch. 820 * parser.c: Reverted. 821 * pt.c: Reverted. 822 8232006-09-02 Lee Millward <lee.millward@codesourcery.com> 824 825 PR c++/27670 826 PR c++/27493 827 PR c++/27494 828 PR c++/27397 829 * parser.c (cp_parser_template_parameter_list): Add 830 invalid template parameters to the parameter list as 831 error_mark_node. 832 8332006-09-02 Jakub Jelinek <jakub@redhat.com> 834 835 PR c++/28878 836 * except.c (build_throw): Only set current_function_returns_abnormally 837 if cfun is not NULL. 838 839 PR c++/26917 840 * repo.c (repo_file): Remove. 841 (open_repo_file, reopen_repo_file_for_write): Return fopened 842 FILE * instead of setting global repo_file variable. 843 (init_repo): Adjust caller. 844 (finish_repo): Likewise. Return instead of goto out before 845 reopen_repo_file_for_write has been called. 846 8472006-09-01 Nathan Sidwell <nathan@codesourcery.com> 848 849 PR c++/28705 850 * semantics.c (finish_call_expr): Add assert. 851 * name-lookup.c (lookup_arg_dependent): Check we found an overload 852 or an object. 853 854 PR c++/23287 855 * parser.c (cp_parser_id_expression): Add member_p 856 argument. Update all callers. 857 (cp_parser_unqualified_id): Likewise. Lookup a destructor name in 858 the object's scope, if valid. 859 (cp_parser_global_scope_opt): Add object_scope_valid_p. Update 860 callers. 861 (cp_parser_postfix_dot_deref_expression): Set object_scope. 862 * pt.c (tsubst_copy_and_build): Lookup dependent dtor name here. 863 8642006-08-30 Jason Merrill <jason@redhat.com> 865 866 PR c++/26670 867 * class.c (check_field_decls): Don't unset TYPE_PACKED until all 868 the fields have been processed. 869 8702006-08-29 Andrew Pinski <pinskia@physics.uc.edu> 871 872 PR C++/28349 873 * call.c (build_x_va_arg): Remove the reference type 874 from the type before creating the pointer type. 875 8762006-08-29 J"orn Rennecke <joern.rennecke@st.com> 877 878 PR c++/28139 879 * except.c (expand_start_catch_block): Use correct types for bitwise 880 copy. 881 8822006-08-28 Jason Merrill <jason@redhat.com> 883 884 PR c++/26670 885 * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the 886 fields can't be packed. 887 888 PR c++/26577 889 * cvt.c (convert_to_void): Don't automatically load from volatiles 890 of TREE_ADDRESSABLE type. 891 8922006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 893 894 PR c++/28860 895 * cp-tree.h (maybe_process_partial_specialization): Return 896 tree instead of void. 897 * parser.c (cp_parser_class_head): Use return value of 898 maybe_process_partial_specialization. 899 * pt.c (maybe_process_partial_specialization): Return error_mark_node 900 for broken specializations, TYPE otherwise. Check for template 901 template parameters. 902 9032006-08-27 Mark Mitchell <mark@codesourcery.com> 904 905 PR c++/28058 906 * pt.c (register_specialization): Return error_mark_node for 907 specialization-after-instantiation. 908 * decl2.c (mark_used): Mark the main function used when one of its 909 clones is used. 910 9112006-08-27 Lee Millward <lee.millward@codesourcery.com> 912 913 PR c++/26573 914 * class.c (check_field_decls): Don't issue error about 915 local classes containing static data members. 916 9172006-08-26 Joseph S. Myers <joseph@codesourcery.com> 918 919 PR c++/24009 920 * parser.c (struct cp_token): Add input_file_stack_index. 921 (eof_token): Update. 922 (cp_lexer_get_preprocessor_token): Save input_file_stack_tick. 923 (cp_lexer_set_source_position_from_token): Restore input file 924 stack. 925 9262006-08-26 Lee Millward <lee.millward@codesourcery.com> 927 928 PR c++/28736 929 PR c++/28737 930 PR c++/28738 931 * pt.c (process_template_parm): Store invalid template 932 parameters as a TREE_LIST with a TREE_VALUE of error_mark_node. 933 (push_inline_template_parms_recursive): Check for template 934 parameters having a TREE_VALUE of error_mark_node rather than 935 check the parameter itself. 936 (mangle_class_name_for_template): Likewise. 937 (comp_template_parms): When comparing the individual template 938 parameters, return 1 if either is error_mark_node. 939 (current_template_args): Robustify. 940 (redeclare_class_template): Likewise. 941 9422006-08-26 Mark Mitchell <mark@codesourcery.com> 943 944 PR c++/28588 945 * class.c (resolve_address_of_overloaded_function): Add 946 access_path parameter. Perform access checks. 947 (instantiate_type): Adjust call to 948 resolve_address_of_overloaded_function. Remove unnecessary code. 949 * tree.c (is_overloaded_fn): Document. Return 2 when there are 950 acutally multiple functions. 951 (really_overloaded_fn): Use is_overloaded_fn. 952 * mangle.c (write_expression): Handle BASELINKs. 953 * cp-tree.h (really_overloaded_fn): Return bool. 954 (baselink_for_fns): Declare. 955 * search.c (lookup_member): Check access for single static 956 functions here. 957 * pt.c (convert_nontype_argument_function): Handle BASELINKs. 958 (tsubst_copy_and_build): Generate BASELINKs for template-ids. 959 * semantics.c (finish_call_expr): Use baselink_for_fns. 960 (baselink_for_fns): New function. 961 (finish_id_expression): Use it. 962 * parser.c (cp_parser_template_argument): Don't strip BASELINKs. 963 964 PR c++/28595 965 * pt.c (tsubst): Issue errors about attempts to create VLAs at 966 template-instantiation time. 967 9682006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 969 970 PR c++/28853 971 * typeck2.c (cxx_incomplete_type_diagnostic): Handle template 972 template parameters. Improve error message for template type 973 parameters. 974 975 PR c++/28852 976 * cp-tree.h (grok_op_properties): Return bool instead of void. 977 * decl.c (grokfndecl): Discard invalid operator declarations. 978 (copy_fn_p): Revert change for PR 27547. 979 (grok_op_properties): Return error status (true on success). 980 * pt.c (tsubst_decl): Discard invalid operator declarations. 981 9822006-08-25 Mark Mitchell <mark@codesourcery.com> 983 984 PR c++/28056 985 * decl.c (grokdeclarator): Disallow declarations with qualified 986 names in local scopes. 987 9882006-08-25 Nathan Sidwell <nathan@codesourcery.com> 989 990 PR c++/27787 991 * decl.c (make_typename_type): Only try and resolve it when 992 context is not dependent. Refactor. 993 * decl2.c (check_classfn): Push to class scope before looking for 994 the function. 995 9962006-08-24 Danny Smith <dannysmith@users.sourceforge.net> 997 998 PR driver/28528 999 * g++spec.c (lang_specific_driver): Always check if we need to 1000 swallow a space-separated arg to '-x'. 1001 * lang-specs.h: Don't create ouput files for '-xc++-header' 1002 if -fsyntax-only. 1003 10042006-08-23 Jason Merrill <jason@redhat.com> 1005 1006 PR c++/27714 1007 * pt.c (push_template_decl_real): A friend template with class 1008 scope isn't primary. 1009 10102006-08-23 Benjamin Smedberg <benjamin@smedbergs.us> 1011 1012 PR c++/28687 1013 * rtti.c (build_dynamic_cast, build_dynamic_cast_1): 1014 Move -fno-rtti check to be more specific. 1015 10162006-08-22 Jason Merrill <jason@redhat.com> 1017 1018 PR c++/23372 1019 * call.c (build_over_call): Don't make a copy here if build_call 1020 will make one too. 1021 10222006-08-22 Andrew Pinski <pinskia@physics.uc.edu> 1023 1024 PR C++/28450 1025 * cp/init.c (build_zero_init): Handle VECTOR_TYPE and 1026 COMPLEX_TYPEs. 1027 10282006-08-22 Simon Martin <simartin@users.sourceforge.net> 1029 1030 PR c++/28420 1031 * parser.c (cp_parser_postfix_expression): Make sure that the 1032 saved value for parser->type_definition_forbidden_message is 1033 restored before returning to avoid an invalid free(). 1034 10352006-08-22 Jason Merrill <jason@redhat.com> 1036 1037 PR c++/28659 1038 * typeck.c (merge_types): If either of the types have the right 1039 attributes, return that one. 1040 1041 * tree.c (cp_build_type_attribute_variant): Make sure we aren't 1042 doing this to class types. 1043 * typeck.c (original_type): Deal with type quals properly. 1044 10452006-08-21 Jason Merrill <jason@redhat.com> 1046 1047 PR c++/27115 1048 * semantics.c (finish_stmt_expr_expr): Don't try to voidify here, 1049 just leave the expression as it is. 1050 (finish_stmt_expr): If the statement-expression has class type, 1051 wrap it in a TARGET_EXPR. 1052 * cp-gimplify.c (cp_gimplify_init_expr): Don't bother with 1053 CLEANUP_POINT_EXPR. 1054 * except.c (build_throw): Give the CLEANUP_POINT_EXPR void type. 1055 10562006-08-21 Lee Millward <lee.millward@codesourcery.com> 1057 1058 PR c++/26269 1059 * decl.c (duplicate_decls): Return early if either 1060 newdecl or olddecl is error_mark_node. 1061 1062 PR c++/28505 1063 * decl.c (grokdeclarator): Return early after 1064 issuing diagnostic about an incomplete type. 1065 1066 PR c++/28741 1067 * tree.c (decl_anon_ns_mem_p): Robustify. 1068 * decl2.c (determine_visibility): Likewise. 1069 10702006-08-20 Mark Mitchell <mark@codesourcery.com> 1071 1072 PR c++/28341 1073 * tree.c (cast_valid_in_integral_constant_expression_p): New 1074 function. 1075 * cp-tree.h (tsubst_copy_and_build): Adjust prototype. 1076 * pt.c (tsubst_expr): Add integral_constant_expression_p 1077 parameter. 1078 (fold_non_dependent_expr): Adjust callers of 1079 tsubst_{expr,copy_and_build}. 1080 (tsubst_friend_function): Likewise. 1081 (tsubst_template_arg): Likewise. 1082 (tsubst_default_argument): Likewise. 1083 (tsubst_decl): Likewise. 1084 (tsubst): Likewise. 1085 (tsubst_omp_clasuses): Likewise. 1086 (regenerate_decl_fromp_template): Likewise. 1087 (instantiate_decl): Likewise. 1088 (tsubst_initializer_list): Likewise. 1089 (tsubst_enum): Likewise. 1090 (tsubst_expr): Use RECUR throughout. 1091 (tsubst_copy_and_build): Change definition of RECUR. Do not allow 1092 invalid casts in integral constant expressions. 1093 * parser.c (cp_parser_postfix_expression): Use 1094 cast_valid_in_integral_constant_expression_p. 1095 (cp_parser_cast_expression): Likewise. 1096 (cp_parser_functional_cast): Likewise. 1097 1098 PR c++/28346 1099 * pt.c (tsubst_qualified_id): Do not strip references from 1100 OFFSET_REFs. 1101 11022006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1103 1104 PR c++/28606 1105 * parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR. 1106 Fix formatting. 1107 (cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition 1108 for valid type-names. 1109 (cp_parser_unqualified_id): Fix error handling for destructors. 1110 1111 PR c++/28710 1112 * decl.c (xref_tag): Improve error message. Return early on error. 1113 1114 PR c++/28711 1115 * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify. 1116 11172006-08-17 Paolo Bonzini <bonzini@gnu.org> 1118 1119 PR c++/28573 1120 * semantics.c (finish_offsetof): Add new argument to fold_offsetof. 1121 11222006-08-16 Andrew Pinski <pinskia@physics.uc.edu> 1123 1124 PR c++/28302 1125 * typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call 1126 perform_integral_promotions for non integral type. 1127 11282006-08-16 Jason Merrill <jason@redhat.com> 1129 1130 PR c++/28385 1131 * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template 1132 if arg is a function. 1133 11342006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1135 1136 PR c++/28593 1137 * init.c (build_new): Return early on invalid placement. 1138 11392006-08-15 Lee Millward <lee.millward@codesourcery.com> 1140 1141 PR c++/28594 1142 * pt.c (process_template_parm): Robustify. 1143 11442006-08-14 Steve Ellcey <sje@cup.hp.com> 1145 1146 PR c++/28288 1147 PR c++/14556 1148 * operators.def: Remove <?, ?>, <?=, and >?= operators. 1149 * parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ. 1150 (cp_parser_warn_min_max): Remove. 1151 11522006-08-11 Jason Merrill <jason@redhat.com> 1153 1154 PR c++/28559 1155 * parser.c (cp_parser_elaborated_type_specifier): Also ignore 1156 attributes applied to a TYPENAME_TYPE. 1157 11582006-08-09 Lee Millward <lee.millward@codesourcery.com> 1159 1160 PR c++/28637 1161 * pt.c (coerce_template_parms): Copy across the 1162 invalid template arguments to the new template inner arguments. 1163 (retrieve_specialization): Robustify. 1164 1165 PR c++/28638 1166 * pt.c (coerce_template_template_parms): Robustify. 1167 1168 PR c++/28639 1169 * error.c (dump_template_parms): Robustify. 1170 1171 PR c++/28640 1172 * pt.c (redeclare_class_template): Robustify. 1173 1174 PR c++/28641 1175 * pt.c (type_unification_real): Robustify. 1176 11772006-08-03 Lee Millward <lee.millward@codesourcery.com> 1178 1179 PR c++/28347 1180 * decl.c (start_decl): Return error_mark_node if a 1181 diagnostic was issed for an invalid typedef initialization. 1182 11832006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1184 1185 PR c++/27508 1186 * parser.c (cp_parser_unqualified_id): Check for invalid scopes 1187 when parsing destructor names. 1188 1189 PR c++/28274 1190 * decl.c (duplicate_decls): Call check_default_args here. 1191 (start_preparsed_function): Do not call check_default_args. 1192 * name-lookup.c (pushdecl_maybe_friend): Only call 1193 check_default_args if duplicate_decls got bypassed. 1194 11952006-08-02 Richard Guenther <rguenther@suse.de> 1196 1197 PR c++/28479 1198 Revert 1199 2006-07-05 Richard Guenther <rguenther@suse.de> 1200 Andrew Pinski <pinskia@gcc.gnu.org> 1201 1202 PR c++/27084 1203 * cp-objcp-common.c (cxx_types_compatible_p): Ignore 1204 top level qualifiers for pointer type comparisons. 1205 12062006-08-02 Mark Mitchell <mark@codesourcery.com> 1207 1208 PR c++/28557 1209 * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE. 1210 12112006-07-31 Mark Mitchell <mark@codesourcery.com> 1212 1213 PR c++/28523 1214 * tree.c (stabilize_expr): Tweak documentation. Add assertion. 1215 (stabilize_call): Tweak documentation. 1216 (stabilize_init): Only call stabilize_call for calls. 1217 12182006-08-01 Steve Ellcey <sje@cup.hp.com> 1219 1220 PR c++/28432 1221 * decl2.c (check_classfn): Remove early return. 1222 * search.c (lookup_member): Return NULL with bad type. 1223 12242006-08-01 Steve Ellcey <sje@cup.hp.com> 1225 1226 PR c++/28256 1227 * decl.c (check_initializer): Check for 1 initializer on scalar types. 1228 12292006-08-01 Daniel Jacobowitz <dan@codesourcery.com> 1230 1231 PR debug/23336 1232 * pt.c (tsubst_copy_and_build): Mark used enum types. 1233 * semantics.c (finish_id_expression): Likewise. 1234 12352006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1236 1237 PR c++/6634 1238 * decl.c (grokdeclarator): Check whether "long" or "short" was 1239 specified for non-integral types. 1240 12412006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1242 1243 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. 1244 12452006-07-28 Lee Millward <lee.millward@codesourcery.com> 1246 1247 PR c++/27668 1248 PR c++/27962 1249 * pt.c (process_template_parm) Store invalid template 1250 parameters as error_mark_node in the paramater list. 1251 (push_inline_template_parms_recursive): Handle invalid 1252 template parameters. 1253 (comp_template_parms): Likewise. 1254 (check_default_tmpl_arg): Likewise. 1255 (coerce_template_template_parms): Likewise. 1256 (mangle_class_name_for_template): Likewise. 1257 (tsubst_template_parms): Likewise. 1258 * error.c (dump_template_argument_list): Likewise. 1259 12602006-07-28 Kazu Hirata <kazu@codesourcery.com> 1261 1262 * cp-tree.h: Fix a comment typo. 1263 12642006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1265 1266 PR c++/27572 1267 * decl.c (grokdeclarator): Return error_mark_node after invalid 1268 typedef. 1269 12702006-07-23 Daniel Jacobowitz <dan@codesourcery.com> 1271 1272 PR c++/28460 1273 * decl.c (grokvardecl): Use FROB_CONTEXT. 1274 * pt.c (register_specialization): Likewise. 1275 12762006-07-23 Mark Mitchell <mark@codesourcery.com> 1277 1278 PR c++/28025 1279 * cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments. 1280 * name-lookup.c (unqualified_namespace_lookup): There is no way to 1281 have a hidden name in non-namespace scopes. 1282 * pt.c (tsubst_friend_class): Look for hidden names. 1283 * decl.c (lookup_and_check_tag): Fix typo in comment. 1284 1285 * semantics.c (finish_compound_literal): Fix typo in comment. 1286 12872006-07-21 Jason Merrill <jason@redhat.com> 1288 1289 * decl2.c (determine_visibility): Don't propagate visibility from 1290 type to decl. 1291 (constrain_class_visibility): Don't warn in system headers. 1292 Don't warn about pointer fields. 1293 12942006-07-20 Mike Stump <mrs@apple.com> 1295 1296 * decl2.c (determine_visibility_from_class): Don't use hidden 1297 visibility for explicit instantiations. 1298 12992006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1300 1301 PR c++/28250 1302 * pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to 1303 valid decls. Cleanup. 1304 1305 PR c++/28363 1306 * semantics.c (check_template_template_default_arg): Simplify 1307 error handling. 1308 13092006-07-20 Jason Merrill <jason@redhat.com> 1310 1311 PR c++/28407 1312 * decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope 1313 const variables with implicit internal linkage. 1314 * tree.c (decl_linkage): Only return lk_external if it's set. 1315 1316 PR c++/28409 1317 * decl2.c (constrain_visibility): Ignore the anonymous namespace 1318 for extern "C" decls. 1319 (VISIBILITY_STATIC): Rename to VISIBILITY_ANON. 1320 1321 * decl2.c (constrain_visibility): Remove specified and reason 1322 parameters. Don't touch decls that already have explicit visibility. 1323 (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from 1324 template. 1325 (determine_visibility_from_class): Reverse sense of 1326 DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules. 1327 (constrain_class_visibility): Only complain about member visibility 1328 if the member type is another class. Don't change visibility of the 1329 current class. 1330 13312006-07-19 Mark Mitchell <mark@codesourcery.com> 1332 1333 PR c++/28338 1334 * decl.c (layout_var_decl): Don't call push_local_name here. 1335 (initialize_artificial_var): Assert artificiality. 1336 (cp_finish_decl): Call push_local_name here. 1337 13382006-07-18 Mark Mitchell <mark@codesourcery.com> 1339 1340 PR c++/28337 1341 * typeck.c (build_binary_op): Short-circuit pointer arithmetic in 1342 templates. 1343 13442006-07-18 Mark Mitchell <mark@codesourcery.com> 1345 1346 PR c++/28048 1347 * semantics.c (check_accessibility_of_qualified_id): Robustify. 1348 1349 PR c++/28235 1350 * pt.c (tsubst_decl): Handling substitutions into a static data 1351 member from within the scope of the tempalte itself. 1352 13532006-07-18 Lee Millward <lee.millward@gmail.com> 1354 1355 PR c++/28258 1356 * method.c (locate_copy): Check for non_reference 1357 returning error_mark_node. 1358 1359 PR c++/28260 1360 * decl.c (duplicate_decls): Return error_mark_node 1361 on ambiguous declaration. 1362 13632006-07-18 Steve Ellcey <sje@cup.hp.com> 1364 1365 PR c++/27495 1366 * search.c (adjust_result_of_qualified_name_lookup): Change 1367 assert to part of if statement. 1368 13692006-07-17 Steve Ellcey <sje@cup.hp.com> 1370 1371 PR c++/28291 1372 * decl.c (reshape_init_class): Return error_mark_node on error. 1373 13742006-07-17 Steve Ellcey <sje@cup.hp.com> 1375 1376 PR c++/28304 1377 * decl2.c (check_classfn): Return NULL_TREE on error. 1378 13792006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1380 1381 PR c++/28250 1382 * name-lookup.c (pushdecl_maybe_friend): Return early on 1383 error_mark_node. 1384 * except.c (expand_start_catch_block): Use error_mark_node instead 1385 of NULL_TREE for invalid decls. 1386 * parser.c (cp_parser_exception_declaration): Return error_mark_node 1387 on invalid catch parameter. Simplify. 1388 13892006-07-16 Jakub Jelinek <jakub@redhat.com> 1390 1391 PR c++/28370 1392 * decl2.c (note_vague_linkage_var): Removed. 1393 (finish_static_data_member_decl): Add decl to pending_statics vector 1394 directly. Do it even for non-public decls. 1395 13962006-07-15 Lee Millward <lee.millward@gmail.com> 1397 1398 PR c++/28292 1399 * decl2.c (acceptable_java_type): Robustify. Use 1400 proper Boolean return type instead of return 1. 1401 (check_java_method): Don't issue error about 1402 type not being an acceptable Java parameter if 1403 it's error_mark_node. 1404 1405 PR c++/28269 1406 * parser.c (cp_parser_elaborated_type_specifier): 1407 Return early if an invalid type was detected. 1408 14092006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1410 1411 PR c++/28249 1412 * parser.c (cp_parser_check_decl_spec): New function. 1413 (cp_parser_decl_specifier_seq): Factor out check for repeated 1414 decl-specifiers into cp_parser_check_decl_spec. Use it. 1415 (cp_parser_type_specifier_seq): Use it. 1416 1417 PR c++/28294 1418 * semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs 1419 only. 1420 1421 PR c++/28387 1422 * decl2.c (cplus_decl_attributes): Check for invalid decls. 1423 14242006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1425 1426 PR c++/28343 1427 * decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node. 1428 * decl2.c (grokfield): Likewise. 1429 14302006-07-12 Geoffrey Keating <geoffk@apple.com> 1431 1432 * decl2.c (determine_visibility): Don't change visibility of 1433 function locals because of -fvisibility-inlines-hidden. 1434 14352006-07-12 Jason Merrill <jason@redhat.com> 1436 1437 PR c++/28217 1438 * semantics.c (note_decl_for_pch): Don't premangle templates. 1439 14402006-07-12 Martin Michlmayr <tbm@cyrius.com> 1441 1442 * typeck.c (string_conv_p): Remove spurious quotation mark in 1443 warning. 1444 14452006-07-07 Lee Millward <lee.millward@gmail.com> 1446 Andrew Pinski <pinskia@gmail.com> 1447 1448 PR c++/27820 1449 * decl.c (define_label): Return error_mark_node on error. 1450 * semantics.c (finish_label_stmt): Don't call 1451 add_stmt for invalid labels. 1452 14532006-07-06 Jason Merrill <jason@redhat.com> 1454 1455 PR c++/28279 1456 * decl2.c (finish_static_data_member_decl): Don't assert 1457 TREE_PUBLIC. 1458 14592006-07-05 Jason Merrill <jason@redhat.com> 1460 1461 PR c++/13983 1462 PR c++/17519 1463 * class.c (check_field_decls): Check TYPE_PACKED after 1464 stripping array types. 1465 (finish_struct_bits): Don't copy TYPE_SIZE here. 1466 1467 PR c++/18681 1468 * friend.c (is_friend): Fix DR 45 implementation. 1469 14702006-07-05 Richard Guenther <rguenther@suse.de> 1471 Andrew Pinski <pinskia@gcc.gnu.org> 1472 1473 PR c++/27084 1474 * cp-objcp-common.c (cxx_types_compatible_p): Ignore 1475 top level qualifiers for pointer type comparisons. 1476 14772006-07-01 Jason Merrill <jason@redhat.com> 1478 1479 PR c++/28215 1480 * method.c (make_thunk): Unset DECL_USE_TEMPLATE and 1481 DECL_TEMPLATE_INFO. 1482 14832006-06-30 Jason Merrill <jason@redhat.com> 1484 1485 PR c++/26577 1486 * call.c (build_new_method_call): Force evaluation of the 1487 instance pointer, not the object. 1488 14892006-06-30 Kazu Hirata <kazu@codesourcery.com> 1490 1491 * decl2.c: Fix a comment typo. 1492 14932006-06-30 Jason Merrill <jason@redhat.com> 1494 1495 PR c++/18698 1496 * decl2.c (grokfield): Only try to treat the decl as an access 1497 declaration if the scope is a class. 1498 14992006-06-29 Jason Merrill <jason@redhat.com> 1500 1501 PR c++/26905 1502 PR c++/26612 1503 PR c++/27000 1504 PR c++/26984 1505 PR c++/19134 1506 * decl2.c (determine_visibility): Overhaul. 1507 (determine_visibility_from_class): Likewise. 1508 (min_vis_r, type_visibility, constrain_visibility): New fns. 1509 (constrain_visibility_for_template): Likewise. 1510 (constrain_class_visibility): Likewise. 1511 * decl.c (cp_finish_decl): Call determine_visibility for function 1512 decls, too. 1513 * name-lookup.c (pushtag): Call determine_visibility. 1514 * decl.c (duplicate_decls): Don't copy visibility from template to 1515 specialization. 1516 * pt.c (check_explicit_specialization): Likewise. 1517 (lookup_template_class, tsubst_decl): Call determine_visibility. 1518 * class.c (finish_struct_1): Call constrain_class_visibility. 1519 1520 PR c++/26905 1521 PR c++/21675 1522 PR c++/17470 1523 * parser.c (cp_parser_explicit_instantiation): Pass the attributes 1524 to grokdeclarator. 1525 (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'. 1526 (cp_parser_enum_specifier): Likewise. 1527 (cp_parser_elaborated_type_specifier): Apply attributes if this 1528 declares only the class. 1529 (cp_parser_class_specifier): Apply leading attributes immediately. 1530 * semantics.c (begin_class_definition): Add attributes parameter, 1531 apply them to the type. 1532 1533 PR c++/21581 1534 PR c++/25915 1535 * tree.c (decl_anon_ns_mem_p): New function. 1536 * cp-tree.h: Declare it. 1537 * decl2.c (determine_visibility): Make anonymous namespace 1538 members static. 1539 (min_vis_r, constrain_visibility): Likewise. 1540 * rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on 1541 pseudo-types. 1542 * decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on 1543 global_namespace. 1544 * name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC 1545 on anonymous namespaces. 1546 15472006-06-28 Jason Merrill <jason@redhat.com> 1548 1549 PR c++/27424 1550 * pt.c (convert_template_argument): Pass all template arguments 1551 on to coerce_template_template_parms. 1552 15532006-06-25 Lee Millward <lee.millward@gmail.com> 1554 Mark Mitchell <mark@codesuorcery.com> 1555 1556 PR c++/28054 1557 * decl2.c (grokbitfied): Remove check for grokdeclarator 1558 returning NULL_TREE, instead check for error_mark_node 1559 to indicate failure. 1560 * decl.c (grokdeclarator): Adjust block comment. 1561 15622006-06-25 Lee Millward <lee.millward@gmail.com> 1563 1564 PR c++/28051 1565 * mangle.c (mangle_conv_op_name_for_type): Check for 1566 invalid types. 1567 * name-lookup.c (push_class_level_binding): Robustify. 1568 (do_class_using_decl): Return early if name is error_mark_node. 1569 15702006-06-23 Steve Ellcey <sje@cup.hp.com> 1571 1572 PR c++/28114 1573 * name-lookup.c (pushtag): Return if we have error_mark_node. 1574 15752006-06-23 Steve Ellcey <sje@cup.hp.com> 1576 1577 PR c++/27019 1578 * typeck2.c (process_init_constructor_array): Set ce->value on errors. 1579 15802006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1581 1582 PR c++/28112 1583 * parser.c (cp_parser_attribute_list): Skip attributes with invalid 1584 arguments. Fix comment. 1585 1586 PR c++/11468 1587 * init.c (build_new_1): Handle error_mark_nodes returned by 1588 build_java_class_ref. 1589 (build_java_class_ref): Do not abort compilation, but return 1590 error_mark_node. Improve error message. Fix indentation. 1591 15922006-06-23 Danny Smith <dannysmith@users.sourceforge.net> 1593 1594 PR target/27789 1595 * decl.c (start_decl): Check that dllimports are not initialized. 1596 15972006-06-22 Lee Millward <lee.millward@gmail.com> 1598 1599 PR c++/27805 1600 * typeck2.c (build_m_component_ref): Use error_operand_p. 1601 1602 PR c++/27821 1603 * decl.c (grokdeclarator): Return error_mark_node on 1604 invalid uses of the scope resolution operator. 1605 16062006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1607 1608 PR c++/28111 1609 * pt.c (determine_specialization): Check for invalid decls. 1610 1611 PR c++/28110 1612 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid 1613 parameters. 1614 1615 PR c++/28109 1616 * rtti.c (get_tinfo_decl_dynamic): Robustify. 1617 16182006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1619 1620 PR c++/28052 1621 * init.c (push_base_cleanups): Skip members with invalid types. 1622 * typeck.c (build_class_member_access_expr): Robustify. 1623 16242006-06-19 Mark Mitchell <mark@codesourcery.com> 1625 1626 * pt.c (instantiate_template): Fix typo in comment. 1627 16282006-06-19 Richard Guenther <rguenther@suse.de> 1629 1630 * parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near 1631 power-of-two token vector size. 1632 16332006-06-16 Mark Mitchell <mark@codesourcery.com> 1634 1635 PR c++/28016 1636 * decl.c (cp_finsh_decl): Do not emit uninstantiated static data 1637 members. 1638 1639 PR c++/27979 1640 * call.c (standard_conversion): Strip cv-qualifiers from bitfield 1641 types. 1642 1643 PR c++/27884 1644 * decl.c (have_extern_spec): Remove. 1645 (start_decl): Do not check have_extern_spec. 1646 (start_function): Likewise. 1647 * cp-tree.h (have_extern_spec): Remove. 1648 * parser.c (cp_parser_linkage_specification): Don't set 1649 have_extern_spec. 1650 (cp_parser_init_declarator): Likewise. 1651 (cp_parser_parameter_declaration): Do not treat parameters as 1652 within the scope of an unbraced linkage specification. 1653 16542006-06-15 Mark Mitchell <mark@codesourcery.com> 1655 1656 PR c++/27689 1657 * cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New 1658 macro. 1659 * pt.c (unify): Use it. 1660 1661 PR c++/27666 1662 * call.c (build_conditional_expr): Robustify. 1663 1664 PR c++/27640 1665 * pt.c (instantiate_template): Set processing_template_decl to 1666 zero while performing substitutions. 1667 16682006-06-14 Mark Mitchell <mark@codesourcery.com> 1669 1670 PR c++/27665 1671 * parser.c (cp_parser_unqualified_id): Use constructor_name_p to 1672 identify destructors. 1673 (cp_parser_nested_name_specifier_opt): Remove invalid 1674 optimization. 1675 (cp_parser_template_id): Refine heuristic for determining whether 1676 we are entering a scope. 1677 1678 PR c++/27648 1679 * parser.c (cp_parser_declarator): Robustify. 1680 1681 PR c++/26559 1682 * pt.c (tsubst_expr): Use finish_omp_atomic. 1683 (value_dependent_expression_p): All CALL_EXPRs are dependent. 1684 * semantics.c (finish_omp_atomic): Rework to use standard 1685 paradigms for handling non-dependent expressions. 1686 16872006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net> 1688 1689 * typeck.c (build_modify_expr): Tidy diagnostic message. 1690 16912006-06-14 Mark Mitchell <mark@codesourcery.com> 1692 1693 PR c++/28018 1694 * typeck.c (build_modify_expr): Disallow array assignment. 1695 16962006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net> 1697 1698 * cp-tree.def: Fix typo. 1699 17002006-06-13 Mark Mitchell <mark@codesourcery.com> 1701 1702 PR c++/27227 1703 * decl.c (decls_match): Allow an extern "C" variable declarations 1704 from different namespaces to match. 1705 (duplicate_decls): Disallow redeclaring a variable with a 1706 different linkage specification. 1707 17082006-06-13 Jakub Jelinek <jakub@redhat.com> 1709 1710 PR middle-end/27793 1711 * cp-tree.h (cxx_int_tree_map): New struct. 1712 (struct language_function): Add extern_decl_map field. 1713 * name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping 1714 to cp_function_chain->extern_decl_map hash table instead of 1715 copying over DECL_UID. 1716 * cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New 1717 functions. 1718 (cp_genericize_r): Remap DECL_EXTERN local decls using 1719 cp_function_chain->extern_decl_map hash table. 1720 * decl.c (finish_function): Clear extern_decl_map. 1721 17222006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1723 1724 PR c++/27601 1725 * semantics.c (finish_offsetof): Handle pseudo-destructors. 1726 1727 PR c++/27933 1728 * name-lookup.c (lookup_qualified_name): Always return error_mark_node 1729 if lookup fails. 1730 1731 PR c++/27951 1732 * decl2.c (finish_anon_union): Return early if build_anon_union_vars 1733 fails. 1734 17352006-06-12 Roger Sayle <roger@eyesopen.com> 1736 1737 PR c++/21210 1738 * typeck2.c (build_functional_cast): Use cp_convert to construct 1739 non-aggregate initializers instead of the user-level build_c_cast. 1740 17412006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1742 1743 PR c++/27601 1744 * cp-tree.h (finish_offsetof): Add prototype. 1745 * semantics.c (finish_offsetof): New function. 1746 * parser.c (cp_parser_builtin_offsetof): Call it instead of 1747 fold_offsetof. 1748 * pt.c (tsubst_copy_and_build): Likewise. 1749 17502006-06-06 Mark Mitchell <mark@codesourcery.com> 1751 1752 PR c++/27177 1753 * call.c (standard_conversion): Require that the derived type be 1754 complete when performing a derived-to-base conversion. 1755 17562006-06-04 Mark Mitchell <mark@codesourcery.com> 1757 1758 PR c++/27819 1759 * decl.c (cp_finish_decl): Process initializers for static data 1760 members with non-dependent initializers, even in templates. 1761 1762 PR c++/27722 1763 * decl.c (maybe_deduce_size_from_array_init): If the declaration 1764 is erroneous, give it an erroneous type. 1765 (layout_var_decl): If the type is erroneous, give up. 1766 (check_initializer): Likewise. 1767 1768 PR c++/27807 1769 * cp-tree.h (TYPE_OBJ_P): New macro. 1770 (TYPE_PTROB_P): Use it. 1771 (TYPE_REF_OBJ_P): Likewise. 1772 * semantics.c (finish_compound_literal): Do not permit compound 1773 literals of non-object types. 1774 1775 PR c++/27806 1776 * typeck.c (original_type): Robustify. 1777 17782006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1779 1780 PR c++/27804 1781 * init.c (constant_value_1): Return decl instead of error_mark_node 1782 for invalid initializers. 1783 17842006-06-01 Andrew Pinski <pinskia@physics.uc.edu> 1785 1786 PR c++/27592 1787 * rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion 1788 on operand of the COND_EXPR for the null pointer check. 1789 17902006-06-01 Andrew Pinski <pinskia@physics.uc.edu> 1791 1792 PR c++/26740 1793 * typeck.c (build_unary_op): Mark the function as being used. 1794 17952006-06-01 Alexandre Oliva <aoliva@redhat.com> 1796 1797 PR c++/26660 1798 * parser.c (cp_parser_initial_pragma): Read one more token for 1799 caller after reading PCH file in. 1800 18012006-05-31 Mark Mitchell <mark@codesourcery.com> 1802 1803 PR c++/27801 1804 * call.c (perform_implicit_conversion): Do not actually perform 1805 conversions in templates. 1806 1807 PR c++/26496 1808 * call.c (resolve_args): Check for invalid uses of bound 1809 non-static member functions. 1810 * init.c (build_offset_ref): Return error_mark_node for errors. 1811 1812 PR c++/27385 1813 * decl.c (reshape_init): Robustify. 1814 (reshape_init_array_1): Likewise. 1815 18162006-05-30 Mark Mitchell <mark@codesourcery.com> 1817 1818 PR c++/27808 1819 * parser.c (cp_parser_decl_specifier_seq): Issue errors about 1820 "friend" specifiers that do not appear in class scopes. 1821 1822 PR c++/27803 1823 * class.c (check_bitfield_decl): Ensure that all bitfields have 1824 integral type. 1825 18262006-05-29 Kazu Hirata <kazu@codesourcery.com> 1827 1828 * pt.c (convert_nontype_argument): Fix a typo in an error 1829 message. 1830 18312006-05-28 Kazu Hirata <kazu@codesourcery.com> 1832 1833 * decl.c, decl2.c, parser.c: Fix comment typos. Follow 1834 spelling conventions. 1835 18362006-05-24 Mark Mitchell <mark@codesourcery.com> 1837 1838 PR c++/20103 1839 * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to 1840 error_mark_node to indicate an initialization is OK. 1841 (start_decl): Likewise. Adjust call to start_decl_1. 1842 (start_decl_1): Add initialized parameter. Simplify. 1843 * except.c (initialize_handler_parm): Adjust call to 1844 setart_decl_1. 1845 (expand_start_catch_block): Let cp_finish_decl initialize catch 1846 parameters. 1847 * cp-tree.h (start_decl_1): Adjust prototype. 1848 * pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node. 1849 (instantiate_decl): Let cp_finish_decl handle initialization. 1850 * semantics.c (finish_compound_literal): Create a temporary 1851 variable for the literal. 1852 * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special 1853 cases. 1854 * decl2.c (finish_static_data_member_decl): Don't set 1855 DECL_INITIAL. 1856 (grokfield): Do not try to initialize functions. 1857 18582006-05-23 Mark Mitchell <mark@codesourcery.com> 1859 1860 PR c++/20173 1861 * pt.c (determine_specialization): Disallow partial 1862 specializations of templates. 1863 18642006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1865 1866 PR c++/27716 1867 * typeck.c (build_modify_expr): Test arguments for error_operand_p. 1868 1869 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE. 1870 18712006-05-21 Mark Mitchell <mark@codesourcery.com> 1872 1873 PR c++/27210 1874 * cp-tree.h (cp_save_expr): New function. 1875 * init.c (build_new): Correct logic for zero-element array 1876 warning. Use cp_save_expr. 1877 * tree.c (cp_save_expr): New function. 1878 18792006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1880 1881 PR c++/27398 1882 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE 1883 or void_type_node. 1884 18852006-05-19 Mike Stump <mrs@apple.com> 1886 1887 * typeck.c (default_conversion): Remove static. 1888 18892006-05-19 Mark Mitchell <mark@codesourcery.com> 1890 1891 PR c++/26433 1892 * cp-tree.h (begin_function_try_block): Change prototype. 1893 (finish_function_handler_sequence): Likewise. 1894 * parser.c (cp_parser_function_try_block): Adjust calls. 1895 * pt.c (tsubst_expr): Adjust calls. 1896 * semantics.c (begin_function_try_block): Create an artificial 1897 outer scope. 1898 (finish_function_handler_sequence): Close it. 1899 19002006-05-18 Mark Mitchell <mark@codesourcery.com> 1901 1902 PR c++/27471 1903 PR c++/27506 1904 * typeck.c (decay_conversion): Convert bitfields to their declared 1905 types here. Improve documentation. Avoid use of cp_convert. 1906 (default_conversion): Make it static. Perform integral promotions 1907 before lvalue-to-rvalue, function-to-pointer, and array-to-pointer 1908 conversions. 1909 * init.c (build_init): Remove. 1910 (expand_default_init): Do not call rvalue. 1911 * call.c (null_ptr_cst_p): Robustify. 1912 (build_conditional_expr): Tidy. 1913 * except.c (build_throw): Do not perform lvalue-to-rvalue 1914 conversion on operand before initializing temporary. 1915 * tree.c (convert.h): Include it. 1916 (convert_bitfield_to_declared_type): Use convert_to_integer, not 1917 cp_convert. 1918 (rvalue): Don't convert bitfields to their declared type here. 1919 * cp-tree.h (build_init): Remove. 1920 (default_conversion): Likewise. 1921 * typeck2.c (build_m_component_ref): Do not perform 1922 lvalue-to-rvalue, function-to-pointer, or array-to-pointer 1923 conversions here. Correct error message. 1924 19252006-05-17 Mark Mitchell <mark@codesourcery.com> 1926 1927 PR c++/26122 1928 * decl2.c (check_member_template): Remove checks for virtual 1929 functions. 1930 * parser.c (cp_parser_function_specifier_opt): Complain about 1931 virtual templates. 1932 (cp_parser_pure_specifier): Likewise. 1933 1934 PR c++/26068 1935 * parser.c (cp_parser_set_storage_class): Check for 1936 invalid uses of storage classes on unbraced linkage 1937 specifications. 1938 (cp_parser_decl_specifier_seq): Pass keywords, not storage classes, 1939 to cp_parser_set_storage_class. 1940 19412006-05-17 Jakub Jelinek <jakub@redhat.com> 1942 1943 PR c++/27491 1944 * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR 1945 on CONSTRUCTORs. 1946 1947 PR middle-end/27415 1948 * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED 1949 on combined parallel workshare constructs. 1950 * pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag. 1951 19522006-05-16 H.J. Lu <hongjiu.lu@intel.com> 1953 1954 PR driver/26885 1955 * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS). 1956 19572006-05-15 Mark Mitchell <mark@codesourcery.com> 1958 1959 PR c++/27339 1960 * cp-tree.h (perform_access_checks): New function. 1961 * semantics.c (perform_access_checks): New function. 1962 (perform_deferred_access_checks): Use it. 1963 * parser.c (cp_parser_simple_declaration): Adjust call to 1964 cp_parser_init_declarator. 1965 (cp_parser_type_parameter): Do not defer checks in default 1966 arguments. 1967 (cp_parser_explicit_specialization): Adjust call to 1968 cp_parser_single_declaration. 1969 (cp_parser_init_declarator): Perform template-parameter access 1970 checks. 1971 (cp_parser_parameter_declaration): Do not defer checks for 1972 template parameter default arguments. 1973 (cp_parser_template_declaration_after_export): Gather access 1974 checks for template parameters, and pass them to 1975 cp_parser_single_declaration. 1976 (cp_parser_template_parameter_access_checks): New function. 1977 (cp_parser_single_declaration): Add checks parameter. 1978 1979 PR c++/27505 1980 * call.c (convert_like_real): Convert bitfields to their declared 1981 types when forming an rvalue. 1982 * tree.c (convert_bitfield_to_declared_type): New function. 1983 (rvalue): Use it. 1984 * cp-tree.h (convert_bitfield_to_declare_type): Declare it. 1985 19862006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1987 1988 PR c++/27582 1989 * pt.c (any_dependent_template_arguments_p): Return early on invalid 1990 argument list. 1991 1992 PR c++/27581 1993 * search.c (adjust_result_of_qualified_name_lookup): Skip on 1994 invalid context_class. 1995 1996 PR c++/27315 1997 * pt.c (do_decl_instantiation): Return early on invalid decl. 1998 1999 PR c++/27559 2000 * pt.c (push_template_decl_real): Return error_mark_node instead 2001 of broken decl. 2002 2003 PR c++/27496 2004 * pt.c (tsubst_friend_class): Return early on invalid friend 2005 declarations. 2006 20072006-05-14 H.J. Lu <hongjiu.lu@intel.com> 2008 2009 * Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H). 2010 (cp/decl2.o): Likewise. 2011 (cp/typeck.o): Likewise. 2012 (cp/cvt.o): Likewise. 2013 (cp/parser.o): Likewise. 2014 (cp/call.o): Replace target.h with $(TARGET_H). 2015 20162006-05-14 Alexandre Oliva <aoliva@redhat.com> 2017 2018 * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of 2019 COMPONENT_REF alone. 2020 20212006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2022 2023 PR c++/27547 2024 * decl.c (copy_fn_p): Return early on non-member functions. 2025 20262006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2027 2028 PR c++/27447 2029 * decl2.c (build_memfn_type): Skip invalid functions and class types. 2030 20312006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2032 2033 PR c++/27427 2034 * pt.c (convert_nontype_argument): Return early on invalid arguments. 2035 2036 * pt.c (process_template_parm): Remove superfluous temporary. 2037 2038 PR c++/27430 2039 * pt.c (process_template_parm): Handle erroneous non-type parameters. 2040 2041 PR c++/27423 2042 * typeck.c (convert_for_initialization): Skip erroneous types. 2043 2044 PR c++/27422 2045 * typeck.c (convert_arguments): Return early on args with 2046 invalid types. 2047 20482006-05-03 Aldy Hernandez <aldyh@redhat.com> 2049 2050 PR/21391 2051 * typeck.c (build_static_cast_1): Save casted types in used types 2052 hash table. 2053 (build_reinterpret_cast_1): Same. 2054 * rtti.c (build_dynamic_cast_1): Same. 2055 20562006-05-04 Jakub Jelinek <jakub@redhat.com> 2057 2058 PR c++/27359 2059 * parser.c (cp_parser_omp_for_loop): Only call 2060 cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not 2061 called. 2062 20632006-05-02 Mark Mitchell <mark@codesourcery.com> 2064 2065 PR c++/27102 2066 * decl.c (grokdeclarator): Robustify checks for defining members 2067 of incomplete types. 2068 2069 PR c++/27309 2070 * class.c (add_method): Call grok_special_member_properties. 2071 * decl.c (grokdeclarator): Don't call it here. 2072 (copy_fn_p): A TEMPLATE_DECL is never a copy constructor or 2073 assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a 2074 constructor. 2075 (start_method): Don't call grok_special_member_properties. 2076 * method.c (implicitly_declare_fn): Likewise. 2077 * pt.c (instantiate_class_template): Likewise. 2078 * decl2.c (grokfield): Likewise. 2079 20802006-05-02 Jakub Jelinek <jakub@redhat.com> 2081 2082 PR middle-end/27337 2083 * cp-gimplify.c (cxx_omp_privatize_by_reference): New function. 2084 * cp-tree.h (cxx_omp_privatize_by_reference): New prototype. 2085 * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define. 2086 20872006-04-30 Mark Mitchell <mark@codesourcery.com> 2088 2089 PR c++/27094 2090 * pt.c (tsubst_default_argument): Increment function_depth around 2091 call to tsubst_expr. 2092 * parser.c (cp_parser_parameter_declaration): Likewise. 2093 * decl2.c (mark_used): Tidy. 2094 20952006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2096 2097 PR c++/27278 2098 * decl.c (grok_op_properties): Skip operators with invalid args 2099 when checking for class-type or enum-type args. 2100 21012006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2102 2103 PR c++/27279 2104 * decl.c (copy_fn_p): Skip functions with invalid first arg. 2105 21062006-04-27 Mark Mitchell <mark@codesourcery.com> 2107 2108 PR c++/27292 2109 * tree.c (rvalue): Convert bitfields to their declared types. 2110 2111 PR c++/27102 2112 * typeck2.c (cxx_incomplete_type_diagnostic): Handle 2113 TYPENAME_TYPE. 2114 21152006-04-24 Mark Mitchell <mark@codesourcery.com> 2116 2117 PR c++/27292 2118 * typeck.c (decay_conversion): Don't adjust bitfield types. 2119 (perform_integral_promotions): Treat bitfield enums as enums, not 2120 as short integer types. 2121 * tree.c (rvalue): Convert bitfields to their correct types. 2122 21232006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2124 2125 PR c++/19963 2126 * class.c (layout_class_type): Skip fields with invalid types. 2127 21282006-04-23 Mark Mitchell <mark@codesourcery.com> 2129 2130 PR c++/26912 2131 * cp-tree.h (build_this_parm): Declare. 2132 (grok_method_quals): Remove. 2133 (build_memfn_type): Declare. 2134 (build_artificial_parm): Declare. 2135 (do_friend): Remove quals parameter. 2136 * decl.c (build_this_parm): New function. 2137 (grokfndecl): Use it. Do not pass quals to grokclassfn. 2138 (grokdeclarator): Rename quals to memfn_quals. Avoid allocating 2139 unnecessary TYPE_DECLs. Correct qualification of member function 2140 types. Tidy. 2141 * method.c (implicitly_declare_fn): Use build_this_parm. 2142 * friend.c (do_friend): Remove quals parameter. 2143 * decl2.c (grok_method_quals): Remove. 2144 (build_memfn_type): New function. 2145 (build_artificial_parm): Give it external linkage. 2146 (grokclassfn): Remove quals parameter. Do not build "this" 2147 PARM_DECL here. 2148 2149 PR c++/26534 2150 * cp-tree.h (is_bitfield_expr_with_lowered_type): New function. 2151 * typeck.c (is_bitfield_expr_with_lowered_type): New function. 2152 (decay_conversion): Convert bitfield expressions to the correct 2153 type. 2154 (build_modify_expr): Remove spurious conversions. 2155 * class.c (layout_class_type): Modify the type of bitfields to 2156 indicate a limited range. 2157 * call.c (standard_conversion): Adjust the type of bitfield 2158 expressions used in an rvalue context. 2159 (build_conditional_expr): Likewise. 2160 21612006-04-22 Kazu Hirata <kazu@codesourcery.com> 2162 2163 * decl.c: Fix comment typos. 2164 21652006-04-21 Eric Christopher <echristo@apple.com> 2166 2167 * decl.c: Fix typo in function name. 2168 21692006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2170 2171 PR c++/26558 2172 * parser.c (cp_parser_class_name): Check for invalid typenames. 2173 Rearrange code. 2174 2175 PR c++/26739 2176 * pt.c (tsubst_friend_function): Return early if 2177 pushdecl_namespace_level fails. 2178 2179 PR c++/26036 2180 * typeck.c (convert_arguments): Return error_mark_node instead of 2181 error_mark_list. 2182 * cp-tree.h (error_mark_list): Remove declaration. 2183 * decl.c (error_mark_list): Remove definition. 2184 (cxx_init_decl_processing): Do not initialize error_mark_list. 2185 2186 PR c++/10385 2187 * rtti.c (build_dynamic_cast_1): Check for invalid conversions 2188 before calling convert_to_reference. 2189 * cvt.c (convert_to_reference): Assert that reftype is a 2190 REFERENCE_TYPE. 2191 21922006-04-19 Mark Mitchell <mark@codesourcery.com> 2193 2194 PR c++/27102 2195 * class.c (currently_open_class): Tidy. 2196 * decl.c (grokdeclarator): If we encounter an erroneous 2197 declarator, assume that we have already issued an error message 2198 and return. Return error_mark_node instead of NULL_TREE in more 2199 places. Issue errors about function definitions that do not have 2200 a function declarator. Check for complete types for all function 2201 definitions. 2202 * cp-tree.h (cp_error_declarator): Remove. 2203 (currently_open_class): Change return type. 2204 * parser.c (cp_parser_id_expression): Add optional_p parameter. 2205 (cp_parser_parse_diagnose_invalid_type_name): Adjust calls. 2206 (cp_parser_id_expression): Likewise. 2207 (cp_parser_unqualified_id): If the name is optional, return 2208 NULL_TREE. 2209 (cp_parser_postfix_dot_deref_expression): Adjust calls. 2210 (cp_parser_type_parameter): Likewise. 2211 (cp_parser_unqualified_id): Likewise. 2212 (cp_parser_direct_declarator): Likewise. 2213 (cp_parser_declarator_id): Add optional_p parameter. 2214 (cp_parser_function_definition_from_specifiers_and_declarator): 2215 Assume that start_function indicates failure only if it has issued 2216 an error. 2217 (cp_parser_omp_var_list_no_open): Adjust calls. 2218 22192006-04-17 Janis Johnson <janis187@us.ibm.com> 2220 2221 PR c++/26114, c++/26115 2222 * typeck.c (cxx_mark_addressable): Restore check for extra_warnings. 2223 * class.c (check_field_decls): Ditto. 2224 22252006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2226 2227 * init.c (build_offset_ref): Remove superfluous temporary. 2228 22292006-04-16 Mark Mitchell <mark@codesourcery.com> 2230 2231 PR c++/26365 2232 * typeck.c (finish_class_member_access_expr): Robustify 2233 22342006-04-15 Kazu Hirata <kazu@codesourcery.com> 2235 2236 * Make-lang.in (cp/pt.o): Depend on vecprim.h. 2237 * pt.c: Include vecprim.h. 2238 (inline_parm_levels): Change the type to VEC(int,heap) *. 2239 (inline_parm_levels_used): Remove. 2240 (maybe_begin_member_template_processing, 2241 maybe_end_member_template_processing): Use VEC instead of 2242 VARRAY. 2243 2244 * cp/call.c: Fix comment typos. 2245 22462006-04-12 Mark Mitchell <mark@codesourcery.com> 2247 2248 * parser.c (cp_parser_init_declarator): Initialize local variables 2249 aggressively. 2250 22512006-04-12 Roger Sayle <roger@eyesopen.com> 2252 2253 * parser.c (cp_parser_init_declarator): Initialise 2254 is_parenthesized_init to false to avoid compiler warning. 2255 22562006-04-11 Mark Mitchell <mark@codesourcery.com> 2257 2258 * cp-tree.h (build_operator_new_call): Adjust prototype. 2259 (build_new_method_call): Likewise. 2260 (build_op_delete_call): Likewise. 2261 * init.c (build_raw_new_expr): New function. 2262 (build_new_1): Pass information as parameters, rather than 2263 bundling it into a NEW_EXPR. 2264 (build_new): Adjust accordingly. 2265 (build_vec_delete_1): Adjust for changes to build_op_delete_call. 2266 (build_delete): Likewise. 2267 * decl.c (finish_destructor_body): Likewise. 2268 * call.c (build_operator_new_call): Return the allocation function 2269 used. 2270 (build_op_delete_call): Take allocation function as parameter. 2271 (build_special_member_call): Adjust call to build_new_method_call. 2272 (build_new_method_call): Return function called. 2273 * pt.c (tsubst_copy_and_build): Adjust call to 2274 build_new_method_call. 2275 * semantics.c (finish_call_expr): Likewise. 2276 * parser.c (cp_parser_postfix_expression): Likewise. 2277 * typeck2.c (cxx_incomplete_type_diagnostic): Refer to 2278 "incomplete", not "undefined", types. 2279 2280 PR c++/26295 2281 * decl.c (grokdeclarator): Remove namespace-handling code for 2282 pointers-to-members. 2283 * parser.c (cp_parser_ptr_operator): Check for qualified names 2284 using namespaces. 2285 2286 PR c++/26122 2287 * parser.c (cp_parser_init_declarator): Adjust logic for deciding 2288 whether or not to look for a pure-specifier. 2289 (cp_parser_member_declaration): Likewise. 2290 22912006-04-08 Kazu Hirata <kazu@codesourcery.com> 2292 2293 * decl2.c, pt.c, semantics.c: Fix comment typos. 2294 22952006-04-06 Roger Sayle <roger@eyesopen.com> 2296 2297 * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check. 2298 22992006-04-05 Jason Merrill <jason@redhat.com> 2300 2301 * name-lookup.c (push_namespace_with_attribs): Temporarily disable 2302 default hidden visibility for anonymous namespace. 2303 23042006-03-29 Roger Sayle <roger@eyesopen.com> 2305 2306 PR c++/22494 2307 * init.c (build_vec_delete_1): Convert BASE pointer's type to 2308 the base pointer type to avoid a type mismatch in the EQ_EXPR. 2309 23102006-03-24 Carlos O'Donell <carlos@codesourcery.com> 2311 2312 * search.c (maybe_suppress_debug_info): If 2313 flag_emit_class_debug_always then don't suppress. 2314 23152006-03-22 Jason Merrill <jason@redhat.com> 2316 2317 * name-lookup.c (push_namespace_with_attribs): Only apply hidden 2318 visibility to anonymous namespaces if HAVE_GAS_HIDDEN. 2319 23202006-03-21 Jakub Jelinek <jakub@redhat.com> 2321 2322 PR c++/26691 2323 * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments. 2324 23252006-03-21 Jason Merrill <jason@redhat.com> 2326 2327 PR c++/21581 2328 * parser.c (cp_parser_declaration): Support attributes on 2329 anonymous namespaces. 2330 * name-lookup.c (push_namespace_with_attribs): Anonymous 2331 namespaces default to hidden visibility. 2332 23332006-03-20 Jason Merrill <jason@redhat.com> 2334 2335 PR c++/21764, c++/19238 2336 * decl.c (cp_finish_decl): Call determine_visibility later. 2337 (start_preparsed_function): Likewise. 2338 * cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros. 2339 (TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros. 2340 * name-lookup.h (struct cp_binding_level): Add has_visibility 2341 bitfield. 2342 * name-lookup.c: Include c-pragma.h. 2343 (push_namespace_with_attribs): Split out from push_namespace. 2344 Push visibility if appropriate. Set TREE_PUBLIC on namespaces. 2345 (leave_scope): Pop visibility if appropriate. 2346 * decl2.c (determine_visibility_from_class): Split out from... 2347 (determine_visibility): ...here. Handle function scope and 2348 nested classes. 2349 (import_export_decl): Move visibility handling to 2350 determine_visibility_from_class. 2351 * parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow 2352 attributes on namespace declarations. 2353 23542006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2355 2356 PR c++/6634 2357 * decl.c (grokdeclarator): Do not accept long long double. 2358 Reorganize checks for invalid (combinations of) type modifiers. 2359 Quote modifiers in messages. 2360 23612006-03-09 Jason Merrill <jason@redhat.com> 2362 2363 PR c++/16387, c++/16389 2364 * typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions. 2365 (cxx_sizeof_or_alignof_expr): Split out from here. 2366 23672006-03-09 Diego Novillo <dnovillo@redhat.com> 2368 2369 Merge from gomp-20050608-branch 2370 2371 2006-02-02 Diego Novillo <dnovillo@redhat.com> 2372 2373 * decl.c (pop_labels_1): Use appropriate pointer casting. 2374 (poplevel_named_label_1): Likewise. 2375 (named_label_entry_hash): Likewise. 2376 (named_label_entry_eq): Likewise. 2377 (check_goto): Likewise. 2378 (define_label): Likewise. 2379 2380 2006-01-26 Diego Novillo <dnovillo@redhat.com> 2381 2382 * cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead 2383 of TREE_BLOCK. 2384 * pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND 2385 instead of TREE_CODE/TREE_OPERAND. 2386 * semantics.c: Likewise. 2387 * parser.c: Likewise. 2388 2389 2005-11-10 Diego Novillo <dnovillo@redhat.com> 2390 2391 * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if 2392 target does not support TLS. 2393 2394 2005-11-09 Jakub Jelinek <jakub@redhat.com> 2395 2396 * decl.c (redeclaration_error_message): Don't error about 2397 DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P 2398 (olddecl). 2399 2400 2005-11-08 Jakub Jelinek <jakub@redhat.com> 2401 2402 PR c++/24735 2403 * semantics.c (finish_omp_barrier, finish_omp_flush): New 2404 functions. 2405 * parser.c (cp_parser_omp_barrier): Call finish_omp_barrier. 2406 (cp_parser_omp_flush): Call finish_omp_flush. 2407 * cp-tree.h (finish_omp_barrier, finish_omp_flush): New 2408 prototypes. 2409 2410 PR c++/24734 2411 * pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED. 2412 2413 2005-11-03 Jakub Jelinek <jakub@redhat.com> 2414 2415 * semantics.c (finish_omp_threadprivate): Error on class-scope 2416 variables. 2417 2418 2005-11-02 Jakub Jelinek <jakub@redhat.com> 2419 2420 * parser.c (cp_parser_omp_all_clauses): If some clause 2421 type is not allowed, don't remove just one of the 2422 clauses, but all clauses added in that loop round. 2423 2424 * semantics.c (finish_omp_clauses): Fix function 2425 comment. Don't handle non-const or mutable specially, 2426 as const and not mutable is predetermined shared and 2427 that leads to double error. Don't ICE if copyin var is 2428 PARM_DECL. 2429 2430 PR c++/24613 2431 * parser.c (cp_parser_pragma): Diagnose 2432 PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS 2433 construct. 2434 2435 * semantics.c (finish_omp_threadprivate): Error if V 2436 is automatic variable or has incomplete type. 2437 2438 2005-11-01 Diego Novillo <dnovillo@redhat.com> 2439 2440 * parser.c (cp_parser_omp_all_clauses): Use 2441 OMP_CLAUSE_CHAIN instead of TREE_CHAIN. 2442 2443 2005-11-01 Diego Novillo <dnovillo@redhat.com> 2444 2445 * parser.c (cp_parser_omp_all_clauses): When emitting an 2446 error message, remove the invalid clause from the list. 2447 2448 2005-10-31 Diego Novillo <dnovillo@redhat.com> 2449 2450 * parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in 2451 combined parallel+workshare directives. 2452 2453 2005-10-31 Richard Henderson <rth@redhat.com> 2454 2455 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR): 2456 Use cxx_omp_clause_dtor. 2457 * cp-tree.h (CP_OMP_CLAUSE_INFO): New. 2458 (cxx_omp_clause_dtor): New. 2459 * cp-gimplify.c (cxx_omp_clause_apply_fn): New. 2460 (cxx_omp_clause_default_ctor): Use it. 2461 (cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op): 2462 Likewise. 2463 (cxx_omp_clause_dtor): New. 2464 * semantics.c (finish_omp_clauses): Rewrite cdtor 2465 checking to fill in CP_OMP_CLAUSE_INFO. Don't 2466 specialcase LASTPRIVATE for removal. 2467 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor, 2468 cxx_omp_clause_assign_op): Move to cp-gimplify.c. 2469 2470 2005-10-28 Jakub Jelinek <jakub@redhat.com> 2471 2472 * semantics.c (finish_omp_threadprivate): If 2473 DECL_RTL_SET_P, call make_decl_rtl again so that 2474 encode_section_info can update SYMBOL_REF's flags. 2475 2476 2005-10-26 Jakub Jelinek <jakub@redhat.com> 2477 2478 * semantics.c (finish_omp_for): Don't segfault if COND 2479 or INCR is NULL. If not calling c_finish_omp_for 2480 right away and one of COND and INCR is NULL, issue 2481 error and don't expand anything. 2482 2483 PR c++/24512 2484 * cp-tree.h (finish_omp_for): Add PRE_BODY argument. 2485 * semantics.c (finish_omp_for): Likewise. Set 2486 OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it 2487 into the current statement list if not processing 2488 template decl or pass it to c_finish_omp_for. 2489 2490 * parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs 2491 into PRE_BODY statement list. Pass it to finish_omp_for. 2492 * pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also 2493 OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to 2494 finish_omp_for. Put all the statements into sk_omp 2495 scope. 2496 2497 2005-10-25 Jakub Jelinek <jakub@redhat.com> 2498 2499 PR c++/24516 2500 * parser.c (struct cp_parser): Rename in_iteration_statement 2501 field to in_statement. 2502 (IN_SWITCH_STMT, IN_ITERATION_STMT): Define. 2503 (IN_OMP_BLOCK, IN_OMP_FOR): Change values. 2504 (cp_parser_new, cp_parser_begin_omp_structured_block, 2505 cp_parser_end_omp_structured_block, 2506 cp_parser_omp_for_loop): Adjust for 2507 in_iteration_statement renaming. 2508 (cp_parser_selection_statement): Save 2509 parser->in_iteration, or it temporarily with 2510 IN_SWITCH_STMT for the 2511 cp_parser_implicitly_scoped_statement call. 2512 (cp_parser_iteration_statement): Adjust for 2513 in_iteration_statement renaming. Use 2514 IN_ITERATION_STMT rather than true. 2515 (cp_parser_jump_statement): Adjust for 2516 in_iteration_statement renaming and new values. Don't 2517 error on break in a switch statement within OMP_FOR or 2518 OpenMP structured block. 2519 2520 PR c++/24513 2521 * parser.c (cp_parser_cache_group): Don't stop if next 2522 token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as 2523 well. If current token is CPP_PRAGMA, consume 2524 everything until CPP_PRAGMA_EOL inclusive. 2525 2526 2005-10-24 Jakub Jelinek <jakub@redhat.com> 2527 2528 PR c++/24502 2529 * semantics.c (finish_omp_for): Handle MODOP_EXPR in 2530 addition to MODIFY_EXPR. 2531 2532 2005-10-23 Richard Henderson <rth@redhat.com> 2533 2534 * cp-gimplify.c (struct cp_gimplify_ctx): Remove. 2535 (bc_label): New. 2536 (begin_bc_block, finish_bc_block): Use it. 2537 (push_context, pop_context): Remove. 2538 (cp_genericize): Don't use them. Assert bc_label is null. 2539 * semantics.c (finish_omp_clauses): Create a fake data 2540 element of TYPE for probing ctors. 2541 2542 2005-10-23 Richard Henderson <rth@redhat.com> 2543 2544 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New. 2545 (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New. 2546 (LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New. 2547 (LANG_HOOKS_OMP_CLAUSE_DTOR): New. 2548 * semantics.c (finish_omp_clauses): Look through 2549 arrays when looking up special member calls. Also 2550 remove FIRSTPRIVATE when LASTPRIVATE fails. 2551 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New. 2552 (cxx_omp_clause_assign_op): New. 2553 * cp-tree.h: Declare them. 2554 2555 2005-10-21 Richard Henderson <rth@redhat.com> 2556 2557 * decl.c (check_previous_goto_1): Return false if error. 2558 (check_switch_goto): Likewise. 2559 (finish_case_label): Don't emit the case label on error. 2560 * parser.c (struct cp_parser): Revert 2561 in_switch_statement_p changes. 2562 (cp_parser_labeled_statement, 2563 cp_parser_selection_statement): Likewise. 2564 (cp_parser_begin_omp_structured_block): Don't save... 2565 (cp_parser_end_omp_structured_block): or restore 2566 in_switch_statement_p. 2567 2568 2005-10-21 Richard Henderson <rth@redhat.com> 2569 2570 * semantics.c (finish_omp_threadprivate): Set 2571 decl_flags.u2sel when necessary. 2572 2573 2005-10-21 Richard Henderson <rth@redhat.com> 2574 2575 * decl.c (poplevel_named_label_1): Restore creation of the 2576 bad_decls list. 2577 (decl_jump_unsafe): Check for error_mark_node types. 2578 (check_goto): Don't check cdtor_label. Don't use identify_goto. 2579 * semantics.c (finish_return_stmt): Do check_omp_return before 2580 converting to cdtor_label goto. 2581 2582 2005-10-21 Richard Henderson <rth@redhat.com> 2583 2584 PR c++/24451 2585 * decl.c (check_omp_return): Return false on error. 2586 * cp-tree.h (check_omp_return): Update decl. 2587 * semantics.c (finish_return_stmt): Avoid adding 2588 return on error. 2589 2590 2005-10-21 Richard Henderson <rth@redhat.com> 2591 2592 * cp-tree.h (struct language_function): Remove 2593 x_named_label_uses. 2594 Change x_named_labels to a hashtable. 2595 (check_omp_return): Declare. 2596 * decl.c (struct named_label_use_entry): Rename from 2597 named_label_use_list. Remove label_decl. 2598 (struct named_label_entry): Rename from 2599 named_label_list. Remove old_value and next. Change 2600 in_try_scope and in_catch_scope to bool. Add 2601 in_omp_scope. 2602 (pop_labels_1): New. 2603 (pop_labels): Use it. 2604 (pop_local_label, poplevel_named_label_1): New. 2605 (poplevel): Use them. 2606 (named_label_entry_hash, named_label_entry_eq): New. 2607 (make_label_decl): Create named_labels. Move label 2608 creation bits from lookup_label. 2609 (declare_local_label): Tidy. 2610 (identify_goto): Split out from ... 2611 (check_previous_goto_1): Add exited_omp argument. 2612 Handle omp scopes. 2613 2614 (use_label): Merge into... 2615 (check_goto): ... here. Handle omp scopes. 2616 (check_omp_return): New. 2617 (check_previous_gotos): Merge into... 2618 (define_label): ... here. 2619 (save_function_data): Remove x_named_label_uses reference. 2620 (finish_function): Likewise. 2621 * name-lookup.h (sk_omp): New. 2622 * name-lookup.c (begin_scope): Handle it. 2623 * parser.c (cp_parser_omp_for): Don't create extra 2624 compound stmt. 2625 2626 (cp_parser_omp_sections): Likewise. 2627 * semantics.c (finish_return_stmt): Call check_omp_return. 2628 (begin_omp_structured_block): Use sk_omp. 2629 (finish_omp_structured_block): Use do_poplevel. Don't build a 2630 MUST_NOT_THROW expression here. 2631 (begin_omp_parallel, finish_omp_parallel): Don't create extra 2632 compound statements. 2633 2634 2005-10-21 Diego Novillo <dnovillo@redhat.com> 2635 2636 PR 24455 2637 * cp/cp-tree.h (struct lang_decl_flags): Add field 2638 threadprivate_p. 2639 (CP_DECL_IS_THREADPRIVATE): Define. 2640 * cp/semantics.c (finish_omp_threadprivate): Set. Do 2641 not error out if CP_DECL_IS_THREADPRIVATE is set 2642 already. 2643 * cp/decl.c (duplicate_decls): Merge 2644 CP_DECL_THREADPRIVATE_P. 2645 2646 2005-10-20 Richard Henderson <rth@redhat.com> 2647 2648 * cp-gimplify.c (cp_gimplify_omp_for): New. 2649 (cp_gimplify_expr): Call it. 2650 * cp-tree.h (OMP_FOR_GIMPLIFYING_P): New. 2651 * parser.c (struct cp_parser): Rename 2652 in_iteration_statement_p to in_iteration_statement and 2653 change to unsigned char. Similarly with 2654 in_switch_statement. Update all users. 2655 (IN_OMP_BLOCK, IN_OMP_FOR): New. 2656 (cp_parser_labeled_statement): Diagnose case labels 2657 binding closer to an openmp block nested than the 2658 switch. 2659 (cp_parser_jump_statement): Diagnose break and 2660 continue labels binding closer to an openmp block than 2661 an iteration or switch. 2662 (cp_parser_omp_for_loop): Mark in_iteration_statement 2663 for an omp for. 2664 (cp_parser_begin_omp_structured_block): New. 2665 (cp_parser_end_omp_structured_block): New. 2666 (cp_parser_omp_structured_block): Use them. 2667 (cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise. 2668 (cp_parser_omp_parallel): Likewise. 2669 2670 2005-10-20 Richard Henderson <rth@redhat.com> 2671 2672 * semantics.c (begin_omp_structured_block): New. 2673 (finish_omp_structured_block): New. 2674 (begin_omp_parallel, finish_omp_parallel): Use them. 2675 * parser.c (cp_parser_omp_structured_block): Likewise. 2676 (cp_parser_omp_for): Likewise. 2677 (cp_parser_omp_sections_scope): Likewise. 2678 * cp-tree.h: Declare them. 2679 2680 2005-10-20 Richard Henderson <rth@redhat.com> 2681 2682 * parser.c (cp_parser_omp_master): Return the statement. 2683 (cp_parser_omp_ordered): Likewise. 2684 (cp_parser_omp_construct): Set the locus for them. 2685 2686 2005-10-19 Richard Henderson <rth@redhat.com> 2687 2688 * semantics.c (finish_omp_atomic): Revert to 2689 uses_template_parms. 2690 2691 2005-10-19 Richard Henderson <rth@redhat.com> 2692 2693 * semantics.c (finish_omp_clauses): Avoid 2694 DECL_THREAD_LOCAL_P on a PARM_DECL. Remove some 2695 stub asserts guaranteed to fail. 2696 2697 2005-10-19 Richard Henderson <rth@redhat.com> 2698 2699 * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New. 2700 (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New. 2701 * parser.c (cp_parser_omp_clause_copyin): Remove. 2702 (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead. 2703 Call finish_omp_clauses. 2704 (cp_parser_omp_clause_if): Don't do error checking here. 2705 (cp_parser_omp_clause_num_threads): Likewise. 2706 (cp_parser_omp_clause_schedule): Likewise. 2707 (cp_parser_omp_atomic): Use finish_omp_atomic. 2708 (cp_parser_omp_for_loop): Don't discard DECL_EXPR. 2709 Don't decompose assignment statment here. Use 2710 finish_omp_for. 2711 2712 * pt.c (tsubst_omp_clauses): New. 2713 (tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS, 2714 OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC. 2715 * semantics.c (finish_omp_clauses): New. 2716 (begin_omp_parallel, finish_omp_parallel): Know Less about the 2717 internals of the stmt_list stack. 2718 (finish_omp_for, finish_omp_atomic): New. 2719 2720 2005-10-18 Jakub Jelinek <jakub@redhat.com> 2721 2722 * semantics.c (cxx_omp_predetermined_sharing): New function. 2723 * cp-tree.h (cxx_omp_predetermined_sharing): New prototype. 2724 * cp-objcp-common.h 2725 (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine. 2726 2727 2005-10-18 Richard Henderson <rth@redhat.com> 2728 2729 * parser.c (cp_parser_omp_single): Use make_node and accessors 2730 instead of build. 2731 2732 2005-10-17 Richard Henderson <rth@redhat.com> 2733 2734 * parser.c (cp_parser_omp_for_loop): Handle declarations. 2735 2736 2005-10-12 Richard Henderson <rth@redhat.com> 2737 2738 * Make-lang.in (CXX_C_OBJS): Add c-omp.o. 2739 * cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare. 2740 (finish_omp_threadprivate): Declare. 2741 * parser.c (struct cp_lexer): Add in_pragma. 2742 (cp_lexer_consume_token): Don't consume a PRAGMA_EOL 2743 when in_pragma. 2744 (cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL. 2745 (cp_parser_skip_to_end_of_statement): Likewise. 2746 (cp_parser_skip_to_end_of_block_or_statement): Likewise. 2747 (cp_parser_skip_to_closing_brace): Likewise. 2748 (cp_parser_skip_to_pragma_eol): Reset in_pragma. 2749 (cp_parser_require_pragma_eol): New. 2750 (cp_parser_statement): Add in_compound argument; 2751 update all callers. 2752 Restart if a non-statement pragma seen outside a 2753 compound. 2754 (cp_parser_statement_seq_opt): Stop at PRAGMA_EOL. 2755 (cp_parser_declaration_seq_opt): Likewise. 2756 (cp_parser_member_specification_opt): Likewise. 2757 (cp_parser_function_definition_after_decl): Likewise. 2758 (cp_parser_skip_until_found): Likewise. 2759 (cp_parser_cache_group): Likewise. 2760 (enum pragma_omp_clause, cp_parser_omp_clause_name, 2761 check_no_duplicate_clause, 2762 cp_parser_omp_var_list_no_open, 2763 cp_parser_omp_var_list, cp_parser_omp_clause_copyin, 2764 cp_parser_omp_clause_default, cp_parser_omp_clause_if, 2765 cp_parser_omp_clause_nowait, 2766 cp_parser_omp_clause_num_threads, 2767 cp_parser_omp_clause_ordered, 2768 cp_parser_omp_clause_reduction, 2769 cp_parser_omp_clause_schedule, 2770 cp_parser_omp_all_clauses, 2771 cp_parser_omp_structured_block, cp_parser_omp_atomic, 2772 cp_parser_omp_barrier, cp_parser_omp_critical, 2773 cp_parser_omp_flush, cp_parser_omp_for_loop, 2774 cp_parser_omp_for, cp_parser_omp_master, 2775 cp_parser_omp_ordered, cp_parser_omp_sections_scope, 2776 cp_parser_omp_sections, cp_parser_omp_parallel, 2777 cp_parser_omp_single, cp_parser_omp_threadprivate, 2778 cp_parser_omp_construct): New. 2779 (cp_parser_pragma): Handle OpenMP pragmas. 2780 * semantics.c (finish_omp_threadprivate): New. 2781 (begin_omp_parallel, finish_omp_parallel): New. 2782 2783 2005-10-11 Richard Henderson <rth@redhat.com> 2784 2785 * parser.c (struct cp_token): Add pragma_kind. 2786 (eof_token): Initialize it. 2787 (cp_lexer_handle_pragma): Remove. 2788 (cp_parser_initial_pragma): New. 2789 (cp_lexer_new_main): Use it. 2790 (cp_lexer_get_preprocessor_token): Initialize pragma_kind. 2791 (cp_lexer_print_token): Don't handle CPP_PRAGMA. 2792 (cp_parser_skip_to_pragma_eol): New. 2793 (cp_parser_error): Use it. 2794 (pragma_lex): New. 2795 2796 2005-10-09 Richard Henderson <rth@redhat.com> 2797 2798 * lex.c (parse_strconst_pragma): Update for c_lex name change. 2799 (handle_pragma_java_exceptions): Likewise. 2800 * parser.c (cp_lexer_new_main): Likewise. 2801 2802 2005-10-06 Richard Henderson <rth@redhat.com> 2803 2804 * parser.c (cp_lexer_new_main): Comment out defer_pragmas. 2805 (cp_lexer_handle_pragma): Comment out 2806 cpp_handle_deferred_pragma. 2807 2808 2005-10-01 Richard Henderson <rth@redhat.com> 2809 2810 * name-lookup.c (lookup_name): Remove prefer_type argument. 2811 (lookup_name_prefer_type): New function. 2812 * name-lookup.h (lookup_name_prefer_type): Declare it. 2813 * decl.c (lookup_and_check_tag): Use it. 2814 * pt.c (tsubst_friend_class): Likewise. Update for 2815 lookup_name change. 2816 (lookup_template_class, tsubst_copy_and_build): Likewise. 2817 28182006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2819 2820 PR c++/15759 2821 * tree.c (bot_manip): Don't call mark_used. 2822 28232006-03-02 Mike Stump <mrs@apple.com> 2824 2825 * decl2.c (import_export_decl): Remove redundant call to 2826 targetm.cxx.key_method_may_be_inline (). 2827 28282006-03-02 Richard Sandiford <richard@codesourcery.com> 2829 2830 * decl.c (start_decl): Use have_global_bss_p when deciding 2831 whether to make the decl common. 2832 28332006-03-01 Mike Stump <mrs@apple.com> 2834 2835 PR darwin/25908 2836 * decl2.c (import_export_decl): Fix ABI breakage on darwin. 2837 28382006-02-24 Geoffrey Keating <geoffk@apple.com> 2839 2840 * except.c (expand_start_catch_block): Handle 2841 flag_use_cxa_get_exception_ptr. 2842 28432006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2844 2845 PR c++/26291 2846 * decl.c (grok_op_properties): Check for ellipsis in arguments of 2847 operators. 2848 28492006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2850 2851 * Make-lang.in (C++): Remove. 2852 (.PHONY): Remove C++. 2853 28542006-02-18 Mark Mitchell <mark@codesourcery.com> 2855 2856 PR c++/26266 2857 * cp-tree.h (cp_finish_decl): Adjust declaration. 2858 (grokbitfield): Likewise. 2859 (finish_static_data_member_decl): Likewise. 2860 * init.c (constant_value_1): Ensure processing_template_decl when 2861 folding non-dependent initializers for static data members of 2862 dependent types. Return error_mark_node for erroneous 2863 initailizers. 2864 * class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl. 2865 * decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl. 2866 (cp_finish_decl): Add init_const_expr_p parameter. Set 2867 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here. 2868 (finish_decl): Adjust call to cp_finish_decl. 2869 (compute_array_index_type): Robustify. 2870 (start_method): Use finish_decl, not cp_finish_decl. 2871 * rtti.c (emit_tinfo_decl): Likewise. 2872 * except.c (initialize_handler_parm): Adjust call to 2873 cp_finish_decl. 2874 (expand_start_catch_block): Likewise. 2875 * cvt.c (build_up_reference): Adjust call to cp_finish_decl. 2876 * pt.c (instantiate_class_template): Adjust call to 2877 finish_static_data_member_decl. 2878 (tsubst_expr): Use finish_decl, not cp_finish_decl. 2879 (instantiate_decl): Adjust call to cp_finish_decl. 2880 * name-lookup.c (pushdecl_top_level_1): Use finish_decl, not 2881 cp_finish_decl. 2882 * decl2.c (finish_static_data_member_decl): Add init_const_expr_p 2883 parameter. 2884 (grokfield): Likewise. 2885 * parser.c (cp_parser_condition): Check for constant initializers. 2886 (cp_parser_init_declarator): Adjust calls to grokfield and 2887 cp_finish_decl. Don't set 2888 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here. 2889 (cp_parser_member_declaration): Likewise. 2890 (cp_parser_objc_class_ivars): Likewise. 2891 28922006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2893 2894 * call.c (standard_conversion): Return NULL instead of 0. 2895 (build_user_type_conversion_1): Likewise. 2896 (tourney): Likewise. 2897 * decl.c (redeclaration_error_message): Likewise. 2898 * error.c (language_to_string): Likewise. 2899 29002006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2901 2902 * cp-tree.h (warn_hidden): Remove prototype. 2903 * class.c (warn_hidden): Make static. 2904 2905 * cp-tree.h (build_type_conversion): Remove prototype. 2906 * cvt.c (build_type_conversion): Add prototype, make static. 2907 2908 * cp-tree.h (push_tinst_level): Remove prototype. 2909 (pop_tinst_level): Likewise. 2910 * pt.c (push_tinst_level): Add prototype, make static. 2911 (pop_tinst_level): Likewise. 2912 29132006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2914 2915 * decl.c (grokdeclarator): Return NULL_TREE instead of 0. 2916 * typeck.c (unary_complex_lvalue): Likewise. 2917 29182006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2919 2920 * lex.c (parse_strconst_pragma): Return error_mark_node instead of 2921 "(tree)-1" to indicate failure. Simplify. 2922 (handle_pragma_interface): Test for error_mark_node instead of 2923 "(tree)-1". 2924 (handle_pragma_implementation): Likewise. 2925 29262006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2927 2928 PR c++/26151 2929 * parser.c (cp_parser_decl_specifier_seq): Check for duplicate 2930 decl-specifiers. Remove extra check for duplicate 'friend'. 2931 * decl.c (grokdeclarator): Remove check for duplicate 2932 decl-specifiers. Set longlong together with long_p. 2933 29342006-02-12 Jason Merrill <jason@redhat.com> 2935 2936 PR c++/24996 2937 * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the 2938 TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR. 2939 29402006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2941 2942 * class.c (debug_class): Remove extern. 2943 (debug_thunks): Likewise. 2944 29452006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net> 2946 2947 * typeck.c (string_conv_p): Don't test for flag_const_strings. 2948 29492006-02-08 Jason Merrill <jason@redhat.com> 2950 2951 PR c++/25979 2952 * cp-gimplify.c (cp_gimplify_expr): Don't call 2953 cp_gimplify_init_expr for MODIFY_EXPRs. 2954 * typeck2.c (split_nonconstant_init_1): Use INIT_EXPR. 2955 29562006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2957 2958 PR c++/26071 2959 * decl.c (grokdeclarator): Set dname also for destructor. 2960 2961 PR c++/26070 2962 * decl.c (grokdeclarator): Clear storage_class together with staticp. 2963 29642006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net> 2965 2966 * cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error. 2967 (cp_build_qualified_type): Propogate renaming. 2968 * call.c (convert_like_real): Likewise. 2969 * cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise. 2970 * decl.c (make_typename_type, grokdeclarator): Likewise. 2971 * pt.c (tsubst_friend_function, instantiate_class_template, 2972 tsubst_default_argument, instantiate_decl, 2973 tsubst_initializer_list, tsubst_enum): Likewise. 2974 * semantics.c (finish_template_type): Likewise. 2975 * typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise. 2976 29772006-02-07 Dirk Mueller <dmueller@suse.com> 2978 2979 * typeck.c (build_binary_op): Annotate div-by-zero 2980 warnings to make -Wno-div-by-zero have an effect. 2981 29822006-02-07 Mark Mitchell <mark@codesourcery.com> 2983 2984 PR c++/9737 2985 * pt.c (coerce_template_template_parms): Do not templates with 2986 excess default arguments to match template template parameters 2987 with fewer parameters. 2988 (coerce_template_parms): Add use_default_args parameter; use 2989 default arguments only when true. 2990 (lookup_template_class): Adjust call to coerce_template_parms. 2991 (fn_type_unification): Likewise. 2992 (unify): Likewise. 2993 (get_bindings): Likewise. 2994 (dependent_type_p): Add assertions. 2995 29962006-02-06 Roger Sayle <roger@eyesopen.com> 2997 2998 * decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE. 2999 * rtti.c (typeinfo_in_lib_p): Likewise. 3000 * cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise. 3001 * name-lookup.c (arg_assoc_type): Likewise. 3002 30032006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 3004 3005 * cp-tree.h (tf_warn_or_error): New substituion flag. 3006 (cp_build_qualified_type): Use it. 3007 * call.c (convert_like_real): Likewise. 3008 * cvt.c (cp_convert_to_pointer): Likewise. 3009 (convert_to_reference): Likewise. 3010 * decl.c (make_typename_type): Likewise. 3011 (grokdeclarator): Likewise. 3012 * pt.c (tsubst_friend_function): Likewise. 3013 (tsubst_friend_class): Likewise. 3014 (instantiate_class_template): Likewise. 3015 (tsubst_default_argument): Likewise. 3016 (instantiate_decl): Likewise. 3017 (tsubst_initializer_list): Likewise. 3018 (tsubst_enum): Likewise. 3019 * semantics.c (finish_template_type): Likewise. 3020 * typeck.c (build_ptrmemfunc): Likewise. 3021 (convert_for_assignment): Likewise. 3022 30232006-02-03 Lee Millward <lee.millward@gmail.com> 3024 3025 * typeck.c (string_conv_p): Pass appropiate 3026 OPT_Wxxxx values when calling warning(). 3027 (build_array_ref, cxx_mark_addressable): Likewise. 3028 (check_return_expr): Likewise. 3029 3030 * init.c (perform_member_init): Likewise. 3031 (sort_mem_initializers, emit_mem_initializers): Likewise. 3032 3033 * class.c (check_field_decls): Likewise. 3034 (warn_about_ambiguous_bases): Likewise. 3035 3036 * decl.c (pop_label, poplevel): Likewise. 3037 (duplicate_decls, grok_op_properties): Likewise. 3038 (start_preparsed_function, finish_function): Likewise. 3039 3040 * name-lookup.c (pushdecl_maybe_friend): Likewise. 3041 (pushdecl_maybe_friend): Likewise. 3042 3043 * parser.c (cp_parser_warn_min_max): Likewise. 3044 (cp_parser_cast_expression): Likewise. 3045 3046 * method.c (lazily_declare_fn): Likewise. 3047 * cvt.c (convert_to_void): Likewise. 3048 * mangle.c (finish_mangling): Likewise. 3049 * cp-gimplify.c (gimplify_expr_stmt): Likewise. 3050 30512006-02-03 Mark Mitchell <mark@codesourcery.com> 3052 3053 * name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P, 3054 not IDENTIFIER_OPNAME_P. 3055 30562006-01-31 Mark Mitchell <mark@codesourcery.com> 3057 3058 PR c++/25342 3059 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise 3060 documentation. 3061 * pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS, 3062 not TREE_VALUE. 3063 (instantiate_class_template): Simplify. 3064 (verify_class_unification): Remove. 3065 (unify): Document parameters. Use INNERMOST_TEMPLATE_ARGS to 3066 permit multiple levels of template arguments. 3067 (more_specialized_class): Simplify. 3068 (get_class_bindings): Pass full arguments to unify. Fold 3069 verify_class_unification into this function. Return full 3070 arguments. 3071 (most_specialized_class): Adjust for changes to 3072 get_class_bindings. Issue errors here for ambiguity. Return the 3073 fully deduced arguments for the most specialized class, in 3074 addition to the partial specialization. 3075 30762006-01-31 Ben Elliston <bje@au.ibm.com> 3077 3078 * mangle.c: Comment fix. 3079 30802006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 3081 3082 * Make-lang.in (cp-warn): Include CXX_COMPAT_WARN. 3083 * repo.c (extract_string, afgets): Use cast when converting from 3084 void *. 3085 30862006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 3087 3088 * call.c (alloc_conversion): Use cast when converting from void *. 3089 (alloc_conversions): Likewise. 3090 (add_candidate): Likewise. 3091 (print_z_candidates): Likewise. 3092 (add_warning): Likewise. 3093 * pt.c (retrieve_local_specialization): Likewise. 3094 (process_partial_specialization): Likewise. 3095 (mangle_class_name_for_template): Likewise. 3096 (tsubst_template_args): Likewise. 3097 * typeck2.c (pat_calc_hash): Likewise. 3098 (pat_compare): Likewise. 3099 (abstract_virtuals_error): Likewise. 3100 * class.c (method_name_cmp): Likewise. 3101 (resort_method_name_cmp): Likewise. 3102 (get_vfield_name): Likewise. 3103 * decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise. 3104 * lex.c (init_reswords): Likewise. 3105 * rtti.c (create_pseudo_type_info): Likewise. 3106 * search.c (dfs_lookup_base): Likewise. 3107 (dfs_dcast_hint_pre): Likewise. 3108 (dfs_dcast_hint_post): Likewise. 3109 * tree.c (hash_tree_cons): Likewise. 3110 * repo.c (extract_string): Likewise. 3111 (afgets): Likewise. 3112 * cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise. 3113 * g++spec.c (lang_specific_driver): Likewise. 3114 31152006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net> 3116 3117 * call.c (joust): Pass option code to warning. Use inform for 3118 explanation. 3119 * class.c (check_bases): Likewise. 3120 (maybe_warn_about_overly_private_class): Likewise. 3121 (check_field_decls): Likewise. 3122 (layout_empty_base): Likewise. 3123 (layout_virtual_bases): Likewise. 3124 (layout_class_type): Likewise. 3125 31262006-01-28 Mark Mitchell <mark@codesourcery.com> 3127 3128 PR c++/25999 3129 * decl.c (start_preparsed_function): Call maybe_apply_pragma_weak 3130 here, not ... 3131 (start_function): ... here. 3132 31332006-01-28 Mark Mitchell <mark@codesourcery.com> 3134 3135 PR c++/25855 3136 * class.c (resolve_address_of_overloaded_function): Adjust use of 3137 return value from most_specialized_instantiation. 3138 * pt.c (determine_specialization): Avoid multiple calls to 3139 get_bindings. 3140 (most_specialized_instantiation): When a tie occurs, set the 3141 current presumed champion to the next template. Return the 3142 TREE_LIST node containing the template, rather than the template 3143 itself. 3144 (most_specialized): Remove. 3145 * name-lookup.c (push_overloaded_decl): When duplicate_decls 3146 indicates a failed redeclaration, report that to callers. 3147 31482006-01-26 Jason Merrill <jason@redhat.com> 3149 3150 PR c++/16021 3151 * name-lookup.c (parse_using_directive): Require strong using to 3152 name a nested namespace. 3153 31542006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3155 3156 Revert: 3157 * cp-tree.h (do_poplevel): Remove prototype. 3158 * semantics.c (do_poplevel): Add prototype. Make static. 3159 3160 Revert: 3161 * cp-tree.h (default_conversion): Remove prototype. 3162 * typeck.c (default_conversion): Make static. 3163 31642006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3165 3166 * cp-tree.h (get_primary_binfo): Remove prototype. 3167 (push_using_decl): Likewise. 3168 (current_template_args): Likewise. 3169 (more_specialized_class): Likewise. 3170 (mark_class_instantiated): Likewise. 3171 (default_conversion): Likewise. 3172 (pfn_from_ptrmemfunc): Likewise. 3173 * class.c (get_primary_binfo): Add prototype, make static, simplify. 3174 * name-lookup.c (push_using_decl): Make static. 3175 * pt.c (current_template_args): Likewise. 3176 (more_specialized_class): Likewise. 3177 (mark_class_instantiated): Likewise. 3178 * typeck.c (default_conversion): Make static. 3179 (pfn_from_ptrmemfunc): Add prototype, make static. 3180 31812006-01-24 Dirk Mueller <dmueller@suse.de> 3182 3183 * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning(). 3184 31852006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3186 3187 PR c++/25552 3188 * parser.c (cp_parser_unqualified_id): Check that destructor name 3189 and scope match. 3190 * call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR. 3191 Adjust comment. Return early if possible. 3192 Use same_type_p to compare types. 3193 * typeck.c (lookup_destructor): Adjust call to check_dtor_name. 3194 31952006-01-24 Mark Mitchell <mark@codesourcery.com> 3196 3197 * semantics.c: Remove outdated comment. 3198 31992006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3200 3201 * cp-tree.h (do_poplevel): Remove prototype. 3202 * semantics.c (do_poplevel): Add prototype. Make static. 3203 3204 * cp-tree.h (original_type): Remove prototype. 3205 * typeck.c (original_type): Make static. 3206 3207 * cp-tree.h (declare_global_var): Remove prototype. 3208 * decl.c (declare_global_var): Make static. 3209 3210 * cp-tree.h (implicitly_declare_fn): Remove prototype. 3211 * method.c (implicitly_declare_fn): Make static. 3212 3213 * cp-tree.h (fold_decl_constant_value): Remove prototype. 3214 * pt.c (fold_decl_constant_value): Make static. 3215 3216 * cp-tree.h (build_x_delete): Remove prototype. 3217 * init.c (build_vec_delete_1): Call build_op_delete_call directly 3218 and not via build_x_delete. 3219 (build_x_delete): Remove. 3220 3221 * cp-tree.h (get_vtt_name): Remove prototype. 3222 * class.c (get_vtt_name): Remove. 3223 (build_vtt): Call mangle_vtt_for_type instead of get_vtt_name. 3224 32252006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 3226 3227 * rtti.c (build_dynamic_cast): Fix comment. 3228 32292006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 3230 3231 PR c++/10891 3232 * rtti.c (build_dynamic_cast): Reject dynamic_cast use if 3233 -fno-rtti. 3234 32352006-01-21 Mark Mitchell <mark@codesourcery.com> 3236 3237 PR c++/25895 3238 * class.c (build_base_path): Generate a NOP_EXPR instead of a 3239 COMPONENT_REF if the base and derived classes are at the same 3240 address. 3241 3242 PR c++/25856 3243 * decl.c (begin_destructor_body): Robustify. 3244 3245 PR c++/25858 3246 * parser.c (cp_parser_direct_declarator): Robustify. 3247 32482006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3249 3250 * parser.c (cp_lexer_next_token_is_keyword): Simplify. 3251 3252 * parser.c (clear_decl_specs): Remove prototype. 3253 3254 * parser.c (cp_parser_expression_fn): Remove. 3255 3256 * call.c (add_builtin_candidates): Remove superfluous return. 3257 * name-lookup.c (do_toplevel_using_decl): Likewise. 3258 * parser.c (cp_parser_type_specifier_seq): Likewise. 3259 (cp_parser_save_default_args): Likewise. 3260 32612006-01-20 Dirk Mueller <dmueller@suse.com> 3262 3263 PR c++/5520 3264 * semantics.c (finish_if_stmt): Call empty_body_warning. 3265 * parser.c (cp_parser_implicitly_scoped_statement): 3266 Mark empty statement with an empty stmt. 3267 32682006-01-19 Mark Mitchell <mark@codesourcery.com> 3269 3270 PR c++/22136 3271 * name-lookup.c (do_class_using_decl): Don't try to look up base 3272 classes in templates with dependent base types. 3273 32742006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3275 3276 PR c++/25854 3277 * pt.c (maybe_process_partial_specialization): Return early on 3278 error_mark_node. 3279 32802006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3281 3282 PR c++/16829 3283 * decl.c (start_preparsed_function): Check default arguments 3284 unconditionally. 3285 * name-lookup.c (pushdecl_maybe_friend): Check default arguments 3286 of all functions and function templates. 3287 * parser.c (cp_parser_late_parsing_default_args): Check default 3288 arguments. 3289 * decl2.c (check_default_args): Set missing default arguments to 3290 error_mark_node. 3291 32922006-01-18 Mark Mitchell <mark@codesourcery.com> 3293 3294 PR c++/25836 3295 * cp-tree.h (push_class_stack): New function. 3296 (pop_class_stack): Likewise. 3297 * class.c (class_stack_node): Add hidden field. 3298 (pushclass): Clear it. 3299 (push_class_stack): New function. 3300 (pop_class_stack): Likewise. 3301 (currently_open_class): Ignore hidden classes. 3302 (currently_open_derived_class): Likewise. 3303 * name-lookup.c (push_to_top_level): Call push_class_stack. 3304 (pop_from_top_level): Call pop_class_stack. 3305 33062006-01-18 Kazu Hirata <kazu@codesourcery.com> 3307 3308 * tree.c (find_tree_t, find_tree): Remove. 3309 * cp-tree.h: Remove the prototype for find_tree. 3310 33112006-01-18 Jakub Jelinek <jakub@redhat.com> 3312 3313 * search.c (lookup_conversions_r): Fix a pasto. 3314 33152006-01-17 Eric Christopher <echristo@apple.com> 3316 3317 * call.c (convert_like_real): When issuing conversion 3318 warnings, depend on OPT_Wconversion. 3319 * cvt.c (build_expr_type_conversion): Ditto. 3320 33212006-01-17 Kazu Hirata <kazu@codesourcery.com> 3322 3323 * name-lookup.c (lookup_namespace_name): Remove. 3324 * name-lookup.h: Remove the prototype for 3325 lookup_namespace_name. 3326 33272006-01-17 Jakub Jelinek <jakub@redhat.com> 3328 3329 PR c/25682 3330 * decl.c (compute_array_index_type): After issuing not an integral 3331 constant-expression error, set size to 1 to avoid ICEs later on. 3332 33332006-01-16 Ian Lance Taylor <ian@airs.com> 3334 3335 * parser.c: Include "cgraph.h". 3336 (cp_parser_asm_definition): Call cgraph_add_asm_node rather than 3337 assemble_asm. 3338 33392006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3340 3341 * g++spec.c (lang_specific_spec_functions): Remove. 3342 33432006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net> 3344 3345 * decl.c (check_initializer): Fix thinko. 3346 33472006-01-14 Mark Mitchell <mark@codesourcery.com> 3348 3349 PR c++/25663 3350 * parser.c (cp_parser_direct_declarator): Use cp_parser_error 3351 instead of error. 3352 33532006-01-13 Jason Merrill <jason@redhat.com> 3354 3355 * pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more. 3356 3357 * name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT. 3358 * pt.c (check_explicit_specialization): Likewise. 3359 33602006-01-12 Jason Merrill <jason@redhat.com> 3361 3362 PR libstdc++/24660 3363 * pt.c (check_explicit_specialization): Handle namespace 3364 association. 3365 * name-lookup.c (set_decl_namespace): Likewise. 3366 33672006-01-12 Nathan Sidwell <nathan@codesourcery.com> 3368 3369 PR c++/24824 3370 * class.c (handle_using_decl): Pass correct scope to 3371 cp_emit_debug_info_for_using. 3372 33732006-01-11 Nathan Sidwell <nathan@codesourcery.com> 3374 3375 PR c++/25386 3376 * tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects 3377 packedness. 3378 33792006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net> 3380 3381 * parser.c (cp_parser_primary_expression): Document the grammar 3382 for the built-in offsetof, a GNU extension. 3383 33842006-01-04 Zdenek Dvorak <dvorakz@suse.cz> 3385 3386 PR c++/25632 3387 * init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo 3388 in condition. 3389 33902006-01-04 Chris Lattner <sabre@gnu.org> 3391 3392 * typeck2.c: update copyright to 2006 3393 (split_nonconstant_init_1): Set TREE_CONSTANT to true. 3394 33952006-01-04 Mark Mitchell <mark@codesourcery.com> 3396 3397 PR c++/24782 3398 * parser.c (cp_parser_nested_name_specifier_opt): Preserve access 3399 checks, even when parsing tentatively. 3400 34012006-01-04 Richard Henderson <rth@redhat.com> 3402 3403 Merge from gomp branch. 3404 * lex.c (handle_pragma_java_exceptions): Fix whitespace. 3405 * parser.c (struct cp_token): Add pragma_kind. 3406 (eof_token): Update to match. 3407 (struct cp_lexer): Add in_pragma; rearrange next for better packing. 3408 (cp_parser_initial_pragma): New. 3409 (cp_lexer_new_main): Use it. Don't bother clearing 3410 c_lex_return_raw_strings. 3411 (cp_lexer_get_preprocessor_token): Always initialize keyword 3412 and pragma_kind fields. Handle CPP_PRAGMA. 3413 (cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when 3414 in_pragma is set. 3415 (cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma. 3416 (cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string. 3417 (cp_parser_skip_to_pragma_eol): New. 3418 (cp_parser_error): Use it. 3419 (cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL; 3420 rearrange with switch statement. 3421 (cp_parser_skip_to_end_of_statement): Likewise. 3422 (cp_parser_skip_to_end_of_block_or_statement): Likewise. 3423 (cp_parser_skip_to_closing_brace): Likewise. 3424 (cp_parser_skip_until_found): Likewise. 3425 (cp_parser_statement): Add in_compound argument; update callers. 3426 Use it to decide how to handle pragma parsing. 3427 (cp_parser_labeled_statement): Add in_compound argument; pass 3428 it on to cp_parser_statement. 3429 (cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL. 3430 (cp_parser_declaration_seq_opt): Likewise. 3431 (cp_parser_parameter_declaration): Likewise. 3432 (cp_parser_member_specification_opt): Likewise. 3433 (cp_parser_function_definition_after_decl): Likewise. 3434 (cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs. 3435 (cp_parser_pragma): New. 3436 (pragma_lex): New. 3437 34382006-01-04 Dirk Mueller <dmueller@suse.com> 3439 3440 * decl.c (finish_constructor_body): create simple 3441 compound stmt instead of a if(1) { } construct. 3442 34432006-01-03 Mark Mitchell <mark@codesourcery.com> 3444 3445 PR c++/25492 3446 * name-lookup.c (push_class_level_binding): When a derived class 3447 provides a type binding, eliminate any type binding from a base 3448 class. 3449 3450 PR c++/25625 3451 * repo.c (repo_emit_p): Always instantiate static data members 3452 initialized by constant expressions, so that there values are 3453 available. 3454 34552006-01-02 Mark Mitchell <mark@codesourcery.com> 3456 3457 PR c++/25635 3458 * class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a 3459 conversion operator. 3460 * decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here. 3461 3462 PR c++/25638 3463 * class.c (add_method): Never associate more than one destructor 3464 with a single class. 3465 3466 PR c++/25637 3467 * cp-tree.h (do_friend): Adjust prototype. 3468 * decl.c (grokfndecl): Make funcdef_flag a bool, not an int. 3469 (grokdeclarator): Likewise. Refine check for invalid 3470 declarations/definitions of member functions outside of their own 3471 class. 3472 * friend.c (do_friend): Make funcdef_flag a bool, not an int. 3473 3474 PR c++/25633 3475 * parser.c (cp_parser_mem_initializer_list): Check result of 3476 cp_parser_mem_initializer against error_mark_node, not NULL_TREE. 3477 (cp_parser_mem_initializer): Return error_mark_node for failure. 3478 3479 PR c++/25634 3480 * parser.c (cp_parser_template_parameter_list): Call 3481 begin_template_parm_list and end_template_parm_list here. 3482 (cp_parser_type_parameter): Not here. 3483 (cp_parser_template_declaration_after_export): Or here. 3484 (cp_parser_elaborated_type_specifier): Call 3485 cp_parser_check_template_parameters. 3486 3487 * tree.c (build_target_expr_with_type): Use force_target_expr. 3488 3489 * decl2.c (mark_used): Fix typo in comment. 3490 34912006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3492 3493 * parser.c (cp_parser_using_declaration): Skip name-lookup on 3494 invalid scope. 3495 3496 3497 3498Copyright (C) 2006 Free Software Foundation, Inc. 3499 3500Copying and distribution of this file, with or without modification, 3501are permitted in any medium without royalty provided the copyright 3502notice and this notice are preserved. 3503