aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ginclude/stdarg.h2
-rw-r--r--gcc/ginclude/va-h8300.h3
-rw-r--r--gcc/ginclude/va-i860.h2
-rw-r--r--gcc/ginclude/va-i960.h2
-rw-r--r--gcc/ginclude/va-mips.h7
-rw-r--r--gcc/ginclude/va-sparc.h7
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