]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/cp/ChangeLog
Daily bump.
[gcc.git] / gcc / cp / ChangeLog
index 6d5caf052f3d0a26d272e6eb2fe26c26b1bcfa6a..335018c64039998a694d1ca28551047db2daafa7 100644 (file)
-2020-12-04  Jason Merrill  <jason@redhat.com>
+2021-04-19  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/93083
-       * pt.c (convert_template_argument): Handle equivalent placeholders.
-       (do_class_deduction): Look through EXPR_PACK_EXPANSION, too.
+       PR c++/97536
+       * decl.c (grokvardecl): Given an error when a concept is not defined
+       at namespace scope.
 
-2020-12-04  Jason Merrill  <jason@redhat.com>
+2021-04-16  Jakub Jelinek  <jakub@redhat.com>
 
-       * decl2.c (clear_consteval_vfns): Remove *.
-       * pt.c (do_auto_deduction): Remove *.
-       * parser.c (cp_parser_late_parsing_default_args): Change loop
-       to use range 'for'.
+       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.
 
-2020-12-04  Nathan Sidwell  <nathan@acm.org>
+2021-04-16  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/98116
-       * cp-tree.h (comparing_typenames): Delete.
-       (cplus_build_array_type): Remove default parm.
-       * pt.c (comparing_typenames): Delete.
-       (spec_hasher::equal): Don't increment it.
-       * tree.c (set_array_type_canon): Remove dep parm.
-       (build_cplus_array_type): Remove dep parm changes.
-       (cp_build_qualified_type_real): Remove dependent array type
-       changes.
-       (strip_typedefs): Likewise.
-       * typeck.c (structural_comptypes): Revert comparing_typename
-       changes.
-
-2020-12-04  Nathan Sidwell  <nathan@acm.org>
+       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.
 
-       * cp-tree.h: Add various inline module state predicates, and
-       declare the API that will be provided by modules.cc
+2021-04-16  Patrick Palka  <ppalka@redhat.com>
 
-2020-12-04  Jakub Jelinek  <jakub@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.
 
-       PR c++/80780
-       * cp-gimplify.c (fold_builtin_source_location): Use 2 instead of 0
-       as last argument to cxx_printable_name.
+2021-04-16  Jakub Jelinek  <jakub@redhat.com>
 
-2020-12-03  Jason Merrill  <jason@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.
 
-       * cp-tree.h (releasing_vec::operator[]): Change parameter type to
-       ptrdiff_t.
+2021-04-16  Jakub Jelinek  <jakub@redhat.com>
 
-2020-12-03  Nathan Sidwell  <nathan@acm.org>
+       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.
 
-       * cp-tree.h (OVL_EXPORT): New.
-       (class ovl_iterator): Add get_using, exporting_p.
-       * tree.c (ovl_insert): Extend using_or_hidden meaning to include
-       an exported using.
+2021-04-16  Jason Merrill  <jason@redhat.com>
 
-2020-12-03  Nathan Sidwell  <nathan@acm.org>
+       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.
 
-       * cp-tree.h (DECL_UNINSTANTIATED_TEMPLATE_FRIEND): New.
-       * pt.c (push_template_decl): Set it.
-       (tsubst_friend_function): Clear it.
+2021-04-15  Jason Merrill  <jason@redhat.com>
 
-2020-12-03  Nathan Sidwell  <nathan@acm.org>
+       PR c++/80456
+       * call.c (build_new_method_call_1): Check again for side-effects
+       with a volatile object.
 
-       * cp-tree.h (make_unbound_class_template_raw): Declare.
-       (canonical_type_parameter): Declare.
-       * decl.c (make_unbound_class_template_raw): Break out of ...
-       (make_unboud_class_template): ... here.  Call it.
-       * pt.c (canonical_type_parameter): Externalize.  Refactor & set
-       structural_equality for type parms.
+2021-04-15  Jason Merrill  <jason@redhat.com>
 
-2020-12-03  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/98107
-       * tree.c (build_cplus_array_type): Mark dependency of new variant.
-       (cp_build_qualified_type_real, strip_typedefs): Assert
-       TYPE_DEPENDENT_P_VALID, or not a dependent type.
+       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.
 
-2020-12-03  Jakub Jelinek  <jakub@redhat.com>
+2021-04-15  Jason Merrill  <jason@redhat.com>
 
-       PR libstdc++/93121
-       * cp-tree.h (cp_build_bit_cast): Declare.
-       * cp-tree.def (BIT_CAST_EXPR): New tree code.
-       * cp-objcp-common.c (names_builtin_p): Handle RID_BUILTIN_BIT_CAST.
-       (cp_common_init_ts): Handle BIT_CAST_EXPR.
-       * cxx-pretty-print.c (cxx_pretty_printer::postfix_expression):
-       Likewise.
-       * parser.c (cp_parser_postfix_expression): Handle
-       RID_BUILTIN_BIT_CAST.
-       * semantics.c (cp_build_bit_cast): New function.
-       * tree.c (cp_tree_equal): Handle BIT_CAST_EXPR.
-       (cp_walk_subtrees): Likewise.
-       * pt.c (tsubst_copy): Likewise.
-       * constexpr.c (check_bit_cast_type, cxx_eval_bit_cast): New functions.
-       (cxx_eval_constant_expression): Handle BIT_CAST_EXPR.
-       (potential_constant_expression_1): Likewise.
-       * cp-gimplify.c (cp_genericize_r): Likewise.
-
-2020-12-03  Jason Merrill  <jason@redhat.com>
-
-       * parser.c (cp_parser_primary_expression): Distinguish
-       parms from vars in error.
-       (cp_parser_late_parsing_default_args): Pushdecl parms
-       as we go.
+       PR c++/100091
+       PR c++/99478
+       * parser.c (cp_parser_default_type_template_argument): Set
+       parser->local_variables_forbidden_p.
 
-2020-12-03  Jason Merrill  <jason@redhat.com>
+2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
 
-       * name-lookup.c (begin_scope): Set immediate_fn_ctx_p.
-       * parser.c (cp_parser_late_parsing_default_args): Push
-       sk_function_parms scope.
+       PR c++/98852
+       * typeck.c (merge_type_attributes_from): New function.
+       (cp_common_type): Use it for vector types.
 
-2020-12-03  Peter Bergner  <bergner@linux.ibm.com>
-
-       PR c++/97947
-       * typeck2.c (digest_init_r): Handle OPAQUE_TYPE as an aggregate type.
-
-2020-12-02  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/80780
-       PR c++/93093
-       * cp-tree.h (source_location_current_p): Declare.
-       * tree.c (source_location_current_p): New function.
-       * call.c (immediate_invocation_p): New function.
-       (build_over_call): Use it to resolve LWG3396.
-       * constexpr.c (cxx_eval_builtin_function_call): Temporarily set
-       current_function_decl from ctx->call->fundef->decl if any.
-       * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Fold calls
-       to immediate function std::source_location::current ().
-
-2020-12-02  Jason Merrill  <jason@redhat.com>
-
-       * decl.c (grokdeclarator): Improve diagnostic for
-       disallowed CTAD placeholder.
-
-2020-12-02  Jason Merrill  <jason@redhat.com>
-
-       * decl.c (check_initializer): Also look through STMT_EXPR
-       and BIND_EXPR.
-
-2020-12-02  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (comparing_typenames): Declare.
-       * pt.c (comparing_typenames): Define.
-       (spec_hasher::equal): Increment it around comparisons.
-       * typeck.c (structural_comptypes): Adjust TYPENAME resolution
-       check.
-
-2020-12-02  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97975
-       * constexpr.c (fold_non_dependent_init): Add a tree parameter.
-       Use it.
-       * cp-tree.h (fold_non_dependent_init): Add a tree parameter with
-       a default value.
-       * typeck2.c (store_init_value): Call fold_non_dependent_expr
-       only when checking the initializer for constexpr variables.
-       Call fold_non_dependent_init instead of maybe_constant_init.
-
-2020-12-02  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97187
-       PR c++/97993
-       * pt.c (tsubst_copy_and_build) <case NEW_EXPR>: Return error_mark_node
-       if init is erroneous.
-
-2020-12-02  Nathan Sidwell  <nathan@acm.org>
+2021-04-14  Jason Merrill  <jason@redhat.com>
 
-       * cp-tree.h (DECL_MODULE_PURVIEW_P, DECL_MODULE_IMPORT_P)
-       (DECL_MODULE_ENTITY_P): New.
-       (DECL_MODULE_PENDING_SPECIALIZATIONS_P): New.
-       (DECL_MODULE_PENDING_MEMBERS_P): New.
-       (DECL_MODULE_ATTACHMENTS_P): New.
-       (DECL_MODULE_EXPORT_P): New.
-       (struct lang_decl_base): Shrink sel field.  Add new
-       module-specific fields.
+       PR c++/100078
+       PR c++/93085
+       * pt.c (uses_outer_template_parms): Also look at default
+       template argument.
 
-2020-12-02  Nathan Sidwell  <nathan@acm.org>
+2021-04-14  Jason Merrill  <jason@redhat.com>
 
-       * cp-tree.h (DECL_TINFO_P): Also for TYPE_DECLs.
-       (get_tinfo_decl_direct): Declare.
-       (get_pseudo_tinfo_index, get_pseudo_tinfo_type): Declare.
-       * rtti.c (get_tinfo_decl_direct): Externalize.
-       (get_tinfo_desc): Set DECL_TINFO_P on the typedef.
-       (get_pseudo_tinfo_index, get_pseudo_tinfo_type): New.
-
-2020-12-02  Nathan Sidwell  <nathan@acm.org>
+       PR c++/93314
+       * semantics.c (finish_id_expression_1): Clear cp_unevaluated_operand
+       for a non-static data member in a constant-expression.
 
-       * cp-tree.h (maybe_add_lang_decl_raw, maybe_add_lang_type_raw):
-       Declare.
-       * lex.c (maybe_add_lang_decl_raw, maybe_add_lang_type_raw):
-       Externalize, reformat.
+2021-04-14  Patrick Palka  <ppalka@redhat.com>
 
-2020-12-02  Nathan Sidwell  <nathan@acm.org>
+       PR c++/83476
+       PR c++/99885
+       * pt.c (deducible_expression): Look through implicit
+       INDIRECT_REFs as well.
 
-       * cp-tree.h (build_cplus_array_type): Add defaulted DEP parm.
-       * tree.c (set_array_type_common): Add DEP parm.
-       (build_cplus_array_type): Add DEP parm, determine dependency if
-       needed.
-       (cp_build_qualified_type_real): Adjust array-building call.
-       (strip_typedefs): Likewise.
+2021-04-14  Jason Merrill  <jason@redhat.com>
 
-2020-12-02  Nathan Sidwell  <nathan@acm.org>
+       PR c++/99478
+       * parser.c (cp_parser_lambda_expression): Reject lambda
+       in template parameter type.
 
-       * ptree.c (cxx_print_xnode): Increase binding-vector prefix size.
+2021-04-14  Jason Merrill  <jason@redhat.com>
 
-2020-12-02  Nathan Sidwell  <nathan@acm.org>
+       PR c++/90674
+       * decl.c (duplicate_decls): Don't propagate
+       DECL_INITIALIZED_IN_CLASS_P to a specialization.
 
-       * cp-tree.def (BINDING_VECTOR): New.
-       * name-lookup.h (struct binding_slot): New.
-       (BINDING_VECTOR_SLOTS_PER_CLUSTER): New.
-       (struct binding_index, struct binding_cluster): New.
-       (BINDING_VECTOR_ALLOC_CLUSTERS, BINDING_VECTOR_CLUSTER_BASE)
-       (BINDING_VECTOR_CLUSTER): New.
-       (struct tree_binding_vec): New.
-       (BINDING_VECTOR_NAME, BINDING_VECTOR_GLOBAL_DUPS_P)
-       (BINDING_VECTOR_PARTITION_DUPS_P): New.
-       (BINDING_BINDING_GLOBAL_P, BINDING_BINDING_PARTITION_P): New.
-       (BINDING_VECTOR_PENDING_SPECIALIZATIONS)
-       (BINDING_VECTOR_PENDING_IS_HEADER_P)
-       (BINDING_VECTOR_PENDING_IS_PARTITION_P): New.
-       * cp-tree.h (enum cp_tree_node_structure_enum): Add
-       TS_CP_BINDING_VECTOR.
-       (union lang_tree_node): Add binding_vec field.
-       (make_binding_vec): Declare.
-       (named_decl_hash::hash, named_decl_hash::equal): Check for binding
-       vector.
-       * decl.c (cp_tree_node_structure): Add BINDING_VECTOR case.
-       * ptree.c (cxx_print_xnode): Add BINDING_VECTOR case.
-       * tree.c (make_binding_vec): New.
+2021-04-14  Jason Merrill  <jason@redhat.com>
 
-2020-12-01  Ville Voutilainen  <ville.voutilainen@gmail.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.
 
-       PR c++/98054
-       * cxx-pretty-print.c (pp_cxx_trait_expression):
-       Add support for __is_nothrow_{assignable,constructible}.
+2021-04-13  Jason Merrill  <jason@redhat.com>
 
-2020-12-01  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/100032
+       * pt.c (get_underlying_template): Compare TYPE_QUALS.
 
-       PR c++/98072
-       * parser.c (cp_parser_omp_depobj): Suppress location wrappers when
-       parsing depend clause.
+2021-04-13  Jason Merrill  <jason@redhat.com>
 
-2020-12-01  Nathan Sidwell  <nathan@acm.org>
-
-       * lex.c (init_reswords): Maybe enable module keywords.
-
-2020-12-01  Nathan Sidwell  <nathan@acm.org>
-
-       * lang-specs.h: Add module-related options.
-
-2020-12-01  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * parser.c (cp_parser_declaration): Add a not about where
-       attributes may be placed.
-
-2020-11-27  Martin Sebor  <msebor@redhat.com>
-
-       * error.c (add_quotes): Revert previous change and use pragma to
-       suppress -Wformat-diag.
-
-2020-11-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-       * g++spec.c (TIMELIB, TIME_LIBRARY): Remove.
-       (lang_specific_driver): Remove TIME_LIBRARY handling.
-
-2020-11-26  Thomas Schwinge  <thomas@codesourcery.com>
-
-       * parser.c (cp_parser_omp_var_list_no_open): Assert that array
-       section's 'low_bound', 'length' are not location wrapper nodes.
-       (cp_parser_oacc_all_clauses, cp_parser_oacc_cache): Instantiate
-       'auto_suppress_location_wrappers'.
-
-2020-11-25  Martin Sebor  <msebor@redhat.com>
-
-       PR bootstrap/94982
-       * constraint.cc (debug_argument_list): Avoid -Wformat-diag.
-       * error.c (function_category): Same.
-       (print_template_differences): Same.
-       * logic.cc (debug): Same.
-       * name-lookup.c (lookup_using_decl): Same.
-       * parser.c (maybe_add_cast_fixit): Same.
-       (cp_parser_template_introduction): Same.
-       * typeck.c (access_failure_info::add_fixit_hint): Same.
-
-2020-11-25  Thomas Schwinge  <thomas@codesourcery.com>
-
-       * pt.c (tsubst_omp_clauses): Handle 'OMP_CLAUSE__CACHE_'.
-       (tsubst_expr): Handle 'OACC_CACHE'.
-
-2020-11-24  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97899
-       * typeck2.c (store_init_value): Don't split_nonconstant_init in a
-       template.
+       PR c++/100054
+       PR c++/90479
+       * init.c (get_nsdmi): Do more context adjustment for local classes.
 
-2020-11-24  Jakub Jelinek  <jakub@redhat.com>
+2021-04-13  Patrick Palka  <ppalka@redhat.com>
 
-       PR tree-optimization/96929
-       * constexpr.c (cxx_eval_binary_expression): For shifts by constant
-       with MSB set, emulate older wide_int_binop behavior to preserve
-       diagnostics and -fpermissive behavior.
+       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.
 
-2020-11-23  Nathan Sidwell  <nathan@acm.org>
+2021-04-13  Jason Merrill  <jason@redhat.com>
 
-       * module.cc: New dummy file.
-       * Make-lang.in: Add rules to build module.o
+       PR c++/91933
+       * class.c (build_base_path): Shortcut simple non-pointer case.
 
-2020-11-23  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+2021-04-13  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * decl.c (start_decl): Set DECL_INITIAL for initialized decls
-       before attribute processing.
+       * module.cc (ordinary_loc_of): Test LINEMAPS_MACRO_LOWEST_LOCATION
+       of the linemap.
+       (module_state::write_location): Likewise.
 
-2020-11-23  Richard Sandiford  <richard.sandiford@arm.com>
+2021-04-13  Patrick Palka  <ppalka@redhat.com>
 
-       PR c++/97904
-       * pt.c (tsubst): Use verify_type_context to check the type
-       of an array element.
+       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.
 
-2020-11-21  Marek Polacek  <polacek@redhat.com>
+2021-04-13  Patrick Palka  <ppalka@redhat.com>
 
-       PR c++/94695
-       * parser.c (warn_for_range_copy): Warn when the loop variable is
-       initialized with a value of a different type resulting in a copy.
+       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.
 
-2020-11-21  Marek Polacek  <polacek@redhat.com>
+2021-04-12  Jason Merrill  <jason@redhat.com>
 
-       PR c++/97846
-       * constexpr.c (potential_constant_expression_1): Reject
-       LABEL_EXPRs that use non-artifical LABEL_DECLs.
+       PR c++/93085
+       * pt.c (uses_outer_template_parms): Handle non-type and template
+       template parameters specifically.
 
-2020-11-21  Marek Polacek  <polacek@redhat.com>
+2021-04-11  Jason Merrill  <jason@redhat.com>
 
-       PR c++/97881
-       * parser.c (warn_about_ambiguous_parse): Only assume "int" if we
-       actually saw any type-specifiers.
+       PR c++/97974
+       * decl.c (fixup_anonymous_aggr): Prune all functions from
+       CLASSTYPE_MEMBER_VEC.
 
-2020-11-21  Marek Polacek  <polacek@redhat.com>
+2021-04-10  Jason Merrill  <jason@redhat.com>
 
-       PR c++/97839
-       * parser.c (cp_parser_lambda_declarator_opt): Don't require ().
+       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.
 
-2020-11-21  Marek Polacek  <polacek@redhat.com>
+2021-04-10  Jason Merrill  <jason@redhat.com>
 
-       PR c++/97427
-       * constexpr.c (cxx_set_object_constness): New function.
-       (cxx_eval_call_expression): Set new_obj for destructors too.
-       Call cxx_set_object_constness to set/unset TREE_READONLY of
-       the object under construction/destruction.
+       PR c++/99180
+       PR c++/93295
+       PR c++/93867
+       PR c++/99118
+       PR c++/96873
+       * pt.c (alias_ctad_tweaks): Handle failure better.
 
-2020-11-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
+2021-04-10  Jason Merrill  <jason@redhat.com>
 
-       * error.c (dump_type): Handle opaque types.
-       (dump_type_prefix): Handle opaque types.
-       (dump_type_suffix): Handle opaque types.
-       (dump_expr): Handle opaque types.
-       * pt.c (tsubst): Allow opaque types in templates.
-       (unify): Allow opaque types in templates.
-       * typeck.c (structural_comptypes): Handle comparison
-       of opaque types.
+       PR c++/100006
+       * pt.c (find_parameter_packs_r) [TAG_DEFN]: Look into bases.
 
-2020-11-20  Jakub Jelinek  <jakub@redhat.com>
+2021-04-09  Patrick Palka  <ppalka@redhat.com>
 
-       PR other/97911
-       * Make-lang.in (c++.serial): Change from goal to a variable.
-       (.PHONY): Drop c++.serial and c++.prev.
-       (cc1plus$(exeext)): Depend on $(c++.serial) rather than c++.serial.
+       * 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.
 
-2020-11-19  Nathan Sidwell  <nathan@acm.org>
+2021-04-07  Jason Merrill  <jason@redhat.com>
 
-       * cp-tree.h (struct spec_entry): Moved from pt.c.
-       (walk_specializations, match_mergeable_specialization)
-       (get_mergeable_specialization_flags)
-       (add_mergeable_specialization): Declare.
-       * pt.c (struct spec_entry): Moved to cp-tree.h.
-       (walk_specializations, match_mergeable_specialization)
-       (get_mergeable_specialization_flags)
-       (add_mergeable_specialization): New.
+       PR c++/41723
+       * parser.c (cp_parser_class_name): Check dependent_scope_p.
 
-2020-11-19  Nathan Sidwell  <nathan@acm.org>
+2021-04-07  Jason Merrill  <jason@redhat.com>
 
-       * cp-tree.h (struct constexpr_fundef): Moved from constexpr.c.
-       (maybe_save_constexpr_fundef): Declare.
-       (register_constexpr_fundef): Take constexpr_fundef object, return
-       void.
-       * decl.c (mabe_save_function_definition): Delete, functionality
-       moved to maybe_save_constexpr_fundef.
-       (emit_coro_helper, finish_function): Adjust.
-       * constexpr.c (struct constexpr_fundef): Moved to cp-tree.h.
-       (constexpr_fundef_hasher::equal): Constify.
-       (constexpr_fundef_hasher::hash): Constify.
-       (retrieve_constexpr_fundef): Make non-static.
-       (maybe_save_constexpr_fundef): Break out checking and duplication
-       from ...
-       (register_constexpr_fundef): ... here.  Just register the constexpr.
+       PR c++/52625
+       * pt.c (maybe_process_partial_specialization): Check
+       DECL_SELF_REFERENCE_P.
 
-2020-11-19  Marek Polacek  <polacek@redhat.com>
+2021-04-07  Jason Merrill  <jason@redhat.com>
 
-       PR c++/97523
-       * init.c (build_new): When value-initializing an array new,
-       leave the INIT as an empty vector.
+       PR c++/92918
+       * name-lookup.c (push_class_level_binding_1): Do overload a new
+       function with a previous using-declaration.
 
-2020-11-19  Marek Polacek  <polacek@redhat.com>
+2021-04-06  Jason Merrill  <jason@redhat.com>
 
-       PR c++/97895
-       * pt.c (do_auto_deduction): Don't crash when the constructor has
-       zero elements.
+       PR c++/96673
+       * init.c (get_nsdmi): Don't defer access checking.
 
-2020-11-19  Nathan Sidwell  <nathan@acm.org>
+2021-04-06  Jason Merrill  <jason@redhat.com>
 
-       PR c++/97905
-       * decl.c (duplicate_decls): Relax new assert.
+       PR c++/99901
+       * decl.c (cp_finish_decl): mark_needed an implicitly inline
+       static data member with an out-of-class redeclaration.
 
-2020-11-18  Iain Sandoe  <iain@sandoe.co.uk>
+2021-04-06  Jason Merrill  <jason@redhat.com>
 
-       * parser.c (cp_parser_objc_valid_prefix_attributes): Check
-       for empty attributes.
+       PR c++/91241
+       * mangle.c (write_compact_number): Add sanity check.
+       (write_local_name): Use list_length for parm number.
 
-2020-11-18  Jakub Jelinek  <jakub@redhat.com>
+2021-04-06  Patrick Palka  <ppalka@redhat.com>
 
-       * Make-lang.in (c++.serial): New goal.
-       (.PHONY): Add c++.serial c++.prev.
-       (cc1plus$(exeext)): Depend on c++.prev.  Call LINK_PROGRESS.
+       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.
 
-2020-11-17  Nathan Sidwell  <nathan@acm.org>
+2021-04-05  Jason Merrill  <jason@redhat.com>
 
-       PR c++/97877
-       * decl.c (duplicate_decls): Deal with duplicated DECL_LOCAL_DECL_P
-       decls.  Extend decl_lang_specific checking assert.
+       PR c++/96311
+       * typeck.c (check_return_expr): Call mark_exp_read in dependent
+       case.
 
-2020-11-17  Nathan Sidwell  <nathan@acm.org>
+2021-04-05  Jason Merrill  <jason@redhat.com>
 
-       * cp-tree.h (enum cp_tree_index): Reorder to place lazy fields
-       after newly-added CPTI_MODULE_HWM.
+       PR c++/98440
+       * typeck.c (build_reinterpret_cast_1): Don't perform
+       temporary materialization.
 
-2020-11-17  Iain Sandoe  <iain@sandoe.co.uk>
+2021-04-05  Jason Merrill  <jason@redhat.com>
 
-       PR c++/97871
-       * parser.c (cp_parser_declaration): Remove checking assert.
-
-2020-11-15  Jason Merrill  <jason@redhat.com>
+       PR c++/95317
+       * pt.c (lookup_template_class_1): Do tsubst_enum when
+       tsubsting a generic lambda.
 
-       * decl.c (cp_finish_decl): Only check abstractness on definition.
-       (require_complete_types_for_parms): Check abstractness here.
-       (create_array_type_for_decl): Not here.
-       (grokdeclarator, grokparms, complete_vars): Not here.
-       * pt.c (tsubst, tsubst_arg_types, tsubst_function_type): Not here.
-       * typeck2.c (struct pending_abstract_type): Remove.
-       (struct abstract_type_hasher): Remove.
-       (abstract_pending_vars, complete_type_check_abstract): Remove.
-       (abstract_virtuals_error_sfinae): Handle arrays.
-       * call.c (conv_is_prvalue): Split out from...
-       (conv_binds_ref_to_prvalue): ...here.
-       (implicit_conversion_1): Rename from implicit_conversion.
-       (implicit_conversion): An abstract prvalue is bad.
-       (convert_like_internal): Don't complain if expr is already
-       error_mark_node.
+2021-04-05  Jason Merrill  <jason@redhat.com>
 
-2020-11-13  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.
 
-       * cp-tree.h (USING_DECL_UNRELATED_P): New.
-       (CONST_DECL_USING_P): New.
-       * class.c (handle_using_decl): If USING_DECL_UNRELATED_P,
-       clone the CONST_DECL.
-       * name-lookup.c (supplement_binding_1): A clone hides its
-       using-declaration.
-       (lookup_using_decl): Rewrite to separate lookup and validation.
-       (do_class_using_decl): Adjust.
-       (finish_nonmember_using_decl): Adjust.
-       * parser.c (make_location): Add cp_token overload.
-       (finish_using_decl): Split out from...
-       (cp_parser_using_declaration): ...here.  Don't look through enums.
-       (cp_parser_using_enum): New.
-       (cp_parser_block_declaration): Call it.
-       (cp_parser_member_declaration): Call it.
-       * semantics.c (finish_id_expression_1): Handle enumerator
-       used from class scope.
+2021-04-05  Nathan Sidwell  <nathan@acm.org>
 
-2020-11-13  Vladimir N. Makarov  <vmakarov@redhat.com>
+       PR c++/99380
+       * module.cc (name_pending_imports): Drop 'atend' parm.  Don't
+       query export when not needed.
+       (preprocess_module, preprocessed_module): Adjust.
 
-       * parser.c (cp_parser_asm_definition): Parse outputs for asm
-       goto too.
+2021-04-05  Jason Merrill  <jason@redhat.com>
 
-2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>
+       PR c++/99066
+       * pt.c (mark_decl_instantiated): Set DECL_EXTERNAL.
 
-       PR objc/77404
-       * parser.c (cp_parser_objc_class_interface): Pass the
-       location of the class name to the interface declaration.
+2021-04-05  Jason Merrill  <jason@redhat.com>
 
-2020-11-13  Patrick Palka  <ppalka@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.
 
-       * semantics.c (finish_compound_literal): Don't wrap the original
-       compound literal in a TARGET_EXPR when inside a template.
+2021-04-05  Jason Merrill  <jason@redhat.com>
 
-2020-11-12  Jakub Jelinek  <jakub@redhat.com>
+       * ptree.c (cxx_print_decl): Check DECL_MODULE_IMPORT_P on
+       template result.
 
-       PR c++/97790
-       * constexpr.c (cxx_eval_constant_expression) <case CLEANUP_POINT_EXPR,
-       case TRY_FINALLY_EXPR, case CLEANUP_STMT>: Don't pass jump_target to
-       cxx_eval_constant_expression when evaluating the cleanups.
+2021-04-04  Jason Merrill  <jason@redhat.com>
 
-2020-11-11  Iain Sandoe  <iain@sandoe.co.uk>
+       PR c++/99643
+       * typeck2.c (massage_init_elt): Don't strip TARGET_EXPR.
 
-       * parser.c (cp_parser_declaration): Unless we are compiling for
-       Ojective-C++, warn about and discard any attributes that prefix
-       a linkage specification.
+2021-04-03  Marek Polacek  <polacek@redhat.com>
 
-2020-11-11  Patrick Palka  <ppalka@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.
 
-       PR c++/88115
-       * mangle.c (write_expression): Mangle __alignof_ differently
-       from alignof when the ABI version is at least 15.
+2021-04-03  Jason Merrill  <jason@redhat.com>
 
-2020-11-11  Patrick Palka  <ppalka@redhat.com>
+       PR c++/91217
+       * pt.c (tsubst_lambda_expr): Skip the body block from
+       DECL_SAVED_TREE.
 
-       PR c++/88115
-       * cp-tree.h (cxx_sizeof_or_alignof_expr): Add bool parameter.
-       * decl.c (fold_sizeof_expr): Pass false to
-       cxx_sizeof_or_alignof_expr.
-       * parser.c (cp_parser_unary_expression): Pass std_alignof to
-       cxx_sizeof_or_alignof_expr.
-       * pt.c (tsubst_copy): Pass false to cxx_sizeof_or_alignof_expr.
-       (tsubst_copy_and_build): Pass std_alignof to
-       cxx_sizeof_or_alignof_expr.
-       * typeck.c (cxx_alignof_expr): Add std_alignof bool parameter
-       and pass it to cxx_sizeof_or_alignof_type.  Set ALIGNOF_EXPR_STD_P
-       appropriately.
-       (cxx_sizeof_or_alignof_expr): Add std_alignof bool parameter
-       and pass it to cxx_alignof_expr.  Assert op is either
-       SIZEOF_EXPR or ALIGNOF_EXPR.
-
-2020-11-11  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97518
-       * pt.c (tsubst_qualified_id): Use EXPR_LOCATION of the qualified-id.
-       Use it to maybe_wrap_with_location the final expression.
-
-2020-11-10  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97518
-       * cp-tree.h (finish_static_assert): Adjust declaration.
-       * parser.c (cp_parser_static_assert): Pass false to
-       finish_static_assert.
-       * pt.c (tsubst_expr): Pass true to finish_static_assert.
-       * semantics.c (find_failing_clause_r): New function.
-       (find_failing_clause): New function.
-       (finish_static_assert): Add a bool parameter.  Use
-       iloc_sentinel.  Call contextual_conv_bool instead of
-       perform_implicit_conversion_flags.  Don't check for INTEGER_CST before
-       calling integer_zerop.  Call find_failing_clause and maybe use its
-       location.  Print the original condition or the failing clause if
-       SHOW_EXPR_P.
-
-2020-11-10  Strager Neds  <strager.nds@gmail.com>
-
-       * decl.c (duplicate_decls): Use new overload of
-       set_decl_section_name.
-       * method.c (use_thunk): Same.
-       * optimize.c (maybe_clone_body): Same.
-       * coroutines.cc (act_des_fn): Same.
-
-2020-11-10  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c/97748
-       * cvt.c (convert_to_void): Check (complain & tf_warning) in the outer
-       if rather than twice times in the inner one.  Use warn_if_unused_value.
-       Formatting fix.
-
-2020-11-10  Chung-Lin Tang  <cltang@codesourcery.com>
-
-       * parser.c (cp_parser_omp_target_data): Add use of
-       new c_omp_adjust_map_clauses function. Add GOMP_MAP_ATTACH_DETACH as
-       handled map clause kind.
-       (cp_parser_omp_target_enter_data): Likewise.
-       (cp_parser_omp_target_exit_data): Likewise.
-       (cp_parser_omp_target): Likewise.
-       * semantics.c (handle_omp_array_sections): Adjust COMPONENT_REF case to
-       use GOMP_MAP_ATTACH_DETACH map kind for C_ORT_OMP region type. Fix
-       interaction between reference case and attach/detach.
-       (finish_omp_clauses): Adjust bitmap checks to allow struct decl and
-       same struct field access to co-exist on OpenMP construct.
-
-2020-11-09  Marek Polacek  <polacek@redhat.com>
-
-       DR 1914
-       * parser.c (cp_parser_check_std_attribute): Return bool.  Add a
-       location_t parameter.  Return true if the attribute wasn't duplicated.
-       Give a warning instead of an error.  Check more attributes.
-       (cp_parser_std_attribute_list): Don't add duplicated attributes to
-       the list.  Pass location to cp_parser_check_std_attribute.
-
-2020-11-09  Patrick Palka  <ppalka@redhat.com>
-
-       * constraint.cc (norm_info::norm_info): Initialize orig_decl.
-       (norm_info::orig_decl): New data member.
-       (normalize_atom): When caching an atom for the first time,
-       compute a list of template parameters used in the targets of the
-       parameter mapping and store it in the TREE_TYPE of the mapping.
-       (get_normalized_constraints_from_decl): Set current_function_decl
-       appropriately when normalizing.  As an optimization, don't
-       set up a push_nested_class_guard when decl has no constraints.
-       (sat_hasher::hash): Use this list to hash only the template
-       arguments that are relevant to the atom.
-       (satisfy_atom): Use this list to compare only the template
-       arguments that are relevant to the atom.
-       * pt.c (keep_template_parm): Do a sanity check on the parameter's
-       index when flag_checking.
-
-2020-11-09  Patrick Palka  <ppalka@redhat.com>
-
-       * cp-tree.h (ATOMIC_CONSTR_MAP_INSTANTIATED_P): Define this flag
-       for ATOMIC_CONSTRs.
-       * constraint.cc (sat_hasher::hash): Use hash_atomic_constraint
-       if the flag is set, otherwise keep using a pointer hash.
-       (sat_hasher::equal): Return false if the flag's setting differs
-       on two atoms.  Call atomic_constraints_identical_p if the flag
-       is set, otherwise keep using a pointer equality test.
-       (satisfy_atom): After instantiating the parameter mapping, form
-       another ATOMIC_CONSTR using the instantiated mapping and query
-       the cache again.  Cache the satisfaction value of both atoms.
-       (diagnose_atomic_constraint): Simplify now that the supplied
-       atom has an instantiated mapping.
-
-2020-11-09  Patrick Palka  <ppalka@redhat.com>
-
-       * constraint.cc (atom_cache): Define this deletable hash_table.
-       (normalize_atom): Use it to cache ATOMIC_CONSTRs when not
-       generating diagnostics.
-       (sat_hasher::hash): Use htab_hash_pointer instead of
-       hash_atomic_constraint.
-       (sat_hasher::equal): Test for pointer equality instead of
-       atomic_constraints_identical_p.
-       * cp-tree.h (struct atom_hasher): Moved and renamed from ...
-       * logic.cc (struct constraint_hash): ... here.
-       (clause::m_set): Adjust accordingly.
-
-2020-11-09  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/93907
-       * constraint.cc (tsubst_parameter_mapping): Also canonicalize
-       the type arguments of a TYPE_ARGUMENT_PACk.
-
-2020-11-09  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (tsubst): Replace *_ARGUMENT_PACK code with
-       a call to tsubst_argument_pack.
-
-2020-11-09  Jason Merrill  <jason@redhat.com>
+2021-04-03  Jason Merrill  <jason@redhat.com>
 
-       * class.c (handle_using_decl): Add an iloc_sentinel.
+       PR c++/90664
+       * cvt.c (can_convert_qual): Check fnptr_conv_p.
 
-2020-11-09  Marek Polacek  <polacek@redhat.com>
+2021-04-03  Jason Merrill  <jason@redhat.com>
 
-       PR c++/97762
-       * parser.c (warn_about_ambiguous_parse): Handle the case when
-       there is no type in the decl-specifiers.
-
-2020-11-09  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (LOOKUP_FOUND_P): Add ENUMERAL_TYPE.
-       * name-lookup.c (class name_lookup): Add comments.
-       (name_lookup::adl_namespace_only): Replace with ...
-       (name_lookup::adl_class_fns): ... this and ...
-       (name_lookup::adl_namespace_fns): ... this.
-       (name_lookup::adl_namespace): Deal with inline nests here.
-       (name_lookup::adl_class): Complete the type here.
-       (name_lookup::adl_type): Call broken-out enum ..
-       (name_lookup::adl_enum): New.  No need to call the namespace adl
-       if it is class-scope.
-       (name_lookup::search_adl): Iterate over collected scopes here.
-
-2020-11-09  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.c (lookup_qualified_name): Expose an overload of a
-       singleton with known type.
-       (lookup_name_1): Just check the overload's type to expose it.
-       * parser.c (cp_parser_lookup_name): Do not do that check here.
-
-2020-11-08  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * parser.c (cp_parser_objc_at_property_declaration): Handle
-       class keywords in @property attribute context.
-
-2020-11-06  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/81660
-       * except.c (can_convert_eh): Change the return type to bool.  If
-       the type TO and FROM are the same, return true.
-
-2020-11-06  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * parser.c (cp_parser_objc_at_property_declaration):
-       Improve parsing fidelity. Associate better location info
-       with @property attributes.  Clean up the interface to
-       objc_add_property_declaration ().
-
-2020-11-06  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/67453
-       * decl.c (duplicate_decls): Propagate DECL_ATTRIBUTES and
-       DECL_PRESERVE_P from olddecl to its clones if any.
+       PR c++/97900
+       * pt.c (regenerate_decl_from_template): tsubst_decl
+       the parms.
 
-2020-11-06  Nathan Sidwell  <nathan@acm.org>
+2021-04-02  Patrick Palka  <ppalka@redhat.com>
 
-       * cp-tree.h (DECL_UNDECLARED_BUILTIN_P): Delete.
-       * cp-objcp-common.c (names_bultin_p): Rename
-       DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
-       * decl.c (decls_match): Likewise.  Replace
-       DECL_UNDECLARED_BUILTIN_P with DECL_IS_UNDECLARED_BUILTIN.
-       (duplicate_decls): Likewise.
-       * decl2.c (collect_source_refs): Likewise.
-       * name-lookup.c (anticipated_builtin_p, print_binding_level)
-       (do_nonmember_using_decl): Likewise.
-       * pt.c (builtin_pack_fn_p): Likewise.
-       * typeck.c (error_args_num): Likewise.
+       PR c++/99869
+       * parser.c (do_range_for_auto_deduction): Pass adc_variable_type
+       to do_auto_deduction.
 
-2020-11-06  Nathan Sidwell  <nathan@acm.org>
+2021-04-02  Patrick Palka  <ppalka@redhat.com>
 
-       * parser.c (cp_parser_template_declaration): Adjust 'export' warning.
-       (cp_parser_explicit_specialization): Remove unneeded bool setting.
+       PR c++/99586
+       * semantics.c (finish_compound_literal): Check
+       template_placeholder_p instead of type_uses_auto.
 
-2020-11-06  Jan Hubicka  <jh@suse.cz>
+2021-04-02  Jason Merrill  <jason@redhat.com>
 
-       * tree.c (cp_fix_function_decl_p): Do not access ipa_ref_list dirrectly.
+       PR c++/97938
+       * cp-tree.h (PACK_EXPANSION_AUTO_P): New.
+       * lambda.c (add_capture): Set it.
+       * pt.c (tsubst_pack_expansion): Handle it.
 
-2020-11-06  Tobias Burnus  <tobias@codesourcery.com>
+2021-04-02  Nathan Sidwell  <nathan@acm.org>
 
-       * parser.c (cp_parser_omp_atomic): Add openacc parameter and update
-       OpenACC matching.
-       (cp_parser_omp_construct): Update call.
+       * 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.
 
-2020-11-05  Marek Polacek  <polacek@redhat.com>
+2021-04-01  Marek Polacek  <polacek@redhat.com>
 
-       * except.c (check_handlers_1): Add auto_diagnostic_group.
+       PR c++/99831
+       * method.c (defaulted_late_check): ++ and -- function_depth around
+       the call to synthesize_method.
+       * pt.c: Remove the saved_trees global.
 
-2020-11-05  Marek Polacek  <polacek@redhat.com>
+2021-04-01  Jason Merrill  <jason@redhat.com>
 
-       PR c++/78209
-       * pt.c (do_auto_deduction): If init is REFERENCE_REF_P, use its
-       first operand.
+       PR c++/99583
+       PR c++/99584
+       * tree.c (cp_walk_subtrees) [FUNCTION_TYPE]: Walk into
+       TYPE_RAISES_EXCEPTIONS.
 
-2020-11-05  Marek Polacek  <polacek@redhat.com>
+2021-04-01  Iain Sandoe  <iain@sandoe.co.uk>
 
-       PR c++/97675
-       * except.c (check_handlers_1): Use OPT_Wexceptions for the
-       warning.  Use inform for the second part of the warning.
+       * mapper-client.cc (INCLUDE_MAP): New; require map to be
+       included from system.h.
+       * mapper-resolver.cc (INCLUDE_MAP): Likewise.
 
-2020-11-05  Marek Polacek  <polacek@redhat.com>
+2021-04-01  Jason Merrill  <jason@redhat.com>
 
-       PR c++/25814
-       * cp-tree.h (enum cp_tree_index): Add CPTI_EXPLICIT_VOID_LIST.
-       (explicit_void_list_node): Define.
-       (PARENTHESIZED_LIST_P): New macro.
-       (struct cp_declarator): Add function::parens_loc.
-       * decl.c (cxx_init_decl_processing): Initialize explicit_void_list_node.
-       (grokparms): Also break when explicit_void_list_node.
-       * parser.c (make_call_declarator): New location_t parameter.  Use it
-       to set declarator->u.function.parens_loc.
-       (cp_parser_lambda_declarator_opt): Pass UNKNOWN_LOCATION to
-       make_call_declarator.
-       (warn_about_ambiguous_parse): New function.
-       (cp_parser_init_declarator): Call warn_about_ambiguous_parse.
-       (cp_parser_declarator): Set *parenthesized_p to false rather than to
-       true.
-       (cp_parser_direct_declarator): Create a location for the function's
-       parentheses and pass it to make_call_declarator.
-       (cp_parser_parameter_declaration_clause): Return explicit_void_list_node
-       for (void).
-       (cp_parser_parameter_declaration_list): Set PARENTHESIZED_LIST_P
-       in the parameters tree.
+       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.
 
-2020-11-04  Jakub Jelinek  <jakub@redhat.com>
+2021-04-01  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/97670
-       * semantics.c (finish_omp_clauses): Look through array reductions to
-       find underlying decl to clear in the aligned_head bitmap.  Use
-       DECL_UID (t) instead of DECL_UID (OMP_CLAUSE_DECL (c)) when clearing
-       in the bitmap.  Only diagnose errors about allocate vars not being
-       privatized on the same construct on allocate clause if it has
-       a DECL_P OMP_CLAUSE_DECL.
+       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.
 
-2020-11-04  Iain Sandoe  <iain@sandoe.co.uk>
+2021-03-31  Jason Merrill  <jason@redhat.com>
 
-       * constexpr.c (potential_constant_expression_1): Handle
-       expressions known to be non-constant for Objective-C.
+       PR c++/99445
+       * tree.c (strip_typedefs): Handle TYPE_PACK_EXPANSION.
 
-2020-11-03  Jason Merrill  <jason@redhat.com>
+2021-03-31  Patrick Palka  <ppalka@redhat.com>
 
-       * tree.c (is_byte_access_type): Don't use char_type_p.
+       PR c++/88115
+       * mangle.c (write_expression): Adjust the mangling of
+       __alignof__.
 
-2020-11-03  Jakub Jelinek  <jakub@redhat.com>
+2021-03-31  Patrick Palka  <ppalka@redhat.com>
 
-       PR c++/97663
-       * parser.c (cp_parser_init_declarator): Don't try to parse
-       C++17 deduction guides if there are any type specifiers even when
-       type is NULL.
+       PR c++/99815
+       * pt.c (placeholder_type_constraint_dependent_p): Expand
+       argument packs to separate the first non-pack argument
+       from the rest.
 
-2020-11-03  Kamlesh Kumar  <kamleshbhalui@gmail.com>
-           Jason Merrill  <jason@redhat.com>
+2021-03-30  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/97453
-       DR2303
-       * pt.c (get_template_base): Consider closest base in template
-       deduction when base of base also matches.
+       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.
 
-2020-11-03  Nathan Sidwell  <nathan@acm.org>
+2021-03-30  Jakub Jelinek  <jakub@redhat.com>
 
-       * pt.c (tsubst_expr): Simplify using decl instantiation, add
-       asserts.
+       PR c++/99790
+       * cp-gimplify.c (cp_gimplify_expr): Handle PTRMEM_CST.
 
-2020-11-03  Nathan Sidwell  <nathan@acm.org>
+2021-03-26  Marek Polacek  <polacek@redhat.com>
 
-       * class.c (copy_fndecl_with_name):  Always not top level.
-       (build_cdtor_clones): Add update_methods parm, use it to
-       conditionally update the method vec.  Return void
-       (clone_cdtor): Adjust.
-       (clone_constructors_and_destructors): Adjust comment.
+       PR c++/98352
+       * method.c (implicitly_declare_fn): Pass &raises to
+       synthesized_method_walk.
 
-2020-11-03  Nathan Sidwell  <nathan@acm.org>
+2021-03-26  Nathan Sidwell  <nathan@acm.org>
 
-       * pt.c (primary_template_specialization_p): Use
-       VAR_OR_FUNCTION_DECL_P.
-       (tsubst_template_decl): Check for FUNCTION_DECL, not !TYPE && !VAR
-       for registering a specialization.
+       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.
 
-2020-11-03  Nathan Sidwell  <nathan@acm.org>
+2021-03-22  Martin Liska  <mliska@suse.cz>
 
-       * cp-tree.h (fixup_deferred_exception_variants): Declare.
-       * parser.c (cp_parser_class_specifier_1): Call it when
-       completing deferred parses rather than creating a variant.
-       (cp_parser_member_declaration): Move comment from ...
-       (cp_parser_noexcept_specification_opt): ... here.  Refactor the
-       deferred parse.
-       * tree.c (fixup_deferred_exception_variants): New.
+       PR c++/99687
+       * module.cc (fini_modules): Call vec_free instead of delete.
 
-2020-11-03  Nathan Sidwell  <nathan@acm.org>
+2021-03-20  Jakub Jelinek  <jakub@redhat.com>
 
-       * pt.c (tsubst_lambda_expr): Reorder extra-scope handling to match
-       the non-template case.
-       (instantiate_body): Move a couple of declarations to their
-       initializers.
+       PR debug/99230
+       * cp-gimplify.c (cp_genericize_r) <case STATEMENT_LIST>: Remove
+       special code, instead call c_genericize_control_stmt.
 
-2020-11-03  Nathan Sidwell  <nathan@acm.org>
+2021-03-19  Jakub Jelinek  <jakub@redhat.com>
 
-       * decl.c (duplicate_decls): Return error_mark_node fo extern-c
-       mismatch.
+       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.
 
-2020-11-03  Marek Polacek  <polacek@redhat.com>
+2021-03-19  Marek Polacek  <polacek@redhat.com>
 
-       * constexpr.c (potential_constant_expression_1): Treat
-       __PRETTY_FUNCTION__ inside a template function as
-       potentially-constant.
-       * pt.c (uses_template_parms): Call
-       instantiation_dependent_expression_p instead of
-       value_dependent_expression_p.
-       (instantiation_dependent_expression_p): Check
-       potential_constant_expression before calling
-       value_dependent_expression_p.
+       PR c++/99500
+       * parser.c (cp_parser_requirement_parameter_list): Handle
+       error_mark_node.
 
-2020-11-03  Marek Polacek  <polacek@redhat.com>
+2021-03-18  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/97632
-       * init.c (build_new_1): Disable -Winit-list-lifetime for an unevaluated
-       operand.
+       * pt.c (tsubst_copy_and_build) <case FLOAT_EXPR>: Remove.
 
-2020-11-03  Nathan Sidwell  <nathan@acm.org>
+2021-03-18  Marek Polacek  <polacek@redhat.com>
 
-       * tree.c (bind_template_template_parm): Mark the parm as a
-       template parm.
-       (cp_tree_equal): Refactor CALL_EXPR.  Use comp_template_args for
-       TREE_VECs.
+       * pt.c (tsubst_copy_and_build): Add assert.
 
-2020-11-03  Nathan Sidwell  <nathan@acm.org>
+2021-03-18  Iain Sandoe  <iain@sandoe.co.uk>
 
-       * rtti.c (init_rtti_processing): Move var decl to its init.
-       (get_tinfo_decl): Likewise.  Break out creation to called helper
-       ...
-       (get_tinfo_decl_direct): ... here.
-       (build_dynamic_cast_1): Move var decls to their initializers.
-       (tinfo_base_init): Set decl's location to BUILTINS_LOCATION.
-       (get_tinfo_desc): Only push ABI namespace when needed.  Set type's
-       context.
+       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.
 
-2020-11-02  Nathan Sidwell  <nathan@acm.org>
+2021-03-18  Martin Liska  <mliska@suse.cz>
 
-       * decl.c (start_decl_1): Refactor declarations.  Fixup some
-       whitespace.
-       (lookup_and_check_tag): Fixup some whitespace.
+       PR c++/99617
+       * coroutines.cc (struct var_nest_node): Init then_cl and else_cl
+       to NULL.
 
-2020-11-02  Nathan Sidwell  <nathan@acm.org>
+2021-03-17  Marek Polacek  <polacek@redhat.com>
 
-       * decl.c (duplicate_decls): Refactor some template & builtin
-       handling.
+       PR c++/97973
+       * call.c (conv_unsafe_in_template_p): New.
+       (convert_like): Use it.
 
-2020-11-02  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (struct cxx_int_tree_map): Delete.
-       (struct cxx_int_tree_map_hasher): Delete.
-       * cp-gimplify.c (cxx_int_tree_map_hasher::equal): Delete.
-       (cxx_int_tree_map_hasher::hash): Delete.
-
-2020-11-02  Patrick Palka  <ppalka@redhat.com>
-
-       * class.c (finish_struct_1): Don't call clear_satisfaction_cache.
-       * constexpr.c (clear_cv_and_fold_caches): Likewise.  Remove bool
-       parameter.
-       * constraint.cc (clear_satisfaction_cache): Remove definition.
-       * cp-tree.h (clear_satisfaction_cache): Remove declaration.
-       (clear_cv_and_fold_caches): Remove bool parameter.
-       * typeck2.c (store_init_value): Remove argument to
-       clear_cv_and_fold_caches.
-
-2020-11-01  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * parser.c (cp_parser_objc_at_property_declaration): Use any
-       exisiting syntax error to suppress complaints about a missing
-       closing parenthesis in parsing property attributes.
-
-2020-10-30  Jakub Jelinek  <jakub@redhat.com>
-
-       * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_ALLOCATE>: Handle
-       non-static members in methods.
-       * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_ALLOCATE.
-
-2020-10-29  Marek Polacek  <polacek@redhat.com>
-
-       DR 625
-       PR c++/97479
-       * parser.c (cp_parser_type_id_1): Reject using auto as
-       a template-argument in C++20.
-
-2020-10-29  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93107
-       * pt.c (do_auto_deduction): Call resolve_nondeduced_context for
-       the elements of a { } list.
-
-2020-10-29  Marek Polacek  <polacek@redhat.com>
-
-       * typeck.c (do_warn_enum_conversions): Don't warn for SPACESHIP_EXPR.
-       (cp_build_binary_op): Reject float <=> enum or enum <=> float.  Use
-       CP_INTEGRAL_TYPE_P instead of INTEGRAL_OR_ENUMERATION_TYPE_P.
-
-2020-10-29  Patrick Palka  <ppalka@redhat.com>
-
-       * constraint.cc (get_normalized_constraints): Remove 'args'
-       parameter.  Pass NULL_TREE as the initial template arguments to
-       normalize_expression.
-       (get_normalized_constraints_from_info): Remove 'args' parameter
-       and adjust the call to get_normalized_constraints.
-       (get_normalized_constraints_from_decl): Remove 'args' local
-       variable and adjust call to get_normalized_constraints_from_info.
-       (normalize_concept_definition): Remove 'args' local variable
-       and adjust call to get_normalized_constraints.
-       (normalize_constraint_expression): Remove the two-parameter
-       overload.  Remove 'args' parameter from the three-parameter
-       overload and update function comment accordingly.  Remove
-       default argument from 'diag' parameter.  Adjust call to
-       get_normalized_constraints.
-       (finish_nested_requirement): Adjust call to
-       normalize_constraint_expression.
-       (strictly_subsumes): Remove 'args' parameter.  Adjust call to
-       get_normalized_constraints_from_info.
-       (weakly_subsumes): Likewise.
-       * cp-tree.h (strictly_subsumes): Remove 'args' parameter.
-       (weakly_subsumes): Likewise.
-       * pt.c (process_partial_specialization): Adjust call to
-       strictly_subsumes.
-       (is_compatible_template_arg): Adjust call to weakly_subsumes.
-
-2020-10-29  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/97412
-       * constraint.cc (normalize_concept_check): Don't call
-       tsubst_template_args when 'args' is NULL.
-
-2020-10-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97388
-       * constexpr.c (cxx_eval_outermost_constant_expr): Revert to
-       original expression if evaluation sets non_constant_p.
-
-2020-10-29  Jakub Jelinek  <jakub@redhat.com>
+2021-03-17  Anthony Sharp  <anthonysharp15@gmail.com>
            Jason Merrill  <jason@redhat.com>
 
-       PR c++/97388
-       * constexpr.c (cxx_bind_parameters_in_call): Set non_constant_args
-       if the parameter type has a non-trivial destructor.
-       (cxx_eval_call_expression): Only unshare arguments if we're
-       memoizing this evaluation.
-
-2020-10-29  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/95808
-       * cp-tree.h (enum cp_tree_index): Add CPTI_HEAP_VEC_UNINIT_IDENTIFIER
-       and CPTI_HEAP_VEC_IDENTIFIER.
-       (heap_vec_uninit_identifier, heap_vec_identifier): Define.
-       * decl.c (initialize_predefined_identifiers): Initialize those
-       identifiers.
-       * constexpr.c (cxx_eval_call_expression): Reject array allocations
-       deallocated with non-array deallocation or non-array allocations
-       deallocated with array deallocation.
-       (non_const_var_error): Handle heap_vec_uninit_identifier and
-       heap_vec_identifier too.
-       (cxx_eval_constant_expression): Handle also heap_vec_uninit_identifier
-       and in that case during initialization replace it with
-       heap_vec_identifier.
-       (find_heap_var_refs): Handle heap_vec_uninit_identifier and
-       heap_vec_identifier too.
-
-2020-10-29  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (push_template_decl): Do not give function-scope entities
-       other than implicit typedefs a template header. Do not readd
-       template info to a redeclared template.
-
-2020-10-28  Marek Polacek  <polacek@redhat.com>
-
-       * decl.c (grokdeclarator): Offer a fix-it hint for the "unnecessary
-       parentheses in declaration" warning.
-       * parser.c (cp_parser_direct_declarator): When setting
-       declarator->parenthesized, use a location range.
-
-2020-10-28  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97573
-       * call.c (build_conditional_expr_1): Warn about the deprecated
-       enum/real type conversion in C++20.  Also warn about a non-enumerated
-       and enumerated type in ?: when -Wenum-conversion is on.
-       * typeck.c (do_warn_enum_conversions): New function.
-       (cp_build_binary_op): Call it.
-
-2020-10-28  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/96675
-       PR c++/96742
-       * pt.c (tsubst_copy_and_build): Call value_dependent_expression_p or
-       type_dependent_expression_p instead of type_dependent_expression_p_push.
-       But only call value_dependent_expression_p for expressions that are
-       potential_constant_expression.
-
-2020-10-28  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94799
-       * parser.c (cp_parser_class_name): Use parser->scope when
-       setting typename_p.
-
-2020-10-28  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/86773
-       * parser.c (cp_parser_fold_expression): Return error_mark_node
-       if a left fold is preceded by an expression.
-
-2020-10-28  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_parser_omp_declare_reduction): Set
-       DECL_LOCAL_DECL_P before push_template_decl.
-       * pt.c (instantiate_body): Nested fns do not have template_info.
-
-2020-10-28  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/95132
-       * decl2.c (mark_used): Move up the constraints_satisfied_p check
-       so that we check constraints before calling maybe_instantiate_decl.
-
-2020-10-28  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (push_template_decl): Refactor for some RAII.
-
-2020-10-28  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_omp_clause_name): Handle allocate.
-       (cp_parser_omp_clause_allocate): New function.
-       (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_ALLOCATE.
-       (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
-       OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK,
-       OMP_TASK_CLAUSE_MASK, OMP_TASKGROUP_CLAUSE_MASK,
-       OMP_DISTRIBUTE_CLAUSE_MASK, OMP_TEAMS_CLAUSE_MASK,
-       OMP_TARGET_CLAUSE_MASK, OMP_TASKLOOP_CLAUSE_MASK): Add
-       PRAGMA_OMP_CLAUSE_ALLOCATE.
-       * semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_ALLOCATE.
-       * pt.c (tsubst_omp_clauses): Likewise.
-
-2020-10-27  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (struct lang_type): Delete nested_udts field.
-       (CLASSTYPE_NESTED_UTDS): Delete.
-       * name-lookup.h (binding_table, binding_entry): Delete typedefs.
-       (bt_foreach_proc): Likewise.
-       (struct binding_entry_s): Delete.
-       (SCOPE_DEFAULT_HT_SIZE, CLASS_SCOPE_HT_SIZE)
-       (NAMESPACE_ORDINARY_HT_SIZE, NAMESPACE_STD_HT_SIZE)
-       (GLOBAL_SCOPE_HT_SIZE): Delete.
-       (binding_table_foreach, binding_table_find): Delete declarations.
-       * name-lookup.c (ENTRY_INDEX): Delete.
-       (free_binding_entry): Delete.
-       (binding_entry_make, binding_entry_free): Delete.
-       (struct binding_table_s): Delete.
-       (binding_table_construct, binding_table_free): Delete.
-       (binding_table_new, binding_table_expand): Delete.
-       (binding_table_insert, binding_table_find): Delete.
-       (binding_table_foreach): Delete.
-       (maybe_process_template_type_declaration): Delete
-       CLASSTYPE_NESTED_UTDS insertion.
-       (do_pushtag): Likewise.
-       * decl2.c (bt_reset_linkage_1): Fold into reset_type_linkage_1.
-       (reset_type_linkage_2, bt_reset_linkage_2): Fold into
-       reset_type_linkage.
-       * pt.c (instantiate_class_template_1): Delete NESTED_UTDs comment.
-       (bt_instantiate_type_proc): Delete.
-       (do_type_instantiation): Instantiate implicit typedef fields.
-       Delete NESTED_UTD walk.
-       * search.c (lookup_field_r): Delete unreachable NESTED_UTD
-       search.
-
-2020-10-27  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_parser_explicit_instantiation): Refactor some RAII.
-       * pt.c (bt_instantiate_type_proc): DATA is the tree, pass type to
-       do_type_instantiation.
-       (do_type_instantiation): Require T to be a type.  Refactor for
-       some RAII.
-
-2020-10-26  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       * cp-tree.h (CPTK_IS_NOTHROW_ASSIGNABLE): New.
-       (CPTK_IS_NOTHROW_CONSTRUCTIBLE): Likewise.
-       (is_nothrow_xible): Likewise.
-       * method.c (is_nothrow_xible): New.
-       (is_trivially_xible): Tweak.
-       * parser.c (cp_parser_primary_expression): Handle the new RID_*.
-       (cp_parser_trait_expr): Likewise.
-       * semantics.c (trait_expr_value): Handle the new RID_*.
-       (finish_trait_expr): Likewise.
-
-2020-10-24  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/96241
-       * constexpr.c (cxx_eval_array_reference): Set up ctx->ctor if we
-       are initializing an aggregate.  Call free_constructor on the new
-       CONSTRUCTOR if it isn't returned from cxx_eval_constant_expression.
-
-2020-10-23  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/91741
-       * typeck.c (cp_build_binary_op): Implement -Wsizeof-array-div.
-
-2020-10-22  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/97328
-       * constexpr.c (init_subob_ctx): Don't punt on RANGE_EXPR
-       indexes, instead build a sub-aggregate initialization context
-       with no subobject.
-
-2020-10-22  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96575
-       * constexpr.c (cxx_eval_constant_expression)
-       <case EMPTY_CLASS_EXPR>: Lower it to a CONSTRUCTOR.
-       (potential_constant_expression_1) <case COMPOUND_EXPR>: Remove
-       now-redundant handling of COMPOUND_EXPR with EMPTY_CLASS_EXPR
-       second operand.
-       <case EMPTY_CLASS_EXPR>: Return true instead of false.
-
-2020-10-22  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/97511
-       * decl.c (duplicate_decls): Return NULL_TREE if
-       DECL_TEMPLATE_PARM_P differ.
-
-2020-10-20  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.c (push_local_extern_decl_alias): Reconstextualize
-       alias' parm decls.  Drop any default args.
-
-2020-10-19  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/97438
-       * coroutines.cc (struct coroutine_info): Add a field to
-       record that we emitted a promise type error.
-       (coro_promise_type_found_p): Check for the case that the
-       promise type contains both return_void and return_value.
-       Emit an error if so, with information about the wrong
-       type methods.
-
-2020-10-16  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/97460
-       * pt.c (push_template_decl): Check DECL_LANG_SPECIFIC in friend
-       case.
-
-2020-10-16  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/96258
-       * parser.c (cp_parser_declaration): Make token2 point to EOF if
-       token1 was EOF.
-
-2020-10-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/95844
-       * decl.c (copy_fn_p): Return false for a function that is neither a
-       constructor nor an assignment operator.
-       (move_signature_fn_p): Likewise.
-
-2020-10-15  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97406
-       PR c++/85901
-       * cxx-pretty-print.c (pp_cxx_type_specifier_seq): Handle OFFSET_TYPE.
-       (cxx_pretty_printer::abstract_declarator): Fix the printing of ')'.
-       (cxx_pretty_printer::direct_abstract_declarator): Handle OFFSET_TYPE.
-       (cxx_pretty_printer::type_id): Likewise.  Print the abstract declarator
-       for pointers-to-members.
-
-2020-10-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/97358
-       * pt.c (check_for_bare_parameter_packs): Diagnose use of
-       capture pack.
-
-2020-10-14  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (struct lang_decl_fn): Adjust context comment.
-       (DECL_FRIEND_P): Replace with ...
-       (DECL_UNIQUE_FRIEND_P): ... this.  Only for FUNCTION_DECLs.
-       (DECL_FRIEND_CONTEXT): Adjust.
-       * class.c (add_implicitly_declared_members): Detect friendly
-       spaceship from context.
-       * constraint.cc (remove_constraints): Use a checking assert.
-       (maybe_substitute_reqs_for): Use DECL_UNIQUE_FRIEND_P.
-       * decl.c (check_no_redeclaration_friend_default_args):
-       DECL_UNIQUE_FRIEND_P is signficant, not hiddenness.
-       (duplicate_decls): Adjust DECL_UNIQUE_FRIEND_P clearing.
-       (redeclaration_error_message): Use DECL_UNIQUE_FRIEND_P.
-       (start_preparsed_function): Correct in-class friend processing.
-       Refactor some initializers.
-       (grokmethod): Directly check friend decl-spec.
-       * decl2.c (grokfield): Check DECL_UNIQUE_FRIEND_P.
-       * friend.c (do_friend): Set DECL_UNIQUE_FRIEND_P first, remove
-       extraneous conditions.  Don't re set it afterwards.
-       * name-lookup.c (lookup_elaborated_type_1): Simplify revealing
-       code.
-       (do_pushtag): Likewise.
-       * pt.c (optimize_specialization_lookup_p): Check
-       DECL_UNIQUE_FRIEND_P.
-       (push_template_decl): Likewise.  Drop unneeded friend setting.
-       (type_dependent_expression_p): Check DECL_UNIQUE_FRIEND_P.
-
-2020-10-14  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.c (push_local_extern_decl_alias): Push into alias's
-       namespace and use pushdecl.
-       (do_pushdecl_with_scope): Clarify behaviour.
-
-2020-10-12  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/97201
-       * error.c (dump_type_suffix): Handle both the C and C++ forms of
-       zero-length arrays.
-
-2020-10-12  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/96511
-       PR middle-end/96384
-       * init.c (warn_placement_new_too_small): Call builtin_objsize instead
-       of duplicating what it does.
-
-2020-10-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/96805
-       PR c++/96199
-       * pt.c (tsubst_aggr_type): Don't build a TYPENAME_TYPE when
-       entering_scope.
-       (tsubst_template_decl): Use tsubst_aggr_type.
-
-2020-10-08  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/97052
-       * constraint.cc (build_type_constraint): Temporarily increment
-       processing_template_decl before calling build_concept_check.
-       * pt.c (make_constrained_placeholder_type): Likewise.
-
-2020-10-08  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96229
-       * parser.c (cp_parser_class_specifier_1): Move call to
-       associate_classtype_constraints from here to ...
-       (cp_parser_class_head): ... here.
-       * pt.c (is_compatible_template_arg): Correct documentation to
-       say "argument is _no_ more constrained than the parameter".
-
-2020-10-07  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97010
-       * pt.c (tsubst_copy_and_build) <case TEMPLATE_ID_EXPR>: Call
-       tsubst_copy_and_build explicitly instead of using the RECUR macro.
-       Handle a TEMPLATE_ID_EXPR with an IDENTIFIER_NODE as its operand.
-       <case CALL_EXPR>: Perform ADL for a TEMPLATE_ID_EXPR with an
-       IDENTIFIER_NODE as its operand.
-
-2020-10-07  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/88115
-       PR libstdc++/97273
-       * tree.c (cp_tree_equal) <case ALIGNOF_EXPR>: Return false if
-       ALIGNOF_EXPR_STD_P differ.
-
-2020-10-07  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (struct language_function): Delete extern_decl_map.
-       (DECL_LOCAL_DECL_ALIAS): New.
-       * name-lookup.h (is_local_extern): Delete.
-       * name-lookup.c (set_local_extern_decl_linkage): Replace with ...
-       (push_local_extern_decl): ... this new function.
-       (do_pushdecl): Call new function after pushing new decl.  Unhide
-       hidden non-functions.
-       (is_local_extern): Delete.
-       * decl.c (layout_var_decl): Do not allow VLA local externs.
-       * decl2.c (mark_used): Also mark DECL_LOCAL_DECL_ALIAS. Drop old
-       local-extern treatment.
-       * parser.c (cp_parser_oacc_declare): Deal with local extern aliases.
-       * pt.c (tsubst_expr): Adjust local extern instantiation.
-       * cp-gimplify.c (cp_genericize_r): Remap DECL_LOCAL_DECLs.
-
-2020-10-07  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (DECL_BUILTIN_P): Rename to ...
-       (DECL_UNDECLARED_BUILTIN_P): ... here.
-       * decl.c (duplicate_decls): Adjust.
-       * name-lookup.c (anticipated_builtin_p): Adjust.
-       (do_nonmember_using_decl): Likewise.
-
-2020-10-07  Nathan Sidwell  <nathan@acm.org>
-
-       * tree.c (build_cp_fntype_variant): Clear
-       TYPE_DEPENDENT_P_VALID if necessary.
-
-2020-10-06  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97297
-       * parser.c (cp_parser_direct_declarator): When checking if a
-       name is a function template declaration for the P0634R3 case,
-       look in uninstantiated templates too.
-
-2020-10-05  Marek Polacek  <polacek@redhat.com>
-
-       * cp-tree.h (NON_UNION_CLASS_TYPE_P): Fix typo in a comment.
-
-2020-10-05  Richard Biener  <rguenther@suse.de>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/97197
-       * error.c (dump_expr): Handle TARGET_MEM_REF.
-
-2020-10-05  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.c (maybe_add_fuzzy_decl): New.
-       (maybe_add_fuzzy_binding): New.
-       (consider_binding_level): Use intermediate sortable vector for
-       namespace bindings.
-
-2020-10-02  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97014
-       * cxx-pretty-print.c (pp_cxx_template_argument_list): If the
-       argument is template_parm_object_p, print its DECL_INITIAL.
-
-2020-10-02  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (lang_decl_base): anticipated_p is not used for
-       anticipatedness.
-       (DECL_ANTICIPATED): Delete.
-       * decl.c (duplicate_decls): Delete DECL_ANTICIPATED_management,
-       use was_hidden.
-       (cxx_builtin_function): Drop DECL_ANTICIPATED setting.
-       (xref_tag_1): Drop DECL_ANTICIPATED assert.
-       * name-lookup.c (name_lookup::adl_class_only): Drop
-       DECL_ANTICIPATED check.
-       (name_lookup::search_adl): Always dedup.
-       (anticipated_builtin_p): Reimplement.
-       (do_pushdecl): Drop DECL_ANTICIPATED asserts & update.
-       (lookup_elaborated_type_1): Drop DECL_ANTICIPATED update.
-       (do_pushtag): Drop DECL_ANTICIPATED setting.
-       * pt.c (push_template_decl): Likewise.
-       (tsubst_friend_class): Likewise.
-
-2020-10-02  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.c (consider_decl): New, broken out of ...
-       (consider_binding_level): ... here.  Iterate the hash table for
-       namespace bindings.
-
-2020-10-02  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (base_ctor_omit_inherited_parms): Declare.
-       * class.c (add_method): Refactor main loop, only pass fns to
-       ctor_omit_inherited_parms.
-       (build_cdtor_clones): Rename bool parms.
-       (clone_cdtor): Call base_ctor_omit_inherited_parms.
-       * method.c (base_ctor_omit_inherited_parms): New, broken out of
-       ...
-       (ctor_omit_inherited_parms): ... here, call it with
-       DECL_CLONED_FUNCTION.
-
-2020-10-02  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (cp_fname_init): Delete declaration.
-       * decl.c (cp_fname_init): Merge into only caller ...
-       (cp_make_fname): ... here & refactor.
-
-2020-10-02  Jason Merril  <jason@redhat.com>
-
-       * call.c (build_operator_new_call): Set CALL_FROM_NEW_OR_DELETE_P.
-       (build_op_delete_call): Likewise.
-       * init.c (build_new_1, build_vec_delete_1, build_delete): Not here.
-       (build_delete):
-
-2020-10-02  Jason Merril  <jason@redhat.com>
-
-       * lambda.c (call_from_lambda_thunk_p): New.
-       * cp-gimplify.c (cp_genericize_r): Use it.
-       * pt.c (tsubst_copy_and_build): Use it.
-       * typeck.c (check_return_expr): Use it.
-       * cp-tree.h: Declare it.
-       (CALL_FROM_NEW_OR_DELETE_P): Move to gcc/tree.h.
-
-2020-10-01  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (DECL_ANTICIPATED): Adjust comment.
-       (DECL_HIDDEN_P, TYPE_HIDDEN_P): Delete.
-       * tree.c (ovl_insert): Delete DECL_HIDDEN_P assert.
-       (ovl_skip_hidden): Likewise.
-
-2020-10-01  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.c (pushdecl_top_level): Assert incoming context is
-       null, add global_namespace context.
-       (pushdecl_top_level_and_finish): Likewise.
-       * pt.c (get_template_parm_object): Clear decl context before
-       pushing.
-       * semantics.c (finish_compound_literal): Likewise.
-
-2020-10-01  Nathan Sidwell  <nathan@acm.org>
-
-       * decl.c (lookup_and_check_tag): Refactor.
-
-2020-10-01  Jakub Jelinek  <jakub@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.
 
-       PR c++/96994
-       * call.c (build_over_call): If obj_arg is non-NULL, return INIT_EXPR
-       setting obj_arg to call.
+2021-03-16  Jason Merrill  <jason@redhat.com>
 
-2020-10-01  Jakub Jelinek  <jakub@redhat.com>
+       * tree.c (cp_tree_equal): Use real_identical.
 
-       PR c++/97195
-       * constexpr.c (cxx_eval_call_expression): Don't VERIFY_CONSTANT the
-       second argument.
+2021-03-16  Jakub Jelinek  <jakub@redhat.com>
 
-2020-10-01  Marek Polacek  <polacek@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.
 
-       PR c++/90210
-       * pt.c (do_class_deduction): Don't prune explicit deduction guides
-       in copy-list-initialization.  In copy-list-initialization, if an
-       explicit deduction guide was selected, give an error.
-
-2020-09-30  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (struct lang_decl_fn): Remove hidden_friend_p.
-       (DECL_HIDDEN_FRIEND_P): Delete.
-       * call.c (add_function_candidate): Drop assert about anticipated
-       decl.
-       (build_new_op_1): Drop koenig lookup flagging for hidden friend.
-       * decl.c (duplicate_decls): Drop HIDDEN_FRIEND_P updating.
-       * name-lookup.c (do_pushdecl): Likewise.
-       (set_decl_namespace): Discover hiddenness from OVL_HIDDEN_P.
-       * pt.c (check_explicit_specialization): Record found_hidden
-       explicitly.
-
-2020-09-29  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94695
-       * call.c (ref_conv_binds_directly_p): New function.
-       * cp-tree.h (ref_conv_binds_directly_p): Declare.
-       * parser.c (warn_for_range_copy): New function.
-       (cp_convert_range_for): Call it.
-
-2020-09-29  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (ovl_insert): Change final parm to hidden-or-using
-       indicator.
-       * name-lookup.h (HIDDEN_TYPE_BINDING_P): New.
-       (struct cxx_binding): Add type_is_hidden flag.
-       * tree.c (ovl_insert): Change using_p parm to using_or_hidden,
-       adjust.
-       (ovl_skip_hidden): Assert we never see a naked hidden decl.
-       * decl.c (xref_tag_1): Delete unhiding friend from here (moved to
-       lookup_elaborated_type_1).
-       * name-lookup.c (STAT_TYPE_HIDDEN_P, STAT_DECL_HIDDEN_P): New.
-       (name_lookup::search_namespace_only): Check new hidden markers.
-       (cxx_binding_make): Clear HIDDEN_TYPE_BINDING_P.
-       (update_binding): Update new hidden markers.
-       (lookup_name_1): Check HIDDEN_TYPE_BINDING_P and simplify friend
-       ignoring.
-       (lookup_elaborated_type_1): Use new hidden markers.  Reveal the
-       decl here.
-
-2020-09-29  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.c (create_local_binding): Do not clear
-       INHERITED_VALUE_BINDING_P here.
-       (name_lookup::process_binding): Move done hidden-decl triage to ...
-       (name_lookup::search_namespace_only): ... here, its only caller.
-       (cxx_binding_make): Clear flags here.
-       (push_binding): Not here.
-       (pop_local_binding): RAII.
-       (update_binding): Refactor.
-       (do_pushdecl): Assert we're never revealing a local binding.
-       (do_pushdecl_with_scope): Directly call do_pushdecl.
-       (get_class_binding): Do not clear LOCAL_BINDING_P here.
-       * pt.c (push_template_decl): Set friend & anticipated before
-       pushing.
-
-2020-09-29  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.c (update_binding): We never meet two implicit
-       typedefs.
-       (do_pushdecl): Adjust set_identifier_type_value_with_scope calls.
-       (set_identifier_type_value_with_scope): Do not update binding in
-       the namespace-case.  Assert it is already there.
-
-2020-09-25  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (duplicate_decls): Replace 'is_friend' with 'hiding'
-       and add 'was_hidden'.
-       * name-lookup.h (pushdecl_namespace_level): Replace 'is_friend'
-       with 'hiding'.
-       (pushdecl): Likewise.
-       (pushdecl_top_level): Drop is_friend parm.
-       * decl.c (check_no_redeclaration_friend_default_args): Rename parm
-       olddelc_hidden_p.
-       (duplicate_decls): Replace 'is_friend' with 'hiding'
-       and 'was_hidden'.  Do minimal adjustments in body.
-       (cxx_builtin_function): Pass 'hiding' to pushdecl.
-       * friend.c (do_friend): Pass 'hiding' to pushdecl.
-       * name-lookup.c (supplement_binding_1): Drop defaulted arg to
-       duplicate_decls.
-       (update_binding): Replace 'is_friend' with 'hiding'.  Drop
-       defaulted arg to duplicate_decls.
-       (do_pushdecl): Replace 'is_friend' with 'hiding'.  Assert no
-       surprise hidhing.  Adjust duplicate_decls calls to inform of old
-       decl's hiddennes.
-       (pushdecl): Replace 'is_friend' with 'hiding'.
-       (set_identifier_type_value_with_scope): Adjust update_binding
-       call.
-       (do_pushdecl_with_scope): Replace 'is_friend' with 'hiding'.
-       (pushdecl_outermost_localscope): Drop default arg to
-       do_pushdecl_with_scope.
-       (pushdecl_namespace_level): Replace 'is_friend' with 'hiding'.
-       (pushdecl_top_level): Drop is_friend parm.
-       * pt.c (register_specialization): Comment duplicate_decls call
-       args.
-       (push_template_decl): Commont pushdecl_namespace_level.
-       (tsubst_friend_function, tsubst_friend_class): Likewise.
-
-2020-09-25  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.h (enum tag_scope): Replace with ...
-       (enum class TAG_how): ... this.  Add HIDDEN_FRIEND value.
-       (lookup_type_scope): Replace with ...
-       (lookup_elaborated_type): ... this.
-       (pushtag): Use TAG_how, not tag_scope.
-       * cp-tree.h (xref_tag): Parameter is TAG_how, not tag_scope.
-       * decl.c (lookup_and_check_tag): Likewise.  Adjust.
-       (xref_tag_1, xref_tag): Likewise. adjust.
-       (start_enum): Adjust lookup_and_check_tag call.
-       * name-lookup.c (lookup_type_scope_1): Rename to ...
-       (lookup_elaborated_type_1) ... here. Use TAG_how, not tag_scope.
-       (lookup_type_scope): Rename to ...
-       (lookup_elaborated_type): ... here.  Use TAG_how, not tag_scope.
-       (do_pushtag): Use TAG_how, not tag_scope.  Adjust.
-       (pushtag): Likewise.
-       * parser.c (cp_parser_elaborated_type_specifier): Adjust.
-       (cp_parser_class_head): Likewise.
-
-2020-09-25  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (DECL_BUILTIN_P): New.
-       * decl.c (duplicate_decls): Use it.  Do not treat omp-udr as a
-       builtin.
-       * name-lookup.c (anticipated_builtin): Use it.
-       (set_decl_context_in_fn): Function-scope OMP UDRs have function context.
-       (do_nonmember_using_decl): Use DECL_BUILTIN_P.
-       * parser.c (cp_parser_omp_declare_reduction): Function-scope OMP
-       UDRs have function context.  Assert we never find a valid duplicate.
-       * pt.c (tsubst_expr): Function-scope OMP UDRs have function context.
-
-2020-09-24  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (duplicate_decls): Default is_friend to false.
-       (xref_tag): Default tag_scope & tpl_header_p to ts_current & false.
-       (push_template_decl_real): Default is_friend to false.  Rename to
-       ...
-       (push_template_decl): ... here.  Delete original decl.
-       * name-lookup.h (pushdecl_namespace_level): Default is_friend to
-       false.
-       (pushtag): Default tag_scope to ts_current.
-       * coroutines.cc (morph_fn_to_coro): Drop default args to xref_tag.
-       * decl.c (start_decl): Drop default args to duplicate_decls.
-       (start_enum): Drop default arg to pushtag & xref_tag.
-       (start_preparsed_function): Pass DECL_FRIEND_P to
-       push_template_decl.
-       (grokmethod): Likewise.
-       * friend.c (do_friend): Rename push_template_decl_real calls.
-       * lambda.c (begin_lamnbda_type): Drop default args to xref_tag.
-       (vla_capture_type): Likewise.
-       * name-lookup.c (maybe_process_template_type_declaration): Rename
-       push_template_decl_real call.
-       (pushdecl_top_level_and_finish): Drop default arg to
-       pushdecl_namespace_level.
-       * pt.c (push_template_decl_real): Assert no surprising friend
-       functions.  Rename to ...
-       (push_template_decl): ... here.  Delete original function.
-       (lookup_template_class_1): Drop default args from pushtag.
-       (instantiate_class_template_1): Likewise.
-       * ptree.c (debug_overload): Print hidden and using markers.
-       * rtti.c (init_rtti_processing): Drop refault args from xref_tag.
-       (build_dynamic_cast_1, tinfo_base_init): Likewise.
-       * semantics.c (begin_class_definition): Drop default args to
-       pushtag.
-
-2020-09-24  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/97186
-       * pt.c (maybe_instantiate_noexcept): Local externs are never
-       member fns.
-
-2020-09-23  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.h (typedef cxx_binding): Delete tdef.
-       (typedef cp_binding_level): Likewise.
-       (struct cxx_binding): Flags are bools.
-
-2020-09-23  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/97171
-       * pt.c (tsubst_copy) [FUNCTION_DECL,VAR_DECL]: Retrieve local
-       specialization for DECL_LOCAL_P decls.
-
-2020-09-22  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/95310
-       * pt.c (corresponding_template_parameter): Define.
-       (keep_template_parm): Use it to adjust the given template
-       parameter to the corresponding in-scope one from ctx_parms.
-
-2020-09-22  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (xref_tag_from_type): Don't declare.
-       * decl.c (xref_tag_from_type): Delete.
-       * pt.c (lookup_template_class_1): Erroneously located class
-       definitions just give error_mark, don't try and inject it into the
-       namespace.
-
-2020-09-22  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/97145
-       * constexpr.c (cxx_eval_builtin_function_call): Return void_node for
-       calls to __sanitize_ptr_{sub,cmp} builtins.
-
-2020-09-22  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (instantiate_class_template_1): Do not repush and unhide
-       injected friend.
-
-2020-09-21  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/90583
-       DR 1722
-       * lambda.c (maybe_add_lambda_conv_op): Mark the conversion function
-       as noexcept.
-
-2020-09-21  Marek Polacek  <polacek@redhat.com>
-
-       * pt.c (deduction_guides_for): Add a bool parameter.  Set it.
-       (do_class_deduction): Warn when CTAD succeeds but the type doesn't
-       have any explicit deduction guides.
-
-2020-09-21  Nathan Sidwell  <nathan@acm.org>
-
-       * decl.c (xref_tag_1): Use IDENTIFIER_LAMBDA_P to detect lambdas.
-       * lambda.c (begin_lambda_type): Use ts_current to push the tag.
-       * name-lookup.h (enum tag_scope): Drop ts_lambda.
-
-2020-09-21  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/97099
-       * decl.c (redeclaration_error_message): Detect a redeclaration of
-       deduction guides.
-
-2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>
-
-       * cp-gimplify.c (enum bc_t, bc_label): Move to c-family.
-       (begin_bc_block, finish_bc_block, get_bc_label): Likewise.
-       (genericize_cp_loop): Likewise.
-       (genericize_for_stmt, genericize_while_stmt): Likewise.
-       (genericize_do_stmt, genericize_switch_stmt): Likewise.
-       (genericize_continue_stmt, genericize_break_stmt): Likewise.
-       (genericize_omp_for_stmt): Likewise.
-       (cp_genericize_r): Call c_genericize_control_stmt instead of
-       above functions directly.
-       (cp_genericize): Call save_bc_state and restore_bc_state instead
-       of manipulating bc_label directly.
-       * cp-objcp-common.c (cxx_block_may_fallthru): Defer to
-       c_block_may_fallthru instead of handling SWITCH_STMT here.
-       (cp_common_init_ts): Move handling of loop and switch-related
-       statements to c-family.
-       * cp-tree.def (FOR_STMT, WHILE_STMT, DO_STMT): Move to c-family.
-       (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
-       * cp-tree.h (LABEL_DECL_BREAK, LABEL_DECL_CONTINUE): Likewise.
-       (WHILE_COND, WHILE_BODY): Likewise.
-       (DO_COND, DO_BODY): Likewise.
-       (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY, FOR_SCOPE): Likewise.
-       (SWITCH_STMT_COND, SWITCH_STMT_BODY): Likewise.
-       (SWITCH_STMT_TYPE, SWITCH_STMT_SCOPE): Likewise.
-       (SWITCH_STMT_ALL_CASES_P, SWITCH_STMT_NO_BREAK_P): Likewise.
-       * cxx-pretty-print.c (cxx_pretty_printer::statement): Move code
-       to handle structured loop and switch tree nodes to c-family.
-       * dump.c (cp_dump_tree): Likewise.
-
-2020-09-19  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96531
-       PR c++/97103
-       * constraint.cc (map_arguments): Call template_parm_to_arg
-       in the self-mapping case.
-       (finish_shorthand_constraint): No need to build a TREE_LIST
-       before calling template_parm_to_arg.
-       * pt.c (template_parm_to_arg): Rewrite to handle TEMPLATE_PARM_P
-       nodes as well as DECL_TEMPLATE_PARM_P nodes, and to make the
-       overlying TREE_LIST node optional.
-       (keep_template_parm): Don't record a BOUND_TEMPLATE_TEMPLATE_PARM,
-       instead record its corresponding TEMPLATE_TEMPLATE_PARM.
-       (convert_generic_types_to_packs): Don't call
-       template_parm_to_arg.
-
-2020-09-19  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/97051
-       * constraint.cc (satisfy_atom): Pass true as the
-       manifestly_const_eval argument to maybe_constant_value.
-
-2020-09-18  Jason Merrill  <jason@redhat.com>
-
-       PR bootstrap/97118
-       * decl.c (complete_vars): Only call layout_var_decl if completing
-       the type succeeded.
-
-2020-09-18  Jason Merrill  <jason@redhat.com>
-
-       * decl.c (complete_vars): Call layout_var_decl.
-
-2020-09-17  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96409
-       PR c++/96410
-       * constraint.cc (tsubst_requires_expr): Use REQUIRES_EXPR_PARMS
-       and REQUIRES_EXPR_REQS.  Use REQUIRES_EXPR_EXTRA_ARGS,
-       add_extra_args and build_extra_args to defer substitution until
-       we have all the template arguments.
-       (finish_requires_expr): Adjust the call to build_min so that
-       REQUIRES_EXPR_EXTRA_ARGS gets set to NULL_TREE.
-       * cp-tree.def (REQUIRES_EXPR): Give it a third operand.
-       * cp-tree.h (REQUIRES_EXPR_PARMS, REQUIRES_EXPR_REQS,
-       REQUIRES_EXPR_EXTRA_ARGS): Define.
-       (add_extra_args, build_extra_args): Declare.
-
-2020-09-16  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (cp_check_omp_declare_reduction): Return bool.
-       * semantics.c (cp_check_omp_declare_reduction): Return true on for
-       success.
-       * pt.c (push_template_decl_real): OMP reductions do not get a
-       template header.
-       (tsubst_function_decl): Remove special casing for local decl omp
-       reductions.
-       (tsubst_expr): Call instantiate_body for a local omp reduction.
-       (instantiate_body): Add nested_p parm, and deal with such
-       instantiations.
-       (instantiate_decl): Reject FUNCTION_SCOPE entities, adjust
-       instantiate_body call.
-
-2020-09-16  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (instantiate_body): Remove 'nested' var, simplify
-       push_to_top logic.
-
-2020-09-16  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (instantiate_body): New, broken out of ..
-       (instantiate_decl): ... here.  Call it.
-
-2020-09-15  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (push_template_decl_real): OMP reductions retain a template
-       header.
-       (tsubst_function_decl): Likewise.
-
-2020-09-15  Tobias Burnus  <tobias@codesourcery.com>
-
-       PR fortran/96668
-       * cp-gimplify.c (cxx_omp_finish_clause): Add bool openacc arg.
-       * cp-tree.h (cxx_omp_finish_clause): Likewise
-       * semantics.c (handle_omp_for_class_iterator): Update call.
-
-2020-09-14  Marek Polacek  <polacek@redhat.com>
-
-       * pt.c (push_template_decl_real): Use VAR_OR_FUNCTION_DECL_P.
-
-2020-09-14  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (push_template_decl_real): Don't attach a template head to
-       local externs.
-       (tsubst_function_decl): Add support for headless local extern
-       decls.
-       (tsubst_decl): Add support for headless local extern decls.
-
-2020-09-11  Nathan Sidwell  <nathan@acm.org>
-
-       * decl.c (grokfndecl): Don't attach to local extern.
-
-2020-09-11  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_parser_objc_method_definition_list): Reimplement
-       loop, make sure we pop scope.
-
-2020-09-11  Marek Polacek  <polacek@redhat.com>
-
-       * cp-tree.h (LOOKUP_CONSTINIT): Remove.
-       (LOOKUP_REWRITTEN): Adjust.
-       * decl.c (duplicate_decls): Set DECL_DECLARED_CONSTINIT_P.
-       (check_initializer): Use DECL_DECLARED_CONSTINIT_P instead of
-       LOOKUP_CONSTINIT.
-       (cp_finish_decl): Don't set DECL_DECLARED_CONSTINIT_P.  Use
-       DECL_DECLARED_CONSTINIT_P instead of LOOKUP_CONSTINIT.
-       (grokdeclarator): Set DECL_DECLARED_CONSTINIT_P.
-       * decl2.c (grokfield): Don't handle LOOKUP_CONSTINIT.
-       * parser.c (cp_parser_decomposition_declaration): Remove
-       LOOKUP_CONSTINIT handling.
-       (cp_parser_init_declarator): Likewise.
-       * pt.c (tsubst_expr): Likewise.
-       (instantiate_decl): Likewise.
-       * typeck2.c (store_init_value): Use DECL_DECLARED_CONSTINIT_P instead
-       of LOOKUP_CONSTINIT.
-
-2020-09-10  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (TINFO_VAR_DECLARED_CONSTINIT): Replace with ...
-       (DECL_DECLARED_CONSTINIT_P): ... this.
-       * decl.c (start_decl): No need to retrofit_lang_decl for constinit
-       flag.
-       (cp_finish_decl): Use DECL_DECLARED_CONSTINIT_P.
-       * pt.c (tsubst_decl): No need to handle constinit flag
-       propagation.
-       (tsubst_expr): Or here.
-
-2020-09-10  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (DECL_LOCAL_FUNCTION_P): Rename to ...
-       (DECL_LOCAL_DECL_P): ... here.  Accept both fns and vars.
-       * decl.c (start_decl): Set DECL_LOCAL_DECL_P for local externs.
-       (omp_declare_variant_finalize_one): Use DECL_LOCAL_DECL_P.
-       (local_variable_p): Simplify.
-       * name-lookup.c (set_decl_context_in_fn): Assert DECL_LOCAL_DECL_P
-       is as expected.  Simplify.
-       (do_pushdecl): Don't set decl_context_in_fn for friends.
-       (is_local_extern): Simplify.
-       * call.c (equal_functions): Use DECL_LOCAL_DECL_P.
-       * parser.c (cp_parser_postfix_expression): Likewise.
-       (cp_parser_omp_declare_reduction): Likewise.
-       * pt.c (check_default_tmpl_args): Likewise.
-       (tsubst_expr): Assert nested reduction function is local.
-       (type_dependent_expression_p): Use DECL_LOCAL_DECL_P.
-       * semantics.c (finish_call_expr): Likewise.
-
-2020-09-09  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/77841
-       * decl.c (reshape_init): If we're initializing a char array from
-       a string-literal that is enclosed in braces, unwrap it.
-       * init.c (build_new_1): Don't handle string-initializers here.
-       (build_new): Handle new-expression with paren-init when the
-       array bound is known.  Always pass string constants to build_new_1
-       enclosed in braces.  Don't handle string-initializers in any
-       special way.
-
-2020-09-09  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/95164
-       * decl.c (reshape_init_r): When initializing an aggregate member
-       with an initializer from an initializer-list, also consider
-       COMPOUND_LITERAL_P.
-
-2020-09-09  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_parser_omp_declare_reduction): Refactor to avoid
-       code duplication.  Update DECL_TI_TEMPLATE's context.
-       * pt.c (tsubst_expr): For OMP reduction function, set context to
-       global_namespace before pushing.
-       (tsubst_omp_udr): Assert current_function_decl, add comment about
-       decl context.
-
-2020-09-09  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96647
-       * class.c (resolve_address_of_overloaded_function): Check
-       constraints_satisfied_p and perform return-type deduction via
-       maybe_instantiate_decl when considering non-template functions
-       in the overload set.
-       * cp-tree.h (maybe_instantiate_decl): Declare.
-       * decl2.c (maybe_instantiate_decl): Remove static.
-
-2020-09-04  Jason Merrill  <jason@redhat.com>
-
-       * expr.c (mark_use): Use iloc_sentinel.
-
-2020-09-03  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/96901
-       * constexpr.c (fundef_copies_table): Change type from
-       hash_map<tree, tree> * to decl_tree_map *.
-
-2020-09-03  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/92812
-       * cp-tree.h (do_aggregate_paren_init): Declare.
-       * decl.c (do_aggregate_paren_init): New.
-       (grok_reference_init): Use it.
-       (check_initializer): Likewise.
-       * init.c (perform_member_init): Handle initializing an array from
-       a ()-list.  Use do_aggregate_paren_init.
-
-2020-09-03  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/96862
-       * constexpr.c (cxx_eval_outermost_constant_expr): Temporarily disable
-       flag_rounding_math during manifestly constant evaluation.
-
-2020-09-01  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/77841
-       * init.c (build_new_1): Call reshape_init.
-
-2020-09-01  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/96867
-       * semantics.c (handle_omp_array_sections_1): Test
-       DECL_ARRAY_PARAMETER_P only on PARM_DECLs.
-
-2020-08-31  Marek Polacek  <polacek@redhat.com>
+2021-03-16  Martin Liska  <mliska@suse.cz>
            Jason Merrill  <jason@redhat.com>
 
-       PR c++/93529
-       * call.c (build_new_method_call_1): Use build_constructor_from_vec
-       instead of build_tree_list_vec + build_constructor_from_list.
-       * init.c (build_new_1): Handle new char[]{"foo"}.  Use
-       build_constructor_from_vec instead of build_tree_list_vec +
-       build_constructor_from_list.
-       (build_new): Deduce the array size in new-expression if not
-       present.  Handle ()-init.  Handle initializing an array from
-       a string literal.
-       * parser.c (cp_parser_new_type_id): Leave [] alone.
-       (cp_parser_direct_new_declarator): Allow [].
-       * pt.c (type_dependent_expression_p): In a NEW_EXPR, consider
-       array types whose dimension has to be deduced type-dependent.
-
-2020-08-27  Martin Liska  <mliska@suse.cz>
-
-       * class.c (build_vtbl_initializer): Set exact argument of a vector
-       growth function to true.
-       * constraint.cc (get_mapped_args): Likewise.
-       * decl.c (cp_maybe_mangle_decomp): Likewise.
-       (cp_finish_decomp): Likewise.
-       * parser.c (cp_parser_omp_for_loop): Likewise.
-       * pt.c (canonical_type_parameter): Likewise.
-       * rtti.c (get_pseudo_ti_init): Likewise.
-
-2020-08-26  Nathan Sidwell  <nathan@acm.org>
-
-       * decl.c (poplevel): A local-binding tree list holds the name in
-       TREE_PURPOSE.
-       * name-lookup.c (update_local_overload): Add id to TREE_PURPOSE.
-       (lookup_name_1): Deal with local-binding error_mark_node marker.
-       (op_unqualified_lookup): Return error_mark_node for 'nothing
-       found'.  Retain global binding, check class binding here.
-       (maybe_save_operator_binding): Reimplement to always cache a
-       result.
-       (push_operator_bindings): Deal with 'ignore' marker.
-
-2020-08-25  Tobias Burnus  <tobias@codesourcery.com>
-
-       PR c/96678
-       * semantics.c (handle_omp_array_sections_1): Talk about
-       array function parameter in the error message.
-
-2020-08-25  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/96721
-       * cp-tree.h (build_trivial_dtor_call): Add bool argument defaulted
-       to false.
-       * call.c (build_trivial_dtor_call): Add NO_PTR_DEREF argument.  If
-       instance is a pointer and NO_PTR_DEREF is true, clobber the pointer
-       rather than what it points to.
-       * semantics.c (finish_call_expr): Call build_trivial_dtor_call with
-       true as NO_PTR_DEREF.
-
-2020-08-25  Jason Merrill  <jason@redhat.com>
-
-       PR c++/95428
-       * optimize.c (populate_clone_array): Revert PR70462 change.
-       (maybe_clone_body): Likewise.
-
-2020-08-24  Nathan Sidwell  <nathan@acm.org>
-
-       * ptree.c (debug_overload): New.
-
-2020-08-19  Jason Merrill  <jason@redhat.com>
-
-       DR 2369
-       * cp-tree.h (push_tinst_level, push_tinst_level_loc): Declare.
-       * constraint.cc (satisfy_declaration_constraints):
-       Use add_outermost_template_args and push_tinst_level.
-       * pt.c (add_outermost_template_args): Handle getting
-       a TEMPLATE_DECL as the first argument.
-       (push_tinst_level, push_tinst_level_loc): No longer static.
-       (fn_type_unification): Check satisfaction before non-dependent
-       conversions.
-
-2020-08-18  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (SET_TYPE_TEMPLTE_INFO): Do not deal with ALIAS templates.
-       * pt.c (lookup_template_class_1): Special-case alias template
-       template_info setting.
-
-2020-08-18  Jason Merrill  <jason@redhat.com>
-
-       PR c++/96199
-       * pt.c (tsubst_aggr_type): Rewrite in C++17, too.
-       (maybe_dependent_member_ref): Likewise.
-       (build_deduction_guide): Re-substitute template parms.
-       * cp-tree.h (struct push_nested_class_guard): New.
-       * constraint.cc (get_normalized_constraints_from_decl): Use it.
-
-2020-08-18  Jason Merrill  <jason@redhat.com>
-
-       PR c++/96199
-       * pt.c (maybe_dependent_member_ref): New.
-       (tsubst_copy) [CONST_DECL]: Use it.
-       [VAR_DECL]: Likewise.
-       (tsubst_aggr_type): Handle nested type.
-
-2020-08-18  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.c (qualify_lookup): Drop lambda checking here.
-       Reorder namespace & type checking.
-       (lookup_name_1): Do hidden lambda checking here.
-
-2020-08-14  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.h (lookup_name_real, lookup_name_nonclass): Rename
-       to ...
-       (lookup_name): ... these new overloads.
-       * name-lookup.c (identifier_type_value_1): Rename lookup_name_real
+       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.
-       (lookup_name_real_1): Rename to ...
-       (lookup_name_1): ... here.
-       (lookup_name_real): Rename to ...
-       (lookup_name): ... here.  Rename lookup_name_real_1 call.
-       (lookup_name_nonclass): Delete.
-       * call.c (build_operator_new_call): Rename lookup_name_real call.
-       (add_operator_candidates): Likewise.
-       (build_op_delete_call): Rename lookup_name_nonclass call.
-       * parser.c (cp_parser_lookup_name): Likewise.
-       * pt.c (tsubst_friend_class, lookup_init_capture_pack): Likewise.
-       (tsubst_expr): Likewise.
-       * semantics.c (capture_decltype): Likewise.
-
-2020-08-14  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (LOOKUP_HIDDEN): Delete.
-       (LOOKUP_PREFER_RVALUE): Adjust initializer.
-       * name-lookup.h (enum class LOOK_want): Add HIDDEN_FRIEND and
-       HIDDEN_LAMBDA flags.
-       (lookup_name_real): Drop flags parm.
-       (lookup_qualified_name): Drop find_hidden parm.
-       * name-lookup.c (class name_lookup): Drop hidden field, adjust
-       ctors.
-       (name_lookup::add_overload): Check want for hiddenness.
-       (name_lookup::process_binding): Likewise.
+       (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.
-       (identifier_type_value_1): Adjust lookup_name_real call.
-       (set_decl_namespace): Adjust name_lookup ctor.
-       (qualify_lookup): Drop flags parm, use want for hiddenness.
-       (lookup_qualified_name): Drop find_hidden parm.
-       (lookup_name_real_1): Drop flags parm, adjust qualify_lookup
-       calls.
-       (lookup_name_real): Drop flags parm.
-       (lookup_name_nonclass, lookup_name): Adjust lookup_name_real
-       calls.
-       (lookup_type_scope_1): Adjust qualify_lookup calls.
-       * call.c (build_operator_new_call): Adjust lookup_name_real call.
-       (add_operator_candidates): Likewise.
-       * coroutines.cc (morph_fn_to_coro): Adjust lookup_qualified_name
-       call.
-       * parser.c (cp_parser_lookup_name): Adjust lookup_name_real calls.
-       * pt.c (check_explicit_specialization): Adjust
-       lookup_qualified_name call.
-       (deduction_guides_for): Likewise.
-       (tsubst_friend_class): Adjust lookup_name_real call.
-       (lookup_init_capture_pack): Likewise.
-       (tsubst_expr): Likewise, don't look in namespaces.
-       * semantics.c (capture_decltype): Adjust lookup_name_real.  Don't
-       look in namespaces.
-
-2020-08-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90254
-       PR c++/93711
-       * cp-tree.h (unsafe_return_slot_p): Declare.
-       * call.c (is_base_field_ref): Rename to unsafe_return_slot_p.
-       (build_over_call): Check unsafe_return_slot_p.
-       (build_special_member_call): Likewise.
-       * init.c (expand_default_init): Likewise.
-       * typeck2.c (split_nonconstant_init_1): Likewise.
-
-2020-08-14  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (LOOKUP_PREFER_TYPES, LOOKUP_PREFER_NAMESPACES)
-       (LOOKUP_NAMESPACES_ONLY, LOOKUP_TYPES_ONLY)
-       (LOOKUP_QUALIFIERS_ONL): Delete.
-       (LOOKUP_HIDDEN): Adjust.
-       * name-lookup.h (enum class LOOK_want): New.
-       (operator|, operator&): Overloads for it.
-       (lookup_name_real): Replace prefer_type & namespaces_only with
-       LOOK_want parm.
-       (lookup_qualified_name): Replace prefer_type with LOOK_want.
-       (lookup_name_prefer_type): Replace with ...
-       (lookup_name): ... this.  New overload with LOOK_want parm.
-       * name-lookup.c (struct name_lookup): Replace flags with want and
-       hidden fields.  Adjust constructors.
-       (name_lookyp::add_overload): Correct hidden stripping test.  Update
-       for new LOOK_want type.
-       (name_lookup::process_binding): Likewise.
-       (name_lookup::search_unqualified): Use hidden flag.
-       (identifier_type_value_1): Adjust lookup_name_real call.
-       (set_decl_namespace): Adjust name_lookup ctor.
-       (lookup_flags): Delete.
-       (qualify_lookup): Add LOOK_want parm, adjust.
-       (lookup_qualified_name): Replace prefer_type parm with LOOK_want.
-       (lookup_name_real_1): Replace prefer_type and namespaces_only with
-       LOOK_want parm.
-       (lookup_name_real): Likewise.
-       (lookup_name_nonclass, lookup_name): Adjust lookup_name_real call.
-       (lookup_name_prefer_type): Rename to ...
-       (lookup_name): ... here.  New overload with LOOK_want parm.
-       (lookup_type_scope_1): Adjust qualify_lookup calls.
-       * call.c (build_operator_new_call)
-       (add_operator_candidates): Adjust lookup_name_real calls.
-       * coroutines.cc (find_coro_traits_template_decl)
-       (find_coro_handle_template_decl, morph_fn_to_coro): Adjust
-       lookup_qualified_name calls.
-       * cp-objcp-common.c (identifier_global_tag): Likewise.
-       * decl.c (get_tuple_size, get_tuple_decomp_init): Likewise.
-       (lookup_and_check_tag): Use lookup_name overload.
-       * parser.c (cp_parser_userdef_numeric_literal): Adjust
-       lookup_qualified_name call.
-       (prefer_arg_type): Drop template_mem_access parm, return LOOK_want
-       value.
-       (cp_parser_lookup_name): Adjust lookup_member, lookup_name_real
-       calls.
-       * pt.c (check_explicit_specialization): Adjust lookup_qualified_name
-       call.
-       (tsubst_copy_and_build, tsubst_qualified_name): Likewise
-       (deduction_guides_for): Likewise.
-       (tsubst_friend_class): Adjust lookup_name_real call.
-       (lookup_init_capture, tsubst_expr): Likewise.
-       * rtti.c (emit_support_tinfos): Adjust lookup_qualified_name call.
-       * semantics.c (omp_reduction_lookup): Likewise.
-       (capture_decltype): Adjust lookup_name_real call.
-
-2020-08-13  Nathan Sidwell  <nathan@acm.org>
-
-       * name-lookup.h (enum class LOOK_where): New.
-       (operator|, operator&): Overloads for it.
-       (lookup_name_real): Replace NONCLASS & BLOCK_P parms with WHERE.
-       * name-lookup.c (identifier_type_value_w): Adjust
-       lookup_name_real call.
-       (lookup_name_real_1): Replace NONCLASS and BLOCK_P parameters
-       with WHERE bitmask. Don't search namespaces if not asked to.
-       (lookup_name_real): Adjust lookup_name_real_1 call.
-       (lookup_name_nonclass, lookup_name)
-       (lookup_name_prefer_type): Likewise.
-       * call.c (build_operator_new_call)
-       (add_operator_candidates): Adjust lookup_name_real calls.
-       * parser.c (cp_parser_lookup_name): Likewise.
-       * pt.c (tsubst_friend_class, lookup_init_capture_pack)
-       (tsubst_expr): Likewise.
-       * semantics.c (capture_decltype): Likewise.
-
-2020-08-13  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/92812
-       * typeck.c (build_static_cast_1): Implement P1975R0 by allowing
-       static_cast to aggregate type.
-
-2020-08-10  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/96497
-       * constexpr.c (cxx_eval_binary_expression): For SPACESHIP_EXPR, tail
-       call cxx_eval_constant_expression after genericize_spaceship to avoid
-       undesirable further VERIFY_CONSTANT.
-
-2020-08-10  Patrick Palka  <ppalka@redhat.com>
-
-       * pt.c (resolve_overloaded_unification): Drop functions with
-       unsatisfied constraints.
-       (resolve_nondeduced_context): Likewise.
-
-2020-08-05  Patrick Palka  <ppalka@redhat.com>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/96282
-       * constexpr.c (cxx_eval_vec_init_1): Truncate ctx->ctor and
-       then clear CONSTRUCTOR_NO_CLEARING on each appended element
-       initializer if we're initializing a previously zero-initialized
-       array object.
-
-2020-08-04  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/96082
-       * parser.c (cp_parser_elaborated_type_specifier): Allow
-       'template' following ::.
-
-2020-08-04  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_parser_explicit_specialization): Refactor
-       to avoid leak of num_template_parameter_lists value.
-
-2020-08-04  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94024
-       * init.c (sort_mem_initializers): Preserve TREE_TYPE of the
-       member initializer list node.
-       (emit_mem_initializers): Set input_location when performing each
-       member initialization.
-       * parser.c (cp_parser_mem_initializer): Attach the source
-       location of this initializer to a dummy EMPTY_CLASS_EXPR
-       within the TREE_TYPE of the list node.
-       * pt.c (tsubst_initializer_list): Preserve TREE_TYPE of the
-       member initializer list node.
-
-2020-08-03  Marek Polacek  <polacek@redhat.com>
-
-       * cp-tree.h (after_nsdmi_defaulted_late_checks): Remove.
-
-2020-08-03  Marek Polacek  <polacek@redhat.com>
-
-       DR 2032
-       PR c++/96218
-       * pt.c (check_default_tmpl_args): Also consider variable
-       templates.
-
-2020-07-31  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/96182
-       * decl.c (finish_function): In constexpr functions use for C++14 and
-       later error instead of warning if no return statement is present and
-       diagnose it regardless of warn_return_type.  Move the warn_return_type
-       diagnostics earlier in the function.
-
-2020-07-31  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/96003
-       * class.c (build_base_path): Set no-warning bit on the synthesized
-       conditional expression in static_cast.
-
-2020-07-31  Richard Biener  <rguenther@suse.de>
-
-       PR debug/96383
-       * cp-objcp-common.h (LANG_HOOKS_FINALIZE_EARLY_DEBUG):
-       Define to c_common_finalize_early_debug.
-
-2020-07-31  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96197
-       * constexpr.c (cxx_eval_constant_expression) <case CONST_DECL>:
-       Pass false to decl_constant_value and decl_really_constant_value
-       so that they don't unshare their result.
-       * cp-tree.h (decl_constant_value): New declaration with an added
-       bool parameter.
-       (decl_really_constant_value): Add bool parameter defaulting to
-       true to existing declaration.
-       * init.c (constant_value_1): Add bool parameter which controls
-       whether to unshare the initializer before returning.  Call
-       unshare_expr at most once.
-       (scalar_constant_value): Pass true to constant_value_1's new
-       bool parameter.
-       (decl_really_constant_value): Add bool parameter and forward it
-       to constant_value_1.
-       (decl_constant_value): Likewise, but instead define a new
-       overload with an added bool parameter.
-
-2020-07-30  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/64194
-       * pt.c (resolve_overloaded_unification): If the function
-       template specialization has a placeholder return type,
-       then instantiate it before attempting unification.
-
-2020-07-30  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/95486
-       * pt.c (alias_ctad_tweaks): Call remove_constraints before
-       calling set_constraints.
-
-2020-07-30  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96106
-       * pt.c (reduce_template_parm_level): Propagate DECL_VIRTUAL_P
-       from the original TEMPLATE_PARM_DECL to the new lowered one.
-
-2020-07-30  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/96164
-       * constraint.cc (constraints_satisfied_p): Return true if
-       !flags_concepts.
-       * pt.c (do_type_instantiation): Update a paragraph taken from
-       [temp.explicit] to reflect the latest specification.  Don't
-       instantiate a member with unsatisfied constraints.
-
-2020-07-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91427
-       * cp-tree.h (IMPLICIT_RVALUE_P): New.
-       (enum cp_lvalue_kind_flags): Add clk_implicit_rval.
-       (implicit_rvalue_p, set_implicit_rvalue_p): New.
-       * call.c (reference_binding): Check clk_implicit_rval.
-       (build_over_call): Adjust C++20 implicit move.
-       * coroutines.cc (finish_co_return_stmt): Simplify implicit move.
-       * except.c (build_throw): Adjust C++20 implicit move.
-       * pt.c (tsubst_copy_and_build) [STATIC_CAST_EXPR]: Propagate
-       IMPLICIT_RVALUE_P.
-       * tree.c (lvalue_kind): Set clk_implicit_rval.
-       * typeck.c (treat_lvalue_as_rvalue_p): Overhaul.
-       (maybe_warn_pessimizing_move): Adjust.
-       (check_return_expr): Adjust C++20 implicit move.
-
-2020-07-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91212
-       * call.c (build_over_call): Don't call a const ref
-       overload for implicit move.
-
-2020-07-28  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-gimplify.c (cp_genericize_r): Set IMPORTED_DECL's context.
-       * cp-objcp-common.c (cp_pushdecl): Set decl's context.
-       * decl.c (grokfndecl): Make DECL_CONTEXT setting clearer.
-
-2020-07-28  Nathan Sidwell  <nathan@acm.org>
-
-       * class.c (fixup_type_variants): Copy TYPE_SIZE and
-       TYPE_SIZE_UINIT.
-       (finish_struct): Call it.
-
-2020-07-28  Nathan Sidwell  <nathan@acm.org>
-
-       * ptree.c (cxx_print_decl): Better indentation.
-
-2020-07-28  Jakub Jelinek  <jakub@redhat.com>
-           Mark Wielaard  <mark@klomp.org>
-
-       PR c++/96328
-       * parser.c (cp_lexer_safe_previous_token): Don't call
-       cp_lexer_previous_token, instead inline it by hand and return NULL
-       instead of failing assertion if all previous tokens until the first
-       one are purged.
-       (cp_parser_error_1): Optimize - only call cp_lexer_safe_previous_token
-       if token->type is CPP_NAME.  Use cp_lexer_safe_previous_token instead
-       of cp_lexer_previous_token for the missing_token_desc != RT_NONE
-       case too.
-
-2020-07-27  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (enum cp_tree_index): Add CPTI_AS_BASE_IDENTIFIER.
-       (as_base_identifier): Define.
-       * decl.c (initialize_predifined_identifiers): Initialize as_base
-       identifier.
-       * class.c (layout_class_type): Name the as-base type.  Zap
-       NSDMI its fields may have.
-
-2020-07-22  Nathan Sidwell  <nathan@acm.org>
-
-       * class.c (maybe_add_class_template_decl_list): Don't add CONST_DECLs.
-
-2020-07-22  Nathan Sidwell  <nathan@acm.org>
-
-       * typeck.c (structural_comptypes): [DECLTYPE_TYPE] break
-       apart complex if.
-       [UNDERLYING_TYPE]: Use an if.
-       [TYPEOF_TYPE]: New.
-
-2020-07-22  Nathan Sidwell  <nathan@acm.org>
-
-       * decl.c (decls_match): Move variables into scopes
-       they're needed in.
-       (duplicate_decls): Use STRIP_TEMPLATE.
-       (build_typename_type): Move var decls to their assignments.
-       (begin_function_body): Likewise.
-       * decl2.c (get_guard): Likewise.
-       (mark_used): Use true for truthiness.
-       * error.c (dump_aggr_type): Hold the decl in a var called
-       'decl', not 'name'.
-
-2020-07-22  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (struct tree_lambda_expr): Shrink
-       default_capture_mode & discriminator.
-
-2020-07-22  Nathan Sidwell  <nathan@acm.org>
-
-       * mangle.c (decl_is_template_id): Rename to ...
-       (maybe_template_info): ... here.  Return the template info,
-       rather than use a pointer.  Adjust all callers.
-       (find_substitution): Use template_args_equal, rather than
-       local check.
-
-2020-07-22  Tobias Burnus  <tobias@codesourcery.com>
-
-       * parser.c (cp_parser_omp_clause_hint): Require nonnegative hint.
-       (cp_parser_omp_critical): Permit hint(0) clause without named critical.
-       * pt.c (tsubst_expr): Re-check the latter for templates.
-
-2020-07-21  Sunil K Pandey  <skpgkp2@gmail.com>
-
-       PR target/95237
-       * decl.c (cp_finish_decl): Call target hook
-       lower_local_decl_alignment to lower local decl alignment.
-
-2020-07-21  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_lexer_consume_token): Drop PRAGMA_EOL assert.
-       (cp_parser_skip_to_closing_parenthesis_1): Only pass start token
-       to pragma skipper if recovering.
-       (cp_parser_skip_to_pragma_eol): Only purge and change pragma
-       state when recovering.
-
-2020-07-20  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (type_dependent_expression_p): A pseudo-dtor can be
-       dependent.
-       * semantics.c (finish_call_expr): Use build_trivial_dtor_call for
-       pseudo-destructor.
-       (finish_pseudo_destructor_expr): Leave type NULL for dependent arg.
-
-2020-07-20  Jason Merrill  <jason@redhat.com>
-
-       * mangle.c (write_base_ref): New.
-       (write_expression): Use it for base field COMPONENT_REFs.
-       * pt.c (invalid_tparm_referent_p): Canonicalize the type
-       of array offsets.  Allow subobjects.
-
-2020-07-20  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (collect_ctor_idx_types): Add 'const' when deducing from
-       a string constant.
-
-2020-07-17  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/79815
-       * decl.c (grokdeclarator): Detect cv-qual decltype(auto).
-       * pt.c (do_auto_deduction): Likewise.
-
-2020-07-16  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/95591
-       PR c++/95599
-       PR c++/95823
-       PR c++/95824
-       PR c++/95895
-       * coroutines.cc (struct coro_ret_data): Delete.
-       (coro_maybe_expand_co_return): Delete.
-       (co_return_expander): Delete.
-       (expand_co_returns): Delete.
-       (co_await_find_in_subtree): Remove unused name.
-       (build_actor_fn): Remove unused parm, remove handling
-       for co_return expansion.
-       (register_await_info): Demote duplicate info message to a
-       warning.
-       (coro_make_frame_entry): Move closer to use site.
-       (struct susp_frame_data): Add fields for final suspend label
-       and a flag to indicate await expressions with initializers.
-       (captures_temporary): Delete.
-       (register_awaits): Remove unused code, update comments.
-       (find_any_await): New.
-       (tmp_target_expr_p): New.
-       (struct interesting): New.
-       (find_interesting_subtree): New.
-       (struct var_nest_node): New.
-       (flatten_await_stmt): New.
-       (handle_nested_conditionals): New.
-       (process_conditional): New.
-       (replace_statement_captures): Rename to...
-       (maybe_promote_temps): ... this.
-       (maybe_promote_captured_temps): Delete.
-       (analyze_expression_awaits): Check for await expressions with
-       initializers.  Simplify handling for truth-and/or-if.
-       (expand_one_truth_if): Simplify (map cases that need expansion
-       to COND_EXPR).
-       (await_statement_walker): Handle CO_RETURN_EXPR. Simplify the
-       handling for truth-and/or-if expressions.
-       (register_local_var_uses): Ensure that we create names in the
-       implementation namespace.
-       (morph_fn_to_coro): Add final suspend label to suspend frame
-       callback data and remove it from the build_actor_fn call.
-
-2020-07-16  Marek Polacek  <polacek@redhat.com>
-
-       * call.c (convert_like): Remove macro and introduce a new
-       wrapper instead.
-       (convert_like_with_context): Likewise.
-       (convert_like_real): Rename to convert_like.
-       (convert_like_real_1): Rename to convert_like_internal.  Call
-       convert_like instead of convert_like_real therein.
-       (perform_direct_initialization_if_possible): Call convert_like
-       instead of convert_like_real.
-
-2020-07-16  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc: Correct some spelling errors
-       in comments.
-
-2020-07-15  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_parser_declaration): Avoid copying tokens.
-       (cp_parser_block_declaration): RAII token pointer.
-
-2020-07-15  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_parser_skip_to_closing_parenthesis_1): Deal with
-       meeting a deferred pragma.
-       (cp_parser_skip_to_end_of_statement): Likewise.
-       (cp_parser_skip_to_end_of_block_or_statement): Likewise.
-       (cp_parser_skip_to_pragma_eol): We should never meet EOF.
-       (cp_parser_omp_declare_simd): Likewise.
-       (cp_parser_omp_declare_reduction, cp_parser_oacc_routine)
-       (pragma_lex): Likewise.
-
-2020-07-14  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/95789
-       PR c++/96104
-       PR c++/96179
-       * call.c (convert_like_real_1): Renamed from convert_like_real.
-       (convert_like_real): New wrapper for convert_like_real_1.
-
-2020-07-14  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_lexer_alloc): Do not deal with PCH here.
-       (cp_lexer_new_main): Deal with PCH here.  Store the tokens directly
-       into the buffer.
-       (cp_lexer_new_from_tokens): Assert last token isn't purged either.
-       (cp_lexer_get_preprocessor_token): Change first arg to flags, adjust.
-       (cp_parser_new): Pass the lexer in, don't create it here.
-       (cp_parser_translation_unit): Initialize access checks here.
-       (cp_parser_initial_pragma): First token is provided by caller,
-       don't deal with PCH stopping here.  Adjust error message.
-       (c_parse_file): Adjust, change error message to avoid C++20 module
-       confusion.
-
-2020-07-14  Nathan Sidwell  <nathan@acm.org>
-
-       * ptree.c (cxx_print_type): Add TYPEOF_TYPE and BASES.
-
-2020-07-14  Nathan Sidwell  <nathan@acm.org>
-
-       * class.c (build_base_field_1): Cache CLASSTYPE_AS_BASE.
-       (build_self_reference): Rename value -> decl.
-       (dump_class_hierarchy_1): Cache CLASSTYPE_AS_BASE.
-
-2020-07-14  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/95820
-       * decl.c (grokdeclarator) <case cdk_function>: Check also
-       pointers/references/... to functions.
-
-2020-07-14  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h: Correct some tree lang flag comments,
-       reformat some structure definitions.  Note some structure
-       sizes.  Clarify some comments.
-       (yyungetc): Delete.  Not been a thing for some time.
-       * class.c (copy_fndecl_with_name): Comment.
-       (check_bases_and_members): Unnecessary {}.
-       (layout_class_type): Comment.
-       * cp-tree.def (UNBOUND_CLASS_TEMPLATE): Adjust comment.
-       * decl.c:  Fix some formatting & whitespace issues.
-       (function_requirements_equivalent_p): Note why
-       substitutions are needed.
-       * decl2.c (no_linkage_error): Note that heroics about
-       'typedef struct { ... };' are no longer needed.
-       * method.c: Whitespace.
-       * name-lookup.c: Whitespace.
-       (add_decl_to_level): Reformat a line.
-       (print_binding_stack): Mark as DEBUG_FUNCTION.
-       (has_using_namespace_std_directive_p): Delete comment.
-       * pt.c: Whitespace
-       * ptree.c: Whitespace.
-       * rtti.c: Whitespace & comment.
-       * tree.c: Comment.
-       * typeck.c (structural_comptypes): Add comment.
-
-2020-07-13  Nathan Sidwell  <nathan@acm.org>
-
-       * Make-lang.in (c++.disclean): Likewise.
-
-2020-07-13  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/96077
-       * parser.c (cp_parser_enum_specifier): Commit to tentative parse
-       after we've seen an opening brace.
-
-2020-07-10  Jason Merrill  <jason@redhat.com>
 
-       * tree.c (structural_type_p): Allow unions.
-       * mangle.c (write_expression): Express unions with a designator.
+2021-03-12  Jakub Jelinek  <jakub@redhat.com>
 
-2020-07-10  Jason Merrill  <jason@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.
 
-       * pt.c (convert_nontype_argument): Handle REAL_TYPE.
-       (invalid_nontype_parm_type_p): Allow all structural types.
-       * tree.c (structural_type_p): Use SCALAR_TYPE_P.
+2021-03-11  Nathan Sidwell  <nathan@acm.org>
 
-2020-07-10  Jason Merrill  <jason@redhat.com>
+       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.
 
-       PR c++/96105
-       PR c++/96052
-       PR c++/95976
-       * class.c (check_field_decls): An array of empty classes is not an
-       empty data member.
-       (layout_empty_base_or_field): Handle explicit alignment.
-       Fix union handling.
+2021-03-11  Nathan Sidwell  <nathan@acm.org>
 
-2020-07-09  Julian Brown  <julian@codesourcery.com>
-           Thomas Schwinge  <thomas@codesourcery.com>
+       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.
 
-       PR middle-end/95270
-       * semantics.c (finish_omp_clauses): Likewise.
+2021-03-10  Nathan Sidwell  <nathan@acm.org>
 
-2020-07-09  Patrick Palka  <ppalka@redhat.com>
+       PR c++/99423
+       * module.cc (post_load_processing): Assert not gcable.
+       (laxy_load_pendings): Extend no-gc region around
+       post_load_processing.
 
-       PR c++/96132
-       * constexpr.c (potential_constant_expression_1) <case PARM_DECL>:
-       Restore dependent_type_p check that guarded the call to
-       is_really_empty_class.
+2021-03-10  Nathan Sidwell  <nathan@acm.org>
 
-2020-07-08  Patrick Palka  <ppalka@redhat.com>
+       PR c++/99508
+       * decl.c (make_rtl_for_nonlocal_decl): Propagate local-extern's
+       assembler name to the ns alias.
 
-       PR c++/95497
-       * constexpr.c (potential_constant_expression_1) <case PARM_DECL>:
-       When processing_template_decl, check COMPLETE_TYPE_P before
-       calling is_really_empty_class.  Don't check dependent_type_p.
+2021-03-09  Jakub Jelinek  <jakub@redhat.com>
 
-2020-07-08  Marek Polacek  <polacek@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.
 
-       PR c++/96103
-       * parser.c (cp_parser_decltype): Print error about using decltype(auto)
-       in C++11.  Check that the token following "auto" is ")".
+2021-03-09  Nathan Sidwell  <nathan@acm.org>
 
-2020-07-07  Patrick Palka  <ppalka@redhat.com>
+       PR c++/99472
+       * parser.c (cp_parser_diagnose_invalid_type_name): Clarify
+       that C++20 does not yet imply modules.
 
-       PR c++/95303
-       * cxx-pretty-print.c (pp_cxx_unqualified_id): Check
-       PRIMARY_TEMPLATE_P before printing the innermost template
-       arguments.
+2021-03-08  Nathan Sidwell  <nathan@acm.org>
 
-2020-07-07  Martin Sebor  <msebor@redhat.com>
+       PR c++/99436
+       * name-lookup.c (get_cxx_dialect_name): Add cxx23.
 
-       PR c++/96063
-       * parser.c (class_decl_loc_t::diag_mismatched_tags): Print notes only
-       if warning_at returns nonzero.
+2021-03-08  Nathan Sidwell  <nathan@acm.org>
 
-2020-07-06  Martin Sebor  <msebor@redhat.com>
+       * lex.c (module_token_filter::resume): Ignore module-decls inside
+       header-unit.
+       * parser.c (cp_parser_module_declaration): Reject in header-unit.
 
-       PR c++/95984
-       * call.c (build_over_call): Check calls only when tf_warning is set.
+2021-03-08  Nathan Sidwell  <nathan@acm.org>
 
-2020-07-06  Nathan Sidwell  <nathan@acm.org>
-
-       * decl.c (push_library_fn): Return the decl pushdecl_toplevel returns.
-       * except.c (verify_library_fn): Replace with ...
-       (declare_library_fn_1): ... this fn.  Always push the fn.
-       (declare_library_fn): Call it.
-       (build_throw): Call declare_library_fn_1.
+       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.
 
-2020-07-06  Jonathan Wakely  <jwakely@redhat.com>
+2021-03-06  Patrick Palka  <ppalka@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/96068
-       * parser.c (cp_parser_toplevel_declaration): Only do pedwarn for
-       empty-declaration in C++98.
+       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'.
 
-2020-07-02  Jason Merrill  <jason@redhat.com>
+2021-03-06  Patrick Palka  <ppalka@redhat.com>
            Jakub Jelinek  <jakub@redhat.com>
 
-       * decl.c (grokfndecl): Allow consteval virtual.
-       * search.c (check_final_overrider): Check consteval mismatch.
-       * constexpr.c (cxx_eval_thunk_call): New.
-       (cxx_eval_call_expression): Call it.
-       * cvt.c (cp_get_fndecl_from_callee): Handle FDESC_EXPR.
-       * decl2.c (mark_vtable_entries): Track vtables with consteval.
-       (maybe_emit_vtables): Pass consteval_vtables through.
-       (clear_consteval_vfns): Replace consteval with nullptr.
-       (c_parse_final_cleanups): Call it.
-
-2020-07-01  Nathan Sidwell  <nathan@acm.org>
-
-       * class.c (copy_fndecl_with_name): Add additional predicate args, do
-       not deduce them locally.
-       (copy_operator_fn): Adjust copy_fndecl_with_name call.
-       (build_clone): Add vtt and inherited predicate args.  Pass through
-       to copy_fndecl_with_name call.
-       (build_cdtor_clones): Likewise, pass through to build_clone as
-       needed.
-       (build_cdtor): Determine vtt and inherited here.
-       * cp-tree.h (DECL_NEEDS_CTT_PARM_P): Delete.
-
-2020-06-30  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (copy_fndecl_with_name): Rename to ...
-       (copy_operatorn_fn): ... this.  Change arg type.
-       (clone_function_decl): Rename to ...
-       (clone_cdtor): ... this.
-       * class.c (copy_fndecl_with_name): Make static.
-       (copy_operator_fn): New wrapper.
-       (build_clones): Rename to ...
-       (build_cdtor_clones): ... this.
-       (clone_function_decl): Rename to ...
-       (clone_cdtor): ... this.  Adjust build_clones calls.
-       (clone_constructors_and_destructors): Adjust clone_function_decl
-       calls.
-       * method.c (implicitly_declare_fn): Adjust copy_fndecl_with_name
-       call.
-       (lazily_declare_fn): Adjust clone_function_decl call.
-       * pt.c (tsubst_function_decl): Likewise.
-       (instantiate_template_1): Likewise.
+       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.
 
-2020-06-30  Iain Sandoe  <iain@sandoe.co.uk>
+2021-03-06  Patrick Palka  <ppalka@redhat.com>
 
-       * coroutines.cc (morph_fn_to_coro): Remove trailing
-       space in a diagnostic.
+       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.
 
-2020-06-30  Iain Sandoe  <iain@sandoe.co.uk>
+2021-03-05  Marek Polacek  <polacek@redhat.com>
 
-       * coroutines.cc (expand_one_await_expression): Remove
-       code dealing with initial suspend.
-       (build_actor_fn): Remove code special-casing initial
-       and final suspend. Handle the final suspend and marking
-       of the coroutine as done.
-       (coro_rewrite_function_body): New.
-       (bind_expr_find_in_subtree): Remove.
-       (coro_body_contains_bind_expr_p): Remove.
-       (morph_fn_to_coro): Split the rewrite of the original
-       function into coro_rewrite_function_body and call it.
+       PR c++/99374
+       * call.c (standard_conversion): When converting pointers to
+       member, don't return NULL when the bases are equivalent but
+       incomplete.
 
-2020-06-29  Marek Polacek  <polacek@redhat.com>
+2021-03-05  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/94553
-       * decl.c (duplicate_decls): Make sure a concept or a variable
-       template is unique in its declarative region.
+       PR c++/99120
+       * name-lookup.c (check_local_shadow): Check if the type of decl
+       is non-null before checking TYPE_PTR*.
 
-2020-06-29  Marek Polacek  <polacek@redhat.com>
+2021-03-05  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/95568
-       * pt.c (collect_ctor_idx_types): Use TREE_TYPE.
+       PR c++/99245
+       * module.cc (module_state::write_cluster): Relax binding assert.
 
-2020-06-28  Iain Sandoe  <iain@sandoe.co.uk>
+2021-03-05  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/95711
-       * coroutines.cc (register_local_var_uses): Skip past
-       namespace decls.
+       PR c++/99377
+       * pt.c (instantiate_decl): Call set_instantiating_module.
 
-2020-06-27  Iain Sandoe  <iain@sandoe.co.uk>
+2021-03-05  Iain Sandoe  <iain@sandoe.co.uk>
 
-       PR c++/95736
-       * coroutines.cc (get_awaitable_var): New helper.
-       (build_co_await): Check more carefully before
-       copying an awaitable.
-       (expand_one_await_expression): No initializer
-       is required when the awaitable is not a temp.
-       (register_awaits): Remove handling that is now
-       completed when the await expression is built.
+       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.
 
-2020-06-27  Iain Sandoe  <iain@sandoe.co.uk>
+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.
 
-       * coroutines.cc (morph_fn_to_coro): Diagnose unavailable
-       get_return_object_on_allocation_failure.
+2021-03-01  Nathan Sidwell  <nathan@acm.org>
 
-2020-06-26  Iain Sandoe  <iain@sandoe.co.uk>
+       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.
 
-       PR c++/95519
-       * coroutines.cc (struct coroutine_info):Add a field
-       to hold computed p.return_void expressions.
-       (coro_build_promise_expression): New.
-       (get_coroutine_return_void_expr): New.
-       (finish_co_yield_expr): Build the promise expression
-       using coro_build_promise_expression.
-       (finish_co_return_stmt): Likewise.
-       (build_init_or_final_await): Likewise.
-       (morph_fn_to_coro): Likewise, for several cases.
+2021-02-27  Jason Merrill  <jason@redhat.com>
 
-2020-06-26  Iain Sandoe  <iain@sandoe.co.uk>
+       PR c++/90333
+       * parser.c (cp_parser_lambda_declarator_opt): Accept GNU attributes
+       between () and ->.
 
-       * coroutines.cc (morph_fn_to_coro): Handle error
-       returns in building g-r-o-o-a-f expressions.
+2021-02-26  Jakub Jelinek  <jakub@redhat.com>
 
-2020-06-24  Nicholas Krause  <xerofoify@gmail.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.
 
-       PR c++/95672
-       * typeck2.c (cxx_incomplete_type_diagnostic): Add missing
-       TYPE_EXPANSION_PACK check for diagnosing incomplete types in
-       cxx_incomplete_type_diagnostic.
+2021-02-26  Jakub Jelinek  <jakub@redhat.com>
 
-2020-06-24  Iain Sandoe  <iain@sandoe.co.uk>
+       PR c++/95451
+       * lambda.c (is_lambda_ignored_entity): Before checking for
+       LAMBDA_FUNCTION_P, use OVL_FIRST.  Drop FUNCTION_DECL check.
 
-       PR c++/95518
-       PR c++/95813
-       * coroutines.cc (act_des_fn): Copy function
-       attributes onto the outlined coroutine helpers.
+2021-02-26  Jason Merrill  <jason@redhat.com>
 
-2020-06-24  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.
 
-       * call.c (build_over_call): Only call build_base_path once.
+2021-02-26  Patrick Palka  <ppalka@redhat.com>
 
-2020-06-24  Jason Merrill  <jason@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.
 
-       PR c++/95719
-       * call.c (build_over_call): Look up the overrider in base_binfo.
-       * class.c (lookup_vfn_in_binfo): Look through BINFO_PRIMARY_P.
+2021-02-25  Patrick Palka  <ppalka@redhat.com>
 
-2020-06-23  Jason Merrill  <jason@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.
 
-       PR c++/93976
-       Implement C++20 P2082R1, Fixing CTAD for aggregates.
-       * cp-tree.h (TPARMS_PRIMARY_TEMPLATE): Split out from...
-       (DECL_PRIMARY_TEMPLATE): ...here.
-       (builtin_guide_p): Declare.
-       * decl.c (reshape_init_class): Handle bases of a template.
-       (reshape_init_r): An array with dependent bound takes a single
-       initializer.
-       * pt.c (tsubst_default_argument): Shortcut {}.
-       (unify_pack_expansion): Allow omitted arguments to trailing pack.
-       (builtin_guide_p): New.
-       (collect_ctor_idx_types): Give a trailing pack a {} default
-       argument.  Handle arrays better.
+2021-02-25  Patrick Palka  <ppalka@redhat.com>
 
-2020-06-23  Iain Sandoe  <iain@sandoe.co.uk>
+       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.
 
-       PR c++/95477
-       * coroutines.cc (morph_fn_to_coro): Apply a cleanup to
-       the get return object when the DTOR is non-trivial.
+2021-02-25  Marek Polacek  <polacek@redhat.com>
 
-2020-06-20  Iain Sandoe  <iain@sandoe.co.uk>
+       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.
 
-       PR c++/95505
-       * coroutines.cc (morph_fn_to_coro): Update handling of
-       get-return-object-on-allocation-fail and diagnose missing
-       std::nothrow.
+2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
 
-2020-06-20  Jason Merrill  <jason@redhat.com>
+       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.
 
-       * call.c (joust): Only compare constraints for non-template
-       candidates with matching parameters.
-       * pt.c (tsubst_pack_expansion): Fix getting a type parameter
-       pack.
-       (more_specialized_fn): Only compare constraints for candidates with
-       matching parameters.
+2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
 
-2020-06-19  Jason Merrill  <jason@redhat.com>
+       PR c++/95822
+       * coroutines.cc (morph_fn_to_coro): Unconditionally remove any
+       set throwing_cleanup marker.
 
-       * method.c (early_check_defaulted_comparison): Allow defaulting
-       comparison outside class.  Complain if non-member operator isn't a
-       friend.
+2021-02-25  Nathan Sidwell  <nathan@acm.org>
 
-2020-06-18  Jason Merrill  <jason@redhat.com>
+       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.
 
-       * method.c (early_check_defaulted_comparison): Check for &&.
-       (build_comparison_op): Allow empty union.  Diagnose non-category
-       type.
-       (common_comparison_type): Remove handling for non-category type.
+2021-02-25  Nathan Sidwell  <nathan@acm.org>
 
-2020-06-18  Marek Polacek  <polacek@redhat.com>
+       PR c++/98318
+       * mapper-client.cc (module_client::open_module_client): Fix typo
+       of fd init.
 
-       PR c++/95735
-       * pt.c (finish_template_variable): Return if
-       coerce_innermost_template_parms return error_mark_node.
+2021-02-24  Nathan Sidwell  <nathan@acm.org>
 
-2020-06-18  Marek Polacek  <polacek@redhat.com>
+       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.
 
-       PR c++/95728
-       * pt.c (tsubst_copy_and_build) <case NEW_EXPR>: Return error_mark_node
-       if placement is erroneous.
+2021-02-24  Iain Sandoe  <iain@sandoe.co.uk>
 
-2020-06-17  Jonathan Wakely  <jwakely@redhat.com>
+       PR c++/96251
+       * coroutines.cc (coro_common_keyword_context_valid_p): Suppress
+       error reporting when instantiating for a constexpr.
 
-       PR c++/66159
-       * parser.c (cp_parser_elaborated_type_specifier): Do not warn
-       unless in a declaration.
+2021-02-23  Nathan Sidwell  <nathan@acm.org>
 
-2020-06-17  Jason Merrill  <jason@redhat.com>
+       PR c++/99208
+       * decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER
+       identity.
 
-       * cp-tree.h (copy_fndecl_with_name): Declare.
-       * class.c (copy_fndecl_with_name): Split out from...
-       (build_clone): ...here.
-       (add_implicitly_declared_members): Add op== to TYPE_FIELDS.
-       * method.c (implicitly_declare_fn): Use copy_fndecl_with_name.
+2021-02-23  Patrick Palka  <ppalka@redhat.com>
 
-2020-06-17  Jason Merrill  <jason@redhat.com>
+       PR c++/95468
+       * pt.c (tsubst_copy_and_build) <case BASELINK>: New case, copied
+       over from tsubst_copy.
 
-       * call.c (build_new_op_1): Don't look for a CALL_EXPR when
-       calling a consteval function.
+2021-02-23  Patrick Palka  <ppalka@redhat.com>
 
-2020-06-17  Jason Merrill  <jason@redhat.com>
+       * pt.c (instantiation_dependent_expression_p): Check
+       processing_template_decl before calling
+       potential_constant_expression.
 
-       * decl2.c (grokfield): Pass SD_DEFAULTED and SD_DELETED.
-       * decl.c (duplicate_decls): Reduce error for delete
-       after earlier declaration to pedwarn.
+2021-02-22  Nathan Sidwell  <nathan@acm.org>
 
-2020-06-17  Marek Polacek  <polacek@redhat.com>
+       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.
 
-       PR c++/95508
-       * constexpr.c (maybe_fold_non_dependent_expr): New.
-       * cp-tree.h (maybe_fold_non_dependent_expr): Declare.
-       * typeck.c (cp_build_array_ref): Call maybe_fold_non_dependent_expr
-       instead of maybe_constant_value.
+2021-02-22  Nathan Sidwell  <nathan@acm.org>
 
-2020-06-16  Marek Polacek  <polacek@redhat.com>
+       PR c++/99153
+       * decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation
+       to common-path.
+       * module.cc (set_defining_module): Add assert.
 
-       PR c++/95369
-       * call.c (add_list_candidates): Return if a designated initializer
-       is used with a non-aggregate.
-       (implicit_conversion_error): Give an error for the case above.
+2021-02-19  Nathan Sidwell  <nathan@acm.org>
 
-2020-06-16  Marek Polacek  <polacek@redhat.com>
+       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.
 
-       PR c++/95560
-       * name-lookup.c (check_local_shadow): Check if types are
-       non-null before calling same_type_p.
+2021-02-19  Nathan Sidwell  <nathan@acm.org>
 
-2020-06-16  Jakub Jelinek  <jakub@redhat.com>
+       * 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.
 
-       * semantics.c (handle_omp_for_class_iterator): Adjust
-       c_omp_check_loop_iv_exprs caller.
-       (finish_omp_for): Likewise.  Don't call fold_build_cleanup_point_expr
-       before calling c_finish_omp_for and c_omp_check_loop_iv, move it
-       after those calls.
-       * pt.c (tsubst_omp_for_iterator): Handle non-rectangular loops.
+2021-02-19  Jason Merrill  <jason@redhat.com>
 
-2020-06-16  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/96926
+       * call.c (perfect_conversion_p): Limit rvalueness
+       test to reference bindings.
 
-       * parser.c (cp_parser_omp_clause_schedule): Reject modifier separated
-       from kind by comma rather than colon.
+2021-02-19  Jason Merrill  <jason@redhat.com>
 
-2020-06-16  Patrick Palka  <ppalka@redhat.com>
+       PR c++/96926
+       * call.c (perfect_conversion_p): New.
+       (perfect_candidate_p): New.
+       (add_candidates): Ignore templates after a perfect non-template.
 
-       * pt.c (perform_instantiation_time_access_checks): No need to
-       tsubst into decl.
-       * semantics.c (enforce_access): Verify that decl is not
-       dependent.
+2021-02-18  Nathan Sidwell  <nathan@acm.org>
 
-2020-06-16  Patrick Palka  <ppalka@redhat.com>
+       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.
 
-       PR c++/41437
-       PR c++/47346
-       * cp-tree.h (qualified_typedef_usage_s): Delete.
-       (qualified_typedef_usage_t): Delete.
-       (deferred_access_check): Move up in file.
-       (tree_template_info::typedefs_needing_access_checking): Delete.
-       (tree_template_info::deferred_access_checks): New field.
-       (TI_TYPEDEFS_NEEDING_ACCESS_CHECKING): Rename to ...
-       (TI_DEFERRED_ACCESS_CHECKS): ... this, and adjust accordingly.
-       * pt.c (perform_typedefs_access_check): Rename to ...
-       (perform_instantiation_time_access_checks): ... this, and adjust
-       accordingly.  Remove unnecessary tree tests.
-       (instantiate_class_template_1): Adjust accordingly.
-       (instantiate_decl): Likewise.
-       * semantics.c (enforce_access): Likewise.
-
-2020-06-16  Patrick Palka  <ppalka@redhat.com>
+2021-02-18  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/41437
-       PR c++/47346
-       * call.c (enforce_access): Move to semantics.c.
-       * cp-tree.h (enforce_access): Delete.
-       (get_types_needing_access_check): Delete.
-       (add_typedef_to_current_template_for_access_check): Delete.
-       * decl.c (make_typename_type): Adjust accordingly.  Use
-       check_accessibility_of_qualified_id instead of directly using
-       perform_or_defer_access_check.
-       * parser.c (cp_parser_template_declaration_after_parameters):
-       Don't push a dk_no_check access state when parsing a template.
-       * pt.c (get_types_needing_access_check): Delete.
-       (append_type_to_template_for_access_check_1): Delete.
-       (perform_typedefs_access_check): Adjust.  If type_decl is a
-       FIELD_DECL, also check its DECL_CONTEXT for dependence. Use
-       tsubst_copy instead of tsubst to substitute into type_decl so
-       that we substitute into the DECL_CONTEXT of a FIELD_DECL.
-       (append_type_to_template_for_access_check): Delete.
-       * search.c (accessible_p): Remove the processing_template_decl
-       early exit.
-       * semantics.c (enforce_access): Moved from call.c.  If we're
-       parsing a template and the access check failed, add the check to
-       TI_TYPEDEFS_NEEDING_ACCESS_CHECKING.
-       (perform_or_defer_access_check): Adjust comment.
-       (add_typedef_to_current_template_for_access_check): Delete.
-       (check_accessibility_of_qualified_id):  Adjust accordingly.
-       Exit early if the scope is dependent.
-
-2020-06-11  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/93467
-       * constraint.cc (associate_classtype_constraints): If there is a
-       discrepancy between the current template depth and the template
-       depth of the original declaration, then adjust the template
-       parameter depth within the current constraints appropriately.
-       * pt.c (tsubst_friend_class): Substitute into and set the
-       constraints on the injected declaration.
-
-2020-06-11  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (instantiate_coro_traits): Pass a reference
-       to lambda closure objects to traits instantiation.
-       (morph_fn_to_coro): Likewise for promise parameter
-       preview and allocator lookup.
-
-2020-06-10  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/95440
-       * call.c (add_candidates): Use vec_safe_length() for
-       testing the arguments list.
-       (build_new_method_call_1): Use vec_safe_is_empty() when
-       checking for an empty args list.
-
-2020-06-10  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/95562
-       * parser.c (cp_parser_direct_declarator): Clear
-       CP_PARSER_FLAGS_DELAY_NOEXCEPT if the declarator kind is not
-       cdk_id.
-
-2020-06-09  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/95137
-       * coroutines.cc (expand_one_await_expression): Build separate
-       DTOR trees for the awaitable object on the destroy and resume
-       paths.
-
-2020-06-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/95552
-       * cp-gimplify.c (predeclare_vla): Only predeclare a VLA if it's
-       wrapped in a pointer type.
-
-2020-06-05  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/95369
-       * call.c (build_converted_constant_expr_internal): Allow
-       list-initialization.
+       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.
 
-2020-06-05  Iain Sandoe  <iain@sandoe.co.uk>
+2021-02-17  Nathan Sidwell  <nathan@acm.org>
 
-       * cp-tree.def (CO_RETURN_EXPR): Correct the class
-       to use tcc_statement.
+       PR c++/99023
+       * module.cc (struct macro_export): Add GTY markers.
+       (macro_exports): Likewise, us a va_gc Vector.
 
-2020-06-05  Jason Merrill  <jason@redhat.com>
+2021-02-17  Jakub Jelinek  <jakub@redhat.com>
 
-       * error.c (dump_binary_op): Handle negative operand to
-       POINTER_PLUS_EXPR.
+       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.
 
-2020-06-04  Jason Merrill  <jason@redhat.com>
+2021-02-17  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/93310
-       * constexpr.c (cxx_eval_constant_expression) [OBJ_TYPE_REF]:
-       Evaluate OBJ_TYPE_REF_EXPR.
+       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.
 
-2020-06-04  Jason Merrill  <jason@redhat.com>
+2021-02-17  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/95158
-       * class.c (lookup_vfn_in_binfo): New.
-       * call.c (build_over_call): Use it.
-       * cp-tree.h (resolves_to_fixed_type_p): Add default argument.
-       (lookup_vfn_in_binfo): Declare.
+       PR c++/99071
+       * name-lookup.c (maybe_record_mergeable_decl): Deref the correct
+       pointer.
 
-2020-06-04  Iain Sandoe  <iain@sandoe.co.uk>
+2021-02-17  Patrick Palka  <ppalka@redhat.com>
 
-       PR c++/95346
-       * coroutines.cc (morph_fn_to_coro): Ensure that the get-
-       return-object is constructed correctly; When it is not the
-       final return value, pass it to the CTOR of the return type
-       as an rvalue, per the standard comment.
+       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.
 
-2020-06-04  Jakub Jelinek  <jakub@redhat.com>
+2021-02-11  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/82304
-       PR c++/95307
-       * constexpr.c (cxx_eval_constant_expression): Diagnose CONVERT_EXPR
-       conversions from pointer types to arithmetic types here...
-       (cxx_eval_outermost_constant_expr): ... instead of here.
+       PR c++/95888
+       * pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking
+       for the partial instantiation.
 
-2020-06-03  Mark Wielaard  <mark@klomp.org>
+2021-02-11  Jakub Jelinek  <jakub@redhat.com>
 
-       * parser.c (cp_lexer_safe_previous_token): New function.
-       (cp_parser_error_1): Add name_hint if the previous token is
-       a string literal and next token is a CPP_NAME and we have a
-       missing header suggestion for the name.
+       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.
 
-2020-06-03  Patrick Palka  <ppalka@redhat.com>
+2021-02-11  Marek Polacek  <polacek@redhat.com>
 
-       * pt.c (process_partial_specialization): Pass the full set of
-       generic template arguments to strictly_subsumes.
+       PR c++/99063
+       * semantics.c (finish_do_stmt): Check for unexpanded parameter packs.
 
-2020-06-03  Patrick Palka  <ppalka@redhat.com>
+2021-02-11  Patrick Palka  <ppalka@redhat.com>
 
-       PR c++/92103
-       * pt.c (most_specialized_partial_spec): Reorganize the loop over
-       DECL_TEMPLATE_SPECIALIZATIONS.  Check constraints_satisfied_p on
-       the original template declaration, not on the tsubsted one.
+       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.
 
-2020-06-03  Iain Sandoe  <iain@sandoe.co.uk>
+2021-02-11  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/95345
-       * coroutines.cc (finish_co_await_expr): Revise to allow for
-       parameter packs.
-       (finish_co_yield_expr): Likewise.
+       * parser.c (cp_parser_selection_statement): Use vec_free.
 
-2020-06-03  Jason Merrill  <jason@redhat.com>
+2021-02-10  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/95232
-       * cp-tree.h (predeclare_vla): Declare.
-       * cp-gimplify.c (predeclare_vla): Handle getting a decl.
-       * pt.c (tsubst_expr) [DECL_EXPR]: Use it.
+       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.
 
-2020-06-03  Tobias Burnus  <tobias@codesourcery.com>
+2021-02-10  Nathan Sidwell  <nathan@acm.org>
 
-       * cp-gimplify.c (cxx_omp_predetermined_mapping): New.
-       * cp-objcp-common.h (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redfine.
-       * cp-tree.h (cxx_omp_predetermined_mapping): Declare.
+       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.
 
-2020-06-02  Jason Merrill  <jason@redhat.com>
+2021-02-09  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/95193
-       * pt.c (tsubst_decl): Relax assert.
+       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.
 
-2020-06-02  Iain Sandoe  <iain@sandoe.co.uk>
+2021-02-09  Jason Merrill  <jason@redhat.com>
 
-       PR c++/95050
-       * coroutines.cc (build_co_await): Wrap the co_await expression
-       in a TARGET_EXPR, where needed.
-       (finish_co_yield_expr): Likewise.
+       PR c++/96905
+       * pt.c (mark_decl_instantiated): Exit early if consteval.
 
-2020-06-02  Patrick Palka  <ppalka@redhat.com>
+2021-02-09  Jason Merrill  <jason@redhat.com>
 
-       PR c++/92633
-       PR c++/92838
-       * pt.c (tsubst_function_decl): Don't do set_constraints when
-       regenerating a lambda.
-       (tsubst_lambda_expr): Substitute into the lambda's constraints
-       and do set_constraints here.
+       PR c++/98326
+       PR c++/20408
+       * cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref
+       parm.
 
-2020-06-01  Jason Merrill  <jason@redhat.com>
+2021-02-09  Jason Merrill  <jason@redhat.com>
 
-       PR c++/95466
-       PR c++/95311
-       PR c++/95221
-       * class.c (build_vfn_ref): Revert 95311 change.
-       * cp-ubsan.c (cp_ubsan_maybe_instrument_member_call): Build a
-       COMPOUND_EXPR.
+       PR c++/98994
+       PR c++/97566
+       * constexpr.c (cxx_eval_store_expression): Only skip empty fields in
+       RECORD_TYPE.
 
-2020-06-01  Iain Sandoe  <iain@sandoe.co.uk>
+2021-02-08  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/95350
-       * coroutines.cc (struct param_info): Remove rv_ref field.
-       (build_actor_fn): Remove specifial rvalue ref handling.
-       (morph_fn_to_coro): Likewise.
+       * decl.c (start_cleanup_fn): Push function into
+       namespace.
 
-2020-05-31  Iain Sandoe  <iain@sandoe.co.uk>
+2021-02-08  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/95087
-       * coroutines.cc (morph_fn_to_coro): If we see an
-       early fatal error, drop the erroneous function body.
+       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.
 
-2020-05-31  Iain Sandoe  <iain@sandoe.co.uk>
+2021-02-08  Marek Polacek  <polacek@redhat.com>
 
-       * coroutines.cc (build_co_await): Remove unused
-       variable.
-       (finish_co_await_expr): Likewise.
-       (finish_co_yield_expr): Likewise; revise comment.
+       * cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo.
 
-2020-05-30  Iain Sandoe  <iain@sandoe.co.uk>
+2021-02-05  Marek Polacek  <polacek@redhat.com>
 
-       * coroutines.cc (morph_fn_to_coro): Revise initialization
-       of the frame pointer to avoid an unused value.
+       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.
 
-2020-05-30  Patrick Palka  <ppalka@redhat.com>
+2021-02-05  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/95386
-       * constraint.cc (satisfaction_value): Accept INTEGER_CST of any
-       boolean type.
+       PR c++/96462
+       * name-lookup.c (lookup_using_decl): Hoist the destructor check.
 
-2020-05-29  Patrick Palka  <ppalka@redhat.com>
-           Jason Merrill  <jason@redhat.com>
+2021-02-05  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/95181
-       * class.c (add_method): Let special member function templates
-       coexist if they are not equivalently constrained, or in a class
-       template.
+       PR c++/97878
+       * decl.c (check_array_initializer): For structured bindings, require
+       the array type to be complete.
 
-2020-05-29  Jason Merrill  <jason@redhat.com>
+2021-02-04  Jason Merrill  <jason@redhat.com>
 
-       PR c++/95371
-       * pt.c (process_template_parm): Set DECL_TEMPLATE_INFO
-       on the DECL_TEMPLATE_RESULT.
+       PR c++/98717
+       * constraint.cc (build_concept_check_arguments): Remove assert.
+       (build_concept_check): Allow empty args.
 
-2020-05-29  Marek Polacek  <polacek@redhat.com>
+2021-02-04  Tom Greenslade (thomgree)  <thomgree@cisco.com>
 
-       PR c++/95344
-       * cp-gimplify.c (cp_fold) <case MODIFY_EXPR>: Don't set
-       TREE_THIS_VOLATILE here.
-       (cp_fold): Set it here along with TREE_NO_WARNING.
+       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.
 
-2020-05-29  Jason Merrill  <jason@redhat.com>
+2021-02-04  Jason Merrill  <jason@redhat.com>
 
-       PR c++/95311
-       PR c++/95221
-       * class.c (build_vfn_ref): Don't fold the INDIRECT_REF.
+       PR c++/98802
+       * pt.c (do_class_deduction): No aggregate guide if any_dguides_p.
 
-2020-05-29  Patrick Palka  <ppalka@redhat.com>
+2021-02-04  Jason Merrill  <jason@redhat.com>
 
-       PR c++/92652
-       PR c++/93698
-       PR c++/94128
-       * parser.c (cp_parser_requires_clause_expression): Temporarily
-       increment processing_template_decl only if it is 0.
-       (cp_parser_constraint_expression): Likewise.
-       (cp_parser_requires_expression): Likewise.
+       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.
 
-2020-05-29  Patrick Palka  <ppalka@redhat.com>
+2021-02-03  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/95241
-       * constexpr.c (get_or_insert_ctor_field): Add limited support
-       for RANGE_EXPR index lookups.
+       PR c++/98951
+       * call.c (struct z_candidate): Mark rewritten and reversed as const.
+       (struct NonPublicField): Mark operator() as const.
+       (struct NonTrivialField): Likewise.
 
-2020-05-28  Jakub Jelinek  <jakub@redhat.com>
+2021-02-03  Jason Merrill  <jason@redhat.com>
 
-       PR c++/95328
-       * decl.c (cp_finish_decomp): Call complete_type before checking
-       COMPLETE_TYPE_P.
+       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.
 
-2020-05-28  Jason Merrill  <jason@redhat.com>
+2021-02-03  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/94926
-       * decl.c (cp_finish_decl): Revert r9-297 change.
-       (check_static_variable_definition): Likewise.
-       * constexpr.c (ensure_literal_type_for_constexpr_object): Likewise.
-       * pt.c (instantiate_decl): Return early on type error.
+       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.
 
-2020-05-27  Jason Merrill  <jason@redhat.com>
+2021-02-02  Jason Merrill  <jason@redhat.com>
 
-       PR c++/95319
-       * decl.c (reshape_init_array_1): Don't reuse in overload context.
+       PR c++/98929
+       PR c++/96199
+       * error.c (dump_expr): Ignore dummy object.
+       * pt.c (tsubst_baselink): Handle dependent scope.
 
-2020-05-27  Jason Merrill  <jason@redhat.com>
+2021-02-01  Patrick Palka  <ppalka@redhat.com>
 
-       PR c++/95242
-       * call.c (build_new_op_1): Suppress
-       warn_zero_as_null_pointer_constant across comparison of <=> result
-       to 0.
+       PR c++/98295
+       * constexpr.c (cxx_eval_array_reference): Also set
+       new_ctx.object when setting new_ctx.ctor.
 
-2020-05-27  Jason Merrill  <jason@redhat.com>
+2021-02-01  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/95222
-       * decl.c (grokdeclarator): Don't shift attributes in TYPENAME
-       context.
+       PR c++/98355
+       * parser.c (cp_parser_has_attribute_expression): Use
+       uses_template_parms instead of type_dependent_expression_p.
 
-2020-05-27  Nathan Sidwell  <nathan@acm.org>
+2021-02-01  Jason Merrill  <jason@redhat.com>
 
-       PR c++/95263
-       * pt.c (lookup_template_class_1): Restore alias template mutation.
-
-2020-05-26  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/95197
-       * cp-gimplify.c: Include omp-general.h.
-       (cp_genericize_r) <case OMP_DISTRIBUTE>: For class iteration
-       variables in composite distribute parallel for, instantiate copy
-       ctor of their types.
-
-2020-05-23  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94038
-       * constexpr.c (cxx_eval_constant_expression)
-       <case TEMPLATE_ID_EXPR>: Don't evaluate the concept when
-       constexpr evaluation is uid-sensitive.
-
-2020-05-22  Jason Merrill  <jason@redhat.com>
-
-       * cp-gimplify.c (cp_gimplify_expr) [CALL_EXPR]: Don't preevaluate
-       the function address if the call used operator syntax.
-
-2020-05-21  Jason Merrill  <jason@redhat.com>
-
-       PR c++/95221
-       * cp-ubsan.c (cp_ubsan_maybe_instrument_member_call): For a virtual
-       call, instrument the OBJ_TYPE_REF.
-
-       * decl.c (compute_array_index_type_loc): Diagnose expressions
-       in a template that can't be constant.
-       * parser.c (cp_parser_direct_declarator): Don't check
-       non-constant array bounds here.
-
-       * cp-tree.h (is_rvalue_constant_expression): Declare.
-       * constexpr.c (is_rvalue_constant_expression): New.
-       * parser.c (cp_parser_constant_expression): Use it.
-       * decl.c (cp_finish_decl): Try to treat a constexpr initializer in a
-       template as constant.
-
-       * typeck.c (build_x_modify_expr): Handle error_mark_node arguments.
-
-       * decl.c (grokparms): Return NULL_TREE if any parms were erroneous.
-
-2020-05-21  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (finish_co_return_stmt): Revert change to use
-       finish_expr_stmt.
-
-2020-05-21  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94038
-       * constexpr.c (constexpr_ctx::uid_sensitive): Remove field.
-       (uid_sensitive_constexpr_evaluation_value): Define.
-       (uid_sensitive_constexpr_evaluation_true_counter): Define.
-       (uid_sensitive_constexpr_evaluation_p): Define.
-       (uid_sensitive_constexpr_evaluation_sentinel): Define its
-       constructor.
-       (uid_sensitive_constexpr_evaluation_checker): Define its
-       constructor and its evaluation_restricted_p method.
-       (get_fundef_copy): Remove 'ctx' parameter.  Use u_s_c_e_p
-       instead of constexpr_ctx::uid_sensitive.
-       (cxx_eval_call_expression): Use u_s_c_e_p instead, and test it
-       last.  Adjust call to get_fundef_copy.
-       (instantiate_cx_fn_r): Test u_s_c_e_p so that we increment the
-       counter if necessary.
-       (cxx_eval_outermost_constant_expr): Remove 'uid_sensitive'
-       parameter.  Adjust function body accordingly.
-       (maybe_constant_value): Remove 'uid_sensitive' parameter and
-       adjust function body accordingly.  Set up a
-       uid_sensitive_constexpr_evaluation_checker, and use it to
-       conditionally update the cv_cache.
-       * cp-gimplify.c (cp_fold): Set up a
-       uid_sensitive_constexpr_evaluation_checker, and use it to
-       conditionally update the fold_cache.
-       * cp-tree.h (maybe_constant_value): Update declaration.
-       (struct uid_sensitive_constexpr_evaluation_sentinel): Define.
-       (struct sensitive_constexpr_evaluation_checker): Define.
-       * expr.c (fold_for_warn): Set up a
-       uid_sensitive_constexpr_evaluation_sentinel before calling
-       the folding subroutines.  Drop all but the first argument to
-       maybe_constant_value.
-
-2020-05-20  Marek Polacek  <polacek@redhat.com>
-
-       DR 2237
-       * parser.c (cp_parser_unqualified_id): Reject simple-template-id as
-       the declarator-id of a destructor.
-       (cp_parser_constructor_declarator_p): Reject simple-template-id as
-       the declarator-id of a constructor.
-
-2020-05-20  Marek Polacek  <polacek@redhat.com>
-
-       DR 2289
-       PR c++/94553
-       * cp-tree.h (SD_DECOMPOSITION): New flag.
-       * decl.c (duplicate_decls): Make sure a structured binding is unique
-       in its declarative region.
-       (start_decl): If INITIALIZED is SD_DECOMPOSITION, call
-       fit_decomposition_lang_decl.
-       (grokdeclarator): Compare INITIALIZED directly to SD_* flags.
-       * parser.c (cp_parser_decomposition_declaration): Pass SD_DECOMPOSITION
-       to start_decl.
-
-2020-05-20  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/95223
-       * typeck.c (structural_comptypes): Don't perform
-       context-dependent resolution of TYPENAME_TYPEs when
+       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.
 
-2020-05-19  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (lookup_template_class_1): Do not reinit template_info of an
-       alias here.
-
-2020-05-18  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/94923
-       * call.c ((maybe_warn_class_memaccess): Use is_byte_access_type.
-       * cp-tree.h (is_dummy_object): Return bool.
-       (is_byte_access_type): Declare new function.
-       * tree.c (is_dummy_object): Return bool.
-       (is_byte_access_type): Define new function.
-
-2020-05-19  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/87847
-       * pt.c (init_template_processing): Enable sanitization for
-       decl_specializations and type_specializations.
-
-       PR c++/66439
-       * pt.c (fn_type_unification): Pass 'fn' instead of NULL_TREE as
-       the 'in_decl' parameter to coerce_template_parms.
-
-2020-05-18  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94955
-       * typeck.c (cp_build_binary_op): Use fold_for_warn instead of
-       cp_fold_rvalue.
-
-2020-05-18  Marek Polacek  <polacek@redhat.com>
+2021-01-22  Jason Merrill  <jason@redhat.com>
 
-       PR c++/94937
-       * cvt.c (cp_get_fndecl_from_callee): Return NULL_TREE if the function
-       type is not INDIRECT_TYPE_P.
-       * decl.c (omp_declare_variant_finalize_one): Call
-       cp_get_callee_fndecl_nofold instead of looking for the function decl
-       manually.
+       PR c++/98744
+       * call.c (make_base_init_ok): Use DECL_HAS_VTT_PARM_P.
 
-2020-05-18  Marek Polacek  <polacek@redhat.com>
+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.
 
-       PR c++/90915
-       * parser.c (cp_parser_has_attribute_expression): Sorry on a
-       type-dependent argument.
+2021-01-21  Patrick Palka  <ppalka@redhat.com>
 
-2020-05-18  Marek Polacek  <polacek@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>
 
-       DR 1512
-       PR c++/87699
-       * call.c (add_builtin_candidate) <case EQ_EXPR>: Create candidate
-       operator functions when type is std::nullptr_t for ==/!=.
-       * typeck.c (composite_pointer_type_r): Add a bool * parameter.  Use it
-       to maybe add "const" to the pointer type.
-       (composite_pointer_type): Update the call to composite_pointer_type_r.
-       (cp_build_binary_op): Turn two warning_at into error_at.  Print the
-       types.
+       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.
 
-2020-05-18  Jason Merrill  <jason@redhat.com>
+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>
 
-       * call.c (build_over_call): Remove unnecessary
-       cp_stabilize_reference.
+       * 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.
 
-2020-05-18  Marek Polacek  <polacek@redhat.com>
+2021-01-20  Patrick Palka  <ppalka@redhat.com>
 
-       * call.c (add_builtin_candidate): Don't create a builtin overload
-       candidate for ++ when type is bool in C++17.
+       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.
 
-2020-05-18  Marek Polacek  <polacek@redhat.com>
+2021-01-20  Jakub Jelinek  <jakub@redhat.com>
 
-       * cfns.h: Regenerated.
+       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.
 
-2020-05-17  Iain Sandoe  <iain@sandoe.co.uk>
+2021-01-19  Marek Polacek  <polacek@redhat.com>
 
-       * coroutines.cc (morph_fn_to_coro): Initialize the gro variable.
-
-2020-05-16  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (finish_co_return_stmt): Implement rules
-       from [class.copy.elision] /3.
-
-2020-05-16  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/57943
-       * semantics.c (finish_decltype_type): Call
-       instantiate_non_dependent_expr_sfinae on the expression.
-
-2020-05-15  Patrick Palka  <ppalka@redhat.com>
-
-       Revert:
-
-       2020-04-07  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/90996
-       * typeck2.c (process_init_constructor_array): Propagate
-       CONSTRUCTOR_PLACEHOLDER_BOUNDARY up from each element initializer to
-       the array initializer.
-
-2020-05-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93286 - ICE with __is_constructible and variadic template.
-       * pt.c (tsubst_tree_list): New.
-       (tsubst, tsubst_copy_and_build): Use it.
-       * decl2.c (is_late_template_attribute): Handle error_mark_node args.
-
-2020-05-15  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (template_args_equal): Fix thinkos in previous 'cleanup'.
-
-2020-05-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93901
-       * pt.c (maybe_instantiate_noexcept): Change clone handling.
-
-2020-05-14  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/78446
-       * call.c (build_op_call): Pass complain to lookup_fnfields.
-       (build_special_member_call): Likewise.
-       * class.c (type_requires_array_cookie): Pass tf_warning_or_error
-       to lookup_fnfields.
-       * cp-tree.h (lookup_fnfields): Add tsubst_flags_t parameter.
-       * except.c (build_throw): Pass tf_warning_or_error to
-       lookup_fnfields.
-       * init.c (build_new_1): Pass complain to lookup_fnfields.
-       * method.c (locate_fn_flags): Likewise.
-       * name-lookup.c (lookup_name_real_1): Pass tf_warning_or_error
-       to lookup_fnfields.
-       * pt.c (tsubst_baselink): Pass complain to lookup_fnfields.
-       * search.c (lookup_fnfields): New 'complain' parameter.  Pass it
-       to lookup_member.
-
-2020-05-14  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_parser_diagnose_invalid_typename): Mention
-       std=c++20 not 2a, reformat dependent binfo inform loops.
-
-       * pt.c (tsubst_template_decl): Reorder and commonize some control
-       paths.
-
-       * pt.c (tsubst_friend_function): Simplify control flow.
-
-       * pt.c (lookup_template_class_1): Remove unnecessary else by
-       simply grabbing TYPE_NAME earlier.
-
-       * pt.c (push_template_decl_real): Adjust friend pushing logic.
-       Reinit template type.
-
-       * pt.c (build_template_decl): Init DECL_TEMPLATE_RESULT &
-       TREE_TYPE here ...
-       (process_partial_specialization): ... not here ...
-       (push_template_decl_real, add_inherited_template_parms)
-       (build_deduction_guide): ... or here.
-
-2020-05-14  Jakub Jelinek  <jakub@redhat.com>
-
-       * cp-gimplify.c (cp_genericize_r): Set cfun->has_omp_target.
-
-2020-05-13  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/79706
-       * init.c (build_vec_delete_1): Just return error_mark_node if
-       deallocate_expr is error_mark_node.
-       (build_delete): Just return error_mark_node if do_delete is
+       PR c++/98659
+       * pt.c (maybe_instantiate_noexcept): Return false if FN is
        error_mark_node.
 
-2020-05-13  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/95020
-       * constraint.cc (tsubst_requires_expr): Produce a new
-       requires-expression when processing_template_decl, even if
-       template arguments are not dependent.
-
-2020-05-13  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/95066
-       * decl.c (duplicate_decls): Set DECL_HAS_DEPENDENT_EXPLICIT_SPEC_P.
-
-2020-05-13  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (template_args_equal): Reorder category checking for
-       clarity.
+2021-01-19  Marek Polacek  <polacek@redhat.com>
 
-       * pt.c (perform_typedefs_access_check): Cache expensively
-       calculated object references.
-       (check_auto_in_tmpl_args): Just assert we do not get unexpected
-       nodes, rather than silently do nothing.
-       (append_type_to_template_for_access): Likewise, cache expensie
-       object reference.
+       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.
 
-       * pt.c (canonical_type_parameter): Simplify.
+2021-01-19  Patrick Palka  <ppalka@redhat.com>
 
-       Formatting fixups & some simplifications.
-       * pt.c (spec_hash_table): New typedef.
-       (decl_specializations, type_specializations): Use it.
-       (retrieve_specialization): Likewise.
-       (register_specialization): Remove unnecessary casts.
-       (push_template_decl_real): Reformat.
-       (instantiate_class_template_1): Use more RAII.
-       (make_argument_pack): Simplify.
-       (instantiate_template_1): Use gcc_checking_assert for expensive
-       asserts.
-       (instantiate_decl): Likewise.
-       (resolve_typename_type): Reformat comment.
-       * semantics.c (struct deferred_access): Remove unnecessary GTY on
-       member.
-       (begin_class_definition): Fix formatting.
-
-2020-05-13  Jason Merrill  <jason@redhat.com>
-
-       * call.c, class.c, constexpr.c, constraint.cc, decl.c, init.c,
-       lambda.c, lex.c, method.c, name-lookup.c, parser.c, pt.c, tree.c,
-       typeck2.c: Change cxx2a to cxx20.
-
-2020-05-12  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/95074
-       * parser.c (cp_parser_postfix_expression) <case CPP_OPEN_PAREN>: When
-       looking for a block-scope function declaration, look through the whole
-       set, not just the first function in the overload set.
-
-2020-05-12  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/95063
-       * pt.c (tsubst_decl): Deal with DECL_OMP_PRIVATIZED_MEMBER for
-       a bit-field.
-
-2020-05-11  Jason Merrill  <jason@redhat.com>
-
-       Resolve C++20 NB comment CA104
-       * pt.c (determine_specialization): Compare constraints for
-       specialization of member template of class instantiation.
-
-2020-05-11  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92583
-       PR c++/92654
-       * tree.c (cp_walk_subtrees): Stop at typedefs.
-       Handle TYPENAME_TYPE here.
-       * pt.c (find_parameter_packs_r): Not here.
-       (for_each_template_parm_r): Clear *walk_subtrees.
-       * decl2.c (min_vis_r): Look through typedefs.
-
-2020-05-11  Jason Merrill  <jason@redhat.com>
-
-       * call.c (implicit_conversion_error): Split out from...
-       (perform_implicit_conversion_flags): ...here.
-       (build_converted_constant_expr_internal): Use it.
-
-2020-05-11  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90748
-       * parser.c (inject_parm_decls): Set current_class_ptr here.
-       (cp_parser_direct_declarator): And here.
-       (cp_parser_late_return_type_opt): Not here.
-       (cp_parser_noexcept_specification_opt): Nor here.
-       (cp_parser_exception_specification_opt)
-       (cp_parser_late_noexcept_specifier): Remove unneeded parameters.
-
-2020-05-11  Jason Merrill  <jason@redhat.com>
-
-       * decl.c (cxx_init_decl_processing): Call declare_weak for
-       __cxa_pure_virtual.
-
-2020-05-11  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (instantiate_class_template_1): Call tsubst_expr for
-       STATIC_ASSERT member.
-       * ptree.c (cxx_print_xnode): Handle STATIC_ASSERT.
-
-2020-05-11  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (find_parameter_packs_r) [LAMBDA_EXPR]: Remove redundant
-       walking of capture list.
-
-2020-05-11  Jason Merrill  <jason@redhat.com>
-
-       * cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Remove.
-       * call.c (build_new_function_call): Don't set it.
-       (build_new_method_call_1): Likewise.
-       (build_over_call): Check cand->explicit_targs instead.
-
-2020-05-11  Jason Merrill  <jason@redhat.com>
-
-       * decl.c (compute_array_index_type_loc): Stabilize before building
-       the MINUS_EXPR.
-
-2020-05-11  Jason Merrill  <jason@redhat.com>
-
-       * decl.c (grokdeclarator): Adjust deprecated_state here.
-       (start_decl): Not here.
-
-2020-05-08  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/95003
-       * coroutines.cc (build_actor_fn): Ensure that bind scopes
-       are marked as having side-effects where necessary.
-       (replace_statement_captures): Likewise.
-       (morph_fn_to_coro): Likewise.
-
-2020-05-08  Nathan Sidwell  <nathan@acm.org>
-
-       * NEWS: Delete, it is so stale.
-
-       * parser.c (cp_lexer_set_source_position_from_token): EOF has a
-       location too.
-
-2020-05-07  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/94817
-       PR c++/94829
-       * coroutines.cc (morph_fn_to_coro): Set unformed outline
-       functions to error_mark_node.  For early error returns suppress
-       warnings about missing ramp return values.  Fix reinstatement
-       of the function body on pre-existing initial error.
-       * decl.c (finish_function): Use the normal error path for fails
-       in the ramp function, do not try to compile the helpers if the
-       transform fails.
-
-2020-05-07  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94590 - Detect long double -> double narrowing.
-       * typeck2.c (check_narrowing): Detect long double -> double
-       narrowing even when double and long double have the same
-       precision.  Make it handle conversions to float too.
-
-2020-05-07  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94255
-       * parser.c (cp_parser_class_specifier_1): Check that the scope is
-       nested inside current scope before pushing it.
-
-2020-05-07  Marek Polacek  <polacek@redhat.com>
-
-         P1957R2
-         * typeck2.c (check_narrowing): Consider T* to bool narrowing
-         in C++11 and up.
-
-2020-05-07  Marek Polacek  <polacek@redhat.com>
-
-       * decl.c (grok_op_properties): Fix spelling of non-static.
-       * typeck.c (build_class_member_access_expr): Likewise.
-
-2020-05-07  Richard Biener  <rguenther@suse.de>
-
-       PR middle-end/94703
-       * optimize.c (update_cloned_parm): Copy DECL_NOT_GIMPLE_REG_P.
-
-2020-05-06  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94938
-       * pt.c (tsubst_copy_and_build): Call type_dependent_expression_p_push
-       instead of uses_template_parms.  Move the warning_sentinels after the
-       RECURs.
-
-2020-05-06  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/94951
-       * typeck.c (cp_strict_aliasing_warning): New function.
-       (cp_build_indirect_ref_1, build_reinterpret_cast_1): Use
-       it instead of strict_aliasing_warning.
-
-       PR c++/94907
-       * method.c (defaulted_late_check): Don't call synthesize_method
-       on constexpr sfk_comparison if it has been called on it already.
-
-2020-05-06  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/94946
-       * decl.c (grokdeclarator): Don't splice template attributes in
-       parm context -- they can apply to the parm.
-
-2020-05-05  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc: Remove references to n4849 throughout.
-
-2020-05-05  Jason Merrill  <jason@redhat.com>
-
-       CWG 2235
-       * pt.c (more_specialized_fn): Do consider parms with no deducible
-       template parameters.
-
-2020-05-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90212
-       * constexpr.c (potential_constant_expression_1): In a lambda
-       function, consider a captured variable directly.
-
-2020-05-05  Iain Sandoe  <iain@sandoe.co.uk>
+       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.
 
-       * coroutines.cc (transform_await_wrapper): Check that we have
-       no unlowered co_yields.
-       (captures_temporary): Likewise.
-       (register_awaits): Likewise.
+2021-01-19  Marek Polacek  <polacek@redhat.com>
 
-2020-05-05  Nathan Sidwell  <nathan@acm.org>
+       PR c++/98333
+       * parser.c (cp_parser_class_specifier_1): Perform late-parsing
+       of NSDMIs before late-parsing of noexcept-specifiers.
 
-       PR c++/94807
-       * coroutines.cc (morph_fn_to_coro): Just check for
-       closure_identifier.
-       * pt.c (tsubst_function_decl): Update lambda fn's this_ptr name.
+2021-01-19  Nathan Sidwell  <nathan@acm.org>
 
-2020-05-05  Marek Polacek  <polacek@redhat.com>
-           Jason Merrill  <jason@redhat.com>
+       * module.cc (identifier): Merge overloads.
 
-       PR c++/94799
-       * parser.c (cp_parser_postfix_dot_deref_expression): If we have
-       a type-dependent object of class type, stash it to
-       parser->context->object_type.  If the postfix expression doesn't have
-       a type, use typeof.
-       (cp_parser_class_name): Consider object scope too.
-       (cp_parser_lookup_name): Remove code dealing with the case when
-       object_type is unknown_type_node.
-
-2020-05-04  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94038
-       * cp-gimplify.c (cp_fold) <case CALL_EXPR>: Move some variable
-       declarations closer to their uses.  Copy the CALL_EXPR only
-       when one of its arguments has changed.
-       <case TREE_VEC>: Instead of first collecting the folded
-       arguments into a releasing_vec, just make a copy of the TREE_VEC
-       as soon as folding changes one of its arguments.
-
-2020-05-04  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (morph_fn_to_coro): Mark the coro.gro variable
-       as artificial and ignored.
-
-2020-05-04  Nathan Sidwell  <nathan@acm.org>
-
-       pt.c (process_template_parm): Don't walk the template list twice,
-       remember the final node instead.
-       (end_template_parm_list): Refactor.  Comment on why we do a pop
-       and a push.
-
-       PR c++/94827 -- don't save parms in nested requirement
-       * constraint.cc (tsubst_nested_requirement): TYPE directly holds
-       notmalized requirement.
-       (finish_nested_requirement): Don't stash current tpl parms into
-       the requirement.
-       (diagnose_nested_requirement): TYPE directly holds notmalized
-       requirement.
-
-2020-05-01  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/90880
-       * cp-tree.h (check_accessibility_of_qualified_id): Add
-       tsubst_flags_t parameter and change return type to bool.
-       * parser.c (cp_parser_lookup_name): Pass tf_warning_to_error to
-       check_accessibility_of_qualified_id.
-       * pt.c (tsubst_qualified_id): Return error_mark_node if
-       check_accessibility_of_qualified_id returns false.
-       * semantics.c (check_accessibility_of_qualified_id): Add
-       complain parameter.  Pass complain instead of
-       tf_warning_or_error to perform_or_defer_access_check.  Return
-       true unless perform_or_defer_access_check returns false.
-
-2020-05-01  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94885
-       * typeck2.c (process_init_constructor_record): Return PICFLAG_ERRONEOUS
-       if an initializer element was erroneous.
-
-2020-05-01  Jason Merrill  <jason@redhat.com>
+2021-01-19  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/90479
-       * init.c (get_nsdmi): Don't push_to_top_level for a local class.
+       PR c++/98624
+       * module.cc (trees_out::write_location): Make static.
 
-2020-05-01  Jason Merrill  <jason@redhat.com>
+2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
 
-       PR c++/91529
-       * decl.c (cp_finish_decl): Also clear TREE_READONLY if
-       -fmerge-all-constants.
+       * 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.
 
-2020-05-01  Jason Merrill  <jason@redhat.com>
+2021-01-15  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/93822
-       * pt.c (tsubst_decl): Make sure DECL_VALUE_EXPR continues to have
-       the same type as the variable.
+       PR c++/98538
+       * tree.c (cp_build_qualified_type_real): Propagate an array's
+       dependentness to the copy, if known.
 
-2020-04-30  Jason Merrill  <jason@redhat.com>
-           Nathan Sidwell  <nathan@acm.org>
+2021-01-15  Jason Merrill  <jason@redhat.com>
 
-       PR c++/94827
-       * constraint.cc (map_arguments): If ARGS is null, it's a
-       self-mapping of parms.
-       (finish_nested_requirement): Do not pass argified
-       current_template_parms to normalization.
-       (tsubst_nested_requirement): Don't assert no template parms.
+       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.
+       * cp-tree.h: Adjust.
 
-2020-04-30  Iain Sandoe  <iain@sandoe.co.uk>
+2021-01-15  Jason Merrill  <jason@redhat.com>
 
-       PR c++/94886
-       * coroutines.cc (transform_local_var_uses): Defer walking
-       the DECL_INITIALs of BIND_EXPR vars until all the frame
-       allocations have been made.
+       * call.c (base_ctor_for, make_base_init_ok): New.
+       (build_over_call): Use make_base_init_ok.
 
-2020-04-30  Iain Sandoe  <iain@sandoe.co.uk>
+2021-01-15  Jason Merrill  <jason@redhat.com>
 
-       PR c++/94883
-       * coroutines.cc (register_awaits): Update target
-       expressions for awaitable and suspend handle
-       initializers.
+       PR c++/63707
+       * tree.c (build_vec_init_expr): Don't call build_vec_init_elt
+       if we got a CONSTRUCTOR.
 
-2020-04-30  Iain Sandoe  <iain@sandoe.co.uk>
+2021-01-15  Nathan Sidwell  <nathan@acm.org>
 
-       PR c++/94879
-       * coroutines.cc (build_co_await): Account for variables
-       with DECL_VALUE_EXPRs.
-       (captures_temporary): Likewise.
-       (register_awaits): Likewise.
+       PR c++/98591
+       * lang-specs.h: Fix handling of -fmodule-only with -fsyntax-only.
 
-2020-04-29  Patrick Palka  <ppalka@redhat.com>
+2021-01-14  Jason Merrill  <jason@redhat.com>
 
-       PR c++/94830
-       * pt.c (find_template_parameter_info::parm_list): New field.
-       (keep_template_parm): Use the new field to build up the
-       parameter list here instead of ...
-       (find_template_parameters): ... here.  Return ftpi.parm_list.
+       * typeck2.c (process_init_constructor_record): Use fldtype
+       variable consistently.
 
-2020-04-29  Jakub Jelinek  <jakub@redhat.com>
+2021-01-14  Nathan Sidwell  <nathan@acm.org>
 
-       PR target/94707
-       * class.c (build_base_field): Set DECL_FIELD_ABI_IGNORED on C++17 empty
-       base artificial FIELD_DECLs.
-       (layout_class_type): Set DECL_FIELD_ABI_IGNORED on empty class
-       field_poverlapping_p FIELD_DECLs.
+       PR c++/98372
+       * tree.c (cp_tree_equal): Correct map_context logic.
 
-2020-04-29  Patrick Palka  <ppalka@redhat.com>
+2021-01-13  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/94819
-       * constraint.cc (satisfy_declaration_constraints): Use saved_t
-       instead of t as the key to decl_satisfied_cache.
+       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.
 
-       PR c++/94808
-       * error.c (print_requires_expression_info): Print the dependent
-       form of the parameter list with its template parameter mapping,
-       rather than printing the substituted form.
+2021-01-13  Nathan Sidwell  <nathan@acm.org>
 
-2020-04-28  Jason Merrill  <jason@redhat.com>
+       PR c++/98626
+       * module.cc (module_add_import_initializers):  Pass a
+       zero-element argument vector.
 
-       PR c++/94583
-       * decl.c (use_eh_spec_block): Check nothrow type after
-       DECL_DEFAULTED_FN.
-       * pt.c (maybe_instantiate_noexcept): Call synthesize_method for
-       DECL_MAYBE_DELETED fns here.
-       * decl2.c (mark_used): Not here.
-       * method.c (get_defaulted_eh_spec): Reject DECL_MAYBE_DELETED here.
+2021-01-12  Patrick Palka  <ppalka@redhat.com>
 
-2020-04-28  Iain Sandoe  <iain@sandoe.co.uk>
+       PR c++/98611
+       * tree.c (cp_walk_subtrees) <case TEMPLATE_TYPE_PARM>: Visit
+       the template of a CTAD placeholder.
 
-       PR c++/94760
-       * coroutines.cc (instantiate_coro_traits): Pass a reference to
-       object type rather than a pointer type for 'this', for method
-       coroutines.
-       (struct param_info): Add a field to hold that the parm is a lambda
-       closure pointer.
-       (morph_fn_to_coro): Check for lambda closure pointers in the
-       args.  Use a reference to *this when building the args list for the
-       promise allocator lookup.
+2021-01-12  Marek Polacek  <polacek@redhat.com>
 
-2020-04-28  Iain Sandoe  <iain@sandoe.co.uk>
+       PR c++/98620
+       * typeck2.c (process_init_constructor_record): Don't emit
+       -Wmissing-field-initializers warnings in unevaluated contexts.
 
-       PR c++/94759
-       * coroutines.cc (coro_promise_type_found_p): Do not
-       exclude non-classes here (this needs to be handled in the
-       coroutine header).
-       (morph_fn_to_coro):  Allow for the case where the coroutine
-       returns void.
+2021-01-11  Jakub Jelinek  <jakub@redhat.com>
 
-2020-04-27  Iain Sandoe  <iain@sandoe.co.uk>
+       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.
 
-       PR c++/94701
-       * coroutines.cc (struct local_var_info): Add fields for static
-       variables and those with DECL_VALUE_EXPR redirection.
-       (transform_local_var_uses): Skip past typedefs and static vars
-       and then account for redirected variables.
-       (register_local_var_uses): Likewise.
+2021-01-08  Patrick Palka  <ppalka@redhat.com>
 
-2020-04-27  Jason Merrill  <jason@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.
 
-       PR c++/90750
-       PR c++/79585
-       * decl.c (grokdeclarator): Move dependent attribute to decl.
-       * decl2.c (splice_template_attributes): No longer static.
+2021-01-08  Patrick Palka  <ppalka@redhat.com>
 
-2020-04-27  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.
 
-       PR c++/94772
-       * constexpr.c (cxx_eval_call_expression): Don't set new_obj if we're
-       evaluating the target constructor of a delegating constructor.
-       (cxx_eval_store_expression): Don't set TREE_READONLY if the LHS of the
-       INIT_EXPR is '*this'.
+2021-01-07  Jakub Jelinek  <jakub@redhat.com>
 
-2020-04-26  Marek Polacek  <polacek@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.
 
-       PR c++/90320
-       * call.c (struct conversion): Add copy_init_p.
-       (standard_conversion): Set copy_init_p in ck_base and ck_rvalue
-       if FLAGS demands LOOKUP_ONLYCONVERTING.
-       (convert_like_real) <case ck_base>: If copy_init_p is set, or
-       LOOKUP_ONLYCONVERTING into FLAGS.
+2021-01-07  Marek Polacek  <polacek@redhat.com>
 
-2020-04-26  Iain Sandoe  <iain@sandoe.co.uk>
+       PR c++/98441
+       * decl.c (grokdeclarator): Move the !funcdecl_p check inside the
+       !late_return_type block.
 
-       PR c++/94752
-       * coroutines.cc (morph_fn_to_coro): Ensure that
-       unnamed function params have a usable and distinct
-       frame field name.
+2021-01-07  Jason Merrill  <jason@redhat.com>
 
-2020-04-24  Jason Merrill  <jason@redhat.com>
+       * constexpr.c (cxx_bind_parameters_in_call): Add comment.
+       (cxx_eval_store_expression): Add comment.
 
-       PR c++/94583
-       * decl.c (redeclaration_error_message): Reject defaulted comparison
-       operator that has been previously declared.
+2021-01-07  Jason Merrill  <jason@redhat.com>
 
-2020-04-25  Patrick Palka  <ppalka@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.
 
-       * parser.c (cp_parser_diagnose_invalid_type_name): Suggest enabling
-       concepts if the invalid identifier is 'requires'.
+2021-01-06  Martin Sebor  <msebor@redhat.com>
 
-2020-04-25  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/95768
+       * error.c (dump_expr): Call c_pretty_printer::unary_expression.
 
-       PR c++/94742
-       * semantics.c (finish_call_expr): When looking if all overloads
-       are noreturn, use STRIP_TEMPLATE to look through TEMPLATE_DECLs.
+2021-01-05  Patrick Palka  <ppalka@redhat.com>
 
-2020-04-24  Martin Liska  <mliska@suse.cz>
+       * 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.
 
-       * coroutines.cc: Fix compilation error for release checking
-       where we miss declaration of â€˜coro_body_contains_bind_expr_p’.
+2021-01-05  Jakub Jelinek  <jakub@redhat.com>
 
-2020-04-23  Patrick Palka  <ppalka@redhat.com>
+       * Make-lang.in (cc1plus-checksum, cc1plus$(exeext): Add
+       $(CODYLIB) after $(BACKEND).
 
-       * tree.c (zero_init_expr_p): Use uses_template_parms instead of
-       dependent_type_p.
+2021-01-05  Jakub Jelinek  <jakub@redhat.com>
 
-       PR c++/94645
-       * pt.c (template_class_depth): Walk into the DECL_FRIEND_CONTEXT of a
-       friend declaration rather than into its CP_DECL_CONTEXT.
+       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.
 
-2020-04-23 Iain Sandoe <iain@sandoe.co.uk>
+2021-01-05  Marek Polacek  <polacek@redhat.com>
 
-       PR c++/94288
-       * coroutines.cc (await_statement_expander): Simplify cases.
-       (struct susp_frame_data): Add fields for truth and/or if
-       cases, rename one field.
-       (analyze_expression_awaits): New.
-       (expand_one_truth_if): New.
-       (add_var_to_bind): New helper.
-       (coro_build_add_if_not_cond_break): New helper.
-       (await_statement_walker): Handle conditional expressions,
-       handle expansion of truth-and/or-if cases.
-       (bind_expr_find_in_subtree): New, checking-only.
-       (coro_body_contains_bind_expr_p): New, checking-only.
-       (morph_fn_to_coro): Ensure that we have a top level bind
-       expression.
-
-2020-04-22  Jonathan Wakely  <jwakely@redhat.com>
-
-       PR translation/94698
-       * class.c (check_field_decls): Change "define" to "declare" in
-       -Weffc++ diagnostics.
-
-2020-04-22  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94719
-       PR c++/94549
-       * constraint.cc (satisfy_declaration_constraints): If the inherited
-       constructor points to an instantiation of a constructor template,
-       remember and use its attached template arguments.
-
-2020-04-22  Jonathan Wakely  <jwakely@redhat.com>
-
-       PR translation/94698
-       * class.c (check_field_decls): Change "override" to "define" in
-       -Weffc++ diagnostics.
-
-2020-04-22 Iain Sandoe <iain@sandoe.co.uk>
-
-       PR c++/94682
-       * coroutines.cc (struct param_info): Add a field to note that
-       the param is 'this'.
-       (morph_fn_to_coro): Convert this to a reference before using it
-       in the promise parameter preview.
-
-2020-04-22  Jason Merrill  <jason@redhat.com>
-
-       PR c++/94546
-       * pt.c (register_parameter_specializations): If the instantiation is
-       still a parameter pack, don't wrap it in a NONTYPE_ARGUMENT_PACK.
-       (tsubst_pack_expansion, tsubst_expr): Adjust.
-
-2020-04-22  Martin Sebor  <msebor@redhat.com>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/94510
-       * decl.c (reshape_init_array_1): Avoid stripping redundant trailing
-       zero initializers...
-       * mangle.c (write_expression): ...and handle them here even for
-       pointers to members by calling zero_init_expr_p.
-       * cp-tree.h (zero_init_expr_p): Declare.
-       * tree.c (zero_init_expr_p): Define.
-       (type_initializer_zero_p): Remove.
-       * pt.c (tparm_obj_values): New hash_map.
-       (get_template_parm_object): Store to it.
-       (tparm_object_argument): New.
-
-2020-04-22  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/67825
-       * constraint.cc (diagnose_valid_expression): Check convert_to_void here
-       as well as in tsubst_valid_expression_requirement.
-
-2020-04-21  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94549
-       * constraint.cc (satisfy_declaration_constraints): Don't strip the
-       inherited constructor if it already has template information.
-
-       PR c++/94597
-       * pt.c (any_template_parm_r) <case IDENTIFIER_NODE>: New case.  If this
-       is a conversion operator, visit its TREE_TYPE.
-
-2020-04-21  Nathan Sidwell  <nathan@acm.org>
-
-       * pt.c (tsubst_copy_and_build) [POINTER_PLUS_EXPR]: Check for
-       error_mark_node.
-
-2020-04-21 Iain Sandoe <iain@sandoe.co.uk>
-
-       PR c++/94661
-       * coroutines.cc (morph_fn_to_coro): Simplify return
-       value computation.
-
-2020-04-17  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94592
-       * constexpr.c (cxx_eval_outermost_constant_expr): Return when T is
-       a BRACE_ENCLOSED_INITIALIZER_P.
-       (is_nondependent_constant_expression): Don't check
-       BRACE_ENCLOSED_INITIALIZER_P.
-       (is_nondependent_static_init_expression): Likewise.
-
-2020-04-20  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94628
-       * cp-tree.h (lss_policy::lss_nop): New enumerator.
-       * pt.c (local_specialization_stack::local_specialization_stack): Handle
-       an lss_nop policy.
-       (local_specialization_stack::~local_specialization_stack): Likewise.
-       (tsubst_pack_expansion): Use a local_specialization_stack instead of
-       manually saving and restoring local_specializations.  Conditionally
-       replace local_specializations sooner, before the handling of the
-       unsubstituted_packs case.
-
-2020-04-20  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94505 - bogus -Wparentheses warning with fold-expression.
-       * pt.c (fold_expression): Add warning_sentinel for -Wparentheses
-       before calling build_x_binary_op.
-
-2020-04-20  Marek Polacek  <polacek@redhat.com>
-
-       * coroutines.cc (captures_temporary): Don't assign the result of
-       STRIP_NOPS to the same variable.
-
-2020-04-20  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/94454 - tpl-tpl-parms are not canonicalizable types
-       * pt.c (canonical_type_parameter): Assert not a tpl-tpl-parm.
-       (process_template_parm): tpl-tpl-parms are structural.
-       (rewrite_template_parm): Propagate structuralness.
-
-       PR c++/94454 - Expr pack expansion equality
-       * tree.c (cp_tree_equal) [TEMPLATE_ID_EXPR, default]: Refactor.
-       [EXPR_PACK_EXPANSION]: Add.
-
-       PR c++/94454 Template Argument Hashing
-       * pt.c (iterative_hash_template_arg): Strip nodes as
-       template_args_equal does.
-       [ARGUMENT_PACK_SELECT, TREE_VEC, CONSTRUCTOR]: Refactor.
-       [node_class:TEMPLATE_TEMPLATE_PARM]: Hash by level & index.
-       [node_class:default]: Refactor.
-
-2020-04-18  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94632
-       * tree.c (cp_tree_equal) <case PARM_DECL>: Ignore
-       comparing_specializations if the parameters' contexts are identical.
-
-       PR c++/92187
-       * pt.c (splice_late_return_type): Propagate cv-qualifiers and
-       PLACEHOLDER_TYPE_CONSTRAINTS from the original auto node to the new one.
-
-2020-04-17  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94483
-       * lambda.c (lambda_capture_field_type): Avoid doing auto deduction if
-       the explicit initializer has parameter packs.
-
-       PR c++/88754
-       * parser.c (cp_parser_check_template_parameters): Before issuing a hard
-       error, first try simulating an error instead.
-
-2020-04-17  Jakub Jelinek  <jakub@redhat.com>
-
-       PR other/94629
-       * call.c (build_conditional_expr_1): Remove redundant assignment to
-       arg2.
-
-2020-04-16  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94475
-       * cvt.c (ocp_convert): If the result of scalar_constant_value is
-       erroneous, ignore it and use the original expression.
-
-2020-04-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/94571
-       * parser.c (cp_parser_simple_declaration): Fix up a pasto in
-       diagnostics.
-
-2020-04-15  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c/94593
-       * parser.c (cp_parser_pragma) <case PRAGMA_OMP_REQUIRES>: Reject
-       requires directive when not at file or namespace scope.
-
-2020-04-14  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/94359
-       * coroutines.cc (build_actor_fn): Check that the target can
-       support the resume tailcall before mandating it.
-
-2020-04-14  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/85278
-       * cxx-pretty-print.c (cxx_pretty_printer:simple_type_specifier)
-       <case DECLTYPE_TYPE>: Handle DECLTYPE_TYPE here instead of ...
-       (pp_cxx_type_specifier_seq) <case DECLTYPE_TYPE>: ... here.
-       (cxx_pretty_printer::direct_abstract_declarator) <case DECLTYPE_TYPE>:
-       New no-op case.
-
-       PR c++/94034
-       * constexpr.c (replace_result_decl_data): New struct.
-       (replace_result_decl_data_r): New function.
-       (replace_result_decl): New function.
-       (cxx_eval_call_expression): Use it.
-       * tree.c (build_aggr_init_expr): Set the location of the AGGR_INIT_EXPR
-       to that of its initializer.
-
-2020-04-13  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94588
-       * name-lookup.c (check_local_shadow): Add an inform call.
-
-2020-04-13  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94521
-       * error.c (dump_scope): Pass TFF_NO_FUNCTION_ARGUMENTS to
-       dump_function_decl when printing a function template instantiation as a
-       scope.
-
-       PR c++/94470
-       * constexpr.c (get_or_insert_ctor_field): Set default value of parameter
-       'pos_hint' to -1.
-       (cxx_eval_bare_aggregate): Use get_or_insert_ctor_field instead of
-       assuming the the next index belongs at the end of the new CONSTRUCTOR.
-       (cxx_eval_store_expression): Revert PR c++/78572 fix.
-
-2020-04-13  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/94426  lambdas with internal linkage are different to no-linkage
-       * decl2.c (determine_visibility): A lambda's visibility is
-       affected by its extra scope.
-       * pt.c (instantiate_decl): Determine var's visibility before
-       instantiating its initializer.
-       * tree.c (no_linkage_check): Revert code looking at visibility of
-       lambda's extra scope.
-`
-2020-04-10  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/94528
-       * coroutines.cc (co_await_expander): Remove.
-       (expand_one_await_expression): New.
-       (process_one_statement): New.
-       (await_statement_expander): New.
-       (build_actor_fn): Revise to use per-statement expander.
-       (struct susp_frame_data): Reorder and comment.
-       (register_awaits): Factor code.
-       (replace_statement_captures): New, factored from...
-       (maybe_promote_captured_temps):.. here.
-       (await_statement_walker): Revise to process per statement.
-       (morph_fn_to_coro): Use revised susp_frame_data layout.
-
-2020-04-10  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94149
-       * method.c (constructible_expr): In C++20, try using parenthesized
-       initialization of aggregates to determine the result of
-       __is_constructible.
-
-2020-04-10  Bin Cheng  <bin.cheng@linux.alibaba.com>
-
-       * coroutines.cc (co_await_expander): Simplify.
-
-2020-04-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/94523
-       * constexpr.c (cxx_eval_constant_expression) [VAR_DECL]: Look at
-       ctx->object and ctx->global->values first.
-
-2020-04-09  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93790
-       * call.c (initialize_reference): If the reference binding failed, maybe
-       try initializing from { }.
-       * decl.c (grok_reference_init): For T& t(e), set
-       LOOKUP_AGGREGATE_PAREN_INIT but don't build up a constructor yet.
-
-2020-04-08  Iain Sandoe  <iain@sandoe.co.uk>
-           Jun Ma  <JunMa@linux.alibaba.com>
-
-       * coroutines.cc (maybe_promote_captured_temps): Add a cleanup
-       expression, if needed, to any call from which we promoted
-       temporaries captured by reference.
-
-2020-04-08  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94507 - ICE-on-invalid with lambda template.
-       * pt.c (tsubst_lambda_expr): Cope when tsubst_template_decl or
-       tsubst_function_decl returns error_mark_node.
-
-2020-04-08  Martin Liska  <mliska@suse.cz>
-
-       PR c++/94314
-       * decl.c (duplicate_decls): Duplicate also DECL_IS_REPLACEABLE_OPERATOR.
-       (cxx_init_decl_processing): Mark replaceable all implicitly defined
-       operators.
-
-2020-04-08  Patrick Palka  <ppalka@redhat.com>
-
-       Core issues 1001 and 1322
-       PR c++/92010
-       * pt.c (rebuild_function_or_method_type): Split function out from ...
-       (tsubst_function_type): ... here.
-       (maybe_rebuild_function_decl_type): New function.
-       (tsubst_function_decl): Use it.
-
-2020-04-08  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/94325
-       * decl.c (begin_destructor_body): For CLASSTYPE_VBASECLASSES class
-       dtors, if CLASSTYPE_PRIMARY_BINFO is non-NULL, but not BINFO_VIRTUAL_P,
-       look at CLASSTYPE_PRIMARY_BINFO of its BINFO_TYPE if it is not
-       BINFO_VIRTUAL_P, and so on.
-
-2020-04-08  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94478 - ICE with defaulted comparison operator
-       * method.c (early_check_defaulted_comparison): Give an error when the
-       context is null.
-
-2020-04-08  Tobias Burnus  <tobias@codesourcery.com>
-
-       PR middle-end/94120
-       * paser.c (cp_parser_oacc_declare): Add check that variables
-       are declared in the same scope as the directive.
-
-2020-04-07  Jason Merrill  <jason@redhat.com>
-
-       PR c++/94480
-       * parser.c (cp_parser_requires_expression): Use tentative_firewall.
-
-       PR c++/94481
-       * parser.c (cp_parser_placeholder_type_specifier): Use
-       matching_parens.
-
-2020-04-07  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (maybe_promote_captured_temps): Ensure that
-       reference capture placeholder vars are properly declared.
-
-2020-04-07  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/90996
-       * tree.c (replace_placeholders): Look through all handled components,
-       not just COMPONENT_REFs.
-       * typeck2.c (process_init_constructor_array): Propagate
-       CONSTRUCTOR_PLACEHOLDER_BOUNDARY up from each element initializer to
-       the array initializer.
-
-2020-04-07  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/94512
-       * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
-       if cp_parser_omp_master succeeded.
-
-2020-04-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/94462
-       * decl.c (duplicate_decls): Fix handling of DECL_HIDDEN_FRIEND_P.
-
-2020-04-04  Marek Polacek  <polacek@redhat.com>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/94155 - crash in gimplifier with paren init of aggregates.
-       * init.c (build_vec_init): Fill in indexes.
-
-2020-04-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91377
-       * mangle.c (write_expression): Skip IMPLICIT_CONV_EXPR.
-
-2020-04-04  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94205
-       PR c++/79937
-       * constexpr.c (struct constexpr_ctx): New field 'parent'.
-       (cxx_eval_bare_aggregate): Propagate CONSTRUCTOR_PLACEHOLDER_BOUNDARY
-       flag from the original constructor to the reduced constructor.
-       (lookup_placeholder): Prefer to return the outermost matching object
-       by recursively calling lookup_placeholder on the 'parent' context,
-       but don't cross CONSTRUCTOR_PLACEHOLDER_BOUNDARY constructors.
-       (cxx_eval_constant_expression): Link the 'ctx' context to the 'new_ctx'
-       context via 'new_ctx.parent' when being expanded without an explicit
-       target.  Don't call replace_placeholders.
-       (cxx_eval_outermost_constant_expr): Initialize 'ctx.parent' to NULL.
-
-       PR c++/94219
-       PR c++/94205
-       * constexpr.c (get_or_insert_ctor_field): Split out (while adding
-       support for VECTOR_TYPEs, and optimizations for the common case)
-       from ...
-       (cxx_eval_store_expression): ... here.  Rename local variable
-       'changed_active_union_member_p' to 'activated_union_member_p'.  Record
-       the sequence of indexes into 'indexes' that yields the subobject we're
-       assigning to.  Record the integer offsets of the constructor indexes
-       we're assigning through into 'index_pos_hints'.  After evaluating the
-       initializer of the store expression, recompute 'valp' using 'indexes'
-       and using 'index_pos_hints' as hints.
-       (cxx_eval_bare_aggregate): Tweak comments.  Use get_or_insert_ctor_field
-       to recompute the constructor_elt pointer we're assigning through after
-       evaluating each initializer.
-
-2020-04-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/67825
-       * constraint.cc (tsubst_valid_expression_requirement): Call
-       convert_to_void.
-
-2020-04-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/94453
-       * constexpr.c (maybe_constant_value): Use break_out_target_exprs.
-       * expr.c (mark_use) [VIEW_CONVERT_EXPR]: Don't wrap a TARGET_EXPR in
-       NON_LVALUE_EXPR.
-
-2020-04-04  Jakub Jelinek  <jakub@redhat.com>
-
-       PR debug/94441
-       * parser.c (cp_parser_omp_for_loop): Use
-       protected_set_expr_location_if_unset.
-       * cp-gimplify.c (genericize_if_stmt, genericize_cp_loop): Likewise.
-
-       PR c++/94477
-       * pt.c (tsubst_expr) <case OMP_MASTER>: Clear
-       omp_parallel_combined_clauses.
-
-2020-04-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91966
-       * pt.c (complex_pack_expansion_r): New.
-       (complex_alias_template_p): Use it.
-
-2020-03-31  Jason Merrill  <jason@redhat.com>
-
-       PR c++/94205
-       * constexpr.c (cxx_eval_constant_expression) [TARGET_EXPR]: Call
-       replace_placeholders.
-       * typeck2.c (store_init_value): Fix arguments to
-       fold_non_dependent_expr.
-
-2020-03-31  Jason Merrill  <jason@redhat.com>
-
-       * constexpr.c (cxx_eval_constant_expression) [TARGET_EXPR]: Use
-       local variables.
-
-2020-03-30  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90711
-       * tree.c (cp_tree_equal) [CALL_EXPR]: Compare KOENIG_LOOKUP_P.
-       (called_fns_equal): Check DECL_CONTEXT.
-
-2020-03-30  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/94385
-       * semantics.c (add_stmt): Only set STMT_IS_FULL_EXPR_P on trees with
-       STATEMENT_CODE_P code.
-
-2020-03-28  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94306
-       * parser.c (cp_parser_requires_clause_opt): Diagnose and recover from
-       "requires {" when "requires requires {" was probably intended.
-
-       PR c++/94252
-       * constraint.cc (tsubst_compound_requirement): Always suppress errors
-       from type_deducible_p and expression_convertible_p, as they're not
-       substitution errors.
-       (diagnose_atomic_constraint) <case INTEGER_CST>: Remove this case so
-       that we diagnose INTEGER_CST expressions of non-bool type via the
-       default case.
-       * cp-gimplify.c (cp_genericize_r) <case REQUIRES_EXPR>: New case.
-       * parser.c (cp_parser_requires_expression): Always parse the requirement
-       body as if we're processing a template, by temporarily incrementing
-       processing_template_decl.  Afterwards, if we're not actually in a
-       template context, perform semantic processing to diagnose any invalid
-       types and expressions.
-       * pt.c (tsubst_copy_and_build) <case REQUIRES_EXPR>: Remove dead code.
-       * semantics.c (finish_static_assert): Explain an assertion failure
-       when the condition is a REQUIRES_EXPR like we do when it is a concept
-       check.
-
-       * constraint.cc (diagnose_compound_requirement): When diagnosing a
-       compound requirement, maybe replay the satisfaction failure, subject to
-       the current diagnosis depth.
-
-       * constraint.cc (finish_constraint_binary_op): Set the location of EXPR
-       as well as its range, because build_x_binary_op doesn't always do so.
-       (current_constraint_diagnosis_depth): New.
-       (concepts_diagnostics_max_depth_exceeded_p): New.
-       (collect_operands_of_disjunction): New.
-       (satisfy_disjunction): When diagnosing a satisfaction failure, maybe
-       replay each branch of the disjunction, subject to the current diagnosis
-       depth.
-       (diagnose_valid_expression): When diagnosing a satisfaction failure,
-       maybe replay the substitution error, subject to the current diagnosis
-       recursion.
-       (diagnose_valid_type): Likewise.
-       (diagnose_nested_requiremnet): Likewise.
-       (diagnosing_failed_constraint::diagnosing_failed_constraint): Increment
-       current_constraint_diagnosis_depth when diagnosing.
-       (diagnosing_failed_constraint::~diagnosing_failed_constraint): Decrement
-       current_constraint_diagnosis_depth when diagnosing.
-       (diagnosing_failed_constraint::replay_errors_p): New static member
-       function.
-       (diagnose_constraints): Don't diagnose if concepts_diagnostics_max_depth
-       is 0.  Emit a one-off note to increase -fconcepts-diagnostics-depth if
-       the limit was exceeded.
-       * cp-tree.h (diagnosing_failed_constraint::replay_errors_p): Declare.
-
-2020-03-27  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84733
-       * name-lookup.c (do_pushdecl): Look through cleanp levels.
-
-2020-03-27  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/94078
-       PR c++/93824
-       PR c++/93810
-       * cp-tree.h (most_specialized_partial_spec): Declare.
-       * parser.c (cp_parser_elaborated_type_specifier): Distinguish alias
-       from declarations.
-       (specialization_of): New function.
-       (cp_parser_check_class_key): Move code...
-       (class_decl_loc_t::add): ...to here.  Add parameters.  Avoid issuing
-       -Wredundant-tags on first-time declarations in other declarators.
-       Correct handling of template specializations.
-       (class_decl_loc_t::diag_mismatched_tags): Also expect to be called
-       when -Wredundant-tags is enabled.  Use primary template or partial
-       specialization as the guide for uses of implicit instantiations.
-       * pt.c (most_specialized_partial_spec): Declare extern.
-
-2020-03-27  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/94257
-       * name-lookup.c (push_namespace): Triage ambiguous lookups that
-       contain namespaces.
-
-2020-03-27  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/94326
-       * call.c (set_flags_from_callee): Don't update
-       cp_function_chain->can_throw or current_function_returns_abnormally
-       if cp_unevaluated_operand.
-
-       PR c++/94339
-       * cvt.c (ocp_convert): Handle COMPOUND_EXPR by recursion on the second
-       operand and creating a new COMPOUND_EXPR if anything changed.
-
-2020-03-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94336 - template keyword accepted before destructor names.
-       * parser.c (cp_parser_unqualified_id): Give an error when 'template'
-       is followed by a destructor name.
-
-2020-03-27  Patrick Palka  <ppalka@redhat.com>
-
-       * decl.c (compute_array_index_type_loc): Remove redundant
-       type_dependent_expression_p check that is subsumed by
-       value_dependent_expression_p.
-       * decl2.c (is_late_template_attribute): Likewise.
-       * pt.c (uses_template_parms): Likewise.
-       (dependent_template_arg_p): Likewise.
-
-2020-03-26  Marek Polacek  <polacek@redhat.com>
-
-       DR 1710
-       PR c++/94057 - template keyword in a typename-specifier.
-       * parser.c (check_template_keyword_in_nested_name_spec): New.
-       (cp_parser_nested_name_specifier_opt): Implement DR1710, optional
-       'template'.  Call check_template_keyword_in_nested_name_spec.
-       (cp_parser_simple_type_specifier): Assume that a <
-       following a qualified-id in a typename-specifier begins
-       a template argument list.
-
-2020-03-26  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (coro_init_identifiers): Initialize an identifier
-       for the cororoutine handle 'address' method name.
-       (struct coro_aw_data): Add fields to cover the continuations.
-       (co_await_expander): Determine the kind of await_suspend in use.
-       If we have the case that returns a continuation handle, then save
-       this and make the target for 'scope exit without cleanup' be the
-       continuation resume label.
-       (expand_co_awaits): Remove.
-       (struct suspend_point_info): Remove fields that kept the returned
-       await_suspend handle type.
-       (transform_await_expr): Remove code tracking continuation handles.
-       (build_actor_fn): Add the continuation handle as an actor-function
-       scope var.  Build the symmetric transfer continuation point. Call
-       the tree walk for co_await expansion directly, rather than via a 
-       trivial shim function.
-       (register_await_info): Remove fields tracking continuation handles.
-       (get_await_suspend_return_type): Remove.
-       (register_awaits): Remove code tracking continuation handles.
-       (morph_fn_to_coro): Remove code tracking continuation handles.
-
-2020-03-26  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (co_await_expander): If we are expanding the
-       initial await expression, set a boolean flag to show that we
-       have now reached the initial await_resume() method call.
-       (expand_co_awaits): Handle the 'initial await resume called' flag.
-       (build_actor_fn): Insert the initial await expression into the
-       start of the user-authored function-body. Handle the 'initial await
-       resume called' flag.
-       (morph_fn_to_coro): Initialise the 'initial await resume called'
-       flag.  Modify the unhandled exception catch clause to recognise
-       exceptions that occur before the initial await_resume() and re-
-       throw them.
-
-2020-03-26  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/81349
-       * class.c (user_provided_p): Use STRIP_TEMPLATE instead of returning
-       true for all TEMPLATE_DECLs.
-
-       PR c++/94272
-       * cp-gimplify.c (cp_genericize_r): Handle STATEMENT_LIST.
-
-2020-03-25  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94265
-       * parser.c (cp_parser_selection_statement) <case RID_IF>: Invalidate the
-       current condition chain when the if-statement has a non-empty
-       init-statement.
-
-2020-03-25  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/94319
-       * coroutines.cc (captures_temporary): Fix a missing dereference.
-
-2020-03-24  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94190 - wrong no post-decrement operator error in template.
-       * call.c (convert_like_real): Use convert_from_reference on the result.
-
-2020-03-24  Jason Merrill  <jason@redhat.com>
-
-       PR c++/94186
-       * constraint.cc (constraint_satisfaction_value): Repeat noisily on
-       error.
-       (tsubst_nested_requirement): Likewise.
-       (get_constraint_error_location): Allow missing context.
-       (diagnose_atomic_constraint): Diagnose non-bool constraint here.
-       (satisfy_atom): Not here.  Only diagnose non-constant when noisy.
-
-2020-03-24  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (any_template_parm_r): Look into the type of a non-type
-       template parm.
-
-2020-03-24  Jason Merrill  <jason@redhat.com>
-
-       * cp-tree.h (cp_expr): When constructing from an expr and a
-       location, call protected_set_expr_location.
-
-2020-03-23  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/93805
-       * except.c (maybe_noexcept_warning): Add TODO.
-       * method.c (walk_field_subobs): Pass tf_none to expr_noexcept_p.
-
-2020-03-23  nathans  <nathan@acm.org>
-
-       PR c++/94044
-       * tree.c (cp_tree_equal) [SIZEOF_EXPR]: Detect argument pack
-       operand.
-
-2020-03-21  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/94066
-       * constexpr.c (reduced_constant_expression_p) [CONSTRUCTOR]: Properly
-       handle unions without an initializer.
-       (cxx_eval_component_reference): Emit a different diagnostic when the
-       constructor element corresponding to a union member is NULL.
-       (cxx_eval_bare_aggregate): When constructing a union, always set the
-       active union member before evaluating the initializer.  Relax assertion
-       that verifies the index of the constructor element we're initializing
-       hasn't been changed.
-       (cxx_eval_store_expression): Diagnose changing the active union member
-       while the union is in the process of being initialized.  After setting
-       an active union member, clear CONSTRUCTOR_NO_CLEARING on the underlying
-       CONSTRUCTOR.
-       (cxx_eval_constant_expression) [PLACEHOLDER_EXPR]: Don't re-reduce a
-       CONSTRUCTOR returned by lookup_placeholder.
-
-2020-03-20  Patrick Palka  <ppalka@redhat.com>
-
-       * cxx-pretty-print.c (pp_cxx_parameter_mapping): Make extern.  Move
-       the "[with ]" bits to here from ...
-       (pp_cxx_atomic_constraint): ... here.
-       * cxx-pretty-print.h (pp_cxx_parameter_mapping): Declare.
-       * error.c (rebuild_concept_check): Delete.
-       (print_concept_check_info): Print the dependent form of the constraint and the
-       preferably substituted parameter mapping alongside it.
-
-2020-03-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/94175
-       * cp-gimplify.c (simple_empty_class_p): Look through
-       SIMPLE_TARGET_EXPR_P.
-       (cp_gimplify_expr) [MODIFY_EXPR]: Likewise.
-       [RETURN_EXPR]: Avoid producing 'return *retval;'.
-       * call.c (build_call_a): Strip TARGET_EXPR from empty class arg.
-       * cp-tree.h (SIMPLE_TARGET_EXPR_P): Check that TARGET_EXPR_INITIAL
-       is non-null.
-
-2020-03-19  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/93931
-       * parser.c (cp_parser_omp_var_list_no_open): Call process_outer_var_ref
-       on outer_automatic_var_p decls.
-       * cp-gimplify.c (cxx_omp_disregard_value_expr): Return true also for
-       capture proxy decls.
-
-2020-03-18  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/94147 - mangling of lambdas assigned to globals
-       * parser.c (cp_parser_init_declarator): Namespace-scope variables
-       provide a lambda scope.
-       * tree.c (no_linkage_check): Lambdas with a variable for extra
-       scope have a linkage from the variable.
-
-2020-03-18  Jakub Jelinek  <jakub@redhat.com>
-
-       * constraint.cc (resolve_function_concept_check, subsumes_constraints,
-       strictly_subsumes): Fix up duplicated word issue in a comment.
-       * coroutines.cc (build_init_or_final_await, captures_temporary):
-       Likewise.
-       * logic.cc (dnf_size_r, cnf_size_r): Likewise.
-       * pt.c (append_type_to_template_for_access_check): Likewise.
-
-       PR c++/91759
-       * decl.c (grokfndecl): Restore old diagnostics about deduction
-       guide declared in different scope if in_namespace is NULL_TREE.
-
-2020-03-17  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/90995
-       * parser.c (cp_parser_enum_specifier): Use temp_override for
-       parser->colon_corrects_to_scope_p, replace goto out with return.
-       If scoped enum or enum with underlying type is not followed by
-       { or ;, call cp_parser_commit_to_tentative_parse before calling
-       cp_parser_error and make sure to return error_mark_node instead of
-       NULL_TREE.  Formatting fixes.
-
-2020-03-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       PR c++/94197
-       * method.c (assignable_expr): Use cp_unevaluated.
-       (is_xible_helper): Push a non-deferred access check for
-       the stub objects created by assignable_expr and constructible_expr.
-
-2020-03-17  Jakub Jelinek  <jakub@redhat.com>
-
-       * pt.c (tsubst): Fix up duplicated word issue in a diagnostic message.
-       (lookup_template_class_1, tsubst_expr): Fix up duplicated word issue
-       in a comment.
-       * parser.c (cp_parser_statement, cp_parser_linkage_specification,
-       cp_parser_placeholder_type_specifier,
-       cp_parser_constraint_requires_parens): Likewise.
-       * name-lookup.c (suggest_alternative_in_explicit_scope): Likewise.
-
-2020-03-15  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (co_await_expander): Fix indentation.
-
-2020-03-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92068
-       * pt.c (process_partial_specialization): Error rather than crash on
-       extra pack expansion.
-
-2020-03-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92909
-       * pt.c (find_parameter_packs_r): [DECL_EXPR]: Walk
-       DECL_ORIGINAL_TYPE of a typedef.
-
-2020-03-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93248
-       * pt.c (build_deduction_guide): Clear cp_unevaluated_operand for
-       substituting DECL_ARGUMENTS.
-
-2020-03-14  Jakub Jelinek  <jakub@redhat.com>
-
-       * logic.cc (formula::formula): Change "a an" to "an" in a comment.
-       * parser.c (cp_debug_parser): Change "a an" to "an" in a string
-       literal.
-
-2020-03-13  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/67960
-       * call.c (build_over_call): Use a warning_sentinel to disable
-       warn_deprecated_decl before calling build_addr_func.
-
-2020-03-12  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/94124
-       * decl.c (reshape_init_array_1): Don't unshare constructor if there
-       aren't any trailing zero elts, otherwise only unshare the first
-       nelts.
-
-2020-03-11  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93907
-       * constraint.cc (tsubst_parameter_mapping): Canonicalize type
-       argument.
-
-2020-03-11  Marek Polacek  <polacek@redhat.com>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/94074 - wrong modifying const object error for COMPONENT_REF.
-       * constexpr.c (cref_has_const_field): New function.
-       (modifying_const_object_p): Consider a COMPONENT_REF
-       const only if any of its fields are const.
-       (cxx_eval_store_expression): Mark a CONSTRUCTOR of a const type
-       as readonly after its initialization has been done.
-
-2020-03-10  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94124 - wrong conversion error with non-viable overload.
-       * decl.c (reshape_init_array_1): Unshare a constructor if we
-       stripped trailing zero-initializers.
-
-2020-03-10  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93901
-       * pt.c (maybe_instantiate_noexcept): Always update clones.
-
-2020-03-10  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93596
-       * pt.c (maybe_aggr_guide): Check BRACE_ENCLOSED_INITIALIZER_P.
-
-2020-03-10  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93922
-       PR c++/94041
-       PR c++/52320
-       PR c++/66139
-       * cp-gimplify.c (cp_gimplify_init_expr): Partially revert patch for
-       66139: Don't split_nonconstant_init.  Remove pre_p parameter.
-
-2020-03-09  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/92031 - bogus taking address of rvalue error.
-       PR c++/91465 - ICE with template codes in check_narrowing.
-       PR c++/93870 - wrong error when converting template non-type arg.
-       PR c++/94068 - ICE with template codes in check_narrowing.
-       * call.c (convert_like_real): Return IMPLICIT_CONV_EXPR
-       in a template when not ck_identity and we're dealing with a class.
-       (convert_like_real) <case ck_ref_bind>: Return IMPLICIT_CONV_EXPR
-       in a template if we need a temporary.
-       * decl.c (compute_array_index_type_loc): Remove
-       instantiate_non_dependent_expr_sfinae call.  Call
-       fold_non_dependent_expr instead of maybe_constant_value.
-       (build_explicit_specifier): Don't instantiate or create a sentinel
-       before converting the expression.
-       * except.c (build_noexcept_spec): Likewise.
-       * pt.c (convert_nontype_argument): Don't build IMPLICIT_CONV_EXPR.
-       Set IMPLICIT_CONV_EXPR_NONTYPE_ARG if that's what
-       build_converted_constant_expr returned.
-       * typeck2.c (check_narrowing): Call fold_non_dependent_expr instead
-       of maybe_constant_value.
-
-2020-03-09  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/94067
-       Revert
-       2019-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * constexpr.c (cxx_eval_constant_expression): Do not handle
-       RROTATE_EXPR and LROTATE_EXPR.
-
-2020-03-09  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/94050 - ABI issue with alignas on armv7hl.
-       * class.c (layout_class_type): Don't replace a class's
-       CLASSTYPE_AS_BASE if their TYPE_USER_ALIGN don't match.
-
-2020-03-09  Bin Cheng  <bin.cheng@linux.alibaba.com>
-
-       * coroutines.cc (build_actor_fn): Factor out code inserting the
-       default return_void call to...
-       (morph_fn_to_coro): ...here, also hoist local var declarations.
-
-2020-03-08  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/93729
-       * call.c (convert_like_real): Check complain before emitting an error
-       about binding a bit-field to a reference.
-
-       * cxx-pretty-print.c (cxx_pretty_printer::simple_type_specifier)
-       [TYPENAME_TYPE]: Print the TYPENAME_TYPE_FULLNAME instead of the
-       TYPE_NAME.
-
-2020-03-06  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/94027
-       * mangle.c (find_substitution): Don't call same_type_p on template
-       args that cannot match.
-
-2020-03-04  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/90938
-       * tree.c (type_initializer_zero_p): Fail for structs initialized
-       with non-structs.
-
-2020-03-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90432
-       * init.c (perform_member_init): Don't do aggregate initialization of
-       empty field.
-       * constexpr.c (cx_check_missing_mem_inits): Don't enforce
-       initialization of empty field.
-
-2020-03-04  Martin Liska  <mliska@suse.cz>
-
-       * method.c: Wrap array in ctor with braces in order
-       to silent clang warnings.
-
-2020-03-03  Jason Merrill  <jason@redhat.com>
-           Marek Polacek  <polacek@redhat.com>
-
-       PR c++/90505 - mismatch in template argument deduction.
-       * pt.c (tsubst): Don't reduce the template level of template
-       parameters when tf_partial.
-
-2020-03-03  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/93998
-       * constexpr.c (cxx_eval_constant_expression)
-       <case TARGET_EXPR, case SAVE_EXPR>: Don't record anything if
-       *non_constant_p is true.
-
-2020-03-03  Jun Ma  <JunMa@linux.alibaba.com>
-
-       * coroutines.cc (captures_temporary): Strip component_ref
-       to its base object.
-
-2020-03-03  Jun Ma  <JunMa@linux.alibaba.com>
-
-       * coroutines.cc (finish_co_await_expr): Build co_await_expr
-       with unknown_type_node.
-       (finish_co_yield_expr): Ditto.
-       *pt.c (type_dependent_expression_p): Set co_await/yield_expr
-       with unknown type as dependent.
-
-2020-03-02  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (struct local_var_info): Adjust to remove the
-       reference to the captured var, and just to note that this is a
-       lambda capture proxy.
-       (transform_local_var_uses): Handle lambda captures specially.
-       (struct param_frame_data): Add a visited set.
-       (register_param_uses): Also check for param uses in lambda
-       capture proxies.
-       (struct local_vars_frame_data): Remove captures list.
-       (register_local_var_uses): Handle lambda capture proxies by
-       noting and bypassing them.
-       (morph_fn_to_coro): Update to remove lifetime extension of
-       lambda capture-by-copy vars.
-
-2020-03-02  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (build_co_await): Do not build frame
-       awaitable proxy vars when the co_await expression is
-       a function parameter or local var.
-       (co_await_expander): Do not initialise a frame var with
-       itself.
-       (transform_await_expr): Only substitute the awaitable
-       frame var if it's needed.
-       (register_awaits): Do not make frame copies for param
-       or local vars that are awaitables.
-
-2020-02-28  Jason Merrill  <jason@redhat.com>
-
-       Implement P2092R0, Disambiguating Nested-Requirements
-       * parser.c (cp_parser_requirement_parameter_list): Pass
-       CP_PARSER_FLAGS_TYPENAME_OPTIONAL.
-
-       * call.c (build_user_type_conversion_1): Don't look at the second
-       conversion of a non-viable candidate.
-
-2020-02-28  Jakub Jelinek  <jakub@redhat.com>
-
-       P1937R2 - Fixing inconsistencies between const{expr,eval} functions
-       * typeck.c (cp_build_addr_expr_1): Allow taking address of immediate
-       functions in unevaluated contexts.
-
-2020-02-27  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/93933
-       * pt.c (template_args_equal): Pass ARGUMENT_PACKS through to
-       cp_tree_equal.
-       * tree.c (cp_tree_equal): Compare ARGUMENT_PACKS here,
-       * typeck.c (comptypes): Assert we don't get any argument packs.
-
-       * class.c (adjust_clone_args): Correct arg-checking assert.
-       * typeck.c (comptypes): Assert not nulls.
-
-2020-02-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93789 - ICE with invalid array bounds.
-       * decl.c (compute_array_index_type_loc): Don't use the folded
-       size when folding cleared TREE_CONSTANT.
-
-2020-02-26  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * class.c (classtype_has_non_deleted_copy_ctor): New.
-       * coroutines.cc (struct param_info): Keep track of params
-       that are references, and cache the original type and whether
-       the DTOR is trivial.
-       (build_actor_fn): Handle param copies always, and adjust the
-       handling for references.
-       (register_param_uses): Only handle uses here.
-       (classtype_has_non_deleted_copy_ctor): New.
-       (morph_fn_to_coro): Adjust param copy handling to match n4849
-       by reordering ahead of the promise CTOR and always making a
-       frame copy, even if the param is unused in the coroutine body.
-       * cp-tree.h (classtype_has_non_deleted_copy_ctor): New.
-
-2020-02-26  Patrick Palka  <ppalka@redhat.com>
-
-       * constraint.cc (finish_constraint_binary_op): Set expr's location range
-       to the range of its operands.
-       (satisfy_atom): Pass MAP instead of ARGS to diagnose_atomic_constraint.
-       (diagnose_trait_expr): Take the instantiated parameter mapping MAP
-       instead of the corresponding template arguments ARGS and adjust body
-       accordingly.
-       (diagnose_requires_expr): Likewise.
-       (diagnose_atomic_constraint): Likewise.  When printing an atomic
-       constraint expression, print the instantiated parameter mapping
-       alongside it.
-       * cxx-pretty-print.cc (cxx_pretty_printer::expression)
-       [NONTYPE_ARGUMENT_PACK]: Print braces around a NONTYPE_ARGUMENT_PACK.
-       (cxx_pretty_printer::type_id): Handle TYPE_ARGUMENT_PACK.
-
-2020-02-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93676 - value-init crash in template.
-       * init.c (build_new_1): Don't call build_vec_init in a template.
-
-2020-02-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93862 - ICE with static_cast when converting from int[].
-       * call.c (reference_compatible_p): No longer static.
-       * cp-tree.h (reference_compatible_p): Declare.
-       * typeck.c (build_static_cast_1): Use reference_compatible_p instead
-       of reference_related_p.
-
-2020-02-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93803 - ICE with constexpr init and [[no_unique_address]].
-       * constexpr.c (reduced_constant_expression_p): Don't crash on a null
-       field.
-
-2020-02-24  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/93804
-       * parser.c (cp_parser_check_class_key): Avoid issuing -Wredundant-tags
-       in shared C/C++ code in headers.
-       Remove a duplicate hunk of code.
-
-2020-02-24  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93869 - ICE with -Wmismatched-tags.
-       * parser.c (cp_parser_check_class_key): Check class_key earlier.
-
-2020-02-24  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93712 - ICE with ill-formed array list-initialization.
-       * call.c (next_conversion): Return NULL for ck_aggr.
-       (build_aggr_conv): Set u.expr instead of u.next.
-       (build_array_conv): Likewise.
-       (build_complex_conv): Likewise.
-       (conv_get_original_expr): Handle ck_aggr.
-
-2020-02-24  Jakub Jelinek  <jakub@redhat.com>
-
-       P1937R2 - Fixing inconsistencies between const{expr,eval} functions
-       * call.c (build_over_call): Don't evaluate immediate functions in
-       unevaluated operands.
-
-2020-02-24  Jason Merrill  <jason@redhat.com>
-
-       P0780R2: Resolve lambda init-capture pack grammar.
-       * parser.c (cp_parser_lambda_introducer): Expect &...x=y rather than
-       ...&x=y.
-
-2020-02-22  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93882
-       * decl.c (grokdeclarator): Use %qs in a diagnostic message.
-
-2020-02-21  Martin Sebor  <msebor@redhat.com>
-
-       PR gcov-profile/93753
-       * class.c (check_flexarrays): Tighten up a test for potential members
-       of anonymous structs or unions.
-
-2020-02-20  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/93801
-       * parser.c (cp_parser_check_class_key): Only handle true C++ class-keys.
-
-2020-02-20  Martin Liska  <mliska@suse.cz>
-
-       PR translation/93841
-       * config/or1k/or1k.opt: Remove superfluous word.
-       * doc/invoke.texi: Likewise.
-
-2020-02-20  Martin Liska  <mliska@suse.cz>
-
-       PR translation/93838
-       * parser.c (cp_parser_decl_specifier_seq): Remove trailing space.
-
-2020-02-19  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93169 - wrong-code with a non-constexpr constructor.
-       * constexpr.c (cxx_eval_call_expression): Only set TREE_READONLY
-       on constant CONSTRUCTORs.
-
-2020-02-15  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93710 - poor diagnostic for array initializer.
-       * call.c (build_user_type_conversion_1): Use cp_expr_loc_or_input_loc
-       for an error call.
-
-2020-02-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92556
-       * pt.c (any_template_parm_r): Look into lambda body.
-
-       PR c++/92583
-       * pt.c (any_template_parm_r): Remove CONSTRUCTOR handling.
-
-2020-02-14  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/61414
-       * class.c (enum_min_precision): Change prec type from int to int &.
-
-       PR libstdc++/92906
-       * cp-tree.h (enum cp_tree_index): Add CPTI_FALLBACK_DFLOAT32_TYPE,
-       CPTI_FALLBACK_DFLOAT64_TYPE and CPTI_FALLBACK_DFLOAT128_TYPE.
-       (fallback_dfloat32_type, fallback_dfloat64_type,
-       fallback_dfloat128_type): Define.
-       * mangle.c (write_builtin_type): Handle fallback_dfloat*_type like
-       dfloat*_type_node.
-       * rtti.c (emit_support_tinfos): Emit DFP typeinfos even when dfp
-       is disabled for compatibility.
-
-2020-02-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93713
-       * name-lookup.c (matching_fn_p): A function does not match a
-       template.
-
-       PR c++/93643
-       PR c++/91476
-       * tree.c (decl_linkage): Always lk_none for locals.
-
-2020-02-12  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92583
-       PR c++/92654
-       * tree.c (cp_walk_subtrees): Walk CONSTRUCTOR types here.
-       * pt.c (find_parameter_packs_r): Not here.
-
-2020-02-12 Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (build_actor_fn): Implement deallocation function
-       selection per n4849, dcl.fct.def.coroutine bullet 12.
-       (morph_fn_to_coro): Implement allocation function selection per
-       n4849, dcl.fct.def.coroutine bullets 9 and 10.
-
-2020-02-12  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93684 - ICE-on-invalid with broken attribute.
-       * parser.c (cp_parser_std_attribute): Peek a token first before
-       consuming it.
-
-2020-02-11  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93675
-       * class.c (add_implicitly_declared_members): Use do_friend.
-       * method.c (implicitly_declare_fn): Fix friend handling.
-       (decl_remember_implicit_trigger_p): New.
-       (synthesize_method): Use it.
-       * decl2.c (mark_used): Use it.
-
-2020-02-11  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93650
-       PR c++/90691
-       * constexpr.c (maybe_constant_value): Correct earlier change.
-       (cxx_eval_binary_expression) [SPACESHIP_EXPR]: Pass lval through.
-       * method.c (genericize_spaceship): Wrap result in TARGET_EXPR.
-
-2020-02-12  Patrick Palka  <ppalka@redhat.com>
-
-       PR c++/69448
-       PR c++/80471
-       * type-utils.h (find_type_usage): Refactor to take a tree * and to
-       return a tree *, and update documentation accordingly.
-       * pt.c (make_auto_1): Set AUTO_IS_DECLTYPE when building a
-       decltype(auto) node.
-       (make_constrained_decltype_auto): No need to explicitly set
-       AUTO_IS_DECLTYPE anymore.
-       (splice_late_return_type): Use find_type_usage to find and
-       replace a possibly nested auto node instead of using is_auto.
-       Check test for is_auto into an assert when deciding whether
-       to late_return_type.
-       (type_uses_auto): Adjust the call to find_type_usage.
-       * parser.c (cp_parser_decltype): No need to explicitly set
-       AUTO_IS_DECLTYPE anymore.
-
-       * error.c (dump_decl) [CONCEPT_DECL]: Use dump_simple_decl.
-       (dump_simple_decl): Handle standard concept definitions as well as
-       variable concept definitions.
-
-2020-02-10  Jakub Jelinek  <jakub@redhat.com>
-
-       PR other/93641
-       * error.c (dump_decl_name): Fix up last argument to strncmp.
-
-2020-02-10  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93618
-       * tree.c (array_of_unknown_bound_p): New.
-       * init.c (perform_member_init): Do nothing for flexible arrays.
-
-2020-02-09  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/93633
-       * constexpr.c (cxx_eval_constant_expression): If obj is heap var with
-       ARRAY_TYPE, use the element type.  Punt if objtype after that is not
-       a class type.
-
-2020-02-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90691
-       * expr.c (fold_for_warn): Call maybe_constant_value.
-       * constexpr.c (struct constexpr_ctx): Add uid_sensitive bit-field.
-       (maybe_constant_value): Add uid_sensitive parm.
-       (get_fundef_copy): Don't copy if it's true.
-       (cxx_eval_call_expression): Don't instantiate if it's true.
-       (cxx_eval_outermost_constant_expr): Likewise.
-
-       PR c++/92852
-       * constexpr.c (maybe_constant_value): Don't unshare if the cached
-       value is the same as the argument.
-
-       * typeck.c (maybe_warn_about_returning_address_of_local): Add
-       location parameter.
-
-       * typeck2.c (process_init_constructor): Also clear TREE_SIDE_EFFECTS
-       if appropriate.
-
-2020-02-08  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/93549
-       * constexpr.c (find_array_ctor_elt): If last element has no index,
-       for flag_checking verify all elts have no index.  If i is within the
-       elts, return it directly, if it is right after the last elt, append
-       if NULL index, otherwise force indexes on all elts.
-       (cxx_eval_store_expression): Allow cep->index to be NULL.
-
-2020-02-07  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/92947 - Paren init of aggregates in unevaluated context.
-       * call.c (build_new_method_call_1): Don't check
-       cp_unevaluated_operand.  Check the return value of digest_init.
-
-2020-02-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92654
-       * tree.c (cp_walk_subtrees): Walk into type template arguments.
-       * cp-tree.h (TYPE_TEMPLATE_INFO_MAYBE_ALIAS): Use typedef_variant_p
-       instead of TYPE_ALIAS_P.
-       * pt.c (push_template_decl_real): Likewise.
-       (find_parameter_packs_r): Likewise.  Remove dead code.
-       * error.c (find_typenames_r): Remove dead code.
-
-2020-02-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92517
-       * parser.c (cp_parser_constraint_primary_expression): Do the main
-       parse non-tentatively.
-
-2020-02-06  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93597 - ICE with lambda in operator function.
-       * name-lookup.c (maybe_save_operator_binding): Check is_overloaded_fn.
-
-2020-02-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93140
-       * pt.c (tsubst_decl) [PARM_DECL]: Check cp_unevaluated_operand in
-       handling of TREE_CHAIN for empty pack.
-
-2020-02-05  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/93557
-       * semantics.c (cp_build_vec_convert): Call decay_conversion on arg
-       prior to passing it to c_build_vec_convert.
-
-2020-02-05  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93559 - ICE with CONSTRUCTOR flags verification.
-       * decl.c (reshape_init_array_1): Don't reuse a CONSTRUCTOR with
-       TREE_SIDE_EFFECTS.
-
-2020-02-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92593
-       * decl.c (grokdeclarator): Reject field of current class type even
-       in a template.
-
-2020-02-05  Bin Cheng  <bin.cheng@linux.alibaba.com>
-
-       * coroutines.cc (maybe_promote_captured_temps): Increase the index
-       number for temporary variables' name.
-
-2020-02-05  Jun Ma  <JunMa@linux.alibaba.com>
-
-       * coroutines.cc (build_co_await): Call convert_from_reference
-       to wrap co_await_expr with indirect_ref which avoid
-       reference/non-reference type confusion.
-
-       (co_await_expander):  Sink to call_expr if await_resume
-       is wrapped by indirect_ref.
-
-2020-02-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93551
-       * constraint.cc (satisfy_declaration_constraints): Check return
-       value of push_tinst_level.
-
-       PR c++/90951
-       * constexpr.c (cxx_eval_array_reference): {}-initialize missing
-       elements instead of value-initializing them.
-
-       PR c++/86917
-       * init.c (perform_member_init): Simplify.
-       * constexpr.c (cx_check_missing_mem_inits): Allow uninitialized
-       flexarray.
-       (cxx_eval_vec_init_1): Handle CONSTRUCTOR.
-
-2020-02-04  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * coroutines.cc (find_promise_type): Delete unused forward
-       declaration.
-       (struct coroutine_info): Add a bool for no promise type error.
-       (coro_promise_type_found_p): Only emit the error for a missing
-       promise once in each affected coroutine.
-
-2020-02-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/66477
-       * constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: Don't
-       defer loading the value of a reference.
-
-2020-02-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91953
-       * constexpr.c (potential_constant_expression_1) [PARM_DECL]: Allow
-       empty class type.
-       [COMPONENT_REF]: A member function reference doesn't use the object
-       as an rvalue.
-
-2020-02-03  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/93458
-       * coroutines.cc (struct coroutine_info): Add a bool flag to note
-       that we emitted an error for a bad function return type.
-       (get_coroutine_info): Tolerate an unset info table in case of
-       missing traits.
-       (find_coro_traits_template_decl): In case of error or if we didn't
-       find a type template, note we emitted the error and suppress
-       duplicates.
-       (find_coro_handle_template_decl): Likewise.
-       (instantiate_coro_traits): Only check for error_mark_node in the
-       return from lookup_qualified_name. 
-       (coro_promise_type_found_p): Reorder initialization so that we check
-       for the traits and their usability before allocation of the info
-       table.  Check for a suitable return type and emit a diagnostic for
-       here instead of relying on the lookup machinery.  This allows the
-       error to have a better location, and means we can suppress multiple
-       copies.
-       (coro_function_valid_p): Re-check for a valid promise (and thus the
-       traits) before proceeding.  Tolerate missing info as a fatal error.
-
-2020-02-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/88256
-       * cp-gimplify.c (predeclare_vla): New.
-       (cp_genericize_r) [NOP_EXPR]: Call it.
-
-2020-02-03  Jun Ma  <JunMa@linux.alibaba.com>
-
-       * coroutines.cc (transform_await_wrapper): Set actor funcion as
-       new context of label_decl.
-       (build_actor_fn): Fill new field of await_xform_data.
-
-2020-02-02  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93530 - ICE on invalid alignas in a template.
-       * decl.c (grokdeclarator): Call cplus_decl_attributes instead of
-       decl_attributes.
-
-2020-01-31  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86216
-       * semantics.c (process_outer_var_ref): Capture VLAs even in
-       unevaluated context.
-
-       PR c++/14179
-       * decl.c (reshape_init_array_1): Reuse a single CONSTRUCTOR with
-       non-aggregate elements.
-       (reshape_init_array): Add first_initializer_p parm.
-       (reshape_init_r): Change first_initializer_p from bool to tree.
-       (reshape_init): Pass init to it.
-
-       PR c++/14179
-       * parser.c (cp_parser_initializer_list): Suppress location wrappers
-       after 256 elements.
-
-2020-01-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/82521
-       * pt.c (tsubst_copy_and_build) [EQ_EXPR]: Only suppress warnings if
-       the expression was dependent before substitution.
-
-2020-01-30  Bin Cheng  <bin.cheng@linux.alibaba.com>
-
-       * coroutines.cc (act_des_fn): New.
-       (morph_fn_to_coro): Call act_des_fn to build actor/destroy decls.
-       Access promise via actor function's frame pointer argument.
-       (build_actor_fn, build_destroy_fn): Use frame pointer argument.
-
-2020-01-30  Bin Cheng  <bin.cheng@linux.alibaba.com>
-
-       * coroutines.cc (co_await_expander): Handle type conversion case.
-
-2020-01-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90333
-       PR c++/89640
-       PR c++/60503
-       * parser.c (cp_parser_type_specifier_seq): Don't parse attributes in
-       a trailing return type.
-       (cp_parser_lambda_declarator_opt): Parse C++11 attributes before
-       parens.
-
-2020-01-29  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/91754 - Fix template arguments comparison with class NTTP.
-       * pt.c (class_nttp_const_wrapper_p): New.
-       (template_args_equal): See through class_nttp_const_wrapper_p
-       arguments.
-
-2020-01-29  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/92948 - Fix class NTTP with template arguments.
-       * pt.c (convert_nontype_argument): Use IMPLICIT_CONV_EXPR when
-       converting a value-dependent expression to a class type.
-       (tsubst_copy) <case VIEW_CONVERT_EXPR>: Allow IMPLICIT_CONV_EXPR
-       as the result of the tsubst_copy call.
-
-2020-01-29  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/91118
-       * cp-gimplify.c (cxx_omp_predetermined_sharing): Return
-       OMP_CLAUSE_DEFAULT_SHARED for typeinfo decls.
-
-2020-01-28  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93442
-       * parser.c (cp_parser_lambda_expression): Clear in_discarded_stmt.
-
-       PR c++/93477
-       PR c++/91476
-       * decl2.c (copy_linkage): Do copy DECL_ONE_ONLY and DECL_WEAK.
-
-       PR c++/90546
-       * call.c (build_user_type_conversion_1): Allow a template conversion
-       returning an rvalue reference to bind directly to an lvalue.
-
-       PR c++/90731
-       * decl.c (grokdeclarator): Propagate eh spec from typedef.
-
-2020-01-28  Martin Liska  <mliska@suse.cz>
-
-       PR c++/92440
-       * pt.c (redeclare_class_template): Group couple of
-       errors and inform messages with auto_diagnostic_group.
-
-2020-01-28  Martin Liska  <mliska@suse.cz>
-
-       PR c++/92440
-       * pt.c (redeclare_class_template): Use inform
-       for the second location.
-
-2020-01-27  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90966
-       * pt.c (tsubst_copy) [STRING_CST]: Don't use fold_convert.
-
-2020-01-27  Iain Sandoe  <iain@sandoe.co.uk>
-
-       PR c++/93443
-       * coroutines.cc (morph_fn_to_coro): Check the ramp return
-       value when it is constructed from the 'get return object'.
-
-2020-01-27  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/91826
-       * name-lookup.c (is_ancestor): Allow CHILD to be a namespace alias.
-
-2020-01-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/90992
-       * except.c (maybe_noexcept_warning): Check DECL_IN_SYSTEM_HEADER and
-       temporarily enable -Wsystem-headers.  Change second warning to
-       conditional inform.
-
-       PR c++/90997
-       * semantics.c (finish_call_expr): Don't call
-       instantiate_non_dependent_expr before warn_for_memset.
-
-2020-01-25  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93414 - poor diagnostic for dynamic_cast in constexpr context.
-       * constexpr.c (cxx_eval_dynamic_cast_fn): Add a reference
-       dynamic_cast diagnostic.
-
-2020-01-24  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93400 - ICE with constrained friend.
-       * constraint.cc (maybe_substitute_reqs_for): New.
-       * decl.c (function_requirements_equivalent_p): Call it.
-       * pt.c (tsubst_friend_function): Only substitute
-       TEMPLATE_PARMS_CONSTRAINTS.
-       (tsubst_template_parms): Copy constraints.
-
-2020-01-24  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93279 - ICE with lambda in member operator.
-       * name-lookup.c (maybe_save_operator_binding): Don't remember
-       class-scope bindings.
-
-2020-01-24  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93377 - ICE with member alias in constraint.
-       * pt.c (any_template_parm_r): Look at template arguments for all
-       aliases, not only alias templates.
-
-2020-01-24  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93299 - ICE in tsubst_copy with parenthesized expression.
-       * pt.c (tsubst_copy): Handle a REF_PARENTHESIZED_P VIEW_CONVERT_EXPR.
-
-2020-01-24  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92852 - ICE with generic lambda and reference var.
-       * constexpr.c (maybe_constant_value): Likewise.
-
-2020-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/92804
-       * parser.c (cp_parser_nested_name_specifier_opt): Properly
-       diagnose concept-ids.
-
-2020-01-23  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93331 - ICE with __builtin_strchr.
-       * constexpr.c (cxx_eval_builtin_function_call): Use the original
-       argument if we didn't manage to extract a STRING_CST.
-
-       PR c++/93345 - ICE with defaulted dtor and template.
-       PR c++/33799
-       * decl.c (cxx_maybe_build_cleanup): Don't try to set
-       throwing_cleanup in a template.
-
-2020-01-22  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/92907 - noexcept does not consider "const" in member functions.
-       * g++.dg/cpp0x/noexcept56.C: New test.
-
-2020-01-22  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/93324 - ICE with -Wall on constexpr if.
-       * semantics.c (is_std_constant_evaluated_p): Check fndecl.
-
-2020-01-22  Patrick Palka  <ppalka@redhat.com>
-
-       * constraint.cc (get_mapped_args): Avoid using auto_vec
-       as a vector element.  Release the vectors inside the lists
-       vector.
-       * parser.c (cp_literal_operator_id): Free the buffer.
-
-2020-01-22  Jun Ma  <JunMa@linux.alibaba.com>
-
-       * coroutines.cc (finish_co_await_expr): Add error check on return
-       value of build_co_await.
-       (finish_co_yield_expr,): Ditto.
-
-2020-01-22  Jun Ma  <JunMa@linux.alibaba.com>
-
-       * coroutines.cc (lookup_awaitable_member): Lookup an awaitable member.
-       (lookup_promise_method): Emit diagnostic when get NULL_TREE back only.
-       (build_co_await): Use lookup_awaitable_member instead of lookup_member.
-
-2020-01-21  Jason Merrill  <jason@redhat.com>
-
-       PR c++/60855 - ICE with sizeof VLA capture.
-       * lambda.c (is_lambda_ignored_entity): Don't look past VLA capture.
-
-       PR c++/90732 - ICE with VLA capture and generic lambda.
-       * pt.c (tsubst_lambda_expr): Repeat add_capture for VLAs.
-
-2020-01-21  Iain Sandoe  <iain@sandoe.co.uk>
-           Bin Cheng  <bin.cheng@linux.alibaba.com>
-
-       * coroutines.cc (coro_promise_type_found_p): Check for NULL return
-       from complete_type_or_else.
-       (register_param_uses): Likewise.
-       (build_co_await): Do not try to use complete_type_or_else for void
-       types, otherwise for incomplete types, check for NULL return from
-       complete_type_or_else.
-
-2020-01-21  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91476 - anon-namespace reference temp clash between TUs.
-       * decl2.c (copy_linkage): Factor out of get_guard.
-       * call.c (make_temporary_var_for_ref_to_temp): Use it.
-       * decl.c (cp_finish_decomp): Use it.
-       (cp_finish_decl): determine_visibility sooner.
-
-2020-01-21  Bin Cheng  <bin.cheng@linux.alibaba.com>
-
-       * coroutines.cc (finish_co_await_expr): Set return value flag.
-       (finish_co_yield_expr, morph_fn_to_coro): Ditto.
-
-2020-01-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/33799 - destroy return value, take 2.
-       * cp-tree.h (current_retval_sentinel): New macro.
-       (struct language_function): Add throwing_cleanup bitfield.
-       * decl.c (cxx_maybe_build_cleanup): Set it.
-       * except.c (maybe_set_retval_sentinel)
-       (maybe_splice_retval_cleanup): New functions.
-       * parser.c (cp_parser_compound_statement): Call
-       maybe_splice_retval_cleanup.
-       * typeck.c (check_return_expr): Call maybe_set_retval_sentinel.
-
-       * parser.c (cp_parser_lambda_body): Use cp_parser_function_body.
-
-2020-01-18  Jakub Jelinek  <jakub@redhat.com>
-
-       * coroutines.cc (get_fn_local_identifier): Fix NO_DOT_IN_LABEL
-       but non-NO_DOLLAR_IN_LABEL case build.
-
-2020-01-18  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * Make-lang.in: Add coroutines.o.
-       * cp-tree.h (lang_decl-fn): coroutine_p, new bit.
-       (DECL_COROUTINE_P): New.
-       * lex.c (init_reswords): Enable keywords when the coroutine flag
-       is set,
-       * operators.def (co_await): New operator.
-       * call.c (add_builtin_candidates): Handle CO_AWAIT_EXPR.
-       (op_error): Likewise.
-       (build_new_op_1): Likewise.
-       (build_new_function_call): Validate coroutine builtin arguments.
-       * constexpr.c (potential_constant_expression_1): Handle
-       CO_AWAIT_EXPR, CO_YIELD_EXPR, CO_RETURN_EXPR.
-       * coroutines.cc: New file.
-       * cp-objcp-common.c (cp_common_init_ts): Add CO_AWAIT_EXPR,
-       CO_YIELD_EXPR, CO_RETRN_EXPR as TS expressions.
-       * cp-tree.def (CO_AWAIT_EXPR, CO_YIELD_EXPR, (CO_RETURN_EXPR): New.
-       * cp-tree.h (coro_validate_builtin_call): New.
-       * decl.c (emit_coro_helper): New.
-       (finish_function): Handle the case when a function is found to
-       be a coroutine, perform the outlining and emit the outlined
-       functions. Set a bit to signal that this is a coroutine component.
-       * parser.c (enum required_token): New enumeration RT_CO_YIELD.
-       (cp_parser_unary_expression): Handle co_await.
-       (cp_parser_assignment_expression): Handle co_yield.
-       (cp_parser_statement): Handle RID_CO_RETURN.
-       (cp_parser_jump_statement): Handle co_return.
-       (cp_parser_operator): Handle co_await operator.
-       (cp_parser_yield_expression): New.
-       (cp_parser_required_error): Handle RT_CO_YIELD.
-       * pt.c (tsubst_copy): Handle CO_AWAIT_EXPR.
-       (tsubst_expr): Handle CO_AWAIT_EXPR, CO_YIELD_EXPR and
-       CO_RETURN_EXPRs.
-       * tree.c (cp_walk_subtrees): Likewise.
-
-2020-01-17  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92531 - ICE with noexcept(lambda).
-       * pt.c (uses_template_parms): Don't try to enumerate all the
-       expression cases.
-
-2020-01-17  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/93228
-       * parser.c (cp_parser_template_name): Look up deprecated attribute
-       in DECL_TEMPLATE_RESULT or its type's attributes.
-
-2020-01-16  Jason Merrill  <jason@redhat.com>
-
-       PR c++/93286 - ICE with __is_constructible and variadic template.
-       * pt.c (tsubst) [TREE_LIST]: Handle pack expansion.
-       (tsubst_copy_and_build) [TRAIT_EXPR]: Always use tsubst for type2.
-
-       PR c++/93280 - ICE with aggregate assignment and DMI.
-       * init.c (get_nsdmi): Set TARGET_EXPR_DIRECT_INIT_P here.
-       * typeck2.c (digest_nsdmi_init): Not here.
-
-2020-01-15  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/91073
-       * cp-tree.h (is_constrained_auto): New.
-       * parser.c (cp_parser_maybe_commit_to_declaration): Correctly
-       handle concept-check expressions; take a cp_decl_specifier_seq*
-       instead of a bool.
-       (cp_parser_condition): Update call.
-       (cp_parser_simple_declaration): Likewise.
-       (cp_parser_placeholder_type_specifier): Correctly handle
-       concept-check expressions.
-
-2020-01-15  Jason Merrill  <jason@redhat.com>
-
-       Revert
-       PR c++/33799 - destroy return value if local cleanup throws.
-       * cp-tree.h (current_retval_sentinel): New macro.
-       * decl.c (start_preparsed_function): Set up cleanup for retval.
-       * typeck.c (check_return_expr): Set current_retval_sentinel.
-
-       PR c++/93257 - consteval void function.
-       * constexpr.c (verify_constant): Allow void_node.
-
-       PR c++/92871 - bad code with xvalue and GNU ?: extension.
-       * call.c (prevent_lifetime_extension): New.
-       (build_conditional_expr_1): Use it.
-
-2020-01-14  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/90916
-       * pt.c (retrieve_specialization): Use get_template_info, not open
-       coding access.
-
-       PR c++/90916
-       * pt.c (retrieve_specialization): Get the TI from the decl or the
-       classtype as appropriate.
-
-2020-01-14  David Malcolm  <dmalcolm@redhat.com>
-
-       * cp-gimplify.c (source_location_table_entry_hash::empty_zero_p):
-       New static constant.
-       * cp-tree.h (named_decl_hash::empty_zero_p): Likewise.
-       (struct named_label_hash::empty_zero_p): Likewise.
-       * decl2.c (mangled_decl_hash::empty_zero_p): Likewise.
-
-2020-01-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92590 - wrong handling of inherited default ctor.
-       * class.c (add_method): A constrained inherited ctor doesn't hide an
-       implicit derived ctor.
-       Revert:
-       PR c++/92552 - ICE with inherited constrained default ctor.
-       * pt.c (instantiate_class_template_1): Copy
-       TYPE_HAS_USER_CONSTRUCTOR.
-       PR c++/91930 - ICE with constrained inherited default ctor.
-       * name-lookup.c (do_class_using_decl): Set TYPE_HAS_USER_CONSTRUCTOR
-       for inherited constructor.
-       PR c++/92594 - ICE with inherited trivial default ctor.
-       * method.c (trivial_fn_p): Treat an inherited default constructor
-       like a normal default constructor.
-
-       PR c++/92594 - ICE with inherited trivial default ctor.
-       * method.c (trivial_fn_p): Treat an inherited default constructor
-       like a normal default constructor.
-
-       PR c++/92009 - ICE with punning of typeid.
-       * rtti.c (get_tinfo_desc): Call xref_basetypes.
-       * constexpr.c (cxx_fold_indirect_ref): Don't strip
-       REINTERPRET_CAST_P.
-
-2020-01-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92746 - ICE with noexcept of function concept check.
-       * except.c (check_noexcept_r): Handle concept-check.
-
-       PR c++/92582 - ICE with member template as requirement.
-       * pt.c (struct find_template_parameter_info): Add ctx_parms.
-       (any_template_parm_r): Handle TEMPLATE_DECL.
-       (find_template_parameters): Take parms instead of their depth.
-       * constraint.cc (build_parameter_mapping): Pass them.
-
-       PR c++/33799 - destroy return value if local cleanup throws.
-       * cp-tree.h (current_retval_sentinel): New macro.
-       * decl.c (start_preparsed_function): Set up cleanup for retval.
-       * typeck.c (check_return_expr): Set current_retval_sentinel.
-
-       PR c++/93238 - short right-shift with enum.
-       * typeck.c (cp_build_binary_op): Use folded op1 for short_shift.
-
-2020-01-10  Jason Merrill  <jason@redhat.com>
-
-       * typeck.c (cp_build_binary_op): Restore short_shift code.
-
-       PR c++/93143 - incorrect tree sharing with constexpr.
-       * constexpr.c (cxx_eval_outermost_constant_expr): Don't assume
-       CONSTRUCTORs are already unshared.
-
-       PR c++/93173 - incorrect tree sharing.
-       PR c++/93033
-       * cp-gimplify.c (cp_gimplify_init_expr, cp_gimplify_expr): Use
-       copy_if_shared after cp_genericize_tree.
-       * typeck2.c (split_nonconstant_init): Don't unshare here.
-
-2020-01-08  Jason Merrill  <jason@redhat.com>
-
-       * cp-gimplify.c (cp_gimplify_expr) [TARGET_EXPR]: Check
-       TARGET_EXPR_DIRECT_INIT_P.
-       * constexpr.c (cxx_eval_constant_expression): Likewise.
-
-2020-01-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/91369 - constexpr destructor and member initializer.
-       * constexpr.c (cxx_eval_store_expression): Look through TARGET_EXPR
-       when not preevaluating.
-
-2020-01-08  Jason Merrill  <jason@redhat.com>
-
-       * constexpr.c (cxx_eval_call_expression): Remove DECL_BY_REFERENCE
-       support.
-
-2020-01-07  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * init.c (build_new): Add location_t parameter and use it throughout.
-       (build_raw_new_expr): Likewise.
-       * parser.c (cp_parser_new_expression): Pass the combined_loc.
-       * pt.c (tsubst_copy_and_build): Adjust call.
-       * cp-tree.h: Update declarations.
-
-2020-01-07  Jason Merrill  <jason@redhat.com>
-
-       PR c++/47877 - -fvisibility-inlines-hidden and member templates.
-       * decl2.c (determine_visibility): -fvisibility-inlines-hidden beats
-       explicit class visibility for a template.
-
-2020-01-07  Richard Sandiford  <richard.sandiford@arm.com>
-
-       * mangle.c (mangle_type_attribute_p): New function, split out from...
-       (write_CV_qualifiers_for_type): ...here.  Don't mangle attributes
-       that contain a space.
-
-2020-01-07  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/91369
-       * constexpr.c (struct constexpr_global_ctx): Add heap_alloc_count
-       member, initialize it to zero in ctor.
-       (cxx_eval_call_expression): Bump heap_dealloc_count when deleting
-       a heap object.  Don't cache calls to functions which allocate some
-       heap objects and don't deallocate them or deallocate some heap
-       objects they didn't allocate.
-
-2020-01-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/92552 - ICE with inherited constrained default ctor.
-       * pt.c (instantiate_class_template_1): Copy
-       TYPE_HAS_USER_CONSTRUCTOR.
-       * class.c (one_inherited_ctor): Don't set it here.
-
-2020-01-06  Andrew Sutton  <asutton@lock3software.com>
-
-       PR c++/92739 - parsing requires clause with attributes.
-       * parser.c (cp_parser_constraint_requires_parens): Exclude
-       attributes as postfix expressions.
-
-2020-01-05  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/93138
-       * parser.c (cp_parser_check_class_key): Disable access checks for the
-       simple name lookup.
-       (cp_parser_maybe_warn_enum_key): Likewise.  Return early if
-       !warn_redundant_tags.
-
-2010-01-05  Jakub Jelinek  <jakub@redhat.com>
+       PR c++/82099
+       * pt.c (resolve_overloaded_unification): Call
+       maybe_instantiate_noexcept after instantiating the function
+       decl.
 
-       PR c++/93046
-       * cp-gimplify.c (cp_gimplify_init_expr): Don't look through
-       TARGET_EXPR if it has been gimplified already.
+2021-01-05  Nathan Sidwell  <nathan@acm.org>
 
-2020-01-03  Jason Merrill  <jason@redhat.com>
+       * parser.c (cp_parser_module_declaration): Alter diagnostic
+       text to say where is permissable.
 
-       PR c++/93033 - incorrect tree node sharing with array init.
-       * typeck2.c (split_nonconstant_init): Unshare non-decl.
-       * cp-gimplify.c (cp_gimplify_init_expr): Only split if -fexceptions.
+2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
-2020-01-02  Jason Merrill  <jason@redhat.com>
+       PR c++/98316
+       * Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS).
 
-       * pt.c (invalid_nontype_parm_type_p): Reject class placeholder in
-       C++17.
+2021-01-02  Jan Hubicka  <jh@suse.cz>
 
-2020-01-02  Jakub Jelinek  <jakub@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.
 
-       PR c/90677
-       * cp-objcp-common.c (identifier_global_tag): Return NULL_TREE if name
-       has not been found, rather than error_mark_node.
+2021-01-01  Jakub Jelinek  <jakub@redhat.com>
 
-2020-01-01  Jakub Jelinek  <jakub@redhat.com>
+       * ChangeLog-2020: Rotate ChangeLog.  New file.
 
-       Update copyright years.
 \f
-Copyright (C) 2020 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
This page took 0.209289 seconds and 5 git commands to generate.