http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49213

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[OOP][F2008] gfortran       |[OOP] gfortran rejects
                   |rejects structure           |structure constructor
                   |constructor expression      |expression

--- Comment #2 from janus at gcc dot gnu.org 2011-06-16 19:49:33 UTC ---
(In reply to comment #1)
> Note: Intrinsic assignments to polymorphic variables are forbidden in the
> Fortran 2003 standard, and currently not supported by gfortran, cf. PR 43366.


However, the same error message appears for the following variant (with a
defined assignment), which is valid according to F03:


module m

  type :: S
    integer :: n
  contains
    generic :: assignment (=) => assgn
    procedure :: assgn
  end type

  type :: T
    class(S), allocatable :: x
  end type

contains

  subroutine assgn (a, b)
    class (S), intent (inout) :: a
    class (S), intent (in) :: b
  end subroutine

end module


  use m
  type(S) :: Sobj
  type(T) :: Tobj

  Sobj = S(1)
  Tobj = T(Sobj)

end program 



  Tobj = T(Sobj)
           1
Error: Can't convert TYPE(s) to CLASS(s) at (1)

Reply via email to