Commit 76a83782 by Richard Henderson Committed by Mark Mitchell

pt.c (process_partial_specialization): Consistantly allocate and zero tpd.parms based on ntparms.

	* 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
parent f2bd33a3
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) Sun Sep 6 00:00:51 1998 Jeffrey A Law (law@cygnus.com)
* Makefile.in (INCLUDES): Update after recent toplevel gcc * Makefile.in (INCLUDES): Update after recent toplevel gcc
......
...@@ -1912,7 +1912,7 @@ process_partial_specialization (decl) ...@@ -1912,7 +1912,7 @@ process_partial_specialization (decl)
or some such would have been OK. */ or some such would have been OK. */
tpd.level = TMPL_PARMS_DEPTH (current_template_parms); tpd.level = TMPL_PARMS_DEPTH (current_template_parms);
tpd.parms = alloca (sizeof (int) * ntparms); 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); tpd.arg_uses_template_parms = alloca (sizeof (int) * nargs);
bzero (tpd.arg_uses_template_parms, sizeof (int) * nargs); bzero (tpd.arg_uses_template_parms, sizeof (int) * nargs);
...@@ -1985,6 +1985,9 @@ process_partial_specialization (decl) ...@@ -1985,6 +1985,9 @@ process_partial_specialization (decl)
/* We haven't yet initialized TPD2. Do so now. */ /* We haven't yet initialized TPD2. Do so now. */
tpd2.arg_uses_template_parms tpd2.arg_uses_template_parms
= (int*) alloca (sizeof (int) * nargs); = (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.parms = (int*) alloca (sizeof (int) * nargs);
tpd2.level = tpd2.level =
TMPL_PARMS_DEPTH (DECL_TEMPLATE_PARMS (maintmpl)); TMPL_PARMS_DEPTH (DECL_TEMPLATE_PARMS (maintmpl));
...@@ -1995,7 +1998,7 @@ process_partial_specialization (decl) ...@@ -1995,7 +1998,7 @@ process_partial_specialization (decl)
template, not in the specialization. */ template, not in the specialization. */
tpd2.current_arg = i; tpd2.current_arg = i;
tpd2.arg_uses_template_parms[i] = 0; tpd2.arg_uses_template_parms[i] = 0;
bzero (tpd.parms, sizeof (int) * nargs); bzero (tpd2.parms, sizeof (int) * nargs);
for_each_template_parm (type, for_each_template_parm (type,
&mark_template_parm, &mark_template_parm,
&tpd2); &tpd2);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment