]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/18962 (specialization of template class with inner template members and...
authorAlexandre Oliva <aoliva@redhat.com>
Thu, 23 Dec 2004 20:06:11 +0000 (20:06 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Thu, 23 Dec 2004 20:06:11 +0000 (20:06 +0000)
gcc/cp/ChangeLog:
PR c++/18962
* pt.c (check_explicit_specialization): Use the argument list from
the definition in a template function specialization definition.
gcc/testsuite/ChangeLog:
* g++.dg/template/spec19.C: New.

From-SVN: r92564

gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/testsuite/ChangeLog

index 569ad1064e57878ba09305f12ac586aa6117a56c..f3cb473cea698b2b0b8d516d5655b434a5a3a68e 100644 (file)
@@ -1,3 +1,9 @@
+2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR c++/18962
+       * pt.c (check_explicit_specialization): Use the argument list from
+       the definition in a template function specialization definition.
+
 2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
 
        PR c++/18757
index 95d03c7f39f6b45e51a66c764eb63ec903b8ab49..206c44935f3290754d74cc0c4c7431745314286d 100644 (file)
@@ -1955,6 +1955,10 @@ check_explicit_specialization (tree declarator,
                  DECL_SOURCE_LOCATION (tmpl) = DECL_SOURCE_LOCATION (decl);
                  DECL_SOURCE_LOCATION (DECL_TEMPLATE_RESULT (tmpl))
                    = DECL_SOURCE_LOCATION (decl);
+                 /* We want to use the argument list specified in the
+                    definition, not in the original declaration.  */
+                 DECL_ARGUMENTS (DECL_TEMPLATE_RESULT (tmpl))
+                   = DECL_ARGUMENTS (decl);
                }
              return tmpl;
            }
index c0e3af3a09dc8bd0e91e3cafa25f2d293c70bb42..68f72a38426086b309c33e974e3005faf92df31d 100644 (file)
@@ -1,3 +1,7 @@
+2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
+
+       * g++.dg/template/spec19.C: New.
+
 2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
 
        * g++.dg/parse/typename5.C: Adjust for new error.