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

	* tree.cc (strip_typedefs): Add default argument comments.

2022-04-27  Marek Polacek  <polacek@redhat.com>

	PR c++/105398
	* pt.cc (uses_template_parms): Return false for any NAMESPACE_DECL.

2022-04-26  Jason Merrill  <jason@redhat.com>

	PR c++/102629
	* pt.cc (gen_elem_of_pack_expansion_instantiation): Clear
	TEMPLATE_TYPE_PARAMETER_PACK on auto.

2022-04-26  Patrick Palka  <ppalka@redhat.com>

	PR c++/105386
	* semantics.cc (finish_decltype_type): Pass tf_decltype to
	instantiate_non_dependent_expr_sfinae.

2022-04-26  Jason Merrill  <jason@redhat.com>

	PR c++/104624
	* pt.cc (check_for_bare_parameter_packs): Check for lambda
	function parameter pack.

2022-04-26  Patrick Palka  <ppalka@redhat.com>

	PR c++/105289
	PR c++/86193
	* pt.cc (process_partial_specialization): Downgrade "partial
	specialization isn't more specialized" diagnostic from permerror
	to an on-by-default pedwarn.
	(unify) <case TEMPLATE_PARM_INDEX>: When substituting into the
	NTTP type a second time, use the original type not the
	substituted type.

2022-04-25  Marek Polacek  <polacek@redhat.com>

	PR c++/105353
	* typeck.cc (build_x_shufflevector): Use
	instantiation_dependent_expression_p except for the first two
	arguments.

2022-04-21  Marek Polacek  <polacek@redhat.com>

	* constexpr.cc (cxx_eval_logical_expression): Remove unused
	parameter.
	(cxx_eval_constant_expression) <case TRUTH_ANDIF_EXPR>,
	<case TRUTH_OR_EXPR>: Adjust calls to cxx_eval_logical_expression.

2022-04-21  Marek Polacek  <polacek@redhat.com>

	PR c++/105321
	* constexpr.cc (cxx_eval_logical_expression): Always pass false for lval
	to cxx_eval_constant_expression.

2022-04-20  Ed Catmur  <ed@catmur.uk>

	PR c++/104996
	* call.cc (compare_ics): When comparing list-initialization
	sequences, do not return early.

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

	PR c++/105256
	* typeck2.cc (process_init_constructor_array,
	process_init_constructor_record, process_init_constructor_union): Move
	CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag from CONSTRUCTOR elements to the
	containing CONSTRUCTOR.

2022-04-15  Marek Polacek  <polacek@redhat.com>

	PR c++/105268
	* parser.cc (cp_parser_placeholder_type_specifier): Return
	error_mark_node when trying to build up a constrained parameter in
	a default argument.

2022-04-15  Jason Merrill  <jason@redhat.com>

	PR c++/102804
	* decl.cc (grokdeclarator): Drop typedef used with 'unsigned'.

2022-04-15  Jason Merrill  <jason@redhat.com>

	PR c++/102987
	* error.cc (dump_expr): Handle USING_DECL.
	[VIEW_CONVERT_EXPR]: Just look through location wrapper.

2022-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/104646
	* constexpr.cc (maybe_save_constexpr_fundef): Don't do extra
	checks for defaulted ctors.

2022-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/82980
	* lambda.cc (type_deducible_expression_p): New.
	(lambda_capture_field_type): Check it.

2022-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/65211
	* pt.cc (tsubst_decl) [TYPE_DECL]: Copy TYPE_ALIGN.

2022-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/97219
	* name-lookup.cc (dependent_local_decl_p): New.
	* cp-tree.h (dependent_local_decl_p): Declare.
	* semantics.cc (finish_call_expr): Use it.
	* pt.cc (tsubst_arg_types): Also substitute default args
	for local externs.

2022-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/101698
	* pt.cc (tsubst_baselink): Also check dependent optype.

2022-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/101442
	* decl.cc (cp_finish_decl): Don't pass decl to push_cleanup.
	* init.cc (perform_member_init): Likewise.
	* semantics.cc (push_cleanup): Adjust comment.

2022-04-13  Jason Merrill  <jason@redhat.com>

	PR c++/105245
	PR c++/100111
	* constexpr.cc (cxx_eval_store_expression): Build a CONSTRUCTOR
	as needed in empty base handling.

2022-04-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/105233
	* decl2.cc (cp_check_const_attributes): For aligned attribute
	pass manifestly_const_eval=true to fold_non_dependent_expr.

2022-04-13  Marek Polacek  <polacek@redhat.com>

	PR c++/97296
	* call.cc (direct_reference_binding): strip_top_quals when creating
	a ck_qual.

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

	PR c++/104669
	* decl.cc (decls_match): Compare versions even if not recording.
	(duplicate_decls): Propagate attributes to alias.
	* decl2.cc (find_last_decl): Give up if versioned.

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

	PR c++/102071
	* init.cc (build_new_1): Check array_p for alignment.

2022-04-12  Patrick Palka  <ppalka@redhat.com>

	PR c++/103105
	* pt.cc (build_extra_args): Call preserve_args.

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

	PR c++/104142
	* decl.cc (check_initializer): Check TREE_SIDE_EFFECTS.

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

	PR c++/105223
	PR c++/92918
	* class.cc (finish_struct): Always using op=.

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

	PR c++/98249
	* call.cc (build_operator_new_call): Just look in ::.

2022-04-11  Alexandre Oliva  <oliva@adacore.com>

	* constexpr.cc (cxx_eval_call_expression): Disregard dtor
	result.

2022-04-11  Alexandre Oliva  <oliva@adacore.com>

	* semantics.cc (set_cleanup_locs): Propagate locus to call
	wrapped in cast-to-void.

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

	PR c++/100370
	* init.cc (warn_placement_new_too_small): Check deref.

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

	PR c++/105191
	PR c++/92385
	* tree.cc (build_vec_init_elt): Do {}-init for aggregates.
	* constexpr.cc (cxx_eval_vec_init): Only treat {} as value-init
	for non-aggregate types.
	(build_vec_init_expr): Also check constancy of explicit
	initializer elements.

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

	PR c++/91618
	PR c++/96604
	* name-lookup.cc (set_decl_namespace): Set
	DECL_IMPLICIT_INSTANTIATION if no non-template match.
	* pt.cc (check_explicit_specialization): Check it.
	* decl2.cc (check_classfn): Call it.

2022-04-07  Patrick Palka  <ppalka@redhat.com>

	PR c++/99479
	* name-lookup.cc (name_lookup::using_queue): Change to an
	auto_vec (with 16 elements of internal storage).
	(name_lookup::queue_namespace): Change return type to void,
	take queue parameter by reference and adjust function body
	accordingly.
	(name_lookup::do_queue_usings): Inline into ...
	(name_lookup::queue_usings): ... here.  As in queue_namespace.
	(name_lookup::search_unqualified): Don't make queue static,
	remove length variable, and adjust function body accordingly.

2022-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/102586
	* cp-objcp-common.h (cp_classtype_as_base): Declare.
	(LANG_HOOKS_CLASSTYPE_AS_BASE): Redefine.
	* cp-objcp-common.cc (cp_classtype_as_base): New function.

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

	PR c++/101051
	* decl.cc (grokdeclarator): Reject conversion with trailing return
	sooner.

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

	PR c++/101717
	* lambda.cc (lambda_expr_this_capture): Check all enclosing
	lambdas for completeness.

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

	PR c++/105187
	* typeck2.cc (store_init_value): Allow TREE_HAS_CONSTRUCTOR for
	vectors.

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

	PR c++/104668
	* decl2.cc (splice_template_attributes): Return NULL if *p is
	error_mark_node.
	(cplus_decl_attributes): Return early if attributes is
	error_mark_node.  Don't check that later.

2022-04-06  Patrick Palka  <ppalka@redhat.com>

	PR c++/105143
	* pt.cc (do_class_deduction): Check complain before attempting
	to issue a -Wctad-maybe-unsupported warning.

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

	PR c++/104702
	* init.cc (build_vec_init): Use a reference for the result.

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

	PR c++/100608
	* name-lookup.cc (check_local_shadow): Use -Wshadow=local
	if exactly one of 'old' and 'decl' is a type.

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

	PR c++/103852
	DR 1286
	* pt.cc (do_class_deduction): Pedwarn for renaming alias in C++17.

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

	PR c++/101677
	* name-lookup.h (struct cp_binding_level): Add requires_expression
	bit-field.
	* parser.cc (cp_parser_requires_expression): Set it.
	(synthesize_implicit_template_parm): Check it.

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

	PR c++/101894
	* decl.cc (duplicate_decls): Copy DECL_FRIEND_CONTEXT.

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

	PR c++/103852
	DR 1286
	* pt.cc (get_underlying_template): Compare default template args.

2022-04-03  Benno Evers  <benno.evers@tenzir.com>
	    Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/103328
	* coroutines.cc (morph_fn_to_coro): Reset
	current_binding_level->blocks.

2022-04-01  Jason Merrill  <jason@redhat.com>

	Revert:
	2022-03-31  Jason Merrill  <jason@redhat.com>

	PR c++/96645
	* parser.cc (cp_parser_early_parsing_nsdmi): New.
	(cp_parser_member_declaration): Call it.

2022-04-01  Jason Merrill  <jason@redhat.com>

	Revert:
	2022-03-24  Jason Merrill  <jason@redhat.com>

	PR c++/96645
	* cp-tree.h (type_has_default_ctor_to_be_synthesized): Declare.
	* class.cc (type_has_default_ctor_to_be_synthesized): New.
	(type_has_non_user_provided_default_constructor_1): Support it.
	(type_has_non_user_provided_default_constructor): Now a wrapper.
	* method.cc (complain_about_unparsed_dmi): New.
	(constructible_expr): Call it.

2022-04-01  Patrick Palka  <ppalka@redhat.com>

	PR c++/105110
	* pt.cc (unify) <case TEMPLATE_PARM_INDEX>: Drop cv-quals from
	the argument type of an NTTP before deducing from it.

2022-03-31  Jason Merrill  <jason@redhat.com>

	PR c++/96645
	* parser.cc (cp_parser_early_parsing_nsdmi): New.
	(cp_parser_member_declaration): Call it.

2022-03-30  Patrick Palka  <ppalka@redhat.com>

	PR c++/100474
	* constraint.cc (diagnose_trait_expr): Handle all remaining
	traits appropriately.  Remove default case.

2022-03-30  Marek Polacek  <polacek@redhat.com>

	PR c++/93280
	PR c++/104583
	* init.cc (get_nsdmi): Set TARGET_EXPR_DIRECT_INIT_P to in_ctor.

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

	PR c++/105092
	* pt.cc (tsubst_omp_clause_decl): When handling iterators, set
	DECL_CONTEXT of the iterator var to current_function_decl and
	call pushdecl.

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

	PR c++/105061
	* parser.cc (cp_parser_template_introduction): If member_p, temporarily
	clear parser->colon_corrects_to_scope_p around tentative parsing of
	nested name specifier.

2022-03-28  Jason Merrill  <jason@redhat.com>

	* pt.cc (determine_specialization): Add comment.

2022-03-28  Patrick Palka  <ppalka@redhat.com>

	PR c++/105067
	* pt.cc (finish_concept_definition): Check that a concept is
	declared with exactly one template parameter list.

2022-03-28  Patrick Palka  <ppalka@redhat.com>

	PR c++/105064
	* constraint.cc (maybe_substitute_reqs_for): Don't assume
	DECL_TEMPLATE_INFO is available.

2022-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/105003
	PR c++/104008
	PR c++/102869
	* pt.cc (complex_alias_template_r): walk_tree callback,	replacing
	uses_all_template_parms_r, complex_pack_expansion_r.
	(complex_alias_template_p): Adjust.
	* tree.cc (strip_typedefs): Revert r12-7710 change.

2022-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/102071
	* init.cc (build_new_1): Include cookie in alignment.  Omit
	constexpr wrapper from alloc_call.

2022-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/103291
	* name-lookup.cc (push_local_extern_decl_alias): Call
	determine_visibility.

2022-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/102123
	* pt.cc (tsubst_copy): Use make_unbound_class_template for rewriting
	a type template reference.

2022-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/103968
	* pt.cc (value_dependent_expression_p): Check
	has_value_dependent_address for conversion to reference.

2022-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/103943
	* pt.cc (tsubst_qualified_id): Handle getting SCOPE_REF from
	tsubst_baselink.
	(instantiation_dependent_scope_ref_p): Check dependent_scope_p.

2022-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/102045
	* call.cc (make_base_init_ok): Call make_used.

2022-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/104847
	* mangle.cc (write_expression): Don't write a union designator when
	undigested.

2022-03-28  Jason Merrill  <jason@redhat.com>

	PR c++/99445
	PR c++/103769
	* tree.cc (strip_typedefs): Use build_distinct_type_copy.

2022-03-26  Patrick Palka  <ppalka@redhat.com>

	PR c++/105050
	* constexpr.cc (potential_constant_expression_1) <case IF_STMT>:
	Clarify error message when a if-stmt is non-constant because its
	branches are non-constant.

2022-03-26  Patrick Palka  <ppalka@redhat.com>

	PR c++/103455
	* call.cc (add_builtin_candidate) <case MEMBER_REF>: Test
	CLASS_TYPE_P instead of MAYBE_CLASS_TYPE_P.

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

	* parser.cc (cp_parser_postfix_expression)
	<case RID_BILTIN_CONVERTVECTOR, case RID_BUILTIN_BIT_CAST>: Don't
	return cp_build_{vec,convert,bit_cast} result right away, instead
	set postfix_expression to it and break.

2022-03-25  Marek Polacek  <polacek@redhat.com>

	PR c++/104944
	* typeck.cc (cxx_sizeof_or_alignof_type): Diagnose alignof(void).
	(cxx_alignas_expr): Call cxx_sizeof_or_alignof_type with
	complain == true.

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

	PR c++/104284
	* decl.cc (check_initializer): Don't call build_aggr_init in
	a template.

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

	PR c++/96645
	* cp-tree.h (type_has_default_ctor_to_be_synthesized): Declare.
	* class.cc (type_has_default_ctor_to_be_synthesized): New.
	(type_has_non_user_provided_default_constructor_1): Support it.
	(type_has_non_user_provided_default_constructor): Now a wrapper.
	* method.cc (complain_about_unparsed_dmi): New.
	(constructible_expr): Call it.

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

	PR c++/102990
	* typeck2.cc (massage_init_elt): Avoid folding CONSTRUCTORs.

2022-03-24  Patrick Palka  <ppalka@redhat.com>

	PR c++/104620
	* call.cc (build_over_call): Use cxx_constant_value_sfinae
	instead of cxx_constant_value to evaluate a consteval call.
	* constexpr.cc (cxx_constant_value_sfinae): Add decl parameter
	and pass it to cxx_eval_outermost_constant_expr.
	* cp-tree.h (cxx_constant_value_sfinae): Add decl parameter.
	* pt.cc (fold_targs_r): Pass NULL_TREE as decl parameter to
	cxx_constant_value_sfinae.

2022-03-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/104994
	* constexpr.cc (cxx_eval_constant_expression): Don't diagnose passing
	through extern thread_local declarations.  Change wording from
	declaration to definition.
	(potential_constant_expression_1): Don't diagnose extern thread_local
	declarations.  Change wording from declared to defined.
	* decl.cc (start_decl): Likewise.

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

	PR c++/103337
	* decl.cc (reshape_single_init): New.
	(reshape_init_class): Use it.

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

	PR c++/105006
	* name-lookup.cc (lookup_using_decl): Check that scope is
	a dependent type before looking for dependent using.

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

	PR c++/105006
	* name-lookup.cc (lookup_using_decl): Set DECL_DEPENDENT_P if lookup
	finds a dependent using.

2022-03-21  Jason Merrill  <jason@redhat.com>

	PR c++/58646
	* init.cc (build_vec_init): Check for vla element type.

2022-03-21  Jason Merrill  <jason@redhat.com>

	PR c++/103337
	PR c++/102740
	PR c++/103299
	PR c++/102538
	* decl.cc (reshape_init_class): Avoid looking for designator
	after we found it.
	(reshape_init_r): Keep looking for designator.

2022-03-21  Jason Merrill  <jason@redhat.com>

	PR c++/101767
	* decl.cc (reshape_init_class): Back out of anon struct
	if a designator doesn't match.

2022-03-18  Jason Merrill  <jason@redhat.com>

	PR c++/92918
	PR c++/104476
	* class.cc (add_method): Avoid adding the same used function twice.
	(handle_using_decl): Don't add_method.
	(finish_struct): Don't using op= if we have one already.
	(maybe_push_used_methods): New.
	* semantics.cc (finish_member_declaration): Call it.
	* name-lookup.cc (diagnose_name_conflict): No longer static.
	(push_class_level_binding): Revert 92918 patch, limit
	to dependent using.
	* cp-tree.h: Adjust.

2022-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/104568
	* init.cc (build_new_constexpr_heap_type): Remove FULL_SIZE
	argument and its handling, instead add ITYPE2 argument.  Only
	support COOKIE_SIZE != NULL.
	(build_new_1): If size is 0, change it to 0 * outer_nelts if
	outer_nelts is non-NULL.  Pass type rather than elt_type to
	maybe_wrap_new_for_constexpr.
	* constexpr.cc (build_new_constexpr_heap_type): New function.
	(cxx_eval_constant_expression) <case CONVERT_EXPR>:
	If elt_size is zero sized type, try to recover outer_nelts from
	the size argument to operator new/new[] and pass that as
	arg_size to build_new_constexpr_heap_type.  Pass ctx,
	non_constant_p and overflow_p to that call too.

2022-03-18  Marek Polacek  <polacek@redhat.com>

	PR c++/104008
	* tree.cc (strip_typedefs): Don't strip an alias template when
	doing so would result in losing a parameter pack.

2022-03-16  Patrick Palka  <ppalka@redhat.com>

	* search.cc (lookup_member): Simplify by handling all values
	of protect together in the ambiguous case.  Don't modify protect.

2022-03-16  Patrick Palka  <ppalka@redhat.com>

	PR c++/96780
	* cp-gimplify.cc (cp_fold) <case CALL_EXPR>: Fold calls to
	std::move/forward and other cast-like functions into simple
	casts.

2022-03-15  Patrick Palka  <ppalka@redhat.com>

	PR c++/103177
	* search.cc (lookup_field_info::errstr): Remove this data
	member.
	(lookup_field_r): Don't set errstr.
	(lookup_member): Check ambiguity before checking access.
	Simplify accordingly after errstr removal.  Exit early upon
	error or empty result.

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

	PR c++/104623
	* parser.cc (cp_parser_skip_to_pragma_eol): Don't purge any tokens.

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

	PR tree-optimization/102586
	* call.cc (build_cxx_call): Diagnose __builtin_clear_padding where
	first argument's type is pointer to non-trivially-copyable type unless
	it is address of a variable or parameter.

2022-03-12  Patrick Palka  <ppalka@redhat.com>

	PR c++/104641
	* cp-tree.h (tsubst_flags::tf_tst_ok): New flag.
	* decl.cc (make_typename_type): Allow a typename-specifier to
	resolve to a template when tf_tst_ok, in which case return
	a CTAD placeholder for the template.
	* pt.cc (tsubst_decl) <case VAR_DECL>: Set tf_tst_ok when
	substituting the type.
	(tsubst): Clear tf_tst_ok and remember if it was set.
	<case TYPENAME_TYPE>: Pass tf_tst_ok to make_typename_type
	appropriately.
	(tsubst_copy) <case CAST_EXPR>: Set tf_tst_ok when substituting
	the type.
	(tsubst_copy_and_build) <case CAST_EXPR>: Likewise.
	<case CONSTRUCTOR>: Likewise.

2022-03-12  Patrick Palka  <ppalka@redhat.com>

	PR c++/104622
	* call.cc (missing_conversion_p): Define.
	(add_candidates): Use it.
	* pt.cc (check_non_deducible_conversion): Change type of strict
	parameter to unification_kind_t and directly test for DEDUCE_CALL.

2022-03-12  Patrick Palka  <ppalka@redhat.com>

	PR c++/104527
	* constraint.cc (normalize_atom): Set
	ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P appropriately.
	(get_mapped_args):  Make static, adjust parameters.  Always
	return a vector whose depth corresponds to the template depth of
	the context of the atomic constraint expression.  Micro-optimize
	by passing false as exact to safe_grow_cleared and by collapsing
	a multi-level depth-one argument vector.
	(satisfy_atom): Adjust call to get_mapped_args and
	diagnose_atomic_constraint.
	(diagnose_atomic_constraint): Replace map parameter with an args
	parameter.
	* cp-tree.h (ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P): Define.
	(get_mapped_args): Remove declaration.

2022-03-12  Patrick Palka  <ppalka@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/98644
	* constexpr.cc (mark_non_constant): Define, split out from ...
	(cxx_eval_outermost_constant_expr): ... here.
	(maybe_constant_value): Use it.

2022-03-12  Patrick Palka  <ppalka@redhat.com>

	* semantics.cc (finish_unary_fold_expr): Use input_location
	instead of UNKNOWN_LOCATION.
	(finish_binary_fold_expr): Likewise.

2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>

	PR other/65095
	* semantics.cc (handle_omp_array_sections_1)
	(cp_oacc_check_attachments): Call 'user_omp_clause_code_name'
	instead of 'c_omp_map_clause_name'.

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

	PR c++/104608
	* parser.cc (cp_parser_template_name): Repeat lookup of
	TYPE_DECLs.

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

	PR c++/104752
	* semantics.cc (finish_compound_literal): Disallow auto{x} for
	is_constrained_auto.
	* typeck2.cc (build_functional_cast_1): Likewise.

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

	PR c++/104846
	* decl.cc (grokdeclarator): Check FUNC_OR_METHOD_TYPE_P before giving
	data member errors.

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

	PR c++/103460
	* decl.cc (grok_op_properties): Allow variadic operator[] for
	C++23.

2022-03-10  Roger Sayle  <roger@nextmovesoftware.com>

	PR c++/95999
	* decl.cc (finish_enum_value_list): If VALUE isn't an INTEGER_CST
	consider it to be zero (i.e. treat it like error_mark_node).
	(build_enumerator): Likewise, if PREV_VALUE isn't an INTEGER_CST,
	set VALUE to error_mark_node.

2022-03-10  Roger Sayle  <roger@nextmovesoftware.com>

	PR c++/39751
	* parser.cc (cp_parser_late_parsing_for_member): Confirm the token
	stream hasn't been purged before processing DECL_PENDING_INLINE.

2022-03-09  Patrick Palka  <ppalka@redhat.com>

	PR c++/104823
	* except.cc (build_noexcept_spec): Strengthen dependence check
	to instantiation_dependent_expression_p.
	* parser.cc (cp_parser_parenthesized_expression_list_elt):
	Remove fold_expr_p parameter, and don't call
	instantiate_non_dependent_expr.
	(cp_parser_parenthesized_expression_list): Adjust accordingly.
	* pt.cc (expand_integer_pack): Strengthen dependence check
	to instantiation_dependent_expression_p.
	(instantiate_non_dependent_expr_internal): Adjust comment.
	(instantiate_non_dependent_expr_sfinae): Likewise.  Drop
	the potentially-constant check, and relax and turn the
	dependence check into a checking assert.
	(instantiate_non_dependent_or_null): Adjust comment.
	* semantics.cc (finish_decltype_type): Keep
	processing_template_decl cleared after calling
	instantiate_non_dependent_expr_sfinae.

2022-03-09  Patrick Palka  <ppalka@redhat.com>

	PR c++/102137
	PR c++/87820
	* cp-tree.h (is_copy_initialization): Declare.
	* decl.cc (cp_finish_decl): Set LOOKUP_ONLYCONVERTING
	when is_copy_initialization is true.
	* init.cc (build_aggr_init): Split out copy-initialization
	check into ...
	(is_copy_initialization): ... here.
	* pt.cc (instantiate_decl): Pass 0 instead of
	LOOKUP_ONLYCONVERTING as flags to cp_finish_decl.

2022-03-09  Patrick Palka  <ppalka@redhat.com>

	PR c++/65396
	* cp-tree.h (merge_default_template_args): Declare.
	* decl.cc (merge_default_template_args): Define, factored out
	from redeclare_class_template.
	(duplicate_decls): Use it when merging member function template
	and free function declarations.
	* pt.cc (redeclare_class_template): Factor out default argument
	merging logic into merge_default_template_args.  Improve location
	of a note when there's a template parameter kind mismatch.

2022-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/104711
	* constexpr.cc (cxx_eval_check_shift_p): Use TYPE_OVERFLOW_WRAPS
	instead of TYPE_UNSIGNED.
	* typeck.cc (cp_build_binary_op): Don't emit
	-Wshift-negative-value warning if TYPE_OVERFLOW_WRAPS.

2022-03-08  Roger Sayle  <roger@nextmovesoftware.com>

	PR c++/96440
	* decl.cc (start_decl): Defend against prefix_attributes being
	error_mark_node.

2022-03-08  Roger Sayle  <roger@nextmovesoftware.com>

	PR c++/96437
	* parser.cc (synthesize_implicit_template_parm): Check that
	TREE_VALUE (new_parm) isn't error_mark_node before setting its
	DECL_VIRTUAL_P.

2022-03-08  Roger Sayle  <roger@nextmovesoftware.com>

	PR c++/96329
	* parser.cc (cp_parser_linkage_specification): Treat the case where
	linkage is error_mark_node as "invalid linkage-specification".

2022-03-08  Marek Polacek  <polacek@redhat.com>

	PR c++/104108
	* pt.cc (convert_nontype_argument): Recompute
	value_dependent_expression_p after build_converted_constant_expr.

2022-03-08  Marek Polacek  <polacek@redhat.com>

	* decl2.cc (is_late_template_attribute): Do not defer attribute
	unavailable.
	* pt.cc (tsubst_enum): Set TREE_UNAVAILABLE.

2022-03-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/104806
	* search.cc (lookup_field_fuzzy_info::fuzzy_lookup_field): Ignore
	identifiers with space at the end.

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

	PR c++/104618
	* decl2.cc (mark_single_function): Look through parens and location
	wrapper.
	* typeck.cc (cp_build_addr_expr_1): Not here.

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

	* parser.cc (cp_parser_omp_clause_map): Add missing space in string
	literal.

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

	* cvt.cc: Fix up duplicated word issue in a comment.
	* pt.cc: Likewise.
	* module.cc: Likewise.
	* coroutines.cc: Likewise.

2022-03-04  Nathan Sidwell  <nathan@acm.org>

	* mangle.cc (is_std_substitution): Check global module.
	(is_std_substitution_char): Return bool.

2022-03-04  Nathan Sidwell  <nathan@acm.org>

	* cp-tree.h (mangle_identifier): Replace with ...
	(mangle_module_component): ... this.
	* mangle.cc (dump_substitution_candidates): Adjust.
	(add_substitution): Likewise.
	(find_substitution): Likewise.
	(unmangled_name_p): Likewise.
	(mangle_module_substitution): Reimplement.
	(mangle_module_component): New.
	(write_module, maybe_write_module): Adjust.
	(write_name): Drop modules here.
	(write_unqualified): Do them here instead.
	(mangle_global_init): Adjust.
	* module.cc (module_state::mangle): Adjust.
	(mangle_module): Likewise.
	(get_originating_module): Adjust.

2022-02-28  Marek Polacek  <polacek@redhat.com>

	PR c++/104682
	* cp-tree.h (build_enumerator): Adjust.
	* decl.cc (finish_enum): Make it return the new decl.
	* pt.cc (tsubst_enum): Propagate TREE_DEPRECATED and TREE_UNAVAILABLE.

2022-02-28  Marek Polacek  <polacek@redhat.com>

	PR c++/104667
	* decl2.cc (is_late_template_attribute): Cope with a decl without
	a type.

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

	PR c++/104618
	* typeck.cc (cp_build_addr_expr_1): Also
	maybe_undo_parenthesized_ref.

2022-02-24  Martin Liska  <mliska@suse.cz>

	* pt.cc (defarg_insts_for): Use braces for subobject.

2022-02-18  Patrick Palka  <ppalka@redhat.com>

	PR c++/94944
	* pt.cc (maybe_instantiate_noexcept): For non-static member
	functions, set current_class_ptr/ref to the specialized 'this'
	instead.

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

	PR c++/104539
	* pt.cc (mark_decl_instantiated): Don't clear DECL_COMDAT.

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

	PR c++/90451
	* decl2.cc (mark_single_function): New.
	* cp-tree.h: Declare it.
	* typeck.cc (cp_build_addr_expr_1): mark_used when making a PMF.
	* semantics.cc (finish_qualified_id_expr): Not here.
	(finish_id_expression_1): Or here.
	(finish_decltype_type): Call mark_single_function.
	* cvt.cc (convert_to_void): And here.
	* pt.cc (convert_nontype_argument): And here.
	* init.cc (build_offset_ref): Adjust assert.

2022-02-17  Patrick Palka  <ppalka@redhat.com>

	PR c++/104565
	* semantics.cc (finish_compound_literal): Don't perform
	non-dependent expr folding before calling check_narrowing.

2022-02-16  Patrick Palka  <ppalka@redhat.com>

	PR c++/104507
	* constexpr.cc (potential_constant_expression_1)
	<case NON_DEPENDENT_EXPR>: Return false instead of recursing.
	Assert tf_error isn't set.

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

	PR c++/104107
	PR c++/95036
	* pt.cc (coerce_template_template_parms): Take full parms.
	Avoid adding too much of outer_args.
	(coerce_template_template_parm): Adjust.
	(template_template_parm_bindings_ok_p): Adjust.
	(convert_template_argument): Adjust.

2022-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/104513
	* constexpr.cc (potential_constant_expression_1) <case GOTO_EXPR>:
	Don't punt if returns (target).

2022-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/104472
	* constexpr.cc (cxx_eval_internal_function) <case IFN_VEC_CONVERT>:
	Only return fold_const_call result if it is non-NULL.  Otherwise
	fall through into the default: case to return t, set *non_constant_p
	and emit diagnostics if needed.

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

	* module.cc (depset::hash::add_specializations): Use
	STRIP_TEMPLATE.

2022-02-10  Tobias Burnus  <tobias@codesourcery.com>

	PR c++/102204
	* decl2.cc (cp_omp_mappable_type_1): Remove check for virtual
	members as those are permitted since OpenMP 5.0.

2022-02-10  Patrick Palka  <ppalka@redhat.com>

	* pt.cc (filter_memfn_lookup): Handle dependent USING_DECL
	better.

2022-02-10  Marcel Vollweiler  <marcel@codesourcery.com>

	* parser.cc (cp_parser_omp_clause_name): Parse 'has_device_addr' clause.
	(cp_parser_omp_var_list_no_open): Handle array sections.
	(cp_parser_omp_all_clauses): Added PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR
	case.
	(cp_parser_omp_target_update): Added HAS_DEVICE_ADDR to OMP_CLAUSE_MASK.
	* semantics.cc (handle_omp_array_sections): Handle clause restrictions.
	(finish_omp_clauses): Handle array sections.

2022-02-09  Patrick Palka  <ppalka@redhat.com>

	PR c++/104432
	* call.cc (build_new_method_call): When a non-dependent call
	resolves to a specialization of a member template, always build
	the pruned overload set using the member template, not the
	specialization.
	* pt.cc (filter_memfn_lookup): New parameter newtype.  Simplify
	and correct how members from the new lookup set are matched to
	those from the old one.
	(tsubst_baselink): Pass binfo_type as newtype to
	filter_memfn_lookup.

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

	PR c++/103752
	* module.cc (trees_out::core_vals): Stream explicit specifier.
	(trees_in::core_vals): Likewise.
	* pt.cc (store_explicit_specifier): No longer static.
	(tsubst_function_decl): Clear DECL_HAS_DEPENDENT_EXPLICIT_SPEC_P.
	* cp-tree.h (lookup_explicit_specifier): Declare.

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

	PR c++/96876
	* typeck2.cc (split_nonconstant_init_1): Push cleanups for
	preceding members with constant initialization.
	(maybe_push_temp_cleanup): Do nothing if -fno-exceptions.

2022-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/104379
	* name-lookup.cc (check_local_shadow): When diagnosing shadowing
	of a member or global declaration, add warning suppression for
	the decl and don't warn again on it.

2022-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/104403
	* constexpr.cc (cxx_eval_constant_expression): Don't assert DECL_EXPRs
	of TREE_STATIC vars may only appear in -std=c++23.

2022-02-08  Patrick Palka  <ppalka@redhat.com>

	PR c++/80951
	* pt.cc (uses_deducible_template_parms): Consider the
	noexcept-spec of a function type.

2022-02-08  Patrick Palka  <ppalka@redhat.com>

	PR c++/104410
	* constraint.cc (satisfaction_value): Relax assert to accept
	cv-qualified bool.

2022-02-08  Patrick Palka  <ppalka@redhat.com>

	PR c++/103706
	* pt.cc (preserve_args): New function.
	(tsubst_lambda_expr): Use it when setting LAMBDA_EXPR_REGEN_INFO.

2022-02-08  Patrick Palka  <ppalka@redhat.com>

	PR c++/103706
	* constraint.cc (satisfy_declaration_constraints): Use
	lambda_regenerating_args instead.
	* cp-tree.h (lambda_regenerating_args): Declare.
	* pt.cc (lambda_regenerating_args): Define, split out from
	satisfy_declaration_constraints.
	(do_auto_deduction): Use lambda_regenerating_args to obtain the
	full set of outer template arguments for satisfaction when
	inside a lambda.

2022-02-06  Patrick Palka  <ppalka@redhat.com>

	PR c++/96242
	* decl2.cc (mark_used): Directly synthesize a DECL_MAYBE_DELETED
	fn by calling maybe_synthesize_method instead of relying on
	maybe_instantiate_noexcept.  Move call to m_i_n after the
	DECL_DELETED_FN handling.
	* pt.cc (maybe_instantiate_noexcept): Restrict DECL_MAYBE_DELETED
	fn synthesis to only those with an implicit noexcept-spec, and
	return !DECL_DELETED_FN instead of !DECL_MAYBE_DELETED afterwards.

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

	PR c++/89074
	PR c++/104033
	* constexpr.cc (cxx_eval_binary_expression): Temporarily set
	folding_cxx_constexpr.

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

	PR c++/104300
	PR c++/92385
	* cp-tree.h (get_vec_init_expr): New.
	(target_expr_needs_replace): New.
	* cp-gimplify.cc (cp_gimplify_init_expr): Use it.
	(struct cp_fold_data): New.
	(cp_fold_r): Only genericize inits at end of fn.
	(cp_fold_function): Here.
	(cp_fully_fold_init): Not here.
	* init.cc (build_vec_init): Use get_vec_init_expr.
	* tree.cc (build_vec_init_expr): Likewise.
	* typeck2.cc (split_nonconstant_init_1): Likewise.
	(process_init_constructor): Wrap VEC_INIT_EXPR in
	TARGET_EXPR.

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

	* pt.cc (iterative_hash_template_arg): Add comment.

2022-02-03  Patrick Palka  <ppalka@redhat.com>

	PR c++/104079
	* pt.cc (value_dependent_noexcept_spec_p): New predicate split
	out from ...
	(dependent_type_p_r): ... here.
	(instantiation_dependent_r): Use value_dependent_noexcept_spec_p
	to consider dependence of a noexcept-spec before C++17.
	* tree.cc (fixup_deferred_exception_variants): Clear
	TYPE_DEPENDENT_P_VALID.

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

	PR c++/104302
	* decl.cc (maybe_deduce_size_from_array_init): Give up
	on type-dependent init.
	(cp_complete_array_type): Only call reshape_init for character
	array.

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

	PR c++/103186
	* pt.cc (defarg_inst): Use tree_vec_map_cache_hasher.
	(defarg_insts_for): New.
	(tsubst_default_argument): Adjust.

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

	PR c++/102414
	PR c++/101874
	* decl.cc (create_array_type_for_decl): Use template_placeholder_p.
	Sorry on a variable-length array of auto.

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

	PR c++/102434
	* class.cc (finish_struct): Don't allow union initializer_list.

2022-01-31  Patrick Palka  <ppalka@redhat.com>

	PR c++/104294
	* pt.cc (ctor_deduction_guides_for): Correct computation of
	outer_args.

2022-01-31  Patrick Palka  <ppalka@redhat.com>

	PR c++/104291
	* pt.cc (for_each_template_parm_r) <case CONSTRUCTOR>: Clear
	walk_subtrees if !include_nondeduced_p.  Simplify given that
	cp_walk_subtrees already walks TYPE_PTRMEMFUNC_FN_TYPE_RAW.

2022-01-28  Patrick Palka  <ppalka@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/92752
	* typeck.cc (build_ptrmemfunc): Cast a nullptr constant to the
	unqualified pointer type not the qualified one.

2022-01-28  Patrick Palka  <ppalka@redhat.com>

	PR c++/103341
	* decl.cc (cp_finish_decl): Pass the template arguments of a
	variable template specialization or a templated static data
	member to do_auto_deduction when the auto is constrained.

2022-01-28  Jason Merrill  <jason@redhat.com>

	PR c++/100198
	PR c++/100030
	PR c++/100282
	* parser.cc (cp_parser_enumerator_definition): Sorry on parameter
	pack in lambda.
	(cp_parser_class_head): And in class attributes.
	* pt.cc (check_for_bare_parameter_packs): Sorry instead of error
	in lambda.

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

	PR c++/104245
	PR c++/51344
	* decl2.cc (save_template_attributes): Take late attrs as parm.
	(cplus_decl_attributes): Call it after decl_attributes,
	splice_template_attributes before.

2022-01-27  Patrick Palka  <ppalka@redhat.com>

	PR c++/99895
	* call.cc (build_over_call): For a non-dependent member call,
	build up a CALL_EXPR using a COMPONENT_REF callee, as in
	build_new_method_call.
	* pt.cc (build_non_dependent_expr): Don't wrap PARM_DECL either.
	* tree.cc (build_min_non_dep_op_overload): Adjust accordingly
	after the build_over_call change.

2022-01-27  Patrick Palka  <ppalka@redhat.com>

	PR c++/92944
	PR c++/103678
	* parser.cc (cp_parser_class_head): Update 'type' with the result
	of maybe_process_partial_specialization in the
	nested_name_specifier branch.  Refactor nearby code to accomodate
	that maybe_process_partial_specialization returns a _TYPE, not a
	TYPE_DECL, and eliminate local variable 'class_type' in passing.

2022-01-27  Marek Polacek  <polacek@redhat.com>

	PR c++/101988
	* decl.cc (create_array_type_for_decl): Reject forming an array of
	placeholder for a deduced class type.

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

	PR c++/104206
	PR c++/101072
	* semantics.cc (finish_compound_literal): Restore VECTOR_TYPE check.

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

	PR c++/104226
	* constexpr.cc (init_subob_ctx): For vector ctors containing
	vector elements, ensure appending to the same ctor instead of
	creating another one.

2022-01-26  Marek Polacek  <polacek@redhat.com>

	PR target/104213
	* decl.cc (finish_constructor_body): Suppress -Wuse-after-free.
	(finish_destructor_body): Likewise.
	* optimize.cc (build_delete_destructor_body): Likewise.

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

	PR c++/104235
	* parser.cc (cp_parser_template_name): Repeat lookup of USING_DECL.

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

	PR c++/103057
	* pt.cc (tsubst_aggr_type): Call tsubst for alias template
	specialization.

2022-01-25  Patrick Palka  <ppalka@redhat.com>

	PR c++/101532
	PR c++/104225
	* decl2.cc (mark_used): Don't consider maybe_instantiate_noexcept
	on a deleted function.

2022-01-25  Jason Merrill  <jason@redhat.com>

	PR c++/59950
	* call.cc (build_over_call): Use cp_build_indirect_ref.

2022-01-24  Patrick Palka  <ppalka@redhat.com>

	PR c++/104197
	* pt.cc (make_auto_1): Use -1 as a placeholder default argument
	for level.

2022-01-24  Patrick Palka  <ppalka@redhat.com>

	PR c++/104173
	* typeck.cc (build_class_member_access_expr): Extend
	unary_complex_lvalue result adjustment to preserve all
	rvalues, not just xvalues.

2022-01-23  Will Wray  <wjwray@gmail.com>

	PR c++/55227
	* decl.cc (reshape_init_r): Only call has_designator_check when
	first_initializer_p or for the inner constructor element.
	(cp_complete_array_type): Call reshape_init on braced-init-list.

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

	PR c++/104182
	* cp-gimplify.cc (cp_genericize_target_expr): Make sure nothing
	has set DECL_INITIAL on a TARGET_EXPR slot.
	* tree.cc (is_local_temp): Don't check DECL_CONTEXT.

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

	PR c++/101072
	* cp-tree.h (build_implicit_conv_flags): Declare.
	* call.cc (build_implicit_conv_flags): Split out from...
	(perform_implicit_conversion_flags): ...here.
	* decl.cc (check_initializer): Use it.
	* pt.cc (tsubst_copy_and_build): Remove TARGET_EXPR handling.
	* semantics.cc (finish_compound_literal): Don't treat
	scalar values like CONSTRUCTORs.

2022-01-21  Jason Merrill  <jason@redhat.com>

	* semantics.cc (find_failing_clause): Return expr if not
	decomposable.
	(finish_static_assert): Show constant values in failing
	comparison.

2022-01-21  Jason Merrill  <jason@redhat.com>

	PR c++/104084
	PR c++/20040
	* init.cc (build_new_1): Only pull out TARGET_EXPR_INITIAL if
	alloc_expr is a TARGET_EXPR.

2022-01-21  Marek Polacek  <polacek@redhat.com>

	PR c++/101715
	* tree.cc (fixup_deferred_exception_variants): Remove duplicate
	variants after parsing the exception specifications.

2022-01-21  Jason Merrill  <jason@redhat.com>

	PR c++/104139
	PR c++/103681
	* class.cc (end_of_class): Use base_binfo.

2022-01-20  Jason Merrill  <jason@redhat.com>

	PR c++/101405
	* decl.cc (reshape_init_class): Reject designator for a member of
	another class.

2022-01-20  Patrick Palka  <ppalka@redhat.com>

	PR c++/91911
	PR c++/103672
	* pt.cc (keep_template_parm): Punt on a level 0 template parm.
	(tsubst_decl) <case VAR_DECL>: Remove !CHECKING_P safeguard.
	(tsubst) <case TEMPLATE_TYPE_PARM>: Handle CTAD placeholders
	specially.
	(make_auto_1): Add defaulted 'level' parameter.
	(make_template_placeholder): Pass 0 as 'level' to make_auto_1.

2022-01-20  Patrick Palka  <ppalka@redhat.com>

	* decl.cc (grokdeclarator): Diagnose a CTAD placeholder as
	function return type even when !funcdecl_p.

2022-01-20  Martin Liska  <mliska@suse.cz>

	PR c++/104134
	* error.cc (dump_aggr_type): Partially disable the warning.

2022-01-20  Jason Merrill  <jason@redhat.com>

	PR c++/102300
	* parser.cc (cp_parser_template_name): Use dependent_scope_p.

2022-01-19  David Malcolm  <dmalcolm@redhat.com>

	* cp-lang.cc (selftest::run_cp_tests): Update calls for .c to .cc
	renaming.
	* cp-tree.h (cp_pt_c_tests): Rename to...
	(cp_pt_cc_tests): ...this.
	(cp_tree_c_tests): Rename to...
	(cp_tree_cc_tests): ...this.
	* pt.cc (cp_pt_c_tests): Rename to...
	(cp_pt_cc_tests): ...this.
	* tree.cc (cp_tree_c_tests): Rename to...
	(cp_tree_cc_tests): ...this.

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

	* parser.cc (saved_token_sentinel::rollback): Use
	cp_lexer_previous_token.

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

	PR c++/104055
	* constexpr.cc (cxx_eval_outermost_constant_expr): If t is a
	TARGET_EXPR with TARGET_EXPR_CLEANUP, use get_target_expr rather
	than get_target_expr_sfinae with tf_no_cleanup, and don't set
	TREE_CONSTANT.

2022-01-18  Jason Merrill  <jason@redhat.com>
	    Jakub Jelinek   <jakub@redhat.com>

	PR c++/104025
	* parser.cc (saved_token_sentinel::rollback): Call
	cp_lexer_set_source_position.
	(~saved_token_sentinel): Call rollback.

2022-01-18  Patrick Palka  <ppalka@redhat.com>

	PR c++/104074
	* pt.cc (invalid_nontype_parm_type_p): Use WILDCARD_TYPE_P so
	that we return false for DEPENDENT_OPERATOR_TYPE too.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Rename .c names to .cc.
	* config-lang.in: Likewise.
	* constexpr.cc (cxx_eval_constant_expression): Likewise.
	* coroutines.cc (morph_fn_to_coro): Likewise.
	* cp-gimplify.cc (cp_gimplify_expr): Likewise.
	* cp-lang.cc (struct lang_hooks): Likewise.
	(get_template_argument_pack_elems_folded): Likewise.
	* cp-objcp-common.cc (cp_tree_size): Likewise.
	(cp_unit_size_without_reusable_padding): Likewise.
	(pop_file_scope): Likewise.
	(cp_pushdecl): Likewise.
	* cp-objcp-common.h (GCC_CP_OBJCP_COMMON): Likewise.
	(cxx_simulate_record_decl): Likewise.
	* cp-tree.h (struct named_label_entry): Likewise.
	(current_function_return_value): Likewise.
	(more_aggr_init_expr_args_p): Likewise.
	(get_function_version_dispatcher): Likewise.
	(common_enclosing_class): Likewise.
	(strip_fnptr_conv): Likewise.
	(current_decl_namespace): Likewise.
	(do_aggregate_paren_init): Likewise.
	(cp_check_const_attributes): Likewise.
	(qualified_name_lookup_error): Likewise.
	(generic_targs_for): Likewise.
	(mark_exp_read): Likewise.
	(is_global_friend): Likewise.
	(maybe_reject_flexarray_init): Likewise.
	(module_token_lang): Likewise.
	(handle_module_option): Likewise.
	(literal_integer_zerop): Likewise.
	(build_extra_args): Likewise.
	(build_if_nonnull): Likewise.
	(maybe_check_overriding_exception_spec): Likewise.
	(finish_omp_target_clauses): Likewise.
	(maybe_warn_zero_as_null_pointer_constant): Likewise.
	(cxx_print_error_function): Likewise.
	(decl_in_std_namespace_p): Likewise.
	(merge_exception_specifiers): Likewise.
	(mangle_module_global_init): Likewise.
	(cxx_block_may_fallthru): Likewise.
	(fold_builtin_source_location): Likewise.
	(enum cp_oracle_request): Likewise.
	(subsumes): Likewise.
	(cp_finish_injected_record_type): Likewise.
	(vtv_build_vtable_verify_fndecl): Likewise.
	(cp_tree_c_finish_parsing): Likewise.
	* cvt.cc (diagnose_ref_binding): Likewise.
	(convert_to_void): Likewise.
	(convert_force): Likewise.
	(type_promotes_to): Likewise.
	* decl.cc (make_unbound_class_template_raw): Likewise.
	(cxx_init_decl_processing): Likewise.
	(check_class_member_definition_namespace): Likewise.
	(cxx_maybe_build_cleanup): Likewise.
	* decl2.cc (maybe_emit_vtables): Likewise.
	* error.cc (dump_function_name): Likewise.
	* init.cc (is_class_type): Likewise.
	(build_new_1): Likewise.
	* lang-specs.h: Likewise.
	* method.cc (make_alias_for_thunk): Likewise.
	* module.cc (specialization_add): Likewise.
	(module_state::read_cluster): Likewise.
	* name-lookup.cc (check_extern_c_conflict): Likewise.
	* name-lookup.h (struct cxx_binding): Likewise.
	* parser.cc (cp_parser_identifier): Likewise.
	* parser.h (struct cp_parser): Likewise.
	* pt.cc (has_value_dependent_address): Likewise.
	(push_tinst_level_loc): Likewise.
	* semantics.cc (finish_omp_clauses): Likewise.
	(finish_omp_atomic): Likewise.
	* tree.cc (cp_save_expr): Likewise.
	(cp_free_lang_data): Likewise.
	* typeck.cc (cp_common_type): Likewise.
	(strip_array_domain): Likewise.
	(rationalize_conditional_expr): Likewise.
	(check_return_expr): Likewise.
	* vtable-class-hierarchy.cc: Likewise.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* call.c: Moved to...
	* call.cc: ...here.
	* class.c: Moved to...
	* class.cc: ...here.
	* constexpr.c: Moved to...
	* constexpr.cc: ...here.
	* cp-gimplify.c: Moved to...
	* cp-gimplify.cc: ...here.
	* cp-lang.c: Moved to...
	* cp-lang.cc: ...here.
	* cp-objcp-common.c: Moved to...
	* cp-objcp-common.cc: ...here.
	* cp-ubsan.c: Moved to...
	* cp-ubsan.cc: ...here.
	* cvt.c: Moved to...
	* cvt.cc: ...here.
	* cxx-pretty-print.c: Moved to...
	* cxx-pretty-print.cc: ...here.
	* decl.c: Moved to...
	* decl.cc: ...here.
	* decl2.c: Moved to...
	* decl2.cc: ...here.
	* dump.c: Moved to...
	* dump.cc: ...here.
	* error.c: Moved to...
	* error.cc: ...here.
	* except.c: Moved to...
	* except.cc: ...here.
	* expr.c: Moved to...
	* expr.cc: ...here.
	* friend.c: Moved to...
	* friend.cc: ...here.
	* g++spec.c: Moved to...
	* g++spec.cc: ...here.
	* init.c: Moved to...
	* init.cc: ...here.
	* lambda.c: Moved to...
	* lambda.cc: ...here.
	* lex.c: Moved to...
	* lex.cc: ...here.
	* mangle.c: Moved to...
	* mangle.cc: ...here.
	* method.c: Moved to...
	* method.cc: ...here.
	* name-lookup.c: Moved to...
	* name-lookup.cc: ...here.
	* optimize.c: Moved to...
	* optimize.cc: ...here.
	* parser.c: Moved to...
	* parser.cc: ...here.
	* pt.c: Moved to...
	* pt.cc: ...here.
	* ptree.c: Moved to...
	* ptree.cc: ...here.
	* rtti.c: Moved to...
	* rtti.cc: ...here.
	* search.c: Moved to...
	* search.cc: ...here.
	* semantics.c: Moved to...
	* semantics.cc: ...here.
	* tree.c: Moved to...
	* tree.cc: ...here.
	* typeck.c: Moved to...
	* typeck.cc: ...here.
	* typeck2.c: Moved to...
	* typeck2.cc: ...here.
	* vtable-class-hierarchy.c: Moved to...
	* vtable-class-hierarchy.cc: ...here.

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

	PR c++/104031
	* cp-gimplify.c (cp_genericize_target_expr): Set DECL_CONTEXT of
	TARGET_EXPR_SLOT to current_function_decl if it was NULL.

2022-01-17  Andrew Stubbs  <ams@codesourcery.com>

	* parser.c (cp_parser_omp_requires): Don't "sorry" dynamic_allocators.

2022-01-14  Chung-Lin Tang  <cltang@codesourcery.com>

	PR c++/103705
	* semantics.c (finish_omp_clauses): Also continue peeling off of
	outer node for ARRAY_REFs.

2022-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/103991
	* cp-objcp-common.c (cxx_block_may_fallthru) <case IF_STMT>: For
	IF_STMT_CONSTEXPR_P with constant false or true condition only
	check if the taken clause may fall through.
	* cp-gimplify.c (genericize_if_stmt): For consteval if, revert
	to r12-5638^ behavior if then_ block can't fall through.  For
	constexpr if, revert to r12-5638^ behavior.

2022-01-13  Anthony Sharp  <anthonysharp15@gmail.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/70417
	* parser.c (cp_parser_id_expression): Handle
	-Wmissing-template-keyword.
	(struct saved_token_sentinel): Add modes to control what happens
	on destruction.
	(cp_parser_statement): Adjust.
	(cp_parser_skip_entire_template_parameter_list): New function that
	skips an entire template parameter list.
	(cp_parser_require_end_of_template_parameter_list): Rename old
	cp_parser_skip_to_end_of_template_parameter_list.
	(cp_parser_skip_to_end_of_template_parameter_list): Refactor to be
	called from one of the above two functions.
	(cp_parser_lambda_declarator_opt)
	(cp_parser_explicit_template_declaration)
	(cp_parser_enclosed_template_argument_list): Adjust.

2022-01-12  Jakub Jelinek  <jakub@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/103480
	* tree.c (move): If expr is xvalue_p, just return expr without
	build_static_cast.

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

	PR c++/101597
	* class.c (build_vfn_ref): Build OBJ_TYPE_REF with INTEGER_CST
	OBJ_TYPE_REF_TOKEN with type equal to OBJ_TYPE_REF_OBJECT type.
	* error.c (resolve_virtual_fun_from_obj_type_ref): Use type of
	OBJ_TYPE_REF_TOKEN rather than type of OBJ_TYPE_REF_OBJECT as
	obj_type.

2022-01-11  Patrick Palka  <ppalka@redhat.com>

	PR c++/103831
	* call.c (build_new_method_call): Consider dependent bases only
	if 'this' is available.

2022-01-11  Olivier Hainque  <hainque@adacore.com>

	* decl.c (cxx_init_decl_processing): Move code possibly
	altering flag_weak before code testing it.

2022-01-10  Patrick Palka  <ppalka@redhat.com>

	PR c++/103879
	* constexpr.c (cxx_fold_indirect_ref): Split out object/offset
	canonicalization step into a local lambda.  Strengthen it to
	absorb more components at position 0.  Use it before both calls
	to cxx_fold_indirect_ref_1.

2022-01-10  Patrick Palka  <ppalka@redhat.com>

	PR c++/103783
	* call.c (cand_parms_match): Skip over 'this' when given one
	static and one non-static member function.

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

	PR c++/103912
	* semantics.c (expand_or_defer_fn): For immediate functions, set
	node->body_removed to true and clear analyzed, definition and
	force_output.
	* decl2.c (c_parse_final_cleanups): Ignore immediate functions for
	expand_or_defer_fn.

2022-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89074
	* constexpr.c (cxx_maybe_fold_addr_pointer_plus): New function.
	(cxx_eval_binary_expression): Use it.

2022-01-08  Jason Merrill  <jason@redhat.com>

	PR c++/103946
	* init.c (build_vec_init): Remove assert.
	* tree.c (build_vec_init_expr): Likewise.

2022-01-08  Jason Merrill  <jason@redhat.com>

	PR c++/100588
	* call.c (build_op_delete_call): Ignore destroying delete
	if alloc_fn.

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

	PR c++/20040
	* init.c (build_new_1): Also build pointer cleanup if
	TYPE_GETS_DELETE.
	* cp-tree.h (TYPE_GETS_VEC_DELETE): New.

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

	PR c++/103936
	PR c++/65591
	* cp-gimplify.c (cp_gimplify_expr): Restore VEC_INIT_EXPR handling.

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

	PR c++/103711
	* init.c (perform_target_ctor): Select destructor by in_chrg.

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

	PR c++/61611
	* except.c (in_nested_catch): New.
	(expand_end_catch_block): Check it.

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

	PR c++/33799
	PR c++/102191
	* except.c (maybe_splice_retval_cleanup): Check
	current_binding_level.
	* semantics.c (do_poplevel): Call it here.
	* parser.c (cp_parser_compound_statement): Not here.

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

	PR c++/53868
	* decl.c (cp_finish_decl): Use wrap_temporary_cleanups for
	cleanups from set_up_extended_ref_temp.
	(wrap_temporary_cleanups): Ignore array cleanups.
	(initialize_local_var): Don't check for array here.
	* cp-tree.h (BIND_EXPR_VEC_DTOR): New.
	* init.c (build_vec_delete_1): Set it.

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

	PR c++/66451
	* init.c (build_vec_delete_1): Handle throwing dtor.
	(build_vec_init): Tell it we're in a cleanup already.

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

	* typeck2.c (split_nonconstant_init_1): Don't cleanup the last elt.
	(split_nonconstant_init): Adjust.

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

	PR c++/66139
	PR c++/52320
	* constexpr.c (replace_decl): Rename from replace_result_decl.
	* cp-tree.h (replace_decl): Declare it.
	* cp-gimplify.c (cp_gimplify_init_expr): Call it.
	(cp_gimplify_expr): Don't handle VEC_INIT_EXPR.
	(cp_genericize_init, cp_genericize_init_expr)
	(cp_genericize_target_expr): New.
	(cp_fold_r): Call them.
	* tree.c (build_array_copy): Add a TARGET_EXPR.
	* typeck2.c (digest_init_r): Look through a TARGET_EXPR.

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

	PR c++/94041
	* decl.c (initialize_local_var): Fix comment.
	* init.c (build_new_1): Do stabilize array init.
	(build_vec_init): Use TARGET_EXPR for cleanup.  Initialization
	of an element from an explicit initializer is not a
	full-expression.
	* tree.c (expand_vec_init_expr): Pass flags through.
	* typeck2.c (split_nonconstant_init_1): Handle VEC_INIT_EXPR.
	(split_nonconstant_init): Handle array cleanups.
	* cp-tree.h: Adjust.

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

	PR c++/94041
	* decl.c (check_initializer): Remove obsolete comment.
	(wrap_cleanups_r): Don't wrap CLEANUP_EH_ONLY.
	(initialize_local_var): Change assert to test.
	* typeck2.c (maybe_push_temp_cleanup): New.
	(split_nonconstant_init_1): Use it.
	(split_nonconstant_init): Clear cleanup flags.

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

	PR c++/92385
	* typeck2.c (PICFLAG_VEC_INIT): New.
	(process_init_constructor_array): Set it.
	(process_init_constructor): Handle it.
	(split_nonconstant_init_1): Handle VEC_INIT_EXPR.
	* init.c (build_vec_init): Likewise.
	* cp-gimplify.c (cp_gimplify_expr): Factor out...
	* tree.c (expand_vec_init_expr): ...this function.
	(build_vec_init_elt): Handle BRACE_ENCLOSED_INITIALIZER_P.
	(build_vec_init_expr): Likewise.
	* constexpr.c (cxx_eval_vec_init): Likewise.
	(reduced_constant_expression_p): Check arrays before C++20.
	* cp-tree.h (expand_vec_init_expr): Declare.

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

	* init.c (build_new_1): Remove preevaluation code.

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

	* pt.c (instantiate_class_template_1): Process attribute((used)) set
	in class's context.

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

	* init.c (build_new_1): Check complain before alignment warning.

2022-01-04  Jason Merrill  <jason@redhat.com>

	* cp-tree.h (class releasing_vec): Add begin/end fns.

2022-01-04  Jason Merrill  <jason@redhat.com>

	* init.c: Include -*- C++ -*- on first line.

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

	PR c++/103758
	* parser.c (cp_parser_decl_specifier_seq): Replace %<decl-specifier%>
	with %qD.

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

	* parser.c (make_char_string_pack): Add a cast to const unsigned
	char *.

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

	PR c++/103600
	* rtti.c (get_tinfo_decl_direct): Add "non overlapping" attribute
	to DECL_TINFO_P VAR_DECLs.

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

	* init.c (build_vec_init): Append the decrement to elt_init.

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

	* decl.c (wrap_cleanups_r): Don't wrap if noexcept.


Copyright (C) 2022 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.
