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: r156235
This commit is contained in:
Jakub Jelinek 2010-01-26 10:47:45 +01:00 committed by Jakub Jelinek
parent 667b3d8436
commit 057dd91d0c
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

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

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-20 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Test for executability of GFORTRAN.

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