1  /* PR69569 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O3" } */
       4  /* { dg-require-effective-target indirect_jumps } */
       5  
       6  #include <setjmp.h>
       7  
       8  jmp_buf buf;
       9  
      10  struct str {
      11      int Count;
      12  };
      13  int fun2(struct str *p1)
      14  {
      15      int i = 1;
      16      while (1) {
      17  	setjmp(buf);
      18  	break;
      19      }
      20      for (; i;) {
      21  	i = 0;
      22  	for (; i < (p1 ? p1->Count : 1); i++)
      23  	  fun2(p1);
      24      }
      25      return 1;
      26  }