diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-12-30 08:48:24 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-12-30 08:48:24 +0000 |
commit | da10fa74772694cff97087eb39c83a311ba6eadc (patch) | |
tree | c2f7eb8915196cb758b2aabeb7ed60b0df6ffcd8 /sys/arch/pmax/include/varargs.h | |
parent | b9aee3c44417b6bdbb038f048472d3b1f05aaa8c (diff) |
from netbsd: support more gcc versions
Diffstat (limited to 'sys/arch/pmax/include/varargs.h')
-rw-r--r-- | sys/arch/pmax/include/varargs.h | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/sys/arch/pmax/include/varargs.h b/sys/arch/pmax/include/varargs.h index 8cb900dc521..db59d3d5892 100644 --- a/sys/arch/pmax/include/varargs.h +++ b/sys/arch/pmax/include/varargs.h @@ -1,4 +1,4 @@ -/* $NetBSD: varargs.h,v 1.8 1995/03/28 18:19:30 jtc Exp $ */ +/* $NetBSD: varargs.h,v 1.12 1995/12/26 01:16:31 mycroft Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -43,26 +43,19 @@ #ifndef _PMAX_VARARGS_H_ #define _PMAX_VARARGS_H_ -#include <machine/ansi.h> +#include <machine/stdarg.h> -typedef _BSD_VA_LIST_ va_list; - -#define va_dcl int va_alist; ... - -#define va_start(ap) \ - ap = (char *)&va_alist - -#ifdef _KERNEL -#define va_arg(ap, type) \ - ((type *)(ap += sizeof(type)))[-1] +#if __GNUC__ == 1 +#define __va_ellipsis #else -#define va_arg(ap, type) \ - ((type *)(ap += sizeof(type) == sizeof(int) ? sizeof(type) : \ - sizeof(type) > sizeof(int) ? \ - (-(int)(ap) & (sizeof(type) - 1)) + sizeof(type) : \ - (abort(), 0)))[-1] +#define __va_ellipsis ... #endif -#define va_end(ap) ((void) 0) +#define va_alist __builtin_va_alist +#define va_dcl long __builtin_va_alist; __va_ellipsis + +#undef va_start +#define va_start(ap) \ + ((ap) = (va_list)&__builtin_va_alist) #endif /* !_PMAX_VARARGS_H_ */ |