diff options
Diffstat (limited to 'contrib/gcc/ginclude/stdarg.h')
-rw-r--r-- | contrib/gcc/ginclude/stdarg.h | 61 |
1 files changed, 46 insertions, 15 deletions
diff --git a/contrib/gcc/ginclude/stdarg.h b/contrib/gcc/ginclude/stdarg.h index ca79a3e..24f3383 100644 --- a/contrib/gcc/ginclude/stdarg.h +++ b/contrib/gcc/ginclude/stdarg.h @@ -12,34 +12,52 @@ #undef __need___va_list #ifdef __clipper__ -#include <va-clipper.h> +#include "va-clipper.h" #else #ifdef __m88k__ -#include <va-m88k.h> +#include "va-m88k.h" #else #ifdef __i860__ -#include <va-i860.h> +#include "va-i860.h" #else #ifdef __hppa__ -#include <va-pa.h> +#include "va-pa.h" #else #ifdef __mips__ -#include <va-mips.h> +#include "va-mips.h" #else #ifdef __sparc__ -#include <va-sparc.h> +#include "va-sparc.h" #else #ifdef __i960__ -#include <va-i960.h> +#include "va-i960.h" #else #ifdef __alpha__ -#include <va-alpha.h> +#include "va-alpha.h" #else -#if defined (__H8300__) || defined (__H8300H__) -#include <va-h8300.h> +#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__) +#include "va-h8300.h" #else -#if defined (__PPC__) && defined (_CALL_SYSV) -#include <va-ppc.h> +#if defined (__PPC__) && (defined (_CALL_SYSV) || defined (_WIN32)) +#include "va-ppc.h" +#else +#ifdef __arc__ +#include "va-arc.h" +#else +#ifdef __M32R__ +#include "va-m32r.h" +#else +#ifdef __sh__ +#include "va-sh.h" +#else +#ifdef __mn10300__ +#include "va-mn10300.h" +#else +#ifdef __mn10200__ +#include "va-mn10200.h" +#else +#ifdef __v850__ +#include "va-v850.h" #else /* Define __gnuc_va_list. */ @@ -78,7 +96,7 @@ void va_end (__gnuc_va_list); /* Defined in libgcc.a */ /* We cast to void * and then to TYPE * because this avoids a warning about increasing the alignment requirement. */ -#if defined (__arm__) || defined (__i386__) || defined (__i860__) || defined (__ns32000__) || defined (__vax__) +#if (defined (__arm__) && ! defined (__ARMEB__)) || defined (__i386__) || defined (__i860__) || defined (__ns32000__) || defined (__vax__) /* This is for little-endian machines; small args are padded upward. */ #define va_arg(AP, TYPE) \ (AP = (__gnuc_va_list) ((char *) (AP) + __va_rounded_size (TYPE)), \ @@ -91,8 +109,18 @@ void va_end (__gnuc_va_list); /* Defined in libgcc.a */ - ((sizeof (TYPE) < __va_rounded_size (char) \ ? sizeof (TYPE) : __va_rounded_size (TYPE)))))) #endif /* big-endian */ + +/* Copy __gnuc_va_list into another variable of this type. */ +#define __va_copy(dest, src) (dest) = (src) + #endif /* _STDARG_H */ +#endif /* not v850 */ +#endif /* not mn10200 */ +#endif /* not mn10300 */ +#endif /* not sh */ +#endif /* not m32r */ +#endif /* not arc */ #endif /* not powerpc with V.4 calling sequence */ #endif /* not h8300 */ #endif /* not alpha */ @@ -120,7 +148,7 @@ void va_end (__gnuc_va_list); /* Defined in libgcc.a */ #undef _BSD_VA_LIST #endif -#ifdef __svr4__ +#if defined(__svr4__) || (defined(_SCO_DS) && !defined(__VA_LIST)) /* SVR4.2 uses _VA_LIST for an internal alias for va_list, so we must avoid testing it and setting it here. SVR4 uses _VA_LIST as a flag in stdarg.h, but we should @@ -133,8 +161,11 @@ void va_end (__gnuc_va_list); /* Defined in libgcc.a */ #endif #endif /* __i860__ */ typedef __gnuc_va_list va_list; +#ifdef _SCO_DS +#define __VA_LIST +#endif #endif /* _VA_LIST_ */ -#else /* not __svr4__ */ +#else /* not __svr4__ || _SCO_DS */ /* The macro _VA_LIST_ is the same thing used by this file in Ultrix. But on BSD NET2 we must not test or define or undef it. |