aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2011-02-26 20:36:41 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2011-02-26 20:36:41 +0100
commitadb3f0936d2f66b8c2aa96f671f5c112f274373f (patch)
tree1550250c5c18ab79e95d3fa018aba9b48caf6e1d /gcc
parent1c379b783e583f7af055a0e0470cbf825488448f (diff)
downloadgcc-adb3f0936d2f66b8c2aa96f671f5c112f274373f.zip
gcc-adb3f0936d2f66b8c2aa96f671f5c112f274373f.tar.gz
gcc-adb3f0936d2f66b8c2aa96f671f5c112f274373f.tar.bz2
re PR fortran/47886 (ICE: OpenMP !$omp task if(omp_get_num_threads() > 0))
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-26 Tobias Burnus <burnus@net-b.de> PR fortran/47886 * gfortran.dg/gomp/task-1.f90: New. From-SVN: r170521
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/openmp.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/gomp/task-1.f9027
4 files changed, 39 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 85cf01f..c6836f7 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+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-26 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/47894
diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c
index 24e32eb..2b70c69 100644
--- a/gcc/fortran/openmp.c
+++ b/gcc/fortran/openmp.c
@@ -1573,6 +1573,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;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5bdfd04..3cb2809 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-02-26 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/47886
+ * gfortran.dg/gomp/task-1.f90: New.
+
2011-02-25 Jie Zhang <jie@codesourcery.com>
* gcc.target/arm/neon-thumb2-move.c: Add
diff --git a/gcc/testsuite/gfortran.dg/gomp/task-1.f90 b/gcc/testsuite/gfortran.dg/gomp/task-1.f90
new file mode 100644
index 0000000..227902c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/gomp/task-1.f90
@@ -0,0 +1,27 @@
+! { dg-do compile }
+! { 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, ")"
+ stop 1;
+ end if
+end program F03_2_7_1d