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

     1  char *e ();
     2  
     3  #define SET \
     4    if (d > *b++) d |= a; \
     5    if (b) b = e(b);
     6  
     7  xxx()
     8  {
     9    int a, d;
    10    char *b, *c;
    11  
    12    while (1) {
    13      while (1) {
    14        while (1) {
    15  	if (a) {
    16  	  switch (a) {
    17  	  case 1:
    18  	    while (1) {
    19  	      SET
    20  		do {
    21  		  SET
    22  		} while (1);
    23  	    }
    24  	  case 2:
    25  	    while (1) {
    26  	      if (d) {
    27  		do {
    28  		  SET
    29  		} while (1);
    30  	      }
    31  	      else {
    32  		do {
    33  		  SET
    34  		} while (1);
    35  	      }
    36  	    }
    37  	  case 3:
    38  	    while (1) {
    39  	      if (d) {
    40  		do {
    41  		  SET
    42  		} while (1);
    43  	      }
    44  	      else {
    45  		do {
    46  		  SET
    47  		} while (1);
    48  	      }
    49  	    }
    50  	  case 4:
    51  	    while (1) {
    52  	      if (d) {
    53  		do {
    54  		  SET
    55  		} while (1);
    56  	      }
    57  	      else {
    58  		do {
    59  		  SET
    60  		} while (1);
    61  	      }
    62  	    }
    63  	  }
    64  	}
    65  	else {
    66  	  switch (a) {
    67  	  case 2:
    68  	    while (1) {
    69  	      if (d) {
    70  		do {
    71  		  SET
    72  		} while (1);
    73  	      }
    74  	      else {
    75  		do {
    76  		  SET
    77  		} while (1);
    78  	      }
    79  	    }
    80  	  case 3:
    81  	    while (1) {
    82  	      if (d) {
    83  		do {
    84  		  SET
    85  		} while (1);
    86  	      }
    87  	      else {
    88  		do {
    89  		  SET
    90  		} while (1);
    91  	      }
    92  	    }
    93  	  case 4:
    94  	    while (1) {
    95  	      if (d) {
    96  		do {
    97  		  SET
    98  		} while (1);
    99  	      }
   100  	      else {
   101  		do {
   102  		  SET
   103  		} while (1);
   104  	      }
   105  	    }
   106  	  }
   107  	}
   108        }
   109      }
   110    }
   111  }