(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c/
reduction-5.c
       1  /* PR middle-end/36506 */
       2  
       3  extern void abort (void);
       4  
       5  int
       6  main (void)
       7  {
       8    int sum = 0, prod = 1;
       9  #pragma omp parallel
      10    #pragma omp sections reduction (+:sum)
      11      {
      12      #pragma omp section
      13        sum += 2;
      14      #pragma omp section
      15        sum += 2;
      16      #pragma omp section
      17        sum += 2;
      18      }
      19    if (sum != 6)
      20      abort ();
      21    sum = 0;
      22  #pragma omp parallel sections reduction (+:sum)
      23    {
      24    #pragma omp section
      25      sum += 2;
      26    #pragma omp section
      27      sum += 2;
      28    #pragma omp section
      29      sum += 2;
      30    }
      31    if (sum != 6)
      32      abort ();
      33    sum = 0;
      34  #pragma omp parallel
      35    #pragma omp sections reduction (+:sum) reduction (*:prod)
      36      {
      37      #pragma omp section
      38        {
      39  	sum += 2;
      40  	prod *= 2;
      41        }
      42      #pragma omp section
      43        {
      44  	sum += 2;
      45  	prod *= 2;
      46        }
      47      #pragma omp section
      48        {
      49  	sum += 2;
      50  	prod *= 2;
      51        }
      52      }
      53    if (sum != 6 || prod != 8)
      54      abort ();
      55    sum = 0;
      56    prod = 1;
      57  #pragma omp parallel sections reduction (+:sum) reduction (*:prod)
      58    {
      59    #pragma omp section
      60      {
      61        sum += 2;
      62        prod *= 2;
      63      }
      64    #pragma omp section
      65      {
      66        sum += 2;
      67        prod *= 2;
      68      }
      69    #pragma omp section
      70      {
      71        sum += 2;
      72        prod *= 2;
      73      }
      74    }
      75    if (sum != 6 || prod != 8)
      76      abort ();
      77    return 0;
      78  }