]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/cp/ChangeLog
Daily bump.
[gcc.git] / gcc / cp / ChangeLog
index 0637358c3c3a3f6679516068762cf33ea0577218..335018c64039998a694d1ca28551047db2daafa7 100644 (file)
+2021-04-19  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/97536
+       * decl.c (grokvardecl): Given an error when a concept is not defined
+       at namespace scope.
+
+2021-04-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/100111
+       * constexpr.c (cxx_eval_store_expression): Don't add CONSTRUCTORs
+       for empty classes into *valp when types don't match even when *valp
+       is NULL.
+
+2021-04-16  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/99803
+       * decl.c (make_typename_type): Give an error and return when
+       name is is_overloaded_fn.
+       * parser.c (cp_parser_class_name): Don't check is_overloaded_fn
+       before calling make_typename_type.
+
+2021-04-16  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99700
+       * constexpr.c (reduced_constant_expression_p): For array
+       CONSTRUCTORs, use a dedicated loop that additionally verifies
+       the CONSTRUCTOR spans the entire array.
+
+2021-04-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99850
+       * parser.c (cp_parser_constraint_requires_parens) <case CPP_DEREF>:
+       If lambda_p, return pce_ok instead of pce_maybe_postfix.
+
+2021-04-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99833
+       * pt.c (extract_locals_r): When handling DECL_EXPR of a structured
+       binding, add to data.internal also all corresponding structured
+       binding decls.
+
+2021-04-16  Jason Merrill  <jason@redhat.com>
+
+       PR c++/100079
+       * cp-tree.h (first_field): Declare.
+       * mangle.c (range_expr_nelts): New.
+       (write_expression): Improve class NTTP mangling.
+       * pt.c (get_template_parm_object): Clear TREE_HAS_CONSTRUCTOR.
+       * tree.c (zero_init_expr_p): Improve class NTTP handling.
+       * decl.c: Adjust comment.
+
+2021-04-15  Jason Merrill  <jason@redhat.com>
+
+       PR c++/80456
+       * call.c (build_new_method_call_1): Check again for side-effects
+       with a volatile object.
+
+2021-04-15  Jason Merrill  <jason@redhat.com>
+
+       PR c++/100101
+       PR c++/99583
+       * pt.c (find_parameter_packs_r) [FUNCTION_TYPE]: Walk into
+       TYPE_RAISES_EXCEPTIONS here.
+       * tree.c (cp_walk_subtrees): Not here.
+
+2021-04-15  Jason Merrill  <jason@redhat.com>
+
+       PR c++/100091
+       PR c++/99478
+       * parser.c (cp_parser_default_type_template_argument): Set
+       parser->local_variables_forbidden_p.
+
+2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR c++/98852
+       * typeck.c (merge_type_attributes_from): New function.
+       (cp_common_type): Use it for vector types.
+
+2021-04-14  Jason Merrill  <jason@redhat.com>
+
+       PR c++/100078
+       PR c++/93085
+       * pt.c (uses_outer_template_parms): Also look at default
+       template argument.
+
+2021-04-14  Jason Merrill  <jason@redhat.com>
+
+       PR c++/93314
+       * semantics.c (finish_id_expression_1): Clear cp_unevaluated_operand
+       for a non-static data member in a constant-expression.
+
+2021-04-14  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/83476
+       PR c++/99885
+       * pt.c (deducible_expression): Look through implicit
+       INDIRECT_REFs as well.
+
+2021-04-14  Jason Merrill  <jason@redhat.com>
+
+       PR c++/99478
+       * parser.c (cp_parser_lambda_expression): Reject lambda
+       in template parameter type.
+
+2021-04-14  Jason Merrill  <jason@redhat.com>
+
+       PR c++/90674
+       * decl.c (duplicate_decls): Don't propagate
+       DECL_INITIALIZED_IN_CLASS_P to a specialization.
+
+2021-04-14  Jason Merrill  <jason@redhat.com>
+
+       PR c++/88742
+       PR c++/49951
+       PR c++/58123
+       * semantics.c (set_cleanup_locs): New.
+       (do_poplevel): Call it.
+       * parser.c (cp_parser_compound_statement): Consume the }
+       before finish_compound_stmt.
+
+2021-04-13  Jason Merrill  <jason@redhat.com>
+
+       PR c++/100032
+       * pt.c (get_underlying_template): Compare TYPE_QUALS.
+
+2021-04-13  Jason Merrill  <jason@redhat.com>
+
+       PR c++/100054
+       PR c++/90479
+       * init.c (get_nsdmi): Do more context adjustment for local classes.
+
+2021-04-13  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99008
+       * pt.c (do_class_deduction): Reject alias CTAD in C++17 mode
+       rather than issuing a pedwarn.
+       * typeck2.c (build_functional_cast_1): Handle CTAD uniformly
+       for consistent diagnostics.
+
+2021-04-13  Jason Merrill  <jason@redhat.com>
+
+       PR c++/91933
+       * class.c (build_base_path): Shortcut simple non-pointer case.
+
+2021-04-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * module.cc (ordinary_loc_of): Test LINEMAPS_MACRO_LOWEST_LOCATION
+       of the linemap.
+       (module_state::write_location): Likewise.
+
+2021-04-13  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/97134
+       * pt.c (do_class_deduction): Look through EXPR_PACK_EXPANSION
+       when checking if the initializer is an equivalent class
+       placeholder template parameter.
+
+2021-04-13  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99961
+       PR c++/99994
+       * constraint.cc (satisfy_normalized_constraints): Set
+       cp_unevaluated.
+       * parser.c (cp_parser_concept_definition): Likewise.
+       (cp_parser_requires_clause_opt): Likewise.
+
+2021-04-12  Jason Merrill  <jason@redhat.com>
+
+       PR c++/93085
+       * pt.c (uses_outer_template_parms): Handle non-type and template
+       template parameters specifically.
+
+2021-04-11  Jason Merrill  <jason@redhat.com>
+
+       PR c++/97974
+       * decl.c (fixup_anonymous_aggr): Prune all functions from
+       CLASSTYPE_MEMBER_VEC.
+
+2021-04-10  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98800
+       PR c++/97399
+       * parser.c (cp_parser_direct_declarator): Don't
+       inject_this_parameter if static_p.
+       (cp_parser_omp_var_list_no_open): Parse 'this' even if
+       current_class_ptr isn't set for a better diagnostic.
+
+2021-04-10  Jason Merrill  <jason@redhat.com>
+
+       PR c++/99180
+       PR c++/93295
+       PR c++/93867
+       PR c++/99118
+       PR c++/96873
+       * pt.c (alias_ctad_tweaks): Handle failure better.
+
+2021-04-10  Jason Merrill  <jason@redhat.com>
+
+       PR c++/100006
+       * pt.c (find_parameter_packs_r) [TAG_DEFN]: Look into bases.
+
+2021-04-09  Patrick Palka  <ppalka@redhat.com>
+
+       * cp-tree.h (LAMBDA_EXPR_REGENERATED_FROM)
+       (LAMBDA_EXPR_REGENERATING_TARGS): Replace these with ...
+       (LAMBDA_EXPR_REGEN_INFO): ... this.
+       (tree_lambda_expr::regenerated_from)
+       (tree_lambda_expr::regenerating_targs): Replace these with ...
+       (tree_lambda_expr::regen_info): ... this.
+       * constraint.cc (satisfy_declaration_constraints): Adjust
+       accordingly.
+       * lambda.c (build_lambda_expr): Likewise.
+       * pt.c (regenerated_lambda_fn_p): Likewise.
+       (most_general_lambda): Likewise.
+       (tsubst_lambda_expr): Likewise.
+
+2021-04-09  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/99806
+       * parser.c (cp_parser_member_declaration): Call
+       cp_parser_save_default_args even for function templates.  Use
+       STRIP_TEMPLATE on the declaration we're passing.
+
+2021-04-08  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99874
+       * constraint.cc (get_normalized_constraints_from_decl): Handle
+       regenerated lambdas.
+       (satisfy_declaration_constraints): Likewise.  Check for
+       dependent args later.
+       * cp-tree.h (LAMBDA_EXPR_INSTANTIATED): Replace with ...
+       (LAMBDA_EXPR_REGENERATED_FROM): ... this.
+       (LAMBDA_EXPR_REGENERATING_TARGS): New.
+       (tree_lambda_expr::regenerated_from): New data member.
+       (tree_lambda_expr::regenerating_targs): New data member.
+       (add_to_template_args): Declare.
+       (regenerated_lambda_fn_p): Likewise.
+       (most_general_lambda): Likewise.
+       * lambda.c (build_lambda_expr): Set LAMBDA_EXPR_REGENERATED_FROM
+       and LAMBDA_EXPR_REGENERATING_TARGS.
+       * pt.c (add_to_template_args): No longer static.
+       (tsubst_function_decl): Unconditionally propagate constraints on
+       the substituted function decl.
+       (instantiated_lambda_fn_p): Rename to ...
+       (regenerated_lambda_fn_p): ... this.  Check
+       LAMBDA_EXPR_REGENERATED_FROM instead of
+       LAMBDA_EXPR_INSTANTIATED.
+       (most_general_lambda): Define.
+       (enclosing_instantiation_of): Adjust after renaming
+       instantiated_lambda_fn_p.
+       (tsubst_lambda_expr): Don't set LAMBDA_EXPR_INSTANTIATED.  Set
+       LAMBDA_EXPR_REGENERATED_FROM and LAMBDA_EXPR_REGENERATING_TARGS.
+       Don't substitute or set constraints on the regenerated lambda.
+
+2021-04-08  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/97679
+       * pt.c (build_deduction_guide): Document OUTER_ARGS.  Substitute
+       them into the propagated constraints.
+
+2021-04-08  Jason Merrill  <jason@redhat.com>
+
+       PR c++/91849
+       * call.c (convert_like_internal): Improve reference diagnostic.
+
+2021-04-08  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99859
+       * constexpr.c (addr_of_non_const_var): New function.
+       (cxx_bind_parameters_in_call): Set *non_constant_args to true
+       even if cp_walk_tree on arg with addr_of_non_const_var callback
+       returns true.
+
+2021-04-08  Jason Merrill  <jason@redhat.com>
+
+       PR c++/94529
+       * pt.c (determine_specialization): Improve diagnostic.
+
+2021-04-08  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/99844
+       * decl.c (build_explicit_specifier): Call
+       check_for_bare_parameter_packs.
+       * except.c (build_noexcept_spec): Likewise.
+
+2021-04-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/41723
+       * parser.c (cp_parser_class_name): Check dependent_scope_p.
+
+2021-04-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/52625
+       * pt.c (maybe_process_partial_specialization): Check
+       DECL_SELF_REFERENCE_P.
+
+2021-04-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/92918
+       * name-lookup.c (push_class_level_binding_1): Do overload a new
+       function with a previous using-declaration.
+
+2021-04-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/96673
+       * init.c (get_nsdmi): Don't defer access checking.
+
+2021-04-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/99901
+       * decl.c (cp_finish_decl): mark_needed an implicitly inline
+       static data member with an out-of-class redeclaration.
+
+2021-04-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/91241
+       * mangle.c (write_compact_number): Add sanity check.
+       (write_local_name): Use list_length for parm number.
+
+2021-04-06  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99899
+       * pt.c (do_auto_deduction): Don't exit early when deducing the
+       array type of a structured binding.  Also handle adc_decomp_type
+       during constraint checking.
+
+2021-04-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/96311
+       * typeck.c (check_return_expr): Call mark_exp_read in dependent
+       case.
+
+2021-04-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98440
+       * typeck.c (build_reinterpret_cast_1): Don't perform
+       temporary materialization.
+
+2021-04-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/95317
+       * pt.c (lookup_template_class_1): Do tsubst_enum when
+       tsubsting a generic lambda.
+
+2021-04-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/95870
+       * pt.c (enclosing_instantiation_of): Compare DECL_SOURCE_LOCATION if
+       there is no enclosing non-lambda function.
+
+2021-04-05  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99380
+       * module.cc (name_pending_imports): Drop 'atend' parm.  Don't
+       query export when not needed.
+       (preprocess_module, preprocessed_module): Adjust.
+
+2021-04-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/99066
+       * pt.c (mark_decl_instantiated): Set DECL_EXTERNAL.
+
+2021-04-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/99201
+       * pt.c (class el_data): Add visited field.
+       (extract_local_specs): Pass it to cp_walk_tree.
+       (extract_locals_r): Walk into the body of a lambda.
+
+2021-04-05  Jason Merrill  <jason@redhat.com>
+
+       * ptree.c (cxx_print_decl): Check DECL_MODULE_IMPORT_P on
+       template result.
+
+2021-04-04  Jason Merrill  <jason@redhat.com>
+
+       PR c++/99643
+       * typeck2.c (massage_init_elt): Don't strip TARGET_EXPR.
+
+2021-04-03  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/91416
+       * parser.c: Create a GC root for attributes in a decl specifier.
+       (cp_parser_type_specifier): Push/pop ->attributes onto/from it.
+
+2021-04-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/91217
+       * pt.c (tsubst_lambda_expr): Skip the body block from
+       DECL_SAVED_TREE.
+
+2021-04-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/90664
+       * cvt.c (can_convert_qual): Check fnptr_conv_p.
+
+2021-04-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/97900
+       * pt.c (regenerate_decl_from_template): tsubst_decl
+       the parms.
+
+2021-04-02  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99869
+       * parser.c (do_range_for_auto_deduction): Pass adc_variable_type
+       to do_auto_deduction.
+
+2021-04-02  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99586
+       * semantics.c (finish_compound_literal): Check
+       template_placeholder_p instead of type_uses_auto.
+
+2021-04-02  Jason Merrill  <jason@redhat.com>
+
+       PR c++/97938
+       * cp-tree.h (PACK_EXPANSION_AUTO_P): New.
+       * lambda.c (add_capture): Set it.
+       * pt.c (tsubst_pack_expansion): Handle it.
+
+2021-04-02  Nathan Sidwell  <nathan@acm.org>
+
+       * cp-tree.h (lang_decl_base): Correct module flag comment.
+       * module.cc (trees_in::assert_definition): Break out
+       not_tmpl var.
+       (trees_out::lang_decl_bools): Do not write purview for header units.
+
+2021-04-01  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/99831
+       * method.c (defaulted_late_check): ++ and -- function_depth around
+       the call to synthesize_method.
+       * pt.c: Remove the saved_trees global.
+
+2021-04-01  Jason Merrill  <jason@redhat.com>
+
+       PR c++/99583
+       PR c++/99584
+       * tree.c (cp_walk_subtrees) [FUNCTION_TYPE]: Walk into
+       TYPE_RAISES_EXCEPTIONS.
+
+2021-04-01  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * mapper-client.cc (INCLUDE_MAP): New; require map to be
+       included from system.h.
+       * mapper-resolver.cc (INCLUDE_MAP): Likewise.
+
+2021-04-01  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98481
+       * mangle.c (write_expression): Adjust.
+       * class.c (find_abi_tags_r): Disable PR98481 fix for ABI v14.
+       (mark_abi_tags_r): Likewise.
+
+2021-04-01  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99283
+       * module.cc (trees_out::decl_node): Adjust importedness reference
+       assert.
+       (module_state::intercluster_seed): New.  Seed both imports and
+       inter-cluster references.  Broken out of ...
+       (module_state::write_cluster): ... here.  Call it.
+
+2021-03-31  Jason Merrill  <jason@redhat.com>
+
+       PR c++/99445
+       * tree.c (strip_typedefs): Handle TYPE_PACK_EXPANSION.
+
+2021-03-31  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/88115
+       * mangle.c (write_expression): Adjust the mangling of
+       __alignof__.
+
+2021-03-31  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99815
+       * pt.c (placeholder_type_constraint_dependent_p): Expand
+       argument packs to separate the first non-pack argument
+       from the rest.
+
+2021-03-30  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99283
+       * module.cc (dumper::operator): Make less brittle.
+       (trees_out::core_bools): VAR_DECLs always have a context.
+       (trees_out::key_mergeable): Use same_type_p for asserting.
+       (trees_in::read_var_def): Propagate
+       DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
+
+2021-03-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99790
+       * cp-gimplify.c (cp_gimplify_expr): Handle PTRMEM_CST.
+
+2021-03-26  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/98352
+       * method.c (implicitly_declare_fn): Pass &raises to
+       synthesized_method_walk.
+
+2021-03-26  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99283
+       * cp-tree.h (DECL_MODULE_CHECK): Ban TEMPLATE_DECL.
+       (SET_TYPE_TEMPLATE_INFO): Restore Alias template setting.
+       * decl.c (duplicate_decls): Remove template_decl module flag
+       propagation.
+       * module.cc (merge_kind_name): Add alias tmpl spec as a thing.
+       (dumper::impl::nested_name): Adjust for template-decl module flag
+       change.
+       (trees_in::assert_definition): Likewise.
+       (trees_in::install_entity): Likewise.
+       (trees_out::decl_value): Likewise.  Remove alias template
+       separation of template and type_decl.
+       (trees_in::decl_value): Likewise.
+       (trees_out::key_mergeable): Likewise,
+       (trees_in::key_mergeable): Likewise.
+       (trees_out::decl_node): Adjust for template-decl module flag
+       change.
+       (depset::hash::make_dependency): Likewise.
+       (get_originating_module, module_may_redeclare): Likewise.
+       (set_instantiating_module, set_defining_module): Likewise.
+       * name-lookup.c (name_lookup::search_adl): Likewise.
+       (do_pushdecl): Likewise.
+       * pt.c (build_template_decl): Likewise.
+       (lookup_template_class_1): Remove special alias_template handling
+       of DECL_TI_TEMPLATE.
+       (tsubst_template_decl): Likewise.
+
+2021-03-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99705
+       * tree.c (bot_manip): Remap artificial automatic temporaries mentioned
+       in DECL_EXPR or in BIND_EXPR_VARS.
+
+2021-03-25  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99672
+       * parser.c (cp_parser_postfix_expression): For calls, create
+       combined_loc and temporarily set input_location to it before
+       calling finish_call_expr.
+
+2021-03-25  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/94751
+       * call.c (build_over_call): Maybe call mark_used in case
+       deduce_inheriting_ctor fails and return error_mark_node.
+       * cp-tree.h (deduce_inheriting_ctor): Adjust declaration.
+       * method.c (deduce_inheriting_ctor): Return bool if the deduction
+       fails.
+       (implicitly_declare_fn): If raises is error_mark_node, call
+       synthesized_method_walk with diag being true.
+
+2021-03-25  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99745
+       * decl2.c (grokbitfield): Diagnose bitfields containing bare parameter
+       packs and don't set DECL_BIT_FIELD_REPRESENTATIVE in that case.
+
+2021-03-25  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/99331
+       * call.c (build_converted_constant_expr_internal): Don't emit
+       -Wconversion warnings.
+
+2021-03-25  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99565
+       * call.c (build_conditional_expr_1): Pass OEP_ADDRESS_OF_SAME_FIELD
+       to operand_equal_p.
+       * cvt.c (convert_to_void): Preserve location_t on COND_EXPR or
+       or COMPOUND_EXPR.
+
+2021-03-23  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99283
+       * name-lookup.c (check_module_override): Set global or partition
+       DUP on the binding vector.
+
+2021-03-23  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/99318
+       * decl2.c (cp_warn_deprecated_use_scopes): Only call
+       cp_warn_deprecated_use when decl is a namespace, class, or enum.
+
+2021-03-23  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99239
+       * decl.c (duplicate_decls): Remove assert about maybe-imported
+       artificial decls.
+
+2021-03-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99650
+       * decl.c (cp_finish_decomp): Diagnose void initializers when
+       using tuple_element and get.
+
+2021-03-22  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99480
+       * module.cc (depset::hash::make_dependency): Propagate flags for
+       partial specialization.
+       (module_may_redeclare): Handle partial specialization.
+
+2021-03-22  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99425
+       * cp-tree.h (map_context_from, map_context_to): Delete.
+       (add_mergeable_specialization): Add is_alias parm.
+       * pt.c (add_mergeable_specialization): Add is_alias parm, add them.
+       * module.cc (map_context_from, map_context_to): Delete.
+       (trees_in::decl_value): Add specializations later, adjust call.
+       Drop useless alias lookup. Set duplicate fn parm context.
+       (check_mergeable_decl): Drop context mapping.
+       (trees_in::is_matching_decl): Likewise.
+       (trees_in::read_function_def): Drop parameter context adjustment
+       here.
+
+2021-03-22  Martin Liska  <mliska@suse.cz>
+
+       PR c++/99687
+       * module.cc (fini_modules): Call vec_free instead of delete.
+
+2021-03-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/99230
+       * cp-gimplify.c (cp_genericize_r) <case STATEMENT_LIST>: Remove
+       special code, instead call c_genericize_control_stmt.
+
+2021-03-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99456
+       * constexpr.c (cxx_eval_constant_expression): For CONVERT_EXPR from
+       INDIRECT_TYPE_P to ARITHMETIC_TYPE_P, when !ctx->manifestly_const_eval
+       don't diagnose it, set *non_constant_p nor return t.
+
+2021-03-19  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/99500
+       * parser.c (cp_parser_requirement_parameter_list): Handle
+       error_mark_node.
+
+2021-03-18  Marek Polacek  <polacek@redhat.com>
+
+       * pt.c (tsubst_copy_and_build) <case FLOAT_EXPR>: Remove.
+
+2021-03-18  Marek Polacek  <polacek@redhat.com>
+
+       * pt.c (tsubst_copy_and_build): Add assert.
+
+2021-03-18  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR objc++/49070
+       * parser.c (cp_debug_parser): Add Objective-C++ message
+       state flag.
+       (cp_parser_nested_name_specifier_opt): Allow colon to
+       terminate an assignment-expression when parsing Objective-
+       C++ messages.
+       (cp_parser_objc_message_expression): Set and clear message
+       parsing state on entry and exit.
+       * parser.h (struct cp_parser): Add a context flag for
+       Objective-C++ message state.
+
+2021-03-18  Martin Liska  <mliska@suse.cz>
+
+       PR c++/99617
+       * coroutines.cc (struct var_nest_node): Init then_cl and else_cl
+       to NULL.
+
+2021-03-17  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/97973
+       * call.c (conv_unsafe_in_template_p): New.
+       (convert_like): Use it.
+
+2021-03-17  Anthony Sharp  <anthonysharp15@gmail.com>
+           Jason Merrill  <jason@redhat.com>
+
+       * semantics.c (get_class_access_diagnostic_decl): New
+       function that examines special cases when a parent
+       class causes a private access failure.
+       (enforce_access): Slightly modified to call function
+       above.
+
+2021-03-16  Jason Merrill  <jason@redhat.com>
+
+       * tree.c (cp_tree_equal): Use real_identical.
+
+2021-03-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99613
+       * decl.c (expand_static_init): For thread guards, call __cxa_atexit
+       before calling __cxa_guard_release rather than after it.  Formatting
+       fixes.
+
+2021-03-16  Martin Liska  <mliska@suse.cz>
+           Jason Merrill  <jason@redhat.com>
+
+       PR c++/99108
+       * call.c (get_function_version_dispatcher): Handle
+       DECL_LOCAL_DECL_P.
+       * decl.c (maybe_version_functions): Likewise.
+       (maybe_mark_function_versioned): New.
+       * name-lookup.c (push_local_extern_decl_alias): No longer static.
+       * name-lookup.h (push_local_extern_decl_alias): Adjust.
+
+2021-03-16  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99496
+       * module.cc (trees_out::decl_value): Adjust typedef streaming,
+       indicate whether it is a dependent alias.
+       (trees_in::decl_value): Likewise.  Set as dependent alias, if it
+       is one.
+
+2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/99047
+       * coroutines.cc (expand_one_await_expression): If the
+       await_ready() expression is not a boolean then convert it
+       as required.
+
+2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/98704
+       * coroutines.cc (build_actor_fn): Make destroy index 1
+       correspond to the abnormal unhandled_exception() exit.
+       Substitute the proxy for the resume index.
+       (coro_rewrite_function_body): Arrange to reset the resume
+       index and make done = true for a rethrown exception from
+       unhandled_exception ().
+       (morph_fn_to_coro): Adjust calls to build_actor_fn and
+       coro_rewrite_function_body.
+
+2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/98480
+       * coroutines.cc (replace_continue): Rewrite continue into
+       'goto label'.
+       (await_statement_walker): Handle await expressions in the
+       initializer, condition and iteration expressions of for
+       loops.
+
+2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/96749
+       * coroutines.cc (flatten_await_stmt): Allow for the case
+       where a target expression variable only has uses in the
+       second part of a compound expression.
+       (maybe_promote_temps): Avoid emiting empty statements.
+
+2021-03-15  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR c++/99509
+       * decl.c (cp_finish_decl): For 'omp declare target implicit' vars,
+       ensure that the varpool node is marked as offloadable.
+
+2021-03-12  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99238
+       * module.cc (depset::hash::add_binding_entity): Assert not
+       visited.
+       (depset::add::add_specializations): Likewise.
+       * name-lookup.c (name_lookup::dedup): New.
+       (name_lookup::~name_lookup): Assert not deduping.
+       (name_lookup::restore_state): Likewise.
+       (name_lookup::add_overload): Replace outlined code with dedup
+       call.
+       (name_lookup::add_value): Likewise.
+       (name_lookup::search_namespace_only): Likewise.
+       (name_lookup::adl_namespace_fns): Likewise.
+       (name_lookup::adl_class_fns): Likewise.
+       (name_lookup::search_adl): Likewise.  Add clearing dedup call.
+       (name_lookup::search_qualified): Likewise.
+       (name_lookup::search_unqualified): Likewise.
+
+2021-03-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99507
+       * call.c (build_over_call): For immediate evaluation of functions
+       that return references, undo convert_from_reference effects before
+       calling cxx_constant_value and call convert_from_reference
+       afterwards.
+
+2021-03-11  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99248
+       * name-lookup.c (lookup_elaborated_type_1): Access slot not bind
+       when there's a binding vector.
+       * ptree.c (cxx_print_xnode): Lazy flags are no longer a thing.
+
+2021-03-11  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99528
+       * module.cc (enum merge_kind): Delete MK_type_tmpl_spec,
+       MK_decl_tmpl_spec.
+       (trees_in::decl_value): Adjust add_mergeable_specialization call.
+       (trees_out::get_merge_kind): Adjust detecting a partial template
+       instantiation.
+       (trees_out::key_mergeable): Adjust handling same.
+       (trees_in::key_mergeabvle): Likewise.
+
+2021-03-10  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99423
+       * module.cc (post_load_processing): Assert not gcable.
+       (laxy_load_pendings): Extend no-gc region around
+       post_load_processing.
+
+2021-03-10  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99508
+       * decl.c (make_rtl_for_nonlocal_decl): Propagate local-extern's
+       assembler name to the ns alias.
+
+2021-03-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99459
+       * coroutines.cc (build_co_await): Look through NOP_EXPRs in
+       build_special_member_call return value to find the CALL_EXPR.
+       Simplify.
+
+2021-03-09  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99472
+       * parser.c (cp_parser_diagnose_invalid_type_name): Clarify
+       that C++20 does not yet imply modules.
+
+2021-03-08  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99436
+       * name-lookup.c (get_cxx_dialect_name): Add cxx23.
+
+2021-03-08  Nathan Sidwell  <nathan@acm.org>
+
+       * lex.c (module_token_filter::resume): Ignore module-decls inside
+       header-unit.
+       * parser.c (cp_parser_module_declaration): Reject in header-unit.
+
+2021-03-08  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99285
+       * cp-tree.h (match_mergeable_specialization)
+       (add_mergeable_specialization): Adjust parms.
+       * module.cc (trees_in::decl_value): Adjust
+       add_mergeable_specialization calls.
+       (trees_out::key_mergeable): Adjust match_mergeable_specialization
+       calls.
+       (specialization_add): Likewise.
+       * pt.c (match_mergeable_specialization): Do not insert.
+       (add_mergeable_specialization): Add to hash table here.
+
+2021-03-06  Patrick Palka  <ppalka@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99287
+       * constexpr.c (cxx_eval_increment_expression): Pass lval when
+       evaluating the MODIFY_EXPR, and update 'mod' with the result of
+       this evaluation.  Check *non_constant_p afterwards.  For prefix
+       ops, just return 'mod'.
+
+2021-03-06  Patrick Palka  <ppalka@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/96330
+       * pt.c (tsubst_copy) <case TEMPLATE_ID_EXPR>: Rename local
+       variable 'fn' to 'tmpl'.  Handle a variable template-id by
+       calling lookup_template_variable.
+
+2021-03-06  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99365
+       * pt.c (unify) <case TEMPLATE_TYPE_PARM>: Pass targs as
+       outer_targs to do_auto_deduction.
+       (placeholder_type_constraint_dependent_p): Define.
+       (do_auto_deduction): When processing_template_decl != 0
+       and context is adc_unify and we have constraints, pretend the
+       constraints are satisfied instead of punting.  Otherwise don't
+       punt unless placeholder_type_constraint_dependent_p holds.
+       Add some clarifying sanity checks.  Add a hack to add missing
+       outermost template levels to outer_args before checking
+       satisfaction.  Don't substitute outer_targs into type if it's
+       already been done.
+
+2021-03-05  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/99374
+       * call.c (standard_conversion): When converting pointers to
+       member, don't return NULL when the bases are equivalent but
+       incomplete.
+
+2021-03-05  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/99120
+       * name-lookup.c (check_local_shadow): Check if the type of decl
+       is non-null before checking TYPE_PTR*.
+
+2021-03-05  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99245
+       * module.cc (module_state::write_cluster): Relax binding assert.
+
+2021-03-05  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99377
+       * pt.c (instantiate_decl): Call set_instantiating_module.
+
+2021-03-05  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/98118
+       * coroutines.cc (build_co_await): Use type_build_ctor_call()
+       to determine cases when a CTOR needs to be built.
+       (flatten_await_stmt): Likewise.
+       (morph_fn_to_coro): Likewise.
+
+2021-03-05  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/95616
+       * coroutines.cc (coro_diagnose_throwing_fn): New helper.
+       (coro_diagnose_throwing_final_aw_expr): New helper.
+       (build_co_await): Diagnose throwing final await expression
+       components.
+       (build_init_or_final_await): Diagnose a throwing promise
+       final_suspend() call.
+
+2021-03-05  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/95615
+       * coroutines.cc (struct param_info): Track parameter copies that need
+       a DTOR.
+       (coro_get_frame_dtor): New helper function factored from build_actor().
+       (build_actor_fn): Use coro_get_frame_dtor().
+       (morph_fn_to_coro): Track parameters that need DTORs on exception,
+       likewise the frame promise and the return object.  On exception, run the
+       DTORs for these, destroy the frame and then rethrow the exception.
+
+2021-03-05  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99389
+       * pt.c (instantiate_class_template_1): Set instantiating module
+       here.
+
+2021-03-05  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR c/99137
+       * parser.c (cp_parser_oacc_clause_async): Reject comma expressions.
+
+2021-03-04  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/88146
+       PR c++/99362
+       * cvt.c (convert_to_void): Revert 2019-10-17 changes.  Clarify
+       comment.
+
+2021-03-04  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99170
+       * module.cc (class uintset): Delete.
+       (typedef attached_map_t): A hash map.
+       (attached_table): Use attached_map_t.  Adjust uses ...
+       (trees_out::decl_value, trees_in::decl_value): ... here ...
+       (trees_out::key_mergeable): ... here ...
+       (trees_in::key_mergeable): ... here ...
+       (maybe_attach_decl): ... here ...
+       (direct_import): ... and here.
+
+2021-03-04  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99170
+       * cp-tree.h
+       * lex.c (cxx_dup_lang_specific_decl): Adjust for module_attached_p
+       rename.
+       * module.cc (class pending_key): New.
+       (default_hash_traits<pending_key>): New specialization.
+       (pending_map_t): New typedef.
+       (pending_table): Replace old table.
+       (trees_out::lang_decl_bools): Adjust.
+       (trees_in::lang_decl_bools): Adjust.
+       (trees_in::install_entity): Drop pending member and specialization
+       handling.
+       (find_pending_key): New.
+       (depset::hash::fiund_dependencies): Use it.
+       (pendset_lazy_load): Delete.
+       (module_state::write_cluster): Don't count pendings here.  Bye
+       Duff's device-like thing.
+       (module_state::write_pendings): Reimplement.
+       (module_state::read_pendings): Reimplement.
+       (lazy_specializations_p): Delete.
+       (module_state::write): Adjust write_pendings call.
+       (lazy_load_pendings): New.
+       (lazy_load_specializations): Delete.
+       (lazy_load_members): Delete.
+       (init_modules): Adjust.
+       * name-lookup.c (maybe_lazily_declare): Call lazy_load_pendings
+       not lazy_load_members.
+       (note_pending_specializations): Delete.
+       (load_pending_specializations): Delete.
+       * name-lookup.h (BINDING_VECTR_PENDING_SPECIALIZATIONS_P): Delete.
+       (BINDING_VECTOR_PENDING_MEMBERS_P): Delete.
+       (BINDING_VECTR_PENDING_MEMBERS_P): Delete.
+       (note_pending_specializations): Delete.
+       (load_pending_specializations): Delete.
+       * pt.c (lookup_template_class_1): Call lazy_load_pendings not
+       lazy_load_specializations.
+       (instantiate_template_class_1): Likewise.
+       (instantiate_decl): Call lazy_load_pendings.
+       * typeck.c (complete_type): Likewise.
+
+2021-03-03  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99170
+       * module.cc (post_load_decls): New.
+       (lazy_snum, recursive_lazy): Move earlier.
+       (module_state::read_cluster): Push cloning onto post_load_decls.
+       (post_load_processing): New.  Do the cloning here.
+       (module_state::read_inits): Call post_load_processing.
+       (module_state::read_language): Likewise.
+       (lazy_load_binding, lazy_load_specializations): Likewise
+       (lazy_load_members): Likewise
+
+2021-03-03  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99170
+       * module.cc (trees_out::decl_value): Stream specialization keys
+       after decl.
+       (trees_in::decl_value): Stream them back and insert after
+       completing the decl.
+       (trees_out::key_mergeable): Drop some streaming here ...
+       (trees_in::key_mergeable): ... and here.  Don't insert into
+       specialization tables.
+
+2021-03-03  Patrick Palka  <ppalka@redhat.com>
+
+       * constraint.cc (struct sat_info): Document the different
+       meanings of noisy() and diagnose_unsatisfaction_p() during
+       satisfaction and requires-expression evaluation.
+       (tsubst_valid_expression_requirement): Take a sat_info instead
+       of a subst_info.  Perform the substitution quietly first.  Fold
+       in error-replaying code from diagnose_valid_expression.
+       (tsubst_simple_requirement): Take a sat_info instead of a
+       subst_info.
+       (tsubst_type_requirement_1): New.  Fold in error-replaying code
+       from diagnose_valid_type.
+       (tsubst_type_requirement): Use the above.  Take a sat_info
+       instead of a subst_info.
+       (tsubst_compound_requirement): Likewise.  Fold in
+       error-replaying code from diagnose_compound_requirement.
+       (tsubst_nested_requirement): Take a sat_info instead of a
+       subst_info.  Fold in error-replaying code from
+       diagnose_nested_requirement.
+       (tsubst_requirement): Take a sat_info instead of a subst_info.
+       (tsubst_requires_expr): Split into two versions, one that takes
+       a sat_info argument and another that takes a complain and
+       in_decl argument.  Remove outdated documentation.  Document the
+       effects of the sat_info argument.  Don't short-circuit
+       processing of requirements when diagnosing unsatisfaction,
+       mirroring diagnose_requires_expr.
+       (satisfy_nondeclaration_constraint) <case REQUIRES_EXPR>: Remove
+       assert, and se the three-parameter version of tsubst_requires_expr.
+       (diagnose_trait_expr): Make static.  Take a template argument
+       vector instead of a parameter mapping.
+       (diagnose_valid_expression): Remove.
+       (diagnose_valid_type): Remove.
+       (diagnose_simple_requirement): Remove.
+       (diagnose_compound_requirement): Remove.
+       (diagnose_type_requirement): Remove.
+       (diagnose_nested_requirement): Remove.
+       (diagnose_requirement): Remove.
+       (diagnose_requires_expr): Remove.
+       (diagnose_atomic_constraint): Take a sat_info instead of a
+       subst_info.  Adjust call to diagnose_trait_expr.  Call
+       tsubst_requires_expr instead of diagnose_requires_expr.
+       (diagnose_constraints): Remove special casing of REQUIRES_EXPR
+       and just always call constraint_satisfaction_value.
+
+2021-03-03  Patrick Palka  <ppalka@redhat.com>
+
+       * constexpr.c (cxx_eval_call_expression): Adjust call to
+       evaluate_concept_check.
+       (cxx_eval_constant_expression) <case REQUIRES_EXPR>: Use
+       evaluate_requires_expression instead of
+       satisfy_constraint_expression.
+       <case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
+       * constraint.cc (struct sat_info): Adjust comment about which
+       satisfaction entrypoints use noisy-unsat.
+       (normalize_template_requirements): Remove (and adjust callers
+       appropriately).
+       (normalize_nontemplate_requirements): Likewise.
+       (tsubst_nested_requirement): Use constraint_satisfaction_value
+       instead of satisfy_constraint_expression, which'll do the
+       noisy replaying of ill-formed quiet satisfaction for us.
+       (decl_satisfied_cache): Adjust comment.
+       (satisfy_constraint): Rename to ...
+       (satisfy_normalized_constraints): ... this.
+       (satisfy_associated_constraints): Remove (and make its
+       callers check for dependent arguments).
+       (satisfy_constraint_expression): Rename to ...
+       (satisfy_nondeclaration_constraints): ... this.  Assert that
+       'args' is empty when 't' is a concept-id.  Removing handling
+       bare constraint-expressions, and handle REQUIRES_EXPRs
+       specially.  Adjust comment accordingly.
+       (satisfy_declaration_constraints): Assert in the two-parameter
+       version that 't' is not a TEMPLATE_DECL.  Adjust following
+       removal of normalize_(non)?template_requirements and
+       satisfy_asociated_constraints.
+       (constraint_satisfaction_value): Combine the two- and
+       three-parameter versions in the natural way.
+       (constraints_satisfied_p): Combine the one- and two-parameter
+       versions in the natural way.  Improve documentation.
+       (evaluate_requires_expr): Define.
+       (evaluate_concept_check): Remove 'complain' parameter.  Use
+       constraint_satisfaction_value instead of
+       satisfy_constraint_expression.
+       (diagnose_nested_requirement): Adjust following renaming of
+       satisfy_constraint_expression.
+       (diagnose_constraints): Handle REQUIRES_EXPR by going through
+       diagnose_requires_expr directly instead of treating it as a
+       constraint-expression.  Improve documentation.
+       * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Adjust call
+       to evaluate_concept_check.
+       <case REQUIRES_EXPR>: Use evaluate_requires_expr instead of
+       constraints_satisfied_p.
+       <case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
+       * cp-tree.h (evaluate_requires_expr): Declare.
+       (evaluate_concept_check): Remove tsubst_flag_t parameter.
+       (satisfy_constraint_expression): Remove declaration.
+       (constraints_satisfied_p): Remove one-parameter declaration.
+       Add a default argument to the two-parameter declaration.
+       * cvt.c (convert_to_void): Adjust call to
+       evaluate_concept_check.
+
+2021-03-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/82959
+       * call.c (op_is_ordered): Handle TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR
+       and COMPOUND_EXPR.
+
+2021-03-03  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/97034
+       PR c++/99009
+       * pt.c (build_deduction_guide): Use INNERMOST_TEMPLATE_ARGS.
+       (maybe_aggr_guide): Use the original template type where needed.  In
+       a class member template, partially instantiate the result of
+       collect_ctor_idx_types.
+       (do_class_deduction): Defer the deduction until the enclosing
+       scope is non-dependent.
+
+2021-03-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/95675
+       * call.c (build_temp): Wrap a CALL_EXPR in a TARGET_EXPR
+       if it didn't get one before.
+
+2021-03-03  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99344
+       * module.cc (trees_out::decl_node): Small refactor.
+       (depset::hash::add_binding_entity): Return true on meeting an
+       import.  Set namespace's import here.
+       (module_state:write_namespaces): Inform of purview too.
+       (module_state:read_namespaces): Adjust.
+       * name-lookup.c (implicitly_export_namespace): Delete.
+       (do_pushdecl): Don't call it.
+       (push_namespace): Likewise, set purview.
+       (add_imported_namespace): Reorder parms.
+       * name-lookup.h (add_imported_namespace): Alter param ordering.
+
+2021-03-02  Martin Sebor  <msebor@redhat.com>
+
+       PR c++/99251
+       * class.c (build_base_path): Call build_if_nonnull.
+       * cp-tree.h (build_if_nonnull): Declare.
+       * rtti.c (ifnonnull): Rename...
+       (build_if_nonnull): ...to this.  Set no-warning bit on COND_EXPR.
+       (build_dynamic_cast_1): Adjust to name change.
+
+2021-03-02  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/96443
+       PR c++/96960
+       * constraint.cc (type_deducible_p): Don't substitute into the
+       constraints, and instead just pass 'args' to do_auto_deduction
+       as the outer template arguments.
+       (tsubst_parameter_mapping): Remove confused code for handling
+       placeholder type arguments.
+       (normalize_placeholder_type_constraint): Define.
+       (satisfy_constraint_expression): Use it to handle placeholder
+       'auto' types.
+       * cp-tree.h (PLACEHOLDER_TYPE_CONSTRAINTS_INFO): Define.
+       (PLACEHOLDER_TYPE_CONSTRAINTS): Redefine in terms of the above.
+       * pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: Use
+       PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
+       (make_constrained_placeholder_type): Set
+       PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
+       (do_auto_deduction): Clarify comments about the outer_targs
+       parameter.  Rework satisfaction of a placeholder type constraint
+       to pass in the complete set of template arguments directly to
+       constraints_satisfied_p.
+       (splice_late_return_type): Use PLACEHOLDER_TYPE_CONSTRAINTS_INFO
+       instead.  Also rebuild the the constraint info on the new auto.
+
+2021-03-02  Patrick Palka  <ppalka@redhat.com>
+
+       * constraint.cc (build_parameter_mapping): Rely on the caller to
+       determine the in-scope template parameters.
+       (norm_info::norm_info): Delegate the tsubst_flags_t constructor
+       to the two-parameter constructor.  In the two-parameter
+       constructor, fold in the definition of make_context, set
+       initial_parms appropriately, and don't set the now-removed
+       orig_decl member.
+       (norm_info::make_context): Remove, now that its only use is
+       inlined into the caller.
+       (norm_info::update_context): Adjust call to
+       build_parameter_mapping to pass in the relevant set of in-scope
+       template parameters.
+       (norm_info::ctx_parms): Define this member function.
+       (norm_info::context): Initialize to NULL_TREE.
+       (norm_info::orig_decl): Remove this data member.
+       (norm_info::initial_parms): Define this data member.
+       (normalize_atom): Adjust call to build_parameter_mapping to pass
+       in the relevant set of in-scope template parameters.  Use
+       info.initial_parms instead of info.orig_decl.
+       (normalize_constraint_expression): Take a norm_info object
+       instead of a bool.  Cache the result of normalization.
+       (tsubst_nested_requirement): Call satisfy_constraint_expression
+       instead of satisfy_constraint, so that we normalize on demand.
+       (satisfy_constraint_expression): Handle a NESTED_REQ argument.
+       Adjust call to normalize_constraint_expression.
+       (finish_nested_requirement): Set the TREE_TYPE of the NESTED_REQ
+       to current_template_parms.
+       (diagnose_nested_requirements): Go through
+       satisfy_constraint_expression, as with tsubst_nested_requirement.
+
+2021-03-02  Patrick Palka  <ppalka@redhat.com>
+
+       * constraint.cc (tsubst_parameter_mapping): Canonicalize the
+       arguments of a substituted TYPE_ARGUMENT_PACK even if we've
+       started with a TYPE_ARGUMENT_PACK.
+       (finish_requires_expr): Don't set DECL_CONTEXT and
+       CONSTRAINT_VAR_P on each of the introduced parameters here.
+       * parser.c (cp_parser_requirement_parameter_list): Instead set
+       these fields earlier, here.
+       * pt.c (do_auto_deduction): Canonicalize the result of
+       do_auto_deduction.  Pass 'complain' to finish_decltype_type.
+
+2021-03-02  Patrick Palka  <ppalka@redhat.com>
+
+       * constraint.cc (tsubst_simple_requirement): Just return
+       boolean_true_node on success.
+       (tsubst_type_requirement): Likewise.
+       (tsubst_compound_requirement): Likewise.
+       (tsubst_nested_requirement): Likewise.
+       (tsubst_requirement_body): Remove.
+       (check_constaint_variables): Rename to ...
+       (check_constraint_variables): ... this.
+       (tsubst_constraint_variables): Adjust.
+       (tsubst_requires_expr): Fold tsubst_requirement_body into here.
+
+2021-03-01  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99294
+       * class.c (fixup_type_variants): Propagate mode, precision,
+       alignment & emptiness.
+       * module.cc (trees_out::type_node): Use TYPE_ALIGN_RAW.
+       (trees_in::tree_node): Rematerialize alignment here.
+
+2021-02-27  Jason Merrill  <jason@redhat.com>
+
+       PR c++/90333
+       * parser.c (cp_parser_lambda_declarator_opt): Accept GNU attributes
+       between () and ->.
+
+2021-02-26  Jakub Jelinek  <jakub@redhat.com>
+
+       * parser.c (cp_parser_lambda_declarator_opt): Implement
+       P1102R2 - Down with ()! Make ()s optional before lambda specifiers
+       for -std={c,gnu}++2b or with pedwarn in earlier versions.
+
+2021-02-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/95451
+       * lambda.c (is_lambda_ignored_entity): Before checking for
+       LAMBDA_FUNCTION_P, use OVL_FIRST.  Drop FUNCTION_DECL check.
+
+2021-02-26  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98810
+       * pt.c (tsubst_copy) [VIEW_CONVERT_EXPR]: Add const
+       to a class non-type template argument that needs it.
+
+2021-02-26  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/98990
+       * pt.c (splice_late_return_type): Rebuild the entire return type
+       if we have to adjust the level of an auto within.
+       (type_uses_auto): Adjust call to find_type_usage.
+       * type-utils.h (find_type_usage): Revert r10-6571 change that
+       made this function return a pointer to the auto node.
+
+2021-02-25  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99213
+       PR c++/94521
+       * error.c (dump_scope): Pass TFF_NO_TEMPLATE_BINDINGS instead of
+       TFF_NO_FUNCTION_ARGUMENTS when dumping a function scope.
+
+2021-02-25  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/99103
+       * pt.c (is_spec_or_derived): Drop cv-qualifiers from 'etype'.
+       (maybe_aggr_guide): Fix order of arguments to is_spec_or_derived.
+
+2021-02-25  Marek Polacek  <polacek@redhat.com>
+
+       DR 1312
+       PR c++/99176
+       * constexpr.c (is_std_construct_at): New overload.
+       (is_std_allocator_allocate): New overload.
+       (cxx_eval_call_expression): Use the new overloads.
+       (cxx_eval_constant_expression): Reject casting
+       from void * as per DR 1312.  Don't check can_convert.
+
+2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/97587
+       * coroutines.cc (struct param_info): Track rvalue refs.
+       (morph_fn_to_coro): Track rvalue refs, and call the promise
+       CTOR with the frame copy of passed parms.
+
+2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/95822
+       * coroutines.cc (morph_fn_to_coro): Unconditionally remove any
+       set throwing_cleanup marker.
+
+2021-02-25  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99166
+       * module.cc (module_state::inform_cmi_p): Renamed field.
+       (module_state::do_import): Adjust.
+       (init_modules, finish_module_processing): Likewise.
+       (handle_module_option): Likewise.
+
+2021-02-25  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/98318
+       * mapper-client.cc (module_client::open_module_client): Fix typo
+       of fd init.
+
+2021-02-24  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/98718
+       * module.cc (ool): New indirection vector.
+       (loc_spans::maybe_propagate): Location is not optional.
+       (loc_spans::open): Likewise.  Assert monotonically advancing.
+       (module_for_ordinary_loc): Use ool indirection vector.
+       (module_state::write_prepare_maps): Do not count empty macro
+       expansions.  Elide empty spans.
+       (module_state::write_macro_maps): Skip empty expansions.
+       (ool_cmp): New qsort comparator.
+       (module_state::write): Create and destroy ool vector.
+       (name_pending_imports): Fix dump push/pop.
+       (preprocess_module): Likewise.  Add more dumping.
+       (preprocessed_module): Likewise.
+
+2021-02-24  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/96251
+       * coroutines.cc (coro_common_keyword_context_valid_p): Suppress
+       error reporting when instantiating for a constexpr.
+
+2021-02-23  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99208
+       * decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER
+       identity.
+
+2021-02-23  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/95468
+       * pt.c (tsubst_copy_and_build) <case BASELINK>: New case, copied
+       over from tsubst_copy.
+
+2021-02-23  Patrick Palka  <ppalka@redhat.com>
+
+       * pt.c (instantiation_dependent_expression_p): Check
+       processing_template_decl before calling
+       potential_constant_expression.
+
+2021-02-22  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99174
+       * module.cc (struct module_state): Add visited_p flag.
+       (name_pending_imports): Use it to avoid duplicate requests.
+       (preprocess_module): Don't read preprocessor state if we failed to
+       load a module's config.
+
+2021-02-22  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99153
+       * decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation
+       to common-path.
+       * module.cc (set_defining_module): Add assert.
+
+2021-02-19  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/98741
+       * module.cc (pending_imports): New.
+       (declare_module): Adjust test condition.
+       (name_pending_imports): New.
+       (preprocess_module): Reimplement using pending_imports.
+       (preprocessed_module): Move name-getting to name_pending_imports.
+       * name-lookup.c (append_imported_binding_slot): Assert module
+       ordering is increasing.
+
+2021-02-19  Nathan Sidwell  <nathan@acm.org>
+
+       * module.cc (note_cmis): New.
+       (struct module_state): Add inform_read_p bit.
+       (module_state::do_import): Inform of CMI location, if enabled.
+       (init_modules): Canonicalize note_cmis entries.
+       (handle_module_option): Handle -flang-info-module-read=FOO.
+
+2021-02-19  Jason Merrill  <jason@redhat.com>
+
+       PR c++/96926
+       * call.c (perfect_conversion_p): Limit rvalueness
+       test to reference bindings.
+
+2021-02-19  Jason Merrill  <jason@redhat.com>
+
+       PR c++/96926
+       * call.c (perfect_conversion_p): New.
+       (perfect_candidate_p): New.
+       (add_candidates): Ignore templates after a perfect non-template.
+
+2021-02-18  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99023
+       * module.cc (canonicalize_header_name): Use
+       cpp_probe_header_unit.
+       (maybe_translate_include): Fix note_includes comparison.
+       (init_modules): Fix note_includes string termination.
+
+2021-02-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99132
+       * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Use
+       cp_get_callee_fndecl_nofold instead of cp_get_callee_fndecl to check
+       for immediate function calls.
+
+2021-02-17  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99023
+       * module.cc (struct macro_export): Add GTY markers.
+       (macro_exports): Likewise, us a va_gc Vector.
+
+2021-02-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR sanitizer/99106
+       * init.c (build_zero_init_1): For flexible array members just return
+       NULL_TREE instead of returning empty CONSTRUCTOR with non-complete
+       ARRAY_TYPE.
+
+2021-02-17  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99116
+       * name-lookup.c (do_pushdecl): Don't peek under template_parm
+       bindings here ...
+       (set_identifier_type_value_with_scope): ... or here.
+       (do_pushtag): Only set_identifier_type_value_with_scope at
+       non-class template parm scope, and use parent scope.
+
+2021-02-17  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99071
+       * name-lookup.c (maybe_record_mergeable_decl): Deref the correct
+       pointer.
+
+2021-02-17  Patrick Palka  <ppalka@redhat.com>
+
+       PR debug/96997
+       PR c++/94034
+       * tree.c (build_aggr_init_expr): Revert r10-7718 change.
+
+2021-02-12  Nathan Sidwell  <nathan@acm.org>
+
+       * module.cc (module_state::write_cluster): Check bindings for
+       imported using-decls.
+
+2021-02-12  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99040
+       * module.cc (trees_in::decl_value): Call add_module_namespace_decl
+       for new namespace-scope entities.
+       (module_state::read_cluster): Don't call add_module_decl here.
+       * name-lookup.h (add_module_decl): Rename to ...
+       (add_module_namespace_decl): ... this.
+       * name-lookup.c (newbinding_bookkeeping): Move into ...
+       (do_pushdecl): ... here.  Its only remaining caller.
+       (add_module_decl): Rename to ...
+       (add_module_namespace_decl): ... here.  Add checking-assert for
+       circularity. Don't call newbinding_bookkeeping, just extern_c
+       checking and incomplete var checking.
+
+2021-02-12  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99039
+       PR c++/99040
+       * cp-tree.h (CPTI_GLOBAL_TYPE): Delete.
+       (global_type_node): Delete.
+       (IDENTIFIER_TYPE_VALUE): Delete.
+       (IDENTIFIER_HAS_TYPE_VALUE): Delete.
+       (get_type_value): Delete.
+       * name-lookup.h (identifier_type_value): Delete.
+       * name-lookup.c (check_module_override): Don't
+       SET_IDENTIFIER_TYPE_VALUE here.
+       (do_pushdecl): Nor here.
+       (identifier_type_value_1, identifier_type_value): Delete.
+       (set_identifier_type_value_with_scope): Only
+       SET_IDENTIFIER_TYPE_VALUE for local and class scopes.
+       (pushdecl_nanmespace_level): Remove shadow stack nadgering.
+       (do_pushtag): Use REAL_IDENTIFIER_TYPE_VALUE.
+       * call.c (check_dtor_name): Use lookup_name.
+       * decl.c (cxx_init_decl_processing): Drop global_type_node.
+       * decl2.c (cplus_decl_attributes): Don't SET_IDENTIFIER_TYPE_VALUE
+       here.
+       * init.c (get_type_value): Delete.
+       * pt.c (instantiate_class_template_1): Don't call pushtag or
+       SET_IDENTIFIER_TYPE_VALUE here.
+       (tsubst): Assert never an identifier.
+       (dependent_type_p): Drop global_type_node assert.
+       * typeck.c (error_args_num): Don't use IDENTIFIER_HAS_TYPE_VALUE
+       to determine ctorness.
+
+2021-02-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/97742
+       * parser.c (cp_parser_requirement_seq): Stop iterating after reaching
+       CPP_EOF.
+
+2021-02-12  Jason Merrill  <jason@redhat.com>
+
+       PR c++/97246
+       PR c++/94546
+       * pt.c (extract_fnparm_pack): Check DECL_PACK_P here.
+       (register_parameter_specializations): Not here.
+
+2021-02-11  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/95888
+       * pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking
+       for the partial instantiation.
+
+2021-02-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/99033
+       * init.c (build_zero_init_1): Handle zero initialiation of
+       flexible array members like initialization of [0] arrays.
+       Use integer_minus_onep instead of comparison to integer_minus_one_node
+       and integer_zerop instead of comparison against size_zero_node.
+       Formatting fixes.
+
+2021-02-11  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/99063
+       * semantics.c (finish_do_stmt): Check for unexpanded parameter packs.
+
+2021-02-11  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/97582
+       * name-lookup.c (op_unqualified_lookup): Handle an ambiguous
+       lookup result by discarding it if the first element is a
+       class-scope declaration, otherwise return it.
+       (push_operator_bindings): Handle an ambiguous lookup result by
+       doing push_local_binding on each element in the list.
+
+2021-02-11  Marek Polacek  <polacek@redhat.com>
+
+       * parser.c (cp_parser_selection_statement): Use vec_free.
+
+2021-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/98988
+       PR c++/99031
+       * constexpr.c: Include cgraph.h.
+       (cxx_eval_call_expression): Call varpool_node::finalize_decl on
+       heap artificial vars.
+       (cxx_eval_outermost_constant_expr): Remove varpool nodes for
+       heap artificial vars.
+
+2021-02-10  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/99030
+       * pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the
+       answer if there's no local specialization.
+
+2021-02-09  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/98944
+       * module.cc (module_state::is_rooted): Rename to ...
+       (module_state::has_location): ... here.  Adjust callers.
+       (module_state::read_partitions): Adjust validity check.
+       Don't overwrite a known location.
+
+2021-02-09  Jason Merrill  <jason@redhat.com>
+
+       PR c++/96905
+       * pt.c (mark_decl_instantiated): Exit early if consteval.
+
+2021-02-09  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98326
+       PR c++/20408
+       * cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref
+       parm.
+
+2021-02-09  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98994
+       PR c++/97566
+       * constexpr.c (cxx_eval_store_expression): Only skip empty fields in
+       RECORD_TYPE.
+
+2021-02-08  Nathan Sidwell  <nathan@acm.org>
+
+       * decl.c (start_cleanup_fn): Push function into
+       namespace.
+
+2021-02-08  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/98531
+       * cp-tree.h (push_abi_namespace, pop_abi_namespace): Declare.
+       * decl.c (push_abi_namespace, pop_abi_namespace): Moved
+       from rtti.c, add default namespace arg.
+       (check_redeclaration_exception_specification): Allow a lazy
+       builtin's eh spec to differ from an lready-declared user
+       declaration.
+       (declare_global_var): Use push/pop_abi_namespace.
+       (get_atexit_node): Push the fndecl into a namespace.
+       * rtti.c (push_abi_namespace, pop_abi_namespace): Moved to
+       decl.c.
+
+2021-02-08  Marek Polacek  <polacek@redhat.com>
+
+       * cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo.
+
+2021-02-05  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/98947
+       * call.c (build_conditional_expr_1): Don't call mark_lvalue_use
+       on arg2/arg3.
+       * expr.c (mark_use) <case MODIFY_EXPR>: Don't check read_p when
+       issuing the -Wvolatile warning.  Only set TREE_THIS_VOLATILE if
+       a warning was emitted.
+
+2021-02-05  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/96462
+       * name-lookup.c (lookup_using_decl): Hoist the destructor check.
+
+2021-02-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/97878
+       * decl.c (check_array_initializer): For structured bindings, require
+       the array type to be complete.
+
+2021-02-04  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98717
+       * constraint.cc (build_concept_check_arguments): Remove assert.
+       (build_concept_check): Allow empty args.
+
+2021-02-04  Tom Greenslade (thomgree)  <thomgree@cisco.com>
+
+       PR c++/90926
+       * call.c (can_convert_array): Extend to handle all valid aggregate
+       initializers of an array; including by string literals, not just by
+       brace-init-list.
+       (build_aggr_conv): Call can_convert_array more often, not just in
+       brace-init-list case.
+       * typeck2.c (array_string_literal_compatible_p): New function.
+       (digest_init_r): call array_string_literal_compatible_p
+       * cp-tree.h: (array_string_literal_compatible_p): Declare.
+
+2021-02-04  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98802
+       * pt.c (do_class_deduction): No aggregate guide if any_dguides_p.
+
+2021-02-04  Jason Merrill  <jason@redhat.com>
+
+       PR c++/95192
+       * pt.c (tsubst_attribute): Handle error.
+       (apply_late_template_attributes): Return false on error.
+       (tsubst_function_decl): Check its return value.
+       (tsubst_decl): Likewise.
+       (push_template_decl): Assert current_template_parms.
+       (tsubst_template_decl): Set current_template_parms.
+
+2021-02-03  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/98951
+       * call.c (struct z_candidate): Mark rewritten and reversed as const.
+       (struct NonPublicField): Mark operator() as const.
+       (struct NonTrivialField): Likewise.
+
+2021-02-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98926
+       PR c++/98570
+       * pt.c (spec_hasher::equal): Set processing_template_decl.
+       * Make-lang.in (check-g++-strict-gc): Add --param
+       hash-table-verification-limit=10000.
+
+2021-02-03  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/98899
+       * parser.c (cp_parser_class_specifier_1): Use any possible
+       DEFPARSE_INSTANTIATIONS to update DEFERRED_NOEXCEPT_PATTERN.
+       (cp_parser_save_noexcept): Initialize DEFPARSE_INSTANTIATIONS.
+       * pt.c (tsubst_exception_specification): Stash new_specs into
+       DEFPARSE_INSTANTIATIONS.
+       * tree.c (fixup_deferred_exception_variants): Use
+       UNPARSED_NOEXCEPT_SPEC_P.
+
+2021-02-02  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98929
+       PR c++/96199
+       * error.c (dump_expr): Ignore dummy object.
+       * pt.c (tsubst_baselink): Handle dependent scope.
+
+2021-02-01  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/98295
+       * constexpr.c (cxx_eval_array_reference): Also set
+       new_ctx.object when setting new_ctx.ctor.
+
+2021-02-01  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/98355
+       * parser.c (cp_parser_has_attribute_expression): Use
+       uses_template_parms instead of type_dependent_expression_p.
+
+2021-02-01  Jason Merrill  <jason@redhat.com>
+
+       PR c++/98570
+       * cp-tree.h: Declare it.
+       * pt.c (comparing_dependent_aliases): New flag.
+       (template_args_equal, spec_hasher::equal): Set it.
+       (dependent_alias_template_spec_p): Assert that we don't
+       get non-types other than error_mark_node.
+       (instantiate_alias_template): SET_TYPE_STRUCTURAL_EQUALITY
+       on complex alias specializations.  Set TYPE_DEPENDENT_P here.
+       (tsubst_decl): Not here.
+       * module.cc (module_state::read_cluster): Set
+       comparing_dependent_aliases instead of
+       comparing_specializations.
+       * tree.c (cp_tree_equal): Remove comparing_specializations
+       module handling.
+       * typeck.c (structural_comptypes): Adjust.
+       (comptypes): Remove comparing_specializations handling.
+
 2021-01-29  Nathan Sidwell  <nathan@acm.org>
 
        PR c++/98843
This page took 0.065002 seconds and 5 git commands to generate.