summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/stdarg.h
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2002-05-10 02:02:54 +0000
committerobrien <obrien@FreeBSD.org>2002-05-10 02:02:54 +0000
commit707b0b13a68bb4f18608bc2b61b968b1d11f7f4f (patch)
treeb2c2da53a08934116f97d9b8df58bf01fd5f8452 /sys/i386/include/stdarg.h
parent4267f26cd12834761ab9e3002ec3be631a3557c6 (diff)
downloadFreeBSD-src-707b0b13a68bb4f18608bc2b61b968b1d11f7f4f.zip
FreeBSD-src-707b0b13a68bb4f18608bc2b61b968b1d11f7f4f.tar.gz
Gcc 3.1 varargs support.
Diffstat (limited to 'sys/i386/include/stdarg.h')
-rw-r--r--sys/i386/include/stdarg.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/sys/i386/include/stdarg.h b/sys/i386/include/stdarg.h
index 3c7f17b..aa5cea8 100644
--- a/sys/i386/include/stdarg.h
+++ b/sys/i386/include/stdarg.h
@@ -1,4 +1,5 @@
/*-
+ * Copyright (c) 2002 David E. O'Brien. All rights reserved.
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
@@ -37,21 +38,29 @@
#ifndef _STDARG_H_
#define _STDARG_H_
-#if defined __GNUC__ && ((__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || __GNUC__ > 2)
-#include <machine/gcc_stdarg.h>
-#else /* __GNUC__ */
-
#include <machine/ansi.h>
typedef _BSD_VA_LIST_ va_list;
-#define __va_size(type) \
- (((sizeof(type) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
+
+#define va_start(ap, last) \
+ __builtin_stdarg_start((ap), (last))
+
+#define va_arg(ap, type) \
+ __builtin_va_arg((ap), type)
+
+#define va_end(ap) \
+ __builtin_va_end(ap)
+
+#else /* ! __GNUC__ post GCC 2.95 */
#ifdef __GNUC__
#define va_start(ap, last) \
((ap) = (va_list)__builtin_next_arg(last))
#else
+#define __va_size(type) \
+ (((sizeof(type) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
#define va_start(ap, last) \
((ap) = (va_list)&(last) + __va_size(last))
#endif
@@ -61,6 +70,6 @@ typedef _BSD_VA_LIST_ va_list;
#define va_end(ap)
-#endif /* __GNUC__ */
+#endif /* __GNUC__ post GCC 2.95 */
#endif /* !_STDARG_H_ */
OpenPOWER on IntegriCloud