(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
goacc/
collapse-1.c
       1  /* { dg-skip-if "not yet" { c++ } } */
       2  
       3  int i, j, k;
       4  extern int foo (void);
       5  
       6  void
       7  f1 (void)
       8  {
       9    #pragma acc parallel
      10    #pragma acc loop collapse (2)
      11    for (i = 0; i < 5; i++)
      12      ;					/* { dg-error "not enough perfectly nested" } */
      13    {
      14      for (j = 0; j < 5; j++)
      15        ;
      16    }
      17  }
      18  
      19  void
      20  f2 (void)
      21  {
      22    #pragma acc parallel
      23    #pragma acc loop collapse (2)
      24    for (i = 0; i < 5; i++)
      25      {
      26        {
      27  	{
      28  	  for (j = 0; j < 5; j++)
      29  	    {
      30  	    }
      31  	}
      32        }
      33      }
      34  }
      35  
      36  void
      37  f3 (void)
      38  {
      39    #pragma acc parallel
      40    #pragma acc loop collapse (2)
      41    for (i = 0; i < 5; i++)
      42      {
      43        int k = foo ();			/* { dg-error "not enough perfectly nested" } */
      44        {
      45  	{
      46  	  for (j = 0; j < 5; j++)
      47  	    {
      48  	    }
      49  	}
      50        }
      51      }
      52  }
      53  
      54  void
      55  f4 (void)
      56  {
      57    #pragma acc parallel
      58    #pragma acc loop collapse (2)
      59    for (i = 0; i < 5; i++)
      60      {
      61        {
      62  	for (j = 0; j < 5; j++)
      63  	  ;
      64  	foo ();				/* { dg-error "collapsed loops not perfectly nested before" } */
      65        }
      66      }
      67  }
      68  
      69  void
      70  f5 (void)
      71  {
      72    #pragma acc parallel
      73    #pragma acc loop collapse (2)
      74    for (i = 0; i < 5; i++)
      75      {
      76        {
      77  	for (j = 0; j < 5; j++)
      78  	  ;
      79        }
      80        foo ();				/* { dg-error "collapsed loops not perfectly nested before" } */
      81      }
      82  }
      83  
      84  void
      85  f6 (void)
      86  {
      87    #pragma acc parallel
      88    #pragma acc loop collapse (2)
      89    for (i = 0; i < 5; i++)
      90      {
      91        {
      92  	for (j = 0; j < 5; j++)
      93  	  ;
      94        }
      95      }
      96    foo ();
      97  }