[Bug fortran/43366] [OOP][F2008] Intrinsic assign to polymorphic variable
abenson at caltech dot edu
gcc-bugzilla@gcc.gnu.org
Tue Apr 10 21:06:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43366
Andrew Benson <abenson at caltech dot edu> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |abenson at caltech dot edu
--- Comment #16 from Andrew Benson <abenson at caltech dot edu> 2012-04-10 21:06:13 UTC ---
The following compiles with "-std=f2003" and runs successfully (using gfortran
4.8 r186145) with the "a=b" line in, but if I switch it for the "a%d=b%d" line
I get a "Variable must not be polymorphic in intrinsic assignment at (1) -
check that there is a matching specific subroutine for '=' operator" error:
module testMod
implicit none
public t
type t
integer :: i
end type t
type c
class(t), allocatable :: d
end type c
end module testMod
program testProg
use testMod
implicit none
type(t) :: f
type(c) :: a,b
allocate(b%d,source=f)
b%d%i=12345
a=b !! THIS COMPILES OK
! a%d=b%d !! THIS DOES NOT
write (0,*) a%d%i
write (0,*) b%d%i
end program testProg
Since "d" is polymorphic both should be disallowed with "-std=f2003" (and both
allowed under F2008 I think).
More information about the Gcc-bugs
mailing list