https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91077
ygal klein <ygalklein at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ygalklein at gmail dot com --- Comment #4 from ygal klein <ygalklein at gmail dot com> --- The following code presents a difference (!) between gfortran 8.2 and gfortran 9.1: program test implicit none integer, parameter :: length = 2 real(8), dimension(length) :: a, b integer :: i type point real(8) :: x end type point type points type(point), dimension(:), pointer :: np=>null() end type points type stored integer :: l type(points), pointer :: nfpoint=>null() end type stored type(stored), dimension(:), pointer :: std=>null() allocate(std(1)) allocate(std(1)%nfpoint) allocate(std(1)%nfpoint%np(length)) std(1)%nfpoint%np(1)%x = 0.3d0 std(1)%nfpoint%np(2)%x = 0.3555d0 do i = 1, length write(*, "('std(1)%nfpoint%np(',i1,')%x = ',1e22.14)") i, std(1)%nfpoint%np(i)%x end do do i = 1, length write(*, "('std(1)%nfpoint%np(1:',i1,')%x = ',2e22.14)") i, std(1)%nfpoint%np(1:i)%x end do a = std(1)%nfpoint%np(1:2)%x b = [std(1)%nfpoint%np(1)%x, std(1)%nfpoint%np(2)%x] if (norm2(a - b) .gt. 1d-3) then write(*,*) 'failure' else write(*, *) 'success' end if end program test Running with gfortan-8.2 results with 'success' and running with gfortran-9.1 results with 'failure'. Removing the integer variable 'l' from the type 'stored' makes both versions (8.2 and 9.1) end with 'success' Thanks.