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