2009-11-20 Simon Martin <simartin@users.sourceforge.net>
PR c++/38646
* pt.c (process_partial_specialization): Do not turn wrongly located
parameter pack arguments into error_mark_node.
Split too long lines into two.
gcc/testsuite/
2009-11-20 Simon Martin <simartin@users.sourceforge.net>
PR c++/38646
* g++.dg/cpp0x/pr38646.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154378
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-11-20 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/38646
+ * pt.c (process_partial_specialization): Do not turn wrongly located
+ parameter pack arguments into error_mark_node.
+ Split too long lines into two.
+
2009-11-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/42060
|| (!packed_args && i < nargs - 1))
{
if (TREE_CODE (arg) == EXPR_PACK_EXPANSION)
- error ("parameter pack argument %qE must be at the end of the template argument list", arg);
+ error ("parameter pack argument %qE must be at the "
+ "end of the template argument list", arg);
else
- error ("parameter pack argument %qT must be at the end of the template argument list", arg);
-
- if (packed_args)
- TREE_VEC_ELT (packed_args, j) = error_mark_node;
+ error ("parameter pack argument %qT must be at the "
+ "end of the template argument list", arg);
}
}
+2009-11-20 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/38646
+ * g++.dg/cpp0x/pr38646.C: New test.
+
2009-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* gcc.dg/c99-stdint-6.c: Set dg-options for alpha*-dec-osf5*.
--- /dev/null
+/* PR c++/38646 */
+/* { dg-do "compile" } */
+/* { dg-options "-std=c++0x" } */
+
+template<int...> struct A;
+
+template<int... N> struct A<N..., N...> /* { dg-error "must be at the end" } */
+{
+ template<typename> struct B;
+
+ template<typename T> struct B<T*> {};
+};