(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr44012.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O -fgcse" } */
       3  
       4  extern void fe ();
       5  
       6  extern int i;
       7  
       8  static inline void
       9  FX (void (*f) ())
      10  {
      11    fe ();
      12    (*f) ();
      13  }
      14  
      15  static inline void
      16  f4 ()
      17  {
      18    for (;;)
      19      switch (i)
      20        {
      21        case 306:
      22        FX (&fe);
      23        break;
      24        default:
      25        return;
      26        }
      27  }
      28  
      29  static inline void
      30  f3 ()
      31  {
      32    f4 ();
      33    for (;;)
      34      switch (i)
      35        {
      36        case 267:
      37        FX (&f4);
      38        break;
      39        default:
      40        return;
      41        }
      42  }
      43  
      44  static inline void
      45  f2 ()
      46  {
      47    f3 ();
      48    while (i)
      49      FX (&f3);
      50  }
      51  
      52  void
      53  f1 ()
      54  {
      55    f2 ();
      56    while (1)
      57      FX (&f2);
      58  }