111
|
1 ! { dg-do compile }
|
|
2 ! PR fortran/67805
|
|
3 ! Original code contributed by Gerhard Steinmetz
|
|
4 ! gerhard dot steinmetz dot fortran at t-online dot de
|
|
5 !
|
|
6 subroutine p
|
|
7 integer, parameter :: n = 1
|
|
8 integer, parameter :: m(3) = [1, 2, 3]
|
|
9 character(len=1) s(2)
|
|
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" }
|
|
13
|
|
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" }
|
|
16
|
|
17 call foo(s)
|
|
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 call foo(s)
|
|
27 end subroutine p
|
|
28
|
|
29 subroutine q
|
|
30 print *, '1: ', [character(.true.) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
|
|
31 print *, '2: ', [character(.false.) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
|
|
32 print *, '3: ', [character(1.) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
|
|
33 print *, '4: ', [character(1d1) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
|
|
34 print *, '5: ', [character((0.,1.)) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }
|
|
35 print *, '6: ', [character(null()) :: 'x', 'y'] ! { dg-error "INTEGER expression expected" }.
|
|
36 end subroutine q
|