cinrs-core 0.1.0

The C front end behind the cinrs crate: lexer, preprocessor, parser, semantic analysis, code generation
Documentation
/* <stdarg.h> — variable arguments (C99 7.15).
 *
 * `__builtin_va_list` is the one name cinrs knows on its own; it becomes
 * Rust's `core::ffi::VaList`. Everything the standard spells is defined from
 * it here, exactly as GCC's own <stdarg.h> does, so `va_list` and friends are
 * ordinary identifiers in a translation unit that does not include this
 * header.
 *
 * Note that *defining* a variadic function needs Rust 1.99 or later, which is
 * where `c_variadic` was stabilised; declaring and calling one has always
 * worked.
 */
#ifndef _CINRS_STDARG_H
#define _CINRS_STDARG_H

typedef __builtin_va_list va_list;
typedef __builtin_va_list __gnuc_va_list;

#define va_start(ap, parmN) __builtin_va_start(ap, parmN)
#define va_arg(ap, type) __builtin_va_arg(ap, type)
#define va_end(ap) __builtin_va_end(ap)
#define va_copy(dest, src) __builtin_va_copy(dest, src)
#define __va_copy(dest, src) __builtin_va_copy(dest, src)

#endif /* _CINRS_STDARG_H */