Daily bump.
[platform/upstream/gcc.git] / gcc / cp / ChangeLog
index 84b9b97..cfbec59 100644 (file)
-2021-09-08  Richard Biener  <rguenther@suse.de>
+2022-01-08  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/102228
-       * cp-tree.h (ANON_AGGR_TYPE_FIELD): New define.
-       * decl.c (fixup_anonymous_aggr): Wipe RTTI info put in
-       place on invalid code.
-       * decl2.c (reset_type_linkage): Guard CLASSTYPE_TYPEINFO_VAR
-       access.
-       * module.cc (trees_in::read_class_def): Likewise.  Reconstruct
-       ANON_AGGR_TYPE_FIELD.
-       * semantics.c (finish_member_declaration): Populate
-       ANON_AGGR_TYPE_FIELD for anon aggregate typed members.
-       * typeck.c (lookup_anon_field): Remove DFS search and return
-       ANON_AGGR_TYPE_FIELD directly.
+       PR c++/89074
+       * constexpr.c (cxx_maybe_fold_addr_pointer_plus): New function.
+       (cxx_eval_binary_expression): Use it.
 
-2021-09-07  Jakub Jelinek  <jakub@redhat.com>
+2022-01-08  Jason Merrill  <jason@redhat.com>
 
-       PR c++/100495
-       * constexpr.c (maybe_save_constexpr_fundef): Save body even for
-       constexpr deleting dtors.
-       (cxx_eval_call_expression): Don't use DECL_CLONED_FUNCTION for
-       deleting dtors.
+       PR c++/103946
+       * init.c (build_vec_init): Remove assert.
+       * tree.c (build_vec_init_expr): Likewise.
 
-2021-09-07  Marcel Vollweiler  <marcel@codesourcery.com>
+2022-01-08  Jason Merrill  <jason@redhat.com>
 
-       * parser.c (cp_parser_omp_flush): Parse 'seq_cst' clause on 'flush'
-       directive.
-       * semantics.c (finish_omp_flush): Handle MEMMODEL_SEQ_CST.
+       PR c++/100588
+       * call.c (build_op_delete_call): Ignore destroying delete
+       if alloc_fn.
 
-2021-09-03  Iain Sandoe  <iain@sandoe.co.uk>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       * coroutines.cc (register_local_var_uses): Do not mangle
-       frame entries for the outermost scope.  Record the outer
-       scope as nesting depth 0.
+       PR c++/20040
+       * init.c (build_new_1): Also build pointer cleanup if
+       TYPE_GETS_DELETE.
+       * cp-tree.h (TYPE_GETS_VEC_DELETE): New.
 
-2021-09-03  Iain Sandoe  <iain@sandoe.co.uk>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       * coroutines.cc (coro_build_artificial_var): New.
-       (build_actor_fn): Use var builder, rename vars to use
-       implementation namespace.
-       (coro_rewrite_function_body): Likewise.
-       (morph_fn_to_coro): Likewise.
+       PR c++/103936
+       PR c++/65591
+       * cp-gimplify.c (cp_gimplify_expr): Restore VEC_INIT_EXPR handling.
 
-2021-09-03  Iain Sandoe  <iain@sandoe.co.uk>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       * coroutines.cc (transform_local_var_uses): Record
-       frame offset expressions as DECL_VALUE_EXPRs instead of
-       rewriting them.
+       PR c++/103711
+       * init.c (perform_target_ctor): Select destructor by in_chrg.
 
-2021-09-03  Patrick Palka  <ppalka@redhat.com>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       PR c++/101904
-       * call.c (build_this_conversion): New function, split out from
-       add_function_candidate.
-       (add_function_candidate): New parameter shortcut_bad_convs.
-       Document it.  Use build_this_conversion.  Stop at the first bad
-       argument conversion when shortcut_bad_convs is true.
-       (add_template_candidate_real): New parameter shortcut_bad_convs.
-       Use build_this_conversion to check the 'this' conversion before
-       attempting deduction.  When the rejection reason code is
-       rr_bad_arg_conversion, pass -1 instead of 0 as the viable
-       parameter to add_candidate.  Pass 'convs' to add_candidate.
-       (add_template_candidate): New parameter shortcut_bad_convs.
-       (add_template_conv_candidate): Pass false as shortcut_bad_convs
-       to add_template_candidate_real.
-       (add_candidates): Prefer to shortcut bad conversions during
-       overload resolution under the assumption that we'll eventually
-       see a strictly viable candidate.  If this assumption turns out
-       to be false, re-process the non-strictly viable candidates
-       without shortcutting those bad conversions.
+       PR c++/61611
+       * except.c (in_nested_catch): New.
+       (expand_end_catch_block): Check it.
 
-2021-09-03  Jason Merrill  <jason@redhat.com>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       * pt.c (limit_bad_template_recursion): Suppress -Wunused for decls
-       we decide not to instantiate.
+       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.
 
-2021-09-03  Jakub Jelinek  <jakub@redhat.com>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       PR target/102024
-       * class.c (build_base_field): Use SET_DECL_FIELD_ABI_IGNORED
-       instead of writing to DECL_FIELD_ABI_IGNORED.
-       (layout_class_type): Likewise.  In the place where zero-width
-       bitfields used to be removed, use
-       SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD on those fields instead.
+       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.
 
-2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       * call.c (build_over_call): Handle unavailable state in addition to
-       deprecation.
-       * class.c (type_build_ctor_call): Likewise.
-       (type_build_dtor_call): Likewise.
-       * cp-tree.h: Rename cp_warn_deprecated_use to
-       cp_handle_deprecated_or_unavailable.
-       * decl.c (duplicate_decls): Merge unavailability.
-       (grokdeclarator): Handle unavailability in addition to deprecation.
-       (type_is_unavailable): New.
-       (grokparms): Handle unavailability in addition to deprecation.
-       * decl.h (enum deprecated_states): Add
-       UNAVAILABLE_DEPRECATED_SUPPRESS.
-       * decl2.c (cplus_decl_attributes): Propagate unavailability to
-       templates.
-       (cp_warn_deprecated_use): Rename to ...
-       (cp_handle_deprecated_or_unavailable): ... this and amend to handle
-       the unavailable case. It remains a warning in the case of deprecation
-       but becomes an error in the case of unavailability.
-       (cp_warn_deprecated_use_scopes): Handle unavailability.
-       (mark_used): Likewise.
-       * parser.c (cp_parser_template_name): Likewise.
-       (cp_parser_template_argument): Likewise.
-       (cp_parser_parameter_declaration_list): Likewise.
-       * typeck.c (build_class_member_access_expr): Likewise.
-       (finish_class_member_access_expr): Likewise.
-       * typeck2.c (build_functional_cast_1): Likewise.
+       PR c++/66451
+       * init.c (build_vec_delete_1): Handle throwing dtor.
+       (build_vec_init): Tell it we're in a cleanup already.
 
-2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       * coroutines.cc (build_actor_fn): Add begin/finish clauses
-       to the initial test in the actor function.
+       * typeck2.c (split_nonconstant_init_1): Don't cleanup the last elt.
+       (split_nonconstant_init): Adjust.
 
-2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       * coroutines.cc (await_statement_walker): Use build_stmt and
-       add_stmt instead of build1 and finish_expr_stmt.
+       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.
 
-2021-08-31  Jason Merrill  <jason@redhat.com>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       * coroutines.cc (flatten_await_stmt): Fix copyo.
-       * decl.c (reshape_init_class): Simplify.
-       * module.cc (module_state::read_language): Add null check.
-       * parser.c (build_range_temp): Avoid type_uses_auto.
-       (cp_parser_class_specifier_1): Add null check.
-
-2021-08-31  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/12672
-       * call.c (rejection_reason::call_varargs_p): Rename this
-       previously unused member to ...
-       (rejection_reason::least_p): ... this.
-       (arity_rejection): Add least_p parameter.
-       (add_template_candidate_real): When there are explicit
-       template arguments, check that the arity of the call agrees with
-       the arity of the function before attempting deduction.
-       (print_arity_information): Add least_p parameter.
-       (print_z_candidate): Adjust call to print_arity_information.
-
-2021-08-31  Martin Sebor  <msebor@redhat.com>
-
-       * parser.c (cp_parser_selection_statement): Use direct initialization
-       instead of copy.
-
-2021-08-31  Jason Merrill  <jason@redhat.com>
-
-       * constexpr.c (explain_invalid_constexpr_fn): Use iloc_sentinel.
-
-2021-08-31  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92193
-       * cp-tree.h (FNDECL_MANIFESTLY_CONST_EVALUATED): New.
-       * constexpr.c (cxx_eval_call_expression): Set it.
-       * pt.c (neglectable_inst_p): Check it.
-
-2021-08-31  Marcel Vollweiler  <marcel@codesourcery.com>
-
-       * parser.c (cp_parser_omp_clause_device): Parse device-modifiers 'device_num'
-       and 'ancestor' in 'target device' clauses.
-       * semantics.c (finish_omp_clauses): Error handling. Constant device ids must
-       evaluate to '1' if 'ancestor' is used.
-
-2021-08-30  Jason Merrill  <jason@redhat.com>
-
-       PR c++/96286
-       * cp-tree.h (struct lang_type): Add erroneous bit-field.
-       (CLASSTYPE_ERRONEOUS): New.
-       * pt.c (limit_bad_template_recursion): Check it.
-       (instantiate_class_template_1): Set it.
-
-2021-08-30  Jason Merrill  <jason@redhat.com>
-
-       * constexpr.c (cxx_eval_outermost_constant_expr): Copy
-       expr location to result.
-
-2021-08-30  Jason Merrill  <jason@redhat.com>
-
-       PR c++/101460
-       * cp-tree.h (cxx_constant_value_sfinae): Declare.
-       * constexpr.c (cxx_constant_value_sfinae): New.
-       * pt.c (fold_targs_r, maybe_fold_fn_template_args): New.
-       (tsubst_copy_and_build) [CALL_EXPR]: Call
-       maybe_fold_fn_template_args.
-
-2021-08-30  Jason Merrill  <jason@redhat.com>
-
-       * parser.c (cp_parser_simple_requirement): Warn about missing
-       requires.
-
-2021-08-27  Jason Merrill  <jason@redhat.com>
-
-       * typeck2.c (build_x_arrow): Do set TREE_TYPE when operand is
-       a dependent pointer.
-
-2021-08-25  Andrew Pinski  <apinski@marvell.com>
-
-       PR c++/66590
-       * cp-objcp-common.c (cxx_block_may_fallthru): Handle
-       CLEANUP_STMT for the case which will be try/finally.
-
-2021-08-25  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/102019
-       * init.c (build_value_init_noctor): Ignore unnamed zero-width
-       bitfields.
-
-2021-08-23  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_omp_clause_num_tasks,
-       cp_parser_omp_clause_grainsize): Parse the optional strict: modifier.
-
-2021-08-20  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_handle_statement_omp_attributes): Determine if
-       PRAGMA_OMP_ERROR directive is C_OMP_DIR_STANDALONE.
-       (cp_parser_omp_error): New function.
-       (cp_parser_pragma): Handle PRAGMA_OMP_ERROR.
-
-2021-08-20  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_omp_clause_depend_sink): Reject spurious
-       comma at the end of list.  Don't parse closing paren here...
-       (cp_parser_omp_clause_depend): ... but here instead.
-
-2021-08-19  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101803
-       * cp-tree.h (CONSTRUCTOR_IS_PAREN_INIT): Clarify comment.
-
-2021-08-19  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_omp_requires): Don't call cp_lexer_nth_token_is
-       and optionally consume token if current token is CPP_EOF,
-       CPP_PRAGMA_EOL or CPP_CLOSE_PAREN.
-
-2021-08-19  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_omp_nothing): Use cp_parser_require_pragma_eol
-       instead of cp_parser_skip_to_pragma_eol.
-
-2021-08-18  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101344
-       PR c++/101803
-       * cp-tree.h (CONSTRUCTOR_BRACES_ELIDED_P): Define.
-       * decl.c (reshape_init_r): Set it.
-       * pt.c (collect_ctor_idx_types): Recurse into a sub-CONSTRUCTOR
-       iff CONSTRUCTOR_BRACES_ELIDED_P.
-
-2021-08-18  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101883
-       * pt.c (convert_template_argument): Pass LOOKUP_IMPLICIT to
-       do_auto_deduction.
-
-2021-08-18  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_omp_nothing): New function.
-       (cp_parser_pragma): Handle PRAGMA_OMP_NOTHING.
-
-2021-08-18  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_omp_ordered): Return true instead of
-       false after emitting errors that the directive is not allowed in
-       pragma_stmt context.
-       (cp_parser_omp_target_update): Likewise.
-       (cp_parser_omp_cancellation_point): Change return type from void to
-       bool, return false if the directive should be ignored in pragma_stmt
-       contexts.
-       (cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data):
-       Change return type from tree to bool, return false if the
-       directive should be ignored in pragma_stmt contexts.
-       (cp_parser_omp_target): Adjust callers of cp_parser_omp_target_*_data,
-       return their result directly.
-       (cp_parser_pragma): For PRAGMA_OMP_CANCELLATION_POINT return what
-       cp_parser_omp_cancellation_point returned.  Return true instead of
-       false after emitting errors that the directive is not allowed in
-       pragma_stmt context.
-
-2021-08-17  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/101539
-       * cp-tree.h (enum cp_trait_kind): Add CPTK_IS_LAYOUT_COMPATIBLE.
-       (enum cp_built_in_function): Add CP_BUILT_IN_IS_CORRESPONDING_MEMBER.
-       (fold_builtin_is_corresponding_member, next_common_initial_seqence,
-       layout_compatible_type_p): Declare.
-       * parser.c (cp_parser_primary_expression): Handle
-       RID_IS_LAYOUT_COMPATIBLE.
-       (cp_parser_trait_expr): Likewise.
-       * cp-objcp-common.c (names_builtin_p): Likewise.
-       * constraint.cc (diagnose_trait_expr): Handle
-       CPTK_IS_LAYOUT_COMPATIBLE.
-       * decl.c (cxx_init_decl_processing): Register
-       __builtin_is_corresponding_member builtin.
-       * constexpr.c (cxx_eval_builtin_function_call): Handle
-       CP_BUILT_IN_IS_CORRESPONDING_MEMBER builtin.
-       * semantics.c (is_corresponding_member_union,
-       is_corresponding_member_aggr, fold_builtin_is_corresponding_member):
-       New functions.
-       (trait_expr_value): Handle CPTK_IS_LAYOUT_COMPATIBLE.
-       (finish_trait_expr): Likewise.
-       * typeck.c (next_common_initial_seqence, layout_compatible_type_p):
-       New functions.
-       * cp-gimplify.c (cp_gimplify_expr): Fold
-       CP_BUILT_IN_IS_CORRESPONDING_MEMBER.
-       (cp_fold): Likewise.
-       * tree.c (builtin_valid_in_constant_expr_p): Handle
-       CP_BUILT_IN_IS_CORRESPONDING_MEMBER.
-       * cxx-pretty-print.c (pp_cxx_trait_expression): Handle
-       CPTK_IS_LAYOUT_COMPATIBLE.
-       * class.c (remove_zero_width_bit_fields): Remove.
-       (layout_class_type): Don't call it.
-
-2021-08-17  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (OMP_SCOPE_CLAUSE_MASK): Define.
-       (cp_parser_omp_scope): New function.
-       (cp_parser_omp_construct, cp_parser_pragma): Handle PRAGMA_OMP_SCOPE.
-       * pt.c (tsubst_expr): Handle OMP_SCOPE.
-
-2021-08-12  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_omp_clause_name): Parse filter clause name.
-       (cp_parser_omp_clause_filter): New function.
-       (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FILTER.
-       (OMP_MASKED_CLAUSE_MASK): Define.
-       (cp_parser_omp_masked): New function.
-       (cp_parser_omp_parallel): Handle parallel masked.
-       (cp_parser_omp_construct, cp_parser_pragma): Handle PRAGMA_OMP_MASKED.
-       * semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_FILTER.
-       * pt.c (tsubst_omp_clauses): Likewise.
-       (tsubst_expr): Handle OMP_MASKED.
-
-2021-08-12  Sergei Trofimovich  <siarheit@google.com>
-
-       PR c++/101219
-       * pt.c (tsubst_copy_and_build): Use build_ptrmemfunc_access_expr
-       to construct ptrmemfunc expression instantiation.
-
-2021-08-12  Tobias Burnus  <tobias@codesourcery.com>
-
-       * parser.c (cp_parser_omp_clause_proc_bind): Accept
-       'primary' as alias for 'master'.
-
-2021-08-12  Jakub Jelinek  <jakub@redhat.com>
-
-       * cp-tree.h (omp_declare_target_attr): New type.
-       (struct saved_scope): Change type of omp_declare_target_attribute
-       from int to vec<omp_declare_target_attr, va_gc> * and move it.
-       * parser.c (cp_parser_omp_declare_target): Instead of
-       incrementing scope_chain->omp_declare_target_attribute, push
-       a struct containing parser->lexer->in_omp_attribute_pragma to
-       the vector.
-       (cp_parser_omp_end_declare_target): Instead of decrementing
-       scope_chain->omp_declare_target_attribute, pop a structure
-       from it.  Diagnose mismatching declare target vs.
-       end declare target syntax.
-       * semantics.c (finish_translation_unit): Use vec_safe_length
-       and vec_safe_truncate on scope_chain->omp_declare_target_attributes.
-       * decl2.c (cplus_decl_attributes): Use vec_safe_length
-       on scope_chain->omp_declare_target_attributes.
-
-2021-08-12  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_lambda_body): Add temp overrides
-       for parser->{omp_declare_simd,oacc_routine,omp_attrs_forbidden_p}.
-       (cp_parser_statement): Restore parser->omp_attrs_forbidden_p for
-       cp_parser_declaration_statement.
-       (cp_parser_default_argument): Add temp override for
-       parser->omp_attrs_forbidden_p.
-       (cp_parser_late_parsing_omp_declare_simd): Diagnose declare simd
-       or declare variant in attribute syntax on a declaration immediately
-       following an OpenMP construct in pragma syntax.
-
-2021-08-12  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/94162
-       * method.c (cat_tag_for): Return cc_last for !CLASS_TYPE_P
-       or for classes not in std namespace.
-
-2021-08-12  Jakub Jelinek  <jakub@redhat.com>
-
-       * name-lookup.c (finish_using_directive): Diagnose omp::directive
-       or omp::sequence attributes on using-directive.
-
-2021-08-12  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_block_declaration): Call
-       cp_parser_using_directive for C++11 attributes followed by
-       using namespace tokens.
-       (cp_parser_using_directive): Parse C++11 attributes at the start
-       of the directive rather than at the end, only parse GNU attributes
-       at the end.
-
-2021-08-12  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101663
-       * constexpr.c (cxx_eval_store_expression): Handle the lval=true
-       case in the early exit code path for empty stores with mismatched
-       types.
-
-2021-08-11  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101725
-       DR 2082
-       * cp-tree.h (unevaluated_p): Return true for REQUIRES_EXPR.
-       * decl.c (local_variable_p_walkfn): Don't walk into unevaluated
-       operands.
-       * parser.c (cp_parser_primary_expression) <case CPP_NAME>: Never
-       reject uses of local variables in unevaluated contexts.
-       * tree.c (cp_walk_subtrees) <case REQUIRES_EXPR>: Increment
-       cp_unevaluated_operand.  Use cp_walk_tree directly instead of
-       WALK_SUBTREE to avoid the goto.  Use REQUIRES_EXPR_REQS instead
-       of TREE_OPERAND directly.
-
-2021-08-11  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/101786
-       * decl2.c (var_defined_without_dynamic_init): Return true for
-       DECL_DECLARED_CONSTINIT_P with complete type and trivial destructor.
-
-2021-08-11  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/79501
-       * parser.c (maybe_adjust_declarator_for_dguide): New, split
-       out from ...
-       (cp_parser_init_declarator): ... here.
-       (cp_parser_member_declaration): Use it.
-
-2021-08-11  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/89062
-       * parser.c (cp_parser_parameter_declaration_list): Don't call
-       grokdeclarator if cp_parser_error_occurred.
-       (cp_parser_parameter_declaration): Simulate an error if we see
-       the beginning of a CTAD form, i.e. if we see an opening brace
-       after the decl-specifier-seq and the type is a CTAD placeholder.
-
-2021-08-10  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_member_declaration): Move odsd declaration
-       before cp_parser_using_declaration call to avoid errors with
-       GCC 4.8 to 6.
-
-2021-08-10  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.h (struct cp_omp_declare_simd_data): Remove
-       in_omp_attribute_pragma and clauses members, add loc and attribs.
-       (struct cp_oacc_routine_data): Remove loc member, add clauses
-       member.
-       * parser.c (cp_finalize_omp_declare_simd): New function.
-       (cp_parser_handle_statement_omp_attributes): Mention in
-       function comment the function is used also for
-       attribute-declaration.
-       (cp_parser_handle_directive_omp_attributes): New function.
-       (cp_parser_statement): Don't call
-       cp_parser_handle_statement_omp_attributes if statement doesn't
-       have attribute-specifier-seq at the beginning at all or if
-       if those attributes don't appertain to the statement.
-       (cp_parser_simple_declaration): Call
-       cp_parser_handle_directive_omp_attributes and
-       cp_finalize_omp_declare_simd.
-       (cp_parser_explicit_instantiation): Likewise.
-       (cp_parser_init_declarator): Initialize prefix_attributes
-       only after parsing declarators.
-       (cp_parser_direct_declarator): Call
-       cp_parser_handle_directive_omp_attributes and
-       cp_finalize_omp_declare_simd.
-       (cp_parser_member_declaration): Likewise.
-       (cp_parser_single_declaration): Likewise.
-       (cp_parser_omp_declare_simd): Don't initialize
-       data.in_omp_attribute_pragma, instead initialize
-       data.attribs[0] and data.attribs[1].
-       (cp_finish_omp_declare_variant): Remove
-       in_omp_attribute_pragma argument, instead use
-       parser->lexer->in_omp_attribute_pragma.
-       (cp_parser_late_parsing_omp_declare_simd): Adjust
-       cp_finish_omp_declare_variant caller.  Handle attribute-syntax
-       declare simd/variant.
-
-2021-08-06  Tamar Christina  <tamar.christina@arm.com>
-
-       * cp-objcp-common.h (cxx_simulate_enum_decl): Pass vec<> by pointer.
-       * decl.c (cxx_simulate_enum_decl): Likewise.
-
-2021-08-04  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/101759
-       * parser.c (cp_parser_default_argument): Temporarily override
-       parser->omp_declare_simd and parser->oacc_routine to NULL.
-
-2021-08-02  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100828
-       * logic.cc (formula::formula): Use emplace_back instead of
-       push_back.
-       (formula::branch): Insert a copy of m_current directly after
-       m_current instead of at the end of the list.
-       (formula::erase): Define.
-       (decompose_formula): Remove.
-       (decompose_antecedents): Remove.
-       (decompose_consequents): Remove.
-       (derive_proofs): Remove.
-       (max_problem_size): Remove.
-       (diagnose_constraint_size): Remove.
-       (subsumes_constraints_nonnull): Rewrite directly in terms of
-       decompose_clause and derive_proof, interleaving decomposition
-       with implication checking.  Remove limit on constraint complexity.
-       Use formula::erase to free the current clause before moving on to
-       the next one.
-
-2021-07-31  Jason Merrill  <jason@redhat.com>
-
-       PR c++/96636
-       * decl.c (fixup_anonymous_aggr): Clear TYPE_NEEDS_CONSTRUCTING
-       after error.
-
-2021-07-31  Jason Merrill  <jason@redhat.com>
-
-       * ptree.c (cxx_print_type) [TYPE_PACK_EXPANSION]: Also print
-       PACK_EXPANSION_PATTERN.
-
-2021-07-31  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_declaration): Handle OpenMP directives
-       in attribute-declaration.
-
-2021-07-30  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/101539
-       * cp-tree.h (enum cp_trait_kind): Add
-       CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
-       (enum cp_built_in_function): Add
-       CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS.
-       (fold_builtin_is_pointer_inverconvertible_with_class): Declare.
-       * parser.c (cp_parser_primary_expression): Handle
-       RID_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
-       (cp_parser_trait_expr): Likewise.
-       * cp-objcp-common.c (names_builtin_p): Likewise.
-       * constraint.cc (diagnose_trait_expr): Handle
-       CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
-       * decl.c (cxx_init_decl_processing): Register
-       __builtin_is_pointer_interconvertible_with_class builtin.
-       * constexpr.c (cxx_eval_builtin_function_call): Handle
-       CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS builtin.
-       * semantics.c (pointer_interconvertible_base_of_p,
-       first_nonstatic_data_member_p,
-       fold_builtin_is_pointer_inverconvertible_with_class): New functions.
-       (trait_expr_value): Handle CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
-       (finish_trait_expr): Likewise.  Formatting fix.
-       * cp-gimplify.c (cp_gimplify_expr): Fold
-       CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS.  Call
-       fndecl_built_in_p just once.
-       (cp_fold): Likewise.
-       * tree.c (builtin_valid_in_constant_expr_p): Handle
-       CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS.  Call
-       fndecl_built_in_p just once.
-       * cxx-pretty-print.c (pp_cxx_trait_expression): Handle
-       CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
-
-2021-07-30  Jason Merrill  <jason@redhat.com>
-
-       * class.c (finish_struct_anon): Improve comment.
-       * decl.c (fixup_anonymous_aggr): Reject anonymous struct
-       with bases.
-
-2021-07-30  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_statement): Rollback attributes not just
-       when std_attrs is non-NULL, but whenever
-       cp_parser_std_attribute_spec_seq parsed any tokens.
-
-2021-07-30  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/101582
-       * parser.c (cp_parser_skip_std_attribute_spec_seq): Add a forward
-       declaration.
-       (cp_parser_declaration): Parse empty-declaration and
-       attribute-declaration.
-       (cp_parser_toplevel_declaration): Don't parse empty-declaration here.
-
-2021-07-28  Martin Sebor  <msebor@redhat.com>
-
-       * init.c: Include new header.
-
-2021-07-27  Marek Polacek  <polacek@redhat.com>
-
-       DR 1512
-       PR c++/99701
-       * cp-gimplify.c (cp_fold): Remove {LE,LT,GE,GT_EXPR} from
-       a switch.
-       * typeck.c (cp_build_binary_op): Reject ordered comparison
-       of two null pointers.
-
-2021-07-26  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.h (struct cp_lexer): Add orphan_p member.
-       * parser.c (cp_parser_statement): Don't change in_omp_attribute_pragma
-       upon restart from CPP_PRAGMA handling.  Fix up condition when a lexer
-       should be destroyed and adjust saved_tokens if it records tokens from
-       the to be destroyed lexer.
-       (cp_parser_omp_section_scan): New function.
-       (cp_parser_omp_scan_loop_body): Use it.  If
-       parser->lexer->in_omp_attribute_pragma, allow optional comma
-       after scan.
-       (cp_parser_omp_sections_scope): Use cp_parser_omp_section_scan.
-
-2021-07-23  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.h (struct cp_parser): Add omp_attrs_forbidden_p member.
-       * parser.c (cp_parser_handle_statement_omp_attributes): Diagnose
-       mixing of attribute and pragma syntax directives when seeing
-       omp::directive if parser->omp_attrs_forbidden_p or if attribute syntax
-       directives are followed by OpenMP pragma.
-       (cp_parser_statement): Clear parser->omp_attrs_forbidden_p after
-       the cp_parser_handle_statement_omp_attributes call.
-       (cp_parser_omp_structured_block): Add disallow_omp_attrs argument,
-       if true, set parser->omp_attrs_forbidden_p.
-       (cp_parser_omp_scan_loop_body, cp_parser_omp_sections_scope): Pass
-       false as disallow_omp_attrs to cp_parser_omp_structured_block.
-       (cp_parser_omp_parallel, cp_parser_omp_task): Set
-       parser->omp_attrs_forbidden_p.
-
-2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
-           Joseph Myers  <joseph@codesourcery.com>
-           Cesar Philippidis  <cesar@codesourcery.com>
-
-       * parser.c (cp_parser_omp_clause_name): Handle 'nohost'.
-       (cp_parser_oacc_all_clauses): Handle 'PRAGMA_OACC_CLAUSE_NOHOST'.
-       (OACC_ROUTINE_CLAUSE_MASK): Add 'PRAGMA_OACC_CLAUSE_NOHOST'.
-       * pt.c (tsubst_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'.
-       * semantics.c (finish_omp_clauses): Likewise.
-
-2021-07-21  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/101516
-       * semantics.c (finish_omp_reduction_clause): Also call
-       complete_type_or_else and return true if it fails.
-
-2021-07-19  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/95520
-       * coroutines.cc (struct coroutine_info): Add fields for
-       actor and destroy function decls.
-       (to_ramp): New.
-       (coro_get_ramp_function): New.
-       (coro_get_actor_function): New.
-       (coro_get_destroy_function): New.
-       (act_des_fn): Set up mapping between ramp, actor and
-       destroy functions.
-       (morph_fn_to_coro): Adjust interface to the builder for
-       helper function decls.
-       * cp-tree.h (DECL_ACTOR_FN, DECL_DESTROY_FN, DECL_RAMP_FN,
-       JOIN_STR): New.
-       * mangle.c (write_encoding): Handle coroutine helpers.
-       (write_unqualified_name): Handle lambda coroutine helpers.
-
-2021-07-16  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101233
-       * pt.c (alias_ctad_tweaks): Clear cp_unevaluated_operand for
-       substituting DECL_ARGUMENTS.
-
-2021-07-16  Patrick Palka  <ppalka@redhat.com>
-
-       DR 960
-       PR c++/99664
-       * search.c (check_final_overrider): Compare TYPE_REF_IS_RVALUE
-       when the return types are references.
-
-2021-07-16  Marek Polacek  <polacek@redhat.com>
-
-       * typeck2.c (check_narrowing): Don't suppress the pedantic error
-       in system headers.
-
-2021-07-15  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/101443
-       * cp-gimplify.c (cp_fold): For comparisons with NULLPTR_TYPE
-       operands, fold them right away to true or false.
-
-2021-07-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/101095
-       * cp-objcp-common.c (cp_common_init_ts): Mark types as types.
-       (cp_tree_size): Remove redundant entries.
-
-2021-07-14  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/88252
-       * cp-tree.h (TEMPLATE_TYPE_PARM_FOR_CLASS): Remove.
-       * pt.c (push_template_decl): Remove TEMPLATE_TYPE_PARM_FOR_CLASS
-       handling.
-       (redeclare_class_template): Likewise.
-       (forwarding_reference_p): Define.
-       (maybe_adjust_types_for_deduction): Use it instead.  Add 'tparms'
-       parameter.
-       (unify_one_argument): Pass tparms to
-       maybe_adjust_types_for_deduction.
-       (try_one_overload): Likewise.
-       (unify): Likewise.
-       (rewrite_template_parm): Remove TEMPLATE_TYPE_PARM_FOR_CLASS
-       handling.
-
-2021-07-14  Jason Merrill  <jason@redhat.com>
-
-       * class.c (struct find_final_overrider_data): Use auto_vec.
-       (find_final_overrider): Remove explicit release.
-       * coroutines.cc (process_conditional): Use auto_vec.
-       * cp-gimplify.c (struct cp_genericize_data): Use auto_vec.
-       (cp_genericize_tree): Remove explicit release.
-       * parser.c (cp_parser_objc_at_property_declaration): Use
-       auto_delete_vec.
-       * semantics.c (omp_reduction_lookup): Use auto_vec.
-
-2021-07-14  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/101371
-       * constexpr.c (cxx_eval_array_reference): Create a new .object
-       and .ctor for the non-aggregate non-scalar case too when
-       value-initializing.
-
-2021-07-12  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/79501
-       PR c++/100983
-       * decl.c (grokfndecl): Don't require that deduction guides are
-       declared at namespace scope.  Check that class-scope deduction
-       guides have the same access as the member class template.
-       (grokdeclarator): Pretend class-scope deduction guides are static.
-       * search.c (lookup_member): Don't use a BASELINK for (class-scope)
-       deduction guides.
-
-2021-07-10  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/82110
-       * init.c (build_aggr_init): Return error_mark_node if
-       expand_aggr_init_1 returns false.
-       (expand_default_init): Change return type to bool.  Return false
-       on error, true on success.
-       (expand_aggr_init_1): Likewise.
-
-2021-07-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/101098
-       * decl.c (function_requirements_equivalent_p): Only compare
-       trailing requirements on a specialization.
-
-2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (build_actor_fn): Move common code to
-       act_des_fn.
-       (build_destroy_fn): Likewise.
-       (act_des_fn): Build the void return here.  Ensure that the
-       source location matches the original function.
-
-2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc
-       (coro_rewrite_function_body): Connect the replacement
-       function block to the block nest correctly.
-
-2021-07-09  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101181
-       * constraint.cc (tsubst_requires_expr): Pass complain/in_decl to
-       add_extra_args.
-       * cp-tree.h (add_extra_args): Add complain/in_decl parameters.
-       * pt.c (build_extra_args): Make a copy of args.
-       (add_extra_args): Add complain/in_decl parameters.  Enable the
-       code for handling the case where the extra arguments are
-       dependent.
-       (tsubst_pack_expansion): Pass complain/in_decl to
-       add_extra_args.
-       (tsubst_template_args): Handle missing template arguments.
-       (tsubst_expr) <case IF_STMT>: Pass complain/in_decl to
-       add_extra_args.
-
-2021-07-09  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101247
-       * pt.c (any_template_parm_r) <case TEMPLATE_DECL>: Just walk the
-       DECL_CONTEXT.
-
-2021-07-08  Martin Sebor  <msebor@redhat.com>
-
-       PR bootstrap/101372
-       * module.cc (identifier): Suppress warning.
-       (module_state::read_macro_maps): Remove warning suppression.
-       (module_state::install_macros): Ditto.
-
-2021-07-08  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/101087
-       * cp-tree.h (unevaluated_p): New.
-       * except.c (check_noexcept_r): Use it.  Don't walk into
-       unevaluated operands.
-
-2021-07-08  Martin Sebor  <msebor@redhat.com>
-
-       PR bootstrap/101374
-       * module.cc (module_state::read_macro_maps): Temporarily disable
-       -Warray-bounds.
-       (module_state::install_macros): Same.
-
-2021-07-06  Martin Sebor  <msebor@redhat.com>
-
-       * error.c (cp_printer):  Remove support for %G and %K.
-
-2021-07-02  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.h (struct cp_lexer): Add in_omp_attribute_pragma member.
-       (struct cp_omp_declare_simd_data): Likewise.
-       * cp-tree.h (enum cp_tree_index): Add CPTI_OMP_IDENTIFIER.
-       (omp_identifier): Define.
-       * parser.c (cp_parser_skip_to_pragma_eol): Handle
-       in_omp_attribute_pragma CPP_PRAGMA_EOL followed by CPP_EOF.
-       (cp_parser_require_pragma_eol): Likewise.
-       (struct cp_omp_attribute_data): New type.
-       (cp_parser_handle_statement_omp_attributes): New function.
-       (cp_parser_statement): Handle OpenMP directives in statement's
-       attribute-specifier-seq.
-       (cp_parser_omp_directive_args, cp_parser_omp_sequence_args): New
-       functions.
-       (cp_parser_std_attribute): Handle omp::directive and omp::sequence
-       attributes.
-       (cp_parser_omp_all_clauses): If in_omp_attribute_pragma, allow
-       a comma also before the first clause.
-       (cp_parser_omp_allocate): Likewise.
-       (cp_parser_omp_atomic): Likewise.
-       (cp_parser_omp_depobj): Likewise.
-       (cp_parser_omp_flush): Likewise.
-       (cp_parser_omp_ordered): Likewise.
-       (cp_parser_omp_declare_simd): Save in_omp_attribute_pragma
-       into struct cp_omp_declare_simd_data.
-       (cp_finish_omp_declare_variant): Add in_omp_attribute_pragma
-       argument.  If set, allow a comma also before match clause.
-       (cp_parser_late_parsing_omp_declare_simd): If in_omp_attribute_pragma,
-       allow a comma also before the first clause.  Adjust
-       cp_finish_omp_declare_variant caller.
-       (cp_parser_omp_declare_target): If in_omp_attribute_pragma, allow
-       a comma also before the first clause.
-       (cp_parser_omp_declare_reduction_exprs): Likewise.
-       (cp_parser_omp_requires): Likewise.
-       * decl.c (initialize_predefined_identifiers): Initialize
-       omp_identifier.
-       * decl2.c (cplus_decl_attributes): Reject omp::directive and
-       omp::sequence attributes.
-
-2021-07-02  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c/101297
-       * parser.c (cp_parser_omp_atomic): Consume comma only if it
-       appears before a CPP_NAME.
-
-2021-07-02  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101247
-       * pt.c (any_template_parm_r) <case TEMPLATE_DECL>: Rewrite to
-       use common_enclosing_class and to not depend on the TREE_TYPE
-       of outer levels pointing to the corresponding primary template.
-
-2021-07-01  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101194
-       * constexpr.c (cxx_eval_array_reference): When the element type
-       is an empty type and the corresponding element is omitted, just
-       return an empty CONSTRUCTOR instead of attempting value
-       initialization.
-
-2021-07-01  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96204
-       * pt.c (finish_template_variable): Pass the partially
-       instantiated template and its args to instantiate_template.
-       (instantiate_class_template_1): No need to call
-       push_nested_class and pop_nested_class around the call to
-       most_specialized_partial_spec.
-       (instantiate_template_1): Pass the partially instantiated
-       template to lookup_template_variable.
-       (most_specialized_partial_spec):  Use push_access_scope_guard
-       to set the access scope appropriately.  Use
-       deferring_access_check_sentinel to force access to get checked
-       immediately.
-       (instantiate_decl): Just pass the VAR_DECL to
-       most_specialized_partial_spec.
-
-2021-06-30  Patrick Palka  <ppalka@redhat.com>
-
-       * constraint.cc (get_normalized_constraints_from_decl): Use
-       push_access_scope_guard instead of push_nested_class_guard.
-       * cp-tree.h (struct push_nested_class_guard): Replace with ...
-       (struct push_access_scope_guard): ... this.
-       * pt.c (push_access_scope): When the argument corresponds to
-       a class type, push the class instead of its context.
-       (pop_access_scope): Adjust accordingly.
-
-2021-06-30  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/100975
-       DR 2397
-       * decl.c (create_array_type_for_decl): Allow array of auto.
-
-2021-06-29  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (instantiate_decl): Only consider partial specializations of
-       actual variable templates.
-
-2021-06-26  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96204
-       * pt.c (instantiate_class_template_1): Enter the scope of the
-       type when calling most_specialized_partial_spec.
-
-2021-06-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/101040
-       PR c++/97566
-       * class.c (is_empty_field): Handle null argument.
-       * constexpr.c (cxx_eval_bare_aggregate): Discard initializer
-       for empty field.
-
-2021-06-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/100752
-       * parser.c (cp_parser_declarator): Pass flags down to
-       cp_parser_declarator.  Also pass static_p/member_p.
-
-2021-06-25  Martin Sebor  <msebor@redhat.com>
-
-       * call.c (build_over_call): Replace direct uses of TREE_NO_WARNING
-       with warning_suppressed_p, suppress_warning, and copy_no_warning, or
-       nothing if not necessary.
-       (set_up_extended_ref_temp): Same.
-       * class.c (layout_class_type): Same.
-       * constraint.cc (constraint_satisfaction_value): Same.
-       * coroutines.cc (finish_co_await_expr): Same.
-       (finish_co_yield_expr): Same.
-       (finish_co_return_stmt): Same.
-       (build_actor_fn): Same.
-       (coro_rewrite_function_body): Same.
-       (morph_fn_to_coro): Same.
-       * cp-gimplify.c (genericize_eh_spec_block): Same.
-       (gimplify_expr_stmt): Same.
-       (cp_genericize_r): Same.
-       (cp_fold): Same.
-       * cp-ubsan.c (cp_ubsan_instrument_vptr): Same.
-       * cvt.c (cp_fold_convert): Same.
-       (convert_to_void): Same.
-       * decl.c (wrapup_namespace_globals): Same.
-       (grokdeclarator): Same.
-       (finish_function): Same.
-       (require_deduced_type): Same.
-       * decl2.c (no_linkage_error): Same.
-       (c_parse_final_cleanups): Same.
-       * except.c (expand_end_catch_block): Same.
-       * init.c (build_new_1): Same.
-       (build_new): Same.
-       (build_vec_delete_1): Same.
-       (build_vec_init): Same.
-       (build_delete): Same.
-       * method.c (defaultable_fn_check): Same.
-       * parser.c (cp_parser_fold_expression): Same.
-       (cp_parser_primary_expression): Same.
-       * pt.c (push_tinst_level_loc): Same.
-       (tsubst_copy): Same.
-       (tsubst_omp_udr): Same.
-       (tsubst_copy_and_build): Same.
-       * rtti.c (build_if_nonnull): Same.
-       * semantics.c (maybe_convert_cond): Same.
-       (finish_return_stmt): Same.
-       (finish_parenthesized_expr): Same.
-       (cp_check_omp_declare_reduction): Same.
-       * tree.c (build_cplus_array_type): Same.
-       * typeck.c (build_ptrmemfunc_access_expr): Same.
-       (cp_build_indirect_ref_1): Same.
-       (cp_build_function_call_vec): Same.
-       (warn_for_null_address): Same.
-       (cp_build_binary_op): Same.
-       (unary_complex_lvalue): Same.
-       (cp_build_modify_expr): Same.
-       (build_x_modify_expr): Same.
-       (convert_for_assignment): Same.
-
-2021-06-24  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/98832
-       * pt.c (maybe_aggr_guide): Handle alias templates appropriately.
-
-2021-06-24  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101182
-       * constraint.cc (evaluate_requires_expr): Adjust function comment.
-       * cp-gimplify.c (cp_genericize_r) <case REQUIRES_EXPR>: Move to ...
-       (cp_fold) <case REQUIRES_EXPR>: ... here.
-
-2021-06-24  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_omp_split_clauses): Pass C_ORT_OMP_TARGET instead of
-       C_ORT_OMP for clauses on target construct.
-       (OMP_TARGET_CLAUSE_MASK): Add in_reduction clause.
-       (cp_parser_omp_target): For non-combined target add
-       map (always, tofrom:) clauses for OMP_CLAUSE_IN_REDUCTION.  Pass
-       C_ORT_OMP_TARGET to finish_omp_clauses.
-       * semantics.c (handle_omp_array_sections_1): Adjust ort handling
-       for addition of C_ORT_OMP_TARGET and simplify, mapping clauses are
-       never present on C_ORT_*DECLARE_SIMD.
-       (handle_omp_array_sections): Likewise.
-       (finish_omp_clauses): Likewise.  Handle OMP_CLAUSE_IN_REDUCTION
-       on C_ORT_OMP_TARGET, set OMP_CLAUSE_MAP_IN_REDUCTION on
-       corresponding map clauses.
-       * pt.c (tsubst_expr): Pass C_ORT_OMP_TARGET instead of C_ORT_OMP for
-       clauses on target construct.
-
-2021-06-23  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/101174
-       * pt.c (push_access_scope): For artificial deduction guides,
-       set the access scope to that of the constructor.
-       (pop_access_scope): Likewise.
-       (build_deduction_guide): Don't set DECL_CONTEXT on the guide.
-
-2021-06-23  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/86439
-       * call.c (print_error_for_call_failure): Constify 'args' parameter.
-       (perform_dguide_overload_resolution): Define.
-       * cp-tree.h: (perform_dguide_overload_resolution): Declare.
-       * pt.c (do_class_deduction): Use perform_dguide_overload_resolution
-       instead of build_new_function_call.  Don't use tf_decltype or
-       set cp_unevaluated_operand.  Remove unnecessary NULL_TREE tests.
-
-2021-06-21  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/67302
-       * typeck.c (check_return_expr): Call maybe_undo_parenthesized_ref
-       sooner, before the NRVO handling.
-
-2021-06-21  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/80431
-       * tree.c (bot_replace): Use convert_to_base to build the
-       conversion to the (morally) virtual base.
-
-2021-06-21  Jakub Jelinek  <jakub@redhat.com>
-
-       PR inline-asm/100785
-       * typeck.c (cxx_mark_addressable): Diagnose trying to make
-       bit-fields addressable.
-
-2021-06-17  Jason Merrill  <jason@redhat.com>
-
-       PR c++/101106
-       * decl.c (duplicate_decls): Make 'deleted after first declaration'
-       pedwarn on by default.
-
-2021-06-17  Jason Merrill  <jason@redhat.com>
-
-       PR c++/101029
-       * init.c (build_vec_init): Preserve the type of base.
-
-2021-06-16  Jason Merrill  <jason@redhat.com>
-
-       PR c++/101078
-       PR c++/91706
-       * pt.c (tsubst_baselink): Update binfos in non-dependent case.
-
-2021-06-15  Robin Dapp  <rdapp@linux.ibm.com>
-
-       * decl.c (duplicate_decls): Likewise.
-
-2021-06-14  Tobias Burnus  <tobias@codesourcery.com>
-
-       PR c/100913
-       * parser.c (cp_parser_omp_clause_affinity): No need to set iterator
-       var in the error case.
-
-2021-06-13  Trevor Saunders  <tbsaunde@tbsaunde.org>
-
-       * constexpr.c (cxx_eval_call_expression): Iterate over vec<>
-       with range based for.
-       (cxx_eval_store_expression): Likewise.
-       (cxx_eval_loop_expr): Likewise.
-       * decl.c (wrapup_namespace_globals): Likewise.
-       (cp_finish_decl): Likewise.
-       (cxx_simulate_enum_decl): Likewise.
-       * parser.c (cp_parser_postfix_expression): Likewise.
-
-2021-06-12  Jason Merrill  <jason@redhat.com>
-
-       PR c++/101029
-       * init.c (build_vec_init): Shortcut [0] case.
-
-2021-06-12  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (lookup_template_class_1): Shortcut current_class_type.
-
-2021-06-11  Patrick Palka  <ppalka@redhat.com>
-
-       DR 1227
-       PR c++/96560
-       * pt.c (tsubst_arg_types): Rearrange so that we substitute into
-       TYPE_ARG_TYPES in forward order while short circuiting
-       appropriately.  Adjust formatting.
-
-2021-06-11  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/100974
-       * cp-tree.h (struct saved_scope): Add consteval_if_p
-       member.  Formatting fix for the discarded_stmt comment.
-       (in_consteval_if_p, IF_STMT_CONSTEVAL_P): Define.
-       * parser.c (cp_parser_lambda_expression): Temporarily disable
-       in_consteval_if_p when parsing lambda body.
-       (cp_parser_selection_statement): Parse consteval if.
-       * decl.c (struct named_label_entry): Add in_consteval_if member.
-       (level_for_consteval_if): New function.
-       (poplevel_named_label_1, check_previous_goto_1, check_goto): Handle
-       consteval if.
-       * constexpr.c (cxx_eval_builtin_function_call): Clarify in comment
-       why CP_BUILT_IN_IS_CONSTANT_EVALUATED needs to *non_constant_p
-       for !ctx->manifestly_const_eval.
-       (cxx_eval_conditional_expression): For IF_STMT_CONSTEVAL_P evaluate
-       condition as if it was __builtin_is_constant_evaluated call.
-       (potential_constant_expression_1): For IF_STMT_CONSTEVAL_P always
-       recurse on both branches.
-       * cp-gimplify.c (genericize_if_stmt): Genericize IF_STMT_CONSTEVAL_P
-       as the else branch.
-       * pt.c (tsubst_expr) <case IF_STMT>: Copy IF_STMT_CONSTEVAL_P.
-       Temporarily set in_consteval_if_p when recursing on
-       IF_STMT_CONSTEVAL_P then branch.
-       (tsubst_lambda_expr): Temporarily disable
-       in_consteval_if_p when instantiating lambda body.
-       * call.c (immediate_invocation_p): Return false when
-       in_consteval_if_p.
-
-2021-06-11  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/100995
-       * constexpr.c (maybe_constexpr_fn): New.
-       * cp-tree.h (maybe_constexpr_fn): Declare.
-       * semantics.c (find_std_constant_evaluated_r): New.
-       (maybe_warn_for_constant_evaluated): New.
-       (finish_if_stmt_cond): Call it.
-
-2021-06-10  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/67829
-       * pt.c (unify) <case BOUND_TEMPLATE_TEMPLATE_PARM>: When
-       the TEMPLATE_DECL of a BOUND_TEMPLATE_TEMPLATE_PARM argument is
-       a template template parameter, adjust to the
-       TEMPLATE_TEMPLATE_PARAMETER before falling through.
-
-2021-06-10  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100946
-       * constraint.cc (normalize_placeholder_type_constraints): When
-       normalizing a non-templated return-type-requirement, add a dummy
-       level to initial_parms.
-
-2021-06-08  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/100065
-       * decl.c (grokdeclarator): Store a value-dependent
-       explicit-specifier even for deduction guides.
-
-2021-06-08  Jason Merrill  <jason@redhat.com>
-
-       * parser.c (cp_parser_string_literal): Adjust diagnostic.
-
-2021-06-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100963
-       * call.c (perfect_conversion_p): Check check_narrowing.
-
-2021-06-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91706
-       * name-lookup.c (get_class_binding): Keep a BASELINK.
-       (set_inherited_value_binding_p): Adjust.
-       * lambda.c (is_lambda_ignored_entity): Adjust.
-       * pt.c (lookup_template_function): Copy a BASELINK before
-       modifying it.
-
-2021-06-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91706
-       * semantics.c (baselink_for_fns): Fix BASELINK_BINFO.
-
-2021-06-08  Jason Merrill  <jason@redhat.com>
-
-       * module.cc (duplicate_hash::hash): Comment out.
-       (trees_in::tree_value): Adjust loop counter.
-
-2021-06-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100102
-       * init.c (build_offset_ref): Return the BASELINK for a static
-       member function.
-
-2021-06-07  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100918
-       * parser.c (cp_parser_lookup_name): Check access of the lookup
-       result before we potentially adjust an injected-class-name to
-       its TEMPLATE_DECL.
-
-2021-06-06  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c/100902
-       * parser.c (cp_parser_omp_target): Call c_omp_adjust_map_clauses
-       even when target is combined with other constructs.
-
-2021-06-04  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100893
-       * pt.c (convert_template_argument): Strip top-level cv-quals
-       on the substituted type of a non-type template parameter.
-
-2021-06-04  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100102
-       * pt.c (tsubst_function_decl): Remove old code for reducing
-       args when it has excess levels.
-
-2021-06-04  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/100872
-       * name-lookup.c (maybe_save_operator_binding): Add op_attr after all
-       ATTR_IS_DEPENDENT attributes in the DECL_ATTRIBUTES list rather than
-       to the start.
-
-2021-06-03  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100592
-       * decl.c (make_typename_type): After calling
-       lookup_template_class, adjust the result to its TYPE_NAME and
-       then consider the tf_keep_type_decl flag.
-
-2021-06-03  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100862
-       * pt.c (set_current_access_from_decl): Move to ...
-       * class.c (set_current_access_from_decl): ... here.
-       (handle_using_decl): Use it to propagate the access of the
-       using-enum decl to the copy of the imported enumerator.
-       * cp-tree.h (set_current_access_from_decl): Declare.
-       * decl.c (build_enumerator): Simplify using make_temp_override
-       and set_current_access_from_decl.
-
-2021-06-03  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/100859
-       * semantics.c (handle_omp_array_sections_1): For
-       OMP_CLAUSE_{AFFINITY,DEPEND} handle FIELD_DECL base using
-       finish_non_static_data_member and allow this as base.
-       (finish_omp_clauses): Move OMP_CLAUSE_AFFINITY
-       after depend only cases.  Let this be diagnosed by !lvalue_p
-       case for OMP_CLAUSE_{AFFINITY,DEPEND} and remove useless
-       assert.
-       * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_AFFINITY.
-
-2021-06-02  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100838
-       * call.c (convert_like_internal): Clear tf_no_cleanup when
-       recursing.
-       (build_user_type_conversion_1): Only add ck_rvalue if
-       LOOKUP_ONLYCONVERTING.
-
-2021-06-01  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/65816
-       * init.c (expand_aggr_init_1): Check
-       type_has_non_user_provided_default_constructor instead of
-       type_has_user_provided_constructor.
-
-2021-06-01  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91859
-       * call.c (build_op_delete_call): Don't set CALL_FROM_NEW_OR_DELETE_P
-       for destroying delete.
-       * init.c (build_delete): Don't clobber before destroying delete.
-
-2021-06-01  Jason Merrill  <jason@redhat.com>
-
-       PR c++/94492
-       * decl2.c (cp_warn_deprecated_use): Check warning_enabled_at.
-
-2021-05-31  Richard Biener  <rguenther@suse.de>
-
-       PR c++/88601
-       * cp-objcp-common.c (names_builtin_p): Handle
-       RID_BUILTIN_SHUFFLEVECTOR.
-       * cp-tree.h (build_x_shufflevector): Declare.
-       * parser.c (cp_parser_postfix_expression): Handle
-       RID_BUILTIN_SHUFFLEVECTOR.
-       * pt.c (tsubst_copy_and_build): Handle IFN_SHUFFLEVECTOR.
-       * typeck.c (build_x_shufflevector): Build either a lowered
-       VEC_PERM_EXPR or an unlowered shufflevector via a temporary
-       internal function IFN_SHUFFLEVECTOR.
-
-2021-05-28  Jason Merrill  <jason@redhat.com>
-
-       * constexpr.c (build_data_member_initialization): Use tsi_range.
-       (build_constexpr_constructor_member_initializers): Likewise.
-       (constexpr_fn_retval, cxx_eval_statement_list): Likewise.
-       (potential_constant_expression_1): Likewise.
-       * coroutines.cc (await_statement_expander): Likewise.
-       (await_statement_walker): Likewise.
-       * module.cc (trees_out::core_vals): Likewise.
-       * pt.c (tsubst_expr): Likewise.
-       * semantics.c (set_cleanup_locs): Likewise.
-
-2021-05-28  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100797
-       PR c++/95719
-       * call.c (build_over_call): Adjust base_binfo in
-       resolves_to_fixed_type_p case.
-
-2021-05-28  Jakub Jelinek  <jakub@redhat.com>
-
-       PR middle-end/99928
-       * semantics.c (handle_omp_array_sections): Copy
-       OMP_CLAUSE_MAP_IMPLICIT.
-       (finish_omp_clauses): Move not just OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT
-       marked clauses last, but also OMP_CLAUSE_MAP_IMPLICIT.  Add
-       map_firstprivate_head bitmap, set it for GOMP_MAP_FIRSTPRIVATE_POINTER
-       maps and silently remove OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT if it is
-       present too.  For OMP_CLAUSE_MAP_IMPLICIT silently remove the clause
-       if present in map_head, map_field_head or map_firstprivate_head
-       bitmaps.
-
-2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
-
-       * parser.c (cp_parser_omp_clause_affinity): New.
-       (cp_parser_omp_clause_name, cp_parser_omp_var_list_no_open,
-       cp_parser_omp_all_clauses, OMP_TASK_CLAUSE_MASK): Handle affinity
-       clause.
-       * semantics.c (handle_omp_array_sections_1, handle_omp_array_sections,
-       finish_omp_clauses): Likewise.
-
-2021-05-27  Matthias Kretz  <kretz@kde.org>
-
-       PR c++/100716
-       * error.c (dump_template_bindings): Include code to print
-       "[with" and ']', conditional on whether anything is printed at
-       all. This is tied to whether a semicolon is needed to separate
-       multiple template parameters. If the template argument repeats
-       the template parameter (T = T), then skip the parameter.
-       (dump_substitution): Moved code to print "[with" and ']' to
-       dump_template_bindings.
-       (dump_function_decl): Partial revert of PR50828, which masked
-       TFF_TEMPLATE_NAME for all of dump_function_decl. Now
-       TFF_TEMPLATE_NAME is masked for the scope of the function and
-       only carries through to dump_function_name.
-       (dump_function_name): Avoid calling dump_template_parms if
-       TFF_TEMPLATE_NAME is set.
-
-2021-05-27  Matthias Kretz  <kretz@kde.org>
-
-       PR c++/100763
-       * error.c: Call dump_scope when printing a typedef.
-
-2021-05-27  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99893
-       * tree.c (cp_walk_subtrees) <case STATIC_ASSERT>: New case.
-
-2021-05-27  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86355
-       * pt.c (use_pack_expansion_extra_args_p): Don't compare
-       args from the same argument pack.
-
-2021-05-27  Patrick Palka  <ppalka@redhat.com>
-
-       DR 1315
-       PR c++/67593
-       PR c++/96555
-       * pt.c (process_partial_specialization): Don't error on a
-       non-simple non-type template argument that involves template
-       parameters.
-       (for_each_template_parm_r): Don't walk TRAIT_EXPR, PLUS_EXPR,
-       MULT_EXPR, or SCOPE_REF when include_nondeduced_p is false.
-
-2021-05-26  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100502
-       * typeck.c (finish_class_member_access_expr): Disable ahead
-       of time access checking during the member lookup.
-
-2021-05-26  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100368
-       * tree.c (build_target_expr_with_type): Don't call force_rvalue
-       on CALL_EXPR initializer.  Simplify now that bot_manip is no
-       longer a caller.
-       (bot_manip): Use force_target_expr instead of
-       build_target_expr_with_type.
-
-2021-05-26  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/97420
-       * cvt.c (noexcept_conv_p): Remove redundant checks and simplify.
-       (fnptr_conv_p): Don't call non_reference.  Use INDIRECT_TYPE_P
-       instead of TYPE_PTR_P.
-       * pt.c (convert_nontype_argument_function): Look through
-       implicit INDIRECT_REFs before calling strip_fnptr_conv.
-
-2021-05-25  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/100666
-       * call.c (convert_arg_to_ellipsis): For expressions with NULLPTR_TYPE
-       and side-effects, temporarily disable -Wunused-result warning when
-       building COMPOUND_EXPR.
-
-2021-05-21  Jakub Jelinek  <jakub@redhat.com>
-
-       PR middle-end/99928
-       * semantics.c (finish_omp_clauses): Move firstprivate clauses with
-       OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT to the end of the chain.  Don't error
-       if a decl is mentioned both in map clause and in such firstprivate
-       clause unless OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET is also set.
-
-2021-05-20  Jason Merrill  <jason@redhat.com>
-
-       * call.c (reference_binding): Check for designator.
-       (implicit_conversion_1, build_special_member_call): Likewise.
-       * decl.c (reshape_init_r): Likewise.
-       * pt.c (do_class_deduction): Likewise.
-       * typeck2.c (digest_init_r): Likewise.
-
-2021-05-20  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100489
-       * decl.c (reshape_init_class): Handle designator for
-       member of anonymous aggregate here.
-       * typeck2.c (process_init_constructor_record): Not here.
-
-2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
-
-       * call.c (maybe_warn_array_conv): Use new warning option.
-       * decl.c (mark_inline_variable, grokdeclarator): Likewise.
-       * error.c (maybe_warn_cpp0x): Likewise.
-       * parser.c (cp_parser_primary_expression)
-       (cp_parser_unqualified_id)
-       (cp_parser_pseudo_destructor_name)
-       (cp_parser_lambda_introducer)
-       (cp_parser_lambda_declarator_opt)
-       (cp_parser_selection_statement)
-       (cp_parser_init_statement)
-       (cp_parser_decomposition_declaration)
-       (cp_parser_function_specifier_opt)
-       (cp_parser_static_assert)
-       (cp_parser_namespace_definition)
-       (cp_parser_using_declaration)
-       (cp_parser_asm_definition)
-       (cp_parser_ctor_initializer_opt_and_function_body)
-       (cp_parser_initializer_list)
-       (cp_parser_type_parameter_key)
-       (cp_parser_member_declaration)
-       (cp_parser_try_block)
-       (cp_parser_std_attribute_spec): Likewise.
-       * pt.c (check_template_variable): Likewise.
-
-2021-05-20  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100634
-       * pt.c (invalid_nontype_parm_type_p): Return true for COMPLEX_TYPE.
-
-2021-05-20  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100659
-       * cp-tree.h (CONST_DECL_USING_P): Check for null TREE_TYPE.
-
-2021-05-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100367
-       PR c++/96299
-       * method.c (genericize_spaceship): Use fold_build2 for scalar
-       operands.
-
-2021-05-19  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (build_deduction_guide): Treat the implicit deduction guide
-       as a member of the class.
-
-2021-05-19  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/100596
-       * cp-tree.h (any_non_type_attribute_p): Remove.
-       * decl.c (grokdeclarator): Turn an error into a warning and only
-       warn for standard attributes.
-       * decl2.c (any_non_type_attribute_p): Remove.
-       * parser.c (cp_parser_elaborated_type_specifier): Turn an error
-       into a warning and only warn for standard attributes.
-       (cp_parser_member_declaration): Likewise.
-
-2021-05-19  Martin Liska  <mliska@suse.cz>
-
-       PR testsuite/100658
-       * mangle.c (write_encoding): Fix typos.
-
-2021-05-19  Jakub Jelinek  <jakub@redhat.com>
-
-       PR middle-end/99928
-       * parser.c (cp_parser_omp_master): Set OMP_MASTER_COMBINED on
-       master when combined with taskloop.
-       (cp_parser_omp_parallel): Don't set OMP_PARALLEL_COMBINED on
-       parallel master when not combined with taskloop.
-
-2021-05-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100261
-       * rtti.c (get_tinfo_decl_direct): Check TYPE_TRANSPARENT_AGGR.
-
-2021-05-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100372
-       * tree.c (strip_typedefs): Only look at the pattern of a
-       TYPE_PACK_EXPANSION if it's a type.
-
-2021-05-18  Marek Polacek  <polacek@redhat.com>
-
-       * class.c (classtype_has_non_deleted_copy_ctor): Remove.
-       * constraint.cc (contains_wildcard_p): Likewise.
-       (get_template_head_requirements): Likewise.
-       (check_constrained_friend): Likewise.
-       (subsumes_constraints): Likewise.
-       * cp-tree.h (classtype_has_non_deleted_copy_ctor): Likewise.
-       (push_void_library_fn): Likewise.
-       (get_pattern_parm): Likewise.
-       (get_template_parms_at_level): Likewise.
-       (lambda_return_type): Likewise.
-       (get_template_head_requirements): Likewise.
-       (check_constrained_friend): Likewise.
-       (subsumes_constraints): Likewise.
-       * decl.c (push_void_library_fn): Likewise.
-       * lambda.c (lambda_return_type): Likewise.
-       * pt.c (get_template_parms_at_level): Likewise.
-       (get_pattern_parm): Likewise.
-
-2021-05-18  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100644
-       * call.c (perfect_candidate_p): An implicitly deleted move
-       is not perfect.
-
-2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>
-
-       PR c++/100281
-       * cvt.c (cp_convert_to_pointer): Use the size of the target
-       pointer type.
-       * tree.c (cp_build_reference_type): Call
-       cp_build_reference_type_for_mode with VOIDmode.
-       (cp_build_reference_type_for_mode): Rename from
-       cp_build_reference_type.  Add MODE argument and invoke
-       build_reference_type_for_mode.
-       (strip_typedefs): Use build_pointer_type_for_mode and
-       cp_build_reference_type_for_mode for pointers and references.
-
-2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
-
-       PR c++/100635
-       * call.c (convert_like_internal): Print different diagnostic if
-       the lvalue reference is const.
-
-2021-05-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/95870
-       * pt.c (enclosing_instantiation_of): Just compare
-       DECL_SOURCE_LOCATION.
-       (regenerate_decl_from_template): Copy DECL_SOURCE_LOCATION.
-
-2021-05-14  Marek Polacek  <polacek@redhat.com>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/99032
-       * cp-tree.h (any_non_type_attribute_p): Declare.
-       * decl.c (grokdeclarator): Diagnose when an attribute appertains to
-       a friend declaration that is not a definition.
-       * decl2.c (any_non_type_attribute_p): New.
-       * parser.c (cp_parser_decl_specifier_seq): Diagnose standard attributes
-       in the middle of decl-specifiers.
-       (cp_parser_elaborated_type_specifier): Diagnose when an attribute
-       appertains to a friend declaration that is not a definition.
-       (cp_parser_member_declaration): Likewise.
-
-2021-05-12  Marek Polacek  <polacek@redhat.com>
-
-       * pt.c (tsubst_copy_and_build): Add warn_int_in_bool_context
-       sentinel.
-
-2021-05-12  Marcel Vollweiler  <marcel@codesourcery.com>
-
-       * parser.c (cp_parser_omp_clause_map): Support map-type-modifier
-       'close'.
-
-2021-05-11  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100517
-       * typeck.c (build_reinterpret_cast_1): Check intype on
-       cast to vector.
-
-2021-05-11  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/51577
-       * name-lookup.c (maybe_save_operator_binding): Unconditionally
-       enable for all function templates, not just generic lambdas.
-       Handle compound-assignment operator expressions.
-       * typeck.c (build_x_compound_expr): Call maybe_save_operator_binding
-       in the type-dependent case.
-       (build_x_modify_expr): Likewise.  Move declaration of 'op' closer
-       to its first use.
-
-2021-05-11  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100138
-       * constraint.cc (tsubst_constraint): Set up cp_unevaluated.
-       (satisfy_atom): Set up iloc_sentinel before calling
-       cxx_constant_value.
-       * pt.c (tsubst_pack_expansion): When returning a rebuilt pack
-       expansion, carry over PACK_EXPANSION_LOCAL_P and
-       PACK_EXPANSION_SIZEOF_P from the original pack expansion.
-
-2021-05-10  Richard Biener  <rguenther@suse.de>
-
-       PR middle-end/100464
-       PR c++/100468
-       * call.c (set_up_extended_ref_temp): Mark the temporary
-       addressable if the TARGET_EXPR was.
-
-2021-05-10  Martin Liska  <mliska@suse.cz>
-
-       * decl.c (duplicate_decls): Use startswith
-       function instead of strncmp.
-       (cxx_builtin_function): Likewise.
-       (omp_declare_variant_finalize_one): Likewise.
-       (grokfndecl): Likewise.
-       * error.c (dump_decl_name): Likewise.
-       * mangle.c (find_decomp_unqualified_name): Likewise.
-       (write_guarded_var_name): Likewise.
-       (decl_tls_wrapper_p): Likewise.
-       * parser.c (cp_parser_simple_type_specifier): Likewise.
-       (cp_parser_tx_qualifier_opt): Likewise.
-       * pt.c (template_parm_object_p): Likewise.
-       (dguide_name_p): Likewise.
-
-2021-05-10  Martin Liska  <mliska@suse.cz>
-
-       PR c++/99616
-       * decl.c (grokdeclarator): Remove redundant NULL check.
-
-2021-05-07  Jason Merrill  <jason@redhat.com>
-
-       * tree.c (rvalue): Assert expr is not a class lvalue.
-
-2021-05-07  Jason Merrill  <jason@redhat.com>
-
-       * cp-tree.h (build_stub_object): Declare.
-       * method.c (build_stub_object): No longer static.
-       * call.c (can_convert): Use it.
-       * tree.c (build_dummy_object): Adjust comment.
-       * typeck.c (cp_build_binary_op): Wrap SPACESHIP_EXPR in a
-       TARGET_EXPR.
-
-2021-05-07  Jason Merrill  <jason@redhat.com>
-
-       * coroutines.cc (build_co_await): Don't call 'rvalue'.
-       (flatten_await_stmt): Simplify initialization.
-       (morph_fn_to_coro): Change 'rvalue' to 'move'.  Simplify.
-
-2021-05-04  Tobias Burnus  <tobias@codesourcery.com>
-
-       * semantics.c (finish_omp_reduction_clause): Accept float + complex
-       for || and && reductions.
-
-2021-05-03  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100362
-       * parser.c (cp_parser_class_head): Reinstate calls to pushclass
-       and popclass when parsing the base-clause that were removed in
-       r11-6815.
-
-2021-05-03  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/68942
-       PR c++/100344
-       * pt.c (tsubst_copy_and_build) <case CALL_EXPR>: Set tf_conv
-       only when the callee is a FUNCTION_DECL.
-
-2021-05-03  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/100055
-       * decl.c (grokfndecl): Check current_template_parms.
-
-2021-05-03  Marek Polacek  <polacek@redhat.com>
-
-       DR 1312
-       * constexpr.c (cxx_eval_constant_expression): Don't check
-       integer_zerop.
-
-2021-05-01  Jason Merrill  <jason@redhat.com>
-
-       * cp-tree.h (class ovl_iterator): Allow copying.  Add op==.
-       (class ovl_range, class lkp_range): New.
-       * call.c (build_op_call_1, add_candidates): Use them.
-       (build_op_delete_call, has_trivial_copy_assign_p): Likewise.
-       (has_trivial_copy_p): Likewise.
-       * class.c (handle_using_decl, get_basefndecls): Likewise.
-       (maybe_warn_about_overly_private_class): Likewise.
-       (warn_hidden, add_implicitly_declared_members): Likewise.
-       (check_methods, clone_constructors_and_destructors): Likewise.
-       (type_has_user_nondefault_constructor): Likewise.
-
-2021-04-29  Jason Merrill  <jason@redhat.com>
-
-       * constexpr.c (cxx_fold_indirect_ref_1): Only set *empty_base if we
-       don't find a field.
-
-2021-04-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/51344
-       * decl2.c (grokfield): Call cplus_decl_attributes for friend.
-       (save_template_attributes): Use chainon.
-       * friend.c (do_friend): Remove attrlist parm.
-       * cp-tree.h (do_friend): Adjust.
-       * class.c (add_implicitly_declared_members): Adjust.
-       * decl.c (grokdeclarator): Adjust.
-       * pt.c (apply_late_template_attributes): Optimize.
-
-2021-04-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97974
-       * class.c (finish_struct_anon_r): Drop complain parm.
-       Remove non-field diagnostic.
-       (finish_struct_anon): Adjust.
-       * decl.c (fixup_anonymous_aggr): Move non-field diagnostic here.
-
-2021-04-29  Jason Merrill  <jason@redhat.com>
-
-       * cp-tree.h (cp_evaluated): Add reset parm to constructor.
-       * parser.c (cp_parser_constant_expression): Change
-       allow_non_constant_p to int.  Use cp_evaluated.
-       (cp_parser_initializer_clause): Pass 2 to allow_non_constant_p.
-       * semantics.c (finish_id_expression_1): Don't mess with
-       cp_unevaluated_operand here.
-
-2021-04-29  Jason Merrill  <jason@redhat.com>
-
-       * cp-tree.h: Clarify comments.
-       * pt.c (get_template_parm_object): Add assert.
-       * semantics.c (finish_compound_literal): Clear TREE_HAS_CONSTRUCTOR.
-       * tree.c (zero_init_expr_p): Check TREE_HAS_CONSTRUCTOR.
-       * typeck2.c (store_init_value): Likewise.
-
-2021-04-29  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/68942
-       * pt.c (tsubst_copy_and_build) <case CALL_EXPR>: When KOENIG_P,
-       set tf_conv during the initial substitution into the function.
-
-2021-04-29  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/100319
-       * semantics.c (finish_omp_clauses): Fix up check that variable
-       mentioned in detach clause doesn't appear in data-sharing clauses.
-
-2021-04-28  Jakub Jelinek  <jakub@redhat.com>
-
-       * module.cc: Remove #error that triggers if DEV-PHASE is empty.
-
-2021-04-27  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92145
-       * class.c (classtype_has_depr_implicit_copy): Check DECL_CONTEXT
-       of operator=.
-
-2021-04-27  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/88580
-       * pt.c (tsubst_initializer_list): Correctly handle the case
-       where an argument inside a base initializer pack expansion is
-       itself a pack expansion.
-
-2021-04-26  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/100209
-       * constexpr.c (cxx_fold_indirect_ref): Try to canonicalize the
-       object/offset pair for a POINTER_PLUS_EXPR of a COMPONENT_REF
-       with a negative offset into one whose offset is nonnegative
-       before calling cxx_fold_indirect_ref_1.
-
-2021-04-24  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/89565
-       PR c++/93383
-       PR c++/95291
-       PR c++/99200
-       PR c++/99683
-       * pt.c (do_class_deduction): Punt if the initializer is
-       type-dependent.
-
-2021-04-24  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/87709
-       * parser.c (cp_parser_type_id_1): If we see a template
-       placeholder, first try simulating an error before issuing
-       a real error.
-
-2021-04-23  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/98767
-       * cxx-pretty-print.c (pp_cxx_parameter_declaration_clause):
-       Adjust parameter list loop to iterate over 'types' instead of
-       'args'.  Output the trailing '...' for a variadic function.
-       Remove PARM_DECL support.
-       (pp_cxx_requires_expr): Pretty print the parameter list directly
-       instead of going through pp_cxx_parameter_declaration_clause.
-
-2021-04-23  Patrick Palka  <ppalka@redhat.com>
-
-       DR 2374
-       * decl.c (is_direct_enum_init): Check the implicit
-       convertibility requirement added by CWG 2374.
-
-2021-04-23  Martin Liska  <mliska@suse.cz>
-
-       * cp-tree.h (STATIC_ASSERT): Prefer static assert.
-       * lex.c (init_operators): Remove run-time check.
-
-2021-04-22  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/100161
-       * pt.c (tsubst_copy_and_build) <case PLUS_EXPR>: Test op0 and
-       op1 separately for value- or type-dependence.
-
-2021-04-21  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/96380
-       * parser.c (cp_parser_enum_specifier): Don't allow defining
-       types in enum-base.
-
-2021-04-21  Martin Liska  <mliska@suse.cz>
-
-       Revert:
-       2021-04-21  Martin Liska  <mliska@suse.cz>
-
-       * error.c (dump_decl): Use flags in dump_generic_node call.
-
-2021-04-21  Martin Liska  <mliska@suse.cz>
-
-       * error.c (dump_decl): Use flags in dump_generic_node call.
-
-2021-04-21  Martin Liska  <mliska@suse.cz>
-
-       * error.c (dump_decl): Support anonymous labels.
-
-2021-04-20  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100109
-       * pt.c (find_parameter_packs_r): Look into enum initializers.
-
-2021-04-19  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97536
-       * decl.c (grokvardecl): Given an error when a concept is not defined
-       at namespace scope.
-
-2021-04-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/100111
-       * constexpr.c (cxx_eval_store_expression): Don't add CONSTRUCTORs
-       for empty classes into *valp when types don't match even when *valp
-       is NULL.
-
-2021-04-16  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/99803
-       * decl.c (make_typename_type): Give an error and return when
-       name is is_overloaded_fn.
-       * parser.c (cp_parser_class_name): Don't check is_overloaded_fn
-       before calling make_typename_type.
-
-2021-04-16  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99700
-       * constexpr.c (reduced_constant_expression_p): For array
-       CONSTRUCTORs, use a dedicated loop that additionally verifies
-       the CONSTRUCTOR spans the entire array.
-
-2021-04-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99850
-       * parser.c (cp_parser_constraint_requires_parens) <case CPP_DEREF>:
-       If lambda_p, return pce_ok instead of pce_maybe_postfix.
-
-2021-04-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99833
-       * pt.c (extract_locals_r): When handling DECL_EXPR of a structured
-       binding, add to data.internal also all corresponding structured
-       binding decls.
-
-2021-04-16  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100079
-       * cp-tree.h (first_field): Declare.
-       * mangle.c (range_expr_nelts): New.
-       (write_expression): Improve class NTTP mangling.
-       * pt.c (get_template_parm_object): Clear TREE_HAS_CONSTRUCTOR.
-       * tree.c (zero_init_expr_p): Improve class NTTP handling.
-       * decl.c: Adjust comment.
-
-2021-04-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/80456
-       * call.c (build_new_method_call_1): Check again for side-effects
-       with a volatile object.
-
-2021-04-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100101
-       PR c++/99583
-       * pt.c (find_parameter_packs_r) [FUNCTION_TYPE]: Walk into
-       TYPE_RAISES_EXCEPTIONS here.
-       * tree.c (cp_walk_subtrees): Not here.
-
-2021-04-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100091
-       PR c++/99478
-       * parser.c (cp_parser_default_type_template_argument): Set
-       parser->local_variables_forbidden_p.
-
-2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
-
-       PR c++/98852
-       * typeck.c (merge_type_attributes_from): New function.
-       (cp_common_type): Use it for vector types.
-
-2021-04-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100078
-       PR c++/93085
-       * pt.c (uses_outer_template_parms): Also look at default
-       template argument.
-
-2021-04-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93314
-       * semantics.c (finish_id_expression_1): Clear cp_unevaluated_operand
-       for a non-static data member in a constant-expression.
-
-2021-04-14  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/83476
-       PR c++/99885
-       * pt.c (deducible_expression): Look through implicit
-       INDIRECT_REFs as well.
-
-2021-04-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/99478
-       * parser.c (cp_parser_lambda_expression): Reject lambda
-       in template parameter type.
-
-2021-04-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90674
-       * decl.c (duplicate_decls): Don't propagate
-       DECL_INITIALIZED_IN_CLASS_P to a specialization.
-
-2021-04-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/88742
-       PR c++/49951
-       PR c++/58123
-       * semantics.c (set_cleanup_locs): New.
-       (do_poplevel): Call it.
-       * parser.c (cp_parser_compound_statement): Consume the }
-       before finish_compound_stmt.
-
-2021-04-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100032
-       * pt.c (get_underlying_template): Compare TYPE_QUALS.
-
-2021-04-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100054
-       PR c++/90479
-       * init.c (get_nsdmi): Do more context adjustment for local classes.
-
-2021-04-13  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99008
-       * pt.c (do_class_deduction): Reject alias CTAD in C++17 mode
-       rather than issuing a pedwarn.
-       * typeck2.c (build_functional_cast_1): Handle CTAD uniformly
-       for consistent diagnostics.
-
-2021-04-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91933
-       * class.c (build_base_path): Shortcut simple non-pointer case.
-
-2021-04-13  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * module.cc (ordinary_loc_of): Test LINEMAPS_MACRO_LOWEST_LOCATION
-       of the linemap.
-       (module_state::write_location): Likewise.
-
-2021-04-13  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/97134
-       * pt.c (do_class_deduction): Look through EXPR_PACK_EXPANSION
-       when checking if the initializer is an equivalent class
-       placeholder template parameter.
-
-2021-04-13  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99961
-       PR c++/99994
-       * constraint.cc (satisfy_normalized_constraints): Set
-       cp_unevaluated.
-       * parser.c (cp_parser_concept_definition): Likewise.
-       (cp_parser_requires_clause_opt): Likewise.
-
-2021-04-12  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93085
-       * pt.c (uses_outer_template_parms): Handle non-type and template
-       template parameters specifically.
-
-2021-04-11  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97974
-       * decl.c (fixup_anonymous_aggr): Prune all functions from
-       CLASSTYPE_MEMBER_VEC.
-
-2021-04-10  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98800
-       PR c++/97399
-       * parser.c (cp_parser_direct_declarator): Don't
-       inject_this_parameter if static_p.
-       (cp_parser_omp_var_list_no_open): Parse 'this' even if
-       current_class_ptr isn't set for a better diagnostic.
-
-2021-04-10  Jason Merrill  <jason@redhat.com>
-
-       PR c++/99180
-       PR c++/93295
-       PR c++/93867
-       PR c++/99118
-       PR c++/96873
-       * pt.c (alias_ctad_tweaks): Handle failure better.
-
-2021-04-10  Jason Merrill  <jason@redhat.com>
-
-       PR c++/100006
-       * pt.c (find_parameter_packs_r) [TAG_DEFN]: Look into bases.
-
-2021-04-09  Patrick Palka  <ppalka@redhat.com>
-
-       * cp-tree.h (LAMBDA_EXPR_REGENERATED_FROM)
-       (LAMBDA_EXPR_REGENERATING_TARGS): Replace these with ...
-       (LAMBDA_EXPR_REGEN_INFO): ... this.
-       (tree_lambda_expr::regenerated_from)
-       (tree_lambda_expr::regenerating_targs): Replace these with ...
-       (tree_lambda_expr::regen_info): ... this.
-       * constraint.cc (satisfy_declaration_constraints): Adjust
-       accordingly.
-       * lambda.c (build_lambda_expr): Likewise.
-       * pt.c (regenerated_lambda_fn_p): Likewise.
-       (most_general_lambda): Likewise.
-       (tsubst_lambda_expr): Likewise.
-
-2021-04-09  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/99806
-       * parser.c (cp_parser_member_declaration): Call
-       cp_parser_save_default_args even for function templates.  Use
-       STRIP_TEMPLATE on the declaration we're passing.
-
-2021-04-08  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99874
-       * constraint.cc (get_normalized_constraints_from_decl): Handle
-       regenerated lambdas.
-       (satisfy_declaration_constraints): Likewise.  Check for
-       dependent args later.
-       * cp-tree.h (LAMBDA_EXPR_INSTANTIATED): Replace with ...
-       (LAMBDA_EXPR_REGENERATED_FROM): ... this.
-       (LAMBDA_EXPR_REGENERATING_TARGS): New.
-       (tree_lambda_expr::regenerated_from): New data member.
-       (tree_lambda_expr::regenerating_targs): New data member.
-       (add_to_template_args): Declare.
-       (regenerated_lambda_fn_p): Likewise.
-       (most_general_lambda): Likewise.
-       * lambda.c (build_lambda_expr): Set LAMBDA_EXPR_REGENERATED_FROM
-       and LAMBDA_EXPR_REGENERATING_TARGS.
-       * pt.c (add_to_template_args): No longer static.
-       (tsubst_function_decl): Unconditionally propagate constraints on
-       the substituted function decl.
-       (instantiated_lambda_fn_p): Rename to ...
-       (regenerated_lambda_fn_p): ... this.  Check
-       LAMBDA_EXPR_REGENERATED_FROM instead of
-       LAMBDA_EXPR_INSTANTIATED.
-       (most_general_lambda): Define.
-       (enclosing_instantiation_of): Adjust after renaming
-       instantiated_lambda_fn_p.
-       (tsubst_lambda_expr): Don't set LAMBDA_EXPR_INSTANTIATED.  Set
-       LAMBDA_EXPR_REGENERATED_FROM and LAMBDA_EXPR_REGENERATING_TARGS.
-       Don't substitute or set constraints on the regenerated lambda.
-
-2021-04-08  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/97679
-       * pt.c (build_deduction_guide): Document OUTER_ARGS.  Substitute
-       them into the propagated constraints.
-
-2021-04-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91849
-       * call.c (convert_like_internal): Improve reference diagnostic.
-
-2021-04-08  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99859
-       * constexpr.c (addr_of_non_const_var): New function.
-       (cxx_bind_parameters_in_call): Set *non_constant_args to true
-       even if cp_walk_tree on arg with addr_of_non_const_var callback
-       returns true.
-
-2021-04-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/94529
-       * pt.c (determine_specialization): Improve diagnostic.
-
-2021-04-08  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/99844
-       * decl.c (build_explicit_specifier): Call
-       check_for_bare_parameter_packs.
-       * except.c (build_noexcept_spec): Likewise.
-
-2021-04-07  Jason Merrill  <jason@redhat.com>
-
-       PR c++/41723
-       * parser.c (cp_parser_class_name): Check dependent_scope_p.
-
-2021-04-07  Jason Merrill  <jason@redhat.com>
-
-       PR c++/52625
-       * pt.c (maybe_process_partial_specialization): Check
-       DECL_SELF_REFERENCE_P.
-
-2021-04-07  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92918
-       * name-lookup.c (push_class_level_binding_1): Do overload a new
-       function with a previous using-declaration.
-
-2021-04-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/96673
-       * init.c (get_nsdmi): Don't defer access checking.
-
-2021-04-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/99901
-       * decl.c (cp_finish_decl): mark_needed an implicitly inline
-       static data member with an out-of-class redeclaration.
-
-2021-04-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91241
-       * mangle.c (write_compact_number): Add sanity check.
-       (write_local_name): Use list_length for parm number.
-
-2021-04-06  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99899
-       * pt.c (do_auto_deduction): Don't exit early when deducing the
-       array type of a structured binding.  Also handle adc_decomp_type
-       during constraint checking.
-
-2021-04-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/96311
-       * typeck.c (check_return_expr): Call mark_exp_read in dependent
-       case.
-
-2021-04-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98440
-       * typeck.c (build_reinterpret_cast_1): Don't perform
-       temporary materialization.
-
-2021-04-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/95317
-       * pt.c (lookup_template_class_1): Do tsubst_enum when
-       tsubsting a generic lambda.
-
-2021-04-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/95870
-       * pt.c (enclosing_instantiation_of): Compare DECL_SOURCE_LOCATION if
-       there is no enclosing non-lambda function.
-
-2021-04-05  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99380
-       * module.cc (name_pending_imports): Drop 'atend' parm.  Don't
-       query export when not needed.
-       (preprocess_module, preprocessed_module): Adjust.
-
-2021-04-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/99066
-       * pt.c (mark_decl_instantiated): Set DECL_EXTERNAL.
-
-2021-04-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/99201
-       * pt.c (class el_data): Add visited field.
-       (extract_local_specs): Pass it to cp_walk_tree.
-       (extract_locals_r): Walk into the body of a lambda.
-
-2021-04-05  Jason Merrill  <jason@redhat.com>
-
-       * ptree.c (cxx_print_decl): Check DECL_MODULE_IMPORT_P on
-       template result.
-
-2021-04-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/99643
-       * typeck2.c (massage_init_elt): Don't strip TARGET_EXPR.
-
-2021-04-03  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/91416
-       * parser.c: Create a GC root for attributes in a decl specifier.
-       (cp_parser_type_specifier): Push/pop ->attributes onto/from it.
-
-2021-04-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91217
-       * pt.c (tsubst_lambda_expr): Skip the body block from
-       DECL_SAVED_TREE.
-
-2021-04-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90664
-       * cvt.c (can_convert_qual): Check fnptr_conv_p.
-
-2021-04-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97900
-       * pt.c (regenerate_decl_from_template): tsubst_decl
-       the parms.
-
-2021-04-02  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99869
-       * parser.c (do_range_for_auto_deduction): Pass adc_variable_type
-       to do_auto_deduction.
-
-2021-04-02  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99586
-       * semantics.c (finish_compound_literal): Check
-       template_placeholder_p instead of type_uses_auto.
-
-2021-04-02  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97938
-       * cp-tree.h (PACK_EXPANSION_AUTO_P): New.
-       * lambda.c (add_capture): Set it.
-       * pt.c (tsubst_pack_expansion): Handle it.
-
-2021-04-02  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (lang_decl_base): Correct module flag comment.
-       * module.cc (trees_in::assert_definition): Break out
-       not_tmpl var.
-       (trees_out::lang_decl_bools): Do not write purview for header units.
-
-2021-04-01  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/99831
-       * method.c (defaulted_late_check): ++ and -- function_depth around
-       the call to synthesize_method.
-       * pt.c: Remove the saved_trees global.
-
-2021-04-01  Jason Merrill  <jason@redhat.com>
-
-       PR c++/99583
-       PR c++/99584
-       * tree.c (cp_walk_subtrees) [FUNCTION_TYPE]: Walk into
-       TYPE_RAISES_EXCEPTIONS.
-
-2021-04-01  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * mapper-client.cc (INCLUDE_MAP): New; require map to be
-       included from system.h.
-       * mapper-resolver.cc (INCLUDE_MAP): Likewise.
-
-2021-04-01  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98481
-       * mangle.c (write_expression): Adjust.
-       * class.c (find_abi_tags_r): Disable PR98481 fix for ABI v14.
-       (mark_abi_tags_r): Likewise.
-
-2021-04-01  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99283
-       * module.cc (trees_out::decl_node): Adjust importedness reference
-       assert.
-       (module_state::intercluster_seed): New.  Seed both imports and
-       inter-cluster references.  Broken out of ...
-       (module_state::write_cluster): ... here.  Call it.
-
-2021-03-31  Jason Merrill  <jason@redhat.com>
-
-       PR c++/99445
-       * tree.c (strip_typedefs): Handle TYPE_PACK_EXPANSION.
-
-2021-03-31  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/88115
-       * mangle.c (write_expression): Adjust the mangling of
-       __alignof__.
-
-2021-03-31  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99815
-       * pt.c (placeholder_type_constraint_dependent_p): Expand
-       argument packs to separate the first non-pack argument
-       from the rest.
-
-2021-03-30  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99283
-       * module.cc (dumper::operator): Make less brittle.
-       (trees_out::core_bools): VAR_DECLs always have a context.
-       (trees_out::key_mergeable): Use same_type_p for asserting.
-       (trees_in::read_var_def): Propagate
-       DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
-
-2021-03-30  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99790
-       * cp-gimplify.c (cp_gimplify_expr): Handle PTRMEM_CST.
-
-2021-03-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98352
-       * method.c (implicitly_declare_fn): Pass &raises to
-       synthesized_method_walk.
-
-2021-03-26  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99283
-       * cp-tree.h (DECL_MODULE_CHECK): Ban TEMPLATE_DECL.
-       (SET_TYPE_TEMPLATE_INFO): Restore Alias template setting.
-       * decl.c (duplicate_decls): Remove template_decl module flag
-       propagation.
-       * module.cc (merge_kind_name): Add alias tmpl spec as a thing.
-       (dumper::impl::nested_name): Adjust for template-decl module flag
-       change.
-       (trees_in::assert_definition): Likewise.
-       (trees_in::install_entity): Likewise.
-       (trees_out::decl_value): Likewise.  Remove alias template
-       separation of template and type_decl.
-       (trees_in::decl_value): Likewise.
-       (trees_out::key_mergeable): Likewise,
-       (trees_in::key_mergeable): Likewise.
-       (trees_out::decl_node): Adjust for template-decl module flag
-       change.
-       (depset::hash::make_dependency): Likewise.
-       (get_originating_module, module_may_redeclare): Likewise.
-       (set_instantiating_module, set_defining_module): Likewise.
-       * name-lookup.c (name_lookup::search_adl): Likewise.
-       (do_pushdecl): Likewise.
-       * pt.c (build_template_decl): Likewise.
-       (lookup_template_class_1): Remove special alias_template handling
-       of DECL_TI_TEMPLATE.
-       (tsubst_template_decl): Likewise.
-
-2021-03-26  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99705
-       * tree.c (bot_manip): Remap artificial automatic temporaries mentioned
-       in DECL_EXPR or in BIND_EXPR_VARS.
-
-2021-03-25  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99672
-       * parser.c (cp_parser_postfix_expression): For calls, create
-       combined_loc and temporarily set input_location to it before
-       calling finish_call_expr.
-
-2021-03-25  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94751
-       * call.c (build_over_call): Maybe call mark_used in case
-       deduce_inheriting_ctor fails and return error_mark_node.
-       * cp-tree.h (deduce_inheriting_ctor): Adjust declaration.
-       * method.c (deduce_inheriting_ctor): Return bool if the deduction
-       fails.
-       (implicitly_declare_fn): If raises is error_mark_node, call
-       synthesized_method_walk with diag being true.
-
-2021-03-25  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99745
-       * decl2.c (grokbitfield): Diagnose bitfields containing bare parameter
-       packs and don't set DECL_BIT_FIELD_REPRESENTATIVE in that case.
-
-2021-03-25  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/99331
-       * call.c (build_converted_constant_expr_internal): Don't emit
-       -Wconversion warnings.
-
-2021-03-25  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99565
-       * call.c (build_conditional_expr_1): Pass OEP_ADDRESS_OF_SAME_FIELD
-       to operand_equal_p.
-       * cvt.c (convert_to_void): Preserve location_t on COND_EXPR or
-       or COMPOUND_EXPR.
-
-2021-03-23  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99283
-       * name-lookup.c (check_module_override): Set global or partition
-       DUP on the binding vector.
-
-2021-03-23  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/99318
-       * decl2.c (cp_warn_deprecated_use_scopes): Only call
-       cp_warn_deprecated_use when decl is a namespace, class, or enum.
-
-2021-03-23  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99239
-       * decl.c (duplicate_decls): Remove assert about maybe-imported
-       artificial decls.
-
-2021-03-23  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99650
-       * decl.c (cp_finish_decomp): Diagnose void initializers when
-       using tuple_element and get.
-
-2021-03-22  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99480
-       * module.cc (depset::hash::make_dependency): Propagate flags for
-       partial specialization.
-       (module_may_redeclare): Handle partial specialization.
-
-2021-03-22  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99425
-       * cp-tree.h (map_context_from, map_context_to): Delete.
-       (add_mergeable_specialization): Add is_alias parm.
-       * pt.c (add_mergeable_specialization): Add is_alias parm, add them.
-       * module.cc (map_context_from, map_context_to): Delete.
-       (trees_in::decl_value): Add specializations later, adjust call.
-       Drop useless alias lookup. Set duplicate fn parm context.
-       (check_mergeable_decl): Drop context mapping.
-       (trees_in::is_matching_decl): Likewise.
-       (trees_in::read_function_def): Drop parameter context adjustment
-       here.
-
-2021-03-22  Martin Liska  <mliska@suse.cz>
-
-       PR c++/99687
-       * module.cc (fini_modules): Call vec_free instead of delete.
-
-2021-03-20  Jakub Jelinek  <jakub@redhat.com>
-
-       PR debug/99230
-       * cp-gimplify.c (cp_genericize_r) <case STATEMENT_LIST>: Remove
-       special code, instead call c_genericize_control_stmt.
-
-2021-03-19  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99456
-       * constexpr.c (cxx_eval_constant_expression): For CONVERT_EXPR from
-       INDIRECT_TYPE_P to ARITHMETIC_TYPE_P, when !ctx->manifestly_const_eval
-       don't diagnose it, set *non_constant_p nor return t.
-
-2021-03-19  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/99500
-       * parser.c (cp_parser_requirement_parameter_list): Handle
-       error_mark_node.
-
-2021-03-18  Marek Polacek  <polacek@redhat.com>
-
-       * pt.c (tsubst_copy_and_build) <case FLOAT_EXPR>: Remove.
-
-2021-03-18  Marek Polacek  <polacek@redhat.com>
-
-       * pt.c (tsubst_copy_and_build): Add assert.
-
-2021-03-18  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR objc++/49070
-       * parser.c (cp_debug_parser): Add Objective-C++ message
-       state flag.
-       (cp_parser_nested_name_specifier_opt): Allow colon to
-       terminate an assignment-expression when parsing Objective-
-       C++ messages.
-       (cp_parser_objc_message_expression): Set and clear message
-       parsing state on entry and exit.
-       * parser.h (struct cp_parser): Add a context flag for
-       Objective-C++ message state.
-
-2021-03-18  Martin Liska  <mliska@suse.cz>
-
-       PR c++/99617
-       * coroutines.cc (struct var_nest_node): Init then_cl and else_cl
-       to NULL.
-
-2021-03-17  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97973
-       * call.c (conv_unsafe_in_template_p): New.
-       (convert_like): Use it.
-
-2021-03-17  Anthony Sharp  <anthonysharp15@gmail.com>
-           Jason Merrill  <jason@redhat.com>
-
-       * semantics.c (get_class_access_diagnostic_decl): New
-       function that examines special cases when a parent
-       class causes a private access failure.
-       (enforce_access): Slightly modified to call function
-       above.
-
-2021-03-16  Jason Merrill  <jason@redhat.com>
-
-       * tree.c (cp_tree_equal): Use real_identical.
-
-2021-03-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99613
-       * decl.c (expand_static_init): For thread guards, call __cxa_atexit
-       before calling __cxa_guard_release rather than after it.  Formatting
-       fixes.
-
-2021-03-16  Martin Liska  <mliska@suse.cz>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/99108
-       * call.c (get_function_version_dispatcher): Handle
-       DECL_LOCAL_DECL_P.
-       * decl.c (maybe_version_functions): Likewise.
-       (maybe_mark_function_versioned): New.
-       * name-lookup.c (push_local_extern_decl_alias): No longer static.
-       * name-lookup.h (push_local_extern_decl_alias): Adjust.
-
-2021-03-16  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99496
-       * module.cc (trees_out::decl_value): Adjust typedef streaming,
-       indicate whether it is a dependent alias.
-       (trees_in::decl_value): Likewise.  Set as dependent alias, if it
-       is one.
-
-2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/99047
-       * coroutines.cc (expand_one_await_expression): If the
-       await_ready() expression is not a boolean then convert it
-       as required.
-
-2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/98704
-       * coroutines.cc (build_actor_fn): Make destroy index 1
-       correspond to the abnormal unhandled_exception() exit.
-       Substitute the proxy for the resume index.
-       (coro_rewrite_function_body): Arrange to reset the resume
-       index and make done = true for a rethrown exception from
-       unhandled_exception ().
-       (morph_fn_to_coro): Adjust calls to build_actor_fn and
-       coro_rewrite_function_body.
-
-2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/98480
-       * coroutines.cc (replace_continue): Rewrite continue into
-       'goto label'.
-       (await_statement_walker): Handle await expressions in the
-       initializer, condition and iteration expressions of for
-       loops.
-
-2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/96749
-       * coroutines.cc (flatten_await_stmt): Allow for the case
-       where a target expression variable only has uses in the
-       second part of a compound expression.
-       (maybe_promote_temps): Avoid emiting empty statements.
-
-2021-03-15  Tobias Burnus  <tobias@codesourcery.com>
-
-       PR c++/99509
-       * decl.c (cp_finish_decl): For 'omp declare target implicit' vars,
-       ensure that the varpool node is marked as offloadable.
-
-2021-03-12  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99238
-       * module.cc (depset::hash::add_binding_entity): Assert not
-       visited.
-       (depset::add::add_specializations): Likewise.
-       * name-lookup.c (name_lookup::dedup): New.
-       (name_lookup::~name_lookup): Assert not deduping.
-       (name_lookup::restore_state): Likewise.
-       (name_lookup::add_overload): Replace outlined code with dedup
-       call.
-       (name_lookup::add_value): Likewise.
-       (name_lookup::search_namespace_only): Likewise.
-       (name_lookup::adl_namespace_fns): Likewise.
-       (name_lookup::adl_class_fns): Likewise.
-       (name_lookup::search_adl): Likewise.  Add clearing dedup call.
-       (name_lookup::search_qualified): Likewise.
-       (name_lookup::search_unqualified): Likewise.
-
-2021-03-12  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99507
-       * call.c (build_over_call): For immediate evaluation of functions
-       that return references, undo convert_from_reference effects before
-       calling cxx_constant_value and call convert_from_reference
-       afterwards.
-
-2021-03-11  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99248
-       * name-lookup.c (lookup_elaborated_type_1): Access slot not bind
-       when there's a binding vector.
-       * ptree.c (cxx_print_xnode): Lazy flags are no longer a thing.
-
-2021-03-11  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99528
-       * module.cc (enum merge_kind): Delete MK_type_tmpl_spec,
-       MK_decl_tmpl_spec.
-       (trees_in::decl_value): Adjust add_mergeable_specialization call.
-       (trees_out::get_merge_kind): Adjust detecting a partial template
-       instantiation.
-       (trees_out::key_mergeable): Adjust handling same.
-       (trees_in::key_mergeabvle): Likewise.
-
-2021-03-10  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99423
-       * module.cc (post_load_processing): Assert not gcable.
-       (laxy_load_pendings): Extend no-gc region around
-       post_load_processing.
-
-2021-03-10  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99508
-       * decl.c (make_rtl_for_nonlocal_decl): Propagate local-extern's
-       assembler name to the ns alias.
-
-2021-03-09  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99459
-       * coroutines.cc (build_co_await): Look through NOP_EXPRs in
-       build_special_member_call return value to find the CALL_EXPR.
-       Simplify.
-
-2021-03-09  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99472
-       * parser.c (cp_parser_diagnose_invalid_type_name): Clarify
-       that C++20 does not yet imply modules.
-
-2021-03-08  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99436
-       * name-lookup.c (get_cxx_dialect_name): Add cxx23.
-
-2021-03-08  Nathan Sidwell  <nathan@acm.org>
-
-       * lex.c (module_token_filter::resume): Ignore module-decls inside
-       header-unit.
-       * parser.c (cp_parser_module_declaration): Reject in header-unit.
-
-2021-03-08  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99285
-       * cp-tree.h (match_mergeable_specialization)
-       (add_mergeable_specialization): Adjust parms.
-       * module.cc (trees_in::decl_value): Adjust
-       add_mergeable_specialization calls.
-       (trees_out::key_mergeable): Adjust match_mergeable_specialization
-       calls.
-       (specialization_add): Likewise.
-       * pt.c (match_mergeable_specialization): Do not insert.
-       (add_mergeable_specialization): Add to hash table here.
-
-2021-03-06  Patrick Palka  <ppalka@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99287
-       * constexpr.c (cxx_eval_increment_expression): Pass lval when
-       evaluating the MODIFY_EXPR, and update 'mod' with the result of
-       this evaluation.  Check *non_constant_p afterwards.  For prefix
-       ops, just return 'mod'.
-
-2021-03-06  Patrick Palka  <ppalka@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/96330
-       * pt.c (tsubst_copy) <case TEMPLATE_ID_EXPR>: Rename local
-       variable 'fn' to 'tmpl'.  Handle a variable template-id by
-       calling lookup_template_variable.
-
-2021-03-06  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99365
-       * pt.c (unify) <case TEMPLATE_TYPE_PARM>: Pass targs as
-       outer_targs to do_auto_deduction.
-       (placeholder_type_constraint_dependent_p): Define.
-       (do_auto_deduction): When processing_template_decl != 0
-       and context is adc_unify and we have constraints, pretend the
-       constraints are satisfied instead of punting.  Otherwise don't
-       punt unless placeholder_type_constraint_dependent_p holds.
-       Add some clarifying sanity checks.  Add a hack to add missing
-       outermost template levels to outer_args before checking
-       satisfaction.  Don't substitute outer_targs into type if it's
-       already been done.
-
-2021-03-05  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/99374
-       * call.c (standard_conversion): When converting pointers to
-       member, don't return NULL when the bases are equivalent but
-       incomplete.
-
-2021-03-05  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/99120
-       * name-lookup.c (check_local_shadow): Check if the type of decl
-       is non-null before checking TYPE_PTR*.
-
-2021-03-05  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99245
-       * module.cc (module_state::write_cluster): Relax binding assert.
-
-2021-03-05  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99377
-       * pt.c (instantiate_decl): Call set_instantiating_module.
-
-2021-03-05  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/98118
-       * coroutines.cc (build_co_await): Use type_build_ctor_call()
-       to determine cases when a CTOR needs to be built.
-       (flatten_await_stmt): Likewise.
-       (morph_fn_to_coro): Likewise.
-
-2021-03-05  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/95616
-       * coroutines.cc (coro_diagnose_throwing_fn): New helper.
-       (coro_diagnose_throwing_final_aw_expr): New helper.
-       (build_co_await): Diagnose throwing final await expression
-       components.
-       (build_init_or_final_await): Diagnose a throwing promise
-       final_suspend() call.
-
-2021-03-05  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/95615
-       * coroutines.cc (struct param_info): Track parameter copies that need
-       a DTOR.
-       (coro_get_frame_dtor): New helper function factored from build_actor().
-       (build_actor_fn): Use coro_get_frame_dtor().
-       (morph_fn_to_coro): Track parameters that need DTORs on exception,
-       likewise the frame promise and the return object.  On exception, run the
-       DTORs for these, destroy the frame and then rethrow the exception.
-
-2021-03-05  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99389
-       * pt.c (instantiate_class_template_1): Set instantiating module
-       here.
-
-2021-03-05  Tobias Burnus  <tobias@codesourcery.com>
-
-       PR c/99137
-       * parser.c (cp_parser_oacc_clause_async): Reject comma expressions.
-
-2021-03-04  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/88146
-       PR c++/99362
-       * cvt.c (convert_to_void): Revert 2019-10-17 changes.  Clarify
-       comment.
-
-2021-03-04  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99170
-       * module.cc (class uintset): Delete.
-       (typedef attached_map_t): A hash map.
-       (attached_table): Use attached_map_t.  Adjust uses ...
-       (trees_out::decl_value, trees_in::decl_value): ... here ...
-       (trees_out::key_mergeable): ... here ...
-       (trees_in::key_mergeable): ... here ...
-       (maybe_attach_decl): ... here ...
-       (direct_import): ... and here.
-
-2021-03-04  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99170
-       * cp-tree.h
-       * lex.c (cxx_dup_lang_specific_decl): Adjust for module_attached_p
-       rename.
-       * module.cc (class pending_key): New.
-       (default_hash_traits<pending_key>): New specialization.
-       (pending_map_t): New typedef.
-       (pending_table): Replace old table.
-       (trees_out::lang_decl_bools): Adjust.
-       (trees_in::lang_decl_bools): Adjust.
-       (trees_in::install_entity): Drop pending member and specialization
-       handling.
-       (find_pending_key): New.
-       (depset::hash::fiund_dependencies): Use it.
-       (pendset_lazy_load): Delete.
-       (module_state::write_cluster): Don't count pendings here.  Bye
-       Duff's device-like thing.
-       (module_state::write_pendings): Reimplement.
-       (module_state::read_pendings): Reimplement.
-       (lazy_specializations_p): Delete.
-       (module_state::write): Adjust write_pendings call.
-       (lazy_load_pendings): New.
-       (lazy_load_specializations): Delete.
-       (lazy_load_members): Delete.
-       (init_modules): Adjust.
-       * name-lookup.c (maybe_lazily_declare): Call lazy_load_pendings
-       not lazy_load_members.
-       (note_pending_specializations): Delete.
-       (load_pending_specializations): Delete.
-       * name-lookup.h (BINDING_VECTR_PENDING_SPECIALIZATIONS_P): Delete.
-       (BINDING_VECTOR_PENDING_MEMBERS_P): Delete.
-       (BINDING_VECTR_PENDING_MEMBERS_P): Delete.
-       (note_pending_specializations): Delete.
-       (load_pending_specializations): Delete.
-       * pt.c (lookup_template_class_1): Call lazy_load_pendings not
-       lazy_load_specializations.
-       (instantiate_template_class_1): Likewise.
-       (instantiate_decl): Call lazy_load_pendings.
-       * typeck.c (complete_type): Likewise.
-
-2021-03-03  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99170
-       * module.cc (post_load_decls): New.
-       (lazy_snum, recursive_lazy): Move earlier.
-       (module_state::read_cluster): Push cloning onto post_load_decls.
-       (post_load_processing): New.  Do the cloning here.
-       (module_state::read_inits): Call post_load_processing.
-       (module_state::read_language): Likewise.
-       (lazy_load_binding, lazy_load_specializations): Likewise
-       (lazy_load_members): Likewise
-
-2021-03-03  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99170
-       * module.cc (trees_out::decl_value): Stream specialization keys
-       after decl.
-       (trees_in::decl_value): Stream them back and insert after
-       completing the decl.
-       (trees_out::key_mergeable): Drop some streaming here ...
-       (trees_in::key_mergeable): ... and here.  Don't insert into
-       specialization tables.
-
-2021-03-03  Patrick Palka  <ppalka@redhat.com>
-
-       * constraint.cc (struct sat_info): Document the different
-       meanings of noisy() and diagnose_unsatisfaction_p() during
-       satisfaction and requires-expression evaluation.
-       (tsubst_valid_expression_requirement): Take a sat_info instead
-       of a subst_info.  Perform the substitution quietly first.  Fold
-       in error-replaying code from diagnose_valid_expression.
-       (tsubst_simple_requirement): Take a sat_info instead of a
-       subst_info.
-       (tsubst_type_requirement_1): New.  Fold in error-replaying code
-       from diagnose_valid_type.
-       (tsubst_type_requirement): Use the above.  Take a sat_info
-       instead of a subst_info.
-       (tsubst_compound_requirement): Likewise.  Fold in
-       error-replaying code from diagnose_compound_requirement.
-       (tsubst_nested_requirement): Take a sat_info instead of a
-       subst_info.  Fold in error-replaying code from
-       diagnose_nested_requirement.
-       (tsubst_requirement): Take a sat_info instead of a subst_info.
-       (tsubst_requires_expr): Split into two versions, one that takes
-       a sat_info argument and another that takes a complain and
-       in_decl argument.  Remove outdated documentation.  Document the
-       effects of the sat_info argument.  Don't short-circuit
-       processing of requirements when diagnosing unsatisfaction,
-       mirroring diagnose_requires_expr.
-       (satisfy_nondeclaration_constraint) <case REQUIRES_EXPR>: Remove
-       assert, and se the three-parameter version of tsubst_requires_expr.
-       (diagnose_trait_expr): Make static.  Take a template argument
-       vector instead of a parameter mapping.
-       (diagnose_valid_expression): Remove.
-       (diagnose_valid_type): Remove.
-       (diagnose_simple_requirement): Remove.
-       (diagnose_compound_requirement): Remove.
-       (diagnose_type_requirement): Remove.
-       (diagnose_nested_requirement): Remove.
-       (diagnose_requirement): Remove.
-       (diagnose_requires_expr): Remove.
-       (diagnose_atomic_constraint): Take a sat_info instead of a
-       subst_info.  Adjust call to diagnose_trait_expr.  Call
-       tsubst_requires_expr instead of diagnose_requires_expr.
-       (diagnose_constraints): Remove special casing of REQUIRES_EXPR
-       and just always call constraint_satisfaction_value.
-
-2021-03-03  Patrick Palka  <ppalka@redhat.com>
-
-       * constexpr.c (cxx_eval_call_expression): Adjust call to
-       evaluate_concept_check.
-       (cxx_eval_constant_expression) <case REQUIRES_EXPR>: Use
-       evaluate_requires_expression instead of
-       satisfy_constraint_expression.
-       <case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
-       * constraint.cc (struct sat_info): Adjust comment about which
-       satisfaction entrypoints use noisy-unsat.
-       (normalize_template_requirements): Remove (and adjust callers
-       appropriately).
-       (normalize_nontemplate_requirements): Likewise.
-       (tsubst_nested_requirement): Use constraint_satisfaction_value
-       instead of satisfy_constraint_expression, which'll do the
-       noisy replaying of ill-formed quiet satisfaction for us.
-       (decl_satisfied_cache): Adjust comment.
-       (satisfy_constraint): Rename to ...
-       (satisfy_normalized_constraints): ... this.
-       (satisfy_associated_constraints): Remove (and make its
-       callers check for dependent arguments).
-       (satisfy_constraint_expression): Rename to ...
-       (satisfy_nondeclaration_constraints): ... this.  Assert that
-       'args' is empty when 't' is a concept-id.  Removing handling
-       bare constraint-expressions, and handle REQUIRES_EXPRs
-       specially.  Adjust comment accordingly.
-       (satisfy_declaration_constraints): Assert in the two-parameter
-       version that 't' is not a TEMPLATE_DECL.  Adjust following
-       removal of normalize_(non)?template_requirements and
-       satisfy_asociated_constraints.
-       (constraint_satisfaction_value): Combine the two- and
-       three-parameter versions in the natural way.
-       (constraints_satisfied_p): Combine the one- and two-parameter
-       versions in the natural way.  Improve documentation.
-       (evaluate_requires_expr): Define.
-       (evaluate_concept_check): Remove 'complain' parameter.  Use
-       constraint_satisfaction_value instead of
-       satisfy_constraint_expression.
-       (diagnose_nested_requirement): Adjust following renaming of
-       satisfy_constraint_expression.
-       (diagnose_constraints): Handle REQUIRES_EXPR by going through
-       diagnose_requires_expr directly instead of treating it as a
-       constraint-expression.  Improve documentation.
-       * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Adjust call
-       to evaluate_concept_check.
-       <case REQUIRES_EXPR>: Use evaluate_requires_expr instead of
-       constraints_satisfied_p.
-       <case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
-       * cp-tree.h (evaluate_requires_expr): Declare.
-       (evaluate_concept_check): Remove tsubst_flag_t parameter.
-       (satisfy_constraint_expression): Remove declaration.
-       (constraints_satisfied_p): Remove one-parameter declaration.
-       Add a default argument to the two-parameter declaration.
-       * cvt.c (convert_to_void): Adjust call to
-       evaluate_concept_check.
-
-2021-03-03  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/82959
-       * call.c (op_is_ordered): Handle TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR
-       and COMPOUND_EXPR.
-
-2021-03-03  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97034
-       PR c++/99009
-       * pt.c (build_deduction_guide): Use INNERMOST_TEMPLATE_ARGS.
-       (maybe_aggr_guide): Use the original template type where needed.  In
-       a class member template, partially instantiate the result of
-       collect_ctor_idx_types.
-       (do_class_deduction): Defer the deduction until the enclosing
-       scope is non-dependent.
-
-2021-03-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/95675
-       * call.c (build_temp): Wrap a CALL_EXPR in a TARGET_EXPR
-       if it didn't get one before.
-
-2021-03-03  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99344
-       * module.cc (trees_out::decl_node): Small refactor.
-       (depset::hash::add_binding_entity): Return true on meeting an
-       import.  Set namespace's import here.
-       (module_state:write_namespaces): Inform of purview too.
-       (module_state:read_namespaces): Adjust.
-       * name-lookup.c (implicitly_export_namespace): Delete.
-       (do_pushdecl): Don't call it.
-       (push_namespace): Likewise, set purview.
-       (add_imported_namespace): Reorder parms.
-       * name-lookup.h (add_imported_namespace): Alter param ordering.
-
-2021-03-02  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/99251
-       * class.c (build_base_path): Call build_if_nonnull.
-       * cp-tree.h (build_if_nonnull): Declare.
-       * rtti.c (ifnonnull): Rename...
-       (build_if_nonnull): ...to this.  Set no-warning bit on COND_EXPR.
-       (build_dynamic_cast_1): Adjust to name change.
-
-2021-03-02  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96443
-       PR c++/96960
-       * constraint.cc (type_deducible_p): Don't substitute into the
-       constraints, and instead just pass 'args' to do_auto_deduction
-       as the outer template arguments.
-       (tsubst_parameter_mapping): Remove confused code for handling
-       placeholder type arguments.
-       (normalize_placeholder_type_constraint): Define.
-       (satisfy_constraint_expression): Use it to handle placeholder
-       'auto' types.
-       * cp-tree.h (PLACEHOLDER_TYPE_CONSTRAINTS_INFO): Define.
-       (PLACEHOLDER_TYPE_CONSTRAINTS): Redefine in terms of the above.
-       * pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: Use
-       PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
-       (make_constrained_placeholder_type): Set
-       PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
-       (do_auto_deduction): Clarify comments about the outer_targs
-       parameter.  Rework satisfaction of a placeholder type constraint
-       to pass in the complete set of template arguments directly to
-       constraints_satisfied_p.
-       (splice_late_return_type): Use PLACEHOLDER_TYPE_CONSTRAINTS_INFO
-       instead.  Also rebuild the the constraint info on the new auto.
-
-2021-03-02  Patrick Palka  <ppalka@redhat.com>
-
-       * constraint.cc (build_parameter_mapping): Rely on the caller to
-       determine the in-scope template parameters.
-       (norm_info::norm_info): Delegate the tsubst_flags_t constructor
-       to the two-parameter constructor.  In the two-parameter
-       constructor, fold in the definition of make_context, set
-       initial_parms appropriately, and don't set the now-removed
-       orig_decl member.
-       (norm_info::make_context): Remove, now that its only use is
-       inlined into the caller.
-       (norm_info::update_context): Adjust call to
-       build_parameter_mapping to pass in the relevant set of in-scope
-       template parameters.
-       (norm_info::ctx_parms): Define this member function.
-       (norm_info::context): Initialize to NULL_TREE.
-       (norm_info::orig_decl): Remove this data member.
-       (norm_info::initial_parms): Define this data member.
-       (normalize_atom): Adjust call to build_parameter_mapping to pass
-       in the relevant set of in-scope template parameters.  Use
-       info.initial_parms instead of info.orig_decl.
-       (normalize_constraint_expression): Take a norm_info object
-       instead of a bool.  Cache the result of normalization.
-       (tsubst_nested_requirement): Call satisfy_constraint_expression
-       instead of satisfy_constraint, so that we normalize on demand.
-       (satisfy_constraint_expression): Handle a NESTED_REQ argument.
-       Adjust call to normalize_constraint_expression.
-       (finish_nested_requirement): Set the TREE_TYPE of the NESTED_REQ
-       to current_template_parms.
-       (diagnose_nested_requirements): Go through
-       satisfy_constraint_expression, as with tsubst_nested_requirement.
-
-2021-03-02  Patrick Palka  <ppalka@redhat.com>
-
-       * constraint.cc (tsubst_parameter_mapping): Canonicalize the
-       arguments of a substituted TYPE_ARGUMENT_PACK even if we've
-       started with a TYPE_ARGUMENT_PACK.
-       (finish_requires_expr): Don't set DECL_CONTEXT and
-       CONSTRAINT_VAR_P on each of the introduced parameters here.
-       * parser.c (cp_parser_requirement_parameter_list): Instead set
-       these fields earlier, here.
-       * pt.c (do_auto_deduction): Canonicalize the result of
-       do_auto_deduction.  Pass 'complain' to finish_decltype_type.
-
-2021-03-02  Patrick Palka  <ppalka@redhat.com>
-
-       * constraint.cc (tsubst_simple_requirement): Just return
-       boolean_true_node on success.
-       (tsubst_type_requirement): Likewise.
-       (tsubst_compound_requirement): Likewise.
-       (tsubst_nested_requirement): Likewise.
-       (tsubst_requirement_body): Remove.
-       (check_constaint_variables): Rename to ...
-       (check_constraint_variables): ... this.
-       (tsubst_constraint_variables): Adjust.
-       (tsubst_requires_expr): Fold tsubst_requirement_body into here.
-
-2021-03-01  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99294
-       * class.c (fixup_type_variants): Propagate mode, precision,
-       alignment & emptiness.
-       * module.cc (trees_out::type_node): Use TYPE_ALIGN_RAW.
-       (trees_in::tree_node): Rematerialize alignment here.
-
-2021-02-27  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90333
-       * parser.c (cp_parser_lambda_declarator_opt): Accept GNU attributes
-       between () and ->.
-
-2021-02-26  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_lambda_declarator_opt): Implement
-       P1102R2 - Down with ()! Make ()s optional before lambda specifiers
-       for -std={c,gnu}++2b or with pedwarn in earlier versions.
-
-2021-02-26  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/95451
-       * lambda.c (is_lambda_ignored_entity): Before checking for
-       LAMBDA_FUNCTION_P, use OVL_FIRST.  Drop FUNCTION_DECL check.
-
-2021-02-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98810
-       * pt.c (tsubst_copy) [VIEW_CONVERT_EXPR]: Add const
-       to a class non-type template argument that needs it.
-
-2021-02-26  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/98990
-       * pt.c (splice_late_return_type): Rebuild the entire return type
-       if we have to adjust the level of an auto within.
-       (type_uses_auto): Adjust call to find_type_usage.
-       * type-utils.h (find_type_usage): Revert r10-6571 change that
-       made this function return a pointer to the auto node.
-
-2021-02-25  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99213
-       PR c++/94521
-       * error.c (dump_scope): Pass TFF_NO_TEMPLATE_BINDINGS instead of
-       TFF_NO_FUNCTION_ARGUMENTS when dumping a function scope.
-
-2021-02-25  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/99103
-       * pt.c (is_spec_or_derived): Drop cv-qualifiers from 'etype'.
-       (maybe_aggr_guide): Fix order of arguments to is_spec_or_derived.
-
-2021-02-25  Marek Polacek  <polacek@redhat.com>
-
-       DR 1312
-       PR c++/99176
-       * constexpr.c (is_std_construct_at): New overload.
-       (is_std_allocator_allocate): New overload.
-       (cxx_eval_call_expression): Use the new overloads.
-       (cxx_eval_constant_expression): Reject casting
-       from void * as per DR 1312.  Don't check can_convert.
-
-2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/97587
-       * coroutines.cc (struct param_info): Track rvalue refs.
-       (morph_fn_to_coro): Track rvalue refs, and call the promise
-       CTOR with the frame copy of passed parms.
-
-2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/95822
-       * coroutines.cc (morph_fn_to_coro): Unconditionally remove any
-       set throwing_cleanup marker.
-
-2021-02-25  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99166
-       * module.cc (module_state::inform_cmi_p): Renamed field.
-       (module_state::do_import): Adjust.
-       (init_modules, finish_module_processing): Likewise.
-       (handle_module_option): Likewise.
-
-2021-02-25  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98318
-       * mapper-client.cc (module_client::open_module_client): Fix typo
-       of fd init.
-
-2021-02-24  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98718
-       * module.cc (ool): New indirection vector.
-       (loc_spans::maybe_propagate): Location is not optional.
-       (loc_spans::open): Likewise.  Assert monotonically advancing.
-       (module_for_ordinary_loc): Use ool indirection vector.
-       (module_state::write_prepare_maps): Do not count empty macro
-       expansions.  Elide empty spans.
-       (module_state::write_macro_maps): Skip empty expansions.
-       (ool_cmp): New qsort comparator.
-       (module_state::write): Create and destroy ool vector.
-       (name_pending_imports): Fix dump push/pop.
-       (preprocess_module): Likewise.  Add more dumping.
-       (preprocessed_module): Likewise.
-
-2021-02-24  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/96251
-       * coroutines.cc (coro_common_keyword_context_valid_p): Suppress
-       error reporting when instantiating for a constexpr.
-
-2021-02-23  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99208
-       * decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER
-       identity.
-
-2021-02-23  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/95468
-       * pt.c (tsubst_copy_and_build) <case BASELINK>: New case, copied
-       over from tsubst_copy.
-
-2021-02-23  Patrick Palka  <ppalka@redhat.com>
-
-       * pt.c (instantiation_dependent_expression_p): Check
-       processing_template_decl before calling
-       potential_constant_expression.
-
-2021-02-22  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99174
-       * module.cc (struct module_state): Add visited_p flag.
-       (name_pending_imports): Use it to avoid duplicate requests.
-       (preprocess_module): Don't read preprocessor state if we failed to
-       load a module's config.
-
-2021-02-22  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99153
-       * decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation
-       to common-path.
-       * module.cc (set_defining_module): Add assert.
-
-2021-02-19  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98741
-       * module.cc (pending_imports): New.
-       (declare_module): Adjust test condition.
-       (name_pending_imports): New.
-       (preprocess_module): Reimplement using pending_imports.
-       (preprocessed_module): Move name-getting to name_pending_imports.
-       * name-lookup.c (append_imported_binding_slot): Assert module
-       ordering is increasing.
-
-2021-02-19  Nathan Sidwell  <nathan@acm.org>
-
-       * module.cc (note_cmis): New.
-       (struct module_state): Add inform_read_p bit.
-       (module_state::do_import): Inform of CMI location, if enabled.
-       (init_modules): Canonicalize note_cmis entries.
-       (handle_module_option): Handle -flang-info-module-read=FOO.
-
-2021-02-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/96926
-       * call.c (perfect_conversion_p): Limit rvalueness
-       test to reference bindings.
-
-2021-02-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/96926
-       * call.c (perfect_conversion_p): New.
-       (perfect_candidate_p): New.
-       (add_candidates): Ignore templates after a perfect non-template.
-
-2021-02-18  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99023
-       * module.cc (canonicalize_header_name): Use
-       cpp_probe_header_unit.
-       (maybe_translate_include): Fix note_includes comparison.
-       (init_modules): Fix note_includes string termination.
-
-2021-02-18  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99132
-       * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Use
-       cp_get_callee_fndecl_nofold instead of cp_get_callee_fndecl to check
-       for immediate function calls.
-
-2021-02-17  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99023
-       * module.cc (struct macro_export): Add GTY markers.
-       (macro_exports): Likewise, us a va_gc Vector.
-
-2021-02-17  Jakub Jelinek  <jakub@redhat.com>
-
-       PR sanitizer/99106
-       * init.c (build_zero_init_1): For flexible array members just return
-       NULL_TREE instead of returning empty CONSTRUCTOR with non-complete
-       ARRAY_TYPE.
-
-2021-02-17  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99116
-       * name-lookup.c (do_pushdecl): Don't peek under template_parm
-       bindings here ...
-       (set_identifier_type_value_with_scope): ... or here.
-       (do_pushtag): Only set_identifier_type_value_with_scope at
-       non-class template parm scope, and use parent scope.
-
-2021-02-17  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99071
-       * name-lookup.c (maybe_record_mergeable_decl): Deref the correct
-       pointer.
-
-2021-02-17  Patrick Palka  <ppalka@redhat.com>
-
-       PR debug/96997
-       PR c++/94034
-       * tree.c (build_aggr_init_expr): Revert r10-7718 change.
-
-2021-02-12  Nathan Sidwell  <nathan@acm.org>
-
-       * module.cc (module_state::write_cluster): Check bindings for
-       imported using-decls.
-
-2021-02-12  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99040
-       * module.cc (trees_in::decl_value): Call add_module_namespace_decl
-       for new namespace-scope entities.
-       (module_state::read_cluster): Don't call add_module_decl here.
-       * name-lookup.h (add_module_decl): Rename to ...
-       (add_module_namespace_decl): ... this.
-       * name-lookup.c (newbinding_bookkeeping): Move into ...
-       (do_pushdecl): ... here.  Its only remaining caller.
-       (add_module_decl): Rename to ...
-       (add_module_namespace_decl): ... here.  Add checking-assert for
-       circularity. Don't call newbinding_bookkeeping, just extern_c
-       checking and incomplete var checking.
-
-2021-02-12  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99039
-       PR c++/99040
-       * cp-tree.h (CPTI_GLOBAL_TYPE): Delete.
-       (global_type_node): Delete.
-       (IDENTIFIER_TYPE_VALUE): Delete.
-       (IDENTIFIER_HAS_TYPE_VALUE): Delete.
-       (get_type_value): Delete.
-       * name-lookup.h (identifier_type_value): Delete.
-       * name-lookup.c (check_module_override): Don't
-       SET_IDENTIFIER_TYPE_VALUE here.
-       (do_pushdecl): Nor here.
-       (identifier_type_value_1, identifier_type_value): Delete.
-       (set_identifier_type_value_with_scope): Only
-       SET_IDENTIFIER_TYPE_VALUE for local and class scopes.
-       (pushdecl_nanmespace_level): Remove shadow stack nadgering.
-       (do_pushtag): Use REAL_IDENTIFIER_TYPE_VALUE.
-       * call.c (check_dtor_name): Use lookup_name.
-       * decl.c (cxx_init_decl_processing): Drop global_type_node.
-       * decl2.c (cplus_decl_attributes): Don't SET_IDENTIFIER_TYPE_VALUE
-       here.
-       * init.c (get_type_value): Delete.
-       * pt.c (instantiate_class_template_1): Don't call pushtag or
-       SET_IDENTIFIER_TYPE_VALUE here.
-       (tsubst): Assert never an identifier.
-       (dependent_type_p): Drop global_type_node assert.
-       * typeck.c (error_args_num): Don't use IDENTIFIER_HAS_TYPE_VALUE
-       to determine ctorness.
-
-2021-02-12  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/97742
-       * parser.c (cp_parser_requirement_seq): Stop iterating after reaching
-       CPP_EOF.
-
-2021-02-12  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97246
-       PR c++/94546
-       * pt.c (extract_fnparm_pack): Check DECL_PACK_P here.
-       (register_parameter_specializations): Not here.
-
-2021-02-11  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/95888
-       * pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking
-       for the partial instantiation.
-
-2021-02-11  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/99033
-       * init.c (build_zero_init_1): Handle zero initialiation of
-       flexible array members like initialization of [0] arrays.
-       Use integer_minus_onep instead of comparison to integer_minus_one_node
-       and integer_zerop instead of comparison against size_zero_node.
-       Formatting fixes.
-
-2021-02-11  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/99063
-       * semantics.c (finish_do_stmt): Check for unexpanded parameter packs.
-
-2021-02-11  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/97582
-       * name-lookup.c (op_unqualified_lookup): Handle an ambiguous
-       lookup result by discarding it if the first element is a
-       class-scope declaration, otherwise return it.
-       (push_operator_bindings): Handle an ambiguous lookup result by
-       doing push_local_binding on each element in the list.
-
-2021-02-11  Marek Polacek  <polacek@redhat.com>
-
-       * parser.c (cp_parser_selection_statement): Use vec_free.
-
-2021-02-10  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/98988
-       PR c++/99031
-       * constexpr.c: Include cgraph.h.
-       (cxx_eval_call_expression): Call varpool_node::finalize_decl on
-       heap artificial vars.
-       (cxx_eval_outermost_constant_expr): Remove varpool nodes for
-       heap artificial vars.
-
-2021-02-10  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/99030
-       * pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the
-       answer if there's no local specialization.
-
-2021-02-09  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98944
-       * module.cc (module_state::is_rooted): Rename to ...
-       (module_state::has_location): ... here.  Adjust callers.
-       (module_state::read_partitions): Adjust validity check.
-       Don't overwrite a known location.
-
-2021-02-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/96905
-       * pt.c (mark_decl_instantiated): Exit early if consteval.
-
-2021-02-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98326
-       PR c++/20408
-       * cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref
-       parm.
-
-2021-02-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98994
-       PR c++/97566
-       * constexpr.c (cxx_eval_store_expression): Only skip empty fields in
-       RECORD_TYPE.
-
-2021-02-08  Nathan Sidwell  <nathan@acm.org>
-
-       * decl.c (start_cleanup_fn): Push function into
-       namespace.
-
-2021-02-08  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98531
-       * cp-tree.h (push_abi_namespace, pop_abi_namespace): Declare.
-       * decl.c (push_abi_namespace, pop_abi_namespace): Moved
-       from rtti.c, add default namespace arg.
-       (check_redeclaration_exception_specification): Allow a lazy
-       builtin's eh spec to differ from an lready-declared user
-       declaration.
-       (declare_global_var): Use push/pop_abi_namespace.
-       (get_atexit_node): Push the fndecl into a namespace.
-       * rtti.c (push_abi_namespace, pop_abi_namespace): Moved to
-       decl.c.
-
-2021-02-08  Marek Polacek  <polacek@redhat.com>
-
-       * cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo.
-
-2021-02-05  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98947
-       * call.c (build_conditional_expr_1): Don't call mark_lvalue_use
-       on arg2/arg3.
-       * expr.c (mark_use) <case MODIFY_EXPR>: Don't check read_p when
-       issuing the -Wvolatile warning.  Only set TREE_THIS_VOLATILE if
-       a warning was emitted.
-
-2021-02-05  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/96462
-       * name-lookup.c (lookup_using_decl): Hoist the destructor check.
-
-2021-02-05  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/97878
-       * decl.c (check_array_initializer): For structured bindings, require
-       the array type to be complete.
-
-2021-02-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98717
-       * constraint.cc (build_concept_check_arguments): Remove assert.
-       (build_concept_check): Allow empty args.
-
-2021-02-04  Tom Greenslade (thomgree)  <thomgree@cisco.com>
-
-       PR c++/90926
-       * call.c (can_convert_array): Extend to handle all valid aggregate
-       initializers of an array; including by string literals, not just by
-       brace-init-list.
-       (build_aggr_conv): Call can_convert_array more often, not just in
-       brace-init-list case.
-       * typeck2.c (array_string_literal_compatible_p): New function.
-       (digest_init_r): call array_string_literal_compatible_p
-       * cp-tree.h: (array_string_literal_compatible_p): Declare.
-
-2021-02-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98802
-       * pt.c (do_class_deduction): No aggregate guide if any_dguides_p.
-
-2021-02-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/95192
-       * pt.c (tsubst_attribute): Handle error.
-       (apply_late_template_attributes): Return false on error.
-       (tsubst_function_decl): Check its return value.
-       (tsubst_decl): Likewise.
-       (push_template_decl): Assert current_template_parms.
-       (tsubst_template_decl): Set current_template_parms.
-
-2021-02-03  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98951
-       * call.c (struct z_candidate): Mark rewritten and reversed as const.
-       (struct NonPublicField): Mark operator() as const.
-       (struct NonTrivialField): Likewise.
-
-2021-02-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98926
-       PR c++/98570
-       * pt.c (spec_hasher::equal): Set processing_template_decl.
-       * Make-lang.in (check-g++-strict-gc): Add --param
-       hash-table-verification-limit=10000.
-
-2021-02-03  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98899
-       * parser.c (cp_parser_class_specifier_1): Use any possible
-       DEFPARSE_INSTANTIATIONS to update DEFERRED_NOEXCEPT_PATTERN.
-       (cp_parser_save_noexcept): Initialize DEFPARSE_INSTANTIATIONS.
-       * pt.c (tsubst_exception_specification): Stash new_specs into
-       DEFPARSE_INSTANTIATIONS.
-       * tree.c (fixup_deferred_exception_variants): Use
-       UNPARSED_NOEXCEPT_SPEC_P.
-
-2021-02-02  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98929
-       PR c++/96199
-       * error.c (dump_expr): Ignore dummy object.
-       * pt.c (tsubst_baselink): Handle dependent scope.
-
-2021-02-01  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/98295
-       * constexpr.c (cxx_eval_array_reference): Also set
-       new_ctx.object when setting new_ctx.ctor.
-
-2021-02-01  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98355
-       * parser.c (cp_parser_has_attribute_expression): Use
-       uses_template_parms instead of type_dependent_expression_p.
-
-2021-02-01  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98570
-       * cp-tree.h: Declare it.
-       * pt.c (comparing_dependent_aliases): New flag.
-       (template_args_equal, spec_hasher::equal): Set it.
-       (dependent_alias_template_spec_p): Assert that we don't
-       get non-types other than error_mark_node.
-       (instantiate_alias_template): SET_TYPE_STRUCTURAL_EQUALITY
-       on complex alias specializations.  Set TYPE_DEPENDENT_P here.
-       (tsubst_decl): Not here.
-       * module.cc (module_state::read_cluster): Set
-       comparing_dependent_aliases instead of
-       comparing_specializations.
-       * tree.c (cp_tree_equal): Remove comparing_specializations
-       module handling.
-       * typeck.c (structural_comptypes): Adjust.
-       (comptypes): Remove comparing_specializations handling.
-
-2021-01-29  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98843
-       * module.cc (module_state_config): Add num_entities field.
-       (module_state::read_entities): The entity_ary span is
-       already allocated.
-       (module_state::write_config): Write num_entities.
-       (module_state::read_config): Read num_entities.
-       (module_state::write): Set config's num_entities.
-       (module_state::read_initial): Allocate the entity ary
-       span here.
-       (module_state::read_language): Do not set entity_lwm
-       here.
-
-2021-01-29  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/96137
-       * parser.c (cp_parser_class_name): If parser->scope is
-       error_mark_node, return it, otherwise continue.
-
-2021-01-28  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/98841
-       * typeck.c (build_x_indirect_ref): For *this, return current_class_ref.
-
-2021-01-28  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/33661
-       PR c++/98847
-       * decl.c (cp_finish_decl): For register vars with asmspec in templates
-       call set_user_assembler_name and set DECL_HARD_REGISTER.
-       * pt.c (tsubst_expr): When instantiating DECL_HARD_REGISTER vars,
-       pass asmspec_tree to cp_finish_decl.
-
-2021-01-28  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98770
-       * module.cc (trees_out::decl_value): Swap is_typedef & TYPE_NAME
-       check order.
-       (trees_in::decl_value): Do typedef frobbing only when installing
-       a new typedef, adjust is_matching_decl call.  Swap is_typedef
-       & TYPE_NAME check.
-       (trees_in::is_matching_decl): Add is_typedef parm. Adjust variable
-       names and deal with typedef checking.
-
-2021-01-27  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97874
-       * name-lookup.c (lookup_using_decl): Clean up handling
-       of dependency and inherited constructors.
-       (finish_nonmember_using_decl): Handle DECL_DEPENDENT_P.
-       * pt.c (tsubst_expr): Handle DECL_DEPENDENT_P.
-
-2021-01-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97474
-       * call.c (type_passed_as): Don't mark invisiref restrict.
-
-2021-01-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97566
-       PR c++/98463
-       * class.c (layout_class_type): An empty field gets size 0.
-       (is_empty_field): New.
-       (check_bases): Check it.
-       * cp-tree.h (is_empty_field): Declare it.
-       * constexpr.c (cxx_eval_store_expression): Check it.
-       (cx_check_missing_mem_inits): Likewise.
-       * init.c (perform_member_init): Likewise.
-       * typeck2.c (process_init_constructor_record): Likewise.
-
-2021-01-25  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/98646
-       * cvt.c (cp_fold_convert): Propagate TREE_NO_WARNING.
-
-2021-01-25  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98463
-       * constexpr.c (get_or_insert_ctor_field): Add check.
-       (cxx_eval_store_expression): Handle discontinuity of refs.
-
-2021-01-23  Anthony Sharp  <anthonysharp15@gmail.com>
-
-       * call.c (complain_about_access): Altered function.
-       * cp-tree.h (complain_about_access): Changed parameters of function.
-       (get_parent_with_private_access): Declared new function.
-       * search.c (get_parent_with_private_access): Defined new function.
-       * semantics.c (enforce_access): Modified function.
-       * typeck.c (complain_about_unrecognized_member): Updated function
-       arguments in complain_about_access.
-
-2021-01-23  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/97399
-       * cp-tree.h (shared_member_p): Adjust declaration.
-       * parser.c (cp_parser_init_declarator): If the storage class
-       specifier is sc_static, pass true for static_p to
-       cp_parser_declarator.
-       (cp_parser_direct_declarator): Don't do inject_this_parm when
-       the declarator is a friend.
-       * search.c (shared_member_p): Change return type to bool and
-       adjust function body accordingly.  Return false for a dependent
-       USING_DECL instead of aborting.
-       * semantics.c (finish_qualified_id_expr): Rely on shared_member_p
-       even when type-dependent.
-
-2021-01-22  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/96623
-       * parser.c (inject_parm_decls): Remove a redundant assignment.
-       (cp_parser_class_specifier_1): Clear current_class_{ptr,ref}
-       before calling inject_parm_decls.
-
-2021-01-22  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98744
-       * call.c (make_base_init_ok): Use DECL_HAS_VTT_PARM_P.
-
-2021-01-22  Jakub Jelinek  <jakub@redhat.com>
-
-       PR sanitizer/95693
-       * init.c (build_zero_init_1): Revert the 2018-03-06 change to
-       return build_zero_cst for reference types.
-       * typeck2.c (process_init_constructor_record): Instead call
-       build_zero_cst here during error recovery instead of build_zero_init.
-
-2021-01-22  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98545
-       * mangle.c (write_member_name): Emit abi_warn_or_compat_version_crosses
-       warnings regardless of abi_version_at_least.
-       (write_expression): When the expression is a dependent name
-       and an operator name, write "on" before writing its name.
-
-2021-01-22  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97966
-       * pt.c (instantiate_class_template_1): Instantiate members
-       marked with attribute used only after we're done instantiating
-       the class.
-
-2021-01-21  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/71879
-       * semantics.c (finish_decltype_type): Set up a cp_unevaluated
-       sentinel at the start of the function.  Remove a now-redundant
-       manual adjustment of cp_unevaluated_operand.
-
-2021-01-21  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98624
-       * module.cc (depset::hash::find_dependencies): Add
-       module arg.
-       (trees_out::core_vals): Check state before calling
-       write_location.
-       (sort_cluster, module_state::write): Adjust
-       find_dependencies call.
-
-2021-01-21  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/98672
-       * constexpr.c (check_for_return_continue_data): Add break_stmt member.
-       (check_for_return_continue): Also look for BREAK_STMT.  Handle
-       SWITCH_STMT by ignoring break_stmt from its body.
-       (potential_constant_expression_1) <case FOR_STMT>,
-       <case WHILE_STMT>: If the condition isn't constant true, check if
-       the loop body can contain a return stmt.
-       <case SWITCH_STMT>: Adjust check_for_return_continue_data initializer.
-       <case IF_STMT>: If recursion with tf_none is successful,
-       merge *jump_target from the branches - returns with highest priority,
-       breaks or continues lower.  If then branch is potentially constant and
-       doesn't return, check the else branch if it could return, break or
-       continue.
-
-2021-01-21  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98530
-       * name-lookup.c (lookup_class_binding): Rearrange a stat-hack.
-
-2021-01-20  Nathan Sidwell  <nathan@acm.org>
-
-       * module.cc (bytes_in::i, bytes_in::wi): Avoid left shift of
-       signed type.
-
-2021-01-20  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/95434
-       * pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: If tsubsting
-       CLASS_PLACEHOLDER_TEMPLATE yields a TEMPLATE_TEMPLATE_PARM,
-       adjust to its TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.
-
-2021-01-20  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/82613
-       * parser.c (cp_parser_class_head): Defer access checking when
-       parsing the base-clause until all bases are seen and attached
-       to the class type.
-       * pt.c (instantiate_class_template): Likewise when substituting
-       into dependent bases.
-
-2021-01-20  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/98742
-       * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_DETACH>: If
-       error_operand_p, remove clause without further checking.  Check
-       for non-NULL TYPE_NAME.
-
-2021-01-19  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98659
-       * pt.c (maybe_instantiate_noexcept): Return false if FN is
-       error_mark_node.
-
-2021-01-19  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98687
-       * name-lookup.c (push_using_decl_bindings): New, broken out of...
-       (finish_nonmember_using_decl): ...here.
-       * name-lookup.h (push_using_decl_bindings): Update declaration.
-       * pt.c (tsubst_expr): Update the call to push_using_decl_bindings.
-
-2021-01-19  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/41437
-       PR c++/58993
-       * search.c (friend_accessible_p): If scope is a hidden friend
-       defined inside a dependent class, consider access from the
-       class.
-       * parser.c (cp_parser_late_parsing_for_member): Don't push a
-       dk_no_check access state.
-
-2021-01-19  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98333
-       * parser.c (cp_parser_class_specifier_1): Perform late-parsing
-       of NSDMIs before late-parsing of noexcept-specifiers.
-
-2021-01-19  Nathan Sidwell  <nathan@acm.org>
-
-       * module.cc (identifier): Merge overloads.
-
-2021-01-19  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98624
-       * module.cc (trees_out::write_location): Make static.
-
-2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
-
-       * parser.c (cp_parser_omp_clause_detach): New.
-       (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH.
-       (OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH.
-       * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
-       * semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
-       Prevent use of detach with mergeable and overriding the data sharing
-       mode of the event handle.
-
-2021-01-15  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98538
-       * tree.c (cp_build_qualified_type_real): Propagate an array's
-       dependentness to the copy, if known.
-
-2021-01-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/98642
-       * call.c (unsafe_return_slot_p): Return int.
-       (init_by_return_slot_p): Split out from...
-       (unsafe_copy_elision_p): ...here.
-       (unsafe_copy_elision_p_opt): New name for old meaning.
-       (build_over_call): Adjust.
-       (make_safe_copy_elision): New.
-       * typeck2.c (split_nonconstant_init_1): Elide copy from safe
-       list-initialization.
+       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.
 
-2021-01-15  Jason Merrill  <jason@redhat.com>
-
-       * call.c (base_ctor_for, make_base_init_ok): New.
-       (build_over_call): Use make_base_init_ok.
-
-2021-01-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/63707
-       * tree.c (build_vec_init_expr): Don't call build_vec_init_elt
-       if we got a CONSTRUCTOR.
-
-2021-01-15  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98591
-       * lang-specs.h: Fix handling of -fmodule-only with -fsyntax-only.
-
-2021-01-14  Jason Merrill  <jason@redhat.com>
-
-       * typeck2.c (process_init_constructor_record): Use fldtype
-       variable consistently.
-
-2021-01-14  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98372
-       * tree.c (cp_tree_equal): Correct map_context logic.
-
-2021-01-13  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98231
-       * name-lookup.c (push_using_decl_bindings): New.
-       * name-lookup.h (push_using_decl_bindings): Declare.
-       * pt.c (tsubst_expr): Call push_using_decl_bindings.
-
-2021-01-13  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98626
-       * module.cc (module_add_import_initializers):  Pass a
-       zero-element argument vector.
-
-2021-01-12  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/98611
-       * tree.c (cp_walk_subtrees) <case TEMPLATE_TYPE_PARM>: Visit
-       the template of a CTAD placeholder.
-
-2021-01-12  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/98620
-       * typeck2.c (process_init_constructor_record): Don't emit
-       -Wmissing-field-initializers warnings in unevaluated contexts.
-
-2021-01-11  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/98481
-       * class.c (find_abi_tags_r): Set *walk_subtrees to 2 instead of 1
-       for types.
-       (mark_abi_tags_r): Likewise.
-       * decl2.c (min_vis_r): Likewise.
-       * tree.c (cp_walk_subtrees): If *walk_subtrees_p is 2, look through
-       typedefs.
-
-2021-01-08  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/98551
-       * constexpr.c (cxx_eval_call_expression): Check CLASS_TYPE_P
-       instead of AGGREGATE_TYPE_P before calling replace_result_decl.
-
-2021-01-08  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/98515
-       * semantics.c (check_accessibility_of_qualified_id): Punt if
-       we're checking access of a scoped non-static member inside a
-       class template.
-
-2021-01-07  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/98329
-       * pt.c (tsubst_copy) <case BIT_CAST_EXPR>: Don't call
-       cp_build_bit_cast here, instead just build_min a BIT_CAST_EXPR and set
-       its location.
-       (tsubst_copy_and_build): Handle BIT_CAST_EXPR.
-
-2021-01-07  Marek Polacek  <polacek@redhat.com>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       PR c++/98441
-       * decl.c (grokdeclarator): Move the !funcdecl_p check inside the
-       !late_return_type block.
+       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.
 
-2021-01-07  Jason Merrill  <jason@redhat.com>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       * constexpr.c (cxx_bind_parameters_in_call): Add comment.
-       (cxx_eval_store_expression): Add comment.
+       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.
 
-2021-01-07  Jason Merrill  <jason@redhat.com>
+2022-01-07  Jason Merrill  <jason@redhat.com>
 
-       * call.c (has_next): Factor out from...
-       (next_conversion): ...here.
-       (strip_standard_conversion): And here.
-       (is_subseq): And here.
-       (build_conv): Check it.
-       (standard_conversion): Don't call build_conv
-       for ck_identity.
+       * init.c (build_new_1): Remove preevaluation code.
 
-2021-01-06  Martin Sebor  <msebor@redhat.com>
+2022-01-05  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/95768
-       * error.c (dump_expr): Call c_pretty_printer::unary_expression.
+       * pt.c (instantiate_class_template_1): Process attribute((used)) set
+       in class's context.
 
-2021-01-05  Patrick Palka  <ppalka@redhat.com>
+2022-01-05  Nathan Sidwell  <nathan@acm.org>
 
-       * pt.c (unify) <case TEMPLATE_PARM_INDEX>: After walking into
-       the type of the NTTP, substitute into the type again.  If the
-       type is still dependent, don't unify the NTTP.
+       * init.c (build_new_1): Check complain before alignment warning.
 
-2021-01-05  Jakub Jelinek  <jakub@redhat.com>
+2022-01-04  Jason Merrill  <jason@redhat.com>
 
-       * Make-lang.in (cc1plus-checksum, cc1plus$(exeext): Add
-       $(CODYLIB) after $(BACKEND).
+       * cp-tree.h (class releasing_vec): Add begin/end fns.
 
-2021-01-05  Jakub Jelinek  <jakub@redhat.com>
+2022-01-04  Jason Merrill  <jason@redhat.com>
 
-       PR c++/98469
-       * constexpr.c (cxx_eval_constant_expression) <case BIT_CAST_EXPR>:
-       Punt if lval is true.
-       * semantics.c (cp_build_bit_cast): Call get_target_expr_sfinae on
-       the result if it has a class type.
+       * init.c: Include -*- C++ -*- on first line.
 
-2021-01-05  Marek Polacek  <polacek@redhat.com>
+2022-01-03  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/82099
-       * pt.c (resolve_overloaded_unification): Call
-       maybe_instantiate_noexcept after instantiating the function
-       decl.
+       PR c++/103758
+       * parser.c (cp_parser_decl_specifier_seq): Replace %<decl-specifier%>
+       with %qD.
 
-2021-01-05  Nathan Sidwell  <nathan@acm.org>
+2022-01-03  Marek Polacek  <polacek@redhat.com>
 
-       * parser.c (cp_parser_module_declaration): Alter diagnostic
-       text to say where is permissable.
+       * parser.c (make_char_string_pack): Add a cast to const unsigned
+       char *.
 
-2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+2022-01-03  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/98316
-       * Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS).
+       PR c++/103600
+       * rtti.c (get_tinfo_decl_direct): Add "non overlapping" attribute
+       to DECL_TINFO_P VAR_DECLs.
 
-2021-01-02  Jan Hubicka  <jh@suse.cz>
+2022-01-02  Jason Merrill  <jason@redhat.com>
 
-       * cp-tree.h (cp_tree_c_finish_parsing): Declare.
-       * decl2.c (c_parse_final_cleanups): Call cp_tree_c_finish_parsing.
-       * tree.c (cp_tree_c_finish_parsing): New function.
+       * init.c (build_vec_init): Append the decrement to elt_init.
 
-2021-01-01  Jakub Jelinek  <jakub@redhat.com>
+2022-01-02  Jason Merrill  <jason@redhat.com>
 
-       * ChangeLog-2020: Rotate ChangeLog.  New file.
+       * decl.c (wrap_cleanups_r): Don't wrap if noexcept.
 
 \f
-Copyright (C) 2021 Free Software Foundation, Inc.
+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