modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20020314-1.c (about)

     1  /* { dg-require-effective-target alloca } */
     2  void f(void * a, double y)
     3  {
     4  }
     5  
     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  
    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  }