]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: [multiple changes]
authorTobias Burnus <burnus@net-b.de>
Sun, 27 Feb 2011 14:36:53 +0000 (15:36 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Sun, 27 Feb 2011 14:36:53 +0000 (15:36 +0100)
2011-01-27  Tobias Burnus  <burnus@net-b.de>

        Backport from mainline
        2011-02-26  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47886
        * openmp.c (gfc_resolve_omp_directive): Resolve if()
        condition of OpenMP's task.

2011-01-27  Tobias Burnus  <burnus@net-b.de>

        Backport from mainline
        2011-02-27  Jakub Jelinek  <jakub@redhat.com>

        PR fortran/47886
        * testsuite/libgomp.fortran/task3.f90: New test.

From-SVN: r170542

gcc/fortran/ChangeLog
gcc/fortran/openmp.c
libgomp/ChangeLog
libgomp/testsuite/libgomp.fortran/task3.f90 [new file with mode: 0644]

index 41fc97d058cb51ed3205b21779a4cf7fe6118c9c..e00d9846ae266b1021bfa80bc10de90b4a26b601 100644 (file)
@@ -1,3 +1,12 @@
+2011-01-27  Tobias Burnus  <burnus@net-b.de>
+
+       Backport from mainline
+       2011-02-26  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/47886
+       * openmp.c (gfc_resolve_omp_directive): Resolve if()
+       condition of OpenMP's task.
+
 2011-02-19  Tobias Burnus
 
        PR fortran/47775
index d3c4f2fc7e67a4311cf5d49e6fce4a69e668e467..dbb4ded4da74449a47dd114839e9149967ddbbb1 100644 (file)
@@ -1518,6 +1518,7 @@ gfc_resolve_omp_directive (gfc_code *code, gfc_namespace *ns ATTRIBUTE_UNUSED)
     case EXEC_OMP_PARALLEL_SECTIONS:
     case EXEC_OMP_SECTIONS:
     case EXEC_OMP_SINGLE:
+    case EXEC_OMP_TASK:
       if (code->ext.omp_clauses)
        resolve_omp_clauses (code);
       break;
index d2fe407bbb10679ef8b9bcce84caa5e27abb1bf2..203ae921e4a30097dd72332fa7491d08ea661c55 100644 (file)
@@ -1,3 +1,11 @@
+2011-01-27  Tobias Burnus  <burnus@net-b.de>
+
+       Backport from mainline
+       2011-02-27  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/47886
+       * testsuite/libgomp.fortran/task3.f90: New test.
+
 2011-01-16  Jakub Jelinek  <jakub@redhat.com>
 
        Backport from mainline
diff --git a/libgomp/testsuite/libgomp.fortran/task3.f90 b/libgomp/testsuite/libgomp.fortran/task3.f90
new file mode 100644 (file)
index 0000000..5300b90
--- /dev/null
@@ -0,0 +1,54 @@
+! { dg-do run }
+! { dg-options "-fopenmp" }
+!
+! PR fortran/47886
+!
+! Test case contributed by Bill Long
+
+!  derived from OpenMP test OMP3f/F03_2_7_1d.F90
+program F03_2_7_1d
+   use omp_lib
+   implicit none
+   integer, parameter :: NT = 4
+   integer :: sum = 0
+
+   call omp_set_num_threads(NT); 
+
+   !$omp parallel
+   !$omp task if(omp_get_num_threads() > 0)
+   !$omp atomic
+      sum = sum + 1
+   !$omp end task
+   !$omp end parallel
+   if (sum /= NT) then
+      print *, "FAIL - sum == ", sum, " (expected ", NT, ")"
+      call abort
+   end if
+end program F03_2_7_1d
+! { dg-do run }
+! { dg-options "-fopenmp" }
+!
+! PR fortran/47886
+!
+! Test case contributed by Bill Long
+
+!  derived from OpenMP test OMP3f/F03_2_7_1d.F90
+program F03_2_7_1d
+   use omp_lib
+   implicit none
+   integer, parameter :: NT = 4
+   integer :: sum = 0
+
+   call omp_set_num_threads(NT); 
+
+   !$omp parallel
+   !$omp task if(omp_get_num_threads() > 0)
+   !$omp atomic
+      sum = sum + 1
+   !$omp end task
+   !$omp end parallel
+   if (sum /= NT) then
+      print *, "FAIL - sum == ", sum, " (expected ", NT, ")"
+      call abort
+   end if
+end program F03_2_7_1d