1  /* PR middle-end/70680 */
       2  
       3  int v;
       4  
       5  void
       6  f1 (void)
       7  {
       8    int i = 0;
       9  #pragma omp task default(shared) if(0)
      10    {
      11  #pragma omp simd
      12      for (i = 0; i < 100; i++)
      13        ;
      14      v = i;
      15    }
      16    if (i != 100)
      17      __builtin_abort ();
      18  }
      19  
      20  void
      21  f2 (void)
      22  {
      23    int i = 0;
      24  #pragma omp task default(shared) if(0)
      25    {
      26  #pragma omp simd
      27      for (i = 0; i < 100; i++)
      28        ;
      29    }
      30    if (i != 100)
      31      __builtin_abort ();
      32  }
      33  
      34  void
      35  f3 (void)
      36  {
      37    int i = 0;
      38  #pragma omp task default(shared) if(0)
      39    {
      40  #pragma omp simd linear(i: 1)
      41      for (i = 0; i < 100; i++)
      42        ;
      43      v = i;
      44    }
      45    if (i != 100)
      46      __builtin_abort ();
      47  }
      48  
      49  void
      50  f4 (void)
      51  {
      52    int i = 0;
      53  #pragma omp task default(shared) if(0)
      54    {
      55  #pragma omp simd linear(i: 1)
      56      for (i = 0; i < 100; i++)
      57        ;
      58    }
      59    if (i != 100)
      60      __builtin_abort ();
      61  }
      62  
      63  int
      64  main ()
      65  {
      66    f1 ();
      67    if (v++ != 100)
      68      __builtin_abort ();
      69    f2 ();
      70    f3 ();
      71    if (v++ != 100)
      72      __builtin_abort ();
      73    f4 ();
      74    return 0;
      75  }