(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
Walloca-2.c
       1  /* { dg-do compile } */
       2  /* { dg-require-effective-target alloca } */
       3  /* { dg-options "-Walloca-larger-than=2000 -O2" } */
       4  
       5  void f (void *);
       6  
       7  void
       8  g1 (int n)
       9  {
      10    void *p;
      11    if (n > 0 && n < 2000)
      12      p = __builtin_alloca (n); // { dg-bogus "unbounded use of 'alloca'" "" }
      13    else
      14      p = __builtin_malloc (n);
      15    f (p);
      16  }
      17  
      18  void
      19  g2 (int n)
      20  {
      21    void *p;
      22    if (n < 2000)
      23      p = __builtin_alloca (n); // { dg-warning "may be too large" }
      24    else
      25      p = __builtin_malloc (n);
      26    f (p);
      27  }
      28  
      29  void
      30  g3 (int n)
      31  {
      32    void *p;
      33    if (n > 0 && n < 3000)
      34      {
      35        p = __builtin_alloca (n); // { dg-warning "may be too large" }
      36      }
      37    else
      38      p = __builtin_malloc (n);
      39    f (p);
      40  }