re PR fortran/42866 (ICE for REDUCTION with ALLOCATABLE array as variable on SECTIONS)

PR fortran/42866
	* omp-low.c (expand_omp_sections): Only use single_pred if
	l2_bb is single_pred_p.

	* testsuite/libgomp.fortran/allocatable5.f90: New test.

From-SVN: r156236
This commit is contained in:
Jakub Jelinek 2010-01-26 10:51:23 +01:00 committed by Jakub Jelinek
parent 035d61a840
commit 2a4ce597f1
4 changed files with 29 additions and 1 deletions

View File

@ -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

View File

@ -4606,7 +4606,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
{

View File

@ -1,3 +1,8 @@
2010-01-26 Jakub Jelinek <jakub@redhat.com>
PR fortran/42866
* testsuite/libgomp.fortran/allocatable5.f90: New test.
2010-01-21 Release Manager
* GCC 4.4.3 released.

View File

@ -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