xref: /llvm-project/flang/test/Fir/invalid-types.fir (revision 1753de2d9564682cd9034aae50e81691bfd168ec)
1// Test the FIR types parser diagnostics
2// RUN: fir-opt -split-input-file -verify-diagnostics %s
3
4// expected-error@+1 {{expected non-function type}}
5func.func private @box3() -> !fir.boxproc<>
6
7// -----
8
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`}}
11func.func private @box1() -> !fir.box<>
12
13// -----
14
15// expected-error@+1 {{expected integer value}}
16func.func private @box2() -> !fir.boxchar<>
17
18// -----
19
20// expected-error@+1 {{expected integer value}}
21func.func private @it6() -> !fir.char<>
22
23// -----
24
25// expected-error@+1 {{expected integer value}}
26func.func private @it6() -> !fir.char<2, >
27
28// -----
29
30// expected-error@+1 {{expected non-function type}}
31func.func private @mem3() -> !fir.heap<>
32
33// -----
34
35// expected-error@+1 {{expected integer value}}
36func.func private @it1() -> !fir.int<A>
37
38// -----
39
40// expected-error@+1 {{expected integer value}}
41func.func private @it1() -> !fir.logical<b>
42
43// -----
44
45// expected-error@+1 {{expected non-function type}}
46func.func private @mem3() -> !fir.ptr<>
47
48// -----
49
50// expected-error@+1 {{expected valid keyword}}
51func.func private @mem3() -> !fir.type<>
52
53// -----
54
55// expected-error@+2 {{expected valid keyword}}
56// expected-error@+1 {{expected LEN parameter list}}
57func.func private @dvd4() -> !fir.type<derived4()>
58
59// -----
60
61// expected-error@+2 {{expected ':'}}
62// expected-error@+1 {{expected LEN parameter list}}
63func.func private @dvd4() -> !fir.type<derived4(p)>
64
65// -----
66
67// expected-error@+2 {{expected non-function type}}
68// expected-error@+1 {{expected LEN parameter list}}
69func.func private @dvd4() -> !fir.type<derived4(p:)>
70
71// -----
72
73// expected-error@+2 {{expected valid keyword}}
74// expected-error@+1 {{expected field type list}}
75func.func private @dvd4() -> !fir.type<derived4(p:i8){}>
76
77// -----
78
79// expected-error@+2 {{expected ':'}}
80// expected-error@+1 {{expected field type list}}
81func.func private @dvd4() -> !fir.type<derived4(p:i8){f1}>
82
83// -----
84
85// expected-error@+2 {{expected non-function type}}
86// expected-error@+1 {{expected field type list}}
87func.func private @dvd4() -> !fir.type<derived4(p:i8){f1:f2}>
88
89// -----
90
91// expected-error@+2 {{expected valid keyword}}
92// expected-error@+1 {{expected field type list}}
93func.func private @dvd4() -> !fir.type<derived4(p:i8){f1:i32,}>
94
95// -----
96
97// expected-error@+2 {{expected valid keyword}}
98// expected-error@+1 {{expected field type list}}
99func.func private @dvd4() -> !fir.type<derived4(p:i8){,}>
100
101// -----
102
103// expected-error@+1 {{expected non-function type}}
104func.func private @mem3() -> !fir.ref<>
105
106// -----
107
108// expected-error@+1 {{expected ':'}}
109func.func private @arr1() -> !fir.array<*>
110
111// -----
112
113// expected-error@+1 {{expected non-function type}}
114func.func private @arr1() -> !fir.array<*:>
115
116// -----
117
118// expected-error@+1 {{expected integer value}}
119func.func private @oth1() -> !fir.shape<>
120
121// -----
122
123// expected-error@+1 {{expected integer value}}
124func.func private @oth1() -> !fir.shapeshift<>
125
126// -----
127
128// expected-error@+1 {{expected integer value}}
129func.func private @oth1() -> !fir.shift<>
130
131// -----
132
133// expected-error@+1 {{expected integer value}}
134func.func private @oth1() -> !fir.slice<>
135
136// -----
137
138// expected-error@+1 {{expected non-function type}}
139func.func private @oth3() -> !fir.tdesc<xx>
140
141// -----
142
143// expected-error@+1 {{expected integer value}}
144func.func private @oth3() -> !fir.vector<>
145
146// -----
147
148// expected-error@+1 {{expected ':'}}
149func.func private @oth3() -> !fir.vector<10>
150
151// -----
152
153// expected-error@+1 {{expected non-function type}}
154func.func private @oth3() -> !fir.vector<10:>
155
156// -----
157
158// expected-error@+1 {{invalid element type}}
159func.func private @upe() -> !fir.class<!fir.box<i32>>
160
161// -----
162
163// expected-error@+1 {{invalid element type}}
164func.func private @upe() -> !fir.box<!fir.class<none>>
165