[15 Regression]: seg fault on accessing an elemental procedure dummy argument's deferred-length character component
Damian Rouson
damian@archaeologic.codes
Tue Feb 4 19:16:37 GMT 2025
This is now PR 118747 and it has been marked as blocking 68241.
D
On Tue, Feb 4, 2025 at 10:10 AM Damian Rouson <damian@archaeologic.codes> wrote:
>
> I'm attempting to submit the code below to Bugzilla, but the site
> appears to be hanging. I'll try again later. Presumably this should
> be added to the deferred-length character metabug. This code executes
> without error when compiled with gfortran 14.2.0, but seg faults when
> compiled with a recent build of gfortran 15.
>
> Damian
>
> % 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
>
> rouson@rouson-m73 julienne % gfortran all.f90
>
> rouson@rouson-m73 julienne % ./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
>
> rouson@rouson-m73 julienne % gfortran --version
> GNU Fortran (GCC) 15.0.1 20250119 (experimental)
More information about the Fortran
mailing list