Break circular dependency between FIR dialect and utilities
[llvm-project.git] / flang / test / Fir / invalid-types.fir
blob67360df271868fcc681294b68c24fd31149b6c0a
1 // Test the FIR types parser diagnostics
2 // RUN: fir-opt -split-input-file -verify-diagnostics %s
4 // expected-error@+1 {{expected non-function type}}
5 func.func private @box3() -> !fir.boxproc<>
7 // -----
9 // expected-error@+2 {{expected non-function type}}
10 // expected-error@+1 {{failed to parse fir_BoxType parameter 'eleTy' which is to be a `mlir::Type`}}
11 func.func private @box1() -> !fir.box<>
13 // -----
15 // expected-error@+1 {{expected integer value}}
16 func.func private @box2() -> !fir.boxchar<>
18 // -----
20 // expected-error@+1 {{expected integer value}}
21 func.func private @it6() -> !fir.char<>
23 // -----
25 // expected-error@+1 {{expected integer value}}
26 func.func private @it6() -> !fir.char<2, >
28 // -----
30 // expected-error@+1 {{expected integer value}}
31 func.func private @it3() -> !fir.complex<>
33 // -----
35 // expected-error@+1 {{expected non-function type}}
36 func.func private @mem3() -> !fir.heap<>
38 // -----
40 // expected-error@+1 {{expected integer value}}
41 func.func private @it1() -> !fir.int<A>
43 // -----
45 // expected-error@+1 {{expected integer value}}
46 func.func private @it1() -> !fir.logical<b>
48 // -----
50 // expected-error@+1 {{expected non-function type}}
51 func.func private @mem3() -> !fir.ptr<>
53 // -----
55 // expected-error@+1 {{expected integer value}}
56 func.func private @mem3() -> !fir.real<>
58 // -----
60 // expected-error@+1 {{expected valid keyword}}
61 func.func private @mem3() -> !fir.type<>
63 // -----
65 // expected-error@+2 {{expected valid keyword}}
66 // expected-error@+1 {{expected LEN parameter list}}
67 func.func private @dvd4() -> !fir.type<derived4()>
69 // -----
71 // expected-error@+2 {{expected ':'}}
72 // expected-error@+1 {{expected LEN parameter list}}
73 func.func private @dvd4() -> !fir.type<derived4(p)>
75 // -----
77 // expected-error@+2 {{expected non-function type}}
78 // expected-error@+1 {{expected LEN parameter list}}
79 func.func private @dvd4() -> !fir.type<derived4(p:)>
81 // -----
83 // expected-error@+2 {{expected valid keyword}}
84 // expected-error@+1 {{expected field type list}}
85 func.func private @dvd4() -> !fir.type<derived4(p:i8){}>
87 // -----
89 // expected-error@+2 {{expected ':'}}
90 // expected-error@+1 {{expected field type list}}
91 func.func private @dvd4() -> !fir.type<derived4(p:i8){f1}>
93 // -----
95 // expected-error@+2 {{expected non-function type}}
96 // expected-error@+1 {{expected field type list}}
97 func.func private @dvd4() -> !fir.type<derived4(p:i8){f1:f2}>
99 // -----
101 // expected-error@+2 {{expected valid keyword}}
102 // expected-error@+1 {{expected field type list}}
103 func.func private @dvd4() -> !fir.type<derived4(p:i8){f1:i32,}>
105 // -----
107 // expected-error@+2 {{expected valid keyword}}
108 // expected-error@+1 {{expected field type list}}
109 func.func private @dvd4() -> !fir.type<derived4(p:i8){,}>
111 // -----
113 // expected-error@+1 {{expected non-function type}}
114 func.func private @mem3() -> !fir.ref<>
116 // -----
118 // expected-error@+1 {{expected ':'}}
119 func.func private @arr1() -> !fir.array<*>
121 // -----
123 // expected-error@+1 {{expected non-function type}}
124 func.func private @arr1() -> !fir.array<*:>
126 // -----
128 // expected-error@+1 {{expected integer value}}
129 func.func private @oth1() -> !fir.shape<>
131 // -----
133 // expected-error@+1 {{expected integer value}}
134 func.func private @oth1() -> !fir.shapeshift<>
136 // -----
138 // expected-error@+1 {{expected integer value}}
139 func.func private @oth1() -> !fir.shift<>
141 // -----
143 // expected-error@+1 {{expected integer value}}
144 func.func private @oth1() -> !fir.slice<>
146 // -----
148 // expected-error@+1 {{expected non-function type}}
149 func.func private @oth3() -> !fir.tdesc<xx>
151 // -----
153 // expected-error@+1 {{expected integer value}}
154 func.func private @oth3() -> !fir.vector<>
156 // -----
158 // expected-error@+1 {{expected ':'}}
159 func.func private @oth3() -> !fir.vector<10>
161 // -----
163 // expected-error@+1 {{expected non-function type}}
164 func.func private @oth3() -> !fir.vector<10:>
166 // -----
168 // expected-error@+1 {{invalid element type}}
169 func.func private @upe() -> !fir.class<!fir.box<i32>>