!RUN: %flang_fc1 -fdebug-dump-symbols %s 2>&1 | FileCheck %s !CHECK: DerivedType scope: b size=4048 alignment=8 instantiation of b sourceRange=62 bytes !CHECK: DerivedType scope: e size=4080 alignment=8 instantiation of e sourceRange=48 bytes !CHECK: DerivedType scope: size=4048 alignment=8 instantiation of b(k=4_4) sourceRange=0 bytes !CHECK: DerivedType scope: size=4080 alignment=8 instantiation of e(k=4_4) sourceRange=0 bytes !CHECK: DerivedType scope: size=4048 alignment=8 instantiation of b(k=4_4) sourceRange=0 bytes !CHECK: DerivedType scope: size=4080 alignment=8 instantiation of e(k=4_4) sourceRange=0 bytes !CHECK: DerivedType scope: size=4048 alignment=8 instantiation of b(k=4_4) sourceRange=0 bytes !CHECK: DerivedType scope: size=4048 alignment=8 instantiation of b(k=4_4) sourceRange=0 bytes !CHECK: DerivedType scope: size=4080 alignment=8 instantiation of e(k=4_4) sourceRange=0 bytes !CHECK: DerivedType scope: size=4048 alignment=8 instantiation of b(k=4_4) sourceRange=0 bytes module noPDTs type :: b integer::d1 type (e),allocatable::n integer::dd1(1000) end type type,extends(b) :: e integer::d2 character(:),allocatable::c end type contains subroutine alloc(d) class (b),allocatable :: d allocate(e::d) end subroutine alloc subroutine s1 class (b),allocatable :: v call alloc(v) deallocate(v) end end module PDTs type :: b(k) integer, kind :: k integer(k)::d1 type(e(k)),allocatable::n integer::dd1(1000) end type type,extends(b) :: e integer::d2 character(:),allocatable::c end type contains subroutine alloc(d) class(b(kind(0))),allocatable :: d allocate(e(kind(0))::d) end subroutine alloc subroutine s2 class(b(kind(0))),allocatable :: v call alloc(v) deallocate(v) end end use noPDTS, only: s1 use PDTS, only: s2 call s1 call s2 print *, 'ok' end