OSDN Git Service

Revert PR c++/42697
authordodji <dodji@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 17 Jan 2010 10:38:10 +0000 (10:38 +0000)
committerdodji <dodji@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 17 Jan 2010 10:38:10 +0000 (10:38 +0000)
     The commit is reverted as this was not a regression.
     It's rather going to be stagged for 4.6.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155976 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/crash94.C [deleted file]

index dc563cc..ffa7b86 100644 (file)
@@ -1,6 +1,11 @@
 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
 
        PR c++/42697
+       *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
+
+2010-01-17  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/42697
        *pt.c (tsubst_decl): Get the arguments of a specialization from
        the specialization template, not from the most general template.
 
index 0acb860..f27b931 100644 (file)
@@ -8825,8 +8825,7 @@ tsubst_decl (tree t, tree args, tsubst_flags_t complain)
               specialize R.  */
            gen_tmpl = most_general_template (DECL_TI_TEMPLATE (t));
            argvec = tsubst_template_args (DECL_TI_ARGS
-                                          (DECL_TEMPLATE_RESULT
-                                                 (DECL_TI_TEMPLATE (t))),
+                                          (DECL_TEMPLATE_RESULT (gen_tmpl)),
                                           args, complain, in_decl);
 
            /* Check to see if we already have this specialization.  */
index 8211355..5272d3d 100644 (file)
@@ -1,7 +1,11 @@
 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
 
        PR c++/42697
-       * g++.dg/template/crash94.C: New test.
+       * g++.dg/template/crash94.C: Reverted.
+
+2010-01-17  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/42697
 
 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
 
diff --git a/gcc/testsuite/g++.dg/template/crash94.C b/gcc/testsuite/g++.dg/template/crash94.C
deleted file mode 100644 (file)
index 810aed0..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-// Origin: PR c++/42697
-// { dg-do compile }
-
-template<class Value_t>
-class fparser
-{
-    template<bool Option>
-    void eval2(Value_t r[2]);
-public:
-    void evaltest();
-};
-
-template<>
-template<bool Option>
-void fparser<int>::eval2(int r[2])
-{
-    struct ObjType {};
-}
-
-
-template<class Value_t>
-void fparser<Value_t>::evaltest
-    ()
-{
-    eval2<false>(0);
-}
-
-template class fparser<int>;