https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116706
Bug ID: 116706 Summary: Unable to fill allocatable array component of a derived type instance in a pointer array within a derived type Product: gcc Version: 14.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: baradi09 at gmail dot com Target Milestone: --- * Issue: GIVEN a derived type containing a pointer array of a derived type with an allocatable array component WHEN the pointer array is allocated and an array is assigned to the allocatable array component of the first element THEN the program segfaults (or gives a dubious error message when compiled in debug mode) * Minimal working example program testprog implicit none type :: data_node integer, allocatable :: data(:) end type data_node type :: data_list type(data_node), pointer :: nodes(:) => null() end type data_list type(data_list) :: datalist allocate(datalist%nodes(3)) datalist%nodes(1)%data = [1, 2, 3] end program testprog * Compiling gfortran -Og -g3 -fbounds-check ~/ramdisk/bugdemo.f90 * Observed behavior > ./a.out At line 14 of file [...]/bugdemo.f90 Fortran runtime error: Array bound mismatch for dimension 1 of array 'datalist' (1/3) Error termination. Backtrace: #0 0x55e596dc0344 in testprog at [...]/bugdemo.f90:14 #1 0x55e596dc0371 in main at [...]/bugdemo.f90:16 * Expected behavior Code should run through without problems * Notes - when the allocatable component data is a scalar, and not an array (and the assignment is changed accordingly), the program runs as expected - when the array "nodes(:)" is turned into an allocatable array, the program runs as expected. - when an array similar to "nodes(:)" is created outside of a derived type as a stand-alone array, the program runs as expected.