https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80945
--- Comment #1 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
1. write also fails (no surprise there)
2. ca is OK, ca(1:3) is not.
$ cat u.f90
program main
implicit none
integer:: i
integer, parameter:: N = 10
character(len=:), dimension(:),allocatable:: ca
character(len=50):: buffer
allocate(character(len=N):: ca(3))
buffer = "foo bar xyzzy"
ca(1) = "foo"
ca(2) = "bar"
ca(3) = "xyzzy"
write (*, '(3A5)') ca
write (*, '(3A5)') ca(1:3)
end program
$ gfortran u.f90 && ./a.out
foo bar xyzzy
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x7f38e528406f in ???
#1 0x7f38e5384440 in ???
#2 0x7f38e5eeb67c in formatted_transfer_scalar_write
at ../../../gcc-7/libgfortran/io/transfer.c:2059
#3 0x7f38e5eeb81c in formatted_transfer
at ../../../gcc-7/libgfortran/io/transfer.c:2279
#4 0x400d03 in ???
#5 0x400d55 in ???
#6 0x7f38e526f540 in ???
#7 0x400839 in ???
at ../sysdeps/x86_64/start.S:120
#8 0xffffffffffffffff in ???
Speicherzugriffsfehler (Speicherabzug geschrieben)