12014-12-31 Iain Sandoe <iain@codesourcery.com> 2 3 * parser.c (cp_parser_primary_expression): If parsing an 4 objective-c++ message expression fails, see if a lambda is present. 5 (cp_parser_objc_message_receiver): Don't assume that, if a message 6 receiver expression fails, it is a hard error. 7 82014-12-25 Jason Merrill <jason@redhat.com> 9 10 * pt.c (check_default_tmpl_args): Uses the parameter source 11 location in the diagnostic. 12 (convert_template_argument): Just return if parm is error_mark_node. 13 14 PR c++/63522 15 * parser.c (cp_parser_type_parameter): Call 16 check_for_bare_parameter_packs on default argument. 17 182014-12-24 Paolo Carlini <paolo.carlini@oracle.com> 19 20 PR c++/63985 21 * parser.c (cp_parser_init_declarator): Add location_t* parameter. 22 (cp_parser_simple_declaration): Provide proper diagnostic for 23 multiple declarations and initializers in range-based for loops. 24 (cp_parser_single_declaration): Adjust call. 25 262014-12-20 Jason Merrill <jason@redhat.com> 27 28 PR c++/64359 29 * pt.c (iterative_hash_template_arg): Hash alias specializations 30 differently from their TYPE_CANONICAL. 31 (alias_template_specialization_p): Optimize. 32 (template_args_equal): Optimize alias handling. 33 (dependent_alias_template_spec_p): Only check innermost args. 34 352014-12-19 Kai Tietz <ktietz@redhat.com> 36 37 PR c++/61198 38 * pt.c (most_general_template): Don't break for template-alias. 39 402014-12-18 Jason Merrill <jason@redhat.com> 41 42 PR c++/64105 43 * parser.c (cp_parser_simple_type_specifier): Make auto parameter 44 before -std=c++14 an error. 45 46 PR c++/64352 47 * pt.c (tsubst_copy_and_build): Pass complain to mark_used. 48 49 PR c++/64251 50 * decl2.c (mark_used): Don't mark if in_template_function. 51 522014-12-18 Paolo Carlini <paolo.carlini@oracle.com> 53 54 PR c++/60955 55 * pt.c (struct warning_sentinel): Move it... 56 * cp-tree.h: ... here. 57 * semantics.c (force_paren_expr): Use it. 58 592014-12-17 Jason Merrill <jason@redhat.com> 60 61 PR c++/64333 62 * constexpr.c (cxx_bind_parameters_in_call): non_constant_args parm. 63 (cxx_eval_call_expression): Don't cache calls with non-constant args. 64 (cxx_eval_constant_expression) [COMPOUND_EXPR]: Pass true for lval. 65 (cxx_eval_unary_expression, cxx_eval_binary_expression) 66 (cxx_eval_conditional_expression): Pass false for lval. 67 68 * constexpr.c: Change "addr" parm names to "lval". 69 70 * constexpr.c: Tweak comments and formatting. 71 722014-12-16 Paolo Carlini <paolo.carlini@oracle.com> 73 74 PR c++/58650 75 * parser.c (cp_parser_member_declaration): Fix error recovery for 76 initialized non-static data member declared friend. 77 782014-12-15 Jan Hubicka <hubicka@ucw.cz> 79 80 * decl2.c (decl_needed_p): When not optimizing, do not consider external 81 decls as needed. 82 832014-12-15 Jason Merrill <jason@redhat.com> 84 85 PR c++/64297 86 * typeck.c (apply_memfn_quals): Correct wrong TYPE_CANONICAL. 87 88 N3778: Sized Deallocation 89 * call.c (non_placement_deallocation_fn_p): A global sized 90 operator delete is not a usual deallocation function until C++14. 91 (build_op_delete_call): Choose the global sized op delete if we 92 know the size. 93 * cp-tree.h: Declare non_placement_deallocation_fn_p. 94 (enum cp_tree_index): Remove CPTI_GLOBAL_DELETE_FNDECL. 95 (global_delete_fndecl): Remove. 96 * decl.c (cxx_init_decl_processing): Also declare sized op deletes. 97 (grok_op_properties): Warn about sized dealloc without the flag. 98 * init.c (build_builtin_delete_call): Remove. 99 (build_vec_delete_1, build_delete): Don't call it. 100 * decl2.c (maybe_warn_sized_delete): New. 101 (cp_write_global_declarations): Call it. 102 1032014-12-15 Paolo Carlini <paolo.carlini@oracle.com> 104 105 PR c++/58882 106 * decl.c (check_array_designated_initializer): Diagnose gracefully 107 C99 designators which aren't integral constant-expressions; allow 108 constexpr user-defined type conversion operators. 109 1102014-12-12 Paolo Carlini <paolo.carlini@oracle.com> 111 112 PR c++/59628 113 * semantics.c (finish_omp_reduction_clause): Early return true 114 if DECL_SAVED_TREE (id) is NULL_TREE. 115 1162014-12-12 Jason Merrill <jason@redhat.com> 117 118 N3922 119 * pt.c (do_auto_deduction): In direct-init context, { x } deduces 120 from x. 121 122 * cp-tree.h (NAMESPACE_ABI_TAG): New. 123 * name-lookup.c (handle_namespace_attrs): Set it. 124 * class.c (check_tag): Split out from find_abi_tags_r. 125 (find_abi_tags_r): Also check namespace tags. 126 (mark_type_abi_tags): Also mark namespace tags. 127 1282014-12-12 Kai Tietz <ktietz@redhat.com> 129 130 PR c++/63996 131 * constexpr.c (cxx_eval_loop_expr): Don't loop 132 endless on none-constant expression. 133 1342014-12-12 Jason Merrill <jason@redhat.com> 135 136 PR c++/61402 137 * lambda.c (add_capture): Don't pass a dependent type to 138 variably_modified_type_p. 139 1402014-12-11 Jason Merrill <jason@redhat.com> 141 142 Remove N3639 "array of runtime length" from -std=c++14. 143 * decl.c (compute_array_index_type): VLAs are not part of C++14. 144 (create_array_type_for_decl, grokdeclarator): Likewise. 145 * lambda.c (add_capture): Likewise. 146 * pt.c (tsubst): Likewise. 147 * rtti.c (get_tinfo_decl): Likewise. 148 * semantics.c (finish_decltype_type): Likewise. 149 * typeck.c (cxx_sizeof_or_alignof_type): Likewise. 150 (cp_build_addr_expr_1): Likewise. 151 * init.c (build_vec_init): Don't throw bad_array_length. 152 153 PR c++/64248 154 Revert: 155 * parser.c (cp_parser_unqualified_id): Handle __func__ here. 156 (cp_parser_primary_expression): Not here. 157 158 PR c++/57510 159 * typeck2.c (split_nonconstant_init_1): Handle arrays here. 160 (store_init_value): Not here. 161 (split_nonconstant_init): Look through TARGET_EXPR. No longer static. 162 * cp-tree.h: Declare split_nonconstant_init. 163 * call.c (set_up_extended_ref_temp): Use split_nonconstant_init. 164 1652014-12-11 Paolo Carlini <paolo.carlini@oracle.com> 166 167 * typeck.c (maybe_warn_about_useless_cast): Remove unnecessary 168 conditional. 169 1702014-12-10 Kai Tietz <ktietz@redhat.com> 171 172 PR c++/64127 173 * parser.c (cp_parser_diagnose_invalid_type_name): Check id 174 for being an identifier before accessing it. 175 176 PR c++/64100 177 * typeck.c (lookup_destructor): Handle incomplete type. 178 1792014-12-09 Jason Merrill <jason@redhat.com> 180 181 PR c++/64129 182 * decl.c (grokdeclarator): Recover from variable template 183 specialization declared as function. 184 185 PR c++/64222 186 * parser.c (cp_parser_unqualified_id): Don't declare fname while 187 parsing function parms. 188 1892014-12-03 Jason Merrill <jason@redhat.com> 190 191 PR c++/64029 192 * decl.c (grok_reference_init): Complete array type. 193 194 PR c++/64080 195 * constexpr.c (cxx_eval_store_expression): Handle non-decl store 196 targets. 197 1982014-12-03 Paolo Carlini <paolo.carlini@oracle.com> 199 200 PR c++/63558 201 * decl.c (identify_goto): Return a bool if diagnostic is emitted. 202 (check_previous_goto_1): Consistently emit permerror + inform. 203 (check_goto): Likewise. 204 2052014-12-03 Richard Biener <rguenther@suse.de> 206 207 * constexpr.c (cxx_eval_builtin_function_call): Use 208 fold_build_call_array_loc. 209 2102014-12-02 Marek Polacek <polacek@redhat.com> 211 212 * constexpr.c (cxx_eval_check_shift_p): New function. 213 (cxx_eval_binary_expression): Call it. Set NON_CONSTANT_P if it 214 returns true. 215 2162014-12-01 Paolo Carlini <paolo.carlini@oracle.com> 217 218 PR c++/60859 219 * decl.c (reshape_init_r): Do not reject value-initialization of 220 scalar array element. 221 2222014-12-01 Marek Polacek <polacek@redhat.com> 223 224 PR sanitizer/63956 225 * constexpr.c: Include ubsan.h. 226 (cxx_eval_call_expression): Bail out for IFN_UBSAN_{NULL,BOUNDS} 227 internal functions and for ubsan builtins. 228 * error.c: Include internal-fn.h. 229 (dump_expr): Add printing of internal functions. 230 2312014-12-01 Marek Polacek <polacek@redhat.com> 232 233 * constexpr.c (literal_type_p): Return true for void type in C++14. 234 2352014-12-01 Paolo Carlini <paolo.carlini@oracle.com> 236 237 PR c++/60845 238 * typeck.c (finish_class_member_access_expr): Use %q#T instead of 239 %qD in error message. 240 2412014-11-29 Jakub Jelinek <jakub@redhat.com> 242 243 * cp-gimplify.c (cxx_omp_clause_apply_fn): Remove NULL last argument 244 from create_tmp_var calls. 245 2462014-11-28 Marek Polacek <polacek@redhat.com> 247 248 PR c/63862 249 * typeck.c (cp_build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't 250 convert the right operand to integer type. 251 2522014-11-27 Kai Tietz <ktietz@redhat.com> 253 254 PR c++/63904 255 * constexpr.c (cxx_eval_vec_init_1): Avoid 256 type-overflow issue. 257 2582014-11-26 Jason Merrill <jason@redhat.com> 259 260 Allow partial specialization of variable templates. 261 * cp-tree.h (TINFO_USED_TEMPLATE_ID): New. 262 * decl.c (duplicate_decls): Copy it. 263 * error.c (dump_decl) [TEMPLATE_ID_EXPR]: Handle variables. 264 * parser.c (cp_parser_decltype_expr): Do call finish_id_expression 265 on template-ids. 266 * pt.c (register_specialization): Remember variable template insts. 267 (instantiate_template_1): Find the matching partial specialization. 268 (check_explicit_specialization): Allow variable partial specialization. 269 (process_partial_specialization): Likewise. 270 (push_template_decl_real): Likewise. 271 (more_specialized_partial_spec): Rename from more_specialized_class. 272 (most_specialized_partial_spec): Rename from most_specialized_class. 273 (get_partial_spec_bindings): Rename from get_class_bindings. 274 2752014-11-26 Paolo Carlini <paolo.carlini@oracle.com> 276 277 PR c++/63757 278 * call.c (standard_conversion): Do not require expr to be non-null 279 when NULLPTR_TYPE_P (from) is true. 280 2812014-11-26 Jason Merrill <jason@redhat.com> 282 283 * constexpr.c (cxx_eval_constant_expression) [SAVE_EXPR]: Avoid 284 multiple evaluation. 285 286 * constexpr.c (cxx_eval_call_expression): Don't talk about 287 flowing off the end if we're already non-constant. 288 2892014-11-26 Ville Voutilainen <ville.voutilainen@gmail.com> 290 291 Diagnose string constant conversion to char* in c++11 and above 292 as forbidden, not deprecated. 293 * typeck.c (string_conv_p): Do a pedwarn in c++11 and above, 294 change the diagnostic for the Wwrite-strings case for c++11 and above. 295 2962014-11-24 Jason Merrill <jason@redhat.com> 297 298 * pt.c (lookup_template_variable): Always unknown_type_node. 299 3002014-11-25 Paolo Carlini <paolo.carlini@oracle.com> 301 302 PR c++/63786 303 * parser.c (cp_parser_label_for_labeled_statement): Check the case 304 with check_for_bare_parameter_packs. 305 3062014-11-24 Jonathan Wakely <jwakely@redhat.com> 307 Paolo Carlini <paolo.carlini@oracle.com> 308 309 PR c++/63203 310 * decl.c (initialize_local_var): Add -Winit-self warning for 311 references initialized with themselves. 312 3132014-11-24 Jason Merrill <jason@redhat.com> 314 315 PR c++/63942 316 * mangle.c (mangle_decl): If we aren't going to create a symbol 317 alias, don't build the alias DECL either. 318 3192014-11-24 Paolo Carlini <paolo.carlini@oracle.com> 320 321 PR c++/63905 322 * cp-tree.h (lang_decl_fn): Remove constructor_attr, destructor_attr. 323 3242014-11-21 Jason Merrill <jason@redhat.com> 325 326 PR c++/63657 327 PR c++/38958 328 * call.c (set_up_extended_ref_temp): Set TREE_USED on the reference 329 if the temporary has a non-trivial destructor. 330 * decl.c (poplevel): Don't look through references. 331 332 PR c++/63942 333 * name-lookup.c (supplement_binding_1): Override a mangling alias. 334 * mangle.c (maybe_remove_implicit_alias): New. 335 (mangle_decl): Always avoid creating conflicting alias. 336 * cp-tree.h: Adjust. 337 338 PR c++/63849 339 * mangle.c (decl_mangling_context): Use template_type_parameter_p. 340 341 PR c++/63588 342 * pt.c (uses_template_parms): Handle null argument. 343 3442014-11-21 Jakub Jelinek <jakub@redhat.com> 345 346 PR target/63764 347 * typeck.c (cp_build_array_ref): Adjust 348 convert_vector_to_pointer_for_subscript caller. If it returns true, 349 call non_lvalue_loc on the result. 350 3512014-11-20 Jason Merrill <jason@redhat.com> 352 353 PR c++/63658 354 * pt.c (convert_nontype_argument): Call convert_from_reference. 355 (check_instantiated_arg): Don't be confused by reference refs. 356 (unify): Look through reference refs on the arg, too. 357 * mangle.c (write_template_arg): Look through reference refs. 358 359 * error.c (dump_expr): Avoid printing (*&i) for references. 360 3612014-11-20 Ville Voutilainen <ville.voutilainen@gmail.com> 362 363 PR c++/63959 364 * tree.c (trivially_copyable_p): Check for CP_TYPE_VOLATILE_P. 365 3662014-11-20 Trevor Saunders <tsaunders@mozilla.com> 367 368 * cp-objcp-common.c: Use hash_table instead of htab. 369 3702014-11-19 Jason Merrill <jason@redhat.com> 371 372 PR c++/56041 373 * cp-tree.h (struct processing_template_decl_sentinel): New. 374 * pt.c (instantiate_non_dependent_expr_internal): Split out from... 375 (instantiate_non_dependent_expr_sfinae): Here. 376 (convert_nontype_argument): Use them. 377 * constexpr.c (fold_non_dependent_expr): Use them. 378 379 PR c++/63885 380 * constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: Don't 381 complain yet about a reference. 382 [TARGET_EXPR]: Handle TARGET_EXPR with addr == true. 383 [ADDR_EXPR]: Make sure we don't take the address of a CONSTRUCTOR. 384 (cxx_bind_parameters_in_call): In the new scheme addr is always false. 385 * typeck.c (build_address): Don't take the address of a CONSTRUCTOR. 386 387 PR c++/57979 388 * init.c (decl_really_constant_value): Rename from 389 integral_constant_value. 390 (scalar_constant_value): Similar but limited to scalar results. 391 (decl_constant_value_safe): Remove. 392 (constant_value_1): Respect return_aggregate_cst_ok_p. 393 * typeck.c (decay_conversion): Use scalar_constant_value. 394 * call.c (convert_like_real): Likewise. 395 * cvt.c (ocp_convert): No need to check CLASS_TYPE_P. 396 * typeck.c (decay_conversion): Or ARRAY_TYPE. 397 * constexpr.c (struct constexpr_ctx): Add strict field. 398 (cxx_eval_constant_expression) [VAR_DECL]: Use it to select between 399 decl_constant_value and decl_really_constant_value. 400 (cxx_eval_outermost_constant_expr): Add strict parm. 401 (maybe_constant_init): Not strict. 402 (potential_constant_expression_1): Add strict parm. 403 Shorten most internal calls with RECUR macro. 404 * cp-tree.h, pt.c, semantics.c: Adjust. 405 4062014-11-19 Jason Merrill <jason@redhat.com> 407 408 PR c++/63928 409 * constexpr.c (cxx_eval_store_expression): Return init, not *valp. 410 4112014-11-19 Paolo Carlini <paolo.carlini@oracle.com> 412 413 PR c++/55425 414 * constexpr.c (constexpr_fn_retval): Accept __func__, __FUNCTION__, 415 and __PRETTY_FUNCTION__. 416 4172014-11-18 Jason Merrill <jason@redhat.com> 418 419 PR c++/63924 420 * constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: A load 421 from a variable of empty class type is constant. 422 423 * constexpr.c (cxx_eval_statement_list): Handle statement-expressions. 424 (potential_constant_expression_1): Handle STMT_EXPR. 425 426 * constexpr.c (cxx_eval_constant_expression): Give jump_target a 427 default argument. 428 (lots): Omit NULL jump_target arguments. 429 430 * constexpr.c (struct constexpr_ctx): Add quiet field. 431 (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Set it. 432 (lots): Replace allow_non_constant parameter with ctx->quiet. 433 434 PR c++/63940 435 * constexpr.c (cxx_eval_binary_expression): Don't assume the 436 expression was already folded. 437 (cxx_eval_unary_expression): Likewise. 438 4392014-11-18 Marc Glisse <marc.glisse@inria.fr> 440 441 PR libstdc++/43622 442 * rtti.c (emit_support_tinfos): Handle __float128. 443 4442014-11-18 Jason Merrill <jason@redhat.com> 445 446 PR c++/63925 447 * constexpr.c (cxx_eval_increment_expression): Use POINTER_PLUS_EXPR. 448 449 PR c++/63934 450 * constexpr.c (cxx_eval_call_expression): Check DECL_CONSTRUCTOR_P 451 rather than VOID_TYPE_P. 452 453 * pt.c (instantiate_template_1): Use tsubst_aggr_type for context. 454 455 PR c++/58102 456 * typeck2.c (store_init_value): Set it. 457 * cp-tree.h (CONSTRUCTOR_MUTABLE_POISON): New. 458 * constexpr.c (cxx_eval_outermost_constant_expr): Check it. 459 4602014-11-17 Jason Merrill <jason@redhat.com> 461 462 PR c++/33911 463 * call.c (build_call_a): Don't warn_deprecated_use here. 464 (build_over_call): Or here. 465 * decl2.c (mark_used): Do it here. 466 (is_late_template_attribute): Attribute deprecated is not deferred. 467 (cplus_decl_attributes): Propagate TREE_DEPRECATED out to the template. 468 * parser.c (cp_parser_template_name): Warn about deprecated template. 469 (cp_parser_template_argument): Likewise. 470 471 PR c++/50473 472 * decl.c (cp_finish_decl): Don't try to process a non-dependent 473 constant initializer for a reference. 474 * pt.c (value_dependent_expression_p): A reference is always 475 dependent. 476 * call.c (extend_ref_init_temps_1): Also clear TREE_SIDE_EFFECTS 477 on any NOP_EXPRs. 478 479 Handle C++14 constexpr flow control. 480 * constexpr.c (cxx_eval_loop_expr, cxx_eval_switch_expr): New. 481 (cxx_eval_statement_list): New. 482 (cxx_eval_constant_expression): Handle LABEL_EXPR, 483 CASE_LABEL_EXPR, GOTO_EXPR, LOOP_EXPR, SWITCH_EXPR. Handle jump 484 semantics of RETURN_EXPR. 485 (many functions): Add jump_target parameter. 486 (returns, breaks, continues, switches, label_matches): New. 487 * cp-tree.h (LABEL_DECL_BREAK, LABEL_DECL_CONTINUE): New. 488 * cp-gimplify.c (begin_bc_block): Set them. 489 490 * cp-gimplify.c (genericize_cp_loop): Use LOOP_EXPR. 491 (genericize_for_stmt): Handle null statement-list. 492 493 * constexpr.c (use_new_call): Always use new call handling. 494 495 C++14 constexpr support (minus loops and multiple returns) 496 * constexpr.c (use_new_call): New macro. 497 (build_data_member_initialization): Ignore non-mem-inits. 498 (check_constexpr_bind_expr_vars): Remove C++14 checks. 499 (constexpr_fn_retval): Likewise. 500 (check_constexpr_ctor_body): Do nothing in C++14. 501 (massage_constexpr_body): In C++14 only collect mem-inits. 502 (get_function_named_in_call): Handle null CALL_EXPR_FN. 503 (cxx_bind_parameters_in_call): Build bindings in same order as 504 parameters. Don't treat iniviref parms specially in new call mode. 505 (cxx_eval_call_expression): If use_new_call, do constexpr expansion 506 based on DECL_SAVED_TREE rather than the massaged constexpr body. 507 Set up ctx->object from AGGR_INIT_EXPR_SLOT if we don't have one. 508 (is_sub_constant_expr): Don't mess with ctx.ctor here. 509 (cxx_eval_component_reference): A null element means we're mid- 510 initialization. 511 (cxx_eval_store_expression, cxx_eval_increment_expression): New. 512 (cxx_eval_constant_expression): Handle RESULT_DECL, DECL_EXPR, 513 MODIFY_EXPR, STATEMENT_LIST, BIND_EXPR, USING_STMT, 514 PREINCREMENT_EXPR, POSTINCREMENT_EXPR, PREDECREMENT_EXPR, 515 POSTDECREMENT_EXPR. Don't look into DECL_INITIAL of variables in 516 constexpr functions. In new-call mode find parms in the values table. 517 (potential_constant_expression_1): Handle null CALL_EXPR_FN. 518 Handle STATEMENT_LIST, MODIFY_EXPR, MODOP_EXPR, IF_STMT, 519 PREINCREMENT_EXPR, POSTINCREMENT_EXPR, PREDECREMENT_EXPR, 520 POSTDECREMENT_EXPR, BIND_EXPR, WITH_CLEANUP_EXPR, 521 CLEANUP_POINT_EXPR, MUST_NOT_THROW_EXPR, TRY_CATCH_EXPR, 522 EH_SPEC_BLOCK, EXPR_STMT, DECL_EXPR, CASE_LABEL_EXPR, BREAK_STMT, 523 CONTINUE_STMT, USING_STMT, IF_STMT, DO_STMT, FOR_STMT, WHILE_STMT, 524 SWITCH_STMT, ASM_EXPR. 525 (cxx_eval_vec_init_1): Call build_aggr_init_expr. 526 (cxx_eval_indirect_ref): Don't return a CONSTRUCTOR when the 527 caller wants an lvalue. 528 (cxx_eval_outermost_constant_expr): Pull object out of AGGR_INIT_EXPR. 529 (maybe_constant_init): Look through INIT_EXPR. 530 (ensure_literal_type_for_constexpr_object): Set 531 cp_function_chain->invalid_constexpr. 532 * cp-tree.h (struct language_function): Add invalid_constexpr bitfield. 533 * decl.c (start_decl): Set cp_function_chain->invalid_constexpr. 534 (check_for_uninitialized_const_var): Likewise. 535 (maybe_save_function_definition): Check it. 536 * parser.c (cp_parser_jump_statement): Set 537 cp_function_chain->invalid_constexpr. 538 (cp_parser_asm_definition): Likewise. 539 540 PR c++/52282 541 * decl.c (build_ptrmemfunc_type): Don't build a different 542 RECORD_TYPE for a qualified PMF. 543 * cp-tree.h (TYPE_PTRMEMFUNC_FN_TYPE): Merge cv-quals. 544 (TYPE_PTRMEMFUNC_FN_TYPE_RAW): New. 545 * decl2.c (cplus_decl_attributes): Use TYPE_PTRMEMFUNC_FN_TYPE_RAW. 546 * tree.c (cp_walk_subtrees): Likewise. 547 (cp_build_qualified_type_real): Remove special PMF handling. 548 5492014-11-15 Jason Merrill <jason@redhat.com> 550 551 * parser.c (cp_parser_omp_declare_reduction_exprs): A block is not 552 an expression. 553 554 * constexpr.c (cxx_eval_builtin_function_call): Use 555 fold_builtin_call_array. 556 557 * constexpr.c (cx_check_missing_mem_inits): Clarify error message. 558 5592014-11-14 Paolo Carlini <paolo.carlini@oracle.com> 560 561 * semantics.c (end_maybe_infinite_loop): Use fold_non_dependent_expr. 562 * parser.c (cp_parser_omp_clause_collapse): Likewise. 563 (cp_parser_enumerator_definition): Don't call 564 instantiate_non_dependent_expr... 565 * decl.c (build_enumerator): ... call fold_non_dependent_expr here. 566 * typeck2.c (massage_init_elt): Use fold_non_dependent_expr. 567 * constexpr.c (maybe_constant_value): Allow VIEW_CONVERT_EXPR in 568 the final gcc_assert. 569 570 * constexpr.c (fold_non_dependent_expr): Add. 571 * cp-tree.h (fold_non_dependent_expr): Declare it. 572 * call.c (null_ptr_cst_p): Use it. 573 * pt.c (tsubst_copy_and_build, build_non_dependent_expr): Likewise. 574 * semantics.c (begin_maybe_infinite_loop): Likewise. 575 * typeck.c (cp_build_binary_op): Likewise. 576 * typeck2.c (check_narrowing): Likewise. 577 578 * pt.c (fold_non_dependent_expr): Rename to 579 instantiate_non_dependent_expr. 580 (fold_non_dependent_expr_sfinae): Rename to 581 instantiate_non_dependent_expr_sfinae. 582 (convert_nontype_argument, build_non_dependent_expr): Adjust. 583 * decl.c (compute_array_index_type): Likewise. 584 * parser.c (cp_parser_parenthesized_expression_list, 585 cp_parser_enumerator_definition, cp_parser_omp_clause_collapse): 586 Likewise. 587 * semantics.c (end_maybe_infinite_loop, finish_static_assert): 588 Likewise. 589 * typeck.c (cxx_alignas_expr): Likewise. 590 * typeck2.c (store_init_value, massage_init_elt): Likewise. 591 * call.c: Adjust comments. 592 * class.c: Likewise. 593 * constexpr.c: Likewise. 594 * decl2.c: Likewise. 595 * tree.c: Likewise. 596 5972014-11-14 Jonathan Wakely <jwakely@redhat.com> 598 599 * mangle.c (find_substitution): Look for abi_tag on class templates. 600 6012014-11-13 Bernd Schmidt <bernds@codesourcery.com> 602 Thomas Schwinge <thomas@codesourcery.com> 603 Ilya Verbin <ilya.verbin@intel.com> 604 Andrey Turetskiy <andrey.turetskiy@intel.com> 605 606 * Make-lang.in (c++.install-common): Do not install for the offload 607 compiler. 608 6092014-11-13 Kai Tietz <ktietz@redhat.com> 610 611 * cp-tree.h (cp_build_function_call): Remove prototype. 612 (cp_build_addr_expr_strict): Likewise. 613 (build_typed_address): Likewise. 614 * typeck.c (build_typed_address): Removed. 615 (cp_build_addr_expr_strict): Make static. 616 (cp_build_function_call): Likewise. 617 6182014-11-12 Paolo Carlini <paolo.carlini@oracle.com> 619 620 DR 1510 621 PR c++/60420 622 * cp-tree.h (struct cp_decl_specifier_seq): Add decltype_p bool field. 623 * decl.c (grokdeclarator): Use it. 624 * parser.c (cp_parser_simple_type_specifier): Likewise. 625 * pt.c (tsubst, case DECLTYPE_TYPE): Use tf_ignore_bad_quals. 626 6272014-11-11 Paolo Carlini <paolo.carlini@oracle.com> 628 629 PR c++/63265 630 * pt.c (tsubst_copy_and_build, case COND_EXPR): Maybe fold to 631 constant the condition. 632 6332014-11-10 Andi Kleen <ak@linux.intel.com> 634 635 * semantics.c (finish_goto_stmt): Call check_no_cilk. 636 (finish_while_stmt_cond): Dito. 637 (finish_do_stmt): Dito. 638 (finish_for_cond): Dito. 639 (finish_switch_cond): Dito. 640 6412014-11-10 Paolo Carlini <paolo.carlini@oracle.com> 642 643 * typeck.c (cp_build_binary_op): Use OPT_Wshift_count_negative and 644 OPT_Wshift_count_overflow in the warnings. 645 6462014-11-09 Jason Merrill <jason@redhat.com> 647 648 DR 799 649 * typeck.c (build_reinterpret_cast_1): reinterpret_cast to the 650 same scalar type is an rvalue. 651 652 DR 2007 653 * call.c (build_new_op_1): Don't do non-class lookup for =, -> or []. 654 6552014-11-07 Jason Merrill <jason@redhat.com> 656 657 DR 1558 658 * pt.c (dependent_alias_template_spec_p): New. 659 (dependent_type_p_r): Handle dependent alias template specialization. 660 (template_args_equal): A dependent alias template specializations 661 is not equal to its underlying type as a template argument. 662 * tree.c (strip_typedefs): Don't strip a dependent alias 663 template-id. 664 665 * parser.c (cp_parser_unqualified_id): Handle __func__ here. 666 (cp_parser_primary_expression): Not here. 667 6682014-11-07 Thomas Preud'homme <thomas.preudhomme@arm.com> 669 670 PR c++/63366 671 * decl.c (grokdeclarator): Fix __complex meaning __complex double. 672 6732014-10-29 Richard Sandiford <richard.sandiford@arm.com> 674 675 * constexpr.c: Remove redundant enum from machine_mode. 676 6772014-10-28 Jason Merrill <jason@redhat.com> 678 679 * constexpr.c (cxx_eval_outermost_constant_expr): Tweak. 680 6812014-10-28 Andrew MacLeod <amacleod@redhat.com> 682 683 * call.c: Adjust include files. 684 * class.c: Ditto. 685 * decl2.c: Ditto. 686 * decl.c: Ditto. 687 * lambda.c: Ditto. 688 * mangle.c: Ditto. 689 * method.c: Ditto. 690 * optimize.c: Ditto. 691 * parser.c: Ditto. 692 * semantics.c: Ditto. 693 * tree.c: Ditto. 694 * vtable-class-hierarchy.c: Ditto. 695 6962014-10-24 Jason Merrill <jason@redhat.com> 697 698 Implement N3653 (Member initializers and aggregates) and fix 699 references to 'this' in constexpr constructors. 700 * class.c (check_field_decls): In C++14 an NSDMI does not make the 701 class non-aggregate. 702 * constexpr.c (struct constexpr_ctx): New. 703 (cxx_bind_parameters_in_call): Handle 'this'. 704 (cxx_eval_call_expression): Create new constexpr_ctx. 705 (cxx_eval_component_reference): Check CONSTRUCTOR_NO_IMPLICIT_ZERO. 706 (initialized_type, init_subob_ctx, verify_ctor_sanity): New. 707 (cxx_eval_bare_aggregate): Use them. Build CONSTRUCTOR early. 708 (cxx_eval_vec_init_1): Likewise. 709 (cxx_eval_constant_expression) [PARM_DECL]: Allow 'this'. 710 [TARGET_EXPR]: Build new constexpr_ctx. 711 [PLACEHOLDER_EXPR]: New. 712 (cxx_eval_outermost_constant_expr): Build new constexpr_ctx. Add 713 object parameter. 714 (is_sub_constant_expr): Build new constexpr_ctx. 715 (potential_constant_expression_1): Handle PLACEHOLDER_EXPR. 716 Allow 'this'. 717 * cp-gimplify.c (cp_gimplify_init_expr): Call replace_placeholders. 718 * cp-tree.h (CONSTRUCTOR_NO_IMPLICIT_ZERO): New. 719 * error.c (dump_expr): Handle PLACEHOLDER_EXPR. 720 * init.c (get_nsdmi): Generate PLACEHOLDER_EXPR. 721 * tree.c (lvalue_kind): Handle PLACEHOLDER_EXPR. 722 (build_ctor_subob_ref, replace_placeholders): New. 723 * typeck2.c (store_init_value): Use replace_placeholders. 724 (process_init_constructor_record): Make zero-init before NSDMI 725 explicit. 726 7272014-10-27 Andrew MacLeod <amacleod@redhat.com> 728 729 * cp-gimplify.c: Adjust include files. 730 7312014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org> 732 733 PR c++/53061 734 * cp-objcp-common.c: Do not include new. 735 (cxx_initialize_diagnostics): Move from here to ... 736 * error.c (cxx_initialize_diagnostics): : ... here. Move 737 diagnostics initialization here from init_error. 738 (cxx_pp): Use a real pointer not a macro. 739 (init_error): Just initialize cxx_pp. 740 * cxx-pretty-print.c (cxx_pretty_printer::cxx_pretty_printer): Do 741 not set maximum line length. 742 7432014-10-23 Jonathan Wakely <jwakely@redhat.com> 744 745 PR c++/63619 746 * decl2.c (delete_sanity): Use OPT_Wdelete_incomplete in warning. 747 7482014-10-21 Paolo Carlini <paolo.carlini@oracle.com> 749 750 * parser.c (cp_parser_unary_expression): Add default arguments. 751 (cp_parser_cast_expression, cp_parser_sizeof_operand, 752 cp_parser_omp_atomic): Adjust. 753 7542014-10-20 Jason Merrill <jason@redhat.com> 755 756 PR c++/63601 757 * lambda.c (current_nonlambda_function): New. 758 * semantics.c (finish_this_expr): Use it. 759 * cp-tree.h: Declare it. 760 7612014-10-17 Alan Modra <amodra@gmail.com> 762 763 PR middle-end/61848 764 * decl.c (merge_decls): Don't merge section name, comdat group or 765 tls model to newdecl symtab node, instead merge to olddecl. 766 Override existing olddecl section name. Set tls_model for all 767 thread-local vars, not just OMP thread-private ones. Remove 768 incorrect comment. 769 7702014-10-16 Andrew MacLeod <amacleod@redhat.com> 771 772 * cp-tree.h: Adjust include files. 773 7742014-10-15 Jason Merrill <jason@redhat.com> 775 776 PR c++/63528 777 * pt.c (lookup_template_variable): Call coerce_template_parms. 778 7792014-10-15 Paolo Carlini <paolo.carlini@oracle.com> 780 781 * semantics.c (is_instantiation_of_constexpr, literal_type_p, 782 ensure_literal_type_for_constexpr_object, 783 constexpr_fundef_hasher::equal, constexpr_fundef_hasher::hash, 784 retrieve_constexpr_fundef, is_valid_constexpr_fn, 785 build_anon_member_initialization, build_data_member_initialization, 786 check_constexpr_bind_expr_vars, check_constexpr_ctor_body_1, 787 check_constexpr_ctor_body, sort_constexpr_mem_initializers, 788 build_constexpr_constructor_member_initializers, constexpr_fn_retval, 789 massage_constexpr_body, cx_check_missing_mem_inits, 790 register_constexpr_fundef, explain_invalid_constexpr_fn, 791 constexpr_call_hasher::hash, constexpr_call_hasher::equal, 792 maybe_initialize_constexpr_call_table, get_function_named_in_call, 793 get_nth_callarg, lookup_parameter_binding, 794 cxx_eval_builtin_function_call, adjust_temp_type, 795 cxx_bind_parameters_in_call, push_cx_call_context, 796 pop_cx_call_context, cx_error_context, cxx_eval_call_expression, 797 reduced_constant_expression_p, verify_constant, 798 cxx_eval_unary_expression, cxx_eval_binary_expression, 799 cxx_eval_conditional_expression, cxx_eval_array_reference, 800 cxx_eval_component_reference, cxx_eval_bit_field_ref, 801 cxx_eval_logical_expression, base_field_constructor_elt, 802 cxx_eval_bare_aggregate, cxx_eval_vec_init_1, cxx_eval_vec_init, 803 cxx_fold_indirect_ref, cxx_eval_indirect_ref, non_const_var_error, 804 cxx_eval_trinary_expression, var_in_constexpr_fn, 805 cxx_eval_constant_expression, cxx_eval_outermost_constant_expr, 806 is_sub_constant_expr, cxx_constant_value, maybe_constant_value, 807 maybe_constant_init, potential_constant_expression_1, 808 potential_constant_expression, potential_rvalue_constant_expression, 809 require_potential_constant_expression, 810 require_potential_rvalue_constant_expression): Moved definitions... 811 * constexpr.c: ... here, new file. 812 * Make-lang.in: Update. 813 * config-lang.in: Likewise. 814 8152014-10-14 Jason Merrill <jason@redhat.com> 816 817 PR c++/63455 818 * parser.c (struct saved_token_sentinel): New. 819 (cp_parser_statement): Use it. 820 (cp_parser_start_tentative_firewall): New. 821 (cp_parser_end_tentative_firewall): New. 822 (cp_parser_lambda_expression): Use them. 823 (cp_parser_statement_expr): New. 824 (cp_parser_primary_expression): Use it. 825 8262014-10-14 DJ Delorie <dj@redhat.com> 827 828 * typeck.c (cp_common_type): Check for all __intN types, not just 829 __int128. 830 * decl.c (grokdeclarator): Likewise. 831 * rtti.c (emit_support_tinfos): Check for all __intN types, not just 832 __int128. 833 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Check 834 for all __intN types, not just __int128. 835 (cp_parser_simple_type_specifier): Likewise. 836 * mangle.c (integer_type_codes): Remove int128-specific codes. 837 * cp-tree.h (cp_decl_specifier_seq): Add int_n_idx to store which 838 __intN was specified. 839 * lex.c (init_reswords): Reserve all __intN keywords. 840 8412014-10-14 Marc Glisse <marc.glisse@inria.fr> 842 843 * typeck.c (cp_build_unary_op) [TRUTH_NOT_EXPR]: Accept float vectors. 844 8452014-10-13 H.J. Lu <hongjiu.lu@intel.com> 846 847 * mangle.c (mangle_conv_op_name_for_type): Cast elements to 848 unsigned long. 849 (print_template_statistics): Cast size and elements to long. 850 8512014-10-12 Trevor Saunders <tsaunders@mozilla.com> 852 853 * cp-gimplify.c, cp-tree.h, decl.c, mangle.c, name-lookup.c, 854 pt.c, semantics.c, tree.c, typeck2.c: Use hash_table instead of 855 hashtab. 856 8572014-10-10 Jason Merrill <jason@redhat.com> 858 859 PR c++/62115 860 * class.c (build_base_path): Preserve rvalueness. 861 * call.c (convert_like_real) [ck_base]: Let convert_to_base handle &/*. 862 * rtti.c (build_dynamic_cast_1): Call convert_to_reference later. 863 864 PR c++/63194 865 * method.c (defaulted_late_check): Call maybe_instantiate_noexcept. 866 867 * method.c (implicitly_declare_fn): Handle deleted lambda default 868 ctor and copy assop here. 869 * class.c (check_bases_and_members): Not here. 870 (add_implicitly_declared_members): And don't set 871 CLASSTYPE_LAZY_MOVE_ASSIGN. 872 873 * semantics.c (finish_id_expression): Check for error_mark_node. 874 8752014-10-09 Jason Merrill <jason@redhat.com> 876 877 PR c++/63207 878 * semantics.c (outer_var_p): Non-static. 879 (process_outer_var_ref): Split out from finish_id_expression. 880 * pt.c (tsubst_copy_and_build): Call them. 881 * cp-tree.h: Declare them. 882 8832014-10-09 Paolo Carlini <paolo.carlini@oracle.com> 884 885 * semantics.c (check_constexpr_ctor_body_1): New. 886 (check_constexpr_ctor_body): Use it; add bool parameter. 887 (build_data_member_initialization): Handle BIND_EXPR and 888 USING_STMT in the main conditional. 889 (build_constexpr_constructor_member_initializers): Do not 890 handle BIND_EXPR here. 891 (constexpr_fn_retval): Handle BIND_EXPR in the switch. 892 (massage_constexpr_body): Don't do it here. 893 * parser.c (cp_parser_ctor_initializer_opt_and_function_body): 894 Adjust check_constexpr_ctor_body call. 895 (cp_parser_compound_statement): Do not pedwarn for compound-statement 896 in constexpr function in C++14 mode. 897 * cp-tree.h (check_constexpr_ctor_body): Update declaration. 898 8992014-10-09 Jason Merrill <jason@redhat.com> 900 901 PR c++/63309 902 * parser.c (cp_parser_class_head): push_template_decl for members 903 of templates, too. 904 905 PR c++/63415 906 * pt.c (value_dependent_expression_p) [CONSTRUCTOR]: Check the type. 907 (iterative_hash_template_arg): Likewise. 908 909 PR c++/63437 910 * cp-tree.h (REF_PARENTHESIZED_P): Also allow INDIRECT_REF. 911 * semantics.c (force_paren_expr): And set it. 912 * typeck.c (check_return_expr): And handle it. 913 9142014-10-09 Marc Glisse <marc.glisse@inria.fr> 915 916 * decl.c (grokdeclarator): constexpr only implies const in C++11. 917 9182014-10-08 Jason Merrill <jason@redhat.com> 919 920 PR c++/63405 921 * pt.c (tsubst_pack_expansion): Limit simple expansion to type packs. 922 923 PR c++/63485 924 * tree.c (build_cplus_array_type): Look for a type with no 925 typedef-name or attributes. 926 927 * call.c (call_copy_ctor): New. 928 (build_over_call): Use it to avoid infinite recursion on invalid code. 929 9302014-10-07 Jason Merrill <jason@redhat.com> 931 932 * tree.c (cp_tree_equal) [TRAIT_EXPR]: Use cp_tree_equal for type2. 933 9342014-10-06 Edward Smith-Rowland <3dw4rd@verizon.net> 935 936 * cp/parser.c: Allow [[deprecated]] for C++11. Issue a pedwarn. 937 9382014-10-06 Paolo Carlini <paolo.carlini@oracle.com> 939 940 PR c++/55250 941 * semantics.c (check_constexpr_bind_expr_vars): New. 942 (check_constexpr_ctor_body, massage_constexpr_body): Use it. 943 (build_constexpr_constructor_member_initializers): Handle 944 BIND_EXPR in the main conditional. 945 9462014-10-02 Mark Wielaard <mjw@redhat.com> 947 948 PR debug/63239 949 * cp-objcp-common.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define. 950 (cp_function_decl_deleted_p): New prototype. 951 * cp-objcp-common.c (cp_function_deleted_p): New function. 952 9532014-10-03 Marc Glisse <marc.glisse@inria.fr> 954 955 PR c++/54427 956 PR c++/57198 957 PR c++/58845 958 * typeck.c (cp_build_binary_op): save_expr after convert to save 959 redundant operations. 960 [TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR]: Handle vectors. 961 (cp_build_unary_op) [TRUTH_NOT_EXPR]: Likewise. 962 9632014-10-03 Jason Merrill <jason@redhat.com> 964 965 * decl.c (start_decl): Complain about static/thread_local vars 966 in constexpr function. 967 (check_for_uninitialized_const_var): Also uninitialized vars. 968 * parser.c (cp_parser_jump_statement): And gotos. 969 (cp_parser_asm_operand_list): And asm. 970 (cp_parser_try_block): And try. 971 * semantics.c (ensure_literal_type_for_constexpr_object): And 972 non-literal. 973 974 * semantics.c (constexpr_fn_retval): Ignore declarations in C++14. 975 (var_in_constexpr_fn): New. 976 (cxx_eval_constant_expression): Look into DECL_INITIAL. 977 (potential_constant_expression_1): Allow constexpr-local vars. 978 979 PR c++/63362 980 * tree.c (strip_typedefs): Handle TREE_LIST. 981 9822014-10-03 Paolo Carlini <paolo.carlini@oracle.com> 983 984 * parser.c (cp_parser_assignment_expression, 985 cp_parser_constant_expression): Add default arguments. 986 (cp_parser_primary_expression, 987 cp_parser_postfix_open_square_expression, 988 cp_parser_parenthesized_expression_list, 989 cp_parser_question_colon_clause, 990 cp_parser_expression, cp_parser_constant_expression, 991 cp_parser_label_for_labeled_statement, cp_parser_static_assert, 992 cp_parser_template_argument, cp_parser_enumerator_definition, 993 cp_parser_member_declaration, cp_parser_constant_initializer, 994 cp_parser_noexcept_specification_opt, cp_parser_throw_expression, 995 cp_parser_std_attribute_spec, cp_parser_objc_message_args, 996 cp_parser_objc_class_ivars, cp_parser_omp_clause_collapse, 997 cp_parser_omp_clause_aligned, cp_parser_omp_clause_safelen, 998 cp_parser_omp_clause_simdlen, cp_parser_omp_clause_dist_schedule, 999 cp_parser_omp_for_incr, cp_parser_omp_for_loop_init, 1000 cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear): Adjust. 1001 10022014-10-02 Paolo Carlini <paolo.carlini@oracle.com> 1003 1004 PR c++/53025 1005 * cp-tree.h (struct saved_scope): Add noexcept_operand. 1006 (cp_noexcept_operand): Define. 1007 * call.c (build_over_call): Use it. 1008 * parser.c (cp_parser_unary_expression, [RID_NOEXCEPT]): Likewise. 1009 * pt.c (tsubst_copy_and_build, [NOEXCEPT_EXPR]): Likewise. 1010 10112014-10-01 Jason Merrill <jason@redhat.com> 1012 1013 PR c++/63362 1014 * method.c (constructible_expr): Handle value-init of non-class. 1015 * parser.c (cp_parser_trait_expr): Allow pack expansion. 1016 * pt.c (tsubst_copy_and_build): Handle pack expansion. 1017 1018 PR c++/63362 1019 * class.c (type_has_non_user_provided_default_constructor): Rename 1020 from type_has_user_provided_default_constructor, reverse sense. 1021 (default_init_uninitialized_part, explain_non_literal_class): Adjust. 1022 (check_bases_and_members): Set TYPE_HAS_COMPLEX_DFLT. 1023 * call.c (build_new_method_call_1): Adjust. 1024 * cp-tree.h: Adjust. 1025 * decl.c (grok_special_member_properties): Don't set 1026 TYPE_HAS_COMPLEX_DFLT. 1027 * init.c (build_value_init_noctor): Don't use 1028 type_has_user_provided_default_constructor. 1029 10302014-09-30 Jason Merrill <jason@redhat.com> 1031 1032 * cp-tree.h (cp_trait_kind): Add CPTK_IS_TRIVIALLY_ASSIGNABLE and 1033 CPTK_IS_TRIVIALLY_CONSTRUCTIBLE. 1034 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise. 1035 * parser.c (cp_parser_primary_expression): Likewise. 1036 (cp_parser_trait_expr): Likewise. Handle variadic trait. 1037 * semantics.c (trait_expr_value): Likewise. 1038 (finish_trait_expr): Likewise. 1039 (check_trait_type): Handle variadic trait. Return bool. 1040 * method.c (build_stub_object): Add rvalue reference here. 1041 (locate_fn_flags): Not here. 1042 (check_nontriv, assignable_expr, constructible_expr): New. 1043 (is_trivially_xible): New. 1044 1045 * cp-tree.h (cp_trait_kind): Add CPTK_IS_TRIVIALLY_COPYABLE. 1046 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise. 1047 * parser.c (cp_parser_primary_expression): Likewise. 1048 (cp_parser_trait_expr): Likewise. 1049 * semantics.c (trait_expr_value): Likewise. 1050 (finish_trait_expr): Likewise. 1051 1052 * method.c (build_stub_object): Use CONVERT_EXPR. 1053 * tree.c (build_dummy_object): Likewise. 1054 (is_dummy_object): Adjust. 1055 1056 * cp-tree.h (cp_trait_kind): Remove CPTK_IS_CONVERTIBLE_TO. 1057 * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise. 1058 * semantics.c (trait_expr_value): Likewise. 1059 (finish_trait_expr): Likewise. 1060 * parser.c (cp_parser_primary_expression): Likewise. 1061 (cp_parser_trait_expr): Likewise. Remove redundant grokdeclarator. 1062 10632014-09-30 Manuel López-Ibáñez <manu@gcc.gnu.org> 1064 1065 PR c++/16564 1066 * error.c (print_instantiation_context): Delete. 1067 * typeck2.c (build_x_arrow): Record location when pushing 1068 template instantiation. 1069 * pt.c (push_tinst_level): Make it a wrapper around ... 1070 (push_tinst_level_loc): ... this. New function. Make excessive 1071 template instantiation depth a fatal error. Record location. Use 1072 bool as return type. 1073 (instantiate_pending_templates): Make excessive 1074 template instantiation depth a fatal error. 1075 (problematic_instantiation_changed): Use bool as return type. 1076 * cp-tree.h (print_instantiation_context): Delete. 1077 (push_tinst_level): Update declaration. 1078 (problematic_instantiation_changed): Likewise. 1079 (push_tinst_level_loc): New. 1080 10812014-09-29 Richard Biener <rguenther@suse.de> 1082 1083 * typeck.c (enum_cast_to_int): Use CONVERT_EXPR_P to check 1084 for conversions. 1085 10862014-09-26 Jason Merrill <jason@redhat.com> 1087 1088 * mangle.c (find_substitution): Use write_abi_tags. 1089 10902014-09-25 Marek Polacek <polacek@redhat.com> 1091 1092 PR c++/61945 1093 * class.c (warn_hidden): Check for FUNCTION_DECL. 1094 10952014-09-25 Jakub Jelinek <jakub@redhat.com> 1096 1097 PR c++/63249 1098 * semantics.c (handle_omp_array_sections_1): Call mark_rvalue_use 1099 on low_bound and length. 1100 11012014-09-24 Aldy Hernandez <aldyh@redhat.com> 1102 1103 * class.c, decl.c, optimize.c: Rename all instances of 1104 DECL_ABSTRACT to DECL_ABSTRACT_P. 1105 11062014-09-24 Marek Polacek <polacek@redhat.com> 1107 1108 PR c/61405 1109 PR c/53874 1110 * semantics.c (finish_switch_cond): Call unlowered_expr_type. 1111 * tree.c (bot_manip): Add default case. 1112 * parser.c (cp_parser_primary_expression): Cast the controlling 1113 expression of a switch to an int. 1114 (cp_parser_unqualified_id): Likewise. 1115 11162014-09-23 Paolo Carlini <paolo.carlini@oracle.com> 1117 1118 PR c++/61857 1119 * parser.c (cp_parser_skip_to_closing_square_bracket, 1120 cp_parser_array_designator_p): New. 1121 (cp_parser_initializer_list): Use the latter. 1122 11232014-09-22 Jason Merrill <jason@redhat.com> 1124 1125 * semantics.c (finish_non_static_data_member): In diagnostic, give 1126 error at point of use and note at point of declaration. 1127 1128 PR c++/63320 1129 PR c++/60463 1130 PR c++/60755 1131 * lambda.c (maybe_resolve_dummy, lambda_expr_this_capture): Handle 1132 not finding 'this'. 1133 11342014-09-22 Paolo Carlini <paolo.carlini@oracle.com> 1135 1136 PR c++/62219 1137 * pt.c (check_default_tmpl_args): Check LAMBDA_FUNCTION_P. 1138 11392014-09-22 Jason Merrill <jason@redhat.com> 1140 1141 * decl.c (poplevel): Don't warn about unused vars in template scope. 1142 * error.c (dump_decl): Handle variable templates. 1143 11442014-09-20 Jason Merrill <jason@redhat.com> 1145 1146 PR c++/62017 1147 * decl.c (begin_destructor_body): Only clobber the as-base part of 1148 *this. 1149 11502014-09-19 Jason Merrill <jason@redhat.com> 1151 1152 PR c++/61392 1153 * mangle.c (write_expression): Use unresolved-name mangling for 1154 DR850 case. 1155 1156 PR c++/61465 1157 * call.c (convert_like_real) [ck_identity]: Call mark_rvalue_use 1158 after pulling out an element from a CONSTRUCTOR. 1159 11602014-09-18 Jakub Jelinek <jakub@redhat.com> 1161 1162 PR c++/63248 1163 * semantics.c (finish_omp_clauses): Don't call cp_omp_mappable_type 1164 on type of type dependent expressions, and don't call it if 1165 handle_omp_array_sections has kept TREE_LIST because something 1166 was type dependent. 1167 * pt.c (tsubst_expr) <case OMP_TARGET, case OMP_TARGET_DATA>: 1168 Use keep_next_level, begin_omp_structured_block and 1169 finish_omp_structured_block instead of push_stmt_list and 1170 pop_stmt_list. 1171 11722014-09-18 Paolo Carlini <paolo.carlini@oracle.com> 1173 1174 PR c++/62232 1175 * class.c (finish_struct_1): Do not -Wnon-virtual-dtor warn 1176 for final class types. 1177 11782014-09-15 Jason Merrill <jason@redhat.com> 1179 1180 * pt.c (lookup_template_class_1): Splice out abi_tag attribute if 1181 necessary. Call inherit_targ_abi_tags here. 1182 * class.c (check_bases_and_members): Not here. 1183 (inherit_targ_abi_tags): Check CLASS_TYPE_P. 1184 * cp-tree.h: Declare inherit_targ_abi_tags. 1185 11862014-09-15 Ville Voutilainen <ville.voutilainen@gmail.com> 1187 1188 Do not diagnose lambda default arguments in c++14 modes. 1189 * parser.c (cp_parser_lambda_declarator_opt): Make the pedwarn 1190 conditional. 1191 11922014-09-15 Jakub Jelinek <jakub@redhat.com> 1193 1194 * Make-lang.in (check_g++_parallelize): Change to just an upper bound 1195 number. 1196 11972014-09-13 Marek Polacek <polacek@redhat.com> 1198 1199 PR c++/60862 1200 * parser.c (cp_parser_postfix_expression) <case CPP_OPEN_PAREN>: Set 1201 location of a call expression. 1202 12032014-09-11 Jason Merrill <jason@redhat.com> 1204 1205 PR c++/63201 1206 * decl.c (start_decl): Handle specialization of member variable 1207 template. 1208 * pt.c (check_explicit_specialization): Adjust error. 1209 12102014-09-11 Paolo Carlini <paolo.carlini@oracle.com> 1211 1212 PR c++/61489 1213 * typeck2.c (process_init_constructor_record): Do not warn about 1214 missing field initializer if EMPTY_CONSTRUCTOR_P (init). 1215 12162014-09-11 Jason Merrill <jason@redhat.com> 1217 1218 PR c++/63139 1219 * pt.c (tsubst_pack_expansion): Simplify substitution into T.... 1220 (tsubst): Don't throw away PACK_EXPANSION_EXTRA_ARGS. 1221 12222014-09-10 Jason Merrill <jason@redhat.com> 1223 1224 PR c++/61659 1225 * decl.c (grokfndecl): Don't set DECL_COMDAT on static inlines. 1226 (duplicate_decls, start_decl): Likewise. 1227 * pt.c (check_explicit_specialization): Likewise. 1228 (push_template_decl_real): Or static templates. 1229 12302014-09-08 Jason Merrill <jason@redhat.com> 1231 1232 * typeck.c (build_class_member_access_expr): Move 1233 -Winvalid-offsetof code... 1234 * semantics.c (finish_offsetof): ...here. 1235 * parser.c (cp_parser_builtin_offsetof): Remember the location of 1236 the type argument. 1237 * pt.c (tsubst_copy_and_build) [OFFSETOF_EXPR]: Preserve it. 1238 1239 PR c++/62255 1240 * pt.c (instantiate_decl): Handle recursive instantiation of 1241 static data member. 1242 12432014-09-05 Jason Merrill <jason@redhat.com> 1244 1245 PR c++/62659 1246 * semantics.c (potential_constant_expression_1): Handle un-folded 1247 pointer to member constants. 1248 12492014-09-04 Markus Trippelsdorf <markus@trippelsdorf.de> 1250 1251 PR ipa/61659 1252 * decl.c (duplicate_decls): Check DECL_DECLARED_INLINE_P on 1253 newdecl, not olddecl. 1254 12552014-09-02 Paolo Carlini <paolo.carlini@oracle.com> 1256 1257 DR 1453 1258 * class.c (check_field_decls): A class of literal type cannot have 1259 volatile non-static data members and base classes. 1260 (explain_non_literal_class): Update. 1261 12622014-09-02 Jakub Jelinek <jakub@redhat.com> 1263 Balaji V. Iyer <balaji.v.iyer@intel.com> 1264 Igor Zamyatin <igor.zamyatin@intel.com> 1265 1266 * cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Loc definition 1267 simplified. 1268 * parser.c (cp_parser_cilk_for): New function. 1269 (cp_parser_cilk_grainsize): Likewise. 1270 (cp_parser_statement): Added RID_CILK_FOR case. 1271 (cp_parser_omp_for_cond): Added CILK_FOR check. 1272 (cp_parser_omp_for_loop_init): Change function argument to accept 1273 tree_code instead just a bool flag; change the check to use that 1274 tree_code; check for initialization declaration in case of Cilk_for. 1275 (cp_parser_omp_for_loop): Added checks for CILK_FOR and RID_CILK_FOR; 1276 changed call to cp_parser_omp_for_loop_init according new arguments' 1277 list. 1278 (cp_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case. 1279 * pt.c (tsubst_expr): Added CILK_FOR case. 1280 * semantics.c: Include convert.h. 1281 (finish_omp_clauses): Properly handle OMP_CLAUSE_SCHEDULE_CILKFOR 1282 case; added OMP_CLAUSE__CILK_FOR_COUNT_. 1283 (handle_omp_for_class_iterator): New argument lastp and its usage; 1284 added NE_EXPR case. 1285 (finish_omp_for): Changed call to handle_omp_for_class_iterator 1286 according new arguments' list; in case of Cilk_for save very first 1287 decl and create empty stmt_list block; use block to build correct 1288 statement tree. 1289 12902014-08-31 Jason Merrill <jason@redhat.com> 1291 1292 PR c++/62302 1293 * optimize.c (cdtor_comdat_group): Just look at the 1294 DECL_ASSEMBLER_NAME of the 'tors. 1295 12962014-08-27 Paolo Carlini <paolo.carlini@oracle.com> 1297 1298 PR c++/52892 1299 * semantics.c (cxx_eval_call_expression): Use STRIP_NOPS on the 1300 result of cxx_eval_constant_expression. 1301 13022014-08-26 Jason Merrill <jason@redhat.com> 1303 1304 PR c++/58624 1305 * pt.c (tsubst_decl) [VAR_DECL]: Copy TLS model. 1306 (tsubst_copy_and_build) [VAR_DECL]: Use TLS wrapper. 1307 * semantics.c (finish_id_expression): Don't call TLS wrapper in a 1308 template. 1309 13102014-08-25 Jason Merrill <jason@redhat.com> 1311 1312 * pt.c (check_explicit_specialization): Don't complain about 1313 non-template variable. 1314 (template_for_substitution): Allow variable templates. 1315 (check_template_variable): Fix logic for member var template. 1316 * decl.c (start_decl): Don't complain about extra template header 1317 here. 1318 1319 * decl.c (start_decl): Look through member variable template. 1320 * pt.c (tsubst_decl) [VAR_DECL]: Handle member variable templates. 1321 * decl2.c (grokfield): Set DECL_CONTEXT earlier on 1322 variables. 1323 13242014-08-25 Paolo Carlini <paolo.carlini@oracle.com> 1325 1326 PR c++/34938 1327 * cp-tree.h (TFF_POINTER): Add. 1328 * cxx-pretty-print.h (pp_cxx_cv_qualifiers): Forward the third 1329 argument too. 1330 * error.c (dump_type_suffix): Actually print the const and noreturn 1331 attribute when appropriate. 1332 13332014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net> 1334 1335 * decl.c (compute_array_index_type, grokdeclarator, 1336 undeduced_auto_decl): Change from cxx1y to cxx14. 1337 *lambda.c(add_capture()): Change error message from C++1y to C++14. 1338 * parser.c (cp_parser_unqualified_id, cp_parser_pseudo_destructor_name, 1339 cp_parser_lambda_introducer, cp_parser_lambda_declarator_opt, 1340 cp_parser_decltype, cp_parser_conversion_type_id, 1341 cp_parser_simple_type_specifier, cp_parser_type_id_1, 1342 cp_parser_template_type_arg, cp_parser_std_attribute, 1343 cp_parser_template_declaration_after_export): Ditto. 1344 * pt.c (tsubst): Ditto. 1345 * semantics.c (force_paren_expr, finish_decltype_type): Ditto. 1346 * tree.c: Change comment. 1347 * typeck.c (comp_template_parms_position, cxx_sizeof_or_alignof_type, 1348 cp_build_addr_expr_1, maybe_warn_about_useless_cast): Ditto. 1349 13502014-08-23 Jason Merrill <jason@redhat.com> 1351 1352 Allow non-constexpr variable templates. 1353 * decl2.c (note_variable_template_instantiation): New. 1354 * cp-tree.h: Declare it. 1355 * pt.c (instantiate_decl): Call it. 1356 (push_template_decl_real): Allow non-constexpr variable templates. 1357 * semantics.c (finish_id_expression): Mark the variable template 1358 instantiation as used. 1359 * mangle.c (write_mangled_name): Variable template instantiations 1360 are mangled. 1361 * parser.c (cp_parser_init_declarator): Complain about 1362 non-function implicit templates. 1363 13642014-08-22 Marek Polacek <polacek@redhat.com> 1365 1366 PR c++/62199 1367 * parser.c (cp_parser_binary_expression): Check each LHS if it's 1368 preceded with logical not. Adjust call to 1369 warn_logical_not_parentheses. 1370 13712014-08-22 Manuel López-Ibáñez <manu@gcc.gnu.org> 1372 1373 PR c++/57709 1374 * name-lookup.c (pushdecl_maybe_friend_1): Do not warn if a 1375 declaration shadows a function declaration, unless the former 1376 declares a function, pointer to function or pointer to member 1377 function, because this is a common and valid case in real-world 1378 code. 1379 * cp-tree.h (TYPE_PTRFN_P,TYPE_REFFN_P,TYPE_PTRMEMFUNC_P): 1380 Improve description. 1381 13822014-08-22 Jason Merrill <jason@redhat.com> 1383 1384 PR c++/62129 1385 * class.c (outermost_open_class): Fix logic. 1386 * decl.c (complete_vars): Fix logic. 1387 13882014-08-22 Jason Merrill <jason@redhat.com> 1389 1390 PR c++/62129 1391 * class.c (outermost_open_class): New. 1392 * cp-tree.h: Declare it. 1393 * decl.c (maybe_register_incomplete_var): Use it. 1394 (complete_vars): Handle any constant variable. 1395 * expr.c (cplus_expand_constant): Handle CONSTRUCTOR. 1396 13972014-08-22 Igor Zamyatin <igor.zamyatin@intel.com> 1398 1399 PR other/62008 1400 * cp-array-notation.c (build_array_notation_ref): Added correct 1401 handling of case with incorrect array. 1402 14032014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org> 1404 1405 PR fortran/44054 1406 * error.c (cp_diagnostic_finalizer): Delete. 1407 (init_error): Do not set diagnostic_finalizer here. 1408 14092014-08-19 Marek Polacek <polacek@redhat.com> 1410 1411 PR c++/62153 1412 * call.c (build_new_op_1): Remember the type of arguments for 1413 a comparison. If either operand of a comparison is a boolean 1414 expression, call maybe_warn_bool_compare. 1415 14162014-08-19 Jason Merrill <jason@redhat.com> 1417 1418 PR tree-optimization/62091 1419 * decl2.c (decl_needed_p): Return true for virtual functions when 1420 devirtualizing. 1421 1422 PR lto/53808 1423 PR c++/61659 1424 * decl.c (maybe_commonize_var): Don't use DECL_COMDAT to trigger 1425 comdat_linkage. 1426 14272014-08-19 Gerald Pfeifer <gerald@pfeifer.com> 1428 1429 * class.c (contains_empty_class_p): Remove. 1430 14312014-08-18 Paolo Carlini <paolo.carlini@oracle.com> 1432 1433 * parser.c (cp_parser_expression): Add default arguments. 1434 (cp_parser_primary_expression, cp_parser_postfix_expression, 1435 cp_parser_array_notation, cp_parser_postfix_open_square_expression, 1436 cp_parser_unary_expression, cp_parser_direct_new_declarator, 1437 cp_parser_question_colon_clause, cp_parser_assignment_operator_opt, 1438 cp_parser_lambda_body, cp_parser_expression_statement, 1439 cp_parser_condition, cp_parser_c_for, cp_parser_range_for, 1440 cp_parser_iteration_statement, cp_parser_jump_statement, 1441 cp_parser_decltype_expr, cp_parser_noexcept_specification_opt, 1442 cp_parser_asm_operand_list, cp_parser_objc_message_receiver, 1443 cp_parser_objc_synchronized_statement, cp_parser_objc_throw_statement, 1444 cp_parser_omp_var_list_no_open, cp_parser_omp_clause_num_threads, 1445 cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit, 1446 cp_parser_omp_clause_linear, cp_parser_omp_clause_device, 1447 cp_parser_omp_atomic, cp_parser_omp_for_loop_init, 1448 cp_parser_omp_for_loop, cp_parser_omp_declare_reduction_exprs, 1449 cp_parser_transaction_expression): Adjust. 1450 14512014-08-15 Jason Merrill <jason@redhat.com> 1452 1453 PR c++/61566 1454 * pt.c (lookup_template_class_1): Revert recent change. 1455 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Revert recent change. 1456 1457 PR c++/61566 1458 * pt.c (instantiate_class_template_1): Ignore lambda on 1459 CLASSTYPE_DECL_LIST. 1460 (push_template_decl_real): A lambda is not primary. 1461 (lookup_template_class_1): Don't look for a lambda partial 1462 instantiation. 1463 * lambda.c (maybe_add_lambda_conv_op): Distinguish between being 1464 currently in a function and the lambda living in a function. 1465 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): False for lambda. 1466 14672014-08-15 Richard Biener <rguenther@suse.de> 1468 Jason Merrill <jason@redhat.com> 1469 1470 PR bootstrap/62077 1471 * tree.c (build_min_array_type, set_array_type_canon): Split out... 1472 (build_cplus_array_type): ...from here. Only call build_array_type 1473 for main variants. 1474 14752014-08-15 Paolo Carlini <paolo.carlini@oracle.com> 1476 1477 PR c++/62072 1478 Revert: 1479 2014-07-09 Paolo Carlini <paolo.carlini@oracle.com> 1480 1481 DR 1584 1482 PR c++/57466 1483 * pt.c (check_cv_quals_for_unify): Implement resolution, disregard 1484 cv-qualifiers of function types. 1485 14862014-08-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 1487 1488 * call.c (build_conditional_expr_1): Use OPT_Wextra in warning. 1489 14902014-08-14 Paolo Carlini <paolo.carlini@oracle.com> 1491 1492 * typeck.c (composite_pointer_type, cxx_sizeof_or_alignof_type, 1493 cp_build_array_ref, cp_build_function_call_vec): When a 1494 pedwarn is suppressed under SFINAE, return error_mark_node. 1495 1496 * typeck.c (cxx_sizeof_or_alignof_type): Fix complain & 1497 tf_warning_or_error, where complain is a bool, glitch. 1498 14992014-08-14 Ville Voutilainen <ville.voutilainen@gmail.com> 1500 1501 PR c++/62101 1502 * decl.c (grokdeclarator): Move the check for friend initializers.. 1503 * decl2.c (grokfield) ..here. Postpone early return for friends 1504 until after the initializer check. 1505 15062014-08-14 Paolo Carlini <paolo.carlini@oracle.com> 1507 1508 PR c++/54377 1509 * pt.c (coerce_template_parms): Improve error message vs default 1510 arguments. 1511 15122014-08-14 Paolo Carlini <paolo.carlini@oracle.com> 1513 1514 * parser.c (cp_parser_init_declarator): Remove redundant check of 1515 decl_specifiers->type. 1516 15172014-08-13 Jason Merrill <jason@redhat.com> 1518 1519 * call.c (build_x_va_arg): Support passing non-POD through .... 1520 (convert_arg_to_ellipsis): Likewise. 1521 15222014-08-13 Andrew Sutton <andrew.n.sutton@gmail.com> 1523 1524 * pt.c (lookup_template_variable): Make dependent variable templates 1525 have unknown type. 1526 15272014-08-13 Paolo Carlini <paolo.carlini@oracle.com> 1528 1529 * parser.c (cp_parser_elaborated_type_specifier): Handle 1530 specially cp_parser_template_id returning a BASELINK. 1531 15322014-08-13 Paolo Carlini <paolo.carlini@oracle.com> 1533 1534 * parser.c (cp_parser_diagnose_invalid_type_name, 1535 cp_parser_make_typename_type): Remove scope parameter. 1536 (cp_parser_parse_and_diagnose_invalid_type_name, 1537 cp_parser_elaborated_type_specifier): Adjust calls. 1538 15392014-08-12 Ville Voutilainen <ville.voutilainen@gmail.com> 1540 1541 Reject virt-specifiers on friends and member templates 1542 * friend.c (do_friend): Diagnose virt-specifiers. 1543 * pt.c (push_template_decl_real): Diagnose virt-specifiers. 1544 15452014-08-09 Paolo Carlini <paolo.carlini@oracle.com> 1546 1547 * typeck2.c (check_narrowing): Add tsubst_flags_t parameter, change 1548 return type to bool; in C++11 for constants give errors, not pedwarns. 1549 * cp-tree.h (check_narrowing): Adjust declaration. 1550 * call.c (convert_like_real): Update calls. 1551 * semantics.c (finish_compound_literal): Likewise. 1552 15532014-08-08 Jason Merrill <jason@redhat.com> 1554 1555 * pt.c (lookup_template_class_1): Copy abi_tag. 1556 15572014-08-08 Kai Tietz <ktietz@redhat.com> 1558 1559 * semantics.c (expand_or_defer_fn_1): Check for keep-inline-dllexport 1560 that we operate on a true inline. 1561 15622014-08-07 Trevor Saunders <tsaunders@mozilla.com> 1563 1564 * class.c, cp-gimplify.c, decl.c, decl2.c, error.c, method.c, 1565 optimize.c, pt.c, semantics.c: Remove includes of pointer-set.h. 1566 15672014-08-07 Paolo Carlini <paolo.carlini@oracle.com> 1568 1569 PR c++/51312 1570 * decl.c (build_enumerator): Handle class types with conversion 1571 operators via perform_implicit_conversion_flags and 1572 build_expr_type_conversion. 1573 1574 * cvt.c (build_expr_type_conversion): Replace pair of errors 1575 with error + inform. 1576 15772014-08-07 Jason Merrill <jason@redhat.com> 1578 1579 PR c++/62043 1580 * parser.c (c_parse_file): Change sorry to fatal_error. 1581 1582 PR c++/61959 1583 * semantics.c (cxx_eval_bare_aggregate): Handle POINTER_PLUS_EXPR. 1584 15852014-08-07 Trevor Saunders <tsaunders@mozilla.com> 1586 1587 * cp-tree.h, pt.c: Use hash_map instead of pointer_map. 1588 15892014-08-06 Jason Merrill <jason@redhat.com> 1590 1591 * init.c (build_vec_init): Fix constant initialization of 1592 trailing elements. 1593 (build_value_init_noctor): Call maybe_constant_init. 1594 * semantics.c (maybe_constant_init): See through EXPR_STMT and 1595 conversion to void. 1596 1597 PR c++/60417 1598 * init.c (build_vec_init): Reorganize earlier change a bit. 1599 1600 PR c++/61994 1601 * init.c (build_vec_init): Leave atype an ARRAY_TYPE 1602 if we're just returning an INIT_EXPR. 1603 16042014-08-06 Jason Merrill <jason@redhat.com> 1605 Braden Obrzut <admin@maniacsvault.net> 1606 1607 * pt.c (check_explicit_specialization): Don't test 1608 DECL_DECLARED_INLINE_P for a variable template. 1609 16102014-08-06 Paolo Carlini <paolo.carlini@oracle.com> 1611 1612 PR c++/43906 1613 * typeck.c (cp_build_binary_op): Extend to more cases the 1614 -Waddress warning. 1615 16162014-08-01 Braden Obrzut <admin@maniacsvault.net> 1617 1618 Implement constexpr variable templates 1619 * decl.c (grokvardecl): Handle specializations of variable templates. 1620 (grokdeclarator): Handle variable template id expressions and NULL_TREE 1621 return from grokvardecl. 1622 * decl2.c (check_member_template): Allow declaration of template member 1623 variables. 1624 * parser.c (cp_parser_template_id): Build a TEMPLATE_ID_EXPR for 1625 variable templates. 1626 * pt.c (check_template_variable): Accept variable temploids at 1627 non-class scope. 1628 (push_template_decl_real): The current instantiation of a template 1629 can be a VAR_DECL. 1630 (determine_specialization): Accept variable templates. 1631 (check_explicit_specialization): Handle and check for malformed 1632 variable template specializations. 1633 (lookup_template_variable): New. 1634 (tsubst_decl): Handle variable template specializations. 1635 (do_decl_instantiation): Handle template variables. 1636 (instantiate_decl): Handle template variables. 1637 * semantics.c (finish_template_variable): New. 1638 (finish_id_expression): Instantiate variable templates. 1639 * cp-tree.h (variable_template_p): New. 1640 16412014-08-02 Paolo Carlini <paolo.carlini@oracle.com> 1642 1643 PR c++/15339 1644 * decl.c (check_redeclaration_no_default_args): New. 1645 (duplicate_decls): Use it, handle default arguments 1646 in redeclarations of function templates. 1647 16482014-08-02 Trevor Saunders <tsaunders@mozilla.com> 1649 1650 * optimize.c, semantics.c: Use hash_map instead of pointer_map. 1651 16522014-08-02 Trevor Saunders <tsaunders@mozilla.com> 1653 1654 * class.c, cp-gimplify.c, cp-tree.h, decl.c, decl2.c, error.c, 1655 method.c, name-lookup.c, pt.c, semantics.c, tree.c: Use hash_set 1656 instead of pointer_set. 1657 16582014-08-01 Jason Merrill <jason@redhat.com> 1659 1660 PR c++/60417 1661 * init.c (build_vec_init): Set CONSTRUCTOR_IS_DIRECT_INIT on 1662 init-list for trailing elements. 1663 * typeck2.c (process_init_constructor_array): Likewise. 1664 16652014-08-01 Paolo Carlini <paolo.carlini@oracle.com> 1666 1667 DR 217 again 1668 * decl.c (duplicate_decls): Handle static member functions too. 1669 16702014-08-01 Igor Zamyatin <igor.zamyatin@intel.com> 1671 1672 * cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint 1673 in error output. 1674 16752014-08-01 Igor Zamyatin <igor.zamyatin@intel.com> 1676 1677 PR other/61963 1678 * parser.c (cp_parser_array_notation): Added check for array_type. 1679 16802014-08-01 Igor Zamyatin <igor.zamyatin@intel.com> 1681 1682 PR middle-end/61455 1683 * cp-array-notation.c (expand_array_notation_exprs): Handling of 1684 DECL_EXPR improved. Changed handling for INIT_EXPR. 1685 16862014-08-01 Paolo Carlini <paolo.carlini@oracle.com> 1687 1688 * pt.c (lookup_template_class_1): Use DECL_TYPE_TEMPLATE_P. 1689 16902014-08-01 Jakub Jelinek <jakub@redhat.com> 1691 1692 * cp-gimplify.c (cp_genericize_r): For -fsanitize=null and/or 1693 -fsanitize=alignment call ubsan_maybe_instrument_reference 1694 for casts to REFERENCE_TYPE and ubsan_maybe_instrument_member_call 1695 for calls to member functions. 1696 16972014-07-31 Marc Glisse <marc.glisse@inria.fr> 1698 1699 PR c++/60517 1700 * typeck.c (maybe_warn_about_returning_address_of_local): Return 1701 whether it is returning the address of a local variable. 1702 (check_return_expr): Return 0 instead of the address of a local 1703 variable. 1704 17052014-07-30 Jason Merrill <jason@redhat.com> 1706 1707 PR lto/53808 1708 PR c++/61659 1709 * pt.c (push_template_decl_real): Don't set DECL_COMDAT on friends. 1710 17112014-07-30 Paolo Carlini <paolo.carlini@oracle.com> 1712 1713 PR c++/57397 1714 * pt.c (unify_arity): Add boolean parameter. 1715 (unify_too_few_arguments): Likewise. 1716 (type_unification_real): Diagnose correctly insufficient 1717 arguments in the presence of trailing variadic parameters; 1718 deducing multiple trailing packs as empty is fine. 1719 17202014-07-30 Jason Merrill <jason@redhat.com> 1721 1722 PR c++/61659 1723 PR c++/61687 1724 Revert: 1725 * decl2.c (mark_all_virtuals): New variable. 1726 (maybe_emit_vtables): Check it instead of flag_devirtualize. 1727 (cp_write_global_declarations): Set it and give helpful diagnostic 1728 if it introduces errors. 1729 * class.c (finish_struct_1): Check it. 1730 1731 PR lto/53808 1732 PR c++/61659 1733 * pt.c (push_template_decl_real): Set DECL_COMDAT on templates. 1734 (check_explicit_specialization): Clear it on specializations. 1735 * decl.c (duplicate_decls, start_decl): Likewise. 1736 (grokmethod, grokfndecl): Set DECL_COMDAT on inlines. 1737 * method.c (implicitly_declare_fn): Set DECL_COMDAT. Determine 1738 linkage after setting the appropriate flags. 1739 * tree.c (decl_linkage): Don't check DECL_COMDAT. 1740 * decl2.c (mark_needed): Mark clones. 1741 (import_export_decl): Not here. 1742 17432014-07-25 Edward Smith-Rowland <3dw4rd@verizon.net> 1744 1745 Implement N4051 - Allow typename in a template template parameter 1746 * parser.c (cp_parser_type_parameter_key): New funtion; 1747 (cp_parser_token_is_type_parameter_key): Ditto; 1748 (cp_parser_type_parameter): Look for type-parameter-key for all versions 1749 but pedwarn for less than cxx1z. 1750 17512014-07-17 Paolo Carlini <paolo.carlini@oracle.com> 1752 1753 PR c++/50961 1754 * call.c (standard_conversion): Use resolve_nondeduced_context 1755 for type_unknown_p (EXPR) && TREE_CODE (TO) == BOOLEAN_TYPE. 1756 17572014-07-17 Paolo Carlini <paolo.carlini@oracle.com> 1758 1759 PR c++/61804 1760 * parser.c (cp_parser_tokens_start_cast_expression): Return -1 1761 for '++' and '--'. 1762 17632014-07-15 Jason Merrill <jason@redhat.com> 1764 1765 PR c++/61811 1766 * decl2.c (maybe_emit_vtables): Return true for -fuse-all-virtuals. 1767 1768 PR c++/60848 1769 PR c++/61723 1770 * call.c (is_std_init_list): Don't check CLASSTYPE_TEMPLATE_INFO. 1771 * class.c (finish_struct): Reject invalid definition of 1772 std::initializer_list. 1773 17742014-07-15 Paolo Carlini <paolo.carlini@oracle.com> 1775 1776 * call.c (convert_like_real): Call print_z_candidate and inform only 1777 if permerror returns true. 1778 17792014-07-14 Jan Hubicka <hubicka@ucw.cz> 1780 1781 * class.c (build_clone): Do not clear assembler names of 1782 templates. 1783 * decl.c (cp_tree_node_structure): Add TEMPLATE_DECL. 1784 * cp-objcp-common.c (cp_tree_size): Add TEMPLATE_DECL 1785 as a special case return sizeof (struct tree_decl_non_common) 1786 for other decls. 1787 (cp_common_init_ts): Do not initialize NAMESPACE_DECL; 1788 initialize TEMPLATE_DECL as MARK_TS_DECL_COMMON. 1789 * cp/cp-tree.h (tree_template_decl): New structure. 1790 (cp_tree_node_structure_enum): Add TS_CP_TEMPLATE_DECL. 1791 (union cp_lang_tree_node): Add template_decl. 1792 (DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT): Update. 1793 17942014-07-14 Jason Merrill <jason@redhat.com> 1795 1796 PR c++/61445 1797 PR c++/56947 1798 * pt.c (instantiate_decl): Don't check defer_ok for local class 1799 members. 1800 18012014-07-14 Jakub Jelinek <jakub@redhat.com> 1802 1803 PR middle-end/61294 1804 * cp-tree.h (LITERAL_ZERO_P): Define. 1805 * parser.c (cp_parser_parenthesized_expression_list): Add 1806 want_literal_zero_p argument, if true, for literal zeros 1807 insert INTEGER_CSTs with LITERAL_ZERO_P flag set. 1808 (cp_parser_postfix_expression): Adjust 1809 cp_parser_parenthesized_expression_list caller, handle 1810 -Wmemset-transposed-args. 1811 (literal_zeros): New variable. 1812 18132014-07-13 Jason Merrill <jason@redhat.com> 1814 1815 PR c++/58511 1816 * semantics.c (is_instantiation_of_constexpr): Return true for 1817 defaulted functions, too. 1818 (explain_invalid_constexpr_fn): Only use 1819 explain_implicit_non_constexpr if !DECL_DECLARED_CONSTEXPR_P. 1820 * method.c (explain_implicit_non_constexpr): Pass 1821 DECL_INHERITED_CTOR_BASE to explain_implicit_non_constexpr. 1822 1823 PR c++/58611 1824 * decl.c (check_initializer): Don't finish_compound_literal 1825 on erroneous constexpr init. 1826 1827 PR c++/58612 1828 * tree.c (bot_replace): Only replace a dummy 'this' parm. 1829 1830 PR c++/60628 1831 * decl.c (create_array_type_for_decl): Only check for auto once. 1832 1833 PR c++/58636 1834 * call.c (build_list_conv): Don't try to build a list of references. 1835 18362014-07-13 Edward Smith-Rowland <3dw4rd@verizon.net> 1837 1838 PR C++/60209 - Declaration of user-defined literal operator cause error 1839 * parser.c (cp_parser_operator): Fold treatment of strings 1840 and user-defined string literals. Use the full string parser. 1841 (cp_parser_string_literal): Add flag to not look for literal operator. 1842 18432014-07-11 Jason Merrill <jason@redhat.com> 1844 1845 PR c++/22434 1846 PR c++/61288 1847 * call.c (build_conditional_expr_1): Avoid reading freed memory. 1848 18492014-07-11 Paolo Carlini <paolo.carlini@oracle.com> 1850 1851 PR c++/53159 1852 * call.c (build_user_type_conversion_1): Copy LOOKUP_NO_NARROWING 1853 into convflags. 1854 * decl.c (check_initializer): Don't call check_narrowing here, 1855 set LOOKUP_NO_NARROWING. 1856 * typeck2.c (digest_init_r): Likewise. 1857 18582014-07-10 Jason Merrill <jason@redhat.com> 1859 1860 PR c++/61661 1861 * semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR. 1862 1863 PR c++/61659 1864 PR c++/61687 1865 * decl2.c (mark_all_virtuals): New variable. 1866 (maybe_emit_vtables): Check it instead of flag_devirtualize. 1867 (cp_write_global_declarations): Set it and give helpful diagnostic 1868 if it introduces errors. 1869 * class.c (finish_struct_1): Check it. 1870 * decl.c (grokdeclarator): Clear virtualp after 'virtual auto' error. 1871 18722014-07-09 Paolo Carlini <paolo.carlini@oracle.com> 1873 1874 PR c++/60686 1875 * decl.c (grokdeclarator): Adjust error messages about 'explicit' 1876 outside class declaration, in friend declaration, and neither on 1877 constructor nor conversion operator. 1878 18792014-07-09 Paolo Carlini <paolo.carlini@oracle.com> 1880 1881 DR 1584 1882 PR c++/57466 1883 * pt.c (check_cv_quals_for_unify): Implement resolution, disregard 1884 cv-qualifiers of function types. 1885 18862014-07-09 Andrew Sutton <andrew.n.sutton@gmail.com> 1887 Paolo Carlini <paolo.carlini@oracle.com> 1888 1889 PR c++/59361 1890 * parser.c (cp_parser_tokens_start_cast_expression): Return 0 for 1891 CPP_ELLIPSIS too. 1892 18932014-07-07 Paolo Carlini <paolo.carlini@oracle.com> 1894 1895 * class.c (check_for_override): Wrap the 'final' and 'override' 1896 keywords in %< and %>. 1897 18982014-07-06 Marek Polacek <polacek@redhat.com> 1899 1900 PR c/6940 1901 * cp-tree.h (DECL_ARRAY_PARAMETER_P): Define. 1902 * decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P. 1903 * typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array 1904 function parameter. 1905 19062014-07-02 Paolo Carlini <paolo.carlini@oracle.com> 1907 1908 * pt.c (convert_template_argument): Use inform instead of error in 1909 three places. 1910 19112014-06-30 Edward Smith-Rowland <3dw4rd@verizon.net> 1912 1913 PR c++/58781 1914 PR c++/60249 1915 PR c++/59867 1916 * parser.c (cp_parser_userdef_string_literal): Take a tree 1917 not a cp_token*. 1918 (cp_parser_string_literal): Don't hack the token stream. 1919 19202014-06-30 Jason Merrill <jason@redhat.com> 1921 1922 PR c++/61659 1923 PR lto/53808 1924 * decl2.c (maybe_emit_vtables): Mark all vtable entries if 1925 devirtualizing. 1926 * init.c (build_vtbl_address): Don't mark destructor. 1927 * class.c (finish_struct_1): Add all classes to keyed_classes 1928 if devirtualizing. 1929 1930 PR c++/61647 1931 * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE. 1932 1933 PR c++/61566 1934 * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL. 1935 1936 * decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE 1937 TYPE_BINFO or TYPE_LANG_SPECIFIC. 1938 * cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2. 1939 (TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC. 1940 * typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member. 1941 * pt.c (unify): Also check whether the argument is a PMF. 1942 19432014-06-30 Paolo Carlini <paolo.carlini@oracle.com> 1944 1945 PR c++/54891 1946 * parser.c (cp_parser_tokens_start_cast_expression): In C++11 1947 a '[' can also start a primary-expression. 1948 (cp_parser_cast_expression): Parse a cast-expression only tentatively 1949 when cp_parser_tokens_start_cast_expression returns -1. 1950 19512014-06-30 Jason Merrill <jason@redhat.com> 1952 1953 PR c++/61539 1954 * pt.c (unify_one_argument): Type/expression mismatch just causes 1955 deduction failure. 1956 1957 * semantics.c (simplify_aggr_init_expr): Remove remnants of 1958 2014-04-11 change. 1959 19602014-06-30 Marek Polacek <polacek@redhat.com> 1961 1962 * cp-gimplify.c (cp_genericize): Don't instrument returns if the 1963 function has no_sanitize_undefined attribute. 1964 * decl.c (compute_array_index_type): Don't instrument VLAs if the 1965 function has no_sanitize_undefined attribute. 1966 19672014-06-30 Igor Zamyatin <igor.zamyatin@intel.com> 1968 1969 PR middle-end/57541 1970 * cp-array-notation.c (expand_sec_reduce_builtin): 1971 Check that bultin argument is correct. 1972 * call.c (build_cxx_call): Check for 0 arguments in builtin call. 1973 19742014-06-28 Jonathan Wakely <jwakely@redhat.com> 1975 1976 DR 1579 1977 PR c++/58051 1978 * typeck.c (check_return_expr): Lookup as an rvalue even when the 1979 types aren't the same. 1980 19812014-06-27 Jason Merrill <jason@redhat.com> 1982 1983 PR c++/61433 1984 * error.c (dump_template_bindings): Don't tsubst in a clone. 1985 19862014-06-27 Paolo Carlini <paolo.carlini@oracle.com> 1987 1988 PR c++/61614 1989 * semantics.c (finish_compound_literal): Revert r204228. 1990 19912014-06-27 Paolo Carlini <paolo.carlini@oracle.com> 1992 1993 * parser.c (cp_parser_compound_literal_p): New. 1994 (cp_parser_postfix_expression, cp_parser_sizeof_operand): Use it. 1995 19962014-06-26 Jason Merrill <jason@redhat.com> 1997 1998 * parser.c (cp_parser_for_init_statement): Change range-for error 1999 to pedwarn. 2000 2001 N3994 Ranged-based for-loops: The Next Generation 2002 * parser.c (cp_lexer_nth_token_is): New. 2003 (cp_parser_for_init_statement): Allow "for (id : init)". 2004 20052014-06-26 Teresa Johnson <tejohnson@google.com> 2006 2007 * class.c (dump_class_hierarchy): Use saved dump files. 2008 (dump_vtable): Ditto. 2009 (dump_vtt): Ditto. 2010 20112014-06-26 Adam Butcher <adam@jessamine.co.uk> 2012 2013 PR c++/61537 2014 * parser.c (cp_parser_elaborated_type_specifier): Only consider template 2015 parameter lists outside of function parameter scope. 2016 20172014-06-25 Paolo Carlini <paolo.carlini@oracle.com> 2018 2019 DR 178 2020 PR c++/49132 2021 * typeck2.c (process_init_constructor_record): Do not complain about 2022 uninitialized const members, because within aggregate-initialization, 2023 members without explicit initializers are value-initialized. 2024 20252014-06-25 Jakub Jelinek <jakub@redhat.com> 2026 2027 * semantics.c (finish_omp_clauses): Make sure 2028 OMP_CLAUSE_LINEAR_STEP has correct type. 2029 20302014-06-24 Jan Hubicka <hubicka@ucw.cz> 2031 2032 * class.c (check_methods, create_vtable_ptr, determine_key_method, 2033 add_vcall_offset_vtbl_entries_1): Guard VINDEX checks by 2034 FUNCTION_DECL check. 2035 * cp-tree.h (lang_decl_ns): Add ns_using and ns_users. 2036 (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): Use lang_decl_ns. 2037 (DECL_NAMESPACE_ASSOCIATIONS): Use DECL_INITIAL. 2038 (DECL_TEMPLATE_INSTANTIATIONS): Use DECL_SIZE_UNIT. 2039 20402014-06-24 Paolo Carlini <paolo.carlini@oracle.com> 2041 2042 PR c++/33972 2043 * decl.c (grokdeclarator): Do not early check for operator-function-id 2044 as non-function. 2045 20462014-06-24 Trevor Saunders <tsaunders@mozilla.com> 2047 2048 * class.c, semantics.c, tree.c, vtable-class-hierarchy.c: 2049 Adjust. 2050 20512014-06-24 Jakub Jelinek <jakub@redhat.com> 2052 2053 * parser.c (cp_parser_omp_for_loop): For 2054 #pragma omp parallel for simd move lastprivate clause from parallel 2055 to for rather than simd. 2056 20572014-06-23 Paolo Carlini <paolo.carlini@oracle.com> 2058 2059 DR 577 2060 PR c++/33101 2061 * decl.c (grokparms): Accept a single parameter of type 'void'. 2062 20632014-06-20 Jason Merrill <jason@redhat.com> 2064 2065 PR c++/59296 2066 * call.c (add_function_candidate): Avoid special 'this' handling 2067 if we have a ref-qualifier. 2068 2069 PR c++/61556 2070 * call.c (build_over_call): Call build_this in template path. 2071 20722014-06-19 Jason Merrill <jason@redhat.com> 2073 2074 PR c++/59296 2075 * call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND. 2076 20772014-06-18 Jason Merrill <jason@redhat.com> 2078 2079 PR c++/59296 2080 * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for 2081 ref-qualifier handling. 2082 2083 PR c++/61507 2084 * pt.c (resolve_overloaded_unification): Preserve 2085 ARGUMENT_PACK_EXPLICIT_ARGS. 2086 20872014-06-18 Jakub Jelinek <jakub@redhat.com> 2088 2089 * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq * 2090 argument. 2091 * cp-tree.h (cxx_omp_finish_clause): Adjust prototype. 2092 20932014-06-17 Jason Merrill <jason@redhat.com> 2094 2095 PR c++/60605 2096 * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P. 2097 20982014-06-15 Jason Merrill <jason@redhat.com> 2099 2100 PR c++/61488 2101 * pt.c (check_valid_ptrmem_cst_expr): Fix for template context. 2102 2103 PR c++/61500 2104 * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR. 2105 21062014-06-15 Jan Hubicka <hubicka@ucw.cz> 2107 2108 * decl.c (grokvardecl): Fix pasto in previous patch. 2109 21102014-06-15 Jan Hubicka <hubicka@ucw.cz> 2111 2112 * decl.c (duplicate_decls): Use set_decl_tls_model. 2113 (grokdeclarator): Likewise. 2114 * semantics.c (finish_id_expression): Check TLS only for 2115 static variables. 2116 (finish_omp_threadprivate): Use decl_default_tls_model. 2117 * decl2.c (get_guard): Likewise. 2118 * call.c (make_temporary_var_for_ref_to_temp): Likewise. 2119 21202014-06-14 Paolo Carlini <paolo.carlini@oracle.com> 2121 2122 PR c++/33101 2123 * decl.c (grokparms): Improve error message about void parameters. 2124 * error.c (type_to_string): Fix aka cut off code. 2125 21262014-06-12 Jason Merrill <jason@redhat.com> 2127 2128 * call.c (convert_arg_to_ellipsis): Use abi_version_crosses. 2129 * cvt.c (type_promotes_to): Likewise. 2130 * mangle.c (write_type, write_expression): Likewise. 2131 (write_name, write_template_arg): Likewise. 2132 (mangle_decl): Make alias based on flag_abi_compat_version. 2133 Emit -Wabi warning here. 2134 (finish_mangling_internal): Not here. Drop warn parm. 2135 (finish_mangling_get_identifier, finish_mangling): Adjust. 2136 (mangle_type_string, mangle_special_for_type): Adjust. 2137 (mangle_ctor_vtbl_for_type, mangle_thunk): Adjust. 2138 (mangle_guard_variable, mangle_tls_init_fn): Adjust. 2139 (mangle_tls_wrapper_fn, mangle_ref_init_variable): Adjust. 2140 2141 * call.c (build_operator_new_call): Remove -fabi-version=1 support. 2142 * class.c (walk_subobject_offsets, include_empty_classes): Likewise. 2143 (layout_nonempty_base_or_field, end_of_class): Likewise. 2144 (layout_empty_base, build_base_field, layout_class_type): Likewise. 2145 (is_empty_class, add_vcall_offset_vtbl_entries_1): Likewise. 2146 (layout_virtual_bases): Likewise. 2147 * decl.c (compute_array_index_type): Likewise. 2148 * mangle.c (write_mangled_name, write_prefix): Likewise. 2149 (write_template_prefix, write_integer_cst, write_expression): Likewise. 2150 (write_template_arg, write_array_type): Likewise. 2151 * method.c (lazily_declare_fn): Likewise. 2152 * rtti.c (get_pseudo_ti_index): Likewise. 2153 * typeck.c (comp_array_types): Likewise. 2154 21552014-06-11 Jan Hubicka <hubicka@ucw.cz> 2156 2157 * vtable-class-hierarchy.c: Update handling for section names 2158 that are no longer trees. 2159 * decl.c (duplicate_decls): Likewise. 2160 21612014-06-11 Paolo Carlini <paolo.carlini@oracle.com> 2162 2163 PR c++/19200 2164 * parser.c (cp_parser_init_declarator): Actually pass friend_p 2165 to cp_parser_declarator. 2166 21672014-06-11 Paolo Carlini <paolo.carlini@oracle.com> 2168 2169 PR c++/60265 2170 * parser.c (cp_parser_using_declaration): Handle unscoped enums. 2171 * name-lookup.c (validate_nonmember_using_decl): Adjust error 2172 message. 2173 21742014-06-11 Paolo Carlini <paolo.carlini@oracle.com> 2175 2176 PR c++/19200 2177 * parser.c (cp_parser_declarator): Add bool parameter. 2178 (cp_parser_direct_declarator): Likewise, use it. 2179 (cp_parser_member_declaration): Pass friend_p to cp_parser_declarator. 2180 (cp_parser_condition, cp_parser_explicit_instantiation, 2181 cp_parser_init_declarator, cp_parser_type_id_1, 2182 cp_parser_parameter_declaration, cp_parser_exception_declaration, 2183 cp_parser_cache_defarg, cp_parser_objc_class_ivars, 2184 cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init): 2185 Adjust. 2186 * decl.c (grokdeclarator): Fix handling of friend declared in 2187 namespace scope (g++.dg/parse/friend10.C). 2188 21892014-06-10 Jan Hubicka <hubicka@ucw.cz> 2190 2191 * vtable-class-hierarchy.c: Use symtab_get_node (var_decl) 2192 ->implicit_section. 2193 * optimize.c (cdtor_comdat_group): Fix handling of aliases. 2194 (maybe_clone_body): Move symbol across comdat groups. 2195 * method.c (use_thunk): Copy implicit section flag. 2196 21972014-06-09 Paolo Carlini <paolo.carlini@oracle.com> 2198 2199 PR c++/22556 2200 * name-lookup.c (pushdecl_maybe_friend_1): Use comptypes. 2201 22022014-06-07 Jan Hubicka <hubicka@ucw.cz> 2203 2204 * method.c (use_thunk): Use set_decl_section_name. 2205 * optimize.c (maybe_clone_body): Use set_decl_section_name. 2206 * decl.c (duplicate_decls): Likewise. 2207 * vtable-class-hierarchy.c: Likewise. 2208 22092014-06-06 Paolo Carlini <paolo.carlini@oracle.com> 2210 2211 PR c++/60184 2212 * class.c (check_field_decls): In C++11 mode do not reject 2213 static data members and reference-type members in unions. 2214 22152014-06-05 Jason Merrill <jason@redhat.com> 2216 2217 PR c++/43453 2218 * decl.c (check_initializer): Collapse a TREE_LIST here. 2219 * typeck2.c (store_init_value): Not here. 2220 22212014-06-05 Richard Biener <rguenther@suse.de> 2222 Paolo Carlini <paolo.carlini@oracle.com> 2223 2224 PR c++/56961 2225 * cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework 2226 handling of empty classes. 2227 22282014-06-04 Jason Merrill <jason@redhat.com> 2229 2230 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note 2231 for noexcept and thread_local, too. 2232 2233 PR c++/61343 2234 * decl.c (check_initializer): Maybe clear 2235 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. 2236 22372014-06-05 Richard Biener <rguenther@suse.de> 2238 2239 PR c++/61004 2240 * typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing 2241 warnings for accessing empty classes. 2242 22432014-06-05 Marek Polacek <polacek@redhat.com> 2244 2245 PR c/49706 2246 * parser.c (cp_parser_binary_expression): Warn when logical not is 2247 used on the left hand side operand of a comparison. 2248 22492014-06-04 Paolo Carlini <paolo.carlini@oracle.com> 2250 2251 PR c++/43453 2252 * typeck.c (cp_build_modify_expr): Handle array of characters 2253 initialized by a string literal. 2254 * decl.c (check_initializer): Handle parenthesized string literal 2255 as initializer. 2256 * typeck2.c (store_init_value): Remove redundant check. 2257 22582014-06-04 Jason Merrill <jason@redhat.com> 2259 2260 PR c++/51253 2261 PR c++/61382 2262 * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here. 2263 * semantics.c (simplify_aggr_init_expr): Not here, just copy it. 2264 22652014-06-04 Igor Zamyatin <igor.zamyatin@intel.com> 2266 2267 PR c/58942 2268 * cp-array-notation.c (expand_sec_reduce_builtin): Handle the case 2269 with a pointer. 2270 22712014-06-03 Paolo Carlini <paolo.carlini@oracle.com> 2272 2273 DR 1423 2274 PR c++/52174 2275 * call.c (standard_conversion): Convert nullptr to bool only 2276 in case of direct-initialization. 2277 (convert_like_real): Provide informative error message. 2278 22792014-06-03 Marek Polacek <polacek@redhat.com> 2280 2281 PR c/60439 2282 * semantics.c (finish_switch_cond): Warn if switch condition has 2283 boolean value. 2284 22852014-06-03 Jason Merrill <jason@redhat.com> 2286 2287 PR c++/60992 2288 * pt.c (tsubst_copy) [VAR_DECL]: Try lookup first. Add a new 2289 variable to local_specializations. 2290 2291 PR c++/60848 2292 * call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO. 2293 22942014-06-02 Jason Merrill <jason@redhat.com> 2295 2296 PR c++/61046 2297 * decl.c (reshape_init_class): Handle un-folded 2298 constant-expressions. 2299 2300 PR c++/61134 2301 * pt.c (pack_deducible_p): Handle canonicalization. 2302 23032014-06-02 Paolo Carlini <paolo.carlini@oracle.com> 2304 2305 * pt.c (tsubst_function_type): Initialize arg_types. 2306 23072014-06-02 Siva Chandra Reddy <sivachandra@google.com> 2308 2309 PR debug/57519 2310 * class.c (handle_using_decl): Pass the correct scope to 2311 cp_emit_debug_info_for_using. 2312 23132014-06-02 Ville Voutilainen <ville.voutilainen@gmail.com> 2314 2315 PR c++/59483 2316 PR c++/61148 2317 * search.c (accessible_p): Use current_nonlambda_class_type. 2318 * semantics.c (check_accessibility_of_qualified_id): Likewise. 2319 23202014-06-02 Andrew MacLeod <amacleod@redhat.com> 2321 2322 * decl.c: Include builtins.h. 2323 * semantics.c: Likewise. 2324 23252014-05-31 Paolo Carlini <paolo.carlini@oracle.com> 2326 2327 DR 1227 2328 PR c++/57543 2329 * cp-tree.h (TYPE_HAS_LATE_RETURN_TYPE): Add. 2330 * pt.c (tsubst_function_type): Inject the this parameter; do the 2331 substitutions in the order mandated by the DR. 2332 (copy_default_args_to_explicit_spec): Copy TYPE_HAS_LATE_RETURN_TYPE. 2333 * decl.c (grokdeclarator): Maybe set TYPE_HAS_LATE_RETURN_TYPE. 2334 (static_fn_type): Copy it. 2335 * decl2.c (build_memfn_type, change_return_type, 2336 cp_reconstruct_complex_type): Likewise. 2337 * parser.c (cp_parser_lambda_declarator_opt): Likewise. 2338 * tree.c (strip_typedefs): Likewise. 2339 * typeck.c (merge_types): Likewise. 2340 23412014-05-30 Jason Merrill <jason@redhat.com> 2342 2343 PR c++/56947 2344 * pt.c (instantiate_decl): Check that defer_ok is not set for 2345 local class members. 2346 2347 PR c++/60992 2348 * pt.c (tsubst_init): Split out from... 2349 (tsubst_expr) [DECL_EXPR]: Here. 2350 (tsubst_copy) [VAR_DECL]: Use it. 2351 * semantics.c (finish_id_expression): Return the decl for static/const. 2352 23532014-05-28 Jason Merrill <jason@redhat.com> 2354 2355 PR c++/47202 2356 * decl.c (cxx_comdat_group): Return a decl. 2357 * optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME. 2358 2359 * pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown 2360 bound. 2361 2362 PR c++/61242 2363 * call.c (build_aggr_conv): Ignore passed in flags. 2364 (build_array_conv, build_complex_conv): Likewise. 2365 23662014-05-23 Jan Hubicka <hubicka@ucw.cz> 2367 2368 * optimize.c (maybe_thunk_body): Use set_comdat_group. 2369 (maybe_clone_body): Likewise. 2370 * decl.c (duplicate_decls): Update code duplicating comdat group; 2371 do not copy symtab pointer; before freeing newdecl remove it 2372 from symtab. 2373 * decl2.c (constrain_visibility): Use set_comdat_group. 2374 23752014-05-23 Jan Hubicka <hubicka@ucw.cz> 2376 2377 * rtti.c: Include tm_p.h 2378 (emit_tinfo_decl): Force RTTI data to be aligned to required 2379 ABI alignment only. 2380 23812014-05-23 Jan Hubicka <hubicka@ucw.cz> 2382 2383 * class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN 2384 ignoring other target adjustments. 2385 23862014-05-23 Thomas Schwinge <thomas@codesourcery.com> 2387 2388 * semantics.c (finish_omp_clauses): Remove duplicated variable 2389 initialization. 2390 2391 * parser.c (cp_parser_omp_target): Return bool values. 2392 23932014-05-22 Paolo Carlini <paolo.carlini@oracle.com> 2394 2395 PR c++/61088 2396 * lambda.c (add_capture): Enforce that capture by value requires 2397 complete type. 2398 * typeck2.c (cxx_incomplete_type_inform): Early return if 2399 TYPE_MAIN_DECL is null. 2400 24012014-05-21 Jonathan Wakely <jwakely@redhat.com> 2402 2403 PR c/61271 2404 * cp-array-notation.c (cilkplus_an_triplet_types_ok_p): Fix condition. 2405 24062014-05-21 Ville Voutilainen <ville.voutilainen@gmail.com> 2407 2408 PR c++/61133 2409 * lambda.c (build_capture_proxy, add_capture): Treat normal 2410 captures and init-captures identically. 2411 24122014-05-21 Mark Wielaard <mjw@redhat.com> 2413 2414 PR debug/16063 2415 * cp-lang.c (cxx_enum_underlying_base_type): New function. 2416 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define. 2417 24182014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com> 2419 2420 * cvt.c (convert_to_void): Use void_node instead of void_zero_node. 2421 * cp-array-notation.c (replace_invariant_exprs): Likewise. 2422 (expand_array_notation): Handle VOID_CST. 2423 * error.c (dump_expr): Likewise. 2424 * cxx-pretty-print.c (cxx_pretty_printer::primary_expression) 2425 (cxx_pretty_printer::expression): Likewise. 2426 (pp_cxx_new_expression): Use void_node instead of void_zero_node. 2427 * decl.c (register_dtor_fn): Likewise. 2428 * init.c (build_raw_new_expr, build_new_1, build_vec_init) 2429 (build_delete, push_base_cleanups): Likewise. 2430 * mangle.c (write_expression): Likewise. 2431 * semantics.c (finish_break_stmt, empty_expr_stmt_p): Likewise. 2432 * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise. 2433 (tsubst, tsubst_copy, build_non_dependent_expr): Handle VOID_CST. 2434 * tree.c (cp_tree_equal): Likewise. 2435 (build_dummy_object, is_dummy_object, stabilize_expr): Use void_node 2436 instead of void_zero_node. 2437 * typeck.c (check_return_expr): Likewise. 2438 * typeck2.c (build_functional_cast): Likewise. 2439 24402014-05-21 Igor Zamyatin <igor.zamyatin@intel.com> 2441 2442 PR c/60189 2443 * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync 2444 from here to... 2445 (cp_parser_statement): ...here. Make sure only semicolon can go after 2446 Cilk_sync. 2447 24482014-05-20 Paolo Carlini <paolo.carlini@oracle.com> 2449 2450 PR c++/58753 2451 PR c++/58930 2452 PR c++/58704 2453 * typeck2.c (digest_nsdmi_init): New. 2454 * parser.c (cp_parser_late_parse_one_default_arg): Use it. 2455 * init.c (get_nsdmi): Likewise. 2456 * cp-tree.h (digest_nsdmi_init): Declare. 2457 24582014-05-20 Jason Merrill <jason@redhat.com> 2459 2460 * typeck.c (get_member_function_from_ptrfunc): Don't try to look 2461 up a virtual function in a dummy object. 2462 24632014-05-20 Paolo Carlini <paolo.carlini@oracle.com> 2464 2465 PR c++/60373 2466 * decl.c (duplicate_decls): Replace pair of warning_at with 2467 warning_at + inform. 2468 (maybe_commonize_var): Likewise. 2469 24702014-05-20 Richard Sandiford <rsandifo@linux.vnet.ibm.com> 2471 2472 PR bootstrap/61210 2473 * pt.c (tsubst_copy, tsubst_omp_for_iterator, tsubst_expr) 2474 (tsubst_copy_and_build): Perform recursive substitutions in a 2475 deterministic order. 2476 24772014-05-20 Paolo Carlini <paolo.carlini@oracle.com> 2478 2479 PR c++/58664 2480 * typeck2.c (cxx_incomplete_type_inform): New. 2481 (cxx_incomplete_type_diagnostic): Use it. 2482 * decl.c (grokdeclarator): Check the element type of an 2483 incomplete array type; call the above. 2484 * cp-tree.h (cxx_incomplete_type_inform): Declare. 2485 24862014-05-19 Jason Merrill <jason@redhat.com> 2487 2488 PR c++/58761 2489 * pt.c (tsubst_copy): Don't check at_function_scope_p. 2490 (instantiate_class_template_1): Don't push_to_top_level in an nsdmi. 2491 24922014-05-19 Paolo Carlini <paolo.carlini@oracle.com> 2493 2494 * typeck2.c (cxx_incomplete_type_diagnostic): Use inform. 2495 * parser.c (cp_parser_enum_specifier): Likewise. 2496 24972014-05-17 Trevor Saunders <tsaunders@mozilla.com> 2498 2499 * class.c (sorted_fields_type_new): Adjust. 2500 * cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise. 2501 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise. 2502 * cp-tree.h: Remove usage of variable_size gty attribute. 2503 * decl.c (make_label_decl): Adjust. 2504 (check_goto): Likewise. 2505 (start_preparsed_function): Likewise. 2506 (save_function_data): Likewise. 2507 * lex.c (init_reswords): Likewise. 2508 (retrofit_lang_decl): Likewise. 2509 (cxx_dup_lang_specific_decl): Likewise. 2510 (copy_lang_type): Likewise. 2511 (cxx_make_type): Likewise. 2512 * name-lookup.c (binding_entry_make): Likewise. 2513 (binding_table_construct): Likewise. 2514 (binding_table_new): Likewise. 2515 (cxx_binding_make): Likewise. 2516 (pushdecl_maybe_friend_1): Likewise. 2517 (begin_scope): Likewise. 2518 (push_to_top_level): Likewise. 2519 * parser.c (cp_lexer_alloc): Likewise. 2520 (cp_lexer_new_from_tokens): Likewise. 2521 (cp_token_cache_new): Likewise. 2522 (cp_parser_context_new): Likewise. 2523 (cp_parser_new): Likewise. 2524 (cp_parser_nested_name_specifier_opt): Likewise. 2525 (cp_parser_template_id): Likewise. 2526 * pt.c (maybe_process_partial_specialization): Likewise. 2527 (register_specialization): Likewise. 2528 (add_pending_template): Likewise. 2529 (lookup_template_class_1): Likewise. 2530 (push_tinst_level): Likewise. 2531 * semantics.c (register_constexpr_fundef): Likewise. 2532 (cxx_eval_call_expression): Likewise. 2533 * typeck2.c (abstract_virtuals_error_sfinae): Likewise. 2534 25352014-05-16 Paolo Carlini <paolo.carlini@oracle.com> 2536 2537 PR c++/51640 2538 * parser.c (cp_parser_diagnose_invalid_type_name): Early return 2539 when cp_parser_lookup_name sets ambiguous_decls. 2540 25412014-05-15 Jason Merrill <jason@redhat.com> 2542 2543 * call.c (print_conversion_rejection): Use loc consistently. 2544 25452014-05-14 Paolo Carlini <paolo.carlini@oracle.com> 2546 2547 * cp-tree.h (DIRECT_LIST_INIT_P): Add. 2548 * call.c (convert_like_real, build_new_method_call_1): Use it. 2549 * decl2.c (grokfield): Likewise. 2550 * init.c (perform_member_init, build_aggr_init, expand_default_init, 2551 build_new_1): Likewise. 2552 * mangle.c (write_expression): Likewise. 2553 * parser.c (cp_parser_late_parse_one_default_arg): Likewise. 2554 25552014-05-14 Jason Merrill <jason@redhat.com> 2556 2557 PR c++/20332 2558 PR c++/21631 2559 * call.c (reference_binding): Treat lvalue/rvalue mismatch and 2560 dropped cv-quals as a bad conversion. 2561 (convert_like_real) [ck_ref_bind]: Explain them. 2562 (compare_ics): Check badness before stripping reference 2563 bindings. Handle comparing bad reference bindings. 2564 * typeck.c (comp_cv_qualification): Add overload that just takes 2565 integers. 2566 * cp-tree.h: Declare it. 2567 2568 * call.c (struct conversion_info): Rename 'from_type' to 'from'. 2569 (arg_conversion_rejection, bad_arg_conversion_rejection) 2570 (explicit_conversion_rejection, template_conversion_rejection): Adjust. 2571 (add_function_candidate): Pass actual argument, rather than type, to 2572 bad_arg_conversion_rejection. 2573 (print_conversion_rejection): Explain what's wrong with the conversion. 2574 (print_z_candidates): Say "candidate:" before each candidate. 2575 (splice_viable): Be strict if we see a viable or template candidate. 2576 (build_user_type_conversion_1): Pass false to strict parameter. 2577 (perform_overload_resolution, build_conditional_expr_1): Likewise. 2578 (build_new_op_1, build_new_method_call_1): Likewise. 2579 (build_op_call_1): Pass true to strict parameter. 2580 25812014-05-13 Jason Merrill <jason@redhat.com> 2582 2583 * call.c (print_error_for_call_failure): Say "no match" rather 2584 than "ambiguous" if there were no strict matches. 2585 (build_new_method_call_1): Likewise. 2586 2587 PR c++/61151 2588 * semantics.c (is_this_parameter): Allow capture proxies too. 2589 25902014-05-12 Jason Merrill <jason@redhat.com> 2591 2592 * call.c (maybe_print_user_conv_context): New. 2593 (convert_like_real): Use it. Print call context for bad 2594 user-defined conversion. 2595 (build_over_call): Print call context for bad 'this' conversion. 2596 2597 * call.c (convert_like_real): Use inform for identifying the 2598 declaration point. 2599 26002014-05-12 Paolo Carlini <paolo.carlini@oracle.com> 2601 2602 * cvt.c (cp_convert_to_pointer): Don't call error_at if 2603 complain & tf_error is false. 2604 2605 * decl.c (make_unbound_class_template): Prefer inform for 2606 "declared here"-type message. 2607 26082014-05-09 Momchil Velikov <momchil.velikov@gmail.com> 2609 2610 PR c++/60463 2611 PR c++/60755 2612 * lambda.c (lambda_expr_this_capture): Add new parameter 2613 add_capture_p controlling whether the functions will try to 2614 capture 'this' via the default capture. 2615 (maybe_resolve_dummy): Likewise. 2616 * cp-tree.h: Adjust prototypes. 2617 * call.c, semantics.c: Change callers of these functions. 2618 * call.c (build_new_method_call_1): Use the actual 'this' that 2619 would be potentially captured for the overload resolution, instead 2620 of the dummy object. 2621 26222014-05-09 Paolo Carlini <paolo.carlini@oracle.com> 2623 2624 * pt.c (convert_nontype_argument_function): Add tsubst_flags_t 2625 parameter. 2626 (convert_nontype_argument): Adjust calls. 2627 (coerce_template_parameter_pack): Add missing complain & tf_error 2628 check. 2629 26302014-05-09 Jason Merrill <jason@redhat.com> 2631 2632 DR 587 2633 PR c++/51317 2634 * call.c (build_conditional_expr_1, conditional_conversion): Handle 2635 non-class lvalues and xvalues that differ only in cv-qualifiers. 2636 2637 DR 5 2638 PR c++/60019 2639 * call.c (build_user_type_conversion_1): The copy-init temporary 2640 is cv-unqualified. 2641 2642 PR c++/58714 2643 * tree.c (stabilize_expr): A stabilized prvalue is an xvalue. 2644 2645 PR c++/54348 2646 * call.c (build_conditional_expr_1): If overload resolution finds 2647 no match, just say "different types". 2648 2649 PR c++/32019 2650 * call.c (build_conditional_expr_1): Improve ambiguity diagnostic. 2651 2652 PR c++/22434 2653 * call.c (build_conditional_expr_1): Don't try to pool cv-quals 2654 if we didn't find a conversion. 2655 Don't accept a bad conversion too early. 2656 26572014-05-08 Paolo Carlini <paolo.carlini@oracle.com> 2658 2659 PR c++/13981 2660 * typeck.c (convert_for_assignment): Provide an inform for pointers 2661 to incomplete class types. 2662 26632014-05-07 Paolo Carlini <paolo.carlini@oracle.com> 2664 2665 PR c++/61083 2666 * pt.c (convert_nontype_argument): Protect all the error calls 2667 with complain & tf_error. 2668 26692014-05-07 Paolo Carlini <paolo.carlini@oracle.com> 2670 2671 PR c++/61080 2672 * pt.c (instantiate_decl): Avoid generating the body of a 2673 deleted function. 2674 26752014-05-06 Paolo Carlini <paolo.carlini@oracle.com> 2676 2677 PR c++/60999 2678 * pt.c (maybe_begin_member_template_processing): Use 2679 uses_template_parms. 2680 26812014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> 2682 Mike Stump <mikestump@comcast.net> 2683 Richard Sandiford <rdsandiford@googlemail.com> 2684 2685 * call.c: Include wide-int.h. 2686 (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED. 2687 (convert_for_arg_passing): Likewise. 2688 * class.c: Include wide-int.h. 2689 (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT. 2690 (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED. 2691 (include_empty_classes): Likewise 2692 (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT. 2693 * cvt.c: Include wide-int.h. 2694 (ignore_overflows): Use wide_int_to_tree. 2695 * decl.c: Include wide-int.h. 2696 (check_array_designated_initializer): Use wide-int interfaces. 2697 (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT. 2698 (finish_enum_value_list): Use signop. 2699 (build_enumerator): Use wide-int interfaces. 2700 * init.c: Include wide-int.h. 2701 (build_new_1): Use wide-int interfaces. 2702 * mangle.c: Include wide-int.h. 2703 (write_integer_cst): Use wide-int interfaces. 2704 (write_array_type): Likewise. 2705 * tree.c: Include wide-int.h. 2706 (cp_tree_equal): Use tree_int_cst_equal. 2707 * typeck2.c: Include wide-int.h. 2708 (process_init_constructor_array): Use wide-int interfaces. 2709 27102014-05-03 Paolo Carlini <paolo.carlini@oracle.com> 2711 2712 PR c++/58582 2713 * decl.c (grokfndecl): Check duplicate_decls return value for 2714 error_mark_node. 2715 * pt.c (instantiate_decl): A deleted function is defined. 2716 27172014-05-02 Jason Merrill <jason@redhat.com> 2718 2719 * decl2.c (vague_linkage_p): Local statics have vague linkage. 2720 2721 PR c++/60992 2722 * lambda.c (lambda_capture_field_type): Wrap anything dependent 2723 other than 'this'. 2724 (add_capture): Check for VLA before calling it. 2725 * semantics.c (is_this_parameter): Accept any 'this' parameter, not 2726 just the current one. Make non-static. 2727 * cp-tree.h: Declare it. 2728 * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if 2729 the operand was static or constant. 2730 27312014-05-02 Marek Polacek <polacek@redhat.com> 2732 2733 * typeck.c (maybe_warn_about_returning_address_of_local): Separate 2734 warning_at calls. 2735 27362014-05-01 Marek Polacek <polacek@redhat.com> 2737 2738 PR c/43395 2739 * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish 2740 between label and variable when warning about returning local address. 2741 27422014-04-30 Jason Merrill <jason@redhat.com> 2743 2744 PR c++/60980 2745 * init.c (build_value_init): Don't try to call an array constructor. 2746 2747 PR c++/60951 2748 * typeck2.c (massage_init_elt): Use maybe_constant_init. 2749 27502014-04-30 Marek Polacek <polacek@redhat.com> 2751 2752 * typeck.c (cp_build_binary_op): Call ubsan_instrument_division 2753 even when SANITIZE_FLOAT_DIVIDE is on. Set doing_div_or_mod even 2754 for non-integer types. 2755 27562014-04-29 Jason Merrill <jason@redhat.com> 2757 2758 DR 1351 2759 Represent the unevaluated exception specification of an implicitly 2760 declared or deleted function with a simple placeholder, not a list 2761 of functions. 2762 * cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New. 2763 * except.c (unevaluated_noexcept_spec): New. 2764 * class.c (deduce_noexcept_on_destructor): Use it. 2765 * decl.c (check_redeclaration_exception_specification): Call 2766 maybe_instantiate_noexcept. 2767 (duplicate_decls): Call it before merge_types. 2768 (start_preparsed_function): Call maybe_instantiate_noexcept. 2769 * decl2.c (mark_used): Call maybe_instantiate_noexcept earlier. 2770 * init.c (get_nsdmi): Factor out of perform_member_init. 2771 * method.c (process_subob_fn): Call maybe_instantiate_noexcept. 2772 (walk_field_subobs): Consider NSDMI for EH spec. 2773 (get_defaulted_eh_spec): New. 2774 (implicitly_declare_fn): Use unevaluated_noexcept_spec. 2775 (defaulted_late_check): Defer EH checking in non-template classes. 2776 (after_nsdmi_defaulted_late_checks): New. 2777 * parser.c (cp_parser_class_specifier_1): Use it. 2778 (unparsed_classes): New macro. 2779 * parser.h (cp_unparsed_functions_entry_d): Add classes field. 2780 * pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec. 2781 Remove list-of-functions handling. 2782 * typeck2.c (merge_exception_specifiers): Remove list-of-functions 2783 handling and FN parameter. 2784 * typeck.c (merge_types): Adjust. 2785 27862014-04-28 Paolo Carlini <paolo.carlini@oracle.com> 2787 2788 PR c++/59120 2789 * parser.c (cp_parser_alias_declaration): Check return value of 2790 cp_parser_require. 2791 27922014-04-24 Jakub Jelinek <jakub@redhat.com> 2793 2794 * parser.c (cp_parser_omp_atomic): Allow seq_cst before 2795 atomic-clause, allow comma in between atomic-clause and 2796 seq_cst. 2797 27982014-04-24 Marc Glisse <marc.glisse@inria.fr> 2799 2800 PR libstdc++/43622 2801 * rtti.c (emit_support_tinfos): Do not iterate on 2802 registered_builtin_types (partial revert). 2803 28042014-04-23 Dinar Temirbulatov <dtemirbulatov@gmail.com> 2805 2806 PR c++/57958 2807 * semantics.c (apply_deduced_return_type): Complete non-void type 2808 before estimating whether the type is aggregate. 2809 28102014-04-22 Marc Glisse <marc.glisse@inria.fr> 2811 2812 PR libstdc++/43622 2813 * rtti.c (emit_support_tinfo_1): New function, extracted from 2814 emit_support_tinfos. 2815 (emit_support_tinfos): Call it and iterate on registered_builtin_types. 2816 28172014-04-22 Jakub Jelinek <jakub@redhat.com> 2818 2819 PR c/59073 2820 * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for 2821 fails, don't set OM_PARALLEL_COMBINED and return NULL. 2822 28232014-04-18 Jason Merrill <jason@redhat.com> 2824 2825 DR 1571 2826 * call.c (reference_binding): Recurse on user-defined conversion. 2827 2828 PR c++/60872 2829 * call.c (standard_conversion): Don't try to apply restrict to void. 2830 28312014-04-16 Marc Glisse <marc.glisse@inria.fr> 2832 2833 * decl.c (reshape_init_r): Handle a single element of vector type. 2834 28352014-04-16 Patrick Palka <patrick@parcs.ath.cx> 2836 2837 PR c++/60765 2838 * decl2.c (cplus_decl_attributes): Handle 2839 pointer-to-member-function declarations. 2840 28412014-04-16 Patrick Palka <patrick@parcs.ath.cx> 2842 2843 PR c++/60764 2844 * call.c (build_user_type_coversion): Use build_dummy_object 2845 to create the placeholder object for a constructor method call. 2846 (build_special_member_call): Likewise. 2847 (build_over_call): Check for the placeholder object with 2848 is_dummy_object. 2849 (build_new_method_call_1): Likewise. Don't attempt to resolve 2850 a dummy object for a constructor method call. 2851 28522014-04-16 Paul Pluzhnikov <ppluzhnikov@google.com> 2853 2854 PR c++/59295 2855 * friend.c (add_friend, make_friend_class): Move repeated friend 2856 warning under Wredundant_decls. 2857 28582014-04-15 Paolo Carlini <paolo.carlini@oracle.com> 2859 2860 * decl.c (duplicate_decls): Remove redundant TYPE_NAME use. 2861 * name-lookup.c (pushdecl_maybe_friend_1): Likewise. 2862 (do_class_using_decl): Likewise. 2863 * mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING. 2864 28652014-04-15 Jakub Jelinek <jakub@redhat.com> 2866 2867 PR plugins/59335 2868 * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h. 2869 28702014-04-14 Paolo Carlini <paolo.carlini@oracle.com> 2871 2872 * cp-tree.h (TYPE_IDENTIFIER): Remove declaration. 2873 28742014-04-14 Paolo Carlini <paolo.carlini@oracle.com> 2875 2876 * pt.c (mark_template_parm): Use template_parm_level_and_index. 2877 28782014-04-11 Jason Merrill <jason@redhat.com> 2879 2880 * parser.h (struct cp_token): Rename ambiguous_p to error_reported. 2881 * parser.c: Adjust. 2882 (cp_lexer_get_preprocessor_token): Always clear it. 2883 (cp_parser_lambda_expression): Use it to avoid duplicate diagnostics. 2884 2885 DR 1467 2886 PR c++/51747 2887 * decl.c (reshape_init_r): Handle a single element of class type. 2888 2889 DR 1338 2890 * decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on 2891 built-in operator new. 2892 28932014-04-11 Paolo Carlini <paolo.carlini@oracle.com> 2894 2895 PR c++/58600 2896 * name-lookup.c (parse_using_directive): Return early if the 2897 attribs argument is error_mark_node; use get_attribute_name. 2898 28992014-04-11 Jason Merrill <jason@redhat.com> 2900 2901 DR 1030 2902 PR c++/51253 2903 * cp-tree.h (CALL_EXPR_LIST_INIT_P): New. 2904 * call.c (struct z_candidate): Add flags field. 2905 (add_candidate): Add flags parm. 2906 (add_function_candidate, add_conv_candidate, build_builtin_candidate) 2907 (add_template_candidate_real): Pass it. 2908 (build_over_call): Set CALL_EXPR_LIST_INIT_P. 2909 * tree.c (build_aggr_init_expr): Copy it. 2910 * semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set. 2911 29122014-04-10 Richard Biener <rguenther@suse.de> 2913 Jakub Jelinek <jakub@redhat.com> 2914 2915 PR ipa/60761 2916 * error.c (dump_decl) <case FUNCTION_DECL>: If 2917 DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not, 2918 recurse on DECL_ABSTRACT_ORIGIN instead of printing 2919 <built-in>. 2920 29212014-04-09 Fabien Chêne <fabien@gcc.gnu.org> 2922 2923 * pt.c (check_template_variable): Check for the return of pedwarn 2924 before emitting a note. 2925 * parser.c (cp_parser_lambda_introducer): Likewise. 2926 29272014-04-08 Paolo Carlini <paolo.carlini@oracle.com> 2928 2929 PR c++/59115 2930 * pt.c (process_template_parm): For an invalid non-type parameter 2931 only set TREE_TYPE to error_mark_node. 2932 (push_inline_template_parms_recursive, comp_template_parms, 2933 redeclare_class_template, coerce_template_template_parm, 2934 coerce_template_template_parms, unify): Use error_operand_p. 2935 29362014-04-08 Nathan Sidwell <nathan@codesourcery.com> 2937 2938 * class.c (check_bases_and_members): Warn about non-virtual dtors 2939 in public bases only. Check warn_ecpp before complaining about 2940 non-polymorphic bases. 2941 29422014-04-04 Fabien Chêne <fabien@gcc.gnu.org> 2943 2944 * decl.c (duplicate_decls): Check for the return of warning_at 2945 before emitting a note. 2946 (warn_misplaced_attr_for_class_type): Likewise. 2947 (check_tag_decl): Likewise. 2948 29492014-04-04 Paolo Carlini <paolo.carlini@oracle.com> 2950 2951 PR c++/58207 2952 * semantics.c (sort_constexpr_mem_initializers): Robustify loop. 2953 29542014-04-04 Patrick Palka <patrick@parcs.ath.cx> 2955 2956 PR c++/44613 2957 * semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL. 2958 * decl.c (cp_finish_decl): Create a new BIND_EXPR before 2959 instantiating a variable-sized type. 2960 2961 PR c++/21113 2962 * decl.c (decl_jump_unsafe): Consider variably-modified decls. 2963 29642014-04-04 Fabien Chêne <fabien@gcc.gnu.org> 2965 2966 * class.c (find_abi_tags_r): Check for the return of warning 2967 before emitting a note. 2968 (one_inherited_ctor): Likewise. 2969 29702014-04-04 Fabien Chêne <fabien@gcc.gnu.org> 2971 2972 * decl.c (duplicate_decls): Check for the return of permerror 2973 before emitting a note. 2974 29752014-04-03 Nathan Sidwell <nathan@codesourcery.com> 2976 2977 * class.c (accessible_nvdtor_p): New. 2978 (check_bases): Don't check base destructor here ... 2979 (check_bases_and_members): ... check them here. Trigger on 2980 Wnon-virtual-dtor flag. 2981 (finish_struct_1): Use accessible_nvdtor_p. 2982 29832014-04-01 Jason Merrill <jason@redhat.com> 2984 2985 * pt.c (process_partial_specialization): Say "not deducible" 2986 rather than "not used". Use inform. 2987 2988 PR c++/60374 2989 * pt.c (coerce_template_parms): Check that the pack expansion 2990 pattern works with the first matching parameter. 2991 29922014-04-01 Fabien Chêne <fabien@gcc.gnu.org> 2993 2994 * init.c (perform_member_init): Homogenize uninitialized 2995 diagnostics. 2996 29972014-04-01 Jason Merrill <jason@redhat.com> 2998 2999 PR c++/60708 3000 * call.c (build_array_conv): Call complete_type. 3001 3002 PR c++/60713 3003 * typeck2.c (PICFLAG_SIDE_EFFECTS): New. 3004 (picflag_from_initializer): Return it. 3005 (process_init_constructor): Handle it. 3006 3007 PR c++/60642 3008 * decl2.c (is_late_template_attribute): Don't defer abi_tag. 3009 * mangle.c (write_unqualified_name): Fix abi_tag on templates. 3010 * pt.c (get_template_info): Handle NAMESPACE_DECL. 3011 (most_general_template): Handle more kinds of template. 3012 * tree.c (handle_abi_tag_attribute): Ignore abi_tag on template 3013 instantiations and specializations. 3014 30152014-03-31 Patrick Palka <patrick@parcs.ath.cx> 3016 3017 PR c++/44859 3018 * typeck.c (maybe_warn_about_returning_address_of_local): Unwrap 3019 COMPONENT_REFs and ARRAY_REFs sooner. 3020 30212014-03-29 Adam Butcher <adam@jessamine.co.uk> 3022 3023 PR c++/60626 3024 * parser.c (cp_parser_init_declarator): Handle erroneous generic type 3025 usage in non-functions with pushed scope. 3026 30272014-03-28 Adam Butcher <adam@jessamine.co.uk> 3028 3029 PR c++/60573 3030 * name-lookup.h (cp_binding_level): New transient field defining_class_p 3031 to indicate whether a scope is in the process of defining a class. 3032 * semantics.c (begin_class_definition): Set defining_class_p. 3033 * name-lookup.c (leave_scope): Reset defining_class_p. 3034 * parser.c (synthesize_implicit_template_parm): Use cp_binding_level:: 3035 defining_class_p rather than TYPE_BEING_DEFINED as the predicate for 3036 unwinding to class-defining scope to handle the erroneous definition of 3037 a generic function of an arbitrarily nested class within an enclosing 3038 class. 3039 30402014-03-26 Fabien Chêne <fabien@gcc.gnu.org> 3041 3042 PR c++/52369 3043 * method.c (walk_field_subobs): Improve the diagnostic 3044 locations for both REFERENCE_TYPEs and non-static const members. 3045 * init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D 3046 instead of %qD to be consistent with the c++11 diagnostic. 3047 30482014-03-25 Jason Merrill <jason@redhat.com> 3049 3050 PR c++/60566 3051 PR c++/58678 3052 * class.c (build_vtbl_initializer): Handle abstract dtors here. 3053 * search.c (get_pure_virtuals): Not here. 3054 3055 PR c++/60375 3056 * parser.c (cp_parser_lambda_expression): Don't parse the body of 3057 a lambda in unevaluated context. 3058 3059 PR c++/60628 3060 * decl.c (create_array_type_for_decl): Complain about array of auto. 3061 30622014-03-25 Jakub Jelinek <jakub@redhat.com> 3063 3064 PR c++/60331 3065 * semantics.c (potential_constant_expression_1): Handle 3066 DECL_EXPR. 3067 30682014-03-24 Adam Butcher <adam@jessamine.co.uk> 3069 3070 PR c++/60627 3071 * parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from 3072 introducing an implicit function template parameter within an explicit 3073 instantiation. 3074 30752014-03-22 Jason Merrill <jason@redhat.com> 3076 3077 PR c++/60574 3078 * decl.c (grokdeclarator): Change permerror about 'virtual auto' 3079 to error. 3080 30812014-03-21 Paolo Carlini <paolo.carlini@oracle.com> 3082 3083 PR c++/60384 3084 * name-lookup.c (push_class_level_binding_1): Check identifier_p 3085 on the name argument. 3086 30872014-03-20 Jakub Jelinek <jakub@redhat.com> 3088 3089 PR c++/60572 3090 * init.c (build_zero_init_1): Ignore fields with error_mark_node 3091 type. 3092 30932014-03-19 Paolo Carlini <paolo.carlini@oracle.com> 3094 3095 PR c++/51474 3096 * call.c (build_new_method_call_1): Handle pure virtuals called by 3097 NSDMIs too. 3098 30992014-03-17 Adam Butcher <adam@jessamine.co.uk> 3100 3101 PR c++/60390 3102 * parser.c (cp_parser_member_declaration): Don't allow 3103 finish_fully_implicit_template to consider friend declarations to be 3104 class member templates. 3105 (synthesize_implicit_template_parm): Handling winding back through class 3106 scope to the class being defined in order to inject a template argument 3107 list. 3108 3109 PR c++/60391 3110 * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic 3111 function scope as per cp_parser_skip_to_end_of_statement. 3112 31132014-03-17 Paolo Carlini <paolo.carlini@oracle.com> 3114 3115 PR c++/59571 3116 * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae. 3117 31182014-03-14 Jason Merrill <jason@redhat.com> 3119 3120 PR c++/60532 3121 PR c++/58678 3122 * search.c (get_pure_virtuals): Handle abstract dtor here. 3123 (dfs_get_pure_virtuals): Not here. 3124 3125 PR c++/58678 3126 * search.c (dfs_get_pure_virtuals): Treat the destructor of an 3127 abstract class as pure. 3128 31292014-03-13 Paolo Carlini <paolo.carlini@oracle.com> 3130 3131 PR c++/60383 3132 * pt.c (maybe_process_partial_specialization): Check return value 3133 of check_specialization_namespace. 3134 31352014-03-13 Paolo Carlini <paolo.carlini@oracle.com> 3136 3137 PR c++/60254 3138 * semantics.c (finish_static_assert): Call cxx_constant_value only 3139 if require_potential_rvalue_constant_expression returns true. 3140 31412014-03-11 Paolo Carlini <paolo.carlini@oracle.com> 3142 3143 PR c++/60389 3144 * method.c (get_inherited_ctor): New. 3145 * cp-tree.h (get_inherited_ctor): Declare it. 3146 * semantics.c (is_valid_constexpr_fn): Use it. 3147 31482014-03-10 Jason Merrill <jason@redhat.com> 3149 3150 PR c++/60367 3151 * call.c (convert_default_arg): Remove special handling for 3152 CONSTRUCTOR. 3153 3154 PR c++/53492 3155 * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P 3156 when deciding whether to call push_template_decl for a member class. 3157 * pt.c (push_template_decl_real): Return after wrong levels error. 3158 31592014-03-08 Adam Butcher <adam@jessamine.co.uk> 3160 3161 PR c++/60033 3162 * pt.c (tsubst_copy): When retrieving a capture pack from a generic 3163 lambda, remove the lambda's own template argument list prior to fetching 3164 the specialization. 3165 3166 PR c++/60393 3167 * parser.c (cp_parser_parameter_declaration_clause): Move generic 3168 function template unwinding on error into a more general location, ... 3169 (cp_parser_skip_to_end_of_statement): ... here. 3170 31712014-03-07 Jason Merrill <jason@redhat.com> 3172 3173 * Make-lang.in (check_g++_parallelize): Split dg.exp. 3174 3175 * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if 3176 we're in a trailing return type. 3177 3178 * typeck.c (comp_template_parms_position): 'auto' and 3179 'decltype(auto)' are different from real template parms. 3180 3181 * parser.c (cp_parser_using_declaration): Consume the semicolon 3182 after bare parameter pack error. 3183 3184 * cp-tree.h (REF_PARENTHESIZED_P): New. 3185 * semantics.c (force_paren_expr): Set it. 3186 * pt.c (do_auto_deduction): Check it. 3187 (tsubst) [COMPONENT_REF]: Copy it. 3188 * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference. 3189 3190 * decl.c (create_array_type_for_decl): Only warn about invalid 3191 C++1y VLA if flag_iso or warn_vla>0. 3192 (grokdeclarator): Likewise. 3193 * pt.c (tsubst): Likewise. 3194 * semantics.c (finish_decltype_type): Likewise. 3195 * typeck.c (cxx_sizeof_or_alignof_type): Likewise. 3196 (cp_build_addr_expr_1): Likewise. 3197 * init.c (build_new_1): Improve diagnostics. 3198 31992014-03-07 Paolo Carlini <paolo.carlini@oracle.com> 3200 3201 PR c++/58609 3202 * decl.c (check_initializer): Return NULL_TREE after error; 3203 consistently use inform. 3204 32052014-03-07 Paolo Carlini <paolo.carlini@oracle.com> 3206 3207 * decl.c (check_initializer): Remove dead code. 3208 32092014-03-06 Marek Polacek <polacek@redhat.com> 3210 3211 PR c/60197 3212 * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead 3213 of checking tree code. 3214 32152014-03-06 Paolo Carlini <paolo.carlini@oracle.com> 3216 3217 * parser.c (cp_lexer_set_source_position): New. 3218 (cp_parser_mem_initializer): Use it. 3219 (cp_parser_postfix_open_square_expression): Likewise. 3220 (cp_parser_parenthesized_expression_list): Likewise. 3221 (cp_parser_new_initializer): Likewise. 3222 (cp_parser_jump_statement): Likewise. 3223 (cp_parser_initializer): Likewise. 3224 (cp_parser_functional_cast): Likewise. 3225 32262014-03-05 Jason Merrill <jason@redhat.com> 3227 3228 PR c++/60409 3229 * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a 3230 dependent expression. 3231 3232 PR c++/60361 3233 * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID 3234 if re-parsing might succeed. 3235 * semantics.c (finish_id_expression): Use of a parameter outside 3236 the function body is a parse error. 3237 3238 * parser.c (cp_parser_mem_initializer): Set input_location 3239 properly for init-list warning. 3240 (cp_parser_postfix_open_square_expression): Likewise. 3241 (cp_parser_parenthesized_expression_list): Likewise. 3242 (cp_parser_new_initializer): Likewise. 3243 (cp_parser_jump_statement): Likewise. 3244 (cp_parser_initializer): Likewise. 3245 (cp_parser_functional_cast): Likewise. 3246 32472014-03-04 Jason Merrill <jason@redhat.com> 3248 3249 PR c++/60417 3250 * typeck2.c (process_init_constructor_record): Set 3251 CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers. 3252 3253 PR c++/60415 3254 PR c++/54359 3255 * parser.c (cp_parser_direct_declarator): Set declarator to 3256 cp_error_declarator on invalid qualified-id. 3257 32582014-03-04 Paolo Carlini <paolo.carlini@oracle.com> 3259 3260 PR c++/60376 3261 * parser.c (cp_parser_using_declaration): Early return when 3262 cp_parser_nested_name_specifier errors out. 3263 32642014-03-01 Adam Butcher <adam@jessamine.co.uk> 3265 3266 PR c++/60377 3267 * parser.c (cp_parser_parameter_declaration_clause): Unwind generic 3268 function scope on parse error in function parameter list. 3269 32702014-03-01 Paolo Carlini <paolo.carlini@oracle.com> 3271 3272 * method.c (implicitly_declare_fn): Remove redundant 3273 DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses. 3274 * semantics.c (is_instantiation_of_constexpr): Likewise. 3275 * error.c (dump_function_decl): Likewise. 3276 32772014-03-01 Jason Merrill <jason@redhat.com> 3278 3279 PR c++/60379 3280 * semantics.c (begin_maybe_infinite_loop): Use 3281 fold_non_dependent_expr_sfinae. 3282 32832014-02-28 Jason Merrill <jason@redhat.com> 3284 3285 PR c++/58845 3286 * typeck.c (cp_build_binary_op): Sorry on vector&&vector. 3287 32882014-02-28 Paolo Carlini <paolo.carlini@oracle.com> 3289 3290 PR c++/58610 3291 * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK. 3292 * call.c (print_z_candidate): Remove STRIP_TEMPLATE use. 3293 * lambda.c (maybe_add_lambda_conv_op): Likewise. 3294 32952014-02-27 Paolo Carlini <paolo.carlini@oracle.com> 3296 3297 PR c++/60253 3298 * call.c (convert_arg_to_ellipsis): Return error_mark_node after 3299 error_at. 3300 33012014-02-27 Jason Merrill <jason@redhat.com> 3302 3303 PR c++/60353 3304 PR c++/55877 3305 * decl2.c (tentative_decl_linkage): Don't mess with functions that 3306 are not yet defined. 3307 33082014-02-26 Jason Merrill <jason@redhat.com> 3309 3310 PR c++/60347 3311 PR lto/53808 3312 * class.c (clone_function_decl): Don't note_vague_linkage_fn. 3313 * init.c (build_vtbl_address): Do it here. 3314 3315 PR c++/59231 3316 PR c++/11586 3317 PR c++/14710 3318 PR c++/57132 3319 * pt.c (struct warning_sentinel): New. 3320 (tsubst_copy_and_build): Use it instead of 3321 c_inhibit_evaluation_warnings. 3322 * typeck.c (maybe_warn_about_useless_cast): Remove 3323 c_inhibit_evaluation_warnings check. 3324 3325 PR c++/54440 3326 * pt.c (get_template_parm_index): New. 3327 (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New. 3328 (process_template_parm): Allow bare packs in template template 3329 parm template parms. 3330 (coerce_template_parameter_pack): Handle fixed template template 3331 parm packs and fixed packs not at the end of the parm list. 3332 (coerce_template_parms): Handle template parm packs not at the end 3333 of the parm list. 3334 (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion. 3335 3336 PR c++/60182 3337 * pt.c (unify): Ignore alias templates when deducing a template 3338 template parameter. 3339 3340 PR c++/60345 3341 Revert: 3342 DR 1571 3343 * call.c (reference_binding): Recurse on user-defined conversion. 3344 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch. 3345 33462014-02-25 Jason Merrill <jason@redhat.com> 3347 3348 DR 1571 3349 * call.c (reference_binding): Recurse on user-defined conversion. 3350 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch. 3351 3352 * call.c (print_conversion_rejection): Handle n_arg of -2. 3353 (build_user_type_conversion_1): Pass it. 3354 3355 PR c++/55877 3356 * decl2.c (no_linkage_error): Handle C++98 semantics. 3357 (reset_type_linkage): Move from decl.c. 3358 (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1) 3359 (bt_reset_linkage_2, reset_decl_linkage): New. 3360 (tentative_decl_linkage): Factor out of expand_or_defer_fn_1. 3361 (cp_write_global_declarations): Move condition into no_linkage_error. 3362 * decl.c (grokfndecl, grokvardecl): Use no_linkage_error. 3363 * semantics.c (expand_or_defer_fn_1): Factor out 3364 tentative_decl_linkage. 3365 * cp-tree.h: Adjust. 3366 3367 * decl2.c (finish_static_data_member_decl): Diagnose static data 3368 member in unnamed class. 3369 * class.c (finish_struct_anon_r): Avoid redundant diagnostic. 3370 3371 PR lto/53808 3372 * class.c (clone_function_decl): Call note_vague_linkage_fn for 3373 defaulted virtual dtor. 3374 3375 DR 1286 3376 PR c++/60328 3377 * pt.c (get_underlying_template): Fix equivalence calculation. 3378 33792014-02-25 Adam Butcher <adam@jessamine.co.uk> 3380 3381 PR c++/60311 3382 * parser.c (function_being_declared_is_template_p): Return false when 3383 processing a template parameter list. 3384 (cp_parser_parameter_declaration_clause): Don't set 3385 auto_is_implicit_function_template_parm_p when processing a 3386 template parameter list. 3387 3388 * parser.c (synthesize_implicit_template_parm): Inject new template 3389 argument list appropriately when a generic member function 3390 of a class template is declared out-of-line. 3391 3392 PR c++/60065 3393 * parser.c (cp_parser_direct_declarator): Don't save and 3394 restore num_template_parameter_lists around call to 3395 cp_parser_parameter_declaration_list. 3396 (function_being_declared_is_template_p): New predicate. 3397 (cp_parser_parameter_declaration_list): Use 3398 function_being_declared_is_template_p as predicate for 3399 inspecting current function template parameter list length 3400 rather than num_template_parameter_lists. 3401 34022014-02-24 Jason Merrill <jason@redhat.com> 3403 3404 PR c++/60146 3405 * pt.c (tsubst_omp_for_iterator): Don't let substitution of the 3406 DECL_EXPR initialize a non-class iterator. 3407 3408 PR c++/60312 3409 * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'. 3410 34112014-02-21 Jason Merrill <jason@redhat.com> 3412 3413 PR c++/58170 3414 * parser.c (cp_parser_type_name): Always check dependency. 3415 (cp_parser_type_specifier_seq): Call 3416 cp_parser_parse_and_diagnose_invalid_type_name. 3417 3418 PR c++/60108 3419 * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN. 3420 3421 PR c++/60185 3422 * parser.c (cp_parser_default_argument): Clear 3423 current_class_ptr/current_class_ref like tsubst_default_argument. 3424 3425 PR c++/60252 3426 * lambda.c (maybe_resolve_dummy): Check lambda_function rather 3427 than current_binding_level. 3428 3429 PR c++/60186 3430 * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae. 3431 3432 PR c++/60187 3433 * parser.c (cp_parser_enum_specifier): Call 3434 check_for_bare_parameter_packs. 3435 3436 PR c++/59347 3437 * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an 3438 erroneous typedef. 3439 3440 PR c++/60241 3441 * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS 3442 of the partial instantiation, not the most general template. 3443 (maybe_process_partial_specialization): Reassign everything on 3444 that list. 3445 3446 PR c++/60216 3447 * pt.c (register_specialization): Copy DECL_DELETED_FN to clones. 3448 (check_explicit_specialization): Don't clone. 3449 3450 PR c++/60219 3451 * pt.c (coerce_template_parms): Bail if argument packing fails. 3452 3453 PR c++/60224 3454 * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init): 3455 Don't get confused by a CONSTRUCTOR that already has a type. 3456 3457 PR c++/60227 3458 * call.c (build_array_conv): Don't crash on VLA. 3459 3460 PR c++/60248 3461 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL. 3462 3463 PR c++/60252 3464 * lambda.c (maybe_resolve_dummy): Don't try to capture this 3465 in declaration context. 3466 3467 DR 1591 3468 PR c++/60051 3469 * pt.c (unify): Only unify if deducible. Handle 0-length list. 3470 3471 PR c++/60250 3472 * parser.c (cp_parser_direct_declarator): Don't wrap a 3473 type-dependent expression in a NOP_EXPR. 3474 3475 PR c++/60251 3476 * lambda.c (is_normal_capture_proxy): Handle VLA capture. 3477 3478 PR c++/60167 3479 PR c++/60222 3480 PR c++/58606 3481 * parser.c (cp_parser_template_argument): Restore dereference. 3482 * pt.c (template_parm_to_arg): Dereference non-pack expansions too. 3483 (process_partial_specialization): Handle deref. 3484 (unify): Likewise. 3485 34862014-02-21 Adam Butcher <adam@jessamine.co.uk> 3487 3488 PR c++/60052 3489 PR c++/60053 3490 * parser.c (cp_parser_parameter_declaration_list): Correctly reset 3491 implicit_template_scope upon leaving an out-of-line generic member 3492 function definition. 3493 34942014-02-20 Kai Tietz <ktietz@redhat.com> 3495 3496 PR c++/58873 3497 * parser.c (cp_parser_functional_cast): Treat NULL_TREE 3498 valued type argument as error_mark_node. 3499 3500 PR c++/58835 3501 * semantics.c (finish_fname): Handle error_mark_node. 3502 35032014-02-19 Jason Merrill <jason@redhat.com> 3504 3505 PR c++/60046 3506 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception 3507 spec from template context. 3508 35092014-02-19 Jakub Jelinek <jakub@redhat.com> 3510 3511 PR debug/56563 3512 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove 3513 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check. 3514 3515 PR c++/60267 3516 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR. 3517 35182014-02-18 Paolo Carlini <paolo.carlini@oracle.com> 3519 3520 PR c++/60225 3521 * semantics.c (ensure_literal_type_for_constexpr_object): Use 3522 strip_array_types. 3523 35242014-02-18 Paolo Carlini <paolo.carlini@oracle.com> 3525 3526 PR c++/60215 3527 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]): 3528 During error recovery allow_non_constant may be false. 3529 35302014-02-18 Adam Butcher <adam@jessamine.co.uk> 3531 3532 PR c++/60190 3533 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter 3534 scope whenever a template parameter list has been started, independent 3535 of whether the function call operator was well-formed or not. 3536 3537 PR c++/60064 3538 * parser.c (cp_parser_member_declaration): Pop fully implicit template 3539 scope for generic friend declarations as well as for non-friends. 3540 35412014-02-12 Paolo Carlini <paolo.carlini@oracle.com> 3542 3543 PR c++/60047 3544 * method.c (implicitly_declare_fn): A constructor of a class with 3545 virtual base classes isn't constexpr (7.1.5p4). 3546 35472014-02-05 Jan Hubicka <hubicka@ucw.cz 3548 3549 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec. 3550 35512014-02-05 Jakub Jelinek <jakub@redhat.com> 3552 3553 PR c++/58703 3554 * parser.c (cp_parser_omp_declare_reduction): Save and free 3555 declarator_obstack. 3556 35572014-02-03 Marc Glisse <marc.glisse@inria.fr> 3558 3559 PR c++/53017 3560 PR c++/59211 3561 * tree.c (handle_init_priority_attribute): Call default_conversion on 3562 the attribute argument. 3563 35642014-02-03 Paolo Carlini <paolo.carlini@oracle.com> 3565 3566 PR c++/58871 3567 * method.c (synthesized_method_walk): If vbases is non-null but 3568 is_empty is true, likewise don't worry about the virtual bases. 3569 35702014-02-01 Paolo Carlini <paolo.carlini@oracle.com> 3571 3572 PR c++/51219 3573 * typeck2.c (process_init_constructor_record): Just skip unnamed 3574 bit-fields. 3575 35762014-01-31 Jason Merrill <jason@redhat.com> 3577 3578 PR c++/59469 3579 * pt.c (mark_decl_instantiated): Call mark_needed. 3580 3581 PR c++/58672 3582 * decl2.c (handle_tls_init): Handle null init fn. 3583 3584 PR c++/55800 3585 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable. 3586 35872014-01-31 Paolo Carlini <paolo.carlini@oracle.com> 3588 3589 PR c++/59082 3590 * class.c (build_vfield_ref): Early return error_mark_node if 3591 TYPE_VFIELD (type) is null. 3592 (build_base_path): Check return value of build_vfield_ref. 3593 35942014-01-31 Jason Merrill <jason@redhat.com> 3595 3596 PR c++/59646 3597 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P. 3598 [ck_list]: Check for error_mark_node. 3599 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing. 3600 3601 PR c++/57043 3602 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check 3603 during partial ordering. 3604 36052014-01-31 Marek Polacek <polacek@redhat.com> 3606 3607 PR c/59963 3608 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter. 3609 36102014-01-30 Jason Merrill <jason@redhat.com> 3611 3612 PR c++/57899 3613 * cp-tree.h (struct saved_scope): Add x_local_specializations. 3614 (local_specializations): New macro. 3615 * pt.c (local_specializations): Remove variable. 3616 36172014-01-30 Richard Sandiford <rdsandiford@googlemail.com> 3618 3619 PR c++/58708 3620 * parser.c (make_string_pack): Use double_int::from_buffer. 3621 36222014-01-30 Marek Polacek <polacek@redhat.com> 3623 3624 PR c/59940 3625 * typeck.c (build_ptrmemfunc1): Call convert_and_check with 3626 input_location. 3627 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check 3628 with input_location. 3629 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with 3630 loc parameter. 3631 36322014-01-30 Paolo Carlini <paolo.carlini@oracle.com> 3633 3634 PR c++/58843 3635 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node. 3636 36372014-01-30 Paolo Carlini <paolo.carlini@oracle.com> 3638 3639 PR c++/58649 3640 * pt.c (lookup_template_class_1): Check start_enum return value 3641 for error_mark_node. 3642 36432014-01-30 Paolo Carlini <paolo.carlini@oracle.com> 3644 3645 * decl.c (duplicate_decls, typename_hash, typename_compare): 3646 Use TYPE_IDENTIFIER. 3647 * error.c (dump_type): Likewise. 3648 * mangle.c (dump_substitution_candidates): Likewise. 3649 36502014-01-30 Jason Merrill <jason@redhat.com> 3651 3652 PR c++/59633 3653 * decl2.c (attributes_naming_typedef_ok): New. 3654 * cp-tree.h: Declare it. 3655 * decl.c (grokdeclarator): Check it. 3656 * tree.c (no_linkage_check): Handle VECTOR_TYPE. 3657 36582014-01-29 Jason Merrill <jason@redhat.com> 3659 3660 PR c++/59707 3661 * call.c (add_builtin_candidate): Catch dependent types. 3662 3663 PR c++/59989 3664 * pt.c (expand_template_argument_pack): Correct 3665 non_default_args_count calculation. 3666 3667 PR c++/58466 3668 * pt.c (unify_pack_expansion): Call expand_template_argument_pack. 3669 3670 PR c++/59956 3671 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we 3672 have a friend template in a class template. 3673 * pt.c (tsubst_friend_function): Look through it. 3674 (push_template_decl_real): A friend member template is 3675 primary. 3676 36772014-01-29 Paolo Carlini <paolo.carlini@oracle.com> 3678 3679 PR c++/58846 3680 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node 3681 == error_mark_node. 3682 36832014-01-29 Paolo Carlini <paolo.carlini@oracle.com> 3684 3685 PR c++/58674 3686 * pt.c (instantiate_template_1): Check for error_mark_node the second 3687 argument too. 3688 36892014-01-29 Jason Merrill <jason@redhat.com> 3690 3691 PR c++/59916 3692 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for 3693 cdtor_returns_this case. 3694 3695 PR c++/59315 3696 * decl.c (cxx_maybe_build_cleanup): Call mark_used. 3697 36982014-01-29 Paolo Carlini <paolo.carlini@oracle.com> 3699 3700 PR c++/58702 3701 * semantics.c (finish_omp_reduction_clause): Check type for 3702 error_mark_node. 3703 37042014-01-28 Jason Merrill <jason@redhat.com> 3705 3706 PR c++/59791 3707 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context. 3708 (tsubst_copy): Use it if lookup fails. 3709 3710 PR c++/59818 3711 * pt.c (tsubst_function_type): Make sure we keep the same function 3712 quals. 3713 3714 PR c++/58701 3715 * semantics.c (build_anon_member_initialization): Stop walking 3716 when we run out of COMPONENT_REFs. 3717 3718 PR c++/58632 3719 * decl.c (lookup_and_check_tag): Ignore template parameters if 3720 scope == ts_current. 3721 * pt.c (check_template_shadow): Don't complain about the injected 3722 class name. 3723 3724 * decl.c (duplicate_decls): Tweak. 3725 3726 PR c++/53756 3727 * mangle.c (write_unqualified_name): Handle operator auto. 3728 37292014-01-27 Jason Merrill <jason@redhat.com> 3730 3731 PR c++/59823 3732 Core DR 1138 3733 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for 3734 list-initialization. A conversion to rvalue ref that involves 3735 an lvalue-rvalue conversion is bad. 3736 (convert_like_real): Give helpful error message. 3737 3738 PR c++/54652 3739 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL. 3740 3741 PR c++/58504 3742 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for 3743 types. 3744 3745 PR c++/58606 3746 * pt.c (template_parm_to_arg): Call convert_from_reference. 3747 (tsubst_template_arg): Don't strip reference refs. 3748 3749 PR c++/58639 3750 * call.c (build_aggr_conv): Reject value-initialization of reference. 3751 3752 PR c++/58812 3753 PR c++/58651 3754 * call.c (convert_like_real): Give helpful error about excess braces 3755 for ck_rvalue of scalar type. 3756 3757 Core DR 1288 3758 * call.c (reference_binding): Only elide braces if the single 3759 element is reference-related. 3760 3761 PR c++/58814 3762 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before 3763 stabilizing. 3764 3765 PR c++/58837 3766 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for 3767 FUNCTION_DECL. 3768 3769 PR c++/59097 3770 * decl.c (compute_array_index_type): Don't call 3771 maybe_constant_value for a non-integral expression. 3772 37732014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com> 3774 3775 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with 3776 flag_cilkplus. 3777 * cp-gimplify.c (cp_genericize): Likewise. 3778 * decl.c (grokfndecl): Likewise. 3779 * parser.c (cp_parser_postfix_expression): Likewise. 3780 (cp_parser_postfix_open_square_expression): Likewise. 3781 (cp_parser_direct_declarator): Likewise. 3782 (is_cilkplus_vector_p): Likewise. 3783 (cp_parser_omp_clause_name): Likewise. 3784 (cp_parser_omp_all_clauses): Likewise. 3785 * pt.c (apply_late_template_attributes): Likewise. 3786 * typeck.c (cp_build_array_ref): Likewise. 3787 (cp_build_compound_expr): Likewise. 3788 (check_return_expr): Likewise. 3789 37902014-01-24 Jason Merrill <jason@redhat.com> 3791 3792 PR c++/58550 3793 * decl.c (grokdeclarator): Turn pedwarn about auto return type in 3794 c++11 into error. 3795 3796 PR c++/59886 3797 PR c++/59659 3798 * typeck2.c (process_init_constructor_array): Don't create 3799 RANGE_EXPR yet. 3800 38012014-01-24 Jakub Jelinek <jakub@redhat.com> 3802 3803 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts 3804 handling for RANGE_ARRAY case. 3805 38062014-01-24 Paolo Carlini <paolo.carlini@oracle.com> 3807 3808 PR c++/57524 3809 * name-lookup.c (push_using_directive): Use timevar_cond_start. 3810 38112014-01-23 Marek Polacek <polacek@redhat.com> 3812 3813 PR c/59846 3814 * typeck.c (cp_build_binary_op): Pass location to shorten_compare. 3815 38162014-01-23 Marek Polacek <polacek@redhat.com> 3817 3818 PR c/58346 3819 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to 3820 an empty aggregate. 3821 38222014-01-23 Jason Merrill <jason@redhat.com> 3823 3824 PR c++/55189 3825 * cp-tree.h (struct language_function): Add infinite_loop and 3826 infinite_loops. 3827 (current_function_infinite_loop): New. 3828 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop) 3829 (break_maybe_infinite_loop): New. 3830 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt) 3831 (finish_do_stmt, finish_for_cond, finish_for_stmt) 3832 (begin_range_for_stmt): Use them. 3833 * decl.c (finish_function): Don't warn about missing return 3834 if current_function_infinite_loop. 3835 * pt.c (instantiate_decl): Copy current_function_infinite_loop. 3836 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop. 3837 3838 * call.c (build_op_delete_call): Use make_tree_vector and 3839 release_tree_vector. 3840 38412014-01-23 Paolo Carlini <paolo.carlini@oracle.com> 3842 3843 PR c++/58980 3844 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as 3845 nested_name_specifier. 3846 38472014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com> 3848 3849 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled 3850 see if there is an attribute after function decl. If so, then 3851 parse them now. 3852 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD 3853 enabled function late parsing. 3854 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector 3855 attribute for a SIMD-enabled function. 3856 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when 3857 the function is used by SIMD-enabled function (indicated by NULL 3858 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK, 3859 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH 3860 (cp_parser_cilk_simd_vectorlength): Modified this function to handle 3861 vectorlength clause in SIMD-enabled function and #pragma SIMD's 3862 vectorlength clause. Added a new bool parameter to differentiate 3863 between the two. 3864 (cp_parser_cilk_simd_fn_vector_attrs): New function. 3865 (is_cilkplus_vector_p): Likewise. 3866 (cp_parser_late_parsing_elem_fn_info): Likewise. 3867 (cp_parser_omp_clause_name): Added a check for "mask", "nomask" 3868 and "vectorlength" clauses when Cilk Plus is enabled. 3869 (cp_parser_omp_clause_linear): Added a new parameter of type bool 3870 and emit a sorry message when step size is a parameter. 3871 * parser.h (cp_parser::cilk_simd_fn_info): New field. 3872 * decl.c (grokfndecl): Added flag_enable_cilkplus along with 3873 flag_openmp. 3874 * pt.c (apply_late_template_attributes): Likewise. 3875 38762014-01-23 Jakub Jelinek <jakub@redhat.com> 3877 3878 PR middle-end/58809 3879 * semantics.c (finish_omp_reduction_clause): Reject 3880 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs. 3881 38822014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com> 3883 3884 PR c++/59482 3885 * parser.c (cp_parser_class_head): Push the class before parsing 3886 the base-clause, pop after it. 3887 38882014-01-20 Eric Botcazou <ebotcazou@adacore.com> 3889 3890 * decl2.c (cpp_check): Revert prototype change. 3891 38922014-01-17 Paolo Carlini <paolo.carlini@oracle.com> 3893 3894 PR c++/59270 3895 PR c++/58811 3896 * init.c (build_value_init_noctor): Don't pass error_mark_node to 3897 build_value_init. 3898 38992014-01-17 Paolo Carlini <paolo.carlini@oracle.com> 3900 3901 PR c++/59269 3902 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT 3903 only when errorcount == 0. 3904 39052014-01-17 Marek Polacek <polacek@redhat.com> 3906 3907 PR c++/59838 3908 * cvt.c (ocp_convert): Don't segfault on non-existing 3909 ENUM_UNDERLYING_TYPE. 3910 39112014-01-16 Jason Merrill <jason@redhat.com> 3912 3913 PR c++/59821 3914 * tree.c (bot_manip): Update the location of builtin_LINE and 3915 builtin_FILE calls. 3916 39172014-01-14 Jason Merrill <jason@redhat.com> 3918 3919 PR c++/59659 3920 * typeck2.c (massage_init_elt): New. 3921 (process_init_constructor_record) 3922 (process_init_constructor_union): Use it. 3923 (process_init_constructor_array): Use it. Use RANGE_EXPR. 3924 (split_nonconstant_init_1): Handle it. 3925 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue. 3926 39272014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> 3928 3929 PR c++/59631 3930 * parser.c (cp_parser_postfix_expression): Added a new if-statement 3931 and replaced an existing if-statement with else-if statement. 3932 Changed an existing error message wording to match the one from the C 3933 parser. 3934 39352014-01-08 Jason Merrill <jason@redhat.com> 3936 3937 PR c++/59614 3938 * class.c (abi_tag_data): Add tags field. 3939 (check_abi_tags): Initialize it. 3940 (find_abi_tags_r): Support collecting missing tags. 3941 (mark_type_abi_tags): Don't look at template args. 3942 (inherit_targ_abi_tags): New. 3943 (check_bases_and_members): Use it. 3944 * cp-tree.h (ABI_TAG_IMPLICIT): New. 3945 * mangle.c (write_abi_tags): Check it. 3946 39472014-01-07 Jason Merrill <jason@redhat.com> 3948 3949 PR c++/58856 3950 * pt.c (num_innermost_template_parms): New. 3951 (get_underlying_template): Use it. 3952 3953 PR c++/58965 3954 * mangle.c (write_guarded_var_name): Handle null DECL_NAME. 3955 39562014-01-07 Paolo Carlini <paolo.carlini@oracle.com> 3957 3958 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement 3959 the letter of 20.11.6 about Base and Derived naming the same 3960 class type modulo cv-qualifiers. 3961 39622014-01-06 Adam Butcher <adam@jessamine.co.uk> 3963 3964 PR c++/59635 3965 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion 3966 function as unimplemented for generic lambdas with varargs. 3967 3968 PR c++/59636 3969 * parser.c (cp_parser_template_parameter): Early out with 3970 error_mark_node if parameter declaration was not parsed. 3971 3972 PR c++/59629 3973 * parser.c (cp_parser_lambda_expression): Save/reset/restore 3974 auto_is_implicit_function_template_parm_p around lambda body. 3975 3976 PR c++/59638 3977 * parser.c (cp_parser_init_declarator): Undo fully implicit 3978 template parameter list when declarator is not a function. 3979 39802014-01-03 Marc Glisse <marc.glisse@inria.fr> 3981 3982 PR c++/58950 3983 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR. 3984 39852014-01-03 Tobias Burnus <burnus@net-b.de> 3986 3987 PR c++/58567 3988 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node. 3989 39902014-01-03 Paolo Carlini <paolo.carlini@oracle.com> 3991 3992 Core DR 1442 3993 PR c++/59165 3994 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true 3995 as include_std to perform_koenig_lookup. 3996 (cp_parser_postfix_expression): Adjust. 3997 * pt.c (tsubst_copy_and_build): Likewise. 3998 * semantics.c (perform_koenig_lookup): Remove bool parameter. 3999 (omp_reduction_lookup): Adjust. 4000 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter. 4001 (lookup_arg_dependent): Likewise. 4002 (lookup_function_nonclass): Adjust. 4003 * name-lookup.h: Adjust declaration. 4004 * cp-tree.h: Likewise. 4005 40062014-01-02 Marc Glisse <marc.glisse@inria.fr> 4007 4008 PR c++/59087 4009 * parser.c (cp_parser_userdef_numeric_literal): Mention 4010 -fext-numeric-literals in the message. 4011 40122014-01-02 Marc Glisse <marc.glisse@inria.fr> 4013 4014 PR c++/59641 4015 * call.c (build_conditional_expr_1): Check the return value of 4016 force_rvalue. 4017 40182014-01-02 Marc Glisse <marc.glisse@inria.fr> 4019 4020 * call.c (convert_like_real): Check complain. 4021 40222014-01-02 Marc Glisse <marc.glisse@inria.fr> 4023 4024 PR c++/59378 4025 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments 4026 in templates. 4027 40282014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 4029 4030 Update copyright years 4031 40322014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 4033 4034 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use 4035 the standard form for the copyright notice. 4036 4037Copyright (C) 2014 Free Software Foundation, Inc. 4038 4039Copying and distribution of this file, with or without modification, 4040are permitted in any medium without royalty provided the copyright 4041notice and this notice are preserved. 4042