12008-12-31 Jakub Jelinek <jakub@redhat.com> 2 3 PR c++/38647 4 * parser.c (cp_parser_primary_expression) <case RID_FUNCTION_NAME>: 5 Return error_mark_node if cp_parser_non_integral_constant_expression 6 returns true. 7 8 PR c++/38640 9 * semantics.c (finish_decltype_type): Handle TEMPLATE_PARM_INDEX. 10 112008-12-29 Jakub Jelinek <jakub@redhat.com> 12 13 PR c++/38635 14 * parser.c (cp_parser_condition): Use cp_parser_require 15 instead of cp_lexer_consume_token to consume =. 16 17 PR c++/38637 18 * decl.c (start_enum): If enumtype is error_mark_node, exit early. 19 202008-12-28 Jakub Jelinek <jakub@redhat.com> 21 22 PR c++/38650 23 * semantics.c (finish_omp_for): Don't add CLEANUP_POINT_EXPR 24 around volatile iteration var in condition and/or increment 25 expression. 26 272008-12-27 Jakub Jelinek <jakub@redhat.com> 28 29 PR c++/38639 30 * pt.c (tsubst_omp_for_iterator): RECUR on whole init_expr instead of 31 just its type. 32 332008-12-21 Jason Merrill <jason@redhat.com> 34 35 PR c++/38597 36 * name-lookup.c (arg_assoc_type): Handle DECLTYPE_TYPE. 37 382008-12-20 Jakub Jelinek <jakub@redhat.com> 39 Manuel López-Ibáñez <manu@gcc.gnu.org> 40 41 PR c++/36921 42 * c-common.c (warn_about_parentheses): Remove ARG_UNUSED from 43 arg_left. Don't warn about X<=Y<=Z if comparison's type isn't 44 integral. 45 462008-12-19 Jakub Jelinek <jakub@redhat.com> 47 48 PR c++/38577 49 * call.c (build_new_method_call): Handle call being COMPOUND_EXPR 50 or NOP_EXPR. 51 522008-12-18 Jakub Jelinek <jakub@redhat.com> 53 54 PR c++/38427 55 * init.c (perform_member_init): For value-initialized 56 references call permerror instead of warning and don't emit any 57 INIT_EXPR. 58 592008-12-18 Jason Merrill <jason@redhat.com> 60 61 PR c++/38485 62 * parser.c (cp_parser_token_starts_cast_expression): An EOF 63 can't start a cast-expression. 64 652008-12-17 Jason Merrill <jason@redhat.com> 66 67 * semantics.c (describable_type): New function. 68 (finish_decltype_type): Use it for dependent exprs. 69 * cp-tree.h: Declare it. 70 * mangle.c (write_type) [DECLTYPE_TYPE]: Set skip_evaluation. 71 (write_expression): If skip_evaluation, use type stubs. 72 * tree.c (cp_tree_equal): Handle PARM_DECLs from different 73 declarations of a function. 74 * init.c (build_new): Do auto deduction if type is describable. 75 * decl.c (cp_finish_decl): Likewise. 76 * parser.c (cp_parser_omp_for_loop): Likewise. 77 782008-12-10 Jason Merrill <jason@redhat.com> 79 80 PR c++/35319 81 * mangle.c (write_builtin_type): Add mangling for decimal floating 82 point and fixed point types. 83 (write_type): Pass FIXED_POINT_TYPE along. 84 852008-12-09 Mark Mitchell <mark@codesourcery.com> 86 87 PR c++/37971 88 * class.c (resolve_address_of_overloaded_function): Check 89 accessibility of member functions unless FLAGS indicates 90 otherwise. 91 * call.c (standard_conversion): Adjust flags passed to 92 instantiate_type. 93 (convert_default_arg): Do not perform access checks. 94 * cp-tree.h (tsubst_flags_t): Add tf_no_access_control. 95 962008-12-08 Steve Ellcey <sje@cup.hp.com> 97 98 * decl2.c (mark_used): Remove assemble_external call. 99 1002008-12-08 Dodji Seketeli <dodji@redhat.com> 101 102 PR debug/38390 103 * name-lookup.c (kept_level_p): Don't forget the case of levels 104 having using directives. 105 1062008-12-08 Richard Henderson <rth@redhat.com> 107 108 PR 38240 109 * class.c (finish_struct_bits): Use SET_TYPE_MODE. 110 * decl.c (record_unknown_type): Likewise. 111 (start_enum, finish_enum): Likewise. 112 1132008-12-05 Jakub Jelinek <jakub@redhat.com> 114 115 PR c++/35336 116 * error.c (dump_expr): Handle BIT_FIELD_REF. 117 1182008-12-05 Sebastian Pop <sebastian.pop@amd.com> 119 120 PR bootstrap/38262 121 * Make-lang.in (cc1plus-dummy, cc1plus): Add BACKENDLIBS, 122 remove GMPLIBS. 123 1242008-12-04 Jason Merrill <jason@redhat.com> 125 126 PR c++/37906 127 * decl.c (grok_special_member_properties): Set TYPE_HAS_COMPLEX_DFLT 128 here. 129 * class.c (check_bases_and_members): Rather than assuming any 130 user-declared default constructor is complex here. 131 1322008-12-04 Richard Guenther <rguenther@suse.de> 133 134 PR c++/38334 135 * typeck.c (get_member_function_from_ptrfunc): Mark the vtbl 136 pointer access with TREE_NO_WARNING. 137 1382008-12-03 Jason Merrill <jason@redhat.com> 139 140 PR c++/38232 141 * init.c (build_value_init): Do initial zero-initialization 142 of a class with an implicitly-defined constructor using 143 build_zero_init rather than in build_value_init. 144 (build_value_init_1): Fold into build_value_init. 145 146 PR c++/38256 147 * parser.c (cp_parser_conversion_type_id): Diagnose 148 'operator auto' here. 149 * decl.c (grokdeclarator): Not here. 150 151 PR c++/38380 152 * decl.c (grokdeclarator): Only set DECL_NONCONVERTING_P 153 on explicit constructors. 154 * pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: Propagate 155 CONSTRUCTOR_IS_DIRECT_INIT. 156 1572008-12-02 Jason Merrill <jason@redhat.com> 158 159 PR c++/35782, c++/37860 160 * call.c (build_user_type_conversion_1): Remember 161 list-initialization. 162 (convert_like_real): Likewise. 163 (build_over_call): Don't require the copy constructor 164 for copy-list-initialization. 165 * cp-tree.h (TARGET_EXPR_LIST_INIT_P): New macro. 166 167 PR c++/37234 168 * decl.c (cp_finish_decl): Handle =default and =delete for 169 templates, too. 170 1712008-12-01 Jakub Jelinek <jakub@redhat.com> 172 173 PR c++/38257 174 * parser.c (cp_parser_omp_for_loop): Handle auto. 175 * pt.c (tsubst_omp_for_iterator): Likewise. 176 1772008-11-28 Jason Merrill <jason@redhat.com> 178 179 PR c++/38233 180 * init.c (perform_member_init): Fix value-initialization. 181 (build_value_init_1): Add assert to catch cases that will break 182 in the gimplifier. 183 (build_default_init): Remove. 184 * cp-tree.h: Remove its prototype. 185 * pt.c (tsubst_expr) [DECL_EXPR]: Use build_value_init for 186 value-initialization. 187 188 PR c++/38278 189 * parser.c (cp_parser_class_name): Only call 190 maybe_note_name_used_in_class if we actually found a class name. 191 1922008-11-25 Jason Merrill <jason@redhat.com> 193 194 PR c++/28743 195 * decl2.c (check_classfn): Error rather than abort on parameter 196 list mismatch. 197 1982008-11-20 Jason Merrill <jason@redhat.com> 199 200 PR c++/28513 201 * parser.c (cp_parser_class_name): Call maybe_note_name_used_in_class. 202 203 PR c++/37540 204 * call.c (build_over_call): Take the address of the function even 205 in a template. 206 (build_new_method_call): Remember the type of the called function 207 in a template. 208 2092008-11-19 Dodji Seketeli <dodji@redhat.com> 210 211 PR c++/37142 212 * pt.c (coerce_template_template_parm): Use the more robust 213 uses_template_parms instead of dependent_type_p. 214 2152008-11-19 Dodji Seketeli <dodji@redhat.com> 216 217 PR c++/35405 218 * pt.c (lookup_template_class): Check pointers before dereferencing 219 them. 220 * error.c (dump_template_decl): Likewise. 221 2222008-11-19 Jason Merrill <jason@redhat.com> 223 224 PR c++/36410 225 * decl2.c (grokfield): Pass ATTR_FLAG_TYPE_IN_PLACE for a typedef 226 that names a class for linkage purposes. 227 228 PR c++/37563 229 * parser.c (cp_parser_pseudo_destructor_name): A pseudo-destructor 230 name is not a declaration. 231 232 PR c++/37256 233 * pt.c (instantiate_decl): Don't require a definition of 234 a template that is explicitly instantiated 'extern'. 235 2362008-11-18 Jason Merrill <jason@redhat.com> 237 Jakub Jelinek <jakub@redhat.com> 238 239 PR c++/37962 240 * parser.c (cp_parser_type_id): Complain about auto. 241 * decl.c (grokdeclarator): Complain about parameters and 242 conversion functions declared with auto. 243 244 * call.c (standard_conversion): Use CLASS_TYPE_P instead of 245 MAYBE_CLASS_TYPE_P. 246 * cp-tree.h (TYPE_NON_AGGREGATE_CLASS): Likewise. 247 2482008-11-17 Jakub Jelinek <jakub@redhat.com> 249 250 PR c++/36089 251 * init.c (constant_value_1): Handle TREE_LIST init. 252 2532008-11-15 Jakub Jelinek <jakub@redhat.com> 254 255 PR c++/37561 256 * typeck.c (cp_build_unary_op): Don't call get_unwidened. Use 257 argtype instead of result_type. 258 2592008-11-14 Jason Merrill <jason@redhat.com> 260 261 PR c++/38030 262 * semantics.c (finish_call_expr): Don't repeat arg-dep lookup 263 for a non-dependent call. 264 265 PR c++/37740 266 * call.c (build_aggr_conv): Increment i. 267 2682008-11-13 Jason Merrill <jason@redhat.com> 269 270 PR c++/37932 271 * typeck2.c (process_init_constructor_record): Update bitfield 272 handling. 273 (check_narrowing): Update bitfield handling, print source type. 274 2752008-11-12 Jakub Jelinek <jakub@redhat.com> 276 277 PR c++/36478 278 Revert: 279 2007-05-07 Mike Stump <mrs@apple.com> 280 * parser.c (check_empty_body): Add. 281 (cp_parser_iteration_statement): Add call to check_empty_body. 282 2832008-11-12 Jason Merrill <jason@redhat.com> 284 285 PR c++/38007 286 * typeck.c (cp_build_modify_expr): Update bitfield handling. 287 2882008-11-12 Jakub Jelinek <jakub@redhat.com> 289 290 PR c++/34269 291 * parser.c (cp_parser_simple_declaration): Don't commit 292 to tentative parse if parse errors were seen. 293 294 PR c++/35334 295 * error.c (dump_expr): Handle COMPLEX_EXPR. 296 2972008-11-10 Jakub Jelinek <jakub@redhat.com> 298 299 PR c++/38021 300 * parser.c (cp_parser_enum_specifier): After parsing :, 301 parse definitely. Don't return early if type specifier 302 is erroneous. 303 3042008-11-06 David Edelsohn <edelsohn@gnu.org> 305 306 PR target/26397 307 * g++spec.c (LIBSTDCXX_STATIC): New. 308 (lang_spec_driver): Use LIBSTDCXX_STATIC when not 309 shared_libgcc. 310 3112008-11-05 Fabien Chêne <fabien@gcc.gnu.org> 312 313 PR c++/32519 314 * cp-tree.h: Fix DECL_NONSTATIC_MEMBER_P to handle member template 315 functions. 316 3172008-11-05 Richard Guenther <rguenther@suse.de> 318 319 PR middle-end/37742 320 * decl.c (start_preparsed_function): Use the correct type for 321 building the RESULT_DECL. 322 3232008-10-31 Jakub Jelinek <jakub@redhat.com> 324 325 PR c++/37967 326 * decl.c (grokdeclarator): Diagnose auto function decl without 327 late return type and late return type function decl where type 328 is not auto. 329 330 PR c++/37965 331 * decl.c (cp_finish_decl): Diagnose type_uses_auto type with 332 no initializer. 333 3342008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 335 336 PR 11492 337 * class.c (check_bitfield_decl): Rename min_precision to 338 tree_int_cst_min_precision. 339 * decl.c (finish_enum): Likewise. 340 3412008-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org> 342 343 PR c++/26997 344 * parser.c (cp_parser_token_starts_cast_expression): New. 345 (cp_parser_cast_expression): Peek the next token to decide whether 346 this could be a parenthesized constructor or is definitely an 347 actual cast. 348 3492008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org> 350 351 PR c/7543 352 * typeck.c (build_x_binary_op): Update call to 353 warn_about_parentheses. 354 * parser.c (cp_parser_binary_expression): Add note about passing 355 the correct code for unary expressions. 356 3572008-10-24 Jakub Jelinek <jakub@redhat.com> 358 359 * Make-lang.in (check-c++-subtargets): New alias for 360 check-g++-subtargets. 361 (lang_checks_parallelized): Add check-g++. 362 (check_g++_parallelize): New variable. 363 3642008-10-21 Richard Guenther <rguenther@suse.de> 365 366 * semantics.c (simplify_aggr_init_exprs_r): Remove. 367 (expand_or_defer_fn): Do not walk the function body to 368 simplify aggr_init_exprs. 369 3702008-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org> 371 372 PR c++/37004 373 * typeck.c (cp_common_type): New. The same as 374 type_after_usual_arithmetic_conversions but without promotions. 375 (type_after_usual_arithmetic_conversions): Do the promotions and 376 call cp_common_type. 377 (common_type): Make it behave like the C version of this 378 function. Do not handle pointer types. 379 (common_pointer_type): Move handling of pointer types from 380 common_type to here. 381 (cp_build_binary_op): Use common_pointer_type instead of 382 common_type in call to pointer_diff. 383 Use cp_common_type instead of common_type. 384 * cp-tree.h (common_pointer_type): Declare. 385 3862008-10-14 Jakub Jelinek <jakub@redhat.com> 387 388 PR c++/37819 389 * cp-gimplify.c (cp_genericize_r): Only fold_convert COND_EXPR 390 arguments if they don't already have COND_EXPR's type. 391 3922008-10-14 Paolo Carlini <paolo.carlini@oracle.com> 393 394 PR c++/37650 395 * pt.c (push_template_decl_real): Check that current_template_parms 396 is not null. 397 (process_partial_specialization): Assert current_template_parms not 398 null. 399 4002008-10-13 Doug Evans <dje@google.com> 401 402 * cp-tree.h (DECL_MAIN_P): Fix parentheses around expression. 403 4042008-10-10 Jakub Jelinek <jakub@redhat.com> 405 406 PR c++/37146 407 * cp-gimplify.c (cp_genericize_r): Fix up bitfield operands of 408 COND_EXPR. 409 4102008-10-09 Jakub Jelinek <jakub@redhat.com> 411 412 PR c++/37568 413 * semantics.c (finalize_nrv_r): Clear DECL_INITIAL instead of 414 setting it to error_mark_node. 415 4162008-10-07 Steve Ellcey <sje@cup.hp.com> 417 418 * decl.c (start_cleanup_fn): Declare as inline. 419 4202008-10-06 Jason Merrill <jason@redhat.com> 421 422 PR c++/37376, other mangling issues 423 * mangle.c (write_type): Update TYPE_PACK_EXPANSION mangling. 424 (write_member_name): Break out from... 425 (write_expression): ...here. Handle dependent COMPONENT_REF. 426 (write_template_arg): Wrap an argument pack in 'I'/'E'. 427 (write_builtin_type): Update char16/32_t mangling. 428 (write_nested_name, write_prefix): Don't forget template args 429 for typename types. 430 * operators.def: Add ARROW_EXPR, update COMPONENT_REF and 431 EXPR_PACK_EXPANSION. 432 4332008-10-06 Aldy Hernandez <aldyh@redhat.com> 434 435 * typeck.c (build_x_indirect_ref): Add location argument. 436 (cp_build_binary_op): Pass location to warn_for_div_by_zero. 437 (cp_build_unary_op): Add location argument. 438 (cp_build_modify_expr): Same. 439 * class.c (build_base_path): Pass location to build_indirect_ref. 440 * semantics.c (handle_omp_for_class_iterator): Pass elocus to 441 build_modify_expr. 442 4432008-10-05 Dodji Seketeli <dodji@redhat.com> 444 445 PR c++/37410 446 * cp-gimplify.c (cp_gimplify_expr): For each USING_STMT 447 make sure an IMPORTED_DECL node is added to the BLOCK_VARS list 448 of the innermost containing BLOCK. 449 4502008-10-03 Paolo Carlini <paolo.carlini@oracle.com> 451 452 PR c++/37719 453 * error.c (dump_function_decl): Save the exceptions in case of 454 error about incompatible specifications in a specialization. 455 4562008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com> 457 458 * tree.c (lvalue_p_1): COMPOUND_LITERAL_EXPR is also an lvalue. 459 4602008-09-30 H.J. Lu <hongjiu.lu@intel.com> 461 462 PR c++/37683 463 * parser.c (cp_parser_selection_statement): Fix uninitialized 464 variable. 465 4662008-09-30 Simon Martin <simartin@users.sourceforge.net> 467 468 PR c++/37555 469 PR c++/37556 470 * decl.c (grokdeclarator): Set the type for typedefs to a 471 nested-name-specifier to error_mark_node. 472 4732008-09-30 Paolo Bonzini <bonzini@gnu.org> 474 475 * parser.c (cp_parser_selection_statement): Implement here the 476 -Wempty-body warning for `if' and `else' statements. 477 * semantics.c (finish_if_stmt): Do not call empty_body_warning. 478 4792008-09-25 Paolo Carlini <paolo.carlini@oracle.com> 480 481 PR c++/37649 482 * name-lookup.c (maybe_process_template_type_declaration): Check 483 return value of push_template_decl_real for error_mark_node. 484 4852008-09-24 Aldy Hernandez <aldyh@redhat.com> 486 487 * semantics.c (finish_fname): Pass location to fname_decl. 488 4892008-09-23 Jakub Jelinek <jakub@redhat.com> 490 491 PR c++/37533 492 * semantics.c (finish_omp_for): If processing_template_decl, just build 493 MODIFY_EXPR for init instead of calling cp_build_modify_expr. 494 4952008-09-23 Aldy Hernandez <aldyh@redhat.com> 496 497 * typeck.c (build_array_ref): Pass location to cp_build_binary_op. 498 (get_member_function_from_ptrfunc): Same. 499 (build_x_binary_op): Same. 500 (build_binary_op): Same. 501 (cp_build_binary_op): New location argument. 502 (pointer_diff): Pass location to cp_build_binary_op. 503 (cp_truthvalue_conversion): Pass location to build_binary_op. 504 (convert_ptrmem): Pass location to cp_build_binary_op. 505 (cp_build_modify_expr): Same. 506 (build_ptrmemfunc): Same. 507 * init.c (expand_cleanup_for_base): Pass location to 508 c_common_truthvalue_conversion. 509 (build_new_1): Pass location to cp_build_binary_op. 510 (build_vec_delete_1): Pass location to *build_binary_op, 511 c_common_truthvalue_conversion. 512 (build_vec_init): Same. 513 (build_delete): Same. 514 * decl.c (compute_array_index_type): Same. 515 * call.c (build_new_op): Same. 516 * rtti.c (build_dynamic_cast_1): Same. 517 * cp-tree.h: Add argument to cp_build_binary_op. 518 * semantics.c (handle_omp_for_class_iterator): Pass location to 519 *build_binary_op, c_common_truthvalue_conversion. 520 * decl2.c (get_guard_cond): Same. 521 5222008-09-17 Richard Guenther <rguenther@suse.de> 523 524 PR c++/22374 525 * rtti.c (build_dynamic_cast_1): Convert the COND_EXPR 526 result to the correct type. 527 5282008-09-17 H.J. Lu <hongjiu.lu@intel.com> 529 530 PR c++/37450 531 * name-lookup.c (pushdecl_maybe_friend): Don't return the old 532 parameter for duplicate. 533 5342008-09-17 Jason Merrill <jason@redhat.com> 535 536 PR c++/37588 537 * name-lookup.c (lookup_type_scope): Look through sk_function_parms. 538 5392008-09-17 Jakub Jelinek <jakub@redhat.com> 540 541 PR c++/37552 542 * typeck.c (build_array_ref): Use protected_set_expr_location instead 543 of SET_EXPR_LOCATION when ret might not be an expression. 544 5452008-09-17 Jan Hubicka <jh@suse.cz> 546 547 PR c++/18071 548 * cp/decl.c (start_method): Set DECL_NO_INLINE_WARNING_P. 549 5502008-09-16 Jakub Jelinek <jakub@redhat.com> 551 552 PR c++/37531 553 * semantics.c (finish_compound_literal): Return error_mark_node if 554 type is errorneous. 555 556 PR c++/37532 557 * lex.c (init_reswords): Don't populate ridpointers for D_CONLY 558 reserved words. 559 5602008-09-15 Aldy Hernandez <aldyh@redhat.com> 561 562 * decl.c (duplicate_decls): Call error_at. 563 (grokfndecl): New location argument. Use location if available. 564 (grokdeclarator): Pass declarator location to grokfndecl. 565 * cp-tree.h (struct cp_declarator): Update comment for id_loc. 566 * decl2.c (check_classfn): Use error_at. 567 * parser.c (cp_parser_init_declarator): Set function_start_locus 568 to brace location. 569 (cp_parser_member_declaration): Set id_loc for function declarators. 570 5712008-09-09 Jan Hubicka <jh@suse.cz> 572 573 PR middle-end/37500 574 * pt.c (tsubst_decl): Do not copy DECL_STRUCT_FUNCTION pointer. 575 5762008-09-09 Jakub Jelinek <jakub@redhat.com> 577 578 PR c++/37417 579 * tree.c (array_type_nelts_top): Add size_one_node instead of 580 integer_one_node. 581 5822008-09-09 Jason Merrill <jason@redhat.com> 583 584 PR c++/37439 585 * pt.c (tsubst_copy) [PARM_DECL]: Don't abort if the parm has 586 DECL_CONTEXT set. 587 5882008-09-09 Jakub Jelinek <jakub@redhat.com> 589 590 PR c++/37389 591 * decl.c (build_enumerator): Handle previous value's DECL_INITIAL 592 being error_operand_p. Don't clear value if it was error_mark_node. 593 5942008-09-09 Paolo Bonzini <bonzini@gnu.org> 595 596 * cp-objcp-common.h (LANG_HOOKS_EXPAND_DECL): Remove. 597 * cp-tree.h: Don't mention DECL_ANON_UNION_ELEMS. 598 * semantics.c (anon_aggr_type_p): Remove. 599 6002008-09-06 Jason Merrill <jason@redhat.com> 601 602 PR c++/37302 603 * parser.c (cp_parser_parameter_declaration_list): Process the 604 PARM_DECLs as we go and push them. Return a TREE_LIST. 605 (cp_parser_parameter_declaration_clause): Return a TREE_LIST. 606 (cp_parser_direct_declarator): Create a binding level and 607 suppress deprecated warnings in the parameter list. 608 (make_call_declarator): PARMS is now a tree. 609 * cp-tree.h (struct cp_declarator): Function parms are now a tree. 610 * decl.h (enum deprecated_states, deprecated_state): Move here. 611 * decl.c: From here. 612 (type_is_deprecated): New fn. 613 (grokparms): PARMLIST is a tree now. Warn about parms that 614 use deprecated types. 615 * mangle.c (write_expression): Handle PARM_DECL, CALL_EXPR and 616 0-operand cast. 617 * pt.c (tsubst) [DECLTYPE_TYPE]: Set skip_evaluation. 618 (tsubst_copy) [PARM_DECL]: Handle a PARM_DECL used outside of a 619 function. 620 * name-lookup.c (pushtag): Look through function parameter scopes. 621 (pushdecl_maybe_friend): Don't set DECL_CONTEXT on a PARM_DECL 622 when we're parsing a function declarator. 623 6242008-09-05 Douglas Gregor <doug.gregor@gmail.com> 625 626 PR c++/37342 627 * tree.c (cp_build_qualified_type_real): Deal with sharing of 628 TYPE_LANG_SPECIFIC in the canonical types of pointer-to-method 629 types. 630 6312008-09-04 Ian Lance Taylor <iant@google.com> 632 633 * parser.c (check_no_duplicate_clause): Change code parameter to 634 enum omp_clause_code. 635 6362008-09-03 Jakub Jelinek <jakub@redhat.com> 637 638 PR c++/37348 639 * decl.c (cp_finish_decl): Only set 640 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P if decl is VAR_DECL. 641 642 PR c++/37189 643 * cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): New 644 extern decls. 645 * decl2.c (mark_used): If defer_mark_used_calls, push decl into 646 deferred_mark_used_calls vector and exit early. 647 * decl.c (defer_mark_used_calls, deferred_mark_used_calls): New 648 variables. 649 (finish_function): Set defer_mark_used_calls for the duration of the 650 function. Call mark_used on any queued decls. 651 6522008-09-02 Jason Merrill <jason@redhat.com> 653 654 PR c++/37208 655 * call.c (build_over_call): Make =delete work with SFINAE. 656 * class.c (resolve_address_of_overloaded_function): Likewise. 657 658 * cp-tree.h (struct lang_decl_flags): Rename threadprivate_p to 659 threadprivate_or_deleted_p. 660 (CP_DECL_THREADPRIVATE_P): Adjust. 661 (DECL_DELETED_FN): Likewise. 662 (SD_UNINITIALIZED, SD_INITIALIZED, SD_DEFAULTED): New macros. 663 (SD_DELETED): New macro. 664 * parser.c (cp_parser_init_declarator): Use them. 665 * decl.c (start_decl): Use them. 666 667 * decl2.c (mark_used): Give =deleted error even in sizeof. 668 669 * typeck2.c (check_narrowing): Downgrade narrowing error to 670 permerror. 671 6722008-09-02 Aldy Hernandez <aldyh@redhat.com> 673 674 * typeck.c (build_array_ref): Use new location argument. 675 * class.c (build_vtbl_ref_1): Pass location to build_array_ref. 676 * call.c (build_new_op): Same. 677 * decl2.c (grok_array_decl): Same. 678 * cp-tree.h (build_array_ref): Add location argument to prototype. 679 6802008-09-01 Aldy Hernandez <aldyh@redhat.com> 681 682 * typeck.c (build_x_indirect_ref): Add location argument. 683 * class.c (build_base_path): Pass location to build_indirect_ref. 684 * pt.c (tsubst_copy_and_build): Pass location to 685 finish_label_address_expr. 686 * parser.c (cp_parser_unary_expression): Same. 687 6882008-08-31 Jason Merrill <jason@redhat.com> 689 690 Implement late-specified return type using 'auto'. 691 * cp-tree.h (struct cp_declarator): Add late_return_type field to 692 function declarator. 693 * parser.c (cp_parser_late_return_type_opt): New fn. 694 (cp_parser_direct_declarator): Use it. 695 (make_call_declarator): Put it in the declarator. 696 * decl.c (grokdeclarator): Splice in late-specified return type. 697 * pt.c (splice_late_return_type): New fn. 698 6992008-08-29 Michael Meissner <gnu@the-meissners.org> 700 701 * decl.c (builtin_function_1): Take a bool argument to decide 702 whether to use pushdecl or pushdecl_top_level. 703 (duplicate_decls): Copy function specific target and optimization 704 options on duplicate declarations. 705 (cxx_builtin_function): Update builtin_function_1 call. 706 (cxx_builtin_function_ext_scope): New function, guarantee that the 707 declaration is done at global scope. 708 709 * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New 710 macro, define builtin function hook for delayed machine specific 711 builtins. 712 713 * cp-tree.h (cxx_builtin_function_ext_scope): Add declaration. 714 7152008-08-30 Jason Merrill <jason@redhat.com> 716 717 PR c++/37288 718 * pt.c (dependent_type_p): Don't abort on auto outside of a template. 719 7202008-08-29 Jason Merrill <jason@redhat.com> 721 722 Implement C++0x 'auto' semantics. 723 * decl.c (start_decl_1): Don't complain about auto being incomplete. 724 (cp_finish_decl): Deduce auto. 725 * init.c (build_new): Handle 'new auto'. 726 * typeck2.c (cxx_incomplete_type_diagnostic): Give a different 727 message for auto than for normal template type parms. 728 * pt.c (type_dependent_expression_p): Handle { }. 729 (make_auto): New function. 730 (listify_autos): New function. 731 (do_auto_deduction): New function. 732 (is_auto): New function. 733 (type_uses_auto): New function. 734 * cp-tree.h: Declare them. 735 * parser.c (cp_parser_decl_specifier_seq): In C++0x mode, don't 736 treat auto as a declspec. 737 (cp_parser_simple_type_specifier): It's a type-specifier. 738 7392008-08-29 Mark Mitchell <mark@codesourcery.com> 740 741 * mangle.c (write_type): Add target-specific manglings for 742 non-fundamental types to the substitution table. 743 gcc/testsuite/ 744 7452008-08-29 Jakub Jelinek <jakub@redhat.com> 746 747 PR fortran/29635 748 PR fortran/23057 749 * name-lookup.c (do_using_directive, cp_emit_debug_info_for_using): 750 Adjust debug_hooks->imported_module_or_decl callers. 751 7522008-08-29 Jan Hubicka <jh@suse.cz> 753 754 * cp-gimplify.c (cp_gimplify_expr): Add PRED_CONTINUE heuristic. 755 7562008-08-28 Paolo Carlini <paolo.carlini@oracle.com> 757 758 PR c++/37260 759 * decl.c (reshape_init_r): Check init for error_mark_node. 760 7612008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 762 763 PR c++/17880 764 * semantics.c (maybe_convert_cond): Call verify_sequence_points. 765 (finish_return_stmt): Likewise. 766 (finish_switch_condition): Likewise. 767 7682008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 769 770 * cp-tree.h: Fix #error directive. 771 7722008-08-26 Douglas Gregor <doug.gregor@gmail.com> 773 774 * typeck.c (type_after_usual_arithmetic_conversions): Don't do the 775 usual arithmetic conversions on scoped enumeration types. 776 (common_type): Ditto. 777 (default_conversion): Don't perform integral promotions on scoped 778 enumeration types. 779 (build_array_ref): Scoped enumeration types can't be used as 780 subscripts. 781 * decl.c (start_enum): If building a C++0x scoped enumeration, 782 enter its scope. If provided with an underlying type, check that 783 underlying type and set up the enumeration type accordingly. 784 (finish_enum): Only compute an underlying type if the underlying 785 type isn't already fixed, and only convert the enumerator values 786 now if we've just computed the underlying type. Finish the scope 787 of C++0x scoped enumerations. 788 (build_enumerator): For enumerations with a fixed underlying type, 789 check the enumerator values when the enumerator is defined. 790 (lookup_enumerator): New. 791 * call.c (standard_conversion): Don't allow assignment from 792 integers to scoped enumeration types, even with -fpermissive. 793 Don't convert from scoped enumerations to bool or any arithmetic 794 types. 795 (build_conditional_expr): Don't per the usual arithmetic 796 conversions for scoped enumeration types. 797 (convert_like_real): Check complain to see if we should 798 produce warnings. 799 * error.c (class_key_or_enum_as_string): Print scoped enums. 800 * cp-tree.h (MAYBE_CLASS_TYPE_P): Check CLASS_TYPE_P, not 801 TYPE_LANG_FLAG_5. 802 (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P): New. 803 (SCOPED_ENUM_P): New. 804 (UNSCOPED_ENUM_P): New. 805 (SET_SCOPED_ENUM_P): New. 806 (ENUM_UNDERLYING_TYPE): New. 807 * pt.c (lookup_template_class): Update the instantiation of enum 808 types to deal with C++0x scoped enumerations and underlying 809 types. 810 * name-lookup.c (begin_scope): Deal with scoped enumeration 811 scopes. 812 (lookup_qualified_name): Deal with lookup into enumeration types. 813 * name-lookup.h (enum scope_kind): Add sk_scoped_enum. 814 * parser.c (cp_parser_class_or_namespace_name): Rename to... 815 (cp_parser_qualifying_entity): ... this. Also, in C++0x mode, 816 parse a type-name that can be an enumeration type. 817 (cp_parser_nested_name_specifier_opt): Update with C++0x grammar. 818 (cp_parser_elaborated_type_specifier): Parse the 819 optional `struct' or `class' following enum (in C++0x). 820 (cp_parser_enum_specifier): Parse C++0x scoped enumerations and 821 enum-base clauses. 822 8232008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 824 825 * typeck.c: Update all calls to pedwarn. 826 * decl.c: Likewise. 827 * call.c: Likewise. 828 * error.c: Likewise. 829 * pt.c: Likewise. 830 * name-lookup.c: Likewise. 831 * parser.c: Likewise. 832 8332008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 834 835 PR c++/35158 836 * parser.c (cp_parser_omp_for_loop): Handle parenthesized 837 initializers. 838 8392008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 840 841 * parser.c: Update all calls to inform. 842 * typeck.c: Likewise. 843 * init.c: Likewise. 844 * class.c: Likewise. 845 * call.c: Likewise. 846 * method.c: Likewise. 847 * friend.c: Likewise. 848 * typeck2.c: Likewise. 849 * pt.c: Likewise. 850 * name-lookup.c: Likewise. 851 * lex.c: Likewise. 852 8532008-08-19 Jakub Jelinek <jakub@redhat.com> 854 855 PR debug/37156 856 * error.c (cp_print_error_function): Deal with recursive BLOCK trees. 857 8582008-08-18 Tomas Bily <tbily@suse.cz> 859 860 * tree.c (cp_tree_equal): Use CONVERT_EXPR_CODE_P. 861 8622008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 863 864 * typeck.c: Update all callers of permerror. 865 * init.c: Likewise. 866 * class.c: Likewise. 867 * decl.c: Likewise. 868 * call.c: Likewise. 869 * except.c: Likewise. 870 * cvt.c: Likewise. 871 * typeck2.c: Likewise. 872 * pt.c: Likewise. 873 * semantics.c: Likewise. 874 * name-lookup.c: Likewise. 875 * lex.c: Likewise. 876 * decl2.c: Likewise. 877 * parser.c: Likewise. 878 8792008-08-14 Paolo Carlini <paolo.carlini@oracle.com> 880 881 PR c++/34485 882 * pt.c (check_template_shadow): Change to return a bool. 883 * name-lookup.c (push_class_level_binding): Early return if 884 check_template_shadow returns false. 885 * cp-tree.h (check_template_shadow): Adjust declaration. 886 8872008-08-14 Paolo Carlini <paolo.carlini@oracle.com> 888 889 PR c++/34600 890 * decl.c (grokdeclarator): In case of extern and initializer, return 891 error_mark_node after the error. 892 8932008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 894 895 PR 30551 896 * decl.c (grokfndecl): Call check_main_parameters_type only if 897 -Wmain. 898 8992008-08-12 Paolo Carlini <paolo.carlini@oracle.com> 900 901 PR c++/37087 902 * parser.c (cp_parser_class_head): Early return error_mark_node in 903 case of global qualification of class name or qualified name that 904 does not name a class. 905 9062008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 907 908 PR c++/12242 909 * cvt.c (ocp_convert): Warn for out-of-range conversions to enum. 910 9112008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 912 913 PR 36901 914 * cp-tree.h (struct diagnostic_context, struct diagnostic_info): 915 Delete forward declarations. Check that toplev.h has not been 916 included before this file. Include toplev.h and diagnostic.h. 917 * error.c (cp_cpp_error): Use DK_PEDWARN. 918 (cxx_incomplete_type_diagnostic): Update declaration. 919 (cxx_incomplete_type_error): Use DK_ERROR. 920 * typeck2.c (cxx_incomplete_type_diagnostic): Take a diagnostic_t 921 as argument. Use emit_diagnostic. 922 (cxx_incomplete_type_error): Use DK_ERROR. 923 (add_exception_specifier): Use diagnostic_t instead of custom 924 codes. 925 * typeck.c (complete_type_or_else): Update call to 926 cxx_incomplete_type_diagnostic. 927 * init.c (build_delete): Likewise. 928 * call.c (diagnostic_fn_t): Remove unused typedef. 929 (build_temp): Pass a pointer to diagnostic_t. 930 (convert_like_real): Use emit_diagnostic. 931 (joust): Check return value of warning before giving informative 932 note. 933 * friend.c (do_friend): Check return value of warning 934 before giving informative note. 935 * parser.c (cp_parser_template_id): Likewise. 936 9372008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 938 939 PR 7651 940 * class.c (check_bases_and_members): Warn with -Wuninitialized 941 instead of -Wextra. 942 9432008-08-08 Volker Reichelt <v.reichelt@netcologne.de> 944 945 PR c++/35985 946 * decl.c (xref_basetypes): Check base for MAYBE_CLASS_TYPE_P, 947 and make sure it is not a union. 948 9492008-08-07 H.J. Lu <hongjiu.lu@intel.com> 950 951 * semantics.c (finish_decltype_type): Initialize type. 952 9532008-08-07 Douglas Gregor <doug.gregor@gmail.com> 954 955 * semantics.c (finish_decltype_type): Handle calls to function 956 pointers and references to functions properly. 957 9582008-08-06 Douglas Gregor <doug.gregor@gmail.com> 959 960 PR c++/36460 961 * parser.c (cp_parser_template_argument): Don't assume that '>>' 962 following a type-id is an error when in C++0x mode. 963 9642008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 965 966 PR 26785 967 * decl.c (grokdeclarator): Use explicit location with permerror_at. 968 9692008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 970 971 PR 8715 972 * typeck.c (cp_build_binary_op): Move code to c-common.c. 973 9742008-08-05 Jason Merrill <jason@redhat.com> 975 976 PR c++/37016 977 * decl.c (build_ptrmemfunc_type): Don't require structural 978 comparison of PMF types. 979 * tree.c (cp_build_qualified_type_real): Don't clear 980 a valid TYPE_PTRMEMFUNC_TYPE. 981 * typeck.c (cp_build_unary_op): Still do build_ptrmemfunc in 982 templates. 983 9842008-08-04 Jason Merrill <jason@redhat.com> 985 986 PR c++/36963 987 * typeck2.c (check_narrowing): Allow narrowing conversion 988 from an explicit floating-point constant. 989 990 PR c++/37006 991 * pt.c (tsubst_decl): Leave DECL_INITIAL set on deleted 992 instantiations. 993 9942008-08-04 Simon Baldwin <simonb@google.com> 995 996 PR c++/36999 997 * parser.c (cp_parser_elaborated_type_specifier): Warn only when 998 the declaration's id is followed by a semicolon. 999 10002008-07-31 Jakub Jelinek <jakub@redhat.com> 1001 1002 PR c++/36405 1003 * rtti.c (get_tinfo_decl_dynamic, get_typeid): Call 1004 complete_type_or_else even for UNKNOWN_TYPE to get diagnostics. 1005 10062008-07-31 Jason Merrill <jason@redhat.com> 1007 1008 PR c++/36633 1009 * init.c (build_new_1): Don't convert pointer to the data type 1010 until we're actually going to treat it as that type. 1011 1012 PR c++/11309 1013 * tree.c (build_aggr_init_expr): Split out... 1014 (build_cplus_new): ...from here. 1015 (stabilize_init): Don't mess with AGGR_INIT_EXPR either. 1016 * init.c (build_new_1): new T() means value-initialization, 1017 not default-initialization. 1018 (build_vec_init): Likewise. 1019 (build_value_init_1): Use build_aggr_init_expr. 1020 10212008-07-30 Dodji Seketeli <dseketel@redhat.com> 1022 1023 PR c++/36767 1024 * decl2.c (fix_temporary_vars_context_r): New function. 1025 (one_static_initialization_or_destruction): Make sure temporary 1026 variables part of the initialiser have their DECL_CONTEXT() 1027 properly set. 1028 10292008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 1030 1031 PR 34389 1032 * typeck.c (build_binary_op): Encapsulate code into 1033 shorten_binary_op. 1034 10352008-07-29 Jakub Jelinek <jakub@redhat.com> 1036 1037 PR c++/36852 1038 * tree.c (cplus_array_hash, build_cplus_array_type_1): Hash on 1039 TYPE_UID instead of pointers. 1040 10412008-07-29 Jan Hubicka <jh@suse.cz> 1042 1043 * optimize.c (maybe_clone_body): Remove DECL_INLINE. 1044 * decl.c (duplicate_decls): Likewise. 1045 (grokfndecl): Likewise. 1046 (start_method): Likewise. 1047 * method.c (make_thunk, make_alias_for, implicitly_declare_fn): 1048 Likewise. 1049 * pt.c (register_specialization, regenerate_decl_from_template): 1050 Likewise. 1051 * decl2.c (grokfield): Likewise. 1052 10532008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 1054 1055 PR 34985 1056 * decl.c (duplicate_decls): Merge USED flags. 1057 10582008-07-27 Jason Merrill <jason@redhat.com> 1059 1060 PR c++/36943 1061 * decl.c (reshape_init_r): Allow C++0x initializer lists. 1062 10632008-07-28 Richard Guenther <rguenther@suse.de> 1064 1065 Merge from gimple-tuples-branch. 1066 1067 2008-07-22 Aldy Hernandez <aldyh@redhat.com> 1068 1069 * cp-gimplify.c (gimplify_if_stmt): Set location on newly created 1070 COND_EXPR. 1071 1072 2008-07-18 Jakub Jelinek <jakub@redhat.com> 1073 1074 * decl.c (finish_function): Call gimple_body after cp_genericize. 1075 1076 2008-07-18 Aldy Hernandez <aldyh@redhat.com> 1077 1078 * optimize.c: Include gimple.h instead of tree-gimple.h. 1079 * Make-lang.in (cp-gimplify.o): Depend on tree-iterator.h. 1080 * cp-gimplify.c: Rename tree-gimple.h to gimple.h. Include 1081 tree-iterator.h. 1082 1083 2008-07-16 Jakub Jelinek <jakub@redhat.com> 1084 1085 * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE for the clone. 1086 1087 2008-07-14 Jakub Jelinek <jakub@redhat.com> 1088 1089 * cp-gimplify.c (cp_gimplify_expr): Update comment. 1090 1091 2008-07-14 Aldy Hernandez <aldyh@redhat.com> 1092 1093 * cp-tree.h (union lang_tree_node): Rename GENERIC_NEXT to 1094 TREE_CHAIN. 1095 * cp-gimplify.c (cxx_omp_clause_apply_fn): Rename 1096 GIMPLE_MODIFY_STMT to MODIFY_EXPR. 1097 (cxx_omp_clause_copy_ctor): Same. 1098 (cxx_omp_clause_assign_op): Same. 1099 1100 2008-05-28 Jakub Jelinek <jakub@redhat.com> 1101 1102 * cp-gimplify.c (cp_gimplify_omp_for): Add pre_p argument. Tuplify. 1103 (cp_gimplify_expr): Adjust caller. 1104 1105 2008-05-11 Doug Kwan <dougkwan@google.com> 1106 1107 * init.c (build_vec_delete): Add type conversion for argument 1108 0 of POINTER_PLUS_EXPR. 1109 1110 2008-04-29 Doug Kwan <dougkwan@google.com> 1111 1112 * decl2 (File): Include "gimple.h" 1113 (cp_write_global_declarations): Use gimple_body instead of 1114 DECL_SAVED_TREE. 1115 * Make-lang.in (cp/decl2.o): Add $(GIMPLE_H) 1116 1117 2008-04-10 Diego Novillo <dnovillo@google.com> 1118 1119 http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00913.html 1120 1121 * optimize.c (maybe_clone_body): Re-enable call to 1122 clone_body. 1123 * cp-gimplify.c (cp_gimplify_omp_for): Mark disabled 1124 code with call to gimple_unreachable. 1125 (cp_genericize): Fix handling of clone bodies. 1126 1127 2008-04-04 Diego Novillo <dnovillo@google.com> 1128 1129 http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00413.html 1130 1131 * optimize.c (maybe_clone_body): Re-enable. 1132 1133 2008-02-19 Diego Novillo <dnovillo@google.com> 1134 Oleg Ryjkov <olegr@google.com> 1135 1136 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html 1137 1138 * cp-gimplify.c (gimplify_for_stmt): Change gimple_seq 1139 argument to gimple_seq *. Update all users. 1140 (gimplify_must_not_throw_expr): Likewise. 1141 1142 2008-02-04 Oleg Ryjkov <olegr@google.com> 1143 1144 * except.c: Include gimple.h 1145 (cp_protect_cleanup_actions): Convert to tuples. 1146 * Make-lang.in (cp/except.o): Add dependency on gimple.h 1147 1148 2007-11-10 Aldy Hernandez <aldyh@redhat.com> 1149 1150 * cp-gimplify.c (gimplify_cp_loop): Call tree_annotate_all_with_locus 1151 instead of annotating each block manually. 1152 1153 2007-10-30 Aldy Hernandez <aldyh@redhat.com> 1154 1155 * cp-gimplify.c (gimplify_cp_loop): Tuplify. 1156 (gimplify_for_stmt): Same. 1157 (gimplify_switch_stmt): Same. 1158 (cp_gimplify_expr): [FOR_STMT]: Do not call gimplify_for_stmt. Return 1159 GS_OK. 1160 [WHILE_STMT]: Return GS_OK. 1161 [SWITCH_STMT]: Same. 1162 [CONTINUE_STMT]: Same. 1163 [BREAK_STMT]: Same. 1164 (cp_genericize): Set gimple_body() of cloned functions when needed. 1165 1166 2007-10-29 Aldy Hernandez <aldy@quesejoda.com> 1167 1168 * cp-gimplify.c: Move build_gimple_eh_filter_tree here. 1169 (cp_gimplify_init_expr): Convert to tuples. 1170 (gimplify_must_not_throw_expr): Make function return a 1171 gimplify_status and convert to tuples. 1172 1173 2007-10-18 Aldy Hernandez <aldy@quesejoda.com> 1174 1175 * cp-gimplify.c (genericize_try_block): Enable and do not call 1176 gimplify_stmt. 1177 (genericize_catch_block): Same. 1178 (genericize_eh_spec_block): Same. 1179 Rename gimple_build_eh_filter_tree to build_gimple_eh_filter_tree. 1180 (cp_gimplify_expr): Enable TRY_BLOCK, HANDLER, and EH_SPEC_BLOCK. 1181 1182 2007-10-16 Aldy Hernandez <aldy@quesejoda.com> 1183 1184 * optimize.c (maybe_clone_body): Comment out call to clone_body. 1185 * decl.c (finish_function): Use gimple_body instead of 1186 DECL_SAVED_TREE. 1187 * cp-tree.h (cp_gimplify_expr): Last 2 arguments are sequences. 1188 * cp-gimplify.c (genericize_try_block): Comment out. 1189 (genericize_catch_block): Same. 1190 (genericize_eh_spec_block): Same. 1191 (gimplify_cp_loop): Comment out calls to gimplify_stmt. 1192 (gimplify_for_stmt): Comment out. 1193 (gimplify_switch_stmt): Comment out call to gimplify_stmt. 1194 (cp_gimplify_omp_for): Same. 1195 (gimplify_must_not_throw_expr): Argument pre_p is a sequence. 1196 Comment out call to gimplify_stmt and append_to_statement_list. 1197 Rename gimple_build_eh_filter_tree to build_gimple_eh_filter_tree. 1198 (cp_gimplify_init_expr): Arguments pre_p and post_p are sequences. 1199 (cp_gimplify_expr): Same. 1200 Comment out calls to genericize_*_block. Comment out call to 1201 gimplify_for_stmt. 1202 12032008-07-27 H.J. Lu <hongjiu.lu@intel.com> 1204 1205 PR c++/36944 1206 * class.c (type_has_user_provided_default_constructor): Handle 1207 default parameters. 1208 12092008-07-27 Paolo Carlini <paolo.carlini@oracle.com> 1210 1211 * decl.c (push_library_fn): Add a parameter for the exceptions that 1212 the function may throw. 1213 (push_void_library_fn, push_throw_library_fn, expand_static_init): 1214 Adjust. 1215 (build_library_fn): Change to static. 1216 * cp-tree.h: Adjust declarations. 1217 * except.c (declare_nothrow_library_fn): New. 1218 (do_get_exception_ptr, do_begin_catch, do_free_exception, 1219 do_allocate_exception): Use the latter, adjust the declarations 1220 (ie, add empty exception-specification), consistently with the 1221 actual implementation in libsupc++. 1222 12232008-07-25 Jan Hubicka <jh@suse.cz> 1224 1225 * typeck.c (inline_conversion): Remove. 1226 (cp_build_function_call): Do not use inline_conversion. 1227 * decl.c (duplicate_decls): Do not insist on inline being declared 1228 early. 1229 (start_cleanup_fn): Do not assume that INLINE flags prevent function 1230 from being output. We now remove static functions always. 1231 (finish_function): Do return warning on all static functions. 1232 * call.c (build_over_call): Do not use inline_conversion. 1233 * cp-tree.h (possibly_inlined_p): Declare. 1234 (inline_conversion): Remove. 1235 * pt.c (instantiate_decl): Use possibly_inlined_p predicate. 1236 * decl2.c (cp_write_global_declarations): Likewise. 1237 (mark_used): Likewise. 1238 (possibly_inlined_p): New functions. 1239 12402008-07-25 Jason Merrill <jason@redhat.com> 1241 1242 * class.c (type_has_user_provided_default_constructor): Handle 1243 templates. 1244 12452008-07-23 Jan Hubicka <jh@suse.cz> 1246 1247 * decl.c (duplicate_decls): Update comment and unit-at-a-time. 1248 (grogfndecl): Drop flag_inline_trees code. 1249 * pt.c (instantiate_decl): Drop flag_iline_trees code. 1250 * lex.c (cxx_init): Do not set unit-at-a-time. 1251 12522008-07-23 Jason Merrill <jason@redhat.com> 1253 1254 * mangle.c (write_unqualified_name): Avoid infinite recursion when 1255 trying to mangle a decl with no name. 1256 1257 Implement defaulted/deleted functions as per N2346 1258 * cp-tree.h (struct lang_decl_flags): Add defaulted_p bitfield. 1259 (DECL_DELETED_FN): New macro. 1260 (DECL_DEFAULTED_FN): New macro. 1261 * class.c (user_provided_p): New fn. 1262 (defaultable_fn_p): New fn. 1263 (type_has_user_provided_constructor): New fn. 1264 (type_has_user_provided_default_constructor): New fn. 1265 (check_methods): A defaulted fn is still trivial. 1266 (check_bases_and_members): Likewise. 1267 * decl.c (grok_special_member_properties): Likewise. 1268 (duplicate_decls): Complain about redeclaring a function as deleted. 1269 (start_decl): initialized==2 means deleted. 1270 (cp_finish_decl): Handle deleted/defaulted semantics. 1271 * decl2.c (grokfield): Likewise. 1272 (mark_used): Check DECL_DEFAULTED_FN instead of DECL_ARTIFICIAL. 1273 Complain about using a deleted fn. 1274 * init.c (build_value_init_1): Use type_has_user_provided_constructor. 1275 (perform_member_init): Check for a user-provided default constructor 1276 even if TYPE_NEEDS_CONSTRUCTING. 1277 (build_new_1): Likewise. 1278 * call.c (build_over_call): Don't call mark_used twice. 1279 * method.c (implicitly_declare_fn): Set DECL_DEFAULTED_FN. 1280 * search.c (check_final_overrider): Check for deleted mismatch. 1281 * parser.c (cp_parser_init_declarator): Tell start_decl about =delete. 1282 (cp_parser_pure_specifier): Handle =default and =delete. 1283 1284 * error.c (maybe_warn_cpp0x): Suggest -std=gnu++0x as well. 1285 12862008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 1287 1288 PR 35058 1289 * typeck.c: All calls to pedwarn changed. 1290 * decl.c: All calls to pedwarn changed. 1291 * call.c: All calls to pedwarn changed. 1292 * error.c: All calls to pedwarn changed. 1293 * typeck2.c: All calls to pedwarn changed. 1294 * pt.c: All calls to pedwarn changed. 1295 * name-lookup.c: All calls to pedwarn changed. 1296 * parser.c: All calls to pedwarn changed. 1297 12982008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1299 1300 * call.c: Fix comment typos. 1301 * class.c: Likewise. 1302 * cp-tree.h: Likewise. 1303 * cxx-pretty-print.c: Likewise. 1304 * decl.c: Likewise. 1305 * init.c: Likewise. 1306 * name-lookup.c: Likewise. 1307 * operators.def: Likewise. 1308 * parser.c: Likewise. 1309 * pt.c: Likewise. 1310 * tree.c: Likewise. 1311 * typeck.c: Likewise. 1312 13132008-07-21 Paolo Carlini <paolo.carlini@oracle.com> 1314 1315 PR c++/36871 1316 PR c++/36872 1317 * semantics.c (classtype_has_nothrow_assign_or_copy_p): Only check 1318 copy constructors and copy assignment operators proper. 1319 13202008-07-21 Rafael Ávila de Espíndola <espindola@google.com> 1321 1322 * parser.c (cp_token): Remove in_system_header. 1323 (eof_token): Remove in_system_header. 1324 (cp_lexer_get_preprocessor_token): Don't set in_system_header. 1325 (cp_lexer_set_source_position_from_token): Don't set in_system_header. 1326 (cp_parser_member_declaration): Use in_system_header_at. 1327 * pt.c (lookup_template_class): Don't set DECL_IN_SYSTEM_HEADER. 1328 (pop_tinst_level): Don't set in_system_header. 1329 (instantiate_class_template): Don't set in_system_header. 1330 (instantiate_decl): Don't set in_system_header. 1331 (instantiate_pending_templates): Don't set in_system_header. 1332 13332008-07-21 Paolo Carlini <paolo.carlini@oracle.com> 1334 1335 PR c++/36870 1336 * semantics.c (classtype_has_nothrow_assign_or_copy_p): Use 1337 TYPE_NOTHROW_P, not TREE_NOTHROW. 1338 (trait_expr_value): Likewise. 1339 13402008-07-18 Dodji Seketeli <dseketel@redhat.com> 1341 1342 PR c++/36407 1343 * call.c (convert_like_real): Don't take the error code path 1344 when a rvalue or base conversion has the bad_p field set. 1345 13462008-07-18 Kris Van Hees <kris.van.hees@oracle.com> 1347 1348 * rtti.c (emit_support_tinfos): Add char16_type_node and 1349 char32_type_node. 1350 * typeck2.c (digest_init): Support char16_t and char32_t. 1351 13522008-07-18 Kavih R. Ghazi <ghazi@caip.rutgers.edu> 1353 1354 * cvt.c (convert_to_void): Avoid C++ keywords. 1355 * decl.c (walk_namespaces_r, wrapup_globals_for_namespace): 1356 Likewise. 1357 * friend.c (is_friend): Likewise. 1358 * init.c (perform_member_init): Likewise. 1359 * mangle.c (write_template_prefix, write_template_template_param): 1360 Likewise. 1361 * name-lookup.c (do_namespace_alias, do_using_directive, 1362 parse_using_directive, ambiguous_decl, arg_assoc): Likewise. 1363 * parser.c (cp_parser_template_id, cp_parser_namespace_definition, 1364 cp_parser_objc_typename, cp_parser_objc_method_keyword_params): 1365 Likewise. 1366 * pt.c (is_specialization_of_friend, lookup_template_class, 1367 push_tinst_level, instantiate_class_template, 1368 tsubst_copy_and_build): Likewise. 1369 * tree.c (add_stmt_to_compound): Likewise. 1370 * typeck.c (finish_class_member_access_expr): Likewise. 1371 13722008-07-17 Julian Brown <julian@codesourcery.com> 1373 Mark Mitchell <mark@codesourcery.com> 1374 1375 * decl2.c (determine_visibility): Allow target to override 1376 visibility of class data. 1377 13782008-07-17 Paolo Carlini <paolo.carlini@oracle.com> 1379 1380 PR c++/36855 1381 * semantics.c (trait_expr_value): Update __has_trivial_destructor 1382 semantics to the current WP (N2691). 1383 13842008-07-16 Dodji Seketeli <dseketel@redhat.com> 1385 1386 PR c++/13699 1387 * name-lookup.c (lookup_extern_c_fun_binding_in_all_ns): New function. 1388 (pushdecl_maybe_friend): Check if a redeclaration of extern C function 1389 complies with exception specification constraints. 1390 13912008-07-14 Jason Merrill <jason@redhat.com> 1392 1393 * lex.c (init_reswords): Always set D_OBJC. 1394 13952008-07-11 Tom Tromey <tromey@redhat.com> 1396 Ian Lance Taylor <iant@google.com> 1397 1398 * lex.c (struct resword, reswords): Don't define. 1399 (D_EXT, D_ASM, D_OBJC, D_CXX0X): Don't define. 1400 (init_reswords): Clarify mask code. Use c_common_reswords rather 1401 than reswords. 1402 14032008-07-11 Dodji Seketeli <dseketel@redhat.com> 1404 1405 PR c++/13101 1406 * decl.c (grokdeclarator): Warn about initializing variables 1407 of storage class 'extern' only after the type of the declarator 1408 has been properly computed. 1409 14102008-07-11 Dodji Seketeli <dseketel@redhat.com> 1411 1412 PR c++/31754 1413 * cp-tree.h (struct cp_decl_specifier_seq): Add a location field. It 1414 carries the location of the primary type. 1415 * parser.c (cp_parser_check_type_definition): Update documentation. 1416 (cp_parser_check_for_definition_in_return_type, 1417 cp_parser_check_for_invalid_template_id, 1418 cp_parser_set_decl_spec_type, 1419 cp_parser_check_for_definition_in_return_type, 1420 cp_parser_diagnose_invalid_type_name, 1421 cp_parser_new_expression, cp_parser_explicit_instantiation, 1422 cp_parser_type_specifier, cp_parser_simple_type_specifier, 1423 cp_parser_omp_for_loop, cp_parser_pragma): Use location in error 1424 messages. 1425 14262008-07-11 Dodji Seketeli <dseketel@redhat.com> 1427 1428 PR c++/31754 1429 * pt.c, semantic.c: 1430 * semantic.c (qualified_name_lookup_error, finish_id_expression): 1431 Add a location_t parameter so that 1432 error message can have a more accurate location. 1433 * cp-tree.h: Updated prototype 1434 * pt.c (tsubst_qualified_id): Use location in error messages. 1435 * parser.c (cp_parser_postfix_expression, 1436 cp_parser_objc_statement, cp_parser_trait_expr, 1437 cp_parser_token_is_class_key, 1438 cp_parser_uncommitted_to_tentative_parse_p, 1439 cp_parser_check_for_invalid_template_id, cp_parser_is_string_literal, 1440 cp_parser_error, cp_parser_name_lookup_error, 1441 cp_parser_simulate_error, cp_parser_check_decl_spec, 1442 cp_parser_check_decl_spec, cp_parser_non_integral_constant_expression, 1443 cp_parser_diagnose_invalid_type_name, 1444 cp_parser_parse_and_diagnose_invalid_type_name, 1445 cp_parser_require_pragma_eol, cp_parser_make_typename_type, 1446 cp_parser_string_literal, cp_parser_primary_expression, 1447 cp_parser_primary_expression, cp_parser_unqualified_id, 1448 cp_parser_nested_name_specifier_opt, cp_parser_postfix_expression, 1449 cp_parser_postfix_dot_deref_expression, cp_parser_new_expression, 1450 cp_parser_direct_new_declarator, cp_parser_builtin_offsetof, 1451 cp_parser_label_for_labeled_statement, cp_parser_statement_seq_opt, 1452 cp_parser_jump_statement, cp_parser_block_declaration, 1453 cp_parser_simple_declaration, cp_parser_decl_specifier_seq, 1454 cp_parser_function_specifier_opt, cp_parser_decltype, 1455 cp_parser_mem_initializer_list, cp_parser_mem_initializer, 1456 cp_parser_mem_initializer_id, cp_parser_template_parameter, 1457 cp_parser_type_parameter, cp_parser_template_id, 1458 cp_parser_template_name, cp_parser_template_argument): Likewise. 1459 14602008-07-09 Paolo Carlini <paolo.carlini@oracle.com> 1461 1462 PR c++/36760 1463 * pt.c (tsubst_function_type): Remove warning for type qualifiers 1464 on function return type. 1465 14662008-07-09 Paolo Carlini <paolo.carlini@oracle.com> 1467 1468 PR c++/36760 1469 * pt.c (tsubst_function_type): Don't warn for type qualifiers 1470 on function return type in case of system header. 1471 14722008-07-09 Raksit Ashok <raksit@google.com> 1473 1474 * parser.c (cp_parser_postfix_expression): New warning based on flag 1475 warn_disallowed_functions. 1476 14772008-07-08 Simon Martin <simartin@users.sourceforge.net> 1478 1479 PR c++/34963 1480 * decl.c (grokdeclarator): Reset storage_class and staticp for friend 1481 functions declared with a storage class qualifier. 1482 14832008-07-03 Richard Guenther <rguenther@suse.de> 1484 1485 PR c++/36128 1486 * typeck.c (cp_build_function_call): Move code to verify 1487 builtin function arguments ... 1488 * call.c (build_cxx_call): ... here. 1489 14902008-07-02 Jason Merrill <jason@redhat.com> 1491 1492 * Make-lang.in (cp/typeck2.o): Add $(REAL_H) dependency. 1493 1494 Implement WG21 N2672, Initializer List proposed wording 1495 * cp-tree.h (enum cp_tree_index): Add CPTI_INIT_LIST_TYPE. 1496 (struct lang_type_class): Add has_list_ctor bitfield. 1497 (TYPE_HAS_LIST_CTOR): New macro. 1498 (BRACE_ENCLOSED_INITIALIZER_P): Expect init_list_type_node. 1499 (CONSTRUCTOR_IS_DIRECT_INIT): New macro. 1500 (LOOKUP_NO_NARROWING): New macro. 1501 (LOOKUP_NO_COPY_CTOR_CONVERSION): New macro. 1502 * parser.c (cp_parse_braced_list): Split out from... 1503 (cp_parser_initializer_clause): ...here. 1504 (cp_parser_postfix_expression): Build up CONSTRUCTOR for compound 1505 literal here. 1506 (cp_lexer_next_token_is_not_keyword): New fn. 1507 (cp_parser_parenthesized_expression_list): Handle { }. 1508 (cp_parser_new_expression, cp_parser_new_initializer): Likewise. 1509 (cp_parser_assignment_expression, cp_parser_condition): Likewise. 1510 (cp_parser_jump_statement, cp_parser_simple_declaration): Likewise. 1511 (cp_parser_mem_initializer, cp_parser_init_declarator): Likewise. 1512 (cp_parser_initializer, cp_parser_functional_cast): Likewise. 1513 (cp_parser_omp_for_loop, cp_parser_cache_group): Likewise. 1514 (cp_parser_save_member_function_body): Likewise. 1515 * call.c (conversion_kind): Add ck_list, ck_aggr. 1516 (struct conversion): Add check_narrowing bitfield, conversion list. 1517 (build_list_conv): New fn. 1518 (build_aggr_conv): New fn. 1519 (implicit_conversion): Call them. 1520 (standard_conversion): Set check_narrowing if appropriate. 1521 (add_function_candidate): Handle LOOKUP_NO_COPY_CTOR_CONVERSION. 1522 (build_user_type_conversion_1): When converting from an init list, 1523 we allow additional conversions except when calling a copy ctor. 1524 (convert_like_real): Calling an explicit ctor for an init list is 1525 ill-formed. Handle ck_list and ck_addr. Check narrowing. 1526 (build_new_method_call): If CONSTRUCTOR_IS_DIRECT_INIT is set and 1527 class doesn't have a list ctor, break the {} into a TREE_LIST. 1528 (compare_ics): ck_list is better than other UDCs. 1529 (set_up_extended_ref_temp): Split out from initialize_reference. 1530 (is_std_init_list): New fn. 1531 (is_list_ctor): New fn. 1532 * decl.c (cxx_init_decl_processing): Create init_list_type_node. 1533 (reshape_init_array_1): Pass it to build_constructor. 1534 (reshape_init_class): Ditto. 1535 (initialize_artificial_var): Pass the appropriate type. 1536 (build_aggr_init_full_exprs): Split out from... 1537 (check_initializer): ...here. Handle new semantics. 1538 (build_init_list_var_init): New subroutine of check_initializer. 1539 (grokdeclarator): Converting constructors can have more than one parm. 1540 (grok_special_member_properties): Set TYPE_HAS_LIST_CTOR. 1541 * init.c (expand_default_init): Only do digest_init for aggregates. 1542 * rtti.c (tinfo_base_init): Pass init_list_type_node to 1543 build_constructor_from_list. 1544 (generic_initializer, ptr_initializer): Ditto. 1545 (ptm_initializer, class_initializer): Ditto. 1546 (get_pseudo_ti_init): Ditto. 1547 * error.c (dump_type): Handle init_list_type_node. 1548 (maybe_warn_cpp0x): New fn. 1549 (maybe_varn_variadic_templates): Call it. 1550 * cvt.c (ocp_convert): Handle conversion from { }. 1551 * tree.c (build_array_of_n_type): New fn. 1552 * typeck2.c (store_init_value): Use init_list_type_node. 1553 (digest_init): Likewise. 1554 (check_narrowing): New fn. 1555 * semantics.c: (finish_compound_literal): Take CONSTRUCTOR instead 1556 of vector of constructor elts. Handle non-aggregate types. Make 1557 constant literals static. 1558 * pt.c: (tsubst_copy_and_build): Adjust. 1559 (unify): Handle { }. 1560 * name-lookup.c (arg_assoc_type): Handle init_list_type_node. 1561 15622008-07-01 Daniel Jacobowitz <dan@codesourcery.com> 1563 1564 * typeck.c (comp_ptr_ttypes_real): Use vector_targets_convertible_p. 1565 (comp_ptr_ttypes_const): Likewise. 1566 15672008-07-01 Andrew Haley <aph@redhat.com> 1568 1569 * decl.c (finish_constructor_body): Don't set the return value of 1570 the constructor if the constructor is that of a Java type. 1571 15722008-06-30 Jakub Jelinek <jakub@redhat.com> 1573 1574 PR c++/36662 1575 * decl2.c (is_late_template_attribute): If the first attribute 1576 argument is IDENTIFIER_NODE, don't consider it when checking 1577 if arguments are value or type dependent. 1578 15792008-06-29 Paolo Carlini <paolo.carlini@oracle.com> 1580 1581 PR c++/36655 1582 * pt.c (do_type_instantiation): In c++0x mode do not warn for 1583 extern template. 1584 15852008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1586 1587 * Make-lang.in (cp-warn): Delete $(CXX_COMPAT_WARN). 1588 15892008-06-28 Jakub Jelinek <jakub@redhat.com> 1590 1591 PR c++/36364 1592 * repo.c (repo_emit_p): Put const static data members initialized 1593 by const expr into *.rpo file, just return 2 if IDENTIFIER_REPO_CHOSEN 1594 for it is 0. 1595 15962008-06-27 Paolo Carlini <paolo.carlini@oracle.com> 1597 1598 PR c++/36655 1599 * pt.c (do_decl_instantiation): In c++0x mode do not warn for 1600 extern template. 1601 16022008-06-24 Jonathan Wakely <jwakely.gcc@gmail.com> 1603 1604 PR c++/23194 1605 * typeck.c (cp_build_function_call): Show example syntax in 1606 diagnostic. 1607 16082008-06-21 Jonathan Wakely <jwakely.gcc@gmail.com> 1609 1610 * typeck.c (composite_pointer_type_r, cxx_sizeof_expr, 1611 cxx_alignof_expr, check_template_keyword, cp_build_binary_op, 1612 pointer_diff, cp_build_unary_op, build_x_compound_expr_from_list, 1613 build_reinterpret_cast_1, cp_build_c_cast, check_return_expr): Change 1614 pedwarn to permerror. 1615 * init.c (perform_member_init, build_new_1, build_new): Likewise. 1616 * decl.c (warn_extern_redeclared_static, duplicate_decls, 1617 * identify_goto, check_previous_goto_1, check_goto, define_label, 1618 check_tag_decl, start_decl, check_class_member_definition_namespace, 1619 grokfndecl, grokdeclarator): Likewise. 1620 * except.c (check_handlers): Likewise. 1621 * typeck2.c (digest_init): Likewise. 1622 * pt.c (check_specialization_namespace, 1623 check_explicit_instantiation_namespace, 1624 maybe_process_partial_specialization, check_explicit_specialization, 1625 convert_template_argument, do_decl_instantiation, 1626 do_type_instantiation, instantiate_decl): Likewise. 1627 * semantics.c (finish_template_type_parm): Likewise. 1628 * name-lookup.c (pushdecl_maybe_friend, 1629 check_for_out_of_scope_variable): Likewise. 1630 * decl2.c (finish_static_data_member_decl, build_anon_union_vars, 1631 coerce_new_type): Likewise. 1632 * parser.c (cp_parser_nested_name_specifier_opt, 1633 cp_parser_mem_initializer, cp_parser_elaborated_type_specifier, 1634 cp_parser_class_head, cp_parser_check_class_key): Likewise. 1635 (cp_parser_parameter_declaration): Check flag_permissive instead of 1636 flag_pedantic_errors. 1637 * call.c (joust): Change pedwarn to warning. 1638 * friend.c (make_friend_class): Likewise. 1639 16402008-06-16 Jan Hubicka <jh@suse.cz> 1641 1642 * method.c: Include cgraph.h. 1643 (use_thunk): Use cgraph_add_new_function instead of calling backend 1644 directly. 1645 16462008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1647 1648 * parser.c: Fix comment typo. 1649 16502008-06-14 Simon Martin <simartin@users.sourceforge.net> 1651 1652 PR c++/35320 1653 * decl2.c (grokbitfield): Receive the list of attributes, pass it to 1654 grokdeclarator and apply it to the created declaration. 1655 * cp-tree.h (grokbitfield): Update prototype. 1656 * parser.c (cp_parser_member_declaration): Don't apply the attributes 1657 since they are now applied in grokbitfield. Adjusted the call to 1658 grokbitfield. 1659 (cp_parser_objc_class_ivars): Likewise. 1660 16612008-06-14 Simon Martin <simartin@users.sourceforge.net> 1662 1663 PR c++/35317 1664 * class.c (type_requires_array_cookie): Do not consider delete[] 1665 operators with an ellipsis as second argument. 1666 16672008-06-09 Jakub Jelinek <jakub@redhat.com> 1668 1669 PR c++/36408 1670 * semantics.c (stmt_expr_value_expr): Don't crash on empty 1671 STATEMENT_LIST. 1672 16732008-06-08 Paolo Carlini <paolo.carlini@oracle.com> 1674 1675 PR c++/35242 1676 * pt.c (maybe_process_partial_specialization): Check the tree 1677 returned by push_template_decl for error_mark_node. 1678 * parser.c (cp_parser_class_head): Likewise, check the tree 1679 returned by the latter. 1680 16812008-06-07 Paolo Carlini <paolo.carlini@oracle.com> 1682 1683 PR c++/35327 1684 * decl.c (grokdeclarator): In case of wrong return type return 1685 immediately error_mark_node. 1686 16872008-06-06 Jakub Jelinek <jakub@redhat.com> 1688 1689 * cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info, 1690 dependent_omp_for_p, begin_omp_task, finish_omp_task, 1691 finish_omp_taskwait): New prototypes. 1692 (cxx_omp_clause_default_ctor): Add outer argument. 1693 (finish_omp_for): Add new clauses argument. 1694 * cp-gimplify.c (cxx_omp_finish_clause): New function. 1695 (cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten. 1696 (cxx_omp_clause_default_ctor): Add outer argument. 1697 (cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT. 1698 * cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define. 1699 * parser.c (cp_parser_omp_for_loop): Parse collapsed for loops. 1700 Add par_clauses argument. If decl is present in parallel's 1701 lastprivate clause, change that clause to shared and add 1702 a lastprivate clause for decl to OMP_FOR_CLAUSES. 1703 Fix wording of error messages. Adjust finish_omp_for caller. 1704 Add clauses argument. Parse loops with random access iterators. 1705 (cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New 1706 functions. 1707 (cp_parser_omp_for, cp_parser_omp_parallel): Adjust 1708 cp_parser_omp_for_loop callers. 1709 (cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper 1710 functions. 1711 (cp_parser_omp_clause_name): Handle collapse and untied 1712 clauses. 1713 (cp_parser_omp_clause_schedule): Handle auto schedule. 1714 (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE 1715 and PRAGMA_OMP_CLAUSE_UNTIED. 1716 (OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE. 1717 (OMP_TASK_CLAUSE_MASK): Define. 1718 (cp_parser_omp_task, cp_parser_omp_taskwait): New functions. 1719 (cp_parser_omp_construct): Handle PRAGMA_OMP_TASK. 1720 (cp_parser_pragma): Handle PRAGMA_OMP_TASK and 1721 PRAGMA_OMP_TASKWAIT. 1722 * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and 1723 OMP_CLAUSE_UNTIED. Handle OMP_CLAUSE_LASTPRIVATE_STMT. 1724 (tsubst_omp_for_iterator): New function. 1725 (dependent_omp_for_p): New function. 1726 (tsubst_expr) <case OMP_FOR>: Use it. Handle collapsed OMP_FOR 1727 loops. Adjust finish_omp_for caller. Handle loops with random 1728 access iterators. Adjust for OMP_FOR_{INIT,COND,INCR} changes. 1729 (tsubst_expr): Handle OMP_TASK. 1730 * semantics.c (cxx_omp_create_clause_info): New function. 1731 (finish_omp_clauses): Call it. Handle OMP_CLAUSE_UNTIED and 1732 OMP_CLAUSE_COLLAPSE. 1733 (cxx_omp_predetermined_sharing): Removed. 1734 * semantics.c (finish_omp_for): Allow pointer iterators. Use 1735 handle_omp_for_class_iterator and dependent_omp_for_p. Handle 1736 collapsed for loops. Adjust c_finish_omp_for caller. Add new 1737 clauses argument. Fix check for type dependent cond or incr. 1738 Set OMP_FOR_CLAUSES to clauses. Use cp_convert instead of 1739 fold_convert to convert incr amount to difference_type. Only 1740 fold if not in template. If decl is mentioned in lastprivate 1741 clause, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle loops with random 1742 access iterators. Adjust for OMP_FOR_{INIT,COND,INCR} 1743 changes. 1744 (finish_omp_threadprivate): Allow static class members of the 1745 current class. 1746 (handle_omp_for_class_iterator, begin_omp_task, finish_omp_task, 1747 finish_omp_taskwait): New functions. 1748 1749 * parser.c (cp_parser_binary_expression): Add prec argument. 1750 (cp_parser_assignment_expression): Adjust caller. 1751 * cp-tree.h (outer_curly_brace_block): New prototype. 1752 * decl.c (outer_curly_brace_block): No longer static. 1753 17542008-06-02 Paolo Carlini <paolo.carlini@oracle.com> 1755 1756 PR c++/36404 1757 * pt.c (push_template_decl_real): Consistently return error_mark_node 1758 on error. 1759 17602008-06-02 Tomas Bily <tbily@suse.cz> 1761 1762 * typeck.c (is_bitfield_expr_with_lowered_type): Use CASE_CONVERT. 1763 (cp_build_unary_op): Likewise. 1764 (cp_build_indirect_ref): Use CONVERT_EXPR_P. 1765 (maybe_warn_about_returning_address_of_local): Likewise. 1766 17672008-05-29 Paolo Carlini <paolo.carlini@oracle.com> 1768 1769 PR c++/35243 1770 * pt.c (tsubst_initializer_list): Consistently check the tree 1771 returned by tsubst_pack_expansion for error_mark_node. 1772 17732008-05-27 Michael Matz <matz@suse.de> 1774 1775 PR c++/27975 1776 * call.c (build_new_op): Make warning conditional on 1777 OPT_Wenum_compare. 1778 17792008-05-27 Alexandre Oliva <aoliva@redhat.com> 1780 1781 PR c++/35909 1782 * call.c (convert_like_real): Convert bitfield to desired type 1783 before creating temporary. 1784 17852008-05-26 Daniel Franke <franke.daniel@gmail.com> 1786 1787 * Makefile.in: Adjusted dependencies on c-incpath.o. 1788 17892008-05-23 Jakub Jelinek <jakub@redhat.com> 1790 1791 PR c++/36237 1792 * cp-gimplify.c (cxx_omp_clause_apply_fn): Call 1793 fold_build_cleanup_point_expr on build_call_a results. 1794 1795 PR c++/36308 1796 * semantics.c (omp_clause_info_fndecl): New function. 1797 (finish_omp_clauses): Use it. 1798 17992008-05-21 Jakub Jelinek <jakub@redhat.com> 1800 1801 PR c++/36023 1802 * cp-tree.h (check_array_initializer): New prototype. 1803 * decl.c (check_array_initializer): New function. 1804 (check_initializer): Call it. 1805 * semantics.c (finish_compound_literal): Call it for ARRAY_TYPEs. 1806 18072008-05-21 Tom Tromey <tromey@redhat.com> 1808 1809 * mangle.c (save_partially_mangled_name): Remove. 1810 (restore_partially_mangled_name): Likewise. 1811 (write_encoding): Update. 1812 (write_unqualified_name): Likewise. 1813 (start_mangling): Always use name_obstack. Remove 'ident_p' 1814 argument. 1815 (get_identifier_nocopy): Remove. 1816 (finish_mangling_internal): Rename from finish_mangling. 1817 (finish_mangling): New function. 1818 (finish_mangling_get_identifier): Likewise. 1819 (partially_mangled_name, partially_mangled_name_len): Remove. 1820 (mangle_decl_string): Change return type. Update. 1821 (mangle_decl, mangle_type_string, mangle_special_for_type, 1822 mangle_ctor_vtbl_for_type, mangle_thunk, mangle_guard_variable, 1823 mangle_ref_init_variable): Update. 1824 18252008-05-12 Paolo Carlini <paolo.carlini@oracle.com> 1826 1827 PR c++/35331 1828 * semantics.c (begin_class_definition): Extend checks on the first 1829 argument. 1830 18312008-05-12 Tomas Bily <tbily@suse.cz> 1832 1833 * typeck2.c (digest_init): Use CONVERT_EXPR_P. 1834 * call.c (build_over_call): Likewise. 1835 * error.c (dump_expr): Use CASE_CONVERT. 1836 * class.c (fixed_type_or_null): Likewise. 1837 18382008-05-11 Volker Reichelt <v.reichelt@netcologne.de> 1839 1840 * parser.c (cp_parser_omp_clause_reduction): Add missing "expected" 1841 in error message. 1842 (cp_parser_omp_clause_schedule): Remove superfluous "expected" 1843 in error message. 1844 18452008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com> 1846 1847 * decl.c (duplicate_decls): Merge in DECL_PURE_P, TREE_READONLY, 1848 DECL_LOOPING_CONST_OR_PURE_P attributes. 1849 * rtti.c (build_dynamic_cast_1): Rename DECL_IS_PURE to 1850 DECL_PURE_P. 1851 18522008-05-02 Simon Baldwin <simonb@google.com> 1853 1854 PR bootstrap/36108 1855 * typeck.c (build_array_ref): Remove warn_array_subscript_range. 1856 18572008-05-01 Simon Baldwin <simonb@google.com> 1858 1859 * typeck.c (build_array_ref): Call warn_array_subscript_range. 1860 18612008-04-30 Jakub Jelinek <jakub@redhat.com> 1862 1863 PR c++/35986 1864 * pt.c (more_specialized_fn): Stop the loop even if there are no 1865 arguments before ellipsis. 1866 18672008-04-29 Jakub Jelinek <jakub@redhat.com> 1868 1869 PR c++/35650 1870 * parser.c (cp_parser_lookup_name): Look through single function 1871 OVERLOAD. 1872 1873 PR c++/35987 1874 * typeck.c (cp_build_modify_expr) <case PREINCREMENT_EXPR>: Don't build 1875 COMPOUND_EXPR if the second argument would be error_mark_node. 1876 18772008-04-28 Jason Merrill <jason@redhat.com> 1878 Liu Guanwei <liu_gw@163.com> 1879 1880 PR c++/57 1881 * parser.c (cp_parser_parameter_declaration): Handle < ambiguity 1882 in default arguments. 1883 18842008-04-25 Jan Hubicka <jh@suse.cz> 1885 1886 * typeck.c (check_return_expr): Update. 1887 * decl.c (start_preparsed_function): Update. 1888 * method.c (use_thunk): Update. 1889 18902008-04-24 Jakub Jelinek <jakub@redhat.com> 1891 1892 PR c++/35758 1893 * cp-tree.h (cp_reconstruct_complex_type): New prototype. 1894 * cp-objcp-common.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define. 1895 * decl2.c (is_late_template_attribute): Only make vector_size 1896 late tmpl attribute if argument is type or value dependent. 1897 (cp_reconstruct_complex_type): New function. 1898 18992008-04-24 Richard Guenther <rguenther@suse.de> 1900 1901 * typeck.c (cp_build_function_call): Call 1902 check_builtin_function_arguments. 1903 19042008-04-23 Paolo Bonzini <bonzini@gnu.org> 1905 1906 * typeck.c (get_member_function_from_ptrfunc): Don't set TREE_INVARIANT. 1907 (build_ptrmemfunc1): Don't set TREE_INVARIANT. 1908 * init.c (build_zero_init): Don't set TREE_INVARIANT. 1909 * class.c (build_base_path): Don't set TREE_INVARIANT. 1910 (build_vtbl_ref_1): Don't set TREE_INVARIANT. 1911 (build_vtbl_initializer): Don't set TREE_INVARIANT. 1912 * decl.c (build_enumerator): Don't set TREE_INVARIANT. 1913 * rtti.c (tinfo_base_init): Don't set TREE_INVARIANT. 1914 (generic_initializer): Don't set TREE_INVARIANT. 1915 (ptr_initializer): Don't set TREE_INVARIANT. 1916 (ptm_initializer): Don't set TREE_INVARIANT. 1917 (class_initializer): Don't set TREE_INVARIANT. 1918 * typeck2.c (process_init_constructor): Don't set TREE_INVARIANT. 1919 * pt.c (push_inline_template_parms_recursive): Don't set TREE_INVARIANT. 1920 (build_template_parm_index): Don't set TREE_INVARIANT. 1921 (reduce_template_parm_level): Don't set TREE_INVARIANT. 1922 (process_template_parm): Don't set TREE_INVARIANT. 1923 19242008-04-22 Jason Merrill <jason@redhat.com> 1925 1926 PR c++/35316 1927 * semantics.c (finish_decltype_type): Check DECL_BIT_FIELD_TYPE 1928 to see if DECL_BIT_FIELD_TYPE should be used, not some other flag. 1929 * typeck.c (is_bitfield_expr_with_lowered_type): Likewise. 1930 19312008-04-22 Jakub Jelinek <jakub@redhat.com> 1932 1933 PR c++/35747 1934 * semantics.c (finish_stmt_expr): Call pop_stmt_list even if the stmt 1935 expression is errorneous. 1936 19372008-04-21 Jason Merrill <jason@redhat.com> 1938 1939 PR c++/35325 1940 * tree.c (cp_tree_equal): Handle FIXED_CST. 1941 1942 PR c++/35678 1943 * pt.c (template_template_parm_bindings_ok_p): Set 1944 processing_template_decl while in this function. 1945 19462008-04-18 Kris Van Hees <kris.van.hees@oracle.com> 1947 1948 * cvt.c (type_promotes_to): Support char16_t and char32_t. 1949 * decl.c (grokdeclarator): Disallow signed/unsigned/short/long on 1950 char16_t and char32_t. 1951 * lex.c (reswords): Add char16_t and char32_t (for c++0x). 1952 * mangle.c (write_builtin_type): Mangle char16_t/char32_t as vendor 1953 extended builtin type "u8char{16,32}_t". 1954 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Support 1955 RID_CHAR{16,32}. 1956 (cp_lexer_print_token): Support CPP_STRING{16,32}. 1957 (cp_parser_is_string_literal): Idem. 1958 (cp_parser_string_literal): Idem. 1959 (cp_parser_primary_expression): Support CPP_CHAR{16,32} and 1960 CPP_STRING{16,32}. 1961 (cp_parser_simple_type_specifier): Support RID_CHAR{16,32}. 1962 * tree.c (char_type_p): Support char16_t and char32_t as char types. 1963 * typeck.c (string_conv_p): Support char16_t and char32_t. 1964 19652008-04-17 Jason Merrill <jason@redhat.com> 1966 1967 PR c++/35773 1968 * call.c (build_user_type_conversion_1): Represent second step of 1969 copy-init with an rvalue conversion. 1970 (convert_like_real) [ck_user]: Don't implicitly add it here. 1971 19722008-04-15 Jakub Jelinek <jakub@redhat.com> 1973 1974 PR c/35751 1975 * decl.c (layout_var_decl): If extern or static var has variable 1976 size, set TREE_TYPE (decl) to error_mark_node. 1977 19782008-04-16 Danny Smith <dannysmith@users.sourceforge.net> 1979 1980 PR target/35921 1981 * optimize.c (maybe_clone_body): Copy DECL_DLLIMPORT_P flag 1982 to clone. 1983 19842008-04-09 Jason Merrill <jason@redhat.com> 1985 1986 PR c++/35708 1987 * semantics.c (finish_compound_literal): Return a TARGET_EXPR, 1988 not a pushed variable. 1989 19902008-04-09 Volker Reichelt <v.reichelt@netcologne.de> 1991 1992 * call.c (build_op_delete_call): Fix quotation in warning message. 1993 * decl.c (grokdeclarator): Quote keyword in error message. 1994 * pt.c (check_for_bare_parameter_packs): Fix quotation in error 1995 message. 1996 1997 * parser.c (cp_parser_check_type_definition): Print error string 1998 directly rather than using "%s". 1999 (cp_parser_postfix_expression): Fix quotation. 2000 (cp_parser_decltype): Likewise. 2001 (cp_parser_sizeof_operand): Fix quotation. Simplify. 2002 2003 * parser.c (cp_parser_non_integral_constant_expression): Build error 2004 message with CONCAT rather than using "%s". 2005 (cp_parser_primary_expression): Fix quotation. 2006 (cp_parser_postfix_expression): Likewise. 2007 (cp_parser_postfix_dot_deref_expression): Likewise. 2008 (cp_parser_unary_expression): Likewise. 2009 (cp_parser_new_expression): Likewise. 2010 (cp_parser_delete_expression): Likewise. 2011 2012 * parser.c (cp_parser_asm_specification_opt): Print CPP_CLOSE_PAREN 2013 as `)', not as `('. Fix quotation. 2014 (cp_parser_consume_semicolon_at_end_of_statement): Fix quotation. 2015 (cp_parser_primary_expression): Likewise. 2016 (cp_parser_nested_name_specifier_opt): Likewise. 2017 (cp_parser_postfix_expression): Likewise. 2018 (cp_parser_postfix_open_square_expression): Likewise. 2019 (cp_parser_parenthesized_expression_list): Likewise. 2020 (cp_parser_pseudo_destructor_name): Likewise. 2021 (cp_parser_new_expression): Likewise. 2022 (cp_parser_direct_new_declarator): Likewise. 2023 (cp_parser_delete_expression): Likewise. 2024 (cp_parser_cast_expression): Likewise. 2025 (cp_parser_question_colon_clause): Likewise. 2026 (cp_parser_builtin_offsetof): Likewise. 2027 (cp_parser_trait_expr): Likewise. 2028 (cp_parser_label_for_labeled_statement): Likewise. 2029 (cp_parser_compound_statement): Likewise. 2030 (cp_parser_selection_statement): Likewise. 2031 (cp_parser_condition): Likewise. 2032 (cp_parser_iteration_statement): Likewise. 2033 (cp_parser_already_scoped_statement): Likewise. 2034 (cp_parser_simple_declaration): Likewise. 2035 (cp_parser_linkage_specification): Likewise. 2036 (cp_parser_static_assert): Likewise. 2037 (cp_parser_decltype): Likewise. 2038 (cp_parser_conversion_function_id): Likewise. 2039 (cp_parser_operator_function_id): Likewise. 2040 (cp_parser_operator): Likewise. 2041 (cp_parser_type_parameter): Likewise. 2042 (cp_parser_template_id): Likewise. 2043 (cp_parser_explicit_instantiation): Likewise. 2044 (cp_parser_explicit_specialization): Likewise. 2045 (cp_parser_enum_specifier): Likewise. 2046 (cp_parser_namespace_definition): Likewise. 2047 (cp_parser_namespace_alias_definition): Likewise. 2048 (cp_parser_using_declaration): Likewise. 2049 (cp_parser_using_directive): Likewise. 2050 (cp_parser_asm_definition): Likewise. 2051 (cp_parser_direct_declarator): Likewise. 2052 (cp_parser_ptr_operator): Likewise. 2053 (cp_parser_parameter_declaration_clause): Likewise. 2054 (cp_parser_initializer_clause): Likewise. 2055 (cp_parser_class_specifier): Likewise. 2056 (cp_parser_member_specification_opt): Likewise. 2057 (cp_parser_member_declaration): Likewise. 2058 (cp_parser_pure_specifier): Likewise. 2059 (cp_parser_constant_initializer): Likewise. 2060 (cp_parser_base_clause): Likewise. 2061 (cp_parser_exception_specification_opt): Likewise. 2062 (cp_parser_try_block): Likewise. 2063 (cp_parser_function_try_block): Likewise. 2064 (cp_parser_handler): Likewise. 2065 (cp_parser_throw_expression): Likewise. 2066 (cp_parser_asm_operand_list): Likewise. 2067 (cp_parser_attributes_opt): Likewise. 2068 (cp_parser_label_declaration): Likewise. 2069 (cp_parser_constructor_declarator_p): Likewise. 2070 (cp_parser_template_declaration_after_export): Likewise. 2071 (cp_parser_single_declaration): Likewise. 2072 (cp_parser_objc_message_expression): Likewise. 2073 (cp_parser_objc_message_args): Likewise. 2074 (cp_parser_objc_encode_expression): Likewise. 2075 (cp_parser_objc_defs_expression): Likewise. 2076 (cp_parser_objc_protocol_expression): Likewise. 2077 (cp_parser_objc_selector_expression): Likewise. 2078 (cp_parser_objc_protocol_refs_opt): Likewise. 2079 (cp_parser_objc_typename): Likewise. 2080 (cp_parser_objc_method_keyword_params): Likewise. 2081 (cp_parser_objc_superclass_or_category): Likewise. 2082 (cp_parser_objc_try_catch_finally_statement): Likewise. 2083 (cp_parser_objc_synchronized_statement): Likewise. 2084 (cp_parser_objc_throw_statement): Likewise. 2085 (cp_parser_omp_var_list_no_open): Likewise. 2086 (cp_parser_omp_clause_default): Likewise. 2087 (cp_parser_omp_clause_if): Likewise. 2088 (cp_parser_omp_clause_num_threads): Likewise. 2089 (cp_parser_omp_clause_reduction): Likewise. 2090 (cp_parser_omp_clause_schedule): Likewise. 2091 (cp_parser_omp_critical): Likewise. 2092 (cp_parser_omp_for_loop): Likewise. 2093 (cp_parser_omp_sections_scope): Likewise. 2094 2095 * parser.c (cp_parser_template_parameter_list): Simplify. 2096 20972008-04-07 James E. Wilson <wilson@tuliptree.org> 2098 2099 * pt.c (tsubst_copy, case SIZEOF_EXPR): Initialize len. 2100 21012008-04-07 Jason Merrill <jason@redhat.com> 2102 2103 PR c++/35734 2104 * class.c (type_has_user_nondefault_constructor): A template 2105 counts as a nondefault constructor. 2106 21072008-04-04 Paolo Bonzini <bonzini@gnu.org> 2108 2109 * decl.c (cxx_push_function_context): Delete. 2110 (cxx_pop_function_context): Delete. 2111 (start_preparsed_function): Merge cxx_push_function_context (!f->decl 2112 code only). 2113 * cp-objcp-common.h (LANG_HOOKS_FUNCTION_INIT, 2114 LANG_HOOKS_FUNCTION_FINAL): Delete. 2115 (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P): Rename to 2116 LANG_HOOKS_MISSING_NORETURN_OK_P. 2117 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context): 2118 Delete prototype. 2119 * semantics.c (current_stmt_tree): Fix comment. 2120 21212008-04-03 Jakub Jelinek <jakub@redhat.com> 2122 2123 PR c++/35741 2124 * semantics.c (finish_offsetof): Undo effect of convert_from_reference 2125 before calling fold_offsetof. 2126 21272008-04-03 Tom Tromey <tromey@redhat.com> 2128 2129 * Make-lang.in (c++_OBJS): New variable. 2130 21312008-04-03 Paolo Bonzini <bonzini@gnu.org> 2132 2133 * optimize.c (clone_body): New, from tree-inline.c. 2134 21352008-04-03 Paolo Bonzini <bonzini@gnu.org> 2136 2137 * method.c (synthesize_method): Use {push,pop}_function_context. 2138 * name-lookup.c (push_to_top_level): Likewise. 2139 * parser.c (cp_parser_late_parsing_for_member): Likewise. 2140 21412008-03-30 Volker Reichelt <v.reichelt@netcologne.de> 2142 2143 PR c++/35578 2144 * parser.c (cp_parser_decl_specifier_seq): Add location to error 2145 message. 2146 21472008-03-27 Tom Tromey <tromey@redhat.com> 2148 2149 * Make-lang.in: Revert automatic dependency patch. 2150 21512008-03-27 Douglas Gregor <doug.gregor@gmail.com> 2152 2153 PR obj-c++/35704 2154 * typeck.c (build_x_compound_expr): Use cp_build_compound_expr. 2155 (build_compound_expr): New, for compatibility with C 2156 build_compound_expr. 2157 (cp_build_compound_expr): Renamed from build_compound_expr. 2158 (build_c_cast): New, for compatibility with C build_c_cast. 2159 (cp_build_c_cast): Renamed from build_c_cast. 2160 * init.c (build_vec_delete_1): Fix calls to build_compound_expr. 2161 * decl.c (cxx_maybe_build_cleanup): Ditto. 2162 * cp-tree.h (build_compound_expr): Add C-compatibile prototype. 2163 (cp_build_compound_expr): Renamed from build_compound_expr. 2164 (build_c_cast): Add C-compatible prototype. 2165 (cp_build_c_cast): Renamed from build_c_cast. 2166 * typeck2.c (build_functional_cast): Use cp_build_c_cast. 2167 * parser.c (cp_parser_cast_expression): Fix call to build_c_cast. 2168 21692008-03-27 Douglas Gregor <doug.gregor@gmail.com> 2170 2171 * pt.c (tsubst_copy) <case SIZEOF_EXPR>: Cope with 2172 tsubst_pack_expansion returning a pack expansion, or a TREE_VEC 2173 ending in a pack expansion, both of which can occur when 2174 substituting into a nested template. 2175 (tsubst_copy_and_build) <case SIZEOF_EXPR>: When we're 2176 instantiating the sizeof...(X) form, make tsubst_copy do the work. 2177 * parser.c (cp_parser_template_parameter): Deal with unnamed 2178 non-type template parameter packs identified by pack expansions in 2179 the parameter type. 2180 21812008-03-26 Jakub Jelinek <jakub@redhat.com> 2182 2183 PR c++/35546 2184 * pt.c (apply_late_template_attributes): Don't call tsubst on 2185 first attribute argument if it is IDENTIFIER_NODE. 2186 2187 PR c++/35332 2188 * error.c (dump_expr): Pass {,UN}ORDERED_EXPR, UN{LT,LE,GT,GE,EQ}_EXPR 2189 and LTGT_EXPR to pp_expression. 2190 21912008-03-26 Douglas Gregor <doug.gregor@gmail.com> 2192 2193 * pt.c (coerce_template_template_parm): Moved the body of the loop 2194 of coerce_template_template_parms here, to make iteration over a 2195 template argument pack simpler. 2196 Also, allow matching of a template parameter pack in the template 2197 template parameter to a template parameter in the template 2198 template argument. 2199 (coerce_template_template_parms): Deal with variadic template 2200 template parameters. Use coerce_template_template_parm. 2201 (unify): Make sure we coerce the template template argument's 2202 template arguments to the template template parameter's template 2203 parameters, not the other way around. 2204 22052008-03-25 Tom Tromey <tromey@redhat.com> 2206 2207 * Make-lang.in: Remove .o targets. 2208 (cp/g++spec.o): Moved to cp/. Reduce to variable setting. 2209 (GXX_OBJS): Update. 2210 (c++_OBJS): New variable. 2211 (CXX_TREE_H, CXX_PRETTY_PRINT_H): Remove. 2212 22132008-03-25 Douglas Gregor <doug.gregor@gmail.com> 2214 2215 * typeck.c (composite_pointer_type_r): Add SFINAE support. 2216 (composite_pointer_type): Ditto. 2217 (common_type): Fix call to composite_pointer_type. 2218 (cxx_sizeof_nowarn): New; used to be a macro. 2219 (cxx_sizeof_expr): Add SFINAE support. 2220 (cxx_alignof_expr): Ditto. 2221 (decay_conversion): Fix calls for SFINAE support. 2222 (rationalize_conditional_expr): Add SFINAE support. 2223 (build_class_member_access_expr): Ditto. 2224 (finish_class_member_access_expr): Ditto. 2225 (build_x_indirect_ref): Ditto. 2226 (build_indirect_ref): Original version renamed to 2227 cp_build_indirect_ref; new version provides a bridge from 2228 c-common. 2229 (cp_build_indirect_ref): Was build_indirect_ref; added SFINAE 2230 support. 2231 (get_member_function_from_ptrfunc): Fix calls for SFINAE support. 2232 (build_function_call): Original version renamed to 2233 cp_build_function_call; new version provides a bridge from 2234 c-common. 2235 (cp_build_function_call): Was build_function_call; added SFINAE 2236 support. 2237 (convert_arguments): Add SFINAE support. 2238 (build_x_binary_op): Ditto. 2239 (build_binary_op): Original version renamed to cp_build_binary_op; 2240 new version provides a bridge from c-common. 2241 (cp_build_binary_op): Was build_binary_op; added SFINAE support. 2242 (pointer_diff): Fix calls for SFINAE. 2243 (build_x_unary_op): Add SFINAE support. 2244 (condition_conversion): Fix calls for SFINAE. 2245 (build_unary_op): Original version renamed to cp_build_unary_op; 2246 new version provides a bridge from c-common. 2247 (cp_build_unary_op): Was build_unary_op; added SFINAE support. 2248 (unary_complex_lvalue): Fix calls for SFINAE. 2249 (build_x_conditional_expr): Add SFINAE support. 2250 (build_x_compound_expr_from_list): Fix calls for SFINAE. 2251 (build_x_compound_expr): Add SFINAE support. 2252 (convert_ptrmem): Fix calls for SFINAE. 2253 (build_static_cast_1): Add SFINAE support. 2254 (build_static_cast): Ditto. 2255 (build_reinterpret_cast_1): Ditto. 2256 (build_reinterpret_cast): Ditto. 2257 (build_const_cast_1): Ditto. 2258 (build_const_cast): Ditto. 2259 (build_c_cast): Ditto. 2260 (build_modify_expr): Original version renamed to 2261 cp_build_modify_expr; new version provides a bridge from c-common. 2262 (cp_build_modify_expr): Was build_modify_expr; added SFINAE 2263 support. 2264 (build_x_modify_expr): Add SFINAE support. 2265 (build_ptrmemfunc): Fix calls for SFINAE. 2266 (convert_for_assignment): Add SFINAE support. 2267 (convert_for_initialization): Ditto. 2268 (check_return_expr): Fix calls for SFINAE. 2269 (lvalue_or_else): Add SFINAE support. 2270 * init.c (perform_member_init): Fix calls for SFINAE. 2271 (emit_mem_initializers): Ditto. 2272 (expand_virtual_init): Ditto. 2273 (expand_cleanup_for_base): Ditto. 2274 (build_aggr_init): Add SFINAE support. 2275 (expand_default_init): Ditto. 2276 (expand_aggr_init_1): Fix calls for SFINAE. 2277 (build_offset_ref): Ditto. 2278 (build_new_1): Add SFINAE support. 2279 (build_new): Ditto. 2280 (build_vec_delete_1): Fix calls for SFINAE. 2281 (get_temp_regvar): Ditto. 2282 (build_vec_init): Add SFINAE support. 2283 (build_dtor_call): Fix calls for SFINAE. 2284 (build_delete): Ditto. 2285 (push_base_cleanups): Ditto. 2286 (build_vec_delete_1): Ditto. 2287 * class.c (build_base_path): Fix calls for SFINAE. 2288 (build_simple_base_path): Ditto. 2289 (convert_to_base_statically): Ditto. 2290 (build_vfn_ref): Ditto. 2291 (resolve_address_of_overloaded_function): Ditto. 2292 * decl.c (check_initializer): Fix calls for SFINAE. 2293 (register_dtor_fn): Ditto. 2294 (compute_array_index_type): Ditto. 2295 (finish_enum): Ditto. 2296 (start_preparsed_function): Ditto. 2297 (cxx_maybe_build_cleanup): Ditto. 2298 * call.c (convert_like): Add COMPLAIN argument. 2299 (convert_like_with_context): Ditto. 2300 (build_this): Fix calls for SFINAE. 2301 (build_user_type_conversion): Ditto. 2302 (resolve_args): Ditto. 2303 (build_new_function_call): Add SFINAE support. 2304 (build_operator_new_call): Fix calls for SFINAE. 2305 (build_object_call): Add SFINAE support. 2306 (build_conditional_expr): Ditto. 2307 (build_new_op): Ditto. 2308 (build_op_delete_call): Fix calls for SFINAE. 2309 (build_temp): Ditto. 2310 (convert_like_real): Add SFINAE support. 2311 (build_x_va_arg): Fix calls for SFINAE. 2312 (convert_default_arg): Ditto. 2313 (build_over_call): Add SFINAE support. 2314 (build_java_interface_fn_ref): Fix calls for SFINAE. 2315 (build_special_member_call): Add SFINAE support. 2316 (build_new_method_call): Ditto. 2317 (perform_implicit_conversion): Ditto. 2318 (perform_direct_initialization_if_possible): Ditto. 2319 (initialize_reference): Fix calls for SFINAE. 2320 * method.c (do_build_assign_ref): Fix calls for SFINAE. 2321 * rtti.c (build_headof): Fix calls for SFINAE. 2322 (get_tinfo_decl_dynamic): Ditto. 2323 (get_typeid): Ditto. 2324 (build_dynamic_cast_1): Add SFINAE support. 2325 (build_dynamic_cast): Ditto. 2326 (tinfo_base_init): Fix calls for SFINAE. 2327 * except.c (do_get_exception_ptr): Fix calls for SFINAE. 2328 (do_end_catch): Ditto. 2329 (initialize_handler_parm): Ditto. 2330 (expand_start_catch_block): Ditto. 2331 (do_allocate_exception): Ditto. 2332 (do_free_exception): Ditto. 2333 (build_throw): Ditto. 2334 * cvt.c (build_up_reference): Fix calls for SFINAE. 2335 (convert_to_reference): Ditto. 2336 (ocp_convert): Ditto. 2337 (convert_to_void): Add SFINAE support. 2338 * tree.c (build_dummy_object): Fix calls for SFINAE. 2339 (stabilize_expr): Ditto. 2340 * cp-tree.h (build_conditional_expr): Add tsubst_flags_t 2341 parameter. 2342 (build_new_method_call): Ditto. 2343 (build_special_member_call): Ditto. 2344 (build_new_op): Ditto. 2345 (perform_implicit_conversion): Ditto. 2346 (perform_direct_initialization_if_possible): Ditto. 2347 (convert_to_void): Ditto. 2348 (build_aggr_init): Ditto. 2349 (build_new): Ditto. 2350 (build_vec_init): Ditto. 2351 (build_dynamic_cast): Ditto. 2352 (finish_call_expr): Ditto 2353 (cxx_sizeof_or_alignof_expr): Add COMPLAIN parameter. 2354 (cxx_sizeof_nowarn): Remove macro; add function declaration. 2355 (build_class_member_access_expr): Add tsubst_flags_t parameter. 2356 (finish_class_member_access_expr): Ditto. 2357 (build_x_indirect_ref): Ditto. 2358 (cp_build_indirect_ref): New. 2359 (cp_build_function_call): Add tsubst_flags_t parameter. 2360 (build_x_unary_op): Ditto. 2361 (cp_build_unary_op): New. 2362 (build_x_conditional_expr): Add tsubst_flags_t parameter. 2363 (build_x_compound_expr): Ditto. 2364 (build_compound_expr): Ditto. 2365 (build_static_cast): Ditto. 2366 (build_reinterpret_cast): Ditto. 2367 (build_const_cast): Ditto. 2368 (build_c_cast): Ditto. 2369 (build_x_modify_expr): Ditto. 2370 (cp_build_modify_expr): New. 2371 (convert_for_initialization): Add tsubst_flags_t parameter. 2372 (cp_build_binary_op): Remove macro; add function declaration. 2373 (invalid_nonstatic_memfn_p): Add tsubst_flags_t parameter. 2374 (lvalue_or_else): Ditto. 2375 (build_functional_cast): Ditto. 2376 * typeck2.c (digest_init): Fix calls for SFINAE. 2377 (process_init_constructor_array): Ditto. 2378 (process_init_constructor_record): Ditto. 2379 (build_x_arrow): Ditto. 2380 (build_m_component_ref): Ditto. 2381 (build_functional_cast): Add SFINAE support. 2382 * pt.c (tsubst_copy_and_build): Add (more) SFINAE support. 2383 * semantics.c (simplify_loop_decl_cond): Fix calls for SFINAE. 2384 (finish_expr_stmt): Ditto. 2385 (finish_for_expr): Ditto. 2386 (finish_asm_stmt): Ditto. 2387 (finish_non_static_data_member): Ditto. 2388 (finish_qualified_id_expr): Ditto. 2389 (finish_call_expr): Add SFINAE support. 2390 (finish_increment_expr): Fix calls for SFINAE. 2391 (finish_unary_op_expr): Ditto. 2392 (simplify_aggr_init_expr): Ditto. 2393 (finish_omp_clauses): Ditto. 2394 (finish_omp_for): Ditto. 2395 (finish_omp_barrier): Ditto. 2396 (finish_omo_flush): Ditto. 2397 * decl2.c (grok_array_decl): Fix calls or SFINAE. 2398 (build_anon_union_vars): Ditto. 2399 (get_guard_cond): Ditto. 2400 (set_guard): Ditto. 2401 (one_static_initialization_or_destruction): Ditto. 2402 (do_static_initialization_or_destruction): Ditto. 2403 (generate_ctor_or_dtor_function): Ditto. 2404 (build_offset_ref_call_from_tree): Ditto. 2405 * parser.c (cp_parser_postfix_expression): Fix calls for SFINAE. 2406 (cp_parser_postfix_dot_deref_expression): Ditto. 2407 (cp_parser_unary_expression): Ditto. 2408 (cp_parser_new_expression): Ditto. 2409 (cp_parser_cast_expression): Ditto. 2410 (cp_parser_binary_expression): Ditto. 2411 (cp_parser_question_colon_clause): Ditto. 2412 (cp_parser_assignment_expression): Ditto. 2413 (cp_parser_expression): Ditto. 2414 (cp_parser_builtin_offsetof): Ditto. 2415 (cp_parser_template_argument): Ditto. 2416 (cp_parser_functional_cast): Ditto. 2417 24182008-03-24 Tom Tromey <tromey@redhat.com> 2419 2420 * lex.c (handle_pragma_interface): Don't copy the filename. 2421 (handle_pragma_implementation): Copy filename using xstrdup. 2422 24232008-03-21 Paolo Carlini <pcarlini@suse.de> 2424 2425 * cp-tree.h (IS_AGGR_TYPE): Rename to MAYBE_CLASS_TYPE_P. 2426 (SET_IS_AGGR_TYPE): Rename to SET_CLASS_TYPE_P. 2427 (IS_AGGR_TYPE_CODE): Rename to RECORD_OR_UNION_CODE_P. 2428 (PROMOTES_TO_AGGR_TYPE): Remove. 2429 (CLASS_TYPE_P, TYPE_NON_AGGREGATE_CLASS): Adjust. 2430 * typeck.c (unary_complex_lvalue, build_modify_expr, 2431 convert_for_initialization): Adjust. 2432 * init.c (is_aggr_type): Remove. 2433 (is_class_type): Add. 2434 (build_offset_ref, build_new_1, build_vec_delete_1, build_vec_init, 2435 build_delete): Adjust. 2436 * lex.c (make_aggr_type): Remove. 2437 (make_class_type): Add. 2438 (cxx_make_type): Adjust. 2439 * class.c (finish_struct_1, fixed_type_or_null, is_empty_class): 2440 Adjust. 2441 * decl.c (build_typename_type, make_typename_type, 2442 make_unbound_class_template, cxx_init_decl_processing, 2443 check_tag_decl, groktypename, start_decl_1, layout_var_decl, 2444 check_initializer, cp_finish_decl, build_ptrmemfunc_type, grokparms, 2445 grok_op_properties, xref_tag, check_function_type): Adjust. 2446 * call.c (check_dtor_name, standard_conversion, implicit_conversion, 2447 add_builtin_candidate, add_builtin_candidates, 2448 build_user_type_conversion_1, convert_like_real, build_cxx_call, 2449 is_subseq, compare_ics): Adjust. 2450 * method.c (use_thunk): Adjust. 2451 * rtti.c (build_dynamic_cast_1, create_pseudo_type_info, 2452 create_tinfo_types): Adjust. 2453 * cvt.c (cp_convert_to_pointer, convert_to_pointer_force, 2454 build_up_reference, convert_to_reference, convert_from_reference, 2455 ocp_convert, build_expr_type_conversion): Adjust. 2456 * tree.c (bind_template_template_parm, error_type): Adjust. 2457 * dump.c (cp_dump_tree): Adjust. 2458 * search.c (lookup_member): Adjust. 2459 * friend.c (make_friend_class, do_friend): Adjust. 2460 * typeck2.c (store_init_value, process_init_constructor_array, 2461 process_init_constructor_record, build_x_arrow, build_m_component_ref, 2462 build_functional_cast): Adjust. 2463 * pt.c (finish_member_template_decl, process_template_parm, 2464 lookup_template_class, tsubst_function_type, tsubst, 2465 tsubst_copy_and_build, get_template_base, bt_instantiate_type_proc): 2466 Adjust. 2467 * semantics.c (begin_class_definition, finish_base_specifier, 2468 finish_typeof, cxx_omp_predetermined_sharing, finish_decltype_type): 2469 Adjust. 2470 * name-lookup.c (constructor_name_p, push_overloaded_decl, 2471 do_class_using_decl, lookup_qualified_name, 2472 maybe_process_template_type_declaration): Adjust. 2473 * decl2.c (grok_array_decl, check_member_template, 2474 constrain_class_visibility): Adjust. 2475 * parser.c (cp_parser_class_name): Adjust. 2476 24772008-03-18 Paolo Bonzini <bonzini@gnu.org> 2478 2479 * cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. 2480 24812008-03-17 Jason Merrill <jason@redhat.com> 2482 2483 PR c++/35548 2484 * call.c (reference_binding): Check LOOKUP_NO_TEMP_BIND when binding 2485 a temp directly to a reference as per DR391. 2486 24872008-03-12 Richard Guenther <rguenther@suse.de> 2488 2489 PR c++/35469 2490 Revert: 2491 2008-02-04 Richard Guenther <rguenther@suse.de> 2492 2493 PR java/35035 2494 * decl.c (record_builtin_java_type): Make jboolean a 2495 integer type again where its mode doesn't match that of bool. 2496 2497 2008-01-25 Richard Guenther <rguenther@suse.de> 2498 2499 PR c++/33887 2500 * decl.c (record_builtin_java_type): Make __java_boolean 2501 a variant of bool. 2502 * typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check 2503 after TYPE_MAIN_VARIANT check. 2504 25052008-03-10 Jakub Jelinek <jakub@redhat.com> 2506 2507 PR c++/35328 2508 * semantics.c (finish_omp_clauses): Look through NOP_EXPR even 2509 if errorcount. 2510 2511 PR c++/35337 2512 * semantics.c (finish_omp_clauses): Use %qD instead of %qE for 2513 DECL_P in not a variable and appears more than once error messages. 2514 25152008-03-07 Paolo Bonzini <bonzini@gnu.org> 2516 2517 Revert: 2518 2519 2008-02-06 Douglas Gregor <doug.gregor@gmail.com> 2520 2521 PR c++/35049 2522 PR c++/35096 2523 * typeck.c (structural_comptypes): Call cp_comptypes. 2524 (comptypes): New; called from the C/C++ common bits to perform 2525 strict checks. 2526 (cp_comptypes): Renamed from comptypes, which is already used, 2527 with a different signature, by the C++ front end. 2528 (build_reinterpret_cast_1): Call cp_comptypes. 2529 (ptr_reasonably_similar): Ditto. 2530 * decl.c (decls_match): Ditto. 2531 * cvt.c (convert_to_reference): Ditto. 2532 * cp-tree.h (same_type_p): Ditto. 2533 (same_or_base_type_p): Ditto. 2534 (comptypes): Rename to cp_comptypes. 2535 * pt.c (canonical_type_parameter): Call cp_comptypes. 2536 25372008-03-07 Paolo Bonzini <bonzini@gnu.org> 2538 2539 * cp-objcp-common.c (cxx_types_compatible_p): Remove obsolete 2540 test for equivalence between pointer and references. 2541 25422008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2543 2544 PR 24924 2545 * class.c (finish_struct_anon): Use permerror instead of pedwarn. 2546 (check_field_decls): Likewise. 2547 (note_name_declared_in_class): Likewise. 2548 * call.c (build_new_op): Likewise. 2549 (convert_like_real): Likewise. 2550 (build_over_call): Likewise. 2551 * lex.c (unqualified_fn_lookup_error): Likewise. 2552 * parser.c (cp_parser_template_id): Likewise. 2553 * cvt.c (warn_ref_binding): Likewise. 2554 (convert_to_reference): Likewise. 2555 (ocp_convert): Likewise. 2556 (convert_to_void): Use error instead of pedwarn. 2557 * error.c (cp_cpp_error): Use pedantic_warning_kind. 2558 * decl.c (compute_array_index_type): Use constant_expression_error. 2559 25602008-03-01 Douglas Gregor <doug.gregor@gmail.com> 2561 2562 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Note 2563 that auto is either a storage class or a simple type specifier, 2564 depending on the dialect. 2565 (cp_parser_decl_specifier_seq): Complain about `auto' as a storage 2566 specifier in C++98 mode, error in C++0x mode (since we don't 2567 support auto as a type specifier, yet). 2568 (cp_parser_storage_class_specifier_opt): Don't treat `auto' as a 2569 storage specifier in C++0x mode. 2570 (cp_parser_simple_type_specifier): Parse `auto' as a 2571 simple-type-specifier, but error because we don't support it yet. 2572 25732008-02-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2574 2575 * parser.c (cp_parser_nonclass_name): New. 2576 (cp_parser_pseudo_destructor_name): Use it instead of 2577 cp_parser_type_name. 2578 (cp_parser_type_name): Move code to cp_parser_nonclass_name. 2579 25802008-02-29 Tom Tromey <tromey@redhat.com> 2581 2582 * parser.c (struct cp_token) <input_file_stack_index>: Remove. 2583 (cp_lexer_get_preprocessor_token): Update. 2584 (cp_lexer_set_source_position_from_token): Don't call 2585 restore_input_file_stack. 2586 * lex.c (cxx_init): Don't use push_srcloc or pop_srcloc. 2587 25882008-02-28 Richard Guenther <rguenther@suse.de> 2589 2590 Revert: 2591 2008-02-26 Richard Guenther <rguenther@suse.de> 2592 2593 * decl.c (duplicate_decls): Remove decl from global mapping 2594 before ggc_freeing it. 2595 25962008-02-27 Jakub Jelinek <jakub@redhat.com> 2597 2598 PR c++/35368 2599 * rtti.c: Include c-pragma.h. 2600 (push_abi_namespace, pop_abi_namespace): New functions. 2601 (build_dynamic_cast_1, tinfo_base_init, get_pseudo_ti_index, 2602 create_tinfo_types, emit_support_tinfos): Use them. 2603 * Make-lang.in (cp/rtti.o): Depend on $(C_PRAGMA_H). 2604 26052008-02-26 Jason Merrill <jason@redhat.com> 2606 2607 PR c++/35315 2608 * decl.c (grokdeclarator): Allow a typedef of an unnamed struct 2609 to name the struct for linkage purposes even if it has attributes. 2610 (start_decl): In that case, set ATTR_FLAG_TYPE_IN_PLACE. 2611 26122008-02-26 Tom Tromey <tromey@redhat.com> 2613 2614 * parser.c (eof_token): Remove old location code. 2615 (check_empty_body): Remove test of USE_MAPPED_LOCATION. 2616 * decl2.c (generate_ctor_or_dtor_function): Remove old location 2617 code. 2618 (cp_write_global_declarations): Likewise. 2619 * lex.c (cxx_init): Remove old location code. 2620 (handle_pragma_implementation): Remove test of 2621 USE_MAPPED_LOCATION. 2622 * pt.c (tsubst): Remove old location code. 2623 * error.c (cp_print_error_function): Remove test of 2624 USE_MAPPED_LOCATION. 2625 * decl.c (pop_label): Remove old location code. 2626 (finish_function): Likewise. 2627 26282008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2629 2630 PR 26264 2631 * call.c (magic_varargs_p): Remove BUILT_IN_STDARG_START. 2632 26332008-02-26 Richard Guenther <rguenther@suse.de> 2634 2635 * decl.c (duplicate_decls): Remove decl from global mapping 2636 before ggc_freeing it. 2637 26382008-02-26 Paolo Carlini <pcarlini@suse.de> 2639 2640 PR c++/35323 2641 * name-lookup.c (arg_assoc_type): Handle FIXED_POINT_TYPE. 2642 26432008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2644 2645 * typeck.c (build_class_member_access_expr): Add appropriate 2646 OPT_W* parameter to warning. 2647 (build_reinterpret_cast_1): Likewise. 2648 * name-lookup.c (push_overloaded_decl): Likewise. 2649 26502008-02-25 Paolo Carlini <pcarlini@suse.de> 2651 2652 PR c++/35333 2653 * error.c (dump_expr): Handle CONJ_EXPR. 2654 26552008-02-25 Paolo Carlini <pcarlini@suse.de> 2656 2657 PR c++/35338 2658 * error.c (dump_type): Handle FIXED_POINT_TYPE. 2659 (dump_expr): Handle FIXED_CST. 2660 26612008-02-24 Jason Merrill <jason@redhat.com> 2662 2663 * parser.c (cp_parser_declaration): Handle "inline namespace". 2664 (cp_parser_namespace_definition): Likewise. 2665 2666 PR c++/33486 2667 * name-lookup.c (arg_assoc_namespace): Look down into inline 2668 namespaces, too. 2669 26702008-02-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2671 2672 * typeck.c (check_for_casting_away_constness): Use 1 single 2673 argument, the type of cast, to decide what diagnostics generate. 2674 (build_static_cast_1): Remove unused code. Update call to 2675 check_for_casting_away_constness. 2676 (build_reinterpret_cast_1): Update call to 2677 check_for_casting_away_constness. 2678 (build_const_cast_1): Likewise. 2679 26802008-02-24 Paolo Carlini <pcarlini@suse.de> 2681 2682 * error.c (dump_expr): Don't deal directly with NEW_EXPR (and 2683 VEC_NEW_EXPR), forward to pp_expression. 2684 * cxx-pretty-print.c (pp_cxx_new_expression): Fix FIXME. 2685 26862008-02-24 Danny Smith <dannysmith@users.sourceforge.net> 2687 2688 PR c++/34749 2689 * friend.c (do_friend): Call cplus_decl_attributes earlier. 2690 26912008-02-22 Andrew Pinski <andrew_pinski@playstation.sony.com> 2692 2693 PR C++/34715 2694 * decl.c (duplicate_decls): Merge DECL_DISREGARD_INLINE_LIMITS for 2695 template decls' function decl. 2696 26972008-02-22 Paolo Carlini <pcarlini@suse.de> 2698 2699 PR c++/35282 2700 Revert: 2701 2008-02-14 Paolo Carlini <pcarlini@suse.de> 2702 2703 PR c++/28743 2704 * pt.c (determine_specialization): In case of function templates, 2705 when the type of DECL does not match FN there is no match. 2706 27072008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2708 2709 PR c/19999 2710 * typeck.c (build_binary_op): Warn about floating point 2711 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE. 2712 27132008-02-19 Jason Merrill <jason@redhat.com> 2714 2715 PR c++/34950 2716 * pt.c (resolve_overloaded_unification): Set processing_template_decl 2717 while we look for possible bindings. 2718 27192008-02-19 Jakub Jelinek <jakub@redhat.com> 2720 2721 PR c++/35028 2722 * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle vararg copy ctors. 2723 2724 PR c++/34964 2725 PR c++/35244 2726 * semantics.c (finish_omp_threadprivate): Do nothing for error_operand_p 2727 vars. Afterwards ensure v is VAR_DECL. 2728 2729 PR c++/35078 2730 * parser.c (cp_parser_omp_for_loop): If DECL has REFERENCE_TYPE, don't 2731 call cp_finish_decl. 2732 * semantics.c (finish_omp_for): Fail if DECL doesn't have integral type 2733 early. 2734 27352008-02-15 Douglas Gregor <doug.gregor@gmail.com> 2736 2737 PR c++/35023 2738 PR c++/35024 2739 PR c++/35026 2740 * pt.c (finish_member_template_decl): If the type in a TYPE_DECL 2741 is error_mark_node, return an error early. 2742 (find_parameter_packs_r): Pass the pointer set along to recursive 2743 calls of cp_walk_subtrees; don't try to manage the pointer set 2744 ourselves. 2745 (uses_parameter_packs): Pass the pointer set to cp_walk_tree. 2746 (make_pack_expansion): Ditto. 2747 (check_for_bare_parameter_packs): Ditto. Also, don't bother taking 2748 a second pass through the tree with find_parameter_packs_r; that 2749 second pass no longer does anything. 2750 (push_template_decl_real): If we have an erroneous declaration, 2751 set its type to error_mark_node before returning an error. 2752 27532008-02-14 Douglas Gregor <doug.gregor@gmail.com> 2754 2755 PR c++/34050 2756 * pt.c (tsubst_initializer_list): Deal with the use of 2757 VOID_TYPE_NODE to indicate value-initialization of the bases. 2758 27592008-02-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2760 Jason Merrill <jason@redhat.com> 2761 2762 PR c++/5645 2763 PR c++/11159 2764 * class.c (type_has_user_nondefault_constructor): New fn. 2765 * cp-tree.h: Declare it. 2766 * init.c (emit_mem_initializers): Use it for -W warning about 2767 missing base initializer. 2768 27692008-02-14 Paolo Carlini <pcarlini@suse.de> 2770 2771 PR c++/28743 2772 * pt.c (determine_specialization): In case of function templates, 2773 when the type of DECL does not match FN there is no match. 2774 27752008-02-13 Jakub Jelinek <jakub@redhat.com> 2776 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2777 2778 PR c++/35138 2779 * parser.c (cp_parser_pseudo_destructor_name): If next tokens 2780 are not identifier :: ~, return before calling cp_parser_type_name. 2781 27822008-02-13 Jason Merrill <jason@redhat.com> 2783 2784 PR c++/34962, c++/34937, c++/34939 2785 * decl2.c (is_late_template_attribute): Always defer attributes 2786 vector_size and weak. 2787 2788 PR c++/34774 2789 * pt.c (value_dependent_expression_p): Look into DECL_INITIAL 2790 of enumerators, too. 2791 27922008-02-12 Jason Merrill <jason@redhat.com> 2793 2794 PR c++/34824 2795 * call.c (convert_like_real): Pass LOOKUP_NO_CONVERSION to build_temp 2796 if we're doing conversions to call a user-defined conversion function. 2797 27982008-02-12 Steven Bosscher <steven@gcc.gnu.org> 2799 2800 PR c++/29048 2801 * semantics.c (finish_qualified_id_expr): Avoid duplicate access 2802 check here, too. 2803 28042008-02-12 Jakub Jelinek <jakub@redhat.com> 2805 2806 PR c++/34862 2807 * init.c (build_new_1): Don't create placement_expr before 2808 constructing alloc_call. Verify that the pointer is passed by 2809 value to operator new. 2810 28112008-02-11 Jason Merrill <jason@redhat.com> 2812 2813 PR c++/35097 2814 * pt.c (tsubst): Don't look up a template typedef in an explicit 2815 specialization. 2816 28172008-02-11 Douglas Gregor <doug.gregor@gmail.com> 2818 2819 PR c++/35113 2820 * tree.c (cp_build_qualified_type_real): When building a 2821 cv-qualified array type, build it as a unique type with 2822 build_cplus_array_type_1 and then adopt the unqualified type's 2823 main variant. 2824 28252008-02-11 Paolo Carlini <pcarlini@suse.de> 2826 2827 PR c++/35077 2828 * decl.c (groktypename): Check grokdeclarator return. 2829 28302008-02-10 Jason Merrill <jason@redhat.com> 2831 2832 PR c++/34094 2833 * decl2.c (cp_write_global_declarations): Don't write out static 2834 data members with DECL_IN_AGGR_P set. 2835 28362008-02-08 Jason Merrill <jason@redhat.com> 2837 2838 PR c++/35116 2839 * tree.c (build_target_expr_with_type): Handle void initializer. 2840 (bot_manip): Remap slot before recursing. 2841 28422008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2843 2844 PR other/35107 2845 * Make-lang.in (cc1plus-dummy, cc1plus): Add $(GMPLIBS). 2846 28472008-02-06 Alexandre Oliva <aoliva@redhat.com> 2848 2849 PR c++/35056 2850 * tree.c: Include tree-flow.h. 2851 (build_target_expr): Check type compatibility. 2852 * Make-lang.in (cp/tree.o): Depend on $(TREE_FLOW_H). 2853 * call.c (convert_like_real): Convert bitfield to expected type. 2854 28552008-02-06 Douglas Gregor <doug.gregor@gmail.com> 2856 2857 PR c++/35049 2858 PR c++/35096 2859 * typeck.c (structural_comptypes): Call cp_comptypes. 2860 (comptypes): New; called from the C/C++ common bits to perform 2861 strict checks. 2862 (cp_comptypes): Renamed from comptypes, which is already used, 2863 with a different signature, by the C++ front end. 2864 (build_reinterpret_cast_1): Call cp_comptypes. 2865 (ptr_reasonably_similar): Ditto. 2866 * decl.c (decls_match): Ditto. 2867 * cvt.c (convert_to_reference): Ditto. 2868 * cp-tree.h (same_type_p): Ditto. 2869 (same_or_base_type_p): Ditto. 2870 (comptypes): Rename to cp_comptypes. 2871 * pt.c (canonical_type_parameter): Call cp_comptypes. 2872 28732008-02-05 Jakub Jelinek <jakub@redhat.com> 2874 2875 PR c++/33553 2876 * pt.c (tsubst) <case INTEGER_TYPE>: Don't issue error if max is 2877 value dependent expression. 2878 28792008-02-05 Douglas Gregor <doug.gregor@gmail.com> 2880 2881 PR c++/35074 2882 * decl2.c (save_template_attributes): When we're modifying the 2883 TYPE_MAIN_VARIANT to add new attributes, be sure to also modify 2884 all of the other variants to add those same attributes. Otherwise, 2885 the main variant will be inconsistent with those other variants. 2886 28872008-02-04 Richard Guenther <rguenther@suse.de> 2888 2889 PR java/35035 2890 * decl.c (record_builtin_java_type): Make jboolean a 2891 integer type again where its mode doesn't match that of bool. 2892 28932008-02-02 Jason Merrill <jason@redhat.com> 2894 Mark Mitchell <mark@codesourcery.com> 2895 2896 PR c++/33916 2897 * init.c (build_value_init_1): New function. 2898 (build_value_init): New function. 2899 * typeck2.c (build_functional_cast): Call it. 2900 * cp-gimplify.c (cp_gimplify_init_expr): Handle its output. 2901 2902 * cp-tree.h (TYPE_HAS_USER_CONSTRUCTOR): Rename from 2903 TYPE_HAS_CONSTRUCTOR. 2904 * class.c (finish_struct_bits, maybe_warn_about_overly_private_class, 2905 add_implicitly_declared_members): Adjust. 2906 (check_field_decls): Adjust. Remove warnings about reference/const 2907 in class without constructor. 2908 (check_bases_and_members): Adjust. Give those warnings here instead. 2909 * decl.c (fixup_anonymous_aggr): Adjust. 2910 (check_initializer): Adjust, clarify logic slightly. 2911 (grok_special_member_properties): Adjust, only set if user-provided. 2912 * rtti.c (create_tinfo_types): Don't set. 2913 * cvt.c (ocp_convert): Remove exception for vtable_entry_type et al. 2914 Use same_type_ignoring_top_level_qualifiers_p. 2915 * pt.c (check_explicit_specialization): Adjust. 2916 (instantiate_class_template): Adjust. 2917 29182008-01-31 Douglas Gregor <doug.gregor@gmail.com> 2919 Jakub Jelinek <jakub@redhat.com> 2920 2921 PR c++/34935 2922 PR c++/34936 2923 * typeck.c (structural_comptypes): Handle comparisons of 2924 VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and 2925 REAL_TYPE nodes. 2926 * mangle.c (write_builtin_type): Map down to the canonical type, 2927 which will be one of the predefined type nodes. 2928 29292008-01-29 Michael Meissner <michael.meissner@amd.com> 2930 2931 PR 35004 2932 * cp-tree.h (struct full_lang_decl): Make tree_code bitfield 16 2933 bits to allow for expansion of the number of middle end tree 2934 codes. 2935 29362008-01-29 Douglas Gregor <doug.gregor@gmail.com> 2937 2938 PR c++/34055 2939 PR c++/34103 2940 PR c++/34219 2941 PR c++/34606 2942 PR c++/34753 2943 PR c++/34754 2944 PR c++/34755 2945 PR c++/34919 2946 PR c++/34961 2947 * typeck.c (check_return_expr): Tweak call to 2948 check_for_bare_parameter_packs. 2949 * class.c (add_method): Be careful with error_mark_nodes. 2950 * cp-tree.h (check_for_bare_parameter_packs): Remove "*" from 2951 signature. 2952 * pt.c (struct find_parameter_pack_data): Remove 2953 SET_PACKS_TO_ERROR. 2954 (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR. 2955 (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR. 2956 (make_pack_expansion): Ditto. 2957 (check_for_bare_parameter_packs): Parameter is now a tree, not a 2958 tree*. 2959 (process_template_parm): Tweak call to 2960 check_for_bare_parameter_packs. 2961 (push_template_decl_real): Tweak calls to 2962 check_for_bare_parameter_packs. If bare parameter packs are found 2963 in the list of exceptions, clear out that list after giving an 2964 error. 2965 * semantics.c (finish_cond): Tweak call to 2966 check_for_bare_parameter_packs. 2967 (finish_expr_stmt): Ditto. 2968 (finish_for_expr): Ditto. 2969 (finish_switch_cond): Ditto. 2970 (finish_mem_initializers): Ditto. 2971 (finish_member_declaration): Ditto. 2972 (finish_static_assert): Check for bare parameter packs in the 2973 condition. 2974 * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the 2975 attributes of a declaration. 2976 * parser.c (cp_parser_using_declaration): Tweak call to 2977 check_for_bare_parameter_packs. 2978 (cp_parser_base_clause): Ditto. 2979 29802008-01-28 Jason Merrill <jason@redhat.com> 2981 2982 PR c++/35007 2983 * class.c (build_base_path): Fix !want_pointer case. 2984 29852008-01-27 Jason Merrill <jason@redhat.com> 2986 2987 PR c++/27177 2988 * class.c (build_base_path): Fix previous change. 2989 29902008-01-26 Jakub Jelinek <jakub@redhat.com> 2991 2992 PR c++/34965 2993 * error.c (dump_expr): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR 2994 and TRUTH_XOR_EXPR. 2995 29962008-01-26 Richard Guenther <rguenther@suse.de> 2997 2998 PR c++/34235 2999 * typeck.c (build_binary_op): Remove code to shorten compares. 3000 30012008-01-25 Richard Guenther <rguenther@suse.de> 3002 3003 PR c++/33887 3004 * decl.c (record_builtin_java_type): Make __java_boolean 3005 a variant of bool. 3006 * typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check 3007 after TYPE_MAIN_VARIANT check. 3008 30092008-01-25 Jason Merrill <jason@redhat.com> 3010 3011 PR c++/27177 3012 * class.c (build_base_path): Don't mess with virtual access if 3013 skip_evaluation. 3014 * call.c (standard_conversion): Don't check whether source type 3015 is complete. 3016 3017 * decl2.c (is_late_template_attribute): Don't defer attribute 3018 visibility just because the type is dependent. 3019 30202008-01-25 Jason Merrill <jason@redhat.com> 3021 Mark Mitchell <mark@codesourcery.com> 3022 3023 PR c++/31780 3024 * call.c (standard_conversion): Allow conversion from integer/real 3025 to complex. 3026 (compare_ics): Such a conversion is worse than a normal arithmetic 3027 conversion. 3028 30292008-01-25 Richard Guenther <rguenther@suse.de> 3030 3031 PR c++/33887 3032 * cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define 3033 to true. 3034 30352008-01-24 Paolo Carlini <pcarlini@suse.de> 3036 3037 PR c++/34603 3038 * pt.c (push_template_decl_real): Return error_mark_node in case 3039 of template definition of non-template. 3040 30412008-01-24 Jason Merrill <jason@redhat.com> 3042 3043 PR c++/34913 3044 * decl2.c (is_late_template_attribute): Defer any attribute with 3045 dependent args. Also defer type attributes if the type is dependent. 3046 30472008-01-22 Jakub Jelinek <jakub@redhat.com> 3048 Alexandre Oliva <aoliva@redhat.com> 3049 3050 PR c++/33984 3051 * call.c (reference_binding): For bitfields use the declared bitfield 3052 type. 3053 (add_builtin_candidates): Likewise. 3054 * class.c (layout_class_type): For bitfields copy over the 3055 original type quals. 3056 30572008-01-22 Jason Merrill <jason@redhat.com> 3058 3059 PR c++/28560 3060 * decl.c (groktypename): Also ignore attributes on dependent 3061 possibly-class types. 3062 3063 PR c++/34912 3064 * friend.c (do_friend): Check for prior declaration of a friend 3065 function of a local class. 3066 * name-lookup.c (lookup_name_innermost_nonclass_level): 3067 No longer static. 3068 * name-lookup.h: Declare it. 3069 30702008-01-22 Tom Tromey <tromey@redhat.com> 3071 3072 PR c++/34829: 3073 * init.c (build_new_1): Only disallow Java aggregates. 3074 30752008-01-22 Jakub Jelinek <jakub@redhat.com> 3076 3077 PR c++/34607 3078 * semantics.c (finish_omp_for): Don't call c_finish_omp_for 3079 if decl or init is error_mark_node. 3080 3081 PR c++/34918 3082 * error.c (dump_expr): Handle VECTOR_CST. 3083 30842008-01-21 Jason Merrill <jason@redhat.com> 3085 3086 PR c++/33959 3087 * pt.c (tsubst_aggr_type): Make sure our context is complete. 3088 3089 PR c++/34573 3090 * pt.c (retrieve_local_specialization): Robustify. 3091 (tsubst_pack_expansion, tsubst_decl): Remove redundant checks. 3092 3093 PR c++/34846 3094 * pt.c (tsubst): Only call retrieve_local_specialization if the 3095 original typedef was in a function template. 3096 3097 PR c++/34196 3098 * decl.c (wrap_cleanups_r): Set TRY_CATCH_IS_CLEANUP. 3099 31002008-01-21 Richard Guenther <rguenther@suse.de> 3101 3102 PR c++/34850 3103 * error.c (cp_print_error_function): Deal with recursive 3104 BLOCK trees. 3105 31062008-01-20 Paolo Carlini <pcarlini@suse.de> 3107 3108 PR c++/34891 3109 * error.c (dump_expr): Deal with VIEW_CONVERT_EXPR. 3110 31112008-01-20 Paolo Carlini <pcarlini@suse.de> 3112 3113 PR c++/34776 3114 PR c++/34486 3115 * name-lookup.c (do_class_using_decl): Do not call constructor_name_p 3116 on non-IS_AGGR_TYPE scope. 3117 (constructor_name_p): Assert IS_AGGR_TYPE. 3118 31192008-01-18 Ian Lance Taylor <iant@google.com> 3120 3121 PR c++/33407 3122 * decl.c (duplicate_decls): Copy DECL_IS_OPERATOR_NEW flag. 3123 (grok_op_properties): For NEW_EXPR and VEC_NEW_EXPR set 3124 DECL_IS_OPERATOR_NEW flag. 3125 31262008-01-16 Richard Guenther <rguenther@suse.de> 3127 3128 PR c++/33819 3129 * typeck.c (is_bitfield_expr_with_lowered_type): Recurse 3130 for conversions to type variants. 3131 31322008-01-15 Andreas Tobler <a.tobler@schweiz.org> 3133 3134 * parser.c (cp_parser_template_parameter): Fix C90 issue with mixing 3135 declaration and code. Update copyright year. 3136 31372008-01-15 Douglas Gregor <doug.gregor@gmail.com> 3138 3139 PR c++/34399 3140 * friend.c (do_friend): Don't query TYPE_BEING_DEFINED unless we 3141 know we have a class type. 3142 31432008-01-15 Douglas Gregor <doug.gregor@gmail.com> 3144 3145 PR c++/34751 3146 * pt.c (coerce_template_parameter_pack): When substituting into 3147 the type of a non-type template parameter pack. use the 3148 deduced/substituted arguments. 3149 * parser.c (declarator_can_be_parameter_pack): A pointer-to-member 3150 can be a parameter pack with the ellipsis following it. When we 3151 have an erroneous declaration, allow it to be a parameter pack. 3152 (cp_parser_template_parameter): Complain about default 3153 arguments on non-type template parameter packs, and parse them 3154 using the new cp_parser_default_argument. 3155 (cp_parser_parameter_declaration): Complain about parameter packs 3156 with default arguments. Move parsing of default arguments into a 3157 new function, cp_parser_default_argument. 3158 (cp_parser_default_argument): New; extracted from 3159 cp_parser_parameter_declaration. 3160 31612008-01-15 Douglas Gregor <doug.gregor@gmail.com> 3162 3163 PR c++/34051 3164 PR c++/34055 3165 PR c++/34102 3166 PR c++/34103 3167 * typeck.c (check_return_expr): If there are bare parameter packs 3168 in the return value, set it to error_mark_node. 3169 * tree.c (cp_walk_subtrees): Walk USING_DECL nodes. 3170 * pt.c (find_parameter_packs_r): Look at the type of 3171 IDENTIFIER_NODEs (e.g., for user-defined conversions). 3172 (check_for_bare_parameter_packs): Flip the result: now returns 3173 TRUE when there were bare parameter packs, FALSE otherwise. 3174 (push_template_decl_real): Deal with flipped result of 3175 check_for_bare_parameter_packs. 3176 * semantics.c (finish_cond): If there are bare parameter packs in 3177 the conditional, set it to error_mark_node. 3178 (finish_expr_stmt): If there are bare parameter packs in the 3179 expression, set it to error_mark_node. 3180 (finish_for_expr): Ditto. 3181 (finish_switch_cond): If there are bare parameter packs in 3182 the conditional, set it to error_mark_node. 3183 (finish_mem_initializers): If there are bare parameter packs in 3184 the member initializer, set it to error_mark_node. 3185 (finish_member_declaration): Check the attributes of the 3186 declaration for bare parameter packs, and remove the attributes if 3187 any have bare parameter packs. 3188 * parser.c (cp_parser_using_declaration): Check the using 3189 declaration for bare parameter packs. 3190 (cp_parser_base_clause): If there are bare parameter packs in a 3191 base specifier, don't add it to the chain. 3192 31932008-01-15 Douglas Gregor <doug.gregor@gmail.com> 3194 3195 PR c++/34314 3196 * error.c (dump_simple_decl): Display ellipsis for template 3197 non-type parameter packs. 3198 (dump_decl): Display ellipsis for template type parameter packs. 3199 (dump_template_decl): Display ellipsis for template template 3200 parameter packs. 3201 * pt.c (redeclare_class_template): When redeclaring a class 3202 template, check for collisions between template parameters and 3203 template parameter packs. 3204 32052008-01-15 Douglas Gregor <doug.gregor@gmail.com> 3206 3207 PR c++/33964 3208 * pt.c (process_partial_specialization): Don't mark template 3209 parameters that occur in non-deduced contexts. 3210 (struct pair_fn_data): Add include_nondeduced_p. 3211 (for_each_template_parm_r): Only visit non-deduced contexts if 3212 include_nondeduced_p is set. 3213 (for_each_template_parm): Added parameter include_nondeduced_p, 3214 which states whether template parameters found in non-deduced 3215 contexts should be visited. 3216 (uses_template_parms): Visit all template parameters, even those 3217 in non-deduced contexts. 3218 32192008-01-15 Douglas Gregor <doug.gregor@gmail.com> 3220 3221 PR c++/34052 3222 * pt.c (check_default_tmpl_args): Check for parameter packs that 3223 aren't at the end of a primary template. 3224 (push_template_decl_real): Remove check for parameter packs that 3225 aren't at the end of a primary template; that now happens in 3226 check_default_tmpl_args. 3227 * semantics.c (finish_template_template_parm): Use 3228 check_default_tmpl_args to check for errors in the template 3229 parameter list. 3230 32312008-01-12 Doug Kwan <dougkwan@google.com> 3232 3233 * decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers 3234 instead of OPT_Wreturn_type in warning due to ignored return type 3235 qualifiers. 3236 * pt.c: (tsubst_function_type): Use OPT_Wignored_qualifiers 3237 instead of OPT_Wreturn_type in warning due to ignored return type 3238 qualifiers. 3239 32402008-01-08 Jakub Jelinek <jakub@redhat.com> 3241 3242 PR c++/33890 3243 * semantics.c (finish_omp_for): Don't call 3244 fold_build_cleanup_point_expr if processing_template_decl. 3245 32462008-01-04 Paolo Carlini <pcarlini@suse.de> 3247 Jakub Jelinek <jakub@redhat.com> 3248 3249 PR c++/34611 3250 * error.c (dump_template_argument): Deal with TREE_LIST. 3251 32522008-01-01 Douglas Gregor <doug.gregor@gmail.com> 3253 3254 * parser.c (cp_parser_check_decl_spec): Don't warn about "long 3255 long" in C++0x mode; change the warning to note that "long long" 3256 is only unsupported in C++98 mode. 3257 3258 3259Copyright (C) 2008 Free Software Foundation, Inc. 3260 3261Copying and distribution of this file, with or without modification, 3262are permitted in any medium without royalty provided the copyright 3263notice and this notice are preserved. 3264