Mercurial > projects > ldc
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 } |