| ! { dg-do run } |
| ! PR fortran/99348 |
| ! PR fortran/102521 |
| ! Check simplifications for initialization of DT parameter arrays |
| |
| program p |
| type t |
| integer :: n |
| end type |
| type(t), parameter :: a(4) = t(1) |
| type(t), parameter :: d(*) = a |
| type(t), parameter :: b(2,2) = reshape(d, [2,2]) |
| integer, parameter :: nn = b(2,2)% n |
| type u |
| character(3) :: c |
| end type |
| type(u), parameter :: x(2,3) = u('ab') |
| type(u), parameter :: y(*,*) = transpose (x) |
| character(*), parameter :: c = y(3,2)% c |
| integer, parameter :: lc = c% len |
| integer, parameter :: lyc = len (y(3,2)% c) |
| ! integer, parameter :: lxc = x(1,1)% c% len ! fails (pr101735?) |
| if (nn /= 1) stop 1 |
| if (lc /= 3 .or. lyc /= 3 .or. c /= "ab ") stop 2 |
| end |