https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65795

            Bug ID: 65795
           Summary: Segfault (invalid write) for ALLOCATE statement
                    involving COARRAYS
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org

Created attachment 35345
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35345&action=edit
Long test case

The program below fails with a segfault at run time. The segfault is in the
ALLOCATE line. Valgrind talks about:

     Invalid write of size 8
        at 0x40075F: MAIN__ (test.f90:16)

It fails here with both -fcoarray=single and -fcoarray=lib and with GCC 4.8,
4.9 and 5. At a glance, the original dump looks okay, but I likely missed
something.

Attachment: Some longer version; the idea was to use it for testing that
reallocation is properly done for coarrays. It still needs some refinement -
after the main bug has been fixed.

------------<cut>----------------
! Compile with -fcoarray=single or -fcoarray=lib
use iso_c_binding, only: c_intptr_t, c_loc
implicit none

type t2
  integer, allocatable :: x
end type t2

type t3
  type(t2), allocatable :: caf[:]
end type t3

type(t3), save, target :: c, d
integer :: stat

allocate(c%caf[*], stat=stat)
end

Reply via email to