From fc336fdfbbe126c0a916e3e024c63632d2c97ec0 Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Fri, 10 May 2002 02:02:54 +0000 Subject: Gcc 3.1 varargs support. --- sys/sparc64/include/varargs.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'sys/sparc64/include/varargs.h') diff --git a/sys/sparc64/include/varargs.h b/sys/sparc64/include/varargs.h index 5f8fb7d41aeb..dd7e3a37819e 100644 --- a/sys/sparc64/include/varargs.h +++ b/sys/sparc64/include/varargs.h @@ -1,4 +1,5 @@ /* + * Copyright (c) 2002 David E. O'Brien. All rights reserved. * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * (c) UNIX System Laboratories, Inc. @@ -44,10 +45,25 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * from: @(#)varargs.h 8.3 (Berkeley) 3/22/94 + * @(#)varargs.h 8.3 (Berkeley) 3/22/94 * $FreeBSD$ */ +#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3) + +#include + +typedef _BSD_VA_LIST_ va_list; +typedef int __builtin_va_alist_t __attribute__((__mode__(__word__))); + +#define va_alist __builtin_va_alist +#define va_dcl __builtin_va_alist_t __builtin_va_alist; ... +#define va_start(ap) __builtin_varargs_start(ap) +#define va_arg(ap, type) __builtin_va_arg((ap), type) +#define va_end(ap) __builtin_va_end(ap) + +#else /* ! __GNUC__ post GCC 2.95 */ + #ifndef _MACHINE_VARARGS_H_ #define _MACHINE_VARARGS_H_ @@ -66,4 +82,6 @@ #define va_start(ap) \ ((ap) = (va_list)__builtin_saveregs()) +#endif /* __GNUC__ post GCC 2.95 */ + #endif /* !_MACHINE_VARARGS_H_ */ -- cgit v1.2.3