mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-16 04:43:14 +01:00
52 lines
995 B
D
52 lines
995 B
D
/**
|
|
* D header file for C99.
|
|
*
|
|
* Copyright: Public Domain
|
|
* License: Public Domain
|
|
* Authors: Hauke Duden, Walter Bright
|
|
* Standards: ISO/IEC 9899:1999 (E)
|
|
*/
|
|
module stdc.stdarg;
|
|
|
|
|
|
version( LDC )
|
|
{
|
|
public import ldc.cstdarg;
|
|
}
|
|
version( GNU )
|
|
{
|
|
public import std.c.stdarg;
|
|
}
|
|
else
|
|
{
|
|
alias void* va_list;
|
|
|
|
template va_start( T )
|
|
{
|
|
void va_start( out va_list ap, inout T parmn )
|
|
{
|
|
ap = cast(va_list) ( cast(void*) &parmn + ( ( T.sizeof + int.sizeof - 1 ) & ~( int.sizeof - 1 ) ) );
|
|
}
|
|
}
|
|
|
|
template va_arg( T )
|
|
{
|
|
T va_arg( inout va_list ap )
|
|
{
|
|
T arg = *cast(T*) ap;
|
|
ap = cast(va_list) ( cast(void*) ap + ( ( T.sizeof + int.sizeof - 1 ) & ~( int.sizeof - 1 ) ) );
|
|
return arg;
|
|
}
|
|
}
|
|
|
|
void va_end( va_list ap )
|
|
{
|
|
|
|
}
|
|
|
|
void va_copy( out va_list dest, va_list src )
|
|
{
|
|
dest = src;
|
|
}
|
|
}
|