- #include <stdarg.h>
- #include <string.h>
- #define DO_VA_COPY(d,s) ${fct}
- 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(void)
- {
- test(\"test\", 1, 2, 3, 4, 5, 6, 7, 8, 9);
- exit(0);
- }"
- )
- try_compile(COMPILE_VA_NULL_VAR
- ${CMAKE_BINARY_DIR}
- ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_va_copy.c
+#include <stdarg.h>
+#include <string.h>
+#define DO_VA_COPY(d,s) ${fct}
+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(void)
+{
+ test(\"test\", 1, 2, 3, 4, 5, 6, 7, 8, 9);
+ exit(0);
+}"