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
This commit is contained in:
parent
78b411667a
commit
6268b92246
3 changed files with 17 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
|||
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.
|
||||
|
|
|
@ -4227,6 +4227,8 @@ emit_library_call_value VPARAMS((rtx orgfun, rtx value,
|
|||
enum libcall_type fn_type,
|
||||
enum machine_mode outmode, int nargs, ...))
|
||||
{
|
||||
rtx result;
|
||||
|
||||
VA_OPEN (p, nargs);
|
||||
VA_FIXEDARG (p, rtx, orgfun);
|
||||
VA_FIXEDARG (p, 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, 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);
|
||||
|
||||
return value;
|
||||
return result;
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
|
|
@ -517,7 +517,7 @@ gen_rtx VPARAMS ((enum rtx_code code, enum machine_mode mode, ...))
|
|||
rtvec
|
||||
gen_rtvec VPARAMS ((int n, ...))
|
||||
{
|
||||
int i;
|
||||
int i, save_n;
|
||||
rtx *vector;
|
||||
|
||||
VA_OPEN (p, n);
|
||||
|
@ -530,9 +530,12 @@ gen_rtvec VPARAMS ((int n, ...))
|
|||
|
||||
for (i = 0; i < n; i++)
|
||||
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);
|
||||
|
||||
return gen_rtvec_v (n, vector);
|
||||
return gen_rtvec_v (save_n, vector);
|
||||
}
|
||||
|
||||
rtvec
|
||||
|
|
Loading…
Add table
Reference in a new issue