aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorSimon Martin <simartin@users.sourceforge.net>2009-11-20 21:37:23 +0000
committerSimon Martin <simartin@gcc.gnu.org>2009-11-20 21:37:23 +0000
commit2282976b05c99c73fff7d23cb1af92b07113f078 (patch)
tree6fe90d992185eeac583b8115ba0cfcb089f6f026 /gcc/cp
parent70826946ea1908954914bb09e27e40139f49be59 (diff)
downloadgcc-2282976b05c99c73fff7d23cb1af92b07113f078.zip
gcc-2282976b05c99c73fff7d23cb1af92b07113f078.tar.gz
gcc-2282976b05c99c73fff7d23cb1af92b07113f078.tar.bz2
re PR c++/38646 (ICE with invalid specialization of variadic template)
gcc/cp/ 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. From-SVN: r154378
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/pt.c9
2 files changed, 11 insertions, 5 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a4024ef..520262e 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,10 @@
+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
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index c3b0f0e..0a19444 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -3795,12 +3795,11 @@ process_partial_specialization (tree decl)
|| (!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);
}
}