summaryrefslogtreecommitdiff
path: root/gcc/ginclude/va-sparc.h
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-09-12 18:52:26 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-09-12 18:52:26 -0400
commitd5e64548625a23cf3e8027a6580d0ed017e1e464 (patch)
tree089a5756c90f896841f5fbab5437ace7eb9b19e3 /gcc/ginclude/va-sparc.h
parent4738c10dc60f8391036e7e8e63a7b14d1bf7201d (diff)
downloadgcc-d5e64548625a23cf3e8027a6580d0ed017e1e464.tar.gz
(v9 varargs va_start): Handle __builtin_va_alist being stack argument.
From-SVN: r10345
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 94339922f06..40a24044033 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__