[5767] in Athena Bugs
Re:
daemon@ATHENA.MIT.EDU (Richard Basch)
Sat Aug 18 20:59:48 1990
Date: Sat, 18 Aug 90 20:59:24 -0400
To: jfc@MIT.EDU
Cc: bugs@ATHENA.MIT.EDU
In-Reply-To: bugs[5765]
From: Richard Basch <probe@MIT.EDU>
Better yet... why not base it on gcc's stdarg.h; we might want to modify
it to do the check for __STDC__
-Richard
#ifndef _STDARG_H
#define _STDARG_H
typedef char *va_list;
/* Amount of space required in an argument list for an arg of type TYPE.
TYPE may alternatively be an expression whose type is used. */
#define __va_rounded_size(TYPE) \
(((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
#ifndef __sparc__
#define va_start(AP, LASTARG) \
(AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
#else
#define va_start(AP, LASTARG) \
(__builtin_saveregs (), \
AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
#endif
void va_end (va_list); /* Defined in gnulib */
#define va_end(AP)
#define va_arg(AP, TYPE) \
(AP += __va_rounded_size (TYPE), \
*((TYPE *) (AP - __va_rounded_size (TYPE))))
#endif /* _STDARG_H */