(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
pr81908.c
       1  /* PR 81908 - FAIL: gfortran.dg/alloc_comp_auto_array_2.f90 -O3 -g -m32
       2     { dg-do compile }
       3     { dg-options "-O2 -Wall" } */
       4  
       5  #define SIZE_MAX __SIZE_MAX__
       6  typedef __SIZE_TYPE__ size_t;
       7  
       8  void f0 (char *d, const char *s, size_t n)
       9  {
      10    if (n > 0 && n <= SIZE_MAX / 2 - 1)
      11      n = 0;
      12  
      13    __builtin_memcpy (d, s, n);
      14  }
      15  
      16  void f1 (char *d, const char *s, size_t n)
      17  {
      18    if (n > 0 && n <= SIZE_MAX / 2)
      19      n = 0;
      20  
      21    __builtin_memcpy (d, s, n);   /* { dg-bogus "\\\[-Wstringop-overflow=]" } */
      22  }
      23  
      24  void f2 (char *d, const char *s, size_t n)
      25  {
      26    if (n > 0 && n <= SIZE_MAX / 2 + 1)
      27      n = 0;
      28  
      29    __builtin_memcpy (d, s, n);
      30  }
      31  
      32  void f3 (char *d, const char *s, size_t n)
      33  {
      34    if (n > 0 && n <= SIZE_MAX - 1)
      35      n = 0;
      36  
      37    __builtin_memcpy (d, s, n);   /* { dg-bogus "\\\[-Wstringop-overflow=]" } */
      38  }
      39  
      40  void f4 (char *d, const char *s, size_t n)
      41  {
      42    if (n > 0 && n <= SIZE_MAX)
      43      n = 0;
      44  
      45    __builtin_memcpy (d, s, n);
      46  }