https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118747
Bug ID: 118747
Summary: [15 Regression]: seg fault on accessing an elemental
procedure dummy argument's deferred-length componeent
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: damian at archaeologic dot codes
Target Milestone: ---
% cat all.f90
implicit none
type string_t
character(len=:), allocatable :: string_
end type
call check_allocation([foo()])
contains
type(string_t) function foo()
foo%string_ = "foo"
end function
elemental subroutine check_allocation(string)
type(string_t), intent(in) :: string
if (.not. allocated(string%string_)) error stop "unallocated"
end subroutine
end
% gfortran all.f90
% ./a.out
a.out(64876,0x1eeb90f40) malloc: *** error for object 0x600000bd8030: pointer
being freed was not allocated
a.out(64876,0x1eeb90f40) malloc: *** set a breakpoint in malloc_error_break to
debug
Program received signal SIGABRT: Process abort signal.
Backtrace for this error:
#0 0x1031a2b63
#1 0x1031a1ae3
#2 0x186d72583
#3 0x186d41c1f
#4 0x186c4ea2f
#5 0x186b5edc3
#6 0x186b6242f
#7 0x186b7c493
#8 0x102b33d57
#9 0x102b33e5b
zsh: abort ./a.out
% gfortran --version
GNU Fortran (GCC) 15.0.1 20250119 (experimental)