! { dg-do run } ! ! Test the fix for PR81447 in which a vtable was not being created ! in the module 'm' so that x->vptr in 's' did not have the same ! value as that in 'p'. ! ! Contributed by Mat Cross ! Module m Type :: t integer :: i End Type End Module Program p Use m Class (t), Allocatable :: x Interface Subroutine s(x) Use m Class (t), Allocatable :: x End Subroutine End Interface Call s(x) Select Type (x) Type Is (t) Continue Class Is (t) STOP 1 Class Default STOP 2 End Select ! Print *, 'ok' End Program Subroutine s(x) Use m, Only: t Implicit None Class (t), Allocatable :: x Allocate (t :: x) End Subroutine