public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/42866]  New: ICE for REDUCTION with ALLOCATABLE array as variable on SECTIONS
@ 2010-01-25 21:39 longb at cray dot com
  2010-01-26  9:15 ` [Bug fortran/42866] " jakub at gcc dot gnu dot org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: longb at cray dot com @ 2010-01-25 21:39 UTC (permalink / raw)
  To: gcc-bugs

For this test case:

program F03_2_9_3_6_2c
! derived from OpenMP test omp3f/F03_2_9_3_6_2c.f90
! REFERENCES
!     OpenMP 3.0, p. 100, lines 10-12
!     OpenMP 3.0, p. 316, lines 18-22
   use omp_lib
   implicit none
   integer, parameter :: NT = 4
   integer :: thread_num1, thread_num2, thread_num3
   integer, allocatable :: thread_num_sums(:)
   integer :: i

   call omp_set_dynamic(.false.)
   call omp_set_num_threads(NT)

   allocate(thread_num_sums(NT))
   thread_num_sums = 0

   !$omp parallel 
      !$omp sections reduction(+:thread_num_sums)
         !$omp section
            thread_num_sums = omp_get_thread_num()
            thread_num1 = omp_get_thread_num()
         !$omp section
            thread_num_sums = omp_get_thread_num()
            thread_num2 = omp_get_thread_num()
         !$omp section
            thread_num_sums = omp_get_thread_num()
            thread_num3 = omp_get_thread_num()
      !$omp end sections
   !$omp end parallel

   do i = 1, NT
      if (thread_num_sums(i) /= thread_num1+thread_num2+thread_num3) then
         write (*,fmt="('FAIL - thread_num_sums(',i2, ') == ',i10,  &
                ' (expected',i2,')')") &
                i, thread_num_sums(i), thread_num1+thread_num2+thread_num3
                                                                     else
         write (*,fmt="('thread',i2,'  thread_num_sums(i) = ',i2)") &
                                 i, thread_num_sums(i)
      end if
   end do
end program F03_2_9_3_6_2c

the compiler aborts:

> gfortran -fopenmp test.f90
test.f90: In function 'f03_2_9_3_6_2c':
test.f90:20: internal compiler error: in single_pred_edge, at basic-block.h:658
Please submit a full bug report,
with preprocessed source if appropriate.


Additional comment from the OpenMP testers:

The GNU gfortran compiler gets an internal error when compiling this
test case when the REDUCTION appears on a SECTIONS.

The OpenMP API version 3 (May 2008) p. 316 lines 18-20 states:

"In Version 3.0, Fortran allocatable arrays may appear in ...
 reduction ... clauses."

The API also states on p. 100 line 10-23:

"An original list item with the ALLOCATABLE attribute must be in the 
 allocated state at entry to the construct containing the reduction clause.
 Additionally, the list item must not be deallocated and/or allocated
 within the region."


-- 
           Summary: ICE for REDUCTION with ALLOCATABLE array as variable on
                    SECTIONS
           Product: gcc
           Version: 4.4.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: longb at cray dot com
 GCC build triplet: x86_64-suse-linux
  GCC host triplet: x86_64-suse-linux
GCC target triplet: x86_64-suse-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42866


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-04-20 11:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-25 21:39 [Bug fortran/42866] New: ICE for REDUCTION with ALLOCATABLE array as variable on SECTIONS longb at cray dot com
2010-01-26  9:15 ` [Bug fortran/42866] " jakub at gcc dot gnu dot org
2010-01-26  9:48 ` jakub at gcc dot gnu dot org
2010-01-26  9:52 ` jakub at gcc dot gnu dot org
2010-01-26  9:56 ` jakub at gcc dot gnu dot org
2010-04-20 11:27 ` jakub at gcc dot gnu dot org
2010-04-20 11:33 ` jakub at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).