Commit 6268b922 by Kaveh R. Ghazi Committed by Kaveh Ghazi

calls.c (emit_library_call_value): Don't use a fixed argument after VA_CLOSE, i.e.

	* calls.c (emit_library_call_value): Don't use a fixed
	argument after VA_CLOSE, i.e. out of scope in traditional C.

	* emit-rtl.c (gen_rtvec): Likewise.

From-SVN: r45332
parent 78b41166
2001-08-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2001-08-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* calls.c (emit_library_call_value): Don't use a fixed
argument after VA_CLOSE, i.e. out of scope in traditional C.
* emit-rtl.c (gen_rtvec): Likewise.
2001-08-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (c-pragma.o): Depend on output.h. * Makefile.in (c-pragma.o): Depend on output.h.
(reorg.o): Depend on except.h. (reorg.o): Depend on except.h.
......
...@@ -4227,6 +4227,8 @@ emit_library_call_value VPARAMS((rtx orgfun, rtx value, ...@@ -4227,6 +4227,8 @@ emit_library_call_value VPARAMS((rtx orgfun, rtx value,
enum libcall_type fn_type, enum libcall_type fn_type,
enum machine_mode outmode, int nargs, ...)) enum machine_mode outmode, int nargs, ...))
{ {
rtx result;
VA_OPEN (p, nargs); VA_OPEN (p, nargs);
VA_FIXEDARG (p, rtx, orgfun); VA_FIXEDARG (p, rtx, orgfun);
VA_FIXEDARG (p, rtx, value); VA_FIXEDARG (p, rtx, value);
...@@ -4234,11 +4236,12 @@ emit_library_call_value VPARAMS((rtx orgfun, rtx value, ...@@ -4234,11 +4236,12 @@ emit_library_call_value VPARAMS((rtx orgfun, rtx value,
VA_FIXEDARG (p, enum machine_mode, outmode); VA_FIXEDARG (p, enum machine_mode, outmode);
VA_FIXEDARG (p, int, nargs); VA_FIXEDARG (p, int, nargs);
value = emit_library_call_value_1 (1, orgfun, value, fn_type, outmode, nargs, p); result = emit_library_call_value_1 (1, orgfun, value, fn_type, outmode,
nargs, p);
VA_CLOSE (p); VA_CLOSE (p);
return value; return result;
} }
#if 0 #if 0
......
...@@ -517,7 +517,7 @@ gen_rtx VPARAMS ((enum rtx_code code, enum machine_mode mode, ...)) ...@@ -517,7 +517,7 @@ gen_rtx VPARAMS ((enum rtx_code code, enum machine_mode mode, ...))
rtvec rtvec
gen_rtvec VPARAMS ((int n, ...)) gen_rtvec VPARAMS ((int n, ...))
{ {
int i; int i, save_n;
rtx *vector; rtx *vector;
VA_OPEN (p, n); VA_OPEN (p, n);
...@@ -530,9 +530,12 @@ gen_rtvec VPARAMS ((int n, ...)) ...@@ -530,9 +530,12 @@ gen_rtvec VPARAMS ((int n, ...))
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
vector[i] = va_arg (p, rtx); vector[i] = va_arg (p, rtx);
/* The definition of VA_* in K&R C causes `n' to go out of scope. */
save_n = n;
VA_CLOSE (p); VA_CLOSE (p);
return gen_rtvec_v (n, vector); return gen_rtvec_v (save_n, vector);
} }
rtvec rtvec
......
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