123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /* PR middle-end/36506 */
- extern void abort (void);
- int
- main (void)
- {
- int sum = 0, prod = 1;
- #pragma omp parallel
- #pragma omp sections reduction (+:sum)
- {
- #pragma omp section
- sum += 2;
- #pragma omp section
- sum += 2;
- #pragma omp section
- sum += 2;
- }
- if (sum != 6)
- abort ();
- sum = 0;
- #pragma omp parallel sections reduction (+:sum)
- {
- #pragma omp section
- sum += 2;
- #pragma omp section
- sum += 2;
- #pragma omp section
- sum += 2;
- }
- if (sum != 6)
- abort ();
- sum = 0;
- #pragma omp parallel
- #pragma omp sections reduction (+:sum) reduction (*:prod)
- {
- #pragma omp section
- {
- sum += 2;
- prod *= 2;
- }
- #pragma omp section
- {
- sum += 2;
- prod *= 2;
- }
- #pragma omp section
- {
- sum += 2;
- prod *= 2;
- }
- }
- if (sum != 6 || prod != 8)
- abort ();
- sum = 0;
- prod = 1;
- #pragma omp parallel sections reduction (+:sum) reduction (*:prod)
- {
- #pragma omp section
- {
- sum += 2;
- prod *= 2;
- }
- #pragma omp section
- {
- sum += 2;
- prod *= 2;
- }
- #pragma omp section
- {
- sum += 2;
- prod *= 2;
- }
- }
- if (sum != 6 || prod != 8)
- abort ();
- return 0;
- }
|