[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / llvm / test / Demangle / invalid-manglings.test
blobb77288488b2dbca2122e15839ee0ed7a29d71065
1 ; Run llvm-undname with invalid inputs and make sure it doesn't crash.
2 ; RUN: not llvm-undname < %s 2>&1 | FileCheck %s
4 ?ff@@$$J0YAXAU?$AS_@$0A@PEAU?$AS_@$0A@H@__clang@@@__clang@@@Z
5 ; CHECK: ?ff@@$$J0YAXAU?$AS_@$0A@PEAU?$AS_@$0A@H@__clang@@@__clang@@@Z
6 ; CHECK-NEXT: error: Invalid mangled name
8 ?f0@@YAXPEU?$AS_@$00$$CAD@__clang@@@Z
9 ; CHECK-EMPTY:
10 ; CHECK-NEXT: ?f0@@YAXPEU?$AS_@$00$$CAD@__clang@@@Z
11 ; CHECK-NEXT: error: Invalid mangled name
13 ?@@8
14 ; CHECK-EMPTY:
15 ; CHECK-NEXT: ?@@8
16 ; CHECK-NEXT: error: Invalid mangled name
19 ; CHECK-EMPTY:
20 ; CHECK-NEXT: ??
21 ; CHECK-NEXT: error: Invalid mangled name
23 ??0@
24 ; CHECK-EMPTY:
25 ; CHECK-NEXT: ??0@
26 ; CHECK-NEXT: error: Invalid mangled name
28 ? @@   YC@
29 ; CHECK-EMPTY:
30 ; CHECK-NEXT: ? @@   YC@
31 ; CHECK-NEXT: error: Invalid mangled name
33 ??B@$$J0
34 ; CHECK-EMPTY:
35 ; CHECK-NEXT: ??B@$$J0
36 ; CHECK-NEXT: error: Invalid mangled name
38 ??B@4
39 ; CHECK-EMPTY:
40 ; CHECK-NEXT: ??B@4
41 ; CHECK-NEXT: error: Invalid mangled name
43 ?A?@?@???B@4D
44 ; CHECK-EMPTY:
45 ; CHECK-NEXT: ?A?@?@???B@4D
46 ; CHECK-NEXT: error: Invalid mangled name
48 ?A?@?@???B@4DD
49 ; CHECK-EMPTY:
50 ; CHECK-NEXT: ?A?@?@???B@4DD
51 ; CHECK-NEXT: error: Invalid mangled name
53 ??$A@P15@
54 ; CHECK-EMPTY:
55 ; CHECK-NEXT: ??$A@P15@
56 ; CHECK-NEXT: error: Invalid mangled name
58 ??$A@P
59 ; CHECK-EMPTY:
60 ; CHECK-NEXT: ??$A@P
61 ; CHECK-NEXT: error: Invalid mangled name
63 ?A@@
64 ; CHECK-EMPTY:
65 ; CHECK-NEXT: ?A@@
66 ; CHECK-NEXT: error: Invalid mangled name
68 ?A@@P
69 ; CHECK-EMPTY:
70 ; CHECK-NEXT: ?A@@P
71 ; CHECK-NEXT: error: Invalid mangled name
73 ?A@@4PQA@@
74 ; CHECK-EMPTY:
75 ; CHECK-NEXT: ?A@@4PQA@@
76 ; CHECK-NEXT: error: Invalid mangled name
78 ??__E
79 ; CHECK-EMPTY:
80 ; CHECK-NEXT: ??__E
81 ; CHECK-NEXT: error: Invalid mangled name
83 ??__E@@
84 ; CHECK-EMPTY:
85 ; CHECK-NEXT: ??__E@@
86 ; CHECK-NEXT: error: Invalid mangled name
88 ??__E?Foo@@0HA@@
89 ; CHECK-EMPTY:
90 ; CHECK-NEXT: ??__E?Foo@@0HA@@
91 ; CHECK-NEXT: error: Invalid mangled name
93 ??__E?i@C@@0HA@
94 ; CHECK-EMPTY:
95 ; CHECK-NEXT: ??__E?i@C@@0HA@
96 ; CHECK-NEXT: error: Invalid mangled name
98 ??__E?Foo@@YAXXZ
99 ; CHECK-EMPTY:
100 ; CHECK-NEXT: ??__E?Foo@@YAXXZ
101 ; CHECK-NEXT: error: Invalid mangled name
103 ?foo@@YAH0@Z
104 ; CHECK-EMPTY:
105 ; CHECK-NEXT: ?foo@@YAH0@Z
106 ; CHECK-NEXT: error: Invalid mangled name
108 ?foo@@YAHH
109 ; CHECK-EMPTY:
110 ; CHECK-NEXT: ?foo@@YAHH
111 ; CHECK-NEXT: error: Invalid mangled name
113 ??8@8
114 ; CHECK-EMPTY:
115 ; CHECK-NEXT: ??8@8
116 ; CHECK-NEXT: error: Invalid mangled name
118 ?B@?$?K$H?
119 ; CHECK-EMPTY:
120 ; CHECK-NEXT: ?B@?$?K$H?
121 ; CHECK-NEXT: error: Invalid mangled name
123 ??C@$
124 ; CHECK-EMPTY:
125 ; CHECK-NEXT: ??C@$
126 ; CHECK-NEXT: error: Invalid mangled name
128 ?x@@3PAW
129 ; CHECK-EMPTY:
130 ; CHECK-NEXT: ?x@@3PAW
131 ; CHECK-NEXT: error: Invalid mangled name
134 ; CHECK-EMPTY:
135 ; CHECK-NEXT: ??}
136 ; CHECK-NEXT: error: Invalid mangled name
138 ?foo@?$?_
139 ; CHECK-EMPTY:
140 ; CHECK-NEXT: ?foo@?$?_
141 ; CHECK-NEXT: error: Invalid mangled name
143 ??_R4
144 ; CHECK-EMPTY:
145 ; CHECK-NEXT: ??_R4
146 ; CHECK-NEXT: error: Invalid mangled name
148 ??_R4foo@@
149 ; CHECK-EMPTY:
150 ; CHECK-NEXT: ??_R4foo@@
151 ; CHECK-NEXT: error: Invalid mangled name
153 ?foo@?$?BH@@QAEHXZ
154 ; CHECK-EMPTY:
155 ; CHECK-NEXT: ?foo@?$?BH@@QAEHXZ
156 ; CHECK-NEXT: error: Invalid mangled name
158 ?foo@?$?0H@
159 ; CHECK-EMPTY:
160 ; CHECK-NEXT: ?foo@?$?0H@
161 ; CHECK-NEXT: error: Invalid mangled name
163 ??_C@_0A@01234567@a
164 ; CHECK-EMPTY:
165 ; CHECK-NEXT: ??_C@_0A@01234567@a
166 ; CHECK-NEXT: error: Invalid mangled name
168 ??_C@_1A@01234567@a
169 ; CHECK-EMPTY:
170 ; CHECK-NEXT: ??_C@_1A@01234567@a
171 ; CHECK-NEXT: error: Invalid mangled name
173 ??_C@_0301234567@a
174 ; CHECK-EMPTY:
175 ; CHECK-NEXT: ??_C@_0301234567@a
176 ; CHECK-NEXT: error: Invalid mangled name
178 ??_C@_1301234567@a
179 ; CHECK-EMPTY:
180 ; CHECK-NEXT: ??_C@_1301234567@a
181 ; CHECK-NEXT: error: Invalid mangled name
183 ??_C@_0601234567@abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrtsuvwxyz
184 ; CHECK-EMPTY:
185 ; CHECK-NEXT: ??_C@_0601234567@abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrtsuvwxyz
186 ; CHECK-NEXT: error: Invalid mangled name
188 ??_C@_12@?z
189 ; CHECK-EMPTY:
190 ; CHECK-NEXT: ??_C@_12@?z
191 ; CHECK-NEXT: error: Invalid mangled name
193 ??$foo@$1??_C@_02PCEFGMJL@hi?$AA@@
194 ; CHECK-EMPTY:
195 ; CHECK-NEXT: ??$foo@$1??_C@_02PCEFGMJL@hi?$AA@@
196 ; CHECK-NEXT: error: Invalid mangled name
198 ??_C@
199 ; CHECK-EMPTY:
200 ; CHECK-NEXT: ??_C@
201 ; CHECK-NEXT: error: Invalid mangled name
203 ??_C@_
204 ; CHECK-EMPTY:
205 ; CHECK-NEXT: ??_C@_
206 ; CHECK-NEXT: error: Invalid mangled name
208 ??_C@_3
209 ; CHECK-EMPTY:
210 ; CHECK-NEXT: ??_C@_3
211 ; CHECK-NEXT: error: Invalid mangled name
213 ??_C@_01
214 ; CHECK-EMPTY:
215 ; CHECK-NEXT: ??_C@_01
216 ; CHECK-NEXT: error: Invalid mangled name
218 ??_C@_0101234567@
219 ; CHECK-EMPTY:
220 ; CHECK-NEXT: ??_C@_0101234567@
221 ; CHECK-NEXT: error: Invalid mangled name
223 ??_C@_0101234567@?
224 ; CHECK-EMPTY:
225 ; CHECK-NEXT: ??_C@_0101234567@?
226 ; CHECK-NEXT: error: Invalid mangled name
228 ??_C@_0101234567@?$
229 ; CHECK-EMPTY:
230 ; CHECK-NEXT: ??_C@_0101234567@?$
231 ; CHECK-NEXT: error: Invalid mangled name
233 ??_C@_0101234567@?$za
234 ; CHECK-EMPTY:
235 ; CHECK-NEXT: ??_C@_0101234567@?$za
236 ; CHECK-NEXT: error: Invalid mangled name
238 ??_C@_0101234567@?$az
239 ; CHECK-EMPTY:
240 ; CHECK-NEXT: ??_C@_0101234567@?$az
241 ; CHECK-NEXT: error: Invalid mangled name
243 ??_C@_1201234567@a?$az
244 ; CHECK-EMPTY:
245 ; CHECK-NEXT: ??_C@_1201234567@a?$az
246 ; CHECK-NEXT: error: Invalid mangled name
248 ??@foo
249 ; CHECK-EMPTY:
250 ; CHECK-NEXT: ??@foo
251 ; CHECK-NEXT: error: Invalid mangled name
253 ?foo@@3YA@A
254 ; CHECK-EMPTY:
255 ; CHECK-NEXT: ?foo@@3YA@A
256 ; CHECK-NEXT: error: Invalid mangled name
258 ?foo@@3Y~01KA
259 ; CHECK-EMPTY:
260 ; CHECK-NEXT: ?foo@@3Y~01KA
261 ; CHECK-NEXT: error: Invalid mangled name
263 ?foo@@3Y0~1KA
264 ; CHECK-EMPTY:
265 ; CHECK-NEXT: ?foo@@3Y0~1KA
266 ; CHECK-NEXT: error: Invalid mangled name
268 ?x@@3PEAY02$$CRHEA
269 ; CHECK-EMPTY:
270 ; CHECK-NEXT: ?x@@3PEAY02$$CRHEA
271 ; CHECK-NEXT: error: Invalid mangled name
273 ?foo@@3_
274 ; CHECK-EMPTY:
275 ; CHECK-NEXT: ?foo@@3_
276 ; CHECK-NEXT: error: Invalid mangled name
278 ?foo@@3_XA
279 ; CHECK-EMPTY:
280 ; CHECK-NEXT: ?foo@@3_XA
281 ; CHECK-NEXT: error: Invalid mangled name
283 ?foo@@3Vbar
284 ; CHECK-EMPTY:
285 ; CHECK-NEXT: ?foo@@3Vbar
286 ; CHECK-NEXT: error: Invalid mangled name
288 ?foo@@3Vbar@
289 ; CHECK-EMPTY:
290 ; CHECK-NEXT: ?foo@@3Vbar@
291 ; CHECK-NEXT: error: Invalid mangled name
293 ?foo@?A
294 ; CHECK-EMPTY:
295 ; CHECK-NEXT: ?foo@?A
296 ; CHECK-NEXT: error: Invalid mangled name
298 ?foo@?
299 ; CHECK-EMPTY:
300 ; CHECK-NEXT: ?foo@?
301 ; CHECK-NEXT: error: Invalid mangled name
303 ?foo@??
304 ; CHECK-EMPTY:
305 ; CHECK-NEXT: ?foo@??
306 ; CHECK-NEXT: error: Invalid mangled name
308 ?foo@?XX?
309 ; CHECK-EMPTY:
310 ; CHECK-NEXT: ?foo@?XX?
311 ; CHECK-NEXT: error: Invalid mangled name
313 ?foo@?A@?
314 ; CHECK-EMPTY:
315 ; CHECK-NEXT: ?foo@?A@?
316 ; CHECK-NEXT: error: Invalid mangled name
318 ?foo@?Q@?
319 ; CHECK-EMPTY:
320 ; CHECK-NEXT: ?foo@?Q@?
321 ; CHECK-NEXT: error: Invalid mangled name
323 ?foo@?BQ@?
324 ; CHECK-EMPTY:
325 ; CHECK-NEXT: ?foo@?BQ@?
326 ; CHECK-NEXT: error: Invalid mangled name
328 ?foo@?0?
329 ; CHECK-EMPTY:
330 ; CHECK-NEXT: ?foo@?0?
331 ; CHECK-NEXT: error: Invalid mangled name
333 ??_Sfoo@@1Abar@@
334 ; CHECK-EMPTY:
335 ; CHECK-NEXT: ??_Sfoo@@1Abar@@
336 ; CHECK-NEXT: error: Invalid mangled name
338 ??_Bfoo@@1
339 ; CHECK-EMPTY:
340 ; CHECK-NEXT: ??_Bfoo@@1
341 ; CHECK-NEXT: error: Invalid mangled name
343 ??_R0
344 ; CHECK-EMPTY:
345 ; CHECK-NEXT: ??_R0
346 ; CHECK-NEXT: error: Invalid mangled name
348 ??_R0H
349 ; CHECK-EMPTY:
350 ; CHECK-NEXT: ??_R0H
351 ; CHECK-NEXT: error: Invalid mangled name
353 ??_R0H@8foo
354 ; CHECK-EMPTY:
355 ; CHECK-NEXT: ??_R0H@8foo
356 ; CHECK-NEXT: error: Invalid mangled name
358 ??_R1012?3foo@@
359 ; CHECK-EMPTY:
360 ; CHECK-NEXT: ??_R1012?3foo@@
361 ; CHECK-NEXT: error: Invalid mangled name
363 ??_R2foo@@1
364 ; CHECK-EMPTY:
365 ; CHECK-NEXT: ??_R2foo@@1
366 ; CHECK-NEXT: error: Invalid mangled name
368 ??_A
369 ; CHECK-EMPTY:
370 ; CHECK-NEXT: ??_A
371 ; CHECK-NEXT: error: Invalid mangled name
373 ??_P
374 ; CHECK-EMPTY:
375 ; CHECK-NEXT: ??_P
376 ; CHECK-NEXT: error: Invalid mangled name
378 .?AUBase@@@8
379 ; CHECK-EMPTY:
380 ; CHECK-NEXT: .?AUBase@@@8
381 ; CHECK-NEXT: error: Invalid mangled name