2019-04-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/89900
* pt.c (fn_type_unification): When handling null explicit
arguments do not special case non-parameter packs.
/testsuite
2019-04-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/89900
* g++.dg/cpp0x/pr89900-1.C: New.
* g++.dg/cpp0x/pr89900-2.C: Likewise.
* g++.dg/cpp0x/pr89900-3.C: Likewise.
* g++.dg/cpp0x/pr89900-4.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270459
138bc75d-0d04-0410-961f-
82ee72b054a4
+2019-04-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/89900
+ * pt.c (fn_type_unification): When handling null explicit
+ arguments do not special case non-parameter packs.
+
2019-04-19 Jakub Jelinek <jakub@redhat.com>
PR c++/90138
2019-04-19 Jakub Jelinek <jakub@redhat.com>
PR c++/90138
parameter_pack = TEMPLATE_PARM_PARAMETER_PACK (parm);
}
parameter_pack = TEMPLATE_PARM_PARAMETER_PACK (parm);
}
- if (!parameter_pack && targ == NULL_TREE)
/* No explicit argument for this template parameter. */
incomplete = true;
/* No explicit argument for this template parameter. */
incomplete = true;
-
- if (parameter_pack && pack_deducible_p (parm, fn))
+ else if (parameter_pack && pack_deducible_p (parm, fn))
{
/* Mark the argument pack as "incomplete". We could
still deduce more arguments during unification.
We remove this mark in type_unification_real. */
{
/* Mark the argument pack as "incomplete". We could
still deduce more arguments during unification.
We remove this mark in type_unification_real. */
- if (targ)
- {
- ARGUMENT_PACK_INCOMPLETE_P(targ) = 1;
- ARGUMENT_PACK_EXPLICIT_ARGS (targ)
- = ARGUMENT_PACK_ARGS (targ);
- }
+ ARGUMENT_PACK_INCOMPLETE_P(targ) = 1;
+ ARGUMENT_PACK_EXPLICIT_ARGS (targ)
+ = ARGUMENT_PACK_ARGS (targ);
/* We have some incomplete argument packs. */
incomplete = true;
/* We have some incomplete argument packs. */
incomplete = true;
+2019-04-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/89900
+ * g++.dg/cpp0x/pr89900-1.C: New.
+ * g++.dg/cpp0x/pr89900-2.C: Likewise.
+ * g++.dg/cpp0x/pr89900-3.C: Likewise.
+ * g++.dg/cpp0x/pr89900-4.C: Likewise.
+
2019-04-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/90139
2019-04-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/90139
--- /dev/null
+// { dg-do compile { target c++11 } }
+
+template<typename SX, typename ...XE> void
+fk (XE..., SW); // { dg-error "12:.SW. has not been declared" }
+
+void
+w9 (void)
+{
+ fk<int> (0);
+}
--- /dev/null
+// { dg-do compile { target c++11 } }
+
+template<typename SX, typename ...XE> void
+fk (XE..., int);
+
+void
+w9 (void)
+{
+ fk<int> (0);
+}
--- /dev/null
+// { dg-do compile { target c++11 } }
+
+template<typename ...XE> void
+fk (XE..., SW); // { dg-error "12:.SW. has not been declared" }
+
+void
+w9 (void)
+{
+ fk (0);
+}
--- /dev/null
+// { dg-do compile { target c++11 } }
+
+template<typename ...XE> void
+fk (XE..., int);
+
+void
+w9 (void)
+{
+ fk (0);
+}