diff druntime/import/stdc/stdarg.d @ 760:6f33b427bfd1

Seems like hg ignores .di files, so I missed a bunch of stuff. complete druntime should be there now :)
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Wed, 12 Nov 2008 00:19:18 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/druntime/import/stdc/stdarg.d	Wed Nov 12 00:19:18 2008 +0100
@@ -0,0 +1,51 @@
+/**
+ * D header file for C99.
+ *
+ * Copyright: Public Domain
+ * License:   Public Domain
+ * Authors:   Hauke Duden, Walter Bright
+ * Standards: ISO/IEC 9899:1999 (E)
+ */
+module stdc.stdarg;
+
+
+version( LDC )
+{
+    public import ldc.cstdarg;
+}
+version( GNU )
+{
+    public import std.c.stdarg;
+}
+else
+{
+    alias void* va_list;
+
+    template va_start( T )
+    {
+        void va_start( out va_list ap, inout T parmn )
+        {
+            ap = cast(va_list) ( cast(void*) &parmn + ( ( T.sizeof + int.sizeof - 1 ) & ~( int.sizeof - 1 ) ) );
+        }
+    }
+
+    template va_arg( T )
+    {
+        T va_arg( inout va_list ap )
+        {
+            T arg = *cast(T*) ap;
+            ap = cast(va_list) ( cast(void*) ap + ( ( T.sizeof + int.sizeof - 1 ) & ~( int.sizeof - 1 ) ) );
+            return arg;
+        }
+    }
+
+    void va_end( va_list ap )
+    {
+
+    }
+
+    void va_copy( out va_list dest, va_list src )
+    {
+        dest = src;
+    }
+}