2019-11-14  Release Manager

	* GCC 7.5.0 released.

2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from mainline
	2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>

	PR pch/61250
	* parser.c (cp_parser_initial_pragma): Call c_common_no_more_pch ()
	after determining that the first token is not
	PRAGMA_GCC_PCH_PREPROCESS.

2019-09-02  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-02-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/89392
	* vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
	make symtab process new functions here.

2019-08-30  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2019-06-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/90950
	* semantics.c (finish_omp_clauses): Don't reject references to
	incomplete types if processing_template_decl.

	2019-05-10  Jakub Jelinek  <jakub@redhat.com>

	PR pch/90326
	* config-lang.in (gtfiles): Remove c-family/c-lex.c, add
	c-family/c-cppbuiltin.c.

	2019-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/90108
	* decl.c (duplicate_decls): If remove is main variant and
	DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE
	variant that has newdecl as TYPE_NAME if any.

	2019-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/89933
	* decl.c (duplicate_decls): When newdecl's type is its main variant,
	don't try to remove it from the variant list, but instead assert
	it has no variants.

	2019-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/89869
	* typeck.c: Include gimplify.h.
	(cp_build_modify_expr) <case COND_EXPR>: Unshare rhs before using it
	for second time.  Formatting fixes.

	2019-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89796
	* semantics.c (finish_omp_atomic): Add warning_sentinel for
	-Wunused-value around finish_expr_stmt call.

	2019-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/60702
	* cp-tree.h (get_tls_wrapper_fn): Remove declaration.
	(maybe_get_tls_wrapper_call): Declare.
	* decl2.c (get_tls_wrapper_fn): Make static.
	(maybe_get_tls_wrapper_call): New function.
	* typeck.c (build_class_member_access_expr): Handle accesses to TLS
	variables.
	* semantics.c (finish_qualified_id_expr): Likewise.
	(finish_id_expression_1): Use maybe_get_tls_wrapper_call.
	* pt.c (tsubst_copy_and_build): Likewise.

	2019-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89767
	* parser.c (cp_parser_lambda_introducer): Add ids and first_capture_id
	variables, check for duplicates in this function.
	* lambda.c (add_capture): Don't check for duplicates nor use
	IDENTIFIER_MARKED.
	(register_capture_members): Don't clear IDENTIFIER_MARKED here.

	2019-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89512
	* semantics.c (finish_qualified_id_expr): Reject variable templates.

	2019-03-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/87148
	* init.c (build_value_init_noctor): Ignore flexible array members.

	2019-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89403
	* decl2.c (c_parse_final_cleanups): Move TREE_ASM_WRITTEN setting
	for flag_syntax_only from here...
	* semantics.c (expand_or_defer_fn_1): ... here.

	2019-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89187
	* optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on
	PARM_DECLs of the thunk.
	* lambda.c (maybe_add_lambda_conv_op): Likewise.

	2019-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/88976
	* semantics.c (finish_omp_cancel): Use maybe_convert_cond when not in
	template or build_x_binary_op otherwise.

	2019-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/88949
	* optimize.c (cxx_copy_decl): New function.
	(clone_body): Use it instead of copy_decl_no_change.

	2018-12-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/86669
	* call.c (make_temporary_var_for_ref_to_temp): Call pushdecl even for
	automatic vars.

	PR c++/87506
	* constexpr.c (adjust_temp_type): Handle EMPTY_CLASS_EXPR.

	2018-12-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/88103
	* typeck.c (build_class_member_access_expr): If unary_complex_lvalue
	turned xvalue_p into non-xvalue_p, call move on it.

	2018-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/88181
	* class.c (fixup_attribute_variants): Also propagate TYPE_PACKED
	to variants.

2019-04-10  Matthias Klose  <doko@ubuntu.com>

	Backport from the gcc-8 branch
	2019-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89585
	* parser.c (cp_parser_asm_definition): Parse asm qualifiers even
	at toplevel, but diagnose them.

2018-01-02  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from trunk
	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>

	PR inline-asm/55681
	* parser.c (cp_parser_asm_definition): Update grammar.  Allow any
	combination of volatile and goto, in any order, without repetitions.

	Backport from trunk
	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>

	* cp-tree.h (finish_asm_stmt): Update declaration.
	* parser.c (cp_parser_asm_definition): Detect the inline keyword
	after asm.  Pass a flag for it to finish_asm_stmt.
	* pt.c (tsubst_expr): Pass the ASM_INLINE_P flag to finish_asm_stmt.
	* semantics.c (finish_asm_stmt): Add inline_p parameter.  Use it to
	set ASM_INLINE_P.

	Backport from trunk
	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>

	* parser.c (cp_parser_asm_definition): Rewrite the loop to work without
	"done" boolean variable.

	Backport from trunk
	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>

	* parser.c (cp_parser_asm_definition): Rewrite the loop to work without
	"done" boolean variable.
	* parser.c (cp_parser_asm_definition): Keep track of the location each
	asm qualifier is first seen; use that to give nicer "duplicate asm
	qualifier" messages.

	Backport from trunk
	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>

	* parser.c (cp_parser_asm_definition) <RID_CONST, RID_RESTRICT>: Give
	a more specific error message (instead of just falling through).

	Backport from trunk
	2018-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	* parser.c (cp_parser_asm_definition): Do not allow any asm qualifiers
	on top-level asm.

2018-12-06  Release Manager

	* GCC 7.4.0 released.

2018-11-26  Richard Biener  <rguenther@suse.de>

	PR c++/84281
	* constexpr.c (cxx_eval_vec_init_1): Use a RANGE_EXPR to compact
	uniform constructors and delay allocating them fully.

2018-11-26  Jason Merrill  <jason@redhat.com>

	PR c++/87075 - ICE with constexpr array initialization.
	* constexpr.c (cxx_eval_vec_init_1): Handle trivial initialization.

2018-10-23  Tom de Vries  <tdevries@suse.de>

	backport from trunk:
	2018-07-31  Tom de Vries  <tdevries@suse.de>

	PR debug/86687
	* optimize.c (update_cloned_parm): Copy DECL_BY_REFERENCE.

2018-10-12  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2018-07-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/3698
	PR c++/86208
	* cp-gimplify.c (cp_genericize_r): When using extern_decl_map, or
	in TREE_USED flag from stmt to h->to.

2018-08-17  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2018-08-02  Richard Biener  <rguenther@suse.de>

	PR c++/86763
	* class.c (layout_class_type): Copy TYPE_TYPELESS_STORAGE
	to the CLASSTYPE_AS_BASE.

2018-08-10  Jason Merrill  <jason@redhat.com>

	PR c++/86728 - C variadic generic lambda.
	* parser.c (cp_parser_parameter_declaration): Don't turn 'auto' into
	a pack if it's followed by a declarator-id.

2018-07-03  Jason Merrill  <jason@redhat.com>

	PR c++/86378 - functional cast in noexcept-specifier.
	* tree.c (strip_typedefs_expr) [TREE_LIST]: Fix iteration.

2018-06-26  Jason Merrill  <jason@redhat.com>

	PR c++/80290 - memory-hog with std::pair.
	* pt.c (type_unification_real): Skip non-dependent conversion
	check for a nested list argument.
	(braced_init_depth): New.

2018-06-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/86291
	* parser.c (cp_parser_omp_for_loop_init): Change for_block argument
	type from vec<tree, va_gc> * to vec<tree, va_gc> *&.

2018-06-22  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2018-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85952
	* init.c (build_aggr_init): For structured binding initialized from
	array call mark_rvalue_use on the initializer.

	2018-05-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/85696
	* cp-tree.h (cxx_omp_predetermined_sharing_1): New prototype.
	* cp-gimplify.c (cxx_omp_predetermined_sharing): New wrapper around
	cxx_omp_predetermined_sharing_1.  Rename old function to ...
	(cxx_omp_predetermined_sharing_1): ... this.
	* semantics.c (finish_omp_clauses): Use cxx_omp_predetermined_sharing_1
	instead of cxx_omp_predetermined_sharing.

	2018-05-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85662
	* cp-gimplify.c (cp_fold): Use fold_offsetof rather than
	fold_offsetof_1, pass TREE_TYPE (x) as TYPE to it and drop the
	fold_convert.

	2018-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84463
	* typeck.c (cp_build_addr_expr_1): Move handling of offsetof-like
	tricks from here to ...
	* cp-gimplify.c (cp_fold) <case ADDR_EXPR>: ... here.  Only use it
	if INDIRECT_REF's operand is INTEGER_CST cast to pointer type.

	2018-04-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85210
	* pt.c (tsubst_decomp_names): Return error_mark_node and assert
	errorcount is set if tsubst doesn't return a VAR_DECL.

	2018-04-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85208
	* decl.c (start_decl): For DECL_DECOMPOSITION_P decls, don't call
	maybe_apply_pragma_weak here...
	(cp_maybe_mangle_decomp): ... but call it here instead.

	2018-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/85172
	* constexpr.c (cxx_eval_builtin_function_call): For calls to
	builtin_valid_in_constant_expr_p functions, don't call
	cxx_eval_constant_expression if argument is not
	potential_constant_expression.

	2018-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85147
	* pt.c (fixed_parameter_pack_p_1): Punt if parm is error_mark_node.

	PR c++/85140
	* name-lookup.c (handle_namespace_attrs): Return early if attributes
	is error_mark_node.

	2018-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84791
	* semantics.c (finish_omp_reduction_clause): If
	OMP_CLAUSE_REDUCTION_PLACEHOLDER is error_mark_node, return true
	even if processing_template_decl.

	2018-03-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85076
	* tree.c (cp_build_reference_type): If to_type is error_mark_node,
	return it right away.

	PR c++/85068
	* class.c (update_vtable_entry_for_fn): Don't ICE if base_binfo
	is NULL.  Assert if thunk_binfo is NULL then errorcount is non-zero.

	2018-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84961
	* cp-tree.h (genericize_compound_lvalue): Declare.
	* typeck.c (genericize_compound_lvalue): New function.
	(unary_complex_lvalue, cp_build_modify_expr): Use it.
	* semantics.c (finish_asm_stmt): Replace MODIFY_EXPR, PREINCREMENT_EXPR
	and PREDECREMENT_EXPR in output and "m" constrained input operands with
	COMPOUND_EXPR.  Call cxx_mark_addressable on the rightmost
	COMPOUND_EXPR operand.

	2018-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84874
	* decl.c (reshape_init_class): Don't assert d->cur->index == field
	if d->cur->index is a FIELD_DECL, instead set field to d->cur->index.

	2018-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84222
	* cp-tree.h (cp_warn_deprecated_use): Declare.
	* tree.c (cp_warn_deprecated_use): New function.
	* typeck2.c (build_functional_cast): Use it.
	* decl.c (grokparms): Likewise.
	(grokdeclarator): Likewise.  Temporarily push nested class scope
	around grokparms call for out of class member definitions.

	2018-03-09  Jason Merrill  <jason@redhat.com>
		    Jakub Jelinek  <jakub@redhat.com>

	PR c++/84076
	* call.c (convert_arg_to_ellipsis): Instead of cp_build_addr_expr
	build ADDR_EXPR with REFERENCE_TYPE.
	(build_over_call): For purposes of check_function_arguments, if
	argarray[j] is ADDR_EXPR with REFERENCE_TYPE created above, use
	its operand rather than the argument itself.

	2018-03-08  Jason Merrill  <jason@redhat.com>
		    Jakub Jelinek  <jakub@redhat.com>

	PR c++/80598
	* call.c (build_over_call): In templates set TREE_USED (first_fn) when
	not calling mark_used for the benefit of -Wunused-function warning.

	2018-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84662
	* pt.c (tsubst_copy_and_build) <case TEMPLATE_ID_EXPR>: Use
	RETURN instead of return.
	<case POINTER_PLUS_EXPR>: Likewise.
	<case CONVERT_EXPR>: If op0 is error_mark_node, just return
	it instead of wrapping it into CONVERT_EXPR.

2018-06-12  Jason Merrill  <jason@redhat.com>

	PR c++/85815 - reference to member of enclosing template.
	* parser.c (cp_parser_postfix_dot_deref_expression): Check
	currently_open_class.

	PR c++/86060 - ICE on range for with -std=c++98.
	* parser.c (cp_parser_init_statement): Don't clobber *decl after
	pedwarn.

2018-05-07  Jason Merrill  <jason@redhat.com>

	PR c++/85646 - lambda visibility.
	* decl2.c (determine_visibility): Don't mess with template arguments
	from the containing scope.
	(vague_linkage_p): Check DECL_ABSTRACT_P before looking at a 'tor
	thunk.

2018-04-23  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Backport from mainline
	2018-04-05  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement P0969
	* decl.c (find_decomp_class_base): Check accessibility instead
	of declared access, adjust diagnostic.

2018-04-23  Jakub Jelinek  <jakub@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/85470 - wrong error with static data member.
	* decl.c (check_initializer): Check DECL_INITIALIZED_IN_CLASS_P.
	* typeck2.c (store_init_value): Likewise.

2018-04-23  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Backport from mainline
	2018-04-05  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement P0961
	* decl.c (get_tuple_decomp_init): Check the templatedness
	of a member get.

2018-04-19  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/85464 - missing location for -Wignored-qualifiers diagnostic
	* decl.c (grokdeclarator): If declspecs->locations[ds_type_spec]
	is UNKNOWN_LOCATION fall back to input_location.

2018-04-09  Jason Merrill  <jason@redhat.com>

	PR c++/85279 - dump_expr doesn't understand decltype.
	* error.c (dump_expr): Handle DECLTYPE_TYPE.

2018-04-05  Jason Merrill  <jason@redhat.com>

	PR c++/82152 - ICE with class deduction and inherited ctor.
	* pt.c (do_class_deduction): Ignore inherited ctors.

	PR c++/84665 - ICE with array of empty class.
	* decl2.c (cp_check_const_attributes): Use fold_non_dependent_expr.

	PR c++/85006 - -fconcepts ICE with A<auto...> return type
	* pt.c (tsubst_pack_expansion): Allow unsubstituted auto pack.

2018-04-04  Jason Merrill  <jason@redhat.com>

	PR c++/85118 - wrong error with generic lambda and std::bind.
	* call.c (add_template_conv_candidate): Disable if there are any
	call operators.

	PR c++/85148 - ICE with 'this' in array NSDMI.
	* tree.c (replace_placeholders_r): Use handled_component_p.

2018-04-03  Jason Merrill  <jason@redhat.com>

	PR c++/85113 - ICE with constexpr and __builtin_constant_p.
	* constexpr.c (cxx_eval_builtin_function_call): Only defer
	__builtin_constant_p if ctx->quiet.

	* typeck.c (merge_types): Limit matching attribute shortcut to
	the default case.

	PR c++/64095 - auto... parameter pack.
	* parser.c (cp_parser_parameter_declaration): Handle turning autos
	into packs here.
	(cp_parser_parameter_declaration_list): Not here.

	PR c++/85060 - wrong-code with call to base member in template.
	* search.c (any_dependent_bases_p): Check uses_template_parms
	rather than processing_template_decl.

2018-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Backport from mainline
	2018-03-23  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement P0962
	* parser.c (cp_parser_perform_range_for_lookup): Change
	the condition for deciding whether to use members.

2018-03-23  Jason Merrill  <jason@redhat.com>

	PR c++/78489 - Substitution in wrong order
	PR c++/84489
	* pt.c (type_unification_real): Revert last two changes.

	PR c++/71834 - template-id with too few arguments.
	* pt.c (coerce_template_parms): Make sure we gave an error.

	PR c++/84937 - ICE with class deduction and auto.
	* pt.c (rewrite_template_parm): Fix auto handling.

	PR c++/80227 - SFINAE and negative array size.
	* decl.c (compute_array_index_type): Convert to signed for negative
	check.

	PR c++/84839 - ICE with decltype of parameter pack.
	* pt.c (tsubst_pack_expansion): Set cp_unevaluated_operand while
	instantiating dummy parms.

	PR c++/84798 - ICE with auto in abstract function declarator.
	* parser.c (cp_parser_parameter_declaration_clause): Check
	parser->default_arg_ok_p.

	PR c++/84355 - ICE with deduction for member class template.
	* pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Always substitute into
	CLASS_PLACEHOLDER_TEMPLATE.

2018-03-23  Paolo Carlini  <paolo.carlini@oracle.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/82336 - link error with list-init default argument.
	* decl.c (check_default_argument): Unshare an initializer list.

2018-03-22  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2018-03-22  Marek Polacek  <polacek@redhat.com>

	PR c++/84854
	* semantics.c (finish_if_stmt_cond): Check if the type of the condition
	is boolean.

	2018-03-19  Marek Polacek  <polacek@redhat.com>

	PR c++/84927
	* constexpr.c (cxx_eval_bare_aggregate): Update constructor's flags
	as we evaluate the elements.
	(cxx_eval_constant_expression): Verify constructor's flags
	unconditionally.

	2018-03-21  Marek Polacek  <polacek@redhat.com>

	PR c++/71638, ICE with NSDMI and reference.
	* constexpr.c (cxx_eval_bare_aggregate): Update constructor's flags
	even when we replace an element.

2018-03-09  Jason Merrill  <jason@redhat.com>

	PR c++/84785 - ICE with alias template and default targs.
	* pt.c (type_unification_real): Set processing_template_decl if
	saw_undeduced == 1.

2018-03-07  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2018-03-06  Marek Polacek  <polacek@redhat.com>

	PR c++/84684
	* constexpr.c (cxx_bind_parameters_in_call): Unshare evaluated
	arguments.

2018-03-03  Jason Merrill  <jason@redhat.com>

	PR c++/84686 - missing volatile loads.
	* cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref.

2018-03-03  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2018-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84558
	* constexpr.c (cxx_eval_vec_init_1): For reuse, treat NULL eltinit like
	a valid constant initializer.  Formatting fixes.

	PR c++/84557
	* parser.c (cp_parser_omp_var_list_no_open): Only call
	cp_parser_lookup_name_simple on names satisfying identifier_p.
	(cp_parser_oacc_routine): Likewise.

	2018-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84445
	* class.c (fixed_type_or_null) <case CALL_EXPR>: Only test
	TREE_HAS_CONSTRUCTOR if instance is not an internal function call.

	PR c++/84449
	* tree.c (bot_manip): If build_cplus_new or break_out_target_exprs
	returns error_mark_node, return it immediately.
	(break_out_target_exprs): If cp_walk_tree with bot_manip returns
	error_mark_node, return error_mark_node.

	2018-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84448
	* parser.c (cp_parser_binary_expression): For no_toplevel_fold_p, if
	either operand is error_mark_node, set current.lhs to that instead of
	creating a binary op with error_mark_node operands.

	PR c++/84430
	* constexpr.c (potential_constant_expression_1): Handle OMP_SIMD.

	2018-02-16  Marek Polacek  <polacek@redhat.com>
		    Jakub Jelinek  <jakub@redhat.com>

	PR c++/84192
	* constexpr.c (cxx_eval_constant_expression) <case RETURN_EXPR>: Don't
	set *jump_target to anything if jump_target is NULL.

	2018-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84341
	* parser.c (cp_parser_binary_expression): Use build_min instead of
	build2_loc to build the no_toplevel_fold_p toplevel binary expression.

	2018-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/83987
	* tree.c (cp_free_lang_data): Revert 2018-01-23 change.

	2018-02-09  Marek Polacek  <polacek@redhat.com>
		    Jakub Jelinek  <jakub@redhat.com>

	PR c++/83659
	* constexpr.c (cxx_fold_indirect_ref): Sync some changes from
	fold_indirect_ref_1.  Verify first that tree_fits_shwi_p (op01).
	Formatting fixes.

	2018-02-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84082
	* parser.c (cp_parser_dot_deref_incomplete): New function.
	(cp_parser_postfix_dot_deref_expression): Use it.

	2018-01-31  Jason Merrill  <jason@redhat.com>
		    Jakub Jelinek  <jakub@redhat.com>

	PR c++/83993
	* constexpr.c (cxx_eval_outermost_constant_expr): Build NOP_EXPR
	around non-constant ADDR_EXPRs rather than clearing TREE_CONSTANT
	on ADDR_EXPR.

	2018-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84031
	* decl.c (find_decomp_class_base): Ignore unnamed bitfields.  Ignore
	recursive calls that return ret.
	(cp_finish_decomp): Ignore unnamed bitfields.

	2018-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/83987
	* tree.c (cp_free_lang_data): Change DECL_VALUE_EXPR of
	DECL_OMP_PRIVATIZED_MEMBER vars to error_mark_node.

	PR c++/83958
	* decl.c (cp_finish_decomp): Diagnose if reference structure binding
	refers to incomplete type.

	2018-01-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/83824
	* parser.c (attr_chainon): New function.
	(cp_parser_label_for_labeled_statement, cp_parser_decl_specifier_seq,
	cp_parser_namespace_definition, cp_parser_init_declarator,
	cp_parser_type_specifier_seq, cp_parser_parameter_declaration,
	cp_parser_gnu_attributes_opt): Use it.
	(cp_parser_member_declaration, cp_parser_objc_class_ivars,
	cp_parser_objc_struct_declaration): Likewise.  Don't reset
	prefix_attributes if attributes is error_mark_node.

	2018-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/83817
	* pt.c (tsubst_copy_and_build) <case CALL_EXPR>: If function
	is AGGR_INIT_EXPR rather than CALL_EXPR, set AGGR_INIT_FROM_THUNK_P
	instead of CALL_FROM_THUNK_P.

2018-03-02  Jason Merrill  <jason@redhat.com>

	Fix MIPS16 ICE.
	* pt.c (type_dependent_expression_p): Check DECL_LANG_SPECIFIC.

2018-02-27  Jason Merrill  <jason@redhat.com>

	PR c++/84489 - dependent default template argument
	* pt.c (type_unification_real): Handle early substitution failure.

2018-03-01  Jason Merrill  <jason@redhat.com>

	PR c++/71569 - decltype of template.
	* parser.c (cp_parser_decltype_expr): Handle missing template args.

2018-03-01  Jason Merrill  <jason@redhat.com>
	    Alexandre Oliva <aoliva@redhat.com>

	PR c++/71569 - ICE with redundant args on member variable template.
	* decl.c (start_decl): Handle partial specialization of member
	variable template.
	* pt.c (determine_specialization): Allow partial specialization
	of member variable template without specializing enclosing class.
	(process_partial_specialization): Improve error message.

2018-02-28  Jason Merrill  <jason@redhat.com>

	PR c++/71784 - ICE with ref-qualifier and explicit specialization.
	* pt.c (determine_specialization): Check ref-qualifier.

2018-02-27  Jason Merrill  <jason@redhat.com>

	PR c++/84496 - ICE with generic lambda in lambda.
	* pt.c (type_dependent_expression_p): Fix dependency checking of
	functions without DECL_TEMPLATE_INFO.

2018-02-26  Jason Merrill  <jason@redhat.com>

	PR c++/84441 - ICE with base initialized from ?:
	* call.c (unsafe_copy_elision_p): Handle COND_EXPR.

	PR c++/84520 - ICE with generic lambda in NSDMI.
	* lambda.c (lambda_expr_this_capture): Don't look for fake NSDMI
	'this' in a generic lambda instantiation.

2018-02-26  Jason Merrill  <jason@redhat.com>
	    Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR c++/81589 - error with is_trivially_constructible.
	* method.c (constructible_expr): Set cp_unevaluated.

2018-02-25  Jason Merrill  <jason@redhat.com>

	PR c++/84015 - ICE with class deduction and auto template parm.
	* pt.c (rewrite_template_parm): Use tf_partial in first tsubst.

2018-02-19  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2017-08-29  Jason Merrill  <jason@redhat.com>

	Fix lambdas in template default argument of inherited ctor.
	* method.c (synthesized_method_base_walk): Replace an inherited
	template with its specialization.
	(synthesized_method_walk): Make inheriting_ctor a pointer.
	(maybe_explain_implicit_delete, explain_implicit_non_constexpr)
	(deduce_inheriting_ctor, implicitly_declare_fn): Adjust.

2018-02-16  Jason Merrill  <jason@redhat.com>

	PR c++/84151 - unnecessary volatile load with static member.
	* call.c (build_new_method_call_1): Avoid loading from a volatile
	lvalue used as the object argument for a static member function.

	PR c++/81853 - using-directive and constexpr.
	* constexpr.c (cxx_eval_constant_expression): Handle USING_STMT.

	PR c++/84420 - ICE with structured binding in lambda.
	* lambda.c (is_capture_proxy): Check DECL_DECOMPOSITION_P.

	PR c++/83835 - C++17 error with constructor ctors.
	* call.c (build_special_member_call): Set TARGET_EXPR_DIRECT_INIT_P.

	PR c++/82664 - ICE with reference to function template parm.
	* pt.c (convert_nontype_argument_function): Avoid obfuscationg
	NOP_EXPRs.

	PR c++/82764 - C++17 ICE with empty base
	* class.c (build_base_field_1): Set DECL_SIZE to zero for empty base.

	PR c++/83227 - C++17 ICE with init-list derived-to-base conversion.
	* call.c (convert_like_real): Don't use the copy-list-initialization
	shortcut for ck_base.

	PR c++/84045 - ICE with typedef and noexcept.
	* except.c (build_noexcept_spec): Use strip_typedefs_expr.

2018-01-29  Jason Merrill  <jason@redhat.com>

	PR c++/82461 - constexpr list-initialized member
	* constexpr.c (potential_constant_expression_1): Check
	TARGET_EXPR_DIRECT_INIT_P.

2018-01-26  Nathan Sidwell  <nathan@acm.org>

	PR c++/82878
	PR c++/78495
	* call.c (build_call_a): Don't set CALL_FROM_THUNK_P for inherited
	ctor.
	* cp-gimplify.c	(cp_genericize_r): Restore THUNK dereference
	inhibibition check removed in previous c++/78495 change.

2018-01-25  Release Manager

	* GCC 7.3.0 released.

2018-01-17  Jason Merrill  <jason@redhat.com>

	PR c++/81843 - ICE with variadic member template.
	PR c++/72801
	* pt.c (unify_pack_expansion): Don't try to deduce enclosing
	template args.

	PR c++/82331 - ICE with variadic partial specialization of auto
	* pt.c (unify) [TEMPLATE_PARM_INDEX]: Set processing_template_decl
	around call to tsubst.

	PR c++/82760 - memory corruption with aligned new.
	* call.c (build_operator_new_call): Update *args if we add the
	align_arg.

2018-01-02  Jakub Jelinek  <jakub@redhat.com>

	PR c++/83556
	* tree.c (replace_placeholders_r): Pass NULL as last argument to
	cp_walk_tree instead of d->pset.  If non-TREE_CONSTANT and
	non-PLACEHOLDER_EXPR tree has been seen already, set *walk_subtrees
	to false and return.
	(replace_placeholders): Pass NULL instead of &pset as last argument
	to cp_walk_tree.

2017-12-19  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2017-12-18  Marek Polacek  <polacek@redhat.com>

	PR c++/83116
	* constexpr.c (cxx_eval_call_expression): Only look into
	constexpr_call_table if ctx->strict.

2017-12-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2017-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/83205
	* decl.c (cp_finish_decomp): Handle the case when tsize is not
	error_mark_node, but doesn't fit into uhwi.  Split up count != eltscnt
	and !tree_fits_uhwi_p (tsize) error_at calls into error_n and inform_n
	to handle plural forms properly.

	PR c++/81197
	* cp-tree.h (cp_maybe_mangle_decomp): Declare.
	* decl.c (cp_maybe_mangle_decomp): New function.
	(cp_finish_decomp): Don't SET_DECL_ASSEMBLER_NAME here.
	* parser.c (cp_convert_range_for,
	cp_parser_decomposition_declaration): Call cp_maybe_mangle_decomp.
	* pt.c (tsubst_expr): Likewise.
	* mangle.c (find_decomp_unqualified_name): New function.
	(write_unqualified_name): Handle DECL_DECOMPOSITION_P
	where DECL_ASSEMBLER_NAME is already set.

2017-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/83217
	* decl.c (cp_finish_decomp): If decl's type is REFERENCE_TYPE,
	call complete_type (TREE_TYPE (type)).

	Backported from mainline
	2017-12-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79650
	* pt.c (convert_nontype_argument): Diagnose
	reduced_constant_expression_p expressions that aren't INTEGER_CST.

	2017-12-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80259
	* decl2.c (grokfield): Diagnose = delete redefinition of a friend.

	2017-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/81888
	* parser.c (cp_parser_decomposition_declaration): Reject just
	BRACE_ENCLOSED_INITIALIZER_P initializers with nelts != 1 rather
	than all such CONSTRUCTORs, and only if is_direct_init is true.

	PR c++/81675
	* cp-gimplify.c (cp_fold) <case COND_EXPR>: Don't return immediately
	for VOID_TYPE_P COND_EXPRs, instead fold the operands and if op0 is
	INTEGER_CST, ensure that both op1 and op2 are non-NULL and fall
	through into normal folding, otherwise just rebuild x if any op
	changed.

	2017-11-23  Jakub Jelinek  <jakub@redhat.com>

	* parser.c (cp_parser_omp_declare): Change return type to bool from
	void, return true for declare simd.
	(cp_parser_pragma): Return cp_parser_omp_declare returned value
	rather than always false.

	2017-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/82781
	* constexpr.c (cxx_eval_vector_conditional_expression): New function.
	(cxx_eval_constant_expression) <case VEC_COND_EXPR>: Use it instead
	of cxx_eval_conditional_expression.

2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82085
	* pt.c (tsubst_copy_and_build, [INDIRECT_REF]): For a REFERENCE_REF_P,
	unconditionally call convert_from_reference.

2017-10-27  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2017-10-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/82373
	* error.c (dump_function_decl): If show_return, call dump_type_suffix
	on the same return type dump_type_prefix has been called on.

2017-10-17  Nathan Sidwell  <nathan@acm.org>

	PR c++/82560
	* call.c (build_over_call): Don't pass tf_no_cleanup to nested
	calls.

2017-10-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/82299
	* decl.c (reshape_init): Suppress warn_useless_cast for direct enum
	init.
	* typeck.c (convert_for_assignment): Likewise.

2017-10-05  Jason Merrill  <jason@redhat.com>

	* call.c (convert_arg_to_ellipsis): Use the result of force_rvalue.

2017-10-04  Jason Merrill  <jason@redhat.com>

	PR c++/82406 - C++ error with noexcept function type
	PR c++/70029 - ICE with ref-qualifier and -flto
	* tree.c (cxx_copy_lang_qualifiers): New.
	* cp-tree.h: Declare it.
	* cp-objcp-common.h: Define LANG_HOOKS_COPY_LANG_QUALIFIERS.

	PR c++/81525 - broken handling of auto in generic lambda.
	* pt.c (tsubst_decl) [VAR_DECL]: Use strip_innermost_template_args.

2017-09-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/81926
	* cp-objcp-common.c (cp_get_debug_type): Do only one lookup

2017-09-22  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/81929
	* tree.c (struct replace_placeholders_t): Add pset field.
	(replace_placeholders_r): Call cp_walk_tree with d->pset as
	last argument instead of NULL.  Formatting fix.
	(replace_placeholders): Add pset variable, add its address
	into data.  Pass &pset instead of NULL to cp_walk_tree.

2017-09-18  Jason Merrill  <jason@redhat.com>

	PR c++/81236 - ICE with template-id in generic lambda
	* parser.c (parsing_default_capturing_generic_lambda): Don't check
	for enclosing template.
	* semantics.c (finish_qualified_id_expr): Call it.
	* cp-tree.h: Adjust.

	PR c++/80767 - unnecessary instantiation of generic lambda
	PR c++/82030 - ICE inheriting from multiple lambdas
	* call.c (convert_like_real): Call build_user_type_conversion_1 if
	cand is null.
	(add_conv_candidate): Build a ck_user conversion with no candidate.

	PR c++/80935 - wrong C++17 error with lambda
	* decl.c (check_for_uninitialized_const_var): Check
	is_instantiation_of_constexpr.

	PR c++/81671 - nullptr_t template parameter
	* pt.c (convert_nontype_argument): Fix nullptr_t check.

	PR c++/81525 - wrong constant value with generic lambda
	* pt.c (tsubst_decl) [VAR_DECL]: Avoid clobbering auto.
	(tsubst_copy) [VAR_DECL]: Handle auto.

2017-09-15  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2017-09-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/81314
	* cp-gimplify.c (omp_var_to_track): Look through references.
	(omp_cxx_notice_variable): Likewise.

2017-09-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/81926
	* cp-objcp-common.c (struct debug_type_hasher): New class.
	(debug_type_hash): New variable.
	(cp_get_debug_type): Associate the OFFSET_TYPEs with the types.

2017-09-01  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2017-09-01  Marek Polacek  <polacek@redhat.com>

	PR c++/82040
	* typeck.c (cp_build_unary_op): Avoid re-entering reporting routines.

2017-08-25  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2017-08-08  Marek Polacek  <polacek@redhat.com>

	PR c++/81607
	* cp-gimplify.c (cp_fold): If folding exposed a branch of
	a COND_EXPR, convert it to the original type of the COND_EXPR, if
	they differ.		   

2017-08-14  Release Manager

	* GCC 7.2.0 released.

2017-08-09  Leonid Koppel  <lkoppel@uwaterloo.ca>

	PR c++/67054 - Inherited ctor with non-default-constructible members
	* method.c (walk_field_subobs) Consider member initializers (NSDMIs)
	when deducing an inheriting constructor.

2017-07-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71570
	* lambda.c (add_capture): Early return if we cannot capture by
	reference.

2017-07-17  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2017-07-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/81258
	* parser.c (cp_parser_decomposition_declaration): Diagnose invalid
	forms of structured binding initializers.

2017-07-06  Jason Merrill  <jason@redhat.com>

	PR c++/81204 - parse error with dependent template-name
	* parser.c (cp_parser_lookup_name): Revert previous change.

2017-06-30  Jason Merrill  <jason@redhat.com>

	PR c++/54769 - wrong lookup of dependent template-name.
	PR c++/81257 - ICE with invalid ::template.
	* parser.c (cp_parser_template_name): Handle dependent object type.
	(cp_parser_nested_name_specifier_opt): Make template_keyword_p a
	parameter.
	(cp_parser_id_expression): Pass it.

2017-06-29  Jason Merrill  <jason@redhat.com>

	PR c++/81180 - ICE with C++17 deduction of member class template.
	* pt.c (build_deduction_guide): Correct member template handling.

	PR c++/81188 - matching decltype of member function call.
	* tree.c (cp_tree_equal): Remove COMPONENT_REF special case.

	PR c++/81164 - ICE with invalid inherited constructor.
	* search.c (binfo_direct_p): New.
	* name-lookup.c (do_class_using_decl): Use it.

2017-06-28  Jason Merrill  <jason@redhat.com>

	PR c++/61022 - error with variadic template template parm
	* pt.c (convert_template_argument): Keep the TYPE_PACK_EXPANSION.

	PR c++/72801 - ICE with variadic partial specialization
	* pt.c (unify_pack_expansion): Use PACK_EXPANSION_EXTRA_ARGS.

	PR c++/81204 - parse error with dependent template-name
	* parser.c (cp_parser_lookup_name): Disqualify function templates
	after lookup.

2017-06-26  Jason Merrill  <jason@redhat.com>

	PR c++/81215
	* pt.c (unify_bound_ttp_args): Restore old logic for C++14 and down.

2017-06-23  Jason Merrill  <jason@redhat.com>

	PR c++/79056 - C++17 ICE with invalid template syntax.
	* parser.c (cp_parser_simple_type_specifier): Don't assume that type
	is a TYPE_DECL.
	(cp_parser_check_for_invalid_template_id): Handle TYPE_DECL.
	* pt.c (template_placeholder_p): New.
	* cp-tree.h: Declare it.

2017-06-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/81154
	* semantics.c (handle_omp_array_sections_1, finish_omp_clauses):
	Complain about t not being a variable if t is OVERLOAD even
	when processing_template_decl.

	Backported from mainline
	2017-06-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80973
	* cp-gimplify.c (cp_genericize_r): Don't instrument MEM_REF second
	argument even if it has REFERENCE_TYPE.

	PR c++/80984
	* cp-gimplify.c (cp_genericize): Only look for VAR_DECLs in
	BLOCK_VARS (outer) chain.
	(cxx_omp_const_qual_no_mutable): Likewise.

2017-06-20  Jason Merrill  <jason@redhat.com>

	PR c++/80972 - C++17 ICE with attribute packed.
	* call.c (build_over_call): Allow a TARGET_EXPR from reference
	binding.

2017-06-19  Jason Merrill  <jason@redhat.com>

	PR c++/80562 - ICE with constexpr if.
	* semantics.c (finish_if_stmt_cond): Call
	instantiate_non_dependent_expr.

	PR c++/80829 - ICE with constexpr copy of base subobject.
	* constexpr.c (clear_no_implicit_zero): New.
	(cxx_eval_call_expression): Call it.

        PR c++/81073 - constexpr and static var in statement-expression.
	* constexpr.c (cxx_eval_constant_expression) [DECL_EXPR]: Check
	potential_constant_expression.

2017-06-17  Jason Merrill  <jason@redhat.com>

	PR c++/60063 - -Wunused-local-typedefs and templates.
	* decl2.c (is_late_template_attribute): Return false for "used".

	PR c++/70844 - -Wuseless-cast and inheriting constructor.
	* method.c (forward_parm): Suppress warn_useless_cast.

2017-06-16  Jason Merrill  <jason@redhat.com>

	PR c++/81045 - Wrong type-dependence with auto return type.
	* pt.c (type_dependent_expression_p): An undeduced auto outside the
	template isn't dependent.
	* call.c (build_over_call): Instantiate undeduced auto even in a
	template.

	PR c++/81102 - Wrong error with partial specialization.
	* pt.c (unify) [TEMPLATE_PARM_INDEX]: Strip reference when comparing
	types.  Do type deduction later.

	PR c++/81074 - ICE with partial specialization of member template.
	PR c++/71747
	* pt.c (get_partial_spec_bindings): Only coerce innermost args.

	PR c++/80831 - ICE with -fsyntax-only.
	* decl2.c (c_parse_final_cleanups): Use cgraph_node::get_create.

	PR c++/80639 - ICE with invalid PMF initialization.
	PR c++/80043 - ICE with -fpermissive
	* typeck.c (convert_for_assignment): Recurse when instantiate_type
	returns without an error.

	PR c++/80465 - ICE with generic lambda with noexcept-specifier.
	* lambda.c (maybe_add_lambda_conv_op): Keep processing_template_decl
	set longer for a generic lambda.

	PR c++/80614 - Wrong mangling for C++17 noexcept type
	* mangle.c (write_type): Put the eh spec back on the function type.

	PR c++/80384 - ICE with dependent noexcept-specifier
	* pt.c (dependent_type_p_r) [FUNCTION_TYPE]: Check for dependent
	noexcept-specifier.

	* parser.c (cp_parser_constant_expression): Check
	potential_rvalue_constant_expression after decay_conversion.
	* pt.c (convert_nontype_argument): Don't require linkage in C++17.

	* constexpr.c (potential_constant_expression_1): Allow 'this' capture.

2017-06-08  Jakub Jelinek  <jakub@redhat.com>

	PR c/81006
	* semantics.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
	to sizetype before size_binop.

	PR c++/81011
	* cp-gimplify.c (cxx_omp_finish_clause): When changing clause
	to OMP_CLAUSE_SHARED, also clear OMP_CLAUSE_SHARED_FIRSTPRIVATE
	and OMP_CLAUSE_SHARED_READONLY flags.

2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>

	* parser.c (cp_parser_base_specifier): Fix typos in error messages.

2017-05-31  Jason Merrill  <jason@redhat.com>

	PR c++/80840 - ICE with constexpr and reference
	* pt.c (convert_nontype_argument): Don't test whether a decl is
	value-dependent when binding to a reference.

	PR c++/80856 - ICE with local extern in template
	* semantics.c (finish_call_expr): Replace a local extern overload
	set in a template with the IDENTIFIER_NODE.

	PR c++/80605 - __is_standard_layout and zero-length array
	* class.c (check_bases): Use DECL_FIELD_IS_BASE.

	PR c++/80605 - __is_standard_layout and empty base
	* class.c (check_bases): Ignore empty bases.

	PR c++/66297, DR 1684 - literal class and constexpr member fns
	* constexpr.c (is_valid_constexpr_fn): Only complain about
	non-literal enclosing class in C++11.
	* class.c (finalize_literal_type_property): Likewise.

	PR c++/80179 - ICE with initialized flexible array member.
	* constexpr.c (verify_ctor_sanity): Handle flexible array members.

2017-05-29  Alexandre Oliva <aoliva@redhat.com>

	* cp-tree.h (lang_identifier): Drop oracle_looked_up, unused.

2017-05-02  Release Manager

	* GCC 7.1.0 released.

2017-04-20  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/80473
	* init.c (build_new_1): Suppress notes about over-aligned new when
	the warning is suppressed.

2017-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/80423
	* tree.c (build_cplus_array_type): Call build_array_type
	with the intended TYPE_TYPELESS_STORAGE flag value, instead
	of calling build_array_type and modifying later TYPE_TYPELESS_STORAGE
	on the shared type.

2017-04-18  Marek Polacek  <polacek@redhat.com>

	PR c++/80244 - ICE with attribute in template alias.
	* tree.c (strip_typedefs): Handle UNDERLYING_TYPE.

	PR c++/80241 - ICE with alignas pack expansion.
	* error.c (dump_expr): Handle TREE_LIST.
	* parser.c (cp_parser_std_attribute_list): Return error_mark if
	make_pack_expansion returns an error.

2017-04-17  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/80287
	* class.c (fixup_may_alias): Fix all type variants.

2017-04-17  Jason Merrill  <jason@redhat.com>

	PR c++/80415 - wrong error with default arg and array reference.
	* tree.c (lvalue_kind): Return clk_class for an array prvalue.

	* pt.c (tsubst_init): Set TARGET_EXPR_DIRECT_INIT_P.

2017-04-15  Alexandre Oliva <aoliva@redhat.com>

	* decl.c (name_unnamed_type): Split out of...
	(grokdeclarator): ... this.
	* decl.h (name_unnamed_type): Declare.

2017-04-12  Richard Biener  <rguenther@suse.de>
	Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR middle-end/79671
	* tree.c (build_cplus_array_type): Set TYPE_TYPELESS_STORAGE
	for arrays of character or std::byte type.

2017-04-11  Jason Merrill  <jason@redhat.com>

	PR c++/80294 - ICE with constexpr and inheritance.
	* constexpr.c (reduced_constant_expression_p):
	A null constructor element is non-constant.
	(cxx_eval_indirect_ref): Don't VERIFY_CONSTANT before
	returning an empty base.

2017-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80370
	* decl.c (cp_finish_decomp): If processing_template_decl on
	non-dependent decl, only set TREE_TYPE on the v[i] decls, but don't
	change their DECL_VALUE_EXPR nor cp_finish_decl them.  Instead make
	sure DECL_VALUE_EXPR is the canonical NULL type ARRAY_REF for tsubst
	processing.
	* pt.c (value_dependent_expression_p) <case VAR_DECL>: For variables
	with DECL_VALUE_EXPR, return true if DECL_VALUE_EXPR is type
	dependent.

2017-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80363
	* error.c (dump_expr): Handle VEC_COND_EXPR like COND_EXPR.

2017-04-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80176
	* tree.c (lvalue_kind): For COMPONENT_REF with BASELINK second
	operand, if it is a static member function, recurse on the
	BASELINK.

2017-04-10  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/80348
	* typeck.c (cp_build_binary_op): Use NULL_TREE instead of NULL.  Set
	ORIG_TYPE earlier and not only when shortening.

2017-04-07  Jason Merrill  <jason@redhat.com>

	PR c++/80356 - ICE with reference to function template argument.
	PR c++/79294
	* pt.c (convert_nontype_argument_function): Adjust type even with a
	value-dependent argument.

	PR c++/80267 - ICE with nested capture of reference
	PR c++/60992
	* pt.c (tsubst_copy): Handle lookup finding a capture proxy.

2017-04-07  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/80348
	* typeck.c (cp_build_binary_op): Convert COP[01] to ORIG_TYPE.

	PR c++/80095
	* call.c (build_over_call): Don't check cxx_dialect.
	* cp-gimplify.c (cp_gimplify_init_expr): Don't check cxx_dialect nor
	whether SUB is a CONSTRUCTOR.
	* init.c (build_new_1): Don't check cxx_dialect.
	* tree.c (replace_placeholders): Add a function comment.  Return if
	not in C++14, or if the object isn't a (member of a) class.
	* typeck2.c (store_init_value): Don't check cxx_dialect nor whether
	TYPE is CLASS_TYPE_P.

2017-04-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80309
	* pt.c (canonical_type_parameter): Use vec_safe_grow_cleared instead
	of a loop doing vec_safe_push of NULL.  Formatting fixes.
	(rewrite_template_parm): Copy TEMPLATE_PARM_PARAMETER_PACK from oldidx
	to newidx before calling canonical_type_parameter on newtype.

2017-04-04  Volker Reichelt  <v.reichelt@netcologne.de>

	PR c++/80296
	* cxx-pretty-print.c (cxx_pretty_printer::expression): Add
	UNARY_PLUS_EXPR case.

2017-04-03  Jason Merrill  <jason@redhat.com>

	* semantics.c (finish_template_type): Check CLASSTYPE_TEMPLATE_INFO.

2017-04-03  Jonathan Wakely  <jwakely@redhat.com>

	* class.c (update_vtable_entry_for_fn): Fix typo in comment.
	* decl2.c (one_static_initialization_or_destruction): Likewise.
	* name-lookup.c (store_bindings): Likewise.
	* parser.c (make_call_declarator): Likewise.
	* pt.c (check_explicit_specialization): Likewise.

2017-04-03  Jason Merrill  <jason@redhat.com>

	PR sanitizer/79993 - ICE with VLA initialization from string
	PR c++/69487 - wrong VLA initialization from string
	* init.c (finish_length_check): Split out from build_vec_init.
	(build_vec_init): Handle STRING_CST.
	* typeck2.c (split_nonconstant_init): Handle STRING_CST.
	(digest_init_r): Don't give a STRING_CST VLA type.

2017-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79572
	* cp-gimplify.c (cp_genericize_r): Sanitize INTEGER_CSTs with
	REFERENCE_TYPE.  Adjust ubsan_maybe_instrument_reference caller
	for NOP_EXPR to REFERENCE_TYPE.

	PR libstdc++/80251
	* cp-tree.h (enum cp_trait_kind): Add CPTK_IS_AGGREGATE.
	* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
	CPTK_IS_AGGREGATE.
	* semantics.c (trait_expr_value): Handle CPTK_IS_AGGREGATE.
	Remove extraneous parens.
	(finish_trait_expr): Handle CPTK_IS_AGGREGATE.
	* parser.c (cp_parser_primary_expression): Handle RID_IS_AGGREGATE.
	(cp_parser_trait_expr): Likewise.

2017-03-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/80162
	* cp-tree.h (cxx_mark_addressable): Add array_ref_p argument.
	* typeck.c (cxx_mark_addressable): Likewise.  Look through
	VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
	to ARRAY_TYPE.
	(cp_build_array_ref): Pass true as array_ref_p to cxx_mark_addressable.

2017-03-24  Jason Merrill  <jason@redhat.com>

	PR c++/77339 - ICE with invalid use of alias template.
	* pt.c (lookup_template_class_1): Don't try to enter the scope of an
	alias template.

2017-03-24  Marek Polacek  <polacek@redhat.com>

	PR c++/80119
	* cp-gimplify.c (cp_fold): Strip CLEANUP_POINT_EXPR if the expression
	doesn't have side effects.

2017-03-23  Jason Merrill  <jason@redhat.com>

	PR c++/80150 - ICE with overloaded variadic deduction.
	* pt.c (try_one_overload): Remove asserts.

	PR c++/77563 - missing ambiguous conversion error.
	* call.c (convert_like_real): Use LOOKUP_IMPLICIT.

2017-03-23  Marek Polacek  <polacek@redhat.com>

	* cp-tree.h: Remove a C_RID_YYCODE reference.

2017-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80141
	* semantics.c (finish_omp_clause) <case OMP_CLAUSE_SIMDLEN,
	case OMP_CLAUSE_ALIGNED>: Call maybe_constant_value only when not
	processing_template_decl.

2017-03-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/77752
	* name-lookup.c (pushtag_1): Add check for bogus, non template,
	std::initializer_list.

2017-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/35878
	* init.c (std_placement_new_fn_p, build_new_1): Formatting fixes.

2017-03-21  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR c++/35878
	* init.c (std_placement_new_fn_p): New.
	(build_new_1): Call it.

2017-03-20  Jason Merrill  <jason@redhat.com>

	PR c++/80096 - ICE with C++17 non-type auto.
	* pt.c (tsubst): Delay tsubst of type of template non-type
	parameter.

	PR c++/79519 - ICE with deleted template friend.
	* decl.c (grokdeclarator): Complain about misplaced function
	definition using =, as well.

	PR c++/79640 - infinite recursion with generic lambda.
	* pt.c (tsubst_copy) [VAR_DECL]: Register the dummy instantiation
	before substituting its initializer.

2017-03-20  Marek Polacek  <polacek@redhat.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80059 - ICE with noexcept and __transaction_atomic
	* except.c (build_must_not_throw_expr): Call
	instantiate_non_dependent_expr.

2017-03-19  Jason Merrill  <jason@redhat.com>

	PR c++/80084 - wrong C++17 decomposition by reference of parameter.
	* decl.c (cp_finish_decomp): Don't pull out the DECL_INITIAL of a
	reference decomposition.

	PR c++/80077 - error with constexpr and -fno-elide-constructors.
	* constexpr.c (cxx_eval_call_expression): Set ctx->call while
	expanding trivial constructor.

2017-03-17  Jason Merrill  <jason@redhat.com>

	PR c++/78345 - ICE initializing array from lambda.
	* init.c (build_aggr_init): Check array initializer.
	(build_vec_init): Check the type of a CONSTRUCTOR.

	PR c++/80073 - C++17 ICE with virtual base.
	* decl.c (xref_basetypes): Also check for indirect vbases.

2017-03-16  Jason Merrill  <jason@redhat.com>

	* decl.c (start_enum): std::byte aliases anything.

	PR c++/79797
	* constexpr.c (lookup_placeholder): Tweak.

2017-03-15  Jason Merrill  <jason@redhat.com>

	PR c++/80043 - ICE with -fpermissive
	* typeck.c (convert_for_assignment): Handle instantiate_type
	not giving an error.

2017-03-14  Nathan Sidwell  <nathan@acm.org>

	PR c++/79393 DR 1658 workaround
	* method.c (synthesized_method_base_walk): Inihibit abstract class
	virtual base access check here.
	(synthesized_method_walk): Not here.

2017-03-13  Nathan Sidwell  <nathan@acm.org>

	PR c++/79393 DR 1658 workaround
	* method.c (synthesized_method_walk): Check vbases of abstract
	classes for dtor walk.

2017-03-10  David Malcolm  <dmalcolm@redhat.com>

	PR translation/79848
	* decl.c (grokfndecl): Simplify uses of "%<%s%>" to "%qs".

2017-03-10  Jason Merrill  <jason@redhat.com>

	PR c++/79960 - alias templates and partial ordering
	* pt.c (comp_template_args): Add partial_order parm.
	(template_args_equal): Likewise.
	(comp_template_args_porder): New.
	(get_partial_spec_bindings): Use it.

2017-03-10  Marek Polacek  <polacek@redhat.com>

	PR c++/79967
	* decl.c (grokdeclarator): Check ATTRLIST before dereferencing it.

2017-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79899
	* optimize.c (maybe_thunk_body): Don't ICE if fns[0] is NULL.
	Use XALLOCAVEC macro.

	PR c++/79896
	* decl.c (finish_enum_value_list): If value is error_mark_node,
	don't copy it and change its type.
	* init.c (constant_value_1): Return error_mark_node if DECL_INITIAL
	of CONST_DECL is error_mark_node.

2017-03-09  Marek Polacek  <polacek@redhat.com>

	PR c++/79900 - ICE in strip_typedefs
	* tree.c (strip_typedefs): Skip the attribute handling if T is
	a variant type which hasn't been updated yet.

	PR c++/79687 - wrong code with pointer-to-member
	* init.c (constant_value_1): Break if the variable has a dynamic
	initializer.

2017-03-08  Jason Merrill  <jason@redhat.com>

	PR c++/79797 - ICE with self-reference in array DMI.
	* constexpr.c (lookup_placeholder): Split out...
	(cxx_eval_constant_expression): ...from here.

2017-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR c/79834
	* parser.c (cp_parser_omp_cancellation_point,
	cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data,
	cp_parser_omp_target_update): Change "may only be used in compound
	statements" diagnostics, such that the same translatable string is
	used for all pragmas.
	(cp_parser_pragma): Likewise.  Use error_at instead of
	cp_parser_error for that diagnostics.

2017-03-06  Marek Polacek  <polacek@redhat.com>

	PR c++/79796 - ICE with NSDMI and this pointer
	* call.c (build_over_call): Handle NSDMI with a 'this' by calling
	replace_placeholders.

2017-03-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79822
	* constexpr.c (cxx_eval_statement_list): Treat empty ({ }) like
	({ (void) 0; }).

2017-03-06  Jason Merrill  <jason@redhat.com>

	Revert "Allow deduction guides to look into primary template."
	* cp-tree.h, parser.c, pt.c, search.c: Revert.

2017-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/70266
	* except.c (build_must_not_throw_expr): Perform the implicit
	conversions on the condition.

2017-03-03  Jason Merrill  <jason@redhat.com>

	* mangle.c (mangle_decl): Check -Wnoexcept-type instead of
	-Wc++1z-compat.

	Core issues 2273 and 2277
	* call.c (joust): Adjust using-declaration tiebreaker to handle
	the intermediate base case.
	* method.c (strip_inheriting_ctors): Just return the argument if
	!flag_new_inheriting_ctors.

2017-03-03  Richard Biener  <rguenther@suse.de>

	PR c++/79825
	* cp-gimplify.c (simple_empty_class_p): Handle EMPTY_CLASS_EXPR.

2017-03-03  Marek Polacek  <polacek@redhat.com>

	PR c++/79791
	* typeck.c (string_conv_p): In C++11, always call pedwarn with
	OPT_Wwrite_strings.

2017-03-02  Jason Merrill  <jason@redhat.com>

	Update overload resolution with deduction guides.
	* pt.c (do_class_deduction): Always build the copy guide.
	(copy_guide_p, template_guide_p): New.
	(build_deduction_guide): Remember the original constructor.
	* call.c (joust): Prefer the copy guide and non-template guides.

	Allow deduction guides to look into primary template.
	* cp-tree.h (struct saved_scope): Add deduction_guide_type.
	(struct cp_decl_specifier_seq): Add constructor_p.
	* parser.c (cp_parser_decl_specifier_seq): Set constructor_p.
	(cp_parser_init_declarator): Check it.  Set ctor_dtor_or_conv_p.
	Clear deduction_guide_type.  Don't handle deduction guide names.
	(cp_parser_declarator): Don't clear ctor_dtor_or_conv_p.
	(cp_parser_direct_declarator): Likewise.  Handle deduction guides.
	(cp_parser_member_declaration, cp_parser_cache_defarg)
	(cp_parser_objc_class_ivars): Set ctor_dtor_or_conv_p.
	* pt.c (tsubst_copy, tsubst_copy_and_build): Revert last change.
	(build_deduction_guide): Set deduction_guide_type.
	(dependent_scope_p): Check deduction_guide_type.
	* search.c (lookup_member): Likewise.

2017-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79782
	* init.c (mark_exp_read_r): New function.
	(emit_mem_initializers): Use cp_walk_tree with mark_exp_read_r on
	whole arguments instead of plain mark_exp_read on TREE_LIST values.

2017-03-01  Jason Merrill  <jason@redhat.com>

	Class template argument deduction in new-expression
	* init.c (build_new): Handle deduction from no initializer.
	* parser.c (cp_parser_new_expression): Don't require a single
	expression for class template deduction.
	* typeck2.c (cxx_incomplete_type_diagnostic): Fix diagnostic for
	class template placeholder.
	* pt.c (tsubst_copy) [TEMPLATE_DECL]: Handle dependent context.
	(tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Handle SCOPE_REF.
	(redeclare_class_template): Set TEMPLATE_TYPE_PARM_FOR_CLASS.

2017-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79746
	* init.c (emit_mem_initializers): When not constructing vbases of
	abstract classes, mark arguments as read for
	-Wunused-but-set-parameter.

2017-02-28  Jason Merrill  <jason@redhat.com>

	Class template argument deduction refinements
	* call.c (joust): Move deduction guide tiebreaker down.
	* decl.c (start_decl_1, cp_finish_decl, grokdeclarator): Allow class
	deduction with no initializer.
	* pt.c (build_deduction_guide): Handle implicit default/copy ctor.
	(do_class_deduction): Use that rather than special case.
	(do_auto_deduction): Handle null initializer.

2017-02-28  Jakub Jelinek  <jakub@redhat.com>

	* decl.c (find_decomp_class_base): Use cond ? G_("...") : G_("...")
	instead of just cond ? "..." : "...".
	(grokdeclarator): Likewise.
	(build_enumerator): Likewise.
	* init.c (build_new_1): Likewise.
	* call.c (build_new_method_call_1): Likewise.
	* parser.c: Include intl.h.
	(cp_parser_oacc_enter_exit_data): Use %s and ternary operator only for
	"enter"/"exit" keyword.
	(cp_finalize_oacc_routine): Don't use %s to supply portions of the
	message.

2017-02-27  Jason Merrill  <jason@redhat.com>

	PR c++/71568 - SFINAE forming pointer to member function
	* init.c (build_offset_ref): Check the return value of
	perform_or_defer_access_check.

2017-02-27  Marek Polacek  <polacek@redhat.com>

	* decl.c (expand_static_init): Add missing } in a comment.

2017-02-27  Volker Reichelt  <v.reichelt@netcologne.de>

	* init.c: Include intl.h.
	(build_new_1): Move message strings into pedwarn to make them
	-Wformat-security friendly. Mark string for translation.
	* pt.c (tsubst_copy_and_build): Mark string for translation.
	Make the pointer const.
	* semantics.c (finish_id_expression): Mark strings for translation.

2017-02-25  Jakub Jelinek  <jakub@redhat.com>

	* call.c (build_op_delete_call): Make msg1 and msg2 const.

2017-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79588
	* call.c (build_over_call): Call check_function_arguments even for
	-Wrestrict, adjust check_function_arguments caller.
	* parser.c (cp_parser_postfix_expression): Don't handle -Wrestrict
	here.
	* typeck.c (cp_build_function_call_vec): Adjust
	check_function_arguments caller.

2017-02-24  Marek Polacek  <polacek@redhat.com>

	PR translation/79705
	* decl.c (check_redeclaration_exception_specification): Mark a string
	for translation.  Make the pointer const.

2017-02-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79361
	* pt.c (register_specialization): Check duplicate_decls return value
	for error_mark_node and pass it back.

2017-02-22  Jason Merrill  <jason@redhat.com>

	PR c++/79679 - missing destructor for argument
	* call.c (build_over_call): Don't pass tf_no_cleanup to argument
	conversions.

	* pt.c (do_class_deduction): Handle 0 argument case.

2017-02-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79664
	* parser.c (cp_parser_omp_teams, cp_parser_omp_target): Use
	SET_EXPR_LOCATION on OMP_TARGET/OMP_TEAMS tree.
	* constexpr.c (potential_constant_expression_1): Handle
	OMP_*, OACC_* and CILK_* trees.  Use error_at with
	EXPR_LOC_OR_LOC (t, input_location) computed early
	instead of error, or error_at with location_of (t).

2017-02-22  Marek Polacek  <polacek@redhat.com>

	PR c++/79653
	* parser.c (cp_parser_std_attribute_spec): Don't build the attribute
	if the alignas expression is erroneous.
	* pt.c (tsubst_attribute): If tsubst_pack_expansion fails, return
	error_mark_node.

	PR c++/79657
	* semantics.c (finish_underlying_type): Bail out for incomplete enums.

2017-02-21  Jason Merrill  <jason@redhat.com>

	PR c++/50308 - wrong deprecated warning with ADL
	PR c++/17729 - duplicate deprecated warning
	* semantics.c (finish_id_expression): Only call mark_used on a
	function if we aren't building a call.

	PR c++/41727 - ICE with partial spec of partial instantiation
	* pt.c (process_partial_specialization): For now, don't check more
	specialized if there is more than one level of args.

2017-02-21  Marek Polacek  <polacek@redhat.com>

	PR c++/79535
	* cp-tree.h (maybe_reject_flexarray_init): Declare.
	* init.c (maybe_reject_flexarray_init): No longer static.
	Add check for current_function_decl.
	* parser.c (cp_parser_late_parse_one_default_arg): Reject
	a default mem-initializer for a flexible array.

2017-02-21  Jakub Jelinek  <jakub@redhat.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79654
	* decl.c (cp_finish_decomp): Don't set decl's type to error_mark_node
	on error.
	* pt.c (tsubst_decomp_names): Return error_mark_node if the first
	decl after the decomposition artificial decl has error_mark_node.
	* decl2.c (prune_vars_needing_no_initialization): Use error_operand_p
	instead of just == error_mark_node comparison.

2017-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/79589
	* decl.c: Include gimplify.h.
	(cp_finish_decomp): Make sure there is no sharing of trees
	in between DECL_VALUE_EXPR of decomposition decls.

	PR c++/79655
	* constexpr.c (cxx_eval_array_reference): Diagnose negative subscript.

	PR c++/79639
	* constexpr.c (cxx_eval_store_expression): If *valp is a PTRMEM_CST,
	call cplus_expand_constant on it first.

2017-02-19  Jason Merrill  <jason@redhat.com>

	PR c++/78139 - destructor needed by new-expression
	* call.c (build_special_member_call): Use tf_no_cleanup.

	PR c++/78282 - auto template and pack expansion
	* pt.c (find_parameter_packs_r): Don't walk into the type of
	templates other than template template-parameters.

	PR c++/79606 - ICE with this->base_member in NSDMI
	* class.c (build_base_path): Check processing_template_decl.

	PR c++/79607 - ICE with T{} initializer
	* decl.c (type_dependent_init_p): Check the type of a CONSTRUCTOR.

	PR c++/79566 - elaborated-type-specifier in range for
	* parser.c (cp_parser_simple_declaration): Fix check for type
	definition.

	PR c++/79400 - confusing suggestion of 'noexcept'
	* parser.c (cp_parser_exception_specification_opt): Remove
	suggestion for deprecated dynamic exception-specification.

	PR c++/79470 - partial ordering with reference parameters
	* pt.c (unify) [INDIRECT_REF]: Handle pack expansions.

	PR c++/79500 - ICE with non-template deduction guide
	* pt.c (do_class_deduction): Use STRIP_TEMPLATE rather than
	DECL_TEMPLATE_RESULT.

	PR c++/79580 - ICE with compound literal
	* parser.c (cp_parser_class_head): If we're in the middle of an
	expression, use ts_within_enclosing_non_class.

	PR c++/79503 - inherited ctor taking base class
	* call.c (add_function_candidate): Also check that
	DECL_INHERITED_CTOR_BASE is reference-related to the parameter type.

2017-02-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79380
	* typeck.c (cxx_alignas_expr): Reject a non-integral alignas
	argument.

2017-02-19  Eric Fiselier  <eric@efcs.ca>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR c++/69523
	* parser.c (cp_parser_unqualified_id): Use OPT_Wliteral_suffix to
	control warning about literal suffix identifiers without a leading
	underscore.

2017-02-17  Jason Merrill  <jason@redhat.com>

	PR c++/79508 - lookup error with member template
	* parser.c (cp_parser_template_name): Clear
	parser->context->object_type if we aren't doing lookup.

	PR c++/78690 - ICE with using and global type with same name
	* pt.c (type_dependent_object_expression_p): True for
	IDENTIFIER_NODE.

	PR c++/79549 - C++17 ICE with non-type auto template parameter pack
	* pt.c (convert_template_argument): Just return an auto arg pack.
	(tsubst_template_args): Don't tsubst an auto pack type.

	PR c++/79556 - C++17 ICE with non-type auto
	* pt.c (do_auto_deduction): Don't try to deduce from null type.

	PR c++/79533 - C++17 ICE with temporary cast to reference
	* call.c (build_over_call): Conversion to a reference prevents copy
	elision.

2017-02-16  Jakub Jelinek  <jakub@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/79502 - lost nodiscard attribute
	* pt.c (apply_late_template_attributes): Do apply non-dependent
	attributes to types.

2017-02-16  Jason Merrill  <jason@redhat.com>

	PR c++/78572 - ICE with self-modifying array initializer
	* constexpr.c (cxx_eval_store_expression): The object we're
	initializing is outside the constant-expression.
	(cxx_eval_call_expression): Set ctx->call.

	PR c++/79050 - ICE with undeduced auto and LTO
	* decl.c (poplevel): Remove undeduced auto decls.

2017-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79512
	* parser.c (cp_parser_omp_target): For -fopenmp-simd
	ignore #pragma omp target even when not followed by identifier.

2017-02-15  Jason Merrill  <jason@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/79464 - ICE in IPA with omitted constructor parms
	* class.c (build_clone): Also omit parms from TYPE_ARG_TYPES.
	(adjust_clone_args): Adjust.
	(add_method): Remember omitted parms.
	* call.c (add_function_candidate): Likewise.
	* mangle.c (write_method_parms): Likewise.
	* method.c (ctor_omit_inherited_parms): Return false if there are no
	parms to omit.

2017-02-15  Martin Sebor  <msebor@redhat.com>

	PR c++/79363
	* init.c (maybe_reject_flexarray_init): New function.
	(perform_member_init): Call it.

2017-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79301
	* parser.c (cp_parser_std_attribute): Don't pedwarn about
	[[deprecated]] with -std=c++11 and [[fallthrough]] with
	-std=c++11 and -std=c++14.

	PR c++/79288
	* decl.c (grokdeclarator): For static data members, handle thread_p
	only after handling inline.

2017-02-14  Marek Polacek  <polacek@redhat.com>

	PR c++/79420
	PR c++/79463
	* parser.c (cp_parser_postfix_dot_deref_expression): Avoid
	clobbering if the postfix expression isn't an EXPR_P.

2017-02-13  Jason Merrill  <jason@redhat.com>

	PR c++/79461 - ICE with lambda in constexpr constructor
	* constexpr.c (build_data_member_initialization): Ignore
	initialization of a local variable.

2017-02-13  Jakub Jelinek  <jakub@redhat.com>

	* init.c (warn_placement_new_too_small): Add missing space in
	diagnostics.
	* parser.c (cp_parser_oacc_declare): Likewise.
	* mangle.c (maybe_check_abi_tags): Likewise.

	PR c++/79232
	* typeck.c (cp_build_modify_expr): Handle properly COMPOUND_EXPRs
	on lhs that have {PRE{DEC,INC}REMENT,MODIFY,MIN,MAX,COND}_EXPR
	in the rightmost operand.

2017-02-13  Nathan Sidwell  <nathan@acm.org>

	PR c++/79296 - ICE mangling localized template instantiation
	* decl2.c (determine_visibility): Use template fn context for
	local class instantiations.

2017-02-11  Jason Merrill  <jason@redhat.com>

	PR c++/77659 - ICE with new and C++14 aggregate NSDMI
	* init.c (build_new): Make backups of any CONSTRUCTORs in init.
	(build_new_1): Use replace_placeholders.
	* tree.c (replace_placeholders_t): Also track whether we've seen a
	placeholder.
	(replace_placeholders, replace_placeholders_r): Adjust.
	* cp-tree.h: Adjust.

	PR c++/77790 - ICE with auto function in C++11 mode
	* decl.c (undeduced_auto_decl): Remove C++14 limitation.
	(require_deduced_type): Add complain parm, return bool.
	* cp-tree.h: Adjust.
	* decl2.c (mark_used): Use require_deduced_type.

2017-02-10  Jason Merrill  <jason@redhat.com>

	PR c++/78908 - template ops and bitfields
	* tree.c (build_min_non_dep): Use unlowered_expr_type.

	PR c++/78897 - constexpr union
	* constexpr.c (cxx_eval_store_expression): A store to a union member
	erases a previous store to another member.

	PR c++/71285 - member of fold-expression
	* semantics.c (finish_unary_fold_expr)
	(finish_binary_fold_expr): Use null type for fold-expressions.

	PR c++/79401 - protected inherited constructor
	* call.c (enforce_access): For inheriting constructor, find a base
	binfo in the path we already have.

2017-02-10  Marek Polacek  <polacek@redhat.com>

	PR c++/79435
	* pt.c (type_dependent_expression_p): Check if the expression type
	is null.

	PR c++/79184
	* cvt.c (ocp_convert): Add a sentinel against -Wint-in-bool-context
	if warnings shouldn't be given.

2017-02-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71737
	* pt.c (tsubst_decl): Don't try to preserve a typedef that names
	an error_mark_node as type.

2017-02-09  Jakub Jelinek  <jakub@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/79143
	* pt.c (instantiate_class_template_1): Copy CLASSTYPE_NON_AGGREGATE
	from pattern to type.

2017-02-09  Jason Merrill  <jason@redhat.com>

	PR c++/79316 - default argument in deduction guide
	PR c++/79350 - explicit deduction guide
	* parser.c (cp_parser_constructor_declarator_p)
	(cp_parser_direct_declarator): Parse deduction guides more like
	constructors.
	* cp-tree.h (enum special_function_kind): Add sfk_deduction_guide.
	* tree.c (special_function_p): Return it.
	* decl.c (check_special_function_return_type): Handle it.
	(grokdeclarator, grokfndecl): Adjust.
	(cp_finish_decl): Pass flags to do_auto_deduction.
	* error.c (dump_decl_name): Use TFF_UNQUALIFIED_NAME.
	* pt.c (dguide_name_p): Take a const_tree.
	(do_class_deduction): Handle explicit.
	(do_auto_deduction): Pass flags through.
	(build_deduction_guide): Copy explicit flag.

2017-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79429
	* parser.c (cp_parser_omp_ordered): Don't check for non-pragma_stmt
	non-pragma_compound context here.
	(cp_parser_omp_target): Likewise.
	(cp_parser_pragma): Don't call push_omp_privatization_clauses and
	parsing for ordered and target omp pragmas in non-pragma_stmt
	non-pragma_compound contexts.

	PR c/79431
	* parser.c (cp_parser_oacc_declare): Formatting fix.
	(cp_parser_omp_declare_target): Don't invoke symtab_node::get on
	automatic variables.

2016-02-09  Nathan Sidwell  <nathan@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* parser.c (cp_parser_oacc_clause_tile): Disallow collapse.  Fix
	parsing.  Parse constant expression. Remove semantic checking.
	(cp_parser_omp_clause_collapse): Disallow tile.
	(cp_parser_omp_for_loop): Deal with tile clause.  Don't emit a parse
	error about missing for after already emitting one.  Use more
	conventional for idiom for unbounded loop.
	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_TILE.
	* semantics.c (finish_omp_clauses): Correct TILE semantic check.
	(finish_omp_for): Deal with tile clause.

2017-02-07  Nathan Sidwell  <nathan@acm.org>

	* method.c (synthesized_method_base_walk): New.  Broken out of ...
	(synthesized_method_walk): ... here.  Call it.  Cleanup
	initializations.

2017-02-07  Patrick Palka  <ppalka@gcc.gnu.org>

	PR c++/79360
	* typeck2.c (process_init_constructor_union): Consider only
	FIELD_DECLs when looking for an NSDMI.

2017-02-06  Jason Merrill  <jason@redhat.com>

	PR c++/71193 - incomplete types in templates
	* parser.c (cp_parser_postfix_dot_deref_expression): In a template
	handle incomplete type by pedwarning and then treating as dependent.

2017-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79379
	* constexpr.c (cxx_eval_constant_expression): Handle ANNOTATE_EXPR.
	(potential_constant_expression_1): Likewise.

	PR c++/79377
	* tree.c (build_min_non_dep_op_overload): For POST{INC,DEC}REMENT_EXPR
	allow one fewer than expected arguments if flag_permissive.

	PR c++/79372
	* decl.c (cp_finish_decomp): On error set decl type to error_mark_node.
	* pt.c (tsubst_expr): Don't call tsubst_decomp_names on decompositions
	with error_mark_node type.

2017-02-03  Jason Merrill  <jason@redhat.com>

	PR c++/78689 - ICE on constructor with label
	* optimize.c (maybe_clone_body): Replace omitted parameters with
	null lvalues.
	* class.c (build_clone): Fix logic for omitting inherited parms.

	PR c++/12245 - excessive memory use
	* constexpr.c (maybe_constant_value): Fold maybe_constant_value_1
	back in.  Don't cache constants.
	(maybe_constant_init): Don't cache constants.

	PR c++/79294 - ICE with invalid template argument
	* pt.c (convert_nontype_argument_function): Check value-dependence.
	(convert_nontype_argument): Don't check it here for function ptrs.

2017-02-02  Richard Biener  <rguenther@suse.de>

	PR cp/14179
	* cp-gimplify.c (cp_fold): When folding a CONSTRUCTOR copy
	it lazily on the first changed element only and copy it
	fully upfront, only storing changed elements.

2017-02-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/69637
	* decl2.c (grokbitfield): In case of error don't set-up DECL_INITIAL
	to the width.

2017-01-31  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79304
	* error.c (dump_expr) <case COMPONENT_REF>: Don't print .
	after ARROW_EXPR.

2017-01-31  David Malcolm  <dmalcolm@redhat.com>

	PR c++/79298
	* name-lookup.c (suggest_alternative_in_explicit_scope): Resolve
	any namespace aliases.

2017-01-31  Nathan Sidwell  <nathan@acm.org>

	PR c++/79290
	* typeck.c (build_ptrmemfunc_access_expr): Set TREE_NO_WARNING.

	PR c++/67273
	PR c++/79253
	* pt.c: (instantiate_decl): Push to top level when current
	function scope doesn't match.  Only push lmabda scope stack when
	pushing to top.

	* cp-tree.h (instantiate_decl): Make defer_ok bool.
	* pt.c: Fix instantiate_decl calls to pass true/false not 0/1
	(instantiate_decl): Simplify and reorder state saving and restoration.

	PR c++/79264
	* lambda.c (maybe_generic_this_capture): Deal with template-id-exprs.
	* semantics.c (finish_member_declaration): Assert class is being
	defined.

2017-01-30  Alexandre Oliva <aoliva@redhat.com>

	Introduce C++ support in libcc1.
	* cp-tree.h (struct lang_identifier): Add oracle_looked_up.
	(ansi_opname): Rename to...
	(cp_operator_id): ... this.  Adjust all callers.
	(ansi_assopname): Rename to...
	(cp_assignment_operator_id): ... this.  Adjust all callers.
	(cp_literal_operator_id): Declare.
	(set_global_friend): Declare.
	(is_global_friend): Declare.
	(enum cp_oracle_request): New type.
	(cp_binding_oracle_function): New type.
	(cp_binding_oracle): Declare.
	(cp_finish_injected_record_type): Declare.
	* friend.c (global_friend): New var.
	(set_global_friend): New fn.
	(is_global_friend): New fn.
	(is_friend): Call is_global_friend.
	* name-lookup.c (cp_binding_oracle): New var.
	(query_oracle): New fn.
	(qualified_lookup_using_namespace): Call query_oracle.
	(lookup_name_real_1): Likewise.
	* parser.c (cp_literal_operator_id): Drop static.
	* search.c (friend_accessible_p): Call is_global_friend.
	* semantics.c (is_this_parameter): Accept a variable if the
	binding oracle is enabled.

2017-01-27  Jason Merrill  <jason@redhat.com>

	PR c++/78771 - ICE with inherited constructor.
	* call.c (build_over_call): Call deduce_inheriting_ctor here.
	* pt.c (tsubst_decl): Not here.
	* class.c (add_method): Or here.
	* method.c (deduce_inheriting_ctor): Handle clones.
	(implicitly_declare_fn): Don't deduce inheriting ctors yet.

2017-01-27  Adam Butcher  <adam@jessamine.co.uk>

	PR c++/64382
	* cp/parser.c (parsing_default_capturing_generic_lambda_in_template):
	New function.
	* cp/cp-tree.h: Declare it.
	* cp/semantics.c (finish_id_expression): Resolve names within a default
	capturing generic lambda defined within a template prior to
	instantiation to allow for captures to be added to the closure type.

2017-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/68727
	* cp-tree.def (OFFSETOF_EXPR): Bump number of operands to 2.
	* cp-tree.h (finish_offsetof): Add OBJECT_PTR argument.
	* parser.c (cp_parser_builtin_offsetof): Pass result of
	build_static_cast of null_pointer_node to finish_offsetof.
	* semantics.c (finish_offsetof): Add OBJECT_PTR argument, use
	it for -Winvalid-offsetof pedwarn instead of trying to guess
	original offsetof type from EXPR.  Save OBJECT_PTR as a new
	second operand to OFFSETOF_EXPR.
	* pt.c (tsubst_copy_and_build) <case OFFSETOF_EXPR>: Adjust
	finish_offsetof caller, pass the second operand of OFFSETOF_EXPR
	as OBJECT_PTR.

2017-01-26  Jason Merrill  <jason@redhat.com>

	* name-lookup.c (parse_using_directive): Deprecate strong using.

	PR c++/79176 - lambda ICE with -flto -Os
	* decl2.c (vague_linkage_p): Handle decloned 'tors.
	* tree.c (decl_linkage): Likewise.

2017-01-25  Martin Sebor  <msebor@redhat.com>

	* decl.c (grokdeclarator): Fix a typo in a comment.

2017-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/78896
	* decl.c (cp_finish_decomp): Disallow memberwise decomposition of
	lambda expressions.

	PR c++/77914
	* parser.c (cp_parser_lambda_declarator_opt): Pedwarn with
	OPT_Wpedantic on lambda templates for -std=c++14 and higher.

2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>

	PR lto/79061
	* decl.c (cxx_init_decl_processing): Pass main_input_filename
	to build_translation_unit_decl.

2017-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79205
	* cp-gimplify.c (cp_genericize_r): Add result of
	convert_from_reference on invisiref parm to p_set.

2017-01-24  Nathan Sidwell  <nathan@acm.org>

	PR c++/78469 - defaulted ctor and inaccessible dtor
	* cp-tree.h (tsubst_flags): Add tf_no_cleanup.
	* init.c (build_new_1): Pass tf_no_cleanup to build_value_init.
	* tree.c (build_target_expr): Check tf_no_cleanup.

	PR c++/79118 - anon-members and constexpr
	* constexpr.c (cx_check_missing_mem_inits): Caller passes type not
	ctor decl.  Recursively check anonymous members.
	(register_constexpr_fundef): Adjust cx_check_missing_mem_inits
	call.
	(explain_invalid_constexpr_fn): Likewise.

2017-01-23  Nathan Sidwell  <nathan@acm.org>

	PR c++/71710 - template using directive of field
	* pt.c (tsubst_copy_and_build [COMPONENT_REF]): Move FIELD_DECL
	check earlier.

	PR c++/71406 - ICE with scope-ref'd template id exprs
	PR c++/77508
	* typeck.c (finish_class_member_access_expr): Break up SCOPE_REF
	before breaking up TEMPLATE_ID_EXPR.

2017-01-20  Nathan Sidwell  <nathan@acm.org>

	PR c++/78495 - wrong code inherited ctor and invisi-ref parm
	* cp-gimplify.c (cp_generize_r): Don't skip thunks.

2017-01-20  David Malcolm  <dmalcolm@redhat.com>

	PR c++/77829
	PR c++/78656
	* cp-tree.h (suggest_alternatives_for): Add bool param.
	(suggest_alternative_in_explicit_scope): New decl.
	* error.c (qualified_name_lookup_error): When SCOPE is a namespace
	that isn't the global one, call new function
	suggest_alternative_in_explicit_scope, only calling
	suggest_alternatives_for if it fails, and disabling near match
	searches fort that case.  When SCOPE is the global namespace,
	pass true for new param to suggest_alternatives_for to allow for
	fuzzy name lookups.
	* lex.c (unqualified_name_lookup_error): Pass true for new param
	to suggest_alternatives_for.
	* name-lookup.c (consider_binding_level): Add forward decl.
	(suggest_alternatives_for): Add "suggest_misspellings" param,
	using it to conditionalize the fuzzy name-lookup code.
	(suggest_alternative_in_explicit_scope): New function.
	* parser.c (cp_parser_primary_expression): When calling
	finish_id_expression, pass location of id_expression rather
	than that of id_expr_token.
	(cp_parser_id_expression): Convert local "unqualified_id" from
	tree to cp_expr to avoid implicitly dropping location information.

2017-01-20  Marek Polacek  <polacek@redhat.com>

	PR c/64279
	* call.c (build_conditional_expr_1): Warn about duplicated branches.
	* semantics.c (finish_expr_stmt): Build statement using the proper
	location.

2017-01-19  Jason Merrill  <jason@redhat.com>

	US 20 - forwarding references and class template argument deduction
	* cp-tree.h (TEMPLATE_TYPE_PARM_FOR_CLASS): New.
	* pt.c (push_template_decl_real): Set it.
	(maybe_adjust_types_for_deduction): Check it.
	(rewrite_template_parm): Copy it.

	US 19 - deduction guides and constructors
	* call.c (joust): Prefer deduction guides to constructors.
	* pt.c (build_deduction_guide): Set DECL_ARTIFICIAL.
	(deduction_guide_p): Check DECL_P.

	* decl.c (check_initializer): Always use build_aggr_init for array
	decomposition.

	PR c++/79130 - decomposition and direct-initialization
	* init.c (build_aggr_init): Communicate direct-initialization to
	build_vec_init.
	(build_vec_init): Check for array copy sooner.
	* parser.c (cp_parser_decomposition_declaration): Remove call to
	build_x_compound_expr_from_list.

2017-01-18  Jason Merrill  <jason@redhat.com>

	PR c++/68666 - member variable template-id
	* typeck.c (finish_class_member_access_expr): Handle variable
	template-id.
	* pt.c (lookup_and_finish_template_variable): No longer static.
	* cp-tree.h: Declare it.

2017-01-18  Nathan Sidwell  <nathan@acm.org>

	PR c++/78488
	* call.c (build_over_call): When checking ellipsis conversions for
	an inherited ctor, make sure there is at least one conversion.

2017-01-18  Jason Merrill  <jason@redhat.com>

	PR c++/78894 - ICE with class deduction and default arg
	* pt.c (build_deduction_guide): Set DECL_PRIMARY_TEMPLATE.

2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR c++/77489
	* mangle.c (write_discriminator): Reorganize abi warning check.

2017-01-18  Nathan Sidwell  <nathan@acm.org>

	* cp-tree.h: Clarify exception spec node comment.
	* except.c (nothrow_spec_p): Simplify by checking node-equality.

	PR c++/79091
	* mangle.c (write_exception_spec): Check nothrow explicitly.
	(write_encoding): Don't increment processing_template_decl around
	encoding.

2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR c++/70182
	* mangle.c (write_template_args): Add "on" for operator names.

2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR c++/77489
	* mangle.c (write_discriminator): Handle discriminator >= 10.

2017-01-17  Nathan Sidwell  <nathan@acm.org>

	PR c++/61636
	* cp-tree.h (maybe_generic_this_capture): Declare.
	* lambda.c (resolvable_dummy_lambda): New, broken out of ...
	(maybe_resolve_dummy): ... here.  Call it.
	(maybe_generic_this_capture): New.
	* parser.c (cp_parser_postfix_expression): Speculatively capture
	this in generic lambda in unresolved member function call.
	* pt.c (tsubst_copy_and_build): Force hard error from failed
	member function lookup in generic lambda.

2017-01-17  Aldy Hernandez  <aldyh@redhat.com>

	PR c++/70565
	* cp-array-notation.c (expand_array_notation_exprs): Handle
	OMP_PARALLEL.

2017-01-11  Jason Merrill  <jason@redhat.com>

	PR c++/78337 - ICE on invalid with generic lambda
	* semantics.c (process_outer_var_ref): Check if containing_function
	is null.  Move inform call under complain test.

2017-01-11  Nathan Sidwell  <nathan@acm.org>

	PR c++/77812
	* name-lookup.c (set_namespace_binding_1): An overload of 1 decl
	is a new overload.

2017-01-11  Nathan Sidwell  <nathan@acm.org>

	* name-lookup.c (push_overloaded_decl_1): Refactor OVERLOAD creation.

2017-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/78341
	* parser.c (cp_parser_std_attribute_spec): Remove over-eager
	assertion.  Formatting fix.

	PR c++/72813
	* decl2.c (c_parse_final_cleanups): Set flag_syntax_only to 1 after
	writing PCH file.

2017-01-10  David Malcolm  <dmalcolm@redhat.com>

	PR c++/77949
	* parser.c (cp_parser_class_specifier_1): Only suggest inserting
	a missing semicolon if we have a valid insertion location for
	the fix-it hint.

2017-01-10  Jason Merrill  <jason@redhat.com>

	FI 20, decomposition declaration with parenthesized initializer.
	* parser.c (cp_parser_decomposition_declaration): Use
	cp_parser_initializer.

2017-01-09  Jason Merrill  <jason@redhat.com>

	Implement P0195R2, C++17 variadic using.
	* parser.c (cp_parser_using_declaration): Handle ellipsis and comma.
	* pt.c (tsubst_decl): Handle pack expansion in USING_DECL_SCOPE.
	* error.c (dump_decl): Likewise.

2017-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR translation/79019
	PR translation/79020
	* semantics.c (finish_omp_clauses): Add missing whitespace to
	translatable strings.
	* cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Fix comment typo.

2017-01-07  Jason Merrill  <jason@redhat.com>

	PR c++/78948 - instantiation from discarded statement
	* parser.h (struct cp_parser): Remove in_discarded_stmt field.
	* cp-tree.h (in_discarded_stmt): Declare it.
	(struct saved_scope): Add discarded_stmt bitfield.
	(in_discarded_stmt): New macro.
	* decl2.c (mark_used): Check it.
	* parser.c (cp_parser_selection_statement): Adjust.
	(cp_parser_jump_statement): Adjust.

2017-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/78931
	* decl.c (cp_finish_decomp): Remove probe variable, if tt is
	REFERENCE_REF_P, set tt to its operand.

	PR c++/78890
	* class.c (check_field_decls): Diagnose REFERENCE_TYPE fields in
	unions even for C++11 and later.

2017-01-05  Nathan Sidwell  <nathan@acm.org>

	PR c++/78765
	* pt.c (convert_nontype_argument): Don't try and see if integral
	or enum expressions are constants prematurely.

2017-01-04  Marek Polacek  <polacek@redhat.com>

	PR c++/64767
	* typeck.c (cp_build_binary_op): Warn when a pointer is compared with
	a zero character literal.

2017-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/78949
	* typeck.c (cp_build_unary_op): Call mark_rvalue_use on arg if it has
	vector type.

	PR c++/78693
	* parser.c (cp_parser_simple_declaration): Only complain about
	inconsistent auto deduction if auto_result doesn't use auto.

	* parser.c (cp_parser_simple_declaration): Diagnose function
	declaration among more than one init-declarators with auto
	specifier.

	PR c++/71182
	* parser.c (cp_lexer_previous_token): Use vec_safe_address in the
	assertion, as lexer->buffer may be NULL.

2017-01-04  Marek Polacek  <polacek@redhat.com>

	PR c++/77545
	PR c++/77284
	* constexpr.c (potential_constant_expression_1): Handle CLEANUP_STMT.

2017-01-04  Nathan Sidwell  <nathan@acm.org>

	PR c++/66735
	* cp-tree.h (DECLTYPE_FOR_REF_CAPTURE): New.
	(lambda_capture_field_type): Update prototype.
	* lambda.c (lambda_capture_field_type): Add is_reference parm.
	Add referenceness here.
	(add_capture): Adjust lambda_capture_field_type call, refactor
	error checking.
	* pt.c (tsubst): Adjust lambda_capture_field_type call.

2017-01-01  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

Copyright (C) 2017 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
