1  /* { dg-options "-O2" } */
       2  
       3  void (*fn) (void);
       4  
       5  volatile int v;
       6  
       7  __attribute__((noreturn)) void
       8  fn0 (void)
       9  {
      10    __builtin_exit (0);
      11  }
      12  
      13  void
      14  fn1 (void)
      15  {
      16  }
      17  
      18  __attribute__((noinline, noclone)) void
      19  setfn (void (*x) (void))
      20  {
      21    fn = x;
      22  }
      23  
      24  int
      25  main ()
      26  {
      27    int i;
      28    if (v < 1)
      29      setfn (fn0);
      30    else
      31      setfn (fn1);
      32    fn ();
      33    return 0;
      34  }