RUN: llvm-cxxfilt -n < %s | FileCheck --match-full-lines %s CHECK: a::main _RNvC1a4main CHECK: hello::rust _RNvCshGpAVYOtgW1_5hello4rust CHECK: a::b::c _RNvNvC1a1b1c ; Closure namespace CHECK: crate::{closure#0} _RNCC5crate0 CHECK: crate::{closure#1} _RNCC5crates_0 CHECK: crate::{closure:foo#0} _RNCC5crate3foo CHECK: crate::{closure:foo#1} _RNCC5crates_3foo ; Shim namespace CHECK: crate::{shim:reify#0} _RNSC5crate5reify ; Unrecognized special namespace CHECK: crate::{Z:ident#10} _RNZC5crates8_5ident ; Generic type arguments CHECK: generic::<_> _RIC7genericpE CHECK: generic::<_, _> _RIC7genericppE CHECK: generic::<_, _, _> _RIC7genericpppE ; Basic types CHECK: basic:: _RIC5basicaE CHECK: basic:: _RIC5basicbE CHECK: basic:: _RIC5basiccE CHECK: basic:: _RIC5basicdE CHECK: basic:: _RIC5basiceE CHECK: basic:: _RIC5basicfE CHECK: basic:: _RIC5basichE CHECK: basic:: _RIC5basiciE CHECK: basic:: _RIC5basicjE CHECK: basic:: _RIC5basiclE CHECK: basic:: _RIC5basicmE CHECK: basic:: _RIC5basicnE CHECK: basic:: _RIC5basicoE CHECK: basic::<_> _RIC5basicpE CHECK: basic:: _RIC5basicsE CHECK: basic:: _RIC5basictE CHECK: basic::<()> _RIC5basicuE CHECK: basic::<...> _RIC5basicvE CHECK: basic:: _RIC5basicxE CHECK: basic:: _RIC5basicyE CHECK: basic:: _RIC5basiczE ; Invalid mangled characters CHECK: _RNvC2a.1c _RNvC2a.1c CHECK: _RNvC2a$1c _RNvC2a$1c ; Invalid namespace (not in [a-zA-Z]). CHECK: _RN_C5crate4main _RN_C5crate4main ; Invalid identifier length (UINT64_MAX + 3, which happens to be ok after a wraparound). CHECK: _RNvC2ab18446744073709551618xy _RNvC2ab18446744073709551618xy ; Mangling scheme includes an optional encoding version. When present it would ; indicate an encoding we don't support yet. Check that it is rejected: CHECK: _R0NvC1a4main _R0NvC1a4main ; Early EOF CHECK: _RNv _RNv CHECK: _RNvC _RNvC CHECK: _RNvC1a5main _RNvC1a5main CHECK: _RNvC1a20abc _RNvC1a20abc