1 // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94777
2 // { dg-additional-options "-fmain -funittest" }
4 // { dg-skip-if "needs gcc/config.d" { ! d_runtime } }
6 void testVariadic(T)(int nargs, ...)
8 import core.stdc.stdarg;
11 auto arg = va_arg!T(_argptr);
12 static if (__traits(compiles, arg.value))
14 assert(arg.value == i);
16 else static if (__traits(compiles, arg[0]))
23 assert(arg == T.init);
28 /******************************************/
40 auto a0 = Destructor(0);
41 auto a1 = Destructor(1);
42 auto a2 = Destructor(2);
43 static assert(!__traits(compiles, testVariadic!Destructor(3, a0, a1, a2)));
45 assert(Destructor.count == 3);