view import/llvmdc/cstdarg.di @ 454:283d113d4753

Added generation of the llvm 'sret' parameter attribute where applicable. Fixed some wrong argument handling code when setting parameter attributes. Updated the tango unittest script in the tango patch, does not work yet, all modules don't compile...
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Sat, 02 Aug 2008 02:54:57 +0200
parents cc40db549aea
children
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);