! { dg-do compile } ! ! PR 44616: [OOP] ICE if CLASS(foo) is used before its definition ! ! Contributed by bd satish module factory_pattern implicit none type First_Factory character(len=20) :: factory_type class(Connection), pointer :: connection_type contains end type First_Factory type, abstract :: Connection contains procedure(generic_desc), deferred :: description end type Connection abstract interface subroutine generic_desc(self) import ! Required, cf. PR 44614 class(Connection) :: self end subroutine generic_desc end interface end module factory_pattern