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

     1  /* PR target/21297 */
     2  typedef __SIZE_TYPE__ size_t;
     3  extern int memcmp (const char *, const char *, size_t);
     4  extern void abort ();
     5  
     6  void
     7  foo (char *x)
     8  {
     9    int i;
    10    for (i = 0; i < 2; i++);
    11    x[i + i] = '\0';
    12  }
    13  
    14  void
    15  bar (char *x)
    16  {
    17    int i;
    18    for (i = 0; i < 2; i++);
    19    x[i + i + i + i] = '\0';
    20  }
    21  
    22  int
    23  main (void)
    24  {
    25    char x[] = "IJKLMNOPQR";
    26    foo (x);
    27    if (memcmp (x, "IJKL\0NOPQR", sizeof x) != 0)
    28      abort ();
    29    x[4] = 'M';
    30    bar (x);
    31    if (memcmp (x, "IJKLMNOP\0R", sizeof x) != 0)
    32      abort ();
    33    return 0;
    34  }