1; RUN: llvm-undname < %s | FileCheck %s
2
3; CHECK-NOT: Invalid mangled name
4
5??_C@_01CNACBAHC@?$PP?$AA@
6??_C@_01DEBJCBDD@?$PO?$AA@
7??_C@_01BPDEHCPA@?$PN?$AA@
8??_C@_01GCPEDLB@?$PM?$AA@
9??_C@_01EJGONFHG@?$PL?$AA@
10??_C@_01FAHFOEDH@?z?$AA@
11??_C@_01HLFILHPE@?y?$AA@
12??_C@_01GCEDIGLF@?x?$AA@
13??_C@_01OFNLJKHK@?w?$AA@
14??_C@_01PMMAKLDL@?v?$AA@
15??_C@_01NHONPIPI@?u?$AA@
16??_C@_01MOPGMJLJ@?t?$AA@
17??_C@_01IBLHFPHO@?s?$AA@
18??_C@_01JIKMGODP@?r?$AA@
19??_C@_01LDIBDNPM@?q?$AA@
20??_C@_01KKJKAMLN@?p?$AA@
21??_C@_01GHMAACCD@?o?$AA@
22??_C@_01HONLDDGC@?n?$AA@
23??_C@_01FFPGGAKB@?m?$AA@
24??_C@_01EMONFBOA@?l?$AA@
25??_C@_01DKMMHCH@?k?$AA@
26??_C@_01BKLHPGGG@?j?$AA@
27??_C@_01DBJKKFKF@?i?$AA@
28??_C@_01CIIBJEOE@?h?$AA@
29??_C@_01KPBJIICL@?g?$AA@
30??_C@_01LGACLJGK@?f?$AA@
31??_C@_01JNCPOKKJ@?e?$AA@
32??_C@_01IEDENLOI@?d?$AA@
33??_C@_01MLHFENCP@?c?$AA@
34??_C@_01NCGOHMGO@?b?$AA@
35??_C@_01PJEDCPKN@?a?$AA@
36??_C@_01OAFIBOOM@?$OA?$AA@
37??_C@_01LIIGDENA@?$NP?$AA@
38??_C@_01KBJNAFJB@?$NO?$AA@
39??_C@_01IKLAFGFC@?$NN?$AA@
40??_C@_01JDKLGHBD@?$NM?$AA@
41??_C@_01NMOKPBNE@?$NL?$AA@
42??_C@_01MFPBMAJF@?Z?$AA@
43??_C@_01OONMJDFG@?Y?$AA@
44??_C@_01PHMHKCBH@?X?$AA@
45??_C@_01HAFPLONI@?W?$AA@
46??_C@_01GJEEIPJJ@?V?$AA@
47??_C@_01ECGJNMFK@?U?$AA@
48??_C@_01FLHCONBL@?T?$AA@
49??_C@_01BEDDHLNM@?S?$AA@
50??_C@_01NCIEKJN@?R?$AA@
51??_C@_01CGAFBJFO@?Q?$AA@
52??_C@_01DPBOCIBP@?P?$AA@
53??_C@_01PCEECGIB@?O?$AA@
54??_C@_01OLFPBHMA@?N?$AA@
55??_C@_01MAHCEEAD@?M?$AA@
56??_C@_01NJGJHFEC@?L?$AA@
57??_C@_01JGCIODIF@?K?$AA@
58??_C@_01IPDDNCME@?J?$AA@
59??_C@_01KEBOIBAH@?I?$AA@
60??_C@_01LNAFLAEG@?H?$AA@
61??_C@_01DKJNKMIJ@?G?$AA@
62??_C@_01CDIGJNMI@?F?$AA@
63??_C@_01IKLMOAL@?E?$AA@
64??_C@_01BBLAPPEK@?D?$AA@
65??_C@_01FOPBGJIN@?C?$AA@
66??_C@_01EHOKFIMM@?B?$AA@
67??_C@_01GMMHALAP@?A?$AA@
68??_C@_01HFNMDKEO@?$MA?$AA@
69??_C@_01NNHLFPHH@?$LP?$AA@
70??_C@_01MEGAGODG@?$LO?$AA@
71??_C@_01OPENDNPF@?$LN?$AA@
72??_C@_01PGFGAMLE@?$LM?$AA@
73??_C@_01LJBHJKHD@?$LL?$AA@
74??_C@_01KAAMKLDC@?$LK?$AA@
75??_C@_01ILCBPIPB@?$LJ?$AA@
76??_C@_01JCDKMJLA@?$LI?$AA@
77??_C@_01BFKCNFHP@?$LH?$AA@
78??_C@_01MLJOEDO@?$LG?$AA@
79??_C@_01CHJELHPN@?$LF?$AA@
80??_C@_01DOIPIGLM@?$LE?$AA@
81??_C@_01HBMOBAHL@?$LD?$AA@
82??_C@_01GINFCBDK@?$LC?$AA@
83??_C@_01EDPIHCPJ@?$LB?$AA@
84??_C@_01FKODEDLI@?$LA?$AA@
85??_C@_01JHLJENCG@?$KP?$AA@
86??_C@_01IOKCHMGH@?$KO?$AA@
87??_C@_01KFIPCPKE@?$KN?$AA@
88??_C@_01LMJEBOOF@?$KM?$AA@
89??_C@_01PDNFIICC@?$KL?$AA@
90??_C@_01OKMOLJGD@?$KK?$AA@
91??_C@_01MBODOKKA@?$KJ?$AA@
92??_C@_01NIPINLOB@?$KI?$AA@
93??_C@_01FPGAMHCO@?$KH?$AA@
94??_C@_01EGHLPGGP@?$KG?$AA@
95??_C@_01GNFGKFKM@?$KF?$AA@
96??_C@_01HEENJEON@?$KE?$AA@
97??_C@_01DLAMACCK@?$KD?$AA@
98??_C@_01CCBHDDGL@?$KC?$AA@
99??_C@_01JDKGAKI@?$KB?$AA@
100??_C@_01BACBFBOJ@?$KA?$AA@
101??_C@_01EIPPHLNF@?$JP?$AA@
102??_C@_01FBOEEKJE@?$JO?$AA@
103??_C@_01HKMJBJFH@?$JN?$AA@
104??_C@_01GDNCCIBG@?$JM?$AA@
105??_C@_01CMJDLONB@?$JL?$AA@
106??_C@_01DFIIIPJA@?$JK?$AA@
107??_C@_01BOKFNMFD@?$JJ?$AA@
108??_C@_01HLOONBC@?$JI?$AA@
109??_C@_01IACGPBNN@?$JH?$AA@
110??_C@_01JJDNMAJM@?$JG?$AA@
111??_C@_01LCBAJDFP@?$JF?$AA@
112??_C@_01KLALKCBO@?$JE?$AA@
113??_C@_01OEEKDENJ@?$JD?$AA@
114??_C@_01PNFBAFJI@?$JC?$AA@
115??_C@_01NGHMFGFL@?$JB?$AA@
116??_C@_01MPGHGHBK@?$JA?$AA@
117??_C@_01CDNGJIE@?$IP?$AA@
118??_C@_01BLCGFIMF@?$IO?$AA@
119??_C@_01DAALALAG@?$IN?$AA@
120??_C@_01CJBADKEH@?$IM?$AA@
121??_C@_01GGFBKMIA@?$IL?$AA@
122??_C@_01HPEKJNMB@?$IK?$AA@
123??_C@_01FEGHMOAC@?$IJ?$AA@
124??_C@_01ENHMPPED@?$II?$AA@
125??_C@_01MKOEODIM@?$IH?$AA@
126??_C@_01NDPPNCMN@?$IG?$AA@
127??_C@_01PINCIBAO@?$IF?$AA@
128??_C@_01OBMJLAEP@?$IE?$AA@
129??_C@_01KOIICGII@?$ID?$AA@
130??_C@_01LHJDBHMJ@?$IC?$AA@
131??_C@_01JMLOEEAK@?$IB?$AA@
132??_C@_01IFKFHFEL@?$IA?$AA@
133??_C@_01BGIBIIDJ@?$HP?$AA@
134??_C@_01PJKLJHI@?$HO?$AA@
135??_C@_01CELHOKLL@?$HN?$AA@
136??_C@_01DNKMNLPK@?$HM?$AA@
137??_C@_01HCONENDN@?$HL?$AA@
138??_C@_01GLPGHMHM@z?$AA@
139??_C@_01EANLCPLP@y?$AA@
140??_C@_01FJMABOPO@x?$AA@
141??_C@_01NOFIACDB@w?$AA@
142??_C@_01MHEDDDHA@v?$AA@
143??_C@_01OMGOGALD@u?$AA@
144??_C@_01PFHFFBPC@t?$AA@
145??_C@_01LKDEMHDF@s?$AA@
146??_C@_01KDCPPGHE@r?$AA@
147??_C@_01IIACKFLH@q?$AA@
148??_C@_01JBBJJEPG@p?$AA@
149??_C@_01FMEDJKGI@o?$AA@
150??_C@_01EFFIKLCJ@n?$AA@
151??_C@_01GOHFPIOK@m?$AA@
152??_C@_01HHGOMJKL@l?$AA@
153??_C@_01DICPFPGM@k?$AA@
154??_C@_01CBDEGOCN@j?$AA@
155??_C@_01KBJDNOO@i?$AA@
156??_C@_01BDACAMKP@h?$AA@
157??_C@_01JEJKBAGA@g?$AA@
158??_C@_01INIBCBCB@f?$AA@
159??_C@_01KGKMHCOC@e?$AA@
160??_C@_01LPLHEDKD@d?$AA@
161??_C@_01PAPGNFGE@c?$AA@
162??_C@_01OJONOECF@b?$AA@
163??_C@_01MCMALHOG@a?$AA@
164??_C@_01NLNLIGKH@?$GA?$AA@
165??_C@_01IDAFKMJL@_?$AA@
166??_C@_01JKBOJNNK@?$FO?$AA@
167??_C@_01LBDDMOBJ@?$FN?$AA@
168??_C@_01KICIPPFI@?2?$AA@
169??_C@_01OHGJGJJP@?$FL?$AA@
170??_C@_01POHCFINO@Z?$AA@
171??_C@_01NFFPALBN@Y?$AA@
172??_C@_01MMEEDKFM@X?$AA@
173??_C@_01ELNMCGJD@W?$AA@
174??_C@_01FCMHBHNC@V?$AA@
175??_C@_01HJOKEEBB@U?$AA@
176??_C@_01GAPBHFFA@T?$AA@
177??_C@_01CPLAODJH@S?$AA@
178??_C@_01DGKLNCNG@R?$AA@
179??_C@_01BNIGIBBF@Q?$AA@
180??_C@_01EJNLAFE@P?$AA@
181??_C@_01MJMHLOMK@O?$AA@
182??_C@_01NANMIPIL@N?$AA@
183??_C@_01PLPBNMEI@M?$AA@
184??_C@_01OCOKONAJ@L?$AA@
185??_C@_01KNKLHLMO@K?$AA@
186??_C@_01LELAEKIP@J?$AA@
187??_C@_01JPJNBJEM@I?$AA@
188??_C@_01IGIGCIAN@H?$AA@
189??_C@_01BBODEMC@G?$AA@
190??_C@_01BIAFAFID@F?$AA@
191??_C@_01DDCIFGEA@E?$AA@
192??_C@_01CKDDGHAB@D?$AA@
193??_C@_01GFHCPBMG@C?$AA@
194??_C@_01HMGJMAIH@B?$AA@
195??_C@_01FHEEJDEE@A?$AA@
196??_C@_01EOFPKCAF@?$EA?$AA@
197??_C@_01OGPIMHDM@?$DP?$AA@
198??_C@_01PPODPGHN@?$DO?$AA@
199??_C@_01NEMOKFLO@?$DN?$AA@
200??_C@_01MNNFJEPP@?$DM?$AA@
201??_C@_01ICJEACDI@?$DL?$AA@
202??_C@_01JLIPDDHJ@?3?$AA@
203??_C@_01LAKCGALK@9?$AA@
204??_C@_01KJLJFBPL@8?$AA@
205??_C@_01COCBENDE@7?$AA@
206??_C@_01DHDKHMHF@6?$AA@
207??_C@_01BMBHCPLG@5?$AA@
208??_C@_01FAMBOPH@4?$AA@
209??_C@_01EKENIIDA@3?$AA@
210??_C@_01FDFGLJHB@2?$AA@
211??_C@_01HIHLOKLC@1?$AA@
212??_C@_01GBGANLPD@0?$AA@
213??_C@_01KMDKNFGN@?1?$AA@
214??_C@_01LFCBOECM@?4?$AA@
215??_C@_01JOAMLHOP@?9?$AA@
216??_C@_01IHBHIGKO@?0?$AA@
217??_C@_01MIFGBAGJ@?$CL?$AA@
218??_C@_01NBENCBCI@?$CK?$AA@
219??_C@_01PKGAHCOL@?$CJ?$AA@
220??_C@_01ODHLEDKK@?$CI?$AA@
221??_C@_01GEODFPGF@?8?$AA@
222??_C@_01HNPIGOCE@?$CG?$AA@
223??_C@_01FGNFDNOH@?$CF?$AA@
224??_C@_01EPMOAMKG@$?$AA@
225??_C@_01IPJKGB@?$CD?$AA@
226??_C@_01BJJEKLCA@?$CC?$AA@
227??_C@_01DCLJPIOD@?$CB?$AA@
228??_C@_01CLKCMJKC@?5?$AA@
229??_C@_01HDHMODJO@?$BP?$AA@
230??_C@_01GKGHNCNP@?$BO?$AA@
231??_C@_01EBEKIBBM@?$BN?$AA@
232??_C@_01FIFBLAFN@?$BM?$AA@
233??_C@_01BHBACGJK@?$BL?$AA@
234??_C@_01OALBHNL@?$BK?$AA@
235??_C@_01CFCGEEBI@?$BJ?$AA@
236??_C@_01DMDNHFFJ@?$BI?$AA@
237??_C@_01LLKFGJJG@?$BH?$AA@
238??_C@_01KCLOFINH@?$BG?$AA@
239??_C@_01IJJDALBE@?$BF?$AA@
240??_C@_01JAIIDKFF@?$BE?$AA@
241??_C@_01NPMJKMJC@?$BD?$AA@
242??_C@_01MGNCJNND@?$BC?$AA@
243??_C@_01ONPPMOBA@?$BB?$AA@
244??_C@_01PEOEPPFB@?$BA?$AA@
245??_C@_01DJLOPBMP@?$AP?$AA@
246??_C@_01CAKFMAIO@?$AO?$AA@
247??_C@_01LIIJDEN@?$AN?$AA@
248??_C@_01BCJDKCAM@?$AM?$AA@
249??_C@_01FNNCDEML@?$AL?$AA@
250??_C@_01EEMJAFIK@?6?$AA@
251??_C@_01GPOEFGEJ@?7?$AA@
252??_C@_01HGPPGHAI@?$AI?$AA@
253??_C@_01PBGHHLMH@?$AH?$AA@
254??_C@_01OIHMEKIG@?$AG?$AA@
255??_C@_01MDFBBJEF@?$AF?$AA@
256??_C@_01NKEKCIAE@?$AE?$AA@
257??_C@_01JFALLOMD@?$AD?$AA@
258??_C@_01IMBAIPIC@?$AC?$AA@
259??_C@_01KHDNNMEB@?$AB?$AA@
260??_C@_01LOCGONAA@?$AA?$AA@
261
262; CHECK: "\xFF"
263; CHECK: "\xFE"
264; CHECK: "\xFD"
265; CHECK: "\xFC"
266; CHECK: "\xFB"
267; CHECK: "\xFA"
268; CHECK: "\xF9"
269; CHECK: "\xF8"
270; CHECK: "\xF7"
271; CHECK: "\xF6"
272; CHECK: "\xF5"
273; CHECK: "\xF4"
274; CHECK: "\xF3"
275; CHECK: "\xF2"
276; CHECK: "\xF1"
277; CHECK: "\xF0"
278; CHECK: "\xEF"
279; CHECK: "\xEE"
280; CHECK: "\xED"
281; CHECK: "\xEC"
282; CHECK: "\xEB"
283; CHECK: "\xEA"
284; CHECK: "\xE9"
285; CHECK: "\xE8"
286; CHECK: "\xE7"
287; CHECK: "\xE6"
288; CHECK: "\xE5"
289; CHECK: "\xE4"
290; CHECK: "\xE3"
291; CHECK: "\xE2"
292; CHECK: "\xE1"
293; CHECK: "\xE0"
294; CHECK: "\xDF"
295; CHECK: "\xDE"
296; CHECK: "\xDD"
297; CHECK: "\xDC"
298; CHECK: "\xDB"
299; CHECK: "\xDA"
300; CHECK: "\xD9"
301; CHECK: "\xD8"
302; CHECK: "\xD7"
303; CHECK: "\xD6"
304; CHECK: "\xD5"
305; CHECK: "\xD4"
306; CHECK: "\xD3"
307; CHECK: "\xD2"
308; CHECK: "\xD1"
309; CHECK: "\xD0"
310; CHECK: "\xCF"
311; CHECK: "\xCE"
312; CHECK: "\xCD"
313; CHECK: "\xCC"
314; CHECK: "\xCB"
315; CHECK: "\xCA"
316; CHECK: "\xC9"
317; CHECK: "\xC8"
318; CHECK: "\xC7"
319; CHECK: "\xC6"
320; CHECK: "\xC5"
321; CHECK: "\xC4"
322; CHECK: "\xC3"
323; CHECK: "\xC2"
324; CHECK: "\xC1"
325; CHECK: "\xC0"
326; CHECK: "\xBF"
327; CHECK: "\xBE"
328; CHECK: "\xBD"
329; CHECK: "\xBC"
330; CHECK: "\xBB"
331; CHECK: "\xBA"
332; CHECK: "\xB9"
333; CHECK: "\xB8"
334; CHECK: "\xB7"
335; CHECK: "\xB6"
336; CHECK: "\xB5"
337; CHECK: "\xB4"
338; CHECK: "\xB3"
339; CHECK: "\xB2"
340; CHECK: "\xB1"
341; CHECK: "\xB0"
342; CHECK: "\xAF"
343; CHECK: "\xAE"
344; CHECK: "\xAD"
345; CHECK: "\xAC"
346; CHECK: "\xAB"
347; CHECK: "\xAA"
348; CHECK: "\xA9"
349; CHECK: "\xA8"
350; CHECK: "\xA7"
351; CHECK: "\xA6"
352; CHECK: "\xA5"
353; CHECK: "\xA4"
354; CHECK: "\xA3"
355; CHECK: "\xA2"
356; CHECK: "\xA1"
357; CHECK: "\xA0"
358; CHECK: "\x9F"
359; CHECK: "\x9E"
360; CHECK: "\x9D"
361; CHECK: "\x9C"
362; CHECK: "\x9B"
363; CHECK: "\x9A"
364; CHECK: "\x99"
365; CHECK: "\x98"
366; CHECK: "\x97"
367; CHECK: "\x96"
368; CHECK: "\x95"
369; CHECK: "\x94"
370; CHECK: "\x93"
371; CHECK: "\x92"
372; CHECK: "\x91"
373; CHECK: "\x90"
374; CHECK: "\x8F"
375; CHECK: "\x8E"
376; CHECK: "\x8D"
377; CHECK: "\x8C"
378; CHECK: "\x8B"
379; CHECK: "\x8A"
380; CHECK: "\x89"
381; CHECK: "\x88"
382; CHECK: "\x87"
383; CHECK: "\x86"
384; CHECK: "\x85"
385; CHECK: "\x84"
386; CHECK: "\x83"
387; CHECK: "\x82"
388; CHECK: "\x81"
389; CHECK: "\x80"
390; CHECK: "\x7F"
391; CHECK: "~"
392; CHECK: "}"
393; CHECK: "|"
394; CHECK: "{"
395; CHECK: "z"
396; CHECK: "y"
397; CHECK: "x"
398; CHECK: "w"
399; CHECK: "v"
400; CHECK: "u"
401; CHECK: "t"
402; CHECK: "s"
403; CHECK: "r"
404; CHECK: "q"
405; CHECK: "p"
406; CHECK: "o"
407; CHECK: "n"
408; CHECK: "m"
409; CHECK: "l"
410; CHECK: "k"
411; CHECK: "j"
412; CHECK: "i"
413; CHECK: "h"
414; CHECK: "g"
415; CHECK: "f"
416; CHECK: "e"
417; CHECK: "d"
418; CHECK: "c"
419; CHECK: "b"
420; CHECK: "a"
421; CHECK: "`"
422; CHECK: "_"
423; CHECK: "^"
424; CHECK: "]"
425; CHECK: "\\"
426; CHECK: "["
427; CHECK: "Z"
428; CHECK: "Y"
429; CHECK: "X"
430; CHECK: "W"
431; CHECK: "V"
432; CHECK: "U"
433; CHECK: "T"
434; CHECK: "S"
435; CHECK: "R"
436; CHECK: "Q"
437; CHECK: "P"
438; CHECK: "O"
439; CHECK: "N"
440; CHECK: "M"
441; CHECK: "L"
442; CHECK: "K"
443; CHECK: "J"
444; CHECK: "I"
445; CHECK: "H"
446; CHECK: "G"
447; CHECK: "F"
448; CHECK: "E"
449; CHECK: "D"
450; CHECK: "C"
451; CHECK: "B"
452; CHECK: "A"
453; CHECK: "@"
454; CHECK: "?"
455; CHECK: ">"
456; CHECK: "="
457; CHECK: "<"
458; CHECK: ";"
459; CHECK: ":"
460; CHECK: "9"
461; CHECK: "8"
462; CHECK: "7"
463; CHECK: "6"
464; CHECK: "5"
465; CHECK: "4"
466; CHECK: "3"
467; CHECK: "2"
468; CHECK: "1"
469; CHECK: "0"
470; CHECK: "/"
471; CHECK: "."
472; CHECK: "-"
473; CHECK: ","
474; CHECK: "+"
475; CHECK: "*"
476; CHECK: ")"
477; CHECK: "("
478; CHECK: "\'"
479; CHECK: "&"
480; CHECK: "%"
481; CHECK: "$"
482; CHECK: "#"
483; CHECK: "\""
484; CHECK: "!"
485; CHECK: " "
486; CHECK: "\x1F"
487; CHECK: "\x1E"
488; CHECK: "\x1D"
489; CHECK: "\x1C"
490; CHECK: "\x1B"
491; CHECK: "\x1A"
492; CHECK: "\x19"
493; CHECK: "\x18"
494; CHECK: "\x17"
495; CHECK: "\x16"
496; CHECK: "\x15"
497; CHECK: "\x14"
498; CHECK: "\x13"
499; CHECK: "\x12"
500; CHECK: "\x11"
501; CHECK: "\x10"
502; CHECK: "\x0F"
503; CHECK: "\x0E"
504; CHECK: "\r"
505; CHECK: "\f"
506; CHECK: "\v"
507; CHECK: "\n"
508; CHECK: "\t"
509; CHECK: "\b"
510; CHECK: "\a"
511; CHECK: "\x06"
512; CHECK: "\x05"
513; CHECK: "\x04"
514; CHECK: "\x03"
515; CHECK: "\x02"
516; CHECK: "\x01"
517
518; The mangling doesn't distinguish between char and char16 types, so even though
519; this was originally written as a char[] with one embedded null, it mangles
520; identically to a char16_t[] that is empty.  So when demangling, we choose the
521; "smartest" one, which happened to be wrong, but it's still a "better"
522; demangling.
523; CHECK: u""
524
525
526??_C@_13KDLDGPGJ@?$AA?7?$AA?$AA@
527??_C@_13LBAGMAIH@?$AA?6?$AA?$AA@
528??_C@_13JLKKHOC@?$AA?$AL?$AA?$AA@
529??_C@_13HOIJIPNN@?$AA?5?$AA?$AA@
530??_C@_13MGDFOILI@?$AA?$CB?$AA?$AA@
531??_C@_13NEIAEHFG@?$AA?$CC?$AA?$AA@
532??_C@_13GMDMCADD@?$AA?$CD?$AA?$AA@
533??_C@_13PBOLBIIK@?$AA$?$AA?$AA@
534??_C@_13EJFHHPOP@?$AA?$CF?$AA?$AA@
535??_C@_13FLOCNAAB@?$AA?$CG?$AA?$AA@
536??_C@_13ODFOLHGE@?$AA?8?$AA?$AA@
537??_C@_13LLDNKHDC@?$AA?$CI?$AA?$AA@
538??_C@_13DIBMAFH@?$AA?$CJ?$AA?$AA@
539??_C@_13BBDEGPLJ@?$AA?$CK?$AA?$AA@
540??_C@_13KJIIAINM@?$AA?$CL?$AA?$AA@
541??_C@_13DEFPDAGF@?$AA?0?$AA?$AA@
542??_C@_13IMODFHAA@?$AA?9?$AA?$AA@
543??_C@_13JOFGPIOO@?$AA?4?$AA?$AA@
544??_C@_13CGOKJPIL@?$AA?1?$AA?$AA@
545??_C@_13COJANIEC@?$AA0?$AA?$AA@
546??_C@_13JGCMLPCH@?$AA1?$AA?$AA@
547??_C@_13IEJJBAMJ@?$AA2?$AA?$AA@
548??_C@_13DMCFHHKM@?$AA3?$AA?$AA@
549??_C@_13KBPCEPBF@?$AA4?$AA?$AA@
550??_C@_13BJEOCIHA@?$AA5?$AA?$AA@
551??_C@_13LPLIHJO@?$AA6?$AA?$AA@
552??_C@_13LDEHOAPL@?$AA7?$AA?$AA@
553??_C@_13OLCEPAKN@?$AA8?$AA?$AA@
554??_C@_13FDJIJHMI@?$AA9?$AA?$AA@
555??_C@_13EBCNDICG@?$AA?3?$AA?$AA@
556??_C@_13PJJBFPED@?$AA?$DL?$AA?$AA@
557??_C@_13GEEGGHPK@?$AA?$DM?$AA?$AA@
558??_C@_13NMPKAAJP@?$AA?$DN?$AA?$AA@
559??_C@_13MOEPKPHB@?$AA?$DO?$AA?$AA@
560??_C@_13HGPDMIBE@?$AA?$DP?$AA?$AA@
561??_C@_13EFKPHINO@?$AA?$EA?$AA?$AA@
562??_C@_13PNBDBPLL@?$AAA?$AA?$AA@
563??_C@_13OPKGLAFF@?$AAB?$AA?$AA@
564??_C@_13FHBKNHDA@?$AAC?$AA?$AA@
565??_C@_13MKMNOPIJ@?$AAD?$AA?$AA@
566??_C@_13HCHBIIOM@?$AAE?$AA?$AA@
567??_C@_13GAMECHAC@?$AAF?$AA?$AA@
568??_C@_13NIHIEAGH@?$AAG?$AA?$AA@
569??_C@_13IABLFADB@?$AAH?$AA?$AA@
570??_C@_13DIKHDHFE@?$AAI?$AA?$AA@
571??_C@_13CKBCJILK@?$AAJ?$AA?$AA@
572??_C@_13JCKOPPNP@?$AAK?$AA?$AA@
573??_C@_13PHJMHGG@?$AAL?$AA?$AA@
574??_C@_13LHMFKAAD@?$AAM?$AA?$AA@
575??_C@_13KFHAAPON@?$AAN?$AA?$AA@
576??_C@_13BNMMGIII@?$AAO?$AA?$AA@
577??_C@_13BFLGCPEB@?$AAP?$AA?$AA@
578??_C@_13KNAKEICE@?$AAQ?$AA?$AA@
579??_C@_13LPLPOHMK@?$AAR?$AA?$AA@
580??_C@_13HADIAKP@?$AAS?$AA?$AA@
581??_C@_13JKNELIBG@?$AAT?$AA?$AA@
582??_C@_13CCGINPHD@?$AAU?$AA?$AA@
583??_C@_13DANNHAJN@?$AAV?$AA?$AA@
584??_C@_13IIGBBHPI@?$AAW?$AA?$AA@
585??_C@_13NAACAHKO@?$AAX?$AA?$AA@
586??_C@_13GILOGAML@?$AAY?$AA?$AA@
587??_C@_13HKALMPCF@?$AAZ?$AA?$AA@
588??_C@_13MCLHKIEA@?$AA?$FL?$AA?$AA@
589??_C@_13FPGAJAPJ@?$AA?2?$AA?$AA@
590??_C@_13OHNMPHJM@?$AA?$FN?$AA?$AA@
591??_C@_13PFGJFIHC@?$AA?$FO?$AA?$AA@
592??_C@_13ENNFDPBH@?$AA_?$AA?$AA@
593??_C@_13OFJNNHOA@?$AA?$GA?$AA?$AA@
594??_C@_13FNCBLAIF@?$AAa?$AA?$AA@
595??_C@_13EPJEBPGL@?$AAb?$AA?$AA@
596??_C@_13PHCIHIAO@?$AAc?$AA?$AA@
597??_C@_13GKPPEALH@?$AAd?$AA?$AA@
598??_C@_13NCEDCHNC@?$AAe?$AA?$AA@
599??_C@_13MAPGIIDM@?$AAf?$AA?$AA@
600??_C@_13HIEKOPFJ@?$AAg?$AA?$AA@
601??_C@_13CACJPPAP@?$AAh?$AA?$AA@
602??_C@_13JIJFJIGK@?$AAi?$AA?$AA@
603??_C@_13IKCADHIE@?$AAj?$AA?$AA@
604??_C@_13DCJMFAOB@?$AAk?$AA?$AA@
605??_C@_13KPELGIFI@?$AAl?$AA?$AA@
606??_C@_13BHPHAPDN@?$AAm?$AA?$AA@
607??_C@_13FECKAND@?$AAn?$AA?$AA@
608??_C@_13LNPOMHLG@?$AAo?$AA?$AA@
609??_C@_13LFIEIAHP@?$AAp?$AA?$AA@
610??_C@_13NDIOHBK@?$AAq?$AA?$AA@
611??_C@_13BPINEIPE@?$AAr?$AA?$AA@
612??_C@_13KHDBCPJB@?$AAs?$AA?$AA@
613??_C@_13DKOGBHCI@?$AAt?$AA?$AA@
614??_C@_13ICFKHAEN@?$AAu?$AA?$AA@
615??_C@_13JAOPNPKD@?$AAv?$AA?$AA@
616??_C@_13CIFDLIMG@?$AAw?$AA?$AA@
617??_C@_13HADAKIJA@?$AAx?$AA?$AA@
618??_C@_13MIIMMPPF@?$AAy?$AA?$AA@
619??_C@_13NKDJGABL@?$AAz?$AA?$AA@
620??_C@_13GCIFAHHO@?$AA?$HL?$AA?$AA@
621??_C@_13PPFCDPMH@?$AA?$HM?$AA?$AA@
622??_C@_13EHOOFIKC@?$AA?$HN?$AA?$AA@
623??_C@_13FFFLPHEM@?$AA?$HO?$AA?$AA@
624
625; CHECK: L"\t"
626; CHECK: L"\n"
627; CHECK: L"\v"
628; CHECK: L" "
629; CHECK: L"!"
630; CHECK: L"\""
631; CHECK: L"#"
632; CHECK: L"$"
633; CHECK: L"%"
634; CHECK: L"&"
635; CHECK: L"\'"
636; CHECK: L"("
637; CHECK: L")"
638; CHECK: L"*"
639; CHECK: L"+"
640; CHECK: L","
641; CHECK: L"-"
642; CHECK: L"."
643; CHECK: L"/"
644; CHECK: L"0"
645; CHECK: L"1"
646; CHECK: L"2"
647; CHECK: L"3"
648; CHECK: L"4"
649; CHECK: L"5"
650; CHECK: L"6"
651; CHECK: L"7"
652; CHECK: L"8"
653; CHECK: L"9"
654; CHECK: L":"
655; CHECK: L";"
656; CHECK: L"<"
657; CHECK: L"="
658; CHECK: L">"
659; CHECK: L"?"
660; CHECK: L"@"
661; CHECK: L"A"
662; CHECK: L"B"
663; CHECK: L"C"
664; CHECK: L"D"
665; CHECK: L"E"
666; CHECK: L"F"
667; CHECK: L"G"
668; CHECK: L"H"
669; CHECK: L"I"
670; CHECK: L"J"
671; CHECK: L"K"
672; CHECK: L"L"
673; CHECK: L"M"
674; CHECK: L"N"
675; CHECK: L"O"
676; CHECK: L"P"
677; CHECK: L"Q"
678; CHECK: L"R"
679; CHECK: L"S"
680; CHECK: L"T"
681; CHECK: L"U"
682; CHECK: L"V"
683; CHECK: L"W"
684; CHECK: L"X"
685; CHECK: L"Y"
686; CHECK: L"Z"
687; CHECK: L"["
688; CHECK: L"\\"
689; CHECK: L"]"
690; CHECK: L"^"
691; CHECK: L"_"
692; CHECK: L"`"
693; CHECK: L"a"
694; CHECK: L"b"
695; CHECK: L"c"
696; CHECK: L"d"
697; CHECK: L"e"
698; CHECK: L"f"
699; CHECK: L"g"
700; CHECK: L"h"
701; CHECK: L"i"
702; CHECK: L"j"
703; CHECK: L"k"
704; CHECK: L"l"
705; CHECK: L"m"
706; CHECK: L"n"
707; CHECK: L"o"
708; CHECK: L"p"
709; CHECK: L"q"
710; CHECK: L"r"
711; CHECK: L"s"
712; CHECK: L"t"
713; CHECK: L"u"
714; CHECK: L"v"
715; CHECK: L"w"
716; CHECK: L"x"
717; CHECK: L"y"
718; CHECK: L"z"
719; CHECK: L"{"
720; CHECK: L"|"
721; CHECK: L"}"
722; CHECK: L"~"
723
724
725
726??_C@_0CF@LABBIIMO@012345678901234567890123456789AB@
727; CHECK: "012345678901234567890123456789AB"...
728
729??_C@_1EK@KFPEBLPK@?$AA0?$AA1?$AA2?$AA3?$AA4?$AA5?$AA6?$AA7?$AA8?$AA9?$AA0?$AA1?$AA2?$AA3?$AA4?$AA5?$AA6?$AA7?$AA8?$AA9?$AA0?$AA1?$AA2?$AA3?$AA4?$AA5?$AA6?$AA7?$AA8?$AA9?$AAA?$AAB@
730; CHECK: L"012345678901234567890123456789AB"...
731
732??_C@_13IIHIAFKH@?W?$PP?$AA?$AA@
733; CHECK: L"\xD7FF"
734
735??_C@_03IIHIAFKH@?$PP?W?$AA?$AA@
736; CHECK: u"\xD7FF"
737
738??_C@_02PCEFGMJL@hi?$AA@
739; CHECK: "hi"
740
741??_C@_05OMLEGLOC@h?$AAi?$AA?$AA?$AA@
742; CHECK: u"hi"
743
744??_C@_0EK@FEAOBHPP@o?$AA1?$AA2?$AA3?$AA4?$AA5?$AA6?$AA7?$AA8?$AA9?$AA0?$AA1?$AA2?$AA3?$AA4?$AA5?$AA@
745; CHECK: u"o123456789012345"...
746
747??_C@_0M@GFNAJIPG@h?$AA?$AA?$AAi?$AA?$AA?$AA?$AA?$AA?$AA?$AA@
748; CHECK: U"hi"
749
750??_C@_0JE@IMHFEDAA@0?$AA?$AA?$AA1?$AA?$AA?$AA2?$AA?$AA?$AA3?$AA?$AA?$AA4?$AA?$AA?$AA5?$AA?$AA?$AA6?$AA?$AA?$AA7?$AA?$AA?$AA@
751; CHECK: U"01234567"...
752
753; These all have just the right length that the trailing 0 just fits.
754??_C@_0CA@NMANGEKF@012345678901234567890123456789A?$AA@
755; CHECK: "012345678901234567890123456789A"
756
757??_C@_1EA@LJAFPILO@?$AA0?$AA1?$AA2?$AA3?$AA4?$AA5?$AA6?$AA7?$AA8?$AA9?$AA0?$AA1?$AA2?$AA3?$AA4?$AA5?$AA6?$AA7?$AA8?$AA9?$AA0?$AA1?$AA2?$AA3?$AA4?$AA5?$AA6?$AA7?$AA8?$AA9?$AAA?$AA?$AA@
758; CHECK: L"012345678901234567890123456789A"
759
760??_C@_0CA@NMANGEKF@012345678901234567890123456789A?$AA@
761; CHECK: "012345678901234567890123456789A"
762
763??_C@_0CA@NFEFHIFO@0?$AA1?$AA2?$AA3?$AA4?$AA5?$AA6?$AA7?$AA8?$AA9?$AA0?$AA1?$AA2?$AA3?$AA4?$AA?$AA?$AA@
764; CHECK: u"012345678901234"
765
766??_C@_0CA@KFPHPCC@0?$AA?$AA?$AA1?$AA?$AA?$AA2?$AA?$AA?$AA3?$AA?$AA?$AA4?$AA?$AA?$AA5?$AA?$AA?$AA6?$AA?$AA?$AA?$AA?$AA?$AA?$AA@
767; CHECK: U"0123456"
768
769; There are too many bytes encoded in this string literal (it should encode a max of 32 bytes)
770; but some buggy compilers will incorrectly generate this, so we need to be able to demangle
771; both the correct and incorrect versions.
772??_C@_0CG@HJGBPLNO@l?$AAo?$AAo?$AAk?$AAA?$AAh?$AAe?$AAa?$AAd?$AAH?$AAa?$AAr?$AAd?$AAB?$AAr?$AAe?$AAa?$AAk?$AA?$AA?$AA@
773; CHECK: u"lookAheadHardBreak"
774
775??_C@_0CG@HJGBPLNO@l?$AAo?$AAo?$AAk?$AAA?$AAh?$AAe?$AAa?$AAd?$AAH?$AAa?$AAr?$AAd?$AAB?$AAr?$AAe?$AA@
776; CHECK: u"lookAheadHardBre"...
777
778
779; These are u16 strings that the diagnostic would classify as u32 -- except
780; that their byte length % 4 is 2, so they can't be u32.
781
782??_C@_05LABPAAN@b?$AA?$AA?$AA?$AA?$AA@
783; CHECK: u"b\0"
784
785??_C@_0CC@MBPKDIAM@a?$AA?$AA?$AAb?$AA?$AA?$AAc?$AA?$AA?$AAd?$AA?$AA?$AAe?$AA?$AA?$AAf?$AA?$AA?$AAg?$AA?$AA?$AAh?$AA?$AA?$AA@
786; CHECK: u"a\0b\0c\0d\0e\0f\0g\0h\0"...
787
788; This is technically not a valid u32 string since the character in it is not
789; <= 0x10FFFF like unicode demands. (Also, the crc doesn't match the contents.)
790; It's here because this input used to cause a stack overflow in outputHex().
791; Both cl.exe and clang-cl produce it for `const char32_t* s = U"\x11223344";`
792
793??_C@_07LJGFEJEB@D3?$CC?$BB?$AA?$AA?$AA?$AA@)
794; CHECK: U"\x11223344"
795
796; This has a string length of 0x6_0000_0000, so it's 0 if treated as a 32-bit
797; number. (In practice, 24GiB large string literals should be rare.)
798??_C@_0GAAAAAAAA@GPLEPFHO@01234567890123456789012345678901@
799; CHECK: "01234567890123456789012345678901"...
800