[svn r59] Added support for C-style variadic functions. Currently only works on x86, x86-64 va_arg is broken in LLVM 2.1. PPC and PPC64 unknown.

Updates to runtime. Rebuild!
This commit is contained in:
Tomas Lindquist Olsen
2007-10-24 22:18:06 +02:00
parent 039bc0880d
commit 152e229329
13 changed files with 324 additions and 114 deletions

21
test/vararg1.d Normal file
View File

@@ -0,0 +1,21 @@
module vararg1;
import std.c.stdarg;
extern(C) int add(int n, ...)
{
va_list ap=void;
va_start(ap, n);
int r;
//for (int i=0; i<n; i++)
// r += va_arg!(int)(ap);
r = va_arg!(int)(ap);
va_end(ap);
return r;
}
void main()
{
int i = add(4,1,2,3,4);
assert(i == 10);
}