modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/20031231-1.c (about)

     1  extern int f1 (int, void *);
     2  extern int *f2 (void) __attribute__ ((__const__));
     3  extern int f3 (int, void *);
     4  
     5  int
     6  test (int x, char *y, int z)
     7  {
     8    int b = 0;
     9  
    10    if (x < 1024)
    11      {
    12        y[0] = '\0';
    13  
    14        do
    15  	{
    16  	  switch (f1 (x, y + b))
    17  	    {
    18  	    case -1:
    19  	      if (b == 0)
    20  		return -1;
    21  	      else
    22  		return b;
    23  
    24  	    default:
    25  	      b++;
    26  	    }
    27  	}
    28        while (y[b - 1] != '\0' && y[b - 1] != '\n' && b < z);
    29      }
    30    else
    31      {
    32        do
    33  	{
    34  	  switch (f3 (x, y + b))
    35  	    {
    36  	    case -1:
    37  	      if ((*f2 ()) == 4)
    38  		continue;
    39  	      if (b == 0)
    40  		return -1;
    41  	      else
    42  		return b;
    43  
    44  	    default:
    45  	      b++;
    46  	    }
    47  	}
    48        while (y[b - 1] != '\0' && y[b - 1] != '\n' && b < z);
    49      }
    50    return b;
    51  }