From 117aea7ad86c417a457823db2971b76f6a4046a9 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Wed, 23 Mar 1994 14:19:23 -0800 Subject: [PATCH] (va_start): Pass LASTARG as a parameter to builtin_next_arg. From-SVN: r6855 --- gcc/ginclude/stdarg.h | 2 +- gcc/ginclude/va-h8300.h | 3 ++- gcc/ginclude/va-i860.h | 2 +- gcc/ginclude/va-i960.h | 2 +- gcc/ginclude/va-mips.h | 7 +------ gcc/ginclude/va-sparc.h | 7 +++++-- 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/gcc/ginclude/stdarg.h b/gcc/ginclude/stdarg.h index 1dac354..675f65b 100644 --- a/gcc/ginclude/stdarg.h +++ b/gcc/ginclude/stdarg.h @@ -67,7 +67,7 @@ typedef void *__gnuc_va_list; (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int)) #define va_start(AP, LASTARG) \ - (AP = ((__gnuc_va_list) __builtin_next_arg ())) + (AP = ((__gnuc_va_list) __builtin_next_arg (LASTARG))) #undef va_end void va_end (__gnuc_va_list); /* Defined in libgcc.a */ diff --git a/gcc/ginclude/va-h8300.h b/gcc/ginclude/va-h8300.h index a9b037b..18af77c 100644 --- a/gcc/ginclude/va-h8300.h +++ b/gcc/ginclude/va-h8300.h @@ -30,7 +30,8 @@ typedef void *__gnuc_va_list; #ifdef _STDARG_H -#define va_start(AP,LASTARG) (AP = ((__gnuc_va_list) __builtin_next_arg ())) +#define va_start(AP,LASTARG) \ + (AP = ((__gnuc_va_list) __builtin_next_arg (LASTARG))) #else /* _VARARGS_H */ diff --git a/gcc/ginclude/va-i860.h b/gcc/ginclude/va-i860.h index 9f6a50a..1a74c45 100644 --- a/gcc/ginclude/va-i860.h +++ b/gcc/ginclude/va-i860.h @@ -61,7 +61,7 @@ typedef struct { ((pvar) = *(__gnuc_va_list *) __builtin_saveregs (), \ (pvar).__ireg_used = __builtin_args_info (0) / 4, \ (pvar).__freg_used = __builtin_args_info (1) / 4, \ - (pvar).__mem_ptr = __builtin_next_arg ()) + (pvar).__mem_ptr = __builtin_next_arg (firstarg)) #endif /* _STDARG_H */ diff --git a/gcc/ginclude/va-i960.h b/gcc/ginclude/va-i960.h index 5bf9556..bd77f8e 100644 --- a/gcc/ginclude/va-i960.h +++ b/gcc/ginclude/va-i960.h @@ -39,7 +39,7 @@ typedef unsigned __gnuc_va_list[2]; #define va_start(AP, LASTARG) \ __extension__ \ ({ __asm__ ("st g14,%0" : "=m" (*(AP))); \ - (AP)[1] = (unsigned) __builtin_next_arg () - *AP; }) + (AP)[1] = (unsigned) __builtin_next_arg (LASTARG) - *AP; }) #else #define va_alist __builtin_va_alist diff --git a/gcc/ginclude/va-mips.h b/gcc/ginclude/va-mips.h index 3ea04af..2f41116 100644 --- a/gcc/ginclude/va-mips.h +++ b/gcc/ginclude/va-mips.h @@ -38,12 +38,7 @@ typedef char * __gnuc_va_list; #endif #ifdef _STDARG_H -#if __mips==3 -#define va_start(__AP, __LASTARG) (__AP = __builtin_next_arg ()) -#else -#define va_start(__AP, __LASTARG) \ - (__AP = ((char *) &(__LASTARG) + __va_rounded_size (__LASTARG))) -#endif +#define va_start(__AP, __LASTARG) (__AP = __builtin_next_arg (__LASTARG)) #else #define va_alist __builtin_va_alist diff --git a/gcc/ginclude/va-sparc.h b/gcc/ginclude/va-sparc.h index 980ecd6..db2e28d 100644 --- a/gcc/ginclude/va-sparc.h +++ b/gcc/ginclude/va-sparc.h @@ -23,11 +23,14 @@ typedef void * __gnuc_va_list; #ifdef _STDARG_H +/* Call __builtin_next_arg even though we aren't using its value, so that + we can verify that LASTARG is correct. */ #ifdef __GCC_NEW_VARARGS__ -#define va_start(AP, LASTARG) (AP = (char *) __builtin_saveregs ()) +#define va_start(AP, LASTARG) \ + (__builtin_next_arg (LASTARG), AP = (char *) __builtin_saveregs ()) #else #define va_start(AP, LASTARG) \ - (__builtin_saveregs (), AP = ((char *) __builtin_next_arg ())) + (__builtin_saveregs (), AP = ((char *) __builtin_next_arg (LASTARG))) #endif #else -- 2.7.4