| ! { dg-do run } |
| ! PR fortran/104619 |
| |
| module m |
| implicit none |
| type :: item |
| real :: x |
| end type item |
| type :: container |
| type(item) :: items(3) |
| end type container |
| end module |
| |
| program p |
| use m |
| implicit none |
| type(item), allocatable :: items(:) |
| type(container) :: c |
| integer :: i, n |
| items = [item(3.0), item(4.0), item(5.0)] |
| c = container(items=[(items(i), i = 1, size(items))]) |
| if (any (c%items% x /= items% x)) stop 1 |
| n = size (items) |
| c = container(items=[(items(i), i = 1, n)]) |
| if (any (c%items% x /= items% x)) stop 2 |
| c = container(items=[(items(i), i = 1, 3)]) |
| if (any (c%items% x /= items% x)) stop 3 |
| end program |