12013-12-23 Jason Merrill <jason@redhat.com> 2 3 PR c++/59271 4 * lambda.c (build_capture_proxy): Use build_cplus_array_type. 5 6 PR c++/59349 7 * parser.c (cp_parser_lambda_introducer): Handle empty init. 8 92013-12-23 Stuart Hastings <stuart@apple.com> 10 Bill Maddox <maddox@google.com> 11 Jason Merrill <jason@redhat.com> 12 13 PR c++/41090 14 * optimize.c (can_alias_cdtor, populate_clone_array): Split out 15 from maybe_clone_body. 16 (maybe_thunk_body): New function. 17 (maybe_clone_body): Call it. 18 * mangle.c (write_mangled_name): Remove code to suppress 19 writing of mangled name for cloned constructor or destructor. 20 (write_special_name_constructor): Handle decloned constructor. 21 (write_special_name_destructor): Handle decloned destructor. 22 * method.c (trivial_fn_p): Handle decloning. 23 * semantics.c (expand_or_defer_fn_1): Clone after setting linkage. 24 252013-12-23 Marek Polacek <polacek@redhat.com> 26 27 PR c++/59111 28 * search.c (lookup_conversions): Return NULL_TREE if !CLASS_TYPE_P. 29 302013-12-20 Trevor saunders <tsaunders@mozilla.com> 31 32 * semantics.c (build_anon_member_initialization): Replace 33 stack_vec<T, N> with auto_vec<T, N>. 34 352013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> 36 37 * parser.c (cp_parser_cilk_simd_clause_name): Changed cilk_clause_name 38 to omp_clause_name. 39 402013-12-17 Thomas Schwinge <thomas@codesourcery.com> 41 42 * parser.c (cp_parser_omp_parallel): Fix description. 43 442013-12-12 Jason Merrill <jason@redhat.com> 45 46 PR c++/58954 47 * pt.c (resolve_overloaded_unification): Use instantiate_template. 48 492013-12-12 Jakub Jelinek <jakub@redhat.com> 50 51 PR c++/58627 52 * class.c (resolve_address_of_overloaded_function): Don't call ggc_free 53 on targs. 54 552013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> 56 57 * cp-tree.h (cilk_valid_spawn): New prototype. 58 (gimplify_cilk_spawn): Likewise. 59 (create_try_catch_expr): Likewise. 60 * decl.c (finish_function): Insert Cilk function-calls when a 61 _Cilk_spawn is used in a function. 62 * parser.c (cp_parser_postfix_expression): Added RID_CILK_SPAWN and 63 RID_CILK_SYNC cases. 64 * cp-cilkplus.c (set_cilk_except_flag): New function. 65 (set_cilk_except_data): Likewise. 66 (cilk_install_body_with_frame_cleanup): Likewise. 67 * except.c (create_try_catch_expr): Likewise. 68 * parser.h (IN_CILK_SPAWN): New #define. 69 * pt.c (tsubst_expr): Added CILK_SPAWN_STMT and CILK_SYNC_STMT cases. 70 * semantics.c (potential_constant_expression_1): Likewise. 71 * typeck.c (cp_build_compound_expr): Reject a spawned function in a 72 compound expression. 73 (check_return_expr): Reject a spawned function in a return expression. 74 * cp-gimplify.c (cp_gimplify_expr): Added a CILK_SPAWN_STMT and 75 CALL_EXPR case. Added handling of spawned function in MODIFY_EXPR 76 and INIT_EXPR. 77 782013-12-09 Paolo Carlini <paolo.carlini@oracle.com> 79 80 PR c++/59435 81 * parser.c (cp_parser_cache_defarg): sizeof ... ( p ) can 82 occur in a default argument too. 83 842013-12-06 Caroline Tice <cmtice@google.com> 85 86 Submitting patch from Stephen Checkoway, s@cs.jhu.edu 87 * vtable-class-hierarchy.c (init_functions): Make the libvtv 88 function decls externally visible. 89 902013-12-06 Oleg Endo <olegendo@gcc.gnu.org> 91 92 * decl2.c: Remove struct tags when referring to class varpool_node. 93 942013-12-05 Jason Merrill <jason@redhat.com> 95 96 PR c++/59044 97 PR c++/59052 98 * pt.c (most_specialized_class): Use the partially instantiated 99 template for deduction. Drop the TMPL parameter. 100 1012013-12-05 Paolo Carlini <paolo.carlini@oracle.com> 102 103 * decl.c (duplicate_decls): Replace pairs of errors and permerrors 104 with error + inform (permerror + inform, respectively). 105 1062013-12-04 Joseph Myers <joseph@codesourcery.com> 107 108 PR c/52023 109 * typeck.c (cxx_sizeof_or_alignof_type): Update call to 110 c_sizeof_or_alignof_type. 111 1122013-12-04 Jakub Jelinek <jakub@redhat.com> 113 114 PR c++/59268 115 * pt.c (tsubst_copy_and_build): Handle POINTER_PLUS_EXPR. 116 1172013-11-29 Marek Polacek <polacek@redhat.com> 118 119 PR sanitizer/59331 120 * decl.c (compute_array_index_type): Don't build COMPOUND_EXPR for 121 instrumentation. 122 1232013-11-28 Jakub Jelinek <jakub@redhat.com> 124 125 PR c++/59297 126 * semantics.c (finish_omp_atomic): Call finish_expr_stmt 127 rather than add_stmt. 128 1292013-11-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 130 131 * g++spec.c (TIMELIB): Define. 132 (WITHLIBC, SKIPOPT): Adjust values. 133 (lang_specific_driver): Add TIME_LIBRARY if not passed explicitly. 134 1352013-11-28 Jakub Jelinek <jakub@redhat.com> 136 137 PR c/59310 138 * parser.c (cp_parser_omp_target): Call keep_next_level only 139 if flag_openmp. 140 1412013-11-27 Paolo Carlini <paolo.carlini@oracle.com> 142 143 PR c++/58647 144 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]): 145 Handle function COMPONENT_REFs. 146 1472013-11-27 Aldy Hernandez <aldyh@redhat.com> 148 Jakub Jelinek <jakub@redhat.com> 149 150 * semantics.c (finish_omp_clauses): For #pragma omp declare simd 151 linear clause step call maybe_constant_value. 152 1532013-11-27 Tom de Vries <tom@codesourcery.com> 154 Marc Glisse <marc.glisse@inria.fr> 155 156 PR c++/59032 157 * typeck.c (cp_build_unary_op): Allow vector increment and decrement. 158 1592013-11-27 Tom de Vries <tom@codesourcery.com> 160 Marc Glisse <marc.glisse@inria.fr> 161 162 PR middle-end/59037 163 * semantics.c (cxx_fold_indirect_ref): Don't create out-of-bounds 164 BIT_FIELD_REF. 165 1662013-11-26 Jakub Jelinek <jakub@redhat.com> 167 168 PR c++/58874 169 * parser.c (cp_parser_late_parsing_for_member): For OpenMP UDRs 170 pass 2 instead of 0 to finish_function. 171 1722013-11-26 Paolo Carlini <paolo.carlini@oracle.com> 173 174 PR c++/58700 175 * decl.c (grokdeclarator): Don't try to pass declarator->id_loc 176 to build_lang_decl_loc when declarator is null. 177 1782013-11-26 Paolo Carlini <paolo.carlini@oracle.com> 179 180 * cvt.c (cp_convert_and_check): Avoid calling cp_convert 181 unnecessarily. 182 1832013-11-25 Paolo Carlini <paolo.carlini@oracle.com> 184 185 PR c++/54485 186 * decl.c (duplicate_decls): Enforce 8.3.6/6 about default arguments 187 for member functions of class templates. 188 1892013-11-25 Paolo Carlini <paolo.carlini@oracle.com> 190 191 PR c++/58607 192 * semantics.c (check_constexpr_ctor_body): Check for BIND_EXPR_VARS. 193 1942013-11-25 Paolo Carlini <paolo.carlini@oracle.com> 195 196 PR c++/58810 197 * decl.c (grokdeclarator): Don't handle qualified free functions here, 198 leave the diagnostic to grokfndecl. 199 2002013-11-25 Paolo Carlini <paolo.carlini@oracle.com> 201 202 PR c++/59080 203 * pt.c (unify): Don't call unify_array_domain with a NULL_TREE 204 third argument. 205 206 PR c++/59096 207 * pt.c (apply_late_template_attributes): Check that TREE_VALUE 208 isn't NULL_TREE in the attribute_takes_identifier_p case. 209 2102013-11-25 Adam Butcher <adam@jessamine.co.uk> 211 212 PR c++/59112 213 PR c++/59113 214 * parser.c (cp_parser_parameter_declaration_clause): Disallow implicit 215 function templates in local functions unless defining a lambda. 216 2172013-11-23 Easwaran Raman <eraman@google.com> 218 219 PR c++/59031 220 * call.c (build_new_method_call_1): Comnpare function context 221 with BASELINK_BINFO type rather than instance type before 222 marking the call with LOOKUP_NONVIRTUAL. 223 2242013-11-23 Jason Merrill <jason@redhat.com> 225 226 PR c++/58868 227 * init.c (build_aggr_init): Don't clobber the type of init 228 if we got an INIT_EXPR back from build_vec_init. 229 (build_vec_init): Do digest_init on trivial initialization. 230 2312013-11-23 Alexander Ivchenko <alexander.ivchenko@intel.com> 232 233 PR c++/58525 234 * call.c (build_operator_new_call): Add flag_exceptions check. 235 * decl.c (compute_array_index_type): Ditto. 236 * init.c (build_new_1): Ditto. 237 (build_vec_init): Ditto. 238 2392013-11-22 Jakub Jelinek <jakub@redhat.com> 240 241 * cp-gimplify.c: Include target.h and c-family/c-ubsan.h. 242 (cp_ubsan_maybe_instrument_return): New function. 243 (cp_genericize): Call it if -fsanitize=return. 244 245 * decl2.c: Include asan.h. 246 (one_static_initialization_or_destruction): If -fsanitize=address, 247 init is non-NULL and guard is NULL, set 248 vnode->dynamically_initialized. 249 (do_static_initialization_or_destruction): Call 250 __asan_{before,after}_dynamic_init around the static initialization. 251 2522013-11-22 Andrew MacLeod <amacleod@redhat.com> 253 254 * class.c: Add required include files from gimple.h. 255 * cp-gimplify.c: Likewise 256 * decl2.c: Likewise 257 * init.c: Likewise 258 * optimize.c: Likewise 259 * pt.c: Likewise 260 * semantics.c: Likewise 261 * tree.c: Likewise 262 * typeck.c: Likewise 263 * vtable-class-hierarchy.c: Likewise 264 2652013-11-22 David Malcolm <dmalcolm@redhat.com> 266 267 * call.c (build_integral_nontype_arg_conv): Remove use of 268 EXPR_LOC_OR_HERE macro. 269 (convert_like_real): Likewise. 270 (convert_arg_to_ellipsis): Likewise. 271 (build_cxx_call): Likewise. 272 (perform_implicit_conversion_flags): Likewise. 273 (initialize_reference): Likewise. 274 * cvt.c (cp_convert_to_pointer): Likewise. 275 (convert_to_reference): Likewise. 276 (ocp_convert): Likewise. 277 (convert_to_void): Likewise. 278 * decl.c (pop_label): Update comment. 279 (pop_switch): Remove use of EXPR_LOC_OR_HERE macro. 280 (check_tag_decl): Remove use of in_system_header macro. 281 (make_rtl_for_nonlocal_decl): Remove use of input_filename 282 macro. 283 (compute_array_index_type): Remove use of in_system_header 284 macro. 285 (grokdeclarator): Likewise. 286 * error.c (dump_global_iord): Remove use of input_filename 287 macro. 288 (location_of): Remove use of EXPR_LOC_OR_HERE macro. 289 (maybe_warn_cpp0x): Remove use of in_system_header macro. 290 * init.c (build_new_1): Remove use of EXPR_LOC_OR_HERE macro. 291 * lex.c (handle_pragma_interface): Remove use of input_filename 292 macro. 293 (handle_pragma_implementation): Likewise. 294 (cxx_make_type): Likewise. 295 (in_main_input_context): Likewise. 296 * name-lookup.c (push_binding_level): Remove use of 297 input_line macro. 298 (leave_scope): Likewise. 299 (resume_scope): Likewise. 300 * parser.c (cp_parser_unqualified_id): Remove use of 301 in_system_header macro. 302 (cp_parser_cast_expression): Likewise. 303 (cp_parser_declaration_seq_opt): Likewise. 304 (cp_parser_enumerator_list): Likewise. 305 (cp_parser_parameter_declaration_clause): Likewise. 306 (cp_parser_exception_specification_opt): Likewise. 307 * pt.c (unify_arg_conversion): Remove use of EXPR_LOC_OR_HERE 308 macro. 309 (convert_nontype_argument): Likewise. 310 (push_tinst_level): Remove use of in_system_header macro. 311 (tsubst_copy_and_build): Remove use of EXPR_LOC_OR_HERE 312 macros. 313 (do_decl_instantiation): Remove use of in_system_header macro. 314 (do_type_instantiation): Likewise. 315 * semantics.c (finish_call_expr): Remove use of EXPR_LOC_OR_HERE 316 macro. 317 (begin_class_definition): Remove use of input_filename macro. 318 (cxx_eval_call_expression): Remove use of EXPR_LOC_OR_HERE 319 macro. 320 (cxx_eval_constant_expression): Likewise. 321 (potential_constant_expression_1): Likewise. 322 * typeck.c (decay_conversion): Likewise. 323 (rationalize_conditional_expr): Likewise. 324 (build_x_compound_expr_from_list): Likewise. 325 (convert_for_assignment): Likewise. 326 * typeck2.c (check_narrowing): Likewise. 327 3282013-11-22 Trevor Saunders <tsaunders@mozilla.com> 329 330 * parser.c, semantics.c: Change some local variables from vec to 331 auto_vec or stack_vec. 332 3332013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 334 335 * decl.c (reshape_init_array_1): Use tree_to_uhwi rather than 336 tree_low_cst. 337 (grokdeclarator): Update comment to refer to tree_to_[su]hwi rather 338 than tree_low_cst. 339 3402013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 341 342 * call.c, class.c, decl.c, error.c: Replace tree_low_cst (..., 1) with 343 tree_to_uhwi throughout. 344 3452013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 346 347 * class.c, dump.c, error.c, init.c, method.c, parser.c, semantics.c: 348 Replace tree_low_cst (..., 0) with tree_to_shwi throughout. 349 3502013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 351 352 * decl.c: Replace host_integerp (..., 1) with tree_fits_uhwi_p 353 throughout. 354 3552013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 356 357 * error.c, init.c, parser.c, semantics.c: Replace 358 host_integerp (..., 0) with tree_fits_shwi_p throughout. 359 3602013-11-17 Paolo Carlini <paolo.carlini@oracle.com> 361 362 PR c++/59123 363 * decl.c (validate_constexpr_redeclaration): Redeclarations of 364 variables can differ in constexpr. 365 3662013-11-16 Paolo Carlini <paolo.carlini@oracle.com> 367 368 PR c++/29143 369 * semantics.c (finish_call_expr): Ensure that for OVERLOADs too 370 '(&f)(...)' is the same as '(f)(...)', per 13.3.1.1. 371 3722013-11-15 Aldy Hernandez <aldyh@redhat.com> 373 374 * Make-lang.in (CXX_AND_OBJCXX_OBJS): Depend on cp/cp-cilkplus.o. 375 * cp-cilkplus.c: New file. 376 * cp-tree.h (cpp_validate_cilk_plus_loop): Protoize. 377 * parser.c (cp_parser_cilk_simd): New. 378 (cp_debug_parser): Add case for IN_CILK_SIMD_FOR. 379 (cp_parser_jump_statement): Same. 380 (cp_parser_omp_for_cond): Add new argument. 381 Add case for NE_EXPR. 382 (cp_parser_omp_for_loop): Pass new argument to 383 cp_parser_omp_for_cond. 384 Handle CILK_SIMD nodes. 385 Abstract initilization code to.. 386 (cp_parser_omp_for_loop_init): ...here. 387 (cp_parser_pragma): Add case for PRAGMA_CILK_SIMD. 388 (cp_parser_cilk_simd_vectorlength): New. 389 (cp_parser_cilk_simd_linear): New. 390 (cp_parser_cilk_simd_clause_name): New. 391 (cp_parser_cilk_simd_all_clauses): New. 392 (cp_parser_cilk_simd): New. 393 * parser.h (IN_CILK_SIMD_FOR): New macro. 394 * pt.c (tsubst_expr): Add case for CILK_SIMD. 395 * typeck2.c (cxx_readonly_error): Pass location argument to 396 readonly_error. 397 3982013-11-14 Paolo Carlini <paolo.carlini@oracle.com> 399 400 PR c++/57887 401 * parser.c (cp_parser_late_parsing_nsdmi): Call 402 maybe_begin_member_template_processing. 403 * pt.c (maybe_begin_member_template_processing): Handle NSDMIs. 404 (inline_needs_template_parms): Adjust. 405 4062013-11-14 Andrew MacLeod <amacleod@redhat.com> 407 408 * class.c: Include only gimplify.h and gimple.h as needed. 409 * cp-gimplify.c: Likewise. 410 * error.c: Likewise. 411 * init.c: Likewise. 412 * optimize.c: Likewise. 413 * pt.c: Likewise. 414 * semantics.c: Likewise. 415 * tree.c: Likewise. 416 * vtable-class-hierarchy.c: Likewise. 417 4182013-11-14 Diego Novillo <dnovillo@google.com> 419 420 * call.c: Include stor-layout.h. 421 Include trans-mem.h. 422 Include stringpool.h. 423 * class.c: Include stringpool.h. 424 Include stor-layout.h. 425 Include attribs.h. 426 * cp-gimplify.c: Include stor-layout.h. 427 * cvt.c: Include stor-layout.h. 428 * decl.c: Include stringpool.h. 429 Include stor-layout.h. 430 Include varasm.h. 431 Include attribs.h. 432 Include calls.h. 433 * decl2.c: Include stringpool.h. 434 Include varasm.h. 435 Include attribs.h. 436 Include stor-layout.h. 437 Include calls.h. 438 * error.c: Include stringpool.h. 439 * except.c: Include stringpool.h. 440 Include trans-mem.h. 441 Include attribs.h. 442 * init.c: Include stringpool.h. 443 Include varasm.h. 444 * lambda.c: Include stringpool.h. 445 * lex.c: Include stringpool.h. 446 * mangle.c: Include stor-layout.h. 447 Include stringpool.h. 448 * method.c: Include stringpool.h. 449 Include varasm.h. 450 * name-lookup.c: Include stringpool.h. 451 Include print-tree.h. 452 Include attribs.h. 453 * optimize.c: Include stringpool.h. 454 * parser.c: Include print-tree.h. 455 Include stringpool.h. 456 Include attribs.h. 457 Include trans-mem.h. 458 * pt.c: Include stringpool.h. 459 Include varasm.h. 460 Include attribs.h. 461 Include stor-layout.h. 462 * ptree.c: Include print-tree.h. 463 * repo.c: Include stringpool.h. 464 * rtti.c: Include stringpool.h. 465 Include stor-layout.h. 466 * semantics.c: Include stmt.h. 467 Include varasm.h. 468 Include stor-layout.h. 469 Include stringpool.h. 470 * tree.c: Include stor-layout.h. 471 Include print-tree.h. 472 Include tree-iterator.h. 473 * typeck.c: Include stor-layout.h. 474 Include varasm.h. 475 * typeck2.c: Include stor-layout.h. 476 Include varasm.h. 477 * vtable-class-hierarchy.c: Include stringpool.h. 478 Include stor-layout.h. 479 4802013-11-12 Andrew MacLeod <amacleod@redhat.com> 481 482 * class.c: Include gimplify.h. 483 * cp-gimplify.c: Likewise. 484 * error.c: Likewise. 485 * init.c: Likewise. 486 * optimize.c: Likewise. 487 * pt.c: Likewise. 488 * semantics.c: Likewise. 489 * tree.c: Likewise. 490 * vtable-class-hierarchy.c: Likewise. 491 * decl2.c: Don't include gimple.h. 492 * except.c: Likewise. 493 * method.c: Include pointer-set.h instead of gimple.h. 494 4952013-11-12 Adam Butcher <adam@jessamine.co.uk> 496 497 * pt.c (convert_generic_types_to_packs): New function to transform 498 a range of implicitly introduced non-pack template parms to be parameter 499 packs. 500 * cp-tree.h (convert_generic_types_to_packs): Declare. 501 * parser.c (cp_parser_parameter_declaration_list): If a function 502 parameter pack contains generic types, convert them to packs prior to 503 grokdeclarator. 504 5052013-11-12 Adam Butcher <adam@jessamine.co.uk> 506 507 PR c++/58534 508 PR c++/58536 509 PR c++/58548 510 PR c++/58549 511 PR c++/58637 512 * parser.h (struct cp_parser): New members implicit_template_parms, 513 implicit_template_scope and auto_is_implicit_function_template_parm_p. 514 * parser.c (add_implicit_template_parms): Refactor as ... 515 (synthesize_implicit_template_parm): ... this to append a new template 516 type parm to the current template parameter list (introducing a new list 517 if necessary). Removed push_deferring_access_checks. 518 (finish_fully_implicit_template): Removed pop_deferring_access_checks. 519 (cp_parser_new): Initialize new cp_parser members. 520 (cp_parser_parameter_declaration_clause): Consider auto as implicit 521 template parm when parsing a parameter declaration (unless parsing an 522 explicit specialization). 523 (cp_parser_parameter_declaration_list): Remove local 524 implicit_template_parms counter and reset cp_parser implicit template 525 state when complete. 526 (cp_parser_lambda_expression): Reset implicit template cp_parser members 527 whilst generating lambda class. 528 (cp_parser_function_definition_after_declarator): Reset implicit 529 template cp_parser members whilst parsing function definition. 530 (make_generic_type_name): Respell '<autoN>' as 'auto:N' which works 531 better with template diagnostics. 532 (cp_parser_simple_type_specifier): Synthesize implicit template parm on 533 parsing 'auto' if auto_is_implicit_function_template_parm_p and provide 534 diagnostics ... 535 * decl.c (grokdeclarator): ... that were previously done here. 536 5372013-11-12 Paolo Carlini <paolo.carlini@oracle.com> 538 539 PR c++/57734 540 * pt.c (lookup_template_class_1): Handle alias template declarations 541 of enumeration types. 542 5432013-11-10 Paolo Carlini <paolo.carlini@oracle.com> 544 545 * cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before 546 maybe_warn_zero_as_null_pointer_constant to avoid duplicate 547 -Wzero-as-null-pointer-constant diagnostics. 548 549 * typeck.c (build_ptrmemfunc): Use cp_build_c_cast. 550 5512013-11-06 Paolo Carlini <paolo.carlini@oracle.com> 552 553 PR c++/11006 554 * init.c (build_new_1): Don't call build_java_class_ref on non-class 555 types. 556 5572013-11-05 Jason Merrill <jason@redhat.com> 558 559 PR c++/58868 560 * decl.c (check_initializer): Don't use build_vec_init for arrays 561 of trivial type. 562 5632013-11-05 Paolo Carlini <paolo.carlini@oracle.com> 564 565 PR c++/58724 566 * name-lookup.c (handle_namespace_attrs): Use get_attribute_name. 567 5682013-11-05 Tobias Burnus <burnus@net-b.de> 569 570 * parser.c (cp_parser_omp_for, cp_parser_omp_parallel, 571 cp_parser_omp_distribute, cp_parser_omp_teams, cp_parser_omp_target, 572 cp_parser_omp_declare): Handle -fopenmp-simd. 573 5742013-11-04 Eric Botcazou <ebotcazou@adacore.com> 575 576 * decl2.c (cpp_check): Change type of first parameter and deal with 577 IS_TRIVIAL. 578 5792013-11-03 Paolo Carlini <paolo.carlini@oracle.com> 580 581 PR c++/38313 582 * parser.c (cp_parser_constructor_declarator_p): Check that the 583 class-name matches current_class_type. 584 5852013-11-03 Marek Polacek <polacek@redhat.com> 586 587 * decl.c (cp_finish_decl): Move C++1y bounds checking... 588 (compute_array_index_type): ...here. Add VLA instrumentation. 589 Call stabilize_vla_size. 590 (grokdeclarator): Don't call stabilize_vla_size here. 591 5922013-11-02 Paolo Carlini <paolo.carlini@oracle.com> 593 594 PR c++/29234 595 PR c++/56037 596 * parser.c (cp_parser_cast_expression): If we aren't looking at 597 a cast-expression don't call cp_parser_type_id. 598 (cp_parser_postfix_expression): Likewise for compound-literal. 599 (cp_parser_tokens_start_cast_expression): Adjust. 600 6012013-11-01 Edward Smith-Rowland <3dw4rd@verizon.net> 602 603 PR c++/58708 604 * parser.c (make_string_pack): Discover non-const type and size 605 of character and build parm pack with correct type and chars. 606 6072013-11-01 Trevor Saunders <tsaunders@mozilla.com> 608 609 * semantics.c (build_anon_member_initialization): Convert fields to be 610 a stack_vec. 611 6122013-11-01 Marc Glisse <marc.glisse@inria.fr> 613 614 PR c++/58834 615 * pt.c (type_dependent_expression_p): Handle null argument. 616 6172013-11-01 Jakub Jelinek <jakub@redhat.com> 618 619 * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to 620 check_dup_generic at the end, unless remove is true. 621 (finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: Add break; after 622 remove = true;. 623 6242013-10-31 Jakub Jelinek <jakub@redhat.com> 625 626 * semantics.c (finish_omp_clauses): Diagnose aligned clause 627 with decl that is not pointer nor array nor reference to those. 628 6292013-10-31 Jason Merrill <jason@redhat.com> 630 631 * semantics.c (cxx_eval_call_expression): Handle trivial 632 value-initialization. 633 * typeck2.c (store_init_value): Call maybe_constant_init after 634 cxx_constant_value. 635 636 * decl.c (cxx_maybe_build_cleanup): Always set LOOKUP_NONVIRTUAL. 637 * decl2.c (build_cleanup): Just call cxx_maybe_build_cleanup. 638 639 PR c++/58162 640 * parser.c (cp_parser_late_parse_one_default_arg): Set 641 TARGET_EXPR_DIRECT_INIT_P. 642 643 * class.c (type_build_ctor_call): Return early in C++98 mode. 644 (type_build_dtor_call): Likewise. 645 6462013-10-31 Paolo Carlini <paolo.carlini@oracle.com> 647 648 PR c++/58932 649 Revert: 650 2013-10-18 Paolo Carlini <paolo.carlini@oracle.com> 651 652 PR c++/58466 653 * pt.c (most_specialized_class): Bump processing_template_decl for 654 get_class_bindings. 655 6562013-10-30 Paolo Carlini <paolo.carlini@oracle.com> 657 658 PR c++/58581 659 * call.c (build_over_call): Check return value of mark_used. 660 6612013-10-30 Jason Merrill <jason@redhat.com> 662 663 * semantics.c (finish_compound_literal): Don't create a static variable 664 inside cp_unevaluated_operand. 665 666 * init.c (push_base_cleanups): Check ANON_AGGR_TYPE_P. 667 6682013-10-30 Tobias Burnus <burnus@net-b.de> 669 670 PR other/33426 671 * cp-tree.h (RANGE_FOR_IVDEP): Define. 672 (cp_convert_range_for, finish_while_stmt_cond, finish_do_stmt, 673 finish_for_cond): Take 'bool ivdep' parameter. 674 * cp-array-notation.c (create_an_loop): Update call. 675 * init.c (build_vec_init): Ditto. 676 * pt.c (tsubst_expr): Ditto. 677 * parser.c (cp_parser_iteration_statement, cp_parser_for, 678 cp_parser_range_for, cp_convert_range_for): Update calls. 679 (cp_parser_pragma): Accept GCC ivdep for 'while' and 'do'. 680 * semantics.c (finish_while_stmt_cond, finish_do_stmt, 681 finish_for_cond): Optionally build ivdep annotation. 682 6832013-10-30 Jason Merrill <jason@redhat.com> 684 685 * decl.c (cp_finish_decl): Never throw for VLA bound == 0. 686 6872013-10-29 David Malcolm <dmalcolm@redhat.com> 688 689 Patch autogenerated by refactor_symtab.py from 690 https://github.com/davidmalcolm/gcc-refactoring-scripts 691 revision 58bb219cc090b2f4516a9297d868c245495ee622 692 693 * call.c (mark_versions_used): Update for conversion of symtab types 694 to a true class hierarchy. 695 * decl2.c (cp_write_global_declarations): Likewise. 696 (clear_decl_external): Likewise. 697 (build_java_method_aliases): Likewise. 698 (collect_candidates_for_java_method_aliases): Likewise. 699 (mark_needed): Likewise. 700 (var_finalized_p): Likewise. 701 (maybe_make_one_only): Likewise. 702 (maybe_emit_vtables): Likewise. 703 * lambda.c (maybe_add_lambda_conv_op): Likewise. 704 * method.c (use_thunk): Likewise. 705 * optimize.c (maybe_clone_body): Likewise. 706 * tree.c (cp_fix_function_decl_p): Likewise. 707 7082013-10-29 Paolo Carlini <paolo.carlini@oracle.com> 709 710 PR c++/58888 711 * decl2.c (grokfield): Handle auto like NSDMI. 712 7132013-10-25 Paolo Carlini <paolo.carlini@oracle.com> 714 715 PR c++/58878 716 * pt.c (check_template_shadow): Don't skip declarations in inline 717 member templates. 718 7192013-10-25 Tobias Burnus <burnus@net-b.de> 720 721 PR other/33426 722 * parser.c (cp_parser_iteration_statement, 723 cp_parser_for, cp_parser_c_for, cp_parser_pragma): Handle 724 IVDEP pragma. 725 7262013-10-24 Marek Polacek <polacek@redhat.com> 727 728 PR c++/58705 729 * typeck2.c (check_narrowing): Don't check narrowing when the scalar 730 initializer is empty. 731 7322013-10-23 Jason Merrill <jason@redhat.com> 733 734 LWG 2165 735 * method.c (defaulted_late_check): Delete on eh-spec mismatch. 736 (maybe_explain_implicit_delete): Explain it. 737 738 * error.c (eh_spec_to_string): New. 739 (cp_printer): Use it for %X. 740 741 In C++11 a trivial [cd]tor might not be callable. 742 * class.c (user_provided_p): A function deleted on its declation 743 in the class is not user-provided. 744 (type_build_ctor_call): Also force a ctor call if we 745 might have a deleted or private trivial ctor. 746 (type_build_dtor_call): New. 747 (deduce_noexcept_on_destructors): Remove obsolete code. 748 * cp-tree.h: Declare type_build_dtor_call. 749 * decl.c (expand_static_init): Make sure trivial dtors are callable. 750 (cxx_maybe_build_cleanup): Likewise. 751 * except.c (build_throw): Likewise. 752 * init.c (build_value_init): Handle trivial but not callable ctors. 753 (perform_target_ctor): Make sure trivial dtor is callable. 754 (perform_member_init): Likewise. 755 (expand_cleanup_for_base): Likewise. 756 (build_vec_delete_1): Likewise. 757 (build_delete): Likewise. 758 (push_base_cleanups): Likewise. 759 (build_new_1): Avoid redundant error. 760 * method.c (synthesized_method_walk): Can't ever exit early in C++11. 761 Always process the subobject destructor. 762 * semantics.c (finish_compound_literal): Make sure trivial dtor is 763 callable. 764 * typeck2.c (split_nonconstant_init): Likewise. 765 7662013-10-23 Edward Smith-Rowland <3dw4rd@verizon.net> 767 768 Implement C++14 [[deprecated]] modulo [[gnu::deprecated]] bugs. 769 * parser.c (cp_parser_std_attribute): Interpret [[deprecated]] 770 as [[gnu::deprecated]]. 771 7722013-10-22 Paolo Carlini <paolo.carlini@oracle.com> 773 774 PR c++/58816 775 * pt.c (apply_late_template_attributes): Use get_attribute_name, 776 not TREE_PURPOSE. 777 7782013-10-18 Paolo Carlini <paolo.carlini@oracle.com> 779 780 PR c++/58466 781 * pt.c (most_specialized_class): Bump processing_template_decl for 782 get_class_bindings. 783 7842013-10-18 Paolo Carlini <paolo.carlini@oracle.com> 785 786 * parser.c (cp_parser_lookup_name): Tidy. 787 7882013-10-17 Andrew MacLeod <amacleod@redhat.com> 789 790 * parser.c: Include omp-low.h. 791 * semantics.c: Likewise. 792 7932013-10-17 Paolo Carlini <paolo.carlini@oracle.com> 794 795 PR c++/58596 796 * lambda.c (lambda_expr_this_capture): Handle NSDMIs in the 797 cp_unevaluated_operand case. 798 7992013-10-16 Jason Merrill <jason@redhat.com> 800 801 * pt.c (apply_late_template_attributes): Use 802 attribute_takes_identifier_p. 803 804 * error.c (dump_exception_spec): Print "noexcept" rather than 805 "noexcept (true)". 806 807 Core 1591 808 * pt.c (unify_array_domain): Split out from unify. 809 (unify): Use it for list deduction, too. 810 811 PR c++/57850 812 * decl2.c (dump_tu): Split out from... 813 (cp_write_global_declarations): ...here. Call it in PCH mode. 814 8152013-10-16 Paolo Carlini <paolo.carlini@oracle.com> 816 817 * pt.c (tsubst): Fix typo in last commit. 818 8192013-10-16 Paulo Matos <pmatos@broadcom.com> 820 821 * error.c (code_to_string): Use new wrapper get_tree_code_name. 822 * cxx-pretty-print.c (pp_cxx_assignment_operator): Likewise. 823 * pt.c (tsubst): Likewise. 824 * semantics.c (cxx_eval_constant_expression, 825 potential_constant_expression_1): Likewise. 826 * mangle.c (MANGLE_TRACE_TREE, dump_substitution_candidates, 827 add_substitution, find_substitution): Likewise. 828 8292013-10-15 Paolo Carlini <paolo.carlini@oracle.com> 830 831 PR c++/58707 832 * parser.c (cp_parser_postfix_open_square_expression): Set 833 parser->greater_than_is_operator_p for the argument. 834 8352013-10-11 Paolo Carlini <paolo.carlini@oracle.com> 836 837 PR c++/58633 838 * parser.c (cp_parser_commit_to_topmost_tentative_parse): New. 839 (cp_parser_pseudo_destructor_name): Use it. 840 8412013-10-11 Paolo Carlini <paolo.carlini@oracle.com> 842 843 PR c++/31671 844 * pt.c (convert_nontype_argument): Set expr_type to 845 TREE_TYPE (probe_type). 846 8472013-10-11 Jakub Jelinek <jakub@redhat.com> 848 849 * decl.c (duplicate_decls): Error out for redeclaration of UDRs. 850 (declare_simd_adjust_this): New function. 851 (grokfndecl): If "omp declare simd" attribute is present, 852 call declare_simd_adjust_this if needed and 853 c_omp_declare_simd_clauses_to_numbers. 854 * cp-array-notation.c (expand_array_notation_exprs): Handle 855 OMP_TASKGROUP. 856 * cp-gimplify.c (cp_gimplify_expr): Handle OMP_SIMD and 857 OMP_DISTRIBUTE. Handle is_invisiref_parm decls in 858 OMP_CLAUSE_REDUCTION. 859 (cp_genericize_r): Handle OMP_SIMD and OMP_DISTRIBUTE like 860 OMP_FOR. 861 (cxx_omp_privatize_by_reference): Return true for 862 is_invisiref_parm decls. 863 (cxx_omp_finish_clause): Adjust cxx_omp_create_clause_info 864 caller. 865 * pt.c (apply_late_template_attributes): For "omp declare simd" 866 attribute call tsubst_omp_clauses, 867 c_omp_declare_simd_clauses_to_decls, finish_omp_clauses 868 and c_omp_declare_simd_clauses_to_numbers. 869 (instantiate_class_template_1): Call cp_check_omp_declare_reduction 870 for UDRs. 871 (tsubst_decl): Handle UDRs. 872 (tsubst_omp_clauses): Add declare_simd argument, if true don't 873 call finish_omp_clauses. Handle new OpenMP 4.0 clauses. 874 Handle non-NULL OMP_CLAUSE_REDUCTION_PLACEHOLDER on 875 OMP_CLAUSE_REDUCTION. 876 (tsubst_expr): For UDRs call pushdecl and 877 cp_check_omp_declare_reduction. Adjust tsubst_omp_clauses 878 callers. Handle OMP_SIMD, OMP_DISTRIBUTE, OMP_TEAMS, 879 OMP_TARGET_DATA, OMP_TARGET_UPDATE, OMP_TARGET, OMP_TASKGROUP. 880 Adjust finish_omp_atomic caller. 881 (tsubst_omp_udr): New function. 882 (instantiate_decl): For UDRs at block scope, don't call 883 start_preparsed_function/finish_function. Call tsubst_omp_udr. 884 * semantics.c (cxx_omp_create_clause_info): Add need_dtor argument, 885 use it instead of need_default_ctor || need_copy_ctor. 886 (struct cp_check_omp_declare_reduction_data): New type. 887 (handle_omp_array_sections_1, handle_omp_array_sections, 888 omp_reduction_id, omp_reduction_lookup, 889 cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction_r, 890 cp_check_omp_declare_reduction, clone_omp_udr, 891 find_omp_placeholder_r, finish_omp_reduction_clause): New functions. 892 (finish_omp_clauses): Handle new OpenMP 4.0 clauses and user defined 893 reductions. 894 (finish_omp_for): Add CODE argument, use it instead of hardcoded 895 OMP_FOR. Adjust c_finish_omp_for caller. 896 (finish_omp_atomic): Add seq_cst argument, adjust 897 c_finish_omp_atomic callers, handle seq_cst and new OpenMP 4.0 898 atomic variants. 899 (finish_omp_cancel, finish_omp_cancellation_point): New functions. 900 * decl2.c (mark_used): Force immediate instantiation of 901 DECL_OMP_DECLARE_REDUCTION_P decls. 902 (is_late_template_attribute): Return true for "omp declare simd" 903 attribute. 904 (cp_omp_mappable_type): New function. 905 (cplus_decl_attributes): Add implicit "omp declare target" attribute 906 if requested. 907 * parser.c (cp_debug_parser): Print 908 parser->colon_doesnt_start_class_def_p. 909 (cp_ensure_no_omp_declare_simd, cp_finalize_omp_declare_simd): New 910 functions. 911 (enum pragma_context): Add pragma_member and pragma_objc_icode. 912 (cp_parser_binary_expression): Handle no_toplevel_fold_p 913 even for binary operations other than comparison. 914 (cp_parser_linkage_specification): Call 915 cp_ensure_no_omp_declare_simd if needed. 916 (cp_parser_namespace_definition): Likewise. 917 (cp_parser_init_declarator): Call cp_finalize_omp_declare_simd. 918 (cp_parser_direct_declarator): Pass declarator to 919 cp_parser_late_return_type_opt. 920 (cp_parser_late_return_type_opt): Add declarator argument, 921 call cp_parser_late_parsing_omp_declare_simd for declare simd. 922 (cp_parser_class_specifier_1): Call cp_ensure_no_omp_declare_simd. 923 Parse UDRs before all other methods. 924 (cp_parser_member_specification_opt): Use pragma_member instead of 925 pragma_external. 926 (cp_parser_member_declaration): Call cp_finalize_omp_declare_simd. 927 (cp_parser_function_definition_from_specifiers_and_declarator, 928 cp_parser_save_member_function_body): Likewise. 929 (cp_parser_late_parsing_for_member): Handle UDRs specially. 930 (cp_parser_next_token_starts_class_definition_p): Don't allow 931 CPP_COLON if colon_doesnt_start_class_def_p flag is true. 932 (cp_parser_objc_interstitial_code): Use pragma_objc_icode 933 instead of pragma_external. 934 (cp_parser_omp_clause_name): Parse new OpenMP 4.0 clause names. 935 (cp_parser_omp_var_list_no_open): Parse array sections for 936 OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses. Add COLON argument, 937 if non-NULL, allow parsing to end with a colon rather than close 938 paren. 939 (cp_parser_omp_var_list): Adjust cp_parser_omp_var_list_no_open 940 caller. 941 (cp_parser_omp_clause_reduction): Handle user defined reductions. 942 (cp_parser_omp_clause_branch, cp_parser_omp_clause_cancelkind, 943 cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit, 944 cp_parser_omp_clause_aligned, cp_parser_omp_clause_linear, 945 cp_parser_omp_clause_safelen, cp_parser_omp_clause_simdlen, 946 cp_parser_omp_clause_depend, cp_parser_omp_clause_map, 947 cp_parser_omp_clause_device, cp_parser_omp_clause_dist_schedule, 948 cp_parser_omp_clause_proc_bind, cp_parser_omp_clause_to, 949 cp_parser_omp_clause_from, cp_parser_omp_clause_uniform): New 950 functions. 951 (cp_parser_omp_all_clauses): Add finish_p argument. Don't call 952 finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses. 953 (cp_parser_omp_atomic): Parse seq_cst clause, pass 954 true if it is present to finish_omp_atomic. Handle new OpenMP 4.0 955 atomic forms. 956 (cp_parser_omp_for_loop): Add CODE argument, pass it through 957 to finish_omp_for. Change last argument to cclauses, 958 and adjust uses to grab parallel clauses from the array of all 959 the split clauses. 960 (cp_omp_split_clauses): New function. 961 (cp_parser_omp_simd): New function. 962 (cp_parser_omp_for): Add p_name, mask and cclauses arguments. 963 Allow the function to be called also when parsing combined constructs, 964 and call c_parser_omp_simd when parsing for simd. 965 (cp_parser_omp_sections_scope): If section-sequence doesn't start with 966 #pragma omp section, require exactly one structured-block instead of 967 sequence of statements. 968 (cp_parser_omp_sections): Add p_name, mask and cclauses arguments. 969 Allow the function to be called also when parsing combined constructs. 970 (cp_parser_omp_parallel): Add p_name, mask and cclauses arguments. 971 Allow the function to be called also when parsing combined 972 constructs. 973 (cp_parser_omp_taskgroup, cp_parser_omp_cancel, 974 cp_parser_omp_cancellation_point, cp_parser_omp_distribute, 975 cp_parser_omp_teams, cp_parser_omp_target_data, 976 cp_parser_omp_target_update, cp_parser_omp_target, 977 cp_parser_omp_declare_simd, cp_parser_late_parsing_omp_declare_simd, 978 cp_parser_omp_declare_target, cp_parser_omp_end_declare_target, 979 cp_parser_omp_declare_reduction_exprs, cp_parser_omp_declare_reduction, 980 cp_parser_omp_declare): New functions. 981 (cp_parser_omp_construct): Add p_name and mask vars. Handle 982 PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP, 983 PRAGMA_OMP_TEAMS. Adjust cp_parser_omp_for, cp_parser_omp_parallel 984 and cp_parser_omp_sections callers. 985 (cp_parser_pragma): Handle PRAGMA_OMP_CANCEL, 986 PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION, 987 PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP, 988 PRAGMA_OMP_TEAMS, PRAGMA_OMP_TARGET, PRAGMA_OMP_END_DECLARE_TARGET. 989 Handle pragma_member and pragma_objc_icode like pragma_external. 990 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK, 991 OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. 992 (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND. 993 (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add 994 OMP_CLAUSE_DEPEND. 995 (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK, 996 OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK, 997 OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK, 998 OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK, 999 OMP_DECLARE_SIMD_CLAUSE_MASK): Define. 1000 * parser.h (struct cp_omp_declare_simd_data): New type. 1001 (struct cp_parser): Add colon_doesnt_start_class_def_p and 1002 omp_declare_simd fields. 1003 * cp-objcp-common.h (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define. 1004 * cp-tree.h (struct lang_decl_fn): Add omp_declare_reduction_p 1005 bit. 1006 (DECL_OMP_DECLARE_REDUCTION_P): Define. 1007 (OMP_FOR_GIMPLIFYING_P): Use OMP_LOOP_CHECK macro. 1008 (struct saved_scope): Add omp_declare_target_attribute field. 1009 (cp_omp_mappable_type, omp_reduction_id, 1010 cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction, 1011 finish_omp_cancel, finish_omp_cancellation_point): New prototypes. 1012 (finish_omp_for): Add CODE argument. 1013 (finish_omp_atomic): Add seq_cst argument. 1014 (cxx_omp_create_clause_info): Add need_dtor argument. 1015 10162013-10-09 Marek Polacek <polacek@redhat.com> 1017 1018 PR c++/58635 1019 * semantics.c (finish_return_stmt): Return error_mark_node 1020 when error_operand_p of the expr is true. 1021 (build_transaction_expr): Check for EXPR_P before setting the 1022 expr location. 1023 10242013-10-08 Paolo Carlini <paolo.carlini@oracle.com> 1025 1026 PR c++/58568 1027 * lambda.c (begin_lambda_type): Check return value of xref_tag 1028 for error_mark_node; tidy. 1029 * decl.c (grokdeclarator): Tweak error message. 1030 10312013-10-08 Paolo Carlini <paolo.carlini@oracle.com> 1032 1033 PR c++/58665 1034 Revert: 1035 2013-10-04 Paolo Carlini <paolo.carlini@oracle.com> 1036 1037 PR c++/58448 1038 * pt.c (tsubst): Use error_operand_p on parameter t. 1039 10402013-10-06 Paolo Carlini <paolo.carlini@oracle.com> 1041 1042 PR c++/58126 1043 * class.c (check_bases): Propagate CLASSTYPE_READONLY_FIELDS_NEED_INIT 1044 and CLASSTYPE_REF_FIELDS_NEED_INIT from bases to derived. 1045 * init.c (diagnose_uninitialized_cst_or_ref_member_1): Extend error 1046 messages about uninitialized const and references members to mention 1047 the base class. 1048 10492013-10-06 Paolo Carlini <paolo.carlini@oracle.com> 1050 1051 PR c++/56060 1052 * pt.c (type_dependent_expression_p): Handle EXPR_PACK_EXPANSION. 1053 10542013-10-04 Paolo Carlini <paolo.carlini@oracle.com> 1055 1056 PR c++/58560 1057 * typeck2.c (build_functional_cast): Use error_operand_p on exp. 1058 10592013-10-04 Paolo Carlini <paolo.carlini@oracle.com> 1060 1061 PR c++/58503 1062 * parser.c (cp_parser_perform_range_for_lookup): If eventually 1063 either *begin or *end is type-dependent, return NULL_TREE. 1064 (do_range_for_auto_deduction): If cp_parser_perform_range_for_lookup 1065 returns NULL_TREE, don't actually do_auto_deduction. 1066 10672013-10-04 Paolo Carlini <paolo.carlini@oracle.com> 1068 1069 PR c++/58448 1070 * pt.c (tsubst): Use error_operand_p on parameter t. 1071 10722013-10-04 Marc Glisse <marc.glisse@inria.fr> 1073 1074 PR c++/19476 1075 * decl.c (cxx_init_decl_processing): Set operator_new_flag. 1076 10772013-10-04 Paolo Carlini <paolo.carlini@oracle.com> 1078 1079 PR c++/58584 1080 * decl2.c (save_template_attributes): Handle error_mark_node as 1081 *attr_p argument. 1082 (cp_check_const_attributes): Likewise for attributes. 1083 * parser.c (cp_parser_std_attribute_spec): When alignas_expr is an 1084 error_mark_node call cp_parser_skip_to_end_of_statement. 1085 10862013-10-03 Easwaran Raman <eraman@google.com> 1087 1088 PR c++/33911 1089 * parser.c (cp_parser_init_declarator): Do not drop attributes 1090 of template member functions. 1091 10922013-10-03 Marek Polacek <polacek@redhat.com> 1093 1094 PR c++/58510 1095 * init.c (sort_mem_initializers): Splice when giving an error. 1096 10972013-10-02 Paolo Carlini <paolo.carlini@oracle.com> 1098 1099 PR c++/58535 1100 * parser.c (cp_parser_function_specifier_opt): Upon error about 1101 virtual templates don't set ds_virtual. 1102 (finish_fully_implicit_template): Reject virtual implicit templates. 1103 11042013-10-02 Paolo Carlini <paolo.carlini@oracle.com> 1105 1106 PR c++/58565 1107 * semantics.c (potential_constant_expression_1): Handle LABEL_EXPR. 1108 11092013-10-01 Paolo Carlini <paolo.carlini@oracle.com> 1110 1111 PR c++/58563 1112 * parser.c (cp_parser_lookup_name): Check make_typename_type return 1113 value for error_mark_node. 1114 11152013-09-25 Tom Tromey <tromey@redhat.com> 1116 1117 * Make-lang.in (CXX_TREE_H, CXX_PARSER_H, CXX_PRETTY_PRINT_H): 1118 Remove. 1119 11202013-09-25 Tom Tromey <tromey@redhat.com> 1121 1122 * Make-lang.in (g++spec.o): Remove. 1123 (CFLAGS-cp/g++spec.o): New variable. 1124 (GXX_OBJS): Reference cp/g++spec.o. 1125 (cc1plus-checksum.o, cp/lex.o, cp/cp-array-notation.o) 1126 (cp/cp-lang.o, cp/decl.o, cp/decl2.o, cp/cp-objcp-common.o) 1127 (cp/typeck2.o, cp/typeck.o, cp/class.o, cp/call.o) 1128 (cp/friend.o, cp/init.o, cp/method.o, cp/cvt.o, cp/search.o) 1129 (cp/tree.o, cp/ptree.o, cp/rtti.o, cp/except.o, cp/expr.o) 1130 (cp/pt.o, cp/error.o, cp/repo.o, cp/semantics.o, cp/dump.o) 1131 (cp/optimize.o, cp/mangle.o, cp/parser.o, cp/cp-gimplify.o) 1132 (cp/name-lookup.o, cp/cxx-pretty-print.o): Remove. 1133 11342013-09-25 Tom Tromey <tromey@redhat.com> 1135 1136 * Make-lang.in (g++spec.o): Don't use subshell. 1137 11382013-09-25 Marek Polacek <polacek@redhat.com> 1139 1140 PR c++/58516 1141 * semantics.c (finish_transaction_stmt): Check for EXPR_P before 1142 setting the expr location. 1143 11442013-09-23 Adam Butcher <adam@jessamine.co.uk> 1145 1146 PR c++/58500 1147 * type-utils.h (find_type_usage): Only traverse one type level into 1148 member function pointers. 1149 11502013-09-23 Adam Butcher <adam@jessamine.co.uk> 1151 1152 * parser.c (cp_parser_init_declarator): Defer calling 1153 finish_fully_implicit_template for forward declarations until after 1154 other decl processing is complete. Cleanup for clarity: Extract 'else' 1155 case after 'if' containing unconditional return. 1156 11572013-09-23 Adam Butcher <adam@jessamine.co.uk> 1158 1159 * parser.c (make_generic_type_name): Spell generic type names '<autoN>' 1160 rather than '__GenN'. 1161 11622013-09-23 Adam Butcher <adam@jessamine.co.uk> 1163 1164 * lambda.c (maybe_add_lambda_conv_op): Don't check for instantiated 1165 callop in the case of generic lambdas. 1166 11672013-09-23 Adam Butcher <adam@jessamine.co.uk> 1168 1169 * parser.c (make_generic_type_name): Use global count rather than 1170 parameter and ... 1171 (add_implicit_template_parms): ... propagate interface change here. 1172 11732013-09-20 Paolo Carlini <paolo.carlini@oracle.com> 1174 1175 PR c++/58481 1176 * pt.c (tsubst_copy): Use current_nonlambda_class_type to 1177 call tsubst_baselink. 1178 11792013-09-18 Paolo Carlini <paolo.carlini@oracle.com> 1180 1181 PR c++/58457 1182 * class.c (instantiate_type): Loosen a bit the gcc_assert. 1183 11842013-09-18 Marek Polacek <polacek@redhat.com> 1185 1186 PR sanitize/58443 1187 * typeck.c (cp_build_binary_op): Properly honor -fsanitize options. 1188 Remove unnecessary check. 1189 11902013-09-18 Marek Polacek <polacek@redhat.com> 1191 1192 PR sanitizer/58411 1193 * typeck.c (cp_build_binary_op): Don't sanitize function if it has the 1194 no_sanitize_undefined attribute. 1195 11962013-09-17 Paolo Carlini <paolo.carlini@oracle.com> 1197 1198 PR c++/58435 1199 * pt.c (tsubst, [BOUND_TEMPLATE_TEMPLATE_PARM]): Take into account 1200 the cp_type_quals (r) too. 1201 12022013-09-16 Adam Butcher <adam@jessamine.co.uk> 1203 1204 * cp-tree.h (type_uses_auto_or_concept): Declare. 1205 (is_auto_or_concept): Declare. 1206 * decl.c (grokdeclarator): Allow 'auto' parameters in lambdas with 1207 -std=gnu++1y or -std=c++1y or, as a GNU extension, in plain functions. 1208 * type-utils.h: New header defining ... 1209 (find_type_usage): ... this new function based on pt.c (type_uses_auto) 1210 for searching a type tree given a predicate. 1211 * pt.c (type_uses_auto): Reimplement via type-utils.h (find_type_usage). 1212 (is_auto_or_concept): New function. 1213 (type_uses_auto_or_concept): New function. 1214 * parser.h (struct cp_parser): Add fully_implicit_function_template_p. 1215 * parser.c (cp_parser_new): Initialize 1216 fully_implicit_function_template_p. 1217 (cp_parser_new): Initialize fully_implicit_function_template_p. 1218 (cp_parser_lambda_expression): Copy and restore value of 1219 fully_implicit_function_template_p as per other parser fields. 1220 (cp_parser_parameter_declaration_list): Count generic 1221 parameters and call ... 1222 (add_implicit_template_parms): ... this new function to synthesize them 1223 with help from type-utils.h (find_type_usage), ... 1224 (tree_type_is_auto_or_concept): ... this new static function and ... 1225 (make_generic_type_name): ... this new static function. 1226 (cp_parser_direct_declarator): Account for implicit template parameters. 1227 (cp_parser_lambda_declarator_opt): Finish fully implicit template if 1228 necessary by calling ... 1229 (finish_fully_implicit_template): ... this new function. 1230 (cp_parser_init_declarator): Likewise. 1231 (cp_parser_function_definition_after_declarator): Likewise. 1232 (cp_parser_member_declaration): Likewise. 1233 * Make-lang.in (cp/pt.o): Add dependency on type-utils.h. 1234 (cp/parser.o): Likewise. 1235 12362013-09-16 Adam Butcher <adam@jessamine.co.uk> 1237 1238 * parser.c (cp_parser_lambda_declarator_opt): Accept template parameter 1239 list with std=c++1y or std=gnu++1y. 1240 (cp_parser_lambda_body): Don't call 'expand_or_defer_fn' for lambda call 1241 operator template to avoid adding template result to symbol table. 1242 * lambda.c (lambda_function): Return template result if call operator is 1243 a template. 1244 (maybe_add_lambda_conv_op): Move declarations to point of use. Refactor 1245 operator call building in order to support conversion of a non-capturing 1246 lambda template to a function pointer with help from ... 1247 (prepare_op_call): ... this new function. 1248 * decl2.c (check_member_template): Don't reject lambda call operator 1249 template in local [lambda] class. 1250 * pt.c (instantiate_class_template_1): Don't instantiate lambda call 1251 operator template when instantiating lambda class. 1252 12532013-09-16 Adam Butcher <adam@jessamine.co.uk> 1254 1255 * pt.c (make_auto_1): Use input_location rather than BUILTINS_LOCATION. 1256 12572013-09-15 Jason Merrill <jason@redhat.com> 1258 1259 Core DR 904 1260 PR c++/41933 1261 * parser.c (cp_parser_lambda_introducer): Handle variadic capture. 1262 * lambda.c (add_capture): Handle variadic capture. 1263 (add_default_capture, lambda_capture_field_type): Likewise. 1264 (build_capture_proxy, register_capture_members): Likewise. 1265 * pt.c (register_specialization): Allow FIELD_DECL. 1266 (retrieve_specialization): Likewise. 1267 (find_parameter_packs_r): Handle FIELD_DECL and VAR_DECL. 1268 (tsubst_pack_expansion): Handle FIELD_DECL packs. 1269 (gen_elem_of_pack_expansion_instantiation): Likewise. 1270 (instantiate_class_template_1): Likewise. 1271 (tsubst_decl, tsubst_copy): Likewise. 1272 (tsubst_expr) [DECL_EXPR]: Handle capture proxy packs. 1273 (tsubst_copy_and_build) [VAR_DECL]: Likewise. 1274 * semantics.c (finish_non_static_data_member): Don't try to represent 1275 the type of a COMPOUND_REF of a FIELD_DECL pack. 1276 1277 PR c++/41933 1278 * cp-tree.h (DECL_PACK_P): Replace FUNCTION_PARAMETER_PACK_P. 1279 * cxx-pretty-print.c (direct_declarator): Adjust. 1280 * decl2.c (cp_build_parm_decl): Adjust. 1281 * pt.c (function_parameter_pack_p): Adjust. 1282 (find_parameter_packs_r, push_template_decl_real): Adjust. 1283 (tsubst_pack_expansion, tsubst_decl): Adjust. 1284 (regenerate_decl_from_template, instantiate_decl): Adjust. 1285 1286 * lambda.c (add_capture): Don't add DECL_LANG_SPECIFIC. 1287 12882013-09-13 Jason Merrill <jason@redhat.com> 1289 1290 PR c++/58273 1291 * pt.c (any_type_dependent_elements_p): Actually check for 1292 type-dependence, not value-dependence. 1293 12942013-09-13 Jacek Caban <jacek@codeweavers.com> 1295 1296 * decl.c: Use new cxx_implicit_extern_c hook 1297 12982013-09-12 Brooks Moses <bmoses@google.com> 1299 1300 PR driver/42955 1301 * Make-lang.in: Do not install driver binaries in $(target)/bin. 1302 13032013-09-12 Adam Butcher <adam@jessamine.co.uk> 1304 1305 * pt.c (instantiate_decl): Save/restore cp_unevaluated_operand and 1306 c_inhibit_evaluation_warnings. Reset if instantiating within a 1307 function-local template. 1308 13092013-09-12 Paolo Carlini <paolo.carlini@oracle.com> 1310 1311 * semantics.c (finish_pseudo_destructor_expr): Add location_t 1312 parameter. 1313 * pt.c (unify_arg_conversion): Use EXPR_LOC_OR_HERE. 1314 (tsubst_copy_and_build): Adjust finish_pseudo_destructor_expr 1315 calls. 1316 * parser.c (cp_parser_postfix_dot_deref_expression): Likewise. 1317 (cp_parser_postfix_expression): Pass the proper location to 1318 cp_parser_postfix_dot_deref_expression. 1319 * cp-tree.h (finish_pseudo_destructor_expr): Update declaration. 1320 13212013-09-10 Jan Hubicka <jh@suse.cz> 1322 Paolo Carlini <paolo.carlini@oracle.com> 1323 1324 * error.c (print_instantiation_partial_context_line): If 1325 loc == UNKNOWN_LOCATION return immediately. 1326 13272013-09-09 Jakub Jelinek <jakub@redhat.com> 1328 1329 PR c++/58325 1330 * init.c (build_vec_delete): Call mark_rvalue_use on base. 1331 13322013-09-09 Paolo Carlini <paolo.carlini@oracle.com> 1333 1334 PR c++/43452 1335 * init.c (build_vec_delete_1): When the type is incomplete emit a 1336 warning, enabled by default (not an error). 1337 (build_delete): Adjust to use OPT_Wdelete_incomplete. 1338 13392013-09-09 Paolo Carlini <paolo.carlini@oracle.com> 1340 1341 PR c++/58362 1342 * error.c (location_of): Don't handle PARM_DECLs specially. 1343 13442013-09-09 Paolo Carlini <paolo.carlini@oracle.com> 1345 1346 * error.c (dump_expr, [PSEUDO_DTOR_EXPR]): Fix. 1347 * cxx-pretty-print.c (cxx_pretty_printer::postfix_expression): 1348 Tweak, TREE_OPERAND (t, 1) may be null. 1349 13502013-09-08 Caroline Tice <cmtice@google.com> 1351 1352 PR c++/58300 1353 * vtable-class-hierarchy.c (vtv_generate_init_routine): In 1354 preinit case, move call to assemble_vtv_preinit_initializer to 1355 after call to cgraph_process_new_functions. 1356 13572013-09-08 Tom de Vries <tom@codesourcery.com> 1358 1359 PR c++/58282 1360 * except.c (build_must_not_throw_expr): Handle 1361 flag_exceptions. 1362 13632013-09-08 Joern Rennecke <joern.rennecke@embecosm.com> 1364 1365 * typeck.c (cp_build_binary_op): Use vector_types_compatible_elements_p. 1366 13672013-09-04 Paolo Carlini <paolo.carlini@oracle.com> 1368 1369 PR c++/24926 1370 * class.c (finish_struct_anon_r): New. 1371 (finish_struct_anon): Use it. 1372 13732013-09-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 1374 1375 * cxx-pretty-print.h (cxx_pretty_printer::simple_type_specifier): 1376 Declare as overrider. 1377 * cxx-pretty-print.c (cxx_pretty_printer::simple_type_specifier): 1378 Rename from pp_cxx_simple_type_specifier. 1379 (cxx_pretty_printer::cxx_pretty_printer): Do not assign to 1380 simple_type_specifier. 1381 13822013-09-03 Paolo Carlini <paolo.carlini@oracle.com> 1383 1384 PR c++/58305 1385 * typeck2.c (build_functional_cast): Maybe warn_deprecated_use. 1386 13872013-09-03 Mike Stump <mikestump@comcast.net> 1388 1389 * Make-lang.in (cp/lambda.o): Add dependencies. 1390 13912013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net> 1392 1393 * cxx-pretty-print.h (cxx_pretty_printer::type_id): Declare as 1394 overrider. 1395 * cxx-pretty-print.c (pp_cxx_storage_class_specifier): Remove. 1396 (pp_cxx_userdef_literal): Tidy. 1397 (pp_cxx_template_argument_list): Likewise. 1398 (pp_cxx_typeid_expression): Likewise. 1399 (pp_cxx_offsetof_expression_1): Likewise. 1400 (cxx_pretty_printer::postfix_expression): Likewise. 1401 (cxx_pretty_printer::unary_expression): Likewise. 1402 (cxx_pretty_printer::statement): Likewise. 1403 (cxx_pretty_printer::type_id): Rename from pp_cxx_type_id. 1404 (c_pretty_printer::cxx_pretty_printer): Do not assign to type_id. 1405 * error.c (dump_decl): Tidy. 1406 (dump_expr): Likewise. 1407 14082013-09-02 Paolo Carlini <paolo.carlini@oracle.com> 1409 1410 PR c++/21682, implement DR 565 1411 * name-lookup.c (compparms_for_decl_and_using_decl): New. 1412 (push_overloaded_decl_1, do_nonmember_using_decl): Use it. 1413 14142013-08-30 Marek Polacek <polacek@redhat.com> 1415 1416 * typeck.c (cp_build_binary_op): Add division by zero and shift 1417 instrumentation. 1418 * error.c (dump_expr): Special-case ubsan builtins. 1419 14202013-08-30 Paolo Carlini <paolo.carlini@oracle.com> 1421 1422 PR c++/51424 1423 * cp-tree.h (LOOKUP_DELEGATING_CONS): Add. 1424 * init.c (perform_target_ctor): Use it. 1425 * call.c (build_special_member_call): Diagnose self-delegating 1426 constructors. 1427 14282013-08-30 Gabriel Dos Reis <gdr@integrable-solutions.net> 1429 1430 * cxx-pretty-print.h (cxx_pretty_printer::declaration): Declare as 1431 overrider. 1432 (cxx_pretty_printer::declaration_specifiers): Likewise. 1433 (cxx_pretty_printer::function_specifier): Likewise. 1434 (cxx_pretty_printer::declarator): Likewise. 1435 (cxx_pretty_printer::direct_declarator): Likewise. 1436 (cxx_pretty_printer::abstract_declarator): Likewise. 1437 (cxx_pretty_printer::direct_abstract_declarator): Likewise. 1438 (pp_cxx_declaration): Remove. 1439 * cxx-pretty-print.c (cxx_pretty_printer::function_specifier): 1440 Rename from pp_cxx_function_specifier. Adjust. 1441 (cxx_pretty_printer::declaration_specifiers): Rename from 1442 pp_cxx_decl_specifier_seq. Adjust. 1443 (cxx_pretty_printer::direct_declarator): Rename from 1444 pp_cxx_direct_declarator. Adjust. 1445 (cxx_pretty_printer::declarator): Rename from pp_cxx_declarator. 1446 Adjust. 1447 (cxx_pretty_printer::abstract_declarator): Rename from 1448 pp_cxx_abstract_declarator. Adjust. 1449 (cxx_pretty_printer::direct_abstract_declarator): Rename from 1450 pp_cxx_direct_abstract_declarator. Adjust. 1451 (cxx_pretty_printer::declaration): Rename from 1452 pp_cxx_declaration. Adjust. 1453 (cxx_pretty_printer::cxx_pretty_printer): Do not assign to 1454 declaration, declaration_specifiers, function_specifier, 1455 declarator, direct_declarator, abstract_declarator, 1456 direct_abstract_declarator. 1457 * error.c (dump_decl): Adjust. 1458 14592013-08-29 Jan Hubicka <jh@suse.cz> 1460 1461 Correct previous patch to not mark terminate as LEAF. 1462 * class.c (build_vtbl_initializer): Drop LEAF 1463 * decl.c (cxx_init_decl_processing): Likewise. 1464 (push_throw_library_fn): Likewise. 1465 * except.c (init_exception_processing): Likewise. 1466 (do_begin_catch): Likewise. 1467 (do_end_catch): Likewise. 1468 (do_allocate_exception): Likewise. 1469 14702013-08-29 Jan Hubicka <jh@suse.cz> 1471 1472 * class.c (build_vtbl_initializer): Make __cxa_deleted_virtual 1473 ECF_NORETURN | ECF_LEAF 1474 * cp-tree.h (build_library_fn_ptr, build_cp_library_fn_ptr, 1475 push_library_fn, push_void_library_fn): Update prototype. 1476 * decl.c (build_library_fn_1): Remove. 1477 (push_cp_library_fn, build_cp_library_fn): Update to take ECF flags. 1478 (cxx_init_decl_processing): Update; global_delete_fndecl is ECF_NOTROW; 1479 __cxa_pure_virtual is ECF_NORETURN | ECF_NORETURN | ECF_LEAF. 1480 (build_library_fn_1): Add ecf_flags argument; rename to ... 1481 (build_library_fn): ... this one. 1482 (build_cp_library_fn): Take ecf_flags; do not copy NOTHROW flag. 1483 (build_library_fn_ptr): Take ecf_flags. 1484 (build_cp_library_fn_ptr): Likewise. 1485 (push_library_fn): Likewise. 1486 (push_cp_library_fn): Likewise. 1487 (push_void_library_fn): Likewise. 1488 (push_throw_library_fn): All throws are ECF_NORETURN. 1489 (__cxa_atexit, __cxa_thread_atexit): Add ECF_LEAF | ECF_NOTHROW attributes. 1490 (expand_static_init): __cxa_guard_acquire, __cxa_guard_release, 1491 __cxa_guard_abort are ECF_NOTHROW | ECF_LEAF. 1492 * except.c (init_exception_processing): terminate is 1493 ECF_NOTHROW | ECF_NORETURN | ECF_LEAF. 1494 (declare_nothrow_library_fn): Add ecf_flags parameter. 1495 (__cxa_get_exception_ptr): Is ECF_NOTHROW | ECF_PURE | ECF_LEAF | 1496 ECF_TM_PURE. 1497 (do_begin_catch): cxa_begin_catch and _ITM_cxa_begin_catch 1498 are ECF_NOTHROW | ECF_LEAF. 1499 (do_end_catch): __cxa_end_catch and _ITM_cxa_end_catch is 1500 ECF_LEAF. 1501 (do_allocate_exception): _cxa_allocate_exception 1502 and _ITM_cxa_allocate_exception are ECF_NOTHROW | ECF_MALLOC 1503 | ECF_LEAF 1504 (do_free_exception): __cxa_free_exception is 1505 ECF_NOTHROW | ECF_LEAF. 1506 * rtti.c (build_dynamic_cast_1): __dynamic_cast 1507 is ECF_LEAF | ECF_PURE | ECF_NOTHROW. 1508 15092013-08-29 Adam Butcher <adam@jessamine.co.uk> 1510 1511 * error.c (dump_lambda_function): New function, dependent on ... 1512 (dump_substitution): ... this new function, factored out of ... 1513 (subst_to_string): ... here and ... 1514 (dump_function_decl): ... here. Updated to early-out with call to 1515 dump_lambda_function after determining template bindings. 1516 15172013-08-28 Paolo Carlini <paolo.carlini@oracle.com> 1518 1519 PR c++/58255 1520 * init.c (build_aggr_init): When init == void_type_node do not 1521 set LOOKUP_ONLYCONVERTING. 1522 15232013-08-27 Caroline Tice <cmtice@google.com> 1524 1525 * vtable-class-hierarchy.c: Remove unnecessary include statements. 1526 (MAX_SET_SIZE): Remove unnecessary constant. 1527 (register_construction_vtables): Make vtable_ptr_array parameter 1528 into a vector; remove num_args parameter. Change array accesses to 1529 vector accesses. 1530 (register_other_binfo_vtables): Ditto. 1531 (insert_call_to_register_set): Ditto. 1532 (insert_call_to_register_pair): Ditto. 1533 (output_set_info): Ditto. Also change warning calls to warning_at 1534 calls, and fix format of warning messages. 1535 (register_all_pairs): Change vtbl_ptr_array from an array into a 1536 vector. Remove num_vtable_args (replace with calls to vector length). 1537 Change array stores & accesses to vector functions. Change calls to 1538 register_construction_vtables, register_other_binfo_vtables, 1539 insert_call_to_register_set, insert_call_to_register_pair and 1540 output_set_info to match their new signatures. Change warning to 1541 warning_at and fix the format of the warning message. 1542 15432013-08-27 Jakub Jelinek <jakub@redhat.com> 1544 Aldy Hernandez <aldyh@redhat.com> 1545 1546 * cp-tree.h (CP_OMP_CLAUSE_INFO): Adjust range for new clauses. 1547 15482013-08-27 Paolo Carlini <paolo.carlini@oracle.com> 1549 1550 * decl.c (grokfndecl): Remove old bison hack. 1551 15522013-08-26 Jan Hubicka <jh@suse.cz> 1553 1554 * cp-tree.h (DECL_CONSTRUCTOR_P, DECL_DESTRUCTOR_P): Use 1555 middle-end flag. 1556 15572013-08-26 Gabriel Dos Reis <gdr@integrable-solutions.net> 1558 1559 * cxx-pretty-print.h (cxx_pretty_printer::unary_expression): 1560 Declare as overrider. 1561 (cxx_pretty_printer::multiplicative_expression): Likewise. 1562 (cxx_pretty_printer::conditional_expression): Likewise. 1563 (cxx_pretty_printer::assignment_expression): Likewise. 1564 (cxx_pretty_printer::expression): Likewise. 1565 * cxx-pretty-print.c (cxx_pretty_printer::unary_expression): 1566 Rename from pp_cxx_unary_expression. Adjust. 1567 (cxx_pretty_printer::multiplicative_expression): Rename from 1568 pp_cxx_multiplicative_expression. Adjust. 1569 (cxx_pretty_printer::conditional_expression): Rename from 1570 pp_cxx_conditional_expression. Adjust. 1571 (cxx_pretty_printer::assignment_expression): Rename from 1572 pp_cxx_assignment_expression. Adjust. 1573 (cxx_pretty_printer::expression): Rename from pp_cxx_expression. 1574 Adjust. 1575 (cxx_pretty_printer::cxx_pretty_printer): Dot not assign to 1576 unary_expression, multiplicative_expression, 1577 conditional_expression, assignment_expression, expression. 1578 15792013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net> 1580 1581 * cxx-pretty-print.h (cxx_pretty_printer::postfix_expression): 1582 Declare as overrider. 1583 * cxx-pretty-print.c (cxx_pretty_printer::postfix_expression): 1584 Rename from pp_cxx_postfix_expression. Adjust. 1585 (pp_cxx_expression): Use pp_postfix_expression. 1586 (cxx_pretty_printer::cxx_pretty_printer): Do not assign to 1587 postfix_expression. 1588 15892013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net> 1590 1591 * cxx-pretty-print.h (cxx_pretty_printer::primary_expression): Now 1592 an overrider of c_pretty_printer::primary_expression. 1593 * cxx-pretty-print.c (cxx_pretty_printer::primary_expression): 1594 Rename from pp_cxx_primary_expression. Adjust. 1595 (pp_cxx_postfix_expression): Use pp_primary_expression. 1596 (pp_cxx_ctor_initializer): Likewise. 1597 (cxx_pretty_printer::cxx_pretty_printer): Do not assign to 1598 primary_expression. 1599 16002013-08-23 Jan Hubicka <jh@suse.cz> 1601 1602 * cp-tree.h (struct lang_type_class): Free is_final bit. 1603 (CLASSTYPE_FINAL): Define using TYPE_FINAL_P. 1604 (DECL_FINAL_P): Remove. 1605 * pt.c (instantiate_class_template_1): Guard that CLASSTYPE_FINAL 1606 is called on CLASS_TYPE_P. 1607 16082013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net> 1609 1610 * cxx-pretty-print.c (M_): Remove. 1611 (pp_cxx_unqualified_id): Use translate_string instead of M_. 1612 (pp_cxx_canonical_template_parameter): Likewise. 1613 16142013-08-24 Gabriel Dos Reis <gdr@integrable-solutions.net> 1615 1616 * cxx-pretty-print.h (cxx_pretty_printer::id_expression): Declare. 1617 * cxx-pretty-print.c (cxx_pretty_printer::id_expression): Rename 1618 from pp_cxx_id_expression. Adjust. 1619 (pp_cxx_userdef_literal): Use pp_id_expression. 1620 (pp_cxx_primary_expression): Likewise. 1621 (pp_cxx_direct_declarator): Likewise. 1622 (cxx_pretty_printer::cxx_pretty_printer): Do not assign to 1623 id_expression. 1624 16252013-08-24 Gabriel Dos Reis <gdr@integrable-solutions.net> 1626 1627 * cxx-pretty-print.h (cxx_pretty_printer::constant): Now a member 1628 function, overriding c_pretty_printer::constant. 1629 * cxx-pretty-print.c (cxx_pretty_printer::constant): Rename from 1630 pp_cxx_constant. Adjust. 1631 (cxx_pretty_printer::cxx_pretty_printer): Do not assign to constant. 1632 16332013-08-23 Gabriel Dos Reis <gdr@integrable-solutiobs.net> 1634 1635 * cp-objcp-common.c (cxx_initialize_diagnostics): Call a 1636 destructor for the early printer. 1637 * error.c (type_to_string): Use pp_buffer. 1638 16392013-08-22 Paolo Carlini <paolo.carlini@oracle.com> 1640 1641 PR c++/56380 1642 * class.c (check_field_decls): Check for const mutable and const 1643 reference data members. 1644 16452013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 1646 1647 * error.c (init_error): Remove calls to pp_construct and 1648 pp_cxx_pretty_printer_init. Initialize cxx_pp with placement-new. 1649 * cxx-pretty-print.h (cxx_pretty_printer::cxx_pretty_printer): Declare. 1650 (cxx_pretty_printer_init): Remove. 1651 * cxx-pretty-print.c (cxx_pretty_printer::cxx_pretty_printer): 1652 Rename from cxx_pretty_printer_init. Adjust. 1653 * cp-objcp-common.c (cxx_initialize_diagnostics): Simplify 1654 initialization of C++ diagnostics pretty printer. 1655 16562013-08-21 Paolo Carlini <paolo.carlini@oracle.com> 1657 1658 * call.c (build_new_method_call_1): Use INDIRECT_REF_P. 1659 * cp-tree.h (REFERENCE_REF_P): Likewise. 1660 * semantics.c (finish_offsetof): Likewise. 1661 16622013-08-21 Paolo Carlini <paolo.carlini@oracle.com> 1663 1664 PR c++/56130 1665 * semantics.c (finish_id_expression): Handle deprecated references. 1666 16672013-08-20 Jason Merrill <jason@redhat.com> 1668 1669 PR c++/58119 1670 * cvt.c (build_expr_type_conversion): Don't complain about a 1671 template that can't match the desired type category. 1672 16732013-08-20 Gabriel Dos Reis <gdr@integrable-solutions.net> 1674 1675 * error.c (pp_ggc_formatted_text): New. 1676 (type_as_string): Use it in lieu of pp_formatted_text. 1677 (type_as_string_translate): Likewise. 1678 (expr_as_string): Likewise. 1679 (decl_as_string): Likewise. 1680 (decl_as_string_translate): Likewise. 1681 (lang_decl_name): Likewise. 1682 (decl_to_string): Likewise. 1683 (expr_to_string): Likewise. 1684 (fndecl_to_string): Likewise. 1685 (parm_to_string): Likewise. 1686 (type_to_string): Likewise. 1687 (args_to_string): Likewise. 1688 (subst_to_string): Likewise. 1689 16902013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com> 1691 1692 PR c/57490 1693 * cp-array-notation.c (cp_expand_cond_array_notations): Added a 1694 check for truth values. 1695 (expand_array_notation_exprs): Added truth values case. Removed an 1696 unwanted else. Added for-loop to walk through subtrees in default 1697 case. 1698 * call.c (build_cxx_call): Inherited the type of the array notation for 1699 certain built-in array notation functions. 1700 17012013-08-19 Paolo Carlini <paolo.carlini@oracle.com> 1702 1703 * parser.c (cp_parser_lambda_introducer, cp_parser_decltype_expr): 1704 Use cp_parser_lookup_name_simple. 1705 17062013-08-19 Paolo Carlini <paolo.carlini@oracle.com> 1707 1708 * name-lookup.h (pop_bindings_and_leave_scope): Declare. 1709 * name-lookup.c (pop_bindings_and_leave_scope): Define. 1710 * parser.c (cp_parser_lambda_declarator_opt, 1711 cp_parser_direct_declarator, cp_parser_cache_defarg): Use it. 1712 17132013-08-17 Jason Merrill <jason@redhat.com> 1714 1715 PR c++/58083 1716 * name-lookup.c (push_class_level_binding_1): It's OK to push a 1717 lambda type after the enclosing type is complete. 1718 17192013-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net> 1720 1721 * error.c (dump_scope): Add a cxx_pretty_printer parameter. 1722 Adjust callers. 1723 (dump_template_argument): Likewise. 1724 (dump_template_argument_list): Likewise. 1725 (dump_template_parameter): Likewise. 1726 (dump_template_bindings): Likewise. 1727 (dump_alias_template_specialization): Likewise. 1728 (dump_type): Likewise. 1729 (dump_typename): Likewise. 1730 (dump_aggr_type): Likewise. 1731 (dump_type_prefix): Likewise. 1732 (dump_type_suffix): Likewise. 1733 (dump_global_iord): Likewise. 1734 (dump_simple_decl): Likewise. 1735 (dump_decl): Likewise. 1736 (dump_template_decl): Likewise. 1737 (dump_function_decl): Likewise. 1738 (dump_parameters): Likewise. 1739 (dump_ref_qualifier): Likewise. 1740 (dump_exception_spec): Likewise. 1741 (dump_function_name): Likewise. 1742 (dump_template_parms): Likewise. 1743 (dump_call_expr_args): Likewise. 1744 (dump_aggr_init_expr_args): Likewise. 1745 (dump_expr_list): Likewise. 1746 (dump_expr_init_vec): Likewise. 1747 (dump_expr): Likewise. 1748 (dump_binary_op): Likewise. 1749 (dump_unary_op): Likewise. 1750 17512013-08-14 Paolo Carlini <paolo.carlini@oracle.com> 1752 1753 PR c++/51912 1754 * cp-tree.h (LOOKUP_NO_NON_INTEGRAL): Add. 1755 * decl.c (case_conversion): Use it. 1756 * call.c (standard_conversion): Likewise. 1757 (implicit_conversion): Adjust. 1758 17592013-08-13 Adam Butcher <adam@jessamine.co.uk> 1760 1761 * pt.c: Grammar fix in comments ("it's" to "its"). 1762 17632013-08-12 Paolo Carlini <paolo.carlini@oracle.com> 1764 1765 * decl.c (warn_extern_redeclared_static, duplicate_decls, 1766 check_elaborated_type_specifier): Use error + inform. 1767 * friend.c (make_friend_class): Likewise. 1768 * semantics.c (finish_id_expression): Likewise. 1769 17702013-08-09 Paolo Carlini <paolo.carlini@oracle.com> 1771 1772 Revert: 1773 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com> 1774 1775 PR c++/46206 1776 * name-lookup.c (lookup_name_real_1): Handle iter->type before 1777 iter->value. 1778 17792013-08-07 Paolo Carlini <paolo.carlini@oracle.com> 1780 1781 PR c++/46206 1782 * name-lookup.c (lookup_name_real_1): Handle iter->type before 1783 iter->value. 1784 17852013-08-06 Caroline Tice <cmtice@google.com> 1786 1787 * Make-lang.in (*CXX_AND_OBJCXX_OBJS): Add vtable-class-hierarchy.o to 1788 list. 1789 (vtable-class-hierarchy.o): Add build rule. 1790 * cp-tree.h (vtv_start_verification_constructor_init_function): New 1791 extern function decl. 1792 (vtv_finish_verification_constructor_init_function): New extern 1793 function decl. 1794 (build_vtbl_address): New extern function decl. 1795 (get_mangled_vtable_map_var_name): New extern function decl. 1796 (vtv_compute_class_hierarchy_transitive_closure): New extern function 1797 decl. 1798 (vtv_generate_init_routine): New extern function decl. 1799 (vtv_save_class_info): New extern function decl. 1800 (vtv_recover_class_info): New extern function decl. 1801 (vtv_build_vtable_verify_fndecl): New extern function decl. 1802 * class.c (finish_struct_1): Add call to vtv_save_class_info if 1803 flag_vtable_verify is true. 1804 * config-lang.in: Add vtable-class-hierarchy.c to gtfiles list. 1805 * vtable-class-hierarchy.c: New file. 1806 * mangle.c (get_mangled_vtable_map_var_name): New function. 1807 * decl2.c (start_objects): Update function comment. 1808 (cp_write_global_declarations): Call vtv_recover_class_info, 1809 vtv_compute_class_hierarchy_transitive_closure and 1810 vtv_build_vtable_verify_fndecl, before calling 1811 finalize_compilation_unit, and call vtv_generate_init_rount after, IFF 1812 flag_vtable_verify is true. 1813 (vtv_start_verification_constructor_init_function): New function. 1814 (vtv_finish_verification_constructor_init_function): New function. 1815 * init.c (build_vtbl_address): Remove static qualifier from function. 1816 18172013-08-06 Jason Merrill <jason@redhat.com> 1818 1819 PR c++/57825 1820 * tree.c (strip_typedefs) [METHOD_TYPE]: Preserve ref-qualifier. 1821 18222013-08-05 Paolo Carlini <paolo.carlini@oracle.com> 1823 1824 PR c++/58080 1825 * typeck.c (cp_pointer_int_sum): Add tsubst_flags_t parameter. 1826 (cp_build_binary_op): Adjust. 1827 18282013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 1829 1830 * cxx-pretty-print.h (pp_c_base): Remove. 1831 (cxx_pretty_printer): Derive from c_pretty_printer. 1832 Adjust macros using pp_c_base. 1833 * cp-objcp-common.c (cxx_initialize_diagnostics): Do not call pp_base. 1834 * cxx-pretty-print.c (pp_cxx_nonconsecutive_character): Likewise. 1835 (pp_cxx_colon_colon): Likewise. 1836 (pp_cxx_separate_with): Likewise. 1837 (pp_cxx_storage_class_specifier): Do not call pp_c_base. 1838 (pp_cxx_expression_list): Likewise. 1839 (pp_cxx_space_for_pointer_operator): Likewise. 1840 (pp_cxx_init_declarator): Likewise. 1841 (pp_cxx_call_argument_list): Likewise. 1842 (pp_cxx_constant): Likewise. 1843 (pp_cxx_postfix_expression): Likewise. 1844 (pp_cxx_new_expression): Likewise. 1845 (pp_cxx_unary_expression): Likewise. 1846 (pp_cxx_cast_expression): Likewise. 1847 (pp_cxx_conditional_expression): Likewise. 1848 (pp_cxx_assignment_expression): Likewise. 1849 (pp_cxx_expression): Likewise. 1850 (pp_cxx_function_specifier): Likewise. 1851 (pp_cxx_decl_specifier_seq): Likewise. 1852 (pp_cxx_simple_type_specifier): Likewise. 1853 (pp_cxx_type_specifier_seq): Likewise. 1854 (pp_cxx_ptr_operator): Likewise. 1855 (pp_cxx_parameter_declaration_clause): Likewise. 1856 (pp_cxx_direct_declarator): Likewise. 1857 (pp_cxx_direct_abstract_declarator): Likewise. 1858 (pp_cxx_type_id): Likewise. 1859 (pp_cxx_statement): Likewise. 1860 (pp_cxx_pretty_printer_init): Tidy. 1861 * error.c (init_error): Do not use pp_base. 1862 (dump_aggr_type): Likewise. 1863 (dump_type_prefix): Likewise. 1864 (dump_type_suffix): Likewise. 1865 (dump_global_iord): Likewise. 1866 (dump_decl): Likewise. 1867 (dump_function_decl): Likewise. 1868 (dump_ref_qualifier): Likewise. 1869 (reinit_cxx_pp): Likewise. 1870 (decl_as_dwarf_string): Likewise. 1871 (lang_decl_dwarf_name): Likewise. 1872 (type_to_string): Likewise. 1873 (cv_to_string): Likewise. 1874 (cxx_print_error_function): Likewise. 1875 (cp_diagnostic_starter): Likewise. 1876 (cp_diagnostic_finalizer): Likewise. 1877 (cp_print_error_function): Likewise. 1878 (print_instantiation_context): Likewise. 1879 (cp_printer): Likewise. 1880 18812013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net> 1882 1883 * error.c (dump_type_prefix): Use specialized pretty printer 1884 functions instead of pp_string or operators and punctuators. 1885 (dump_decl): Likewise. 1886 (dump_expr): Likewise. 1887 18882013-08-03 Jason Merrill <jason@redhat.com> 1889 1890 DR 1286 1891 * pt.c (get_underlying_template): New. 1892 (convert_template_argument, lookup_template_class_1): Use it. 1893 1894 DR 1430 1895 PR c++/51239 1896 * pt.c (pack_expansion_args_count): Rename from 1897 any_pack_expanson_args_p. 1898 (coerce_template_parms): Reject pack expansion to 1899 non-pack template parameter of alias template. 1900 19012013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net> 1902 1903 * error.c (dump_aggr_type): Use specialized pretty printer 1904 functions instead of pp_character. 1905 (dump_type_prefix): Likewise. 1906 (dump_simple_decl): Likewise. 1907 (type_to_string): Likewise. 1908 19092013-08-02 Paolo Carlini <paolo.carlini@oracle.com> 1910 1911 * cp-tree.h (finish_stmt): Do not declare. 1912 * decl.c (finish_stmt): Do not define. 1913 * parser.c (cp_parser_expression_statement, 1914 cp_parser_declaration_statement, 1915 cp_parser_transaction_cancel): Don't call finish_stmt. 1916 * semantics.c (finish_expr_stmt, finish_if_stmt, 1917 finish_while_stmt, finish_do_stmt, finish_return_stmt, 1918 finish_for_stmt, finish_switch_stmt, finish_compound_stmt, 1919 finish_transaction_stmt): Likewise. 1920 19212013-08-01 Fabien Chêne <fabien@gcc.gnu.org> 1922 1923 PR c++/54537 1924 * cp-tree.h: Check OVL_USED with OVERLOAD_CHECK. 1925 * name-lookup.c (do_nonmember_using_decl): Make sure we have an 1926 OVERLOAD before calling OVL_USED. Call diagnose_name_conflict 1927 instead of issuing an error without mentioning the conflicting 1928 declaration. 1929 19302013-07-31 Paolo Carlini <paolo.carlini@oracle.com> 1931 1932 * parser.c (cp_parser_sizeof_pack): Check cp_parser_identifier 1933 return value for error_mark_node. 1934 19352013-07-30 Paolo Carlini <paolo.carlini@oracle.com> 1936 1937 PR c++/57673 1938 * parser.c (cp_parser_cache_defarg): In an NSDMI don't stop when 1939 token->type == CPP_ELLIPSIS. 1940 19412013-07-30 Paolo Carlini <paolo.carlini@oracle.com> 1942 1943 PR c++/57947 1944 * call.c (is_std_init_list): Return false if cxx_dialect == cxx98. 1945 19462013-07-29 Jason Merrill <jason@redhat.com> 1947 1948 PR c++/57901 1949 * semantics.c (build_data_member_initialization, constexpr_fn_retval): 1950 Use break_out_target_exprs instead of unshare_expr. 1951 19522013-07-29 Paolo Carlini <paolo.carlini@oracle.com> 1953 1954 PR c++/57948 1955 * call.c (initialize_reference): Don't crash when reference_binding 1956 returns a conv with conv->kind == ck_ambig. 1957 19582013-07-29 Jason Merrill <jason@redhat.com> 1959 1960 * mangle.c (write_name): Check for null context. 1961 (write_unscoped_name): Allow PARM_DECL context. 1962 19632013-07-25 Paolo Carlini <paolo.carlini@oracle.com> 1964 1965 PR c++/57981 1966 * decl.c (check_default_argument): Take a tsubst_flags_t parameter. 1967 (grokparms): Adjust. 1968 * parser.c (cp_parser_late_parse_one_default_arg): Likewise. 1969 * pt.c (tsubst_default_argument, tsubst_default_arguments): Take 1970 a tsubst_flags_t parameter. 1971 (tsubst_decl): Adjust. 1972 * call.c (convert_default_arg): Likewise. 1973 * cp-tree.h (check_default_argument, tsubst_default_argument): 1974 Update declarations. 1975 19762013-07-25 Paolo Carlini <paolo.carlini@oracle.com> 1977 1978 PR c++/57880 1979 * parser.c (cp_parser_operator, case CPP_WSTRING, CPP_STRING16, 1980 CPP_STRING32, CPP_UTF8STRING, CPP_WSTRING_USERDEF, 1981 CPP_STRING16_USERDEF, CPP_STRING32_USERDEF, CPP_UTF8STRING_USERDEF): 1982 Fix string_len management, tidy. 1983 19842013-07-24 Paolo Carlini <paolo.carlini@oracle.com> 1985 1986 PR c++/57942 1987 * typeck.c (ptr_reasonably_similar): Use COMPARE_STRICT if either 1988 target type is incomplete; return a bool, not an int. 1989 * cp-tree.h (ptr_reasonably_similar): Adjust declaration. 1990 19912013-07-22 Paolo Carlini <paolo.carlini@oracle.com> 1992 1993 * cp-tree.h (DERIVED_FROM_P): Pass tf_none to lookup_base, not 1994 tf_warning_or_error. 1995 19962013-07-21 OndÅej BÃlka <neleai@seznam.cz> 1997 1998 * class.c: Fix typos. 1999 * cp-array-notation.c: Likewise. 2000 * cp-objcp-common.c: Likewise. 2001 * decl.c: Likewise. 2002 * init.c: Likewise. 2003 * mangle.c: Likewise. 2004 * parser.c: Likewise. 2005 * pt.c: Likewise. 2006 * semantics.c: Likewise. 2007 20082013-07-14 Adam Butcher <adam@jessamine.co.uk> 2009 2010 * semantics.c (build_lambda_expr), 2011 (build_lambda_object), (begin_lambda_type), (lambda_return_type), 2012 (lambda_function), (lambda_capture_field_type), (is_capture_proxy), 2013 (is_normal_capture_proxy), (insert_capture_proxy), 2014 (insert_pending_capture_proxies), (lambda_proxy_type), 2015 (build_capture_proxy), (vla_capture_type), 2016 (register_capture_members), (add_default_capture), 2017 (lambda_expr_this_capture), (maybe_resolve_dummy), 2018 (nonlambda_method_basetype), (maybe_add_lambda_conv_op) and 2019 (is_lambda_ignored_entity): Moved definitions into ... 2020 * lambda.c: ... this new file. 2021 20222013-07-14 Marc Glisse <marc.glisse@inria.fr> 2023 2024 * call.c (build_conditional_expr_1): Handle the case with 1 vector 2025 and 2 scalars. Call save_expr before building a vector. 2026 * typeck.c (cp_build_binary_op): Check complain before complaining. 2027 20282013-07-13 Lubos Lunak <l.lunak@suse.cz> 2029 2030 PR c++/55203 2031 * init.c (build_aggr_init): Check for warn_unused attribute. 2032 * decl.c (poplevel): Likewise. 2033 20342013-07-13 Jason Merrill <jason@redhat.com> 2035 2036 PR c++/57402 2037 * init.c (build_vec_init): Use {} for arrays of class type. 2038 (build_vec_delete): Don't take the address of the array. 2039 2040 PR c++/57793 2041 * class.c (layout_class_type): Check for too-large class. 2042 2043 * call.c (can_convert): Allow user-defined conversions. 2044 (can_convert_standard): New. 2045 * cp-tree.h: Declare it. 2046 * cvt.c (convert_to_reference): Use it. 2047 * pt.c (convert_nontype_argument): Likewise. 2048 * search.c (check_final_overrider): Likewise. 2049 Don't worry about user-defined conversions. 2050 20512013-07-10 Paolo Carlini <paolo.carlini@oracle.com> 2052 2053 PR c++/57869 2054 * typeck.c (build_reinterpret_cast_1): With -Wconditionally-supported 2055 warn about casting between pointer-to-function and pointer-to-object. 2056 20572013-07-09 Jason Merrill <jason@redhat.com> 2058 2059 PR c++/57402 2060 * init.c (build_vec_init): Don't take shortcuts when initializing 2061 a VLA. 2062 2063 PR c++/57471 2064 * parser.c (cp_parser_sizeof_pack): Clear parser scopes. 2065 2066 PR c++/57658 2067 * semantics.c (finish_id_expression): Return the id for an 2068 unevaluated outer variable. 2069 2070 PR c++/57526 2071 * semantics.c (lambda_capture_field_type): Build a DECLTYPE_TYPE 2072 if the variable type uses 'auto'. 2073 2074 PR c++/57437 2075 * typeck.c (check_return_expr): Lambda proxies aren't eligible 2076 for nrv or return by move. 2077 2078 PR c++/57532 2079 * parser.c (cp_parser_ref_qualifier_opt): Don't tentatively parse 2080 a ref-qualifier in C++98 mode. 2081 2082 PR c++/57545 2083 * pt.c (convert_nontype_argument) [INTEGER_CST]: Force the 2084 argument to have the exact type of the parameter. 2085 2086 PR c++/57551 2087 * semantics.c (cxx_eval_indirect_ref): Don't try to look through 2088 a POINTER_PLUS_EXPR for type punning diagnostic. 2089 2090 PR c++/57831 2091 * pt.c (tsubst_copy): Handle USING_DECL. 2092 20932013-07-09 Marc Glisse <marc.glisse@inria.fr> 2094 2095 PR c++/53094 2096 * semantics.c (cxx_eval_bit_field_ref): Handle VECTOR_CST. 2097 20982013-07-09 Marc Glisse <marc.glisse@inria.fr> 2099 2100 PR c++/53000 2101 * call.c (build_conditional_expr_1): Preserve xvalues. 2102 21032013-07-09 Paolo Carlini <paolo.carlini@oracle.com> 2104 2105 PR c++/51786 2106 * parser.c (cp_parser_simple_declaration): Before calling shadow_tag 2107 also check declares_class_or_enum. 2108 21092013-07-08 Jason Merrill <jason@redhat.com> 2110 2111 PR c++/57550 2112 * pt.c (fn_type_unification): Only defer during substitution. 2113 (type_unification_real): Defer during defarg substitution, 2114 add checks parm to pass back deferred checks. 2115 (unify, do_auto_deduction): Adjust. 2116 * semantics.c (reopen_deferring_access_checks): New. 2117 * cp-tree.h: Declare it. 2118 21192013-07-06 Paolo Carlini <paolo.carlini@oracle.com> 2120 2121 PR c++/28262 2122 * parser.c (cp_parser_init_declarator): If we are parsing a typedef 2123 set parser->default_arg_ok_p to false before cp_parser_declarator. 2124 21252013-07-05 Paolo Carlini <paolo.carlini@oracle.com> 2126 2127 PR c++/14263 2128 * class.c (build_base_path): Improve diagnostic. 2129 21302013-07-04 Paolo Carlini <paolo.carlini@oracle.com> 2131 2132 PR c++/38634 2133 * decl.c (start_preparsed_function): Return a bool, false if 2134 push_template_decl fails. 2135 (start_function): Adjust. 2136 * cp-tree.h: Update. 2137 21382013-07-03 Jakub Jelinek <jakub@redhat.com> 2139 2140 PR c++/57771 2141 * parser.c (cp_parser_postfix_expression) <case RID_STATCAST> 2142 Temporarily set parser->greater_than_is_operator_p for 2143 cp_parser_expression and restore from saved value afterwards. 2144 21452013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net> 2146 2147 * cp-tree.h (UDLIT_OP_ANSI_PREFIX): Remove space. 2148 * parser.c (cp_parser_operator()): Parse user-defined string 2149 literal as literal operator. 2150 21512013-06-28 Paolo Carlini <paolo.carlini@oracle.com> 2152 2153 PR c++/57645 2154 * class.c (deduce_noexcept_on_destructors): Save, set, and restore 2155 TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) around the main loop over the 2156 destructors. 2157 21582013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> 2159 2160 * parser.c (cp_parser_array_notation): Removed rejection array notation 2161 of type function pointers. Added handling of array expressions when 2162 Cilk Plus is enabled. Took out type-checking. 2163 (cp_parser_postfix_open_square_expression): Moved normal array expr. 2164 parsing into cp_parser_array_notation when cilkplus is enabled. 2165 (cp_parser_compound_statement): Removed expansion of array notations. 2166 (cp_parser_ctor_initializer_opt_and_function_body): Likewise. 2167 (cp_parser_function_definition_after_declarator): Likewise. 2168 (cp_parser_selection_statement): Removed error reporting. 2169 (cp_parser_iteration_statement): Likewise. 2170 (cp_parser_direct_declarator): Removed error checking/reporting if 2171 array notations are used in the declarator. 2172 * pt.c (instantiate_decl): Likewise. 2173 (type_unification_real): Removed a check for ARRAY_NOTATION_REF. 2174 (cxx_eval_constant_expression): Removed ARRAY_NOTATION_REF case. 2175 (potential_constant_expression_1): Returned false for 2176 ARRAY_NOTATION_REF case. 2177 * cp-gimplify.c (cp_genericize): Added expansion of array notation 2178 expressions here. 2179 * cp-array-notation.c (make_triplet_val_inv): Removed loc and cry 2180 parameters. Replaced build_decls with get_temp_regvar with type as 2181 ptrdiff. 2182 (create_array_refs): Made the type-casting to ptrdiff_type. 2183 (replace_invariant_var): Added a check for void return type before 2184 creating new var. Replaced build_decl and build_min_nt_loc with 2185 get_temp_regvar. 2186 (expand_an_in_modify_expr): Ditto. Replaced body of redundant else 2187 with gcc_unreachable. Removed few unwanted checks. Made induction 2188 variable type as ptrdiff_type. Removed loc and complain arguments 2189 passed into make_triplet_val_inv. Replaced all modify expression's 2190 code from NOP EXPR to INIT EXPR. Replaced all forceful appending 2191 into stmt. list with the non-forceful one. Replaced some integer 2192 conversion and equality-checking to using tree_int_cst_equal. 2193 (expand_sec_reduce_builtin): All changes mentioned in above function 2194 expand_an_in_modify_expr. Made the new variable type of 2195 SEC_REDUCE_ANY/ALL_{NON}ZERO intrinsic functions as bool. 2196 (expand_array_notation_exprs): Removed SWITCH_EXPR case. Moved all 2197 the error reporting from parser to this function. Removed unwanted 2198 statements and checks from SWITCH_STMT, WHILE_STMT, and DO_STMT cases. 2199 (cilkplus_an_triplet_types_ok_p): Removed rejection of array notation 2200 in function pointers. 2201 (cp_expand_cond_array_notations): Added a new if statements to check 2202 if condition has a zero rank. If so, then just return. 2203 (expand_return_expr): Added a check for return expressions with a rank. 2204 Replaced get_tmp_regvar with a create_temporary_var. 2205 (build_array_notation_ref): Simplified and removed unwanted if-stmts. 2206 Moved common code outside if-statements. Moved type-checking from 2207 parser to here. 2208 * semantics.c (finish_return_stmt): Removed a check for return exprs. 2209 with a rank. 2210 * call.c (convert_like_real): Removed a check for array notation 2211 expression in a function. 2212 (build_over_call): Likewise. 2213 (magic_varargs_p): Added a check for builtin array notation function. 2214 Made this function non-static and removed its prototype. 2215 * cp-tree.h (magic_varargs_p): New prototype. 2216 * typeck.c (cp_build_function_call_vec): Removed automatic setting of 2217 nargs to the param->length when builtin reduction function is used. 2218 (convert_arguments): Replaced check for a constant_p function with 2219 margic_varargs_p function call. 2220 (cp_build_binary_op): Removed calling of the function 2221 find_correct_array_notation_type. 2222 (cp_build_addr_expr_1): Removed an unwanted if-statement. 2223 (convert_for_assignment): Removed automatic return of rhs when array 2224 notation builtin function is used. 2225 22262013-06-28 Paolo Carlini <paolo.carlini@oracle.com> 2227 2228 PR c++/57682 2229 * parser.c (cp_parser_save_member_function_body): Handle correctly 2230 curly braces in function-try-block mem-initializers. 2231 22322013-06-27 Marc Glisse <marc.glisse@inria.fr> 2233 2234 PR c++/57509 2235 * typeck.c (cp_build_vec_perm_expr): New function. 2236 * cp-tree.h: Declare it. 2237 * parser.c (cp_parser_postfix_expression): Call it. 2238 * pt.c (tsubst_copy): Handle VEC_PERM_EXPR. 2239 (tsubst_copy_and_build): Likewise. 2240 22412013-06-27 Marc Glisse <marc.glisse@inria.fr> 2242 2243 PR c++/57172 2244 * pt.c (more_specialized_fn): If both arguments are references, 2245 give priority to an lvalue. 2246 22472013-06-26 Jason Merrill <jason@redhat.com> 2248 2249 * typeck2.c (store_init_value): Diagnose a non-constant 2250 initializer for in-class static. 2251 2252 PR c++/57408 2253 * semantics.c (add_capture): Set type to error_mark_node after 2254 error. 2255 22562013-06-25 Ed Smith-Rowland <3dw4rd@verizon.net> 2257 2258 PR c++/57640 2259 * parser.c (cp_parser_unqualified_id): Add declarator_p to checks 2260 to trigger warning, (cp_literal_operator_id): Remove bogus TODO comment. 2261 22622013-06-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 2263 2264 * call.c (null_ptr_cst_p): Use cxx11 in lieu of cxx0x. 2265 * class.c (add_implicitly_declared_members): Likewise. 2266 (check_field_decl): Likewise. 2267 (finalize_literal_type_property): Likewise. 2268 (check_bases_and_members): Likewise. 2269 * decl.c (poplevel): Likewise. 2270 (case_conversion): Likewise. 2271 (check_initializer): Likewise. 2272 (grokfndecl): Likewise. 2273 (check_static_variable_definition): Likewise. 2274 (compute_array_index_type): Likewise. 2275 (grokdeclarator): Likewise. 2276 (build_enumerator): Likewise. 2277 * friend.c (make_friend_class): Likewise. 2278 * lex.c (init_reswords): Likewise. 2279 * method.c (synthesized_method_walk): Likewise. 2280 (implicitly_declare_fn): Likewise. 2281 * parser.c (cp_parser_diagnose_invalid_type_name): Likewise. 2282 (cp_parser_constant_expression): Likewise. 2283 (cp_parser_for_init_statement): Likewise. 2284 (cp_parser_block_declaration): Likewise. 2285 (cp_parser_type_name): Likewise. 2286 (cp_parser_enum_specifier): Likewise. 2287 (cp_parser_enumerator_list): Likewise. 2288 (cp_parser_member_declaration): Likewise. 2289 (cp_nth_tokens_can_be_std_attribute_p): Likewise. 2290 (cp_parser_template_declaration_after_export): Likewise. 2291 * pt.c (convert_nontype_argument_function): Likewise. 2292 (convert_nontype_argument): Likewise. 2293 (convert_template_argument): Likewise. 2294 (tsubst_copy_and_build): Likewise. 2295 (build_non_dependent_expr): Likewise. 2296 * semantics.c (non_const_var_error): Likewise. 2297 (potential_constant_expression_1): Likewise. 2298 * tree.c (lvalue_kind): Likewise. 2299 (build_vec_init_expr): Likewise. 2300 (cast_valid_in_integral_constant_expression_p): Likewise. 2301 * typeck.c (build_x_conditional_expr): Likewise. 2302 * typeck2.c (check_narrowing): Likewise. 2303 23042013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com> 2305 2306 * cp-array-notation.c (cp_length_mismatch_in_expr_p): Remove. 2307 (expand_an_in_modify_expr): Changed a function call from the above 2308 removed function to length_mismatch_in_expr_p. 2309 23102013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com> 2311 2312 * call.c (convert_like_real): Added a check if array notation is present 2313 in expression. If so, then no conversion of arguments is necessary. 2314 (build_over_call): Likewise. 2315 * typeck.c (cp_build_function_call_vec): Likewise. 2316 (convert_for_assignment): Likewise. 2317 (cp_build_array_ref): Reject array notations with a rank greater than 1 2318 as an array's index. 2319 (cp_build_binary_op): If array notations are preent in op, then call 2320 find_correct_array_notation_type. 2321 (cp_build_addr_expr_1): Handle ARRAY_NOTATION_REF similar to ARRAY_REF. 2322 * cp-array-notation.c: New file. 2323 * cp-objcp-common.c (cp_common_init_ts): Marked ARRAY_NOTATION_REF tree 2324 as typed. 2325 * cp-tree.h (fix_array_notation_exprs): New prototype. 2326 * semantics.c (finish_return_stmt): Reject array notations as 2327 return value. 2328 (cxx_eval_constant_expression): Added ARRAY_NOTATION_REF case. 2329 (potential_constant_expression_1): Likewise. 2330 * tree.c (lvalue_kind): Likewise. 2331 * error.c (dump_decl): Likewise. 2332 (dump_expr): Likewise. 2333 * pt.c (ARRAY_NOTATION_REF): Likewise. 2334 (type_unification_real): Do not unify any arguments if array notations 2335 are found in arg. 2336 (instantiate_decl): Added a check for array notaitons inside the 2337 function body. If so, then expand them. 2338 * parser.c (cp_parser_array_notation): New function. 2339 (cp_parser_postfix_open_square_expression): Added a check for colons 2340 inside square braces. If found, then handle the array access as an 2341 array notation access. Also, disable auto-correction from a single 2342 colon to scope when Cilk Plus is enabled. 2343 (cp_parser_compound_statement): Added a check for array notations 2344 inside the statement. If found, then expand them. 2345 (cp_parser_ctor_initializer_opt_and_function_body): Likewise. 2346 (cp_parser_function_definition_after_declarator): Likewise. 2347 (cp_parser_selection_statement): Searched for array notations inside 2348 condition. If so, then emit an error. 2349 (cp_parser_iteration_statement): Likewise. 2350 (cp_parser_direct_declarator): Reject array notations inside a 2351 variable or array declaration. 2352 * Make-lang.in (CXX_AND_OBJCXX_OBJS): Added cp/cp-array-notation.o. 2353 23542013-06-20 Jason Merrill <jason@redhat.com> 2355 2356 PR c++/55149 2357 * decl.c (compute_array_index_type): Don't reject VLAs in SFINAE 2358 context if we're in C++14 mode. 2359 * tree.c (array_of_runtime_bound_p): Return true for a dependent 2360 bound that is not potentually constant. 2361 * cp-tree.h (DECL_VLA_CAPTURE_P, REFERENCE_VLA_OK): New. 2362 * pt.c (tsubst) [REFERENCE_TYPE]: Check REFERENCE_VLA_OK. 2363 * semantics.c (build_lambda_object): Don't rvalue a VLA capture. 2364 (build_capture_proxy): Set REFERENCE_VLA_OK. 2365 (vla_capture_type): Make it a proper C++ class. 2366 (add_capture): Set DECL_VLA_CAPTURE_P. Don't pre-digest the 2367 initializer. 2368 2369 * decl.c (compute_array_index_type): Use size_one_node. 2370 2371 * pt.c (process_partial_specialization): Build a TEMPLATE_DECL for 2372 a partial specialization. 2373 (tsubst_decl): Don't clobber CLASSTYPE_TI_TEMPLATE of a partial 2374 specialization. 2375 (most_specialized_class): Adjust. 2376 2377 * cp-tree.h (DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT) 2378 (DECL_TEMPLATE_INSTANTIATIONS, DECL_TEMPLATE_SPECIALIZATIONS): Use 2379 TEMPLATE_DECL_CHECK. 2380 23812013-06-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2382 2383 PR c++/57638 2384 * pt.c (unify, [TEMPLATE_PARM_INDEX]): Pass to unify_type_mismatch 2385 TREE_TYPE (arg), not arg itself. 2386 23872013-06-18 Paolo Carlini <paolo.carlini@oracle.com> 2388 2389 PR c++/53211 2390 * pt.c (type_dependent_expression_p): Handle an array of unknown 2391 bound depending on a variadic parameter. 2392 * parser.c (cp_parser_range_for): Revert PR56794 changes. 2393 23942013-06-17 Richard Biener <rguenther@suse.de> 2395 2396 * cp-tree.h (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move to tree.h. 2397 23982013-06-17 Paolo Carlini <paolo.carlini@oracle.com> 2399 2400 PR c++/16128 2401 * parser.c (cp_parser_expression_statement): Check whether 2402 cp_parser_expression returns error_mark_node. 2403 24042013-06-14 Paolo Carlini <paolo.carlini@oracle.com> 2405 2406 PR c++/51413 2407 * semantics.c (finish_offsetof): Handle INDIRECT_REF as expr. 2408 24092013-06-14 Paolo Carlini <paolo.carlini@oracle.com> 2410 2411 PR c++/57599 2412 * rtti.c (build_dynamic_cast_1): In case of cast to an unambiguous 2413 accessible base simply forward to build_static_cast. 2414 24152013-06-12 Paolo Carlini <paolo.carlini@oracle.com> 2416 2417 PR c++/38958 2418 * decl.c (poplevel): For the benefit of -Wunused-variable see 2419 through references. 2420 24212013-06-12 Paolo Carlini <paolo.carlini@oracle.com> 2422 2423 * parser.c (cp_parser_nested_name_specifier_opt): Fix typo in comment. 2424 24252013-06-12 Paolo Carlini <paolo.carlini@oracle.com> 2426 2427 PR c++/42021 2428 * parser.c (cp_parser_nested_name_specifier_opt): Avoid emitting 2429 again diagnostic already emitted by cp_parser_lookup_name. 2430 24312013-06-11 Jan Hubicka <jh@suse.cz> 2432 2433 PR c++/57551 2434 * cp/pt.c (mark_decl_instantiated): Do not export explicit 2435 instantiations of anonymous namespace templates. 2436 24372013-06-10 Jason Merrill <jason@redhat.com> 2438 2439 * name-lookup.c (add_decl_to_level): Add decls in an anonymous 2440 namespace to static_decls. 2441 24422013-06-07 Sriraman Tallam <tmsriram@google.com> 2443 2444 PR c++/57548 2445 * call.c (build_over_call): Check if current_function_decl is 2446 NULL. 2447 24482013-06-07 Paolo Carlini <paolo.carlini@oracle.com> 2449 2450 PR c++/53658 2451 * pt.c (lookup_template_class_1): Consistently use TYPE_MAIN_DECL, 2452 not TYPE_STUB_DECL, to access the _DECL for a _TYPE. 2453 24542013-06-06 Jason Merrill <jason@redhat.com> 2455 2456 PR c++/55520 2457 * semantics.c (add_capture): Diagnose capture of variable-size 2458 type that is not a C++1y array of runtime bound. 2459 2460 * decl.c (grokdeclarator): Keep a decl with error type. 2461 (grokfield, grokbitfield): Likewise. 2462 * pt.c (instantiate_class_template_1): Likewise. 2463 (tsubst_decl): Drop redundant error. 2464 * class.c (walk_subobject_offsets): Handle erroneous fields. 2465 * typeck2.c (process_init_constructor_record): Likewise. 2466 24672013-06-05 Paolo Carlini <paolo.carlini@oracle.com> 2468 2469 PR c++/51908 2470 * parser.c (cp_parser_postfix_expression [RID_*CAST]): Set 2471 parser->in_type_id_in_expr_p before calling cp_parser_type_id. 2472 24732013-06-03 Jan Hubicka <jh@suse.cz> 2474 2475 * decl2.c (maybe_make_one_only): Use forced_by_abi instead of 2476 mark_decl_referenced. 2477 (mark_needed): Likewise. 2478 24792013-06-03 Jason Merrill <jason@redhat.com> 2480 2481 * class.c (mark_type_abi_tags): New. 2482 (check_abi_tags): Use it. 2483 24842013-06-03 Paolo Carlini <paolo.carlini@oracle.com> 2485 2486 PR c++/57419 2487 * decl2.c (mark_used): Add overload taking a tsubst_flags_t too. 2488 * semantics.c (finish_qualified_id_expr): Use it. 2489 * cp-tree.h: Update. 2490 24912013-06-01 Jan Hubicka <jh@suse.cz> 2492 2493 * decl2.c (cp_write_global_declarations): Replace same_body_alias 2494 by symbol.cpp_implicit_alias. 2495 24962013-05-30 Jason Merrill <jason@redhat.com> 2497 2498 PR c++/57404 2499 * cp-lang.c (cp_classify_record): Handle structs without 2500 TYPE_LANG_SPECIFIC. 2501 2502 PR c++/52377 2503 * class.c (common_enclosing_class): New. 2504 * cp-tree.h: Declare it. 2505 * init.c (sort_mem_initializers): Don't splice out a union member 2506 with an NSDMI. 2507 25082013-05-29 Jan Hubicka <jh@suse.cz> 2509 2510 * tree.c (cp_fix_function_decl_p): Update for new symtab flags. 2511 * decl2.c )var_finalized_p, cp_write_global_declarations): Likewise. 2512 25132013-05-25 Paolo Carlini <paolo.carlini@oracle.com> 2514 2515 PR c++/25666 2516 * decl2.c (check_classfn): Check for destructors declared as member 2517 templates. 2518 25192013-05-24 Jason Merrill <jason@redhat.com> 2520 2521 PR c++/56971 2522 * pt.c (any_template_arguments_need_structural_equality_p): A 2523 TEMPLATE_TEMPLATE_PARM can require structural type comparison. 2524 25252013-05-24 Paolo Carlini <paolo.carlini@oracle.com> 2526 2527 PR c++/19618 2528 * class.c (check_bitfield_decl): Warn for bool and enum bitfields 2529 with width exceeding the type. 2530 25312013-05-24 Jason Merrill <jason@redhat.com> 2532 2533 PR c++/57391 2534 * semantics.c (cxx_eval_constant_expression): Handle FMA_EXPR. 2535 (cxx_eval_trinary_expression): Rename from cxx_eval_vec_perm_expr. 2536 25372013-05-23 Jason Merrill <jason@redhat.com> 2538 2539 PR c++/57388 2540 * tree.c (build_ref_qualified_type): Clear 2541 FUNCTION_RVALUE_QUALIFIED for lvalue ref-qualifier. 2542 25432013-05-22 Jason Merrill <jason@redhat.com> 2544 2545 PR c++/56930 2546 * call.c (convert_like_real): Use cp_convert_and_check. 2547 * cvt.c (cp_convert_and_check): Use maybe_constant_value. 2548 * semantics.c (cxx_eval_constant_expression): Handle LTGT_EXPR. 2549 (potential_constant_expression_1): Handle OMP_ATOMIC*. 2550 2551 PR c++/56915 2552 * semantics.c (maybe_add_lambda_conv_op): Give up if the call op 2553 isn't defined. 2554 25552013-05-22 Paolo Carlini <paolo.carlini@oracle.com> 2556 2557 PR c++/57352 2558 * parser.c (cp_parser_conversion_type_id): Set up 2559 parser->type_definition_forbidden_message before calling 2560 cp_parser_type_specifier_seq. 2561 25622013-05-22 Paolo Carlini <paolo.carlini@oracle.com> 2563 2564 PR c++/57211 2565 * method.c (defaultable_fn_check): Avoid do_warn_unused_parameter 2566 warnings about defaulted functions. 2567 25682013-05-21 Paolo Carlini <paolo.carlini@oracle.com> 2569 2570 * call.c (build_conditional_expr_1): Add location_t parameter. 2571 (build_conditional_expr): Likewise. 2572 * typeck.c (rationalize_conditional_expr, cp_build_array_ref, 2573 get_member_function_from_ptrfunc, build_x_conditional_expr, 2574 cp_build_modify_expr): Update. 2575 * init.c (build_new_1): Likewise. 2576 * cp-tree.h: Update declaration. 2577 25782013-05-20 Jason Merrill <jason@redhat.com> 2579 2580 PR c++/57016 2581 * pt.c (instantiation_dependent_r) [TRAIT_EXPR]: Only check type2 2582 if there is one. 2583 2584 PR c++/57102 2585 * decl.c (fndecl_declared_return_type): Also look in 2586 DECL_SAVED_FUNCTION_DATA. 2587 25882013-05-20 Paolo Carlini <paolo.carlini@oracle.com> 2589 2590 PR c++/12288 2591 * parser.c (cp_parser_parameter_declaration): Check return value 2592 of cp_parser_parse_and_diagnose_invalid_type_name. 2593 25942013-05-20 Jason Merrill <jason@redhat.com> 2595 2596 PR c++/57319 2597 * class.c (vbase_has_user_provided_move_assign): New. 2598 * method.c (synthesized_method_walk): Check it. 2599 * cp-tree.h: Declare it. 2600 2601 PR c++/57325 2602 * tree.c (build_cplus_array_type): Copy layout info if element 2603 type is complete. 2604 26052013-05-20 Paolo Carlini <paolo.carlini@oracle.com> 2606 2607 PR c++/23608 2608 * call.c (build_new_op_1): Propagate loc to cp_build_binary_op. 2609 26102013-05-20 Jason Merrill <jason@redhat.com> 2611 2612 PR c++/57317 2613 * decl2.c (determine_visibility): Use PRIMARY_TEMPLATE_P to decide 2614 whether a template has its own args. 2615 26162013-05-20 Paolo Carlini <paolo.carlini@oracle.com> 2617 2618 PR c++/57327 2619 * pt.c (unify_no_common_base): Swap arg and parm arguments to inform. 2620 26212013-05-20 Paolo Carlini <paolo.carlini@oracle.com> 2622 2623 PR c++/10207 2624 * parser.c (cp_parser_postfix_expression): Use cp_parser_braced_list 2625 instead of cp_parser_initializer_list for compound-literals. 2626 26272013-05-20 Marc Glisse <marc.glisse@inria.fr> 2628 2629 PR c++/57175 2630 * typeck.c (check_return_expr): Reverse the alignment comparison. 2631 26322013-05-17 Paolo Carlini <paolo.carlini@oracle.com> 2633 2634 PR c++/18126 2635 * parser.c (cp_parser_sizeof_operand): As a GNU Extension, parse 2636 correctly sizeof compound-literal; update comments. 2637 26382013-05-16 Marc Glisse <marc.glisse@inria.fr> 2639 2640 * call.c (build_conditional_expr_1): Use cp_build_binary_op 2641 instead of directly calling fold_build2. 2642 26432013-05-16 Jason Merrill <jason@redhat.com> 2644 2645 * Make-lang.in (cc1plus$(exeext)): Use link mutex. 2646 2647 PR c++/57279 2648 * decl.c (grokdeclarator): Allow member function qualifiers in 2649 TYPENAME context in C++11 mode. 2650 26512013-05-16 Dodji Seketeli <dodji@redhat.com> 2652 2653 PR c++/56782 - Regression with empty pack expansions 2654 * pt.c (use_pack_expansion_extra_args_p): When at least a 2655 parameter pack has an empty argument pack, and another parameter 2656 pack has no argument pack at all, use the PACK_EXPANSION_EXTRA 2657 mechanism. 2658 26592013-05-15 Paolo Carlini <paolo.carlini@oracle.com> 2660 2661 * name-lookup.c (pushdecl_maybe_friend_1): Replace pairs of 2662 warning_at and permerror with warning_at/inform and permerror/ 2663 inform, respectively. 2664 26652013-05-15 Paolo Carlini <paolo.carlini@oracle.com> 2666 2667 PR c++/31952 2668 * name-lookup.c (pushdecl_maybe_friend_1): Diagnose illegal 2669 redeclarations. 2670 26712013-05-14 Jason Merrill <jason@redhat.com> 2672 2673 PR c++/57243 2674 * parser.c (cp_parser_range_for): Call complete_type. 2675 2676 PR c++/57041 2677 * pt.c (tsubst_copy_and_build): Don't recur into a designator. 2678 26792013-05-14 Paolo Carlini <paolo.carlini@oracle.com> 2680 2681 PR c++/53903 2682 * method.c (defaulted_late_check): Check for compatible exception 2683 specification out of class explicitly defaulted functions too. 2684 26852013-05-14 Jason Merrill <jason@redhat.com> 2686 2687 PR c++/56998 2688 * semantics.c (potential_constant_expression_1): Make sure the 2689 called function is potentially constant. 2690 * call.c (null_ptr_cst_p): Revert earlier change. 2691 26922013-05-13 Jason Merrill <jason@redhat.com> 2693 2694 PR c++/56998 2695 * call.c (null_ptr_cst_p): An expression with side-effects can't 2696 be a C++03 null pointer constant. 2697 2698 PR c++/57041 2699 * decl.c (reshape_init_class): Handle error_mark_node. 2700 2701 PR c++/57254 2702 * typeck.c (merge_types): Propagate ref-qualifier 2703 in METHOD_TYPE case. 2704 2705 PR c++/57253 2706 * decl.c (grokdeclarator): Apply ref-qualifier 2707 in the TYPENAME case. 2708 2709 PR c++/57252 2710 * decl.c (decls_match): Compare ref-qualifiers. 2711 27122013-05-10 Jason Merrill <jason@redhat.com> 2713 2714 PR c++/57196 2715 * pt.c (convert_template_argument): Use dependent_template_arg_p, 2716 not uses_template_parms. 2717 2718 PR c++/57047 2719 * semantics.c (cxx_fold_indirect_ref): Fix thinko. 2720 2721 PR c++/55149 2722 * semantics.c (add_capture): Error rather than abort on copy 2723 capture of VLA. 2724 * typeck.c (maybe_warn_about_returning_address_of_local): Don't 2725 warn about capture proxy. 2726 27272013-05-09 Jason Merrill <jason@redhat.com> 2728 2729 * decl.c (cp_finish_decl): Only check VLA bound in C++1y mode. 2730 2731 PR c++/57222 2732 * pt.c (lookup_template_class_1): Handle getting a template 2733 template parameter as D1. 2734 2735 N3639 C++1y VLA diagnostics 2736 * decl.c (grokdeclarator): Complain about reference, pointer, or 2737 typedef to VLA. 2738 (create_array_type_for_decl): Complain about array of VLA. 2739 * pt.c (tsubst): Likewise. 2740 * rtti.c (get_tinfo_decl): Talk about "array of runtime bound". 2741 * semantics.c (finish_decltype_type): Complain about decltype of VLA. 2742 * typeck.c (cp_build_addr_expr_1): Complain about VLA. 2743 (cxx_sizeof_or_alignof_type): Likewise. 2744 2745 N3639 C++1y VLA support 2746 * decl.c (compute_array_index_type): Allow VLAs in C++1y mode. 2747 (check_array_initializer): Allow VLA init. 2748 (reshape_init_array_1): Adjust. 2749 (cp_finish_decl): Check for invalid VLA length. 2750 * typeck2.c (process_init_constructor_array): Adjust. 2751 (store_init_value): Use build_vec_init for VLAs. 2752 * semantics.c (add_capture): Capture VLA as ptr+len. 2753 (vla_capture_type): New. 2754 (build_capture_proxy): Rebuild the VLA. 2755 * typeck.c (build_simple_component_ref): Split out from... 2756 (build_ptrmemfunc_access_expr): ...here. 2757 * tree.c (array_of_runtime_bound_p): New. 2758 * init.c (throw_bad_array_length): New. 2759 (build_vec_init): Use it. 2760 * parser.c (cp_convert_range_for): When iterating over a VLA, 2761 use it directly rather than bind a reference. 2762 * cp-tree.h: Declare new functions. 2763 27642013-05-08 Jason Merrill <jason@redhat.com> 2765 2766 * except.c (is_admissible_throw_operand_or_catch_parameter): Check 2767 variably_modified_type_p. 2768 (expand_start_catch_block): Mark the typeinfo used here. 2769 * semantics.c (finish_handler_parms): Not here. 2770 2771 * error.c (dump_type_suffix): Try harder on VLA length. 2772 2773 Core 624/N2932 2774 * init.c (throw_bad_array_new_length): New. 2775 (build_new_1): Use it. Don't warn about braced-init-list. 2776 (build_vec_init): Use it. 2777 * call.c (build_operator_new_call): Use it. 2778 2779 PR c++/57068 2780 * decl.c (grokdeclarator): Warn about ref-qualifiers here. 2781 * parser.c (cp_parser_ref_qualifier_seq_opt): Not here. 2782 * error.c (maybe_warn_cpp0x): s/0x/11/. 2783 27842013-05-08 Paolo Carlini <paolo.carlini@oracle.com> 2785 2786 PR c++/51226 2787 * parser.c (cp_parser_enum_specifier): Handle nested_name_specifier 2788 == error_mark_node. 2789 27902013-05-06 Marc Glisse <marc.glisse@inria.fr> 2791 2792 * typeck.c (cp_build_binary_op): Call save_expr before 2793 build_vector_from_val. 2794 27952013-05-06 Paolo Carlini <paolo.carlini@oracle.com> 2796 2797 PR c++/57183 2798 * decl.c (cp_finish_decl): After do_auto_deduction copy the 2799 qualifers with cp_apply_type_quals_to_decl. 2800 28012013-05-05 Paolo Carlini <paolo.carlini@oracle.com> 2802 2803 * pt.c (convert_nontype_argument): Add missing whitespace in 2804 error message. 2805 28062013-05-04 Paolo Carlini <paolo.carlini@oracle.com> 2807 2808 PR c++/53745 2809 * decl.c (build_enumerator): Improve error message. 2810 28112013-05-03 Paolo Carlini <paolo.carlini@oracle.com> 2812 2813 PR c++/14283 2814 * parser.c (cp_parser_diagnose_invalid_type_name): Improve error 2815 messages for template types and fix column numbers. 2816 28172013-05-01 Paolo Carlini <paolo.carlini@oracle.com> 2818 2819 PR c++/57132 2820 * pt.c (tsubst_copy_and_build, MODOP_EXPR): Increase / decrease 2821 c_inhibit_evaluation_warnings around build_x_modify_expr call. 2822 28232013-05-01 Paolo Carlini <paolo.carlini@oracle.com> 2824 2825 PR c++/57092 2826 * semantics.c (finish_decltype_type): Handle instantiated template 2827 non-type arguments. 2828 28292013-04-28 Paolo Carlini <paolo.carlini@oracle.com> 2830 2831 PR c++/56450 2832 * semantics.c (finish_decltype_type): Handle COMPOUND_EXPR. 2833 28342013-04-26 Jakub Jelinek <jakub@redhat.com> 2835 2836 * error.c (cp_print_error_function): Adjust file_name_as_prefix 2837 caller. 2838 28392013-04-25 Jason Merrill <jason@redhat.com> 2840 2841 PR c++/56859 2842 * typeck.c (cxx_alignas_expr): Handle value-dependence properly. 2843 2844 PR c++/50261 2845 * init.c (perform_member_init): Call reshape_init. 2846 28472013-04-24 Jason Merrill <jason@redhat.com> 2848 2849 PR c++/53721 2850 * parser.c (cp_parser_postfix_dot_deref_expression): Fix thinko. 2851 28522013-04-24 Paolo Carlini <paolo.carlini@oracle.com> 2853 2854 * typeck.c (cxx_sizeof_or_alignof_type): Change -Wpointer-arith 2855 pedwarn to simply use OPT_Wpointer_arith. 2856 (cp_build_unary_op): Likewise. 2857 28582013-04-24 Jason Merrill <jason@redhat.com> 2859 2860 N3648: init-captures are named. 2861 * semantics.c (add_capture): Don't prepend "__" to init-captures. 2862 (build_capture_proxy): Adjust. 2863 * error.c (dump_simple_decl): Check DECL_NORMAL_CAPTURE_P. 2864 2865 N3648: Allow braced and parenthesized initializers. 2866 * parser.c (cp_parser_lambda_introducer): Use cp_parser_initializer. 2867 * pt.c (tsubst) [DECLTYPE_TYPE]: Handle DECLTYPE_FOR_INIT_CAPTURE. 2868 * semantics.c (lambda_capture_field_type): Use do_auto_deduction. 2869 (add_capture): Collapse a parenthesized initializer into a single 2870 expression. 2871 * cp-tree.h (DECLTYPE_FOR_INIT_CAPTURE): New. 2872 28732013-04-24 Paolo Carlini <paolo.carlini@oracle.com> 2874 2875 PR c++/56970 2876 * init.c (build_offset_ref): Add tsubst_flags_t parameter. 2877 * semantics.c (finish_qualified_id_expr): Likewise. 2878 (finish_id_expression): Update. 2879 * typeck.c (cp_build_addr_expr_1): Likewise. 2880 * pt.c (tsubst_qualified_id, resolve_nondeduced_context): Likewise. 2881 * cp-tree.h: Update declarations. 2882 28832013-04-22 Jason Merrill <jason@redhat.com> 2884 2885 Core 1586 2886 * parser.c (cp_parser_unqualified_id): Handle ~auto. 2887 (cp_parser_pseudo_destructor_name): Likewise. 2888 (cp_parser_postfix_dot_deref_expression): Adjust. 2889 (cp_lexer_nth_token_is_keyword): New. 2890 * semantics.c (finish_pseudo_destructor_expr): Handle ~auto. 2891 * typeck.c (lookup_destructor): Handle ~auto. 2892 2893 * pt.c (fn_type_unification): Push tinst level around 2894 type_unification_real if we aren't explaining. 2895 * cp-tree.h (TFF_NO_TEMPLATE_BINDINGS): New. 2896 * error.c (dump_function_decl): Respect it. 2897 (subst_to_string): Pass it. 2898 2899 PR c++/48665 2900 * rtti.c (get_typeid): Diagnose qualified function type. 2901 * pt.c (tsubst) [POINTER_TYPE]: Likewise. 2902 2903 * error.c (dump_aggr_type): Fix lambda detection. 2904 (dump_simple_decl): Pretty-print capture field. 2905 2906 N3323 2907 * cvt.c (build_expr_type_conversion): Two conversions that return 2908 the same type aren't necessarily ambiguous. 2909 2910 N3648 2911 * parser.c (cp_parser_lambda_introducer): Make lambda capture init 2912 pedwarn unconditional except in C++1y mode. 2913 2914 * semantics.c (potential_constant_expression_1): Don't crash on 2915 'this' in NSDMI. 2916 2917 Core 1612 2918 * semantics.c (finish_id_expression): Reject capture of anonymous 2919 union member. 2920 2921 Core 1609 2922 * decl2.c (check_default_args): Check for pack expansion. 2923 2924 * mangle.c (write_type): Mangle decltype(auto). 2925 29262013-04-19 Jason Merrill <jason@redhat.com> 2927 2928 N3638 changes to return type deduction 2929 * decl.c (undeduced_auto_decl): New. 2930 (require_deduced_type): New. 2931 (fndecl_declared_return_type): New. 2932 (decls_match): Use it. 2933 (duplicate_decls): Don't check for auto return. 2934 (grokdeclarator): Reject virtual auto. 2935 * class.c (resolve_address_of_overloaded_function): Handle 2936 auto function templates. 2937 * decl2.c (mark_used): Use undeduced_auto_decl, require_deduced_type. 2938 * cp-tree.h: Declare new fns. 2939 * error.c (dump_function_decl): Use fndecl_declared_return_type. 2940 * search.c (check_final_overrider): Likewise. 2941 * pt.c (make_decltype_auto): New. 2942 (do_auto_deduction): Require plain decltype(auto). 2943 (is_auto): Adjust. 2944 2945 DR 941 2946 * decl.c (duplicate_decls): Don't propagate DECL_DELETED_FN to 2947 template specializations. 2948 29492013-04-16 Ed Smith-Rowland <3dw4rd@verizon.net> 2950 2951 Implement n3599 - Literal operator templates for strings. 2952 * parser.c (make_string_pack (tree value)): New function. 2953 (cp_parser_userdef_string_literal (cp_token *)): Use it 2954 to construct calls to character string literal operator templates. 2955 (cp_parser_template_declaration_after_export): Check for new string 2956 literal operator template parameter form. 2957 29582013-04-15 Jason Merrill <jason@redhat.com> 2959 2960 * pt.c (tsubst) [DECLTYPE_TYPE]: Use tsubst_copy_and_build. 2961 2962 PR c++/52748 2963 * pt.c (tsubst) [DECLTYPE_TYPE]: If ~id is an expression 2964 rather than a destructor name, it isn't an unqualified-name. 2965 (tsubst_copy_and_build): Pass down decltype_flag to operator 2966 handling code, too. 2967 2968 PR c++/56388 2969 * semantics.c (insert_capture_proxy): Just use index 1 in the 2970 stmt_list_stack. 2971 29722013-04-12 Jakub Jelinek <jakub@redhat.com> 2973 2974 * error.c (cp_print_error_function, 2975 print_instantiation_partial_context_line, 2976 maybe_print_constexpr_context): Colorize locus strings. 2977 29782013-04-11 Jason Merrill <jason@redhat.com> 2979 2980 PR c++/52748 2981 * parser.c (complain_flags): New. 2982 (cp_parser_postfix_expression): Use it. 2983 (cp_parser_unary_expression): Likewise. 2984 (cp_parser_binary_expression): Likewise. 2985 (cp_parser_assignment_expression): Likewise. 2986 (cp_parser_expression): Likewise. 2987 (cp_parser_postfix_open_square_expression): Take decltype_p. 2988 (cp_parser_builtin_offsetof): Adjust. 2989 (cp_convert_range_for): Pass complain to finish_unary_op_expr. 2990 * decl2.c (grok_array_decl): Add decltype_p parm. 2991 * cp-tree.h: Adjust prototype. 2992 * semantics.c (finish_unary_op_expr): Add complain parm. 2993 29942013-04-11 Jakub Jelinek <jakub@redhat.com> 2995 2996 PR c++/56895 2997 * call.c (null_ptr_cst_p): Call fold_non_dependent_expr_sfinae before 2998 calling maybe_constant_value for C++98. 2999 30002013-04-11 Jason Merrill <jason@redhat.com> 3001 3002 PR c++/56901 3003 * semantics.c (lambda_capture_field_type, lambda_proxy_type): 3004 Strip references before checking WILDCARD_TYPE_P. 3005 30062013-04-11 Paolo Carlini <paolo.carlini@oracle.com> 3007 3008 * call.c (build_conditional_expr_1, build_over_call): Protect 3009 error calls with complain & tf_error. 3010 * typeck.c (finish_class_member_access_expr, cp_build_binary_op, 3011 build_x_unary_op, cp_build_unary_op, cp_build_compound_expr, 3012 build_ptrmemfunc): Likewise. 3013 (lookup_destructor): Take tsubst_flags_t parameter, adjust. 3014 3015 * cvt.c (warn_ref_binding): Rename to diagnose_ref_binding. 3016 (convert_to_reference): Adjust. 3017 30182013-04-11 Jason Merrill <jason@redhat.com> 3019 3020 * pt.c (tsubst_copy) [VAR_DECL]: Don't call tsubst for 3021 local variables, look them up instead. 3022 (tsubst_decl) [VAR_DECL]: Remove handling for anonymous union 3023 proxies and substitution in unevaluated context. 3024 (tsubst_expr) [OMP_FOR]: Instantiate OMP_FOR_PRE_BODY 3025 before the iterators. 3026 3027 PR c++/23055 3028 * pt.c (uses_deducible_template_parms): New. 3029 (deducible_array_bound, deducible_expression): New. 3030 (deducible_template_args): New. 3031 (unify_one_argument): Call uses_deducible_template_parms. 3032 30332013-04-11 Paolo Carlini <paolo.carlini@oracle.com> 3034 3035 PR c++/56913 3036 * typeck2.c (build_m_component_ref): Protect error calls with 3037 (complain & tf_error). 3038 30392013-04-11 Paolo Carlini <paolo.carlini@oracle.com> 3040 3041 PR c++/54216 3042 * parser.c (cp_parser_enum_specifier): Check for empty 3043 anonymous enums and anonymous scoped enums. 3044 30452013-04-10 Jakub Jelinek <jakub@redhat.com> 3046 3047 PR c++/56895 3048 * typeck.c (cp_build_binary_op): Call fold_non_dependent_expr_sfinae 3049 first before calling maybe_constant_value for warn_for_div_by_zero 3050 or invalid shift count warning purposes. 3051 30522013-04-09 Jason Merrill <jason@redhat.com> 3053 3054 PR c++/25466 3055 * rtti.c (build_typeid): Check the address of the argument 3056 rather than looking for an INDIRECT_REF. 3057 30582013-04-04 Jason Merrill <jason@redhat.com> 3059 3060 PR c++/56838 3061 PR c++/17232 3062 * typeck2.c (abstract_virtuals_error_sfinae): Disable 3063 complete_type again. 3064 30652013-04-08 Paolo Carlini <paolo.carlini@oracle.com> 3066 3067 PR c++/56871 3068 * decl.c (validate_constexpr_redeclaration): Allow an explicit 3069 specialization to be different wrt the constexpr specifier. 3070 30712013-04-06 Jason Merrill <jason@redhat.com> 3072 3073 * parser.c (cp_parser_std_attribute): Treat [[noreturn]] like GNU 3074 noreturn attribute. 3075 30762013-04-05 Ed Smith-Rowland <3dw4rd@verizon.net> 3077 3078 * parser.c (cp_parser_ref_qualifier_seq_opt): Move to 3079 cp_parser_ref_qualifier_opt. Error if more than one ref-qual found. 3080 30812013-04-03 Jason Merrill <jason@redhat.com> 3082 3083 * cp-tree.h (FUNCTION_OR_METHOD_TYPE_CHECK): Remove. 3084 (TYPE_RAISES_EXCEPTIONS): Use FUNC_OR_METHOD_CHECK instead. 3085 (FUNCTION_REF_QUALIFIED, FUNCTION_RVALUE_QUALIFIED): Likewise. 3086 3087 * mangle.c (write_type): When writing a function type with 3088 function-cv-quals, don't add the unqualified type as a 3089 substitution candidate. 3090 30912013-04-03 Paolo Carlini <paolo.carlini@oracle.com> 3092 3093 PR c++/56815 3094 * typeck.c (cp_build_unary_op): Change -Wpointer-arith permerror to 3095 pedwarn. 3096 30972013-04-03 Jakub Jelinek <jakub@redhat.com> 3098 3099 PR debug/56819 3100 * tree.c (strip_typedefs): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT 3101 from args to new_args. 3102 (strip_typedefs_expr): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT from t to 3103 r instead of doing {S,G}ET_NON_DEFAULT_TEMPLATE_ARGS_COUNT. 3104 31052013-04-02 Jason Merrill <jason@redhat.com> 3106 3107 PR c++/56821 3108 * mangle.c (write_function_type): Mangle ref-qualifier. 3109 (write_nested_name): Likewise. 3110 (canonicalize_for_substitution): Preserve ref-qualifier. 3111 (write_type): Likewise. 3112 3113 PR c++/34949 3114 * decl.c (begin_destructor_body): Clobber the object in a cleanup. 3115 31162013-04-02 Paolo Carlini <paolo.carlini@oracle.com> 3117 3118 * friend.c (do_friend): Use COMPLETE_OR_OPEN_TYPE_P. 3119 * pt.c (find_parameter_packs_r): Use TYPE_ALIAS_P and TYPE_TI_ARGS. 3120 (for_each_template_parm_r): Use TYPE_TI_ARGS. 3121 31222013-04-02 Paolo Carlini <paolo.carlini@oracle.com> 3123 3124 * cp-tree.h (TAGGED_TYPE_P): Remove. 3125 (IS_OVERLOAD_TYPE): Rename to OVERLOAD_TYPE_P, adjust. 3126 (TYPE_ANONYMOUS_P): Adjust. 3127 * call.c (build_new_op_1): Likewise. 3128 * class.c (find_abi_tags_r): Likewise. 3129 * decl.c (warn_misplaced_attr_for_class_type, start_decl, 3130 type_is_deprecated): Likewise. 3131 * decl2.c (grokfield, min_vis_r): Likewise. 3132 * pt.c (get_template_info): Likewise. 3133 * tree.c (handle_abi_tag_attribute): Likewise. 3134 31352013-04-01 Jason Merrill <jason@redhat.com> 3136 3137 * semantics.c (maybe_constant_value): Check 3138 instantiation_dependent_expression_p. 3139 * pt.c (build_non_dependent_expr): Don't check it here. 3140 3141 PR c++/56772 3142 * init.c (build_new): Don't try to process an array initializer 3143 at template definition time. 3144 3145 PR c++/56793 3146 * typeck.c (finish_class_member_access_expr): Handle enum scope. 3147 3148 PR c++/56794 3149 * parser.c (cp_parser_range_for): Don't try to do auto deduction 3150 in a template if the type of the range is incomplete. 3151 3152 * call.c (add_function_candidate): Take the address of 'this' here. 3153 (build_over_call): And here. 3154 (build_new_method_call_1, build_op_call_1): Not here. 3155 (build_user_type_conversion_1): Or here. 3156 (add_candidates): Adjust. 3157 3158 * cxx-pretty-print.h (pp_cxx_cv_qualifiers): New. 3159 * class.c (same_signature_p): Use type_memfn_quals. 3160 * cp-tree.h (TYPE_RAISES_EXCEPTIONS): Use 3161 FUNCTION_OR_METHOD_TYPE_CHECK. 3162 * error.c (dump_type_suffix): Add padding before cv-qualifiers. 3163 * pt.c (unify): Use static_fn_type. 3164 31652013-04-01 Bronek Kozicki <b.kozicki@gmail.com> 3166 Jason Merrill <jason@redhat.com> 3167 3168 Implement N2439 (ref-qualifiers for 'this') 3169 * cp-tree.h (FUNCTION_REF_QUALIFIED): New. 3170 (FUNCTION_RVALUE_QUALIFIED): New. 3171 (FUNCTION_OR_METHOD_TYPE_CHECK): New. 3172 (cpp0x_warn_str): Add CPP0X_REF_QUALIFIER. 3173 (cp_ref_qualifier): New enum. 3174 (cp_declarator): Add ref_qualifier. 3175 * parser.c (cp_parser_ref_qualifier_seq_opt): New. 3176 (cp_parser_direct_declarator): Use it. 3177 (make_call_declarator): Adjust. 3178 (cp_parser_lambda_declarator_opt): Adjust. 3179 * call.c (add_function_candidate): Handle ref-qualifier overload 3180 resolution semantics. 3181 (standard_conversion): Adjust. 3182 * class.c (add_method, same_signature_p): Compare ref-qualifiers. 3183 * decl.c (grokdeclarator): Handle ref-qualifiers. 3184 (grokfndecl): Check for invalid ref-qualifiers. 3185 (static_fn_type, revert_static_member_fn): Adjust. 3186 * decl2.c (build_memfn_type): Handle ref-qualifiers. 3187 (check_classfn): Check them. 3188 (cp_reconstruct_complex_type): Retain them. 3189 * error.c (dump_ref_qualifier): New. 3190 (dump_type_suffix, dump_function_decl): Use it. 3191 (maybe_warn_cpp0x): Handle CPP0X_REF_QUALIFIER. 3192 * pt.c (tsubst, tsubst_function_type): Instantiate ref-quals. 3193 (unify): Retain them. 3194 * tree.c (cp_check_qualified_type): New. 3195 (cp_build_qualified_type_real): Keep exception spec and ref-qual. 3196 (build_ref_qualified_type): New. 3197 (strip_typedefs, build_exception_variant): Keep ref-qualifier. 3198 (cp_build_type_attribute_variant): Keep ref-qualifier. 3199 * typeck.c (merge_types): Keep ref-qualifier. 3200 (structural_comptypes): Compare ref-qualifier. 3201 (type_memfn_rqual): New. 3202 (apply_memfn_quals): Take ref-qual argument. 3203 * typeck2.c (build_m_component_ref): Check ref-qualifier. 3204 32052013-04-01 Paolo Carlini <paolo.carlini@oracle.com> 3206 3207 * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): Remove. 3208 (DECL_FUNCTION_TEMPLATE_P): Adjust. 3209 3210 * cxx-pretty-print.c (pp_cxx_nested_name_specifier, 3211 pp_cxx_qualified_id): Use get_containing_scope. 3212 * parser.c (cp_parser_class_head): Likewise. 3213 * pt.c (push_template_decl_real): Likewise. 3214 3215 * decl2.c (import_export_decl): Use DECL_TEMPLOID_INSTANTIATION. 3216 * pt.c (unify): Use CP_INTEGRAL_TYPE_P. 3217 32182013-03-31 Paolo Carlini <paolo.carlini@oracle.com> 3219 3220 * decl2.c (collect_candidates_for_java_method_aliases): Use 3221 DECL_CLASS_SCOPE_P. 3222 * name-lookup.c (pushtag_1) Use TYPE_FUNCTION_SCOPE_P. 3223 (pushdecl_maybe_friend_1): Use DECL_DECLARES_FUNCTION_P. 3224 * decl.c (duplicate_decls): Likewise. 3225 * parser.c (cp_parser_template_declaration_after_export): Likewise, 3226 also DECL_DECLARES_TYPE_P. 3227 * pt.c (instantiate_class_template_1): Likewise. 3228 * search.c (lookup_field_1): Use DECL_DECLARES_TYPE_P. 3229 (lookup_field_r): Likewise. 3230 (friend_accessible_p): Use DECL_DECLARES_FUNCTION_P. 3231 (lookup_fnfields_slot_nolazy): Likewise. 3232 * semantics.c (finish_member_declaration): Likewise. 3233 * typeck.c (convert_for_initialization): Use TYPE_REFFN_P. 3234 32352013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 3236 3237 * pt.c (template_parms_to_args): Fix typo in comment. 3238 32392013-03-29 Paolo Carlini <paolo.carlini@oracle.com> 3240 3241 * call.c (build_op_call_1): Use TYPE_PTRFN_P and TYPE_REFFN_P. 3242 32432013-03-29 Paolo Carlini <paolo.carlini@oracle.com> 3244 3245 * call.c (add_builtin_candidate): Use TYPE_PTR_P and VOID_TYPE_P. 3246 (build_op_call_1): Likewise. 3247 (build_over_call): Likewise. 3248 (compare_ics): Likewise. 3249 * class.c (build_base_path): Likewise. 3250 (resolve_address_of_overloaded_function): Likewise. 3251 * cp-tree.h: Likewise. 3252 * cvt.c (cp_convert_to_pointer): Likewise. 3253 (convert_to_reference): Likewise. 3254 (ocp_convert): Likewise. 3255 (convert_force): Likewise, tidy. 3256 * cxx-pretty-print.c (pp_cxx_postfix_expression): Likewise. 3257 (pp_cxx_ptr_operator): Likewise. 3258 * decl.c (duplicate_decls): Likewise. 3259 (start_decl): Likewise. 3260 (grok_op_properties): Likewise. 3261 (start_preparsed_function): Likewise. 3262 (store_parm_decls): Likewise. 3263 (finish_function): Likewise. 3264 * decl2.c (delete_sanity): Likewise. 3265 (acceptable_java_type): Likewise. 3266 (grokbitfield): Likewise. 3267 (cp_reconstruct_complex_type): Likewise. 3268 * error.c (dump_type_prefix): Likewise. 3269 (dump_expr): Likewise. 3270 * except.c (push_eh_cleanup): Likewise. 3271 (complete_ptr_ref_or_void_ptr_p): Likewise. 3272 (can_convert_eh): Likewise. 3273 * init.c (build_new_1): Likewise. 3274 (build_delete): Likewise. 3275 (build_vec_delete): Likewise. 3276 * mangle.c (write_type): Likewise. 3277 * parser.c (lookup_literal_operator): Likewise. 3278 * pt.c (convert_nontype_argument_function): Likewise. 3279 (convert_nontype_argument): Likewise. 3280 (tsubst): Likewise. 3281 (unify): Likewise. 3282 (dependent_type_p_r): Likewise. 3283 * rtti.c (build_headof): Likewise. 3284 (build_typeid): Likewise. 3285 (build_dynamic_cast_1): Likewise. 3286 (target_incomplete_p): Likewise. 3287 (typeinfo_in_lib_p): Likewise. 3288 * semantics.c (finish_omp_for): Likewise. 3289 (cxx_eval_call_expression): Likewise. 3290 (maybe_resolve_dummy): Likewise. 3291 * tree.c (build_target_expr): Likewise. 3292 (cp_build_qualified_type_real): Likewise. 3293 * typeck.c (composite_pointer_type_r): Likewise. 3294 (composite_pointer_type): Likewise. 3295 (comp_except_types): Likewise. 3296 (cxx_sizeof_nowarn): Likewise. 3297 (string_conv_p): Likewise. 3298 (cp_build_array_ref): Likewise. 3299 (cp_build_function_call_vec): Likewise, also use TYPE_PTRFN_P. 3300 (pointer_diff): Likewise. 3301 (cp_build_addr_expr_1): Likewise. 3302 (cp_build_unary_op): Likewise. 3303 (build_static_cast_1): Likewise. 3304 (cp_build_c_cast): Likewise. 3305 (comp_ptr_ttypes_real): Likewise. 3306 (ptr_reasonably_similar): Likewise. 3307 (comp_ptr_ttypes_const): Likewise. 3308 (casts_away_constness): Likewise. 3309 (check_literal_operator_args): Likewise. 3310 * typeck2.c (build_x_arrow): Likewise. 3311 (add_exception_specifier): Likewise. 3312 33132013-03-29 Jason Merrill <jason@redhat.com> 3314 3315 N3582 3316 * cp-tree.h (AUTO_IS_DECLTYPE): New. 3317 * parser.c (cp_parser_decltype): Handle decltype(auto). 3318 (cp_parser_type_id_1): Allow auto without a late-specified 3319 return in C++1y. 3320 (cp_parser_primary_expression): Use the return value of 3321 finish_parenthesized_expr. 3322 (cp_parser_transaction_expression): Likewise. 3323 * semantics.c (force_paren_expr): New. 3324 (finish_parenthesized_expr): Use it. 3325 * call.c (build_conditional_expr_1): Likewise. 3326 * pt.c (do_auto_deduction): Handle decltype(auto). 3327 (tsubst_copy): Handle PAREN_EXPR. 3328 (tsubst_copy_and_build): Likewise. 3329 * error.c (dump_expr): Handle PAREN_EXPR. 3330 * cxx-pretty-print.c (pp_cxx_expression): Likewise. 3331 * mangle.c (write_expression): Ignore PAREN_EXPR. 3332 3333 * parser.c (cp_parser_decltype_expr): Split out... 3334 (cp_parser_decltype): ...from here. 3335 3336 PR c++/56774 3337 PR c++/35722 3338 * pt.c (unify_pack_expansion): Fix indexing. 3339 33402013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 3341 3342 * call.c (build_java_interface_fn_ref): Likewise. 3343 (make_temporary_var_for_ref_to_temp): Likewise. 3344 * class.c (check_field_decls): Likewise. 3345 (layout_class_type): Likewise. 3346 (finish_struct_1): Likewise. 3347 (fixed_type_or_null): Likewise. 3348 (get_vtbl_decl_for_binfo): Likewise. 3349 * cp-gimplify.c (omp_var_to_track): Likewise. 3350 (cp_genericize_r): Likewise. 3351 * cp-objcp-common.c (cxx_warn_unused_global_decl): Likewise. 3352 * cp-tree.h (LANG_DECL_HAS_MIN): Likewise. 3353 (DECL_DISCRIMINATOR_P): Likewise. 3354 * decl.c (poplevel): Likewise. 3355 (decls_match): Likewise. 3356 (duplicate_decls): Likewise. 3357 (decl_jump_unsafe): Likewise. 3358 (start_decl): Likewise. 3359 (check_for_uninitialized_const_var): Likewise. 3360 (make_rtl_for_nonlocal_decl): Likewise. 3361 (cp_finish_decl): Likewise. 3362 (expand_static_init): Likewise. 3363 (local_variable_p): Likewise. 3364 (maybe_register_incomplete_var): Likewise. 3365 * decl2.c (grokfield): Likewise. 3366 (comdat_linkage): Likewise. 3367 (determine_visibility): Likewise. 3368 (import_export_decl): Likewise. 3369 (prune_vars_needing_no_initialization): Likewise. 3370 (decl_maybe_constant_var_p): Likewise. 3371 * error.c (dump_simple_decl): Likewise. 3372 (dump_template_decl): Likewise. 3373 (cp_printer): Likewise. 3374 * except.c (build_throw): Likewise. 3375 * init.c (build_vtbl_address): Likewise. 3376 (member_init_ok_or_else): Likewise. 3377 (build_aggr_init): Likewise. 3378 (expand_aggr_init_1): Likewise. 3379 (build_offset_ref): Likewise. 3380 (constant_value_1): Likewise. 3381 * mangle.c (write_mangled_name): Likewise. 3382 (write_prefix): Likewise. 3383 * name-lookup.c (supplement_binding_1): Likewise. 3384 (add_decl_to_level): Likewise. 3385 (pushdecl_maybe_friend_1): Likewise. 3386 (check_for_out_of_scope_variable): Likewise. 3387 (validate_nonmember_using_decl): Likewise. 3388 (lookup_name_innermost_nonclass_level_1): Likewise. 3389 (lookup_arg_dependent_1): Likewise. 3390 * parser.c (cp_parser_lambda_introducer): Likewise. 3391 (cp_parser_template_argument): Likewise. 3392 (cp_parser_single_declaration): Likewise. 3393 * pt.c (convert_nontype_argument): Likewise. 3394 (instantiate_class_template_1): Likewise. 3395 (tsubst_decl): Likewise. 3396 (tsubst_expr): Likewise. 3397 (do_decl_instantiation): Likewise. 3398 (do_type_instantiation): Likewise. 3399 (regenerate_decl_from_template): Likewise. 3400 (always_instantiate_p): Likewise. 3401 (instantiate_decl): Likewise. 3402 (type_dependent_expression_p): Likewise. 3403 (build_non_dependent_expr): Likewise. 3404 * repo.c (repo_emit_p): Likewise. 3405 * rtti.c (build_dynamic_cast_1): Likewise. 3406 * search.c (shared_member_p): Likewise. 3407 * semantics.c (outer_var_p): Likewise. 3408 (finish_id_expression): Likewise. 3409 (finish_omp_clauses): Likewise. 3410 (finish_decltype_type): Likewise. 3411 (ensure_literal_type_for_constexpr_object): Likewise. 3412 * tree.c (lvalue_kind): Likewise. 3413 (bot_replace): Likewise. 3414 (cp_tree_equal): Likewise. 3415 (handle_init_priority_attribute): Likewise. 3416 (decl_storage_duration): Likewise. 3417 * typeck.c (cxx_sizeof_expr): Likewise. 3418 (cxx_alignof_expr): Likewise. 3419 (decay_conversion): Likewise. 3420 (build_class_member_access_expr): Likewise. 3421 (cp_build_array_ref): Likewise. 3422 (cxx_mark_addressable): Likewise. 3423 (maybe_warn_about_returning_address_of_local): Likewise. 3424 (check_return_expr): Likewise. 3425 * typeck2.c (cxx_readonly_error): Likewise. 3426 (abstract_virtuals_error_sfinae): Likewise. 3427 (cxx_incomplete_type_diagnostic): Likewise. 3428 34292013-03-28 Lawrence Crowl <crowl@google.com> 3430 3431 * Make-lang.in 3432 (CXX_PARSER_H): Add header dependence. 3433 * cp-tree.h 3434 (extern debug (cp_binding_level &)): New. 3435 (extern debug (cp_binding_level *)): New. 3436 * name-lookup.h 3437 (debug (cp_binding_level &)): New. 3438 (debug (cp_binding_level *)): New. 3439 * parser.c 3440 (debug (cp_parser &)): New. 3441 (debug (cp_parser *)): New. 3442 (debug (cp_token &)): New. 3443 (debug (cp_token *)): New. 3444 (debug (vec<cp_token, va_gc> &)): New. 3445 (debug (vec<cp_token, va_gc> *)): New. 3446 * parser.c: Add header dependence. 3447 (extern debug (cp_parser &)): New. 3448 (extern debug (cp_parser *)): New. 3449 (extern debug (cp_token &)): New. 3450 (extern debug (cp_token *)): New. 3451 (extern debug (vec<cp_token, va_gc> &)): New. 3452 (extern debug (vec<cp_token, va_gc> *)): New. 3453 34542013-03-28 Jason Merrill <jason@redhat.com> 3455 3456 PR c++/17232 3457 PR c++/52748 3458 * typeck2.c (abstract_virtuals_error_sfinae): Don't complete 3459 the type if tf_decltype is set. 3460 * pt.c (fn_type_unification): Add decltype_p parm. 3461 (get_bindings): Adjust. 3462 * cp-tree.h: Adjust. 3463 * class.c (resolve_address_of_overloaded_function): Adjust. 3464 * call.c (add_template_candidate_real, print_z_candidate): Adjust. 3465 3466 PR c++/56679 3467 * parser.c (cp_parser_sizeof_pack): Split out from... 3468 (cp_parser_sizeof_operand): ...here. Require (id). 3469 3470 PR c++/56701 3471 * semantics.c (finish_this_expr): 'this' is an rvalue. 3472 * typeck.c (cp_build_indirect_ref): Handle NOP_EXPR of 'this'. 3473 3474 PR c++/56710 3475 * semantics.c (finish_member_declaration): Don't push closure 3476 members. 3477 3478 * name-lookup.c (pushdecl_maybe_friend_1): Use 3479 nonlambda_method_basetype and current_nonlambda_class_type. 3480 3481 PR c++/56728 3482 * semantics.c (potential_constant_expression_1) [NOP_EXPR]: Reject 3483 conversion from integer to pointer. 3484 (cxx_eval_constant_expression): Likewise. 3485 (cxx_eval_indirect_ref): Use the folded operand if we still think 3486 this might be constant. 3487 34882013-03-28 Paolo Carlini <paolo.carlini@oracle.com> 3489 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 3490 3491 PR c++/56725 3492 * call.c (convert_like_real): Change series of two permerrors 3493 to permerror + inform (and likewise for two errors). 3494 (build_new_method_call_1): Likewise. 3495 * typeck.c (convert_for_initialization): Change additional 3496 warning or error to inform. 3497 34982013-03-28 Gabriel Dos Reis <gdr@integrable-solutions.net> 3499 3500 * cp-tree.h (next_aggr_init_expr_arg): Remove static specifier. 3501 (first_aggr_init_expr): Likewise. 3502 (more_aggr_init_expr_args_p): Likewise. 3503 (type_of_this_parm): Likewise. 3504 (class_of_this_parm): Likewise. 3505 * name-lookup.h (get_global_value_if_present): Likewise. 3506 (is_typename_at_global_scope): Likewise. 3507 35082013-03-28 Paolo Carlini <paolo.carlini@oracle.com> 3509 3510 * call.c (joust): Don't call inform for a permerror returning false. 3511 * parser.c (cp_parser_check_class_key): Likewise. 3512 * pt.c (tsubst_copy_and_build): Likewise. 3513 35142013-03-27 Jason Merrill <jason@redhat.com> 3515 3516 PR c++/56749 3517 * semantics.c (finish_qualified_id_expr): Return early 3518 for enum scope. 3519 35202013-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net> 3521 3522 * call.c (build_new_method_call_1): Use INDIRECT_REF_P. 3523 * cvt.c (convert_to_void): Likewise. 3524 * error.c (dump_expr): Likewise. 3525 * mangle.c (write_expression): Likewise. 3526 * parser.c (cp_parser_template_argument): Likewise. 3527 * pt.c (convert_nontype_argument): Likewise. 3528 (tsubst_copy_and_build): Likewise. 3529 * rtti.c (build_typeid): Likewise. 3530 * semantics.c (finish_call_expr): Likewise. 3531 (finish_decltype_type): Likewise. 3532 (build_data_member_initialization): Likewise. 3533 * tree.c (is_dummy_object): Likewise. 3534 * typeck.c (decay_conversion): Likewise. 3535 (build_class_member_access_expr): Likewise. 3536 (cp_build_addr_expr_1): Likewise. 3537 (unary_complex_lvalue): Likewise. 3538 (check_return_expr): Likewise. 3539 * typeck2.c (cxx_readonly_error): Likewise. 3540 35412013-03-26 Jason Merrill <jason@redhat.com> 3542 3543 PR c++/52597 3544 * typeck.c (invalid_nonstatic_memfn_p): Use get_first_fn. Take tree. 3545 * semantics.c (finish_decltype_type): Check it before type_unknown_p. 3546 * cp-tree.h: Adjust prototype. 3547 3548 PR c++/45282 3549 * typeck2.c (build_m_component_ref): Handle prvalue object. 3550 35512013-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net> 3552 3553 * cp-gimplify.c (cp_genericize_r): Use VAR_OR_FUNCTION_DECL_P. 3554 * decl.c (duplicate_decls): Likewise. 3555 (cp_finish_decl): Likewise. 3556 (check_class_member_definition_namespace): Likewise. 3557 * decl2.c (grokfield): Likewise. 3558 (decl_needed_p): Likewise. 3559 (import_export_decl): Likewise. 3560 (mark_used): Likewise. 3561 * name-lookup.c (pushdecl_maybe_friend_1): Likewise. 3562 * pt.c (push_access_scope): Likewise. 3563 (instantiate_decl): Likewise. 3564 * ptree.c (cxx_print_decl): Likewise. 3565 * repo.c (repo_emit_p): Likewise. 3566 * semantics.c (note_decl_for_pch): Likewise. 3567 * tree.c (decl_linkage): Likewise. 3568 35692013-03-26 Paolo Carlini <paolo.carlini@oracle.com> 3570 3571 PR c++/55951 3572 * decl.c (check_array_designated_initializer): Handle CONST_DECL 3573 as ce->index. 3574 35752013-03-26 Paolo Carlini <paolo.carlini@oracle.com> 3576 3577 * decl.c (grokfndecl): Handle separately <inline> and <constexpr> 3578 error messages. 3579 3580 * decl.c (grokdeclarator): Declare typedef_p and use it everywhere. 3581 35822013-03-25 Jason Merrill <jason@redhat.com> 3583 3584 PR c++/56699 3585 * semantics.c (maybe_resolve_dummy): Make sure that the enclosing 3586 class is derived from the type of the object. 3587 3588 PR c++/52014 3589 * semantics.c (lambda_expr_this_capture): Don't capture 'this' in 3590 unevaluated context. 3591 35922013-03-25 Paolo Carlini <paolo.carlini@oracle.com> 3593 3594 PR c++/56722 3595 * decl.c (cp_finish_decl): Check DECL_LANG_SPECIFIC before 3596 DECL_TEMPLATE_INSTANTIATION. 3597 35982013-03-22 Jason Merrill <jason@redhat.com> 3599 3600 PR c++/56684 3601 * pt.c (instantiation_dependent_r): Check DECL_INITIAL of VAR_DECL 3602 and CONST_DECL. 3603 36042013-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 3605 3606 * cp-tree.h (identifier_p): New. 3607 * call.c: Throughout, call identifier_p insstead of direct 3608 comparaison of TREE_CODE against IDENTIFIER_NODE. 3609 * decl.c: Likewisse. 3610 * decl2.c: Likewise. 3611 * init.c: Likewise. 3612 * mangle.c: Likewise. 3613 * name-lookup.c: Likewise. 3614 * parser.c: Likewise. 3615 * pt.c: Likewise. 3616 * search.c: Likewise. 3617 * semantics.c: Likewise. 3618 * tree.c: Likewise. 3619 * typeck.c: Likewise. 3620 * typeck2.c: Likewise. 3621 36222013-03-21 Jakub Jelinek <jakub@redhat.com> 3623 3624 PR middle-end/48087 3625 * pt.c (convert_nontype_argument): Count werrorcount as warnings. 3626 * call.c (build_temp): Likewise. 3627 * method.c (synthesize_method): Likewise. 3628 * typeck.c (convert_for_initialization): Likewise. 3629 36302013-03-21 Marc Glisse <marc.glisse@inria.fr> 3631 3632 * call.c (build_conditional_expr_1): Fold VEC_COND_EXPR. 3633 36342013-03-21 Richard Biener <rguenther@suse.de> 3635 3636 * error.c (cp_printer): Use DECL_HAS_DEBUG_EXPR_P instead of 3637 DECL_DEBUG_EXPR_IS_FROM. Guard properly. 3638 36392013-03-20 Jason Merrill <jason@redhat.com> 3640 3641 PR c++/56646 3642 * parser.c (cp_parser_late_return_type_opt): Save and restore 3643 current_class_ptr/ref. 3644 3645 PR c++/54532 3646 * expr.c (cplus_expand_constant): Do nothing if the class is 3647 incomplete. 3648 * semantics.c (reduced_constant_expression_p): Allow PTRMEM_CST. 3649 * typeck2.c (store_init_value): Use reduced_constant_expression_p. 3650 * decl.c (maybe_register_incomplete_var): Handle PTRMEM_CST. 3651 (complete_vars): Likewise. 3652 3653 * name-lookup.c (get_anonymous_namespace_name): Never use 3654 get_file_function_name. 3655 3656 * pt.c (retrieve_specialization): Handle null tmpl argument. 3657 3658 PR c++/17232 3659 PR c++/56642 3660 * pt.c (tsubst_decl): Check return value of register_specialization. 3661 * typeck2.c (abstract_virtuals_error_sfinae): Re-apply complete_type 3662 change. 3663 36642013-03-17 Jason Merrill <jason@redhat.com> 3665 3666 PR c++/54359 3667 PR c++/56639 3668 * parser.c (cp_parser_direct_declarator): Bail if we see a 3669 qualified-id not at namespace scope. 3670 3671 PR c++/17232 3672 PR c++/56642 3673 * typeck2.c (abstract_virtuals_error_sfinae): Revert complete_type 3674 change for now. 3675 36762013-03-16 Jason Merrill <jason@redhat.com> 3677 3678 * decl.c (grokdeclarator): Assert that we won't see a pointer to 3679 METHOD_TYPE. 3680 3681 PR c++/54277 3682 * cp-tree.h (WILDCARD_TYPE_P): Split out from... 3683 (MAYBE_CLASS_TYPE_P): ...here. 3684 * semantics.c (lambda_capture_field_type): Only build a 3685 magic decltype for wildcard types. 3686 (lambda_proxy_type): Likewise. 3687 (finish_non_static_data_member): Get the quals from 3688 the object. 3689 3690 PR c++/55931 3691 * parser.c (cp_parser_template_argument): Don't 3692 fold_non_dependent_expr. 3693 3694 * parser.c (cp_parser_lambda_declarator_opt): Use 3695 cp_parser_trailing_type_id. 3696 3697 PR c++/45917 3698 * parser.c (cp_parser_template_id): Don't forget access checks. 3699 3700 PR c++/52374 3701 * pt.c (tsubst_qualified_id): Use current_nonlambda_class_type. 3702 3703 PR c++/54764 3704 PR c++/55972 3705 * name-lookup.h (tag_scope): Add ts_lambda. 3706 * semantics.c (begin_lambda_type): Use it. 3707 * decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR. 3708 * pt.c (check_default_tmpl_args): Ignore lambdas. 3709 (push_template_decl_real): Handle lambdas. 3710 * tree.c (no_linkage_check): Adjust lambda check. 3711 3712 PR c++/56039 3713 * tree.c (strip_typedefs_expr): Complain about lambda, don't abort. 3714 3715 PR c++/54359 3716 * parser.c (cp_parser_direct_declarator): Fix late return 3717 for out-of-class defn of member function. 3718 3719 PR c++/55357 3720 * semantics.c (maybe_add_lambda_conv_op): Clear DECL_NAME of copied 3721 parms to avoid duplicate -Wshadow warnings. 3722 3723 * search.c (lookup_base): Handle NULL_TREE. 3724 3725 PR c++/56481 3726 * semantics.c (potential_constant_expression_1): Use of 'this' in 3727 a non-constexpr function makes the expression not potentially 3728 constant. 3729 3730 N3276 3731 PR c++/52748 3732 * cp-tree.h (tsubst_flags): Add tf_decltype. 3733 * call.c (build_cxx_call): Don't build a temporary if it's set. 3734 (build_over_call): Make sure it's only passed to build_cxx_call. 3735 * parser.c (cp_parser_primary_expression): Add decltype_p parm. 3736 (cp_parser_unary_expression): Likewise. 3737 (cp_parser_cast_expression): Likewise. 3738 (cp_parser_binary_expression): Likewise. 3739 (cp_parser_assignment_expression): Likewise. 3740 (cp_parser_postfix_expression): Likewise. Pass tf_decltype. 3741 (cp_parser_expression): Add decltype_p. Force a 3742 temporary for a call on the LHS of a comma. 3743 (cp_parser_decltype): Pass true to decltype_p parms. 3744 * pt.c (tsubst) [DECLTYPE_TYPE]: Pass tf_decltype. 3745 (tsubst_copy_and_build): Pass tf_decltype down only for 3746 CALL_EXPR and the RHS of COMPOUND_EXPR. 3747 * tree.c (build_cplus_new): Call complete_type_or_maybe_complain. 3748 3749 * cp-tree.h (abstract_class_use): New enum. 3750 * typeck2.c (pending_abstract_type): Add use field. 3751 (abstract_virtuals_error_sfinae): Add overloads taking 3752 abstract_class_use instead of tree. 3753 * typeck.c (build_static_cast_1): Call it. 3754 * except.c (is_admissible_throw_operand_or_catch_parameter): Call it. 3755 * pt.c: Adjust calls. 3756 * decl.c (cp_finish_decl): Don't handle functions specially. 3757 (grokdeclarator): Always check return type. 3758 * init.c (build_new_1): Adjust call. 3759 3760 DR 337 3761 PR c++/17232 3762 * pt.c (tsubst) [ARRAY_TYPE]: Use abstract_virtuals_error_sfinae. 3763 * typeck2.c (abstract_virtuals_error_sfinae): Call complete_type. 3764 3765 DR 657 3766 * pt.c (tsubst_function_type): Call abstract_virtuals_error_sfinae. 3767 (tsubst_arg_types): Likewise. 3768 3769 DR 1518 3770 PR c++/54835 3771 * call.c (convert_like_real): Check for explicit constructors 3772 even for value-initialization. 3773 3774 PR c++/54946 3775 * pt.c (convert_nontype_argument): Handle invalid pointer. 3776 3777 * parser.c (cp_parser_lambda_expression): Use nreverse. 3778 3779 PR c++/56447 3780 PR c++/55532 3781 * pt.c (instantiate_class_template_1): Instantiate lambda capture 3782 list here. 3783 (tsubst_copy_and_build): Not here. 3784 3785 PR c++/55017 3786 * method.c (walk_field_subobs): Disallow copy of rvalue ref. 3787 3788 PR c++/55240 3789 * parser.c (parsing_nsdmi): New. 3790 * semantics.c (outer_automatic_var_p): Check it. 3791 (finish_id_expression): Likewise. 3792 * cp-tree.h: Declare it. 3793 3794 PR c++/55241 3795 * error.c (dump_expr) [SIZEOF_EXPR]: Print sizeof... properly. 3796 3797 * parser.c (lookup_literal_operator): Correct parm/arg naming 3798 mixup. 3799 3800 PR c++/56238 3801 * pt.c (fold_non_dependent_expr_sfinae): Check 3802 instantiation_dependent_expression_p. 3803 3804 PR c++/56095 3805 * class.c (resolve_address_of_overloaded_function): Accept a 3806 reference to function for target_type. 3807 (instantiate_type): Likewise. 3808 * pt.c (convert_nontype_argument): Pass it to 3809 convert_nontype_argument_function. 3810 38112013-03-16 Jakub Jelinek <jakub@redhat.com> 3812 3813 * tree.c (cp_tree_equal): Fix a pasto. 3814 3815 PR c++/56607 3816 * typeck.c (cp_build_binary_op): When calling warn_for_div_by_zero, 3817 pass op1 through maybe_constant_value first. 3818 38192013-03-16 Paolo Carlini <paolo.carlini@oracle.com> 3820 3821 PR c++/56582 3822 * semantics.c (cxx_eval_array_reference): Check for negative index. 3823 38242013-03-14 Jason Merrill <jason@redhat.com> 3825 3826 PR c++/56614 3827 * decl.c (local_variable_p_walkfn): Check DECL_ARTIFICIAL again. 3828 3829 PR c++/56346 3830 * decl.c (register_dtor_fn): Pass null to __cxa_thread_atexit 3831 dso_handle parm on targets without __cxa_atexit. 3832 38332013-03-11 Jason Merrill <jason@redhat.com> 3834 3835 PR c++/56567 3836 * typeck.c (check_return_expr): Disallow returning init list here. 3837 * semantics.c (apply_deduced_return_type): Not here. 3838 38392013-03-08 Paolo Carlini <paolo.carlini@oracle.com> 3840 3841 PR c++/51412 3842 * cxx-pretty-print.c (pp_cxx_expression): Handle LAMBDA_EXPR. 3843 * error.c (dump_expr): Likewise. 3844 38452013-03-08 Jason Merrill <jason@redhat.com> 3846 3847 PR c++/51884 3848 * class.c (modify_all_vtables): Mangle the vtable name before 3849 entering dfs_walk. 3850 3851 * semantics.c (lambda_expr_this_capture): In unevaluated context, 3852 just return the nearest 'this'. 3853 3854 PR c++/51494 3855 PR c++/52183 3856 PR c++/56222 3857 * tree.c (maybe_dummy_object): Don't capture 'this'. 3858 * semantics.c (maybe_resolve_dummy): New. 3859 (finish_non_static_data_member): Use it. 3860 (finish_qualified_id_expr): Don't test is_dummy_object. 3861 * cp-tree.h: Declare maybe_resolve_dummy. 3862 * call.c (build_new_method_call_1): Use it. 3863 3864 PR c++/56567 3865 * semantics.c (apply_deduced_return_type): Don't allow returning 3866 std::initializer_list. 3867 38682013-03-06 Paolo Carlini <paolo.carlini@oracle.com> 3869 3870 PR c++/56534 3871 * parser.c (cp_parser_elaborated_type_specifier): Don't call 3872 check_elaborated_type_specifier when TREE_CODE (decl) != TYPE_DECL. 3873 * decl.c (check_elaborated_type_specifier): Tidy. 3874 38752013-03-06 Jakub Jelinek <jakub@redhat.com> 3876 3877 PR c++/56543 3878 * tree.c (strip_typedefs): Don't copy args if they are NULL. 3879 38802013-03-05 Jakub Jelinek <jakub@redhat.com> 3881 3882 * parser.c (cp_parser_braced_list): For {} initialize 3883 *non_constant_p to false. 3884 38852013-03-04 Jason Merrill <jason@redhat.com> 3886 3887 PR c++/56464 3888 PR c++/54383 3889 * semantics.c (lambda_expr_this_capture): Handle NSDMI 3890 and non-class scopes. 3891 38922013-03-01 Paolo Carlini <paolo.carlini@oracle.com> 3893 3894 * decl.c (grokdeclarator): Remove dead code. 3895 38962013-02-28 Jason Merrill <jason@redhat.com> 3897 3898 PR c++/56481 3899 * semantics.c (potential_constant_expression_1): Use 3900 cxx_eval_outermost_constant_expr rather than maybe_constant_value. 3901 3902 PR c++/56243 3903 * call.c (build_over_call): Avoid virtual lookup in a template. 3904 39052013-02-27 Jason Merrill <jason@redhat.com> 3906 3907 PR c++/56358 3908 PR c++/56323 3909 * name-lookup.c (do_class_using_decl): Use ctor_identifier instead 3910 of the base name for inheriting ctors. 3911 (push_class_level_binding_1): Remove inheriting ctor handling. 3912 * pt.c (tsubst_decl) [USING_DECL]: Likewise. 3913 * class.c (add_implicitly_declared_members): Adjust. 3914 39152013-02-26 David Binderman <dcb314@hotmail.com> 3916 3917 PR c++/55632 3918 * decl.c (grokdeclarator): Tidy publicp assignment. 3919 39202013-02-25 Aldy Hernandez <aldyh@redhat.com> 3921 3922 PR c++/56419 3923 * semantics.c (begin_transaction_stmt): Set TREE_SIDE_EFFECTS. 3924 (build_transaction_expr): Same. 3925 39262013-02-25 Jason Merrill <jason@redhat.com> 3927 3928 PR c++/56377 3929 * pt.c (fn_type_unification): Wait to call push_tinst_level until 3930 we know what args we're looking at. 3931 3932 PR c++/56438 3933 * semantics.c (potential_constant_expression_1): In C++98, a cast 3934 to non-integral type can't be a constant expression. 3935 39362013-02-24 Jakub Jelinek <jakub@redhat.com> 3937 3938 PR c++/56403 3939 * init.c (build_zero_init_1): Use RECORD_OR_UNION_CODE_P instead 3940 of CLASS_TYPE_P. 3941 39422013-02-22 Jason Merrill <jason@redhat.com> 3943 3944 PR c++/40405 3945 * pt.c (push_template_decl_real): Set DECL_INTERFACE_KNOWN 3946 if we got the wrong number of template parms. 3947 3948 PR c++/56377 3949 * pt.c (fn_type_unification): Use explicit args in template 3950 instantiation context. 3951 3952 PR c++/56359 3953 * call.c (can_convert_arg): Discard access checks. 3954 3955 PR c++/56395 3956 * tree.c (strip_typedefs): Strip typedefs from TYPENAME_TYPE template 3957 args. 3958 39592013-02-20 Paolo Carlini <paolo.carlini@oracle.com> 3960 3961 PR c++/56373 3962 * tree.c (maybe_warn_zero_as_null_pointer_constant): Add. 3963 * cvt.c (ocp_convert): Use the latter. 3964 (cp_convert_to_pointer): Likewise. 3965 * decl.c (check_default_argument): Likewise. 3966 * typeck.c (cp_build_binary_op): Likewise. 3967 * cp-tree.h (maybe_warn_zero_as_null_pointer_constant): Declare. 3968 39692013-02-15 Jonathan Wakely <jwakely.gcc@gmail.com> 3970 Paolo Carlini <paolo.carlini@oracle.com> 3971 3972 PR c++/51242 3973 * decl2.c (grokbitfield): Allow scoped enumeration types. 3974 39752013-02-15 Jason Merrill <jason@redhat.com> 3976 3977 PR c++/54276 3978 * semantics.c (finish_id_expression): Also return the identifier 3979 for an outer local static. 3980 3981 PR c++/56343 3982 * class.c (check_bases_and_members): Deduce noexcept after 3983 checking bases. 3984 3985 PR c++/52026 3986 * semantics.c (finish_id_expression): In a template, return 3987 the identifier for a constant variable. 3988 39892013-02-14 Jason Merrill <jason@redhat.com> 3990 3991 PR c++/54922 3992 * semantics.c (build_anon_member_initialization): New. 3993 (build_data_member_initialization): Use it. 3994 3995 PR c++/55003 3996 * decl.c (cp_finish_decl): Force instantiation of an 3997 auto static data member. 3998 3999 PR c++/55220 4000 * pt.c (unify): A pack expansion that is not the last template 4001 argument makes the entire template argument list non-deduced. 4002 4003 PR c++/56323 4004 * name-lookup.c (do_class_using_decl): Handle typedefs with 4005 inheriting constructors. 4006 (push_class_level_binding_1): Allow inheriting from template 4007 template parameter, too. 4008 * pt.c (tsubst_decl) [USING_DECL]: Likewise. 4009 4010 PR c++/55223 4011 * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Fix handling of 4012 default argument scope. 4013 * mangle.c (write_name): Likewise. 4014 4015 PR c++/55232 4016 * error.c (find_typenames_r): Don't walk into a pack expansion. 4017 40182013-02-13 Jason Merrill <jason@redhat.com> 4019 4020 PR c++/55670 4021 * parser.c (cp_parser_member_declaration): Check the declarator 4022 form when detecting a function declaration via typedef. 4023 4024 PR c++/55680 4025 * pt.c (maybe_process_partial_specialization): A lambda 4026 isn't what's being specialized. 4027 4028 PR c++/55710 4029 * semantics.c (maybe_add_lambda_conv_op): Mark static thunk 4030 TREE_USED. 4031 4032 PR c++/55879 4033 * semantics.c (cxx_bind_parameters_in_call): Undo DECL_BY_REFERENCE. 4034 4035 PR c++/55993 4036 * semantics.c (cxx_fold_indirect_ref): Handle empty bases at 4037 non-zero offsets, too. 4038 4039 PR c++/56155 4040 * decl.c (build_enumerator): Always convert the value to a 4041 fixed underlying type. 4042 4043 PR c++/56135 4044 * pt.c (tsubst_copy_and_build): Don't forget any new 4045 captures that arose from use of dependent names. 4046 40472013-02-13 Jakub Jelinek <jakub@redhat.com> 4048 4049 PR c++/56302 4050 * semantics.c (finish_asm_stmt): If input constraints allow 4051 neither register nor memory, try maybe_constant_value to get 4052 a constant if possible. 4053 40542013-02-12 Jason Merrill <jason@redhat.com> 4055 4056 PR c++/56285 4057 * method.c (add_one_base_init): Handle base constructor 4058 taking rvalue reference parm. 4059 4060 PR c++/56291 4061 * semantics.c (sort_constexpr_mem_initializers): Handle 4062 vptr out of order. 4063 40642013-02-09 Jason Merrill <jason@redhat.com> 4065 4066 PR c++/56268 4067 * semantics.c (classtype_has_nothrow_assign_or_copy_p): Call 4068 maybe_instantiate_noexcept. 4069 4070 PR c++/56247 4071 * pt.c (eq_specializations): Set comparing_specializations. 4072 * tree.c (cp_tree_equal): Check it. 4073 * cp-tree.h: Declare it. 4074 4075 * decl.c (decls_match): Check versions later. 4076 4077 PR c++/56238 4078 * pt.c (build_non_dependent_expr): Don't try to fold 4079 instantiation-dependent expressions. 4080 (instantiation_dependent_r) [TRAIT_EXPR]: Split out. 4081 [BIND_EXPR]: Treat as dependent. 4082 40832013-02-07 Jakub Jelinek <jakub@redhat.com> 4084 4085 PR c++/56241 4086 * init.c (build_vec_init): Don't append NULL values into new_vec. 4087 (build_zero_init_1): Don't push anything into v if recursive call 4088 returned NULL_TREE. 4089 (build_value_init_noctor): Don't push anything into v if 4090 build_value_init call returned NULL_TREE. 4091 4092 PR c++/56239 4093 * parser.c (cp_parser_token_starts_cast_expression): Renamed to... 4094 (cp_parser_tokens_start_cast_expression): ... this. Change parameter 4095 to cp_parser *, call cp_lexer_peek_token first. For CPP_OPEN_PAREN, 4096 return true only if 2nd token isn't CPP_CLOSE_PAREN. 4097 (cp_parser_cast_expression): Adjust caller. 4098 4099 PR c++/56237 4100 * decl.c (push_local_name): Look at DECL_DISCRIMINATOR (t) 4101 only if DECL_DISCRIMINATOR_SET_P (t) rather than just 4102 DECL_LANG_SPECIFIC (t). 4103 41042013-02-07 Jason Merrill <jason@redhat.com> 4105 4106 PR c++/56235 4107 * method.c (do_build_copy_constructor): Don't bother turning 4108 scalars from lvalues to xvalues. 4109 (do_build_copy_assign): Likewise. 4110 41112013-02-06 Jason Merrill <jason@redhat.com> 4112 4113 * parser.c (cp_parser_enum_specifier): Check for error_mark_node. 4114 41152013-02-05 Jason Merrill <jason@redhat.com> 4116 4117 PR c++/54122 4118 * tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for 4119 METHOD_TYPE. 4120 4121 PR c++/56177 4122 * decl.c (start_preparsed_function): Update restype if we change 4123 decl1. 4124 4125 PR c++/56208 4126 * pt.c (fn_type_unification): Discard any access checks from 4127 substituting explicit args. 4128 41292013-01-31 Jason Merrill <jason@redhat.com> 4130 4131 PR c++/56162 4132 PR c++/56104 4133 * typeck.c (get_member_function_from_ptrfunc): Fix 4134 ptrmemfunc_vbit_in_delta case. 4135 41362013-01-29 Jason Merrill <jason@redhat.com> 4137 4138 PR libstdc++/54314 4139 * class.c (build_ctor_vtbl_group): Give construction vtables 4140 hidden visibility. 4141 41422013-01-25 Jason Merrill <jason@redhat.com> 4143 4144 PR c++/56095 4145 * pt.c (convert_nontype_argument_function): Handle invalid input. 4146 (convert_nontype_argument): Likewise. 4147 4148 PR c++/56104 4149 * typeck.c (get_member_function_from_ptrfunc): Optimize if the 4150 dynamic type has no virtual functions. 4151 41522013-01-22 Paolo Carlini <paolo.carlini@oracle.com> 4153 4154 PR c++/55944 4155 * decl.c (check_initializer): Use TARGET_EXPR_DIRECT_INIT_P only 4156 on TARGET_EXPR nodes. 4157 41582013-01-22 Jason Merrill <jason@redhat.com> 4159 4160 PR c++/56071 4161 * pt.c (maybe_instantiate_noexcept): Don't defer access checks. 4162 41632013-01-22 Dodji Seketeli <dodji@redhat.com> 4164 4165 PR c++/53609 4166 * pt.c (argument_pack_element_is_expansion_p) 4167 (make_argument_pack_select, use_pack_expansion_extra_args_p) 4168 (gen_elem_of_pack_expansion_instantiation): New static functions. 4169 (tsubst): When looking through an ARGUMENT_PACK_SELECT tree node, 4170 look through the possibly resulting pack expansion as well. 4171 (tsubst_pack_expansion): Use use_pack_expansion_extra_p to 4172 generalize when to use the PACK_EXPANSION_EXTRA_ARGS mechanism. 4173 Use gen_elem_of_pack_expansion_instantiation to build the 4174 instantiation piece-wise. Don't use arg_from_parm_pack_p anymore, 4175 as gen_elem_of_pack_expansion_instantiation and the change in 4176 tsubst above generalize this particular case. 4177 (arg_from_parm_pack_p): Remove this for it's not used by 4178 tsubst_pack_expansion anymore. 4179 41802013-01-21 Jason Merrill <jason@redhat.com> 4181 4182 PR c++/56059 4183 * tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default 4184 template args count. 4185 41862013-01-18 Jason Merrill <jason@redhat.com> 4187 4188 PR target/54908 4189 * decl2.c (get_local_tls_init_fn): New. 4190 (get_tls_init_fn): Handle flag_extern_tls_init. Don't bother 4191 with aliases for internal variables. Don't use weakrefs if 4192 the variable needs destruction. 4193 (generate_tls_wrapper): Mark the wrapper as const if no 4194 initialization is needed. 4195 (handle_tls_init): Don't require aliases. 4196 41972013-01-15 Dodji Seketeli <dodji@redhat.com> 4198 4199 PR c++/55663 4200 * pt.c (coerce_innermost_template_parms): New static function. 4201 (instantiate_alias_template): Use it here. 4202 42032013-01-09 Jason Merrill <jason@redhat.com> 4204 4205 PR c++/55878 4206 * rtti.c (build_typeid, get_typeid): Add complain parm. 4207 (get_tinfo_decl_dynamic): Likewise. 4208 * cp-tree.h, parser.c, pt.c: Adjust. 4209 4210 PR c++/55893 4211 * decl.c (cp_finish_decl): Clear TREE_READONLY if the variable 4212 needs destruction. 4213 42142013-01-09 Jakub Jelinek <jakub@redhat.com> 4215 4216 PR c/48418 4217 * typeck.c (cp_build_binary_op): For LSHIFT_EXPR and RSHIFT_EXPR, 4218 call maybe_constant_value for the negative or too big shift 4219 count warnings. 4220 42212013-01-09 Paolo Carlini <paolo.carlini@oracle.com> 4222 4223 PR c++/55801 4224 * decl2.c (var_needs_tls_wrapper): Return false when error_operand_p 4225 of the argument is true. 4226 42272013-01-08 Joel Brobecker <brobecker@adacore.com> 4228 4229 * parser.c (cp_parser_initializer_list): Move declaration 4230 of variable non_const to start of lexical block. 4231 42322013-01-07 Jason Merrill <jason@redhat.com> 4233 4234 PR c++/55753 4235 * tree.c (build_aggr_init_expr): Do nothing in a template. 4236 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Strip an ADDR_EXPR off 4237 a FUNCTION_DECL before tsubsting. 4238 42392013-01-04 Dodji Seketeli <dodji@redhat.com> 4240 4241 PR c++/52343 4242 * pt.c (check_instantiated_arg): Allow type template arguments. 4243 42442013-01-04 Jason Merrill <jason@redhat.com> 4245 4246 PR c++/55877 4247 * decl.c (reset_type_linkage, bt_reset_linkage): New. 4248 (grokdeclarator): Use reset_type_linkage. 4249 * name-lookup.c (binding_table_foreach): Handle null table. 4250 * tree.c (decl_anon_ns_mem_p): Check TYPE_MAIN_DECL, not TYPE_NAME. 4251 42522013-01-04 Paolo Carlini <paolo.carlini@oracle.com> 4253 4254 PR c++/54526 (again) 4255 * parser.c (cp_parser_template_id): Revert core of previous change 4256 (keep adjusted inform message). 4257 42582013-01-03 Jason Merrill <jason@redhat.com> 4259 4260 PR c++/55419 4261 PR c++/55753 4262 * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Don't touch 4263 TREE_CONSTANT. 4264 4265 PR c++/55842 4266 * semantics.c (trait_expr_value): Call maybe_instantiate_noexcept. 4267 4268 PR c++/55856 4269 * semantics.c (build_data_member_initialization): Handle DECL_EXPR. 4270 4271 PR c++/53650 4272 * call.c (type_has_extended_temps): New. 4273 * cp-tree.h: Declare it. 4274 * decl.c (check_initializer): Use build_aggr_init for arrays 4275 if it is false. 4276 * init.c (build_vec_init): Avoid mixed signed/unsigned arithmetic. 4277 42782013-01-02 Jason Merrill <jason@redhat.com> 4279 4280 PR c++/54325 4281 * call.c (build_new_method_call_1): Don't use build_value_init for 4282 user-provided default constructors. 4283 4284 * decl.c (check_default_argument): Use LOOKUP_IMPLICIT. 4285 4286 PR c++/55032 4287 PR c++/55245 4288 * tree.c (build_cplus_array_type): Copy layout information 4289 to main variant if necessary. 4290 4291Copyright (C) 2013 Free Software Foundation, Inc. 4292 4293Copying and distribution of this file, with or without modification, 4294are permitted in any medium without royalty provided the copyright 4295notice and this notice are preserved. 4296