diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/vararg1.d	Wed Oct 24 22:18:06 2007 +0200
@@ -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);
+}