@@ -25118,7 +25118,7 @@ do_class_deduction (tree ptype, tree tmpl, tree init, int flags,
{
tree t = cands;
for (; t; t = OVL_NEXT (t))
- if (DECL_NONCONVERTING_P (DECL_TEMPLATE_RESULT (OVL_CURRENT (t))))
+ if (DECL_NONCONVERTING_P (STRIP_TEMPLATE (OVL_CURRENT (t))))
break;
if (t)
{
@@ -25126,7 +25126,7 @@ do_class_deduction (tree ptype, tree tmpl, tree init, int flags,
for (t = cands; t; t = OVL_NEXT (t))
{
tree f = OVL_CURRENT (t);
- if (!DECL_NONCONVERTING_P (DECL_TEMPLATE_RESULT (f)))
+ if (!DECL_NONCONVERTING_P (STRIP_TEMPLATE (f)))
pruned = build_overload (f, pruned);
}
cands = pruned;
new file mode 100644
@@ -0,0 +1,6 @@
+// PR c++/79500
+// { dg-options -std=c++1z }
+
+template<typename T> struct A {};
+A(...) -> A<int>;
+A a = {};