https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90948
Bug ID: 90948
Summary: Polymorphic intrinsic assignment...
Product: gcc
Version: 8.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: jplatas at ull dot edu.es
Target Milestone: ---
Hi
I'm having problem with polymorphic intrinsic assignment.
This version fails the compilation in gfortran.
The message is:
F:\GIT_ILL>gfortran -c example2.f90
example2.f90:38:9:
local%atom(i)=list%atom(i)
1
Error: Nonallocatable variable must not be polymorphic in intrinsic assignment
at (1) - check that there is a matching specific subroutine for '=' operator
Under my opinion it would be ok.
Javier
Program Check
implicit none
!> Type definitions
Type :: Atm_Type
End Type Atm_Type
Type, extends (Atm_type) :: Atm_Std_Type
End Type Atm_Std_Type
Type, extends (Atm_std_type) :: Atm_Ref_Type
End Type Atm_Ref_Type
Type :: AtList_Type
integer:: Natoms
class(Atm_Type), dimension(:), allocatable :: Atom
end Type AtList_Type
!> Variables
type(AtList_Type) :: list
call sub(list)
Contains
Subroutine Sub(List)
! Argument !
type (AtList_Type), intent(in out) :: List
! Local Variables !
integer:: i
type (AtList_Type) :: local
if (List%natoms <= 0 ) return
allocate(local%atom(List%natoms))
do i=1, List%natoms
local%atom(i)=list%atom(i)
end do
End Subroutine Sub
End Program Check