diff options
author | Simon Martin <simartin@users.sourceforge.net> | 2009-11-20 21:37:23 +0000 |
---|---|---|
committer | Simon Martin <simartin@gcc.gnu.org> | 2009-11-20 21:37:23 +0000 |
commit | 2282976b05c99c73fff7d23cb1af92b07113f078 (patch) | |
tree | 6fe90d992185eeac583b8115ba0cfcb089f6f026 /gcc/cp | |
parent | 70826946ea1908954914bb09e27e40139f49be59 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/pt.c | 9 |
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); } } |