[Bug fortran/72709] New: Incorrect assignment of allocatable character array used as component of derived type
zmi007 at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Jul 27 12:38:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72709
Bug ID: 72709
Summary: Incorrect assignment of allocatable character array
used as component of derived type
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: zmi007 at gmail dot com
Target Milestone: ---
In the following program the assignment to character array element doesn't work
program read_exp_data
implicit none
type experimental_data_t
integer :: nh = 0
character(len=:), dimension(:), allocatable :: header
end type experimental_data_t
type(experimental_data_t) :: ex
integer :: nh_len
integer :: i
nh_len = 255
ex % nh = 3
allocate(character(len=nh_len) :: ex % header(ex % nh))
ex % header(1) = "#Generated by X"
ex % header(2) = "#from file 'Y'"
ex % header(3) = "# Experimental 4 mg/g"
do i = 1, ex % nh
write(*,*) "header(",i,") = ", ex % header(i)
enddo
end program read_exp_data
I get all 3 header elements = "# Experimental 4 mg/g"
gfortran --version
GNU Fortran (SUSE Linux) 6.1.1 20160707 [gcc-6-branch revision 238088]
---
bug disappears if one replaces appropriate strings with
character(len=255), dimension(:), allocatable :: header
and
allocate(ex % header(ex % nh))
More information about the Gcc-bugs
mailing list