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

            Bug ID: 66321
           Summary: [4.9.2/5.1.0/6.0.0] errors allocating allocatable
                    array component of pointer object component
           Product: gcc
           Version: 5.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: damian at sourceryinstitute dot org
  Target Milestone: ---

Possibly this bug is related to Bug 56471 (which is oustanding) and/or Bug
65841 (which has been fixed).  The code listing below demonstrates what appears
to be a rejection of valid code in gfortran versions 4.9.2, 5.1.0, and 6.0.0. 
After commenting the offending line, the resulting code generates a runtime
segmentation fault when the subsequent line attempts automatically allocate the
variable whose explicit source allocation was rejected in the original code.

Both versions of the code compile and execute cleanly with the Cray, Portland
Group, NAG, and Intel compilers.

Damian


localhost:seg-fault rouson$ cat compile-time-error.f90 
type Bar
   integer, allocatable :: a(:)
end type 
type Foo
  type (bar), pointer :: b
end type 
type(Foo) f
allocate(f%b)
allocate(f%b%a,source=[3]) ! Compile-time error
f%b%a = [3] ! Run-time seg fault
end 

localhost:seg-fault rouson$ gfortran compile-time-error.f90 
compile-time-error.f90:9:9:

 allocate(f%b%a,source=[3]) ! Compile-time error
         1
Error: Array specification required in ALLOCATE statement at (1)

localhost:seg-fault rouson$ sed 's/allocate(f%b%a/!allocate(f%b%a/' <
compile-time-error.f90 > run-time-error.f90
localhost:seg-fault rouson$ gfortran run-time-error.f90 

localhost:seg-fault rouson$ ./a.out

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x10ad0ab26
#1  0x10ad0a0c3
#2  0x7fff8a317f19
#3  0x10ad03e5e
#4  0x10ad03ea0
Segmentation fault: 11
localhost:seg-fault rouson$ gfortran --version
GNU Fortran (MacPorts gcc6 6-20150510_0) 6.0.0 20150510 (experimental)
Copyright (C) 2015 Free Software Foundation, Inc.

Reply via email to