public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "longb at cray dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug fortran/42866]  New: ICE for REDUCTION with ALLOCATABLE array as variable on SECTIONS
Date: Mon, 25 Jan 2010 21:39:00 -0000	[thread overview]
Message-ID: <bug-42866-14710@http.gcc.gnu.org/bugzilla/> (raw)

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


             reply	other threads:[~2010-01-25 21:39 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-25 21:39 longb at cray dot com [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-42866-14710@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).