! { dg-do compile }
! { dg-options "-finit-derived -finit-local-zero -fdump-tree-original" }
!
! Test initializers for BT_CLASS components/variables with -finit-derived.
!
implicit none
type :: ty1
  integer :: ival
  real    :: rval
end type
type :: ty2
  type(ty1)               :: bt
  type(ty1), allocatable  :: bt_alloc
  type(ty1), pointer      :: bt_ptr
  class(ty1), allocatable :: class_alloc
  class(ty1), pointer     :: class_ptr
end type
type(ty2) basic
class(ty1), allocatable :: calloc
print *, basic%bt%ival
print *, calloc%ival
end
! { dg-final { scan-tree-dump-times "\.ival *= *0" 1 "original" } }
! { dg-final { scan-tree-dump-times "\.rval *= *0" 1 "original" } }
! { dg-final { scan-tree-dump-times "\.bt_ptr *= *0" 1 "original" } }
! { dg-final { scan-tree-dump-times "\.bt_alloc *= *0" 1 "original" } }
! { dg-final { scan-tree-dump-times "\.class_alloc(?: *= *\{)?\._data *= *0" 1 "original" } }
! { dg-final { scan-tree-dump-times "\.class_ptr(?: *= *\{)?\._data *= *0" 1 "original" } }
! { dg-final { scan-tree-dump-times "calloc(?: *= *\{)?\._data *= *0" 1 "original" } }