| ! { dg-do run } |
| ! |
| ! PR fortran/41479 |
| ! |
| ! Contributed by Juergen Reuter. |
| ! |
| program main |
| type :: container_t |
| integer :: n = 42 |
| ! if the following line is omitted, the problem disappears |
| integer, dimension(:), allocatable :: a |
| end type container_t |
| |
| type(container_t) :: container |
| |
| if (container%n /= 42) STOP 1 |
| if (allocated(container%a)) STOP 2 |
| container%n = 1 |
| allocate(container%a(50)) |
| call init (container) |
| if (container%n /= 42) STOP 3 |
| if (allocated(container%a)) STOP 4 |
| contains |
| subroutine init (container) |
| type(container_t), intent(out) :: container |
| end subroutine init |
| end program main |