view runtime/import/llvmdc/cstdarg.di @ 579:20c065c46b38

Basic support for runtime in shared library. Needs to be built with runtime/build-sharedlibs.sh and activated manually by providing -defaultlib=llvmdc-runtime-shared -defaultlib=tango-cc-tango-shared -defaultlib=tango-gc-basic-shared on llvmdc call at the moment. To support D shared libraries in non-D code, we need to remove the main() from libllvmdc-runtime-shared.
author Christian Kamm <kamm incasoftware de>
date Fri, 05 Sep 2008 23:02:18 +0200
parents bebc6099fb89
children 6aaa3d3c1183
line wrap: on
line source

/*
 * vararg support for extern(C) functions
 */

module llvmdc.cstdarg;

// Check for the right compiler
version(LLVMDC)
{
    // OK
}
else
{
    static assert(false, "This module is only valid for LLVMDC");
}

alias void* va_list;

pragma(va_start)
    void va_start(T)(va_list ap, ref T);

pragma(va_arg)
    T va_arg(T)(va_list ap);

pragma(va_end)
    void va_end(va_list args);

pragma(va_copy)
    void va_copy(va_list dst, va_list src);