2018-07-26  Release Manager

	* GCC 8.2.0 released.

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

	PR c++/86480 - nested variadic lambda and constexpr if.
	* pt.c (find_parameter_packs_r) [IF_STMT]: Don't walk into
	IF_STMT_EXTRA_ARGS.

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-07-13  Nathan Sidwell  <nathan@acm.org>

	PR c++/86374
	* pt.c (lookup_template_class_1): Use tsubst_aggr_type for
	contexts that are classes.

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

	* decl2.c (cplus_decl_attributes): Don't diagnose vars without mappable
	type here, instead add "omp declare target implicit" attribute.  Add
	that attribute instead of "omp declare target" also when
	processing_template_decl.
	* decl.c (cp_finish_decl): Diagnose vars without mappable type here,
	and before calling cp_omp_mappable_type call complete_type.

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

	PR sanitizer/86406
	* cp-gimplify.c (cp_maybe_instrument_return): Skip trailing
	DEBUG_BEGIN_STMTs.

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

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

	gcc/cp/

	PR c++/86398
	* method.c (is_trivially_xible): Return false
	if is_xible_helper returns a NULL_TREE.

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.

	* name-lookup.c (do_push_to_top_level): Don't allocate
	current_lang_base.
	(do_pop_from_top_level): Release current_lang_base.

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

	PR c++/86320 - memory-hog with std::array of pair
	* typeck2.c (process_init_constructor_array): If zero-initialization
	is fine for one element, we're done.

	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  Jason Merrill  <jason@redhat.com>

	PR c++/86219 - ICE with erroneous initializer in template.
	* constexpr.c (fold_non_dependent_expr): Add complain parm.
	* typeck2.c (store_init_value): Pass tf_warning_or_error.

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

	PR c++/86182 - ICE with anonymous union passed to template.
	* pt.c (tsubst_expr) [DECL_EXPR]: Handle an anonymous union type
	used to declare a named variable.

2018-06-20  Nathan Sidwell  <nathan@acm.org>

	PR c++/85634 - tsubst ICE on unmarked lookup
	* parser.c (cp_parser_primary_expression): Keep lookup in template.

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

	PR c++/86200 - ICE with unexpanded pack in lambda parameter.
	* pt.c (find_parameter_packs_r) [LAMBDA_EXPR]: Also look into the
	function type.

	PR c++/81060 - ICE with unexpanded parameter pack.
	* pt.c (check_for_bare_parameter_packs): Add loc parameter.
	* decl.c (grokdeclarator): Call it for qualifying_scope.

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

	PR c++/86147 - wrong capture for template argument.
	* expr.c (mark_use): Look through NOP_EXPR.

	PR c++/82882 - ICE with lambda in template default argument.
	* lambda.c (record_null_lambda_scope): New.
	* pt.c (tsubst_lambda_expr): Use it.
	* name-lookup.c (do_pushtag): Don't give a lambda DECL_CONTEXT of a
	function that isn't open.

	* tree.c (maybe_warn_parm_abi): Inform the location of the class.

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

	PR c++/86094 - wrong code with defaulted move ctor.
	* class.c (classtype_has_non_deleted_move_ctor): New.
	* tree.c (maybe_warn_parm_abi, type_has_nontrivial_copy_init):
	Handle v12 breakage.

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

	PR c++/85792 -Wctor-dtor-privacy and inherited constructor.
	* class.c (maybe_warn_about_overly_private_class): Handle inherited
	constructors.

	PR c++/85963 - -Wunused-but-set with ?: in template.
	* pt.c (tsubst_copy_and_build) [COND_EXPR]: Call mark_rvalue_use.

	PR c++/61806 - missed SFINAE with partial specialization.
	* cp-tree.h (deferring_access_check_sentinel): Add deferring_kind
	parameter to constructor.
	* pt.c (instantiate_class_template_1): Enable access checking
	before call to most_specialized_partial_spec.

	PR c++/85765 - SFINAE and non-type default template arg.
	* pt.c (type_unification_real): Do full semantic processing if
	substituting a partial args list replaces all template parms.

	PR c++/85764 - bogus 'this' not captured error.
	* lambda.c (resolvable_dummy_lambda): Use nonlambda_method_basetype.
	(nonlambda_method_basetype): Handle NSDMI.

	PR c++/85807 - ICE with call in template NSDMI.
	* init.c (get_nsdmi): Use push_to/pop_from_top_level.
	* tree.c (bot_manip): Don't set_flags_from_callee in a template.

	PR c++/85815 - reference to member of enclosing template.
	* search.c (lookup_base): Use currently_open_class.
	(lookup_member): Use it regardless of -fconcepts.
	* parser.c (cp_parser_postfix_dot_deref_expression): Check it.

	PR c++/86094 - wrong code with defaulted move ctor.
	* tree.c (type_has_nontrivial_copy_init): Fix move ctor handling.

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

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

2018-06-05  Marek Polacek  <polacek@redhat.com>

	Backported from mainline
	2018-05-24  Marek Polacek  <polacek@redhat.com>

	PR c++/85847
	* init.c (build_new_1): Use fold_non_dependent_expr.  Use a dedicated
	variable for its result.  Fix a condition.
	(build_new): Use fold_non_dependent_expr.  Tweak a condition.

	2018-06-05  Marek Polacek  <polacek@redhat.com>

	PR c++/85976
	* tree.c (cp_tree_equal): Handle USING_DECL.

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

	PR c++/85731 - wrong error with qualified-id in template.
	* semantics.c (finish_qualified_id_expr): build_qualified_name
	for unbound names in the current class.

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

	PR c++/85739 - ICE with pointer to member template parm.
	* cvt.c (perform_qualification_conversions): Use cp_fold_convert.

	PR c++/85761 - ICE with ill-formed use of const outer variable.
	* expr.c (mark_use): Handle location wrappers.

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

	PR c++/85873 - constant initializer_list array not in .rodata.
	* call.c (convert_like_real): Treat the backing array for an
	initializer_list like a C99 compound literal.

2018-05-30  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-05-24  Jason Merrill  <jason@redhat.com>

	PR c++/85842 - -Wreturn-type, constexpr if and generic lambda.
	* pt.c (tsubst_lambda_expr): Copy current_function_returns_* to
	generic lambda.

	PR c++/85864 - literal template and default template arg.
	* pt.c (instantiation_dependent_r): Handle NONTYPE_ARGUMENT_PACK.

	PR c++/81420 - not extending temporary lifetime.
	* call.c (extend_ref_init_temps_1): Handle ARRAY_REF.
	* class.c (build_base_path): Avoid redundant move of an rvalue.

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

	PR c++/85866 - error with .* in default template arg.
	* pt.c (tsubst_copy_and_build): Handle partial instantiation.

2018-05-18  Cesar Philippidis  <cesar@codesourcery.com>

	Backport from mainline
	2018-05-18  Cesar Philippidis  <cesar@codesourcery.com>

	PR c++/85782
	* cp-gimplify.c (cp_genericize_r): Call genericize_omp_for_stmt for
	OACC_LOOPs.

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

	PR c++/85706 - class deduction under decltype
	* pt.c (for_each_template_parm_r): Handle DECLTYPE_TYPE.  Clear
	*walk_subtrees whether or not we walked into the operand.
	(type_uses_auto): Only look at deduced contexts.

2018-05-08  Marek Polacek  <polacek@redhat.com>

	PR c++/85695
	* semantics.c (finish_if_stmt_cond): See through typedefs.

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.

	PR c++/85618 - ICE with initialized VLA.
	* tree.c (vla_type_p): New.
	* typeck2.c (store_init_value, split_nonconstant_init_1): Check it
	rather than array_of_runtime_bound_p.

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

	PR c++/85305 - pack in lambda init-capture.
	* parser.c (cp_parser_initializer): Add subexpression_p parm; don't
	check_for_bare_parameter_packs in a subexpression.
	(cp_parser_lambda_introducer): Use it.

2018-05-02  Release Manager

	* GCC 8.1.0 released.

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

	PR c++/85587 - error with scoped enum in template.
	* semantics.c (finish_qualified_id_expr): Don't return an
	unqualified IDENTIFIER_NODE.

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

	PR c++/85580 - extern "C" and local variables
	* name-lookup.c (check_extern_c_conflict): Ignore local decls.

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

	PR c++/85553
	* init.c (build_zero_init_1): For zero initialization of
	NULLPTR_TYPE_P type use build_int_cst directly.

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

	PR c++/85545 - ICE with noexcept PMF conversion.
	* cvt.c (cp_fold_convert): Pass PMF CONSTRUCTORs to
	build_ptrmemfunc.
	* typeck.c (build_ptrmemfunc): Don't build a NOP_EXPR for zero
	adjustment.
	(build_ptrmemfunc_access_expr): Special-case CONSTRUCTORs.

2018-04-25  Nathan Sidwell  <nathan@acm.org>

	PR c++/85437
	PR c++/49171
	* cp-tree.h (REINTERPRET_CAST_P): New.
	* constexpr.c (cxx_eval_constant_expression) <case NOP_EXPR>:
	Reject REINTERPET_CAST_P conversions.  Use cplus_expand_constant
	for non-trivial PTRMEM_CST cases.
	* typeck.c (build_nop_reinterpret): New.
	(build_reinterpret_cast_1): Use it.  Set REINTERPRET_CAST_P on
	NOP_EXPRs returned by cp_convert.

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

	PR c++/69560 - wrong alignof(double) on x86.
	CWG 1879 - Inadequate definition of alignment requirement.
	* cp-tree.h (ALIGNOF_EXPR_STD_P): New.
	* typeck.c (cxx_sizeof_or_alignof_type): Add std_alignof parm.
	(cxx_sizeof_expr, cxx_sizeof_nowarn, cxx_alignas_expr)
	(cxx_alignof_expr): Pass it.
	* parser.c (cp_parser_unary_expression): Pass it.
	* pt.c (tsubst_copy): Copy it.
	(tsubst_copy_and_build): Pass it.
	* decl.c (fold_sizeof_expr): Pass it.

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-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85462
	* cp-tree.h (tinst_level): Remove in_system_header_p member,
	change refcount member from unsigned char to unsigned short,
	add refcount_infinity static data member, adjust comments.
	* pt.c (tinst_level::refcount_infinity): Define.
	(inc_refcount_use): Remove assert, don't increment if refcount
	is already refcount_infinity, adjust comment.
	(dec_refcount_use): Remove assert, don't decrement if refcount
	is refcount_infinity, adjust comment.
	(push_tinst_level_loc): Formatting fix.

2018-04-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84611
	* pt.c (lookup_template_class_1): Check pushtag return value for
	error_mark_node.

2018-04-19  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/80290
	* cp-tree.h (tinst_level::free): Fix whitespace.

2018-04-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84630
	* pt.c (tsubst_lambda_expr): Check begin_lambda_type return value
	for error_mark_node.

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-18  Alexandre Oliva <aoliva@redhat.com>

	PR c++/80290
	* cp-tree.h (struct tinst_level): Split decl into tldcl and
	targs.  Add private split_list_p, tree_list_p, and not_list_p
	inline const predicates; to_list private member function
	declaration; free public member function declaration; list_p,
	get_node and maybe_get_node accessors, and refcount data
	member.  Narrow errors to unsigned short.
	* error.c (print_instantiation_full_context): Use new
	accessors.
	(print_instantiation_partial_context_line): Likewise.  Drop
	const from tinst_level-typed parameter.
	* mangle.c (mangle_decl_string): Likewise.
	* pt.c (freelist): New template class.
	(tree_list_freelist_head): New var.
	(tree_list_freelist): New fn, along with specializations.
	(tinst_level_freelist_head): New var.
	(pending_template_freelist_head): Likewise.
	(tinst_level_freelist, pending_template_freelist): New fns.
	(tinst_level::to_list, tinst_level::free): Define.
	(inc_refcount_use, dec_refcount_use): New fns for tinst_level.
	(set_refcount_ptr): New template fn.
	(add_pending_template): Adjust for refcounting, freelists and
	new accessors.
	(neglectable_inst_p): Take a NULL d as a non-DECL.
	(limit_bad_template_recursion): Use new accessors.
	(push_tinst_level): New overload to create the list.
	(push_tinst_level_loc): Make it static, split decl into two
	args, adjust tests and initialization to cope with split
	lists, use freelist, adjust for refcounting.
	(push_tinst_level_loc): New wrapper with the old interface.
	(pop_tinst_level): Adjust for refcounting.
	(record_last_problematic_instantiation): Likewise.
	(reopen_tinst_level): Likewise.  Use new accessors.
	(instantiate_alias_template): Adjust for split list.
	(fn_type_unification): Likewise.
	(get_partial_spec_bindings): Likewise.
	(instantiate_pending_templates): Use new accessors.  Adjust
	for refcount.  Release pending_template to freelist.
	(instantiating_current_function_p): Use new accessors.

2018-04-16  Alexandre Oliva <aoliva@redhat.com>

	PR c++/85039
	* parser.c (cp_parser_builtin_offset): Reject type definitions.
	* mangle.c (nested_anon_class_index): Avoid crash returning -1
	if we've seen errors.

2018-04-12  David Malcolm  <dmalcolm@redhat.com>

	PR c++/85385
	* name-lookup.c (macro_use_before_def::maybe_make): New function,
	checking that the use is indeed before the definition.
	(macro_use_before_def::macro_use_before_def): Make private.
	(macro_use_before_def::~macro_use_before_def): Make private.  Move
	check for UNKNOWN_LOCATION to macro_use_before_def::maybe_make.
	(lookup_name_fuzzy): Call macro_use_before_def::maybe_make rather
	than using new directly.

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

	PR c++/85356 - ICE with pointer to member function.
	* pt.c (maybe_instantiate_noexcept): Do instantiate in templates if
	flag_noexcept_type.  Build the new spec within the function context.
	* except.c (build_noexcept_spec): Do get constant value in templates
	if flag_noexcept_type.
	* decl.c (check_redeclaration_exception_specification): Don't
	instantiate noexcept on a dependent declaration.

2018-04-12  Marek Polacek  <polacek@redhat.com>

	PR c++/85258
	* constexpr.c (reduced_constant_expression_p): Return false for null
	trees.

2018-04-11  Marek Polacek  <polacek@redhat.com>

	PR c++/85032
	* constexpr.c (potential_constant_expression_1): Consider conversions
	from classes to literal types potentially constant.

2018-04-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/70808
	* init.c (build_zero_init_1): Handle NULLPTR_TYPE_P being true of
	the type like TYPE_PTR_OR_PTRMEM_P.

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

	PR debug/65821 - wrong location for main().
	* call.c (clear_location_r, convert_default_arg): Revert.
	* tree.c (break_out_target_exprs): Add clear_location parm.
	(struct bot_data): New.
	(bot_manip): Clear location if requested.
	* init.c (get_nsdmi): Pass clear_location.

2018-04-10  David Malcolm  <dmalcolm@redhat.com>

	PR c++/85110
	* call.c (get_fndecl_argument_location): Make non-static.
	* cp-tree.h (get_fndecl_argument_location): New decl.
	* typeck.c (convert_for_assignment): When complaining due to
	conversions for an argument, show the location of the parameter
	within the decl.

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

	PR c++/85312 - P0962 cleanup
	* parser.c (cp_parser_perform_range_for_lookup): Remove unreachable
	diagnostics.

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

	PR debug/65821 - wrong location for main().
	* call.c (clear_location_r): New.
	(convert_default_arg): Use it.
	* tree.c (bot_manip): Remove builtin_LINE/FILE handling.

	PR c++/85285 - ICE with flexible array after substitution.
	* pt.c (instantiate_class_template_1): Check for flexible array in
	union.

2018-04-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85227
	* decl.c (cp_finish_decomp): In a template, if the type is incomplete
	issue a pedwarn and defer trying to do bindings.

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

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

	PR c++/85262 - ICE with redundant qualification on constructor.
	* call.c (build_new_method_call_1): Move make_args_non_dependent
	after A::A() handling.

	PR c++/85277 - ICE with invalid offsetof.
	* semantics.c (finish_offsetof): Avoid passing non-DECL to %qD.
	Adjust -Winvalid-offsetof diagnostic to say conditionally supported.

	PR c++/85264 - ICE with excess template-parameter-list.
	* parser.c (cp_parser_check_template_parameters): Add template_id_p
	parameter.  Don't allow an extra template header if true.
	(cp_parser_class_head): Pass template_id_p.
	(cp_parser_elaborated_type_specifier): Likewise.
	(cp_parser_alias_declaration): Likewise.
	(cp_parser_check_declarator_template_parameters): Likewise.

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

	PR c++/85194
	* parser.c (cp_parser_simple_declaration): For structured bindings,
	if *maybe_range_for_decl is NULL after parsing it, set it to
	error_mark_node.

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

	PR c++/85256 - ICE capturing pointer to VLA.
	* lambda.c (add_capture): Distinguish between variable-size and
	variably-modified types.

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

	PR c++/85214 - ICE with alias, generic lambda, constexpr if.
	* pt.c (extract_locals_r): Remember local typedefs.

2018-04-06  David Malcolm  <dmalcolm@redhat.com>

	PR c++/84269
	* name-lookup.c (struct std_name_hint): Move out of
	get_std_name_hint; add field "min_dialect".
	(get_std_name_hint): Add min_dialect values to all initializers.
	Add <any>, <atomic>, <bitset>, <condition_variable>, <functional>,
	<future>, <istream>, <iterator>, <ostream>, <mutex>, <optional>,
	<shared_mutex>, <string_view>, <thread>, and <variant>.
	Add fstream, ifstream, and ofstream to <fstream>.
	Add istringstream, ostringstream, and stringstream to <sstream>.
	Add basic_string to <string>.
	Add tuple_element and tuple_size to <tuple>.
	Add declval to <utility>.
	Fix ordering of <queue> and <tuple>.
	Return a std_name_hint, rather than a const char *.
	(get_cxx_dialect_name): New function.
	(maybe_suggest_missing_std_header): Detect names that aren't yet
	available in the current dialect, and instead of suggesting a
	missing #include, warn about the dialect.

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-06  David Malcolm  <dmalcolm@redhat.com>

	PR c++/85021
	* name-lookup.c (using_directives_contain_std_p): New function.
	(has_using_namespace_std_directive_p): New function.
	(suggest_alternatives_for): Simplify if/else logic using early
	returns.  If no candidates were found, and there's a
	"using namespace std;" directive, call
	maybe_suggest_missing_std_header.
	(maybe_suggest_missing_header): Split later part of the function
	into..
	(maybe_suggest_missing_std_header): New.

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

	PR c++/85242 - ICE with class definition in template parm.
	* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): False if
	processing_template_parmlist.

	PR c++/85240 - LTO ICE with using of undeduced auto fn.
	* cp-gimplify.c (cp_genericize_r): Discard using of undeduced auto.

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

	PR c++/85209
	* pt.c (tsubst_decomp_names): Don't fail or ICE if DECL_CHAIN (decl3)
	is not prev, if prev == decl.

	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-05  Jason Merrill  <jason@redhat.com>

	PR c++/85136 - ICE with designated init in template.
	* decl.c (maybe_deduce_size_from_array_init): Handle dependent
	designated initializer.
	(check_array_designated_initializer): Update ce->index with the
	constant value.

	PR c++/83808 - ICE with VLA initialization.
	* typeck2.c (process_init_constructor_array): Don't require a VLA
	initializer to have VLA type.

2018-04-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80956
	* call.c (convert_like_real): Fail gracefully for a broken
	std::initializer_list, missing a definition.

	* name-lookup.c (do_pushtag): Tweak message, use %< and %>.

2018-04-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84792
	* decl.c (grokdeclarator): Fix diagnostic about typedef name used
	as nested-name-specifier, keep type and TREE_TYPE (decl) in sync.

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++/85228 - ICE with lambda in enumerator in template.
	* pt.c (bt_instantiate_type_proc): Don't assume
	CLASSTYPE_TEMPLATE_INFO is non-null.

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-05  Ville Voutilainen  <ville.voutilainen@gmail.com>

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

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

	PR c++/85200 - ICE with constexpr if in generic lambda.
	* pt.c (extract_locals_r): Don't record the local specs of variables
	declared within the pattern.

2018-04-05  Alexandre Oliva <aoliva@redhat.com>

	PR c++/84979
	* pt.c (check_auto_in_tmpl_args): New.
	(tsubst_qualified_id): Use it to reject template args
	referencing auto for non-type templates.
	* parser.c (cp_parser_template_id): Likewise.
	* cp-tree.h (check_auto_in_tmpl_args): Declare.
	* typeck2.c (build_functional_cast): Report correct location
	for invalid use of auto.

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

	PR c++/85215 - ICE with copy-init from conversion.
	* call.c (merge_conversion_sequences): Fix type of direct binding
	sequence.

	PR c++/84938 - ICE with division by ~-1.
	* call.c (set_up_extended_ref_temp): Call cp_fully_fold.

	PR c++/84936 - ICE with unexpanded pack in mem-initializer.
	* parser.c (cp_parser_mem_initializer_list): Call
	check_for_bare_parameter_packs.

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.

	PR c++/85146
	* cp-tree.h (calculate_bases, calculate_direct_bases): Add complain
	argument.
	* semantics.c (calculate_bases): Add complain argument.  Use
	complete_type_or_maybe_complain instead of just complete_type and
	return an empty vector if it fails.  Move make_tree_vector () call
	after early return.  Formatting fixes.
	(calculate_direct_bases): Likewise.  Call release_tree_vector at the
	end.
	(dfs_calculate_bases_post, calculate_bases_helper): Formatting fixes.
	* pt.c (tsubst_pack_expansion): Adjust calculate_bases and
	calculate_direct_bases callers, formatting fixes.

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

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

	PR c++/85200 - ICE with constexpr if in generic lambda.
	* tree.c (cp_walk_subtrees): Walk into DECL_EXPR in templates.

	PR c++/84221 - bogus -Wunused with attribute and template.
	* decl2.c (is_late_template_attribute): Handle unused and used
	normally on non-TYPE_DECL.

	PR c++/85135 - ICE with omitted template arguments.
	* decl.c (grokdeclarator): Catch deduced class type in trailing
	return type.

	PR c++/85133 - ICE with missing concept initializer.
	* decl.c (cp_finish_decl): If a concept initializer is missing, use
	true.

	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++/85141 - ICE with compound assignment and static member fn.
	* typeck.c (cp_build_modify_expr): Call decay_conversion for RHS of
	compound assignment.

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

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

	PR c++/65923
	* decl.c (grokfndecl): Handle standard UDL diagnostics here..
	* parser.c (cp_parser_unqualified_id): ..not here.

2018-04-04  Alexandre Oliva <aoliva@redhat.com>

	PR c++/84943
	* typeck.c (cp_build_addr_expr_1): Mark FUNCTION_DECL as
	used.
	* decl2.c (mark_used): Return without effects if tf_conv.

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

	PR c++/85092 - C++17 ICE with unused list constructor.
	* call.c (conv_binds_ref_to_prvalue): Also count ck_identity
	from a TARGET_EXPR.

	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.

2018-04-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84768
	* pt.c (rewrite_template_parm): If the first argument is
	error_mark_node return it immediately.
	(build_deduction_guide): Check the return value of the
	latter for error_mark_node.
	(do_class_deduction): Check the return value of the latter.

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

	* semantics.c (finish_if_stmt_cond): Use
	instantiation_dependent_expression_p.

	PR c++/85149 - generic lambda and constexpr if.
	* pt.c (build_extra_args, add_extra_args): Split from
	tsubst_pack_expansion.
	(tsubst_expr) [IF_STMT]: Use them.
	* cp-tree.h (IF_STMT_EXTRA_ARGS): New.

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

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.

	PR c++/85134
	* decl.c (cp_finish_decl): If ensure_literal_type_for_constexpr_object
	fails, after clearing DECL_DECLARED_CONSTEXPR_P don't return early,
	instead for static data members clear init and set DECL_EXTERNAL.

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

	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.

2018-03-31  Alexandre Oliva <aoliva@redhat.com>

	PR c++/85027
	* class.c (instantiate_type): Peel off SAVE_EXPR before
	BASELINK.

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

	* typeck2.c (process_init_constructor_record): Use
	init_list_type_node for the CONSTRUCTOR around an anonymous union
	designated initializer.

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-29  David Malcolm  <dmalcolm@redhat.com>

	PR c++/84269
	* name-lookup.c (get_std_name_hint): Add names from <memory>,
	<tuple>, and <utility>.

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

	PR c++/85093 - too many template args with pack expansion.
	* pt.c (coerce_template_parms): Keep pack expansion args that will
	need to be empty.

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

	* pt.c (build_non_dependent_expr): Propagate expr location.

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

	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  David Malcolm  <dmalcolm@redhat.com>

	PR c++/85110
	* typeck.c (convert_for_assignment): When complaining due to
	conversions for an argument, attempt to use the location of the
	argument.

2018-03-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85028
	* pt.c (tsubst_default_argument): Early return if the type of the
	parameter is erroneous.

2018-03-28  Alexandre Oliva <aoliva@redhat.com>

	PR c++/84973
	* decl2.c (note_vague_linkage_fn): Don't defer uninstantiated
	templates.

	PR c++/84968
	* tree.c (strip_typedefs_expr): Reject STATEMENT_LISTs.

2018-03-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85067
	* method.c (defaulted_late_check): Partially revert r253321 changes,
	do not early return upon error.

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

	PR c++/85077
	* cp-gimplify.c (cp_fold) <case CONSTRUCTOR>: For ctors with vector
	type call fold to generate VECTOR_CSTs when possible.

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

2018-03-27  Volker Reichelt  <v.reichelt@netcologne.de>

	* search.c (check_final_overrider): Use inform instead of error
	for the diagnostics of the overridden functions.  Tweak wording.

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

	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-27  Paolo Carlini  <paolo.carlini@oracle.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/84632
	* init.c (build_aggr_init): When initializing from array,
	reject anything but CONSTRUCTORs and TARGET_EXPRs.
	(build_vec_init): Handle separately ARRAY_TYPEs.

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

	PR c++/85062 - ICE with alignas in wrong place.
	* decl.c (grokdeclarator): Ignore attributes on type-specifiers
	here.

	PR c++/85049 - ICE with __integer_pack.
	* pt.c (unify_pack_expansion): Don't try to deduce generated packs.
	* cp-tree.h (TEMPLATE_PARM_P): New.

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

	PR c++/78489 - wrong SFINAE behavior.

	PR c++/84489
	* pt.c (type_unification_real): Don't defer substitution failure.

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

	PR c++/85015
	* decl.c (compute_array_index_type): Set osize to mark_rvalue_use
	result.

	PR c++/84942
	* pt.c (tsubst_copy_and_build) <case FIX_TRUNC_EXPR>: Replace
	cp_build_unary_op call with gcc_unreachable ().

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

	PR c++/85045
	* cxx-pretty-print.c (cxx_pretty_printer::multiplicative_expression):
	Handle EXACT_DIV_EXPR and RDIV_EXPR.  Tweak condition.
	(cxx_pretty_printer::expression): Handle EXACT_DIV_EXPR and RDIV_EXPR.

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  Marek Polacek  <polacek@redhat.com>

	PR c++/85033
	* semantics.c (finish_offsetof): Don't allow CONST_DECLs.

2018-03-23  Alexandre Oliva <aoliva@redhat.com>

	PR c++/71251
	* parser.c (cp_parser_alias_declaration): Call
	parser_check_template_parameters.

	PR c++/84789
	* pt.c (resolve_typename_type): Drop assert that stopped
	simplification to template-independent types.  Add assert to
	verify the initial scope is template dependent.
	* parser.c (cp_parser_parse_and_diagnose_invalid_type_name):
	Reparse the id expression as a type-name, not a declarator.

	PR c++/84729
	* init.c (build_vec_init): Error at parenthesized array init.

	PR c++/84610
	PR c++/84642
	PR c++/84942
	* cp-tree.h (temp_override): New template class, generalizing
	a cleanup that was only used...
	* parser.c (cp_parser_parameter_declaration_clause):
	... here for auto_is_implicit_function_template_parm_p.
	(cp_parser_gnu_attributes_opt): Use it here as well.
	(cp_parser_std_attribute): Likewise.

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-21  Jason Merrill  <jason@redhat.com>

	PR c++/81311 - wrong C++17 overload resolution.
	* call.c (build_user_type_conversion_1): Remove C++17 code.
	(conv_binds_ref_to_prvalue): New.
	(build_over_call): Handle C++17 copy elision.
	(build_special_member_call): Only do C++17 copy elision here if the
	argument is already the right type.

2018-03-21  Alexandre Oliva <aoliva@redhat.com>

	PR c++/71965
	* init.c (build_vec_init): Silence error, former sorry,
	without tf_error.

	PR c++/84610
	PR c++/84642
	* parser.c (abort_fully_implicit_template_p): New.
	(cp_parser_skip_to_end_of_statement): Use it.
	(cp_parser_skip_to_end_of_block_or_statement): Likewise.
	(finish_fully_implicit_template_p): Clear
	implicit_template_parms and implicit_template_scope.

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

	PR c++/84972
	* decl.c (maybe_deduce_size_from_array_init): Set TREE_TYPE to
	error_mark_node when check_array_designated_initializer fails.

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-21  Nathan Sidwell  <nathan@acm.org>

	PR c++/85008
	* tree.c (decl_linkage): Use DECL_CLONED_FUNCTION_P.
	* decl2.c (vague_linkage_p): Likewise.

2018-03-21  David Malcolm  <dmalcolm@redhat.com>

	PR c++/84994
	* constexpr.c (constexpr_fn_retval): Make non-"static".
	* cp-tree.h (constexpr_fn_retval): New decl.
	* search.c (direct_accessor_p): Update leading comment.
	(reference_accessor_p): Likewise.
	(field_accessor_p): Replace check that function body is a
	RETURN_EXPR with a call to constexpr_fn_retval.  Fix
	indentation of "field_type" decl.

2018-03-21  Nathan Sidwell  <nathan@acm.org>

	PR c++/84804
	* name-lookup.c (do_pushtag): Permit lambdas to be pushed into
	complete classes.

2018-03-21  Martin Sebor  <msebor@redhat.com>

	PR c++/84850
	* call.c (first_non_public_field): New template and function.
	(first_non_trivial_field): New function.
	(maybe_warn_class_memaccess): Call them.

2018-03-21  David Malcolm  <dmalcolm@redhat.com>

	PR c++/84892
	* search.c (field_accessor_p): Use class_of_this_parm rather than
	type_of_this_parm, to check that "this" is a "const T *", rather
	than a "T *const".

2018-03-21  Nathan Sidwell  <nathan@acm.org>

	* class.c (finish_struct_anon_r): Refactor, deprecate anything
	other than public non-static data members.
	* parser.c (cp_parser_init_declarator): Deprecate attributes after
	parenthesized initializer.

	PR c++/84836
	* name-lookup.c (update_binding): Correct logic for local binding
	update.

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-20  Marek Polacek  <polacek@redhat.com>

	PR c++/84978, ICE with NRVO.
	* constexpr.c (cxx_eval_constant_expression): Handle the case when
	a RESULT_DECL isn't in the hash map.

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

	PR c++/84978, ICE with NRVO.
	* cvt.c (cp_get_fndecl_from_callee): Add fold parameter.
	(cp_get_callee_fndecl_nofold): New.
	* cp-gimplify.c (cp_genericize_r): Use it instead.
	* call.c (check_self_delegation): Likewise.

2018-03-20  Nathan Sidwell  <nathan@acm.org>

	PR c++/84962
	* name-lookup.c (pushdecl_class_level): Push anon-struct's
	member_vec, if there is one.

	PR c++/84970
	* cp-tree.h (lookup_list_keep): Declare.
	* tree.c (lookup_list_keep): New, broken out of ...
	(build_min): ... here.  Call it.
	* decl.c (cp_finish_decl): Call lookup_list_keep.

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

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

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

	PR c++/84925
	* pt.c (enclosing_instantiation_of): Check if fn is null.

	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-19  Jason Merrill  <jason@redhat.com>

	PR c++/71834 - template-id with too few arguments.
	* pt.c (coerce_template_parms): Check fixed_parameter_pack_p.

2018-03-19  Nathan Sidwell  <nathan@acm.org>

	PR c++/84835
	* lambda.c (maybe_add_lambda_conv_op): Force C++ linkage.
	* pt.c (build_template_decl): Propagate language linkage.

	PR c++/84812
	* name-lookup.c (set_local_extern_decl_linkage): Defend against
	ambiguous lookups.

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

	PR c/84910
	* parser.c (cp_parser_lambda_introducer): Remove trailing space from
	diagnostics.
	* method.c (synthesize_method): Likewise.
	* pt.c (convert_nontype_argument): Likewise.

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

	PR c++/84720 - ICE with rvalue ref non-type argument.
	* pt.c (invalid_nontype_parm_type_p): Prohibit rvalue reference.
	(convert_nontype_argument): Revert earlier change.

	PR c++/80227 - SFINAE and negative array size.
	* decl.c (compute_array_index_type): Use
	build_converted_constant_expr and valid_constant_size_p.

	PR c++/84906 - silent wrong code with ambiguous conversion.
	* call.c (build_user_type_conversion_1): Set need_temporary_p on
	ambiguous conversion.
	(convert_like_real): Check it.

	PR c++/83937 - wrong C++17 handling of init-list ctor argument.
	* call.c (build_special_member_call): Don't convert an init-list
	argument directly to the class type.

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

	PR c++/79937
	PR c++/82410
	* cp-tree.h (CONSTRUCTOR_PLACEHOLDER_BOUNDARY): Define.
	(find_placeholder): Declare.
	* tree.c (struct replace_placeholders_t): Add exp member.
	(replace_placeholders_r): Don't walk into ctors with
	CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag set, unless they are equal to
	d->exp.  Replace PLACEHOLDER_EXPR with unshare_expr (x) rather than x.
	(replace_placeholders): Initialize data.exp.
	(find_placeholders_r, find_placeholders): New functions.
	* typeck2.c (process_init_constructor_record,
	process_init_constructor_union): Set CONSTRUCTOR_PLACEHOLDER_BOUNDARY
	if adding NSDMI on which find_placeholder returns true.
	* call.c (build_over_call): Don't call replace_placeholders here.
	* cp-gimplify.c (cp_genericize_r): Set TARGET_EXPR_NO_ELIDE on
	TARGET_EXPRs with CONSTRUCTOR_PLACEHOLDER_BOUNDARY set on
	TARGET_EXPR_INITIAL.
	(cp_fold): Copy over CONSTRUCTOR_PLACEHOLDER_BOUNDARY bit to new
	ctor.

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

	PR c++/83911 - ICE with multiversioned constructor.
	* cp-gimplify.c (cp_genericize_r): Replace versioned function with
	dispatchere here.
	* call.c (build_over_call): Not here.

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-14  Jason Merrill  <jason@redhat.com>

	PR c++/84820 - no error for invalid qualified-id.
	* parser.c (cp_parser_make_indirect_declarator): Don't wrap
	cp_error_declarator.

	PR c++/84801 - ICE with unexpanded pack in lambda.
	* pt.c (check_for_bare_parameter_packs): Don't return early for a
	lambda in non-template context.

	PR c++/81236 - auto variable and auto function
	* pt.c (tsubst_baselink): Update the type of the BASELINK after
	mark_used.

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

	PR c++/83916 - ICE with template template parameters.
	* pt.c (convert_template_argument): Don't substitute into type of
	non-type parameter if we don't have enough arg levels.
	(unify): Likewise.

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

	PR c++/84596
	* semantics.c (finish_static_assert): Check
	instantiation_dependent_expression_p instead of
	{type,value}_dependent_expression_p.

2018-03-13  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-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84843
	* decl.c (duplicate_decls): For redefinition of built-in, use error
	and return error_mark_node.  For redeclaration, return error_mark_node
	rather than olddecl if !flag_permissive.

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

	PR c++/82565 - ICE with concepts and generic lambda.
	* pt.c (instantiate_decl): Clear fn_context for lambdas.

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

	PR c++/84720 - ICE with rvalue ref non-type argument.
	* pt.c (convert_nontype_argument): Handle rvalue references.

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

	* parser.c (cp_parser_simple_type_specifier): Pedwarn about auto
	parameter even without -Wpedantic.

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

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

	PR c++/84808
	* constexpr.c (find_array_ctor_elt): Don't use elt reference after
	first potential CONSTRUCTOR_ELTS reallocation.  Convert dindex to
	sizetype.  Formatting fixes.

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

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

	PR c++/84802 - ICE capturing uninstantiated class.
	* lambda.c (build_capture_proxy): Call complete_type.

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

	PR c++/84770 - ICE with typedef and parameter pack.
	* pt.c (verify_unstripped_args_1): Split out from
	verify_unstripped_args.

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

	PR c++/84752 - ICE with capture of constexpr array.
	* call.c (standard_conversion): Set rvaluedness_matches_p on the
	identity conversion under ck_lvalue.

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

	PR c++/71169
	PR c++/71832
	* pt.c (any_erroneous_template_args_p): New.
	* cp-tree.h (any_erroneous_template_args_p): Declare it.
	* parser.c (cp_parser_class_specifier_1): Use it.

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

	PR c++/84726 - unnecessary capture of constant vars.
	* cp-tree.h (LAMBDA_CAPTURE_EXPLICIT_P)
	(LAMBDA_EXPR_CAPTURE_OPTIMIZED): New.
	* expr.c (mark_use): Set LAMBDA_EXPR_CAPTURE_OPTIMIZED.
	* lambda.c (is_constant_capture_proxy)
	(current_lambda_expr, var_to_maybe_prune, mark_const_cap_r)
	(prune_lambda_captures): New.
	(finish_lambda_function): Call prune_lambda_captures.

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-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84724
	* decl.c (duplicate_decls): Don't override __* prefixed builtins
	except for __[^b]*_chk, instead issue permerror and for -fpermissive
	also a note and return olddecl.

2018-03-09  Nathan Sidwell  <nathan@acm.org>

	PR c++/84733
	* name-lookup.c (do_pushdecl_with_scope): Only clear
	current_function_decl when pushing a non-class (i.e. namespace)
	scope.

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-06  Jason Merrill  <jason@redhat.com>

	* lambda.c (is_capture_proxy_with_ref): Remove.
	* constexpr.c, expr.c, cp-tree.h, semantics.c: Adjust.

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

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

2018-03-06  Alexandre Oliva <aoliva@redhat.com>

	PR c++/84231
	* tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE
	only while processing template decls.
	* typeck.c (build_x_conditional_expr): Move wrapping of
	reference type around type...
	* call.c (build_conditional_expr_1): ... here.  Rename
	is_lvalue to is_glvalue.
	* parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P
	INDIRECT_REF of COND_EXPR too.

	PR c++/84593
	* init.c (build_zero_init_1): Zero-initialize references.

	PR c++/84492
	* semantics.c (finish_stmt_expr_expr): Reject unresolved
	overloads used as stmt expr values.

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

	PR c++/84708 - ICE with lambda in local class NSDMI.
	* lambda.c (lambda_expr_this_capture): Handle local class NSDMI
	context.

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

	PR c++/84684
	* constexpr.c (constexpr_call_hasher::equal): Return false if
	lhs->hash != rhs->hash.  Change return 1 to return true and
	return 0 to return false.

2018-03-05  Nathan Sidwell  <nathan@acm.org>

	PR c++/84702
	* pt.c (process_template_arg): Mark lookup_keep on a default arg.

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

	PR c++/84707
	* decl.c (duplicate_decls): Check DECL_NAME before accessing
	UDLIT_OPER_P.

2018-03-05  Nathan Sidwell  <nathan@acm.org>

	PR c++/84694
	* friend.c (do_friend): Restore check for identifier_p inside
	TEMPLATE_ID_EXPR.

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

	PR c++/84618
	* parser.c (cp_parser_lambda_introducer): Reject any capture not
	involving a VAR_DECL or a PARM_DECL.

2018-03-05  Pádraig Brady  <P@draigBrady.com>
	    Jason  Merrill  <jason@redhat.com>
	    Nathan Sidwell  <nathan@acm.org>

	PR c++/84497
	* decl2.c (get_tls_init_fn): Check TYPE_HAS_TRIVIAL_DFLT too.

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  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71464
	* optimize.c (maybe_thunk_body): Bail out immediately if either
	fns[0] or fns[1] is null.

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

	PR c++/84578
	* constexpr.c (get_array_or_vector_nelts): New.
	(cxx_eval_array_reference): Use it.
	(cxx_eval_vec_init_1): Likewise.
	(cxx_eval_store_expression): Likewise.

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

	* semantics.c (force_paren_expr): Remove redundant test.

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

	PR c++/84663
	* decl.c (cp_complete_array_type): Check error_mark_node.

	PR c++/84664
	* typeck.c (cp_perform_integral_promotions): Check the result of
	mark_rvalue_use.

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-03-02  Jason Merrill  <jason@redhat.com>

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

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

	PR c++/84590
	* cp-gimplify.c (cp_fully_fold): Unwrap TARGET_EXPR or a CONSTRUCTOR
	wrapped in VIEW_CONVERT_EXPR.

2018-03-01  Martin Sebor  <msebor@redhat.com>

	PR c++/84294
	* decl.c (check_redeclaration_no_default_args): Merge attributes
	specified on redeclarations of the same function template.
	Remove dead code.

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

	PR c++/84582
	* semantics.c (force_paren_expr): Create a PAREN_EXPR when in
	a template.
	(maybe_undo_parenthesized_ref): Unwrap PAREN_EXPR.
	* typeck2.c (store_init_value): Call fold_non_dependent_expr instead
	of instantiate_non_dependent_expr.
	* tree.c (lvalue_kind): Handle PAREN_EXPR like NON_DEPENDENT_EXPR.

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

	PR c++/84434
	* name-lookup.c (member_vec_dedup): Remove manually peeled
	iteration.  Ignore dependent ctor inheritance.

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  Marek Polacek  <polacek@redhat.com>

	PR c++/84596
	* constexpr.c (require_rvalue_constant_expression): New function.
	* cp-tree.h: Declare it.
	* semantics.c (finish_static_assert): Use it instead of
	require_potential_rvalue_constant_expression.

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-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/84609
	* parser.c (cp_parser_attributes_opt): Formatting fix.
	(cp_parser_skip_balanced_tokens, cp_parser_skip_gnu_attributes_opt,
	cp_parser_skip_std_attribute_spec_seq, cp_parser_skip_attributes_opt):
	New functions.
	(cp_parser_member_declaration): Use cp_parser_skip_attributes_opt
	instead of tentative parse to peek over optional attribute tokens
	to check for CPP_COLON after them.

	PR c++/83871
	PR c++/83503
	* pt.c (INCLUDE_STRING): Remove define.
	(warn_spec_missing_attributes): Use pretty_printer instead of
	std::string.  Fix up inform call so that the list of attributes
	is in %s argument.

2018-02-28  Martin Sebor  <msebor@redhat.com>

	PR testsuite/84617
	* decl.c (duplicate_decls): Fully merge attributes const, pure,
	and malloc.

2018-02-28  Nathan Sidwell  <nathan@acm.org>

	PR c++/84602
	* name-lookup.h (search_anon_aggr): Add defaulted WANT_TYPE arg.
	* name-lookup.c (fields_linear_search): Look in an anon-aggr
	regardless of want_type.
	(search_anon_aggr): Just use get_class_binding_direct.

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

	* decl.c (cp_finish_decomp): Don't adjust eltscnt when calling
	inform_n.

2018-02-27  Martin Sebor  <msebor@redhat.com>

	* pt.c: Avoid including <string> directly.

2018-02-27  Martin Sebor  <msebor@redhat.com>

	PR c++/83871
	PR c++/83503
	* cp-tree.h (warn_spec_missing_attributes): New function.
	((check_explicit_specialization): Add an argument.  Call the above
	function.
	* decl.c (duplicate_decls): Avoid applying primary function template's
	attributes to its explicit specializations.
	cp/pt.c (warn_spec_missing_attributes): Define.

2018-02-27  Håkon Sandsmark  <hsandsmark@gmail.com>

	PR c++/71546 - lambda init-capture with qualified-id.
	* parser.c (cp_parser_lambda_introducer): Clear scope after
	each lambda capture.

2018-02-27  Nathan Sidwell  <nathan@acm.org>

	PR c++/84426
	* name-lookup.h (get_member_slot): Rename ...
	(find_member_slot): ... here.
	(add_member_slot): New.
	* name-lookup.c (member_vec_linear_search): No need to check for
	NULL slot.
	(get_member_slot): Rename ...
	(find_member_slot): ... here.  Don't add slot for incomplete class.
	(add_member_slot): New.
	* class.c (add_method): Adjust get_member_slot rename.  Bail out
	if push_class_level_binding fails.  Create slot and grok
	properties once we're committed to insertion.

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-02-26  Jason Merrill  <jason@redhat.com>

	PR c++/84560 - ICE capturing multi-dimensional VLA.
	* tree.c (array_of_runtime_bound_p): False if the element is
	variably-modified.

	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.

	PR c++/84559 - ICE with constexpr VLA.
	* constexpr.c (ensure_literal_type_for_constexpr_object): Check
	for constexpr variable with VLA type.

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.

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

	PR c++/84540
	* pt.c (tsubst_attributes): Handle correctly tsubst_attribute
	returning NULL_TREE.
	(apply_late_template_attributes): Likewise.

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

	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-26  Jason Merrill  <jason@redhat.com>

	PR c++/84551 - ICE with concepts and -g.
	* parser.c (add_debug_begin_stmt): Do nothing in a concept.

2018-02-26  Marek Polacek  <polacek@redhat.com>

	PR c++/84325
	* tree.c (replace_placeholders_r): Only check TREE_CONSTANT on
	non-types.

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

	PR c++/84447 - ICE with deleted inherited ctor with default arg.
	* call.c (build_over_call): Handle deleted functions in one place.

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

	PR c++/84533
	* decl.c (redeclaration_error_message): Don't try to use
	DECL_DECLARED_CONSTEXPR_P on CONST_DECLs.

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

	* lambda.c (build_capture_proxy): Define static.
	* cp-tree.h (build_capture_proxy): Remove.

2018-02-26  Marek Polacek  <polacek@redhat.com>

	PR c++/84537
	* name-lookup.c (suggest_alternative_in_explicit_scope): Return false
	if name is error node.

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-24  Marek Polacek  <polacek@redhat.com>

	PR c++/83692
	* constexpr.c (maybe_constant_init_1): New function.
	(maybe_constant_init): Make it a wrapper around maybe_constant_init_1.
	(cxx_constant_init): New function.
	* cp-tree.h (cxx_constant_init): Declare.
	* typeck2.c (store_init_value): Call cxx_constant_init instead of
	cxx_constant_value.  Move the maybe_constant_init call under an 'else'.

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

	PR c++/70468 - ICE with constructor delegation via typedef.
	* pt.c (tsubst_initializer_list): Check for other mem-initializers
	with constructor delegation.

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

	PR c++/84424 - ICE with constexpr and __builtin_shuffle.
	* constexpr.c (reduced_constant_expression_p): Handle CONSTRUCTOR of
	VECTOR_TYPE.

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

	PR c++/84493
	* parser.c (cp_parser_braced_list): Use require_open instead of
	consume_open.

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

	PR c++/84454 - ICE with pack expansion in signature.
	* error.c (find_typenames_r): Also stop on EXPR_PACK_EXPANSION.

2018-02-20  Siddhesh Poyarekar  <siddhesh@sourceware.org>

	* cp-objcp-common.c (cxx_block_may_fallthru): Add case for
	IF_STMT.

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

	PR c++/84446
	* parser.c (cp_parser_init_declarator): Don't call start_lambda_scope
	on error_mark_node.

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.

	PR c++/84455
	* pt.c (tsubst_lambda_expr): If not nested, increment temporarily
	function_depth to avoid GC during finish_lambda_function.

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

	PR c++/84429 - ICE capturing VLA.
	* lambda.c (build_capture_proxy): Handle reference refs.

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-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84348
	* decl.c (grokdeclarator): Early return error_mark_node upon
	ill-formed friend declaration.

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-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.

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

	PR c++/84421 - type-dependent if constexpr
	* semantics.c (finish_if_stmt_cond): Check type_dependent_expression_p.

2018-02-16  Nathan Sidwell  <nathan@acm.org>

	Deprecate -ffriend-injection.
	* decl.c (cxx_init_decl_processing): Emit warning on option.
	* name-lookup.c (do_pushdecl): Emit warning if we push a visible
	friend.

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

	PR c++/82468
	* decl.c (check_special_function_return_type): Reject template
	template parameter in deduction guide.

2018-02-16  Nathan Sidwell  <nathan@acm.org>

	PR c++/84375
	* name-lookup.c (do_pushdecl): Bail out on bad local friend injection.

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

	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.

	PR c++/84376 - ICE with omitted template arguments.
	* pt.c (dguide_name_p): Check for IDENTIFIER_NODE.

	PR c++/84368 - wrong error with local variable in variadic lambda.
	* pt.c (tsubst_pack_expansion): Fix handling of non-packs in
	local_specializations.

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

	PR c++/84330
	* constraint.cc (tsubst_constraint_info): Handle an error_mark_node
	as first argument.

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

	PR c++/84350
	* pt.c (do_auto_deduction): Don't check the TREE_TYPE of a null
	init, early return.

2018-02-14  Nathan Sidwell  <nathan@acm.org>

	* decl2.c (mark_vtable_entries): Set input_location to decl's.
	(c_parse_final_cleanups): Restore input_location after emitting
	vtables.

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

	* cp-tree.h (do_auto_deduction (tree, tree, tree)): Remove.
	(do_auto_deduction (tree, tree, tree, tsubst_flags_t,
	auto_deduction_context, tree, int): Add defaults.
	* pt.c (do_auto_deduction (tree, tree, tree)): Remove definition.
	(tsubst_omp_for_iterator): Adjust do_auto_deduction call, forward
	tsubst_flags_t argument.
	* init.c (build_new): Likewise.

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

	PR c++/84364
	* typeck.c (check_return_expr): Don't emit -Weffc++ warning
	about return other than *this in assignment operators if
	retval is type dependent expression.

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

	PR c++/84333
	* call.c (build_conditional_expr_1): Use cp_save_expr instead of
	save_expr for the G++ extension.

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

	PR c++/84080 - ICE with return type deduction and specialization.
	* pt.c (determine_specialization): Check uses_template_parms.

	Fix more variadic capture issues.
	* pt.c (find_parameter_packs_r): Also look at explicit captures.
	(check_for_bare_parameter_packs): Check current_class_type for
	lambda context.
	(extract_locals_r): Handle seeing a full instantiation of a pack.
	(tsubst_pack_expansion): Likewise.  Force lambda capture.
	* parser.c (cp_parser_lambda_introducer): Don't
	check_for_bare_parameter_packs.

	PR c++/84338 - wrong variadic sizeof.
	* pt.c (argument_pack_select_arg): Like the macro, but look through
	a pack expansion.
	(tsubst, tsubst_copy, dependent_template_arg_p): Use it.
	(extract_fnparm_pack): Do make_pack_expansion.
	(extract_locals_r): Do strip a pack expansion.
	* cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove.

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-12  Nathan Sidwell  <nathan@acm.org>

	PR c++/84263
	* parser.c (cp_parser_decltype): Push and pop
	deferring_access_checks.  Reorganize to avoid goto.

2018-02-12  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-02-09  Jason Merrill  <jason@redhat.com>

	PR c++/84036 - ICE with variadic capture.
	Handle variadic capture proxies more like non-variadic.
	* lambda.c (build_capture_proxy): Remove workaround.
	* pt.c (find_parameter_packs_r): The proxy is a pack.
	(instantiate_class_template_1): Remove dead lambda code.
	(extract_fnparm_pack): Don't make_pack_expansion.
	(extract_locals_r): Don't strip a pack expansion.
	(tsubst_pack_expansion): Handle proxy packs.  Use
	PACK_EXPANSION_EXTRA_ARGS less.
	(tsubst_decl) [FIELD_DECL]: Don't register_specialization.
	(tsubst_copy) [FIELD_DECL]: Don't retrieve*_specialization.
	[VAR_DECL]: Handle ARGUMENT_PACK_SELECT.
	(tsubst_expr) [DECL_EXPR]: Handle proxy packs.
	(tsubst_copy_and_build) [VAR_DECL]: Handle proxy packs normally.

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  Jason Merrill  <jason@redhat.com>

	PR c++/81917 - ICE with void_t and partial specialization.
	* pt.c (instantiate_class_template_1): Set TYPE_BEING_DEFINED before
	calling most_specialized_partial_spec.

2018-02-09  Nathan Sidwell  <nathan@acm.org>

	PR c/84293
	* typeck.c (cp_build_indirect_ref_1, build_reinterpret_cast_1):
	Pass expr location to strict_aliasing_warning.

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

	PR c++/84296 - ICE with qualified-id in template.
	PR c++/83714
	* pt.c (unknown_base_ref_p): New.
	(instantiation_dependent_scope_ref_p): Use it instead of
	any_dependent_bases_p.

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, including poly_*int64.  Verify first that
	tree_fits_poly_int64_p (op01).  Formatting fixes.

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

	* constexpr.c (cxx_eval_component_reference): Use INDIRECT_REF_P.
	* lambda.c (build_capture_proxy): Likewise.
	* search.c (field_access_p): Likewise.
	* semantics.c (omp_clause_decl, omp_privatize_field,
	finish_omp_clauses): Likewise.

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

	PR c++/83806
	* typeck.c (decay_conversion): Use mark_rvalue_use for the special
	case of nullptr too.

2018-02-08  Nathan Sidwell  <nathan@acm.org>

	* class.c (finish_struct): Fix std:initializer_list diagnostic
	formatting.

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

	PR c++/83204
	* pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF.

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-02-07  David Malcolm  <dmalcolm@redhat.com>

	PR c++/81610
	PR c++/80567
	* name-lookup.c (suggest_rid_p): New function.
	(lookup_name_fuzzy): Replace enum-rid-filtering logic with call to
	suggest_rid_p.

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

	PR c++/84182 - ICE with captured lambda
	PR c++/84181
	* pt.c (extract_locals_r, extract_local_specs): New.
	(tsubst_pack_expansion): Use them.

2018-02-07  Martin Liska  <mliska@suse.cz>

	PR c++/84059.
	* class.c (add_method): Append argument value.
	* cp-tree.h (maybe_version_functions): Add new argument.
	* decl.c (decls_match): Call it if a declaration does not
	have DECL_FUNCTION_VERSIONED.
	(maybe_version_functions): record argument is added.

2018-02-05  Marek Polacek  <polacek@redhat.com>

	* class.c: Remove unused global variables.
	(build_primary_vtable): Don't gather statistics.
	(print_class_statistics): Remove.
	* cp-tree.h (print_class_statistics): Remove.
	* tree.c (cxx_print_statistics): Don't call print_class_statistics.

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

	* class.c (is_really_empty_class): Use DECL_UNNAMED_BIT_FIELD.
	* constexpr.c (cx_check_missing_mem_inits): Likewise.
	* decl.c (next_initializable_field, find_decomp_class_base,
	cp_finish_decomp): Likewise.
	* typeck2.c (process_init_constructor_record): Likewise.

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

	PR c++/84181 - ICE with lambda parm in template argument.
	* tree.c (strip_typedefs_expr): Use cp_tree_operand_length.

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

	PR c++/84160 - ICE with nested variadic capture.
	* lambda.c (is_capture_proxy_with_ref): New.
	(insert_capture_proxy): Don't set DECL_CAPTURED_VARIABLE from a
	COMPONENT_REF.
	* expr.c (mark_use): Use is_capture_proxy_with_ref.
	* constexpr.c (potential_constant_expression_1): Likewise.
	* semantics.c (process_outer_var_ref): Likewise.

2018-02-01  Marek Polacek  <polacek@redhat.com>

	PR c++/84125
	* typeck.c (build_address): Relax the assert when
	processing_template_decl.

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

	PR c++/84126 - ICE with variadic generic lambda
	PR c++/84036
	PR c++/82249
	* pt.c (tsubst_pack_expansion): Handle function parameter_packs in
	PACK_EXPANSION_EXTRA_ARGS.

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

	PR c++/83796
	* call.c (convert_like_real): If w're initializing from {} explicitly
	call abstract_virtuals_error_sfinae.

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-31  Jakub Jelinek  <jakub@redhat.com>

	PR c++/83993
	* constexpr.c (diag_array_subscript): Emit different diagnostics
	if TYPE_DOMAIN (arraytype) is NULL.
	(cxx_eval_array_reference, cxx_eval_store_expression): For arrays
	with NULL TYPE_DOMAIN use size_zero_node as nelts.

2018-01-31  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84092
	* semantics.c (finish_qualified_id_expr): When handling an
	UNBOUND_CLASS_TEMPLATE only adjust qualifying_class and expr.

2018-01-31  Marek Polacek  <polacek@redhat.com>

	PR c++/84138
	* cp-gimplify.c (cp_fold): Check if X is an error node before
	calling useless_type_conversion_p.

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

	PR c++/84091 - ICE with local class in lambda in template.
	* decl2.c (determine_visibility): Look for outer containing template
	instantiation.

	PR c++/84098 - ICE with lambda in template NSDMI.
	* pt.c (instantiate_class_template_1): Ignore more lambdas.

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

	PR c++/68810 - wrong location for reinterpret_cast error.
	* cvt.c (cp_convert_to_pointer): Always build a CONVERT_EXPR when
	!dofold.

2018-01-29  Marek Polacek  <polacek@redhat.com>

	PR c++/83996
	* constexpr.c (cxx_fold_indirect_ref): Compute ((foo *)&fooarray)[1]
	=> fooarray[1] in offset_int.

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

	PR c++/83942 - wrong unused warning with static_cast.
	* cvt.c (ocp_convert): Call mark_rvalue_use.

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

	PR c++/83956 - wrong dtor error with anonymous union
	* method.c (walk_field_subobs): Variant members only affect
	deletedness.
	(maybe_explain_implicit_delete): Pass &deleted_p for diagnostic.

	PR c++/84036 - ICE with variadic capture.
	PR c++/82249
	* pt.c (tsubst_pack_expansion): When optimizing a simple
	substitution, pull a single pack expansion out of its pack.

	PR c++/82514 - ICE with local class in generic lambda.
	* pt.c (regenerated_lambda_fn_p): Remove.
	(enclosing_instantiation_of): Don't use it.
	(tsubst_function_decl): Call enclosing_instantiation_of.

	* pt.c (lookup_template_class_1): Add sanity check.
	* name-lookup.c (do_pushtag): Don't add closures to local_classes.

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  Jason Merrill  <jason@redhat.com>

	PR c++/82249 - wrong mismatched pack length error.
	* pt.c (extract_fnparm_pack, tsubst_pack_expansion): Handle
	unsubstituted function parameter pack.

2018-01-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/83921
	* decl.c (check_for_uninitialized_const_var): Not static; add
	bool and tsubst_flags_t parameters; adjust to be used both in
	constexpr context and not.
	* constexpr.c (potential_constant_expression_1): Use the above.
	* cp-tree.h (check_for_uninitialized_const_var): Declare.

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

	PR c++/83947 - ICE with auto declarations.
	* pt.c (do_auto_deduction): Don't deduce from an auto decl.
	* decl.c (undeduced_auto_decl): Limit to vars and fns.

2018-01-23  David Malcolm  <dmalcolm@redhat.com>

	PR c++/83974
	* pt.c (tsubst_copy_and_build) <CONSTRUCTOR>: Remove early bailout
	for pointer to member function types.

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.

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

	PR c++/83988
	* pt.c (tsubst_baselink): Remove optype assert.
	* ptree.c (cxx_print_xnode): <case BASELINK> Print BASELINK_OPTYPE.

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

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

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

	Deprecate ARM-era for scope handling
	* decl.c (poplevel): Flag_new_for_scope is a boolean-like.
	(cxx_init_decl_processing): Deprecate flag_new_for_scope being
	cleared.
	* name-lookup.c (check_for_out_of_scope_variable): Deprecate and
	cleanup handling.
	* semantics.c (begin_for_scope): Flag_new_for_scope is
	boolean-like.
	(finish_for_stmt, begin_range_for_stmt): Likewise.

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

	PR c++/83720
	* decl2.c (determine_visibility): Fix template_decl handling
	instead of blocking it.

	PR c++/83720 - ICE with lambda and LTO.
	* decl2.c (determine_visibility): Clear template_decl for
	function-scope decls.  Propagate anonymous linkage from containing
	function.

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

	PR c++/81933
	* typeck2.c (split_nonconstant_init_1): Return false if we didn't
	split out anything.

2018-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR c++/83895
	* decl.c (grokdeclarator): Don't diagnose extra parens
	on typedefs.

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

	PR c++/81167
	* call.c (joust): Use TREE_TYPE (source) if source is
	a POINTER_TYPE_P rather than if ! DECL_CONSTRUCTOR_P (w->fn).

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

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

	* constexpr.c (fold_simple): Simplify.

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

	PR c++/83714
	* search.c (any_dependent_bases_p): Handle null TREE_BINFO.
	* pt.c (instantiation_dependent_scope_ref_p): True if
	any_dependent_bases_p.

2018-01-18  Paolo Carlini  <paolo.carlini@oracle.com>

	* cp-tree.h: Fix comment typo (DECL_NON_TRIVIALLY_INITIALIZED_P
	vs DECL_NONTRIVIALLY_INITIALIZED_P).

2018-01-18  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-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81013
	* decl.c (xref_basetypes): Early return upon error about derived
	union.

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

	PR c++/83160
	* cp-tree.h (mark_use): Declare.
	* expr.c (mark_use): Make extern.
	* call.c (direct_reference_binding): Set inner conv's
	rvaluedness_matches_p, if it is an identity.
	(convert_like_real): Mark lvalue or rvalue use for identity as
	rvaledness_matches_p demands.

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-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/78344
	* decl.c (grokdeclarator): Do not append the error_mark_node
	due to an erroneous optional attribute-specifier-seq.

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

	PR c++/83897
	* cp-gimplify.c (cp_maybe_instrument_return): Handle
	CLEANUP_POINT_EXPR.

2018-01-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81054
	* constexpr.c (ensure_literal_type_for_constexpr_object): Return
	error_mark_node when we give an error.
	* decl.c (cp_finish_decl): Use the latter.

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

	PR c++/83287
	* init.c (build_raw_new_expr): Scan list for lookups to keep.

2018-01-17  David Malcolm  <dmalcolm@redhat.com>

	PR c++/83814
	* expr.c (fold_for_warn): Move from c-common.c, reducing to just
	the C++ part.  If processing a template, call
	fold_non_dependent_expr rather than fully folding.

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

	PR c++/81067 - redundant NULL warning.
	* call.c (convert_like_real): Restore null_node handling.

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.

2018-01-17  David Malcolm  <dmalcolm@redhat.com>

	PR c++/83799
	* pt.c (type_dependent_expression_p): Strip any location wrapper
	before testing tree codes.
	(selftest::test_type_dependent_expression_p): New function.
	(selftest::cp_pt_c_tests): Call it.

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

	PR c++/83739
	* pt.c (tsubst_expr) <case RANGE_FOR_STMT>: Rebuild a range_for if
	this not a final instantiation.

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

	PR c++/83714 - ICE checking return in template.
	* typeck.c (check_return_expr): Call build_non_dependent_expr.

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.

	PR c++/83825
	* name-lookup.c (member_vec_dedup): Return early if len is 0.
	(resort_type_member_vec, set_class_bindings,
	insert_late_enum_def_bindings): Use vec qsort method instead of
	calling qsort directly.

2018-01-15  Martin Sebor  <msebor@redhat.com>

	PR c++/83588
	* class.c (find_flexarrays): Make a record of multiple flexible array
	members.

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

	PR c++/83186 - ICE with static_cast of list-initialized temporary.
	* typeck.c (build_static_cast): Use build_non_dependent_expr.

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

	* cp-tree.h (mark_rvalue_use): Add parm name.
	* expr.c (mark_lvalue_use, mark_lvalue_use_nonread): Move next to
	mark_rvalue_use.
	* call.c (convert_like_real): Fix formatting.

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

	PR c++/82728 - wrong -Wunused-but-set-variable
	PR c++/82799
	PR c++/83690
	* call.c (perform_implicit_conversion_flags): Call mark_rvalue_use.
	* decl.c (case_conversion): Likewise.
	* semantics.c (finish_static_assert): Call
	perform_implicit_conversion_flags.

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

	* method.c (enum mangling_flags): Delete long-dead enum.

2018-01-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* parser.c (cp_parser_std_attribute_spec): When
        token_pair::require_open / require_close return false simply
	return error_mark_node, avoid duplicate cp_parser_error about
	expected '(' / ')', respectively.

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

	PR c++/43486
	* call.c (null_ptr_cst_p): Strip location wrappers when
	converting from '0' to a pointer type in C++11 onwards.
	(conversion_null_warnings): Replace comparison with null_node with
	call to null_node_p.
	(build_over_call): Likewise.
	* cp-gimplify.c (cp_fold): Remove the early bailout when
	processing_template_decl.
	* cp-lang.c (selftest::run_cp_tests): Call
	selftest::cp_pt_c_tests and selftest::cp_tree_c_tests.
	* cp-tree.h (cp_expr::maybe_add_location_wrapper): New method.
	(selftest::run_cp_tests): Move decl to bottom of file.
	(null_node_p): New inline function.
	(selftest::cp_pt_c_tests): New decl.
	(selftest::cp_tree_c_tests): New decl.
	* cvt.c (build_expr_type_conversion): Replace comparison with
	null_node with call to null_node_p.
	* error.c (args_to_string): Likewise.
	* except.c (build_throw): Likewise.
	* mangle.c (write_expression): Skip location wrapper nodes.
	* parser.c (literal_integer_zerop): New function.
	(cp_parser_postfix_expression): Call maybe_add_location_wrapper on
	the result for RID_TYPEID. Pass true for new "wrap_locations_p"
	param of cp_parser_parenthesized_expression_list.  When calling
	warn_for_memset, replace integer_zerop calls with
	literal_integer_zerop, eliminating the double logical negation
	cast to bool.  Eliminate the special-casing for CONST_DECL in
	favor of the fold_for_warn within warn_for_memset.
	(cp_parser_parenthesized_expression_list): Add "wrap_locations_p"
	param, defaulting to false.  Convert "expr" to a cp_expr, and call
	maybe_add_location_wrapper on it when wrap_locations_p is true.
	(cp_parser_unary_expression): Call maybe_add_location_wrapper on
	the result for RID_ALIGNOF and RID_SIZEOF.
	(cp_parser_builtin_offsetof): Likewise.
	* pt.c: Include "selftest.h".
	(tsubst_copy): Handle location wrappers.
	(tsubst_copy_and_build): Likewise.
	(build_non_dependent_expr): Likewise.
	(selftest::test_build_non_dependent_expr): New function.
	(selftest::cp_pt_c_tests): New function.
	* tree.c: Include "selftest.h".
	(lvalue_kind): Handle VIEW_CONVERT_EXPR location wrapper nodes.
	(selftest::test_lvalue_kind): New function.
	(selftest::cp_tree_c_tests): New function.
	* typeck.c (string_conv_p): Strip any location wrapper from "exp".
	(cp_build_binary_op): Replace comparison with null_node with call
	to null_node_p.
	(build_address): Use location of operand when building address
	expression.

2018-01-10  Marek Polacek  <polacek@redhat.com>

	PR c++/82541
	* call.c (build_conditional_expr_1): Check complain before warning.
	* pt.c (tsubst_copy_and_build) <case COND_EXPR>: Suppress
	-Wduplicated-branches.

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

	PR c++/81327
	* call.c (maybe_warn_class_memaccess): Add forward declaration.
	Change last argument from tree * to const vec<tree, va_gc> *, adjust
	args uses and check number of operands too.  Don't strip away any
	nops.  Use maybe_constant_value when looking for INTEGER_CST args.
	Deal with src argument not having pointer type.  Check
	tree_fits_uhwi_p before calling tree_to_uhwi.  Remove useless
	test.
	(build_over_call): Call maybe_warn_class_memaccess here on the
	original arguments.
	(build_cxx_call): Rather than here on converted arguments.

2018-01-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81055
	* init.c (build_vec_init): Avoid building an INIT_EXPR with
	error_mark_node as second argument.

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

	PR c++/83734
	* constexpr.c (cxx_eval_statement_list): Ignore DEBUG_BEGIN_STMTs
	in STATEMENT_LIST.  Remove unneeded assert.

2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* constexpr.c (cxx_eval_array_reference): Handle polynomial
	VECTOR_CST_NELTS.
	(cxx_fold_indirect_ref): Handle polynomial TYPE_VECTOR_SUBPARTS.
	* call.c (build_conditional_expr_1): Likewise.
	* decl.c (cp_finish_decomp): Likewise.
	* mangle.c (write_type): Likewise.
	* typeck.c (structural_comptypes): Likewise.
	(cp_build_binary_op): Likewise.
	* typeck2.c (process_init_constructor_array): Likewise.

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

	PR c++/83555
	* typeck.c (build_static_cast_1): For static casts to reference types,
	call build_base_path with flag_delete_null_pointer_checks as nonnull
	instead of always false.  When -fsanitize=null, call
	ubsan_maybe_instrument_reference on the NULL reference INTEGER_CST.
	* cp-gimplify.c (cp_genericize_r): Don't walk subtrees of UBSAN_NULL
	call if the first argument is INTEGER_CST with REFERENCE_TYPE.

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

	PR c++/83667
	* method.c (make_alias_for): Copy DECL_CONTEXT.

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

	PR c++/83592
	* decl.c (grokdeclarator): Don't warn about MVP in typename context.

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

	PR preprocessor/83602
	* name-lookup.c (lookup_name_fuzzy): Don't use macro_use_before_def
	for builtin macros.

	PR c++/83634
	* cp-gimplify.c (cp_fold) <case NOP_EXPR>: If the operand folds to
	error_mark_node, return error_mark_node.

	Update copyright years.

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.

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

	* constexpr.c (cxx_bind_parameters_in_call): Remove unneeded local
	lval var.

Copyright (C) 2018 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.
