Blame vms/varargs.h

Packit Service f629e6
/* "varargs.h" -- old style variable argument list manipulation (for VAX) */
Packit Service f629e6
#ifndef __GNUC__
Packit Service f629e6
Packit Service f629e6
 /* Use the system's macros with the system's compiler. */
Packit Service f629e6
#include <varargs.h>
Packit Service f629e6
Packit Service f629e6
#else	/*__GNUC__*/
Packit Service f629e6
Packit Service f629e6
# if defined(__VAX__) || defined(__vax__) || defined(VAX) || defined(vax)
Packit Service f629e6
 /* These macros implement traditional (non-ANSI) varargs for GNU C on VAX */
Packit Service f629e6
Packit Service f629e6
#  if !defined(_VA_LIST) && !defined(_VA_LIST_)
Packit Service f629e6
#   define _VA_LIST
Packit Service f629e6
#   define _VA_LIST_
Packit Service f629e6
typedef char *va_list;
Packit Service f629e6
#  endif
Packit Service f629e6
Packit Service f629e6
#  define va_alist	_varargs
Packit Service f629e6
#  define va_dcl	int va_alist;
Packit Service f629e6
#  define va_start(AP)	AP = (va_list) &va_alist
Packit Service f629e6
#  define va_end(AP)
Packit Service f629e6
Packit Service f629e6
#  define _va_rounded_size(TYPE)	\
Packit Service f629e6
	(((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
Packit Service f629e6
Packit Service f629e6
#  define va_arg(AP,TYPE)		\
Packit Service f629e6
	(AP += _va_rounded_size(TYPE),	\
Packit Service f629e6
		*((TYPE *) (AP - _va_rounded_size(TYPE))))
Packit Service f629e6
Packit Service f629e6
#  if defined(__VMS__) || defined(__vms__) || defined(VMS) || defined(vms)
Packit Service f629e6
 /* VAX C compatability macros */
Packit Service f629e6
#   define va_count(CNT)  vaxc$va_count(&CNT)	/* rtl routine */
Packit Service f629e6
#   define va_start_1(AP,OFFSET)  AP = (va_list) (&va_alist + (OFFSET))
Packit Service f629e6
#  endif /* VMS */
Packit Service f629e6
Packit Service f629e6
# endif /* VAX */
Packit Service f629e6
Packit Service f629e6
#endif	/*__GNUC__*/