]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: [multiple changes]
authorTobias Burnus <burnus@net-b.de>
Sun, 27 Feb 2011 14:29:59 +0000 (15:29 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Sun, 27 Feb 2011 14:29:59 +0000 (15:29 +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: r170541

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

index a8b56da26ac27cc3ada1f8c0eeaed95619a71f8c..eb9cf23bc19df76447b85af0758683e14c63b892 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 e26535eaeb039e22ad7b2d8dcb9e8f8a1eec24e8..3fea927decd1b058831573d335ef99140561a1d4 100644 (file)
@@ -1546,6 +1546,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 d9233e4440e9d913a093b8a5cc2af1822f0ba2d5..c64de6d29ab4588b68e1e5bb9b985969f51f4e11 100644 (file)
@@ -1,3 +1,12 @@
+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..30ff980
--- /dev/null
@@ -0,0 +1,27 @@
+! { 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