1! { dg-do compile }
2! PR Fortran/83548
3program foo
4
5   implicit none
6
7   logical, parameter :: t = .true., f = .false.
8   logical, parameter :: a1(2) = [t, f]
9   logical(kind=1), parameter :: a2(2) = [logical(kind=1) :: t,  f]
10   logical(kind=4), parameter :: a3(2) = [logical(kind=4) :: t,  f]
11   logical(kind=1), parameter :: a4(2) = [logical(t, 1), logical(f, 1)]
12   logical(kind=4), parameter :: a5(2) = [logical(t, 4), logical(f, 4)]
13   logical(kind=1) b(2)
14   logical(kind=4) c(2)
15
16   real, parameter :: x = 1, y = 2
17   real, parameter :: r1(2) = [x, y]
18   real(kind=4), parameter :: r2(2) = [real(kind=4) :: x,  y]
19   real(kind=8), parameter :: r3(2) = [real(kind=8) :: x,  y]
20   real(kind=4), parameter :: r4(2) = [real(x, 4), real(y, 4)]
21   real(kind=8), parameter :: r5(2) = [real(x, 8), real(y, 8)]
22   real(kind=4) p(2)
23   real(kind=8) q(2)
24
25   p = [real(kind=4) :: x,  y]
26   q = [real(kind=8) :: x,  y]
27   if (any(p .ne. r2)) STOP 1
28   if (any(q .ne. r3)) STOP 2
29end program foo
30