1RUN: llvm-cxxfilt -n < %s | FileCheck --match-full-lines %s 2 3CHECK: a::main 4 _RNvC1a4main 5 6CHECK: hello::rust 7 _RNvCshGpAVYOtgW1_5hello4rust 8 9CHECK: a::b::c 10 _RNvNvC1a1b1c 11 12; Instantiating crate 13 14CHECK: crate 15 _RC5crateC3foo 16 17; Closure namespace 18 19CHECK: crate::{closure#0} 20 _RNCC5crate0 21 22CHECK: crate::{closure#1} 23 _RNCC5crates_0 24 25CHECK: crate::{closure:foo#0} 26 _RNCC5crate3foo 27 28CHECK: crate::{closure:foo#1} 29 _RNCC5crates_3foo 30 31; Shim namespace 32 33CHECK: crate::{shim:reify#0} 34 _RNSC5crate5reify 35 36; Unrecognized special namespace 37 38CHECK: crate::{Z:ident#10} 39 _RNZC5crates8_5ident 40 41; Inherent impl 42 43CHECK: <_> 44 _RMC5cratep 45 46CHECK: <_> 47 _RMs_C5cratep 48 49; Trait impl 50 51CHECK: <_ as Clone> 52 _RXC5cratepC5Clone 53 54CHECK: <_ as Clone> 55 _RXs_C5cratepC5Clone 56 57; Trait definition 58 59CHECK: <_ as Ord> 60 _RYpC3Ord 61 62; Generic type arguments 63 64CHECK: generic::<_> 65 _RIC7genericpE 66 67CHECK: generic::<_, _> 68 _RIC7genericppE 69 70CHECK: generic::<_, _, _> 71 _RIC7genericpppE 72 73; Generic const arguments 74 75CHECK: generic_const::<_> 76 _RIC13generic_constKpE 77 78; Generic lifetime arguments 79 80CHECK: generic_lifetime::<'_> 81 _RIC16generic_lifetimeL_E 82 83; Invalid lifetime index. 84 85CHECK: _RIC16generic_lifetimeL0_E 86 _RIC16generic_lifetimeL0_E 87 88; Basic types 89 90CHECK: basic::<i8> 91 _RIC5basicaE 92 93CHECK: basic::<bool> 94 _RIC5basicbE 95 96CHECK: basic::<char> 97 _RIC5basiccE 98 99CHECK: basic::<f64> 100 _RIC5basicdE 101 102CHECK: basic::<str> 103 _RIC5basiceE 104 105CHECK: basic::<f32> 106 _RIC5basicfE 107 108CHECK: basic::<u8> 109 _RIC5basichE 110 111CHECK: basic::<isize> 112 _RIC5basiciE 113 114CHECK: basic::<usize> 115 _RIC5basicjE 116 117CHECK: basic::<i32> 118 _RIC5basiclE 119 120CHECK: basic::<u32> 121 _RIC5basicmE 122 123CHECK: basic::<i128> 124 _RIC5basicnE 125 126CHECK: basic::<u128> 127 _RIC5basicoE 128 129CHECK: basic::<_> 130 _RIC5basicpE 131 132CHECK: basic::<i16> 133 _RIC5basicsE 134 135CHECK: basic::<u16> 136 _RIC5basictE 137 138CHECK: basic::<()> 139 _RIC5basicuE 140 141CHECK: basic::<...> 142 _RIC5basicvE 143 144CHECK: basic::<i64> 145 _RIC5basicxE 146 147CHECK: basic::<u64> 148 _RIC5basicyE 149 150CHECK: basic::<!> 151 _RIC5basiczE 152 153; Named types. Test possible paths productions. 154 155CHECK: named::<name> 156 _RIC5namedC4nameE 157 158CHECK: named::<<_>> 159 _RIC5namedMC5cratepE 160 161CHECK: named::<<_ as Name>> 162 _RIC5namedXC5cratepC4NameE 163 164CHECK: named::<<_ as Name>> 165 _RIC5namedYpC4NameE 166 167CHECK: named::<name::Name> 168 _RIC5namedNvC4name4NameE 169 170CHECK: named::<Name<>> 171 _RIC5namedIC4NameEE 172 173; Types 174 175CHECK: types::<[u8; 0]> 176 _RIC5typesAhj0_E 177 178CHECK: types::<[_]> 179 _RIC5typesSpE 180 181CHECK: types::<()> 182 _RIC5typesTEE 183 184CHECK: types::<(_,)> 185 _RIC5typesTpEE 186 187CHECK: types::<(_, _)> 188 _RIC5typesTppEE 189 190CHECK: types::<(_, _, _)> 191 _RIC5typesTpppEE 192 193CHECK: types::<&_> 194 _RIC5typesRpE 195 196CHECK: types::<&_> 197 _RIC5typesRL_pE 198 199CHECK: types::<&mut _> 200 _RIC5typesQpE 201 202CHECK: types::<&mut _> 203 _RIC5typesQL_pE 204 205CHECK: types::<*const _> 206 _RIC5typesPpE 207 208CHECK: types::<*mut _> 209 _RIC5typesOpE 210 211; Function signatures 212 213CHECK: function::<fn()> 214 _RIC8functionFEuE 215 216CHECK: function::<fn() -> _> 217 _RIC8functionFEpE 218 219CHECK: function::<fn(_)> 220 _RIC8functionFpEuE 221 222CHECK: function::<fn(_, _)> 223 _RIC8functionFppEuE 224 225CHECK: function::<fn(_, _, _)> 226 _RIC8functionFpppEuE 227 228CHECK: function::<unsafe fn()> 229 _RIC8functionFUEuE 230 231CHECK: function::<extern "C" fn()> 232 _RIC8functionFKCEuE 233 234CHECK: function::<extern "cdecl" fn()> 235 _RIC8functionFK5cdeclEuE 236 237CHECK: function::<unsafe extern "C-cmse-nonsecure-call" fn()> 238 _RIC8functionFUK21C_cmse_nonsecure_callEuE 239 240; Invalid ABI with punycode. 241 242CHECK: _RIC8functionFKu3n3hEuE 243 _RIC8functionFKu3n3hEuE 244 245; Trait objects 246 247CHECK: trait::<dyn > 248 _RIC5traitDEL_E 249 250CHECK: trait::<dyn for<'a> > 251 _RIC5traitDG_EL_E 252 253CHECK: trait::<for<'a> fn(dyn for<'b> + 'a)> 254 _RIC5traitFG_DG_EL0_EuE 255 256CHECK: trait::<dyn Display> 257 _RIC5traitDC7DisplayEL_E 258 259CHECK: trait::<dyn Display + Send + Sync> 260 _RIC5traitDC7DisplayC4SendC4SyncEL_E 261 262CHECK: trait::<dyn for<'a> Display> 263 _RIC5traitDG_C7DisplayEL_E 264 265CHECK: trait::<dyn IntoIterator<_, Item = _>> 266 _RIC5traitDIC12IntoIteratorpEp4ItempEL_E 267 268CHECK: trait::<dyn IntoIterator<Item = _>> 269 _RIC5traitDC12IntoIteratorp4ItempEL_E 270 271CHECK: trait::<dyn IntoIterator<Item = _, IntoIter = _>> 272 _RIC5traitDC12IntoIteratorp4Itempp8IntoIterpEL_E 273 274; Invalid trait object, missing lifetime. 275 276CHECK: _RIC5traitDEE 277 _RIC5traitDEE 278 279; Binders 280 281CHECK: binders::<for<'a> fn(&'a _)> 282 _RIC7bindersFG_RL0_pEuE 283 284CHECK: binders::<for<'a> fn(&'a mut _)> 285 _RIC7bindersFG_QL0_pEuE 286 287CHECK: binders::<for<'a, 'b> fn(&'a _, &'b _)> 288 _RIC7bindersFG0_RL1_pRL0_pEuE 289 290CHECK: binders::<for<'a, 'b> fn() -> for<'c, 'd> fn(&'a _, &'d _)> 291 _RIC7bindersFG0_EFG0_RL3_pRL0_pEuE 292 293CHECK: binders::<for<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x, 'y, 'z, 'z1, 'z2, 'z3, 'z4> fn(&'a &'b &'c &'d &'e &'f &'g &'h &'i &'j &'k &'l &'m &'n &'o &'p &'q &'r &'s &'t &'u &'v &'w &'x &'y &'z &'z1 &'z2 &'z3 &'z4 ())> 294 _RIC7bindersFGs_RLt_RLs_RLr_RLq_RLp_RLo_RLn_RLm_RLl_RLk_RLj_RLi_RLh_RLg_RLf_RLe_RLd_RLc_RLb_RLa_RL9_RL8_RL7_RL6_RL5_RL4_RL3_RL2_RL1_RL0_uEuE 295 296; Invalid binder. Too many bound lifetimes. 297 298CHECK: _RIC7bindersFGFF_EuE 299 _RIC7bindersFGFF_EuE 300 301; Integer constants. Test value demangling. 302 303CHECK: integer::<0> 304 _RIC7integerKi0_E 305 306CHECK: integer::<1> 307 _RIC7integerKi1_E 308 309CHECK: integer::<-1> 310 _RIC7integerKin1_E 311 312CHECK: integer::<-15> 313 _RIC7integerKinf_E 314 315CHECK: integer::<-16> 316 _RIC7integerKin10_E 317 318CHECK: integer::<18446744073709551615> 319 _RIC7integerKoffffffffffffffff_E 320 321CHECK: integer::<0x10000000000000000> 322 _RIC7integerKo10000000000000000_E 323 324CHECK: integer::<-0x123456789abcdef01> 325 _RIC7integerKnn123456789abcdef01_E 326 327; Invalid integer constant without any digits: 328 329CHECK: _RIC7integerKi_E 330 _RIC7integerKi_E 331 332; Invalid integer constants with insignificant leading zeros: 333 334CHECK: _RIC7integerKi00_E 335 _RIC7integerKi00_E 336 337CHECK: _RIC7integerKi01_E 338 _RIC7integerKi01_E 339 340; Integer constants. Test all integer types. 341 342CHECK: i8::<0> 343 _RIC2i8Ka0_E 344 345CHECK: u8::<0> 346 _RIC2u8Kh0_E 347 348CHECK: isize::<0> 349 _RIC5isizeKi0_E 350 351CHECK: usize::<0> 352 _RIC5usizeKj0_E 353 354CHECK: i32::<0> 355 _RIC3i32Kl0_E 356 357CHECK: u32::<0> 358 _RIC3u32Km0_E 359 360CHECK: i128::<0> 361 _RIC4i128Kn0_E 362 363CHECK: u128::<0> 364 _RIC4u128Ko0_E 365 366CHECK: i16::<0> 367 _RIC3i16Ks0_E 368 369CHECK: u16::<0> 370 _RIC3u16Kt0_E 371 372CHECK: i64::<0> 373 _RIC3i64Kx0_E 374 375CHECK: u64::<0> 376 _RIC3u64Ky0_E 377 378; Bool constants 379 380CHECK: bool::<false> 381 _RIC4boolKb0_E 382 383CHECK: bool::<true> 384 _RIC4boolKb1_E 385 386; Invalid bool constants 387 388CHECK: _RIC4boolKb2_E 389 _RIC4boolKb2_E 390 391CHECK: _RIC4boolKbn0_E 392 _RIC4boolKbn0_E 393 394; Char constants 395 396CHECK: char::<'a'> 397 _RIC4charKc61_E 398 399CHECK: char::<'"'> 400 _RIC4charKc22_E 401 402CHECK: char::<'\t'> 403 _RIC4charKc9_E 404 405CHECK: char::<'\r'> 406 _RIC4charKcd_E 407 408CHECK: char::<'\n'> 409 _RIC4charKca_E 410 411CHECK: char::<'\\'> 412 _RIC4charKc5c_E 413 414CHECK: char::<'\''> 415 _RIC4charKc27_E 416 417CHECK: char::<'\u{1f40d}'> 418 _RIC4charKc1f40d_E 419 420CHECK: char::<'\u{10ffff}'> 421 _RIC4charKc10ffff_E 422 423; Invalid char constants 424 425CHECK: _RIC4charKc1234567_E 426 _RIC4charKc1234567_E 427 428; Backreferences 429 430CHECK: backref::<backref::ident> 431 _RIC7backrefNvB0_5identE 432 433CHECK: backref::<(), ()> 434 _RIC7backrefuB9_E 435 436CHECK: backref::<7, 7> 437 _RIC7backrefKi7_KBa_E 438 439; Invalid backreferences 440 441CHECK: _RB_ 442 _RB_ 443 444CHECK: _RB5_ 445 _RB5_ 446 447CHECK: _RNvB_1a 448 _RNvB_1a 449 450CHECK: _RIC7backrefSB9_E 451 _RIC7backrefSB9_E 452 453CHECK: _RIC7backrefKBa_E 454 _RIC7backrefKBa_E 455 456; Dot suffix 457 458CHECK: dot (.llvm.1234) 459 _RC3dot.llvm.1234 460 461CHECK: dot (.llvm.6789) 462 _RC3dotC5crate.llvm.6789 463 464; Punycode 465 466CHECK: punycode::東京 467 _RNvC8punycodeu7_1lqs71d 468 469CHECK: punycode::zażółć_gęślą_jaźń 470 _RNvC8punycodeu29za_gl_ja_w3a7psa2tqtgb10airva 471 472CHECK: punycode::საჭმელად_გემრიელი_სადილი 473 _RNvC8punycodeu30____7hkackfecea1cbdathfdh9hlq6y 474 475CHECK: Gödel::Escher::Bach 476 _RNtNvCu8Gdel_5qa6Escher4Bach 477 478CHECK: punycode:: 479 _RNvC8punycodeu7wn8hx1g 480 481; Punycode - invalid code point 482 483CHECK: _RCu5r731r 484 _RCu5r731r 485 486CHECK: _RCu8b44444yy 487 _RCu8b44444yy 488 489CHECK: _RNvC1au25zzzzzzzzzzzzzzzzzzzzzzzzz 490 _RNvC1au25zzzzzzzzzzzzzzzzzzzzzzzzz 491 492; Punycode - early EOF 493 494CHECK: _RCu8_CCCAR_u4 495 _RCu8_CCCAR_u4 496 497; Punycode - overflow 498 499CHECK: _RNvC1au21p18888888888888888888 500 _RNvC1au21p18888888888888888888 501 502; Invalid mangled characters 503 504CHECK: _RNvC2a.1c 505 _RNvC2a.1c 506 507CHECK: _RNvC2a$1c 508 _RNvC2a$1c 509 510; Invalid namespace (not in [a-zA-Z]). 511 512CHECK: _RN_C5crate4main 513 _RN_C5crate4main 514 515; Invalid identifier length (UINT64_MAX + 3, which happens to be ok after a wraparound). 516 517CHECK: _RNvC2ab18446744073709551618xy 518 _RNvC2ab18446744073709551618xy 519 520; Mangling scheme includes an optional encoding version. When present it would 521; indicate an encoding we don't support yet. Check that it is rejected: 522 523CHECK: _R0NvC1a4main 524 _R0NvC1a4main 525 526; Early EOF 527 528CHECK: _RNv 529 _RNv 530 531CHECK: _RNvC 532 _RNvC 533 534CHECK: _RNvC1a5main 535 _RNvC1a5main 536 537CHECK: _RNvC1a20abc 538 _RNvC1a20abc 539