1 /* { dg-require-effective-target alloca } */
f(void * a,double y)2 void f(void * a, double y)
3 {
4 }
5 
g(double a,double b,double c,double d)6 double g (double a, double b, double c, double d)
7 {
8   double x, y, z;
9   void *p;
10 
11   x = a + b;
12   y = c * d;
13 
14   p = alloca (16);
15 
16   f(p, y);
17   z = x * y * a;
18 
19   return z + b;
20 }
21 
main()22 main ()
23 {
24   double a, b, c, d;
25   a = 1.0;
26   b = 0.0;
27   c = 10.0;
28   d = 0.0;
29 
30   if (g (a, b, c, d) != 0.0)
31     abort ();
32 
33   if (a != 1.0 || b != 0.0 || c != 10.0 || d != 0.0)
34     abort ();
35 
36   exit (0);
37 }
38