Hi!

I meant it in the other testcases too:
While these testcases are dg-do compile only, I think it is better not to
give users bad examples and avoid unnecessary data races in testcases (unless
it is exactly what we want to test).  Perhaps one day we'll do some analysis
and warn about data races...

Tested on x86_64-linux, committed to trunk.

2021-10-21  Jakub Jelinek  <ja...@redhat.com>

        * gfortran.dg/gomp/strictly-structured-block-1.f90: Use call do_work
        instead of x = x + 1 in places where the latter could be a data race.
        * gfortran.dg/gomp/strictly-structured-block-2.f90: Likewise.
        * gfortran.dg/gomp/strictly-structured-block-3.f90: Likewise.
        
--- gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-1.f90.jj   
2021-10-21 10:23:27.544833287 +0200
+++ gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-1.f90      
2021-10-21 11:03:41.146041455 +0200
@@ -9,23 +9,23 @@ program main
 
   !$omp parallel
   block
-    x = x + 1
+    call do_work
   end block
 
   !$omp parallel
   block
-    x = x + 1
+    call do_work
   end block
   !$omp end parallel
 
   !$omp teams
   block
-    x = x + 1
+    call do_work
   end block
 
   !$omp teams
   block
-    x = x + 1
+    call do_work
   end block
   !$omp end teams
 
@@ -42,12 +42,12 @@ program main
 
   !$omp scope
   block
-    x = x + 1
+    call do_work
   end block
 
   !$omp scope
   block
-    x = x + 1
+    call do_work
   end block
   !$omp end scope
 
@@ -75,12 +75,12 @@ program main
 
   !$omp task
   block
-    x = x + 1
+    call do_work
   end block
 
   !$omp task
   block
-    x = x + 1
+    call do_work
   end block
   !$omp end task
 
@@ -130,23 +130,23 @@ program main
 
   !$omp target parallel
   block
-    x = x + 1
+    call do_work
   end block
 
   !$omp target parallel
   block
-    x = x + 1
+    call do_work
   end block
   !$omp end target parallel
 
   !$omp target teams
   block
-    x = x + 1
+    call do_work
   end block
 
   !$omp target teams
   block
-    x = x + 1
+    call do_work
   end block
   !$omp end target teams
 
@@ -176,7 +176,7 @@ program main
   do i = 1, n
      !$omp ordered
      block
-       x = x + 1
+       call do_work
      end block
   end do
 
@@ -184,7 +184,7 @@ program main
   do i = 1, n
      !$omp ordered
      block
-       x = x + 1
+       call do_work
      end block
      !$omp end ordered
   end do
--- gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-2.f90.jj   
2021-10-21 10:23:27.544833287 +0200
+++ gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-2.f90      
2021-10-21 11:05:04.326876447 +0200
@@ -9,16 +9,16 @@ program main
 
   !$omp parallel
   block
-    x = x + 1
+    call do_work
   end block
-  x = x + 1
+  call do_work
   !$omp end parallel ! { dg-error "Unexpected !.OMP END PARALLEL statement" }
 
   !$omp teams
   block
-    x = x + 1
+    call do_work
   end block
-  x = x + 1
+  call do_work
   !$omp end teams ! { dg-error "Unexpected !.OMP END TEAMS statement" }
 
   !$omp masked
@@ -30,9 +30,9 @@ program main
 
   !$omp scope
   block
-    x = x + 1
+    call do_work
   end block
-  x = x + 1
+  call do_work
   !$omp end scope ! { dg-error "Unexpected !.OMP END SCOPE statement" }
 
   !$omp single
@@ -51,9 +51,9 @@ program main
 
   !$omp task
   block
-    x = x + 1
+    call do_work
   end block
-  x = x + 1
+  call do_work
   !$omp end task ! { dg-error "Unexpected !.OMP END TASK statement" }
 
   !$omp target data map(x)
@@ -86,16 +86,16 @@ program main
 
   !$omp target parallel
   block
-    x = x + 1
+    call do_work
   end block
-  x = x + 1
+  call do_work
   !$omp end target parallel ! { dg-error "Unexpected !.OMP END TARGET PARALLEL 
statement" }
 
   !$omp target teams
   block
-    x = x + 1
+    call do_work
   end block
-  x = x + 1
+  call do_work
   !$omp end target teams ! { dg-error "Unexpected !.OMP END TARGET TEAMS 
statement" }
 
   !$omp critical
@@ -116,9 +116,9 @@ program main
   do i = 1, n
      !$omp ordered
      block
-       x = x + 1
+       call do_work
      end block
-     x = x + 1
+     call do_work
      !$omp end ordered ! { dg-error "Unexpected !.OMP END ORDERED statement" }
   end do
 
--- gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-3.f90.jj   
2021-10-21 10:23:27.544833287 +0200
+++ gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-3.f90      
2021-10-21 11:07:21.441956054 +0200
@@ -10,7 +10,7 @@ program main
   !$omp parallel
     !$omp parallel
     block
-      x = x + 1
+      call do_work
     end block
     !$omp end parallel
   !$omp end parallel
@@ -32,7 +32,7 @@ program main
     end block
     x = x + 2
     !$omp section
-    x = x + 4
+    call do_work
   end block
 
   !$omp sections


        Jakub

Reply via email to