pt.c (process_partial_specialization): Consistantly allocate and zero tpd.parms based...
authorRichard Henderson <rth@cygnus.com>
Tue, 8 Sep 1998 09:06:28 +0000 (02:06 -0700)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Tue, 8 Sep 1998 09:06:28 +0000 (09:06 +0000)
* pt.c (process_partial_specialization): Consistantly allocate
and zero tpd.parms based on ntparms.  Use tpd2.parms, not
tpd.parms, where appropriate.

Co-Authored-By: Mark Mitchell <mark@markmitchell.com>
From-SVN: r22325

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

index 7315d2549c922d7cca9cfb906bd28b5748916a51..4382a2acc711443672f67bc2efb5cc39540e59ce 100644 (file)
@@ -1,3 +1,10 @@
+1998-09-08  Richard Henderson  <rth@cygnus.com>
+           Mark Mitchell  <mark@markmitchell.com>      
+       
+       * pt.c (process_partial_specialization): Consistantly allocate
+       and zero tpd.parms based on ntparms.  Use tpd2.parms, not
+       tpd.parms, where appropriate.
+
 Sun Sep  6 00:00:51 1998  Jeffrey A Law  (law@cygnus.com)
 
        * Makefile.in (INCLUDES): Update after recent toplevel gcc
index 04c9fd65fdabfef2d543f57c3487f8b678a01f14..e95d7d1e70cb6004a4fe8d85b595fff5d5775889 100644 (file)
@@ -1912,7 +1912,7 @@ process_partial_specialization (decl)
      or some such would have been OK.  */
   tpd.level = TMPL_PARMS_DEPTH (current_template_parms);
   tpd.parms = alloca (sizeof (int) * ntparms);
-  bzero (tpd.parms, sizeof (int) * nargs);
+  bzero (tpd.parms, sizeof (int) * ntparms);
 
   tpd.arg_uses_template_parms = alloca (sizeof (int) * nargs);
   bzero (tpd.arg_uses_template_parms, sizeof (int) * nargs);
@@ -1985,6 +1985,9 @@ process_partial_specialization (decl)
                  /* We haven't yet initialized TPD2.  Do so now.  */
                  tpd2.arg_uses_template_parms 
                    =  (int*) alloca (sizeof (int) * nargs);
+                 /* The number of paramters here is the number in the
+                    main template, which, as checked in the assertion
+                    above, is NARGS.  */
                  tpd2.parms = (int*) alloca (sizeof (int) * nargs);
                  tpd2.level = 
                    TMPL_PARMS_DEPTH (DECL_TEMPLATE_PARMS (maintmpl));
@@ -1995,7 +1998,7 @@ process_partial_specialization (decl)
                 template, not in the specialization.  */
              tpd2.current_arg = i;
              tpd2.arg_uses_template_parms[i] = 0;
-             bzero (tpd.parms, sizeof (int) * nargs);
+             bzero (tpd2.parms, sizeof (int) * nargs);
              for_each_template_parm (type,
                                      &mark_template_parm,
                                      &tpd2);