https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65792
Bug ID: 65792 Summary: allocation of scalar elemental function with structure constructor fails Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: dominiq at lps dot ens.fr The following test (extracted from the extended test in pr61831 comment 41) program main implicit none integer, parameter :: n = 2 type :: string_t character(LEN=1), dimension(:), allocatable :: chars end type string_t type :: string_container_t type(string_t) :: comp end type string_container_t type(string_t) :: prt_in, tmp, tmpa(n) type(string_container_t) :: tmpc, tmpca(n) integer :: i, j, k do i=1,16 ! scalar elemental function with structure constructor prt_in = string_t(["D"]) tmpc = new_prt_spec2 (string_container_t(prt_in)) deallocate (prt_in%chars) deallocate(tmpc%comp%chars) end do contains impure elemental function new_prt_spec2 (name) result (prt_spec) type(string_container_t), intent(in) :: name type(string_container_t) :: prt_spec prt_spec = name end function new_prt_spec2 end program main fails at run time with a.out(88248,0x7fff7a4fc300) malloc: *** mach_vm_map(size=18446603339116310528) failed (error code=3) *** error: can't allocate region *** set a breakpoint in malloc_error_break to debug Program received signal SIGSEGV: Segmentation fault - invalid memory reference. For 4.6 up to 4.9.0, the failure is of the kind a.out(45086) malloc: *** error for object 0x100201010: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug