https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69965

--- Comment #1 from Gerhard Steinmetz <gerhard.steinmetz.fort...@t-online.de> 
---
Compiles if abstract "class(tab)" is replaced with extended "class(t)" :


$ cat z2.f90
module m
   type, abstract :: tab
   contains
      procedure(fab), deferred :: f
   end type

   type, extends(tab) :: t
   contains
      procedure :: f
   end type

   abstract interface
      function fab(x) result(z)
         import tab
         class(tab) :: x
         character(*) :: z
      end
   end interface

contains

   function f(x)
      class(t) :: x
      character(1) :: f
      f = 'a'
   end

   subroutine s(x)
      class(t) :: x
      print *, x%f()
   end
end module

Reply via email to