12012-12-28 Kai Tietz <ktietz@redhat.com> 2 3 * rtti.c (LONGPTR_T): New helper-macro. 4 (get_pseudo_ti_init): Initialize offset_type by LONGPTR_T 5 type instead of 'long' type. 6 (create_tinfo_types): Use for offset/flags field LONGPTR_T 7 type instead of 'long' type. 8 92012-12-19 Jason Merrill <jason@redhat.com> 10 11 PR c++/55724 12 * pt.c (type_unification_real): Re-combine post-deduction loops. 13 142012-12-14 Jason Merrill <jason@redhat.com> 15 16 PR c++/55685 17 * pt.c (tsubst_copy_and_build): Don't use SIZEOF_EXPR_TYPE_P in 18 templates. 19 20 PR c++/42315 21 * decl.c (maybe_deduce_size_from_array_init): Don't change the 22 variable type. 23 242012-12-13 Jakub Jelinek <jakub@redhat.com> 25 26 PR c++/55652 27 * typeck2.c (merge_exception_specifiers): Don't call operand_equal_p 28 if noex is NULL. 29 302012-12-11 Jason Merrill <jason@redhat.com> 31 32 PR c++/54883 33 * decl2.c (min_vis_r): Handle anon visibility for enums. 34 352012-12-11 Marc Glisse <marc.glisse@inria.fr> 36 37 PR c++/53094 38 * tree.c (cp_tree_equal): Handle VECTOR_CST. 39 * semantics.c (cxx_eval_bare_aggregate): Protect a dereference. 40 Handle VECTOR_CST. 41 422012-12-11 Jakub Jelinek <jakub@redhat.com> 43 44 PR c++/55643 45 * expr.c (mark_exp_read): Handle FLOAT_EXPR similarly to NOP_EXPR. 46 472012-12-11 Jason Merrill <jason@redhat.com> 48 49 PR c++/54416 50 * pt.c (maybe_process_partial_specialization): Don't accept 51 definition of a specialization without the appropriate header. 52 53 * pt.c (maybe_process_partial_specialization): Handle aliases first. 54 552012-12-11 Jakub Jelinek <jakub@redhat.com> 56 57 PR c++/55619 58 * semantics.c (finish_asm_stmt): Don't call decay_conversion 59 on input operands that can be only in memory. 60 612012-12-10 Eric Botcazou <ebotcazou@adacore.com> 62 63 * Make-lang.in (cp/typeck.o): Add dependency on $(PARAMS_H). 64 (cp/name-lookup.o): Likewise. 65 662012-12-10 Steven Bosscher <steven@gcc.gnu.org> 67 68 * decl2.c (cp_write_global_declarations): Return after writing a PCH. 69 702012-12-07 Jason Merrill <jason@redhat.com> 71 72 PR c++/55127 73 * search.c (accessible_in_template_p): New. 74 * cp-tree.h: Declare it. 75 * pt.c (instantiation_dependent_scope_ref_p): New. 76 (value_dependent_expression_p): Use it. 77 (instantiation_dependent_r): Likewise. 78 * semantics.c (finish_decltype_type): Handle SCOPE_REF. 79 80 PR c++/55419 81 * tree.c (build_target_expr): Don't set TREE_CONSTANT. 82 832012-12-07 Aldy Hernandez <aldyh@redhat.com> 84 85 PR c++/55513 86 * semantics.c (cxx_eval_builtin_function_call): Set non_constant_p 87 after folding. 88 892012-12-07 Paolo Carlini <paolo.carlini@oracle.com> 90 91 * tree.c (build_aggr_init_expr): Remove tsubst_flags_t parameter. 92 (build_cplus_new): Adjust. 93 * cp-tree.h: Adjust declaration. 94 * init.c (build_value_init): Adjust. 95 962012-12-07 Dodji Seketeli <dodji@redhat.com> 97 98 PR c++/54401 99 * parser.c (cp_parser_alias_declaration): Commit to tentative 100 parse when see the '=' token. Get out if the type-id is invalid. 101 Update function comment. 102 (cp_parser_member_declaration): Don't try to parse a using 103 declaration if we know that we expected an alias declaration; that 104 is, if we see the '=' token after the identifier. 105 1062012-12-06 Jason Merrill <jason@redhat.com> 107 108 PR c++/54325 109 * tree.c (build_aggr_init_expr): Don't check for abstract class. 110 (build_cplus_new): Check here instead. 111 112 PR c++/55058 113 * pt.c (tsubst): Keep the quals when looking through a typedef. 114 115 PR c++/55249 116 * tree.c (build_vec_init_elt): Use the type of the initializer. 117 118 PR c++/54744 119 * pt.c (resolve_typename_type): Check TYPENAME_IS_RESOLVING_P on scope. 120 * init.c (expand_member_init): Check for being in a template first. 121 * parser.c (cp_parser_mem_initializer_list): Only check class types 122 for equivalence to the current class. 123 124 PR c++/54913 125 * semantics.c (finish_qualified_id_expr): convert_from_reference 126 after building a SCOPE_REF. 127 1282012-12-06 Jakub Jelinek <jakub@redhat.com> 129 130 PR c++/54207 131 * except.c (build_noexcept_spec): Avoid direct comparison 132 with boolean_true_node or boolean_false_node, instead use 133 operand_equal_p and/or INTEGER_CST check. 134 * pt.c (tsubst_exception_specification): Likewise. 135 * typeck2.c (merge_exception_specifiers): Likewise. 136 1372012-12-06 Marc Glisse <marc.glisse@inria.fr> 138 139 PR c++/55573 140 * semantics.c (adjust_temp_type): Handle VECTOR_CST. 141 1422012-12-06 Jason Merrill <jason@redhat.com> 143 144 PR c++/54947 145 * parser.c (cp_parser_initializer_list): Don't require an 146 expression in [] to be constant until we know it's a C99 147 designator. 148 149 PR c++/55015 150 PR c++/53821 151 * semantics.c (maybe_add_lambda_conv_op): Revert earlier change. 152 * decl.c (start_preparsed_function): Make local class methods comdat 153 in templates, too. 154 155 PR c++/54653 156 * parser.c (cp_parser_class_head): A partial specialization scope 157 counts as a template. 158 * pt.c (tsubst_template_parms): Handle template template parm parms. 159 (tsubst_decl) [TEMPLATE_DECL]: Handle getting a template template 160 argument back. 161 162 PR c++/55564 163 * pt.c (unify) [ARRAY_TYPE]: Unify the element type before the bounds. 164 1652012-12-03 Paolo Carlini <paolo.carlini@oracle.com> 166 167 PR c++/54170 168 * cvt.c (cp_convert_to_pointer): Don't discard side-effects from 169 expressions of nullptr_t. 170 * typeck.c (build_ptrmemfunc): Likewise. 171 1722012-12-01 Jakub Jelinek <jakub@redhat.com> 173 174 PR c++/55542 175 * pt.c (make_ith_pack_parameter_name): Return NULL if 176 name is NULL. 177 (tsubst_decl): Call make_ith_pack_parameter_name even if 178 DECL_NAME is NULL. 179 1802012-11-29 Jason Merrill <jason@redhat.com> 181 182 PR c++/53137 183 * pt.c (tsubst_expr) [DECL_EXPR]: Set LAMBDA_EXPR_THIS_CAPTURE here. 184 (tsubst_copy_and_build) [LAMBDA_EXPR]: And clear it here. 185 (instantiate_class_template_1): Not here. 186 1872012-11-29 Marc Glisse <marc.glisse@inria.fr> 188 189 PR c++/53094 190 * cvt.c (ocp_convert): Call convert_to_vector. 191 1922012-11-29 Kai Tietz <ktietz@redhat.com> 193 194 PR target/53912 195 * class.c (dump_class_hierarchy_r): Cast from pointer via uintptr_t. 196 (dump_vtable): Likewise. 197 1982012-11-29 Ed Smith-Rowland <3dw4rd@verizon.net> 199 200 PR c++/52654 201 * parser.c (cp_parser_string_literal): Add overflow_type arg. 202 (cp_parser_userdef_numeric_literal): Warn on numeric overflow. 203 2042012-11-28 Andrew Pinski <apinski@cavium.com> 205 206 PR bootstrap/54279 207 * Make-lang.in (g++$(exeext)): Rename to 208 (xg++$(exeext)): This. 209 (g++-cross$(exeext)): Use xg++$(exeext) instead of g++$(exeext). 210 (c++.start.encap): Likewise. 211 (c++.install-common): Likewise. 212 2132012-11-24 Paolo Carlini <paolo.carlini@oracle.com> 214 215 PR c++/55446 216 * init.c (build_vec_init): Do not early return error_mark_mode 217 when integer_all_onesp (maxindex). 218 2192012-11-23 Jakub Jelinek <jakub@redhat.com> 220 221 PR c++/54046 222 * cp-objcp-common.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Redefine. 223 * cp-objcp-common.c (cxx_block_may_fallthru): New function. 224 * cp-tree.h (cxx_block_may_fallthru): New prototype. 225 2262012-11-23 Markus Trippelsdorf <markus@trippelsdorf.de> 227 228 PR c++/55418 229 * method.c (implicitly_declare_fn): Properly initialize trivial_p. 230 2312012-11-22 Jason Merrill <jason@redhat.com> 232 233 PR c++/55137 234 * semantics.c (verify_constant): Track overflow separately. 235 (reduced_constant_expression_p): Don't check it here. 236 (cxx_eval_constant_expression): Check it on CSTs. 237 (cxx_eval_outermost_constant_expr): Treat overflows as non-constant 238 at this point, but still return the folded version. 239 (potential_constant_expression_1): Don't check overflow. 240 241 * call.c (extend_ref_init_temps_1): Recompute TREE_CONSTANT for 242 the ADDR_EXPR. 243 2442012-11-20 Diego Novillo <dnovillo@google.com> 245 Jakub Jelinek <jakub@redhat.com> 246 247 * name-lookup.c: Replace all vec<T, A>() initializers 248 with vNULL. 249 * semantics.c: Likewise. 250 2512012-11-19 Paolo Carlini <paolo.carlini@oracle.com> 252 253 PR c++/55368 254 * parser.c (cp_parser_member_declaration): Emit an error in case 255 of stray comma at end of member declaration. 256 2572012-11-19 Jason Merrill <jason@redhat.com> 258 259 * class.c (one_inheriting_sig): Don't inherit base copy ctors. 260 261 PR c++/55262 262 * method.c (implicitly_declare_fn): Set DECL_PARM_INDEX on 263 the parms of an inheriting ctor. 264 265 PR c++/55261 266 * class.c (add_implicitly_declared_members): Use 267 lookup_fnfields_slot to get the base constructors. 268 2692012-11-19 Jakub Jelinek <jakub@redhat.com> 270 271 PR middle-end/54630 272 * class.c (fixed_type_or_null_ref_ht): New variable. 273 (fixed_type_or_null): Use it instead of local static ht. 274 2752012-11-17 Diego Novillo <dnovillo@google.com> 276 277 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 278 279 * Make-lang.in: Remove dependencies on vecir.h and vecprim.h everywhere. 280 * call.c: Use new vec API in vec.h. 281 * class.c: Likewise. 282 * cp-gimplify.c: Likewise. 283 * cp-tree.h: Likewise. 284 * cvt.c: Likewise. 285 * decl.c: Likewise. 286 * decl2.c: Likewise. 287 * error.c: Likewise. 288 * except.c: Likewise. 289 * init.c: Likewise. 290 * mangle.c: Likewise. 291 * method.c: Likewise. 292 * name-lookup.c: Likewise. 293 * name-lookup.h: Likewise. 294 * parser.c: Likewise. 295 * parser.h: Likewise. 296 * pt.c: Likewise. 297 * repo.c: Likewise. 298 * rtti.c: Likewise. 299 * search.c: Likewise. 300 * semantics.c: Likewise. 301 * tree.c: Likewise. 302 * typeck.c: Likewise. 303 * typeck2.c: Likewise. 304 3052012-11-17 Gabriel Dos Reis <gdr@integrable-solutions.net> 306 307 * semantics.c (finish_id_expression): Tidy diagnostic message. 308 3092012-11-16 Dodji Seketeli <dodji@redhat.com> 310 311 PR c++/54875 312 * pt.c (lookup_template_class_1): Look at the type of the 313 potential member enum of class template to determine if we are 314 actually substituting into a member enum of class template. 315 3162012-11-16 Jakub Jelinek <jakub@redhat.com> 317 318 PR c++/55337 319 * tree.c (cp_tree_equal) <case ALIGNOF_EXPR>: Use SIZEOF_EXPR_TYPE_P 320 only on SIZEOF_EXPR. 321 3222012-11-14 Jason Merrill <jason@redhat.com> 323 324 PR c++/54903 325 * decl2.c (mark_used): Don't complain about auto in templates. 326 327 PR c++/37276 328 * decl.c (decls_match): Remove #ifdef around earlier fix. 329 3302012-11-13 Jason Merrill <jason@redhat.com> 331 332 * class.c (finish_struct_1): Check virtual functions 333 for missing ABI tags. 334 335 PR c++/55275 336 * pt.c (maybe_process_partial_specialization): Update 337 DECL_SOURCE_LOCATION for new specializations. 338 3392012-11-14 Paolo Carlini <paolo.carlini@oracle.com> 340 341 PR c++/55323 342 * init.c (emit_mem_initializers): Skip arguments == error_mark_node. 343 3442012-11-14 Fabien Chêne <fabien@gcc.gnu.org> 345 346 PR c++/11750 347 * call.c (build_new_method_call_1): Check that the instance type 348 and the function context are the same before setting the flag 349 LOOKUP_NONVIRTUAL. 350 3512012-11-13 Sriraman Tallam <tmsriram@google.com> 352 353 * class.c (mark_versions_used): Remove. 354 (resolve_address_of_overloaded_function): Call target hook 355 for versioned functions. Refactor to call 356 get_function_versions_dispatcher. 357 * decl.c (duplicate_decls): Add comments. 358 * cp/call.c (get_function_version_dispatcher): Expose function. 359 (mark_versions_used): Expose function. 360 * cp/cp-tree.h (mark_versions_used): New declaration. 361 (get_function_version_dispatcher): Ditto. 362 3632012-11-13 Dodji Seketeli <dodji@redhat.com> 364 365 PR c++/54466 366 * pt.c (lookup_template_class_1): TYPE_STUB_DECL should be 367 accessed on the main variant of the type. 368 3692012-11-12 Ed Smith-Rowland <3dw4rd@verizon.net> 370 371 * parser.c (cp_parser_objc_class_ivars): 372 Index declspecs.locations by ds_typedef rather than ds_thread. 373 3742012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net> 375 376 PR c++/54413 377 * decl.c (grokfndecl): Adjust calls to interpret_x_suffix. 378 3792012-11-09 Jason Merrill <jason@redhat.com> 380 381 PR c++/54859 382 * pt.c (check_instantiated_arg): Don't complain about dependent args. 383 384 * tree.c (cxx_attribute_table): Add abi_tag attribute. 385 (check_abi_tag_redeclaration, handle_abi_tag_attribute): New. 386 * class.c (find_abi_tags_r, check_abi_tags): New. 387 (check_bases, check_field_decl): Call check_abi_tags. 388 * decl.c (redeclaration_error_message): Call 389 check_abi_tag_redeclaration. 390 * mangle.c (tree_string_cmp, write_abi_tags): New. 391 (write_unqualified_name): Call write_abi_tags. 392 3932012-11-07 Paolo Carlini <paolo.carlini@oracle.com> 394 395 PR c++/55226 396 Revert: 397 2012-10-23 Paolo Carlini <paolo.carlini@oracle.com> 398 399 PR c++/54922 400 * semantics.c (cx_check_missing_mem_inits): Handle anonymous union 401 members. 402 4032012-11-07 Florian Weimer <fweimer@redhat.com> 404 405 * init.c (build_new_1): Do not check for arithmetic overflow if 406 inner array size is 1. 407 4082012-11-05 Sriraman Tallam <tmsriram@google.com> 409 410 * class.c (add_method): Change assembler names of function versions. 411 (mark_versions_used): New static function. 412 (resolve_address_of_overloaded_function): Create dispatcher decl and 413 return address of dispatcher instead. 414 * decl.c (decls_match): Make decls unmatched for versioned 415 functions. 416 (duplicate_decls): Remove ambiguity for versioned functions. 417 Delete versioned function data for merged decls. 418 * decl2.c (check_classfn): Check attributes of versioned functions 419 for match. 420 * call.c (get_function_version_dispatcher): New function. 421 (mark_versions_used): New static function. 422 (build_over_call): Make calls to multiversioned functions 423 to call the dispatcher. 424 (joust): For calls to multi-versioned functions, make the most 425 specialized function version win. 426 4272012-10-31 Lawrence Crowl <crowl@google.com> 428 429 * decl2.c (var_finalized_p): Rename varpool_node to 430 varpool_node_for_decl. 431 (maybe_emit_vtables): Likewise. 432 4332012-10-31 Paolo Carlini <paolo.carlini@oracle.com> 434 435 PR c++/54583 436 * tree.c (build_cplus_array_type): Set TREE_NO_WARNING on the 437 TYPE_SIZE of VLAs. 438 4392012-10-31 Dodji Seketeli <dodji@redhat.com> 440 441 PR c++/54955 442 * parser.c (cp_nth_tokens_can_be_std_attribute_p): Recognize the 443 'Alignas' keyword as the beginning of a c++11 attribute specifier. 444 Update the comment of the function. 445 (cp_next_tokens_can_be_gnu_attribute_p): Update the comment of the 446 function. 447 4482012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com> 449 450 PR c++/54930 451 * typeck.c (maybe_warn_about_returning_address_of_local): Use 452 OPT_Wreturn_local_addr. 453 4542012-10-26 Jakub Jelinek <jakub@redhat.com> 455 456 PR c++/55081 457 * typeck2.c (store_init_value): Call fold_non_dependent_expr 458 and maybe_constant_init even for C++98. 459 4602012-10-26 Paolo Carlini <paolo.carlini@oracle.com> 461 462 PR c++/54984 463 * init.c (build_new): Don't turn a null *init into a pointer to 464 empty vector orig_init. 465 4662012-10-25 Paolo Carlini <paolo.carlini@oracle.com> 467 468 PR c++/53761 469 * class.c (finish_struct_1): Reject aggregates decorated with 470 __transparent_union__ which cannot be made transparent because 471 the type of the first field has a different ABI from the class 472 overall. 473 4742012-10-25 Jason Merrill <jason@redhat.com> 475 476 Core 1402 477 * call.c (joust): An implicitly deleted move function is 478 worse than any non-deleted function. 479 * method.c (process_subob_fn): No special rules for move. 480 (synthesized_method_walk, implicitly_declare_fn): Likewise. 481 Warn about virtual base with non-trivial move assignment. 482 * cp-tree.h (struct lang_decl_fn): Remove suppress_implicit_decl. 483 (FNDECL_SUPPRESS_IMPLICIT_DECL): Remove. 484 485 * semantics.c (finish_omp_threadprivate): Call complete_type. 486 487 * class.c (one_inherited_ctor): Warn about variadic inherited ctor. 488 4892012-10-25 Marc Glisse <marc.glisse@inria.fr> 490 491 PR c++/54427 492 * typeck.c (build_x_conditional_expr): Handle VEC_COND_EXPR. 493 * call.c (build_conditional_expr_1): Likewise. 494 4952012-10-25 Paolo Carlini <paolo.carlini@oracle.com> 496 497 PR c++/34892 498 * parser.c (cp_parser_template_parameter): When 499 cp_parser_parameter_declaration parsed a default argument don't 500 see if *is_parameter_pack needs setting. 501 5022012-10-23 Paolo Carlini <paolo.carlini@oracle.com> 503 504 PR c++/54922 505 * semantics.c (cx_check_missing_mem_inits): Handle anonymous union 506 members. 507 5082012-10-23 Jakub Jelinek <jakub@redhat.com> 509 510 PR c++/54844 511 * pt.c (tsubst_copy, tsubst_copy_and_build) <case SIZEOF_EXPR>: Use 512 tsubst instead of tsubst_copy* on types. 513 514 PR c++/54988 515 * decl2.c (cplus_decl_attributes): Don't return early 516 if attributes is NULL. 517 5182012-10-18 Paolo Carlini <paolo.carlini@oracle.com> 519 520 PR c++/54501 521 * decl.c (reshape_init_array_1): Avoid infinite loops. 522 5232012-10-15 Alexandre Oliva <aoliva@redhat.com> 524 Paolo Carlini <paolo.carlini@oracle.com> 525 526 PR c++/17805 527 * call.c (build_new_op_1): Filter out operator functions that don't 528 satisfy enum-conversion match requirements. 529 5302012-10-15 Paolo Carlini <paolo.carlini@oracle.com> 531 532 PR c++/50080 (again) 533 * parser.c (cp_parser_optional_template_keyword): When -pedantic 534 and C++98 mode restore pre-Core/468 behavior. 535 5362012-10-15 Paolo Carlini <paolo.carlini@oracle.com> 537 538 PR c++/50080 539 * parser.c (cp_parser_optional_template_keyword): Implement 540 Core/468, allow outside template. 541 5422012-10-14 Jason Merrill <jason@redhat.com> 543 Ville Voutilainen <ville.voutilainen@gmail.com> 544 545 Implement C++11 inheriting constructors. 546 * cp-tree.h (cpp0x_warn_str): Add CPP0X_INHERITING_CTORS. 547 (DECL_INHERITED_CTOR_BASE, SET_DECL_INHERITED_CTOR_BASE): New. 548 (special_function_kind): Add sfk_inheriting_constructor. 549 * class.c (add_method): An inheriting ctor is hidden by a 550 user-declared one. 551 (one_inheriting_sig, one_inherited_ctor): New. 552 (add_implicitly_declared_members): Handle inheriting ctors. 553 * error.c (maybe_warn_cpp0x): Handle CPP0X_INHERITING_CTORS. 554 * init.c (emit_mem_initializers): Don't set LOOKUP_DEFAULTED 555 for an inheriting constructor. 556 * method.c (type_has_trivial_fn): Handle sfk_inheriting_constructor. 557 (type_set_nontrivial_flag): Likewise. 558 (add_one_base_init): Split out from... 559 (do_build_copy_constructor): ...here. Handle inheriting constructors. 560 (locate_fn_flags): Handle a list of arg types. 561 (synthesized_method_walk): Handle inheriting constructors. 562 (maybe_explain_implicit_delete): Likewise. 563 (deduce_inheriting_ctor): New. 564 (implicitly_declare_fn): Handle inheriting constructors. 565 * name-lookup.c (push_class_level_binding_1): An inheriting constructor 566 does not declare the base's name. 567 (do_class_using_decl): Allow inheriting constructors. 568 * pt.c (template_parms_to_args): Split from current_template_args. 569 (add_inherited_template_parms): New. 570 (tsubst_decl): Handle inheriting constructors. 571 * tree.c (special_function_p): Handle inheriting constructors. 572 5732012-10-12 Jakub Jelinek <jakub@redhat.com> 574 575 PR c/54381 576 * semantics.c (finish_call_expr): Pass array of 3 sizeof_arg 577 trees and locs (corresponding to first 3 arguments) to 578 sizeof_pointer_memaccess_warning. 579 5802012-10-12 Paolo Carlini <paolo.carlini@oracle.com> 581 582 PR c++/24449 583 * decl.c (grokfndecl): When checking for ::main declarations 584 use PROCESSING_REAL_TEMPLATE_DECL_P(). 585 5862012-10-12 Marc Glisse <marc.glisse@inria.fr> 587 588 PR c++/53055 589 * call.c (build_new_op_1): Pass RO_ARROW_STAR to cp_build_indirect_ref. 590 * typeck.c (cp_build_indirect_ref): Handle RO_ARROW_STAR. 591 5922012-10-11 Jason Merrill <jason@redhat.com> 593 594 * cp-tree.h (DECL_THUNKS): NULL_TREE for non-virtual functions. 595 (SET_DECL_THUNKS): New. 596 * decl.c (duplicate_decls): Adjust. 597 * method.c (make_thunk): Adjust. 598 599 * decl.c (grokdeclarator): Set DECL_GNU_TLS_P for static data 600 members, too. 601 6022012-10-09 Dodji Seketeli <dodji@redhat.com> 603 604 PR c++/53540 - using fails to be equivalent to typedef 605 * cp-tree.h (TYPE_TEMPLATE_INFO): For an alias that is not an 606 instance of alias template, don't look for its TEMPLATE_INFO in 607 its declaration. 608 (alias_template_specialization_p): Take const_tree. 609 * pt.c (alias_template_specialization_p): Take a const_tree. 610 Don't call primary_template_instantiation_p. 611 (primary_template_instantiation_p): Call 612 alias_template_specialization_p. 613 6142012-10-10 Dodji Seketeli <dodji@redhat.com> 615 616 * parser (cp_parser_statement): Parse c++11 attributes 617 tentatively. 618 (cp_parser_std_attribute_spec_seq): Do not warn too early about 619 using c++11 attributes in non c++11 mode. 620 6212012-10-10 Dehao Chen <dehao@google.com> 622 623 * cp-gimplify.c (cp_genericize_r): Set location for TRY expr. 624 6252012-10-09 Lawrence Crowl <crowl@google.com> 626 627 * Make-lang.in (class.o): Add dependence on hash-table.h. 628 (tree.o): Likewise. 629 (semantics.o): Likewise. 630 * class.c (fixed_type_or_null): Change to new type-safe hash table. 631 * tree.c (verify_stmt_tree): Likewise. 632 (verify_stmt_tree_r): Likewise. 633 * semantics.c (struct nrv_data): Likewise. 634 6352012-10-09 Paolo Carlini <paolo.carlini@oracle.com> 636 637 PR c++/54194 638 * typeck.c (build_x_binary_op): Update warn_about_parentheses call. 639 * parser.c (cp_parser_binary_expression): Use SET_EXPR_LOCATION 640 on current.lhs. 641 6422012-10-09 Marc Glisse <marc.glisse@inria.fr> 643 644 PR c++/54427 645 * typeck.c (cp_build_binary_op): Handle mixed scalar-vector 646 operations. 647 [LSHIFT_EXPR, RSHIFT_EXPR]: Likewise. 648 6492012-10-08 Jakub Jelinek <jakub@redhat.com> 650 651 PR c++/54858 652 * tree.c (cp_tree_equal): Handle FIELD_DECL. 653 6542012-10-08 Jason Merrill <jason@redhat.com> 655 656 Allow dynamic initialization of thread_locals. 657 * decl.c: Define tls_aggregates. 658 (expand_static_init): Remove sorry. Add to tls_aggregates. 659 * cp-tree.h: Declare tls_aggregates. 660 * call.c (set_up_extended_ref_temp): Add to tls_aggregates. 661 * decl2.c (var_needs_tls_wrapper): New. 662 (var_defined_without_dynamic_init): New. 663 (get_tls_init_fn, get_tls_wrapper_fn): New. 664 (generate_tls_wrapper, handle_tls_init): New. 665 (cp_write_global_declarations): Call handle_tls_init and 666 enerate_tls_wrapper. 667 * mangle.c (write_guarded_var_name): Split out from.. 668 (mangle_guard_variable): ...here. 669 (mangle_tls_init_fn, mangle_tls_wrapper_fn): Use it. 670 (decl_tls_wrapper_p): New. 671 * semantics.c (finish_id_expression): Replace use of thread_local 672 variable with a call to its wrapper. 673 674 * decl.c (get_thread_atexit_node): New. 675 (register_dtor_fn): Use it for TLS. 676 677 Partial implementation of C++11 thread_local. 678 * decl.c (cp_finish_decl): Remove errors about non-trivial 679 initialization and destruction of TLS variables. 680 (register_dtor_fn): Add sorry about TLS variables. 681 (expand_static_init): Add sorry about non-local TLS variables, 682 or error with __thread. 683 Don't emit thread-safety guards for local TLS variables. 684 (grokdeclarator): thread_local in a function implies static. 685 * decl.h: Adjust prototype. 686 * decl2.c (get_guard): Copy DECL_TLS_MODEL. 687 * parser.c (cp_parser_set_storage_class, cp_parser_set_decl_spec_type) 688 (set_and_check_decl_spec_loc): Take the token rather than the location. 689 Distinguish between __thread and thread_local. 690 (cp_parser_set_storage_class): Don't complain about thread_local before 691 extern/static. 692 (token_is__thread): New. 693 * call.c (make_temporary_var_for_ref_to_temp): Handle TLS. 694 * cp-tree.h (DECL_GNU_TLS_P): New. 695 (cp_decl_specifier_seq): Add gnu_thread_keyword_p. 696 6972012-10-08 Dodji Seketeli <dodji@redhat.com> 698 699 PR c++/53528 C++11 attribute support 700 * cp-tree.h (enum cpp0x_warn_str::CPP0X_ATTRIBUTES): New member. 701 (enum cp_decl_spec::ds_std_attribute): New enumerator. 702 (struct cp_decl_specifier_seq::std_attributes): New field. 703 (cxx_alignas_expr, warn_misplaced_attr_for_class_type): Declare 704 new functions. 705 (check_tag_decl): Take an extra parameter for explicit 706 instantiations. 707 * decl.c (warn_misplaced_attr_for_class_type): Extract from ... 708 (check_tag_decl): ... here. Add check for c++11 attributes being 709 applied to an explicit instantiation. Take an extra parameter for 710 explicit instantiations. 711 (grokdeclarator): Make sure a c++11 attribute after an array 712 declarator appertains to the array, an attribute after a function 713 declarator appertains to the function type, an attribute after a 714 declarator-id appertains to the entity being declared, and an 715 attribute after a pointer declarator appertain to the pointer. 716 * decl2.c (is_late_template_attribute): Use get_attribute_name. 717 * error.c (maybe_warn_cpp0x): Support 718 CPP0X_GENERALIZED_ATTRIBUTES. 719 * parser.c (cp_next_tokens_can_be_attribute_p) 720 (cp_next_tokens_can_be_gnu_attribute_p) 721 (cp_next_tokens_can_be_std_attribute_p) 722 (cp_nth_tokens_can_be_attribute_p) 723 (cp_nth_tokens_can_be_gnu_attribute_p) 724 (cp_nth_tokens_can_be_std_attribute_p) 725 (cp_parser_gnu_attribute_list, cp_parser_std_attribute) 726 (cp_parser_std_attribute_spec, cp_parser_std_attribute_spec_seq) 727 (cp_parser_attributes_opt, cp_parser_std_attribute_list): New 728 static functions. 729 (cp_parser_gnu_attributes_opt): Replace cp_parser_attributes_opt. 730 (cp_parser_gnu_attribute_list): Replace cp_parser_attribute_list. 731 (cp_parser_postfix_expression): Disallow "[[" tokens here. 732 (cp_parser_label_for_labeled_statement): Use take an extra 733 parameter for attributes. 734 (cp_parser_block_declaration): Use 735 cp_nth_tokens_can_be_std_attribute_p here. 736 (cp_parser_decl_specifier_seq): Likewise. Store C++11 attributes 737 that appears in in decl specifiers in cp_decl_specifier_seq::std_attributes. 738 declaration. Emit proper warning about misplaced c++11 attributes 739 for class type. 740 (cp_parser_explicit_instantiation): Adjust call to check_tag_decl. 741 (cp_parser_init_declarator): Parsing attributes here is no more a 742 GNU extension in c++-11. 743 (cp_parser_type_specifier_seq): Use 744 cp_next_tokens_can_be_attribute_p. 745 (cp_parser_direct_declarator): Likewise. Hang c++11 attributes 746 following the declarator to its syntactic construct. It'll later 747 be applied to the proper appertaining entity by grokdeclarator. 748 (cp_parser_ptr_operator): Likewise. 749 (make_declarator): Initialize cp_declarator::std_attribute. 750 (make_pointer_declarator, make_reference_declarator) 751 (make_ptrmem_declarator, cp_parser_make_indirect_declarator): Take 752 attributes that appertain to the pointer/reference in argument. 753 (cp_parser_ptr_operator): Take an out parameter for c++11 754 attributes. Update comments. 755 (cp_parser_new_declarator_opt) 756 (cp_parser_conversion_declarator_opt): Adjust. 757 (cp_parser_declarator): Likewise. Handle C++11 attributes. 758 Rename attributes to gnu_attribute for better legibility. 759 (cp_parser_simple_declaration): Update comment. 760 (cp_parser_class_specifier_1): Parse GNU attributes specifically 761 (cp_parser_enum_specifier): Accept only gnu attributes after the 762 specifier. 763 (cp_parser_member_declaration): Don't clear attributes -- intended 764 for the entity being declared -- too early because check_tag_decl 765 needs them. 766 (cp_parser_statement): Update comment. Parse optional c++11 767 attributes at the beginning of the relevant kind of statements and 768 ignore them, for now, unless when calling 769 cp_parser_label_for_labeled_statement. 770 (cp_parser_label_for_labeled_statement): Take c++11 attributes 771 in parameter. 772 * semantics.c (potential_constant_expression_1): Likewise. 773 * typeck.c (fundamental_alignment_p, cxx_alignas_expr): New public 774 functions. 775 7762012-10-07 Paolo Carlini <paolo.carlini@oracle.com> 777 778 * pt.c (fold_non_dependent_expr_sfinae): Remove static specifier. 779 (tsubst_copy_and_build): Use get_target_expr_sfinae. 780 * call.c (build_conditional_expr_1, convert_like_real): Likewise. 781 * cvt.c (build_up_reference): Likewise. 782 (ocp_convert): Use abstract_virtuals_error_sfinae. 783 (build_up_reference): Propagate complain to cp_build_addr_expr. 784 * decl.c (compute_array_index_type): Use fold_non_dependent_expr_sfinae. 785 * cp-tree.h: Update declarations. 786 787 * cvt.c (build_expr_type_conversion): Tidy. 788 789 * tree.c (stabilize_aggr_init): Change to static. 790 7912012-10-07 Paolo Carlini <paolo.carlini@oracle.com> 792 793 PR c++/51422 794 * semantics.c (is_normal_capture_proxy): Return true for 795 error_mark_node as DECL_VALUE_EXPR. 796 7972012-10-05 Jakub Jelinek <jakub@redhat.com> 798 799 * cp-tree.h (SIZEOF_EXPR_TYPE_P): Define. 800 * tree.c (cp_tree_equal): Handle SIZEOF_EXPR with 801 SIZEOF_EXPR_TYPE_P. 802 * mangle.c (write_expression): Likewise. 803 * cxx-pretty-print.c (pp_cxx_unary_expression): Likewise. 804 * error.c (dump_expr): Likewise. 805 * parser.c (cp_parser_unary_expression): For sizeof call 806 cxx_sizeof_or_alignof_{type,expr} just for diagnostics and 807 return SIZEOF_EXPR with the operand. 808 * pt.c (tsubst_copy, tsubst_copy_and_build): For SIZEOF_EXPR, 809 call cxx_sizeof_or_alignof_{type,expr} for diagnostics, but 810 return SIZEOF_EXPR with tsubsted operand. 811 (value_dependent_expression_p): Handle SIZEOF_EXPR with 812 SIZEOF_EXPR_TYPE_P. 813 (instantiation_dependent_r): Likewise. 814 * call.c (null_ptr_cst_p): Call maybe_constant_value for C++98. 815 * semantics.c (finish_call_expr): Call 816 sizeof_pointer_memaccess_warning if needed. 817 (cxx_eval_constant_expression): Handle SIZEOF_EXPR. 818 (potential_constant_expression_1): Remove early exit for 819 C++98. Handle PROPERTY_REF. 820 * decl.c (duplicate_decls): When redeclaring a builtin function, 821 keep the merged decl builtin also if newdecl is a gnu_inline 822 inline definition. 823 (fold_sizeof_expr_r): New function. 824 (compute_array_index_type): Fold SIZEOF_EXPRs in itype. 825 * cp-gimplify.c (cp_genericize_r): Fold SIZEOF_EXPR. 826 * typeck.c (cp_build_binary_op): For warn_for_sign_compare 827 try harder using maybe_constant_value to get INTEGER_CSTs. 828 829 * decl.c (stabilize_vla_size): Call pointer_set_destroy 830 at the end. 831 8322012-10-04 Arnaud Charlet <charlet@adacore.com> 833 834 * decl2.c (cp_write_global_declarations): Fix handling of 835 -fdump-ada-spec*. 836 8372012-10-03 Jakub Jelinek <jakub@redhat.com> 838 839 PR c++/54777 840 * semantics.c (cxx_eval_constant_expression) <case COMPOUND_EXPR>: If 841 not ignoring the second operand, pass the original second operand 842 and not one with stripped nops to cxx_eval_constant_expression. 843 8442012-10-01 Jason Merrill <jason@redhat.com> 845 846 * decl.c (check_initializer): Set DECL_NONTRIVIALLY_INITIALIZED_P 847 for a constructor call. 848 (decl_jump_unsafe): So don't bother checking 849 type_has_nontrivial_default_init. 850 * call.c (set_up_extended_ref_temp): Set 851 DECL_NONTRIVIALLY_INITIALIZED_P. 852 853 * cp-tree.h (TYPE_FUNCTION_OR_TEMPLATE_DECL_CHECK): New. 854 (DECL_FRIEND_P, DECL_ANTICIPATED): Use it. 855 (TYPE_FUNCTION_OR_TEMPLATE_DECL_P): New. 856 * name-lookup.c (hidden_name_p): Use it. 857 858 * cp-tree.h (DECL_PRETTY_FUNCTION_P): Just look at the name. 859 * decl.c (cp_make_fname_decl): Adjust. 860 8612012-09-30 Sharad Singhai <singhai@google.com> 862 863 * decl2.c (cp_write_global_declarations): Use a different method 864 to determine if the dump has ben initialized. 865 8662012-09-29 Paolo Carlini <paolo.carlini@oracle.com> 867 868 PR c++/54738 869 * decl2.c (build_offset_ref_call_from_tree): Add tsubst_flags_t 870 parameter. 871 * pt.c (tsubst_copy_and_build): Adjust. 872 * parser.c (cp_parser_postfix_expression): Likewise. 873 * cp-tree.h: Adjust declaration. 874 8752012-09-28 Dodji Seketeli <dodji@redhat.com> 876 877 PR c++/54372 - unused attribute inactive on dependant entities 878 * decl2.c (is_late_template_attribute): "unused" attribute is to 879 be applied at compile time. 880 8812012-09-25 Dodji Seketeli <dodji@redhat.com> 882 883 PR c++/29028 - Missed unused warning on using declaration 884 * decl.c (poplevel<warn_unused*>): Do not forget that some local 885 bindings are represented by a TREE_LIST. 886 8872012-09-25 Dodji Seketeli <dodji@redhat.com> 888 889 PR c++/53551 - -Wunused-local-typedefs misses uses 890 * decl.c (make_typename_type): Record the use of typedefs. 891 8922012-09-27 Jakub Jelinek <jakub@redhat.com> 893 894 * init.c (build_new_1): Don't test TREE_CONSTANT 895 of INTEGER_CST. 896 8972012-09-25 Paolo Carlini <paolo.carlini@oracle.com> 898 899 PR c++/54526 900 * parser.c (cp_parser_template_id): In C++11 mode simply accept 901 X<::A>. 902 9032012-09-25 Zhenqiang Chen <zhenqiang.chen@linaro.org> 904 905 PR c++/50970 906 * typeck.c (cp_build_binary_op): Check side effects before generating 907 pfn and delta related expressions. 908 9092012-09-24 Lawrence Crowl <crowl@google.com> 910 911 * init.c (build_new_1): Change to new double_int API. 912 * decl.c (build_enumerator): Likewise. 913 * typeck2.c (process_init_constructor_array): Likewise. 914 * mangle.c (write_array_type): Likewise. 915 9162012-09-24 Paolo Carlini <paolo.carlini@oracle.com> 917 918 PR c++/50828 919 * error.c (dump_function_decl): Strip TFF_TEMPLATE_NAME from flags 920 at the outset. 921 9222012-09-24 Jason Merrill <jason@redhat.com> 923 924 * decl.c (get_atexit_node): Remove dead code. 925 926 * Make-lang.in (cp/parser.o): Depend on decl.h. 927 9282012-09-20 Paolo Carlini <paolo.carlini@oracle.com> 929 930 PR c++/52432 931 * pt.c (tsubst_copy_and_build): If tf_error is not set in the complain 932 argument don't call unqualified_name_lookup_error. 933 9342012-09-19 Marc Glisse <marc.glisse@inria.fr> 935 936 PR c++/54581 937 * semantics.c (finish_decltype_type): Make vectors not opaque. 938 9392012-09-17 Jason Merrill <jason@redhat.com> 940 941 PR c++/54575 942 * pt.c (instantiate_alias_template): New. 943 (tsubst): Use it. 944 (push_access_scope): Allow TYPE_DECL. 945 9462012-09-14 Jason Merrill <jason@redhat.com> 947 948 PR c++/53661 949 * typeck2.c (check_narrowing): Avoid false positives on conversion 950 from enumeral type. 951 9522012-09-14 Marc Glisse <marc.glisse@inria.fr> 953 954 PR c++/54427 955 * typeck.c (cp_build_binary_op) [LSHIFT_EXPR, RSHIFT_EXPR, EQ_EXPR, 956 NE_EXPR, LE_EXPR, GE_EXPR, LT_EXPR, GT_EXPR]: Handle VECTOR_TYPE. 957 9582012-09-14 Paolo Carlini <paolo.carlini@oracle.com> 959 960 * decl.c (make_typename_type): Only error out if tf_error is set 961 in complain. 962 9632012-09-13 Paolo Carlini <paolo.carlini@oracle.com> 964 Manuel López-Ibáñez <manu@gcc.gnu.org> 965 966 PR c++/53210 967 * init.c (perform_member_init): Use OPT_Winit_self instead of 968 OPT_Wuninitialized. 969 9702012-09-13 Paolo Carlini <paolo.carlini@oracle.com> 971 972 * typeck.c (build_indirect_ref, build_function_call, 973 build_function_call_vec, build_binary_op, build_unary_op, 974 build_compound_expr, build_c_cast, build_modify_expr): Remove 975 uses of ATTRIBUTE_UNUSED on the parameters. 976 * class.c (set_linkage_according_to_type, resort_type_method_vec, 977 dfs_find_final_overrider_post, empty_base_at_nonzero_offset_p): 978 Likewise. 979 * decl.c (local_variable_p_walkfn): Likewise. 980 * except.c (wrap_cleanups_r, check_noexcept_r): Likewise. 981 * error.c (find_typenames_r): Likewise. 982 * tree.c (verify_stmt_tree_r, bot_replace, 983 handle_java_interface_attribute, handle_com_interface_attribute, 984 handle_init_priority_attribute, c_register_addr_space): Likewise. 985 * cp-gimplify.c (cxx_omp_clause_default_ctor): Likewise. 986 * cp-lang.c (objcp_tsubst_copy_and_build): Likewise. 987 * pt.c (unify_success, unify_invalid, instantiation_dependent_r): 988 Likewise. 989 * semantics.c (dfs_calculate_bases_pre): Likewise. 990 * decl2.c (fix_temporary_vars_context_r, clear_decl_external): 991 Likewise. 992 * parser.c (cp_lexer_token_at, cp_parser_omp_clause_mergeable, 993 cp_parser_omp_clause_nowait, cp_parser_omp_clause_ordered, 994 cp_parser_omp_clause_untied): Likewise. 995 * mangle.c (write_unnamed_type_name, 996 discriminator_for_string_literal): Likewise. 997 * search.c (dfs_accessible_post, dfs_debug_mark): Likewise. 998 * lex.c (handle_pragma_vtable, handle_pragma_unit, 999 handle_pragma_interface, handle_pragma_implementation, 1000 handle_pragma_java_exceptions): Likewise. 1001 10022012-09-13 Jason Merrill <jason@redhat.com> 1003 1004 PR c++/53839 1005 * semantics.c (cxx_eval_indirect_ref): If we aren't looking for an 1006 address, make sure the value is constant. 1007 1008 PR c++/54511 1009 * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P. 1010 1011 PR c++/53836 1012 * pt.c (value_dependent_expression_p): A TREE_LIST initializer must 1013 be dependent. 1014 10152012-09-10 Paolo Carlini <paolo.carlini@oracle.com> 1016 1017 PR c++/54541 1018 PR c++/54542 1019 * call.c (build_cxx_call): Add tsubst_flags_t parameter, use 1020 require_complete_type_sfinae. 1021 (build_op_delete_call, build_over_call): Adjust. 1022 * typeck.c (build_x_compound_expr_from_vec): Add tsubst_flags_t 1023 parameter. 1024 (cp_build_function_call_vec): Adjust. 1025 * init.c (build_new_1): Likewise. 1026 * rtti.c (throw_bad_cast, throw_bad_typeid, build_dynamic_cast_1): 1027 Likewise. 1028 * optimize.c (build_delete_destructor_body): Likewise. 1029 * cp-tree.h: Adjust declarations. 1030 1031 * call.c (convert_arg_to_ellipsis): Use require_complete_type_sfinae. 1032 10332012-09-10 Jason Merrill <jason@redhat.com> 1034 1035 PR c++/54538 1036 PR c++/53783 1037 * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Go back to using RECUR 1038 for LAMBDA_EXPR_EXTRA_SCOPE except for function scope. 1039 1040 PR c++/54506 1041 * decl.c (move_signature_fn_p): Split out from move_fn_p. 1042 * method.c (process_subob_fn): Use it. 1043 * cp-tree.h: Declare it. 1044 10452012-09-07 Jason Merrill <jason@redhat.com> 1046 1047 * semantics.c (sort_constexpr_mem_initializers): Tweak. 1048 10492012-09-09 Mark Kettenis <kettenis@openbsd.org> 1050 1051 * decl.c (reshape_init_class): Avoid dereferencing a 1052 past-the-end pointer. 1053 10542012-09-07 Paolo Carlini <paolo.carlini@oracle.com> 1055 1056 * pt.c (num_template_headers_for_class): Rework per the code 1057 inline in cp_parser_check_declarator_template_parameters. 1058 * parser.c (cp_parser_check_declarator_template_parameters): 1059 Use num_template_headers_for_class. 1060 10612012-09-06 Jason Merrill <jason@redhat.com> 1062 1063 PR c++/54341 1064 PR c++/54253 1065 * semantics.c (sort_constexpr_mem_initializers): New. 1066 (build_constexpr_constructor_member_initializers): Use it. 1067 (cx_check_missing_mem_inits): Skip artificial fields. 1068 * init.c (expand_aggr_init_1): Don't zero out a class 1069 with no data. 1070 10712012-09-05 Paolo Carlini <paolo.carlini@oracle.com> 1072 1073 PR c++/54191 1074 * search.c (lookup_base): Add tsubst_flags_t parameter. 1075 (adjust_result_of_qualified_name_lookup, check_final_overrider): 1076 Adjust. 1077 * name-lookup.c (do_class_using_decl): Adjust. 1078 * typeck2.c (binfo_or_else, build_scoped_ref, build_m_component_ref): 1079 Likewise. 1080 * cvt.c (cp_convert_to_pointer, convert_to_pointer_force, 1081 build_up_reference): Likewise. 1082 * rtti.c (build_dynamic_cast_1): Likewise. 1083 * tree.c (maybe_dummy_object): Likewise. 1084 * call.c (build_conditional_expr_1, build_over_call): Likewise. 1085 * cp-tree.h (UNIQUELY_DERIVED_FROM_P, PUBLICLY_UNIQUELY_DERIVED_P): 1086 Remove. 1087 (enum base_access_flags, ba_quiet): Remove. 1088 (uniquely_derived_from_p, publicly_uniquely_derived_p): Declare. 1089 * except.c (can_convert_eh): Adjust. 1090 * decl.c (grokdeclarator): Likewise. 1091 * typeck.c (comp_except_types, build_class_member_access_expr, 1092 finish_class_member_access_expr, get_member_function_from_ptrfunc, 1093 build_static_cast_1, get_delta_difference_1): Likewise. 1094 * class.c (build_base_path, convert_to_base, build_vtbl_ref_1, 1095 warn_about_ambiguous_bases): Likewise. 1096 (uniquely_derived_from_p, publicly_uniquely_derived_p): Define. 1097 10982012-09-04 Jason Merrill <jason@redhat.com> 1099 1100 PR c++/54441 1101 * decl.c (reshape_init_class): Handle invalid initializer for 1102 0-length array member. 1103 1104 * error.c (dump_type_suffix): Correct handling of 0-length arrays. 1105 1106 PR c++/54420 1107 * cp-tree.h (LAMBDANAME_P): Remove. 1108 (LAMBDA_TYPE_P): Check CLASSTYPE_LAMBDA_EXPR instead. 1109 * cp-lang.c (cxx_dwarf_name): Likewise. 1110 * error.c (dump_aggr_type): Likewise. 1111 * semantics.c (begin_lambda_type): Set CLASSTYPE_LAMBDA_EXPR sooner. 1112 1113 PR c++/54198 1114 * decl.c (check_default_argument): Set cp_unevaluated_operand 1115 around call to perform_implicit_conversion_flags. 1116 1117 PR c++/54437 1118 PR c++/51213 1119 * pt.c (fn_type_unification): Call coerce_template_parms before 1120 entering substitution context. 1121 11222012-08-31 Paolo Carlini <paolo.carlini@oracle.com> 1123 Jason Merrill <jason@redhat.com> 1124 1125 PR c++/18747 1126 * pt.c (check_template_variable): New. 1127 (num_template_headers_for_class): Split out... 1128 * decl.c (grokdeclarator): ...from here. 1129 (start_decl): Remove redundant diagnostic. 1130 * cp-tree.h: Declare them 1131 * parser.c (cp_parser_single_declaration): Call check_template_variable. 1132 11332012-08-31 Ollie Wild <aaw@google.com> 1134 1135 PR c++/54197 1136 * call.c (extend_ref_init_temps_1): Handle COMPOUND_EXPR trees. 1137 11382012-08-30 Jason Merrill <jason@redhat.com> 1139 1140 PR c++/50545 1141 PR c++/51222 1142 * pt.c (instantiation_dependent_r): New. 1143 (instantiation_dependent_expression_p): New. 1144 (value_dependent_expression_p): Use it. SCOPE_REF is always dependent. 1145 * semantics.c (finish_decltype_type): Use it. 1146 * cp-tree.h: Declare it. 1147 1148 * semantics.c (finish_qualified_id_expr): Handle building up a 1149 non-dependent SCOPE_REF here. 1150 (finish_id_expression): Not here. 1151 * error.c (dump_decl) [SCOPE_REF]: Only pass TFF_UNQUALIFIED_NAME. 1152 1153 * friend.c (make_friend_class): Handle template template parameters. 1154 * parser.c (cp_parser_template_declaration_after_export): Likewise. 1155 * pt.c (tsubst_friend_class): Likewise. 1156 (instantiate_class_template_1): Likewise 1157 * decl.c (check_elaborated_type_specifier): Likewise. 1158 (lookup_and_check_tag): Likewise. 1159 1160 * pt.c (get_class_bindings): Call coerce_template_parms. Add 1161 main_tmpl parameter. 1162 (more_specialized_class): Add main_tmpl parameter. 1163 (most_specialized_class): Adjust calls. 1164 1165 * decl.c (cp_finish_decl): Check for invalid multiple initializers 1166 even if the initializer is dependent. 1167 1168 * pt.c (instantiate_template_1): Keep processing_template_decl set 1169 if there are dependent args. 1170 11712012-08-25 Paolo Carlini <paolo.carlini@oracle.com> 1172 1173 PR c++/51421 1174 * decl2.c (mark_used): Consistently return false after errors 1175 about uses before deduction of auto. 1176 * semantics.c (finish_id_expression): Check mark_used return 1177 value and return error_mark_node in case of failure. 1178 11792012-08-24 Jason Merrill <jason@redhat.com> 1180 1181 PR c++/51213 (again) 1182 * pt.c (deduction_tsubst_fntype): Remove. 1183 (fn_type_unification): Check deduction depth and call 1184 instantiate_template here. Handle default argument access checks. 1185 (determine_specialization): Suppress access control. 1186 (tsubst_decl): Check for excessive deduction depth. 1187 (recheck_decl_substitution): Make sure access control is on. 1188 (type_unification_real): Don't mess with access deferring here. 1189 (get_bindings): Adjust for fn_type_unification return type. 1190 * call.c (enum rejection_reason_code): Drop rr_template_instantiation. 1191 (template_instantiation_rejection): Remove. 1192 (struct rejection_reason): Change targs to num_targs. 1193 (template_unification_rejection, print_z_candidate): Adjust. 1194 (add_template_candidate_real): Adjust for fn_type_unification change. 1195 * class.c (resolve_address_of_overloaded_function): Likewise. 1196 * cp-tree.h: Adjust declaration. 1197 1198 * pt.c (tsubst_default_argument): Indicate where the default 1199 argument is being instantiated for. 1200 (tsubst_expr): Restore previous location. 1201 (tsubst_copy_and_build): Set and restore location. 1202 * call.c (build_new_method_call_1): Remember location of call. 1203 * semantics.c (finish_call_expr): Here too. 1204 * parser.c (cp_parser_omp_for_loop): Remember the location of the 1205 increment expression. 1206 1207 * pt.c (resolve_overloaded_unification): Use coerce_template_parms 1208 instead of get_bindings. 1209 (resolve_nondeduced_context): Likewise. 1210 1211 * pt.c (register_specialization): Correct argument to 1212 check_specialization_namespace. 1213 (determine_specialization): Don't consider members of 1214 unspecialized types. 1215 12162012-08-23 Jason Merrill <jason@redhat.com> 1217 1218 * decl.c (compute_array_index_type): Use type_dependent_expression_p. 1219 12202012-08-23 Paolo Carlini <paolo.carlini@oracle.com> 1221 1222 PR c++/20420 1223 * name-lookup.c (supplement_binding_1): Handle specially enums 1224 only in class templates. 1225 (validate_nonmember_using_decl): Enforce 7.3.3/10 about duplicate 1226 using declarations at function scope. 1227 12282012-08-21 Richard Guenther <rguenther@suse.de> 1229 1230 * cp-tree.h (TREE_INDIRECT_USING): Use TREE_LANG_FLAG_0 accessor. 1231 (ATTR_IS_DEPENDENT): Likewise. 1232 (ARGUMENT_PACK_INCOMPLETE_P): Use TREE_ADDRESSABLE instead of 1233 TREE_LANG_FLAG_0 on TREE_VECs. 1234 12352012-08-20 Florian Weimer <fweimer@redhat.com> 1236 1237 PR c++/19351 1238 * call.c (build_operator_new_call): Add size_check argument and 1239 evaluate it. 1240 * cp-tree.h (build_operator_new_call): Adjust declaration. 1241 * init.c (build_new_1): Compute array size check and apply it. 1242 12432012-08-20 Paolo Carlini <paolo.carlini@oracle.com> 1244 1245 PR c++/10416 1246 * decl.c (poplevel): Check TYPE_HAS_NONTRIVIAL_DESTRUCTOR for 1247 Wunused_variable too. 1248 12492012-08-20 Diego Novillo <dnovillo@google.com> 1250 1251 * decl.c (poplevel): Start TV_NAME_LOOKUP conditionally. 1252 12532012-08-20 Richard Guenther <rguenther@suse.de> 1254 1255 * name-lookup.c (store_binding_p): New predicate, split out from ... 1256 (store_binding): ... here. Always store binding and require 1257 target vector with enough space. 1258 (store_bindings): Collect to store bindings and reserve space 1259 for them, then store them. 1260 (store_class_bindings): Likewise. 1261 12622012-08-19 Mikael Morin <mikael@gcc.gnu.org> 1263 1264 * Make-lang.in: Fix typo. 1265 12662012-08-17 Jakub Jelinek <jakub@redhat.com> 1267 1268 * cp-tree.def (SIZEOF_EXPR): Move to c-common.def. 1269 12702012-08-14 Diego Novillo <dnovillo@google.com> 1271 1272 Merge from cxx-conversion branch. Re-write VEC in C++. 1273 1274 * call.c (add_function_candidate): Remove const qualifier 1275 from call to VEC_index. 1276 12772012-08-10 Richard Guenther <rguenther@suse.de> 1278 1279 * error.c (dump_expr): Handle anonymous SSA names. 1280 12812012-08-07 Steven Bosscher <steven@gcc.gnu.org> 1282 1283 * error.c (print_instantiation_context): Pretty-print a newline before 1284 diagnostic_flush_buffer. 1285 * cxx-pretty-print.c (pp_cxx_function_definition): Use 1286 pp_newline_and_flush instead of separate pp_newline and pp_flush. 1287 12882012-08-06 Dodji Seketeli <dodji@redhat.com> 1289 1290 Avoid crashing on erroneous static_assert usage 1291 * semantics.c (finish_static_assert): Don't crash on erroneous 1292 message or condition. 1293 12942012-08-06 Marc Glisse <marc.glisse@inria.fr> 1295 Paolo Carlini <paolo.carlini@oracle.com> 1296 1297 PR c++/54165 1298 * typeck.c (build_static_cast_1): Move the conversion to void case 1299 before the perform_direct_initialization_if_possible call. 1300 13012012-08-03 Marc Glisse <marc.glisse@inria.fr> 1302 1303 * pt.c (tsubst_copy_and_build): Handle VECTOR_TYPE like scalars. 1304 * cp-tree.h (scalarish_type_p): Declare. 1305 * tree.c (scalarish_type_p): Make non-static. 1306 13072012-08-02 Jason Merrill <jason@redhat.com> 1308 Paolo Carlini <paolo.carlini@oracle.com> 1309 1310 PR c++/51213 (again) 1311 * pt.c (type_unification_real): Call push_deferring_access_checks / 1312 pop_deferring_access_checks around the substitution of default 1313 template args. 1314 (instantiate_template_1): When the specialization returned by 1315 retrieve_specialization has FNDECL_HAS_ACCESS_ERRORS set and we 1316 are in a SFINAE context, simply return error_mark_node. 1317 * cp-tree.h (FNDECL_RECHECK_ACCESS_P): Rename FNDECL_HAS_ACCESS_ERRORS. 1318 13192012-07-31 Paolo Carlini <paolo.carlini@oracle.com> 1320 1321 * pt.c (check_default_tmpl_args): Change is_primary and is_partial 1322 parameters to bool type, adjust. 1323 (push_template_decl_real): Tidy. 1324 * parser.c (cp_parser_init_declarator): Adjust. 1325 * decl.c (redeclaration_error_message): Likewise. 1326 * cp-tree.h (check_default_tmpl_args): Update prototype. 1327 13282012-07-31 Paolo Carlini <paolo.carlini@oracle.com> 1329 1330 PR c++/53624 1331 * pt.c (check_default_tmpl_args): Don't check local types. 1332 13332012-07-25 Sandra Loosemore <sandra@codesourcery.com> 1334 Paul Brook <paul@codesourcery.com> 1335 1336 PR target/53633 1337 * decl.c (finish_function): Check targetm.warn_func_return. 1338 13392012-07-25 Jason Merrill <jason@redhat.com> 1340 1341 PR c++/54086 1342 * decl.c (grokdeclarator): Allow const and constexpr together. 1343 1344 PR c++/54020 1345 * semantics.c (potential_constant_expression_1) [COND_EXPR]: Call 1346 maybe_constant_value. 1347 1348 * cp-tree.h (tsubst_flags): Remove tf_no_access_control. 1349 * call.c (standard_conversion): Don't set it. 1350 * class.c (resolve_address_of_overloaded_function): Don't check it. 1351 * decl.c (check_default_argument): Call 1352 perform_implicit_conversion_flags. 1353 1354 * pt.c (print_candidates_1): Use inform instead of error. 1355 13562012-07-24 Paolo Carlini <paolo.carlini@oracle.com> 1357 1358 * pt.c (convert_template_argument, tsubst): Simplify fourth argument 1359 to make_typename_type (complain & tf_error -> complain). 1360 13612012-07-24 Steven Bosscher <steven@gcc.gnu.org> 1362 1363 * class.c (n_vtables, n_vtable_entries, n_vtable_searches, 1364 n_vtable_elems, n_convert_harshness, n_compute_conversion_costs, 1365 n_inner_fields_searched): Always define. 1366 (build_primary_vtable): Convert #ifdef GATHER_STATISTICS to if-code. 1367 (print_class_statistics): Convert #ifdef GATHER_STATISTICS to if-code. 1368 * tree.c (depth_reached): Always define global. 1369 (cxx_print_statistics): Convert #ifdef GATHER_STATISTICS to if-code. 1370 * pt.c (depth_reached): Always define. 1371 (push_tinst_level): Convert #ifdef GATHER_STATISTICS to if-code. 1372 * search.c (n_fields_searched, n_calls_lookup_field, 1373 n_calls_lookup_field_1, n_calls_lookup_fnfields, 1374 n_calls_lookup_fnfields_1, n_calls_get_base_type, 1375 n_outer_fields_searched, n_contexts_saved): Always define. 1376 (lookup_field_1): Convert #ifdef GATHER_STATISTICS to if-code. 1377 (lookup_member): Likewise. 1378 (lookup_fnfields_idx_nolazy): Likewise. 1379 (print_search_statistics): Likewise. 1380 (reinit_search_statistics): Unconditionally re-set counters. 1381 * lex.c (retrofit_lang_decl): Convert #ifdef GATHER_STATISTICS 1382 to if-code. 1383 (cxx_dup_lang_specific_decl): Likewise. 1384 (copy_lang_type): Likewise. 1385 (cxx_make_type): Likewise. 1386 13872012-07-20 Jason Merrill <jason@redhat.com> 1388 1389 PR c++/54038 1390 * tree.c (build_cplus_array_type): Use build_cplus_array_type to build 1391 canonical array type rather than mess with its TYPE_*_VARIANT. 1392 13932012-07-19 Jason Merrill <jason@redhat.com> 1394 1395 PR c++/54026 1396 * typeck.c (cp_apply_type_quals_to_decl): Check COMPLETE_TYPE_P. 1397 1398 PR c++/54021 1399 * call.c (build_cxx_call): Set optimize when folding 1400 __builtin_constant_p in a constexpr function. 1401 14022012-07-18 Jason Merrill <jason@redhat.com> 1403 1404 * pt.c (instantiate_decl): Don't recheck substitutions. 1405 14062012-07-18 Paolo Carlini <paolo.carlini@oracle.com> 1407 Jason Merrill <jason@redhat.com> 1408 1409 DR 1170 1410 PR c++/51213 1411 * semantics.c (perform_access_checks): Add complain parm, return bool. 1412 (perform_deferred_access_checks): Likewise. 1413 (perform_or_defer_access_check): Likewise. 1414 (speculative_access_check): Remove. 1415 * call.c (enforce_access): Add complain parm, return bool. 1416 * decl.c, friend.c, class.c, init.c, parser.c: Adjust callers. 1417 * search.c: Adjust callers. 1418 * cp-tree.h (TINFO_RECHECK_ACCESS_P): New macro. 1419 (FNDECL_RECHECK_ACCESS_P): New macro. 1420 * method.c (synthesized_method_walk): Stop deferring access checks. 1421 * pt.c (recheck_decl_substitution): New. 1422 (instantiate_template_1): Set and check FNDECL_RECHECK_ACCESS_P. 1423 14242012-07-18 Jason Merrill <jason@redhat.com> 1425 1426 * method.c (process_subob_fn): Make sure no_implicit_p is non-null 1427 before trying to store through it. 1428 14292012-07-17 Jason Merrill <jason@redhat.com> 1430 1431 PR c++/53995 1432 * decl.c (finish_enum_value_list): Only call 1433 insert_late_enum_def_into_classtype_sorted_fields in class scope. 1434 1435 PR c++/53989 1436 * tree.c (build_cplus_array_type): Also add TYPE_CANONICAL 1437 to the list of variants. 1438 1439 * decl.c (xref_basetypes): Complain about incomplete template base. 1440 * class.c (finish_struct): Adjust variants in templates, too. 1441 1442 PR c++/53549 1443 * parser.c (cp_parser_class_head): Call xref_basetypes here. 1444 (cp_parser_class_specifier_1): Not here. 1445 * pt.c (tsubst_decl) [USING_DECL]: Check uses_template_parms 1446 as well as DECL_DEPENDENT_P. 1447 14482012-07-16 Jason Merrill <jason@redhat.com> 1449 1450 * cp-tree.h (struct deferred_access_check): Add location. 1451 * semantics.c (perform_access_checks): Use it. 1452 (perform_or_defer_access_check): Store it. 1453 14542012-07-16 Steven Bosscher <steven@gcc.gnu.org> 1455 1456 * dump.c (dump_stmt): Moved here from c-dump.c. 1457 * optimize.c: Include dumpfile.h instead of tree-dump.h. 1458 * class.c: Likewise. 1459 * decl2.c: Likewise. 1460 * Make-lang.in: Fix dependencies. 1461 14622012-07-13 Jason Merrill <jason@redhat.com> 1463 1464 PR c++/53953 1465 * method.c (synthesized_method_walk): Initialize no_implicit_p sooner. 1466 14672012-07-12 Jason Merrill <jason@redhat.com> 1468 1469 * pt.c (instantiate_decl): Check typedefs access here. 1470 (instantiate_template_1): Not here. 1471 1472 * pt.c (deduction_tsubst_fntype): Just suppress access checking. 1473 (instantiate_template_1): Set DECL_TI_TEMPLATE before access checking. 1474 (push_deduction_access_scope, pop_deduction_access_scope): Remove. 1475 14762012-07-11 Jason Merrill <jason@redhat.com> 1477 1478 DR 1402 1479 * method.c (synthesized_method_walk): Replace uses of msg with diag. 1480 Correct handling of virtual bases with move operations. 1481 (process_subob_fn, walk_field_subobs): Replace uses of msg with diag. 1482 14832012-07-11 Steven Bosscher <steven@gcc.gnu.org> 1484 1485 * method.c: Do not include tree-pass.h. 1486 14872012-07-10 Jason Merrill <jason@redhat.com> 1488 1489 DR 1402 1490 PR c++/53733 1491 * cp-tree.h (FNDECL_SUPPRESS_IMPLICIT_DECL): New. 1492 (struct lang_decl_fn): Add suppress_implicit_decl field. 1493 * method.c (implicitly_declare_fn): Check it. 1494 (process_subob_fn): Add no_implicit_p parm. 1495 (walk_field_subobs, synthesized_method_walk): Likewise. 1496 (maybe_explain_implicit_delete): Adjust. 1497 (explain_implicit_non_constexpr): Adjust. 1498 1499 * method.c (synthesized_method_walk): Avoid changing 1500 EH spec based on cleanups in other places, too. 1501 15022012-07-09 Sterling Augustine <saugustine@google.com> 1503 1504 * error.c (lang_decl_name): Use TFF_UNQUALIFIED_NAME flag. 1505 15062012-07-08 Steven Bosscher <steven@gcc.gnu.org> 1507 1508 * decl.c (cp_finish_decl): Add FIXME at add_local_decl call site. 1509 15102012-07-06 Jason Merrill <jason@redhat.com> 1511 1512 PR c++/53862 1513 * pt.c (tsubst_arg_types): Add "end" parameter. 1514 (check_undeduced_parms): Use it. 1515 1516 * cp-tree.h (DECL_DECLARES_TYPE_P): Check DECL_TYPE_TEMPLATE_P. 1517 1518 PR c++/53858 1519 * name-lookup.c (ambiguous_decl): Use DECL_TYPE_TEMPLATE_P. 1520 15212012-07-05 Jason Merrill <jason@redhat.com> 1522 1523 PR c++/53039 1524 * pt.c (arg_from_parm_pack_p): Go back to using same_type_p or 1525 cp_tree_equal. 1526 1527 * cp-tree.h (TEMPLATE_PARM_NUM_SIBLINGS): Remove. 1528 (struct template_parm_index_s): Remove num_siblings. 1529 * pt.c (fixup_template_parms, fixup_template_parm_index): Remove. 1530 (fixup_template_type_parm_type): Remove. 1531 (build_template_parm_index): Remove num_siblings parm. 1532 (process_template_parm): Likewise. 1533 * parser.c (cp_parser_template_parameter_list): Adjust. 1534 * tree.c (cp_tree_equal): Don't compare num_siblings. 1535 * typeck.c (comp_template_parms_position): Likewise. 1536 1537 PR c++/50852 1538 PR c++/53039 1539 * tree.c (strip_typedefs_expr): New. 1540 * cp-tree.h: Declare it. 1541 * pt.c (convert_template_argument, unify): Use it. 1542 * parser.c (cp_parser_template_declaration_after_export): Don't call 1543 fixup_template_parms. 1544 15452012-07-04 Jason Merrill <jason@redhat.com> 1546 1547 PR c++/53848 1548 PR c++/53524 1549 * decl.c (build_enumerator): Don't use build_lang_decl_loc. 1550 15512012-07-03 Jakub Jelinek <jakub@redhat.com> 1552 1553 PR c++/53812 1554 * semantics.c (finish_goto_stmt): Surround computed goto argument 1555 with CLEANUP_POINT_EXPR if needed. 1556 15572012-07-02 Jason Merrill <jason@redhat.com> 1558 1559 PR c++/53619 1560 * pt.c (in_template_function): New. 1561 * cp-tree.h: Declare it. 1562 * class.c (build_base_path, resolves_to_fixed_type_p): Use it. 1563 1564 PR c++/53783 1565 * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Use tsubst 1566 for LAMBDA_EXPR_EXTRA_SCOPE. 1567 1568 PR c++/53788 1569 * pt.c (build_non_dependent_expr): Don't wrap a dummy object. 1570 1571 PR c++/53816 1572 * class.c (resolves_to_fixed_type_p): Check uses_template_parms 1573 (current_function_decl) instead of processing_template_decl. 1574 1575 PR c++/53821 1576 * semantics.c (maybe_add_lambda_conv_op): Don't set 1577 DECL_INTERFACE_KNOWN. 1578 1579 PR c++/53524 1580 * call.c (build_conditional_expr_1): Don't warn about comparison of 1581 two enumerators before their enumeration is complete. 1582 (build_new_op_1): Call decay_conversion before warn_logical_operator. 1583 * decl.c (build_enumerator): Set DECL_CONTEXT of an enumerator to 1584 its enumeration. 1585 * decl2.c (mark_used): Call used_types_insert for enums. 1586 * semantics.c (finish_id_expression): Don't decay CONST_DECL. 1587 (finish_member_declaration): Don't change DECL_CONTEXT of enumerators. 1588 * class.c (check_field_decls): Don't change DECL_CONTEXT of enums. 1589 * typeck.c (convert_for_assignment): Don't decay CONST_DECL. 1590 (build_class_member_access_expr): Look through unscoped enums. 1591 * search.c (context_for_name_lookup): Look through unscoped enums. 1592 * pt.c (tsubst_copy_and_build): Don't decay CONST_DECL. 1593 (tsubst_copy): Use DECL_CONTEXT to find the enumeration. 1594 * tree.c (decl_linkage): Likewise. 1595 * cvt.c (ocp_convert): Check decayed expr for enum range warning. 1596 15972012-06-29 Steven Bosscher <steven@gcc.gnu.org> 1598 1599 * Make-lang.in: Remove tree-mudflap.o from CXX_AND_OBJCXX_OBJS. 1600 16012012-06-27 Jason Merrill <jason@redhat.com> 1602 1603 * parser.c (cp_parser_check_for_invalid_template_id): tag_type parm. 1604 (cp_parser_simple_type_specifier, cp_parser_class_head): Adjust. 1605 (cp_parser_elaborated_type_specifier): Adjust. 1606 * decl.c (duplicate_decls): Return error_mark_node on template 1607 mismatch. 1608 1609 PR c++/53563 1610 * parser.c (cp_parser_template_id): Add tag_type parm. 1611 (cp_parser_template_name): Likewise. 1612 (cp_parser_id_expression, cp_parser_unqualified_id): Adjust. 1613 (cp_parser_pseudo_destructor_name, cp_parser_type_name): Adjust. 1614 (cp_parser_simple_type_specifier, cp_parser_class_name): Adjust. 1615 (cp_parser_elaborated_type_specifier, cp_parser_class_head): Adjust. 1616 16172012-06-27 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 1618 1619 PR C++/51033 1620 * semantics.c (constexpr_call): Fix typo in comment. 1621 (cxx_eval_vec_perm_expr): New. 1622 (cxx_eval_constant_expression): Fold VEC_PERM_EXPRs. 1623 16242012-06-26 Richard Guenther <rguenther@suse.de> 1625 1626 PR c++/53752 1627 * mangle.c (write_array_type): Truncate the number-of-elements 1628 result. 1629 16302012-06-25 Jason Merrill <jason@redhat.com> 1631 1632 PR c++/53498 1633 PR c++/53305 1634 * pt.c (tsubst_decl) [PARM_DECL]: Don't recurse into DECL_CHAIN 1635 if cp_unevaluated_operand is set. 1636 (tsubst_copy) [PARM_DECL]: Don't copy before tsubsting. 1637 1638 PR c++/52988 1639 * typeck.c (decay_conversion): Don't discard side-effects from 1640 expressions of nullptr_t. 1641 16422012-06-25 Florian Weimer <fweimer@redhat.com> 1643 1644 * init.c (build_new_1): Warn about (T[N]) for variable N, and 1645 reject T[M][N]. 1646 1647 * parser.c (cp_parser_direct_new_declarator): Accept non-constant 1648 expressions. Handled now in build_new_1. 1649 16502012-06-25 Jason Merrill <jason@redhat.com> 1651 1652 PR c++/53202 1653 * semantics.c (build_data_member_initialization): Always keep 1654 initializer for empty base. 1655 (cxx_eval_bare_aggregate): Discard it here. 1656 1657 PR c++/53565 1658 * pt.c (tsubst_omp_for_iterator): Simplify DECL_EXPR handling. 1659 (tsubst_expr) [OMP_FOR]: Here, too. 1660 16612012-06-25 Jakub Jelinek <jakub@redhat.com> 1662 1663 PR c++/53594 1664 * class.c (check_bases_and_members): Avoid -Wuninitialized 1665 diagnostics for non-static const members or references if they 1666 use NSDMI. 1667 16682012-06-16 Ville Voutilainen <ville.voutilainen@gmail.com> 1669 1670 * parser.c (cp_parser_direct_declarator): Move virt-specifier 1671 parsing after late-specified return type parsing. 1672 16732012-06-14 Jason Merrill <jason@redhat.com> 1674 1675 PR c++/53651 1676 * name-lookup.c (constructor_name_p): Don't try to look at the 1677 name of a DECLTYPE_TYPE. 1678 16792012-06-18 Lawrence Crowl <crowl@google.com> 1680 1681 * decl2.c (cp_write_global_declarations): Rename use of TV_PHASE_CGRAPH 1682 to TV_PHASE_OPT_GEN. 1683 16842012-06-18 Steven Bosscher <steven@gcc.gnu.org> 1685 1686 * decl.c (finish_function): Remove code conditional on VMS_TARGET. 1687 16882012-06-15 Marc Glisse <marc.glisse@inria.fr> 1689 1690 PR c++/51033 1691 * semantics.c (literal_type_p): Handle VECTOR_TYPE. 1692 (potential_constant_expression_1): Handle VEC_PERM_EXPR. 1693 * parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_SHUFFLE. 1694 16952012-06-09 Jason Merrill <jason@redhat.com> 1696 1697 * pt.c (tsubst_expr) [TAG_DEFN]: Instantiate local class. 1698 * class.c (finish_struct): Don't add a TAG_DEFN for a lambda. 1699 * decl2.c (finish_static_data_member_decl): Avoid redundant error. 1700 1701 PR c++/53599 1702 * name-lookup.c (pushtag_1): Add a DECL_EXPR for a local class. 1703 * semantics.c (finish_cond): Build a COMPOUND_EXPR. 1704 * pt.c (tsubst_expr) [COMPOUND_EXPR]: Handle. 1705 [DECL_EXPR]: Don't call cp_finish_decl for an implicit typedef. 1706 Don't return the decl. 1707 17082012-06-11 Richard Guenther <rguenther@suse.de> 1709 1710 PR c++/53605 1711 * mangle.c (write_array_type): Use double-ints for array domain 1712 arithmetic. 1713 17142012-06-07 Fabien Chêne <fabien@gcc.gnu.org> 1715 1716 PR c++/51214 1717 * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields): 1718 Declare. 1719 * class.c (insert_into_classtype_sorted_fields): New. 1720 (add_enum_fields_to_record_type): New. 1721 (count_fields): Adjust the comment. 1722 (add_fields_to_record_type): Likewise. 1723 (finish_struct_1): Move the code that inserts the fields for the 1724 sorted case, into insert_into_classtype_sorted_fields, and call 1725 it. 1726 (insert_late_enum_def_into_classtype_sorted_fields): Define. 1727 * decl.c (finish_enum_value_list): Call 1728 insert_late_enum_def_into_classtype_sorted_fields if a late enum 1729 definition is encountered. 1730 17312012-06-06 Paolo Carlini <paolo.carlini@oracle.com> 1732 1733 PR c++/53567 1734 * typeck.c (cp_perform_integral_promotions): New, like 1735 perform_integral_promotions but also takes a tsubst_flags_t parameter. 1736 (pointer_diff): Add tsubst_flags_t parameter. 1737 (decay_conversion, cp_default_conversion, cp_build_array_ref, 1738 cp_build_binary_op, cp_build_unary_op, build_static_cast_1, 1739 build_reinterpret_cast_1, cp_build_modify_expr, 1740 convert_for_assignment): Adjust. 1741 * optimize.c (build_delete_destructor_body): Adjust. 1742 * init.c (expand_virtual_init, expand_default_init, build_new_1, 1743 build_new, build_vec_delete_1, build_vec_init, build_delete): Adjust. 1744 (construct_virtual_base): Adjust LOOKUP_COMPLAIN -> 0. 1745 * class.c (build_base_path): Adjust. 1746 * decl.c (compute_array_index_type, finish_destructor_body): Likewise. 1747 * method.c (synthesized_method_walk): Adjust flag and complain. 1748 * rtti.c (ifnonnull): Add tsubst_flags_t parameter. 1749 (build_typeid, build_dynamic_cast_1): Adjust. 1750 * except.c (initialize_handler_parm): Likewise. 1751 * typeck2.c (process_init_constructor_record): Likewise. 1752 * pt.c (tsubst_friend_class): Don't change flags. 1753 * semantics.c (finish_goto_stmt, handle_omp_for_class_iterator, 1754 finish_static_assert): Likewise. 1755 * parser.c (cp_parser_lookup_name): Just pass 0 as flags to 1756 lookup_name_real. 1757 * call.c (build_op_delete_call): Add tsubst_flags_t parameter. 1758 (convert_like_real, convert_arg_to_ellipsis, convert_for_arg_passing): 1759 Adjust. 1760 (standard_conversion): Adjust LOOKUP_COMPLAIN -> 0. 1761 (implicit_conversion): Mask out tf_error with a FIXME. 1762 (build_user_type_conversion_1, build_new_op_1, build_over_call): Use 1763 complain & tf_error instead of flags & LOOKUP_COMPLAIN. 1764 * cvt.c (cp_convert_to_pointer, convert_to_pointer_force, 1765 build_up_reference, convert_to_reference, cp_convert, 1766 cp_convert_and_check, ocp_convert, convert_force): Add tsubst_flags_t 1767 parameter. 1768 (convert_to_reference, ocp_convert): Use complain & tf_error instead 1769 of flags & LOOKUP_COMPLAIN. 1770 (convert_force): Adjust LOOKUP_COMPLAIN -> 0. 1771 * name-lookup.c (identifier_type_value_1, lookup_qualified_name, 1772 lookup_name_real, lookup_function_nonclass, lookup_name, 1773 lookup_name_prefer_type): Adjust LOOKUP_COMPLAIN -> 0. 1774 * cp-tree.h: Adjust prototypes; remove LOOKUP_COMPLAIN. 1775 17762012-06-06 Steven Bosscher <steven@gcc.gnu.org> 1777 1778 * decl.c: Do not include output.h. 1779 (start_decl): Remove code for flag_conserve_space. 1780 17812012-06-06 Fabien Chêne <fabien@gcc.gnu.org> 1782 1783 PR c++/52841 1784 * parser.c (cp_parser_alias_declaration): Return earlier 1785 if an error occured. 1786 17872012-06-04 Paolo Carlini <paolo.carlini@oracle.com> 1788 1789 PR c++/53524 1790 * call.c (build_conditional_expr_1): Use OPT_Wenum_compare 1791 to control enumeral mismatch in conditional expression too. 1792 17932012-06-04 Sterling Augustine <saugustine@google.com> 1794 1795 * cp-tree.h: Declare decl_as_dwarf_string, lang_decl_dwarf_name. 1796 * cp-lang.c (cxx_dwarf_name): Call them. 1797 17982012-06-04 Steven Bosscher <steven@gcc.gnu.org> 1799 1800 * semantics.c: Do not include output.h. 1801 * decl2.c: Likewise. 1802 * friend.c: Likewise. 1803 * typeck.c: Likewise. 1804 * typeck2.c: Likewise. 1805 * Make-lang.in: Fix dependencies. 1806 18072012-06-01 Jason Merrill <jason@redhat.com> 1808 1809 PR c++/52973 1810 * parser.c (cp_parser_class_head): Apply attributes here. 1811 * semantics.c (begin_class_definition): Not here. 1812 * cp-tree.h: Adjust. 1813 1814 PR c++/52725 1815 * parser.c (cp_parser_binary_expression): Bail early if we're parsing 1816 tentatively and the LHS has a parse error. 1817 1818 PR c++/53137 1819 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE. 1820 (instantiate_decl): Don't push_to_top_level for local class methods. 1821 (instantiate_class_template_1): Or for local classes. 1822 1823 PR c++/53484 1824 * pt.c (do_auto_deduction): Don't try to deduce from a 1825 type-dependent initializer. 1826 18272012-06-01 Paolo Carlini <paolo.carlini@oracle.com> 1828 1829 PR c++/26155 1830 * name-lookup.c (push_namespace): When error recovery is 1831 impossible just error out in duplicate_decls. 1832 18332012-05-31 Steven Bosscher <steven@gcc.gnu.org> 1834 1835 * call.c: Do not include output.h. 1836 * class.c: Likewise. 1837 * except.c: Likewise. 1838 * friend.c: Likewise. 1839 * init.c: Likewise. 1840 * lex.c: Likewise. 1841 * method.c: Likewise. 1842 * parser.c: Likewise. 1843 * pt.c: Likewise. 1844 * rtti.c: Likewise. 1845 * search.c: Likewise. 1846 18472012-05-30 Jason Merrill <jason@redhat.com> 1848 1849 PR c++/53356 1850 * tree.c (stabilize_init): Handle stabilizing a TARGET_EXPR 1851 representing a bitwise copy of a glvalue. 1852 1853 * tree.c (stabilize_expr): Tweak logic. 1854 1855 PR c++/53356 1856 * tree.c (stabilize_init): Side effects make the init unstable. 1857 18582012-05-28 Paolo Carlini <paolo.carlini@oracle.com> 1859 1860 PR c++/53503 1861 * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR. 1862 18632012-05-26 Paolo Carlini <paolo.carlini@oracle.com> 1864 1865 PR c++/53491 1866 * tree.c (stabilize_expr): Handle exp of void type. 1867 18682012-05-26 Jason Merrill <jason@redhat.com> 1869 1870 PR c++/53220 1871 * call.c (convert_like_real) [ck_list]: Take array address directly. 1872 * typeck.c (decay_conversion): Reject decay of an array compound 1873 literal. 1874 18752012-05-25 Paolo Carlini <paolo.carlini@oracle.com> 1876 1877 PR c++/32054 1878 * parser.c (cp_parser_member_declaration): A storage class is not 1879 allowed in a declaration of an anonymous aggregate in a class scope. 1880 18812012-05-24 Uros Bizjak <ubizjak@gmail.com> 1882 1883 PR obj-c++/53441 1884 * decl.c (grokdeclarator): Check that current_class_type is non-NULL 1885 before calling constructor_name_p. 1886 18872012-05-24 Paolo Carlini <paolo.carlini@oracle.com> 1888 1889 PR c++/32080 1890 * parser.c (cp_parser_ctor_initializer_opt_and_function_body, 1891 cp_parser_function_body): Add a bool parameter, true when parsing 1892 a function-try-block. 1893 (cp_parser_function_try_block): Pass true to the above. 1894 (cp_parser_function_definition_after_declarator, 1895 cp_parser_function_transaction): Adjust. 1896 18972012-05-23 Paolo Carlini <paolo.carlini@oracle.com> 1898 1899 PR c++/29185 1900 * decl2.c (delete_sanity): Extend 'deleting array' warning to 1901 any array type. 1902 19032012-05-21 Paolo Carlini <paolo.carlini@oracle.com> 1904 1905 PR c++/51184 1906 * decl.c (grokdeclarator): Diagnose functions returning abstract 1907 class types as TYPENAME. 1908 * cp-tree.h (ABSTRACT_CLASS_TYPE_P): Add. 1909 * except.c (is_admissible_throw_operand_or_catch_parameter): Use it. 1910 * pt.c (tsubst): Likewise. 1911 * semantics.c (trait_expr_value): Likewise. 1912 19132012-05-21 Paolo Carlini <paolo.carlini@oracle.com> 1914 1915 PR c++/40821 1916 * parser.c (cp_parser_attributes_opt): Enforce error checking of 1917 unbalanced parentheses in the presence of tentative parsing. 1918 19192012-05-17 Paolo Carlini <paolo.carlini@oracle.com> 1920 1921 PR c++/39681 1922 * parser.c (cp_parser_new_type_id): Early return error_mark_node 1923 if the cp_parser_type_specifier_seq call has type_specifier_seq.type 1924 error_mark_node; tidy. 1925 (cp_parser_new_expression): Always initialize nelts to NULL_TREE to 1926 avoid uninitialized warnings. 1927 (cp_parser_init_declarator, cp_parser_late_parse_one_default_arg): 1928 Call cp_parser_skip_to_end_of_statement if cp_parser_initializer 1929 returns error_mark_node. 1930 19312012-05-17 Paolo Carlini <paolo.carlini@oracle.com> 1932 1933 PR c++/53371 1934 * except.c (is_admissible_throw_operand): Rename to 1935 is_admissible_throw_operand_or_catch_parameter and handle 1936 catch parameter too. 1937 (expand_start_catch_block): Use it. 1938 (build_throw): Adjust. 1939 19402012-05-17 Paolo Carlini <paolo.carlini@oracle.com> 1941 1942 PR c++/44516 1943 * typeck.c (build_x_array_ref, build_x_conditional_expr, 1944 build_x_compound_expr, build_x_modify_expr): Add location_t parameter. 1945 (finish_class_member_access_expr, build_x_indirect_ref, 1946 build_x_binary_op, build_x_compound_expr_from_list, 1947 build_x_compound_expr_from_vec): Adjust callers. 1948 * tree.c (build_min_nt_loc): New. 1949 (build_min_nt): Remove. 1950 * typeck2.c (build_x_arrow): Adjust callers. 1951 * pt.c (tsubst_qualified_id, tsubst_omp_for_iterator, 1952 tsubst_copy_and_build): Likewise. 1953 * semantics.c (finish_mem_initializers, handle_omp_for_class_iterator, 1954 finish_omp_atomic): Likewise. 1955 * decl2.c (grok_array_decl, build_anon_union_vars): Adjust. 1956 * parser.c (cp_parser_question_colon_clause, 1957 cp_parser_assignment_expression, cp_parser_expression, 1958 cp_parser_template_id, cp_parser_omp_for_loop): Likewise. 1959 * cp-tree.h: Update. 1960 19612012-05-16 Dodji Seketeli <dodji@redhat.com> 1962 1963 PR preprocessor/7263 1964 * cp-tree.h (enum cp_decl_spec): Add new enumerators to cover all 1965 the possible declarator specifiers so far. 1966 (struct cp_decl_specifier_seq::locations): Declare new member. 1967 (cp_decl_specifier_seq::{specs, type_location}): Remove. 1968 (decl_spec_seq_has_spec_p): Declare new function. 1969 * parser.c (cp_parser_check_decl_spec): Remove. 1970 (set_and_check_decl_spec_loc): Define new static function. 1971 (decl_spec_seq_has_spec_p): Define new public function. 1972 (cp_parser_decl_specifier_seq, cp_parser_function_specifier_opt) 1973 (cp_parser_type_specifier, cp_parser_simple_type_specifier) 1974 (cp_parser_set_storage_class, cp_parser_set_decl_spec_type) 1975 (cp_parser_alias_declaration): Set the locations for each 1976 declspec, using set_and_check_decl_spec_loc. 1977 (cp_parser_explicit_instantiation, cp_parser_init_declarator) 1978 (cp_parser_member_declaration, cp_parser_init_declarator): Use the 1979 new declspec location for specifiers. Use the new 1980 decl_spec_seq_has_spec_p. 1981 (cp_parser_type_specifier_seq): Use the new 1982 set_and_check_decl_spec_loc. Stop using 1983 cp_parser_check_decl_spec. Use the new decl_spec_seq_has_spec_p. 1984 (, cp_parser_init_declarator): Use the new 1985 set_and_check_decl_spec_loc. 1986 (cp_parser_single_declaration, cp_parser_friend_p) 1987 (cp_parser_objc_class_ivars, cp_parser_objc_struct_declaration): 1988 Use the new decl_spec_seq_has_spec_p. 1989 * decl.c (check_tag_decl): Use new decl_spec_seq_has_spec_p. Use 1990 the more precise ds_redefined_builtin_type_spec location for 1991 diagnostics about re-declaring C++ built-in types. 1992 (start_decl, grokvardecl, grokdeclarator): Use the new 1993 decl_spec_seq_has_spec_p. 1994 19952012-05-15 Paolo Carlini <paolo.carlini@oracle.com> 1996 1997 PR c++/11856 1998 * pt.c (tsubst_copy_and_build): Increase / decrease 1999 c_inhibit_evaluation_warnings around build_x_binary_op call. 2000 20012012-05-12 Paolo Carlini <paolo.carlini@oracle.com> 2002 2003 * cp-tree.h (TYPE_PTRMEM_P): Rename to TYPE_PTRDATAMEM_P. 2004 (TYPE_PTR_TO_MEMBER_P): Rename to TYPE_PTRMEM_P. 2005 (TYPE_PTR_OR_PTRMEM_P): Add. 2006 * typeck.c (composite_pointer_type_r, composite_pointer_type, 2007 common_pointer_type, cp_build_indirect_ref, cp_build_binary_op, 2008 cp_truthvalue_conversion, convert_ptrmem, build_static_cast_1, 2009 build_reinterpret_cast_1, build_const_cast_1, comp_ptr_ttypes_real, 2010 casts_away_constness_r, casts_away_constness): Adjust. 2011 * init.c (build_zero_init_1): Adjust. 2012 * class.c (check_field_decls): Likewise. 2013 * decl.c (check_default_argument): Likewise. 2014 * rtti.c (target_incomplete_p): Likewise. 2015 * tree.c (zero_init_p): Likewise. 2016 * cxx-pretty-print.c (pp_cxx_ptr_operator, 2017 pp_cxx_abstract_declarator): Likewise. 2018 * typeck2.c (build_m_component_ref): Likewise. 2019 * pt.c (convert_nontype_argument, invalid_nontype_parm_type_p, 2020 dependent_type_p_r): Likewise. 2021 * call.c (null_member_pointer_value_p, standard_conversion, 2022 add_builtin_candidate, build_conditional_expr_1, compare_ics): 2023 Likewise. 2024 * cp-objcp-common.c (cp_var_mod_type_p): Likewise. 2025 * cvt.c (cp_convert_to_pointer, ocp_convert, 2026 perform_qualification_conversions): Likewise. 2027 * mangle.c (write_type): Likewise. 2028 * name-lookup.c (arg_assoc_type): Likewise. 2029 20302012-05-12 Paolo Carlini <paolo.carlini@oracle.com> 2031 2032 * parser.c (struct cp_parser_expression_stack_entry): Add location_t 2033 field. 2034 (cp_parser_binary_expression): Rework to always update at the same 2035 time tree_type and loc. 2036 * call.c (print_z_candidate): Add location_t parameter. 2037 (print_z_candidates, convert_like_real, joust): Adjust. 2038 20392012-05-11 Alexandre Oliva <aoliva@redhat.com> 2040 2041 PR c++/53209 2042 * pt.c (tsubst_decl): Bail out if argvec is error_mark_node. 2043 20442012-05-11 Paolo Carlini <paolo.carlini@oracle.com> 2045 2046 PR c++/53305 2047 * pt.c (tsubst_copy: case PARM_DECL): Return error_mark_node if 2048 tsubst_decl returns NULL_TREE. 2049 * cxx-pretty-print.c (pp_cxx_simple_type_specifier): Handle 2050 BOUND_TEMPLATE_TEMPLATE_PARM. 2051 20522012-05-10 Paolo Carlini <paolo.carlini@oracle.com> 2053 2054 PR c++/53158 2055 * cvt.c (ocp_convert): Error out early for void -> bool conversions. 2056 * typeck.c (decay_conversion): Use error_at. 2057 * call.c (build_integral_nontype_arg_conv, convert_like_real, 2058 convert_arg_to_ellipsis, perform_implicit_conversion_flags, 2059 initialize_reference): Likewise. 2060 * cvt.c (warn_ref_binding): Add location_t parameter. 2061 (cp_convert_to_pointer, convert_to_reference, ocp_convert, 2062 convert_to_void, ): Use error_at and warning_at. 2063 20642012-05-10 Paolo Carlini <paolo.carlini@oracle.com> 2065 2066 PR c++/53301 2067 * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P 2068 instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning. 2069 20702012-05-06 Paolo Carlini <paolo.carlini@oracle.com> 2071 2072 PR c++/53152 2073 * call.c (op_error, build_new_op_1, build_new_op): Add location_t 2074 parameter. 2075 (build_conditional_expr_1): Adjust. 2076 * typeck.c (build_x_indirect_ref, build_x_binary_op, 2077 build_x_unary_op): Add location_t parameter. 2078 (rationalize_conditional_expr, build_x_array_ref, 2079 build_x_compound_expr, cp_build_modify_expr, build_x_modify_expr): 2080 Adjust. 2081 * typeck2.c (build_x_arrow): Add location_t parameter. 2082 * semantics.c (finish_unary_op_expr): Likewise. 2083 (finish_increment_expr, handle_omp_for_class_iterator): Adjust. 2084 * decl2.c (grok_array_decl): Add location_t parameter. 2085 * parser.c (cp_parser_postfix_open_square_expression, 2086 cp_parser_postfix_dot_deref_expression, cp_parser_unary_expression, 2087 cp_parser_binary_expression, cp_parser_builtin_offsetof, 2088 do_range_for_auto_deduction, cp_convert_range_for, 2089 cp_parser_template_argument, cp_parser_omp_for_cond): Pass the 2090 location, adjust. 2091 * pt.c (tsubst_copy_and_build): Adjust. 2092 * tree.c (maybe_dummy_object): Likewise. 2093 * cp-tree.h: Update declarations. 2094 20952012-05-04 Paolo Carlini <paolo.carlini@oracle.com> 2096 2097 * semantics.c (cxx_eval_constant_expression, case CONVERT_EXPR): Tidy. 2098 20992012-05-04 Paolo Carlini <paolo.carlini@oracle.com> 2100 2101 PR c++/53166 2102 * pt.c (instantiate_class_template_1): Increase / decrease 2103 c_inhibit_evaluation_warnings around the tsubst_expr call 2104 for STATIC_ASSERT_CONDITION. 2105 (tsubst_expr, case STATIC_ASSERT): Likewise. 2106 * typeck.c (cp_build_binary_op, case EQ_EXPR/NE_EXPR): Check 2107 c_inhibit_evaluation_warnings in the OPT_Waddress warnings. 2108 21092012-05-03 Paolo Carlini <paolo.carlini@oracle.com> 2110 2111 PR c++/53186 2112 * call.c (build_over_call): Handle final member functions 2113 and class types. 2114 (build_new_method_call_1): Do not handle here. 2115 21162012-05-02 Richard Guenther <rguenther@suse.de> 2117 2118 * decl.c (grokdeclarator): Properly check for sizes that 2119 cover more than half of the address-space. 2120 21212012-04-30 Marc Glisse <marc.glisse@inria.fr> 2122 2123 PR c++/51033 2124 * typeck.c (cp_build_array_ref): Handle VECTOR_TYPE. 2125 * decl2.c (grok_array_decl): Likewise. 2126 2127 PR c++/51314 2128 * parser.c (cp_parser_sizeof_operand): Require parentheses for 2129 sizeof... 2130 21312012-04-30 Dodji Seketeli <dodji@redhat.com> 2132 2133 Fix location for static class members 2134 * decl.c (grokdeclarator): Use the location carried by the 2135 declarator for the DECL of the static class member. 2136 2137 Fix va_arg type location 2138 * cp-tree.h (build_x_va_arg): Take an additional location 2139 parameter. 2140 * call.c (build_x_va_arg): Take a loc parameter for the location 2141 of the type of the va_arg expression. 2142 * parser.c (cp_parser_primary_expression): Pass the type of the 2143 type in the va_arg expression to build_x_va_arg. 2144 * pt.c (tsubst_copy): Adjust calls to build_x_va_arg. 2145 2146 Make conversion warnings work on NULL with -ftrack-macro-expansion 2147 * call.c (conversion_null_warnings): Use the new 2148 expansion_point_location_if_in_system_header. 2149 * cvt.c (build_expr_type_conversion): Likewise. 2150 * typeck.c (cp_build_binary_op): Likewise. 2151 21522012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org> 2153 2154 * typeck.c (convert_for_assignment): Replace 2155 Wmissing-format-attribute with Wsuggest-attribute=format. 2156 * call.c (convert_for_arg_passing): Likewise. 2157 21582012-04-26 Paolo Carlini <paolo.carlini@oracle.com> 2159 2160 PR c++/53096 2161 * class.c (check_bases_and_members): Implement core/1333, do not 2162 disallow defaulted in the class body non-const ref special members. 2163 21642012-04-24 Paolo Carlini <paolo.carlini@oracle.com> 2165 2166 PR c++/52363 2167 * call.c (tourney, perform_overload_resolution, 2168 build_operator_new_call, build_user_type_conversion_1, 2169 build_user_type_conversion, perform_overload_resolution, 2170 add_template_candidate, add_template_candidate_real, 2171 add_template_conv_candidate, add_builtin_candidates, 2172 add_builtin_candidate, build_builtin_candidate, 2173 add_conv_candidate, add_function_candidate, implicit_conversion, 2174 reference_binding, build_list_conv, conditional_conversion, 2175 add_candidates, can_convert_array, build_aggr_conv, 2176 build_array_conv, build_complex_conv, conditional_conversion): 2177 Add tsubst_flags_t parameter. 2178 (joust): Likewise, use it to handle SFINAE as if pedantic. 2179 (add_list_candidates, build_integral_nontype_arg_conv, 2180 perform_overload_resolution, build_new_function_call, 2181 build_operator_new_call, build_op_call_1, 2182 build_conditional_expr_1, build_new_op_1, convert_like_real, 2183 convert_arg_to_ellipsis, convert_default_arg, 2184 convert_for_arg_passing, build_over_call, 2185 build_new_method_call_1, can_convert_arg, can_convert_arg_bad, 2186 perform_implicit_conversion_flags, 2187 perform_direct_initialization_if_possible, 2188 initialize_reference): Adjust. 2189 * typeck.c (casts_away_constness, casts_away_constness_r): 2190 Add tsubst_flags_t parameter. 2191 (convert_arguments, check_for_casting_away_constness, 2192 build_static_cast_1, build_ptrmemfunc, convert_for_assignment): 2193 Adjust. 2194 * decl.c (reshape_init_r, check_default_argument): Likewise. 2195 * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise. 2196 * pt.c (convert_nontype_argument, check_non_deducible_conversion): 2197 Likewise. 2198 * init.c (build_new_1): Likewise. 2199 * cvt.c (convert_to_reference, ocp_convert, build_type_conversion, 2200 build_expr_type_conversion, ): Likewise. 2201 * search.c (check_final_overrider): Likewise. 2202 * cp-tree.h (build_user_type_conversion, 2203 build_operator_new_call, can_convert, can_convert_arg, 2204 can_convert_arg_bad, convert_default_arg, 2205 convert_arg_to_ellipsis, convert_for_arg_passing): 2206 Adjust declaration. 2207 22082012-04-22 Jan Hubicka <jh@suse.cz> 2209 2210 * decl2.c (maybe_make_one_only): Mark keyed COMDATs as USED so they 2211 gets finalized. 2212 22132012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org> 2214 2215 PR c/44774 2216 * typeck.c (composite_pointer_type): Likewise. 2217 (cxx_sizeof_or_alignof_type): Likewise. 2218 (cp_build_array_ref): Likewise. 2219 (cp_build_function_call_vec): Likewise. 2220 (cp_build_addr_expr_1): Likewise. 2221 (convert_member_func_to_ptr): Likewise. 2222 * decl.c (check_tag_decl): Likewise. 2223 (check_static_variable_definition): Likewise. 2224 (compute_array_index_type): Likewise. 2225 (create_array_type_for_decl): Likewise. 2226 (grokdeclarator): Likewise. 2227 (grok_op_properties): Likewise. 2228 * error.c (maybe_warn_cpp0x): Likewise. 2229 * pt.c (maybe_process_partial_specialization): Likewise. 2230 (convert_template_argument): Likewise. 2231 (do_decl_instantiation): Likewise. 2232 (do_type_instantiation): Likewise. 2233 * parser.c (cp_parser_primary_expression): Likewise. 2234 (cp_parser_postfix_expression): Likewise. 2235 (cp_parser_unary_expression): Likewise. 2236 (cp_parser_question_colon_clause): Likewise. 2237 (cp_parser_lambda_introducer): Likewise. 2238 (cp_parser_lambda_declarator_opt): Likewise. 2239 (cp_parser_compound_statement): Likewise. 2240 (cp_parser_jump_statement): Likewise. 2241 (cp_parser_declaration_seq_opt): Likewise. 2242 (cp_parser_enum_specifier): Likewise. 2243 (cp_parser_enumerator_list): Likewise. 2244 (cp_parser_initializer_list): Likewise. 2245 (cp_parser_member_declaration): Likewise. 2246 * call.c (build_conditional_expr_1): Likewise. 2247 * friend.c (make_friend_class): Likewise. 2248 * name-lookup.c (pushdecl_maybe_friend_1): Likewise. 2249 22502012-04-21 Jan Hubicka <jh@suse.cz> 2251 2252 * method.c (make_alias_for): Do not set TREE_SYMBOL_REFERENCED. 2253 * decl2.c (mark_needed): Likewise. 2254 (decl_needed_p): Do not test TREE_SYMBOL_REFERENCED. 2255 2256 * decl2.c (cxx_callgraph_analyze_expr): Remove. 2257 * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove. 2258 * cp-tree.h (cxx_callgraph_analyze_expr): Remove. 2259 22602012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org> 2261 2262 PR 35441 2263 * typeck.c (cp_build_function_call_vec): Do not pretty-print 2264 expressions when caret is enabled. 2265 22662012-04-20 Jan Hubicka <jh@suse.cz> 2267 2268 PR target/53042 2269 * decl2.c (maybe_emit_vtables): Do not initialize same_comdat_group 2270 list when target has no support for it. 2271 22722012-04-20 Michael Matz <matz@suse.de> 2273 2274 * error.c (pedwarn_cxx98): Move va_end call after user 2275 of the va_list. 2276 22772012-04-18 Paolo Carlini <paolo.carlini@oracle.com> 2278 2279 PR c++/52422 2280 * cp-tree.h (build_addr_func, decay_conversion, 2281 get_member_function_from_ptrfunc, 2282 build_m_component_ref, convert_member_func_to_ptr): 2283 Add tsubst_flags_t parameter. 2284 * typeck.c (cp_default_conversion): Add. 2285 (decay_conversion, default_conversion, 2286 get_member_function_from_ptrfunc, convert_member_func_to_ptr): 2287 Add tsubst_flags_t parameter and use it throughout. 2288 (cp_build_indirect_ref, cp_build_array_ref, 2289 cp_build_function_call_vec, convert_arguments, build_x_binary_op, 2290 cp_build_binary_op, cp_build_unary_op, build_reinterpret_cast_1, 2291 build_const_cast_1, expand_ptrmemfunc_cst, 2292 convert_for_initialization): Adjust. 2293 * init.c (build_vec_init): Adjust. 2294 * decl.c (grok_reference_init, get_atexit_node): Likewise. 2295 * rtti.c (build_dynamic_cast_1, tinfo_base_init): Likewise. 2296 * except.c (build_throw): Likewise. 2297 * typeck2.c (build_x_arrow): Likewise. 2298 (build_m_component_ref): Add tsubst_flags_t parameter and 2299 use it throughout. 2300 * pt.c (convert_nontype_argument): Adjust. 2301 * semantics.c (finish_asm_stmt, maybe_add_lambda_conv_op): Likewise. 2302 * decl2.c (build_offset_ref_call_from_tree): Likewise. 2303 * call.c (build_addr_func): Add tsubst_flags_t parameter and 2304 use it throughout. 2305 (build_call_a, build_conditional_expr_1, build_new_op_1, 2306 convert_like_real, convert_arg_to_ellipsis, build_over_call, 2307 build_special_member_call): Adjust. 2308 * cvt.c (cp_convert_to_pointer, force_rvalue, 2309 build_expr_type_conversion): Likewise. 2310 23112012-04-17 Tom de Vries <tom@codesourcery.com> 2312 2313 * cp-gimplify.c (begin_bc_block): Add location parameter and use as 2314 location argument to create_artificial_label. 2315 (finish_bc_block): Change return type to void. Remove body_seq 2316 parameter, and add block parameter. Append label to STMT_LIST and 2317 return in block. 2318 (gimplify_cp_loop, gimplify_for_stmt, gimplify_while_stmt) 2319 (gimplify_do_stmt, gimplify_switch_stmt): Remove function. 2320 (genericize_cp_loop, genericize_for_stmt, genericize_while_stmt) 2321 (genericize_do_stmt, genericize_switch_stmt, genericize_continue_stmt) 2322 (genericize_break_stmt, genericize_omp_for_stmt): New function. 2323 (cp_gimplify_omp_for): Remove bc_continue processing. 2324 (cp_gimplify_expr): Genericize VEC_INIT_EXPR. 2325 (cp_gimplify_expr): Mark FOR_STMT, WHILE_STMT, DO_STMT, SWITCH_STMT, 2326 CONTINUE_STMT, and BREAK_STMT as unreachable. 2327 (cp_genericize_r): Genericize FOR_STMT, WHILE_STMT, DO_STMT, 2328 SWITCH_STMT, CONTINUE_STMT, BREAK_STMT and OMP_FOR. 2329 (cp_genericize_tree): New function, factored out of ... 2330 (cp_genericize): ... this function. 2331 23322012-04-17 Paolo Carlini <paolo.carlini@oracle.com> 2333 2334 PR c++/52599 2335 * semantics.c (build_constexpr_constructor_member_initializers): 2336 Check for function-try-block as function-body. 2337 23382012-04-17 Paolo Carlini <paolo.carlini@oracle.com> 2339 2340 PR c++/53003 2341 * parser.c (cp_parser_member_declaration): Check that 2342 initializer_token_start is non null before dereferencing it. 2343 23442012-04-16 Jason Merrill <jason@redhat.com> 2345 2346 PR c++/38543 2347 * pt.c (determine_specialization): Instead of comparing the number 2348 of parms, check that tsubst gives the right answer. 2349 2350 PR c++/52008 2351 * pt.c (process_partial_specialization): Complain about a partial 2352 specialization with fewer args than primary template parms. 2353 2354 PR c++/50830 2355 * pt.c (convert_template_argument): Handle template template 2356 argument packs. 2357 2358 PR c++/50303 2359 * pt.c (tsubst_pack_expansion): Use tsubst_expr for template 2360 template parameters. 2361 23622012-04-16 Paolo Carlini <paolo.carlini@oracle.com> 2363 2364 PR c++/49152 2365 * call.c (op_error): Print types; when flag_diagnostics_show_caret 2366 is false print expressions too. 2367 (op_error_string): Add. 2368 23692012-04-16 Jason Merrill <jason@redhat.com> 2370 2371 PR c++/51148 2372 * friend.c (make_friend_class): Call check_for_bare_parameter_packs. 2373 23742012-04-16 Jan Hubicka <jh@suse.cz> 2375 2376 * decl2.c (collect_candidates_for_java_method_alias): Use FOR_EACH 2377 walkers to walk cgraph and varpool. 2378 23792012-04-15 Jason Merrill <jason@redhat.com> 2380 2381 PR c++/47220 2382 * pt.c (coerce_template_parameter_pack): Check for error_mark_node. 2383 2384 PR c++/52292 2385 PR c++/52380 2386 * pt.c (coerce_template_parms): Even if we aren't converting we 2387 want to expand argument packs. 2388 2389 PR c++/52706 2390 * mangle.c (write_type): nullptr_t is a builtin type. 2391 23922012-04-14 Jan Hubicka <jh@suse.cz> 2393 2394 * tree.c: Update field referenced for new cgraph/varpool layout. 2395 * decl2.c: Likewise. 2396 23972012-04-13 Jason Merrill <jason@redhat.com> 2398 2399 PR c++/52824 2400 * pt.c (any_pack_expanson_args_p): New. 2401 (coerce_template_parms): Use it. 2402 2403 PR c++/52905 2404 * call.c (joust): Handle comparing list and non-list ctors. 2405 2406 PR c++/52915 2407 * decl2.c (finish_anon_union): Use cp_finish_decl. 2408 * error.c (dump_function_name): Avoid showing anonymous "name". 2409 24102012-04-11 Fabien Chêne <fabien@gcc.gnu.org> 2411 2412 PR c++/52465 2413 * parser.c (cp_parser_class_name): Call strip_using_decl and 2414 return the target decl. 2415 * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl 2416 to be stripped is NULL_TREE. 2417 (qualify_lookup): Call strip_using_decl and perform some checks on 2418 the target decl. 2419 24202012-04-11 Jason Merrill <jason@redhat.com> 2421 2422 PR debug/45088 2423 * decl.c (grokdeclarator): Strip the injected-class-name typedef 2424 if we are building a declaration or compound type. 2425 2426 PR c++/52906 2427 * decl.c (check_tag_decl): Don't complain about attributes if we 2428 don't even have a type. 2429 24302012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org> 2431 2432 * cvt.c (convert_to_void): Update comment. 2433 24342012-04-05 Jason Merrill <jason@redhat.com> 2435 2436 PR c++/52596 2437 * semantics.c (finish_non_static_data_member): In templates, pass 2438 the decl to build_qualified_name. 2439 * tree.c (lvalue_kind) [SCOPE_REF]: Handle FIELD_DECL. 2440 24412012-04-04 Jason Merrill <jason@redhat.com> 2442 2443 PR c++/52845 2444 * decl.c (finish_function): Update fntype after deducing return type. 2445 24462012-04-03 Jason Merrill <jason@redhat.com> 2447 2448 PR c++/52796 2449 * pt.c (tsubst_initializer_list): A pack expansion with no elements 2450 means value-initialization. 2451 24522012-04-01 Paolo Carlini <paolo.carlini@oracle.com> 2453 2454 PR c++/50043 2455 * class.c (deduce_noexcept_on_destructor, 2456 deduce_noexcept_on_destructors): New. 2457 (check_bases_and_members): Call the latter. 2458 * decl.c (grokfndecl): Call the former. 2459 * method.c (implicitly_declare_fn): Not static. 2460 * cp-tree.h (deduce_noexcept_on_destructor, implicitly_declare_fn): 2461 Declare 2462 24632012-03-29 Paolo Carlini <paolo.carlini@oracle.com> 2464 2465 PR c++/52718 2466 * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant 2467 warn for a zero as null pointer constant default argument. 2468 24692012-03-29 Jason Merrill <jason@redhat.com> 2470 2471 PR c++/52685 2472 * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P. 2473 24742012-03-29 Jakub Jelinek <jakub@redhat.com> 2475 2476 PR c++/52759 2477 * decl.c (start_decl): Don't call maybe_apply_pragma_weak 2478 if processing_template_decl. 2479 24802012-03-29 Jason Merrill <jason@redhat.com> 2481 2482 PR c++/52743 2483 * call.c (compare_ics): Handle ck_aggr like ck_list. 2484 24852012-03-28 Jason Merrill <jason@redhat.com> 2486 2487 PR c++/52746 2488 * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if 2489 we didn't get an explicit scope. 2490 * pt.c (tsubst_baselink): Likewise. 2491 24922012-03-28 Richard Guenther <rguenther@suse.de> 2493 2494 * typeck2.c (process_init_constructor_array): Use the proper 2495 type for computing the array length. 2496 24972012-03-27 Meador Inge <meadori@codesourcery.com> 2498 2499 PR c++/52672 2500 * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold 2501 stripped child trees that are not pointer types. 2502 25032012-03-21 Jason Merrill <jason@redhat.com> 2504 2505 Implement return type deduction for normal functions with -std=c++1y. 2506 * cp-tree.h (FNDECL_USED_AUTO): New macro. 2507 (LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P): Remove. 2508 (dependent_lambda_return_type_node): Remove. 2509 (CPTI_DEPENDENT_LAMBDA_RETURN_TYPE): Remove. 2510 (struct language_function): Add x_auto_return_pattern field. 2511 (current_function_auto_return_pattern): New. 2512 (enum tsubst_flags): Add tf_partial. 2513 * decl.c (decls_match): Handle auto return comparison. 2514 (duplicate_decls): Adjust error message for auto return. 2515 (cxx_init_decl_processing): Remove dependent_lambda_return_type_node. 2516 (cp_finish_decl): Don't do auto deduction for functions. 2517 (grokdeclarator): Allow auto return without trailing return type in 2518 C++1y mode. 2519 (check_function_type): Defer checking of deduced return type. 2520 (start_preparsed_function): Set current_function_auto_return_pattern. 2521 (finish_function): Set deduced return type to void if not previously 2522 deduced. 2523 * decl2.c (change_return_type): Handle error_mark_node. 2524 (mark_used): Always instantiate functions with deduced return type. 2525 Complain about use if deduction isn't done. 2526 * parser.c (cp_parser_lambda_declarator_opt): Use 'auto' for 2527 initial return type. 2528 (cp_parser_lambda_body): Don't deduce return type in a template. 2529 (cp_parser_conversion_type_id): Allow auto in C++1y. 2530 * pt.c (instantiate_class_template_1): Don't mess with 2531 LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P. 2532 (tsubst_copy_and_build): Likewise. 2533 (fn_type_unification, tsubst): Don't reduce the template parm level 2534 of 'auto' during deduction. 2535 (unify): Compare 'auto' specially. 2536 (get_bindings): Change test. 2537 (always_instantiate_p): Always instantiate functions with deduced 2538 return type. 2539 (do_auto_deduction): Handle error_mark_node and lambda context. 2540 Don't check for use in initializer. 2541 (contains_auto_r): Remove. 2542 * search.c (lookup_conversions_r): Handle auto conversion function. 2543 * semantics.c (lambda_return_type): Handle null return. Don't mess 2544 with dependent_lambda_return_type_node. 2545 (apply_deduced_return_type): Rename from apply_lambda_return_type. 2546 * typeck.c (merge_types): Handle auto. 2547 (check_return_expr): Do auto deduction. 2548 * typeck2.c (add_exception_specifier): Fix complain check. 2549 25502012-03-22 Paolo Carlini <paolo.carlini@oracle.com> 2551 2552 PR c++/52487 2553 * class.c (check_field_decls): Call literal_type_p only 2554 on complete types. 2555 25562012-03-22 Jakub Jelinek <jakub@redhat.com> 2557 2558 PR c++/52671 2559 * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION 2560 on CLASS_TYPE_P types. 2561 25622012-03-20 Jason Merrill <jason@redhat.com> 2563 2564 * lex.c (init_reswords): Use >= for cxx_dialect test. 2565 * parser.c (cp_parser_exception_specification_opt): Likewise. 2566 2567 * mangle.c (write_type): Handle 'auto'. 2568 * init.c (build_new): Don't do auto deduction where it might 2569 affect template mangling. 2570 2571 PR c++/52510 2572 * decl.c (reshape_init_class): Handle repeated reshaping. 2573 * search.c (lookup_field_1): Add sanity check. 2574 25752012-03-19 Paolo Carlini <paolo.carlini@oracle.com> 2576 2577 PR c++/14710 2578 * cp-tree.h (xvalue_p, maybe_warn_about_useless_cast): Declare. 2579 * tree.c (xvalue_p): Define. 2580 * typeck.c (maybe_warn_about_useless_cast): Define. 2581 (build_reinterpret_cast, build_const_cast, 2582 build_static_cast, cp_build_c_cast): Use maybe_warn_about_useless_cast. 2583 * rtti.c (build_dynamic_cast): Likewise. 2584 * pt.c (tsubst_copy_and_build, case CAST_EXPR): Increment/decrement 2585 c_inhibit_evaluation_warnings before/after the build_* calls. 2586 25872012-03-15 Jason Merrill <jason@redhat.com> 2588 2589 PR c++/52582 2590 * method.c (implicitly_declare_fn): Set DECL_EXTERNAL. 2591 25922012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org> 2593 2594 PR c++/44783 2595 * error.c (print_instantiation_partial_context): Use 2596 template_backtrace_limit. 2597 25982012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2599 2600 * Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference. 2601 26022012-03-14 Jakub Jelinek <jakub@redhat.com> 2603 2604 PR c++/52521 2605 * parser.c (lookup_literal_operator): Return fn only if 2606 processed all arguments from args vector and argtypes is 2607 void_list_node. 2608 26092012-01-30 Dodji Seketeli <dodji@redhat.com> 2610 2611 PR c++/51641 2612 * cp-tree.h (template_type_parameter_p): Declare new function. 2613 (parameter_of_template_p): Remove. 2614 * pt.c (template_type_parameter_p): Define new function. 2615 (parameter_of_template_p): Remove. 2616 * name-lookup.c (binding_to_template_parms_of_scope_p): Don't rely 2617 on parameter_of_template_p anymore. Compare the level of the 2618 template parameter to the depth of the template. 2619 26202011-12-15 Dodji Seketeli <dodji@redhat.com> 2621 2622 * call.c (standard_conversion, build_integral_nontype_arg_conv) 2623 (build_new_op_1, convert_like_real, is_subseq) 2624 (maybe_handle_implicit_object, maybe_handle_ref_bind, compare_ics) 2625 (joust): Use next_conversion instead of accessing fields of struct 2626 conversion directly. 2627 26282012-03-12 Paolo Carlini <paolo.carlini@oracle.com> 2629 2630 PR c++/52299 2631 * pt.c (tsubst_copy_and_build, case COND_EXPR): Avoid bogus 2632 division by zero warnings. 2633 26342012-03-08 Paolo Carlini <paolo.carlini@oracle.com> 2635 2636 * typeck.c (build_array_ref, cp_build_addr_expr_1, convert_ptrmem, 2637 build_ptrmemfunc): Consistently forward the tsubst_flags_t 2638 parameter. 2639 * call.c (resolve_args): Likewise. 2640 26412012-03-07 Jason Merrill <jason@redhat.com> 2642 2643 PR c++/52521 2644 * mangle.c (write_literal_operator_name): The length comes after the 2645 operator prefix. 2646 26472012-03-05 Jakub Jelinek <jakub@redhat.com> 2648 2649 * pt.c (local_specializations): Change from htab_t into 2650 struct pointer_map_t *. 2651 (retrieve_local_specializations, register_local_specialization, 2652 tsubst_pack_expansion, instantiate_decl): Adjust users. 2653 (eq_local_specializations, hash_local_specialization): Remove. 2654 26552012-03-05 Jason Merrill <jason@redhat.com> 2656 2657 PR c++/51930 2658 * decl2.c (determine_visibility): Correct calculation of class 2659 args depth. 2660 * decl.c (check_tag_decl): Adjust warning. 2661 2662 * method.c (synthesized_method_walk): Cleanups don't affect the EH 2663 spec either. 2664 26652012-03-03 Jason Merrill <jason@redhat.com> 2666 2667 * init.c (perform_member_init): Cope with uninstantiated NSDMI. 2668 2669 Core 1270 2670 * call.c (build_aggr_conv): Call reshape_init. 2671 (convert_like_real): Likewise. 2672 * typeck2.c (process_init_constructor): Clear TREE_CONSTANT if 2673 not all constant. 2674 2675 * mangle.c (write_nested_name): Use decl_mangling_context. 2676 (write_prefix, write_template_prefix): Likewise. 2677 2678 PR c++/36797 2679 * mangle.c (write_expression): Improve diagnostic for TRAIT_EXPR. 2680 2681 * class.c (add_method): Always build an OVERLOAD for using-decls. 2682 * search.c (lookup_member): Handle getting an OVERLOAD for a 2683 single function. 2684 26852012-03-02 Paolo Carlini <paolo.carlini@oracle.com> 2686 2687 PR c++/51989 2688 * typeck2.c (build_x_arrow): Take a tsubst_flags_t argument and 2689 propagate it. 2690 * cp-tree.h (build_x_arrow): Adjust prototype. 2691 * pt.c (tsubst_copy_and_build): Adjust call. 2692 * parser.c (cp_parser_postfix_dot_deref_expression): Likewise. 2693 26942012-03-02 Paolo Carlini <paolo.carlini@oracle.com> 2695 2696 * name-lookup.c (binding_to_template_parms_of_scope_p): Clean up. 2697 26982012-02-29 Jason Merrill <jason@redhat.com> 2699 2700 PR c++/51930 2701 * decl.c (check_tag_decl): Move warning for misplaced attributes here. 2702 (shadow_tag): From here. 2703 * parser.c (cp_parser_explicit_instantiation): Don't warn here. 2704 27052012-02-21 Jakub Jelinek <jakub@redhat.com> 2706 2707 PR c++/52312 2708 * typeck.c (check_literal_operator_args): Initialize *long_double_p 2709 and *long_long_unsigned_p even if processing_template_decl. 2710 27112012-02-16 Jason Merrill <jason@redhat.com> 2712 2713 PR c++/52248 2714 * decl.c (define_label): Use timevar_cond_start/stop. 2715 27162012-02-16 Fabien Chêne <fabien@gcc.gnu.org> 2717 2718 PR c++/52126 2719 * decl.c (xref_basetypes): Call dependent_scope_p instead of 2720 dependent_type_p. 2721 27222012-02-16 Jason Merrill <jason@redhat.com> 2723 2724 PR c++/51415 2725 * error.c (dump_expr): Handle lambda closures specifically. 2726 27272012-02-14 Jason Merrill <jason@redhat.com> 2728 2729 * parser.c (cp_parser_explicit_instantiation): Give a warning 2730 for ignored attributes on explicit class instantiation. 2731 27322012-02-14 Jakub Jelinek <jakub@redhat.com> 2733 2734 PR c++/52247 2735 * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call 2736 lookup_label on label's name and set TREE_USED. 2737 27382012-02-14 Jason Merrill <jason@redhat.com> 2739 2740 PR c++/39055 2741 * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL. 2742 27432012-02-14 Jakub Jelinek <jakub@redhat.com> 2744 2745 PR c/52181 2746 * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than 2747 newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits. 2748 27492012-02-07 Jason Merrill <jason@redhat.com> 2750 2751 PR c++/51675 2752 * semantics.c (cx_check_missing_mem_inits): Handle unions. 2753 Fix constexpr default constructor logic. 2754 2755 PR c++/52035 2756 * pt.c (tsubst): Strip uninstantiated typedef. 2757 27582012-02-06 Jason Merrill <jason@redhat.com> 2759 2760 PR c++/52088 2761 * cvt.c (build_expr_type_conversion): Check for template conversion. 2762 27632012-01-31 Jason Merrill <jason@redhat.com> 2764 2765 PR c++/52043 2766 * cp-tree.h (PACK_EXPANSION_LOCAL_P): New. 2767 * pt.c (make_pack_expansion, tsubst_initializer_list): Set it. 2768 (tsubst_pack_expansion): Check it. 2769 27702012-01-29 Paolo Carlini <paolo.carlini@oracle.com> 2771 2772 PR c++/51327 2773 * class.c (explain_non_literal_class): Correctly handle implicitly 2774 deleted constructors. 2775 27762012-01-27 Jakub Jelinek <jakub@redhat.com> 2777 2778 PR c++/51852 2779 * pt.c (tsubst_pack_expansion): Delete and restore 2780 local_specialization whenever need_local_specialization, not just 2781 when saved_local_specializations is non-NULL. 2782 27832012-01-26 Paolo Carlini <paolo.carlini@oracle.com> 2784 2785 PR c++/51370 2786 * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node 2787 as TREE_OPERAND (t, 1). 2788 27892012-01-24 Jason Merrill <jason@redhat.com> 2790 2791 PR c++/51917 2792 * decl.c (xref_basetypes): Check VEC_length instead of VEC_space. 2793 2794 PR c++/51973 2795 * tree.c (called_fns_equal): Check template args. 2796 (cp_tree_equal): Call it. 2797 27982012-01-24 Aldy Hernandez <aldyh@redhat.com> 2799 Patrick Marlier <patrick.marlier@gmail.com> 2800 2801 PR c++/51928 2802 * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of 2803 thunk for set_one_vmethod_tm_attributes. 2804 28052012-01-24 Paolo Carlini <paolo.carlini@oracle.com> 2806 2807 PR c++/51223 2808 * call.c (build_over_call): Check for error_mark_node as 2809 TREE_VALUE when default arguments are processed. 2810 28112012-01-23 Jason Merrill <jason@redhat.com> 2812 2813 PR c++/51930 2814 * decl2.c (determine_visibility): Check for visibility attribute 2815 on template specialization. 2816 28172012-01-23 Paolo Carlini <paolo.carlini@oracle.com> 2818 2819 PR c++/51398 2820 * pt.c (parameter_of_template_p): Skip error_mark_node parameters. 2821 28222012-01-23 Jason Merrill <jason@redhat.com> 2823 2824 PR c++/51925 2825 * class.c (add_method): Set OVL_USED for using-decls. 2826 * tree.c (ovl_scope): New. 2827 * cp-tree.h: Declare it. 2828 * parser.c (cp_parser_template_name): Use it. 2829 * semantics.c (baselink_for_fns): Likewise. 2830 * name-lookup.c (set_inherited_value_binding_p): Likewise. 2831 28322012-01-20 Paolo Carlini <paolo.carlini@oracle.com> 2833 2834 PR c++/51402 2835 * pt.c (lookup_template_class_1): Check context returned by 2836 tsubst for error_mark_node. 2837 28382012-01-19 Kai Tietz <ktietz@redhat.com> 2839 2840 PR c++/51344 2841 * decl2.c (save_template_attributes): Use merge_attributes 2842 instead of chaining up via TREE_CHAIN. 2843 28442012-01-19 Jason Merrill <jason@redhat.com> 2845 2846 PR c++/51889 2847 * class.c (finish_struct): Call add_method here for function usings. 2848 * semantics.c (finish_member_declaration): Not here. 2849 28502012-01-18 Paolo Carlini <paolo.carlini@oracle.com> 2851 2852 PR c++/51225 2853 * typeck2.c (store_init_value): Within a template guard 2854 cxx_constant_value with require_potential_constant_expression. 2855 * pt.c (convert_nontype_argument): Likewise. 2856 28572012-01-16 Jakub Jelinek <jakub@redhat.com> 2858 2859 PR c++/51854 2860 * mangle.c (write_template_arg_literal): Handle complex. 2861 28622012-01-16 Jason Merrill <jason@redhat.com> 2863 2864 PR c++/51827 2865 * mangle.c (mangle_decl): Don't mangle uninstantiated templates. 2866 2867 PR c++/51868 2868 * typeck.c (build_static_cast_1): Handle bit-fields properly. 2869 28702012-01-13 Ian Lance Taylor <iant@google.com> 2871 2872 PR c++/50012 2873 * typeck.c (enum_cast_to_int): New static function. 2874 (cp_build_binary_op): When handling warn_sign_compare, don't test 2875 for TREE_NO_WARNING. Do call enum_cast_to_int. 2876 * call.c (avoid_sign_compare_warnings): Remove static function. 2877 (build_new_op_1): Don't call avoid_sign_compare_warnings. 2878 28792012-01-13 Steven Bosscher <steven@gcc.gnu.org> 2880 2881 * decl2.c: Do not include tree-mudflap.h 2882 * semantics.c: Likewise. 2883 28842012-01-13 Jason Merrill <jason@redhat.com> 2885 2886 PR c++/20681 2887 * semantics.c (finish_break_stmt): Avoid adding an unreachable 2888 BREAK_STMT. 2889 2890 PR c++/51813 2891 * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED 2892 when reducing the visibility. 2893 2894 PR c++/51620 2895 * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual. 2896 28972012-01-12 Jason Merrill <jason@redhat.com> 2898 2899 PR c++/51714 2900 * pt.c (value_dependent_expression_p): Treat STMT_EXPR as 2901 value-dependent. 2902 29032012-01-13 Dodji Seketeli <dodji@redhat.com> 2904 2905 PR c++/51633 2906 * semantics.c (cp_parser_ctor_initializer_opt_and_function_body): 2907 Set the pointer to the last block of the constructor to the 2908 current statement. 2909 (build_constexpr_constructor_member_initializers): Get 2910 build_data_member_initialization a chance to deal with more 2911 statements before we choke. 2912 29132012-01-12 Jason Merrill <jason@redhat.com> 2914 2915 PR c++/48051 2916 * mangle.c (write_expression): Mangle BASELINK scope if 2917 BASELINK_QUALIFIED_P. 2918 * search.c (adjust_result_of_qualified_name_lookup): Set 2919 BASELINK_QUALIFIED_P. 2920 * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P. 2921 * parser.c (cp_parser_postfix_dot_deref_expression): Don't call 2922 adjust_result_of_qualified_name_lookup for non-qualified names. 2923 2924 PR c++/51403 2925 * pt.c (unify): Handle error_mark_node. 2926 29272012-01-11 Jason Merrill <jason@redhat.com> 2928 2929 PR c++/51565 2930 * call.c (standard_conversion): For ptrmemfuncs, compare the 2931 static_fn_types. 2932 2933 PR c++/51818 2934 * mangle.c (find_substitution): A type is only a substitution 2935 match if we're looking for a type. 2936 (write_nested_name): Use decl_mangling_context. 2937 2938 * decl.c (decls_match): Assert that the arguments are decls. 2939 2940 PR c++/51613 2941 * pt.c (resolve_overloaded_unification): Compare types with 2942 same_type_p, not decls_match. 2943 29442012-01-10 Jason Merrill <jason@redhat.com> 2945 2946 PR c++/51614 2947 * class.c (build_base_path): Diagnose ambiguous base. 2948 2949 PR c++/51433 2950 * semantics.c (cxx_eval_call_expression): Always retry previously 2951 non-constant expressions. 2952 29532012-01-06 Jason Merrill <jason@redhat.com> 2954 2955 DR 686 2956 PR c++/47450 2957 * parser.c (cp_parser_new_expression): Set 2958 type_definition_forbidden_message. 2959 2960 PR c++/6057 2961 PR c++/48051 2962 PR c++/50855 2963 PR c++/51322 2964 * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR, 2965 THROW_EXPR, CONSTRUCTOR, OVERLOAD. Fix PREINCREMENT_EXPR and 2966 PREDECREMENT_EXPR. 2967 (write_template_arg): Fix mangling of class-scope functions and 2968 argument packs. 2969 (mangle_decl): Update suggested -fabi-version argument. 2970 * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR, 2971 DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR. 2972 * tree.c (dependent_name): No longer static. 2973 * cp-tree.h: Declare it. 2974 * pt.c (unify): Defer handling of unconverted functions. 2975 2976 * mangle.c (mangle_decl): Don't generate mangling aliases 2977 for maybe-in-charge [cd]tors. 2978 2979 * error.c (dump_expr): Print type of CONSTRUCTOR. 2980 29812012-01-05 Dodji Seketeli <dodji@redhat.com> 2982 2983 PR c++/51541 2984 * parser.c (cp_parser_alias_declaration): Get out early upon 2985 errors in the identifier or the attributes. 2986 29872012-01-04 Paolo Carlini <paolo.carlini@oracle.com> 2988 2989 PR c++/51064 2990 * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on 2991 the tree returned by build_x_binary_op. 2992 29932012-01-03 Paolo Carlini <paolo.carlini@oracle.com> 2994 2995 PR c++/51738 2996 * parser.c (cp_parser_postfix_open_square_expression): Handle 2997 postfix-expression [ braced-init-list ]. 2998 29992012-01-03 Paolo Carlini <paolo.carlini@oracle.com> 3000 3001 PR c++/29273 3002 * rtti.c (build_dynamic_cast_1): In case of T a pointer type, 3003 call decay_conversion on v. 3004 30052012-01-03 Paolo Carlini <paolo.carlini@oracle.com> 3006 3007 PR c++/15867 3008 * decl.c (duplicate_decls): With -Wredundant-decls don't warn for 3009 declaration followed by specialization. 3010 30112012-01-03 Jakub Jelinek <jakub@redhat.com> 3012 3013 PR c++/51669 3014 * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr 3015 on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR. 3016 30172012-01-02 Jason Merrill <jason@redhat.com> 3018 3019 DR 1359 3020 PR c++/51675 3021 * method.c (walk_field_subobs): Don't check for uninitialized 3022 fields in a union. 3023 (synthesized_method_walk): Check here. 3024 3025 DR 325 3026 PR c++/51666 3027 * parser.c (cp_parser_cache_defarg): Split out... 3028 (cp_parser_parameter_declaration): ...from here. 3029 (cp_parser_save_nsdmi): Use it. 3030 (cp_parser_cache_group): Remove CPP_COMMA support. 3031 30322012-01-02 Dodji Seketeli <dodji@redhat.com> 3033 3034 PR c++/51462 3035 * semantics.c (cx_check_missing_mem_inits): Don't assert in case 3036 of error. 3037 30382012-01-02 Paolo Carlini <paolo.carlini@oracle.com> 3039 3040 PR c++/20140 3041 * typeck2.c (digest_init_r): Use copy_init when initializing 3042 an array of chars. 3043 30442012-01-01 Paolo Carlini <paolo.carlini@oracle.com> 3045 3046 PR c++/16603 3047 * decl.c (build_enumerator): Don't call perform_integral_promotions 3048 on the value. 3049 30502012-01-01 Paolo Carlini <paolo.carlini@oracle.com> 3051 3052 PR c++/51379 3053 * typeck.c (build_reinterpret_cast_1): Implement resolution of 3054 DR 799. 3055 30562012-01-01 Fabien Chêne <fabien@gcc.gnu.org> 3057 3058 * parser.c (cp_parser_using_declaration): Add a warning about 3059 deprecated access declarations when no errors were encountered 3060 while parsing the access declaration. Save the first token in 3061 order to emit the warning at the right place. 3062 3063Copyright (C) 2012 Free Software Foundation, Inc. 3064 3065Copying and distribution of this file, with or without modification, 3066are permitted in any medium without royalty provided the copyright 3067notice and this notice are preserved. 3068