3 ! Original code contributed by Gerhard Steinmetz
4 ! gerhard dot steinmetz dot fortran at t-online dot de
7 integer, parameter :: n
= 1
8 integer, parameter :: m(3) = [1, 2, 3]
10 s
= [character((m(1))) :: 'x', 'y'] ! OK.
11 s
= [character(m(1)) :: 'x', 'y'] ! OK.
12 s
= [character(m
) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
14 ! The next line should case an error, but causes an ICE.
15 s
= [character(m(2:3)) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
18 s
= [character('') :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
19 s
= [character(['']) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
20 s
= [character([.true
.]) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
21 s
= [character([.false
.]) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
22 s
= [character([1.]) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
23 s
= [character([1d1]) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
24 s
= [character([(0.,1.)]) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
25 s
= [character([null()]) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
26 s
= [character(null()) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
31 print *, '1: ', [character(.true
.) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
32 print *, '2: ', [character(.false
.) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
33 print *, '3: ', [character(1.) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
34 print *, '4: ', [character(1d1) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
35 print *, '5: ', [character((0.,1.)) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
36 print *, '6: ', [character(null()) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }.