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

     1  /* PR tree-optimization/19828 */
     2  typedef __SIZE_TYPE__ size_t;
     3  extern size_t strlen (const char *s);
     4  extern int strncmp (const char *s1, const char *s2, size_t n);
     5  extern void abort (void);
     6  
     7  const char *a[16] = { "a", "bc", "de", "fgh" };
     8  
     9  int
    10  foo (char *x, const char *y, size_t n)
    11  {
    12    size_t i, j = 0;
    13    for (i = 0; i < n; i++)
    14      {
    15        if (strncmp (x + j, a[i], strlen (a[i])) != 0)
    16          return 2;
    17        j += strlen (a[i]);
    18        if (y)
    19          j += strlen (y);
    20      }
    21    return 0;
    22  }
    23  
    24  int
    25  main (void)
    26  {
    27    if (foo ("abcde", (const char *) 0, 3) != 0)
    28      abort ();
    29    return 0;
    30  }