(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
Walloca-larger-than.c
       1  /* PR middle-end/82063 - issues with arguments enabled by -Wall
       2     { dg-do compile }
       3     { dg-require-effective-target alloca }
       4     { dg-options "-O2 -Walloca-larger-than=0 -Wvla-larger-than=0 -ftrack-macro-expansion=0" } */
       5  
       6  extern void* alloca (__SIZE_TYPE__);
       7  
       8  void sink (void*);
       9  
      10  #define T(x) sink (x)
      11  
      12  void test_alloca (void)
      13  {
      14    /* Verify that alloca(0) is diagnosed even if the limit is zero.  */
      15    T (alloca (0));   /* { dg-warning "argument to .alloca. is zero" } */
      16    T (alloca (1));   /* { dg-warning "argument to .alloca. is too large" } */
      17  }
      18  
      19  void test_vla (unsigned n)
      20  {
      21    /* VLAs smaller than 32 bytes are optimized into ordinary arrays.  */
      22    if (n < 1 || 99 < n)
      23      n = 1;
      24  
      25    char a[n];        /* { dg-warning "argument to variable-length array " } */
      26    T (a);
      27  }