https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90506
Bug ID: 90506
Summary: rejects-valid: function with polymorphic return type
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: juergen.reuter at desy dot de
Target Milestone: ---
I don't know whether this already has been reported, it was discussed today
(May 16, 2019) on c.l.f. The following valid code is rejected by gfortran:
13 | call do_stuff(g_maker)
| 1
Error: Actual argument for 'f_maker' must be ALLOCATABLE at (1)
This is the code:
program test_poly
implicit none
type f_t
real :: a
end type f_t
type, extends (f_t) :: g_t
real :: b
end type g_t
call do_stuff(g_maker)
contains
subroutine do_stuff (f_maker)
interface
function f_maker () result (f)
import f_t
class(f_t), allocatable :: f
end function f_maker
end interface
class(f_t), allocatable :: f
f = f_maker()
end subroutine do_stuff
function g_maker () result (g)
class(f_t), allocatable :: g
g = g_t(a=1.,b=1.)
end function g_maker
end program test_poly