diff options
author | Andrey A. Chernov <ache@FreeBSD.org> | 1995-01-24 16:22:52 +0000 |
---|---|---|
committer | Andrey A. Chernov <ache@FreeBSD.org> | 1995-01-24 16:22:52 +0000 |
commit | ea4a8be8c28ac688bb7a0ba2f4afab8f282b935e (patch) | |
tree | 24b79046f6a241e695636b14493a8769ed9cf374 /sys/i386/include/stdarg.h | |
parent | 83a8b44d6f5e6633ae5be3e71c1ea89376a01c49 (diff) | |
download | src-ea4a8be8c28ac688bb7a0ba2f4afab8f282b935e.tar.gz src-ea4a8be8c28ac688bb7a0ba2f4afab8f282b935e.zip |
Fix stdarg.h for GNU C using builtin_next_arg
Notes
Notes:
svn path=/head/; revision=5853
Diffstat (limited to 'sys/i386/include/stdarg.h')
-rw-r--r-- | sys/i386/include/stdarg.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/i386/include/stdarg.h b/sys/i386/include/stdarg.h index 5880242723b8..0fce3ee8f433 100644 --- a/sys/i386/include/stdarg.h +++ b/sys/i386/include/stdarg.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)stdarg.h 8.1 (Berkeley) 6/10/93 - * $Id$ + * $Id: stdarg.h,v 1.5 1994/08/02 07:39:09 davidg Exp $ */ #ifndef _STDARG_H_ @@ -39,11 +39,16 @@ typedef char *va_list; +#ifdef __GNUC__ +#define va_start(AP, LASTARG) \ + (AP = ((va_list) __builtin_next_arg (LASTARG))) +#else #define __va_promote(type) \ (((sizeof(type) + sizeof(int) - 1) / sizeof(int)) * sizeof(int)) #define va_start(ap, last) \ - (ap = ((char *)&(last) + __va_promote(last))) + (ap = ((va_list)&(last) + __va_promote(last))) +#endif #ifdef KERNEL #define va_arg(ap, type) \ |