https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90506
Dominique d'Humieres <dominiq at lps dot ens.fr> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P4
Status|UNCONFIRMED |NEW
Last reconfirmed| |2019-05-17
Target Milestone|--- |7.5
Ever confirmed|0 |1
--- Comment #1 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
Confirmed from GCC7 up to trunk (10.0). Assignment to an allocatable
polymorphic variable is not supported on earlier versions.
as suggested at
https://groups.google.com/forum/#!topic/comp.lang.fortran/Phl5wkOoW3Q
the test compiles with the following changes
--- pr90506.f90 2019-05-17 13:47:48.000000000 +0200
+++ pr90506_db.f90 2019-05-17 13:58:43.000000000 +0200
@@ -17,24 +17,24 @@ contains
subroutine do_stuff (f_maker)
interface
- function f_maker () result (f)
+ subroutine f_maker (f)
import f_t
class(f_t), allocatable :: f
- end function f_maker
+ end subroutine f_maker
end interface
class(f_t), allocatable :: f
- f = f_maker()
+ call f_maker (f) !<---
end subroutine do_stuff
- function g_maker () result (g)
+ subroutine g_maker (g)
class(f_t), allocatable :: g
- g = g_t(a=1.,b=1.)
+ allocate( g, source= g_t( a=1.0, b=1.0 ) ) !<--- [B] no error
- end function g_maker
+ end subroutine g_maker
end program test_poly