[flang] Accept polymorphic component element in storage_size
[llvm-project.git] / flang / test / Semantics / io03.f90
bloba5adafd5f2f96c6ce1fab927d00f15198518f38c
1 ! RUN: %python %S/test_errors.py %s %flang_fc1
2 character(kind=1,len=50) internal_file
3 character(kind=2,len=50) internal_file2
4 character(kind=4,len=50) internal_file4
5 character(kind=1,len=50) internal_fileA(20)
6 character(kind=1,len=111) msg
7 character(20) advance
8 character(20) :: cvar;
9 character, parameter :: const_internal_file = "(I6)"
10 character, parameter :: const_cvar*(*) = "Ceci n'est pas une pipe."
11 integer*1 stat1
12 integer*2 stat2, id2
13 integer*8 stat8
14 integer :: iunit = 10
15 integer, parameter :: junit = 11, const_size = 13, const_int = 15
16 integer :: vv(10) = 7
18 namelist /mmm/ mm1, mm2
19 namelist /nnn/ nn1, nn2
21 advance='no'
23 open(10)
25 read*
26 print*, 'Ok'
27 read(*)
28 read*, jj
29 read(*, *) jj
30 read(unit=*, *) jj
31 read(*, fmt=*) jj
32 read(*, '(I4)') jj
33 read(*, fmt='(I4)') jj
34 read(fmt='(I4)', unit=*) jj
35 read(iunit, *) jj
36 read(junit, *) jj
37 read(10, *) jj, cvar, cvar(7:17)
38 read(internal_file, *) jj
39 read(internal_fileA(3), *) jj
40 read(internal_fileA(4:9), *) jj
41 read(10, nnn)
42 read(internal_file, nnn)
43 read(internal_file, nml=nnn)
44 read(const_internal_file, *)
45 read(fmt=*, unit=internal_file)
46 read(nml=nnn, unit=internal_file)
47 read(iunit, nnn)
48 read(10, nml=nnn)
49 read(10, asynchronous='no') jj
50 read(10, asynchronous='yes') jj
51 read(10, eor=9, advance='no', fmt='(I4)') jj
52 read(10, eor=9, advance='no', fmt='(I4)') jj
53 read(10, asynchronous='yes', id=id) jj
54 read(10, '(I4)', advance='no', asynchronous='yes', blank='null', &
55 decimal='comma', end=9, eor=9, err=9, id=id, iomsg=msg, iostat=stat2, &
56 pad='no', round='processor_defined', size=kk) jj
58 read(internal_file2, *) jj
59 read(internal_file4, *) jj
61 !ERROR: Internal file must not have a vector subscript
62 read(internal_fileA(vv), *) jj
64 !ERROR: Input variable 'const_int' is not definable
65 !BECAUSE: '15_4' is not a variable or pointer
66 read(11, *) const_int
68 !ERROR: SIZE variable 'const_size' is not definable
69 !BECAUSE: '13_4' is not a variable or pointer
70 read(11, pos=ipos, size=const_size, end=9)
72 !ERROR: Input variable 'const_cvar' is not definable
73 !BECAUSE: '"Ceci n'est pas une pipe."' is not a variable or pointer
74 read(11, *) const_cvar
76 !ERROR: Input variable 'const_cvar(3:13)' is not definable
77 !BECAUSE: '"ci n'est pa"' is not a variable or pointer
78 read(11, *) const_cvar(3:13)
80 !ERROR: Duplicate IOSTAT specifier
81 read(11, pos=ipos, iostat=stat1, iostat=stat2)
83 !ERROR: Duplicate END specifier
84 read(11, end=9, pos=ipos, end=9)
86 !ERROR: Duplicate NML specifier
87 read(10, nml=mmm, nml=nnn)
89 !ERROR: READ statement must have a UNIT specifier
90 read(err=9, iostat=stat8) jj
92 !ERROR: READ statement must not have a DELIM specifier
93 !ERROR: READ statement must not have a SIGN specifier
94 read(10, delim='quote', sign='plus') jj
96 !ERROR: If NML appears, REC must not appear
97 read(10, nnn, rec=nn)
99 !ERROR: If NML appears, FMT must not appear
100 !ERROR: If NML appears, a data list must not appear
101 read(10, fmt=*, nml=nnn) jj
103 !ERROR: If UNIT=* appears, REC must not appear
104 read(*, rec=13)
106 !ERROR: If UNIT=* appears, POS must not appear
107 read(*, pos=13)
109 !ERROR: If UNIT=internal-file appears, REC must not appear
110 read(internal_file, rec=13)
112 !ERROR: If UNIT=internal-file appears, POS must not appear
113 read(internal_file, pos=13)
115 !ERROR: If REC appears, END must not appear
116 read(10, fmt='(I4)', end=9, rec=13) jj
118 !ERROR: If REC appears, FMT=* must not appear
119 read(10, *, rec=13) jj
121 !ERROR: If ADVANCE appears, UNIT=internal-file must not appear
122 read(internal_file, '(I4)', eor=9, advance='no') jj
124 !ERROR: If ADVANCE appears, an explicit format must also appear
125 !ERROR: If EOR appears, ADVANCE with value 'NO' must also appear
126 read(10, eor=9, advance='yes')
128 !ERROR: If EOR appears, ADVANCE with value 'NO' must also appear
129 read(10, eor=9)
131 !ERROR: Invalid ASYNCHRONOUS value 'nay'
132 read(10, asynchronous='nay') ! prog req
134 !ERROR: If ASYNCHRONOUS='YES' appears, UNIT=number must also appear
135 read(*, asynchronous='yes')
137 !ERROR: If ASYNCHRONOUS='YES' appears, UNIT=number must also appear
138 read(internal_file, asynchronous='y'//'es')
140 !ERROR: If ID appears, ASYNCHRONOUS='YES' must also appear
141 read(10, id=id)
143 !ERROR: If ID appears, ASYNCHRONOUS='YES' must also appear
144 read(10, asynchronous='n'//'o', id=id)
146 !ERROR: If POS appears, REC must not appear
147 read(10, pos=13, rec=13) jj
149 !ERROR: If DECIMAL appears, FMT or NML must also appear
150 !ERROR: If BLANK appears, FMT or NML must also appear
151 !ERROR: Invalid DECIMAL value 'Punkt'
152 read(10, decimal='Punkt', blank='null') jj
154 !ERROR: If ROUND appears, FMT or NML must also appear
155 !ERROR: If PAD appears, FMT or NML must also appear
156 read(10, pad='no', round='nearest') jj
158 !ERROR: ID kind (2) is smaller than default INTEGER kind (4)
159 read(10, id=id2, asynchronous='yes') jj
161 9 continue
164 subroutine s(aa, n)
165 integer :: aa(5,*)
166 integer, intent(in) :: n
167 integer :: bb(10), vv(10)
168 type tt
169 real :: x, y, z
170 end type tt
171 type(tt) :: qq(20)
173 vv = 1
175 read(*, *) aa(n,1)
176 read(*, *) aa(n:n+2,2)
177 read(*, *) qq(2:5)%y
179 !ERROR: Input variable 'n' is not definable
180 !BECAUSE: 'n' is an INTENT(IN) dummy argument
181 read(*, *) n
183 !ERROR: Whole assumed-size array 'aa' may not appear here without subscripts
184 read(*, *) aa