aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/omp-low.c2
-rw-r--r--libgomp/ChangeLog5
-rw-r--r--libgomp/testsuite/libgomp.fortran/allocatable5.f9017
4 files changed, 29 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ca8d69a..b97384a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/42866
+ * omp-low.c (expand_omp_sections): Only use single_pred if
+ l2_bb is single_pred_p.
+
2010-01-25 Christian Bruel <christian.bruel@st.com>
PR target/42841
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 3170031..bb1a86a 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -4663,7 +4663,7 @@ expand_omp_sections (struct omp_region *region)
l2_bb = region->exit;
if (exit_reachable)
{
- if (single_pred (l2_bb) == l0_bb)
+ if (single_pred_p (l2_bb) && single_pred (l2_bb) == l0_bb)
l2 = gimple_block_label (l2_bb);
else
{
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index a20b497..4b20087 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,8 @@
+2010-01-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/42866
+ * testsuite/libgomp.fortran/allocatable5.f90: New test.
+
2010-01-20 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Test for executability of GFORTRAN.
diff --git a/libgomp/testsuite/libgomp.fortran/allocatable5.f90 b/libgomp/testsuite/libgomp.fortran/allocatable5.f90
new file mode 100644
index 0000000..4180930
--- /dev/null
+++ b/libgomp/testsuite/libgomp.fortran/allocatable5.f90
@@ -0,0 +1,17 @@
+! PR fortran/42866
+! { dg-do run }
+
+program pr42866
+ integer, allocatable :: a(:)
+ allocate (a(16))
+ a = 0
+ !$omp parallel
+ !$omp sections reduction(+:a)
+ a = a + 1
+ !$omp section
+ a = a + 2
+ !$omp end sections
+ !$omp end parallel
+ if (any (a.ne.3)) call abort
+ deallocate (a)
+end