539 lines · plain
1RUN: llvm-cxxfilt -n < %s | FileCheck --match-full-lines %s2 3CHECK: a::main4 _RNvC1a4main5 6CHECK: hello::rust7 _RNvCshGpAVYOtgW1_5hello4rust8 9CHECK: a::b::c10 _RNvNvC1a1b1c11 12; Instantiating crate13 14CHECK: crate15 _RC5crateC3foo16 17; Closure namespace18 19CHECK: crate::{closure#0}20 _RNCC5crate021 22CHECK: crate::{closure#1}23 _RNCC5crates_024 25CHECK: crate::{closure:foo#0}26 _RNCC5crate3foo27 28CHECK: crate::{closure:foo#1}29 _RNCC5crates_3foo30 31; Shim namespace32 33CHECK: crate::{shim:reify#0}34 _RNSC5crate5reify35 36; Unrecognized special namespace37 38CHECK: crate::{Z:ident#10}39 _RNZC5crates8_5ident40 41; Inherent impl42 43CHECK: <_>44 _RMC5cratep45 46CHECK: <_>47 _RMs_C5cratep48 49; Trait impl50 51CHECK: <_ as Clone>52 _RXC5cratepC5Clone53 54CHECK: <_ as Clone>55 _RXs_C5cratepC5Clone56 57; Trait definition58 59CHECK: <_ as Ord>60 _RYpC3Ord61 62; Generic type arguments63 64CHECK: generic::<_>65 _RIC7genericpE66 67CHECK: generic::<_, _>68 _RIC7genericppE69 70CHECK: generic::<_, _, _>71 _RIC7genericpppE72 73; Generic const arguments74 75CHECK: generic_const::<_>76 _RIC13generic_constKpE77 78; Generic lifetime arguments79 80CHECK: generic_lifetime::<'_>81 _RIC16generic_lifetimeL_E82 83; Invalid lifetime index.84 85CHECK: _RIC16generic_lifetimeL0_E86 _RIC16generic_lifetimeL0_E87 88; Basic types89 90CHECK: basic::<i8>91 _RIC5basicaE92 93CHECK: basic::<bool>94 _RIC5basicbE95 96CHECK: basic::<char>97 _RIC5basiccE98 99CHECK: basic::<f64>100 _RIC5basicdE101 102CHECK: basic::<str>103 _RIC5basiceE104 105CHECK: basic::<f32>106 _RIC5basicfE107 108CHECK: basic::<u8>109 _RIC5basichE110 111CHECK: basic::<isize>112 _RIC5basiciE113 114CHECK: basic::<usize>115 _RIC5basicjE116 117CHECK: basic::<i32>118 _RIC5basiclE119 120CHECK: basic::<u32>121 _RIC5basicmE122 123CHECK: basic::<i128>124 _RIC5basicnE125 126CHECK: basic::<u128>127 _RIC5basicoE128 129CHECK: basic::<_>130 _RIC5basicpE131 132CHECK: basic::<i16>133 _RIC5basicsE134 135CHECK: basic::<u16>136 _RIC5basictE137 138CHECK: basic::<()>139 _RIC5basicuE140 141CHECK: basic::<...>142 _RIC5basicvE143 144CHECK: basic::<i64>145 _RIC5basicxE146 147CHECK: basic::<u64>148 _RIC5basicyE149 150CHECK: basic::<!>151 _RIC5basiczE152 153; Named types. Test possible paths productions.154 155CHECK: named::<name>156 _RIC5namedC4nameE157 158CHECK: named::<<_>>159 _RIC5namedMC5cratepE160 161CHECK: named::<<_ as Name>>162 _RIC5namedXC5cratepC4NameE163 164CHECK: named::<<_ as Name>>165 _RIC5namedYpC4NameE166 167CHECK: named::<name::Name>168 _RIC5namedNvC4name4NameE169 170CHECK: named::<Name<>>171 _RIC5namedIC4NameEE172 173; Types174 175CHECK: types::<[u8; 0]>176 _RIC5typesAhj0_E177 178CHECK: types::<[_]>179 _RIC5typesSpE180 181CHECK: types::<()>182 _RIC5typesTEE183 184CHECK: types::<(_,)>185 _RIC5typesTpEE186 187CHECK: types::<(_, _)>188 _RIC5typesTppEE189 190CHECK: types::<(_, _, _)>191 _RIC5typesTpppEE192 193CHECK: types::<&_>194 _RIC5typesRpE195 196CHECK: types::<&_>197 _RIC5typesRL_pE198 199CHECK: types::<&mut _>200 _RIC5typesQpE201 202CHECK: types::<&mut _>203 _RIC5typesQL_pE204 205CHECK: types::<*const _>206 _RIC5typesPpE207 208CHECK: types::<*mut _>209 _RIC5typesOpE210 211; Function signatures212 213CHECK: function::<fn()>214 _RIC8functionFEuE215 216CHECK: function::<fn() -> _>217 _RIC8functionFEpE218 219CHECK: function::<fn(_)>220 _RIC8functionFpEuE221 222CHECK: function::<fn(_, _)>223 _RIC8functionFppEuE224 225CHECK: function::<fn(_, _, _)>226 _RIC8functionFpppEuE227 228CHECK: function::<unsafe fn()>229 _RIC8functionFUEuE230 231CHECK: function::<extern "C" fn()>232 _RIC8functionFKCEuE233 234CHECK: function::<extern "cdecl" fn()>235 _RIC8functionFK5cdeclEuE236 237CHECK: function::<unsafe extern "C-cmse-nonsecure-call" fn()>238 _RIC8functionFUK21C_cmse_nonsecure_callEuE239 240; Invalid ABI with punycode.241 242CHECK: _RIC8functionFKu3n3hEuE243 _RIC8functionFKu3n3hEuE244 245; Trait objects246 247CHECK: trait::<dyn >248 _RIC5traitDEL_E249 250CHECK: trait::<dyn for<'a> >251 _RIC5traitDG_EL_E252 253CHECK: trait::<for<'a> fn(dyn for<'b> + 'a)>254 _RIC5traitFG_DG_EL0_EuE255 256CHECK: trait::<dyn Display>257 _RIC5traitDC7DisplayEL_E258 259CHECK: trait::<dyn Display + Send + Sync>260 _RIC5traitDC7DisplayC4SendC4SyncEL_E261 262CHECK: trait::<dyn for<'a> Display>263 _RIC5traitDG_C7DisplayEL_E264 265CHECK: trait::<dyn IntoIterator<_, Item = _>>266 _RIC5traitDIC12IntoIteratorpEp4ItempEL_E267 268CHECK: trait::<dyn IntoIterator<Item = _>>269 _RIC5traitDC12IntoIteratorp4ItempEL_E270 271CHECK: trait::<dyn IntoIterator<Item = _, IntoIter = _>>272 _RIC5traitDC12IntoIteratorp4Itempp8IntoIterpEL_E273 274; Invalid trait object, missing lifetime.275 276CHECK: _RIC5traitDEE277 _RIC5traitDEE278 279; Binders280 281CHECK: binders::<for<'a> fn(&'a _)>282 _RIC7bindersFG_RL0_pEuE283 284CHECK: binders::<for<'a> fn(&'a mut _)>285 _RIC7bindersFG_QL0_pEuE286 287CHECK: binders::<for<'a, 'b> fn(&'a _, &'b _)>288 _RIC7bindersFG0_RL1_pRL0_pEuE289 290CHECK: binders::<for<'a, 'b> fn() -> for<'c, 'd> fn(&'a _, &'d _)>291 _RIC7bindersFG0_EFG0_RL3_pRL0_pEuE292 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_uEuE295 296; Invalid binder. Too many bound lifetimes.297 298CHECK: _RIC7bindersFGFF_EuE299 _RIC7bindersFGFF_EuE300 301; Integer constants. Test value demangling.302 303CHECK: integer::<0>304 _RIC7integerKi0_E305 306CHECK: integer::<1>307 _RIC7integerKi1_E308 309CHECK: integer::<-1>310 _RIC7integerKin1_E311 312CHECK: integer::<-15>313 _RIC7integerKinf_E314 315CHECK: integer::<-16>316 _RIC7integerKin10_E317 318CHECK: integer::<18446744073709551615>319 _RIC7integerKoffffffffffffffff_E320 321CHECK: integer::<0x10000000000000000>322 _RIC7integerKo10000000000000000_E323 324CHECK: integer::<-0x123456789abcdef01>325 _RIC7integerKnn123456789abcdef01_E326 327; Invalid integer constant without any digits:328 329CHECK: _RIC7integerKi_E330 _RIC7integerKi_E331 332; Invalid integer constants with insignificant leading zeros:333 334CHECK: _RIC7integerKi00_E335 _RIC7integerKi00_E336 337CHECK: _RIC7integerKi01_E338 _RIC7integerKi01_E339 340; Integer constants. Test all integer types.341 342CHECK: i8::<0>343 _RIC2i8Ka0_E344 345CHECK: u8::<0>346 _RIC2u8Kh0_E347 348CHECK: isize::<0>349 _RIC5isizeKi0_E350 351CHECK: usize::<0>352 _RIC5usizeKj0_E353 354CHECK: i32::<0>355 _RIC3i32Kl0_E356 357CHECK: u32::<0>358 _RIC3u32Km0_E359 360CHECK: i128::<0>361 _RIC4i128Kn0_E362 363CHECK: u128::<0>364 _RIC4u128Ko0_E365 366CHECK: i16::<0>367 _RIC3i16Ks0_E368 369CHECK: u16::<0>370 _RIC3u16Kt0_E371 372CHECK: i64::<0>373 _RIC3i64Kx0_E374 375CHECK: u64::<0>376 _RIC3u64Ky0_E377 378; Bool constants379 380CHECK: bool::<false>381 _RIC4boolKb0_E382 383CHECK: bool::<true>384 _RIC4boolKb1_E385 386; Invalid bool constants387 388CHECK: _RIC4boolKb2_E389 _RIC4boolKb2_E390 391CHECK: _RIC4boolKbn0_E392 _RIC4boolKbn0_E393 394; Char constants395 396CHECK: char::<'a'>397 _RIC4charKc61_E398 399CHECK: char::<'"'>400 _RIC4charKc22_E401 402CHECK: char::<'\t'>403 _RIC4charKc9_E404 405CHECK: char::<'\r'>406 _RIC4charKcd_E407 408CHECK: char::<'\n'>409 _RIC4charKca_E410 411CHECK: char::<'\\'>412 _RIC4charKc5c_E413 414CHECK: char::<'\''>415 _RIC4charKc27_E416 417CHECK: char::<'\u{1f40d}'>418 _RIC4charKc1f40d_E419 420CHECK: char::<'\u{10ffff}'>421 _RIC4charKc10ffff_E422 423; Invalid char constants424 425CHECK: _RIC4charKc1234567_E426 _RIC4charKc1234567_E427 428; Backreferences429 430CHECK: backref::<backref::ident>431 _RIC7backrefNvB0_5identE432 433CHECK: backref::<(), ()>434 _RIC7backrefuB9_E435 436CHECK: backref::<7, 7>437 _RIC7backrefKi7_KBa_E438 439; Invalid backreferences440 441CHECK: _RB_442 _RB_443 444CHECK: _RB5_445 _RB5_446 447CHECK: _RNvB_1a448 _RNvB_1a449 450CHECK: _RIC7backrefSB9_E451 _RIC7backrefSB9_E452 453CHECK: _RIC7backrefKBa_E454 _RIC7backrefKBa_E455 456; Dot suffix457 458CHECK: dot (.llvm.1234)459 _RC3dot.llvm.1234460 461CHECK: dot (.llvm.6789)462 _RC3dotC5crate.llvm.6789463 464; Punycode465 466CHECK: punycode::東京467 _RNvC8punycodeu7_1lqs71d468 469CHECK: punycode::zażółć_gęślą_jaźń470 _RNvC8punycodeu29za_gl_ja_w3a7psa2tqtgb10airva471 472CHECK: punycode::საჭმელად_გემრიელი_სადილი473 _RNvC8punycodeu30____7hkackfecea1cbdathfdh9hlq6y474 475CHECK: Gödel::Escher::Bach476 _RNtNvCu8Gdel_5qa6Escher4Bach477 478CHECK: punycode::🦁🐅479 _RNvC8punycodeu7wn8hx1g480 481; Punycode - invalid code point482 483CHECK: _RCu5r731r484 _RCu5r731r485 486CHECK: _RCu8b44444yy487 _RCu8b44444yy488 489CHECK: _RNvC1au25zzzzzzzzzzzzzzzzzzzzzzzzz490 _RNvC1au25zzzzzzzzzzzzzzzzzzzzzzzzz491 492; Punycode - early EOF493 494CHECK: _RCu8_CCCAR_u4495 _RCu8_CCCAR_u4496 497; Punycode - overflow498 499CHECK: _RNvC1au21p18888888888888888888500 _RNvC1au21p18888888888888888888501 502; Invalid mangled characters503 504CHECK: _RNvC2a.1c505 _RNvC2a.1c506 507CHECK: _RNvC2a$1c508 _RNvC2a$1c509 510; Invalid namespace (not in [a-zA-Z]).511 512CHECK: _RN_C5crate4main513 _RN_C5crate4main514 515; Invalid identifier length (UINT64_MAX + 3, which happens to be ok after a wraparound).516 517CHECK: _RNvC2ab18446744073709551618xy518 _RNvC2ab18446744073709551618xy519 520; Mangling scheme includes an optional encoding version. When present it would521; indicate an encoding we don't support yet. Check that it is rejected:522 523CHECK: _R0NvC1a4main524 _R0NvC1a4main525 526; Early EOF527 528CHECK: _RNv529 _RNv530 531CHECK: _RNvC532 _RNvC533 534CHECK: _RNvC1a5main535 _RNvC1a5main536 537CHECK: _RNvC1a20abc538 _RNvC1a20abc539