Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make the gras.h with cmake.
[simgrid.git] / buildtools / CPACK / tmp / prog_va_copy.c
diff --git a/buildtools/CPACK/tmp/prog_va_copy.c b/buildtools/CPACK/tmp/prog_va_copy.c
new file mode 100644 (file)
index 0000000..d0797ae
--- /dev/null
@@ -0,0 +1,28 @@
+#include <stdlib.h>
+       #include <stdarg.h>
+       #include <string.h>
+       #define DO_VA_COPY(d,s) memcpy((void *)(d), (void *)(s)), sizeof(*(s))
+       void test(char *str, ...)
+       {
+           va_list ap, ap2;
+           int i;
+           va_start(ap, str);
+           DO_VA_COPY(ap2, ap);
+           for (i = 1; i <= 9; i++) {
+               int k = (int)va_arg(ap, int);
+               if (k != i)
+                   abort();
+           }
+           DO_VA_COPY(ap, ap2);
+           for (i = 1; i <= 9; i++) {
+               int k = (int)va_arg(ap, int);
+               if (k != i)
+                   abort();
+           }
+           va_end(ap);
+       }
+       int main(int argc, char *argv[])
+       {
+           test(test, 1, 2, 3, 4, 5, 6, 7, 8, 9);
+           exit(0);
+       }