https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94819
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
Last reconfirmed| |2020-04-28
CC| |ppalka at gcc dot gnu.org
--- Comment #3 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Confirmed, thanks for the nice testcase. I think the problem lies with how we
cache the constraints of an inherited constructor. I am testing the following:
--- a/gcc/cp/constraint.cc
+++ b/gcc/cp/constraint.cc
@@ -2752,7 +2752,7 @@ satisfy_declaration_constraints (tree t, subst_info info)
info.in_decl = t;
if (info.quiet ())
- if (tree *result = hash_map_safe_get (decl_satisfied_cache, t))
+ if (tree *result = hash_map_safe_get (decl_satisfied_cache, saved_t))
return *result;
/* Get the normalized constraints. */
@@ -2787,7 +2787,7 @@ satisfy_declaration_constraints (tree t, subst_info info)
}
if (info.quiet ())
- hash_map_safe_put<hm_ggc> (decl_satisfied_cache, t, result);
+ hash_map_safe_put<hm_ggc> (decl_satisfied_cache, saved_t, result);
return result;
}