1  /* { dg-do compile } */
       2  /* { dg-options "-fopenmp" } */
       3  
       4  int i, j;
       5  
       6  void
       7  f1 (void)
       8  {
       9    #pragma omp for linear (i:1)	/* { dg-error "iteration variable .i. should not be linear" } */
      10    for (i = 0; i < 32; i++)
      11      ;
      12  }
      13  
      14  void
      15  f2 (void)
      16  {
      17    #pragma omp distribute parallel for linear (i:1)	/* { dg-error ".linear. is not valid for .#pragma omp distribute parallel for." } */
      18    for (i = 0; i < 32; i++)
      19      ;
      20  }
      21  
      22  void
      23  f3 (void)
      24  {
      25    #pragma omp parallel for linear (i:1) collapse(1)	/* { dg-error "iteration variable .i. should not be linear" } */
      26    for (i = 0; i < 32; i++)
      27      ;
      28  }
      29  
      30  void
      31  f4 (void)
      32  {
      33    #pragma omp for linear (i:1) linear (j:2) collapse(2)	/* { dg-error "iteration variable .i. should not be linear" } */
      34    for (i = 0; i < 32; i++)				/* { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } .-1 } */
      35      for (j = 0; j < 32; j+=2)
      36        ;
      37  }
      38  
      39  void
      40  f5 (void)
      41  {
      42    #pragma omp target teams distribute parallel for linear (i:1) linear (j:2) collapse(2)	/* { dg-error ".linear. is not valid for .#pragma omp target teams distribute parallel for." } */
      43    for (i = 0; i < 32; i++)
      44      for (j = 0; j < 32; j+=2)
      45        ;
      46  }
      47  
      48  void
      49  f6 (void)
      50  {
      51    #pragma omp parallel for linear (i:1) collapse(2) linear (j:2)	/* { dg-error "iteration variable .i. should not be linear" } */
      52    for (i = 0; i < 32; i++)						/* { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } .-1 } */
      53      for (j = 0; j < 32; j+=2)
      54        ;
      55  }
      56  
      57  #pragma omp declare target to (i, j, f2)