Mercurial > projects > ldc
comparison import/llvmdc/cstdarg.di @ 443:44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Reworked the LLVMDC specific pragmas.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Fri, 01 Aug 2008 00:32:06 +0200 |
parents | |
children | cc40db549aea |
comparison
equal
deleted
inserted
replaced
442:76078c8ab5b9 | 443:44f08170f4ef |
---|---|
1 /* | |
2 * vararg support for extern(C) functions | |
3 */ | |
4 | |
5 module llvmdc.cstdarg; | |
6 | |
7 // Check for the right compiler | |
8 version(LLVMDC) | |
9 { | |
10 // OK | |
11 } | |
12 else | |
13 { | |
14 static assert(false, "This module is only valid for LLVMDC"); | |
15 } | |
16 | |
17 alias void* va_list; | |
18 | |
19 pragma(va_start) | |
20 void va_start(T)(va_list ap, ref T); | |
21 | |
22 pragma(va_arg) | |
23 T va_arg(T)(va_list ap); | |
24 | |
25 pragma(va_intrinsic, "llvm.va_end") | |
26 void va_end(va_list args); | |
27 | |
28 pragma(va_intrinsic, "llvm.va_copy") | |
29 void va_copy(va_list dst, va_list src); |