/* Test promotion of __fp16 to double as arguments to variadic function. */ /* { dg-do run } */ /* { dg-options "-mfp16-format=ieee" } */ #include #include extern int f (int n, ...); int f (int n, ...) { if (n == 2) { double xx, yy; va_list ap; va_start (ap, n); xx = va_arg (ap, double); yy = va_arg (ap, double); va_end (ap); if (xx == 42.0 && yy == -42.0) return 1; } return 0; } static __fp16 x = 42.0; static __fp16 y = -42.0; int main (void) { if (!f (2, x, y)) abort (); return 0; }