diff options
author | Richard Stallman <rms@gnu.org> | 1992-10-06 05:47:25 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-10-06 05:47:25 +0000 |
commit | a5c8d7229b33dac4177fba606d7ddfb24f081441 (patch) | |
tree | fde5da233ceca82907d9f552ba22fc59ecea2478 | |
parent | 3041f3be0262e4f34faf464c0de531d06428aafa (diff) | |
download | gcc-a5c8d7229b33dac4177fba606d7ddfb24f081441.zip gcc-a5c8d7229b33dac4177fba606d7ddfb24f081441.tar.gz gcc-a5c8d7229b33dac4177fba606d7ddfb24f081441.tar.bz2 |
In the first part (instead of va-*.h), define __gnuc_va_list, as in gstdarg.h.
In the first part (instead of va-*.h), define
__gnuc_va_list, as in gstdarg.h. Always use __gunc_va_list
as basis for defining va_list.
Move interaction with BSD-NET2 down to where va_list itself is defined.
From-SVN: r2336
-rw-r--r-- | gcc/ginclude/varargs.h | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/gcc/ginclude/varargs.h b/gcc/ginclude/varargs.h index 4473e45..d8c0864 100644 --- a/gcc/ginclude/varargs.h +++ b/gcc/ginclude/varargs.h @@ -2,7 +2,7 @@ /* Use the system's macros with the system's compiler. */ #include <varargs.h> #else -/* Record that varargs.h is defined; this turns off stdarg.h. */ +/* Record that this is varargs.h; this turns off stdarg.h. */ #ifndef _VARARGS_H #define _VARARGS_H @@ -64,30 +64,15 @@ /* The ... causes current_function_varargs to be set in cc1. */ #define va_dcl int __builtin_va_alist; __va_ellipsis -#ifdef _HIDDEN_VA_LIST /* On OSF1, this means varargs.h is "half-loaded". */ -#undef _VA_LIST -#endif +/* Define __gnuc_va_list, just as in gstdarg.h. */ -/* The macro _VA_LIST_ is the same thing used by this file in Ultrix. */ -/* But in 4.3bsd-net2, _VA_LIST_ has another meaning. So ignore it. */ -#if !defined (_VA_LIST_) || defined (_ANSI_H_) -/* The macro _VA_LIST is used in SCO Unix 3.2. */ -#ifndef _VA_LIST -#ifndef _VA_LIST_ -#define _VA_LIST_ +#ifndef __GNUC_VA_LIST +#define __GNUC_VA_LIST +#ifdef __svr4__ +typedef char *__gnuc_va_list; +#else +typedef void *__gnuc_va_list; #endif -#define _VA_LIST -/* Make this a macro rather than a typedef, so we can undef any other defn. */ -#define va_list __va___list -typedef char * __va___list; -#endif /* _VA_LIST */ -#endif /* !defined (_VA_LIST_) || defined (_ANSI_H_) */ - -/* In 4.3bsd-net2, it is said we must #undef this. - I hope this successfully identifies that system. - I don't know why this works--rms. */ -#ifdef _ANSI_H_ -#undef _VA_LIST_ #endif #define va_start(AP) AP=(char *) &__builtin_va_alist @@ -112,14 +97,19 @@ typedef char * __va___list; #endif /* not sparc */ #endif /* not _VARARGS_H */ -#ifdef __GNUC_VA_LIST -/* If an include file defined __GNUC_VA_LIST, - copy it into va_list. */ +/* Define va_list from __gnuc_va_list. */ #ifdef _HIDDEN_VA_LIST /* On OSF1, this means varargs.h is "half-loaded". */ #undef _VA_LIST #endif +/* In 4.3bsd-net2, _VA_LIST_ is defined by machine/ansi.h, but no + typedef for va_list is in that file. Undef _VA_LIST_ here + so we do define va_list. */ +#ifdef _ANSI_H_ +#undef _VA_LIST_ +#endif + /* The macro _VA_LIST_ is the same thing used by this file in Ultrix. */ #ifndef _VA_LIST_ /* The macro _VA_LIST is used in SCO Unix 3.2. */ @@ -129,6 +119,17 @@ typedef char * __va___list; typedef __gnuc_va_list va_list; #endif /* _VA_LIST */ #endif /* _VA_LIST_ */ -#endif /* __GNUC_VA_LIST */ + +/* I think that in 4.3bsd-net2 there is some need + to leave _VA_LIST_ undefined after. I don't know why. -- rms. */ +#ifdef _ANSI_H_ +#undef _VA_LIST_ +#endif + +/* The next BSD release (if there is one) wants this symbol to be + undefined instead of _VA_LIST_. */ +#ifdef _BSD_VA_LIST +#undef _BSD_VA_LIST +#endif #endif /* __GNUC__ */ |