aboutsummaryrefslogtreecommitdiff
path: root/gcc/ginclude/va-sparc.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ginclude/va-sparc.h')
-rw-r--r--gcc/ginclude/va-sparc.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/ginclude/va-sparc.h b/gcc/ginclude/va-sparc.h
index 9433992..40a2404 100644
--- a/gcc/ginclude/va-sparc.h
+++ b/gcc/ginclude/va-sparc.h
@@ -74,7 +74,8 @@ __extension__ \
AP.__va_next_fp = (__va_freg *) AP.__va_next_o_limit; \
AP.__va_next_fp_limit = (AP.__va_next_fp + \
(__builtin_args_info (1) < 16 ? (16 - __builtin_args_info (1) + 1) / 2 : 0)); \
- AP.__va_next_stack = (__va_greg *) __builtin_next_arg (__builtin_va_alist); \
+ AP.__va_next_stack = (__va_greg *) __builtin_next_arg (__builtin_va_alist) \
+ - (__builtin_args_info (0) >= 6 || __builtin_args_info (1) >= 16 ? 1 : 0); \
})
#else
#ifdef __GCC_NEW_VARARGS__