(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
981019-1.c
       1  extern int f2(void);
       2  extern int f3(void);
       3  extern void f1(void);
       4  
       5  void
       6  ff(int fname, int part, int nparts)
       7  {
       8    if (fname)  /* bb 0 */
       9      {
      10        if (nparts)  /* bb 1 */
      11  	f1();  /* bb 2 */
      12      }
      13    else
      14      fname = 2; /* bb 3  */
      15  
      16    /* bb 4 is the branch to bb 10
      17       (bb 10 is physically at the end of the loop) */
      18    while (f3() /* bb 10 */)
      19      {
      20        if (nparts /* bb 5 */ && f2() /* bb 6 */)
      21  	{
      22  	  f1();  /* bb 7 ... */
      23  	  nparts = part;
      24  	  if (f3())  /* ... bb 7 */
      25  	    f1();  /* bb 8 */
      26  	  f1(); /* bb 9 */
      27  	  break;
      28  	}
      29      }
      30  
      31    if (nparts)  /* bb 11 */
      32      f1(); /* bb 12 */
      33    return; /* bb 13 */
      34  }
      35  
      36  int main(void)
      37  {
      38    ff(0, 1, 0);
      39    return 0;
      40  }
      41  
      42  int f3(void) { static int x = 0; x = !x; return x; }
      43  void f1(void) { abort(); }
      44  int f2(void) { abort(); }