comparison test/vararg1.d @ 55:0ccfae271c45 trunk

[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!
author lindquist
date Wed, 24 Oct 2007 22:18:06 +0200
parents
children 3a784f7790d6
comparison
equal deleted inserted replaced
54:28e99b04a132 55:0ccfae271c45
1 module vararg1;
2
3 import std.c.stdarg;
4
5 extern(C) int add(int n, ...)
6 {
7 va_list ap=void;
8 va_start(ap, n);
9 int r;
10 //for (int i=0; i<n; i++)
11 // r += va_arg!(int)(ap);
12 r = va_arg!(int)(ap);
13 va_end(ap);
14 return r;
15 }
16
17 void main()
18 {
19 int i = add(4,1,2,3,4);
20 assert(i == 10);
21 }