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

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