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

            Bug ID: 116468
           Summary: Segmentation fault at intrinsic assignment to
                    allocatable array component of derived type with kind
                    type parameter
           Product: gcc
           Version: 14.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: damian at archaeologic dot codes
  Target Milestone: ---

A program compiled with gfortran terminates with a segmentation fault at an
intrinsic assignment to an allocatable array component of a derived type with a
kind type parameter.  Please see below.  I tried several workarounds, including
replacing the intrinsic assignment with a type-bound defined assignment, a
non-type-bound defined assignment, and a source allocation.  I also tried
compiling code below with gfortran 12, 13, and 14.  The only workaround that
eliminates the segmentation fault is switching to source allocation.  The code
below terminates normally with the NAG and LLVM Flang (Flang-new) compilers. 

% cat reproducer.f90     
  implicit none

  type foo_t(k)
    integer, kind :: k
    real(k), allocatable :: bar(:)
  end type

  type(foo_t(kind(0.))) foo

  foo%bar = [0.]
end

% gfortran reproducer.f90

% ./a.out                

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

Backtrace for this error:
#0  0x102dfad2f
#1  0x102df9d83
#2  0x194afa583
#3  0x1027c7f4b
zsh: segmentation fault  ./a.out

% gfortran --version        
GNU Fortran (Homebrew GCC 14.1.0_2) 14.1.0

Reply via email to