| ! { 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" } } |