r327738 - [MS] Don't escape MS C++ names with \01

Reid Kleckner via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 16 13:36:49 PDT 2018


Author: rnk
Date: Fri Mar 16 13:36:49 2018
New Revision: 327738

URL: http://llvm.org/viewvc/llvm-project?rev=327738&view=rev
Log:
[MS] Don't escape MS C++ names with \01

It is not needed after LLVM r327734. Now it will be easier to copy-paste
IR symbol names from Clang.

Modified:
    cfe/trunk/lib/AST/MicrosoftMangle.cpp
    cfe/trunk/lib/CodeGen/CGException.cpp
    cfe/trunk/lib/CodeGen/CodeGenModule.cpp
    cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp
    cfe/trunk/test/CodeGen/c-strings.c
    cfe/trunk/test/CodeGen/exceptions-seh-finally.c
    cfe/trunk/test/CodeGen/exceptions-seh-leave.c
    cfe/trunk/test/CodeGen/exceptions-seh.c
    cfe/trunk/test/CodeGen/mangle-ms.c
    cfe/trunk/test/CodeGen/ms-declspecs.cpp
    cfe/trunk/test/CodeGen/ms_this.cpp
    cfe/trunk/test/CodeGenCXX/PR19955.cpp
    cfe/trunk/test/CodeGenCXX/PR26569.cpp
    cfe/trunk/test/CodeGenCXX/PR28220.cpp
    cfe/trunk/test/CodeGenCXX/atomic-dllexport.cpp
    cfe/trunk/test/CodeGenCXX/cfi-cross-dso.cpp
    cfe/trunk/test/CodeGenCXX/cfi-icall.cpp
    cfe/trunk/test/CodeGenCXX/cfi-ms-vbase-derived-cast.cpp
    cfe/trunk/test/CodeGenCXX/cfi-ms-vbase-nvcall.cpp
    cfe/trunk/test/CodeGenCXX/constructor-destructor-return-this.cpp
    cfe/trunk/test/CodeGenCXX/cxx1z-aligned-allocation.cpp
    cfe/trunk/test/CodeGenCXX/cxx1z-eval-order.cpp
    cfe/trunk/test/CodeGenCXX/cxx1z-lambda-star-this.cpp
    cfe/trunk/test/CodeGenCXX/cxx2a-destroying-delete.cpp
    cfe/trunk/test/CodeGenCXX/debug-info-ms-dtor-thunks.cpp
    cfe/trunk/test/CodeGenCXX/debug-info-thunk-msabi.cpp
    cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp
    cfe/trunk/test/CodeGenCXX/delayed-template-parsing.cpp
    cfe/trunk/test/CodeGenCXX/dllexport-ctor-closure.cpp
    cfe/trunk/test/CodeGenCXX/dllexport-dtor-thunks.cpp
    cfe/trunk/test/CodeGenCXX/dllexport-members.cpp
    cfe/trunk/test/CodeGenCXX/dllexport-ms-friend.cpp
    cfe/trunk/test/CodeGenCXX/dllexport-pr26549.cpp
    cfe/trunk/test/CodeGenCXX/dllexport.cpp
    cfe/trunk/test/CodeGenCXX/dllimport-dtor-thunks.cpp
    cfe/trunk/test/CodeGenCXX/dllimport-members.cpp
    cfe/trunk/test/CodeGenCXX/dllimport-memptr-global.cpp
    cfe/trunk/test/CodeGenCXX/dllimport-rtti.cpp
    cfe/trunk/test/CodeGenCXX/dllimport.cpp
    cfe/trunk/test/CodeGenCXX/exceptions-cxx-ehsc.cpp
    cfe/trunk/test/CodeGenCXX/exceptions-cxx-new.cpp
    cfe/trunk/test/CodeGenCXX/exceptions-seh-filter-captures.cpp
    cfe/trunk/test/CodeGenCXX/exceptions-seh.cpp
    cfe/trunk/test/CodeGenCXX/explicit-instantiation.cpp
    cfe/trunk/test/CodeGenCXX/funcsig.cpp
    cfe/trunk/test/CodeGenCXX/hidden-dllimport.cpp
    cfe/trunk/test/CodeGenCXX/inheriting-constructor.cpp
    cfe/trunk/test/CodeGenCXX/initializer-list-ctor-order.cpp
    cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp
    cfe/trunk/test/CodeGenCXX/inline-functions.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-abi-examples.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-arg-qualifiers.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-back-references.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-cxx11.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-cxx14.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-md5.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-string-literals.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-template-callback.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-templates-memptrs-2.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-templates.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms-vector-types.cpp
    cfe/trunk/test/CodeGenCXX/mangle-ms.cpp
    cfe/trunk/test/CodeGenCXX/mangle-windows.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-arg-order.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-array-cookies.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-sret.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-vararg.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-cdecl-method-sret.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-constexpr-vs-inheritance.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-catch.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-extern-template.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-member-pointers.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-methods.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-rtti.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-static-initializers.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-structors-alias.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-structors-delayed-template.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-throw.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-thunks.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-try-throw.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-typeid.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vbtables.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vftables.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-inheritance-vtordisps.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vmemptr-conflicts.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vmemptr-fastcall.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vmemptr-vbase.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-no-thunks.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-pure-virtual.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-return-adjustment.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-this-adjustment.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-return-thunks.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-compatibility.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-new.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-no-rtti-data.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-templ-uuidof.cpp
    cfe/trunk/test/CodeGenCXX/ms-integer-static-data-members-exported.cpp
    cfe/trunk/test/CodeGenCXX/ms-integer-static-data-members.cpp
    cfe/trunk/test/CodeGenCXX/ms-novtable.cpp
    cfe/trunk/test/CodeGenCXX/ms-property.cpp
    cfe/trunk/test/CodeGenCXX/ms-thread_local.cpp
    cfe/trunk/test/CodeGenCXX/ms_wide_predefined_expr.cpp
    cfe/trunk/test/CodeGenCXX/msabi-blocks.cpp
    cfe/trunk/test/CodeGenCXX/msabi-swiftcall-cc.cpp
    cfe/trunk/test/CodeGenCXX/pr20719.cpp
    cfe/trunk/test/CodeGenCXX/pr20897.cpp
    cfe/trunk/test/CodeGenCXX/pr28360.cpp
    cfe/trunk/test/CodeGenCXX/pr30731.cpp
    cfe/trunk/test/CodeGenCXX/pragma-init_seg.cpp
    cfe/trunk/test/CodeGenCXX/regcall.cpp
    cfe/trunk/test/CodeGenCXX/runtime-dllstorage.cpp
    cfe/trunk/test/CodeGenCXX/type-metadata.cpp
    cfe/trunk/test/CodeGenCXX/ubsan-vtable-checks.cpp
    cfe/trunk/test/CodeGenCXX/uncopyable-args.cpp
    cfe/trunk/test/CodeGenCXX/vararg-non-pod-ms-compat.cpp
    cfe/trunk/test/CodeGenCXX/virtual-base-cast.cpp
    cfe/trunk/test/CodeGenCXX/vtable-assume-load.cpp
    cfe/trunk/test/CodeGenCXX/windows-implicit-dllexport-template-specialization.cpp
    cfe/trunk/test/CodeGenCoroutines/coro-eh-cleanup.cpp
    cfe/trunk/test/CodeGenCoroutines/coro-promise-dtor.cpp
    cfe/trunk/test/CodeGenCoroutines/coro-unhandled-exception.cpp
    cfe/trunk/test/CodeGenCoroutines/microsoft-abi-operator-coawait.cpp
    cfe/trunk/test/CodeGenObjCXX/microsoft-abi-arc-param-order.mm
    cfe/trunk/test/CodeGenObjCXX/msabi-objc-extensions.mm
    cfe/trunk/test/CodeGenObjCXX/msabi-objc-types.mm
    cfe/trunk/test/OpenMP/openmp_win_codegen.cpp
    cfe/trunk/test/PCH/dllexport-default-arg-closure.cpp
    cfe/trunk/test/PCH/uses-seh.cpp

Modified: cfe/trunk/lib/AST/MicrosoftMangle.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/MicrosoftMangle.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/lib/AST/MicrosoftMangle.cpp (original)
+++ cfe/trunk/lib/AST/MicrosoftMangle.cpp Fri Mar 16 13:36:49 2018
@@ -290,7 +290,7 @@ public:
 
   raw_ostream &getStream() const { return Out; }
 
-  void mangle(const NamedDecl *D, StringRef Prefix = "\01?");
+  void mangle(const NamedDecl *D, StringRef Prefix = "?");
   void mangleName(const NamedDecl *ND);
   void mangleFunctionEncoding(const FunctionDecl *FD, bool ShouldMangle);
   void mangleVariableEncoding(const VarDecl *VD);
@@ -2785,7 +2785,7 @@ MicrosoftMangleContextImpl::mangleVirtua
 
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
-  Mangler.getStream() << "\01?";
+  Mangler.getStream() << '?';
   Mangler.mangleVirtualMemPtrThunk(MD, ML);
 }
 
@@ -2794,7 +2794,7 @@ void MicrosoftMangleContextImpl::mangleT
                                              raw_ostream &Out) {
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
-  Mangler.getStream() << "\01?";
+  Mangler.getStream() << '?';
   Mangler.mangleName(MD);
   mangleThunkThisAdjustment(MD, Thunk.This, Mangler, MHO);
   if (!Thunk.Return.isEmpty())
@@ -2815,7 +2815,7 @@ void MicrosoftMangleContextImpl::mangleC
   assert(Type == Dtor_Deleting);
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO, DD, Type);
-  Mangler.getStream() << "\01??_E";
+  Mangler.getStream() << "??_E";
   Mangler.mangleName(DD->getParent());
   mangleThunkThisAdjustment(DD, Adjustment, Mangler, MHO);
   Mangler.mangleFunctionType(DD->getType()->castAs<FunctionProtoType>(), DD);
@@ -2831,9 +2831,9 @@ void MicrosoftMangleContextImpl::mangleC
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
   if (Derived->hasAttr<DLLImportAttr>())
-    Mangler.getStream() << "\01??_S";
+    Mangler.getStream() << "??_S";
   else
-    Mangler.getStream() << "\01??_7";
+    Mangler.getStream() << "??_7";
   Mangler.mangleName(Derived);
   Mangler.getStream() << "6B"; // '6' for vftable, 'B' for const.
   for (const CXXRecordDecl *RD : BasePath)
@@ -2850,7 +2850,7 @@ void MicrosoftMangleContextImpl::mangleC
   // is always '7' for vbtables.
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
-  Mangler.getStream() << "\01??_8";
+  Mangler.getStream() << "??_8";
   Mangler.mangleName(Derived);
   Mangler.getStream() << "7B";  // '7' for vbtable, 'B' for const.
   for (const CXXRecordDecl *RD : BasePath)
@@ -2861,7 +2861,7 @@ void MicrosoftMangleContextImpl::mangleC
 void MicrosoftMangleContextImpl::mangleCXXRTTI(QualType T, raw_ostream &Out) {
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
-  Mangler.getStream() << "\01??_R0";
+  Mangler.getStream() << "??_R0";
   Mangler.mangleType(T, SourceRange(), MicrosoftCXXNameMangler::QMM_Result);
   Mangler.getStream() << "@8";
 }
@@ -2877,7 +2877,7 @@ void MicrosoftMangleContextImpl::mangleC
     const CXXRecordDecl *SrcRD, const CXXRecordDecl *DstRD, raw_ostream &Out) {
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
-  Mangler.getStream() << "\01??_K";
+  Mangler.getStream() << "??_K";
   Mangler.mangleName(SrcRD);
   Mangler.getStream() << "$C";
   Mangler.mangleName(DstRD);
@@ -2923,7 +2923,7 @@ void MicrosoftMangleContextImpl::mangleC
     msvc_hashing_ostream MHO(Stream);
     mangleCXXRTTI(T, MHO);
   }
-  Mangler.getStream() << RTTIMangling.substr(1);
+  Mangler.getStream() << RTTIMangling;
 
   // VS2015 CTP6 omits the copy-constructor in the mangled name.  This name is,
   // in fact, superfluous but I'm not sure the change was made consciously.
@@ -2935,7 +2935,7 @@ void MicrosoftMangleContextImpl::mangleC
     msvc_hashing_ostream MHO(Stream);
     mangleCXXCtor(CD, CT, MHO);
   }
-  Mangler.getStream() << CopyCtorMangling.substr(1);
+  Mangler.getStream() << CopyCtorMangling;
 
   Mangler.getStream() << Size;
   if (VBPtrOffset == -1) {
@@ -2954,7 +2954,7 @@ void MicrosoftMangleContextImpl::mangleC
     uint32_t VBTableOffset, uint32_t Flags, raw_ostream &Out) {
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
-  Mangler.getStream() << "\01??_R1";
+  Mangler.getStream() << "??_R1";
   Mangler.mangleNumber(NVOffset);
   Mangler.mangleNumber(VBPtrOffset);
   Mangler.mangleNumber(VBTableOffset);
@@ -2967,7 +2967,7 @@ void MicrosoftMangleContextImpl::mangleC
     const CXXRecordDecl *Derived, raw_ostream &Out) {
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
-  Mangler.getStream() << "\01??_R2";
+  Mangler.getStream() << "??_R2";
   Mangler.mangleName(Derived);
   Mangler.getStream() << "8";
 }
@@ -2976,7 +2976,7 @@ void MicrosoftMangleContextImpl::mangleC
     const CXXRecordDecl *Derived, raw_ostream &Out) {
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
-  Mangler.getStream() << "\01??_R3";
+  Mangler.getStream() << "??_R3";
   Mangler.mangleName(Derived);
   Mangler.getStream() << "8";
 }
@@ -2992,16 +2992,16 @@ void MicrosoftMangleContextImpl::mangleC
   llvm::raw_svector_ostream Stream(VFTableMangling);
   mangleCXXVFTable(Derived, BasePath, Stream);
 
-  if (VFTableMangling.startswith("\01??@")) {
+  if (VFTableMangling.startswith("??@")) {
     assert(VFTableMangling.endswith("@"));
     Out << VFTableMangling << "??_R4@";
     return;
   }
 
-  assert(VFTableMangling.startswith("\01??_7") ||
-         VFTableMangling.startswith("\01??_S"));
+  assert(VFTableMangling.startswith("??_7") ||
+         VFTableMangling.startswith("??_S"));
 
-  Out << "\01??_R4" << StringRef(VFTableMangling).drop_front(5);
+  Out << "??_R4" << StringRef(VFTableMangling).drop_front(4);
 }
 
 void MicrosoftMangleContextImpl::mangleSEHFilterExpression(
@@ -3012,7 +3012,7 @@ void MicrosoftMangleContextImpl::mangleS
   // so the numbering here doesn't have to be the same across TUs.
   //
   // <mangled-name> ::= ?filt$ <filter-number> @0
-  Mangler.getStream() << "\01?filt$" << SEHFilterIds[EnclosingDecl]++ << "@0@";
+  Mangler.getStream() << "?filt$" << SEHFilterIds[EnclosingDecl]++ << "@0@";
   Mangler.mangleName(EnclosingDecl);
 }
 
@@ -3024,7 +3024,7 @@ void MicrosoftMangleContextImpl::mangleS
   // so the numbering here doesn't have to be the same across TUs.
   //
   // <mangled-name> ::= ?fin$ <filter-number> @0
-  Mangler.getStream() << "\01?fin$" << SEHFinallyIds[EnclosingDecl]++ << "@0@";
+  Mangler.getStream() << "?fin$" << SEHFinallyIds[EnclosingDecl]++ << "@0@";
   Mangler.mangleName(EnclosingDecl);
 }
 
@@ -3057,7 +3057,7 @@ void MicrosoftMangleContextImpl::mangleR
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
 
-  Mangler.getStream() << "\01?$RT" << ManglingNumber << '@';
+  Mangler.getStream() << "?$RT" << ManglingNumber << '@';
   Mangler.mangle(VD, "");
 }
 
@@ -3066,7 +3066,7 @@ void MicrosoftMangleContextImpl::mangleT
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
 
-  Mangler.getStream() << "\01?$TSS" << GuardNum << '@';
+  Mangler.getStream() << "?$TSS" << GuardNum << '@';
   Mangler.mangleNestedName(VD);
   Mangler.getStream() << "@4HA";
 }
@@ -3088,9 +3088,9 @@ void MicrosoftMangleContextImpl::mangleS
 
   bool Visible = VD->isExternallyVisible();
   if (Visible) {
-    Mangler.getStream() << (VD->getTLSKind() ? "\01??__J" : "\01??_B");
+    Mangler.getStream() << (VD->getTLSKind() ? "??__J" : "??_B");
   } else {
-    Mangler.getStream() << "\01?$S1@";
+    Mangler.getStream() << "?$S1@";
   }
   unsigned ScopeDepth = 0;
   if (Visible && !getNextDiscriminator(VD, ScopeDepth))
@@ -3110,7 +3110,7 @@ void MicrosoftMangleContextImpl::mangleI
                                                     raw_ostream &Out) {
   msvc_hashing_ostream MHO(Out);
   MicrosoftCXXNameMangler Mangler(*this, MHO);
-  Mangler.getStream() << "\01??__" << CharCode;
+  Mangler.getStream() << "??__" << CharCode;
   Mangler.mangleName(D);
   if (D->isStaticDataMember()) {
     Mangler.mangleVariableEncoding(D);
@@ -3156,7 +3156,7 @@ void MicrosoftMangleContextImpl::mangleS
   // <literal> ::= '??_C at _' <char-type> <literal-length> <encoded-crc>
   //               <encoded-string> '@'
   MicrosoftCXXNameMangler Mangler(*this, Out);
-  Mangler.getStream() << "\01??_C at _";
+  Mangler.getStream() << "??_C at _";
 
   // <char-type>: The "kind" of string literal is encoded into the mangled name.
   if (SL->isWide())

Modified: cfe/trunk/lib/CodeGen/CGException.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGException.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGException.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGException.cpp Fri Mar 16 13:36:49 2018
@@ -65,7 +65,7 @@ llvm::Constant *CodeGenModule::getTermin
     if (getLangOpts().isCompatibleWithMSVC(LangOptions::MSVC2015))
       name = "__std_terminate";
     else
-      name = "\01?terminate@@YAXXZ";
+      name = "?terminate@@YAXXZ";
   } else if (getLangOpts().ObjC1 &&
              getLangOpts().ObjCRuntime.hasTerminate())
     name = "objc_terminate";

Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original)
+++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Fri Mar 16 13:36:49 2018
@@ -2571,7 +2571,7 @@ GetRuntimeFunctionDecl(ASTContext &C, St
 
   // Demangle the premangled name from getTerminateFn()
   IdentifierInfo &CXXII =
-      (Name == "_ZSt9terminatev" || Name == "\01?terminate@@YAXXZ")
+      (Name == "_ZSt9terminatev" || Name == "?terminate@@YAXXZ")
           ? C.Idents.get("terminate")
           : C.Idents.get(Name);
 

Modified: cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp (original)
+++ cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp Fri Mar 16 13:36:49 2018
@@ -3429,7 +3429,7 @@ CGCXXABI *clang::CodeGen::CreateMicrosof
 //   mangled into them so they can be aggressively deduplicated by the linker.
 
 static llvm::GlobalVariable *getTypeInfoVTable(CodeGenModule &CGM) {
-  StringRef MangledName("\01??_7type_info@@6B@");
+  StringRef MangledName("??_7type_info@@6B@");
   if (auto VTable = CGM.getModule().getNamedGlobal(MangledName))
     return VTable;
   return new llvm::GlobalVariable(CGM.getModule(), CGM.Int8PtrTy,

Modified: cfe/trunk/test/CodeGen/c-strings.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/c-strings.c?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/c-strings.c (original)
+++ cfe/trunk/test/CodeGen/c-strings.c Fri Mar 16 13:36:49 2018
@@ -6,13 +6,13 @@
 
 // CHECK: @align = {{(dso_local )?}}global i8 [[ALIGN:[0-9]+]]
 // ITANIUM: @.str = private unnamed_addr constant [6 x i8] c"hello\00"
-// MSABI: @"\01??_C at _05CJBACGMB@hello?$AA@" = linkonce_odr unnamed_addr constant [6 x i8] c"hello\00", comdat, align 1
+// MSABI: @"??_C at _05CJBACGMB@hello?$AA@" = linkonce_odr unnamed_addr constant [6 x i8] c"hello\00", comdat, align 1
 // ITANIUM: @f1.x = internal global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0)
-// MSABI: @f1.x = internal global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"\01??_C at _05CJBACGMB@hello?$AA@", i32 0, i32 0)
+// MSABI: @f1.x = internal global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"??_C at _05CJBACGMB@hello?$AA@", i32 0, i32 0)
 // CHECK: @f2.x = internal global [6 x i8] c"hello\00", align [[ALIGN]]
 // CHECK: @f3.x = internal global [8 x i8] c"hello\00\00\00", align [[ALIGN]]
 // ITANIUM: @f4.x = internal global %struct.s { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0) }
-// MSABI: @f4.x = internal global %struct.s { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"\01??_C at _05CJBACGMB@hello?$AA@", i32 0, i32 0) }
+// MSABI: @f4.x = internal global %struct.s { i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"??_C at _05CJBACGMB@hello?$AA@", i32 0, i32 0) }
 // CHECK: @x = {{(dso_local )?}}global [3 x i8] c"ola", align [[ALIGN]]
 
 // XFAIL: hexagon
@@ -32,7 +32,7 @@ void bar(const char *);
 void f0() {
   bar("hello");
   // ITANIUM: call {{.*}}void @bar({{.*}} @.str
-  // MSABI: call {{.*}}void @bar({{.*}} @"\01??_C at _05CJBACGMB@hello?$AA@"
+  // MSABI: call {{.*}}void @bar({{.*}} @"??_C at _05CJBACGMB@hello?$AA@"
 }
 
 // CHECK-LABEL: define {{.*}}void @f1()

Modified: cfe/trunk/test/CodeGen/exceptions-seh-finally.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/exceptions-seh-finally.c?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/exceptions-seh-finally.c (original)
+++ cfe/trunk/test/CodeGen/exceptions-seh-finally.c Fri Mar 16 13:36:49 2018
@@ -19,16 +19,16 @@ void basic_finally(void) {
 //
 // CHECK: [[invoke_cont]]
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK: call void @"\01?fin$0 at 0@basic_finally@@"({{i8( zeroext)?}} 0, i8* %[[fp]])
+// CHECK: call void @"?fin$0 at 0@basic_finally@@"({{i8( zeroext)?}} 0, i8* %[[fp]])
 // CHECK-NEXT: ret void
 //
 // CHECK: [[lpad]]
 // CHECK-NEXT: %[[pad:[^ ]*]] = cleanuppad
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK: call void @"\01?fin$0 at 0@basic_finally@@"({{i8( zeroext)?}} 1, i8* %[[fp]])
+// CHECK: call void @"?fin$0 at 0@basic_finally@@"({{i8( zeroext)?}} 1, i8* %[[fp]])
 // CHECK-NEXT: cleanupret from %[[pad]] unwind to caller
 
-// CHECK: define internal void @"\01?fin$0 at 0@basic_finally@@"({{.*}})
+// CHECK: define internal void @"?fin$0 at 0@basic_finally@@"({{.*}})
 // CHECK-SAME: [[finally_attrs:#[0-9]+]]
 // CHECK: call void @cleanup()
 
@@ -59,10 +59,10 @@ l:
 //
 // CHECK: [[invoke_cont]]
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK: call void @"\01?fin$0 at 0@label_in_finally@@"({{i8( zeroext)?}} 0, i8* %[[fp]])
+// CHECK: call void @"?fin$0 at 0@label_in_finally@@"({{i8( zeroext)?}} 0, i8* %[[fp]])
 // CHECK: ret void
 
-// CHECK: define internal void @"\01?fin$0 at 0@label_in_finally@@"({{.*}})
+// CHECK: define internal void @"?fin$0 at 0@label_in_finally@@"({{.*}})
 // CHECK-SAME: [[finally_attrs]]
 // CHECK: br label %[[l:[^ ]*]]
 //
@@ -87,16 +87,16 @@ void use_abnormal_termination(void) {
 //
 // CHECK: [[invoke_cont]]
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK: call void @"\01?fin$0 at 0@use_abnormal_termination@@"({{i8( zeroext)?}} 0, i8* %[[fp]])
+// CHECK: call void @"?fin$0 at 0@use_abnormal_termination@@"({{i8( zeroext)?}} 0, i8* %[[fp]])
 // CHECK: ret void
 //
 // CHECK: [[lpad]]
 // CHECK-NEXT: %[[pad:[^ ]*]] = cleanuppad
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK: call void @"\01?fin$0 at 0@use_abnormal_termination@@"({{i8( zeroext)?}} 1, i8* %[[fp]])
+// CHECK: call void @"?fin$0 at 0@use_abnormal_termination@@"({{i8( zeroext)?}} 1, i8* %[[fp]])
 // CHECK-NEXT: cleanupret from %[[pad]] unwind to caller
 
-// CHECK: define internal void @"\01?fin$0 at 0@use_abnormal_termination@@"({{i8( zeroext)?}} %[[abnormal:abnormal_termination]], i8* %frame_pointer)
+// CHECK: define internal void @"?fin$0 at 0@use_abnormal_termination@@"({{i8( zeroext)?}} %[[abnormal:abnormal_termination]], i8* %frame_pointer)
 // CHECK-SAME: [[finally_attrs]]
 // CHECK: %[[abnormal_zext:[^ ]*]] = zext i8 %[[abnormal]] to i32
 // CHECK: store i32 %[[abnormal_zext]], i32* @crashed
@@ -111,10 +111,10 @@ void noreturn_noop_finally() {
 }
 
 // CHECK-LABEL: define dso_local void @noreturn_noop_finally()
-// CHECK: call void @"\01?fin$0 at 0@noreturn_noop_finally@@"({{.*}})
+// CHECK: call void @"?fin$0 at 0@noreturn_noop_finally@@"({{.*}})
 // CHECK: ret void
 
-// CHECK: define internal void @"\01?fin$0 at 0@noreturn_noop_finally@@"({{.*}})
+// CHECK: define internal void @"?fin$0 at 0@noreturn_noop_finally@@"({{.*}})
 // CHECK-SAME: [[finally_attrs]]
 // CHECK: call void @abort()
 // CHECK: unreachable
@@ -132,15 +132,15 @@ void noreturn_finally() {
 // CHECK:     to label %[[cont:[^ ]*]] unwind label %[[lpad:[^ ]*]]
 //
 // CHECK: [[cont]]
-// CHECK: call void @"\01?fin$0 at 0@noreturn_finally@@"({{.*}})
+// CHECK: call void @"?fin$0 at 0@noreturn_finally@@"({{.*}})
 // CHECK: ret void
 //
 // CHECK: [[lpad]]
 // CHECK-NEXT: %[[pad:[^ ]*]] = cleanuppad
-// CHECK: call void @"\01?fin$0 at 0@noreturn_finally@@"({{.*}})
+// CHECK: call void @"?fin$0 at 0@noreturn_finally@@"({{.*}})
 // CHECK-NEXT: cleanupret from %[[pad]] unwind to caller
 
-// CHECK: define internal void @"\01?fin$0 at 0@noreturn_finally@@"({{.*}})
+// CHECK: define internal void @"?fin$0 at 0@noreturn_finally@@"({{.*}})
 // CHECK-SAME: [[finally_attrs]]
 // CHECK: call void @abort()
 // CHECK: unreachable
@@ -152,10 +152,10 @@ int finally_with_return() {
   }
 }
 // CHECK-LABEL: define dso_local i32 @finally_with_return()
-// CHECK: call void @"\01?fin$0 at 0@finally_with_return@@"({{.*}})
+// CHECK: call void @"?fin$0 at 0@finally_with_return@@"({{.*}})
 // CHECK-NEXT: ret i32 42
 
-// CHECK: define internal void @"\01?fin$0 at 0@finally_with_return@@"({{.*}})
+// CHECK: define internal void @"?fin$0 at 0@finally_with_return@@"({{.*}})
 // CHECK-SAME: [[finally_attrs]]
 // CHECK-NOT: br i1
 // CHECK-NOT: br label
@@ -174,23 +174,23 @@ int nested___finally___finally() {
 }
 
 // CHECK-LABEL: define dso_local i32 @nested___finally___finally
-// CHECK: invoke void @"\01?fin$1 at 0@nested___finally___finally@@"({{.*}})
+// CHECK: invoke void @"?fin$1 at 0@nested___finally___finally@@"({{.*}})
 // CHECK:          to label %[[outercont:[^ ]*]] unwind label %[[lpad:[^ ]*]]
 //
 // CHECK: [[outercont]]
-// CHECK: call void @"\01?fin$0 at 0@nested___finally___finally@@"({{.*}})
+// CHECK: call void @"?fin$0 at 0@nested___finally___finally@@"({{.*}})
 // CHECK-NEXT: ret i32 0
 //
 // CHECK: [[lpad]]
 // CHECK-NEXT: %[[pad:[^ ]*]] = cleanuppad
-// CHECK: call void @"\01?fin$0 at 0@nested___finally___finally@@"({{.*}})
+// CHECK: call void @"?fin$0 at 0@nested___finally___finally@@"({{.*}})
 // CHECK-NEXT: cleanupret from %[[pad]] unwind to caller
 
-// CHECK-LABEL: define internal void @"\01?fin$0 at 0@nested___finally___finally@@"({{.*}})
+// CHECK-LABEL: define internal void @"?fin$0 at 0@nested___finally___finally@@"({{.*}})
 // CHECK-SAME: [[finally_attrs]]
 // CHECK: ret void
 
-// CHECK-LABEL: define internal void @"\01?fin$1 at 0@nested___finally___finally@@"({{.*}})
+// CHECK-LABEL: define internal void @"?fin$1 at 0@nested___finally___finally@@"({{.*}})
 // CHECK-SAME: [[finally_attrs]]
 // CHECK: unreachable
 
@@ -213,16 +213,16 @@ int nested___finally___finally_with_eh_e
 // CHECK-NEXT: to label %[[invokecont:[^ ]*]] unwind label %[[lpad1:[^ ]*]]
 //
 // [[invokecont]]
-// CHECK: invoke void @"\01?fin$1 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
+// CHECK: invoke void @"?fin$1 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
 // CHECK-NEXT:       to label %[[outercont:[^ ]*]] unwind label %[[lpad2:[^ ]*]]
 //
 // CHECK: [[outercont]]
-// CHECK: call void @"\01?fin$0 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
+// CHECK: call void @"?fin$0 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
 // CHECK-NEXT: ret i32 912
 //
 // CHECK: [[lpad1]]
 // CHECK-NEXT: %[[innerpad:[^ ]*]] = cleanuppad
-// CHECK: invoke void @"\01?fin$1 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
+// CHECK: invoke void @"?fin$1 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
 // CHECK-NEXT:    label %[[innercleanupretbb:[^ ]*]] unwind label %[[lpad2:[^ ]*]]
 //
 // CHECK: [[innercleanupretbb]]
@@ -230,14 +230,14 @@ int nested___finally___finally_with_eh_e
 //
 // CHECK: [[lpad2]]
 // CHECK-NEXT: %[[outerpad:[^ ]*]] = cleanuppad
-// CHECK: call void @"\01?fin$0 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
+// CHECK: call void @"?fin$0 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
 // CHECK-NEXT: cleanupret from %[[outerpad]] unwind to caller
 
-// CHECK-LABEL: define internal void @"\01?fin$0 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
+// CHECK-LABEL: define internal void @"?fin$0 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
 // CHECK-SAME: [[finally_attrs]]
 // CHECK: ret void
 
-// CHECK-LABEL: define internal void @"\01?fin$1 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
+// CHECK-LABEL: define internal void @"?fin$1 at 0@nested___finally___finally_with_eh_edge@@"({{.*}})
 // CHECK-SAME: [[finally_attrs]]
 // CHECK: unreachable
 
@@ -255,17 +255,17 @@ void finally_within_finally() {
 // CHECK-LABEL: define dso_local void @finally_within_finally(
 // CHECK: invoke void @might_crash(
 
-// CHECK: call void @"\01?fin$0 at 0@finally_within_finally@@"(
-// CHECK: call void @"\01?fin$0 at 0@finally_within_finally@@"({{.*}}) [ "funclet"(
+// CHECK: call void @"?fin$0 at 0@finally_within_finally@@"(
+// CHECK: call void @"?fin$0 at 0@finally_within_finally@@"({{.*}}) [ "funclet"(
 
-// CHECK-LABEL: define internal void @"\01?fin$0 at 0@finally_within_finally@@"({{[^)]*}})
+// CHECK-LABEL: define internal void @"?fin$0 at 0@finally_within_finally@@"({{[^)]*}})
 // CHECK-SAME: [[finally_attrs]]
 // CHECK: invoke void @might_crash(
 
-// CHECK: call void @"\01?fin$1 at 0@finally_within_finally@@"(
-// CHECK: call void @"\01?fin$1 at 0@finally_within_finally@@"({{.*}}) [ "funclet"(
+// CHECK: call void @"?fin$1 at 0@finally_within_finally@@"(
+// CHECK: call void @"?fin$1 at 0@finally_within_finally@@"({{.*}}) [ "funclet"(
 
-// CHECK-LABEL: define internal void @"\01?fin$1 at 0@finally_within_finally@@"({{[^)]*}})
+// CHECK-LABEL: define internal void @"?fin$1 at 0@finally_within_finally@@"({{[^)]*}})
 // CHECK-SAME: [[finally_attrs]]
 
 // Look for the absence of noinline. Enum attributes come first, so check that

Modified: cfe/trunk/test/CodeGen/exceptions-seh-leave.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/exceptions-seh-leave.c?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/exceptions-seh-leave.c (original)
+++ cfe/trunk/test/CodeGen/exceptions-seh-leave.c Fri Mar 16 13:36:49 2018
@@ -75,7 +75,7 @@ int __leave_with___finally_simple() {
 // CHECK-NOT: store i32 23
 // CHECK: [[tryleave]]
 // CHECK-NEXT: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: call void @"\01?fin$0 at 0@__leave_with___finally_simple@@"(i8 0, i8* %[[fp]])
+// CHECK-NEXT: call void @"?fin$0 at 0@__leave_with___finally_simple@@"(i8 0, i8* %[[fp]])
 
 // __finally block doesn't return, __finally.cont doesn't exist.
 int __leave_with___finally_noreturn() {
@@ -95,7 +95,7 @@ int __leave_with___finally_noreturn() {
 // CHECK-NOT: store i32 23
 // CHECK: [[tryleave]]
 // CHECK-NEXT: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: call void @"\01?fin$0 at 0@__leave_with___finally_noreturn@@"(i8 0, i8* %[[fp]])
+// CHECK-NEXT: call void @"?fin$0 at 0@__leave_with___finally_noreturn@@"(i8 0, i8* %[[fp]])
 
 // The "normal" case.
 int __leave_with___finally() {
@@ -119,7 +119,7 @@ int __leave_with___finally() {
 // CHECK-NOT: store i32 23
 // CHECK: [[tryleave]]
 // CHECK-NEXT: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: call void @"\01?fin$0 at 0@__leave_with___finally@@"(i8 0, i8* %[[fp]])
+// CHECK-NEXT: call void @"?fin$0 at 0@__leave_with___finally@@"(i8 0, i8* %[[fp]])
 
 
 //////////////////////////////////////////////////////////////////////////////
@@ -149,7 +149,7 @@ int nested___except___finally() {
 
 // CHECK: [[g1_cont1]]
 // CHECK-NEXT: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: invoke void @"\01?fin$0 at 0@nested___except___finally@@"(i8 0, i8* %[[fp]])
+// CHECK-NEXT: invoke void @"?fin$0 at 0@nested___except___finally@@"(i8 0, i8* %[[fp]])
 // CHECK-NEXT:       to label %[[fin_cont:.*]] unwind label %[[g2_lpad:.*]]
 
 // CHECK: [[fin_cont]]
@@ -159,7 +159,7 @@ int nested___except___finally() {
 // CHECK: [[g1_lpad]]
 // CHECK-NEXT: cleanuppad
 // CHECK-NEXT: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: invoke void @"\01?fin$0 at 0@nested___except___finally@@"(i8 1, i8* %[[fp]])
+// CHECK-NEXT: invoke void @"?fin$0 at 0@nested___except___finally@@"(i8 1, i8* %[[fp]])
 // CHECK-NEXT:       to label %[[g1_resume:.*]] unwind label %[[g2_lpad]]
 // CHECK: cleanupret {{.*}} unwind label %[[g2_lpad]]
 
@@ -171,7 +171,7 @@ int nested___except___finally() {
 // CHECK: [[trycont]]
 // CHECK-NEXT: ret i32 1
 
-// CHECK-LABEL: define internal void @"\01?fin$0 at 0@nested___except___finally@@"(i8 %abnormal_termination, i8* %frame_pointer)
+// CHECK-LABEL: define internal void @"?fin$0 at 0@nested___except___finally@@"(i8 %abnormal_termination, i8* %frame_pointer)
 // CHECK: call void @g()
 // CHECK: unreachable
 
@@ -271,16 +271,16 @@ int nested___finally___except() {
 
 // CHECK: [[tryleave]]
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: call void @"\01?fin$0 at 0@nested___finally___except@@"(i8 0, i8* %[[fp]])
+// CHECK-NEXT: call void @"?fin$0 at 0@nested___finally___except@@"(i8 0, i8* %[[fp]])
 // CHECK-NEXT: ret i32 1
 
 // CHECK: [[g2_lpad]]
 // CHECK: cleanuppad
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: call void @"\01?fin$0 at 0@nested___finally___except@@"(i8 1, i8* %[[fp]])
+// CHECK-NEXT: call void @"?fin$0 at 0@nested___finally___except@@"(i8 1, i8* %[[fp]])
 // CHECK: cleanupret {{.*}} unwind to caller
 
-// CHECK-LABEL: define internal void @"\01?fin$0 at 0@nested___finally___except@@"(i8 %abnormal_termination, i8* %frame_pointer)
+// CHECK-LABEL: define internal void @"?fin$0 at 0@nested___finally___except@@"(i8 %abnormal_termination, i8* %frame_pointer)
 // CHECK: ret void
 
 int nested___finally___finally() {
@@ -310,19 +310,19 @@ int nested___finally___finally() {
 // CHECK: [[g1_cont]]
 // CHECK: store i32 16, i32* %[[myres:[^ ]*]],
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: invoke void @"\01?fin$1 at 0@nested___finally___finally@@"(i8 0, i8* %[[fp]])
+// CHECK-NEXT: invoke void @"?fin$1 at 0@nested___finally___finally@@"(i8 0, i8* %[[fp]])
 // CHECK-NEXT:       to label %[[finally_cont:.*]] unwind label %[[g2_lpad:.*]]
 
 // CHECK: [[finally_cont]]
 // CHECK: store i32 51, i32* %[[myres]]
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: call void @"\01?fin$0 at 0@nested___finally___finally@@"(i8 0, i8* %[[fp]])
+// CHECK-NEXT: call void @"?fin$0 at 0@nested___finally___finally@@"(i8 0, i8* %[[fp]])
 // CHECK-NEXT: ret i32 1
 
 // CHECK: [[g1_lpad]]
 // CHECK-NEXT: %[[padtoken:[^ ]*]] = cleanuppad within none []
 // CHECK-NEXT: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: invoke void @"\01?fin$1 at 0@nested___finally___finally@@"(i8 1, i8* %[[fp]])
+// CHECK-NEXT: invoke void @"?fin$1 at 0@nested___finally___finally@@"(i8 1, i8* %[[fp]])
 // CHECK-NEXT:       to label %[[finally_cont2:.*]] unwind label %[[g2_lpad]]
 // CHECK: [[finally_cont2]]
 // CHECK: cleanupret from %[[padtoken]] unwind label %[[g2_lpad]]
@@ -330,12 +330,12 @@ int nested___finally___finally() {
 // CHECK: [[g2_lpad]]
 // CHECK-NEXT: %[[padtoken:[^ ]*]] = cleanuppad within none []
 // CHECK-NEXT: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK-NEXT: call void @"\01?fin$0 at 0@nested___finally___finally@@"(i8 1, i8* %[[fp]])
+// CHECK-NEXT: call void @"?fin$0 at 0@nested___finally___finally@@"(i8 1, i8* %[[fp]])
 // CHECK: cleanupret from %[[padtoken]] unwind to caller
 
-// CHECK-LABEL: define internal void @"\01?fin$0 at 0@nested___finally___finally@@"(i8 %abnormal_termination, i8* %frame_pointer)
+// CHECK-LABEL: define internal void @"?fin$0 at 0@nested___finally___finally@@"(i8 %abnormal_termination, i8* %frame_pointer)
 // CHECK: ret void
 
-// CHECK-LABEL: define internal void @"\01?fin$1 at 0@nested___finally___finally@@"(i8 %abnormal_termination, i8* %frame_pointer)
+// CHECK-LABEL: define internal void @"?fin$1 at 0@nested___finally___finally@@"(i8 %abnormal_termination, i8* %frame_pointer)
 // CHECK: call void @g()
 // CHECK: unreachable

Modified: cfe/trunk/test/CodeGen/exceptions-seh.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/exceptions-seh.c?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/exceptions-seh.c (original)
+++ cfe/trunk/test/CodeGen/exceptions-seh.c Fri Mar 16 13:36:49 2018
@@ -35,7 +35,7 @@ int safe_div(int numerator, int denomina
 //
 // CHECK: [[catchpad]]
 // X64: %[[padtoken:[^ ]*]] = catchpad within %{{[^ ]*}} [i8* null]
-// X86: %[[padtoken:[^ ]*]] = catchpad within %{{[^ ]*}} [i8* bitcast (i32 ()* @"\01?filt$0 at 0@safe_div@@" to i8*)]
+// X86: %[[padtoken:[^ ]*]] = catchpad within %{{[^ ]*}} [i8* bitcast (i32 ()* @"?filt$0 at 0@safe_div@@" to i8*)]
 // CHECK-NEXT: catchret from %[[padtoken]] to label %[[except:[^ ]*]]
 //
 // CHECK: [[except]]
@@ -46,7 +46,7 @@ int safe_div(int numerator, int denomina
 
 // 32-bit SEH needs this filter to save the exception code.
 //
-// X86-LABEL: define internal i32 @"\01?filt$0 at 0@safe_div@@"()
+// X86-LABEL: define internal i32 @"?filt$0 at 0@safe_div@@"()
 // X86: %[[ebp:[^ ]*]] = call i8* @llvm.frameaddress(i32 1)
 // X86: %[[fp:[^ ]*]] = call i8* @llvm.x86.seh.recoverfp(i8* bitcast (i32 (i32, i32, i32*)* @safe_div to i8*), i8* %[[ebp]])
 // X86: call i8* @llvm.localrecover(i8* bitcast (i32 (i32, i32, i32*)* @safe_div to i8*), i8* %[[fp]], i32 0)
@@ -82,17 +82,17 @@ int filter_expr_capture(void) {
 // CHECK: store i32 42, i32* %[[r]]
 // CHECK: invoke void @j() #[[NOINLINE]]
 //
-// CHECK: catchpad within %{{[^ ]*}} [i8* bitcast (i32 ({{.*}})* @"\01?filt$0 at 0@filter_expr_capture@@" to i8*)]
+// CHECK: catchpad within %{{[^ ]*}} [i8* bitcast (i32 ({{.*}})* @"?filt$0 at 0@filter_expr_capture@@" to i8*)]
 // CHECK: store i32 13, i32* %[[r]]
 //
 // CHECK: %[[rv:[^ ]*]] = load i32, i32* %[[r]]
 // CHECK: ret i32 %[[rv]]
 
-// X64-LABEL: define internal i32 @"\01?filt$0 at 0@filter_expr_capture@@"(i8* %exception_pointers, i8* %frame_pointer)
+// X64-LABEL: define internal i32 @"?filt$0 at 0@filter_expr_capture@@"(i8* %exception_pointers, i8* %frame_pointer)
 // X64: %[[fp:[^ ]*]] = call i8* @llvm.x86.seh.recoverfp(i8* bitcast (i32 ()* @filter_expr_capture to i8*), i8* %frame_pointer)
 // X64: call i8* @llvm.localrecover(i8* bitcast (i32 ()* @filter_expr_capture to i8*), i8* %[[fp]], i32 0)
 //
-// X86-LABEL: define internal i32 @"\01?filt$0 at 0@filter_expr_capture@@"()
+// X86-LABEL: define internal i32 @"?filt$0 at 0@filter_expr_capture@@"()
 // X86: %[[ebp:[^ ]*]] = call i8* @llvm.frameaddress(i32 1)
 // X86: %[[fp:[^ ]*]] = call i8* @llvm.x86.seh.recoverfp(i8* bitcast (i32 ()* @filter_expr_capture to i8*), i8* %[[ebp]])
 // X86: call i8* @llvm.localrecover(i8* bitcast (i32 ()* @filter_expr_capture to i8*), i8* %[[fp]], i32 0)
@@ -128,7 +128,7 @@ int nested_try(void) {
 // CHECK: %[[cs_outer:[^ ]*]] = catchswitch within none [label %[[cpad_outer:[^ ]*]]] unwind to caller
 //
 // CHECK: [[cpad_outer]]
-// CHECK: catchpad within %{{[^ ]*}} [i8* bitcast (i32 ({{.*}})* @"\01?filt$0 at 0@nested_try@@" to i8*)]
+// CHECK: catchpad within %{{[^ ]*}} [i8* bitcast (i32 ({{.*}})* @"?filt$0 at 0@nested_try@@" to i8*)]
 // CHECK-NEXT: catchret {{.*}} to label %[[except_outer:[^ ]*]]
 //
 // CHECK: [[except_outer]]
@@ -140,7 +140,7 @@ int nested_try(void) {
 // CHECK: ret i32 %[[r_load]]
 //
 // CHECK: [[cpad_inner]]
-// CHECK: catchpad within %[[cs_inner]] [i8* bitcast (i32 ({{.*}})* @"\01?filt$1 at 0@nested_try@@" to i8*)]
+// CHECK: catchpad within %[[cs_inner]] [i8* bitcast (i32 ({{.*}})* @"?filt$1 at 0@nested_try@@" to i8*)]
 // CHECK-NEXT: catchret {{.*}} to label %[[except_inner:[^ ]*]]
 //
 // CHECK: [[except_inner]]
@@ -154,13 +154,13 @@ int nested_try(void) {
 // CHECK: store i32 0, i32* %[[r]]
 // CHECK: br label %[[inner_try_cont]]
 //
-// CHECK-LABEL: define internal i32 @"\01?filt$0 at 0@nested_try@@"({{.*}})
+// CHECK-LABEL: define internal i32 @"?filt$0 at 0@nested_try@@"({{.*}})
 // X86: call i8* @llvm.x86.seh.recoverfp({{.*}})
 // CHECK: load i32*, i32**
 // CHECK: load i32, i32*
 // CHECK: icmp eq i32 %{{.*}}, 456
 //
-// CHECK-LABEL: define internal i32 @"\01?filt$1 at 0@nested_try@@"({{.*}})
+// CHECK-LABEL: define internal i32 @"?filt$1 at 0@nested_try@@"({{.*}})
 // X86: call i8* @llvm.x86.seh.recoverfp({{.*}})
 // CHECK: load i32*, i32**
 // CHECK: load i32, i32*
@@ -186,17 +186,17 @@ int basic_finally(int g) {
 //
 // CHECK: [[cont]]
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK: call void @"\01?fin$0 at 0@basic_finally@@"({{i8( zeroext)?}} 0, i8* %[[fp]])
+// CHECK: call void @"?fin$0 at 0@basic_finally@@"({{i8( zeroext)?}} 0, i8* %[[fp]])
 // CHECK: load i32, i32* %[[g_addr]], align 4
 // CHECK: ret i32
 //
 // CHECK: [[cleanuppad]]
 // CHECK: %[[padtoken:[^ ]*]] = cleanuppad within none []
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK: call void @"\01?fin$0 at 0@basic_finally@@"({{i8( zeroext)?}} 1, i8* %[[fp]])
+// CHECK: call void @"?fin$0 at 0@basic_finally@@"({{i8( zeroext)?}} 1, i8* %[[fp]])
 // CHECK: cleanupret from %[[padtoken]] unwind to caller
 
-// CHECK: define internal void @"\01?fin$0 at 0@basic_finally@@"({{i8( zeroext)?}} %abnormal_termination, i8* %frame_pointer)
+// CHECK: define internal void @"?fin$0 at 0@basic_finally@@"({{i8( zeroext)?}} %abnormal_termination, i8* %frame_pointer)
 // CHECK:   call i8* @llvm.localrecover(i8* bitcast (i32 (i32)* @basic_finally to i8*), i8* %frame_pointer, i32 0)
 // CHECK:   load i32, i32* %{{.*}}, align 4
 // CHECK:   add nsw i32 %{{.*}}, 1

Modified: cfe/trunk/test/CodeGen/mangle-ms.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mangle-ms.c?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/mangle-ms.c (original)
+++ cfe/trunk/test/CodeGen/mangle-ms.c Fri Mar 16 13:36:49 2018
@@ -1,6 +1,6 @@
 // RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-pc-win32 | FileCheck %s
 
-// CHECK: define dso_local void @"\01?f@@$$J0YAXP6AX at Z@Z"
+// CHECK: define dso_local void @"?f@@$$J0YAXP6AX at Z@Z"
 __attribute__((overloadable)) void f(void (*x)()) {}
 
 // CHECK: define dso_local void @f
@@ -9,5 +9,5 @@ void f(void (*x)(int)) {}
 // CHECK: define dso_local void @g
 void g(void (*x)(int)) {}
 
-// CHECK: define dso_local void @"\01?g@@$$J0YAXP6AX at Z@Z"
+// CHECK: define dso_local void @"?g@@$$J0YAXP6AX at Z@Z"
 __attribute__((overloadable)) void g(void (*x)()) {}

Modified: cfe/trunk/test/CodeGen/ms-declspecs.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/ms-declspecs.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/ms-declspecs.cpp (original)
+++ cfe/trunk/test/CodeGen/ms-declspecs.cpp Fri Mar 16 13:36:49 2018
@@ -8,8 +8,8 @@ extern "C" {
 __declspec(selectany) int x4;
 }
 __declspec(selectany) int x5;
-// CHECK: @"\01?x1@@3HA" = weak_odr dso_local global i32 0, comdat, align 4
+// CHECK: @"?x1@@3HA" = weak_odr dso_local global i32 0, comdat, align 4
 // CHECK: @x2 = weak_odr dso_local global i32 0, comdat, align 4
-// CHECK: @"\01?x3@@3HA"  = weak_odr dso_local global i32 0, comdat, align 4
+// CHECK: @"?x3@@3HA"  = weak_odr dso_local global i32 0, comdat, align 4
 // CHECK: @x4 = weak_odr dso_local global i32 0, comdat, align 4
-// CHECK: @"\01?x5@@3HA"  = weak_odr dso_local global i32 0, comdat, align 4
+// CHECK: @"?x5@@3HA"  = weak_odr dso_local global i32 0, comdat, align 4

Modified: cfe/trunk/test/CodeGen/ms_this.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/ms_this.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/ms_this.cpp (original)
+++ cfe/trunk/test/CodeGen/ms_this.cpp Fri Mar 16 13:36:49 2018
@@ -13,7 +13,7 @@ public:
   void runc();
 };
 
-// CHECK: define dso_local void @"\01?runc at t2@@
+// CHECK: define dso_local void @"?runc at t2@@
 void t2::runc() {
   double num = 0;
   __asm {
@@ -26,7 +26,7 @@ void t2::runc() {
 	   };
 }
 
-// CHECK: define dso_local void @"\01?runc at t1@@
+// CHECK: define dso_local void @"?runc at t1@@
 void t1::runc() {
   double num = 0;
   __asm {
@@ -41,7 +41,7 @@ void t1::runc() {
 
 struct s {
   int a;
-  // CHECK: define linkonce_odr dso_local void @"\01?func at s@@
+  // CHECK: define linkonce_odr dso_local void @"?func at s@@
   void func() {
     __asm mov rax, [this]
     // CHECK: [[THIS_ADDR_S:%.+]] = alloca %struct.s*

Modified: cfe/trunk/test/CodeGenCXX/PR19955.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/PR19955.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/PR19955.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/PR19955.cpp Fri Mar 16 13:36:49 2018
@@ -6,22 +6,22 @@ extern void __declspec(dllimport) fun();
 
 extern int *varp;
 int *varp = &var;
-// CHECK-DAG: @"\01?varp@@3PAHA" = dso_local global i32* null
-// X64-DAG: @"\01?varp@@3PEAHEA" = dso_local global i32* null
+// CHECK-DAG: @"?varp@@3PAHA" = dso_local global i32* null
+// X64-DAG: @"?varp@@3PEAHEA" = dso_local global i32* null
 
 extern void (*funp)();
 void (*funp)() = &fun;
-// CHECK-DAG: @"\01?funp@@3P6AXXZA" = dso_local global void ()* null
-// X64-DAG: @"\01?funp@@3P6AXXZEA" = dso_local global void ()* null
+// CHECK-DAG: @"?funp@@3P6AXXZA" = dso_local global void ()* null
+// X64-DAG: @"?funp@@3P6AXXZEA" = dso_local global void ()* null
 
-// CHECK-LABEL: @"\01??__Evarp@@YAXXZ"
-// CHECK-DAG: store i32* @"\01?var@@3HA", i32** @"\01?varp@@3PAHA"
+// CHECK-LABEL: @"??__Evarp@@YAXXZ"
+// CHECK-DAG: store i32* @"?var@@3HA", i32** @"?varp@@3PAHA"
 
-// X64-LABEL: @"\01??__Evarp@@YAXXZ"
-// X64-DAG: store i32* @"\01?var@@3HA", i32** @"\01?varp@@3PEAHEA"
+// X64-LABEL: @"??__Evarp@@YAXXZ"
+// X64-DAG: store i32* @"?var@@3HA", i32** @"?varp@@3PEAHEA"
 
-// CHECK-LABEL: @"\01??__Efunp@@YAXXZ"()
-// CHECK-DAG: store void ()* @"\01?fun@@YAXXZ", void ()** @"\01?funp@@3P6AXXZA"
+// CHECK-LABEL: @"??__Efunp@@YAXXZ"()
+// CHECK-DAG: store void ()* @"?fun@@YAXXZ", void ()** @"?funp@@3P6AXXZA"
 
-// X64-LABEL: @"\01??__Efunp@@YAXXZ"()
-// X64-DAG: store void ()* @"\01?fun@@YAXXZ", void ()** @"\01?funp@@3P6AXXZEA"
+// X64-LABEL: @"??__Efunp@@YAXXZ"()
+// X64-DAG: store void ()* @"?fun@@YAXXZ", void ()** @"?funp@@3P6AXXZEA"

Modified: cfe/trunk/test/CodeGenCXX/PR26569.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/PR26569.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/PR26569.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/PR26569.cpp Fri Mar 16 13:36:49 2018
@@ -9,12 +9,12 @@ class B : virtual A {};
 extern template class __declspec(dllimport) B<int>;
 class __declspec(dllexport) C : B<int> {};
 
-// CHECK-DAG: @[[VTABLE_C:.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4C@@6B@" to i8*), i8* bitcast (void (%class.A*)* @"\01?m_fn1 at A@@EAEXXZ" to i8*)] }
-// CHECK-DAG: @[[VTABLE_B:.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4?$B at H@@6B@" to i8*), i8* bitcast (void (%class.A*)* @"\01?m_fn1 at A@@EAEXXZ" to i8*)] }, comdat($"\01??_S?$B at H@@6B@")
-// CHECK-DAG: @[[VTABLE_A:.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4A@@6B@" to i8*), i8* bitcast (void (%class.A*)* @"\01?m_fn1 at A@@EAEXXZ" to i8*)] }, comdat($"\01??_SA@@6B@")
+// CHECK-DAG: @[[VTABLE_C:.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"??_R4C@@6B@" to i8*), i8* bitcast (void (%class.A*)* @"?m_fn1 at A@@EAEXXZ" to i8*)] }
+// CHECK-DAG: @[[VTABLE_B:.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"??_R4?$B at H@@6B@" to i8*), i8* bitcast (void (%class.A*)* @"?m_fn1 at A@@EAEXXZ" to i8*)] }, comdat($"??_S?$B at H@@6B@")
+// CHECK-DAG: @[[VTABLE_A:.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"??_R4A@@6B@" to i8*), i8* bitcast (void (%class.A*)* @"?m_fn1 at A@@EAEXXZ" to i8*)] }, comdat($"??_SA@@6B@")
 
-// CHECK-DAG: @"\01??_7C@@6B@" = dllexport unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* @[[VTABLE_C]], i32 0, i32 0, i32 1)
-// CHECK-DAG: @"\01??_S?$B at H@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* @[[VTABLE_B]], i32 0, i32 0, i32 1)
-// CHECK-DAG: @"\01??_SA@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* @[[VTABLE_A]], i32 0, i32 0, i32 1)
+// CHECK-DAG: @"??_7C@@6B@" = dllexport unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* @[[VTABLE_C]], i32 0, i32 0, i32 1)
+// CHECK-DAG: @"??_S?$B at H@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* @[[VTABLE_B]], i32 0, i32 0, i32 1)
+// CHECK-DAG: @"??_SA@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* @[[VTABLE_A]], i32 0, i32 0, i32 1)
 
-// CHECK-DAG: @"\01??_8?$B at H@@7B@" = available_externally dllimport unnamed_addr constant [2 x i32] [i32 0, i32 4]
+// CHECK-DAG: @"??_8?$B at H@@7B@" = available_externally dllimport unnamed_addr constant [2 x i32] [i32 0, i32 4]

Modified: cfe/trunk/test/CodeGenCXX/PR28220.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/PR28220.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/PR28220.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/PR28220.cpp Fri Mar 16 13:36:49 2018
@@ -14,6 +14,6 @@ template <typename T>
 S<T> U<T>::u;
 
 template S<int> U<int>::u;
-// CHECK-NOT: define internal void @"\01??__Eu@?$U at H@@2U?$S at H@@A at YAXXZ"(
+// CHECK-NOT: define internal void @"??__Eu@?$U at H@@2U?$S at H@@A at YAXXZ"(
 
 S<int> &i = U<int>::u;

Modified: cfe/trunk/test/CodeGenCXX/atomic-dllexport.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/atomic-dllexport.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/atomic-dllexport.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/atomic-dllexport.cpp Fri Mar 16 13:36:49 2018
@@ -3,7 +3,7 @@
 
 struct __declspec(dllexport) SomeStruct {
   // Copy assignment operator should be produced, and exported:
-  // M32: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.SomeStruct* @"\01??4SomeStruct@@QAEAAU0 at ABU0@@Z"
-  // M64: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.SomeStruct* @"\01??4SomeStruct@@QEAAAEAU0 at AEBU0@@Z"
+  // M32: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.SomeStruct* @"??4SomeStruct@@QAEAAU0 at ABU0@@Z"
+  // M64: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.SomeStruct* @"??4SomeStruct@@QEAAAEAU0 at AEBU0@@Z"
   _Atomic(int) mData;
 };

Modified: cfe/trunk/test/CodeGenCXX/cfi-cross-dso.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/cfi-cross-dso.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/cfi-cross-dso.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/cfi-cross-dso.cpp Fri Mar 16 13:36:49 2018
@@ -26,7 +26,7 @@ void g() {
   b.f();
 }
 
-// MS: @[[B_VTABLE:.*]] = private unnamed_addr constant { [2 x i8*] } {{.*}}@"\01??_R4B@?A@@6B@"{{.*}}@"\01?f at B@?A@@UEAAXXZ"
+// MS: @[[B_VTABLE:.*]] = private unnamed_addr constant { [2 x i8*] } {{.*}}@"??_R4B@?A@@6B@"{{.*}}@"?f at B@?A@@UEAAXXZ"
 
 // CHECK:   %[[VT:.*]] = load void (%struct.A*)**, void (%struct.A*)***
 // CHECK:   %[[VT2:.*]] = bitcast {{.*}}%[[VT]] to i8*, !nosanitize

Modified: cfe/trunk/test/CodeGenCXX/cfi-icall.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/cfi-icall.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/cfi-icall.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/cfi-icall.cpp Fri Mar 16 13:36:49 2018
@@ -21,7 +21,7 @@ void g() {
 }
 
 // ITANIUM: define internal void @_ZN12_GLOBAL__N_11fENS_1SE({{.*}} !type [[TS1:![0-9]+]] !type [[TS2:![0-9]+]]
-// MS: define internal void @"\01?f@?A@@YAXUS@?A@@@Z"({{.*}} !type [[TS1:![0-9]+]] !type [[TS2:![0-9]+]]
+// MS: define internal void @"?f@?A@@YAXUS@?A@@@Z"({{.*}} !type [[TS1:![0-9]+]] !type [[TS2:![0-9]+]]
 
 // CHECK: [[VOIDS1]] = distinct !{}
 // CHECK: [[TS1]] = !{i64 0, [[VOIDS1]]}

Modified: cfe/trunk/test/CodeGenCXX/cfi-ms-vbase-derived-cast.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/cfi-ms-vbase-derived-cast.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/cfi-ms-vbase-derived-cast.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/cfi-ms-vbase-derived-cast.cpp Fri Mar 16 13:36:49 2018
@@ -8,7 +8,7 @@ struct foo {
 template <typename T>
 struct bar : virtual public foo {
   void f() {
-    // CHECK: define{{.*}}@"\01?f@?$bar at Ubaz@@@@UEAAXXZ"
+    // CHECK: define{{.*}}@"?f@?$bar at Ubaz@@@@UEAAXXZ"
     // Load "this", vbtable, vbase offset and vtable.
     // CHECK: load
     // CHECK: load

Modified: cfe/trunk/test/CodeGenCXX/cfi-ms-vbase-nvcall.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/cfi-ms-vbase-nvcall.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/cfi-ms-vbase-nvcall.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/cfi-ms-vbase-nvcall.cpp Fri Mar 16 13:36:49 2018
@@ -16,7 +16,7 @@ struct baz : public bar<baz> {
 };
 
 void f(baz *z) {
-  // CHECK: define{{.*}}@"\01?f@@YAXPEAUbaz@@@Z"
+  // CHECK: define{{.*}}@"?f@@YAXPEAUbaz@@@Z"
   // Load z, vbtable, vbase offset and vtable.
   // CHECK: load
   // CHECK: load

Modified: cfe/trunk/test/CodeGenCXX/constructor-destructor-return-this.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/constructor-destructor-return-this.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/constructor-destructor-return-this.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/constructor-destructor-return-this.cpp Fri Mar 16 13:36:49 2018
@@ -45,8 +45,8 @@ B::~B() { }
 // CHECKIOS5-LABEL: define %class.B* @_ZN1BD2Ev(%class.B* %this)
 // CHECKIOS5-LABEL: define %class.B* @_ZN1BD1Ev(%class.B* %this)
 
-// CHECKMS-LABEL: define dso_local x86_thiscallcc %class.B* @"\01??0B@@QAE at PAH@Z"(%class.B* returned %this, i32* %i)
-// CHECKMS-LABEL: define dso_local x86_thiscallcc void @"\01??1B@@UAE at XZ"(%class.B* %this)
+// CHECKMS-LABEL: define dso_local x86_thiscallcc %class.B* @"??0B@@QAE at PAH@Z"(%class.B* returned %this, i32* %i)
+// CHECKMS-LABEL: define dso_local x86_thiscallcc void @"??1B@@UAE at XZ"(%class.B* %this)
 
 class C : public A, public B {
 public:
@@ -83,8 +83,8 @@ C::~C() { }
 // CHECKIOS5-LABEL: define void @_ZN1CD0Ev(%class.C* %this)
 // CHECKIOS5-LABEL: define void @_ZThn8_N1CD0Ev(%class.C* %this)
 
-// CHECKMS-LABEL: define dso_local x86_thiscallcc %class.C* @"\01??0C@@QAE at PAHPAD@Z"(%class.C* returned %this, i32* %i, i8* %c)
-// CHECKMS-LABEL: define dso_local x86_thiscallcc void @"\01??1C@@UAE at XZ"(%class.C* %this)
+// CHECKMS-LABEL: define dso_local x86_thiscallcc %class.C* @"??0C@@QAE at PAHPAD@Z"(%class.C* returned %this, i32* %i, i8* %c)
+// CHECKMS-LABEL: define dso_local x86_thiscallcc void @"??1C@@UAE at XZ"(%class.C* %this)
 
 class D : public virtual A {
 public:
@@ -110,8 +110,8 @@ D::~D() { }
 // CHECKIOS5-LABEL: define %class.D* @_ZN1DD2Ev(%class.D* %this, i8** %vtt)
 // CHECKIOS5-LABEL: define %class.D* @_ZN1DD1Ev(%class.D* %this)
 
-// CHECKMS-LABEL: define dso_local x86_thiscallcc %class.D* @"\01??0D@@QAE at XZ"(%class.D* returned %this, i32 %is_most_derived)
-// CHECKMS-LABEL: define dso_local x86_thiscallcc void @"\01??1D@@UAE at XZ"(%class.D* %this)
+// CHECKMS-LABEL: define dso_local x86_thiscallcc %class.D* @"??0D@@QAE at XZ"(%class.D* returned %this, i32 %is_most_derived)
+// CHECKMS-LABEL: define dso_local x86_thiscallcc void @"??1D@@UAE at XZ"(%class.D* %this)
 
 class E {
 public:

Modified: cfe/trunk/test/CodeGenCXX/cxx1z-aligned-allocation.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/cxx1z-aligned-allocation.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/cxx1z-aligned-allocation.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/cxx1z-aligned-allocation.cpp Fri Mar 16 13:36:49 2018
@@ -29,10 +29,10 @@ struct OVERALIGNED A { A(); int n[128];
 // CHECK-LABEL: define {{.*}} @_Z2a0v()
 // CHECK: %[[ALLOC:.*]] = call i8* @_ZnwmSt11align_val_t(i64 512, i64 32)
 // CHECK: call void @_ZdlPvSt11align_val_t(i8* %[[ALLOC]], i64 32)
-// CHECK-MS-LABEL: define {{.*}} @"\01?a0@@YAPEAXXZ"()
-// CHECK-MS: %[[ALLOC:.*]] = call i8* @"\01??2 at YAPEAX_KW4align_val_t@std@@@Z"(i64 512, i64 32)
+// CHECK-MS-LABEL: define {{.*}} @"?a0@@YAPEAXXZ"()
+// CHECK-MS: %[[ALLOC:.*]] = call i8* @"??2 at YAPEAX_KW4align_val_t@std@@@Z"(i64 512, i64 32)
 // CHECK-MS: cleanuppad
-// CHECK-MS: call void @"\01??3 at YAXPEAXW4align_val_t@std@@@Z"(i8* %[[ALLOC]], i64 32)
+// CHECK-MS: call void @"??3 at YAXPEAXW4align_val_t@std@@@Z"(i8* %[[ALLOC]], i64 32)
 void *a0() { return new A; }
 
 // FIXME: Why don't we call the sized array deallocation overload in this case?
@@ -44,13 +44,13 @@ void *a0() { return new A; }
 // CHECK-NOT: store
 // CHECK: invoke void @_ZN1AC1Ev(
 // CHECK: call void @_ZdaPvSt11align_val_t(i8* %[[ALLOC]], i64 32)
-// CHECK-MS-LABEL: define {{.*}} @"\01?a1@@YAPEAXJ at Z"(
-// CHECK-MS: %[[ALLOC:.*]] = call i8* @"\01??_U at YAPEAX_KW4align_val_t@std@@@Z"(i64 %{{.*}}, i64 32)
+// CHECK-MS-LABEL: define {{.*}} @"?a1@@YAPEAXJ at Z"(
+// CHECK-MS: %[[ALLOC:.*]] = call i8* @"??_U at YAPEAX_KW4align_val_t@std@@@Z"(i64 %{{.*}}, i64 32)
 // No array cookie.
 // CHECK-MS-NOT: store
-// CHECK-MS: invoke %struct.A* @"\01??0A@@QEAA at XZ"(
+// CHECK-MS: invoke %struct.A* @"??0A@@QEAA at XZ"(
 // CHECK-MS: cleanuppad
-// CHECK-MS: call void @"\01??_V at YAXPEAXW4align_val_t@std@@@Z"(i8* %[[ALLOC]], i64 32)
+// CHECK-MS: call void @"??_V at YAXPEAXW4align_val_t@std@@@Z"(i8* %[[ALLOC]], i64 32)
 void *a1(long n) { return new A[n]; }
 
 // CHECK-LABEL: define {{.*}} @_Z2a2P1A(

Modified: cfe/trunk/test/CodeGenCXX/cxx1z-eval-order.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/cxx1z-eval-order.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/cxx1z-eval-order.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/cxx1z-eval-order.cpp Fri Mar 16 13:36:49 2018
@@ -56,13 +56,13 @@ void (*get_f())(A);
 void postfix_before_args() {
   // CHECK: call {{.*}}@{{.*}}get_f{{.*}}(
   // CHECK-ITANIUM: call {{.*}}@_ZN1AC1Ev(
-  // CHECK-WINDOWS: call {{.*}}@"\01??0A@@Q{{AE|EAA}}@XZ"(
+  // CHECK-WINDOWS: call {{.*}}@"??0A@@Q{{AE|EAA}}@XZ"(
   // CHECK: call {{.*}}%{{.*}}(
   get_f()(A{});
 
   // CHECK: call {{.*}}@{{.*}}side_effect{{.*}}(
   // CHECK-ITANIUM: call {{.*}}@_ZN1AC1Ev(
-  // CHECK-WINDOWS: call {{.*}}@"\01??0A@@Q{{AE|EAA}}@XZ"(
+  // CHECK-WINDOWS: call {{.*}}@"??0A@@Q{{AE|EAA}}@XZ"(
   // CHECK: call {{.*}}@{{.*}}callee{{.*}}(
   (side_effect(), callee)(A{});
 // CHECK: }
@@ -126,7 +126,7 @@ void *operator new(decltype(sizeof(0)),
 void alloc_before_init() {
   struct Q { Q(A) {} };
   // CHECK-ITANIUM: call {{.*}}@_Znw{{.*}}(
-  // CHECK-WINDOWS: call {{.*}}@"\01??2 at YAP{{EAX_K|AXI}}@Z"(
+  // CHECK-WINDOWS: call {{.*}}@"??2 at YAP{{EAX_K|AXI}}@Z"(
   // CHECK: call {{.*}}@{{.*}}make_a{{.*}}(
   delete new Q(make_a());
 

Modified: cfe/trunk/test/CodeGenCXX/cxx1z-lambda-star-this.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/cxx1z-lambda-star-this.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/cxx1z-lambda-star-this.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/cxx1z-lambda-star-this.cpp Fri Mar 16 13:36:49 2018
@@ -10,7 +10,7 @@ namespace ns1 {
 int X = A{}.foo()();
 } //end ns1
 
-//CHECK: @"\01?foo at A@@QAE?A?<auto>@@XZ"(%struct.A* %this, %class.anon* noalias sret %[[A_LAMBDA_RETVAL:.*]])
+//CHECK: @"?foo at A@@QAE?A?<auto>@@XZ"(%struct.A* %this, %class.anon* noalias sret %[[A_LAMBDA_RETVAL:.*]])
 // get the first object with the closure type, which is of type 'struct.A'
 //CHECK: %[[I0:.+]] = getelementptr inbounds %[[A_LAMBDA]], %[[A_LAMBDA]]* %[[A_LAMBDA_RETVAL]], i32 0, i32 0
 //CHECK: %[[I1:.+]] = bitcast %struct.A* %[[I0]] to i8*
@@ -26,6 +26,6 @@ struct B {
 namespace ns2 {
 int X = B{}.bar()();
 }
-//CHECK: @"\01?bar at B@@QAE?A?<auto>@@XZ"(%struct.B* %this, %class.anon.0* noalias sret %agg.result)
+//CHECK: @"?bar at B@@QAE?A?<auto>@@XZ"(%struct.B* %this, %class.anon.0* noalias sret %agg.result)
 //CHECK: %[[I20:.+]] = getelementptr inbounds %class.anon.0, %class.anon.0* %agg.result, i32 0, i32 0
 //CHECK: store %struct.B* %this1, %struct.B** %[[I20]], align 4

Modified: cfe/trunk/test/CodeGenCXX/cxx2a-destroying-delete.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/cxx2a-destroying-delete.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/cxx2a-destroying-delete.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/cxx2a-destroying-delete.cpp Fri Mar 16 13:36:49 2018
@@ -21,7 +21,7 @@ void delete_A(A *a) { delete a; }
 // Ensure that we call the destroying delete and not the destructor.
 // CHECK-NOT: call
 // CHECK-ITANIUM: call void @_ZN1AdlEPS_St19destroying_delete_t(%{{.*}}* %[[a]])
-// CHECK-MSABI: call void @"\01??3A@@SAXPEAU0 at Udestroying_delete_t@std@@@Z"(%{{.*}}* %[[a]], i8
+// CHECK-MSABI: call void @"??3A@@SAXPEAU0 at Udestroying_delete_t@std@@@Z"(%{{.*}}* %[[a]], i8
 // CHECK-NOT: call
 // CHECK: }
 
@@ -65,7 +65,7 @@ void delete_C(C *c) { delete c; }
 //
 // CHECK-NOT: call
 // CHECK-ITANIUM: call void @_ZN1AdlEPS_St19destroying_delete_t(%{{.*}}* %[[a]])
-// CHECK-MSABI: call void @"\01??3A@@SAXPEAU0 at Udestroying_delete_t@std@@@Z"(%{{.*}}* %[[a]], i8
+// CHECK-MSABI: call void @"??3A@@SAXPEAU0 at Udestroying_delete_t@std@@@Z"(%{{.*}}* %[[a]], i8
 // CHECK-NOT: call
 // CHECK: }
 
@@ -100,7 +100,7 @@ void delete_G(G *g) { delete g; }
 // CHECK-LABEL: define {{.*}}delete_G
 // CHECK-NOT: call
 // CHECK-ITANIUM: call void @_ZN1FdlEPS_St19destroying_delete_tmSt11align_val_t(%{{.*}}* %[[a]], i64 32, i64 16)
-// CHECK-MSABI: call void @"\01??3F@@SAXPEAU0 at Udestroying_delete_t@std@@_KW4align_val_t at 2@@Z"(%{{.*}}* %[[a]], i8 {{[^,]*}}, i64 32, i64 16)
+// CHECK-MSABI: call void @"??3F@@SAXPEAU0 at Udestroying_delete_t@std@@_KW4align_val_t at 2@@Z"(%{{.*}}* %[[a]], i8 {{[^,]*}}, i64 32, i64 16)
 // CHECK-NOT: call
 // CHECK: }
 
@@ -116,7 +116,7 @@ H::~H() { call_in_dtor(); }
 // CHECK-ITANIUM-NOT: call
 // CHECK-ITANIUM: }
 
-// CHECK-MSABI: define {{.*}} @"\01??_GH@@UEAAPEAXI at Z"(
+// CHECK-MSABI: define {{.*}} @"??_GH@@UEAAPEAXI at Z"(
 // CHECK-MSABI-NOT: call{{ }}
 // CHECK-MSABI: load i32
 // CHECK-MSABI: icmp eq i32 {{.*}}, 0
@@ -125,10 +125,10 @@ H::~H() { call_in_dtor(); }
 // CHECK-MSABI-NOT: call{{ }}
 // CHECK-MSABI: getelementptr {{.*}}, i64 24
 // CHECK-MSABI-NOT: call{{ }}
-// CHECK-MSABI: call void @"\01??3F@@SAXPEAU0 at Udestroying_delete_t@std@@_KW4align_val_t at 2@@Z"({{.*}}, i64 48, i64 16)
+// CHECK-MSABI: call void @"??3F@@SAXPEAU0 at Udestroying_delete_t@std@@_KW4align_val_t at 2@@Z"({{.*}}, i64 48, i64 16)
 // CHECK-MSABI: br label %[[RETURN:.*]]
 //
-// CHECK-MSABI: call void @"\01??1H@@UEAA at XZ"(
+// CHECK-MSABI: call void @"??1H@@UEAA at XZ"(
 // CHECK-MSABI: br label %[[RETURN]]
 //
 // CHECK-MSABI: }
@@ -143,7 +143,7 @@ I::~I() { call_in_dtor(); }
 // CHECK-ITANIUM-NOT: call
 // CHECK-ITANIUM: }
 
-// CHECK-MSABI: define {{.*}} @"\01??_GI@@UEAAPEAXI at Z"(
+// CHECK-MSABI: define {{.*}} @"??_GI@@UEAAPEAXI at Z"(
 // CHECK-MSABI-NOT: call{{ }}
 // CHECK-MSABI: load i32
 // CHECK-MSABI: icmp eq i32 {{.*}}, 0
@@ -152,10 +152,10 @@ I::~I() { call_in_dtor(); }
 // CHECK-MSABI-NOT: call{{ }}
 // CHECK-MSABI: getelementptr {{.*}}, i64 24
 // CHECK-MSABI-NOT: call{{ }}
-// CHECK-MSABI: call void @"\01??3F@@SAXPEAU0 at Udestroying_delete_t@std@@_KW4align_val_t at 2@@Z"({{.*}}, i64 96, i64 32)
+// CHECK-MSABI: call void @"??3F@@SAXPEAU0 at Udestroying_delete_t@std@@_KW4align_val_t at 2@@Z"({{.*}}, i64 96, i64 32)
 // CHECK-MSABI: br label %[[RETURN:.*]]
 //
-// CHECK-MSABI: call void @"\01??1I@@UEAA at XZ"(
+// CHECK-MSABI: call void @"??1I@@UEAA at XZ"(
 // CHECK-MSABI: br label %[[RETURN]]
 //
 // CHECK-MSABI: }

Modified: cfe/trunk/test/CodeGenCXX/debug-info-ms-dtor-thunks.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-ms-dtor-thunks.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/debug-info-ms-dtor-thunks.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/debug-info-ms-dtor-thunks.cpp Fri Mar 16 13:36:49 2018
@@ -4,11 +4,11 @@ struct __declspec(dllexport) S { virtual
 struct __declspec(dllexport) T { virtual ~T(); };
 struct __declspec(dllexport) U : S, T { virtual ~U(); };
 
-// CHECK-LABEL: define {{.*}} @"\01??_GS@@UAEPAXI at Z"
-// CHECK: call x86_thiscallcc void @"\01??1S@@UAE at XZ"(%struct.S* %this1){{.*}}!dbg !{{[0-9]+}}
+// CHECK-LABEL: define {{.*}} @"??_GS@@UAEPAXI at Z"
+// CHECK: call x86_thiscallcc void @"??1S@@UAE at XZ"(%struct.S* %this1){{.*}}!dbg !{{[0-9]+}}
 
-// CHECK-LABEL: define {{.*}} @"\01??_GT@@UAEPAXI at Z"
-// CHECK: call x86_thiscallcc void @"\01??1T@@UAE at XZ"(%struct.T* %this1){{.*}}!dbg !{{[0-9]+}}
+// CHECK-LABEL: define {{.*}} @"??_GT@@UAEPAXI at Z"
+// CHECK: call x86_thiscallcc void @"??1T@@UAE at XZ"(%struct.T* %this1){{.*}}!dbg !{{[0-9]+}}
 
-// CHECK-LABEL: define {{.*}} @"\01??_GU@@UAEPAXI at Z"
-// CHECK: call x86_thiscallcc void @"\01??1U@@UAE at XZ"(%struct.U* %this1){{.*}}!dbg !{{[0-9]+}}
+// CHECK-LABEL: define {{.*}} @"??_GU@@UAEPAXI at Z"
+// CHECK: call x86_thiscallcc void @"??1U@@UAE at XZ"(%struct.U* %this1){{.*}}!dbg !{{[0-9]+}}

Modified: cfe/trunk/test/CodeGenCXX/debug-info-thunk-msabi.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-thunk-msabi.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/debug-info-thunk-msabi.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/debug-info-thunk-msabi.cpp Fri Mar 16 13:36:49 2018
@@ -3,10 +3,10 @@
 class __declspec(dllexport) A {
   A(int * = new int) {}
 };
-// CHECK: define {{.*}}void @"\01??_FA@@AAEXXZ"
+// CHECK: define {{.*}}void @"??_FA@@AAEXXZ"
 // CHECK-SAME: !dbg ![[SP:[0-9]+]]
 // CHECK-NOT: {{ret }}
-// CHECK: call x86_thiscallcc %class.A* @"\01??0A@@AAE at PAH@Z"
+// CHECK: call x86_thiscallcc %class.A* @"??0A@@AAE at PAH@Z"
 // CHECK-SAME: !dbg ![[DBG:[0-9]+]]
 // CHECK: ret void, !dbg
 //

Modified: cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/debug-info-windows-dtor.cpp Fri Mar 16 13:36:49 2018
@@ -14,8 +14,8 @@ struct AB: A, B {
 
 template struct AB<int>;
 
-// CHECK: define {{.*}}@"\01??_E?$AB at H@@W3AEPAXI at Z"({{.*}} !dbg [[THUNK_VEC_DEL_DTOR:![0-9]*]]
-// CHECK: call {{.*}}@"\01??_G?$AB at H@@UAEPAXI at Z"({{.*}}) #{{[0-9]*}}, !dbg [[THUNK_LOC:![0-9]*]]
+// CHECK: define {{.*}}@"??_E?$AB at H@@W3AEPAXI at Z"({{.*}} !dbg [[THUNK_VEC_DEL_DTOR:![0-9]*]]
+// CHECK: call {{.*}}@"??_G?$AB at H@@UAEPAXI at Z"({{.*}}) #{{[0-9]*}}, !dbg [[THUNK_LOC:![0-9]*]]
 // CHECK: define
 
 // CHECK: [[THUNK_VEC_DEL_DTOR]] = distinct !DISubprogram

Modified: cfe/trunk/test/CodeGenCXX/delayed-template-parsing.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/delayed-template-parsing.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/delayed-template-parsing.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/delayed-template-parsing.cpp Fri Mar 16 13:36:49 2018
@@ -11,8 +11,8 @@ namespace ClassScopeSpecialization {
 
   void call() {
     Type T;
-// CHECK: call {{.*}} @"\01??$Foo@$0A@@Type at ClassScopeSpecialization@@QAEXXZ"
-// X64: call {{.*}} @"\01??$Foo@$0A@@Type at ClassScopeSpecialization@@QEAAXXZ"
+// CHECK: call {{.*}} @"??$Foo@$0A@@Type at ClassScopeSpecialization@@QAEXXZ"
+// X64: call {{.*}} @"??$Foo@$0A@@Type at ClassScopeSpecialization@@QEAAXXZ"
     T.Foo<0>();
   }
 }

Modified: cfe/trunk/test/CodeGenCXX/dllexport-ctor-closure.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllexport-ctor-closure.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllexport-ctor-closure.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllexport-ctor-closure.cpp Fri Mar 16 13:36:49 2018
@@ -5,11 +5,11 @@
 
 struct CtorWithClosure {
   __declspec(dllexport) CtorWithClosure(...) {}
-// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_FCtorWithClosure@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
+// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"??_FCtorWithClosure@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
 // CHECK:   %[[this_addr:.*]] = alloca %struct.CtorWithClosure*, align 4
 // CHECK:   store %struct.CtorWithClosure* %this, %struct.CtorWithClosure** %[[this_addr]], align 4
 // CHECK:   %[[this:.*]] = load %struct.CtorWithClosure*, %struct.CtorWithClosure** %[[this_addr]]
-// CHECK:   call %struct.CtorWithClosure* (%struct.CtorWithClosure*, ...) @"\01??0CtorWithClosure@@QAA at ZZ"(%struct.CtorWithClosure* %[[this]])
+// CHECK:   call %struct.CtorWithClosure* (%struct.CtorWithClosure*, ...) @"??0CtorWithClosure@@QAA at ZZ"(%struct.CtorWithClosure* %[[this]])
 // CHECK:   ret void
 };
 
@@ -17,7 +17,7 @@ struct CtorWithClosureOutOfLine {
   __declspec(dllexport) CtorWithClosureOutOfLine(...);
 };
 CtorWithClosureOutOfLine::CtorWithClosureOutOfLine(...) {}
-// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_FCtorWithClosureOutOfLine@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
+// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"??_FCtorWithClosureOutOfLine@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
 
 #define DELETE_IMPLICIT_MEMBERS(ClassName) \
     ClassName(ClassName &&) = delete; \
@@ -28,11 +28,11 @@ CtorWithClosureOutOfLine::CtorWithClosur
 struct __declspec(dllexport) ClassWithClosure {
   DELETE_IMPLICIT_MEMBERS(ClassWithClosure);
   ClassWithClosure(...) {}
-// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_FClassWithClosure@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
+// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"??_FClassWithClosure@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
 // CHECK:   %[[this_addr:.*]] = alloca %struct.ClassWithClosure*, align 4
 // CHECK:   store %struct.ClassWithClosure* %this, %struct.ClassWithClosure** %[[this_addr]], align 4
 // CHECK:   %[[this:.*]] = load %struct.ClassWithClosure*, %struct.ClassWithClosure** %[[this_addr]]
-// CHECK:   call %struct.ClassWithClosure* (%struct.ClassWithClosure*, ...) @"\01??0ClassWithClosure@@QAA at ZZ"(%struct.ClassWithClosure* %[[this]])
+// CHECK:   call %struct.ClassWithClosure* (%struct.ClassWithClosure*, ...) @"??0ClassWithClosure@@QAA at ZZ"(%struct.ClassWithClosure* %[[this]])
 // CHECK:   ret void
 };
 
@@ -44,11 +44,11 @@ template struct __declspec(dllexport) Te
 extern template struct TemplateWithClosure<int>;
 template struct __declspec(dllexport) TemplateWithClosure<int>;
 
-// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_F?$TemplateWithClosure at D@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
-// CHECK:   call {{.*}} @"\01??0?$TemplateWithClosure at D@@QAE at H@Z"({{.*}}, i32 1)
+// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"??_F?$TemplateWithClosure at D@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
+// CHECK:   call {{.*}} @"??0?$TemplateWithClosure at D@@QAE at H@Z"({{.*}}, i32 1)
 
-// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_F?$TemplateWithClosure at H@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
-// CHECK:   call {{.*}} @"\01??0?$TemplateWithClosure at H@@QAE at H@Z"({{.*}}, i32 4)
+// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"??_F?$TemplateWithClosure at H@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
+// CHECK:   call {{.*}} @"??0?$TemplateWithClosure at H@@QAE at H@Z"({{.*}}, i32 4)
 
 struct __declspec(dllexport) NestedOuter {
   DELETE_IMPLICIT_MEMBERS(NestedOuter);
@@ -59,8 +59,8 @@ struct __declspec(dllexport) NestedOuter
   };
 };
 
-// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_FNestedOuter@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
-// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_FNestedInner at NestedOuter@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
+// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"??_FNestedOuter@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
+// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"??_FNestedInner at NestedOuter@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
 
 struct HasDtor {
   ~HasDtor();
@@ -76,7 +76,7 @@ struct __declspec(dllexport) CtorClosure
 };
 CtorClosureOutOfLine::CtorClosureOutOfLine(const HasImplicitDtor2 &v) {}
 
-// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_FCtorClosureInline@@QAEXXZ"
-// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"\01??1HasImplicitDtor1@@QAE at XZ"
-// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_FCtorClosureOutOfLine@@QAEXXZ"
-// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"\01??1HasImplicitDtor2@@QAE at XZ"
+// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"??_FCtorClosureInline@@QAEXXZ"
+// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"??1HasImplicitDtor1@@QAE at XZ"
+// CHECK-LABEL: define weak_odr dso_local dllexport x86_thiscallcc void @"??_FCtorClosureOutOfLine@@QAEXXZ"
+// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"??1HasImplicitDtor2@@QAE at XZ"

Modified: cfe/trunk/test/CodeGenCXX/dllexport-dtor-thunks.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllexport-dtor-thunks.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllexport-dtor-thunks.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllexport-dtor-thunks.cpp Fri Mar 16 13:36:49 2018
@@ -5,6 +5,6 @@ struct __declspec(dllexport) B { virtual
 struct __declspec(dllexport) C : A, B { virtual ~C(); };
 C::~C() {}
 
-// CHECK: define dso_local dllexport void @"\01??1C@@UEAA at XZ"
+// CHECK: define dso_local dllexport void @"??1C@@UEAA at XZ"
 // This thunk should *not* be dllexport.
-// CHECK: define linkonce_odr dso_local i8* @"\01??_EC@@W7EAAPEAXI at Z"
+// CHECK: define linkonce_odr dso_local i8* @"??_EC@@W7EAAPEAXI at Z"

Modified: cfe/trunk/test/CodeGenCXX/dllexport-members.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllexport-members.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllexport-members.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllexport-members.cpp Fri Mar 16 13:36:49 2018
@@ -26,14 +26,14 @@ extern "C" void free(void* p);
 struct ExportMembers {
   struct Nested;
 
-  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"\01?normalDef at ExportMembers@@QAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define          dso_local dllexport                void @"\01?normalDef at ExportMembers@@QEAAXXZ"(%struct.ExportMembers* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?normalInclass at ExportMembers@@QAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?normalInclass at ExportMembers@@QEAAXXZ"(%struct.ExportMembers* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?normalInlineDef at ExportMembers@@QAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?normalInlineDef at ExportMembers@@QEAAXXZ"(%struct.ExportMembers* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?normalInlineDecl at ExportMembers@@QAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?normalInlineDecl at ExportMembers@@QEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"?normalDef at ExportMembers@@QAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define          dso_local dllexport                void @"?normalDef at ExportMembers@@QEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?normalInclass at ExportMembers@@QAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?normalInclass at ExportMembers@@QEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?normalInlineDef at ExportMembers@@QAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?normalInlineDef at ExportMembers@@QEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?normalInlineDecl at ExportMembers@@QAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?normalInlineDecl at ExportMembers@@QEAAXXZ"(%struct.ExportMembers* %this)
   // G32-DAG: define          dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers9normalDefEv(%struct.ExportMembers* %this)
   // G64-DAG: define          dso_local dllexport                void @_ZN13ExportMembers9normalDefEv(%struct.ExportMembers* %this)
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers13normalInclassEv(%struct.ExportMembers* %this)
@@ -42,21 +42,21 @@ struct ExportMembers {
   // G64-DAG: define weak_odr dso_local dllexport                void @_ZN13ExportMembers15normalInlineDefEv(%struct.ExportMembers* %this)
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers16normalInlineDeclEv(%struct.ExportMembers* %this)
   // G64-DAG: define weak_odr dso_local dllexport                void @_ZN13ExportMembers16normalInlineDeclEv(%struct.ExportMembers* %this)
-  // M32-DAG: define linkonce_odr dso_local       x86_thiscallcc void @"\01?referencedNonExportedInClass at ExportMembers@@QAEXXZ"
+  // M32-DAG: define linkonce_odr dso_local       x86_thiscallcc void @"?referencedNonExportedInClass at ExportMembers@@QAEXXZ"
   __declspec(dllexport)                void normalDef();
   __declspec(dllexport)                void normalInclass() { referencedNonExportedInClass(); }
   __declspec(dllexport)                void normalInlineDef();
   __declspec(dllexport)         inline void normalInlineDecl();
                                        void referencedNonExportedInClass() {}
 
-  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"\01?virtualDef at ExportMembers@@UAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define          dso_local dllexport                void @"\01?virtualDef at ExportMembers@@UEAAXXZ"(%struct.ExportMembers* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?virtualInclass at ExportMembers@@UAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?virtualInclass at ExportMembers@@UEAAXXZ"(%struct.ExportMembers* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?virtualInlineDef at ExportMembers@@UAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?virtualInlineDef at ExportMembers@@UEAAXXZ"(%struct.ExportMembers* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?virtualInlineDecl at ExportMembers@@UAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?virtualInlineDecl at ExportMembers@@UEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"?virtualDef at ExportMembers@@UAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define          dso_local dllexport                void @"?virtualDef at ExportMembers@@UEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?virtualInclass at ExportMembers@@UAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?virtualInclass at ExportMembers@@UEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?virtualInlineDef at ExportMembers@@UAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?virtualInlineDef at ExportMembers@@UEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?virtualInlineDecl at ExportMembers@@UAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?virtualInlineDecl at ExportMembers@@UEAAXXZ"(%struct.ExportMembers* %this)
   // G32-DAG: define          dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers10virtualDefEv(%struct.ExportMembers* %this)
   // G64-DAG: define          dso_local dllexport                void @_ZN13ExportMembers10virtualDefEv(%struct.ExportMembers* %this)
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers14virtualInclassEv(%struct.ExportMembers* %this)
@@ -70,10 +70,10 @@ struct ExportMembers {
   __declspec(dllexport) virtual        void virtualInlineDef();
   __declspec(dllexport) virtual inline void virtualInlineDecl();
 
-  // MSC-DAG: define          dso_local dllexport                void @"\01?staticDef at ExportMembers@@SAXXZ"()
-  // MSC-DAG: define weak_odr dso_local dllexport                void @"\01?staticInclass at ExportMembers@@SAXXZ"()
-  // MSC-DAG: define weak_odr dso_local dllexport                void @"\01?staticInlineDef at ExportMembers@@SAXXZ"()
-  // MSC-DAG: define weak_odr dso_local dllexport                void @"\01?staticInlineDecl at ExportMembers@@SAXXZ"()
+  // MSC-DAG: define          dso_local dllexport                void @"?staticDef at ExportMembers@@SAXXZ"()
+  // MSC-DAG: define weak_odr dso_local dllexport                void @"?staticInclass at ExportMembers@@SAXXZ"()
+  // MSC-DAG: define weak_odr dso_local dllexport                void @"?staticInlineDef at ExportMembers@@SAXXZ"()
+  // MSC-DAG: define weak_odr dso_local dllexport                void @"?staticInlineDecl at ExportMembers@@SAXXZ"()
   // GNU-DAG: define          dso_local dllexport                void @_ZN13ExportMembers9staticDefEv()
   // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN13ExportMembers13staticInclassEv()
   // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN13ExportMembers15staticInlineDefEv()
@@ -83,39 +83,39 @@ struct ExportMembers {
   __declspec(dllexport) static         void staticInlineDef();
   __declspec(dllexport) static  inline void staticInlineDecl();
 
-  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"\01?protectedDef at ExportMembers@@IAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define          dso_local dllexport                void @"\01?protectedDef at ExportMembers@@IEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"?protectedDef at ExportMembers@@IAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define          dso_local dllexport                void @"?protectedDef at ExportMembers@@IEAAXXZ"(%struct.ExportMembers* %this)
   // G32-DAG: define          dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers12protectedDefEv(%struct.ExportMembers* %this)
   // G64-DAG: define          dso_local dllexport                void @_ZN13ExportMembers12protectedDefEv(%struct.ExportMembers* %this)
-  // MSC-DAG: define          dso_local dllexport                void @"\01?protectedStaticDef at ExportMembers@@KAXXZ"()
+  // MSC-DAG: define          dso_local dllexport                void @"?protectedStaticDef at ExportMembers@@KAXXZ"()
   // GNU-DAG: define          dso_local dllexport                void @_ZN13ExportMembers18protectedStaticDefEv()
 protected:
   __declspec(dllexport)                void protectedDef();
   __declspec(dllexport) static         void protectedStaticDef();
 
-  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"\01?privateDef at ExportMembers@@AAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define          dso_local dllexport                void @"\01?privateDef at ExportMembers@@AEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"?privateDef at ExportMembers@@AAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define          dso_local dllexport                void @"?privateDef at ExportMembers@@AEAAXXZ"(%struct.ExportMembers* %this)
   // G32-DAG: define          dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers10privateDefEv(%struct.ExportMembers* %this)
   // G64-DAG: define          dso_local dllexport                void @_ZN13ExportMembers10privateDefEv(%struct.ExportMembers* %this)
-  // MSC-DAG: define          dso_local dllexport                void @"\01?privateStaticDef at ExportMembers@@CAXXZ"()
+  // MSC-DAG: define          dso_local dllexport                void @"?privateStaticDef at ExportMembers@@CAXXZ"()
   // GNU-DAG: define          dso_local dllexport                void @_ZN13ExportMembers16privateStaticDefEv()
 private:
   __declspec(dllexport)                void privateDef();
   __declspec(dllexport) static         void privateStaticDef();
 
-  // M32-DAG: define          dso_local x86_thiscallcc void @"\01?ignored at ExportMembers@@QAEXXZ"(%struct.ExportMembers* %this)
-  // M64-DAG: define          dso_local                void @"\01?ignored at ExportMembers@@QEAAXXZ"(%struct.ExportMembers* %this)
+  // M32-DAG: define          dso_local x86_thiscallcc void @"?ignored at ExportMembers@@QAEXXZ"(%struct.ExportMembers* %this)
+  // M64-DAG: define          dso_local                void @"?ignored at ExportMembers@@QEAAXXZ"(%struct.ExportMembers* %this)
   // G32-DAG: define          dso_local x86_thiscallcc void @_ZN13ExportMembers7ignoredEv(%struct.ExportMembers* %this)
   // G64-DAG: define          dso_local                void @_ZN13ExportMembers7ignoredEv(%struct.ExportMembers* %this)
 public:
   void ignored();
 
-  // MSC-DAG: @"\01?StaticField at ExportMembers@@2HA"               = dso_local dllexport global i32 1, align 4
-  // MSC-DAG: @"\01?StaticConstField at ExportMembers@@2HB"          = dso_local dllexport constant i32 1, align 4
-  // MSC-DAG: @"\01?StaticConstFieldEqualInit at ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
-  // MSC-DAG: @"\01?StaticConstFieldBraceInit at ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
-  // MSC-DAG: @"\01?StaticConstFieldRefNotDef at ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
-  // MSC-DAG: @"\01?ConstexprField at ExportMembers@@2HB"            = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+  // MSC-DAG: @"?StaticField at ExportMembers@@2HA"               = dso_local dllexport global i32 1, align 4
+  // MSC-DAG: @"?StaticConstField at ExportMembers@@2HB"          = dso_local dllexport constant i32 1, align 4
+  // MSC-DAG: @"?StaticConstFieldEqualInit at ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+  // MSC-DAG: @"?StaticConstFieldBraceInit at ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+  // MSC-DAG: @"?StaticConstFieldRefNotDef at ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+  // MSC-DAG: @"?ConstexprField at ExportMembers@@2HB"            = weak_odr dso_local dllexport constant i32 1, comdat, align 4
   // GNU-DAG: @_ZN13ExportMembers11StaticFieldE                   = dso_local dllexport global i32 1, align 4
   // GNU-DAG: @_ZN13ExportMembers16StaticConstFieldE              = dso_local dllexport constant i32 1, align 4
   // GNU-DAG: @_ZN13ExportMembers25StaticConstFieldEqualInitE     = dso_local dllexport constant i32 1, align 4
@@ -154,14 +154,14 @@ constexpr int ExportMembers::ConstexprFi
 
 // Export individual members of a nested class.
 struct ExportMembers::Nested {
-  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"\01?normalDef at Nested@ExportMembers@@QAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define          dso_local dllexport                void @"\01?normalDef at Nested@ExportMembers@@QEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?normalInclass at Nested@ExportMembers@@QAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?normalInclass at Nested@ExportMembers@@QEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?normalInlineDef at Nested@ExportMembers@@QAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?normalInlineDef at Nested@ExportMembers@@QEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?normalInlineDecl at Nested@ExportMembers@@QAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?normalInlineDecl at Nested@ExportMembers@@QEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"?normalDef at Nested@ExportMembers@@QAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define          dso_local dllexport                void @"?normalDef at Nested@ExportMembers@@QEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?normalInclass at Nested@ExportMembers@@QAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?normalInclass at Nested@ExportMembers@@QEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?normalInlineDef at Nested@ExportMembers@@QAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?normalInlineDef at Nested@ExportMembers@@QEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?normalInlineDecl at Nested@ExportMembers@@QAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?normalInlineDecl at Nested@ExportMembers@@QEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
   // G32-DAG: define          dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers6Nested9normalDefEv(%"struct.ExportMembers::Nested"* %this)
   // G64-DAG: define          dso_local dllexport                void @_ZN13ExportMembers6Nested9normalDefEv(%"struct.ExportMembers::Nested"* %this)
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers6Nested13normalInclassEv(%"struct.ExportMembers::Nested"* %this)
@@ -175,14 +175,14 @@ struct ExportMembers::Nested {
   __declspec(dllexport)                void normalInlineDef();
   __declspec(dllexport)         inline void normalInlineDecl();
 
-  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"\01?virtualDef at Nested@ExportMembers@@UAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define          dso_local dllexport                void @"\01?virtualDef at Nested@ExportMembers@@UEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?virtualInclass at Nested@ExportMembers@@UAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?virtualInclass at Nested@ExportMembers@@UEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?virtualInlineDef at Nested@ExportMembers@@UAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?virtualInlineDef at Nested@ExportMembers@@UEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?virtualInlineDecl at Nested@ExportMembers@@UAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01?virtualInlineDecl at Nested@ExportMembers@@UEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"?virtualDef at Nested@ExportMembers@@UAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define          dso_local dllexport                void @"?virtualDef at Nested@ExportMembers@@UEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?virtualInclass at Nested@ExportMembers@@UAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?virtualInclass at Nested@ExportMembers@@UEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?virtualInlineDef at Nested@ExportMembers@@UAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?virtualInlineDef at Nested@ExportMembers@@UEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?virtualInlineDecl at Nested@ExportMembers@@UAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"?virtualInlineDecl at Nested@ExportMembers@@UEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
   // G32-DAG: define          dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers6Nested10virtualDefEv(%"struct.ExportMembers::Nested"* %this)
   // G64-DAG: define          dso_local dllexport                void @_ZN13ExportMembers6Nested10virtualDefEv(%"struct.ExportMembers::Nested"* %this)
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers6Nested14virtualInclassEv(%"struct.ExportMembers::Nested"* %this)
@@ -196,10 +196,10 @@ struct ExportMembers::Nested {
   __declspec(dllexport) virtual        void virtualInlineDef();
   __declspec(dllexport) virtual inline void virtualInlineDecl();
 
-  // MSC-DAG: define          dso_local dllexport                void @"\01?staticDef at Nested@ExportMembers@@SAXXZ"()
-  // MSC-DAG: define weak_odr dso_local dllexport                void @"\01?staticInclass at Nested@ExportMembers@@SAXXZ"()
-  // MSC-DAG: define weak_odr dso_local dllexport                void @"\01?staticInlineDef at Nested@ExportMembers@@SAXXZ"()
-  // MSC-DAG: define weak_odr dso_local dllexport                void @"\01?staticInlineDecl at Nested@ExportMembers@@SAXXZ"()
+  // MSC-DAG: define          dso_local dllexport                void @"?staticDef at Nested@ExportMembers@@SAXXZ"()
+  // MSC-DAG: define weak_odr dso_local dllexport                void @"?staticInclass at Nested@ExportMembers@@SAXXZ"()
+  // MSC-DAG: define weak_odr dso_local dllexport                void @"?staticInlineDef at Nested@ExportMembers@@SAXXZ"()
+  // MSC-DAG: define weak_odr dso_local dllexport                void @"?staticInlineDecl at Nested@ExportMembers@@SAXXZ"()
   // GNU-DAG: define          dso_local dllexport                void @_ZN13ExportMembers6Nested9staticDefEv()
   // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN13ExportMembers6Nested13staticInclassEv()
   // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN13ExportMembers6Nested15staticInlineDefEv()
@@ -209,39 +209,39 @@ struct ExportMembers::Nested {
   __declspec(dllexport) static         void staticInlineDef();
   __declspec(dllexport) static  inline void staticInlineDecl();
 
-  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"\01?protectedDef at Nested@ExportMembers@@IAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define          dso_local dllexport                void @"\01?protectedDef at Nested@ExportMembers@@IEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"?protectedDef at Nested@ExportMembers@@IAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define          dso_local dllexport                void @"?protectedDef at Nested@ExportMembers@@IEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
   // G32-DAG: define          dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers6Nested12protectedDefEv(%"struct.ExportMembers::Nested"* %this)
   // G64-DAG: define          dso_local dllexport                void @_ZN13ExportMembers6Nested12protectedDefEv(%"struct.ExportMembers::Nested"* %this)
-  // MSC-DAG: define          dso_local dllexport                void @"\01?protectedStaticDef at Nested@ExportMembers@@KAXXZ"()
+  // MSC-DAG: define          dso_local dllexport                void @"?protectedStaticDef at Nested@ExportMembers@@KAXXZ"()
   // GNU-DAG: define          dso_local dllexport                void @_ZN13ExportMembers6Nested18protectedStaticDefEv()
 protected:
   __declspec(dllexport)                void protectedDef();
   __declspec(dllexport) static         void protectedStaticDef();
 
-  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"\01?privateDef at Nested@ExportMembers@@AAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define          dso_local dllexport                void @"\01?privateDef at Nested@ExportMembers@@AEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define          dso_local dllexport x86_thiscallcc void @"?privateDef at Nested@ExportMembers@@AAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define          dso_local dllexport                void @"?privateDef at Nested@ExportMembers@@AEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
   // G32-DAG: define          dso_local dllexport x86_thiscallcc void @_ZN13ExportMembers6Nested10privateDefEv(%"struct.ExportMembers::Nested"* %this)
   // G64-DAG: define          dso_local dllexport                void @_ZN13ExportMembers6Nested10privateDefEv(%"struct.ExportMembers::Nested"* %this)
-  // MSC-DAG: define          dso_local dllexport                void @"\01?privateStaticDef at Nested@ExportMembers@@CAXXZ"()
+  // MSC-DAG: define          dso_local dllexport                void @"?privateStaticDef at Nested@ExportMembers@@CAXXZ"()
   // GNU-DAG: define          dso_local dllexport                void @_ZN13ExportMembers6Nested16privateStaticDefEv()
 private:
   __declspec(dllexport)                void privateDef();
   __declspec(dllexport) static         void privateStaticDef();
 
-  // M32-DAG: define          dso_local x86_thiscallcc void @"\01?ignored at Nested@ExportMembers@@QAEXXZ"(%"struct.ExportMembers::Nested"* %this)
-  // M64-DAG: define          dso_local                void @"\01?ignored at Nested@ExportMembers@@QEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M32-DAG: define          dso_local x86_thiscallcc void @"?ignored at Nested@ExportMembers@@QAEXXZ"(%"struct.ExportMembers::Nested"* %this)
+  // M64-DAG: define          dso_local                void @"?ignored at Nested@ExportMembers@@QEAAXXZ"(%"struct.ExportMembers::Nested"* %this)
   // G32-DAG: define          dso_local x86_thiscallcc void @_ZN13ExportMembers6Nested7ignoredEv(%"struct.ExportMembers::Nested"* %this)
   // G64-DAG: define          dso_local                void @_ZN13ExportMembers6Nested7ignoredEv(%"struct.ExportMembers::Nested"* %this)
 public:
   void ignored();
 
-  // MSC-DAG: @"\01?StaticField at Nested@ExportMembers@@2HA"               = dso_local dllexport global i32 1, align 4
-  // MSC-DAG: @"\01?StaticConstField at Nested@ExportMembers@@2HB"          = dso_local dllexport constant i32 1, align 4
-  // MSC-DAG: @"\01?StaticConstFieldEqualInit at Nested@ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
-  // MSC-DAG: @"\01?StaticConstFieldBraceInit at Nested@ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
-  // MSC-DAG: @"\01?StaticConstFieldRefNotDef at Nested@ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
-  // MSC-DAG: @"\01?ConstexprField at Nested@ExportMembers@@2HB"            = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+  // MSC-DAG: @"?StaticField at Nested@ExportMembers@@2HA"               = dso_local dllexport global i32 1, align 4
+  // MSC-DAG: @"?StaticConstField at Nested@ExportMembers@@2HB"          = dso_local dllexport constant i32 1, align 4
+  // MSC-DAG: @"?StaticConstFieldEqualInit at Nested@ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+  // MSC-DAG: @"?StaticConstFieldBraceInit at Nested@ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+  // MSC-DAG: @"?StaticConstFieldRefNotDef at Nested@ExportMembers@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+  // MSC-DAG: @"?ConstexprField at Nested@ExportMembers@@2HB"            = weak_odr dso_local dllexport constant i32 1, comdat, align 4
   // GNU-DAG: @_ZN13ExportMembers6Nested11StaticFieldE                   = dso_local dllexport global i32 1, align 4
   // GNU-DAG: @_ZN13ExportMembers6Nested16StaticConstFieldE              = dso_local dllexport constant i32 1, align 4
   // GNU-DAG: @_ZN13ExportMembers6Nested25StaticConstFieldEqualInitE     = dso_local dllexport constant i32 1, align 4
@@ -280,46 +280,46 @@ constexpr int ExportMembers::Nested::Con
 
 // Export special member functions.
 struct ExportSpecials {
-  // M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ExportSpecials* @"\01??0ExportSpecials@@QAE at XZ"(%struct.ExportSpecials* returned %this)
-  // M64-DAG: define dso_local dllexport                %struct.ExportSpecials* @"\01??0ExportSpecials@@QEAA at XZ"(%struct.ExportSpecials* returned %this)
+  // M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ExportSpecials* @"??0ExportSpecials@@QAE at XZ"(%struct.ExportSpecials* returned %this)
+  // M64-DAG: define dso_local dllexport                %struct.ExportSpecials* @"??0ExportSpecials@@QEAA at XZ"(%struct.ExportSpecials* returned %this)
   // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN14ExportSpecialsC1Ev(%struct.ExportSpecials* %this)
   // G64-DAG: define dso_local dllexport                void @_ZN14ExportSpecialsC1Ev(%struct.ExportSpecials* %this)
   // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN14ExportSpecialsC2Ev(%struct.ExportSpecials* %this)
   // G64-DAG: define dso_local dllexport                void @_ZN14ExportSpecialsC2Ev(%struct.ExportSpecials* %this)
   __declspec(dllexport) ExportSpecials();
 
-  // M32-DAG: define dso_local dllexport x86_thiscallcc void @"\01??1ExportSpecials@@QAE at XZ"(%struct.ExportSpecials* %this)
-  // M64-DAG: define dso_local dllexport                void @"\01??1ExportSpecials@@QEAA at XZ"(%struct.ExportSpecials* %this)
+  // M32-DAG: define dso_local dllexport x86_thiscallcc void @"??1ExportSpecials@@QAE at XZ"(%struct.ExportSpecials* %this)
+  // M64-DAG: define dso_local dllexport                void @"??1ExportSpecials@@QEAA at XZ"(%struct.ExportSpecials* %this)
   // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN14ExportSpecialsD1Ev(%struct.ExportSpecials* %this)
   // G64-DAG: define dso_local dllexport                void @_ZN14ExportSpecialsD1Ev(%struct.ExportSpecials* %this)
   // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN14ExportSpecialsD2Ev(%struct.ExportSpecials* %this)
   // G64-DAG: define dso_local dllexport                void @_ZN14ExportSpecialsD2Ev(%struct.ExportSpecials* %this)
   __declspec(dllexport) ~ExportSpecials();
 
-  // M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ExportSpecials* @"\01??0ExportSpecials@@QAE at ABU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: define dso_local dllexport                %struct.ExportSpecials* @"\01??0ExportSpecials@@QEAA at AEBU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ExportSpecials* @"??0ExportSpecials@@QAE at ABU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: define dso_local dllexport                %struct.ExportSpecials* @"??0ExportSpecials@@QEAA at AEBU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN14ExportSpecialsC1ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: define dso_local dllexport                void @_ZN14ExportSpecialsC1ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN14ExportSpecialsC2ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: define dso_local dllexport                void @_ZN14ExportSpecialsC2ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   __declspec(dllexport) ExportSpecials(const ExportSpecials&);
 
-  // M32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @"\01??4ExportSpecials@@QAEAAU0 at ABU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @"\01??4ExportSpecials@@QEAAAEAU0 at AEBU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @"??4ExportSpecials@@QAEAAU0 at ABU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @"??4ExportSpecials@@QEAAAEAU0 at AEBU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @_ZN14ExportSpecialsaSERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @_ZN14ExportSpecialsaSERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   __declspec(dllexport) ExportSpecials& operator=(const ExportSpecials&);
 
-  // M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ExportSpecials* @"\01??0ExportSpecials@@QAE@$$QAU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: define dso_local dllexport                %struct.ExportSpecials* @"\01??0ExportSpecials@@QEAA@$$QEAU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ExportSpecials* @"??0ExportSpecials@@QAE@$$QAU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: define dso_local dllexport                %struct.ExportSpecials* @"??0ExportSpecials@@QEAA@$$QEAU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN14ExportSpecialsC1EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: define dso_local dllexport                void @_ZN14ExportSpecialsC1EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN14ExportSpecialsC2EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: define dso_local dllexport                void @_ZN14ExportSpecialsC2EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   __declspec(dllexport) ExportSpecials(ExportSpecials&&);
 
-  // M32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @"\01??4ExportSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @"\01??4ExportSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @"??4ExportSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @"??4ExportSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @_ZN14ExportSpecialsaSEOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportSpecials* @_ZN14ExportSpecialsaSEOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* dereferenceable({{[0-9]+}}))
   __declspec(dllexport) ExportSpecials& operator=(ExportSpecials&&);
@@ -334,38 +334,38 @@ ExportSpecials& ExportSpecials::operator
 
 // Export class with inline special member functions.
 struct ExportInlineSpecials {
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportInlineSpecials* @"\01??0ExportInlineSpecials@@QAE at XZ"(%struct.ExportInlineSpecials* returned %this)
-  // M64-DAG: define weak_odr dso_local dllexport                %struct.ExportInlineSpecials* @"\01??0ExportInlineSpecials@@QEAA at XZ"(
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportInlineSpecials* @"??0ExportInlineSpecials@@QAE at XZ"(%struct.ExportInlineSpecials* returned %this)
+  // M64-DAG: define weak_odr dso_local dllexport                %struct.ExportInlineSpecials* @"??0ExportInlineSpecials@@QEAA at XZ"(
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN20ExportInlineSpecialsC1Ev(
   // G64-DAG: define weak_odr dso_local dllexport                void @_ZN20ExportInlineSpecialsC1Ev(
   __declspec(dllexport) ExportInlineSpecials() {}
 
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??1ExportInlineSpecials@@QAE at XZ"(
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01??1ExportInlineSpecials@@QEAA at XZ"(
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??1ExportInlineSpecials@@QAE at XZ"(
+  // M64-DAG: define weak_odr dso_local dllexport                void @"??1ExportInlineSpecials@@QEAA at XZ"(
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN20ExportInlineSpecialsD1Ev(
   // G64-DAG: define weak_odr dso_local dllexport                void @_ZN20ExportInlineSpecialsD1Ev(
   __declspec(dllexport) ~ExportInlineSpecials() {}
 
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportInlineSpecials* @"\01??0ExportInlineSpecials@@QAE at ABU0@@Z"(
-  // M64-DAG: define weak_odr dso_local dllexport                %struct.ExportInlineSpecials* @"\01??0ExportInlineSpecials@@QEAA at AEBU0@@Z"(
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportInlineSpecials* @"??0ExportInlineSpecials@@QAE at ABU0@@Z"(
+  // M64-DAG: define weak_odr dso_local dllexport                %struct.ExportInlineSpecials* @"??0ExportInlineSpecials@@QEAA at AEBU0@@Z"(
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN20ExportInlineSpecialsC1ERKS_(
   // G64-DAG: define weak_odr dso_local dllexport                void @_ZN20ExportInlineSpecialsC1ERKS_(
   __declspec(dllexport) inline ExportInlineSpecials(const ExportInlineSpecials&);
 
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QAEAAU0 at ABU0@@Z"(
-  // M64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QEAAAEAU0 at AEBU0@@Z"(
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @"??4ExportInlineSpecials@@QAEAAU0 at ABU0@@Z"(
+  // M64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @"??4ExportInlineSpecials@@QEAAAEAU0 at AEBU0@@Z"(
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSERKS_(
   // G64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSERKS_(
   __declspec(dllexport) ExportInlineSpecials& operator=(const ExportInlineSpecials&);
 
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportInlineSpecials* @"\01??0ExportInlineSpecials@@QAE@$$QAU0@@Z"(
-  // M64-DAG: define weak_odr dso_local dllexport                %struct.ExportInlineSpecials* @"\01??0ExportInlineSpecials@@QEAA@$$QEAU0@@Z"(
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportInlineSpecials* @"??0ExportInlineSpecials@@QAE@$$QAU0@@Z"(
+  // M64-DAG: define weak_odr dso_local dllexport                %struct.ExportInlineSpecials* @"??0ExportInlineSpecials@@QEAA@$$QEAU0@@Z"(
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN20ExportInlineSpecialsC1EOS_(
   // G64-DAG: define weak_odr dso_local dllexport                void @_ZN20ExportInlineSpecialsC1EOS_(
   __declspec(dllexport) ExportInlineSpecials(ExportInlineSpecials&&) {}
 
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(
-  // M64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QEAAAEAU0@$$QEAU0@@Z"(
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @"??4ExportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(
+  // M64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @"??4ExportInlineSpecials@@QEAAAEAU0@$$QEAU0@@Z"(
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSEOS_(
   // G64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSEOS_(
   __declspec(dllexport) ExportInlineSpecials& operator=(ExportInlineSpecials&&) { return *this; }
@@ -384,46 +384,46 @@ struct ExportDefaultedDefs {
   __declspec(dllexport) ExportDefaultedDefs& operator=(ExportDefaultedDefs&&);
 };
 
-// M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QAE at XZ"(%struct.ExportDefaultedDefs* returned %this)
-// M64-DAG: define dso_local dllexport                %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QEAA at XZ"(%struct.ExportDefaultedDefs* returned %this)
+// M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"??0ExportDefaultedDefs@@QAE at XZ"(%struct.ExportDefaultedDefs* returned %this)
+// M64-DAG: define dso_local dllexport                %struct.ExportDefaultedDefs* @"??0ExportDefaultedDefs@@QEAA at XZ"(%struct.ExportDefaultedDefs* returned %this)
 // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC1Ev(%struct.ExportDefaultedDefs* %this)
 // G64-DAG: define dso_local dllexport                void @_ZN19ExportDefaultedDefsC1Ev(%struct.ExportDefaultedDefs* %this)
 // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC2Ev(%struct.ExportDefaultedDefs* %this)
 // G64-DAG: define dso_local dllexport                void @_ZN19ExportDefaultedDefsC2Ev(%struct.ExportDefaultedDefs* %this)
 __declspec(dllexport) ExportDefaultedDefs::ExportDefaultedDefs() = default;
 
-// M32-DAG: define dso_local dllexport x86_thiscallcc void @"\01??1ExportDefaultedDefs@@QAE at XZ"(%struct.ExportDefaultedDefs* %this)
-// M64-DAG: define dso_local dllexport                void @"\01??1ExportDefaultedDefs@@QEAA at XZ"(%struct.ExportDefaultedDefs* %this)
+// M32-DAG: define dso_local dllexport x86_thiscallcc void @"??1ExportDefaultedDefs@@QAE at XZ"(%struct.ExportDefaultedDefs* %this)
+// M64-DAG: define dso_local dllexport                void @"??1ExportDefaultedDefs@@QEAA at XZ"(%struct.ExportDefaultedDefs* %this)
 // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsD1Ev(%struct.ExportDefaultedDefs* %this)
 // G64-DAG: define dso_local dllexport                void @_ZN19ExportDefaultedDefsD1Ev(%struct.ExportDefaultedDefs* %this)
 // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsD2Ev(%struct.ExportDefaultedDefs* %this)
 // G64-DAG: define dso_local dllexport                void @_ZN19ExportDefaultedDefsD2Ev(%struct.ExportDefaultedDefs* %this)
 ExportDefaultedDefs::~ExportDefaultedDefs() = default;
 
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QAE at ABU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
-// M64-DAG: define weak_odr dso_local dllexport                %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QEAA at AEBU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"??0ExportDefaultedDefs@@QAE at ABU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M64-DAG: define weak_odr dso_local dllexport                %struct.ExportDefaultedDefs* @"??0ExportDefaultedDefs@@QEAA at AEBU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC1ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define weak_odr dso_local dllexport                void @_ZN19ExportDefaultedDefsC1ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC2ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define weak_odr dso_local dllexport                void @_ZN19ExportDefaultedDefsC2ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 __declspec(dllexport) ExportDefaultedDefs::ExportDefaultedDefs(const ExportDefaultedDefs&) = default;
 
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QAEAAU0 at ABU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
-// M64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QEAAAEAU0 at AEBU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @"??4ExportDefaultedDefs@@QAEAAU0 at ABU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @"??4ExportDefaultedDefs@@QEAAAEAU0 at AEBU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 inline ExportDefaultedDefs& ExportDefaultedDefs::operator=(const ExportDefaultedDefs&) = default;
 
-// M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QAE@$$QAU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
-// M64-DAG: define dso_local dllexport                %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QEAA@$$QEAU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"??0ExportDefaultedDefs@@QAE@$$QAU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M64-DAG: define dso_local dllexport                %struct.ExportDefaultedDefs* @"??0ExportDefaultedDefs@@QEAA@$$QEAU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC1EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define dso_local dllexport                void @_ZN19ExportDefaultedDefsC1EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC2EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define dso_local dllexport                void @_ZN19ExportDefaultedDefsC2EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 __declspec(dllexport) ExportDefaultedDefs::ExportDefaultedDefs(ExportDefaultedDefs&&) = default;
 
-// M32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QAEAAU0@$$QAU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
-// M64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @"??4ExportDefaultedDefs@@QAEAAU0@$$QAU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @"??4ExportDefaultedDefs@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSEOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSEOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* dereferenceable({{[0-9]+}}))
 ExportDefaultedDefs& ExportDefaultedDefs::operator=(ExportDefaultedDefs&&) = default;
@@ -432,26 +432,26 @@ ExportDefaultedDefs& ExportDefaultedDefs
 // Export defaulted member function definitions declared inside class.
 struct ExportDefaultedInclassDefs {
   __declspec(dllexport) ExportDefaultedInclassDefs() = default;
-  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
-  // M64VS2013-DAG: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
-  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
-  // M64VS2015-NOT: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
+  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
+  // M64VS2013-DAG: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
+  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
+  // M64VS2015-NOT: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
 
   __declspec(dllexport) ~ExportDefaultedInclassDefs() = default;
-  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??1ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* %this)
-  // M64VS2013-DAG: define weak_odr dso_local dllexport                void @"\01??1ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* %this)
-  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??1ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* %this)
-  // M64VS2015-NOT: define weak_odr dso_local dllexport                void @"\01??1ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* %this)
+  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??1ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* %this)
+  // M64VS2013-DAG: define weak_odr dso_local dllexport                void @"??1ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* %this)
+  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc void @"??1ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* %this)
+  // M64VS2015-NOT: define weak_odr dso_local dllexport                void @"??1ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* %this)
 
   __declspec(dllexport) ExportDefaultedInclassDefs(const ExportDefaultedInclassDefs&) = default;
-  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QAE at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
-  // M64VS2013-DAG: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QEAA at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
-  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QAE at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
-  // M64VS2015-NOT: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QEAA at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QAE at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M64VS2013-DAG: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QEAA at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QAE at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M64VS2015-NOT: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QEAA at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
 
   __declspec(dllexport) ExportDefaultedInclassDefs& operator=(const ExportDefaultedInclassDefs&) = default;
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportDefaultedInclassDefs* @"\01??4ExportDefaultedInclassDefs@@QAEAAU0 at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
-  // M64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportDefaultedInclassDefs* @"\01??4ExportDefaultedInclassDefs@@QEAAAEAU0 at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportDefaultedInclassDefs* @"??4ExportDefaultedInclassDefs@@QAEAAU0 at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportDefaultedInclassDefs* @"??4ExportDefaultedInclassDefs@@QEAAAEAU0 at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
 };
 
 
@@ -463,26 +463,26 @@ struct ExportAlloc {
   __declspec(dllexport) void operator delete[](void*);
 };
 
-// M32-DAG: define dso_local dllexport i8* @"\01??2ExportAlloc@@SAPAXI at Z"(i32 %n)
-// M64-DAG: define dso_local dllexport i8* @"\01??2ExportAlloc@@SAPEAX_K at Z"(i64 %n)
+// M32-DAG: define dso_local dllexport i8* @"??2ExportAlloc@@SAPAXI at Z"(i32 %n)
+// M64-DAG: define dso_local dllexport i8* @"??2ExportAlloc@@SAPEAX_K at Z"(i64 %n)
 // G32-DAG: define dso_local dllexport i8* @_ZN11ExportAllocnwEj(i32 %n)
 // G64-DAG: define dso_local dllexport i8* @_ZN11ExportAllocnwEy(i64 %n)
 void* ExportAlloc::operator new(__SIZE_TYPE__ n) { return malloc(n); }
 
-// M32-DAG: define dso_local dllexport i8* @"\01??_UExportAlloc@@SAPAXI at Z"(i32 %n)
-// M64-DAG: define dso_local dllexport i8* @"\01??_UExportAlloc@@SAPEAX_K at Z"(i64 %n)
+// M32-DAG: define dso_local dllexport i8* @"??_UExportAlloc@@SAPAXI at Z"(i32 %n)
+// M64-DAG: define dso_local dllexport i8* @"??_UExportAlloc@@SAPEAX_K at Z"(i64 %n)
 // G32-DAG: define dso_local dllexport i8* @_ZN11ExportAllocnaEj(i32 %n)
 // G64-DAG: define dso_local dllexport i8* @_ZN11ExportAllocnaEy(i64 %n)
 void* ExportAlloc::operator new[](__SIZE_TYPE__ n) { return malloc(n); }
 
-// M32-DAG: define dso_local dllexport void @"\01??3ExportAlloc@@SAXPAX at Z"(i8* %p)
-// M64-DAG: define dso_local dllexport void @"\01??3ExportAlloc@@SAXPEAX at Z"(i8* %p)
+// M32-DAG: define dso_local dllexport void @"??3ExportAlloc@@SAXPAX at Z"(i8* %p)
+// M64-DAG: define dso_local dllexport void @"??3ExportAlloc@@SAXPEAX at Z"(i8* %p)
 // G32-DAG: define dso_local dllexport void @_ZN11ExportAllocdlEPv(i8* %p)
 // G64-DAG: define dso_local dllexport void @_ZN11ExportAllocdlEPv(i8* %p)
 void ExportAlloc::operator delete(void* p) { free(p); }
 
-// M32-DAG: define dso_local dllexport void @"\01??_VExportAlloc@@SAXPAX at Z"(i8* %p)
-// M64-DAG: define dso_local dllexport void @"\01??_VExportAlloc@@SAXPEAX at Z"(i8* %p)
+// M32-DAG: define dso_local dllexport void @"??_VExportAlloc@@SAXPAX at Z"(i8* %p)
+// M64-DAG: define dso_local dllexport void @"??_VExportAlloc@@SAXPEAX at Z"(i8* %p)
 // G32-DAG: define dso_local dllexport void @_ZN11ExportAllocdaEPv(i8* %p)
 // G64-DAG: define dso_local dllexport void @_ZN11ExportAllocdaEPv(i8* %p)
 void ExportAlloc::operator delete[](void* p) { free(p); }
@@ -501,13 +501,13 @@ struct MemFunTmpl {
 
 // Export implicit instantiation of an exported member function template.
 void useMemFunTmpl() {
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??$exportedNormal at UImplicitInst_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-  // M64-DAG: define weak_odr dso_local dllexport                void @"\01??$exportedNormal at UImplicitInst_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??$exportedNormal at UImplicitInst_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+  // M64-DAG: define weak_odr dso_local dllexport                void @"??$exportedNormal at UImplicitInst_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
   // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN10MemFunTmpl14exportedNormalI21ImplicitInst_ExportedEEvv(%struct.MemFunTmpl* %this)
   // G64-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl14exportedNormalI21ImplicitInst_ExportedEEvv(%struct.MemFunTmpl* %this)
   MemFunTmpl().exportedNormal<ImplicitInst_Exported>();
 
-  // MSC-DAG: define weak_odr dso_local dllexport                void @"\01??$exportedStatic at UImplicitInst_Exported@@@MemFunTmpl@@SAXXZ"()
+  // MSC-DAG: define weak_odr dso_local dllexport                void @"??$exportedStatic at UImplicitInst_Exported@@@MemFunTmpl@@SAXXZ"()
   // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl14exportedStaticI21ImplicitInst_ExportedEEvv()
   MemFunTmpl().exportedStatic<ImplicitInst_Exported>();
 }
@@ -515,14 +515,14 @@ void useMemFunTmpl() {
 
 // Export explicit instantiation declaration of an exported member function
 // template.
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??$exportedNormal at UExplicitDecl_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-// M64-DAG: define weak_odr dso_local dllexport                void @"\01??$exportedNormal at UExplicitDecl_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??$exportedNormal at UExplicitDecl_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+// M64-DAG: define weak_odr dso_local dllexport                void @"??$exportedNormal at UExplicitDecl_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN10MemFunTmpl14exportedNormalI21ExplicitDecl_ExportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl14exportedNormalI21ExplicitDecl_ExportedEEvv(%struct.MemFunTmpl* %this)
 extern template void MemFunTmpl::exportedNormal<ExplicitDecl_Exported>();
        template void MemFunTmpl::exportedNormal<ExplicitDecl_Exported>();
 
-// MSC-DAG: define weak_odr dso_local dllexport                void @"\01??$exportedStatic at UExplicitDecl_Exported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport                void @"??$exportedStatic at UExplicitDecl_Exported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl14exportedStaticI21ExplicitDecl_ExportedEEvv()
 extern template void MemFunTmpl::exportedStatic<ExplicitDecl_Exported>();
        template void MemFunTmpl::exportedStatic<ExplicitDecl_Exported>();
@@ -530,62 +530,62 @@ extern template void MemFunTmpl::exporte
 
 // Export explicit instantiation definition of an exported member function
 // template.
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??$exportedNormal at UExplicitInst_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-// M64-DAG: define weak_odr dso_local dllexport                void @"\01??$exportedNormal at UExplicitInst_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??$exportedNormal at UExplicitInst_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+// M64-DAG: define weak_odr dso_local dllexport                void @"??$exportedNormal at UExplicitInst_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN10MemFunTmpl14exportedNormalI21ExplicitInst_ExportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl14exportedNormalI21ExplicitInst_ExportedEEvv(%struct.MemFunTmpl* %this)
 template void MemFunTmpl::exportedNormal<ExplicitInst_Exported>();
 
-// MSC-DAG: define weak_odr dso_local dllexport                void @"\01??$exportedStatic at UExplicitInst_Exported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport                void @"??$exportedStatic at UExplicitInst_Exported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl14exportedStaticI21ExplicitInst_ExportedEEvv()
 template void MemFunTmpl::exportedStatic<ExplicitInst_Exported>();
 
 
 // Export specialization of an exported member function template.
-// M32-DAG: define          dso_local dllexport x86_thiscallcc void @"\01??$exportedNormal at UExplicitSpec_Def_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-// M64-DAG: define          dso_local dllexport                void @"\01??$exportedNormal at UExplicitSpec_Def_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+// M32-DAG: define          dso_local dllexport x86_thiscallcc void @"??$exportedNormal at UExplicitSpec_Def_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+// M64-DAG: define          dso_local dllexport                void @"??$exportedNormal at UExplicitSpec_Def_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
 // G32-DAG: define          dso_local dllexport x86_thiscallcc void @_ZN10MemFunTmpl14exportedNormalI25ExplicitSpec_Def_ExportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define          dso_local dllexport                void @_ZN10MemFunTmpl14exportedNormalI25ExplicitSpec_Def_ExportedEEvv(%struct.MemFunTmpl* %this)
 template<> __declspec(dllexport) void MemFunTmpl::exportedNormal<ExplicitSpec_Def_Exported>() {}
 
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??$exportedNormal at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-// M64-DAG: define weak_odr dso_local dllexport                void @"\01??$exportedNormal at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??$exportedNormal at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+// M64-DAG: define weak_odr dso_local dllexport                void @"??$exportedNormal at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN10MemFunTmpl14exportedNormalI31ExplicitSpec_InlineDef_ExportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl14exportedNormalI31ExplicitSpec_InlineDef_ExportedEEvv(%struct.MemFunTmpl* %this)
 template<> __declspec(dllexport) inline void MemFunTmpl::exportedNormal<ExplicitSpec_InlineDef_Exported>() {}
 
-// MSC-DAG: define          dso_local dllexport                void @"\01??$exportedStatic at UExplicitSpec_Def_Exported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: define          dso_local dllexport                void @"??$exportedStatic at UExplicitSpec_Def_Exported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define          dso_local dllexport                void @_ZN10MemFunTmpl14exportedStaticI25ExplicitSpec_Def_ExportedEEvv()
 template<> __declspec(dllexport) void MemFunTmpl::exportedStatic<ExplicitSpec_Def_Exported>() {}
 
-// MSC-DAG: define weak_odr dso_local dllexport                void @"\01??$exportedStatic at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport                void @"??$exportedStatic at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl14exportedStaticI31ExplicitSpec_InlineDef_ExportedEEvv()
 template<> __declspec(dllexport) inline void MemFunTmpl::exportedStatic<ExplicitSpec_InlineDef_Exported>() {}
 
 
 // Not exporting specialization of an exported member function template without
 // explicit dso_local dllexport.
-// M32-DAG: define          dso_local x86_thiscallcc void @"\01??$exportedNormal at UExplicitSpec_NotExported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-// M64-DAG: define          dso_local                void @"\01??$exportedNormal at UExplicitSpec_NotExported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+// M32-DAG: define          dso_local x86_thiscallcc void @"??$exportedNormal at UExplicitSpec_NotExported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+// M64-DAG: define          dso_local                void @"??$exportedNormal at UExplicitSpec_NotExported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
 // G32-DAG: define          dso_local x86_thiscallcc void @_ZN10MemFunTmpl14exportedNormalI24ExplicitSpec_NotExportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define          dso_local                void @_ZN10MemFunTmpl14exportedNormalI24ExplicitSpec_NotExportedEEvv(%struct.MemFunTmpl* %this)
 template<> void MemFunTmpl::exportedNormal<ExplicitSpec_NotExported>() {}
 
-// M32-DAG: define          dso_local                void @"\01??$exportedStatic at UExplicitSpec_NotExported@@@MemFunTmpl@@SAXXZ"()
+// M32-DAG: define          dso_local                void @"??$exportedStatic at UExplicitSpec_NotExported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define          dso_local                void @_ZN10MemFunTmpl14exportedStaticI24ExplicitSpec_NotExportedEEvv()
 template<> void MemFunTmpl::exportedStatic<ExplicitSpec_NotExported>() {}
 
 
 // Export explicit instantiation declaration of a non-exported member function
 // template.
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??$normalDef at UExplicitDecl_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-// M64-DAG: define weak_odr dso_local dllexport                void @"\01??$normalDef at UExplicitDecl_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??$normalDef at UExplicitDecl_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+// M64-DAG: define weak_odr dso_local dllexport                void @"??$normalDef at UExplicitDecl_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN10MemFunTmpl9normalDefI21ExplicitDecl_ExportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl9normalDefI21ExplicitDecl_ExportedEEvv(%struct.MemFunTmpl* %this)
 extern template __declspec(dllexport) void MemFunTmpl::normalDef<ExplicitDecl_Exported>();
        template __declspec(dllexport) void MemFunTmpl::normalDef<ExplicitDecl_Exported>();
 
-// M32-DAG: define weak_odr dso_local dllexport                void @"\01??$staticDef at UExplicitDecl_Exported@@@MemFunTmpl@@SAXXZ"()
+// M32-DAG: define weak_odr dso_local dllexport                void @"??$staticDef at UExplicitDecl_Exported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl9staticDefI21ExplicitDecl_ExportedEEvv()
 extern template __declspec(dllexport) void MemFunTmpl::staticDef<ExplicitDecl_Exported>();
        template __declspec(dllexport) void MemFunTmpl::staticDef<ExplicitDecl_Exported>();
@@ -593,22 +593,22 @@ extern template __declspec(dllexport) vo
 
 // Export explicit instantiation definition of a non-exported member function
 // template.
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??$normalDef at UExplicitInst_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-// M64-DAG: define weak_odr dso_local dllexport                void @"\01??$normalDef at UExplicitInst_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??$normalDef at UExplicitInst_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+// M64-DAG: define weak_odr dso_local dllexport                void @"??$normalDef at UExplicitInst_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN10MemFunTmpl9normalDefI21ExplicitInst_ExportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl9normalDefI21ExplicitInst_ExportedEEvv(%struct.MemFunTmpl* %this)
 template __declspec(dllexport) void MemFunTmpl::normalDef<ExplicitInst_Exported>();
 
-// MSC-DAG: define weak_odr dso_local dllexport                void @"\01??$staticDef at UExplicitInst_Exported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport                void @"??$staticDef at UExplicitInst_Exported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl9staticDefI21ExplicitInst_ExportedEEvv()
 template __declspec(dllexport) void MemFunTmpl::staticDef<ExplicitInst_Exported>();
 
 
 // Export specialization of a non-exported member function template.
-// M32-DAG: define          dso_local dllexport x86_thiscallcc void @"\01??$normalDef at UExplicitSpec_Def_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-// M64-DAG: define          dso_local dllexport                void @"\01??$normalDef at UExplicitSpec_Def_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??$normalDef at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-// M64-DAG: define weak_odr dso_local dllexport                void @"\01??$normalDef at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+// M32-DAG: define          dso_local dllexport x86_thiscallcc void @"??$normalDef at UExplicitSpec_Def_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+// M64-DAG: define          dso_local dllexport                void @"??$normalDef at UExplicitSpec_Def_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??$normalDef at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+// M64-DAG: define weak_odr dso_local dllexport                void @"??$normalDef at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
 // G32-DAG: define          dso_local dllexport x86_thiscallcc void @_ZN10MemFunTmpl9normalDefI25ExplicitSpec_Def_ExportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define          dso_local dllexport                void @_ZN10MemFunTmpl9normalDefI25ExplicitSpec_Def_ExportedEEvv(%struct.MemFunTmpl* %this)
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN10MemFunTmpl9normalDefI31ExplicitSpec_InlineDef_ExportedEEvv(%struct.MemFunTmpl* %this)
@@ -616,8 +616,8 @@ template __declspec(dllexport) void MemF
 template<> __declspec(dllexport) void MemFunTmpl::normalDef<ExplicitSpec_Def_Exported>() {}
 template<> __declspec(dllexport) inline void MemFunTmpl::normalDef<ExplicitSpec_InlineDef_Exported>() {}
 
-// MSC-DAG: define          dso_local dllexport                void @"\01??$staticDef at UExplicitSpec_Def_Exported@@@MemFunTmpl@@SAXXZ"()
-// MSC-DAG: define weak_odr dso_local dllexport                void @"\01??$staticDef at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: define          dso_local dllexport                void @"??$staticDef at UExplicitSpec_Def_Exported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport                void @"??$staticDef at UExplicitSpec_InlineDef_Exported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define          dso_local dllexport                void @_ZN10MemFunTmpl9staticDefI25ExplicitSpec_Def_ExportedEEvv()
 // GNU-DAG: define weak_odr dso_local dllexport                void @_ZN10MemFunTmpl9staticDefI31ExplicitSpec_InlineDef_ExportedEEvv()
 template<> __declspec(dllexport) void MemFunTmpl::staticDef<ExplicitSpec_Def_Exported>() {}
@@ -633,49 +633,49 @@ template<typename T> const int MemVarTmp
 template<typename T> const int MemVarTmpl::ExportedStaticVar;
 
 // Export implicit instantiation of an exported member variable template.
-// MSC-DAG: @"\01??$ExportedStaticVar at UImplicitInst_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+// MSC-DAG: @"??$ExportedStaticVar at UImplicitInst_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 // GNU-DAG: @_ZN10MemVarTmpl17ExportedStaticVarI21ImplicitInst_ExportedEE       = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 int useMemVarTmpl() { return MemVarTmpl::ExportedStaticVar<ImplicitInst_Exported>; }
 
 // Export explicit instantiation declaration of an exported member variable
 // template.
-// MSC-DAG: @"\01??$ExportedStaticVar at UExplicitDecl_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+// MSC-DAG: @"??$ExportedStaticVar at UExplicitDecl_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 // GNU-DAG: @_ZN10MemVarTmpl17ExportedStaticVarI21ExplicitDecl_ExportedEE       = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 extern template const int MemVarTmpl::ExportedStaticVar<ExplicitDecl_Exported>;
        template const int MemVarTmpl::ExportedStaticVar<ExplicitDecl_Exported>;
 
 // Export explicit instantiation definition of an exported member variable
 // template.
-// MSC-DAG: @"\01??$ExportedStaticVar at UExplicitInst_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+// MSC-DAG: @"??$ExportedStaticVar at UExplicitInst_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 // GNU-DAG: @_ZN10MemVarTmpl17ExportedStaticVarI21ExplicitInst_ExportedEE       = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 template const int MemVarTmpl::ExportedStaticVar<ExplicitInst_Exported>;
 
 // Export specialization of an exported member variable template.
-// MSC-DAG: @"\01??$ExportedStaticVar at UExplicitSpec_Def_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+// MSC-DAG: @"??$ExportedStaticVar at UExplicitSpec_Def_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 // GNU-DAG: @_ZN10MemVarTmpl17ExportedStaticVarI25ExplicitSpec_Def_ExportedEE       = dso_local dllexport constant i32 1, align 4
 template<> __declspec(dllexport) const int MemVarTmpl::ExportedStaticVar<ExplicitSpec_Def_Exported> = 1;
 
 // Not exporting specialization of an exported member variable template without
 // explicit dllexport.
-// MSC-DAG: @"\01??$ExportedStaticVar at UExplicitSpec_NotExported@@@MemVarTmpl@@2HB" = weak_odr dso_local constant i32 1, comdat, align 4
+// MSC-DAG: @"??$ExportedStaticVar at UExplicitSpec_NotExported@@@MemVarTmpl@@2HB" = weak_odr dso_local constant i32 1, comdat, align 4
 // GNU-DAG: @_ZN10MemVarTmpl17ExportedStaticVarI24ExplicitSpec_NotExportedEE       = dso_local constant i32 1, align 4
 template<> const int MemVarTmpl::ExportedStaticVar<ExplicitSpec_NotExported> = 1;
 
 
 // Export explicit instantiation declaration of a non-exported member variable
 // template.
-// MSC-DAG: @"\01??$StaticVar at UExplicitDecl_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+// MSC-DAG: @"??$StaticVar at UExplicitDecl_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 // GNU-DAG: @_ZN10MemVarTmpl9StaticVarI21ExplicitDecl_ExportedEE        = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 extern template __declspec(dllexport) const int MemVarTmpl::StaticVar<ExplicitDecl_Exported>;
        template __declspec(dllexport) const int MemVarTmpl::StaticVar<ExplicitDecl_Exported>;
 
 // Export explicit instantiation definition of a non-exported member variable
 // template.
-// MSC-DAG: @"\01??$StaticVar at UExplicitInst_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+// MSC-DAG: @"??$StaticVar at UExplicitInst_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 // GNU-DAG: @_ZN10MemVarTmpl9StaticVarI21ExplicitInst_ExportedEE        = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 template __declspec(dllexport) const int MemVarTmpl::StaticVar<ExplicitInst_Exported>;
 
 // Export specialization of a non-exported member variable template.
-// MSC-DAG: @"\01??$StaticVar at UExplicitSpec_Def_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
+// MSC-DAG: @"??$StaticVar at UExplicitSpec_Def_Exported@@@MemVarTmpl@@2HB" = weak_odr dso_local dllexport constant i32 1, comdat, align 4
 // GNU-DAG: @_ZN10MemVarTmpl9StaticVarI25ExplicitSpec_Def_ExportedEE        = dso_local dllexport constant i32 1, align 4
 template<> __declspec(dllexport) const int MemVarTmpl::StaticVar<ExplicitSpec_Def_Exported> = 1;

Modified: cfe/trunk/test/CodeGenCXX/dllexport-ms-friend.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllexport-ms-friend.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllexport-ms-friend.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllexport-ms-friend.cpp Fri Mar 16 13:36:49 2018
@@ -1,7 +1,7 @@
 // RUN: %clang_cc1 -triple %ms_abi_triple -fms-extensions -emit-llvm -O0 -o - %s | FileCheck %s
 
 // Friend functions defined in classes are emitted.
-// CHECK: define weak_odr dso_local dllexport void @"\01?friend1@@YAXXZ"()
+// CHECK: define weak_odr dso_local dllexport void @"?friend1@@YAXXZ"()
 struct FuncFriend1 {
   friend __declspec(dllexport) void friend1() {}
 };

Modified: cfe/trunk/test/CodeGenCXX/dllexport-pr26549.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllexport-pr26549.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllexport-pr26549.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllexport-pr26549.cpp Fri Mar 16 13:36:49 2018
@@ -3,7 +3,7 @@
 template <typename> struct MessageT { };
 extern template struct MessageT<int>;
 
-// CHECK: define weak_odr dso_local dllexport {{.*}} %struct.MessageT* @"\01??4?$MessageT at H@@QEAAAEAU0 at AEBU0@@Z"(
+// CHECK: define weak_odr dso_local dllexport {{.*}} %struct.MessageT* @"??4?$MessageT at H@@QEAAAEAU0 at AEBU0@@Z"(
 template struct __declspec(dllexport) MessageT<int>;
 // Previously we crashed when this dllexport was the last thing in the file.
 // DO NOT ADD MORE TESTS AFTER THIS LINE!

Modified: cfe/trunk/test/CodeGenCXX/dllexport.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllexport.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllexport.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllexport.cpp Fri Mar 16 13:36:49 2018
@@ -27,9 +27,9 @@ struct External { int v; };
 #define INST(func) template void func();
 
 // The vftable for struct W is comdat largest because we have RTTI.
-// M32-DAG: $"\01??_7W@@6B@" = comdat largest
+// M32-DAG: $"??_7W@@6B@" = comdat largest
 
-// M32-DAG: $"\01?smember@?$Base at H@PR32992@@0HA" = comdat any
+// M32-DAG: $"?smember@?$Base at H@PR32992@@0HA" = comdat any
 
 
 //===----------------------------------------------------------------------===//
@@ -37,59 +37,59 @@ struct External { int v; };
 //===----------------------------------------------------------------------===//
 
 // Declarations are not exported.
-// MSC-NOT: @"\01?ExternGlobalDecl@@3HA"
+// MSC-NOT: @"?ExternGlobalDecl@@3HA"
 // GNU-NOT: @ExternGlobalDecl
 __declspec(dllexport) extern int ExternGlobalDecl;
 
 // dllexport implies a definition.
-// MSC-DAG: @"\01?GlobalDef@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?GlobalDef@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @GlobalDef            = dso_local dllexport global i32 0, align 4
 __declspec(dllexport) int GlobalDef;
 
 // Export definition.
-// MSC-DAG: @"\01?GlobalInit1@@3HA" = dso_local dllexport global i32 1, align 4
+// MSC-DAG: @"?GlobalInit1@@3HA" = dso_local dllexport global i32 1, align 4
 // GNU-DAG: @GlobalInit1            = dso_local dllexport global i32 1, align 4
 __declspec(dllexport) int GlobalInit1 = 1;
 
-// MSC-DAG: @"\01?GlobalInit2@@3HA" = dso_local dllexport global i32 1, align 4
+// MSC-DAG: @"?GlobalInit2@@3HA" = dso_local dllexport global i32 1, align 4
 // GNU-DAG: @GlobalInit2            = dso_local dllexport global i32 1, align 4
 int __declspec(dllexport) GlobalInit2 = 1;
 
 // Declare, then export definition.
-// MSC-DAG: @"\01?GlobalDeclInit@@3HA" = dso_local dllexport global i32 1, align 4
+// MSC-DAG: @"?GlobalDeclInit@@3HA" = dso_local dllexport global i32 1, align 4
 // GNU-DAG: @GlobalDeclInit            = dso_local dllexport global i32 1, align 4
 __declspec(dllexport) extern int GlobalDeclInit;
 int GlobalDeclInit = 1;
 
 // Redeclarations
-// MSC-DAG: @"\01?GlobalRedecl1@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?GlobalRedecl1@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @GlobalRedecl1            = dso_local dllexport global i32 0, align 4
 __declspec(dllexport) extern int GlobalRedecl1;
 __declspec(dllexport)        int GlobalRedecl1;
 
-// MSC-DAG: @"\01?GlobalRedecl2@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?GlobalRedecl2@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @GlobalRedecl2            = dso_local dllexport global i32 0, align 4
 __declspec(dllexport) extern int GlobalRedecl2;
                              int GlobalRedecl2;
 
-// MSC-DAG: @"\01?ExternalGlobal at ns@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?ExternalGlobal at ns@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @_ZN2ns14ExternalGlobalE      = dso_local dllexport global i32 0, align 4
 namespace ns { __declspec(dllexport) int ExternalGlobal; }
 
-// MSC-DAG: @"\01?ExternalAutoTypeGlobal@@3UExternal@@A" = dso_local dllexport global %struct.External zeroinitializer, align 4
+// MSC-DAG: @"?ExternalAutoTypeGlobal@@3UExternal@@A" = dso_local dllexport global %struct.External zeroinitializer, align 4
 // GNU-DAG: @ExternalAutoTypeGlobal                      = dso_local dllexport global %struct.External zeroinitializer, align 4
 __declspec(dllexport) auto ExternalAutoTypeGlobal = External();
 
 int f();
-// MSC-DAG: @"\01?x@?1??nonInlineStaticLocalsFunc@@YAHXZ at 4HA" = internal {{(unnamed_addr )*}}global i32 0
-// MSC-DAG: @"\01?$S1@?1??nonInlineStaticLocalsFunc@@YAHXZ at 4IA" = internal {{(unnamed_addr )*}}global i32 0
+// MSC-DAG: @"?x@?1??nonInlineStaticLocalsFunc@@YAHXZ at 4HA" = internal {{(unnamed_addr )*}}global i32 0
+// MSC-DAG: @"?$S1@?1??nonInlineStaticLocalsFunc@@YAHXZ at 4IA" = internal {{(unnamed_addr )*}}global i32 0
 int __declspec(dllexport) nonInlineStaticLocalsFunc() {
   static int x = f();
   return x++;
 };
 
-// MSC-DAG: @"\01?x@?1??inlineStaticLocalsFunc@@YAHXZ at 4HA" = weak_odr dso_local dllexport global i32 0, comdat
-// MSC-DAG: @"\01??_B?1??inlineStaticLocalsFunc@@YAHXZ at 51" = weak_odr dllexport global i32 0, comdat
+// MSC-DAG: @"?x@?1??inlineStaticLocalsFunc@@YAHXZ at 4HA" = weak_odr dso_local dllexport global i32 0, comdat
+// MSC-DAG: @"??_B?1??inlineStaticLocalsFunc@@YAHXZ at 51" = weak_odr dllexport global i32 0, comdat
 // Note: MinGW doesn't seem to export the static local here.
 inline int __declspec(dllexport) inlineStaticLocalsFunc() {
   static int x = f();
@@ -103,7 +103,7 @@ class Base {
   virtual void myfunc() {}
   static int smember;
 };
-// MSC-DAG: @"\01?smember@?$Base at H@PR32992@@0HA" = weak_odr dso_local dllexport global i32 77, comdat, align 4
+// MSC-DAG: @"?smember@?$Base at H@PR32992@@0HA" = weak_odr dso_local dllexport global i32 77, comdat, align 4
 template <class T> int Base<T>::smember = 77;
 template <class T>
 class __declspec(dllexport) Derived2 : Base<T> {
@@ -132,48 +132,48 @@ class __declspec(dllexport) i : h<> {};
 
 // Declarations are not exported.
 
-// MSC-DAG: @"\01??$VarTmplImplicitDef at UImplicitInst_Exported@@@@3HA" = external dso_local global
+// MSC-DAG: @"??$VarTmplImplicitDef at UImplicitInst_Exported@@@@3HA" = external dso_local global
 // GNU-DAG: @_Z18VarTmplImplicitDefI21ImplicitInst_ExportedE          = external dso_local global
 template<typename T> __declspec(dllexport) extern int VarTmplImplicitDef;
 USEVAR(VarTmplImplicitDef<ImplicitInst_Exported>)
 
 // Export definition.
-// MSC-DAG: @"\01??$VarTmplInit1 at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$VarTmplInit1 at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_Z12VarTmplInit1I21ExplicitInst_ExportedE          = weak_odr dso_local dllexport global i32 1, comdat, align 4
 template<typename T> __declspec(dllexport) int VarTmplInit1 = 1;
 INSTVAR(VarTmplInit1<ExplicitInst_Exported>)
 
-// MSC-DAG: @"\01??$VarTmplInit2 at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$VarTmplInit2 at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_Z12VarTmplInit2I21ExplicitInst_ExportedE          = weak_odr dso_local dllexport global i32 1, comdat, align 4
 template<typename T> int __declspec(dllexport) VarTmplInit2 = 1;
 INSTVAR(VarTmplInit2<ExplicitInst_Exported>)
 
 // Declare, then export definition.
-// MSC-DAG: @"\01??$VarTmplDeclInit at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$VarTmplDeclInit at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_Z15VarTmplDeclInitI21ExplicitInst_ExportedE          = weak_odr dso_local dllexport global i32 1, comdat, align 4
 template<typename T> __declspec(dllexport) extern int VarTmplDeclInit;
 template<typename T>                              int VarTmplDeclInit = 1;
 INSTVAR(VarTmplDeclInit<ExplicitInst_Exported>)
 
 // Redeclarations
-// MSC-DAG: @"\01??$VarTmplRedecl1 at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$VarTmplRedecl1 at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_Z14VarTmplRedecl1I21ExplicitInst_ExportedE          = weak_odr dso_local dllexport global i32 1, comdat, align 4
 template<typename T> __declspec(dllexport) extern int VarTmplRedecl1;
 template<typename T> __declspec(dllexport)        int VarTmplRedecl1 = 1;
 INSTVAR(VarTmplRedecl1<ExplicitInst_Exported>)
 
-// MSC-DAG: @"\01??$VarTmplRedecl2 at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$VarTmplRedecl2 at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_Z14VarTmplRedecl2I21ExplicitInst_ExportedE          = weak_odr dso_local dllexport global i32 1, comdat, align 4
 template<typename T> __declspec(dllexport) extern int VarTmplRedecl2;
 template<typename T>                              int VarTmplRedecl2 = 1;
 INSTVAR(VarTmplRedecl2<ExplicitInst_Exported>)
 
-// MSC-DAG: @"\01??$ExternalVarTmpl at UExplicitInst_Exported@@@ns@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$ExternalVarTmpl at UExplicitInst_Exported@@@ns@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_ZN2ns15ExternalVarTmplI21ExplicitInst_ExportedEE        = weak_odr dso_local dllexport global i32 1, comdat, align 4
 namespace ns { template<typename T> __declspec(dllexport) int ExternalVarTmpl = 1; }
 INSTVAR(ns::ExternalVarTmpl<ExplicitInst_Exported>)
 
-// MSC-DAG: @"\01??$ExternalAutoTypeVarTmpl at UExplicitInst_Exported@@@@3UExternal@@A" = weak_odr dso_local dllexport global %struct.External zeroinitializer, comdat, align 4
+// MSC-DAG: @"??$ExternalAutoTypeVarTmpl at UExplicitInst_Exported@@@@3UExternal@@A" = weak_odr dso_local dllexport global %struct.External zeroinitializer, comdat, align 4
 // GNU-DAG: @_Z23ExternalAutoTypeVarTmplI21ExplicitInst_ExportedE                    = weak_odr dso_local dllexport global %struct.External zeroinitializer, comdat, align 4
 template<typename T> __declspec(dllexport) auto ExternalAutoTypeVarTmpl = External();
 template External ExternalAutoTypeVarTmpl<ExplicitInst_Exported>;
@@ -183,54 +183,54 @@ template<typename T> int VarTmpl = 1;
 template<typename T> __declspec(dllexport) int ExportedVarTmpl = 1;
 
 // Export implicit instantiation of an exported variable template.
-// MSC-DAG: @"\01??$ExportedVarTmpl at UImplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$ExportedVarTmpl at UImplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_Z15ExportedVarTmplI21ImplicitInst_ExportedE          = weak_odr dso_local dllexport global i32 1, comdat, align 4
 USEVAR(ExportedVarTmpl<ImplicitInst_Exported>)
 
 // Export explicit instantiation declaration of an exported variable template.
-// MSC-DAG: @"\01??$ExportedVarTmpl at UImplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$ExportedVarTmpl at UImplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_Z15ExportedVarTmplI21ExplicitDecl_ExportedE          = weak_odr dso_local dllexport global i32 1, comdat, align 4
 extern template int ExportedVarTmpl<ExplicitDecl_Exported>;
        template int ExportedVarTmpl<ExplicitDecl_Exported>;
 
 // Export explicit instantiation definition of an exported variable template.
-// MSC-DAG: @"\01??$ExportedVarTmpl at UImplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$ExportedVarTmpl at UImplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_Z15ExportedVarTmplI21ExplicitInst_ExportedE          = weak_odr dso_local dllexport global i32 1, comdat, align 4
 template __declspec(dllexport) int ExportedVarTmpl<ExplicitInst_Exported>;
 
 // Export specialization of an exported variable template.
-// MSC-DAG: @"\01??$ExportedVarTmpl at UExplicitSpec_Exported@@@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"??$ExportedVarTmpl at UExplicitSpec_Exported@@@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @_Z15ExportedVarTmplI21ExplicitSpec_ExportedE          = dso_local dllexport global i32 0, align 4
 template<> __declspec(dllexport) int ExportedVarTmpl<ExplicitSpec_Exported>;
 
-// MSC-DAG: @"\01??$ExportedVarTmpl at UExplicitSpec_Def_Exported@@@@3HA" = dso_local dllexport global i32 1, align 4
+// MSC-DAG: @"??$ExportedVarTmpl at UExplicitSpec_Def_Exported@@@@3HA" = dso_local dllexport global i32 1, align 4
 // GNU-DAG: @_Z15ExportedVarTmplI25ExplicitSpec_Def_ExportedE          = dso_local dllexport global i32 1, align 4
 template<> __declspec(dllexport) int ExportedVarTmpl<ExplicitSpec_Def_Exported> = 1;
 
 // Not exporting specialization of an exported variable template without
 // explicit dllexport.
-// MSC-DAG: @"\01??$ExportedVarTmpl at UExplicitSpec_NotExported@@@@3HA" = dso_local global i32 0, align 4
+// MSC-DAG: @"??$ExportedVarTmpl at UExplicitSpec_NotExported@@@@3HA" = dso_local global i32 0, align 4
 // GNU-DAG: @_Z15ExportedVarTmplI24ExplicitSpec_NotExportedE          = dso_local global i32 0, align 4
 template<> int ExportedVarTmpl<ExplicitSpec_NotExported>;
 
 
 // Export explicit instantiation declaration of a non-exported variable template.
-// MSC-DAG: @"\01??$VarTmpl at UExplicitDecl_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$VarTmpl at UExplicitDecl_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_Z7VarTmplI21ExplicitDecl_ExportedE           = weak_odr dso_local dllexport global i32 1, comdat, align 4
 extern template __declspec(dllexport) int VarTmpl<ExplicitDecl_Exported>;
        template __declspec(dllexport) int VarTmpl<ExplicitDecl_Exported>;
 
 // Export explicit instantiation definition of a non-exported variable template.
-// MSC-DAG: @"\01??$VarTmpl at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
+// MSC-DAG: @"??$VarTmpl at UExplicitInst_Exported@@@@3HA" = weak_odr dso_local dllexport global i32 1, comdat, align 4
 // GNU-DAG: @_Z7VarTmplI21ExplicitInst_ExportedE           = weak_odr dso_local dllexport global i32 1, comdat, align 4
 template __declspec(dllexport) int VarTmpl<ExplicitInst_Exported>;
 
 // Export specialization of a non-exported variable template.
-// MSC-DAG: @"\01??$VarTmpl at UExplicitSpec_Exported@@@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"??$VarTmpl at UExplicitSpec_Exported@@@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @_Z7VarTmplI21ExplicitSpec_ExportedE           = dso_local dllexport global i32 0, align 4
 template<> __declspec(dllexport) int VarTmpl<ExplicitSpec_Exported>;
 
-// MSC-DAG: @"\01??$VarTmpl at UExplicitSpec_Def_Exported@@@@3HA" = dso_local dllexport global i32 1, align 4
+// MSC-DAG: @"??$VarTmpl at UExplicitSpec_Def_Exported@@@@3HA" = dso_local dllexport global i32 1, align 4
 // GNU-DAG: @_Z7VarTmplI25ExplicitSpec_Def_ExportedE           = dso_local dllexport global i32 1, align 4
 template<> __declspec(dllexport) int VarTmpl<ExplicitSpec_Def_Exported> = 1;
 
@@ -243,7 +243,7 @@ template<> __declspec(dllexport) int Var
 // Declarations are not exported.
 
 // Export function definition.
-// MSC-DAG: define dso_local dllexport void @"\01?def@@YAXXZ"()
+// MSC-DAG: define dso_local dllexport void @"?def@@YAXXZ"()
 // GNU-DAG: define dso_local dllexport void @_Z3defv()
 __declspec(dllexport) void def() {}
 
@@ -253,35 +253,35 @@ __declspec(dllexport) void def() {}
 extern "C" __declspec(dllexport) void externC() {}
 
 // Export inline function.
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01?inlineFunc@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"?inlineFunc@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z10inlineFuncv()
 __declspec(dllexport) inline void inlineFunc() {}
 
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01?inlineDecl@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"?inlineDecl@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z10inlineDeclv()
 __declspec(dllexport) inline void inlineDecl();
                              void inlineDecl() {}
 
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01?inlineDef@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"?inlineDef@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z9inlineDefv()
 __declspec(dllexport) void inlineDef();
                inline void inlineDef() {}
 
 // Redeclarations
-// MSC-DAG: define dso_local dllexport void @"\01?redecl1@@YAXXZ"()
+// MSC-DAG: define dso_local dllexport void @"?redecl1@@YAXXZ"()
 // GNU-DAG: define dso_local dllexport void @_Z7redecl1v()
 __declspec(dllexport) void redecl1();
 __declspec(dllexport) void redecl1() {}
 
-// MSC-DAG: define dso_local dllexport void @"\01?redecl2@@YAXXZ"()
+// MSC-DAG: define dso_local dllexport void @"?redecl2@@YAXXZ"()
 // GNU-DAG: define dso_local dllexport void @_Z7redecl2v()
 __declspec(dllexport) void redecl2();
                       void redecl2() {}
 
 // Friend functions
-// MSC-DAG: define dso_local dllexport void @"\01?friend1@@YAXXZ"()
+// MSC-DAG: define dso_local dllexport void @"?friend1@@YAXXZ"()
 // GNU-DAG: define dso_local dllexport void @_Z7friend1v()
-// MSC-DAG: define dso_local dllexport void @"\01?friend2@@YAXXZ"()
+// MSC-DAG: define dso_local dllexport void @"?friend2@@YAXXZ"()
 // GNU-DAG: define dso_local dllexport void @_Z7friend2v()
 struct FuncFriend {
   friend __declspec(dllexport) void friend1();
@@ -290,7 +290,7 @@ struct FuncFriend {
 __declspec(dllexport) void friend1() {}
                       void friend2() {}
 
-// MSC-DAG: define dso_local dllexport void @"\01?func at Befriended@@SAXXZ"()
+// MSC-DAG: define dso_local dllexport void @"?func at Befriended@@SAXXZ"()
 // GNU-DAG: define dso_local dllexport void @_ZN10Befriended4funcEv()
 struct __declspec(dllexport) Befriended {
   static void func();
@@ -301,12 +301,12 @@ struct __declspec(dllexport) Befriended
 void Befriended::func() {}
 
 // Implicit declarations can be redeclared with dllexport.
-// MSC-DAG: define dso_local dllexport noalias i8* @"\01??2@{{YAPAXI|YAPEAX_K}}@Z"(
+// MSC-DAG: define dso_local dllexport noalias i8* @"??2@{{YAPAXI|YAPEAX_K}}@Z"(
 // GNU-DAG: define dso_local dllexport noalias i8* @_Znw{{[yj]}}(
 void* alloc(__SIZE_TYPE__ n);
 __declspec(dllexport) void* operator new(__SIZE_TYPE__ n) { return alloc(n); }
 
-// MSC-DAG: define dso_local dllexport void @"\01?externalFunc at ns@@YAXXZ"()
+// MSC-DAG: define dso_local dllexport void @"?externalFunc at ns@@YAXXZ"()
 // GNU-DAG: define dso_local dllexport void @_ZN2ns12externalFuncEv()
 namespace ns { __declspec(dllexport) void externalFunc() {} }
 
@@ -317,29 +317,29 @@ namespace ns { __declspec(dllexport) voi
 //===----------------------------------------------------------------------===//
 
 // Export function template definition.
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$funcTmplDef at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$funcTmplDef at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z11funcTmplDefI21ExplicitInst_ExportedEvv()
 template<typename T> __declspec(dllexport) void funcTmplDef() {}
 INST(funcTmplDef<ExplicitInst_Exported>)
 
 // Export inline function template.
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$inlineFuncTmpl1 at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$inlineFuncTmpl1 at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z15inlineFuncTmpl1I21ExplicitInst_ExportedEvv()
 template<typename T> __declspec(dllexport) inline void inlineFuncTmpl1() {}
 INST(inlineFuncTmpl1<ExplicitInst_Exported>)
 
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$inlineFuncTmpl2 at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$inlineFuncTmpl2 at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z15inlineFuncTmpl2I21ExplicitInst_ExportedEvv()
 template<typename T> inline void __attribute__((dllexport)) inlineFuncTmpl2() {}
 INST(inlineFuncTmpl2<ExplicitInst_Exported>)
 
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$inlineFuncTmplDecl at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$inlineFuncTmplDecl at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z18inlineFuncTmplDeclI21ExplicitInst_ExportedEvv()
 template<typename T> __declspec(dllexport) inline void inlineFuncTmplDecl();
 template<typename T>                              void inlineFuncTmplDecl() {}
 INST(inlineFuncTmplDecl<ExplicitInst_Exported>)
 
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$inlineFuncTmplDef at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$inlineFuncTmplDef at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z17inlineFuncTmplDefI21ExplicitInst_ExportedEvv()
 template<typename T> __declspec(dllexport) void inlineFuncTmplDef();
 template<typename T>                inline void inlineFuncTmplDef() {}
@@ -347,19 +347,19 @@ INST(inlineFuncTmplDef<ExplicitInst_Expo
 
 
 // Redeclarations
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$funcTmplRedecl1 at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$funcTmplRedecl1 at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z15funcTmplRedecl1I21ExplicitInst_ExportedEvv()
 template<typename T> __declspec(dllexport) void funcTmplRedecl1();
 template<typename T> __declspec(dllexport) void funcTmplRedecl1() {}
 INST(funcTmplRedecl1<ExplicitInst_Exported>)
 
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$funcTmplRedecl2 at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$funcTmplRedecl2 at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z15funcTmplRedecl2I21ExplicitInst_ExportedEvv()
 template<typename T> __declspec(dllexport) void funcTmplRedecl2();
 template<typename T>                       void funcTmplRedecl2() {}
 INST(funcTmplRedecl2<ExplicitInst_Exported>)
 
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$funcTmplRedecl3 at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$funcTmplRedecl3 at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z15funcTmplRedecl3I21ExplicitInst_ExportedEvv()
 template<typename T> __declspec(dllexport) void funcTmplRedecl3();
 template<typename T>                       void funcTmplRedecl3() {}
@@ -367,9 +367,9 @@ INST(funcTmplRedecl3<ExplicitInst_Export
 
 
 // Function template friends
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$funcTmplFriend1 at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$funcTmplFriend1 at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z15funcTmplFriend1I21ExplicitInst_ExportedEvv()
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$funcTmplFriend2 at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$funcTmplFriend2 at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z15funcTmplFriend2I21ExplicitInst_ExportedEvv()
 struct FuncTmplFriend {
   template<typename T> friend __declspec(dllexport) void funcTmplFriend1();
@@ -380,7 +380,7 @@ template<typename T>
 INST(funcTmplFriend1<ExplicitInst_Exported>)
 INST(funcTmplFriend2<ExplicitInst_Exported>)
 
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$externalFuncTmpl at UExplicitInst_Exported@@@ns@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$externalFuncTmpl at UExplicitInst_Exported@@@ns@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_ZN2ns16externalFuncTmplI21ExplicitInst_ExportedEEvv()
 namespace ns { template<typename T> __declspec(dllexport) void externalFuncTmpl() {} }
 INST(ns::externalFuncTmpl<ExplicitInst_Exported>)
@@ -390,54 +390,54 @@ template<typename T> void funcTmpl() {}
 template<typename T> __declspec(dllexport) void exportedFuncTmpl() {}
 
 // Export implicit instantiation of an exported function template.
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$exportedFuncTmpl at UImplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$exportedFuncTmpl at UImplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z16exportedFuncTmplI21ImplicitInst_ExportedEvv()
 USE(exportedFuncTmpl<ImplicitInst_Exported>)
 
 // Export explicit instantiation declaration of an exported function template.
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$exportedFuncTmpl at UExplicitDecl_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$exportedFuncTmpl at UExplicitDecl_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z16exportedFuncTmplI21ExplicitDecl_ExportedEvv()
 extern template void exportedFuncTmpl<ExplicitDecl_Exported>();
        template void exportedFuncTmpl<ExplicitDecl_Exported>();
 
 // Export explicit instantiation definition of an exported function template.
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$exportedFuncTmpl at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$exportedFuncTmpl at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z16exportedFuncTmplI21ExplicitInst_ExportedEvv()
 template void exportedFuncTmpl<ExplicitInst_Exported>();
 
 // Export specialization of an exported function template.
-// MSC-DAG: define dso_local dllexport void @"\01??$exportedFuncTmpl at UExplicitSpec_Def_Exported@@@@YAXXZ"()
+// MSC-DAG: define dso_local dllexport void @"??$exportedFuncTmpl at UExplicitSpec_Def_Exported@@@@YAXXZ"()
 // GNU-DAG: define dso_local dllexport void @_Z16exportedFuncTmplI25ExplicitSpec_Def_ExportedEvv()
 template<> __declspec(dllexport) void exportedFuncTmpl<ExplicitSpec_Def_Exported>() {}
 
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$exportedFuncTmpl at UExplicitSpec_InlineDef_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$exportedFuncTmpl at UExplicitSpec_InlineDef_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z16exportedFuncTmplI31ExplicitSpec_InlineDef_ExportedEvv()
 template<> __declspec(dllexport) inline void exportedFuncTmpl<ExplicitSpec_InlineDef_Exported>() {}
 
 // Not exporting specialization of an exported function template without
 // explicit dllexport.
-// MSC-DAG: define dso_local void @"\01??$exportedFuncTmpl at UExplicitSpec_NotExported@@@@YAXXZ"()
+// MSC-DAG: define dso_local void @"??$exportedFuncTmpl at UExplicitSpec_NotExported@@@@YAXXZ"()
 // GNU-DAG: define dso_local void @_Z16exportedFuncTmplI24ExplicitSpec_NotExportedEvv()
 template<> void exportedFuncTmpl<ExplicitSpec_NotExported>() {}
 
 
 // Export explicit instantiation declaration of a non-exported function template.
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$funcTmpl at UExplicitDecl_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$funcTmpl at UExplicitDecl_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z8funcTmplI21ExplicitDecl_ExportedEvv()
 extern template __declspec(dllexport) void funcTmpl<ExplicitDecl_Exported>();
        template __declspec(dllexport) void funcTmpl<ExplicitDecl_Exported>();
 
 // Export explicit instantiation definition of a non-exported function template.
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$funcTmpl at UExplicitInst_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$funcTmpl at UExplicitInst_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z8funcTmplI21ExplicitInst_ExportedEvv()
 template __declspec(dllexport) void funcTmpl<ExplicitInst_Exported>();
 
 // Export specialization of a non-exported function template.
-// MSC-DAG: define dso_local dllexport void @"\01??$funcTmpl at UExplicitSpec_Def_Exported@@@@YAXXZ"()
+// MSC-DAG: define dso_local dllexport void @"??$funcTmpl at UExplicitSpec_Def_Exported@@@@YAXXZ"()
 // GNU-DAG: define dso_local dllexport void @_Z8funcTmplI25ExplicitSpec_Def_ExportedEvv()
 template<> __declspec(dllexport) void funcTmpl<ExplicitSpec_Def_Exported>() {}
 
-// MSC-DAG: define weak_odr dso_local dllexport void @"\01??$funcTmpl at UExplicitSpec_InlineDef_Exported@@@@YAXXZ"()
+// MSC-DAG: define weak_odr dso_local dllexport void @"??$funcTmpl at UExplicitSpec_InlineDef_Exported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local dllexport void @_Z8funcTmplI31ExplicitSpec_InlineDef_ExportedEvv()
 template<> __declspec(dllexport) inline void funcTmpl<ExplicitSpec_InlineDef_Exported>() {}
 
@@ -448,60 +448,60 @@ template<> __declspec(dllexport) inline
 //===----------------------------------------------------------------------===//
 
 // dllexport takes precedence over the dllimport if both are specified.
-// MSC-DAG: @"\01?PrecedenceGlobal1A@@3HA" = dso_local dllexport global i32 0, align 4
-// MSC-DAG: @"\01?PrecedenceGlobal1B@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?PrecedenceGlobal1A@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?PrecedenceGlobal1B@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @PrecedenceGlobal1A            = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @PrecedenceGlobal1B            = dso_local dllexport global i32 0, align 4
 __attribute__((dllimport, dllexport))       int PrecedenceGlobal1A; // dllimport ignored
 __declspec(dllimport) __declspec(dllexport) int PrecedenceGlobal1B; // dllimport ignored
 
-// MSC-DAG: @"\01?PrecedenceGlobal2A@@3HA" = dso_local dllexport global i32 0, align 4
-// MSC-DAG: @"\01?PrecedenceGlobal2B@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?PrecedenceGlobal2A@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?PrecedenceGlobal2B@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @PrecedenceGlobal2A            = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @PrecedenceGlobal2B            = dso_local dllexport global i32 0, align 4
 __attribute__((dllexport, dllimport))       int PrecedenceGlobal2A; // dllimport ignored
 __declspec(dllexport) __declspec(dllimport) int PrecedenceGlobal2B; // dllimport ignored
 
-// MSC-DAG: @"\01?PrecedenceGlobalRedecl1@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?PrecedenceGlobalRedecl1@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @PrecedenceGlobalRedecl1            = dso_local dllexport global i32 0, align 4
 __declspec(dllexport) extern int PrecedenceGlobalRedecl1;
 __declspec(dllimport)        int PrecedenceGlobalRedecl1 = 0;
 
-// MSC-DAG: @"\01?PrecedenceGlobalRedecl2@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?PrecedenceGlobalRedecl2@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @PrecedenceGlobalRedecl2            = dso_local dllexport global i32 0, align 4
 __declspec(dllimport) extern int PrecedenceGlobalRedecl2;
 __declspec(dllexport)        int PrecedenceGlobalRedecl2;
 
-// MSC-DAG: @"\01?PrecedenceGlobalMixed1@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?PrecedenceGlobalMixed1@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @PrecedenceGlobalMixed1            = dso_local dllexport global i32 0, align 4
 __attribute__((dllexport)) extern int PrecedenceGlobalMixed1;
 __declspec(dllimport)             int PrecedenceGlobalMixed1 = 0;
 
-// MSC-DAG: @"\01?PrecedenceGlobalMixed2@@3HA" = dso_local dllexport global i32 0, align 4
+// MSC-DAG: @"?PrecedenceGlobalMixed2@@3HA" = dso_local dllexport global i32 0, align 4
 // GNU-DAG: @PrecedenceGlobalMixed2            = dso_local dllexport global i32 0, align 4
 __attribute__((dllimport)) extern int PrecedenceGlobalMixed2;
 __declspec(dllexport)             int PrecedenceGlobalMixed2;
 
-// MSC-DAG: define dso_local dllexport void @"\01?precedence1A@@YAXXZ"
-// MSC-DAG: define dso_local dllexport void @"\01?precedence1B@@YAXXZ"
+// MSC-DAG: define dso_local dllexport void @"?precedence1A@@YAXXZ"
+// MSC-DAG: define dso_local dllexport void @"?precedence1B@@YAXXZ"
 // GNU-DAG: define dso_local dllexport void @_Z12precedence1Av()
 // GNU-DAG: define dso_local dllexport void @_Z12precedence1Bv()
 void __attribute__((dllimport, dllexport))       precedence1A() {}
 void __declspec(dllimport) __declspec(dllexport) precedence1B() {}
 
-// MSC-DAG: define dso_local dllexport void @"\01?precedence2A@@YAXXZ"
-// MSC-DAG: define dso_local dllexport void @"\01?precedence2B@@YAXXZ"
+// MSC-DAG: define dso_local dllexport void @"?precedence2A@@YAXXZ"
+// MSC-DAG: define dso_local dllexport void @"?precedence2B@@YAXXZ"
 // GNU-DAG: define dso_local dllexport void @_Z12precedence2Av()
 // GNU-DAG: define dso_local dllexport void @_Z12precedence2Bv()
 void __attribute__((dllexport, dllimport))       precedence2A() {}
 void __declspec(dllexport) __declspec(dllimport) precedence2B() {}
 
-// MSC-DAG: define dso_local dllexport void @"\01?precedenceRedecl1@@YAXXZ"
+// MSC-DAG: define dso_local dllexport void @"?precedenceRedecl1@@YAXXZ"
 // GNU-DAG: define dso_local dllexport void @_Z17precedenceRedecl1v()
 void __declspec(dllimport) precedenceRedecl1();
 void __declspec(dllexport) precedenceRedecl1() {}
 
-// MSC-DAG: define dso_local dllexport void @"\01?precedenceRedecl2@@YAXXZ"
+// MSC-DAG: define dso_local dllexport void @"?precedenceRedecl2@@YAXXZ"
 // GNU-DAG: define dso_local dllexport void @_Z17precedenceRedecl2v()
 void __declspec(dllexport) precedenceRedecl2();
 void __declspec(dllimport) precedenceRedecl2() {}
@@ -514,11 +514,11 @@ void __declspec(dllimport) precedenceRed
 
 struct S {
   void __declspec(dllexport) a() {}
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?a at S@@QAEXXZ"
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?a at S@@QAEXXZ"
 
   struct T {
     void __declspec(dllexport) a() {}
-    // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?a at T@S@@QAEXXZ"
+    // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?a at T@S@@QAEXXZ"
   };
 };
 
@@ -527,11 +527,11 @@ struct SomeTemplate {
   SomeTemplate(T o = T()) : o(o) {}
   T o;
 };
-// MSVC2015-DAG: define weak_odr dso_local dllexport {{.+}} @"\01??4?$SomeTemplate at H@@Q{{.+}}@$$Q{{.+}}@@Z"
-// MSVC2013-DAG: define weak_odr dso_local dllexport {{.+}} @"\01??4?$SomeTemplate at H@@Q{{.+}}0 at A{{.+}}0@@Z"
+// MSVC2015-DAG: define weak_odr dso_local dllexport {{.+}} @"??4?$SomeTemplate at H@@Q{{.+}}@$$Q{{.+}}@@Z"
+// MSVC2013-DAG: define weak_odr dso_local dllexport {{.+}} @"??4?$SomeTemplate at H@@Q{{.+}}0 at A{{.+}}0@@Z"
 struct __declspec(dllexport) InheritFromTemplate : SomeTemplate<int> {};
 
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_F?$SomeTemplate at H@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??_F?$SomeTemplate at H@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
 
 namespace PR23801 {
 template <typename>
@@ -548,31 +548,31 @@ struct __declspec(dllexport) B {
 
 }
 //
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_FB at PR23801@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??_FB at PR23801@@QAEXXZ"({{.*}}) {{#[0-9]+}} comdat
 
 struct __declspec(dllexport) T {
   // Copy assignment operator:
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.T* @"\01??4T@@QAEAAU0 at ABU0@@Z"
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.T* @"??4T@@QAEAAU0 at ABU0@@Z"
 
   // Explicitly defaulted copy constructur:
   T(const T&) = default;
-  // M32MSVC2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.T* @"\01??0T@@QAE at ABU0@@Z"
+  // M32MSVC2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.T* @"??0T@@QAE at ABU0@@Z"
 
   void a() {}
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?a at T@@QAEXXZ"
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?a at T@@QAEXXZ"
 
   static int b;
-  // M32-DAG: @"\01?b at T@@2HA" = external dso_local global i32
+  // M32-DAG: @"?b at T@@2HA" = external dso_local global i32
 
   static int c;
-  // M32-DAG: @"\01?c at T@@2HA" = dso_local dllexport global i32 0, align 4
+  // M32-DAG: @"?c at T@@2HA" = dso_local dllexport global i32 0, align 4
 };
 
 USEVAR(T::b)
 int T::c;
 
 // Export template class with static member variable
-// MSC-DAG: @"\01?StaticClassVarExpTmplClass@?$TmplClass at H@@2HA" = weak_odr dso_local dllexport global i32 0, comdat, align 4
+// MSC-DAG: @"?StaticClassVarExpTmplClass@?$TmplClass at H@@2HA" = weak_odr dso_local dllexport global i32 0, comdat, align 4
 // GNU-DAG: @_ZN9TmplClassIiE26StaticClassVarExpTmplClassE = weak_odr dso_local dllexport global i32 0, comdat, align 4
 template<typename T>
 struct __declspec(dllexport) TmplClass
@@ -584,7 +584,7 @@ template<typename T>
 T TmplClass<T>::StaticClassVarExpTmplClass;
 
 // Export a definition of a template function.
-// MSC-DAG: define weak_odr dso_local dllexport i32 @"\01??$TypeFunTmpl at H@@YAHH at Z"
+// MSC-DAG: define weak_odr dso_local dllexport i32 @"??$TypeFunTmpl at H@@YAHH at Z"
 // GNU-DAG: define weak_odr dso_local dllexport i32 @_Z11TypeFunTmplIiET_S0_
 template<typename T>
 T __declspec(dllexport) TypeFunTmpl(T t) { return t + t; }
@@ -598,38 +598,38 @@ int useExportedTmplStaticAndFun()
 template <typename T> struct __declspec(dllexport) U { void foo() {} };
 struct __declspec(dllexport) V : public U<int> { };
 // U<int>'s assignment operator is emitted.
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.U* @"\01??4?$U at H@@QAEAAU0 at ABU0@@Z"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.U* @"??4?$U at H@@QAEAAU0 at ABU0@@Z"
 
 struct __declspec(dllexport) W { virtual void foo(); };
 void W::foo() {}
 // Default ctor:
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.W* @"\01??0W@@QAE at XZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.W* @"??0W@@QAE at XZ"
 // Copy ctor:
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.W* @"\01??0W@@QAE at ABU0@@Z"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.W* @"??0W@@QAE at ABU0@@Z"
 // vftable:
-// M32-DAG: [[W_VTABLE:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4W@@6B@" to i8*), i8* bitcast (void (%struct.W*)* @"\01?foo at W@@UAEXXZ" to i8*)] }, comdat($"\01??_7W@@6B@")
-// M32-DAG: @"\01??_7W@@6B@" = dllexport unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[W_VTABLE]], i32 0, i32 0, i32 1)
+// M32-DAG: [[W_VTABLE:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"??_R4W@@6B@" to i8*), i8* bitcast (void (%struct.W*)* @"?foo at W@@UAEXXZ" to i8*)] }, comdat($"??_7W@@6B@")
+// M32-DAG: @"??_7W@@6B@" = dllexport unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[W_VTABLE]], i32 0, i32 0, i32 1)
 // G32-DAG: @_ZTV1W = dso_local dllexport unnamed_addr constant { [3 x i8*] } { [3 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI1W to i8*), i8* bitcast (void (%struct.W*)* @_ZN1W3fooEv to i8*)] }
 
 struct __declspec(dllexport) X : public virtual W {};
 // vbtable:
-// M32-DAG: @"\01??_8X@@7B@" = weak_odr dllexport unnamed_addr constant [2 x i32] [i32 0, i32 4]
+// M32-DAG: @"??_8X@@7B@" = weak_odr dllexport unnamed_addr constant [2 x i32] [i32 0, i32 4]
 
 struct __declspec(dllexport) Y {
   // Move assignment operator:
-  // MSVC2015-DAG: define weak_odr dso_local dllexport {{.+}} @"\01??4Y@@Q{{.+}}@$$Q{{.+}}@@Z"
-  // MSVC2013-DAG: define weak_odr dso_local dllexport {{.+}} @"\01??4Y@@Q{{.+}}0 at A{{.+}}0@@Z"
+  // MSVC2015-DAG: define weak_odr dso_local dllexport {{.+}} @"??4Y@@Q{{.+}}@$$Q{{.+}}@@Z"
+  // MSVC2013-DAG: define weak_odr dso_local dllexport {{.+}} @"??4Y@@Q{{.+}}0 at A{{.+}}0@@Z"
 
   int x;
 };
 
 struct __declspec(dllexport) Z { virtual ~Z() {} };
 // The scalar deleting dtor does not get exported:
-// M32-DAG: define linkonce_odr dso_local x86_thiscallcc i8* @"\01??_GZ@@UAEPAXI at Z"
+// M32-DAG: define linkonce_odr dso_local x86_thiscallcc i8* @"??_GZ@@UAEPAXI at Z"
 
 
 // The user-defined dtor does get exported:
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??1Z@@UAE at XZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??1Z@@UAE at XZ"
 
 namespace UseDtorAlias {
   struct __declspec(dllexport) A { ~A(); };
@@ -637,39 +637,39 @@ namespace UseDtorAlias {
   A::~A() { }
   B::~B() { }
   // Emit a alias definition of B's constructor.
-  // M32-DAG: @"\01??1B at UseDtorAlias@@QAE at XZ" = dso_local dllexport alias {{.*}} @"\01??1A at UseDtorAlias@@QAE at XZ"
+  // M32-DAG: @"??1B at UseDtorAlias@@QAE at XZ" = dso_local dllexport alias {{.*}} @"??1A at UseDtorAlias@@QAE at XZ"
 }
 
 struct __declspec(dllexport) DefaultedCtorsDtors {
   DefaultedCtorsDtors() = default;
-  // M32MSVC2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.DefaultedCtorsDtors* @"\01??0DefaultedCtorsDtors@@QAE at XZ"
+  // M32MSVC2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.DefaultedCtorsDtors* @"??0DefaultedCtorsDtors@@QAE at XZ"
   ~DefaultedCtorsDtors() = default;
-  // M32MSVC2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??1DefaultedCtorsDtors@@QAE at XZ"
+  // M32MSVC2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??1DefaultedCtorsDtors@@QAE at XZ"
 };
 
 // Export defaulted member function definitions declared inside class.
 struct __declspec(dllexport) ExportDefaultedInclassDefs {
   ExportDefaultedInclassDefs() = default;
-  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
-  // M64VS2013-DAG: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
-  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
-  // M64VS2015-NOT: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
+  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
+  // M64VS2013-DAG: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
+  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
+  // M64VS2015-NOT: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* returned %this)
 
   ~ExportDefaultedInclassDefs() = default;
-  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??1ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* %this)
-  // M64VS2013-DAG: define weak_odr dso_local dllexport                void @"\01??1ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* %this)
-  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??1ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* %this)
-  // M64VS2015-NOT: define weak_odr dso_local dllexport                void @"\01??1ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* %this)
+  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??1ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* %this)
+  // M64VS2013-DAG: define weak_odr dso_local dllexport                void @"??1ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* %this)
+  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc void @"??1ExportDefaultedInclassDefs@@QAE at XZ"(%struct.ExportDefaultedInclassDefs* %this)
+  // M64VS2015-NOT: define weak_odr dso_local dllexport                void @"??1ExportDefaultedInclassDefs@@QEAA at XZ"(%struct.ExportDefaultedInclassDefs* %this)
 
   ExportDefaultedInclassDefs(const ExportDefaultedInclassDefs&) = default;
-  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QAE at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
-  // M64VS2013-DAG: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QEAA at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
-  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QAE at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
-  // M64VS2015-NOT: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"\01??0ExportDefaultedInclassDefs@@QEAA at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M32VS2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QAE at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M64VS2013-DAG: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QEAA at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M32VS2015-NOT: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QAE at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M64VS2015-NOT: define weak_odr dso_local dllexport                %struct.ExportDefaultedInclassDefs* @"??0ExportDefaultedInclassDefs@@QEAA at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* returned %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
 
   ExportDefaultedInclassDefs& operator=(const ExportDefaultedInclassDefs&) = default;
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportDefaultedInclassDefs* @"\01??4ExportDefaultedInclassDefs@@QAEAAU0 at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
-  // M64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportDefaultedInclassDefs* @"\01??4ExportDefaultedInclassDefs@@QEAAAEAU0 at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ExportDefaultedInclassDefs* @"??4ExportDefaultedInclassDefs@@QAEAAU0 at ABU0@@Z"(%struct.ExportDefaultedInclassDefs* %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
+  // M64-DAG: define weak_odr dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ExportDefaultedInclassDefs* @"??4ExportDefaultedInclassDefs@@QEAAAEAU0 at AEBU0@@Z"(%struct.ExportDefaultedInclassDefs* %this, %struct.ExportDefaultedInclassDefs* dereferenceable({{[0-9]+}}))
 };
 
 namespace ReferencedInlineMethodInNestedClass {
@@ -682,8 +682,8 @@ namespace ReferencedInlineMethodInNested
     };
     T *t;
   };
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?foo at S@ReferencedInlineMethodInNestedClass@@QAEXXZ"
-  // M32-DAG: define linkonce_odr dso_local x86_thiscallcc void @"\01?bar at T@S at ReferencedInlineMethodInNestedClass@@QAEXXZ"
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?foo at S@ReferencedInlineMethodInNestedClass@@QAEXXZ"
+  // M32-DAG: define linkonce_odr dso_local x86_thiscallcc void @"?bar at T@S at ReferencedInlineMethodInNestedClass@@QAEXXZ"
 }
 
 // MS ignores DLL attributes on partial specializations.
@@ -691,7 +691,7 @@ template <typename T> struct PartiallySp
 template <typename T> struct __declspec(dllexport) PartiallySpecializedClassTemplate<T*> { void f(); };
 template <typename T> void PartiallySpecializedClassTemplate<T*>::f() {}
 USEMEMFUNC(PartiallySpecializedClassTemplate<void*>, f);
-// M32-DAG: define linkonce_odr dso_local x86_thiscallcc void @"\01?f@?$PartiallySpecializedClassTemplate at PAX@@QAEXXZ"
+// M32-DAG: define linkonce_odr dso_local x86_thiscallcc void @"?f@?$PartiallySpecializedClassTemplate at PAX@@QAEXXZ"
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN33PartiallySpecializedClassTemplateIPvE1fEv
 
 // Attributes on explicit specializations are honored.
@@ -699,14 +699,14 @@ template <typename T> struct ExplicitlyS
 template <> struct __declspec(dllexport) ExplicitlySpecializedClassTemplate<void*> { void f(); };
 void ExplicitlySpecializedClassTemplate<void*>::f() {}
 USEMEMFUNC(ExplicitlySpecializedClassTemplate<void*>, f);
-// M32-DAG: define dso_local dllexport x86_thiscallcc void @"\01?f@?$ExplicitlySpecializedClassTemplate at PAX@@QAEXXZ"
+// M32-DAG: define dso_local dllexport x86_thiscallcc void @"?f@?$ExplicitlySpecializedClassTemplate at PAX@@QAEXXZ"
 // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN34ExplicitlySpecializedClassTemplateIPvE1fEv
 
 // MS inherits DLL attributes to partial specializations.
 template <typename T> struct __declspec(dllexport) PartiallySpecializedExportedClassTemplate {};
 template <typename T> struct PartiallySpecializedExportedClassTemplate<T*> { void f() {} };
 USEMEMFUNC(PartiallySpecializedExportedClassTemplate<void*>, f);
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?f@?$PartiallySpecializedExportedClassTemplate at PAX@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?f@?$PartiallySpecializedExportedClassTemplate at PAX@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN41PartiallySpecializedExportedClassTemplateIPvE1fEv
 
 // MS ignores DLL attributes on partial specializations; inheritance still works though.
@@ -714,14 +714,14 @@ template <typename T> struct __declspec(
 template <typename T> struct __declspec(dllimport) PartiallySpecializedExportedClassTemplate2<T*> { void f(); };
 template <typename T> void PartiallySpecializedExportedClassTemplate2<T*>::f() {}
 USEMEMFUNC(PartiallySpecializedExportedClassTemplate2<void*>, f);
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?f@?$PartiallySpecializedExportedClassTemplate2 at PAX@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?f@?$PartiallySpecializedExportedClassTemplate2 at PAX@@QAEXXZ"
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN42PartiallySpecializedExportedClassTemplate2IPvE1fEv
 
 // Attributes on the instantiation take precedence over attributes on the template.
 template <typename T> struct __declspec(dllimport) ExplicitlyInstantiatedWithDifferentAttr { void f() {} };
 template struct __declspec(dllexport) ExplicitlyInstantiatedWithDifferentAttr<int>;
 USEMEMFUNC(ExplicitlyInstantiatedWithDifferentAttr<int>, f);
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?f@?$ExplicitlyInstantiatedWithDifferentAttr at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?f@?$ExplicitlyInstantiatedWithDifferentAttr at H@@QAEXXZ"
 
 // Don't create weak dllexport aliases. (PR21373)
 struct NonExportedBaseClass {
@@ -730,61 +730,61 @@ struct NonExportedBaseClass {
 NonExportedBaseClass::~NonExportedBaseClass() {}
 
 struct __declspec(dllexport) ExportedDerivedClass : NonExportedBaseClass {};
-// M32-DAG: weak_odr dso_local dllexport x86_thiscallcc void @"\01??1ExportedDerivedClass@@UAE at XZ"
+// M32-DAG: weak_odr dso_local dllexport x86_thiscallcc void @"??1ExportedDerivedClass@@UAE at XZ"
 
 // Do not assert about generating code for constexpr functions twice during explicit instantiation (PR21718).
 template <typename T> struct ExplicitInstConstexprMembers {
   // Copy assignment operator
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable(1) %struct.ExplicitInstConstexprMembers* @"\01??4?$ExplicitInstConstexprMembers at X@@QAEAAU0 at ABU0@@Z"
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable(1) %struct.ExplicitInstConstexprMembers* @"??4?$ExplicitInstConstexprMembers at X@@QAEAAU0 at ABU0@@Z"
 
   constexpr ExplicitInstConstexprMembers() {}
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExplicitInstConstexprMembers* @"\01??0?$ExplicitInstConstexprMembers at X@@QAE at XZ"
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExplicitInstConstexprMembers* @"??0?$ExplicitInstConstexprMembers at X@@QAE at XZ"
 
   ExplicitInstConstexprMembers(const ExplicitInstConstexprMembers&) = default;
-  // M32MSVC2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExplicitInstConstexprMembers* @"\01??0?$ExplicitInstConstexprMembers at X@@QAE at ABU0@@Z"
+  // M32MSVC2013-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExplicitInstConstexprMembers* @"??0?$ExplicitInstConstexprMembers at X@@QAE at ABU0@@Z"
 
   constexpr int f() const { return 42; }
-  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc i32 @"\01?f@?$ExplicitInstConstexprMembers at X@@QBEHXZ"
+  // M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc i32 @"?f@?$ExplicitInstConstexprMembers at X@@QBEHXZ"
 };
 template struct __declspec(dllexport) ExplicitInstConstexprMembers<void>;
 
 template <typename T> struct ExplicitInstantiationDeclTemplate { void f() {} };
 extern template struct __declspec(dllexport) ExplicitInstantiationDeclTemplate<int>;
 USEMEMFUNC(ExplicitInstantiationDeclTemplate<int>, f);
-// M32-DAG: {{declare|define available_externally}} dso_local x86_thiscallcc void @"\01?f@?$ExplicitInstantiationDeclTemplate at H@@QAEXXZ"
+// M32-DAG: {{declare|define available_externally}} dso_local x86_thiscallcc void @"?f@?$ExplicitInstantiationDeclTemplate at H@@QAEXXZ"
 
 template <typename T> struct __declspec(dllexport) ExplicitInstantiationDeclExportedTemplate { void f() {} };
 extern template struct ExplicitInstantiationDeclExportedTemplate<int>;
 USEMEMFUNC(ExplicitInstantiationDeclExportedTemplate<int>, f);
-// M32-DAG: {{declare|define available_externally}} dso_local x86_thiscallcc void @"\01?f@?$ExplicitInstantiationDeclExportedTemplate at H@@QAEXXZ"
+// M32-DAG: {{declare|define available_externally}} dso_local x86_thiscallcc void @"?f@?$ExplicitInstantiationDeclExportedTemplate at H@@QAEXXZ"
 
 template <typename T> struct ExplicitInstantiationDeclExportedDefTemplate { void f() {} ExplicitInstantiationDeclExportedDefTemplate() {} };
 extern template struct ExplicitInstantiationDeclExportedDefTemplate<int>;
 template struct __declspec(dllexport) ExplicitInstantiationDeclExportedDefTemplate<int>;
 USEMEMFUNC(ExplicitInstantiationDeclExportedDefTemplate<int>, f);
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?f@?$ExplicitInstantiationDeclExportedDefTemplate at H@@QAEXXZ"
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExplicitInstantiationDeclExportedDefTemplate* @"\01??0?$ExplicitInstantiationDeclExportedDefTemplate at H@@QAE at XZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?f@?$ExplicitInstantiationDeclExportedDefTemplate at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %struct.ExplicitInstantiationDeclExportedDefTemplate* @"??0?$ExplicitInstantiationDeclExportedDefTemplate at H@@QAE at XZ"
 // G32-DAG: define weak_odr dso_local x86_thiscallcc void @_ZN44ExplicitInstantiationDeclExportedDefTemplateIiE1fEv
 
 template <typename T> struct ImplicitInstantiationExportedExplicitInstantiationDefTemplate { virtual void f() {} };
 ImplicitInstantiationExportedExplicitInstantiationDefTemplate<int> ImplicitInstantiationExportedExplicitInstantiationDefTemplateInstance;
 template struct __declspec(dllexport) ImplicitInstantiationExportedExplicitInstantiationDefTemplate<int>;
 USEMEMFUNC(ImplicitInstantiationExportedExplicitInstantiationDefTemplate<int>, f);
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?f@?$ImplicitInstantiationExportedExplicitInstantiationDefTemplate at H@@UAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?f@?$ImplicitInstantiationExportedExplicitInstantiationDefTemplate at H@@UAEXXZ"
 // G32-DAG: define weak_odr dso_local x86_thiscallcc void @_ZN61ImplicitInstantiationExportedExplicitInstantiationDefTemplateIiE1fEv
 
 template <typename T> struct __declspec(dllexport) ImplicitInstantiationExplicitInstantiationDefExportedTemplate { virtual void f() {} };
 ImplicitInstantiationExplicitInstantiationDefExportedTemplate<int> ImplicitInstantiationExplicitInstantiationDefExportedTemplateInstance;
 template struct ImplicitInstantiationExplicitInstantiationDefExportedTemplate<int>;
 USEMEMFUNC(ImplicitInstantiationExplicitInstantiationDefExportedTemplate<int>, f);
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?f@?$ImplicitInstantiationExplicitInstantiationDefExportedTemplate at H@@UAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?f@?$ImplicitInstantiationExplicitInstantiationDefExportedTemplate at H@@UAEXXZ"
 // G32-DAG: define weak_odr dso_local x86_thiscallcc void @_ZN61ImplicitInstantiationExplicitInstantiationDefExportedTemplateIiE1fEv
 
 template <typename T> struct __declspec(dllexport) ImplicitInstantiationExportedExplicitInstantiationDefExportedTemplate { virtual void f() {} };
 ImplicitInstantiationExportedExplicitInstantiationDefExportedTemplate<int> ImplicitInstantiationExportedExplicitInstantiationDefExportedTemplateInstance;
 template struct __declspec(dllexport) ImplicitInstantiationExportedExplicitInstantiationDefExportedTemplate<int>;
 USEMEMFUNC(ImplicitInstantiationExportedExplicitInstantiationDefExportedTemplate<int>, f);
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?f@?$ImplicitInstantiationExportedExplicitInstantiationDefExportedTemplate at H@@UAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?f@?$ImplicitInstantiationExportedExplicitInstantiationDefExportedTemplate at H@@UAEXXZ"
 // G32-DAG: define weak_odr dso_local x86_thiscallcc void @_ZN69ImplicitInstantiationExportedExplicitInstantiationDefExportedTemplateIiE1fEv
 
 namespace { struct InternalLinkageType {}; }
@@ -793,20 +793,20 @@ struct __declspec(dllexport) PR23308 {
 };
 void PR23308::f(InternalLinkageType*) {}
 long use(PR23308* p) { p->f(nullptr); }
-// M32-DAG: define internal x86_thiscallcc void @"\01?f at PR23308@@QAEXPAUInternalLinkageType@?A@@@Z"
+// M32-DAG: define internal x86_thiscallcc void @"?f at PR23308@@QAEXPAUInternalLinkageType@?A@@@Z"
 
 template <typename T> struct PR23770BaseTemplate { void f() {} };
 template <typename T> struct PR23770DerivedTemplate : PR23770BaseTemplate<int> {};
 extern template struct PR23770DerivedTemplate<int>;
 template struct __declspec(dllexport) PR23770DerivedTemplate<int>;
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?f@?$PR23770BaseTemplate at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?f@?$PR23770BaseTemplate at H@@QAEXXZ"
 
 namespace InClassInits {
 
 struct __declspec(dllexport) S {
   int x = 42;
 };
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %"struct.InClassInits::S"* @"\01??0S at InClassInits@@QAE at XZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %"struct.InClassInits::S"* @"??0S at InClassInits@@QAE at XZ"
 
 // dllexport an already instantiated class template.
 template <typename T> struct Base {
@@ -814,7 +814,7 @@ template <typename T> struct Base {
 };
 Base<int> base;
 struct __declspec(dllexport) T : Base<int> { };
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %"struct.InClassInits::Base"* @"\01??0?$Base at H@InClassInits@@QAE at XZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %"struct.InClassInits::Base"* @"??0?$Base at H@InClassInits@@QAE at XZ"
 
 struct A { A(int); };
 struct __declspec(dllexport) U {
@@ -822,7 +822,7 @@ struct __declspec(dllexport) U {
   U(A = 0) {}
   int x = 0;
 };
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %"struct.InClassInits::U"* @"\01??0U at InClassInits@@QAE at UA@1@@Z"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %"struct.InClassInits::U"* @"??0U at InClassInits@@QAE at UA@1@@Z"
 
 struct Evil {
   template <typename T> struct Base {
@@ -834,7 +834,7 @@ struct Evil {
   // the default ctor must still be delayed.
   struct __declspec(dllexport) T : Base<int> {};
 };
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %"struct.InClassInits::Evil::Base"* @"\01??0?$Base at H@Evil at InClassInits@@QAE at XZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %"struct.InClassInits::Evil::Base"* @"??0?$Base at H@Evil at InClassInits@@QAE at XZ"
 
 template <typename T> struct Foo {};
 template <typename T> struct Bar {
@@ -846,7 +846,7 @@ struct __declspec(dllexport) Baz {
 // After parsing Baz, in ActOnFinishCXXNonNestedClass we would synthesize
 // Baz's operator=, causing instantiation of Foo<int> after which
 // ActOnFinishCXXNonNestedClass is called, and we would bite our own tail.
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable(1) %"struct.InClassInits::Baz"* @"\01??4Baz at InClassInits@@QAEAAU01 at ABU01@@Z"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc dereferenceable(1) %"struct.InClassInits::Baz"* @"??4Baz at InClassInits@@QAEAAU01 at ABU01@@Z"
 }
 
 // We had an issue where instantiating A would force emission of B's delayed
@@ -857,28 +857,28 @@ struct __declspec(dllexport) B {
   B(int = 0) {}
   A<int> m_fn1() {}
 };
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01??_FB at pr26490@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"??_FB at pr26490@@QAEXXZ"
 }
 
 // dllexport trumps dllimport on an explicit instantiation.
 template <typename T> struct ExplicitInstantiationTwoAttributes { void f() {} };
 template struct __declspec(dllexport) __declspec(dllimport) ExplicitInstantiationTwoAttributes<int>;
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?f@?$ExplicitInstantiationTwoAttributes at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?f@?$ExplicitInstantiationTwoAttributes at H@@QAEXXZ"
 
 namespace pr34849 {
 // Specializations of exported class template member functions get exported.
 template <typename> struct __declspec(dllexport) ExportedClassTemplate { void foo(); };
 template<> void ExportedClassTemplate<int>::foo() {}
 template struct ExportedClassTemplate<int>;
-// M32-DAG: define dso_local dllexport x86_thiscallcc void @"\01?foo@?$ExportedClassTemplate at H@pr34849@@QAEXXZ"
+// M32-DAG: define dso_local dllexport x86_thiscallcc void @"?foo@?$ExportedClassTemplate at H@pr34849@@QAEXXZ"
 
 // Specializations of exported class member template functions do not get exported.
 struct __declspec(dllexport) ExportedClass { template <typename> void bar() ; };
 template<> void ExportedClass::bar<int>() {}
-// M32-DAG: define dso_local x86_thiscallcc void @"\01??$bar at H@ExportedClass at pr34849@@QAEXXZ"
+// M32-DAG: define dso_local x86_thiscallcc void @"??$bar at H@ExportedClass at pr34849@@QAEXXZ"
 template <typename> struct __declspec(dllexport) ExportedClassTemplate2 { template <typename> void baz(); };
 template<> template<> void ExportedClassTemplate2<int>::baz<int>() {}
-// M32-DAG: define dso_local x86_thiscallcc void @"\01??$baz at H@?$ExportedClassTemplate2 at H@pr34849@@QAEXXZ"
+// M32-DAG: define dso_local x86_thiscallcc void @"??$baz at H@?$ExportedClassTemplate2 at H@pr34849@@QAEXXZ"
 }
 
 //===----------------------------------------------------------------------===//
@@ -914,69 +914,69 @@ template struct __declspec(dllimport) Ex
 // MS: ClassTemplate<int> gets exported.
 struct __declspec(dllexport) DerivedFromTemplate : public ClassTemplate<int> {};
 USEMEMFUNC(DerivedFromTemplate, func)
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?func@?$ClassTemplate at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?func@?$ClassTemplate at H@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ClassTemplateIiE4funcEv
 
 // ExportedTemplate is explicitly exported.
 struct __declspec(dllexport) DerivedFromExportedTemplate : public ExportedClassTemplate<int> {};
 USEMEMFUNC(DerivedFromExportedTemplate, func)
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?func@?$ExportedClassTemplate at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?func@?$ExportedClassTemplate at H@@QAEXXZ"
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN21ExportedClassTemplateIiE4funcEv
 
 // ImportedClassTemplate is explicitly imported.
 struct __declspec(dllexport) DerivedFromImportedTemplate : public ImportedClassTemplate<int> {};
 USEMEMFUNC(DerivedFromImportedTemplate, func)
-// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"\01?func@?$ImportedClassTemplate at H@@QAEXXZ"
+// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"?func@?$ImportedClassTemplate at H@@QAEXXZ"
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN21ImportedClassTemplateIiE4funcEv
 
 // Base class already implicitly instantiated without dll attribute.
 struct DerivedFromTemplateD : public ClassTemplate<double> {};
 struct __declspec(dllexport) DerivedFromTemplateD2 : public ClassTemplate<double> {};
 USEMEMFUNC(DerivedFromTemplateD2, func)
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?func@?$ClassTemplate at N@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?func@?$ClassTemplate at N@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ClassTemplateIdE4funcEv
 
 // MS: Base class already instantiated with different dll attribute.
 struct __declspec(dllimport) DerivedFromTemplateB : public ClassTemplate<bool> {};
 struct __declspec(dllexport) DerivedFromTemplateB2 : public ClassTemplate<bool> {};
 USEMEMFUNC(DerivedFromTemplateB2, func)
-// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"\01?func@?$ClassTemplate at _N@@QAEXXZ"
+// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"?func@?$ClassTemplate at _N@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ClassTemplateIbE4funcEv
 
 // Base class already specialized without dll attribute.
 struct __declspec(dllexport) DerivedFromExplicitlySpecializedTemplate : public ExplicitlySpecializedTemplate<int> {};
 USEMEMFUNC(DerivedFromExplicitlySpecializedTemplate, func)
-// M32-DAG: define dso_local x86_thiscallcc void @"\01?func@?$ExplicitlySpecializedTemplate at H@@QAEXXZ"
+// M32-DAG: define dso_local x86_thiscallcc void @"?func@?$ExplicitlySpecializedTemplate at H@@QAEXXZ"
 // G32-DAG: define dso_local x86_thiscallcc void @_ZN29ExplicitlySpecializedTemplateIiE4funcEv
 
 // Base class alredy specialized with export attribute.
 struct __declspec(dllexport) DerivedFromExplicitlyExportSpecializedTemplate : public ExplicitlyExportSpecializedTemplate<int> {};
 USEMEMFUNC(DerivedFromExplicitlyExportSpecializedTemplate, func)
-// M32-DAG: define dso_local dllexport x86_thiscallcc void @"\01?func@?$ExplicitlyExportSpecializedTemplate at H@@QAEXXZ"
+// M32-DAG: define dso_local dllexport x86_thiscallcc void @"?func@?$ExplicitlyExportSpecializedTemplate at H@@QAEXXZ"
 // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN35ExplicitlyExportSpecializedTemplateIiE4funcEv
 
 // Base class already specialized with import attribute.
 struct __declspec(dllexport) DerivedFromExplicitlyImportSpecializedTemplate : public ExplicitlyImportSpecializedTemplate<int> {};
 USEMEMFUNC(DerivedFromExplicitlyImportSpecializedTemplate, func)
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01?func@?$ExplicitlyImportSpecializedTemplate at H@@QAEXXZ"
+// M32-DAG: declare dllimport x86_thiscallcc void @"?func@?$ExplicitlyImportSpecializedTemplate at H@@QAEXXZ"
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN35ExplicitlyImportSpecializedTemplateIiE4funcEv
 
 // Base class already instantiated without dll attribute.
 struct __declspec(dllexport) DerivedFromExplicitlyInstantiatedTemplate : public ExplicitlyInstantiatedTemplate<int> {};
 USEMEMFUNC(DerivedFromExplicitlyInstantiatedTemplate, func)
-// M32-DAG: define weak_odr dso_local x86_thiscallcc void @"\01?func@?$ExplicitlyInstantiatedTemplate at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local x86_thiscallcc void @"?func@?$ExplicitlyInstantiatedTemplate at H@@QAEXXZ"
 // G32-DAG: define weak_odr dso_local x86_thiscallcc void @_ZN30ExplicitlyInstantiatedTemplateIiE4funcEv
 
 // Base class already instantiated with export attribute.
 struct __declspec(dllexport) DerivedFromExplicitlyExportInstantiatedTemplate : public ExplicitlyExportInstantiatedTemplate<int> {};
 USEMEMFUNC(DerivedFromExplicitlyExportInstantiatedTemplate, func)
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?func@?$ExplicitlyExportInstantiatedTemplate at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?func@?$ExplicitlyExportInstantiatedTemplate at H@@QAEXXZ"
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN36ExplicitlyExportInstantiatedTemplateIiE4funcEv
 
 // Base class already instantiated with import attribute.
 struct __declspec(dllexport) DerivedFromExplicitlyImportInstantiatedTemplate : public ExplicitlyImportInstantiatedTemplate<int> {};
 USEMEMFUNC(DerivedFromExplicitlyImportInstantiatedTemplate, func)
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01?func@?$ExplicitlyImportInstantiatedTemplate at H@@QAEXXZ"
+// M32-DAG: declare dllimport x86_thiscallcc void @"?func@?$ExplicitlyImportInstantiatedTemplate at H@@QAEXXZ"
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN36ExplicitlyImportInstantiatedTemplateIiE4funcEv
 
 // MS: A dll attribute propagates through multiple levels of instantiation.
@@ -984,14 +984,14 @@ template <typename T> struct TopClass {
 template <typename T> struct MiddleClass : public TopClass<T> { };
 struct __declspec(dllexport) BottomClass : public MiddleClass<int> { };
 USEMEMFUNC(BottomClass, func)
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?func@?$TopClass at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?func@?$TopClass at H@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN8TopClassIiE4funcEv
 
 template <typename T> struct ExplicitInstantiationDeclTemplateBase { void func() {} };
 extern template struct ExplicitInstantiationDeclTemplateBase<int>;
 struct __declspec(dllexport) DerivedFromExplicitInstantiationDeclTemplateBase : public ExplicitInstantiationDeclTemplateBase<int> {};
 template struct ExplicitInstantiationDeclTemplateBase<int>;
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?func@?$ExplicitInstantiationDeclTemplateBase at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?func@?$ExplicitInstantiationDeclTemplateBase at H@@QAEXXZ"
 // G32-DAG: define weak_odr dso_local x86_thiscallcc void @_ZN37ExplicitInstantiationDeclTemplateBaseIiE4funcEv
 
 // PR26076
@@ -1005,8 +1005,8 @@ struct __declspec(dllexport) LayerTreeIm
   };
   LayerSelection foo;
 };
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %"struct.LayerTreeImpl::ElementLayers"* @"\01??0ElementLayers at LayerTreeImpl@@QAE at XZ"
-// M64-DAG: define weak_odr dso_local dllexport %"struct.LayerTreeImpl::ElementLayers"* @"\01??0ElementLayers at LayerTreeImpl@@QEAA at XZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc %"struct.LayerTreeImpl::ElementLayers"* @"??0ElementLayers at LayerTreeImpl@@QAE at XZ"
+// M64-DAG: define weak_odr dso_local dllexport %"struct.LayerTreeImpl::ElementLayers"* @"??0ElementLayers at LayerTreeImpl@@QEAA at XZ"
 
 class __declspec(dllexport) ACE_Shared_Object {
 public:

Modified: cfe/trunk/test/CodeGenCXX/dllimport-dtor-thunks.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllimport-dtor-thunks.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllimport-dtor-thunks.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllimport-dtor-thunks.cpp Fri Mar 16 13:36:49 2018
@@ -36,10 +36,10 @@ extern "C" void testit() {
 // The destructors are called in reverse order of construction. Only the third
 // needs the complete destructor (_D).
 // CHECK-LABEL: define dso_local void @testit()
-// CHECK:  call void @"\01??_DImportVBaseOverrideVDtor@@QEAAXXZ"(%struct.ImportVBaseOverrideVDtor* %{{.*}})
-// CHECK:  call void @"\01??1ImportOverrideVDtor@@UEAA at XZ"(%struct.ImportOverrideVDtor* %{{.*}})
-// CHECK:  call void @"\01??1ImportIntroVDtor@@UEAA at XZ"(%struct.ImportIntroVDtor* %{{.*}})
+// CHECK:  call void @"??_DImportVBaseOverrideVDtor@@QEAAXXZ"(%struct.ImportVBaseOverrideVDtor* %{{.*}})
+// CHECK:  call void @"??1ImportOverrideVDtor@@UEAA at XZ"(%struct.ImportOverrideVDtor* %{{.*}})
+// CHECK:  call void @"??1ImportIntroVDtor@@UEAA at XZ"(%struct.ImportIntroVDtor* %{{.*}})
 
-// CHECK-LABEL: declare dllimport void @"\01??_DImportVBaseOverrideVDtor@@QEAAXXZ"
-// CHECK-LABEL: declare dllimport void @"\01??1ImportOverrideVDtor@@UEAA at XZ"
-// CHECK-LABEL: declare dllimport void @"\01??1ImportIntroVDtor@@UEAA at XZ"
+// CHECK-LABEL: declare dllimport void @"??_DImportVBaseOverrideVDtor@@QEAAXXZ"
+// CHECK-LABEL: declare dllimport void @"??1ImportOverrideVDtor@@UEAA at XZ"
+// CHECK-LABEL: declare dllimport void @"??1ImportIntroVDtor@@UEAA at XZ"

Modified: cfe/trunk/test/CodeGenCXX/dllimport-members.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllimport-members.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllimport-members.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllimport-members.cpp Fri Mar 16 13:36:49 2018
@@ -63,16 +63,16 @@ struct __declspec(dllimport) ForceNonTri
 struct ImportMembers {
   struct Nested;
 
-  // M32-DAG: define  dso_local dllexport   x86_thiscallcc void @"\01?normalDef at ImportMembers@@QAEXXZ"(%struct.ImportMembers* %this)
-  // M64-DAG: define  dso_local dllexport                  void @"\01?normalDef at ImportMembers@@QEAAXXZ"(%struct.ImportMembers* %this)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?normalDecl at ImportMembers@@QAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare           dllimport                  void @"\01?normalDecl at ImportMembers@@QEAAXXZ"(%struct.ImportMembers*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?normalInclass at ImportMembers@@QAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare           dllimport                  void @"\01?normalInclass at ImportMembers@@QEAAXXZ"(%struct.ImportMembers*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?normalInlineDef at ImportMembers@@QAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare           dllimport                  void @"\01?normalInlineDef at ImportMembers@@QEAAXXZ"(%struct.ImportMembers*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?normalInlineDecl at ImportMembers@@QAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare           dllimport                  void @"\01?normalInlineDecl at ImportMembers@@QEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: define  dso_local dllexport   x86_thiscallcc void @"?normalDef at ImportMembers@@QAEXXZ"(%struct.ImportMembers* %this)
+  // M64-DAG: define  dso_local dllexport                  void @"?normalDef at ImportMembers@@QEAAXXZ"(%struct.ImportMembers* %this)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?normalDecl at ImportMembers@@QAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare           dllimport                  void @"?normalDecl at ImportMembers@@QEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?normalInclass at ImportMembers@@QAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare           dllimport                  void @"?normalInclass at ImportMembers@@QEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?normalInlineDef at ImportMembers@@QAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare           dllimport                  void @"?normalInlineDef at ImportMembers@@QEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?normalInlineDecl at ImportMembers@@QAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare           dllimport                  void @"?normalInlineDecl at ImportMembers@@QEAAXXZ"(%struct.ImportMembers*)
   // G32-DAG: define  dso_local             x86_thiscallcc void @_ZN13ImportMembers9normalDefEv(%struct.ImportMembers* %this)
   // G64-DAG: define  dso_local                            void @_ZN13ImportMembers9normalDefEv(%struct.ImportMembers* %this)
   // G32-DAG: declare           dllimport   x86_thiscallcc void @_ZN13ImportMembers10normalDeclEv(%struct.ImportMembers*)
@@ -83,9 +83,9 @@ struct ImportMembers {
   // G64-DAG: define linkonce_odr dso_local                void @_ZN13ImportMembers15normalInlineDefEv(%struct.ImportMembers* %this)
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers16normalInlineDeclEv(%struct.ImportMembers* %this)
   // G64-DAG: define linkonce_odr dso_local                 void @_ZN13ImportMembers16normalInlineDeclEv(%struct.ImportMembers* %this)
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?normalInclass at ImportMembers@@QAEXXZ"(
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?normalInlineDef at ImportMembers@@QAEXXZ"(
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?normalInlineDecl at ImportMembers@@QAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?normalInclass at ImportMembers@@QAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?normalInlineDef at ImportMembers@@QAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?normalInlineDecl at ImportMembers@@QAEXXZ"(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers13normalInclassEv(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers15normalInlineDefEv(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers16normalInlineDeclEv(
@@ -95,16 +95,16 @@ struct ImportMembers {
   __declspec(dllimport)                void normalInlineDef();
   __declspec(dllimport)         inline void normalInlineDecl();
 
-  // M32-DAG: define  dso_local dllexport   x86_thiscallcc void @"\01?virtualDef at ImportMembers@@UAEXXZ"(%struct.ImportMembers* %this)
-  // M64-DAG: define  dso_local dllexport                  void @"\01?virtualDef at ImportMembers@@UEAAXXZ"(%struct.ImportMembers* %this)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?virtualDecl at ImportMembers@@UAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare           dllimport                  void @"\01?virtualDecl at ImportMembers@@UEAAXXZ"(%struct.ImportMembers*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?virtualInclass at ImportMembers@@UAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare           dllimport                  void @"\01?virtualInclass at ImportMembers@@UEAAXXZ"(%struct.ImportMembers*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?virtualInlineDef at ImportMembers@@UAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare           dllimport                  void @"\01?virtualInlineDef at ImportMembers@@UEAAXXZ"(%struct.ImportMembers*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?virtualInlineDecl at ImportMembers@@UAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare           dllimport                  void @"\01?virtualInlineDecl at ImportMembers@@UEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: define  dso_local dllexport   x86_thiscallcc void @"?virtualDef at ImportMembers@@UAEXXZ"(%struct.ImportMembers* %this)
+  // M64-DAG: define  dso_local dllexport                  void @"?virtualDef at ImportMembers@@UEAAXXZ"(%struct.ImportMembers* %this)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?virtualDecl at ImportMembers@@UAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare           dllimport                  void @"?virtualDecl at ImportMembers@@UEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?virtualInclass at ImportMembers@@UAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare           dllimport                  void @"?virtualInclass at ImportMembers@@UEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?virtualInlineDef at ImportMembers@@UAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare           dllimport                  void @"?virtualInlineDef at ImportMembers@@UEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?virtualInlineDecl at ImportMembers@@UAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare           dllimport                  void @"?virtualInlineDecl at ImportMembers@@UEAAXXZ"(%struct.ImportMembers*)
   // G32-DAG: define  dso_local             x86_thiscallcc void @_ZN13ImportMembers10virtualDefEv(%struct.ImportMembers* %this)
   // G64-DAG: define  dso_local                            void @_ZN13ImportMembers10virtualDefEv(%struct.ImportMembers* %this)
   // G32-DAG: declare dllimport   x86_thiscallcc void @_ZN13ImportMembers11virtualDeclEv(%struct.ImportMembers*)
@@ -115,9 +115,9 @@ struct ImportMembers {
   // G64-DAG: define linkonce_odr dso_local                void @_ZN13ImportMembers16virtualInlineDefEv(%struct.ImportMembers* %this)
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers17virtualInlineDeclEv(%struct.ImportMembers* %this)
   // G64-DAG: define linkonce_odr dso_local                void @_ZN13ImportMembers17virtualInlineDeclEv(%struct.ImportMembers* %this)
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?virtualInclass at ImportMembers@@UAEXXZ"(
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?virtualInlineDef at ImportMembers@@UAEXXZ"(
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?virtualInlineDecl at ImportMembers@@UAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?virtualInclass at ImportMembers@@UAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?virtualInlineDef at ImportMembers@@UAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?virtualInlineDecl at ImportMembers@@UAEXXZ"(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers14virtualInclassEv(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers16virtualInlineDefEv(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers17virtualInlineDeclEv(
@@ -127,19 +127,19 @@ struct ImportMembers {
   __declspec(dllimport) virtual        void virtualInlineDef();
   __declspec(dllimport) virtual inline void virtualInlineDecl();
 
-  // MSC-DAG: define  dso_local dllexport                void @"\01?staticDef at ImportMembers@@SAXXZ"()
-  // MSC-DAG: declare           dllimport                void @"\01?staticDecl at ImportMembers@@SAXXZ"()
-  // MSC-DAG: declare           dllimport                void @"\01?staticInclass at ImportMembers@@SAXXZ"()
-  // MSC-DAG: declare           dllimport                void @"\01?staticInlineDef at ImportMembers@@SAXXZ"()
-  // MSC-DAG: declare           dllimport                void @"\01?staticInlineDecl at ImportMembers@@SAXXZ"()
+  // MSC-DAG: define  dso_local dllexport                void @"?staticDef at ImportMembers@@SAXXZ"()
+  // MSC-DAG: declare           dllimport                void @"?staticDecl at ImportMembers@@SAXXZ"()
+  // MSC-DAG: declare           dllimport                void @"?staticInclass at ImportMembers@@SAXXZ"()
+  // MSC-DAG: declare           dllimport                void @"?staticInlineDef at ImportMembers@@SAXXZ"()
+  // MSC-DAG: declare           dllimport                void @"?staticInlineDecl at ImportMembers@@SAXXZ"()
   // GNU-DAG: define  dso_local                          void @_ZN13ImportMembers9staticDefEv()
   // GNU-DAG: declare           dllimport                void @_ZN13ImportMembers10staticDeclEv()
   // GNU-DAG: define linkonce_odr dso_local               void @_ZN13ImportMembers13staticInclassEv()
   // GNU-DAG: define linkonce_odr dso_local              void @_ZN13ImportMembers15staticInlineDefEv()
   // GNU-DAG: define linkonce_odr dso_local              void @_ZN13ImportMembers16staticInlineDeclEv()
-  // MO1-DAG: define available_externally dllimport void @"\01?staticInclass at ImportMembers@@SAXXZ"()
-  // MO1-DAG: define available_externally dllimport void @"\01?staticInlineDef at ImportMembers@@SAXXZ"()
-  // MO1-DAG: define available_externally dllimport void @"\01?staticInlineDecl at ImportMembers@@SAXXZ"()
+  // MO1-DAG: define available_externally dllimport void @"?staticInclass at ImportMembers@@SAXXZ"()
+  // MO1-DAG: define available_externally dllimport void @"?staticInlineDef at ImportMembers@@SAXXZ"()
+  // MO1-DAG: define available_externally dllimport void @"?staticInlineDecl at ImportMembers@@SAXXZ"()
   // GO1-DAG: define linkonce_odr dso_local              void @_ZN13ImportMembers13staticInclassEv()
   // GO1-DAG: define linkonce_odr dso_local              void @_ZN13ImportMembers15staticInlineDefEv()
   // GO1-DAG: define linkonce_odr dso_local              void @_ZN13ImportMembers16staticInlineDeclEv()
@@ -149,38 +149,38 @@ struct ImportMembers {
   __declspec(dllimport) static         void staticInlineDef();
   __declspec(dllimport) static  inline void staticInlineDecl();
 
-  // M32-DAG: declare dllimport x86_thiscallcc void @"\01?protectedNormalDecl at ImportMembers@@IAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare dllimport                void @"\01?protectedNormalDecl at ImportMembers@@IEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: declare dllimport x86_thiscallcc void @"?protectedNormalDecl at ImportMembers@@IAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare dllimport                void @"?protectedNormalDecl at ImportMembers@@IEAAXXZ"(%struct.ImportMembers*)
   // G32-DAG: declare dllimport x86_thiscallcc void @_ZN13ImportMembers19protectedNormalDeclEv(%struct.ImportMembers*)
   // G64-DAG: declare dllimport                void @_ZN13ImportMembers19protectedNormalDeclEv(%struct.ImportMembers*)
-  // MSC-DAG: declare dllimport                void @"\01?protectedStaticDecl at ImportMembers@@KAXXZ"()
+  // MSC-DAG: declare dllimport                void @"?protectedStaticDecl at ImportMembers@@KAXXZ"()
   // GNU-DAG: declare dllimport                void @_ZN13ImportMembers19protectedStaticDeclEv()
 protected:
   __declspec(dllimport)                void protectedNormalDecl();
   __declspec(dllimport) static         void protectedStaticDecl();
 
-  // M32-DAG: declare dllimport x86_thiscallcc void @"\01?privateNormalDecl at ImportMembers@@AAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare dllimport                void @"\01?privateNormalDecl at ImportMembers@@AEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: declare dllimport x86_thiscallcc void @"?privateNormalDecl at ImportMembers@@AAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare dllimport                void @"?privateNormalDecl at ImportMembers@@AEAAXXZ"(%struct.ImportMembers*)
   // G32-DAG: declare dllimport x86_thiscallcc void @_ZN13ImportMembers17privateNormalDeclEv(%struct.ImportMembers*)
   // G64-DAG: declare dllimport                void @_ZN13ImportMembers17privateNormalDeclEv(%struct.ImportMembers*)
-  // MSC-DAG: declare dllimport                void @"\01?privateStaticDecl at ImportMembers@@CAXXZ"()
+  // MSC-DAG: declare dllimport                void @"?privateStaticDecl at ImportMembers@@CAXXZ"()
   // GNU-DAG: declare dllimport                void @_ZN13ImportMembers17privateStaticDeclEv()
 private:
   __declspec(dllimport)                void privateNormalDecl();
   __declspec(dllimport) static         void privateStaticDecl();
 
-  // M32-DAG: declare dso_local          x86_thiscallcc void @"\01?ignored at ImportMembers@@QAEXXZ"(%struct.ImportMembers*)
-  // M64-DAG: declare dso_local                         void @"\01?ignored at ImportMembers@@QEAAXXZ"(%struct.ImportMembers*)
+  // M32-DAG: declare dso_local          x86_thiscallcc void @"?ignored at ImportMembers@@QAEXXZ"(%struct.ImportMembers*)
+  // M64-DAG: declare dso_local                         void @"?ignored at ImportMembers@@QEAAXXZ"(%struct.ImportMembers*)
   // G32-DAG: declare dso_local          x86_thiscallcc void @_ZN13ImportMembers7ignoredEv(%struct.ImportMembers*)
   // G64-DAG: declare dso_local                         void @_ZN13ImportMembers7ignoredEv(%struct.ImportMembers*)
 public:
   void ignored();
 
-  // MSC-DAG: @"\01?StaticField at ImportMembers@@2HA"               = external dllimport global i32
-  // MSC-DAG: @"\01?StaticConstField at ImportMembers@@2HB"          = external dllimport constant i32
-  // MSC-DAG: @"\01?StaticConstFieldEqualInit at ImportMembers@@2HB" = available_externally dllimport constant i32 1, align 4
-  // MSC-DAG: @"\01?StaticConstFieldBraceInit at ImportMembers@@2HB" = available_externally dllimport constant i32 1, align 4
-  // MSC-DAG: @"\01?ConstexprField at ImportMembers@@2HB"            = available_externally dllimport constant i32 1, align 4
+  // MSC-DAG: @"?StaticField at ImportMembers@@2HA"               = external dllimport global i32
+  // MSC-DAG: @"?StaticConstField at ImportMembers@@2HB"          = external dllimport constant i32
+  // MSC-DAG: @"?StaticConstFieldEqualInit at ImportMembers@@2HB" = available_externally dllimport constant i32 1, align 4
+  // MSC-DAG: @"?StaticConstFieldBraceInit at ImportMembers@@2HB" = available_externally dllimport constant i32 1, align 4
+  // MSC-DAG: @"?ConstexprField at ImportMembers@@2HB"            = available_externally dllimport constant i32 1, align 4
   // GNU-DAG: @_ZN13ImportMembers11StaticFieldE                   = external dllimport global i32
   // GNU-DAG: @_ZN13ImportMembers16StaticConstFieldE              = external dllimport constant i32
   // GNU-DAG: @_ZN13ImportMembers25StaticConstFieldEqualInitE     = external dllimport constant i32
@@ -235,16 +235,16 @@ USEMV(ImportMembers, ConstexprField)
 
 // Import individual members of a nested class.
 struct ImportMembers::Nested {
-  // M32-DAG: define  dso_local dllexport   x86_thiscallcc void @"\01?normalDef at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"* %this)
-  // M64-DAG: define  dso_local dllexport                  void @"\01?normalDef at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"* %this)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?normalDecl at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare           dllimport                  void @"\01?normalDecl at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?normalInclass at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare           dllimport                  void @"\01?normalInclass at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?normalInlineDef at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare           dllimport                  void @"\01?normalInlineDef at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?normalInlineDecl at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare           dllimport                  void @"\01?normalInlineDecl at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: define  dso_local dllexport   x86_thiscallcc void @"?normalDef at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"* %this)
+  // M64-DAG: define  dso_local dllexport                  void @"?normalDef at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"* %this)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?normalDecl at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare           dllimport                  void @"?normalDecl at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?normalInclass at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare           dllimport                  void @"?normalInclass at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?normalInlineDef at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare           dllimport                  void @"?normalInlineDef at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?normalInlineDecl at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare           dllimport                  void @"?normalInlineDecl at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"*)
   // G32-DAG: define  dso_local             x86_thiscallcc void @_ZN13ImportMembers6Nested9normalDefEv(%"struct.ImportMembers::Nested"* %this)
   // G64-DAG: define  dso_local                            void @_ZN13ImportMembers6Nested9normalDefEv(%"struct.ImportMembers::Nested"* %this)
   // G32-DAG: declare dllimport   x86_thiscallcc void @_ZN13ImportMembers6Nested10normalDeclEv(%"struct.ImportMembers::Nested"*)
@@ -255,9 +255,9 @@ struct ImportMembers::Nested {
   // G64-DAG: define linkonce_odr dso_local                void @_ZN13ImportMembers6Nested15normalInlineDefEv(%"struct.ImportMembers::Nested"* %this)
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers6Nested16normalInlineDeclEv(%"struct.ImportMembers::Nested"* %this)
   // G64-DAG: define linkonce_odr dso_local                void @_ZN13ImportMembers6Nested16normalInlineDeclEv(%"struct.ImportMembers::Nested"* %this)
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?normalInclass at Nested@ImportMembers@@QAEXXZ"(
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?normalInlineDef at Nested@ImportMembers@@QAEXXZ"(
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?normalInlineDecl at Nested@ImportMembers@@QAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?normalInclass at Nested@ImportMembers@@QAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?normalInlineDef at Nested@ImportMembers@@QAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?normalInlineDecl at Nested@ImportMembers@@QAEXXZ"(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers6Nested13normalInclassEv(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers6Nested15normalInlineDefEv(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers6Nested16normalInlineDeclEv(
@@ -267,16 +267,16 @@ struct ImportMembers::Nested {
   __declspec(dllimport)                void normalInlineDef();
   __declspec(dllimport)         inline void normalInlineDecl();
 
-  // M32-DAG: define  dso_local dllexport   x86_thiscallcc void @"\01?virtualDef at Nested@ImportMembers@@UAEXXZ"(%"struct.ImportMembers::Nested"* %this)
-  // M64-DAG: define  dso_local dllexport                  void @"\01?virtualDef at Nested@ImportMembers@@UEAAXXZ"(%"struct.ImportMembers::Nested"* %this)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?virtualDecl at Nested@ImportMembers@@UAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare           dllimport                  void @"\01?virtualDecl at Nested@ImportMembers@@UEAAXXZ"(%"struct.ImportMembers::Nested"*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?virtualInclass at Nested@ImportMembers@@UAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare           dllimport                  void @"\01?virtualInclass at Nested@ImportMembers@@UEAAXXZ"(%"struct.ImportMembers::Nested"*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?virtualInlineDef at Nested@ImportMembers@@UAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare           dllimport                  void @"\01?virtualInlineDef at Nested@ImportMembers@@UEAAXXZ"(%"struct.ImportMembers::Nested"*)
-  // M32-DAG: declare           dllimport   x86_thiscallcc void @"\01?virtualInlineDecl at Nested@ImportMembers@@UAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare           dllimport                  void @"\01?virtualInlineDecl at Nested@ImportMembers@@UEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: define  dso_local dllexport   x86_thiscallcc void @"?virtualDef at Nested@ImportMembers@@UAEXXZ"(%"struct.ImportMembers::Nested"* %this)
+  // M64-DAG: define  dso_local dllexport                  void @"?virtualDef at Nested@ImportMembers@@UEAAXXZ"(%"struct.ImportMembers::Nested"* %this)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?virtualDecl at Nested@ImportMembers@@UAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare           dllimport                  void @"?virtualDecl at Nested@ImportMembers@@UEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?virtualInclass at Nested@ImportMembers@@UAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare           dllimport                  void @"?virtualInclass at Nested@ImportMembers@@UEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?virtualInlineDef at Nested@ImportMembers@@UAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare           dllimport                  void @"?virtualInlineDef at Nested@ImportMembers@@UEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: declare           dllimport   x86_thiscallcc void @"?virtualInlineDecl at Nested@ImportMembers@@UAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare           dllimport                  void @"?virtualInlineDecl at Nested@ImportMembers@@UEAAXXZ"(%"struct.ImportMembers::Nested"*)
   // G32-DAG: define  dso_local             x86_thiscallcc void @_ZN13ImportMembers6Nested10virtualDefEv(%"struct.ImportMembers::Nested"* %this)
   // G64-DAG: define  dso_local                            void @_ZN13ImportMembers6Nested10virtualDefEv(%"struct.ImportMembers::Nested"* %this)
   // G32-DAG: declare dllimport   x86_thiscallcc void @_ZN13ImportMembers6Nested11virtualDeclEv(%"struct.ImportMembers::Nested"*)
@@ -288,9 +288,9 @@ struct ImportMembers::Nested {
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ImportMembers6Nested17virtualInlineDeclEv(%"struct.ImportMembers::Nested"* %this)
   // G64-DAG: define linkonce_odr dso_local                void @_ZN13ImportMembers6Nested17virtualInlineDeclEv(%"struct.ImportMembers::Nested"* %this)
 
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?virtualInclass at Nested@ImportMembers@@UAEXXZ"(
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?virtualInlineDef at Nested@ImportMembers@@UAEXXZ"(
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?virtualInlineDecl at Nested@ImportMembers@@UAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?virtualInclass at Nested@ImportMembers@@UAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?virtualInlineDef at Nested@ImportMembers@@UAEXXZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?virtualInlineDecl at Nested@ImportMembers@@UAEXXZ"(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc                   void @_ZN13ImportMembers6Nested14virtualInclassEv(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc                   void @_ZN13ImportMembers6Nested16virtualInlineDefEv(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc                   void @_ZN13ImportMembers6Nested17virtualInlineDeclEv(
@@ -300,19 +300,19 @@ struct ImportMembers::Nested {
   __declspec(dllimport) virtual        void virtualInlineDef();
   __declspec(dllimport) virtual inline void virtualInlineDecl();
 
-  // MSC-DAG: define  dso_local dllexport                void @"\01?staticDef at Nested@ImportMembers@@SAXXZ"()
-  // MSC-DAG: declare           dllimport                void @"\01?staticDecl at Nested@ImportMembers@@SAXXZ"()
-  // MSC-DAG: declare           dllimport                void @"\01?staticInclass at Nested@ImportMembers@@SAXXZ"()
-  // MSC-DAG: declare           dllimport                void @"\01?staticInlineDef at Nested@ImportMembers@@SAXXZ"()
-  // MSC-DAG: declare           dllimport                void @"\01?staticInlineDecl at Nested@ImportMembers@@SAXXZ"()
+  // MSC-DAG: define  dso_local dllexport                void @"?staticDef at Nested@ImportMembers@@SAXXZ"()
+  // MSC-DAG: declare           dllimport                void @"?staticDecl at Nested@ImportMembers@@SAXXZ"()
+  // MSC-DAG: declare           dllimport                void @"?staticInclass at Nested@ImportMembers@@SAXXZ"()
+  // MSC-DAG: declare           dllimport                void @"?staticInlineDef at Nested@ImportMembers@@SAXXZ"()
+  // MSC-DAG: declare           dllimport                void @"?staticInlineDecl at Nested@ImportMembers@@SAXXZ"()
   // GNU-DAG: define  dso_local                          void @_ZN13ImportMembers6Nested9staticDefEv()
   // GNU-DAG: declare           dllimport                void @_ZN13ImportMembers6Nested10staticDeclEv()
   // GNU-DAG: define linkonce_odr dso_local               void @_ZN13ImportMembers6Nested13staticInclassEv()
   // GNU-DAG: define linkonce_odr dso_local              void @_ZN13ImportMembers6Nested15staticInlineDefEv()
   // GNU-DAG: define linkonce_odr dso_local              void @_ZN13ImportMembers6Nested16staticInlineDeclEv()
-  // MO1-DAG: define available_externally dllimport void @"\01?staticInclass at Nested@ImportMembers@@SAXXZ"()
-  // MO1-DAG: define available_externally dllimport void @"\01?staticInlineDef at Nested@ImportMembers@@SAXXZ"()
-  // MO1-DAG: define available_externally dllimport void @"\01?staticInlineDecl at Nested@ImportMembers@@SAXXZ"()
+  // MO1-DAG: define available_externally dllimport void @"?staticInclass at Nested@ImportMembers@@SAXXZ"()
+  // MO1-DAG: define available_externally dllimport void @"?staticInlineDef at Nested@ImportMembers@@SAXXZ"()
+  // MO1-DAG: define available_externally dllimport void @"?staticInlineDecl at Nested@ImportMembers@@SAXXZ"()
   // GO1-DAG: define linkonce_odr dso_local              void @_ZN13ImportMembers6Nested13staticInclassEv()
   // GO1-DAG: define linkonce_odr dso_local              void @_ZN13ImportMembers6Nested15staticInlineDefEv()
   // GO1-DAG: define linkonce_odr dso_local              void @_ZN13ImportMembers6Nested16staticInlineDeclEv()
@@ -322,38 +322,38 @@ struct ImportMembers::Nested {
   __declspec(dllimport) static         void staticInlineDef();
   __declspec(dllimport) static  inline void staticInlineDecl();
 
-  // M32-DAG: declare dllimport x86_thiscallcc void @"\01?protectedNormalDecl at Nested@ImportMembers@@IAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare dllimport                void @"\01?protectedNormalDecl at Nested@ImportMembers@@IEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: declare dllimport x86_thiscallcc void @"?protectedNormalDecl at Nested@ImportMembers@@IAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare dllimport                void @"?protectedNormalDecl at Nested@ImportMembers@@IEAAXXZ"(%"struct.ImportMembers::Nested"*)
   // G32-DAG: declare dllimport x86_thiscallcc void @_ZN13ImportMembers6Nested19protectedNormalDeclEv(%"struct.ImportMembers::Nested"*)
   // G64-DAG: declare dllimport                void @_ZN13ImportMembers6Nested19protectedNormalDeclEv(%"struct.ImportMembers::Nested"*)
-  // MSC-DAG: declare dllimport                void @"\01?protectedStaticDecl at Nested@ImportMembers@@KAXXZ"()
+  // MSC-DAG: declare dllimport                void @"?protectedStaticDecl at Nested@ImportMembers@@KAXXZ"()
   // GNU-DAG: declare dllimport                void @_ZN13ImportMembers6Nested19protectedStaticDeclEv()
 protected:
   __declspec(dllimport)                void protectedNormalDecl();
   __declspec(dllimport) static         void protectedStaticDecl();
 
-  // M32-DAG: declare dllimport x86_thiscallcc void @"\01?privateNormalDecl at Nested@ImportMembers@@AAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare dllimport                void @"\01?privateNormalDecl at Nested@ImportMembers@@AEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: declare dllimport x86_thiscallcc void @"?privateNormalDecl at Nested@ImportMembers@@AAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare dllimport                void @"?privateNormalDecl at Nested@ImportMembers@@AEAAXXZ"(%"struct.ImportMembers::Nested"*)
   // G32-DAG: declare dllimport x86_thiscallcc void @_ZN13ImportMembers6Nested17privateNormalDeclEv(%"struct.ImportMembers::Nested"*)
   // G64-DAG: declare dllimport                void @_ZN13ImportMembers6Nested17privateNormalDeclEv(%"struct.ImportMembers::Nested"*)
-  // MSC-DAG: declare dllimport                void @"\01?privateStaticDecl at Nested@ImportMembers@@CAXXZ"()
+  // MSC-DAG: declare dllimport                void @"?privateStaticDecl at Nested@ImportMembers@@CAXXZ"()
   // GNU-DAG: declare dllimport                void @_ZN13ImportMembers6Nested17privateStaticDeclEv()
 private:
   __declspec(dllimport)                void privateNormalDecl();
   __declspec(dllimport) static         void privateStaticDecl();
 
-  // M32-DAG: declare dso_local           x86_thiscallcc void @"\01?ignored at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"*)
-  // M64-DAG: declare dso_local                          void @"\01?ignored at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"*)
+  // M32-DAG: declare dso_local           x86_thiscallcc void @"?ignored at Nested@ImportMembers@@QAEXXZ"(%"struct.ImportMembers::Nested"*)
+  // M64-DAG: declare dso_local                          void @"?ignored at Nested@ImportMembers@@QEAAXXZ"(%"struct.ImportMembers::Nested"*)
   // G32-DAG: declare dso_local           x86_thiscallcc void @_ZN13ImportMembers6Nested7ignoredEv(%"struct.ImportMembers::Nested"*)
   // G64-DAG: declare dso_local                          void @_ZN13ImportMembers6Nested7ignoredEv(%"struct.ImportMembers::Nested"*)
 public:
   void ignored();
 
-  // MSC-DAG: @"\01?StaticField at Nested@ImportMembers@@2HA"               = external dllimport global i32
-  // MSC-DAG: @"\01?StaticConstField at Nested@ImportMembers@@2HB"          = external dllimport constant i32
-  // MSC-DAG: @"\01?StaticConstFieldEqualInit at Nested@ImportMembers@@2HB" = available_externally dllimport constant i32 1, align 4
-  // MSC-DAG: @"\01?StaticConstFieldBraceInit at Nested@ImportMembers@@2HB" = available_externally dllimport constant i32 1, align 4
-  // MSC-DAG: @"\01?ConstexprField at Nested@ImportMembers@@2HB"            = available_externally dllimport constant i32 1, align 4
+  // MSC-DAG: @"?StaticField at Nested@ImportMembers@@2HA"               = external dllimport global i32
+  // MSC-DAG: @"?StaticConstField at Nested@ImportMembers@@2HB"          = external dllimport constant i32
+  // MSC-DAG: @"?StaticConstFieldEqualInit at Nested@ImportMembers@@2HB" = available_externally dllimport constant i32 1, align 4
+  // MSC-DAG: @"?StaticConstFieldBraceInit at Nested@ImportMembers@@2HB" = available_externally dllimport constant i32 1, align 4
+  // MSC-DAG: @"?ConstexprField at Nested@ImportMembers@@2HB"            = available_externally dllimport constant i32 1, align 4
   // GNU-DAG: @_ZN13ImportMembers6Nested11StaticFieldE                   = external dllimport global i32
   // GNU-DAG: @_ZN13ImportMembers6Nested16StaticConstFieldE              = external dllimport constant i32
   // GNU-DAG: @_ZN13ImportMembers6Nested25StaticConstFieldEqualInitE     = external dllimport constant i32
@@ -408,38 +408,38 @@ USEMV(ImportMembers::Nested, ConstexprFi
 
 // Import special member functions.
 struct ImportSpecials {
-  // M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"\01??0ImportSpecials@@QAE at XZ"(%struct.ImportSpecials* returned)
-  // M64-DAG: declare dllimport                %struct.ImportSpecials* @"\01??0ImportSpecials@@QEAA at XZ"(%struct.ImportSpecials* returned)
+  // M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"??0ImportSpecials@@QAE at XZ"(%struct.ImportSpecials* returned)
+  // M64-DAG: declare dllimport                %struct.ImportSpecials* @"??0ImportSpecials@@QEAA at XZ"(%struct.ImportSpecials* returned)
   // G32-DAG: declare dllimport x86_thiscallcc void                    @_ZN14ImportSpecialsC1Ev(%struct.ImportSpecials*)
   // G64-DAG: declare dllimport                void                    @_ZN14ImportSpecialsC1Ev(%struct.ImportSpecials*)
   __declspec(dllimport) ImportSpecials();
 
-  // M32-DAG: declare dllimport x86_thiscallcc void @"\01??1ImportSpecials@@QAE at XZ"(%struct.ImportSpecials*)
-  // M64-DAG: declare dllimport                void @"\01??1ImportSpecials@@QEAA at XZ"(%struct.ImportSpecials*)
+  // M32-DAG: declare dllimport x86_thiscallcc void @"??1ImportSpecials@@QAE at XZ"(%struct.ImportSpecials*)
+  // M64-DAG: declare dllimport                void @"??1ImportSpecials@@QEAA at XZ"(%struct.ImportSpecials*)
   // G32-DAG: declare dllimport x86_thiscallcc void                    @_ZN14ImportSpecialsD1Ev(%struct.ImportSpecials*)
   // G64-DAG: declare dllimport                void                    @_ZN14ImportSpecialsD1Ev(%struct.ImportSpecials*)
   __declspec(dllimport) ~ImportSpecials();
 
-  // M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"\01??0ImportSpecials@@QAE at ABU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                %struct.ImportSpecials* @"\01??0ImportSpecials@@QEAA at AEBU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"??0ImportSpecials@@QAE at ABU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                %struct.ImportSpecials* @"??0ImportSpecials@@QEAA at AEBU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: declare dllimport x86_thiscallcc void                    @_ZN14ImportSpecialsC1ERKS_(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: declare dllimport                void                    @_ZN14ImportSpecialsC1ERKS_(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   __declspec(dllimport) ImportSpecials(const ImportSpecials&);
 
-  // M32-DAG: declare dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @"\01??4ImportSpecials@@QAEAAU0 at ABU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @"\01??4ImportSpecials@@QEAAAEAU0 at AEBU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @"??4ImportSpecials@@QAEAAU0 at ABU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @"??4ImportSpecials@@QEAAAEAU0 at AEBU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: declare dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @_ZN14ImportSpecialsaSERKS_(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: declare dllimport                dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @_ZN14ImportSpecialsaSERKS_(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   __declspec(dllimport) ImportSpecials& operator=(const ImportSpecials&);
 
-  // M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"\01??0ImportSpecials@@QAE@$$QAU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                %struct.ImportSpecials* @"\01??0ImportSpecials@@QEAA@$$QEAU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"??0ImportSpecials@@QAE@$$QAU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                %struct.ImportSpecials* @"??0ImportSpecials@@QEAA@$$QEAU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: declare dllimport x86_thiscallcc void                    @_ZN14ImportSpecialsC1EOS_(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: declare dllimport                void                    @_ZN14ImportSpecialsC1EOS_(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   __declspec(dllimport) ImportSpecials(ImportSpecials&&);
 
-  // M32-DAG: declare dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @"\01??4ImportSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @"\01??4ImportSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @"??4ImportSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @"??4ImportSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: declare dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @_ZN14ImportSpecialsaSEOS_(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: declare dllimport                dereferenceable({{[0-9]+}}) %struct.ImportSpecials* @_ZN14ImportSpecialsaSEOS_(%struct.ImportSpecials*, %struct.ImportSpecials* dereferenceable({{[0-9]+}}))
   __declspec(dllimport) ImportSpecials& operator=(ImportSpecials&&);
@@ -449,51 +449,51 @@ USESPECIALS(ImportSpecials)
 
 // Export inline special member functions.
 struct ImportInlineSpecials {
-  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE at XZ"(%struct.ImportInlineSpecials* returned)
-  // M64-DAG: declare dllimport                  %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QEAA at XZ"(%struct.ImportInlineSpecials* returned)
+  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportInlineSpecials* @"??0ImportInlineSpecials@@QAE at XZ"(%struct.ImportInlineSpecials* returned)
+  // M64-DAG: declare dllimport                  %struct.ImportInlineSpecials* @"??0ImportInlineSpecials@@QEAA at XZ"(%struct.ImportInlineSpecials* returned)
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN20ImportInlineSpecialsC1Ev(%struct.ImportInlineSpecials* %this)
   // G64-DAG: define linkonce_odr dso_local                void @_ZN20ImportInlineSpecialsC1Ev(%struct.ImportInlineSpecials* %this)
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE at XZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"??0ImportInlineSpecials@@QAE at XZ"(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN20ImportInlineSpecialsC1Ev(
   __declspec(dllimport) ImportInlineSpecials() {}
 
-  // M32-DAG: declare dllimport   x86_thiscallcc void @"\01??1ImportInlineSpecials@@QAE at XZ"(%struct.ImportInlineSpecials*)
-  // M64-DAG: declare dllimport                  void @"\01??1ImportInlineSpecials@@QEAA at XZ"(%struct.ImportInlineSpecials*)
+  // M32-DAG: declare dllimport   x86_thiscallcc void @"??1ImportInlineSpecials@@QAE at XZ"(%struct.ImportInlineSpecials*)
+  // M64-DAG: declare dllimport                  void @"??1ImportInlineSpecials@@QEAA at XZ"(%struct.ImportInlineSpecials*)
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN20ImportInlineSpecialsD1Ev(%struct.ImportInlineSpecials* %this)
   // G64-DAG: define linkonce_odr dso_local                void @_ZN20ImportInlineSpecialsD1Ev(%struct.ImportInlineSpecials* %this)
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01??1ImportInlineSpecials@@QAE at XZ"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"??1ImportInlineSpecials@@QAE at XZ"(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN20ImportInlineSpecialsD1Ev(
   __declspec(dllimport) ~ImportInlineSpecials() {}
 
-  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE at ABU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                  %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QEAA at AEBU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportInlineSpecials* @"??0ImportInlineSpecials@@QAE at ABU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                  %struct.ImportInlineSpecials* @"??0ImportInlineSpecials@@QEAA at AEBU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN20ImportInlineSpecialsC1ERKS_(%struct.ImportInlineSpecials* %this, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: define linkonce_odr dso_local                void @_ZN20ImportInlineSpecialsC1ERKS_(%struct.ImportInlineSpecials* %this, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE at ABU0@@Z"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"??0ImportInlineSpecials@@QAE at ABU0@@Z"(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN20ImportInlineSpecialsC1ERKS_(
   __declspec(dllimport) inline ImportInlineSpecials(const ImportInlineSpecials&);
 
-  // M32-DAG: declare dllimport   x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0 at ABU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                  dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QEAAAEAU0 at AEBU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport   x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"??4ImportInlineSpecials@@QAEAAU0 at ABU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                  dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"??4ImportInlineSpecials@@QEAAAEAU0 at AEBU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSERKS_(%struct.ImportInlineSpecials* %this, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: define linkonce_odr dso_local                dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSERKS_(%struct.ImportInlineSpecials* %this, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0 at ABU0@@Z"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"??4ImportInlineSpecials@@QAEAAU0 at ABU0@@Z"(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSERKS_(
   __declspec(dllimport) ImportInlineSpecials& operator=(const ImportInlineSpecials&);
 
-  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE@$$QAU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                  %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QEAA@$$QEAU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportInlineSpecials* @"??0ImportInlineSpecials@@QAE@$$QAU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                  %struct.ImportInlineSpecials* @"??0ImportInlineSpecials@@QEAA@$$QEAU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN20ImportInlineSpecialsC1EOS_(%struct.ImportInlineSpecials* %this, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: define linkonce_odr dso_local                void @_ZN20ImportInlineSpecialsC1EOS_(%struct.ImportInlineSpecials* %this, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE@$$QAU0@@Z"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"??0ImportInlineSpecials@@QAE@$$QAU0@@Z"(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN20ImportInlineSpecialsC1EOS_(
   __declspec(dllimport) ImportInlineSpecials(ImportInlineSpecials&&) {}
 
-  // M32-DAG: declare dllimport   x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                  dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport   x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"??4ImportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                  dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"??4ImportInlineSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSEOS_(%struct.ImportInlineSpecials* %this, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
   // G64-DAG: define linkonce_odr dso_local                dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSEOS_(%struct.ImportInlineSpecials* %this, %struct.ImportInlineSpecials* dereferenceable({{[0-9]+}}))
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @"??4ImportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSEOS_(
   __declspec(dllimport) ImportInlineSpecials& operator=(ImportInlineSpecials&&) { return *this; }
 };
@@ -504,51 +504,51 @@ USESPECIALS(ImportInlineSpecials)
 
 // Import defaulted member functions.
 struct ImportDefaulted {
-  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE at XZ"(%struct.ImportDefaulted* returned)
-  // M64-DAG: declare dllimport                  %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QEAA at XZ"(%struct.ImportDefaulted* returned)
+  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportDefaulted* @"??0ImportDefaulted@@QAE at XZ"(%struct.ImportDefaulted* returned)
+  // M64-DAG: declare dllimport                  %struct.ImportDefaulted* @"??0ImportDefaulted@@QEAA at XZ"(%struct.ImportDefaulted* returned)
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void                     @_ZN15ImportDefaultedC1Ev(%struct.ImportDefaulted* %this)
   // G64-DAG: define linkonce_odr dso_local                void                     @_ZN15ImportDefaultedC1Ev(%struct.ImportDefaulted* %this)
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE at XZ"(%struct.ImportDefaulted* returned %this)
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"??0ImportDefaulted@@QAE at XZ"(%struct.ImportDefaulted* returned %this)
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN15ImportDefaultedC1Ev(%struct.ImportDefaulted* %this)
   __declspec(dllimport) ImportDefaulted() = default;
 
-  // M32-DAG: declare dllimport   x86_thiscallcc void @"\01??1ImportDefaulted@@QAE at XZ"(%struct.ImportDefaulted*)
-  // M64-DAG: declare dllimport                  void @"\01??1ImportDefaulted@@QEAA at XZ"(%struct.ImportDefaulted*)
+  // M32-DAG: declare dllimport   x86_thiscallcc void @"??1ImportDefaulted@@QAE at XZ"(%struct.ImportDefaulted*)
+  // M64-DAG: declare dllimport                  void @"??1ImportDefaulted@@QEAA at XZ"(%struct.ImportDefaulted*)
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN15ImportDefaultedD1Ev(%struct.ImportDefaulted* %this)
   // G64-DAG: define linkonce_odr dso_local                void @_ZN15ImportDefaultedD1Ev(%struct.ImportDefaulted* %this)
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01??1ImportDefaulted@@QAE at XZ"(%struct.ImportDefaulted* %this)
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"??1ImportDefaulted@@QAE at XZ"(%struct.ImportDefaulted* %this)
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN15ImportDefaultedD1Ev(%struct.ImportDefaulted* %this)
   __declspec(dllimport) ~ImportDefaulted() = default;
 
-  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE at ABU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                  %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QEAA at AEBU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportDefaulted* @"??0ImportDefaulted@@QAE at ABU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                  %struct.ImportDefaulted* @"??0ImportDefaulted@@QEAA at AEBU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void                     @_ZN15ImportDefaultedC1ERKS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // G64-DAG: define linkonce_odr dso_local                void                     @_ZN15ImportDefaultedC1ERKS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE at ABU0@@Z"(%struct.ImportDefaulted* returned %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"??0ImportDefaulted@@QAE at ABU0@@Z"(%struct.ImportDefaulted* returned %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN15ImportDefaultedC1ERKS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   __declspec(dllimport) ImportDefaulted(const ImportDefaulted&) = default;
 
-  // M32-DAG: declare dllimport   x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0 at ABU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                  dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QEAAAEAU0 at AEBU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport   x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"??4ImportDefaulted@@QAEAAU0 at ABU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                  dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"??4ImportDefaulted@@QEAAAEAU0 at AEBU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @_ZN15ImportDefaultedaSERKS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // G64-DAG: define linkonce_odr dso_local                dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @_ZN15ImportDefaultedaSERKS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0 at ABU0@@Z"(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"??4ImportDefaulted@@QAEAAU0 at ABU0@@Z"(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @_ZN15ImportDefaultedaSERKS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   __declspec(dllimport) ImportDefaulted& operator=(const ImportDefaulted&) = default;
 
-  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE@$$QAU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                  %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QEAA@$$QEAU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportDefaulted* @"??0ImportDefaulted@@QAE@$$QAU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                  %struct.ImportDefaulted* @"??0ImportDefaulted@@QEAA@$$QEAU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void                     @_ZN15ImportDefaultedC1EOS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // G64-DAG: define linkonce_odr dso_local                void                     @_ZN15ImportDefaultedC1EOS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE@$$QAU0@@Z"(%struct.ImportDefaulted* returned %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"??0ImportDefaulted@@QAE@$$QAU0@@Z"(%struct.ImportDefaulted* returned %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN15ImportDefaultedC1EOS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   __declspec(dllimport) ImportDefaulted(ImportDefaulted&&) = default;
 
-  // M32-DAG: declare dllimport   x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
-  // M64-DAG: declare dllimport                  dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // M32-DAG: declare dllimport   x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"??4ImportDefaulted@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // M64-DAG: declare dllimport                  dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"??4ImportDefaulted@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // G32-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @_ZN15ImportDefaultedaSEOS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // G64-DAG: define linkonce_odr dso_local                dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @_ZN15ImportDefaultedaSEOS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @"??4ImportDefaulted@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   // GO1-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaulted* @_ZN15ImportDefaultedaSEOS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* dereferenceable({{[0-9]+}}))
   __declspec(dllimport) ImportDefaulted& operator=(ImportDefaulted&&) = default;
 
@@ -571,40 +571,40 @@ struct ImportDefaultedDefs {
 
 #ifdef MSABI
 // For MinGW, the function will not be dllimport, and we cannot add the attribute now.
-// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QAE at XZ"(%struct.ImportDefaultedDefs* returned)
-// M64-DAG: declare dllimport                %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QEAA at XZ"(%struct.ImportDefaultedDefs* returned)
+// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaultedDefs* @"??0ImportDefaultedDefs@@QAE at XZ"(%struct.ImportDefaultedDefs* returned)
+// M64-DAG: declare dllimport                %struct.ImportDefaultedDefs* @"??0ImportDefaultedDefs@@QEAA at XZ"(%struct.ImportDefaultedDefs* returned)
 __declspec(dllimport) ImportDefaultedDefs::ImportDefaultedDefs() = default;
 #endif
 
 #ifdef MSABI
 // For MinGW, the function will not be dllimport, and we cannot add the attribute now.
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01??1ImportDefaultedDefs@@QAE at XZ"(%struct.ImportDefaultedDefs*)
-// M64-DAG: declare dllimport                void @"\01??1ImportDefaultedDefs@@QEAA at XZ"(%struct.ImportDefaultedDefs*)
+// M32-DAG: declare dllimport x86_thiscallcc void @"??1ImportDefaultedDefs@@QAE at XZ"(%struct.ImportDefaultedDefs*)
+// M64-DAG: declare dllimport                void @"??1ImportDefaultedDefs@@QEAA at XZ"(%struct.ImportDefaultedDefs*)
 __declspec(dllimport) ImportDefaultedDefs::~ImportDefaultedDefs() = default;
 #endif
 
-// M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QAE at ABU0@@Z"(%struct.ImportDefaultedDefs* returned, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
-// M64-DAG: declare dllimport                  %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QEAA at AEBU0@@Z"(%struct.ImportDefaultedDefs* returned, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M32-DAG: declare dllimport   x86_thiscallcc %struct.ImportDefaultedDefs* @"??0ImportDefaultedDefs@@QAE at ABU0@@Z"(%struct.ImportDefaultedDefs* returned, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M64-DAG: declare dllimport                  %struct.ImportDefaultedDefs* @"??0ImportDefaultedDefs@@QEAA at AEBU0@@Z"(%struct.ImportDefaultedDefs* returned, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN19ImportDefaultedDefsC1ERKS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define linkonce_odr dso_local                 void @_ZN19ImportDefaultedDefsC1ERKS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 inline ImportDefaultedDefs::ImportDefaultedDefs(const ImportDefaultedDefs&) = default;
 
-// M32-DAG: declare dllimport   x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QAEAAU0 at ABU0@@Z"(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
-// M64-DAG: declare dllimport                  dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QEAAAEAU0 at AEBU0@@Z"(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M32-DAG: declare dllimport   x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @"??4ImportDefaultedDefs@@QAEAAU0 at ABU0@@Z"(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M64-DAG: declare dllimport                  dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @"??4ImportDefaultedDefs@@QEAAAEAU0 at AEBU0@@Z"(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSERKS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define linkonce_odr dso_local                dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSERKS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 inline ImportDefaultedDefs& ImportDefaultedDefs::operator=(const ImportDefaultedDefs&) = default;
 
-// M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QAE@$$QAU0@@Z"(%struct.ImportDefaultedDefs* returned %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
-// M64-DAG: define dso_local dllexport                %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QEAA@$$QEAU0@@Z"(%struct.ImportDefaultedDefs* returned %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M32-DAG: define dso_local dllexport x86_thiscallcc %struct.ImportDefaultedDefs* @"??0ImportDefaultedDefs@@QAE@$$QAU0@@Z"(%struct.ImportDefaultedDefs* returned %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M64-DAG: define dso_local dllexport                %struct.ImportDefaultedDefs* @"??0ImportDefaultedDefs@@QEAA@$$QEAU0@@Z"(%struct.ImportDefaultedDefs* returned %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define dso_local x86_thiscallcc void @_ZN19ImportDefaultedDefsC1EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define dso_local                void @_ZN19ImportDefaultedDefsC1EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define dso_local x86_thiscallcc void @_ZN19ImportDefaultedDefsC2EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define dso_local                void @_ZN19ImportDefaultedDefsC2EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 ImportDefaultedDefs::ImportDefaultedDefs(ImportDefaultedDefs&&) = default; // dllimport ignored
 
-// M32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
-// M64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M32-DAG: define dso_local dllexport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @"??4ImportDefaultedDefs@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
+// M64-DAG: define dso_local dllexport                dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @"??4ImportDefaultedDefs@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G32-DAG: define dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSEOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 // G64-DAG: define dso_local                dereferenceable({{[0-9]+}}) %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSEOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* dereferenceable({{[0-9]+}}))
 ImportDefaultedDefs& ImportDefaultedDefs::operator=(ImportDefaultedDefs&&) = default; // dllimport ignored
@@ -620,26 +620,26 @@ struct ImportAlloc {
   __declspec(dllimport) void operator delete[](void*);
 };
 
-// M32-DAG: declare dllimport i8* @"\01??2ImportAlloc@@SAPAXI at Z"(i32)
-// M64-DAG: declare dllimport i8* @"\01??2ImportAlloc@@SAPEAX_K at Z"(i64)
+// M32-DAG: declare dllimport i8* @"??2ImportAlloc@@SAPAXI at Z"(i32)
+// M64-DAG: declare dllimport i8* @"??2ImportAlloc@@SAPEAX_K at Z"(i64)
 // G32-DAG: declare dllimport i8* @_ZN11ImportAllocnwEj(i32)
 // G64-DAG: declare dllimport i8* @_ZN11ImportAllocnwEy(i64)
 void UNIQ(use)() { new ImportAlloc(); }
 
-// M32-DAG: declare dllimport i8* @"\01??_UImportAlloc@@SAPAXI at Z"(i32)
-// M64-DAG: declare dllimport i8* @"\01??_UImportAlloc@@SAPEAX_K at Z"(i64)
+// M32-DAG: declare dllimport i8* @"??_UImportAlloc@@SAPAXI at Z"(i32)
+// M64-DAG: declare dllimport i8* @"??_UImportAlloc@@SAPEAX_K at Z"(i64)
 // G32-DAG: declare dllimport i8* @_ZN11ImportAllocnaEj(i32)
 // G64-DAG: declare dllimport i8* @_ZN11ImportAllocnaEy(i64)
 void UNIQ(use)() { new ImportAlloc[1]; }
 
-// M32-DAG: declare dllimport void @"\01??3ImportAlloc@@SAXPAX at Z"(i8*)
-// M64-DAG: declare dllimport void @"\01??3ImportAlloc@@SAXPEAX at Z"(i8*)
+// M32-DAG: declare dllimport void @"??3ImportAlloc@@SAXPAX at Z"(i8*)
+// M64-DAG: declare dllimport void @"??3ImportAlloc@@SAXPEAX at Z"(i8*)
 // G32-DAG: declare dllimport void @_ZN11ImportAllocdlEPv(i8*)
 // G64-DAG: declare dllimport void @_ZN11ImportAllocdlEPv(i8*)
 void UNIQ(use)(ImportAlloc* ptr) { delete ptr; }
 
-// M32-DAG: declare dllimport void @"\01??_VImportAlloc@@SAXPAX at Z"(i8*)
-// M64-DAG: declare dllimport void @"\01??_VImportAlloc@@SAXPEAX at Z"(i8*)
+// M32-DAG: declare dllimport void @"??_VImportAlloc@@SAXPAX at Z"(i8*)
+// M64-DAG: declare dllimport void @"??_VImportAlloc@@SAXPEAX at Z"(i8*)
 // G32-DAG: declare dllimport void @_ZN11ImportAllocdaEPv(i8*)
 // G64-DAG: declare dllimport void @_ZN11ImportAllocdaEPv(i8*)
 void UNIQ(use)(ImportAlloc* ptr) { delete[] ptr; }
@@ -657,27 +657,27 @@ struct MemFunTmpl {
 };
 
 // Import implicit instantiation of an imported member function template.
-// M32-DAG: declare dllimport   x86_thiscallcc void @"\01??$importedNormal at UImplicitInst_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG: declare dllimport                  void @"\01??$importedNormal at UImplicitInst_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG: declare dllimport   x86_thiscallcc void @"??$importedNormal at UImplicitInst_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG: declare dllimport                  void @"??$importedNormal at UImplicitInst_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN10MemFunTmpl14importedNormalI21ImplicitInst_ImportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define linkonce_odr dso_local                void @_ZN10MemFunTmpl14importedNormalI21ImplicitInst_ImportedEEvv(%struct.MemFunTmpl* %this)
 USEMF(MemFunTmpl, importedNormal<ImplicitInst_Imported>)
 
-// MSC-DAG: declare dllimport                void @"\01??$importedStatic at UImplicitInst_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: declare dllimport                void @"??$importedStatic at UImplicitInst_Imported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local              void @_ZN10MemFunTmpl14importedStaticI21ImplicitInst_ImportedEEvv()
 USE(MemFunTmpl::importedStatic<ImplicitInst_Imported>)
 
 
 // Import explicit instantiation declaration of an imported member function
 // template.
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01??$importedNormal at UExplicitDecl_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG: declare dllimport                void @"\01??$importedNormal at UExplicitDecl_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG: declare dllimport x86_thiscallcc void @"??$importedNormal at UExplicitDecl_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG: declare dllimport                void @"??$importedNormal at UExplicitDecl_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 // G32-DAG: declare dso_local x86_thiscallcc           void @_ZN10MemFunTmpl14importedNormalI21ExplicitDecl_ImportedEEvv(%struct.MemFunTmpl*)
 // G64-DAG: declare dso_local                          void @_ZN10MemFunTmpl14importedNormalI21ExplicitDecl_ImportedEEvv(%struct.MemFunTmpl*)
 extern template void MemFunTmpl::importedNormal<ExplicitDecl_Imported>();
 USEMF(MemFunTmpl, importedNormal<ExplicitDecl_Imported>)
 
-// MSC-DAG: declare dllimport                void @"\01??$importedStatic at UExplicitDecl_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: declare dllimport                void @"??$importedStatic at UExplicitDecl_Imported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: declare dso_local                void @_ZN10MemFunTmpl14importedStaticI21ExplicitDecl_ImportedEEvv()
 extern template void MemFunTmpl::importedStatic<ExplicitDecl_Imported>();
 USE(MemFunTmpl::importedStatic<ExplicitDecl_Imported>)
@@ -685,54 +685,54 @@ USE(MemFunTmpl::importedStatic<ExplicitD
 
 // Import explicit instantiation definition of an imported member function
 // template.
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01??$importedNormal at UExplicitInst_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG: declare dllimport                void @"\01??$importedNormal at UExplicitInst_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG: declare dllimport x86_thiscallcc void @"??$importedNormal at UExplicitInst_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG: declare dllimport                void @"??$importedNormal at UExplicitInst_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 // G32-DAG: define weak_odr dso_local x86_thiscallcc   void @_ZN10MemFunTmpl14importedNormalI21ExplicitInst_ImportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define weak_odr dso_local                  void @_ZN10MemFunTmpl14importedNormalI21ExplicitInst_ImportedEEvv(%struct.MemFunTmpl* %this)
 template void MemFunTmpl::importedNormal<ExplicitInst_Imported>();
 USEMF(MemFunTmpl, importedNormal<ExplicitInst_Imported>)
 
-// MSC-DAG: declare dllimport                void @"\01??$importedStatic at UExplicitInst_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: declare dllimport                void @"??$importedStatic at UExplicitInst_Imported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define weak_odr dso_local        void @_ZN10MemFunTmpl14importedStaticI21ExplicitInst_ImportedEEvv()
 template void MemFunTmpl::importedStatic<ExplicitInst_Imported>();
 USE(MemFunTmpl::importedStatic<ExplicitInst_Imported>)
 
 
 // Import specialization of an imported member function template.
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01??$importedNormal at UExplicitSpec_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG: declare dllimport                void @"\01??$importedNormal at UExplicitSpec_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG: declare dllimport x86_thiscallcc void @"??$importedNormal at UExplicitSpec_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG: declare dllimport                void @"??$importedNormal at UExplicitSpec_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN10MemFunTmpl14importedNormalI21ExplicitSpec_ImportedEEvv(%struct.MemFunTmpl*)
 // G64-DAG: declare dllimport                void @_ZN10MemFunTmpl14importedNormalI21ExplicitSpec_ImportedEEvv(%struct.MemFunTmpl*)
 template<> __declspec(dllimport) void MemFunTmpl::importedNormal<ExplicitSpec_Imported>();
 USEMF(MemFunTmpl, importedNormal<ExplicitSpec_Imported>)
 
-// M32-DAG-FIXME: declare dllimport x86_thiscallcc void @"\01??$importedNormal at UExplicitSpec_Def_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG-FIXME: declare dllimport                void @"\01??$importedNormal at UExplicitSpec_Def_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG-FIXME: declare dllimport x86_thiscallcc void @"??$importedNormal at UExplicitSpec_Def_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG-FIXME: declare dllimport                void @"??$importedNormal at UExplicitSpec_Def_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 #ifdef MSABI
 //template<> __declspec(dllimport) void MemFunTmpl::importedNormal<ExplicitSpec_Def_Imported>() {}
 //USEMF(MemFunTmpl, importedNormal<ExplicitSpec_Def_Imported>)
 #endif
 
-// M32-DAG: declare dllimport   x86_thiscallcc void @"\01??$importedNormal at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG: declare dllimport                  void @"\01??$importedNormal at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG: declare dllimport   x86_thiscallcc void @"??$importedNormal at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG: declare dllimport                  void @"??$importedNormal at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN10MemFunTmpl14importedNormalI31ExplicitSpec_InlineDef_ImportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define linkonce_odr dso_local                void @_ZN10MemFunTmpl14importedNormalI31ExplicitSpec_InlineDef_ImportedEEvv(%struct.MemFunTmpl* %this)
 template<> __declspec(dllimport) inline void MemFunTmpl::importedNormal<ExplicitSpec_InlineDef_Imported>() {}
 USEMF(MemFunTmpl, importedNormal<ExplicitSpec_InlineDef_Imported>)
 
 
-// MSC-DAG: declare dllimport                void @"\01??$importedStatic at UExplicitSpec_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: declare dllimport                void @"??$importedStatic at UExplicitSpec_Imported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: declare dllimport                void @_ZN10MemFunTmpl14importedStaticI21ExplicitSpec_ImportedEEvv()
 template<> __declspec(dllimport) void MemFunTmpl::importedStatic<ExplicitSpec_Imported>();
 USE(MemFunTmpl::importedStatic<ExplicitSpec_Imported>)
 
-// MSC-DAG-FIXME: declare dllimport                void @"\01??$importedStatic at UExplicitSpec_Def_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG-FIXME: declare dllimport                void @"??$importedStatic at UExplicitSpec_Def_Imported@@@MemFunTmpl@@SAXXZ"()
 #ifdef MSABI
 //template<> __declspec(dllimport) void MemFunTmpl::importedStatic<ExplicitSpec_Def_Imported>() {}
 //USE(MemFunTmpl::importedStatic<ExplicitSpec_Def_Imported>)
 #endif
 
-// MSC-DAG: declare dllimport                void @"\01??$importedStatic at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: declare dllimport                void @"??$importedStatic at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local    void @_ZN10MemFunTmpl14importedStaticI31ExplicitSpec_InlineDef_ImportedEEvv()
 template<> __declspec(dllimport) inline void MemFunTmpl::importedStatic<ExplicitSpec_InlineDef_Imported>() {}
 USE(MemFunTmpl::importedStatic<ExplicitSpec_InlineDef_Imported>)
@@ -740,14 +740,14 @@ USE(MemFunTmpl::importedStatic<ExplicitS
 
 // Not importing specialization of an imported member function template without
 // explicit dllimport.
-// M32-DAG: define dso_local x86_thiscallcc void @"\01??$importedNormal at UExplicitSpec_NotImported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
-// M64-DAG: define dso_local                void @"\01??$importedNormal at UExplicitSpec_NotImported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
+// M32-DAG: define dso_local x86_thiscallcc void @"??$importedNormal at UExplicitSpec_NotImported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl* %this)
+// M64-DAG: define dso_local                void @"??$importedNormal at UExplicitSpec_NotImported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl* %this)
 // G32-DAG: define dso_local x86_thiscallcc void @_ZN10MemFunTmpl14importedNormalI24ExplicitSpec_NotImportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define dso_local                void @_ZN10MemFunTmpl14importedNormalI24ExplicitSpec_NotImportedEEvv(%struct.MemFunTmpl* %this)
 template<> void MemFunTmpl::importedNormal<ExplicitSpec_NotImported>() {}
 USEMF(MemFunTmpl, importedNormal<ExplicitSpec_NotImported>)
 
-// MSC-DAG: define dso_local                void @"\01??$importedStatic at UExplicitSpec_NotImported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: define dso_local                void @"??$importedStatic at UExplicitSpec_NotImported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define dso_local                void @_ZN10MemFunTmpl14importedStaticI24ExplicitSpec_NotImportedEEvv()
 template<> void MemFunTmpl::importedStatic<ExplicitSpec_NotImported>() {}
 USE(MemFunTmpl::importedStatic<ExplicitSpec_NotImported>)
@@ -755,14 +755,14 @@ USE(MemFunTmpl::importedStatic<ExplicitS
 
 // Import explicit instantiation declaration of a non-imported member function
 // template.
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01??$normalDef at UExplicitDecl_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG: declare dllimport                void @"\01??$normalDef at UExplicitDecl_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG: declare dllimport x86_thiscallcc void @"??$normalDef at UExplicitDecl_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG: declare dllimport                void @"??$normalDef at UExplicitDecl_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 // G32-DAG: declare dso_local x86_thiscallcc           void @_ZN10MemFunTmpl9normalDefI21ExplicitDecl_ImportedEEvv(%struct.MemFunTmpl*)
 // G64-DAG: declare dso_local                          void @_ZN10MemFunTmpl9normalDefI21ExplicitDecl_ImportedEEvv(%struct.MemFunTmpl*)
 extern template __declspec(dllimport) void MemFunTmpl::normalDef<ExplicitDecl_Imported>();
 USEMF(MemFunTmpl, normalDef<ExplicitDecl_Imported>)
 
-// MSC-DAG: declare dllimport                void @"\01??$staticDef at UExplicitDecl_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: declare dllimport                void @"??$staticDef at UExplicitDecl_Imported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: declare dso_local                void @_ZN10MemFunTmpl9staticDefI21ExplicitDecl_ImportedEEvv()
 extern template __declspec(dllimport) void MemFunTmpl::staticDef<ExplicitDecl_Imported>();
 USE(MemFunTmpl::staticDef<ExplicitDecl_Imported>)
@@ -770,54 +770,54 @@ USE(MemFunTmpl::staticDef<ExplicitDecl_I
 
 // Import explicit instantiation definition of a non-imported member function
 // template.
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01??$normalDef at UExplicitInst_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG: declare dllimport                void @"\01??$normalDef at UExplicitInst_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG: declare dllimport x86_thiscallcc void @"??$normalDef at UExplicitInst_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG: declare dllimport                void @"??$normalDef at UExplicitInst_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 // G32-DAG: define weak_odr dso_local x86_thiscallcc   void @_ZN10MemFunTmpl9normalDefI21ExplicitInst_ImportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define weak_odr dso_local                  void @_ZN10MemFunTmpl9normalDefI21ExplicitInst_ImportedEEvv(%struct.MemFunTmpl* %this)
 template __declspec(dllimport) void MemFunTmpl::normalDef<ExplicitInst_Imported>();
 USEMF(MemFunTmpl, normalDef<ExplicitInst_Imported>)
 
-// MSC-DAG: declare dllimport                void @"\01??$staticDef at UExplicitInst_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: declare dllimport                void @"??$staticDef at UExplicitInst_Imported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define weak_odr dso_local                  void @_ZN10MemFunTmpl9staticDefI21ExplicitInst_ImportedEEvv()
 template __declspec(dllimport) void MemFunTmpl::staticDef<ExplicitInst_Imported>();
 USE(MemFunTmpl::staticDef<ExplicitInst_Imported>)
 
 
 // Import specialization of a non-imported member function template.
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01??$normalDef at UExplicitSpec_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG: declare dllimport                void @"\01??$normalDef at UExplicitSpec_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG: declare dllimport x86_thiscallcc void @"??$normalDef at UExplicitSpec_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG: declare dllimport                void @"??$normalDef at UExplicitSpec_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN10MemFunTmpl9normalDefI21ExplicitSpec_ImportedEEvv(%struct.MemFunTmpl*)
 // G64-DAG: declare dllimport                void @_ZN10MemFunTmpl9normalDefI21ExplicitSpec_ImportedEEvv(%struct.MemFunTmpl*)
 template<> __declspec(dllimport) void MemFunTmpl::normalDef<ExplicitSpec_Imported>();
 USEMF(MemFunTmpl, normalDef<ExplicitSpec_Imported>)
 
-// M32-DAG-FIXME: declare dllimport x86_thiscallcc void @"\01??$normalDef at UExplicitSpec_Def_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG-FIXME: declare dllimport                void @"\01??$normalDef at UExplicitSpec_Def_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG-FIXME: declare dllimport x86_thiscallcc void @"??$normalDef at UExplicitSpec_Def_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG-FIXME: declare dllimport                void @"??$normalDef at UExplicitSpec_Def_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 #ifdef MSABI
 //template<> __declspec(dllimport) void MemFunTmpl::normalDef<ExplicitSpec_Def_Imported>() {}
 //USEMF(MemFunTmpl, normalDef<ExplicitSpec_Def_Imported>)
 #endif
 
-// M32-DAG: declare dllimport   x86_thiscallcc void @"\01??$normalDef at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
-// M64-DAG: declare dllimport                  void @"\01??$normalDef at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
+// M32-DAG: declare dllimport   x86_thiscallcc void @"??$normalDef at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@QAEXXZ"(%struct.MemFunTmpl*)
+// M64-DAG: declare dllimport                  void @"??$normalDef at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@QEAAXXZ"(%struct.MemFunTmpl*)
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN10MemFunTmpl9normalDefI31ExplicitSpec_InlineDef_ImportedEEvv(%struct.MemFunTmpl* %this)
 // G64-DAG: define linkonce_odr dso_local                void @_ZN10MemFunTmpl9normalDefI31ExplicitSpec_InlineDef_ImportedEEvv(%struct.MemFunTmpl* %this)
 template<> __declspec(dllimport) inline void MemFunTmpl::normalDef<ExplicitSpec_InlineDef_Imported>() {}
 USEMF(MemFunTmpl, normalDef<ExplicitSpec_InlineDef_Imported>)
 
 
-// MSC-DAG: declare dllimport void @"\01??$staticDef at UExplicitSpec_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: declare dllimport void @"??$staticDef at UExplicitSpec_Imported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: declare dllimport void @_ZN10MemFunTmpl9staticDefI21ExplicitSpec_ImportedEEvv()
 template<> __declspec(dllimport) void MemFunTmpl::staticDef<ExplicitSpec_Imported>();
 USE(MemFunTmpl::staticDef<ExplicitSpec_Imported>)
 
-// MSC-DAG-FIXME: declare dllimport void @"\01??$staticDef at UExplicitSpec_Def_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG-FIXME: declare dllimport void @"??$staticDef at UExplicitSpec_Def_Imported@@@MemFunTmpl@@SAXXZ"()
 #ifdef MSABI
 //template<> __declspec(dllimport) void MemFunTmpl::staticDef<ExplicitSpec_Def_Imported>() {}
 //USE(MemFunTmpl::staticDef<ExplicitSpec_Def_Imported>)
 #endif
 
-// MSC-DAG: declare dllimport void @"\01??$staticDef at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@SAXXZ"()
+// MSC-DAG: declare dllimport void @"??$staticDef at UExplicitSpec_InlineDef_Imported@@@MemFunTmpl@@SAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_ZN10MemFunTmpl9staticDefI31ExplicitSpec_InlineDef_ImportedEEvv()
 template<> __declspec(dllimport) inline void MemFunTmpl::staticDef<ExplicitSpec_InlineDef_Imported>() {}
 USE(MemFunTmpl::staticDef<ExplicitSpec_InlineDef_Imported>)
@@ -830,13 +830,13 @@ struct MemVarTmpl {
 };
 
 // Import implicit instantiation of an imported member variable template.
-// MSC-DAG: @"\01??$ImportedStaticVar at UImplicitInst_Imported@@@MemVarTmpl@@2HB" = available_externally dllimport constant i32 1, align 4
+// MSC-DAG: @"??$ImportedStaticVar at UImplicitInst_Imported@@@MemVarTmpl@@2HB" = available_externally dllimport constant i32 1, align 4
 // GNU-DAG: @_ZN10MemVarTmpl17ImportedStaticVarI21ImplicitInst_ImportedEE       = external dllimport constant i32
 USEMV(MemVarTmpl, ImportedStaticVar<ImplicitInst_Imported>)
 
 // Import explicit instantiation declaration of an imported member variable
 // template.
-// MSC-DAG: @"\01??$ImportedStaticVar at UExplicitDecl_Imported@@@MemVarTmpl@@2HB" = available_externally dllimport constant i32 1
+// MSC-DAG: @"??$ImportedStaticVar at UExplicitDecl_Imported@@@MemVarTmpl@@2HB" = available_externally dllimport constant i32 1
 // GNU-DAG: @_ZN10MemVarTmpl17ImportedStaticVarI21ExplicitDecl_ImportedEE       = external dllimport constant i32
 extern template const int MemVarTmpl::ImportedStaticVar<ExplicitDecl_Imported>;
 USEMV(MemVarTmpl, ImportedStaticVar<ExplicitDecl_Imported>)
@@ -846,14 +846,14 @@ USEMV(MemVarTmpl, ImportedStaticVar<Expl
 // in-class initializer does not count.
 
 // Import specialization of an imported member variable template.
-// MSC-DAG: @"\01??$ImportedStaticVar at UExplicitSpec_Imported@@@MemVarTmpl@@2HB" = external dllimport constant i32
+// MSC-DAG: @"??$ImportedStaticVar at UExplicitSpec_Imported@@@MemVarTmpl@@2HB" = external dllimport constant i32
 // GNU-DAG: @_ZN10MemVarTmpl17ImportedStaticVarI21ExplicitSpec_ImportedEE       = external dllimport constant i32
 template<> __declspec(dllimport) const int MemVarTmpl::ImportedStaticVar<ExplicitSpec_Imported>;
 USEMV(MemVarTmpl, ImportedStaticVar<ExplicitSpec_Imported>)
 
 // Not importing specialization of a member variable template without explicit
 // dllimport.
-// MSC-DAG: @"\01??$ImportedStaticVar at UExplicitSpec_NotImported@@@MemVarTmpl@@2HB" = external dso_local constant i32
+// MSC-DAG: @"??$ImportedStaticVar at UExplicitSpec_NotImported@@@MemVarTmpl@@2HB" = external dso_local constant i32
 // GNU-DAG: @_ZN10MemVarTmpl17ImportedStaticVarI24ExplicitSpec_NotImportedEE       = external dso_local constant i32
 template<> const int MemVarTmpl::ImportedStaticVar<ExplicitSpec_NotImported>;
 USEMV(MemVarTmpl, ImportedStaticVar<ExplicitSpec_NotImported>)
@@ -861,7 +861,7 @@ USEMV(MemVarTmpl, ImportedStaticVar<Expl
 
 // Import explicit instantiation declaration of a non-imported member variable
 // template.
-// MSC-DAG: @"\01??$StaticVar at UExplicitDecl_Imported@@@MemVarTmpl@@2HB" = available_externally dllimport constant i32 1
+// MSC-DAG: @"??$StaticVar at UExplicitDecl_Imported@@@MemVarTmpl@@2HB" = available_externally dllimport constant i32 1
 // GNU-DAG: @_ZN10MemVarTmpl9StaticVarI21ExplicitDecl_ImportedEE        = external dllimport constant i32
 extern template __declspec(dllimport) const int MemVarTmpl::StaticVar<ExplicitDecl_Imported>;
 USEMV(MemVarTmpl, StaticVar<ExplicitDecl_Imported>)
@@ -871,7 +871,7 @@ USEMV(MemVarTmpl, StaticVar<ExplicitDecl
 // in-class initializer does not count.
 
 // Import specialization of a non-imported member variable template.
-// MSC-DAG: @"\01??$StaticVar at UExplicitSpec_Imported@@@MemVarTmpl@@2HB" = external dllimport constant i32
+// MSC-DAG: @"??$StaticVar at UExplicitSpec_Imported@@@MemVarTmpl@@2HB" = external dllimport constant i32
 // GNU-DAG: @_ZN10MemVarTmpl9StaticVarI21ExplicitSpec_ImportedEE        = external dllimport constant i32
 template<> __declspec(dllimport) const int MemVarTmpl::StaticVar<ExplicitSpec_Imported>;
 USEMV(MemVarTmpl, StaticVar<ExplicitSpec_Imported>)

Modified: cfe/trunk/test/CodeGenCXX/dllimport-memptr-global.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllimport-memptr-global.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllimport-memptr-global.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllimport-memptr-global.cpp Fri Mar 16 13:36:49 2018
@@ -40,19 +40,19 @@ auto mp_general_v = &General::virt;
 
 // All of the non-virtual globals need dynamic initializers.
 
-// CHECK: @"\01?mp_single_nv@@3P8Single@@AEXXZQ1@" = dso_local global i8* null, align 4
-// CHECK: @"\01?mp_multi_nv@@3P8Multi@@AEXXZQ1@" = dso_local global { i8*, i32 } zeroinitializer, align 4
-// CHECK: @"\01?mp_virtual_nv@@3P8Virtual@@AEXXZQ1@" = dso_local global { i8*, i32, i32 } zeroinitializer, align 4
-// CHECK: @"\01?mp_general_nv@@3P8General@@AEXXZQ1@" = dso_local global { i8*, i32, i32, i32 } zeroinitializer, align 4
+// CHECK: @"?mp_single_nv@@3P8Single@@AEXXZQ1@" = dso_local global i8* null, align 4
+// CHECK: @"?mp_multi_nv@@3P8Multi@@AEXXZQ1@" = dso_local global { i8*, i32 } zeroinitializer, align 4
+// CHECK: @"?mp_virtual_nv@@3P8Virtual@@AEXXZQ1@" = dso_local global { i8*, i32, i32 } zeroinitializer, align 4
+// CHECK: @"?mp_general_nv@@3P8General@@AEXXZQ1@" = dso_local global { i8*, i32, i32, i32 } zeroinitializer, align 4
 
-// CHECK: @"\01?mp_single_v@@3P8Single@@AEXXZQ1@" = dso_local global i8* bitcast (void (%struct.Single*, ...)* @"\01??_9Single@@$BA at AE" to i8*), align 4
-// CHECK: @"\01?mp_multi_v@@3P8Multi@@AEXXZQ1@" = dso_local global { i8*, i32 } { i8* bitcast (void (%struct.Multi*, ...)* @"\01??_9Multi@@$BA at AE" to i8*), i32 0 }, align 4
-// CHECK: @"\01?mp_virtual_v@@3P8Virtual@@AEXXZQ1@" = dso_local global { i8*, i32, i32 } { i8* bitcast (void (%struct.Virtual*, ...)* @"\01??_9Virtual@@$BA at AE" to i8*), i32 0, i32 0 }, align 4
-// CHECK: @"\01?mp_general_v@@3P8General@@AEXXZQ1@" = dso_local global { i8*, i32, i32, i32 } { i8* bitcast (void (%struct.General*, ...)* @"\01??_9General@@$BA at AE" to i8*), i32 0, i32 0, i32 0 }, align 4
+// CHECK: @"?mp_single_v@@3P8Single@@AEXXZQ1@" = dso_local global i8* bitcast (void (%struct.Single*, ...)* @"??_9Single@@$BA at AE" to i8*), align 4
+// CHECK: @"?mp_multi_v@@3P8Multi@@AEXXZQ1@" = dso_local global { i8*, i32 } { i8* bitcast (void (%struct.Multi*, ...)* @"??_9Multi@@$BA at AE" to i8*), i32 0 }, align 4
+// CHECK: @"?mp_virtual_v@@3P8Virtual@@AEXXZQ1@" = dso_local global { i8*, i32, i32 } { i8* bitcast (void (%struct.Virtual*, ...)* @"??_9Virtual@@$BA at AE" to i8*), i32 0, i32 0 }, align 4
+// CHECK: @"?mp_general_v@@3P8General@@AEXXZQ1@" = dso_local global { i8*, i32, i32, i32 } { i8* bitcast (void (%struct.General*, ...)* @"??_9General@@$BA at AE" to i8*), i32 0, i32 0, i32 0 }, align 4
 
 // CHECK: define internal void @_GLOBAL__sub_I{{.*}}() {{.*}} {
-// CHECK:   call void @"\01??__Emp_single_nv@@YAXXZ"()
-// CHECK:   call void @"\01??__Emp_multi_nv@@YAXXZ"()
-// CHECK:   call void @"\01??__Emp_virtual_nv@@YAXXZ"()
-// CHECK:   call void @"\01??__Emp_general_nv@@YAXXZ"()
+// CHECK:   call void @"??__Emp_single_nv@@YAXXZ"()
+// CHECK:   call void @"??__Emp_multi_nv@@YAXXZ"()
+// CHECK:   call void @"??__Emp_virtual_nv@@YAXXZ"()
+// CHECK:   call void @"??__Emp_general_nv@@YAXXZ"()
 // CHECK: }

Modified: cfe/trunk/test/CodeGenCXX/dllimport-rtti.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllimport-rtti.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllimport-rtti.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllimport-rtti.cpp Fri Mar 16 13:36:49 2018
@@ -5,11 +5,11 @@ struct __declspec(dllimport) S {
   virtual void f() {}
 } s;
 // MSVC: [[VF_S:.*]] = private unnamed_addr constant { [2 x i8*] }
-// MSVC-DAG: @"\01??_SS@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VF_S]], i32 0, i32 0, i32 1)
-// MSVC-DAG: @"\01??_R0?AUS@@@8" = linkonce_odr
-// MSVC-DAG: @"\01??_R1A@?0A at EA@S@@8" = linkonce_odr
-// MSVC-DAG: @"\01??_R2S@@8" = linkonce_odr
-// MSVC-DAG: @"\01??_R3S@@8" = linkonce_odr
+// MSVC-DAG: @"??_SS@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VF_S]], i32 0, i32 0, i32 1)
+// MSVC-DAG: @"??_R0?AUS@@@8" = linkonce_odr
+// MSVC-DAG: @"??_R1A@?0A at EA@S@@8" = linkonce_odr
+// MSVC-DAG: @"??_R2S@@8" = linkonce_odr
+// MSVC-DAG: @"??_R3S@@8" = linkonce_odr
 
 // GNU-DAG: @_ZTV1S = available_externally dllimport
 // GNU-DAG: @_ZTI1S = linkonce_odr dso_local

Modified: cfe/trunk/test/CodeGenCXX/dllimport.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dllimport.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/dllimport.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dllimport.cpp Fri Mar 16 13:36:49 2018
@@ -38,38 +38,38 @@ struct ExplicitSpec_NotImported {};
 //===----------------------------------------------------------------------===//
 
 // Import declaration.
-// MSC-DAG: @"\01?ExternGlobalDecl@@3HA" = external dllimport global i32
+// MSC-DAG: @"?ExternGlobalDecl@@3HA" = external dllimport global i32
 // GNU-DAG: @ExternGlobalDecl            = external dllimport global i32
 __declspec(dllimport) extern int ExternGlobalDecl;
 USEVAR(ExternGlobalDecl)
 
 // dllimport implies a declaration.
-// MSC-DAG: @"\01?GlobalDecl@@3HA" = external dllimport global i32
+// MSC-DAG: @"?GlobalDecl@@3HA" = external dllimport global i32
 // GNU-DAG: @GlobalDecl            = external dllimport global i32
 __declspec(dllimport) int GlobalDecl;
 USEVAR(GlobalDecl)
 
 // Redeclarations
-// MSC-DAG: @"\01?GlobalRedecl1@@3HA" = external dllimport global i32
+// MSC-DAG: @"?GlobalRedecl1@@3HA" = external dllimport global i32
 // GNU-DAG: @GlobalRedecl1            = external dllimport global i32
 __declspec(dllimport) extern int GlobalRedecl1;
 __declspec(dllimport) extern int GlobalRedecl1;
 USEVAR(GlobalRedecl1)
 
-// MSC-DAG: @"\01?GlobalRedecl2a@@3HA" = external dllimport global i32
+// MSC-DAG: @"?GlobalRedecl2a@@3HA" = external dllimport global i32
 // GNU-DAG: @GlobalRedecl2a            = external dllimport global i32
 __declspec(dllimport) int GlobalRedecl2a;
 __declspec(dllimport) int GlobalRedecl2a;
 USEVAR(GlobalRedecl2a)
 
-// M32-DAG: @"\01?GlobalRedecl2b@@3PAHA"   = external dllimport global i32*
-// M64-DAG: @"\01?GlobalRedecl2b@@3PEAHEA" = external dllimport global i32*
+// M32-DAG: @"?GlobalRedecl2b@@3PAHA"   = external dllimport global i32*
+// M64-DAG: @"?GlobalRedecl2b@@3PEAHEA" = external dllimport global i32*
 // GNU-DAG: @GlobalRedecl2b                = external dllimport global i32*
 int *__attribute__((dllimport)) GlobalRedecl2b;
 int *__attribute__((dllimport)) GlobalRedecl2b;
 USEVARTYPE(int*, GlobalRedecl2b)
 
-// MSC-DAG: @"\01?GlobalRedecl2c@@3HA" = external dllimport global i32
+// MSC-DAG: @"?GlobalRedecl2c@@3HA" = external dllimport global i32
 // GNU-DAG: @GlobalRedecl2c            = external dllimport global i32
 int GlobalRedecl2c __attribute__((dllimport));
 int GlobalRedecl2c __attribute__((dllimport));
@@ -77,20 +77,20 @@ USEVAR(GlobalRedecl2c)
 
 // NB: MSC issues a warning and makes GlobalRedecl3 dllexport. We follow GCC
 // and drop the dllimport with a warning.
-// MSC-DAG: @"\01?GlobalRedecl3@@3HA" = external dso_local global i32
+// MSC-DAG: @"?GlobalRedecl3@@3HA" = external dso_local global i32
 // GNU-DAG: @GlobalRedecl3            = external dso_local global i32
 __declspec(dllimport) extern int GlobalRedecl3;
                       extern int GlobalRedecl3; // dllimport ignored
 USEVAR(GlobalRedecl3)
 
-// MSC-DAG: @"\01?ExternalGlobal at ns@@3HA" = external dllimport global i32
+// MSC-DAG: @"?ExternalGlobal at ns@@3HA" = external dllimport global i32
 // GNU-DAG: @_ZN2ns14ExternalGlobalE      = external dllimport global i32
 namespace ns { __declspec(dllimport) int ExternalGlobal; }
 USEVAR(ns::ExternalGlobal)
 
 int __declspec(dllimport) f();
-// MO1-DAG: @"\01?x@?1??inlineStaticLocalsFunc@@YAHXZ at 4HA" = available_externally dllimport global i32 0
-// MO1-DAG: @"\01??_B?1??inlineStaticLocalsFunc@@YAHXZ at 51" = available_externally dllimport global i32 0
+// MO1-DAG: @"?x@?1??inlineStaticLocalsFunc@@YAHXZ at 4HA" = available_externally dllimport global i32 0
+// MO1-DAG: @"??_B?1??inlineStaticLocalsFunc@@YAHXZ at 51" = available_externally dllimport global i32 0
 inline int __declspec(dllimport) inlineStaticLocalsFunc() {
   static int x = f();
   return x++;
@@ -98,7 +98,7 @@ inline int __declspec(dllimport) inlineS
 USE(inlineStaticLocalsFunc);
 
 // The address of a dllimport global cannot be used in constant initialization.
-// M32-DAG: @"\01?arr@?1??initializationFunc@@YAPAHXZ at 4QBQAHB" = internal global [1 x i32*] zeroinitializer
+// M32-DAG: @"?arr@?1??initializationFunc@@YAPAHXZ at 4QBQAHB" = internal global [1 x i32*] zeroinitializer
 // GNU-DAG: @_ZZ18initializationFuncvE3arr = internal global [1 x i32*] zeroinitializer
 int *initializationFunc() {
   static int *const arr[] = {&ExternGlobalDecl};
@@ -112,38 +112,38 @@ USE(initializationFunc);
 //===----------------------------------------------------------------------===//
 
 // Import declaration.
-// MSC-DAG: @"\01??$ExternVarTmplDecl at UImplicitInst_Imported@@@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$ExternVarTmplDecl at UImplicitInst_Imported@@@@3HA" = external dllimport global i32
 // GNU-DAG: @_Z17ExternVarTmplDeclI21ImplicitInst_ImportedE          = external dllimport global i32
 template<typename T> __declspec(dllimport) extern int ExternVarTmplDecl;
 USEVAR(ExternVarTmplDecl<ImplicitInst_Imported>)
 
 // dllimport implies a declaration.
-// MSC-DAG: @"\01??$VarTmplDecl at UImplicitInst_Imported@@@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$VarTmplDecl at UImplicitInst_Imported@@@@3HA" = external dllimport global i32
 // GNU-DAG: @_Z11VarTmplDeclI21ImplicitInst_ImportedE          = external dllimport global i32
 template<typename T> __declspec(dllimport) int VarTmplDecl;
 USEVAR(VarTmplDecl<ImplicitInst_Imported>)
 
 // Redeclarations
-// MSC-DAG: @"\01??$VarTmplRedecl1 at UImplicitInst_Imported@@@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$VarTmplRedecl1 at UImplicitInst_Imported@@@@3HA" = external dllimport global i32
 // GNU-DAG: @_Z14VarTmplRedecl1I21ImplicitInst_ImportedE          = external dllimport global i32
 template<typename T> __declspec(dllimport) extern int VarTmplRedecl1;
 template<typename T> __declspec(dllimport) extern int VarTmplRedecl1;
 USEVAR(VarTmplRedecl1<ImplicitInst_Imported>)
 
-// MSC-DAG: @"\01??$VarTmplRedecl2 at UImplicitInst_Imported@@@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$VarTmplRedecl2 at UImplicitInst_Imported@@@@3HA" = external dllimport global i32
 // GNU-DAG: @_Z14VarTmplRedecl2I21ImplicitInst_ImportedE          = external dllimport global i32
 template<typename T> __declspec(dllimport) int VarTmplRedecl2;
 template<typename T> __declspec(dllimport) int VarTmplRedecl2;
 USEVAR(VarTmplRedecl2<ImplicitInst_Imported>)
 
-// MSC-DAG: @"\01??$VarTmplRedecl3 at UImplicitInst_Imported@@@@3HA" = external dso_local global i32
+// MSC-DAG: @"??$VarTmplRedecl3 at UImplicitInst_Imported@@@@3HA" = external dso_local global i32
 // GNU-DAG: @_Z14VarTmplRedecl3I21ImplicitInst_ImportedE          = external dso_local global i32
 template<typename T> __declspec(dllimport) extern int VarTmplRedecl3;
 template<typename T>                       extern int VarTmplRedecl3; // dllimport ignored
 USEVAR(VarTmplRedecl3<ImplicitInst_Imported>)
 
 
-// MSC-DAG: @"\01??$ExternalVarTmpl at UImplicitInst_Imported@@@ns@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$ExternalVarTmpl at UImplicitInst_Imported@@@ns@@3HA" = external dllimport global i32
 // GNU-DAG: @_ZN2ns15ExternalVarTmplI21ImplicitInst_ImportedEE        = external dllimport global i32
 namespace ns { template<typename T> __declspec(dllimport) int ExternalVarTmpl; }
 USEVAR(ns::ExternalVarTmpl<ImplicitInst_Imported>)
@@ -153,12 +153,12 @@ template<typename T> int VarTmpl;
 template<typename T> __declspec(dllimport) int ImportedVarTmpl;
 
 // Import implicit instantiation of an imported variable template.
-// MSC-DAG: @"\01??$ImportedVarTmpl at UImplicitInst_Imported@@@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$ImportedVarTmpl at UImplicitInst_Imported@@@@3HA" = external dllimport global i32
 // GNU-DAG: @_Z15ImportedVarTmplI21ImplicitInst_ImportedE          = external dllimport global i32
 USEVAR(ImportedVarTmpl<ImplicitInst_Imported>)
 
 // Import explicit instantiation declaration of an imported variable template.
-// MSC-DAG: @"\01??$ImportedVarTmpl at UExplicitDecl_Imported@@@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$ImportedVarTmpl at UExplicitDecl_Imported@@@@3HA" = external dllimport global i32
 // GNU-DAG: @_Z15ImportedVarTmplI21ExplicitDecl_ImportedE          = external dllimport global i32
 extern template int ImportedVarTmpl<ExplicitDecl_Imported>;
 USEVAR(ImportedVarTmpl<ExplicitDecl_Imported>)
@@ -167,32 +167,32 @@ USEVAR(ImportedVarTmpl<ExplicitDecl_Impo
 // be imported because the template must be defined which is illegal.
 
 // Import specialization of an imported variable template.
-// MSC-DAG: @"\01??$ImportedVarTmpl at UExplicitSpec_Imported@@@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$ImportedVarTmpl at UExplicitSpec_Imported@@@@3HA" = external dllimport global i32
 // GNU-DAG: @_Z15ImportedVarTmplI21ExplicitSpec_ImportedE          = external dllimport global i32
 template<> __declspec(dllimport) int ImportedVarTmpl<ExplicitSpec_Imported>;
 USEVAR(ImportedVarTmpl<ExplicitSpec_Imported>)
 
 // Not importing specialization of an imported variable template without
 // explicit dllimport.
-// MSC-DAG: @"\01??$ImportedVarTmpl at UExplicitSpec_NotImported@@@@3HA" = dso_local global i32 0, align 4
+// MSC-DAG: @"??$ImportedVarTmpl at UExplicitSpec_NotImported@@@@3HA" = dso_local global i32 0, align 4
 // GNU-DAG: @_Z15ImportedVarTmplI24ExplicitSpec_NotImportedE          = dso_local global i32 0, align 4
 template<> int ImportedVarTmpl<ExplicitSpec_NotImported>;
 USEVAR(ImportedVarTmpl<ExplicitSpec_NotImported>)
 
 // Import explicit instantiation declaration of a non-imported variable template.
-// MSC-DAG: @"\01??$VarTmpl at UExplicitDecl_Imported@@@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$VarTmpl at UExplicitDecl_Imported@@@@3HA" = external dllimport global i32
 // GNU-DAG: @_Z7VarTmplI21ExplicitDecl_ImportedE           = external dllimport global i32
 extern template __declspec(dllimport) int VarTmpl<ExplicitDecl_Imported>;
 USEVAR(VarTmpl<ExplicitDecl_Imported>)
 
 // Import explicit instantiation definition of a non-imported variable template.
-// MSC-DAG: @"\01??$VarTmpl at UExplicitInst_Imported@@@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$VarTmpl at UExplicitInst_Imported@@@@3HA" = external dllimport global i32
 // GNU-DAG: @_Z7VarTmplI21ExplicitInst_ImportedE           = external dllimport global i32
 template __declspec(dllimport) int VarTmpl<ExplicitInst_Imported>;
 USEVAR(VarTmpl<ExplicitInst_Imported>)
 
 // Import specialization of a non-imported variable template.
-// MSC-DAG: @"\01??$VarTmpl at UExplicitSpec_Imported@@@@3HA" = external dllimport global i32
+// MSC-DAG: @"??$VarTmpl at UExplicitSpec_Imported@@@@3HA" = external dllimport global i32
 // GNU-DAG: @_Z7VarTmplI21ExplicitSpec_ImportedE           = external dllimport global i32
 template<> __declspec(dllimport) int VarTmpl<ExplicitSpec_Imported>;
 USEVAR(VarTmpl<ExplicitSpec_Imported>)
@@ -204,7 +204,7 @@ USEVAR(VarTmpl<ExplicitSpec_Imported>)
 //===----------------------------------------------------------------------===//
 
 // Import function declaration.
-// MSC-DAG: declare dllimport void @"\01?decl@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"?decl@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_Z4declv()
 __declspec(dllimport) void decl();
 USE(decl)
@@ -216,42 +216,42 @@ extern "C" __declspec(dllimport) void ex
 USE(externC)
 
 // Import inline function.
-// MSC-DAG: declare dllimport void @"\01?inlineFunc@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"?inlineFunc@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z10inlineFuncv()
-// MO1-DAG: define available_externally dllimport void @"\01?inlineFunc@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"?inlineFunc@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z10inlineFuncv()
 __declspec(dllimport) inline void inlineFunc() {}
 USE(inlineFunc)
 
-// MSC-DAG: declare dllimport void @"\01?inlineDecl@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"?inlineDecl@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z10inlineDeclv()
-// MO1-DAG: define available_externally dllimport void @"\01?inlineDecl@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"?inlineDecl@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z10inlineDeclv()
 __declspec(dllimport) inline void inlineDecl();
                              void inlineDecl() {}
 USE(inlineDecl)
 
-// MSC-DAG: declare dllimport void @"\01?inlineDef@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"?inlineDef@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z9inlineDefv()
-// MO1-DAG: define available_externally dllimport void @"\01?inlineDef@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"?inlineDef@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z9inlineDefv()
 __declspec(dllimport) void inlineDef();
                inline void inlineDef() {}
 USE(inlineDef)
 
 // inline attributes
-// MSC-DAG: declare dllimport void @"\01?noinline@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"?noinline@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z8noinlinev()
 __declspec(dllimport) __attribute__((noinline)) inline void noinline() {}
 USE(noinline)
 
-// MSC2-NOT: @"\01?alwaysInline@@YAXXZ"()
+// MSC2-NOT: @"?alwaysInline@@YAXXZ"()
 // GNU2-NOT: @_Z12alwaysInlinev()
 __declspec(dllimport) __attribute__((always_inline)) inline void alwaysInline() {}
 USE(alwaysInline)
 
 // Redeclarations
-// MSC-DAG: declare dllimport void @"\01?redecl1@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"?redecl1@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_Z7redecl1v()
 __declspec(dllimport) void redecl1();
 __declspec(dllimport) void redecl1();
@@ -259,13 +259,13 @@ USE(redecl1)
 
 // NB: MSC issues a warning and makes redecl2/redecl3 dllexport. We follow GCC
 // and drop the dllimport with a warning.
-// MSC-DAG: declare dso_local void @"\01?redecl2@@YAXXZ"()
+// MSC-DAG: declare dso_local void @"?redecl2@@YAXXZ"()
 // GNU-DAG: declare dso_local void @_Z7redecl2v()
 __declspec(dllimport) void redecl2();
                       void redecl2();
 USE(redecl2)
 
-// MSC-DAG: define dso_local dllexport void @"\01?redecl3@@YAXXZ"()
+// MSC-DAG: define dso_local dllexport void @"?redecl3@@YAXXZ"()
 // GNU-DAG: define dso_local void @_Z7redecl3v()
 __declspec(dllimport) void redecl3();
                       void redecl3() {} // dllimport ignored
@@ -273,15 +273,15 @@ USE(redecl3)
 
 
 // Friend functions
-// MSC-DAG: declare           dllimport void @"\01?friend1@@YAXXZ"()
+// MSC-DAG: declare           dllimport void @"?friend1@@YAXXZ"()
 // GNU-DAG: declare           dllimport void @_Z7friend1v()
-// MSC-DAG: declare dso_local           void @"\01?friend2@@YAXXZ"()
+// MSC-DAG: declare dso_local           void @"?friend2@@YAXXZ"()
 // GNU-DAG: declare dso_local           void @_Z7friend2v()
-// MSC-DAG: define  dso_local dllexport void @"\01?friend3@@YAXXZ"()
+// MSC-DAG: define  dso_local dllexport void @"?friend3@@YAXXZ"()
 // GNU-DAG: define  dso_local           void @_Z7friend3v()
-// MSC-DAG: declare dso_local           void @"\01?friend4@@YAXXZ"()
+// MSC-DAG: declare dso_local           void @"?friend4@@YAXXZ"()
 // GNU-DAG: declare dso_local           void @_Z7friend4v()
-// MSC-DAG: declare           dllimport void @"\01?friend5@@YAXXZ"()
+// MSC-DAG: declare           dllimport void @"?friend5@@YAXXZ"()
 // GNU-DAG: declare           dllimport void @_Z7friend5v()
 
 struct FuncFriend {
@@ -306,12 +306,12 @@ USE(friend4)
 USE(friend5)
 
 // Implicit declarations can be redeclared with dllimport.
-// MSC-DAG: declare dllimport noalias i8* @"\01??2@{{YAPAXI|YAPEAX_K}}@Z"(
+// MSC-DAG: declare dllimport noalias i8* @"??2@{{YAPAXI|YAPEAX_K}}@Z"(
 // GNU-DAG: declare dllimport noalias i8* @_Znw{{[yj]}}(
 __declspec(dllimport) void* operator new(__SIZE_TYPE__ n);
 void UNIQ(use)() { ::operator new(42); }
 
-// MSC-DAG: declare dllimport void @"\01?externalFunc at ns@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"?externalFunc at ns@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_ZN2ns12externalFuncEv()
 namespace ns { __declspec(dllimport) void externalFunc(); }
 USE(ns::externalFunc)
@@ -325,17 +325,17 @@ int NonImportedFunc();
 struct ClassWithNonImportedMethod { int f(); };
 
 __declspec(dllimport) inline int ReferencingImportedVar() { return ImportedVar; }
-// MO1-DAG: define available_externally dllimport i32 @"\01?ReferencingImportedVar@@YAHXZ"
+// MO1-DAG: define available_externally dllimport i32 @"?ReferencingImportedVar@@YAHXZ"
 __declspec(dllimport) inline int ReferencingNonImportedVar() { return NonImportedVar; }
-// MO1-DAG: declare dllimport i32 @"\01?ReferencingNonImportedVar@@YAHXZ"()
+// MO1-DAG: declare dllimport i32 @"?ReferencingNonImportedVar@@YAHXZ"()
 __declspec(dllimport) inline int ReferencingImportedFunc() { return ImportedFunc(); }
-// MO1-DAG: define available_externally dllimport i32 @"\01?ReferencingImportedFunc@@YAHXZ"
+// MO1-DAG: define available_externally dllimport i32 @"?ReferencingImportedFunc@@YAHXZ"
 __declspec(dllimport) inline int ReferencingNonImportedFunc() { return NonImportedFunc(); }
-// MO1-DAG: declare dllimport i32 @"\01?ReferencingNonImportedFunc@@YAHXZ"()
+// MO1-DAG: declare dllimport i32 @"?ReferencingNonImportedFunc@@YAHXZ"()
 __declspec(dllimport) inline int ReferencingNonImportedMethod(ClassWithNonImportedMethod *x) { return x->f(); }
-// MO1-DAG: declare dllimport i32 @"\01?ReferencingNonImportedMethod
+// MO1-DAG: declare dllimport i32 @"?ReferencingNonImportedMethod
 __declspec(dllimport) inline int ReferencingClassMemberPtr(int (ClassWithNonImportedMethod::*p)(), ClassWithNonImportedMethod *x) { return (x->*p)(); }
-// MO1-DAG: define available_externally dllimport i32 @"\01?ReferencingClassMemberPtr@@YAHP8ClassWithNonImportedMethod@@AEHXZPAU1@@Z"
+// MO1-DAG: define available_externally dllimport i32 @"?ReferencingClassMemberPtr@@YAHP8ClassWithNonImportedMethod@@AEHXZPAU1@@Z"
 USE(ReferencingImportedVar)
 USE(ReferencingNonImportedVar)
 USE(ReferencingImportedFunc)
@@ -344,17 +344,17 @@ USE1(ReferencingNonImportedMethod)
 void UNIQ(use)() { ReferencingClassMemberPtr(&ClassWithNonImportedMethod::f, nullptr); }
 // References to operator new and delete count too, despite not being DeclRefExprs.
 __declspec(dllimport) inline int *ReferencingNonImportedNew() { return new int[2]; }
-// MO1-DAG: declare dllimport i32* @"\01?ReferencingNonImportedNew@@YAPAHXZ"
+// MO1-DAG: declare dllimport i32* @"?ReferencingNonImportedNew@@YAPAHXZ"
 __declspec(dllimport) inline int *ReferencingNonImportedDelete() { delete (int*)nullptr; }
-// MO1-DAG: declare dllimport i32* @"\01?ReferencingNonImportedDelete@@YAPAHXZ"
+// MO1-DAG: declare dllimport i32* @"?ReferencingNonImportedDelete@@YAPAHXZ"
 USE(ReferencingNonImportedNew)
 USE(ReferencingNonImportedDelete)
 __declspec(dllimport) void* operator new[](__SIZE_TYPE__);
 __declspec(dllimport) void operator delete(void*);
 __declspec(dllimport) inline int *ReferencingImportedNew() { return new int[2]; }
-// MO1-DAG: define available_externally dllimport i32* @"\01?ReferencingImportedNew@@YAPAHXZ"
+// MO1-DAG: define available_externally dllimport i32* @"?ReferencingImportedNew@@YAPAHXZ"
 __declspec(dllimport) inline int *ReferencingImportedDelete() { delete (int*)nullptr; }
-// MO1-DAG: define available_externally dllimport i32* @"\01?ReferencingImportedDelete@@YAPAHXZ"
+// MO1-DAG: define available_externally dllimport i32* @"?ReferencingImportedDelete@@YAPAHXZ"
 USE(ReferencingImportedNew)
 USE(ReferencingImportedDelete)
 struct ClassWithDtor { ~ClassWithDtor() {} };
@@ -362,25 +362,25 @@ struct __declspec(dllimport) ClassWithNo
 struct __declspec(dllimport) ClassWithNonDllImportBase : public ClassWithDtor { };
 USECLASS(ClassWithNonDllImportField);
 USECLASS(ClassWithNonDllImportBase);
-// MO1-DAG: declare dllimport x86_thiscallcc void @"\01??1ClassWithNonDllImportBase@@QAE at XZ"(%struct.ClassWithNonDllImportBase*)
-// MO1-DAG: declare dllimport x86_thiscallcc void @"\01??1ClassWithNonDllImportField@@QAE at XZ"(%struct.ClassWithNonDllImportField*)
+// MO1-DAG: declare dllimport x86_thiscallcc void @"??1ClassWithNonDllImportBase@@QAE at XZ"(%struct.ClassWithNonDllImportBase*)
+// MO1-DAG: declare dllimport x86_thiscallcc void @"??1ClassWithNonDllImportField@@QAE at XZ"(%struct.ClassWithNonDllImportField*)
 struct ClassWithCtor { ClassWithCtor() {} };
 struct __declspec(dllimport) ClassWithNonDllImportFieldWithCtor { ClassWithCtor t; };
 USECLASS(ClassWithNonDllImportFieldWithCtor);
-// MO1-DAG: declare dllimport x86_thiscallcc %struct.ClassWithNonDllImportFieldWithCtor* @"\01??0ClassWithNonDllImportFieldWithCtor@@QAE at XZ"(%struct.ClassWithNonDllImportFieldWithCtor* returned)
+// MO1-DAG: declare dllimport x86_thiscallcc %struct.ClassWithNonDllImportFieldWithCtor* @"??0ClassWithNonDllImportFieldWithCtor@@QAE at XZ"(%struct.ClassWithNonDllImportFieldWithCtor* returned)
 struct ClassWithImplicitDtor { __declspec(dllimport) ClassWithImplicitDtor(); ClassWithDtor member; };
 __declspec(dllimport) inline void ReferencingDtorThroughDefinition() { ClassWithImplicitDtor x; };
 USE(ReferencingDtorThroughDefinition)
-// MO1-DAG: declare dllimport void @"\01?ReferencingDtorThroughDefinition@@YAXXZ"()
+// MO1-DAG: declare dllimport void @"?ReferencingDtorThroughDefinition@@YAXXZ"()
 __declspec(dllimport) inline void ReferencingDtorThroughTemporary() { ClassWithImplicitDtor(); };
 USE(ReferencingDtorThroughTemporary)
-// MO1-DAG: declare dllimport void @"\01?ReferencingDtorThroughTemporary@@YAXXZ"()
+// MO1-DAG: declare dllimport void @"?ReferencingDtorThroughTemporary@@YAXXZ"()
 
 // A dllimport function with a TLS variable must not be available_externally.
 __declspec(dllimport) inline void FunctionWithTLSVar() { static __thread int x = 42; }
-// MO1-DAG: declare dllimport void @"\01?FunctionWithTLSVar@@YAXXZ"
+// MO1-DAG: declare dllimport void @"?FunctionWithTLSVar@@YAXXZ"
 __declspec(dllimport) inline void FunctionWithNormalVar() { static int x = 42; }
-// MO1-DAG: define available_externally dllimport void @"\01?FunctionWithNormalVar@@YAXXZ"
+// MO1-DAG: define available_externally dllimport void @"?FunctionWithNormalVar@@YAXXZ"
 USE(FunctionWithTLSVar)
 USE(FunctionWithNormalVar)
 
@@ -390,7 +390,7 @@ USE(FunctionWithNormalVar)
 //===----------------------------------------------------------------------===//
 
 // Import function template declaration.
-// MSC-DAG: declare dllimport void @"\01??$funcTmplDecl at UImplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$funcTmplDecl at UImplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_Z12funcTmplDeclI21ImplicitInst_ImportedEvv()
 template<typename T> __declspec(dllimport) void funcTmplDecl();
 USE(funcTmplDecl<ImplicitInst_Imported>)
@@ -398,31 +398,31 @@ USE(funcTmplDecl<ImplicitInst_Imported>)
 // Function template definitions cannot be imported.
 
 // Import inline function template.
-// MSC-DAG: declare dllimport void @"\01??$inlineFuncTmpl1 at UImplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$inlineFuncTmpl1 at UImplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z15inlineFuncTmpl1I21ImplicitInst_ImportedEvv()
-// MO1-DAG: define available_externally dllimport void @"\01??$inlineFuncTmpl1 at UImplicitInst_Imported@@@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"??$inlineFuncTmpl1 at UImplicitInst_Imported@@@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z15inlineFuncTmpl1I21ImplicitInst_ImportedEvv()
 template<typename T> __declspec(dllimport) inline void inlineFuncTmpl1() {}
 USE(inlineFuncTmpl1<ImplicitInst_Imported>)
 
-// MSC-DAG: declare dllimport void @"\01??$inlineFuncTmpl2 at UImplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$inlineFuncTmpl2 at UImplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z15inlineFuncTmpl2I21ImplicitInst_ImportedEvv()
-// MO1-DAG: define available_externally dllimport void @"\01??$inlineFuncTmpl2 at UImplicitInst_Imported@@@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"??$inlineFuncTmpl2 at UImplicitInst_Imported@@@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z15inlineFuncTmpl2I21ImplicitInst_ImportedEvv()
 template<typename T> inline void __attribute__((dllimport)) inlineFuncTmpl2() {}
 USE(inlineFuncTmpl2<ImplicitInst_Imported>)
 
-// MSC-DAG: define linkonce_odr dso_local void @"\01??$inlineFuncTmplDecl at UImplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: define linkonce_odr dso_local void @"??$inlineFuncTmplDecl at UImplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z18inlineFuncTmplDeclI21ImplicitInst_ImportedEvv()
-// MO1-DAG: define linkonce_odr dso_local void @"\01??$inlineFuncTmplDecl at UImplicitInst_Imported@@@@YAXXZ"()
+// MO1-DAG: define linkonce_odr dso_local void @"??$inlineFuncTmplDecl at UImplicitInst_Imported@@@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z18inlineFuncTmplDeclI21ImplicitInst_ImportedEvv()
 template<typename T> __declspec(dllimport) inline void inlineFuncTmplDecl();
 template<typename T>                              void inlineFuncTmplDecl() {}
 USE(inlineFuncTmplDecl<ImplicitInst_Imported>)
 
-// MSC-DAG: define linkonce_odr dso_local void @"\01??$inlineFuncTmplDef at UImplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: define linkonce_odr dso_local void @"??$inlineFuncTmplDef at UImplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z17inlineFuncTmplDefI21ImplicitInst_ImportedEvv()
-// MO1-DAG: define linkonce_odr dso_local void @"\01??$inlineFuncTmplDef at UImplicitInst_Imported@@@@YAXXZ"()
+// MO1-DAG: define linkonce_odr dso_local void @"??$inlineFuncTmplDef at UImplicitInst_Imported@@@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z17inlineFuncTmplDefI21ImplicitInst_ImportedEvv()
 template<typename T> __declspec(dllimport) void inlineFuncTmplDef();
 template<typename T>                inline void inlineFuncTmplDef() {}
@@ -430,19 +430,19 @@ USE(inlineFuncTmplDef<ImplicitInst_Impor
 
 
 // Redeclarations
-// MSC-DAG: declare dllimport void @"\01??$funcTmplRedecl1 at UImplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$funcTmplRedecl1 at UImplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_Z15funcTmplRedecl1I21ImplicitInst_ImportedEvv()
 template<typename T> __declspec(dllimport) void funcTmplRedecl1();
 template<typename T> __declspec(dllimport) void funcTmplRedecl1();
 USE(funcTmplRedecl1<ImplicitInst_Imported>)
 
-// MSC-DAG: declare dso_local void @"\01??$funcTmplRedecl2 at UImplicitInst_NotImported@@@@YAXXZ"()
+// MSC-DAG: declare dso_local void @"??$funcTmplRedecl2 at UImplicitInst_NotImported@@@@YAXXZ"()
 // GNU-DAG: declare dso_local void @_Z15funcTmplRedecl2I24ImplicitInst_NotImportedEvv()
 template<typename T> __declspec(dllimport) void funcTmplRedecl2();
 template<typename T>                       void funcTmplRedecl2(); // dllimport ignored
 USE(funcTmplRedecl2<ImplicitInst_NotImported>)
 
-// MSC-DAG: define linkonce_odr dso_local void @"\01??$funcTmplRedecl3 at UImplicitInst_NotImported@@@@YAXXZ"()
+// MSC-DAG: define linkonce_odr dso_local void @"??$funcTmplRedecl3 at UImplicitInst_NotImported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z15funcTmplRedecl3I24ImplicitInst_NotImportedEvv()
 template<typename T> __declspec(dllimport) void funcTmplRedecl3();
 template<typename T>                       void funcTmplRedecl3() {} // dllimport ignored
@@ -450,13 +450,13 @@ USE(funcTmplRedecl3<ImplicitInst_NotImpo
 
 
 // Function template friends
-// MSC-DAG: declare dllimport   void @"\01??$funcTmplFriend1 at UImplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport   void @"??$funcTmplFriend1 at UImplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: declare dllimport   void @_Z15funcTmplFriend1I21ImplicitInst_ImportedEvv()
-// MSC-DAG: declare             dso_local void @"\01??$funcTmplFriend2 at UImplicitInst_NotImported@@@@YAXXZ"()
+// MSC-DAG: declare             dso_local void @"??$funcTmplFriend2 at UImplicitInst_NotImported@@@@YAXXZ"()
 // GNU-DAG: declare             dso_local void @_Z15funcTmplFriend2I24ImplicitInst_NotImportedEvv()
-// MSC-DAG: define linkonce_odr dso_local void @"\01??$funcTmplFriend3 at UImplicitInst_NotImported@@@@YAXXZ"()
+// MSC-DAG: define linkonce_odr dso_local void @"??$funcTmplFriend3 at UImplicitInst_NotImported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z15funcTmplFriend3I24ImplicitInst_NotImportedEvv()
-// MSC-DAG: define linkonce_odr dso_local void @"\01??$funcTmplFriend4 at UImplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: define linkonce_odr dso_local void @"??$funcTmplFriend4 at UImplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z15funcTmplFriend4I21ImplicitInst_ImportedEvv()
 struct FuncTmplFriend {
   template<typename T> friend __declspec(dllimport) void funcTmplFriend1();
@@ -473,7 +473,7 @@ USE(funcTmplFriend2<ImplicitInst_NotImpo
 USE(funcTmplFriend3<ImplicitInst_NotImported>)
 USE(funcTmplFriend4<ImplicitInst_Imported>)
 
-// MSC-DAG: declare dllimport void @"\01??$externalFuncTmpl at UImplicitInst_Imported@@@ns@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$externalFuncTmpl at UImplicitInst_Imported@@@ns@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_ZN2ns16externalFuncTmplI21ImplicitInst_ImportedEEvv()
 namespace ns { template<typename T> __declspec(dllimport) void externalFuncTmpl(); }
 USE(ns::externalFuncTmpl<ImplicitInst_Imported>)
@@ -485,69 +485,69 @@ template<typename T> __declspec(dllimpor
 template<typename T> __declspec(dllimport) inline void importedFuncTmpl() {}
 
 // Import implicit instantiation of an imported function template.
-// MSC-DAG: declare dllimport void @"\01??$importedFuncTmplDecl at UImplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$importedFuncTmplDecl at UImplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_Z20importedFuncTmplDeclI21ImplicitInst_ImportedEvv()
 USE(importedFuncTmplDecl<ImplicitInst_Imported>)
 
-// MSC-DAG: declare dllimport void @"\01??$importedFuncTmpl at UImplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$importedFuncTmpl at UImplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z16importedFuncTmplI21ImplicitInst_ImportedEvv()
-// MO1-DAG: define available_externally dllimport void @"\01??$importedFuncTmpl at UImplicitInst_Imported@@@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"??$importedFuncTmpl at UImplicitInst_Imported@@@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z16importedFuncTmplI21ImplicitInst_ImportedEvv()
 USE(importedFuncTmpl<ImplicitInst_Imported>)
 
 // Import explicit instantiation declaration of an imported function template.
-// MSC-DAG: declare dllimport void @"\01??$importedFuncTmpl at UExplicitDecl_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$importedFuncTmpl at UExplicitDecl_Imported@@@@YAXXZ"()
 // GNU-DAG: declare dso_local void @_Z16importedFuncTmplI21ExplicitDecl_ImportedEvv()
-// MO1-DAG: define available_externally dllimport void @"\01??$importedFuncTmpl at UExplicitDecl_Imported@@@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"??$importedFuncTmpl at UExplicitDecl_Imported@@@@YAXXZ"()
 // GO1-DAG: define available_externally dso_local void @_Z16importedFuncTmplI21ExplicitDecl_ImportedEvv()
 extern template void importedFuncTmpl<ExplicitDecl_Imported>();
 USE(importedFuncTmpl<ExplicitDecl_Imported>)
 
 // Import explicit instantiation definition of an imported function template.
-// MSC-DAG: declare dllimport void @"\01??$importedFuncTmpl at UExplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$importedFuncTmpl at UExplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: define weak_odr dso_local void @_Z16importedFuncTmplI21ExplicitInst_ImportedEvv()
-// MO1-DAG: define available_externally dllimport void @"\01??$importedFuncTmpl at UExplicitInst_Imported@@@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"??$importedFuncTmpl at UExplicitInst_Imported@@@@YAXXZ"()
 // GO1-DAG: define weak_odr dso_local void @_Z16importedFuncTmplI21ExplicitInst_ImportedEvv()
 template void importedFuncTmpl<ExplicitInst_Imported>();
 USE(importedFuncTmpl<ExplicitInst_Imported>)
 
 
 // Import specialization of an imported function template.
-// MSC-DAG: declare dllimport void @"\01??$importedFuncTmplDecl at UExplicitSpec_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$importedFuncTmplDecl at UExplicitSpec_Imported@@@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_Z20importedFuncTmplDeclI21ExplicitSpec_ImportedEvv()
 template<> __declspec(dllimport) void importedFuncTmplDecl<ExplicitSpec_Imported>();
 USE(importedFuncTmplDecl<ExplicitSpec_Imported>)
 
-// MSC-DAG-FIXME: declare dllimport void @"\01??$importedFuncTmplDecl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
-// MO1-DAG-FIXME: define available_externally dllimport void @"\01??$importedFuncTmplDecl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
+// MSC-DAG-FIXME: declare dllimport void @"??$importedFuncTmplDecl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
+// MO1-DAG-FIXME: define available_externally dllimport void @"??$importedFuncTmplDecl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
 #ifdef MSABI
 //template<> __declspec(dllimport) void importedFuncTmplDecl<ExplicitSpec_Def_Imported>() {}
 //USE(importedFuncTmplDecl<ExplicitSpec_Def_Imported>)
 #endif
 
-// MSC-DAG: declare dllimport void @"\01??$importedFuncTmplDecl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$importedFuncTmplDecl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z20importedFuncTmplDeclI31ExplicitSpec_InlineDef_ImportedEvv()
-// MO1-DAG: define available_externally dllimport void @"\01??$importedFuncTmplDecl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"??$importedFuncTmplDecl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z20importedFuncTmplDeclI31ExplicitSpec_InlineDef_ImportedEvv()
 template<> __declspec(dllimport) inline void importedFuncTmplDecl<ExplicitSpec_InlineDef_Imported>() {}
 USE(importedFuncTmplDecl<ExplicitSpec_InlineDef_Imported>)
 
 
-// MSC-DAG: declare dllimport void @"\01??$importedFuncTmpl at UExplicitSpec_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$importedFuncTmpl at UExplicitSpec_Imported@@@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_Z16importedFuncTmplI21ExplicitSpec_ImportedEvv()
 template<> __declspec(dllimport) void importedFuncTmpl<ExplicitSpec_Imported>();
 USE(importedFuncTmpl<ExplicitSpec_Imported>)
 
-// MSC-DAG-FIXME: declare dllimport void @"\01??$importedFuncTmpl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
-// MO1-DAG-FIXME: define available_externally dllimport void @"\01??$importedFuncTmpl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
+// MSC-DAG-FIXME: declare dllimport void @"??$importedFuncTmpl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
+// MO1-DAG-FIXME: define available_externally dllimport void @"??$importedFuncTmpl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
 #ifdef MSABI
 //template<> __declspec(dllimport) void importedFuncTmpl<ExplicitSpec_Def_Imported>() {}
 //USE(importedFuncTmpl<ExplicitSpec_Def_Imported>)
 #endif
 
-// MSC-DAG: declare dllimport void @"\01??$importedFuncTmpl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$importedFuncTmpl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z16importedFuncTmplI31ExplicitSpec_InlineDef_ImportedEvv()
-// MO1-DAG: define available_externally dllimport void @"\01??$importedFuncTmpl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"??$importedFuncTmpl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z16importedFuncTmplI31ExplicitSpec_InlineDef_ImportedEvv()
 template<> __declspec(dllimport) inline void importedFuncTmpl<ExplicitSpec_InlineDef_Imported>() {}
 USE(importedFuncTmpl<ExplicitSpec_InlineDef_Imported>)
@@ -555,18 +555,18 @@ USE(importedFuncTmpl<ExplicitSpec_Inline
 
 // Not importing specialization of an imported function template without
 // explicit dllimport.
-// MSC-DAG: define dso_local void @"\01??$importedFuncTmpl at UExplicitSpec_NotImported@@@@YAXXZ"()
+// MSC-DAG: define dso_local void @"??$importedFuncTmpl at UExplicitSpec_NotImported@@@@YAXXZ"()
 // GNU-DAG: define dso_local void @_Z16importedFuncTmplI24ExplicitSpec_NotImportedEvv()
 template<> void importedFuncTmpl<ExplicitSpec_NotImported>() {}
 USE(importedFuncTmpl<ExplicitSpec_NotImported>)
 
 
 // Import explicit instantiation declaration of a non-imported function template.
-// MSC-DAG: declare dllimport void @"\01??$funcTmpl at UExplicitDecl_Imported@@@@YAXXZ"()
-// MSC-DAG: declare dllimport void @"\01??$inlineFuncTmpl at UExplicitDecl_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$funcTmpl at UExplicitDecl_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$inlineFuncTmpl at UExplicitDecl_Imported@@@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_Z8funcTmplI21ExplicitDecl_ImportedEvv()
 // GNU-DAG: declare dso_local void @_Z14inlineFuncTmplI21ExplicitDecl_ImportedEvv()
-// MO1-DAG: define available_externally dllimport void @"\01??$inlineFuncTmpl at UExplicitDecl_Imported@@@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"??$inlineFuncTmpl at UExplicitDecl_Imported@@@@YAXXZ"()
 // GO1-DAG: define available_externally dso_local void @_Z14inlineFuncTmplI21ExplicitDecl_ImportedEvv()
 extern template __declspec(dllimport) void funcTmpl<ExplicitDecl_Imported>();
 extern template __declspec(dllimport) void inlineFuncTmpl<ExplicitDecl_Imported>();
@@ -575,12 +575,12 @@ USE(inlineFuncTmpl<ExplicitDecl_Imported
 
 
 // Import explicit instantiation definition of a non-imported function template.
-// MSC-DAG: declare dllimport void @"\01??$funcTmpl at UExplicitInst_Imported@@@@YAXXZ"()
-// MSC-DAG: declare dllimport void @"\01??$inlineFuncTmpl at UExplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$funcTmpl at UExplicitInst_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$inlineFuncTmpl at UExplicitInst_Imported@@@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_Z8funcTmplI21ExplicitInst_ImportedEvv()
 // GNU-DAG: define weak_odr dso_local void @_Z14inlineFuncTmplI21ExplicitInst_ImportedEvv()
-// MO1-DAG: declare dllimport void @"\01??$funcTmpl at UExplicitInst_Imported@@@@YAXXZ"()
-// MO1-DAG: define available_externally dllimport void @"\01??$inlineFuncTmpl at UExplicitInst_Imported@@@@YAXXZ"()
+// MO1-DAG: declare dllimport void @"??$funcTmpl at UExplicitInst_Imported@@@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"??$inlineFuncTmpl at UExplicitInst_Imported@@@@YAXXZ"()
 // GO1-DAG: define available_externally dllimport void @_Z8funcTmplI21ExplicitInst_ImportedEvv()
 // GO1-DAG: define weak_odr dso_local void @_Z14inlineFuncTmplI21ExplicitInst_ImportedEvv()
 template __declspec(dllimport) void funcTmpl<ExplicitInst_Imported>();
@@ -590,21 +590,21 @@ USE(inlineFuncTmpl<ExplicitInst_Imported
 
 
 // Import specialization of a non-imported function template.
-// MSC-DAG: declare dllimport void @"\01??$funcTmpl at UExplicitSpec_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$funcTmpl at UExplicitSpec_Imported@@@@YAXXZ"()
 // GNU-DAG: declare dllimport void @_Z8funcTmplI21ExplicitSpec_ImportedEvv()
 template<> __declspec(dllimport) void funcTmpl<ExplicitSpec_Imported>();
 USE(funcTmpl<ExplicitSpec_Imported>)
 
-// MSC-DAG-FIXME: declare dllimport void @"\01??$funcTmpl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
-// MO1-DAG-FIXME: define available_externally dllimport void @"\01??$funcTmpl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
+// MSC-DAG-FIXME: declare dllimport void @"??$funcTmpl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
+// MO1-DAG-FIXME: define available_externally dllimport void @"??$funcTmpl at UExplicitSpec_Def_Imported@@@@YAXXZ"()
 #ifdef MSABI
 //template<> __declspec(dllimport) void funcTmpl<ExplicitSpec_Def_Imported>() {}
 //USE(funcTmpl<ExplicitSpec_Def_Imported>)
 #endif
 
-// MSC-DAG: declare dllimport void @"\01??$funcTmpl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
+// MSC-DAG: declare dllimport void @"??$funcTmpl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
 // GNU-DAG: define linkonce_odr dso_local void @_Z8funcTmplI31ExplicitSpec_InlineDef_ImportedEvv()
-// MO1-DAG: define available_externally dllimport void @"\01??$funcTmpl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
+// MO1-DAG: define available_externally dllimport void @"??$funcTmpl at UExplicitSpec_InlineDef_Imported@@@@YAXXZ"()
 // GO1-DAG: define linkonce_odr dso_local void @_Z8funcTmplI31ExplicitSpec_InlineDef_ImportedEvv()
 template<> __declspec(dllimport) inline void funcTmpl<ExplicitSpec_InlineDef_Imported>() {}
 USE(funcTmpl<ExplicitSpec_InlineDef_Imported>)
@@ -626,22 +626,22 @@ template void S<X>::foo(X*); // Cannot b
 
 struct __declspec(dllimport) T {
   void a() {}
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?a at T@@QAEXXZ"
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?a at T@@QAEXXZ"
 
   static void StaticMethod();
-  // MSC-DAG: declare dllimport void @"\01?StaticMethod at T@@SAXXZ"()
+  // MSC-DAG: declare dllimport void @"?StaticMethod at T@@SAXXZ"()
   // GNU-DAG: declare dllimport void @_ZN1T12StaticMethodEv()
 
   static int b;
-  // MO1-DAG: @"\01?b at T@@2HA" = external dllimport global i32
+  // MO1-DAG: @"?b at T@@2HA" = external dllimport global i32
 
   T& operator=(T&) = default;
-  // MO1-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.T* @"\01??4T@@QAEAAU0 at AAU0@@Z"
+  // MO1-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.T* @"??4T@@QAEAAU0 at AAU0@@Z"
 
   T& operator=(T&&) = default;
   // Note: Don't mark inline move operators dllimport because current MSVC versions don't export them.
-  // M18-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.T* @"\01??4T@@QAEAAU0@$$QAU0@@Z"
-  // M19-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.T* @"\01??4T@@QAEAAU0@$$QAU0@@Z"
+  // M18-DAG: define linkonce_odr dso_local x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.T* @"??4T@@QAEAAU0@$$QAU0@@Z"
+  // M19-DAG: define available_externally dllimport x86_thiscallcc dereferenceable({{[0-9]+}}) %struct.T* @"??4T@@QAEAAU0@$$QAU0@@Z"
 };
 USEMEMFUNC(T, a)
 USESTATICMEMFUNC(T, StaticMethod)
@@ -650,14 +650,14 @@ USECOPYASSIGN(T)
 USEMOVEASSIGN(T)
 
 template <typename T> struct __declspec(dllimport) U { void foo() {} };
-// MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01?foo@?$U at H@@QAEXXZ"
+// MO1-DAG: define available_externally dllimport x86_thiscallcc void @"?foo@?$U at H@@QAEXXZ"
 struct __declspec(dllimport) V : public U<int> { };
 USEMEMFUNC(V, foo)
 
 struct __declspec(dllimport) W { virtual void foo() {} };
 USECLASS(W)
 // vftable:
-// MO1-DAG: @"\01??_SW@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast (void (%struct.W*)* @"\01?foo at W@@UAEXXZ" to i8*)] }
+// MO1-DAG: @"??_SW@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast (void (%struct.W*)* @"?foo at W@@UAEXXZ" to i8*)] }
 // GO1-DAG: @_ZTV1W = available_externally dllimport unnamed_addr constant { [3 x i8*] } { [3 x i8*] [i8* null, i8* null, i8* bitcast (void (%struct.W*)* @_ZN1W3fooEv to i8*)] }
 
 struct __declspec(dllimport) KeyFuncClass {
@@ -670,7 +670,7 @@ extern constexpr KeyFuncClass keyFuncCla
 struct __declspec(dllimport) X : public virtual W {};
 USECLASS(X)
 // vbtable:
-// MO1-DAG: @"\01??_8X@@7B@" = available_externally dllimport unnamed_addr constant [2 x i32] [i32 0, i32 4]
+// MO1-DAG: @"??_8X@@7B@" = available_externally dllimport unnamed_addr constant [2 x i32] [i32 0, i32 4]
 
 struct __declspec(dllimport) Y {
   int x;
@@ -679,7 +679,7 @@ struct __declspec(dllimport) Y {
 struct __declspec(dllimport) Z { virtual ~Z() {} };
 USECLASS(Z)
 // User-defined dtor:
-// MO1-DAG: define available_externally dllimport x86_thiscallcc void @"\01??1Z@@UAE at XZ"
+// MO1-DAG: define available_externally dllimport x86_thiscallcc void @"??1Z@@UAE at XZ"
 
 namespace DontUseDtorAlias {
   struct __declspec(dllimport) A { ~A(); };
@@ -687,13 +687,13 @@ namespace DontUseDtorAlias {
   inline A::~A() { }
   inline B::~B() { }
   // Emit a real definition of B's constructor; don't alias it to A's.
-  // MO1-DAG: available_externally dllimport x86_thiscallcc void @"\01??1B at DontUseDtorAlias@@QAE at XZ"
+  // MO1-DAG: available_externally dllimport x86_thiscallcc void @"??1B at DontUseDtorAlias@@QAE at XZ"
   USECLASS(B)
 }
 
 namespace Vtordisp {
   // Don't dllimport the vtordisp.
-  // MO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @"\01?f@?$C at H@Vtordisp@@$4PPPPPPPM at A@AEXXZ"
+  // MO1-DAG: define linkonce_odr dso_local x86_thiscallcc void @"?f@?$C at H@Vtordisp@@$4PPPPPPPM at A@AEXXZ"
 
   class __declspec(dllimport) Base {
     virtual void f() {}
@@ -713,7 +713,7 @@ namespace ClassTemplateStaticDef {
     static int x;
   };
   template <typename T> int S<T>::x;
-  // MSC-DAG: @"\01?x@?$S at H@ClassTemplateStaticDef@@2HA" = external dllimport global i32
+  // MSC-DAG: @"?x@?$S at H@ClassTemplateStaticDef@@2HA" = external dllimport global i32
   int f() { return S<int>::x; }
 
   // Partial class template specialization static field:
@@ -736,21 +736,21 @@ namespace PR19933 {
   template <typename T> NonPOD A<T>::x;
   template struct __declspec(dllimport) A<int>;
   USEVARTYPE(NonPOD, A<int>::x);
-  // MSC-DAG: @"\01?x@?$A at H@PR19933@@2UNonPOD at 2@A" = external dllimport global %"struct.PR19933::NonPOD"
+  // MSC-DAG: @"?x@?$A at H@PR19933@@2UNonPOD at 2@A" = external dllimport global %"struct.PR19933::NonPOD"
 
   int f();
   template <typename T> struct B { static int x; };
   template <typename T> int B<T>::x = f();
   template struct __declspec(dllimport) B<int>;
   USEVAR(B<int>::x);
-  // MSC-DAG: @"\01?x@?$B at H@PR19933@@2HA" = external dllimport global i32
+  // MSC-DAG: @"?x@?$B at H@PR19933@@2HA" = external dllimport global i32
 
   constexpr int g() { return 42; }
   template <typename T> struct C { static int x; };
   template <typename T> int C<T>::x = g();
   template struct __declspec(dllimport) C<int>;
   USEVAR(C<int>::x);
-  // MSC-DAG: @"\01?x@?$C at H@PR19933@@2HA" = external dllimport global i32
+  // MSC-DAG: @"?x@?$C at H@PR19933@@2HA" = external dllimport global i32
 
   template <int I> struct D { static int x, y; };
   template <int I> int D<I>::x = I + 1;
@@ -758,8 +758,8 @@ namespace PR19933 {
   template struct __declspec(dllimport) D<42>;
   USEVAR(D<42>::x);
   USEVAR(D<42>::y);
-  // MSC-DAG: @"\01?x@?$D@$0CK@@PR19933@@2HA" = external dllimport global i32
-  // MSC-DAG: @"\01?y@?$D@$0CK@@PR19933@@2HA" = external dllimport global i32
+  // MSC-DAG: @"?x@?$D@$0CK@@PR19933@@2HA" = external dllimport global i32
+  // MSC-DAG: @"?y@?$D@$0CK@@PR19933@@2HA" = external dllimport global i32
 }
 
 namespace PR21355 {
@@ -793,43 +793,43 @@ namespace PR27319 {
   };
   extern template struct __declspec(dllimport) A<int>;
   void f() { new A<int>(); }
-  // MO1-DAG: @"\01??_S?$A at H@PR27319@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] }
+  // MO1-DAG: @"??_S?$A at H@PR27319@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] }
 }
 
 // MS ignores DLL attributes on partial specializations.
 template <typename T> struct PartiallySpecializedClassTemplate {};
 template <typename T> struct __declspec(dllimport) PartiallySpecializedClassTemplate<T*> { void f(); };
 USEMEMFUNC(PartiallySpecializedClassTemplate<void*>, f);
-// M32-DAG: declare dso_local x86_thiscallcc void @"\01?f@?$PartiallySpecializedClassTemplate at PAX@@QAEXXZ"
+// M32-DAG: declare dso_local x86_thiscallcc void @"?f@?$PartiallySpecializedClassTemplate at PAX@@QAEXXZ"
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN33PartiallySpecializedClassTemplateIPvE1fEv
 
 // Attributes on explicit specializations are honored.
 template <typename T> struct ExplicitlySpecializedClassTemplate {};
 template <> struct __declspec(dllimport) ExplicitlySpecializedClassTemplate<void*> { void f(); };
 USEMEMFUNC(ExplicitlySpecializedClassTemplate<void*>, f);
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01?f@?$ExplicitlySpecializedClassTemplate at PAX@@QAEXXZ"
+// M32-DAG: declare dllimport x86_thiscallcc void @"?f@?$ExplicitlySpecializedClassTemplate at PAX@@QAEXXZ"
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN34ExplicitlySpecializedClassTemplateIPvE1fEv
 
 // MS inherits DLL attributes to partial specializations.
 template <typename T> struct __declspec(dllimport) PartiallySpecializedImportedClassTemplate {};
 template <typename T> struct PartiallySpecializedImportedClassTemplate<T*> { void f() {} };
 USEMEMFUNC(PartiallySpecializedImportedClassTemplate<void*>, f);
-// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"\01?f@?$PartiallySpecializedImportedClassTemplate at PAX@@QAEXXZ"
+// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"?f@?$PartiallySpecializedImportedClassTemplate at PAX@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN41PartiallySpecializedImportedClassTemplateIPvE1fEv
 
 // Attributes on the instantiation take precedence over attributes on the template.
 template <typename T> struct __declspec(dllexport) ExplicitlyInstantiatedWithDifferentAttr { void f() {} };
 template struct __declspec(dllimport) ExplicitlyInstantiatedWithDifferentAttr<int>;
 USEMEMFUNC(ExplicitlyInstantiatedWithDifferentAttr<int>, f);
-// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"\01?f@?$ExplicitlyInstantiatedWithDifferentAttr at H@@QAEXXZ"
+// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"?f@?$ExplicitlyInstantiatedWithDifferentAttr at H@@QAEXXZ"
 
 template <typename T> struct ExplicitInstantiationDeclImportedDefTemplate { void f() {} ExplicitInstantiationDeclImportedDefTemplate() {}};
 extern template struct ExplicitInstantiationDeclImportedDefTemplate<int>;
 template struct __declspec(dllimport) ExplicitInstantiationDeclImportedDefTemplate<int>;
 USECLASS(ExplicitInstantiationDeclImportedDefTemplate<int>);
 USEMEMFUNC(ExplicitInstantiationDeclImportedDefTemplate<int>, f);
-// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"\01?f@?$ExplicitInstantiationDeclImportedDefTemplate at H@@QAEXXZ"
-// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc %struct.ExplicitInstantiationDeclImportedDefTemplate* @"\01??0?$ExplicitInstantiationDeclImportedDefTemplate at H@@QAE at XZ"
+// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"?f@?$ExplicitInstantiationDeclImportedDefTemplate at H@@QAEXXZ"
+// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc %struct.ExplicitInstantiationDeclImportedDefTemplate* @"??0?$ExplicitInstantiationDeclImportedDefTemplate at H@@QAE at XZ"
 // G32-DAG: define weak_odr dso_local x86_thiscallcc void @_ZN44ExplicitInstantiationDeclImportedDefTemplateIiE1fEv
 
 template <typename T> struct __declspec(dllimport) ExplicitInstantiationDeclExportedDefImportedTemplate { void f() {} ExplicitInstantiationDeclExportedDefImportedTemplate() {} };
@@ -837,15 +837,15 @@ extern template struct __declspec(dllimp
 template struct __declspec(dllexport) ExplicitInstantiationDeclExportedDefImportedTemplate<int>;
 USECLASS(ExplicitInstantiationDeclExportedDefImportedTemplate<int>);
 USEMEMFUNC(ExplicitInstantiationDeclExportedDefImportedTemplate<int>, f);
-// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"\01?f@?$ExplicitInstantiationDeclExportedDefImportedTemplate at H@@QAEXXZ"
-// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc %struct.ExplicitInstantiationDeclExportedDefImportedTemplate* @"\01??0?$ExplicitInstantiationDeclExportedDefImportedTemplate at H@@QAE at XZ"
+// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"?f@?$ExplicitInstantiationDeclExportedDefImportedTemplate at H@@QAEXXZ"
+// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc %struct.ExplicitInstantiationDeclExportedDefImportedTemplate* @"??0?$ExplicitInstantiationDeclExportedDefImportedTemplate at H@@QAE at XZ"
 
 template <typename T> struct PR23770BaseTemplate { void f() {} };
 template <typename T> struct PR23770DerivedTemplate : PR23770BaseTemplate<int> {};
 extern template struct PR23770DerivedTemplate<int>;
 template struct __declspec(dllimport) PR23770DerivedTemplate<int>;
 USEMEMFUNC(PR23770BaseTemplate<int>, f);
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01?f@?$PR23770BaseTemplate at H@@QAEXXZ"
+// M32-DAG: declare dllimport x86_thiscallcc void @"?f@?$PR23770BaseTemplate at H@@QAEXXZ"
 
 namespace PR27810 {
   template <class T>
@@ -861,7 +861,7 @@ namespace PR27810 {
   // functions are emitted unless they are used.
 
   USEMEMFUNC(basic_ostream<char>::sentry, foo);
-  // M32-DAG: define linkonce_odr dso_local x86_thiscallcc void @"\01?foo at sentry@?$basic_ostream at D@PR27810@@QAEXXZ"
+  // M32-DAG: define linkonce_odr dso_local x86_thiscallcc void @"?foo at sentry@?$basic_ostream at D@PR27810@@QAEXXZ"
   // M32-NOT: ??0sentry@?$basic_ostream at D@PR27810@@QAE at XZ
 }
 
@@ -906,69 +906,69 @@ template struct __declspec(dllimport) Ex
 // MS: ClassTemplate<int> gets imported.
 struct __declspec(dllimport) DerivedFromTemplate : public ClassTemplate<int> {};
 USEMEMFUNC(ClassTemplate<int>, func)
-// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"\01?func@?$ClassTemplate at H@@QAEXXZ"
+// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"?func@?$ClassTemplate at H@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ClassTemplateIiE4funcEv
 
 // ImportedTemplate is explicitly imported.
 struct __declspec(dllimport) DerivedFromImportedTemplate : public ImportedClassTemplate<int> {};
 USEMEMFUNC(ImportedClassTemplate<int>, func)
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01?func@?$ImportedClassTemplate at H@@QAEXXZ"
+// M32-DAG: declare dllimport x86_thiscallcc void @"?func@?$ImportedClassTemplate at H@@QAEXXZ"
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN21ImportedClassTemplateIiE4funcEv
 
 // ExportedTemplate is explicitly exported.
 struct __declspec(dllimport) DerivedFromExportedTemplate : public ExportedClassTemplate<int> {};
 USEMEMFUNC(ExportedClassTemplate<int>, func)
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?func@?$ExportedClassTemplate at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?func@?$ExportedClassTemplate at H@@QAEXXZ"
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN21ExportedClassTemplateIiE4funcEv
 
 // Base class already implicitly instantiated without attribute.
 struct DerivedFromTemplateD : public ClassTemplate<double> {};
 struct __declspec(dllimport) DerivedFromTemplateD2 : public ClassTemplate<double> {};
 USEMEMFUNC(ClassTemplate<double>, func)
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01?func@?$ClassTemplate at N@@QAEXXZ"
+// M32-DAG: declare dllimport x86_thiscallcc void @"?func@?$ClassTemplate at N@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ClassTemplateIdE4funcEv
 
 // MS: Base class already instantiated with dfferent attribute.
 struct __declspec(dllexport) DerivedFromTemplateB : public ClassTemplate<bool> {};
 struct __declspec(dllimport) DerivedFromTemplateB2 : public ClassTemplate<bool> {};
 USEMEMFUNC(ClassTemplate<bool>, func)
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?func@?$ClassTemplate at _N@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?func@?$ClassTemplate at _N@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN13ClassTemplateIbE4funcEv
 
 // Base class already specialized without dll attribute.
 struct __declspec(dllimport) DerivedFromExplicitlySpecializedTemplate : public ExplicitlySpecializedTemplate<int> {};
 USEMEMFUNC(ExplicitlySpecializedTemplate<int>, func)
-// M32-DAG: define linkonce_odr dso_local x86_thiscallcc void @"\01?func@?$ExplicitlySpecializedTemplate at H@@QAEXXZ"
+// M32-DAG: define linkonce_odr dso_local x86_thiscallcc void @"?func@?$ExplicitlySpecializedTemplate at H@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN29ExplicitlySpecializedTemplateIiE4funcEv
 
 // Base class alredy specialized with export attribute.
 struct __declspec(dllimport) DerivedFromExplicitlyExportSpecializedTemplate : public ExplicitlyExportSpecializedTemplate<int> {};
 USEMEMFUNC(ExplicitlyExportSpecializedTemplate<int>, func)
-// M32-DAG: define dso_local dllexport x86_thiscallcc void @"\01?func@?$ExplicitlyExportSpecializedTemplate at H@@QAEXXZ"
+// M32-DAG: define dso_local dllexport x86_thiscallcc void @"?func@?$ExplicitlyExportSpecializedTemplate at H@@QAEXXZ"
 // G32-DAG: define dso_local dllexport x86_thiscallcc void @_ZN35ExplicitlyExportSpecializedTemplateIiE4funcEv
 
 // Base class already specialized with import attribute.
 struct __declspec(dllimport) DerivedFromExplicitlyImportSpecializedTemplate : public ExplicitlyImportSpecializedTemplate<int> {};
 USEMEMFUNC(ExplicitlyImportSpecializedTemplate<int>, func)
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01?func@?$ExplicitlyImportSpecializedTemplate at H@@QAEXXZ"
+// M32-DAG: declare dllimport x86_thiscallcc void @"?func@?$ExplicitlyImportSpecializedTemplate at H@@QAEXXZ"
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN35ExplicitlyImportSpecializedTemplateIiE4funcEv
 
 // Base class already instantiated without dll attribute.
 struct __declspec(dllimport) DerivedFromExplicitlyInstantiatedTemplate : public ExplicitlyInstantiatedTemplate<int> {};
 USEMEMFUNC(ExplicitlyInstantiatedTemplate<int>, func)
-// M32-DAG: define weak_odr dso_local x86_thiscallcc void @"\01?func@?$ExplicitlyInstantiatedTemplate at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local x86_thiscallcc void @"?func@?$ExplicitlyInstantiatedTemplate at H@@QAEXXZ"
 // G32-DAG: define weak_odr dso_local x86_thiscallcc void @_ZN30ExplicitlyInstantiatedTemplateIiE4funcEv
 
 // Base class already instantiated with export attribute.
 struct __declspec(dllimport) DerivedFromExplicitlyExportInstantiatedTemplate : public ExplicitlyExportInstantiatedTemplate<int> {};
 USEMEMFUNC(ExplicitlyExportInstantiatedTemplate<int>, func)
-// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"\01?func@?$ExplicitlyExportInstantiatedTemplate at H@@QAEXXZ"
+// M32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @"?func@?$ExplicitlyExportInstantiatedTemplate at H@@QAEXXZ"
 // G32-DAG: define weak_odr dso_local dllexport x86_thiscallcc void @_ZN36ExplicitlyExportInstantiatedTemplateIiE4funcEv
 
 // Base class already instantiated with import attribute.
 struct __declspec(dllimport) DerivedFromExplicitlyImportInstantiatedTemplate : public ExplicitlyImportInstantiatedTemplate<int> {};
 USEMEMFUNC(ExplicitlyImportInstantiatedTemplate<int>, func)
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01?func@?$ExplicitlyImportInstantiatedTemplate at H@@QAEXXZ"
+// M32-DAG: declare dllimport x86_thiscallcc void @"?func@?$ExplicitlyImportInstantiatedTemplate at H@@QAEXXZ"
 // G32-DAG: declare dllimport x86_thiscallcc void @_ZN36ExplicitlyImportInstantiatedTemplateIiE4funcEv
 
 // MS: A dll attribute propagates through multiple levels of instantiation.
@@ -976,7 +976,7 @@ template <typename T> struct TopClass {
 template <typename T> struct MiddleClass : public TopClass<T> { };
 struct __declspec(dllimport) BottomClass : public MiddleClass<int> { };
 USEMEMFUNC(TopClass<int>, func)
-// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"\01?func@?$TopClass at H@@QAEXXZ"
+// M32-DAG: {{declare|define available_externally}} dllimport x86_thiscallcc void @"?func@?$TopClass at H@@QAEXXZ"
 // G32-DAG: define linkonce_odr dso_local x86_thiscallcc void @_ZN8TopClassIiE4funcEv
 
 template <typename T> struct ExplicitInstantiationDeclTemplateBase { void func() {} };
@@ -984,7 +984,7 @@ extern template struct ExplicitInstantia
 struct __declspec(dllimport) DerivedFromExplicitInstantiationDeclTemplateBase : public ExplicitInstantiationDeclTemplateBase<int> {};
 template struct ExplicitInstantiationDeclTemplateBase<int>;
 USEMEMFUNC(ExplicitInstantiationDeclTemplateBase<int>, func)
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01?func@?$ExplicitInstantiationDeclTemplateBase at H@@QAEXXZ"
+// M32-DAG: declare dllimport x86_thiscallcc void @"?func@?$ExplicitInstantiationDeclTemplateBase at H@@QAEXXZ"
 // G32-DAG: define weak_odr dso_local x86_thiscallcc void @_ZN37ExplicitInstantiationDeclTemplateBaseIiE4funcEv
 
 template <typename T> struct ExplicitInstantiationDeclTemplateBase2 { void func() {} };
@@ -992,5 +992,5 @@ extern template struct ExplicitInstantia
 struct __declspec(dllimport) DerivedFromExplicitInstantiationDeclTemplateBase2 : public ExplicitInstantiationDeclTemplateBase2<int> {};
 template struct __declspec(dllexport) ExplicitInstantiationDeclTemplateBase2<int>;
 USEMEMFUNC(ExplicitInstantiationDeclTemplateBase2<int>, func)
-// M32-DAG: declare dllimport x86_thiscallcc void @"\01?func@?$ExplicitInstantiationDeclTemplateBase2 at H@@QAEXXZ"
+// M32-DAG: declare dllimport x86_thiscallcc void @"?func@?$ExplicitInstantiationDeclTemplateBase2 at H@@QAEXXZ"
 // G32-DAG: define weak_odr dso_local x86_thiscallcc void @_ZN38ExplicitInstantiationDeclTemplateBase2IiE4funcEv

Modified: cfe/trunk/test/CodeGenCXX/exceptions-cxx-ehsc.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/exceptions-cxx-ehsc.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/exceptions-cxx-ehsc.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/exceptions-cxx-ehsc.cpp Fri Mar 16 13:36:49 2018
@@ -11,9 +11,9 @@ void caller() {
   may_throw();
 }
 }
-// CHECK-LABEL: define dso_local void @"\01?caller at test1@@YAXXZ"(
+// CHECK-LABEL: define dso_local void @"?caller at test1@@YAXXZ"(
 // CHECK: call void @never_throws(
-// CHECK: invoke void @"\01?may_throw at test1@@YAXXZ"(
+// CHECK: invoke void @"?may_throw at test1@@YAXXZ"(
 
 namespace test2 {
 struct Cleanup { ~Cleanup(); };
@@ -26,6 +26,6 @@ void caller() {
   may_throw();
 }
 }
-// CHECK-LABEL: define dso_local void @"\01?caller at test2@@YAXXZ"(
+// CHECK-LABEL: define dso_local void @"?caller at test2@@YAXXZ"(
 // CHECK: invoke void @throws_int(
-// CHECK: invoke void @"\01?may_throw at test2@@YAXXZ"(
+// CHECK: invoke void @"?may_throw at test2@@YAXXZ"(

Modified: cfe/trunk/test/CodeGenCXX/exceptions-cxx-new.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/exceptions-cxx-new.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/exceptions-cxx-new.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/exceptions-cxx-new.cpp Fri Mar 16 13:36:49 2018
@@ -12,16 +12,16 @@ void test_catch() {
   }
 }
 
-// CHECK-LABEL: define dso_local void @"\01?test_catch@@YAXXZ"(
-// CHECK:   invoke i32 @"\01?f@@YAHH at Z"(i32 1)
+// CHECK-LABEL: define dso_local void @"?test_catch@@YAXXZ"(
+// CHECK:   invoke i32 @"?f@@YAHH at Z"(i32 1)
 // CHECK:         to label %[[NORMAL:.*]] unwind label %[[CATCHSWITCH:.*]]
 
 // CHECK: [[CATCHSWITCH]]
 // CHECK:   %[[CATCHSWITCHPAD:.*]] = catchswitch within none [label %[[CATCH_INT:.*]], label %[[CATCH_DOUBLE:.*]]] unwind to caller
 
 // CHECK: [[CATCH_INT]]
-// CHECK:   %[[CATCHPAD_INT:.*]] = catchpad within %[[CATCHSWITCHPAD]] [%rtti.TypeDescriptor2* @"\01??_R0H at 8", i32 0, i8* null]
-// CHECK:   call i32 @"\01?f@@YAHH at Z"(i32 2)
+// CHECK:   %[[CATCHPAD_INT:.*]] = catchpad within %[[CATCHSWITCHPAD]] [%rtti.TypeDescriptor2* @"??_R0H at 8", i32 0, i8* null]
+// CHECK:   call i32 @"?f@@YAHH at Z"(i32 2)
 // CHECK:   catchret from %[[CATCHPAD_INT]] to label %[[LEAVE_INT_CATCH:.*]]
 
 // CHECK: [[LEAVE_INT_CATCH]]
@@ -31,8 +31,8 @@ void test_catch() {
 // CHECK:   ret void
 
 // CHECK: [[CATCH_DOUBLE]]
-// CHECK:   %[[CATCHPAD_DOUBLE:.*]] = catchpad within %[[CATCHSWITCHPAD]] [%rtti.TypeDescriptor2* @"\01??_R0N at 8", i32 0, i8* null]
-// CHECK:   call i32 @"\01?f@@YAHH at Z"(i32 3)
+// CHECK:   %[[CATCHPAD_DOUBLE:.*]] = catchpad within %[[CATCHSWITCHPAD]] [%rtti.TypeDescriptor2* @"??_R0N at 8", i32 0, i8* null]
+// CHECK:   call i32 @"?f@@YAHH at Z"(i32 3)
 // CHECK:   catchret from %[[CATCHPAD_DOUBLE]] to label %[[LEAVE_DOUBLE_CATCH:.*]]
 
 // CHECK: [[LEAVE_DOUBLE_CATCH]]
@@ -50,22 +50,22 @@ void test_cleanup() {
   f(1);
 }
 
-// CHECK-LABEL: define dso_local {{.*}} @"\01?test_cleanup@@YAXXZ"(
-// CHECK:   invoke i32 @"\01?f@@YAHH at Z"(i32 1)
+// CHECK-LABEL: define dso_local {{.*}} @"?test_cleanup@@YAXXZ"(
+// CHECK:   invoke i32 @"?f@@YAHH at Z"(i32 1)
 // CHECK:           to label %[[LEAVE_FUNC:.*]] unwind label %[[CLEANUP:.*]]
 
 // CHECK: [[LEAVE_FUNC]]
-// CHECK:   call x86_thiscallcc void @"\01??1Cleanup@@QAE at XZ"(
+// CHECK:   call x86_thiscallcc void @"??1Cleanup@@QAE at XZ"(
 // CHECK:   ret void
 
 // CHECK: [[CLEANUP]]
 // CHECK:   %[[CLEANUPPAD:.*]] = cleanuppad within none []
-// CHECK:   call x86_thiscallcc void @"\01??1Cleanup@@QAE at XZ"(
+// CHECK:   call x86_thiscallcc void @"??1Cleanup@@QAE at XZ"(
 // CHECK:   cleanupret from %[[CLEANUPPAD]] unwind to caller
 
 
-// CHECK-LABEL: define {{.*}} void @"\01??1Cleanup@@QAE at XZ"(
-// CHECK:   invoke i32 @"\01?f@@YAHH at Z"(i32 -1)
+// CHECK-LABEL: define {{.*}} void @"??1Cleanup@@QAE at XZ"(
+// CHECK:   invoke i32 @"?f@@YAHH at Z"(i32 -1)
 // CHECK:           to label %[[LEAVE_FUNC:.*]] unwind label %[[TERMINATE:.*]]
 
 // CHECK: [[LEAVE_FUNC]]
@@ -73,5 +73,5 @@ void test_cleanup() {
 
 // CHECK: [[TERMINATE]]
 // CHECK:   %[[CLEANUPPAD:.*]] = cleanuppad within none []
-// CHECK-NEXT:   call void @"\01?terminate@@YAXXZ"() {{.*}} [ "funclet"(token %[[CLEANUPPAD]]) ]
+// CHECK-NEXT:   call void @"?terminate@@YAXXZ"() {{.*}} [ "funclet"(token %[[CLEANUPPAD]]) ]
 

Modified: cfe/trunk/test/CodeGenCXX/exceptions-seh-filter-captures.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/exceptions-seh-filter-captures.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/exceptions-seh-filter-captures.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/exceptions-seh-filter-captures.cpp Fri Mar 16 13:36:49 2018
@@ -20,13 +20,13 @@ extern "C" void test_freefunc(int p1) {
 // CHECK: store i32 13, i32* %[[l1_ptr]], align 4
 // CHECK: invoke void @might_crash()
 
-// CHECK-LABEL: define internal i32 @"\01?filt$0 at 0@test_freefunc@@"(i8* %exception_pointers, i8* %frame_pointer)
+// CHECK-LABEL: define internal i32 @"?filt$0 at 0@test_freefunc@@"(i8* %exception_pointers, i8* %frame_pointer)
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.x86.seh.recoverfp(i8* bitcast (void (i32)* @test_freefunc to i8*), i8* %frame_pointer)
 // CHECK: %[[p1_i8:[^ ]*]] = call i8* @llvm.localrecover(i8* bitcast (void (i32)* @test_freefunc to i8*), i8* %[[fp]], i32 0)
 // CHECK: %[[p1_ptr:[^ ]*]] = bitcast i8* %[[p1_i8]] to i32*
 // CHECK: %[[l1_i8:[^ ]*]] = call i8* @llvm.localrecover(i8* bitcast (void (i32)* @test_freefunc to i8*), i8* %[[fp]], i32 1)
 // CHECK: %[[l1_ptr:[^ ]*]] = bitcast i8* %[[l1_i8]] to i32*
-// CHECK: %[[s1:[^ ]*]] = load i32, i32* @"\01?s1@?1??test_freefunc@@9 at 4HA", align 4
+// CHECK: %[[s1:[^ ]*]] = load i32, i32* @"?s1@?1??test_freefunc@@9 at 4HA", align 4
 // CHECK: %[[l1:[^ ]*]] = load i32, i32* %[[l1_ptr]]
 // CHECK: %[[p1:[^ ]*]] = load i32, i32* %[[p1_ptr]]
 // CHECK: call i32 (i32, ...) @basic_filter(i32 %[[p1]], i32 %[[l1]], i32 %[[s1]])
@@ -45,14 +45,14 @@ void S::test_method() {
   }
 }
 
-// CHECK-LABEL: define dso_local void @"\01?test_method at S@@QEAAXXZ"(%struct.S* %this)
+// CHECK-LABEL: define dso_local void @"?test_method at S@@QEAAXXZ"(%struct.S* %this)
 // CHECK: @llvm.localescape(i32* %[[l1_addr:[^, ]*]])
 // CHECK: store i32 13, i32* %[[l1_addr]], align 4
 // CHECK: invoke void @might_crash()
 
-// CHECK-LABEL: define internal i32 @"\01?filt$0 at 0@test_method at S@@"(i8* %exception_pointers, i8* %frame_pointer)
-// CHECK: %[[fp:[^ ]*]] = call i8* @llvm.x86.seh.recoverfp(i8* bitcast (void (%struct.S*)* @"\01?test_method at S@@QEAAXXZ" to i8*), i8* %frame_pointer)
-// CHECK: %[[l1_i8:[^ ]*]] = call i8* @llvm.localrecover(i8* bitcast (void (%struct.S*)* @"\01?test_method at S@@QEAAXXZ" to i8*), i8* %[[fp]], i32 0)
+// CHECK-LABEL: define internal i32 @"?filt$0 at 0@test_method at S@@"(i8* %exception_pointers, i8* %frame_pointer)
+// CHECK: %[[fp:[^ ]*]] = call i8* @llvm.x86.seh.recoverfp(i8* bitcast (void (%struct.S*)* @"?test_method at S@@QEAAXXZ" to i8*), i8* %frame_pointer)
+// CHECK: %[[l1_i8:[^ ]*]] = call i8* @llvm.localrecover(i8* bitcast (void (%struct.S*)* @"?test_method at S@@QEAAXXZ" to i8*), i8* %[[fp]], i32 0)
 // CHECK: %[[l1_ptr:[^ ]*]] = bitcast i8* %[[l1_i8]] to i32*
 // CHECK: %[[l1:[^ ]*]] = load i32, i32* %[[l1_ptr]]
 // CHECK: call i32 (i32, ...) @basic_filter(i32 %[[l1]])
@@ -70,14 +70,14 @@ void test_lambda() {
   lambda();
 }
 
-// CHECK-LABEL: define internal void @"\01??R<lambda_0>@?0??test_lambda@@YAXXZ at QEBA@XZ"(%class.anon* %this)
+// CHECK-LABEL: define internal void @"??R<lambda_0>@?0??test_lambda@@YAXXZ at QEBA@XZ"(%class.anon* %this)
 // CHECK: @llvm.localescape(i32* %[[l2_addr:[^, ]*]])
 // CHECK: store i32 42, i32* %[[l2_addr]], align 4
 // CHECK: invoke void @might_crash()
 
-// CHECK-LABEL: define internal i32 @"\01?filt$0 at 0@?R<lambda_0>@?0??test_lambda@@YAXXZ@"(i8* %exception_pointers, i8* %frame_pointer)
-// CHECK: %[[fp:[^ ]*]] = call i8* @llvm.x86.seh.recoverfp(i8* bitcast (void (%class.anon*)* @"\01??R<lambda_0>@?0??test_lambda@@YAXXZ at QEBA@XZ" to i8*), i8* %frame_pointer)
-// CHECK: %[[l2_i8:[^ ]*]] = call i8* @llvm.localrecover(i8* bitcast (void (%class.anon*)* @"\01??R<lambda_0>@?0??test_lambda@@YAXXZ at QEBA@XZ" to i8*), i8* %[[fp]], i32 0)
+// CHECK-LABEL: define internal i32 @"?filt$0 at 0@?R<lambda_0>@?0??test_lambda@@YAXXZ@"(i8* %exception_pointers, i8* %frame_pointer)
+// CHECK: %[[fp:[^ ]*]] = call i8* @llvm.x86.seh.recoverfp(i8* bitcast (void (%class.anon*)* @"??R<lambda_0>@?0??test_lambda@@YAXXZ at QEBA@XZ" to i8*), i8* %frame_pointer)
+// CHECK: %[[l2_i8:[^ ]*]] = call i8* @llvm.localrecover(i8* bitcast (void (%class.anon*)* @"??R<lambda_0>@?0??test_lambda@@YAXXZ at QEBA@XZ" to i8*), i8* %[[fp]], i32 0)
 // CHECK: %[[l2_ptr:[^ ]*]] = bitcast i8* %[[l2_i8]] to i32*
 // CHECK: %[[l2:[^ ]*]] = load i32, i32* %[[l2_ptr]]
 // CHECK: call i32 (i32, ...) @basic_filter(i32 %[[l2]])

Modified: cfe/trunk/test/CodeGenCXX/exceptions-seh.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/exceptions-seh.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/exceptions-seh.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/exceptions-seh.cpp Fri Mar 16 13:36:49 2018
@@ -23,26 +23,26 @@ extern "C" void use_cxx() {
 
 // CXXEH-LABEL: define dso_local void @use_cxx()
 // CXXEH-SAME:  personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*)
-// CXXEH: call %struct.HasCleanup* @"\01??0HasCleanup@@QEAA at XZ"(%struct.HasCleanup* %{{.*}})
+// CXXEH: call %struct.HasCleanup* @"??0HasCleanup@@QEAA at XZ"(%struct.HasCleanup* %{{.*}})
 // CXXEH: invoke void @might_throw()
 // CXXEH:       to label %[[cont:[^ ]*]] unwind label %[[lpad:[^ ]*]]
 //
 // CXXEH: [[cont]]
-// CXXEH: call void @"\01??1HasCleanup@@QEAA at XZ"(%struct.HasCleanup* %{{.*}})
+// CXXEH: call void @"??1HasCleanup@@QEAA at XZ"(%struct.HasCleanup* %{{.*}})
 // CXXEH: ret void
 //
 // CXXEH: [[lpad]]
 // CXXEH: cleanuppad
-// CXXEH: call void @"\01??1HasCleanup@@QEAA at XZ"(%struct.HasCleanup* %{{.*}})
+// CXXEH: call void @"??1HasCleanup@@QEAA at XZ"(%struct.HasCleanup* %{{.*}})
 // CXXEH: cleanupret
 
 // NOCXX-LABEL: define dso_local void @use_cxx()
 // NOCXX-NOT: invoke
-// NOCXX: call %struct.HasCleanup* @"\01??0HasCleanup@@QEAA at XZ"(%struct.HasCleanup* %{{.*}})
+// NOCXX: call %struct.HasCleanup* @"??0HasCleanup@@QEAA at XZ"(%struct.HasCleanup* %{{.*}})
 // NOCXX-NOT: invoke
 // NOCXX: call void @might_throw()
 // NOCXX-NOT: invoke
-// NOCXX: call void @"\01??1HasCleanup@@QEAA at XZ"(%struct.HasCleanup* %{{.*}})
+// NOCXX: call void @"??1HasCleanup@@QEAA at XZ"(%struct.HasCleanup* %{{.*}})
 // NOCXX-NOT: invoke
 // NOCXX: ret void
 
@@ -90,12 +90,12 @@ extern "C" void nested_finally() {
 // CHECK-LABEL: define dso_local void @nested_finally() #{{[0-9]+}}
 // CHECK-SAME:  personality i8* bitcast (i32 (...)* @__C_specific_handler to i8*)
 // CHECK: invoke void @might_throw()
-// CHECK: call void @"\01?fin$0 at 0@nested_finally@@"(i8 1, i8* {{.*}})
+// CHECK: call void @"?fin$0 at 0@nested_finally@@"(i8 1, i8* {{.*}})
 
-// CHECK-LABEL: define internal void @"\01?fin$0 at 0@nested_finally@@"
+// CHECK-LABEL: define internal void @"?fin$0 at 0@nested_finally@@"
 // CHECK-SAME:  personality i8* bitcast (i32 (...)* @__C_specific_handler to i8*)
 // CHECK: invoke void @might_throw()
-// CHECK: call void @"\01?fin$1 at 0@nested_finally@@"(i8 1, i8* {{.*}})
+// CHECK: call void @"?fin$1 at 0@nested_finally@@"(i8 1, i8* {{.*}})
 
 void use_seh_in_lambda() {
   ([]() {
@@ -108,15 +108,15 @@ void use_seh_in_lambda() {
   might_throw();
 }
 
-// CXXEH-LABEL: define dso_local void @"\01?use_seh_in_lambda@@YAXXZ"()
+// CXXEH-LABEL: define dso_local void @"?use_seh_in_lambda@@YAXXZ"()
 // CXXEH-SAME:  personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*)
 // CXXEH: cleanuppad
 
-// NOCXX-LABEL: define dso_local void @"\01?use_seh_in_lambda@@YAXXZ"()
+// NOCXX-LABEL: define dso_local void @"?use_seh_in_lambda@@YAXXZ"()
 // NOCXX-NOT: invoke
 // NOCXX: ret void
 
-// CHECK-LABEL: define internal void @"\01??R<lambda_0>@?0??use_seh_in_lambda@@YAXXZ at QEBA@XZ"(%class.anon* %this)
+// CHECK-LABEL: define internal void @"??R<lambda_0>@?0??use_seh_in_lambda@@YAXXZ at QEBA@XZ"(%class.anon* %this)
 // CXXEH-SAME:  personality i8* bitcast (i32 (...)* @__C_specific_handler to i8*)
 // CHECK: invoke void @might_throw() #[[NOINLINE]]
 // CHECK: catchpad
@@ -143,24 +143,24 @@ void use_inline() {
 // CHECK-SAME:  personality i8* bitcast (i32 (...)* @__C_specific_handler to i8*)
 // CHECK: invoke void @might_throw()
 //
-// CHECK: catchpad {{.*}} [i8* bitcast (i32 (i8*, i8*)* @"\01?filt$0 at 0@use_seh_in_inline_func@@" to i8*)]
+// CHECK: catchpad {{.*}} [i8* bitcast (i32 (i8*, i8*)* @"?filt$0 at 0@use_seh_in_inline_func@@" to i8*)]
 //
 // CHECK: invoke void @might_throw()
 //
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK: call void @"\01?fin$0 at 0@use_seh_in_inline_func@@"(i8 0, i8* %[[fp]])
+// CHECK: call void @"?fin$0 at 0@use_seh_in_inline_func@@"(i8 0, i8* %[[fp]])
 // CHECK: ret void
 //
 // CHECK: cleanuppad
 // CHECK: %[[fp:[^ ]*]] = call i8* @llvm.localaddress()
-// CHECK: call void @"\01?fin$0 at 0@use_seh_in_inline_func@@"(i8 1, i8* %[[fp]])
+// CHECK: call void @"?fin$0 at 0@use_seh_in_inline_func@@"(i8 1, i8* %[[fp]])
 
-// CHECK-LABEL: define internal i32 @"\01?filt$0 at 0@use_seh_in_inline_func@@"(i8* %exception_pointers, i8* %frame_pointer) #{{[0-9]+}}
+// CHECK-LABEL: define internal i32 @"?filt$0 at 0@use_seh_in_inline_func@@"(i8* %exception_pointers, i8* %frame_pointer) #{{[0-9]+}}
 // CHECK: icmp eq i32 %{{.*}}, 424242
 // CHECK: zext i1 %{{.*}} to i32
 // CHECK: ret i32
 
-// CHECK-LABEL: define internal void @"\01?fin$0 at 0@use_seh_in_inline_func@@"(i8 %abnormal_termination, i8* %frame_pointer) #{{[0-9]+}}
+// CHECK-LABEL: define internal void @"?fin$0 at 0@use_seh_in_inline_func@@"(i8 %abnormal_termination, i8* %frame_pointer) #{{[0-9]+}}
 // CHECK: store i32 1234, i32* @my_unique_global
 
 // CHECK: attributes #[[NOINLINE]] = { {{.*noinline.*}} }

Modified: cfe/trunk/test/CodeGenCXX/explicit-instantiation.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/explicit-instantiation.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/explicit-instantiation.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/explicit-instantiation.cpp Fri Mar 16 13:36:49 2018
@@ -119,14 +119,14 @@ namespace NestedClasses {
   // definition of Inner.
   template struct Outer<int>;
   // CHECK: define weak_odr void @_ZN13NestedClasses5OuterIiE5Inner1fEv
-  // CHECK-MS: define weak_odr dso_local x86_thiscallcc void @"\01?f at Inner@?$Outer at H@NestedClasses@@QAEXXZ"
+  // CHECK-MS: define weak_odr dso_local x86_thiscallcc void @"?f at Inner@?$Outer at H@NestedClasses@@QAEXXZ"
 
   // Explicit instantiation declaration of Outer causes explicit instantiation
   // declaration of Inner, but not in MSVC mode.
   extern template struct Outer<char>;
   auto use = &Outer<char>::Inner::f;
   // CHECK: {{declare|define available_externally}} void @_ZN13NestedClasses5OuterIcE5Inner1fEv
-  // CHECK-MS: define linkonce_odr dso_local x86_thiscallcc void @"\01?f at Inner@?$Outer at D@NestedClasses@@QAEXXZ"
+  // CHECK-MS: define linkonce_odr dso_local x86_thiscallcc void @"?f at Inner@?$Outer at D@NestedClasses@@QAEXXZ"
 }
 
 // Check that we emit definitions from explicit instantiations even when they

Modified: cfe/trunk/test/CodeGenCXX/funcsig.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/funcsig.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/funcsig.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/funcsig.cpp Fri Mar 16 13:36:49 2018
@@ -12,24 +12,24 @@ int printf(const char *, ...);
 void funcNoProto() {
   printf("__FUNCSIG__ %s\n\n", __FUNCSIG__);
 }
-// CHECK-C:   @"\01??_C at _0BL@IHLLLCAO at void?5__cdecl?5funcNoProto?$CI?$CJ?$AA@" = linkonce_odr unnamed_addr constant [27 x i8] c"void __cdecl funcNoProto()\00"
-// CHECK-CXX: @"\01??_C at _0BP@PJOECCJN at void?5__cdecl?5funcNoProto?$CIvoid?$CJ?$AA@" = linkonce_odr unnamed_addr constant [31 x i8] c"void __cdecl funcNoProto(void)\00"
+// CHECK-C:   @"??_C at _0BL@IHLLLCAO at void?5__cdecl?5funcNoProto?$CI?$CJ?$AA@" = linkonce_odr unnamed_addr constant [27 x i8] c"void __cdecl funcNoProto()\00"
+// CHECK-CXX: @"??_C at _0BP@PJOECCJN at void?5__cdecl?5funcNoProto?$CIvoid?$CJ?$AA@" = linkonce_odr unnamed_addr constant [31 x i8] c"void __cdecl funcNoProto(void)\00"
 
 void funcNoParams(void) {
   printf("__FUNCSIG__ %s\n\n", __FUNCSIG__);
 }
-// CHECK: @"\01??_C at _0CA@GBIDFNBN at void?5__cdecl?5funcNoParams?$CIvoid?$CJ?$AA@" = linkonce_odr unnamed_addr constant [32 x i8] c"void __cdecl funcNoParams(void)\00"
+// CHECK: @"??_C at _0CA@GBIDFNBN at void?5__cdecl?5funcNoParams?$CIvoid?$CJ?$AA@" = linkonce_odr unnamed_addr constant [32 x i8] c"void __cdecl funcNoParams(void)\00"
 
 void freeFunc(int *p, char c) {
   printf("__FUNCSIG__ %s\n\n", __FUNCSIG__);
 }
-// CHECK: @"\01??_C at _0CD@KLGMNNL at void?5__cdecl?5freeFunc?$CIint?5?$CK?0?5cha@" = linkonce_odr unnamed_addr constant [{{.*}} x i8] c"void __cdecl freeFunc(int *, char)\00"
+// CHECK: @"??_C at _0CD@KLGMNNL at void?5__cdecl?5freeFunc?$CIint?5?$CK?0?5cha@" = linkonce_odr unnamed_addr constant [{{.*}} x i8] c"void __cdecl freeFunc(int *, char)\00"
 
 #ifdef __cplusplus
 void funcVarargs(...) {
   printf("__FUNCSIG__ %s\n\n", __FUNCSIG__);
 }
-// CHECK-CXX: @"\01??_C at _0BO@BOBPLEKP at void?5__cdecl?5funcVarargs?$CI?4?4?4?$CJ?$AA@" = linkonce_odr unnamed_addr constant [30 x i8] c"void __cdecl funcVarargs(...)\00"
+// CHECK-CXX: @"??_C at _0BO@BOBPLEKP at void?5__cdecl?5funcVarargs?$CI?4?4?4?$CJ?$AA@" = linkonce_odr unnamed_addr constant [30 x i8] c"void __cdecl funcVarargs(...)\00"
 
 struct TopLevelClass {
   void topLevelMethod(int *, char);
@@ -37,7 +37,7 @@ struct TopLevelClass {
 void TopLevelClass::topLevelMethod(int *, char) {
   printf("__FUNCSIG__ %s\n\n", __FUNCSIG__);
 }
-// CHECK-CXX: @"\01??_C at _0DL@OBHNMDP at void?5__thiscall?5TopLevelClass?3?3t@" = linkonce_odr unnamed_addr constant [{{.*}} x i8] c"void __thiscall TopLevelClass::topLevelMethod(int *, char)\00"
+// CHECK-CXX: @"??_C at _0DL@OBHNMDP at void?5__thiscall?5TopLevelClass?3?3t@" = linkonce_odr unnamed_addr constant [{{.*}} x i8] c"void __thiscall TopLevelClass::topLevelMethod(int *, char)\00"
 
 namespace NS {
 struct NamespacedClass {
@@ -46,6 +46,6 @@ struct NamespacedClass {
 void NamespacedClass::namespacedMethod(int *, char) {
   printf("__FUNCSIG__ %s\n\n", __FUNCSIG__);
 }
-// CHECK-CXX: @"\01??_C at _0ED@PFDKIEBA at void?5__thiscall?5NS?3?3NamespacedCl@" = linkonce_odr unnamed_addr constant [{{.*}} x i8] c"void __thiscall NS::NamespacedClass::namespacedMethod(int *, char)\00"
+// CHECK-CXX: @"??_C at _0ED@PFDKIEBA at void?5__thiscall?5NS?3?3NamespacedCl@" = linkonce_odr unnamed_addr constant [{{.*}} x i8] c"void __thiscall NS::NamespacedClass::namespacedMethod(int *, char)\00"
 }
 #endif

Modified: cfe/trunk/test/CodeGenCXX/hidden-dllimport.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/hidden-dllimport.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/hidden-dllimport.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/hidden-dllimport.cpp Fri Mar 16 13:36:49 2018
@@ -2,7 +2,7 @@
 
 // We used to declare this hidden dllimport, which is contradictory.
 
-// CHECK: declare dllimport void @"\01?bar at foo@@QEAAXXZ"(%struct.foo*)
+// CHECK: declare dllimport void @"?bar at foo@@QEAAXXZ"(%struct.foo*)
 
 struct __attribute__((dllimport)) foo {
   void bar() {}

Modified: cfe/trunk/test/CodeGenCXX/inheriting-constructor.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/inheriting-constructor.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/inheriting-constructor.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/inheriting-constructor.cpp Fri Mar 16 13:36:49 2018
@@ -18,8 +18,8 @@ D d(123);
 // ITANIUM-LABEL: define void @_ZN1BD2Ev
 // ITANIUM-LABEL: define void @_ZN1BD1Ev
 // ITANIUM-LABEL: define void @_ZN1BD0Ev
-// WIN32-LABEL: define {{.*}}void @"\01??1B@@UAE at XZ"
-// WIN64-LABEL: define {{.*}}void @"\01??1B@@UEAA at XZ"
+// WIN32-LABEL: define {{.*}}void @"??1B@@UAE at XZ"
+// WIN64-LABEL: define {{.*}}void @"??1B@@UEAA at XZ"
 
 // ITANIUM-LABEL: define linkonce_odr void @_ZN1BCI11AEi(
 // ITANIUM: call void @_ZN1BCI21AEi(
@@ -27,15 +27,15 @@ D d(123);
 // ITANIUM-LABEL: define linkonce_odr void @_ZN1DCI11CIiEET_(
 // ITANIUM: call void @_ZN1DCI21CIiEET_(
 
-// WIN32-LABEL: define internal {{.*}} @"\01??0B@@QAE at H@Z"(
-// WIN32: call {{.*}} @"\01??0A@@QAE at H@Z"(
-// WIN64-LABEL: define internal {{.*}} @"\01??0B@@QEAA at H@Z"(
-// WIN64: call {{.*}} @"\01??0A@@QEAA at H@Z"(
-
-// WIN32-LABEL: define internal {{.*}} @"\01??0D@@QAE at H@Z"(
-// WIN32: call {{.*}} @"\01??$?0H at C@@QAE at H@Z"
-// WIN64-LABEL: define internal {{.*}} @"\01??0D@@QEAA at H@Z"(
-// WIN64: call {{.*}} @"\01??$?0H at C@@QEAA at H@Z"
+// WIN32-LABEL: define internal {{.*}} @"??0B@@QAE at H@Z"(
+// WIN32: call {{.*}} @"??0A@@QAE at H@Z"(
+// WIN64-LABEL: define internal {{.*}} @"??0B@@QEAA at H@Z"(
+// WIN64: call {{.*}} @"??0A@@QEAA at H@Z"(
+
+// WIN32-LABEL: define internal {{.*}} @"??0D@@QAE at H@Z"(
+// WIN32: call {{.*}} @"??$?0H at C@@QAE at H@Z"
+// WIN64-LABEL: define internal {{.*}} @"??0D@@QEAA at H@Z"(
+// WIN64: call {{.*}} @"??$?0H at C@@QEAA at H@Z"
 
 struct Q { Q(int); Q(const Q&); ~Q(); };
 struct Z { Z(); Z(int); ~Z(); int n; };
@@ -55,10 +55,10 @@ namespace noninline_nonvirt {
   // ITANIUM: call void @_ZN17noninline_nonvirt1BCI2NS_1AEEiO1QPvU17pass_object_size0({{.*}}, i32 {{.*}}, %{{.*}}* {{.*}}, i8* {{.*}}, i{{32|64}} {{.*}})
 
   // In MSABI, we don't have ctor variants. B ctor forwards to A ctor.
-  // MSABI-LABEL: define internal {{.*}} @"\01??0B at noninline_nonvirt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
-  // MSABI: call {{.*}} @"\01??0Z@@Q{{AE|EAA}}@XZ"(
-  // MSABI: call {{.*}} @"\01??0A at noninline_nonvirt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
-  // MSABI: call {{.*}} @"\01??0Z@@Q{{AE|EAA}}@XZ"(
+  // MSABI-LABEL: define internal {{.*}} @"??0B at noninline_nonvirt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
+  // MSABI: call {{.*}} @"??0Z@@Q{{AE|EAA}}@XZ"(
+  // MSABI: call {{.*}} @"??0A at noninline_nonvirt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
+  // MSABI: call {{.*}} @"??0Z@@Q{{AE|EAA}}@XZ"(
 
   struct C : B { using B::B; };
   C c(1, 2, &c);
@@ -66,8 +66,8 @@ namespace noninline_nonvirt {
   // ITANIUM-LABEL: define linkonce_odr void @_ZN17noninline_nonvirt1CCI1NS_1AEEiO1QPvU17pass_object_size0(
   // ITANIUM: call void @_ZN17noninline_nonvirt1CCI2NS_1AEEiO1QPvU17pass_object_size0({{.*}}, i32 {{.*}}, %{{.*}}* {{.*}}, i8* {{.*}}, i{{32|64}} {{.*}})
 
-  // MSABI-LABEL: define internal {{.*}} @"\01??0C at noninline_nonvirt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
-  // MSABI: call {{.*}} @"\01??0B at noninline_nonvirt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
+  // MSABI-LABEL: define internal {{.*}} @"??0C at noninline_nonvirt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
+  // MSABI: call {{.*}} @"??0B at noninline_nonvirt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
 }
 
 namespace noninline_virt {
@@ -81,13 +81,13 @@ namespace noninline_virt {
   // ITANIUM: store {{.*}} @_ZTVN14noninline_virt1BE
   // ITANIUM: call void @_ZN1ZC1Ev(
 
-  // MSABI-LABEL: define internal {{.*}} @"\01??0B at noninline_virt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}}, i32 %{{.*}})
+  // MSABI-LABEL: define internal {{.*}} @"??0B at noninline_virt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}}, i32 %{{.*}})
   // MSABI: %[[COMPLETE:.*]] = icmp ne
   // MSABI: br i1 %[[COMPLETE]],
-  // MSABI: call {{.*}} @"\01??0A at noninline_virt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
+  // MSABI: call {{.*}} @"??0A at noninline_virt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
   // MSABI: br
-  // MSABI: call {{.*}} @"\01??0Z@@Q{{AE|EAA}}@XZ"(
-  // MSABI: call {{.*}} @"\01??0Z@@Q{{AE|EAA}}@XZ"(
+  // MSABI: call {{.*}} @"??0Z@@Q{{AE|EAA}}@XZ"(
+  // MSABI: call {{.*}} @"??0Z@@Q{{AE|EAA}}@XZ"(
 
   struct C : B { using B::B; };
   C c(1, 2, &c);
@@ -101,12 +101,12 @@ namespace noninline_virt {
   // C constructor forwards to B constructor and A constructor. We pass the args
   // to both. FIXME: Can we pass undef here instead, for the base object
   // constructor call?
-  // MSABI-LABEL: define internal {{.*}} @"\01??0C at noninline_virt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}}, i32 %{{.*}})
+  // MSABI-LABEL: define internal {{.*}} @"??0C at noninline_virt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}}, i32 %{{.*}})
   // MSABI: %[[COMPLETE:.*]] = icmp ne
   // MSABI: br i1 %[[COMPLETE]],
-  // MSABI: call {{.*}} @"\01??0A at noninline_virt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
+  // MSABI: call {{.*}} @"??0A at noninline_virt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}})
   // MSABI: br
-  // MSABI: call {{.*}} @"\01??0B at noninline_virt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}}, i32 0)
+  // MSABI: call {{.*}} @"??0B at noninline_virt@@Q{{AE|EAA}}@H$$Q{{E?}}AUQ@@P{{E?}}AXW4__pass_object_size0 at __clang@@@Z"(%{{.*}}, i32{{.*}}, %{{.*}}, i8*{{.*}}, i{{32|64}}{{.*}}, i32 0)
 }
 
 // For MSABI only, check that inalloca arguments result in inlining.
@@ -118,75 +118,75 @@ namespace inalloca_nonvirt {
   // ITANIUM-LABEL: define linkonce_odr void @_ZN16inalloca_nonvirt1BCI1NS_1AEE1QiS1_OS1_(
   // ITANIUM: call void @_ZN16inalloca_nonvirt1BCI2NS_1AEE1QiS1_OS1_(
 
-  // MSABI-LABEL: define internal void @"\01??__Eb at inalloca_nonvirt@@YAXXZ"(
+  // MSABI-LABEL: define internal void @"??__Eb at inalloca_nonvirt@@YAXXZ"(
 
   // On Win32, the inalloca call can't be forwarded so we force inlining.
   // WIN32: %[[TMP:.*]] = alloca
   // WIN32: call i8* @llvm.stacksave()
   // WIN32: %[[ARGMEM:.*]] = alloca inalloca
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"(%{{.*}}* %[[TMP]], i32 4)
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"(%{{.*}}* %[[TMP]], i32 4)
   // WIN32: %[[ARG3:.*]] = getelementptr {{.*}} %[[ARGMEM]]
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"({{.*}}* %[[ARG3]], i32 3)
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"({{.*}}* %[[ARG3]], i32 3)
   // WIN32: %[[ARG1:.*]] = getelementptr {{.*}} %[[ARGMEM]]
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"({{.*}}* %[[ARG1]], i32 1)
-  // WIN32: call {{.*}} @"\01??0Z@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"({{.*}}* %[[ARG1]], i32 1)
+  // WIN32: call {{.*}} @"??0Z@@QAE at XZ"(
   // WIN32: %[[ARG2:.*]] = getelementptr {{.*}} %[[ARGMEM]]
   // WIN32: store i32 2, i32* %[[ARG2]]
   // WIN32: %[[ARG4:.*]] = getelementptr {{.*}} %[[ARGMEM]]
   // WIN32: store {{.*}}* %[[TMP]], {{.*}}** %[[ARG4]]
-  // WIN32: call {{.*}} @"\01??0A at inalloca_nonvirt@@QAE at UQ@@H0$$QAU2@@Z"(%{{[^,]*}}, <{{.*}}>* inalloca %[[ARGMEM]])
+  // WIN32: call {{.*}} @"??0A at inalloca_nonvirt@@QAE at UQ@@H0$$QAU2@@Z"(%{{[^,]*}}, <{{.*}}>* inalloca %[[ARGMEM]])
   // WIN32: call void @llvm.stackrestore(
-  // WIN32: call {{.*}} @"\01??0Z@@QAE at XZ"(
-  // WIN32: call {{.*}} @"\01??1Q@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??0Z@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??1Q@@QAE at XZ"(
 
   // On Win64, the Q arguments would be destroyed in the callee. We don't yet
   // support that in the non-inlined case, so we force inlining.
   // WIN64: %[[TMP:.*]] = alloca
   // WIN64: %[[ARG3:.*]] = alloca
   // WIN64: %[[ARG1:.*]] = alloca
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[TMP]], i32 4)
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[ARG3]], i32 3)
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[ARG1]], i32 1)
-  // WIN64: call {{.*}} @"\01??0Z@@QEAA at XZ"(
-  // WIN64: call {{.*}} @"\01??0A at inalloca_nonvirt@@QEAA at UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]])
-  // WIN64: call {{.*}} @"\01??0Z@@QEAA at XZ"(
-  // WIN64: call void @"\01??1Q@@QEAA at XZ"({{.*}}* %[[TMP]])
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[TMP]], i32 4)
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[ARG3]], i32 3)
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[ARG1]], i32 1)
+  // WIN64: call {{.*}} @"??0Z@@QEAA at XZ"(
+  // WIN64: call {{.*}} @"??0A at inalloca_nonvirt@@QEAA at UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]])
+  // WIN64: call {{.*}} @"??0Z@@QEAA at XZ"(
+  // WIN64: call void @"??1Q@@QEAA at XZ"({{.*}}* %[[TMP]])
 
   struct C : B { using B::B; };
   C c(1, 2, 3, 4);
-  // MSABI-LABEL: define internal void @"\01??__Ec at inalloca_nonvirt@@YAXXZ"(
+  // MSABI-LABEL: define internal void @"??__Ec at inalloca_nonvirt@@YAXXZ"(
 
   // On Win32, the inalloca call can't be forwarded so we force inlining.
   // WIN32: %[[TMP:.*]] = alloca
   // WIN32: call i8* @llvm.stacksave()
   // WIN32: %[[ARGMEM:.*]] = alloca inalloca
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"(%{{.*}}* %[[TMP]], i32 4)
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"(%{{.*}}* %[[TMP]], i32 4)
   // WIN32: %[[ARG3:.*]] = getelementptr {{.*}} %[[ARGMEM]]
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"({{.*}}* %[[ARG3]], i32 3)
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"({{.*}}* %[[ARG3]], i32 3)
   // WIN32: %[[ARG1:.*]] = getelementptr {{.*}} %[[ARGMEM]]
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"({{.*}}* %[[ARG1]], i32 1)
-  // WIN32: call {{.*}} @"\01??0Z@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"({{.*}}* %[[ARG1]], i32 1)
+  // WIN32: call {{.*}} @"??0Z@@QAE at XZ"(
   // WIN32: %[[ARG2:.*]] = getelementptr {{.*}} %[[ARGMEM]]
   // WIN32: store i32 2, i32* %[[ARG2]]
   // WIN32: %[[ARG4:.*]] = getelementptr {{.*}} %[[ARGMEM]]
   // WIN32: store {{.*}}* %[[TMP]], {{.*}}** %[[ARG4]]
-  // WIN32: call {{.*}} @"\01??0A at inalloca_nonvirt@@QAE at UQ@@H0$$QAU2@@Z"(%{{[^,]*}}, <{{.*}}>* inalloca %[[ARGMEM]])
+  // WIN32: call {{.*}} @"??0A at inalloca_nonvirt@@QAE at UQ@@H0$$QAU2@@Z"(%{{[^,]*}}, <{{.*}}>* inalloca %[[ARGMEM]])
   // WIN32: call void @llvm.stackrestore(
-  // WIN32: call {{.*}} @"\01??0Z@@QAE at XZ"(
-  // WIN32: call {{.*}} @"\01??1Q@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??0Z@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??1Q@@QAE at XZ"(
 
   // On Win64, the Q arguments would be destroyed in the callee. We don't yet
   // support that in the non-inlined case, so we force inlining.
   // WIN64: %[[TMP:.*]] = alloca
   // WIN64: %[[ARG3:.*]] = alloca
   // WIN64: %[[ARG1:.*]] = alloca
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[TMP]], i32 4)
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[ARG3]], i32 3)
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[ARG1]], i32 1)
-  // WIN64: call {{.*}} @"\01??0Z@@QEAA at XZ"(
-  // WIN64: call {{.*}} @"\01??0A at inalloca_nonvirt@@QEAA at UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]])
-  // WIN64: call {{.*}} @"\01??0Z@@QEAA at XZ"(
-  // WIN64: call void @"\01??1Q@@QEAA at XZ"({{.*}}* %[[TMP]])
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[TMP]], i32 4)
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[ARG3]], i32 3)
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[ARG1]], i32 1)
+  // WIN64: call {{.*}} @"??0Z@@QEAA at XZ"(
+  // WIN64: call {{.*}} @"??0A at inalloca_nonvirt@@QEAA at UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]])
+  // WIN64: call {{.*}} @"??0Z@@QEAA at XZ"(
+  // WIN64: call void @"??1Q@@QEAA at XZ"({{.*}}* %[[TMP]])
 }
 
 namespace inalloca_virt {
@@ -194,79 +194,79 @@ namespace inalloca_virt {
   struct B : Z, virtual A { Z z; using A::A; };
   B b(1, 2, 3, 4);
 
-  // MSABI-LABEL: define internal void @"\01??__Eb at inalloca_virt@@YAXXZ"(
+  // MSABI-LABEL: define internal void @"??__Eb at inalloca_virt@@YAXXZ"(
 
   // On Win32, the inalloca call can't be forwarded so we force inlining.
   // WIN32: %[[TMP:.*]] = alloca
   // WIN32: call i8* @llvm.stacksave()
   // WIN32: %[[ARGMEM:.*]] = alloca inalloca
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"(%{{.*}}* %[[TMP]], i32 4)
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"(%{{.*}}* %[[TMP]], i32 4)
   // WIN32: %[[ARG3:.*]] = getelementptr {{.*}} %[[ARGMEM]]
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"({{.*}}* %[[ARG3]], i32 3)
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"({{.*}}* %[[ARG3]], i32 3)
   // WIN32: %[[ARG1:.*]] = getelementptr {{.*}} %[[ARGMEM]]
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"({{.*}}* %[[ARG1]], i32 1)
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"({{.*}}* %[[ARG1]], i32 1)
   // FIXME: It's dumb to round-trip this though memory and generate a branch.
   // WIN32: store i32 1, i32* %[[IS_MOST_DERIVED_ADDR:.*]]
   // WIN32: %[[IS_MOST_DERIVED:.*]] = load i32, i32* %[[IS_MOST_DERIVED_ADDR]]
   // WIN32: %[[IS_MOST_DERIVED_i1:.*]] = icmp ne i32 %[[IS_MOST_DERIVED]], 0
   // WIN32: br i1 %[[IS_MOST_DERIVED_i1]]
   //
-  // WIN32: store {{.*}} @"\01??_8B at inalloca_virt@@7B@"
+  // WIN32: store {{.*}} @"??_8B at inalloca_virt@@7B@"
   // WIN32: %[[ARG2:.*]] = getelementptr {{.*}} %[[ARGMEM]]
   // WIN32: store i32 2, i32* %[[ARG2]]
   // WIN32: %[[ARG4:.*]] = getelementptr {{.*}} %[[ARGMEM]]
   // WIN32: store {{.*}}* %[[TMP]], {{.*}}** %[[ARG4]]
-  // WIN32: call {{.*}} @"\01??0A at inalloca_virt@@QAE at UQ@@H0$$QAU2@@Z"(%{{[^,]*}}, <{{.*}}>* inalloca %[[ARGMEM]])
+  // WIN32: call {{.*}} @"??0A at inalloca_virt@@QAE at UQ@@H0$$QAU2@@Z"(%{{[^,]*}}, <{{.*}}>* inalloca %[[ARGMEM]])
   // WIN32: call void @llvm.stackrestore(
   // WIN32: br
   //
   // Note that if we jumped directly to here we would fail to stackrestore and
   // destroy the parameters, but that's not actually possible.
-  // WIN32: call {{.*}} @"\01??0Z@@QAE at XZ"(
-  // WIN32: call {{.*}} @"\01??0Z@@QAE at XZ"(
-  // WIN32: call {{.*}} @"\01??1Q@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??0Z@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??0Z@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??1Q@@QAE at XZ"(
 
   // On Win64, the Q arguments would be destroyed in the callee. We don't yet
   // support that in the non-inlined case, so we force inlining.
   // WIN64: %[[TMP:.*]] = alloca
   // WIN64: %[[ARG3:.*]] = alloca
   // WIN64: %[[ARG1:.*]] = alloca
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[TMP]], i32 4)
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[ARG3]], i32 3)
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[ARG1]], i32 1)
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[TMP]], i32 4)
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[ARG3]], i32 3)
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[ARG1]], i32 1)
   // WIN64: br i1
-  // WIN64: call {{.*}} @"\01??0A at inalloca_virt@@QEAA at UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]])
+  // WIN64: call {{.*}} @"??0A at inalloca_virt@@QEAA at UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]])
   // WIN64: br
-  // WIN64: call {{.*}} @"\01??0Z@@QEAA at XZ"(
-  // WIN64: call {{.*}} @"\01??0Z@@QEAA at XZ"(
-  // WIN64: call void @"\01??1Q@@QEAA at XZ"({{.*}}* %[[TMP]])
+  // WIN64: call {{.*}} @"??0Z@@QEAA at XZ"(
+  // WIN64: call {{.*}} @"??0Z@@QEAA at XZ"(
+  // WIN64: call void @"??1Q@@QEAA at XZ"({{.*}}* %[[TMP]])
 
   struct C : B { using B::B; };
   C c(1, 2, 3, 4);
   // ITANIUM-LABEL: define linkonce_odr void @_ZN13inalloca_virt1CD1Ev(
 
-  // MSABI-LABEL: define internal void @"\01??__Ec at inalloca_virt@@YAXXZ"(
+  // MSABI-LABEL: define internal void @"??__Ec at inalloca_virt@@YAXXZ"(
 
   // On Win32, the inalloca call can't be forwarded so we force inlining.
   // WIN32: %[[TMP:.*]] = alloca
   // WIN32: call i8* @llvm.stacksave()
   // WIN32: %[[ARGMEM:.*]] = alloca inalloca
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"(%{{.*}}* %[[TMP]], i32 4)
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"(%{{.*}}* %[[TMP]], i32 4)
   // WIN32: %[[ARG3:.*]] = getelementptr {{.*}} %[[ARGMEM]]
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"({{.*}}* %[[ARG3]], i32 3)
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"({{.*}}* %[[ARG3]], i32 3)
   // WIN32: %[[ARG1:.*]] = getelementptr {{.*}} %[[ARGMEM]]
-  // WIN32: call {{.*}} @"\01??0Q@@QAE at H@Z"({{.*}}* %[[ARG1]], i32 1)
+  // WIN32: call {{.*}} @"??0Q@@QAE at H@Z"({{.*}}* %[[ARG1]], i32 1)
   // WIN32: store i32 1, i32* %[[IS_MOST_DERIVED_ADDR:.*]]
   // WIN32: %[[IS_MOST_DERIVED:.*]] = load i32, i32* %[[IS_MOST_DERIVED_ADDR]]
   // WIN32: %[[IS_MOST_DERIVED_i1:.*]] = icmp ne i32 %[[IS_MOST_DERIVED]], 0
   // WIN32: br i1 %[[IS_MOST_DERIVED_i1]]
   //
-  // WIN32: store {{.*}} @"\01??_8C at inalloca_virt@@7B@"
+  // WIN32: store {{.*}} @"??_8C at inalloca_virt@@7B@"
   // WIN32: %[[ARG2:.*]] = getelementptr {{.*}} %[[ARGMEM]]
   // WIN32: store i32 2, i32* %[[ARG2]]
   // WIN32: %[[ARG4:.*]] = getelementptr {{.*}} %[[ARGMEM]]
   // WIN32: store {{.*}}* %[[TMP]], {{.*}}** %[[ARG4]]
-  // WIN32: call {{.*}} @"\01??0A at inalloca_virt@@QAE at UQ@@H0$$QAU2@@Z"(%{{[^,]*}}, <{{.*}}>* inalloca %[[ARGMEM]])
+  // WIN32: call {{.*}} @"??0A at inalloca_virt@@QAE at UQ@@H0$$QAU2@@Z"(%{{[^,]*}}, <{{.*}}>* inalloca %[[ARGMEM]])
   // WIN32: call void @llvm.stackrestore(
   // WIN32: br
   //
@@ -276,32 +276,32 @@ namespace inalloca_virt {
   // WIN32: br i1 %[[IS_MOST_DERIVED_i1]]
   //
   // Note: this block is unreachable.
-  // WIN32: store {{.*}} @"\01??_8B at inalloca_virt@@7B@"
+  // WIN32: store {{.*}} @"??_8B at inalloca_virt@@7B@"
   // WIN32: br
   //
-  // WIN32: call {{.*}} @"\01??0Z@@QAE at XZ"(
-  // WIN32: call {{.*}} @"\01??0Z@@QAE at XZ"(
-  // WIN32: call {{.*}} @"\01??1Q@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??0Z@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??0Z@@QAE at XZ"(
+  // WIN32: call {{.*}} @"??1Q@@QAE at XZ"(
 
   // On Win64, the Q arguments would be destroyed in the callee. We don't yet
   // support that in the non-inlined case, so we force inlining.
   // WIN64: %[[TMP:.*]] = alloca
   // WIN64: %[[ARG3:.*]] = alloca
   // WIN64: %[[ARG1:.*]] = alloca
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[TMP]], i32 4)
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[ARG3]], i32 3)
-  // WIN64: call {{.*}} @"\01??0Q@@QEAA at H@Z"({{.*}}* %[[ARG1]], i32 1)
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[TMP]], i32 4)
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[ARG3]], i32 3)
+  // WIN64: call {{.*}} @"??0Q@@QEAA at H@Z"({{.*}}* %[[ARG1]], i32 1)
   // WIN64: br i1
-  // WIN64: store {{.*}} @"\01??_8C at inalloca_virt@@7B@"
-  // WIN64: call {{.*}} @"\01??0A at inalloca_virt@@QEAA at UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]])
+  // WIN64: store {{.*}} @"??_8C at inalloca_virt@@7B@"
+  // WIN64: call {{.*}} @"??0A at inalloca_virt@@QEAA at UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]])
   // WIN64: br
   // WIN64: br i1
   // (Unreachable block)
-  // WIN64: store {{.*}} @"\01??_8B at inalloca_virt@@7B@"
+  // WIN64: store {{.*}} @"??_8B at inalloca_virt@@7B@"
   // WIN64: br
-  // WIN64: call {{.*}} @"\01??0Z@@QEAA at XZ"(
-  // WIN64: call {{.*}} @"\01??0Z@@QEAA at XZ"(
-  // WIN64: call void @"\01??1Q@@QEAA at XZ"({{.*}}* %[[TMP]])
+  // WIN64: call {{.*}} @"??0Z@@QEAA at XZ"(
+  // WIN64: call {{.*}} @"??0Z@@QEAA at XZ"(
+  // WIN64: call void @"??1Q@@QEAA at XZ"({{.*}}* %[[TMP]])
 }
 
 namespace inline_nonvirt {

Modified: cfe/trunk/test/CodeGenCXX/initializer-list-ctor-order.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/initializer-list-ctor-order.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/initializer-list-ctor-order.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/initializer-list-ctor-order.cpp Fri Mar 16 13:36:49 2018
@@ -15,7 +15,7 @@ void foo() {
   A a{f(), g()};
 }
 // CHECK-ITANIUM-LABEL: define void @_Z3foov
-// CHECK-MS-LABEL: define dso_local void @"\01?foo@@YAXXZ"
+// CHECK-MS-LABEL: define dso_local void @"?foo@@YAXXZ"
 // CHECK: call i32 @f()
 // CHECK: call i32 @g()
 
@@ -24,6 +24,6 @@ struct B : A {
 };
 B::B() : A{f(), g()} {}
 // CHECK-ITANIUM-LABEL: define void @_ZN1BC2Ev
-// CHECK-MS-LABEL: define dso_local x86_thiscallcc %struct.B* @"\01??0B@@QAE at XZ"
+// CHECK-MS-LABEL: define dso_local x86_thiscallcc %struct.B* @"??0B@@QAE at XZ"
 // CHECK: call i32 @f()
 // CHECK: call i32 @g()

Modified: cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/inline-dllexport-member.cpp Fri Mar 16 13:36:49 2018
@@ -1,13 +1,13 @@
 // RUN: %clang_cc1 -triple i686-windows-win32 -fms-extensions -debug-info-kind=limited -emit-llvm %s -o - \
 // RUN:    | FileCheck %s
 
-// CHECK: @"\01?ui at s@@2IB" = weak_odr dso_local dllexport constant i32 0, comdat, align 4, !dbg [[UI:![0-9]+]]
+// CHECK: @"?ui at s@@2IB" = weak_odr dso_local dllexport constant i32 0, comdat, align 4, !dbg [[UI:![0-9]+]]
 
 struct __declspec(dllexport) s {
   static const unsigned int ui = 0;
 };
 
 // CHECK: [[UI]] = !DIGlobalVariableExpression(var: [[UIV:.*]], expr: !DIExpression())
-// CHECK: [[UIV]] = distinct !DIGlobalVariable(name: "ui", linkageName: "\01?ui at s@@2IB", scope: ![[SCOPE:[0-9]+]],
+// CHECK: [[UIV]] = distinct !DIGlobalVariable(name: "ui", linkageName: "?ui at s@@2IB", scope: ![[SCOPE:[0-9]+]],
 // CHECK: ![[SCOPE]] = distinct !DICompileUnit(
 

Modified: cfe/trunk/test/CodeGenCXX/inline-functions.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/inline-functions.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/inline-functions.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/inline-functions.cpp Fri Mar 16 13:36:49 2018
@@ -7,7 +7,7 @@ struct A {
 };
 
 // NORMAL-NOT: define void @_ZN1A1fEv
-// MSVCCOMPAT-NOT: define void @"\01?f at A@@QEAAXXZ"
+// MSVCCOMPAT-NOT: define void @"?f at A@@QEAAXXZ"
 void A::f() { }
 
 template<typename> struct B { };
@@ -17,20 +17,20 @@ template<> struct B<char> {
 };
 
 // NORMAL-NOT: _ZN1BIcE1fEv
-// MSVCCOMPAT-NOT: @"\01?f@?$B at D@@QEAAXXZ"
+// MSVCCOMPAT-NOT: @"?f@?$B at D@@QEAAXXZ"
 void B<char>::f() { }
 
 // We need a final CHECK line here.
 
 // NORMAL-LABEL: define void @_Z1fv
-// MSVCCOMPAT-LABEL: define dso_local void @"\01?f@@YAXXZ"
+// MSVCCOMPAT-LABEL: define dso_local void @"?f@@YAXXZ"
 void f() { }
 
 // <rdar://problem/8740363>
 inline void f1(int);
 
 // NORMAL-LABEL: define linkonce_odr void @_Z2f1i
-// MSVCCOMPAT-LABEL: define linkonce_odr dso_local void @"\01?f1@@YAXH at Z"
+// MSVCCOMPAT-LABEL: define linkonce_odr dso_local void @"?f1@@YAXH at Z"
 void f1(int) { }
 
 void test_f1() { f1(17); }
@@ -44,7 +44,7 @@ namespace test1 {
   };
 
   // NORMAL-LABEL: define linkonce_odr void @_ZN5test11C4funcEv(
-  // MSVCCOMPAT-LABEL: define linkonce_odr dso_local void @"\01?func at C@test1@@QEAAXXZ"(
+  // MSVCCOMPAT-LABEL: define linkonce_odr dso_local void @"?func at C@test1@@QEAAXXZ"(
 
   class C {
   public:
@@ -72,47 +72,47 @@ namespace test2 {
     f(a);
   }
   // NORMAL-LABEL: define linkonce_odr void @_ZN5test21fERKNS_1AE
-  // MSVCCOMPAT-LABEL: define linkonce_odr dso_local void @"\01?f at test2@@YAXAEBUA at 1@@Z"
+  // MSVCCOMPAT-LABEL: define linkonce_odr dso_local void @"?f at test2@@YAXAEBUA at 1@@Z"
 }
 
 // NORMAL-NOT: _Z17ExternAndInlineFnv
-// MSVCCOMPAT-LABEL: define weak_odr dso_local void @"\01?ExternAndInlineFn@@YAXXZ"
+// MSVCCOMPAT-LABEL: define weak_odr dso_local void @"?ExternAndInlineFn@@YAXXZ"
 extern inline void ExternAndInlineFn() {}
 
 // NORMAL-NOT: _Z18InlineThenExternFnv
-// MSVCCOMPAT-LABEL: define weak_odr dso_local void @"\01?InlineThenExternFn@@YAXXZ"
+// MSVCCOMPAT-LABEL: define weak_odr dso_local void @"?InlineThenExternFn@@YAXXZ"
 inline void InlineThenExternFn() {}
 extern void InlineThenExternFn();
 
 // NORMAL-LABEL: define void @_Z18ExternThenInlineFnv
-// MSVCCOMPAT-LABEL: define dso_local void @"\01?ExternThenInlineFn@@YAXXZ"
+// MSVCCOMPAT-LABEL: define dso_local void @"?ExternThenInlineFn@@YAXXZ"
 extern void ExternThenInlineFn() {}
 
 // NORMAL-NOT: _Z25ExternThenInlineThenDefFnv
-// MSVCCOMPAT-LABEL: define weak_odr dso_local void @"\01?ExternThenInlineThenDefFn@@YAXXZ"
+// MSVCCOMPAT-LABEL: define weak_odr dso_local void @"?ExternThenInlineThenDefFn@@YAXXZ"
 extern void ExternThenInlineThenDefFn();
 inline void ExternThenInlineThenDefFn();
 void ExternThenInlineThenDefFn() {}
 
 // NORMAL-NOT: _Z25InlineThenExternThenDefFnv
-// MSVCCOMPAT-LABEL: define weak_odr dso_local void @"\01?InlineThenExternThenDefFn@@YAXXZ"
+// MSVCCOMPAT-LABEL: define weak_odr dso_local void @"?InlineThenExternThenDefFn@@YAXXZ"
 inline void InlineThenExternThenDefFn();
 extern void InlineThenExternThenDefFn();
 void InlineThenExternThenDefFn() {}
 
 // NORMAL-NOT: _Z17ExternAndConstexprFnv
-// MSVCCOMPAT-LABEL: define weak_odr dso_local i32 @"\01?ExternAndConstexprFn@@YAHXZ"
+// MSVCCOMPAT-LABEL: define weak_odr dso_local i32 @"?ExternAndConstexprFn@@YAHXZ"
 extern constexpr int ExternAndConstexprFn() { return 0; }
 
 // NORMAL-NOT: _Z11ConstexprFnv
-// MSVCCOMPAT-NOT: @"\01?ConstexprFn@@YAHXZ"
+// MSVCCOMPAT-NOT: @"?ConstexprFn@@YAHXZ"
 constexpr int ConstexprFn() { return 0; }
 
 template <typename T>
 extern inline void ExternInlineOnPrimaryTemplate(T);
 
 // NORMAL-LABEL: define void @_Z29ExternInlineOnPrimaryTemplateIiEvT_
-// MSVCCOMPAT-LABEL: define dso_local void @"\01??$ExternInlineOnPrimaryTemplate at H@@YAXH at Z"
+// MSVCCOMPAT-LABEL: define dso_local void @"??$ExternInlineOnPrimaryTemplate at H@@YAXH at Z"
 template <>
 void ExternInlineOnPrimaryTemplate(int) {}
 
@@ -120,16 +120,16 @@ template <typename T>
 extern inline void ExternInlineOnPrimaryTemplateAndSpecialization(T);
 
 // NORMAL-NOT: _Z46ExternInlineOnPrimaryTemplateAndSpecializationIiEvT_
-// MSVCCOMPAT-LABEL: define weak_odr dso_local void @"\01??$ExternInlineOnPrimaryTemplateAndSpecialization at H@@YAXH at Z"
+// MSVCCOMPAT-LABEL: define weak_odr dso_local void @"??$ExternInlineOnPrimaryTemplateAndSpecialization at H@@YAXH at Z"
 template <>
 extern inline void ExternInlineOnPrimaryTemplateAndSpecialization(int) {}
 
 struct TypeWithInlineMethods {
   // NORMAL-NOT: _ZN21TypeWithInlineMethods9StaticFunEv
-  // MSVCCOMPAT-NOT: @"\01?StaticFun at TypeWithInlineMethods@@SAXXZ"
+  // MSVCCOMPAT-NOT: @"?StaticFun at TypeWithInlineMethods@@SAXXZ"
   static void StaticFun() {}
   // NORMAL-NOT: _ZN21TypeWithInlineMethods12NonStaticFunEv
-  // MSVCCOMPAT-NOT: @"\01?NonStaticFun at TypeWithInlineMethods@@QEAAXXZ"
+  // MSVCCOMPAT-NOT: @"?NonStaticFun at TypeWithInlineMethods@@QEAAXXZ"
   void NonStaticFun() { StaticFun(); }
 };
 
@@ -146,5 +146,5 @@ struct S {
 
 __attribute__((used)) inline S<int> Foo() { return S<int>(); }
 // NORMAL-LABEL: define linkonce_odr void @_ZN7PR229593FooEv(
-// MSVCCOMPAT-LABEL: define linkonce_odr dso_local i8 @"\01?Foo at PR22959@@YA?AU?$S at H@1 at XZ"(
+// MSVCCOMPAT-LABEL: define linkonce_odr dso_local i8 @"?Foo at PR22959@@YA?AU?$S at H@1 at XZ"(
 }

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-abi-examples.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-abi-examples.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-abi-examples.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-abi-examples.cpp Fri Mar 16 13:36:49 2018
@@ -1,10 +1,10 @@
 // RUN: %clang_cc1 -fms-extensions -fno-rtti -emit-llvm %s -o - -triple=i386-pc-win32 -fms-compatibility-version=19.00 | FileCheck %s --check-prefix=CHECK --check-prefix=MSVC2015
 // RUN: %clang_cc1 -fms-extensions -fno-rtti -emit-llvm %s -o - -triple=i386-pc-win32 -fms-compatibility-version=18.00 | FileCheck %s --check-prefix=CHECK --check-prefix=MSVC2013
 
-// CHECK: @"\01??_7B@?1??foo at A@@QAEXH at Z@6B@" =
-// CHECK: @"\01??_7D at C@?1??foo@@YAXXZ at 6B@" =
-// MSVC2013: define {{.*}} @"\01?baz at E@?3??bar at C@?1??foo@@YAXXZ at QAEXXZ@QAEXXZ"(
-// MSVC2015: define {{.*}} @"\01?baz at E@?1??bar at C@?1??foo@@YAXXZ at QAEXXZ@QAEXXZ"(
+// CHECK: @"??_7B@?1??foo at A@@QAEXH at Z@6B@" =
+// CHECK: @"??_7D at C@?1??foo@@YAXXZ at 6B@" =
+// MSVC2013: define {{.*}} @"?baz at E@?3??bar at C@?1??foo@@YAXXZ at QAEXXZ@QAEXXZ"(
+// MSVC2015: define {{.*}} @"?baz at E@?1??bar at C@?1??foo@@YAXXZ at QAEXXZ@QAEXXZ"(
 
 // Microsoft Visual C++ ABI examples.
 struct A {

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-arg-qualifiers.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-arg-qualifiers.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-arg-qualifiers.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-arg-qualifiers.cpp Fri Mar 16 13:36:49 2018
@@ -2,268 +2,268 @@
 // RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-pc-win32 | FileCheck -check-prefix=X64 %s
 
 void foo(const unsigned int) {}
-// CHECK: "\01?foo@@YAXI at Z"
-// X64: "\01?foo@@YAXI at Z"
+// CHECK: "?foo@@YAXI at Z"
+// X64: "?foo@@YAXI at Z"
 
 void foo(const double) {}
-// CHECK: "\01?foo@@YAXN at Z"
-// X64: "\01?foo@@YAXN at Z"
+// CHECK: "?foo@@YAXN at Z"
+// X64: "?foo@@YAXN at Z"
 
 void bar(const volatile double) {}
-// CHECK: "\01?bar@@YAXN at Z"
-// X64: "\01?bar@@YAXN at Z"
+// CHECK: "?bar@@YAXN at Z"
+// X64: "?bar@@YAXN at Z"
 
 void foo_pad(char * x) {}
-// CHECK: "\01?foo_pad@@YAXPAD at Z"
-// X64: "\01?foo_pad@@YAXPEAD at Z"
+// CHECK: "?foo_pad@@YAXPAD at Z"
+// X64: "?foo_pad@@YAXPEAD at Z"
 
 void foo_pbd(const char * x) {}
-// CHECK: "\01?foo_pbd@@YAXPBD at Z"
-// X64: "\01?foo_pbd@@YAXPEBD at Z"
+// CHECK: "?foo_pbd@@YAXPBD at Z"
+// X64: "?foo_pbd@@YAXPEBD at Z"
 
 void foo_pcd(volatile char * x) {}
-// CHECK: "\01?foo_pcd@@YAXPCD at Z"
-// X64: "\01?foo_pcd@@YAXPECD at Z"
+// CHECK: "?foo_pcd@@YAXPCD at Z"
+// X64: "?foo_pcd@@YAXPECD at Z"
 
 void foo_qad(char * const x) {}
-// CHECK: "\01?foo_qad@@YAXQAD at Z"
-// X64: "\01?foo_qad@@YAXQEAD at Z"
+// CHECK: "?foo_qad@@YAXQAD at Z"
+// X64: "?foo_qad@@YAXQEAD at Z"
 
 void foo_rad(char * volatile x) {}
-// CHECK: "\01?foo_rad@@YAXRAD at Z"
-// X64: "\01?foo_rad@@YAXREAD at Z"
+// CHECK: "?foo_rad@@YAXRAD at Z"
+// X64: "?foo_rad@@YAXREAD at Z"
 
 void foo_sad(char * const volatile x) {}
-// CHECK: "\01?foo_sad@@YAXSAD at Z"
-// X64: "\01?foo_sad@@YAXSEAD at Z"
+// CHECK: "?foo_sad@@YAXSAD at Z"
+// X64: "?foo_sad@@YAXSEAD at Z"
 
 void foo_piad(char * __restrict x) {}
-// CHECK: "\01?foo_piad@@YAXPIAD at Z"
-// X64: "\01?foo_piad@@YAXPEIAD at Z"
+// CHECK: "?foo_piad@@YAXPIAD at Z"
+// X64: "?foo_piad@@YAXPEIAD at Z"
 
 void foo_qiad(char * const __restrict x) {}
-// CHECK: "\01?foo_qiad@@YAXQIAD at Z"
-// X64: "\01?foo_qiad@@YAXQEIAD at Z"
+// CHECK: "?foo_qiad@@YAXQIAD at Z"
+// X64: "?foo_qiad@@YAXQEIAD at Z"
 
 void foo_riad(char * volatile __restrict x) {}
-// CHECK: "\01?foo_riad@@YAXRIAD at Z"
-// X64: "\01?foo_riad@@YAXREIAD at Z"
+// CHECK: "?foo_riad@@YAXRIAD at Z"
+// X64: "?foo_riad@@YAXREIAD at Z"
 
 void foo_siad(char * const volatile __restrict x) {}
-// CHECK: "\01?foo_siad@@YAXSIAD at Z"
-// X64: "\01?foo_siad@@YAXSEIAD at Z"
+// CHECK: "?foo_siad@@YAXSIAD at Z"
+// X64: "?foo_siad@@YAXSEIAD at Z"
 
 void foo_papad(char ** x) {}
-// CHECK: "\01?foo_papad@@YAXPAPAD at Z"
-// X64: "\01?foo_papad@@YAXPEAPEAD at Z"
+// CHECK: "?foo_papad@@YAXPAPAD at Z"
+// X64: "?foo_papad@@YAXPEAPEAD at Z"
 
 void foo_papbd(char const ** x) {}
-// CHECK: "\01?foo_papbd@@YAXPAPBD at Z"
-// X64: "\01?foo_papbd@@YAXPEAPEBD at Z"
+// CHECK: "?foo_papbd@@YAXPAPBD at Z"
+// X64: "?foo_papbd@@YAXPEAPEBD at Z"
 
 void foo_papcd(char volatile ** x) {}
-// CHECK: "\01?foo_papcd@@YAXPAPCD at Z"
-// X64: "\01?foo_papcd@@YAXPEAPECD at Z"
+// CHECK: "?foo_papcd@@YAXPAPCD at Z"
+// X64: "?foo_papcd@@YAXPEAPECD at Z"
 
 void foo_pbqad(char * const* x) {}
-// CHECK: "\01?foo_pbqad@@YAXPBQAD at Z"
-// X64: "\01?foo_pbqad@@YAXPEBQEAD at Z"
+// CHECK: "?foo_pbqad@@YAXPBQAD at Z"
+// X64: "?foo_pbqad@@YAXPEBQEAD at Z"
 
 void foo_pcrad(char * volatile* x) {}
-// CHECK: "\01?foo_pcrad@@YAXPCRAD at Z"
-// X64: "\01?foo_pcrad@@YAXPECREAD at Z"
+// CHECK: "?foo_pcrad@@YAXPCRAD at Z"
+// X64: "?foo_pcrad@@YAXPECREAD at Z"
 
 void foo_qapad(char ** const x) {}
-// CHECK: "\01?foo_qapad@@YAXQAPAD at Z"
-// X64: "\01?foo_qapad@@YAXQEAPEAD at Z"
+// CHECK: "?foo_qapad@@YAXQAPAD at Z"
+// X64: "?foo_qapad@@YAXQEAPEAD at Z"
 
 void foo_rapad(char ** volatile x) {}
-// CHECK: "\01?foo_rapad@@YAXRAPAD at Z"
-// X64: "\01?foo_rapad@@YAXREAPEAD at Z"
+// CHECK: "?foo_rapad@@YAXRAPAD at Z"
+// X64: "?foo_rapad@@YAXREAPEAD at Z"
 
 void foo_pbqbd(const char * const* x) {}
-// CHECK: "\01?foo_pbqbd@@YAXPBQBD at Z"
-// X64: "\01?foo_pbqbd@@YAXPEBQEBD at Z"
+// CHECK: "?foo_pbqbd@@YAXPBQBD at Z"
+// X64: "?foo_pbqbd@@YAXPEBQEBD at Z"
 
 void foo_pbqcd(volatile char * const* x) {}
-// CHECK: "\01?foo_pbqcd@@YAXPBQCD at Z"
-// X64: "\01?foo_pbqcd@@YAXPEBQECD at Z"
+// CHECK: "?foo_pbqcd@@YAXPBQCD at Z"
+// X64: "?foo_pbqcd@@YAXPEBQECD at Z"
 
 void foo_pcrbd(const char * volatile* x) {}
-// CHECK: "\01?foo_pcrbd@@YAXPCRBD at Z"
-// X64: "\01?foo_pcrbd@@YAXPECREBD at Z"
+// CHECK: "?foo_pcrbd@@YAXPCRBD at Z"
+// X64: "?foo_pcrbd@@YAXPECREBD at Z"
 
 void foo_pcrcd(volatile char * volatile* x) {}
-// CHECK: "\01?foo_pcrcd@@YAXPCRCD at Z"
-// X64: "\01?foo_pcrcd@@YAXPECRECD at Z"
+// CHECK: "?foo_pcrcd@@YAXPCRCD at Z"
+// X64: "?foo_pcrcd@@YAXPECRECD at Z"
 
 void foo_aad(char &x) {}
-// CHECK: "\01?foo_aad@@YAXAAD at Z"
-// X64: "\01?foo_aad@@YAXAEAD at Z"
+// CHECK: "?foo_aad@@YAXAAD at Z"
+// X64: "?foo_aad@@YAXAEAD at Z"
 
 void foo_abd(const char &x) {}
-// CHECK: "\01?foo_abd@@YAXABD at Z"
-// X64: "\01?foo_abd@@YAXAEBD at Z"
+// CHECK: "?foo_abd@@YAXABD at Z"
+// X64: "?foo_abd@@YAXAEBD at Z"
 
 void foo_aapad(char *&x) {}
-// CHECK: "\01?foo_aapad@@YAXAAPAD at Z"
-// X64: "\01?foo_aapad@@YAXAEAPEAD at Z"
+// CHECK: "?foo_aapad@@YAXAAPAD at Z"
+// X64: "?foo_aapad@@YAXAEAPEAD at Z"
 
 void foo_aapbd(const char *&x) {}
-// CHECK: "\01?foo_aapbd@@YAXAAPBD at Z"
-// X64: "\01?foo_aapbd@@YAXAEAPEBD at Z"
+// CHECK: "?foo_aapbd@@YAXAAPBD at Z"
+// X64: "?foo_aapbd@@YAXAEAPEBD at Z"
 
 void foo_abqad(char * const &x) {}
-// CHECK: "\01?foo_abqad@@YAXABQAD at Z"
-// X64: "\01?foo_abqad@@YAXAEBQEAD at Z"
+// CHECK: "?foo_abqad@@YAXABQAD at Z"
+// X64: "?foo_abqad@@YAXAEBQEAD at Z"
 
 void foo_abqbd(const char * const &x) {}
-// CHECK: "\01?foo_abqbd@@YAXABQBD at Z"
-// X64: "\01?foo_abqbd@@YAXAEBQEBD at Z"
+// CHECK: "?foo_abqbd@@YAXABQBD at Z"
+// X64: "?foo_abqbd@@YAXAEBQEBD at Z"
 
 void foo_aay144h(int (&x)[5][5]) {}
-// CHECK: "\01?foo_aay144h@@YAXAAY144H at Z"
-// X64: "\01?foo_aay144h@@YAXAEAY144H at Z"
+// CHECK: "?foo_aay144h@@YAXAAY144H at Z"
+// X64: "?foo_aay144h@@YAXAEAY144H at Z"
 
 void foo_aay144cbh(const int (&x)[5][5]) {}
-// CHECK: "\01?foo_aay144cbh@@YAXAAY144$$CBH at Z"
-// X64: "\01?foo_aay144cbh@@YAXAEAY144$$CBH at Z"
+// CHECK: "?foo_aay144cbh@@YAXAAY144$$CBH at Z"
+// X64: "?foo_aay144cbh@@YAXAEAY144$$CBH at Z"
 
 void foo_qay144h(int (&&x)[5][5]) {}
-// CHECK: "\01?foo_qay144h@@YAX$$QAY144H at Z"
-// X64: "\01?foo_qay144h@@YAX$$QEAY144H at Z"
+// CHECK: "?foo_qay144h@@YAX$$QAY144H at Z"
+// X64: "?foo_qay144h@@YAX$$QEAY144H at Z"
 
 void foo_qay144cbh(const int (&&x)[5][5]) {}
-// CHECK: "\01?foo_qay144cbh@@YAX$$QAY144$$CBH at Z"
-// X64: "\01?foo_qay144cbh@@YAX$$QEAY144$$CBH at Z"
+// CHECK: "?foo_qay144cbh@@YAX$$QAY144$$CBH at Z"
+// X64: "?foo_qay144cbh@@YAX$$QEAY144$$CBH at Z"
 
 void foo_p6ahxz(int x()) {}
-// CHECK: "\01?foo_p6ahxz@@YAXP6AHXZ at Z"
-// X64: "\01?foo_p6ahxz@@YAXP6AHXZ at Z"
+// CHECK: "?foo_p6ahxz@@YAXP6AHXZ at Z"
+// X64: "?foo_p6ahxz@@YAXP6AHXZ at Z"
 
 void foo_a6ahxz(int (&x)()) {}
-// CHECK: "\01?foo_a6ahxz@@YAXA6AHXZ at Z"
-// X64: "\01?foo_a6ahxz@@YAXA6AHXZ at Z"
+// CHECK: "?foo_a6ahxz@@YAXA6AHXZ at Z"
+// X64: "?foo_a6ahxz@@YAXA6AHXZ at Z"
 
 void foo_q6ahxz(int (&&x)()) {}
-// CHECK: "\01?foo_q6ahxz@@YAX$$Q6AHXZ at Z"
-// X64: "\01?foo_q6ahxz@@YAX$$Q6AHXZ at Z"
+// CHECK: "?foo_q6ahxz@@YAX$$Q6AHXZ at Z"
+// X64: "?foo_q6ahxz@@YAX$$Q6AHXZ at Z"
 
 void foo_qay04h(int x[5][5]) {}
-// CHECK: "\01?foo_qay04h@@YAXQAY04H at Z"
-// X64: "\01?foo_qay04h@@YAXQEAY04H at Z"
+// CHECK: "?foo_qay04h@@YAXQAY04H at Z"
+// X64: "?foo_qay04h@@YAXQEAY04H at Z"
 
 void foo_qay04cbh(const int x[5][5]) {}
-// CHECK: "\01?foo_qay04cbh@@YAXQAY04$$CBH at Z"
-// X64: "\01?foo_qay04cbh@@YAXQEAY04$$CBH at Z"
+// CHECK: "?foo_qay04cbh@@YAXQAY04$$CBH at Z"
+// X64: "?foo_qay04cbh@@YAXQEAY04$$CBH at Z"
 
 typedef double Vector[3];
 
 void foo(Vector*) {}
-// CHECK: "\01?foo@@YAXPAY02N at Z"
-// X64: "\01?foo@@YAXPEAY02N at Z"
+// CHECK: "?foo@@YAXPAY02N at Z"
+// X64: "?foo@@YAXPEAY02N at Z"
 
 void foo(Vector) {}
-// CHECK: "\01?foo@@YAXQAN at Z"
-// X64: "\01?foo@@YAXQEAN at Z"
+// CHECK: "?foo@@YAXQAN at Z"
+// X64: "?foo@@YAXQEAN at Z"
 
 void foo_const(const Vector) {}
-// CHECK: "\01?foo_const@@YAXQBN at Z"
-// X64: "\01?foo_const@@YAXQEBN at Z"
+// CHECK: "?foo_const@@YAXQBN at Z"
+// X64: "?foo_const@@YAXQEBN at Z"
 
 void foo_volatile(volatile Vector) {}
-// CHECK: "\01?foo_volatile@@YAXQCN at Z"
-// X64: "\01?foo_volatile@@YAXQECN at Z"
+// CHECK: "?foo_volatile@@YAXQCN at Z"
+// X64: "?foo_volatile@@YAXQECN at Z"
 
 void foo(Vector*, const Vector, const double) {}
-// CHECK: "\01?foo@@YAXPAY02NQBNN at Z"
-// X64: "\01?foo@@YAXPEAY02NQEBNN at Z"
+// CHECK: "?foo@@YAXPAY02NQBNN at Z"
+// X64: "?foo@@YAXPEAY02NQEBNN at Z"
 
 typedef void (*ConstFunPtr)(int *const d);
 void foo_fnptrconst(ConstFunPtr f) {  }
-// CHECK: "\01?foo_fnptrconst@@YAXP6AXQAH at Z@Z"
-// X64:   "\01?foo_fnptrconst@@YAXP6AXQEAH at Z@Z"
+// CHECK: "?foo_fnptrconst@@YAXP6AXQAH at Z@Z"
+// X64:   "?foo_fnptrconst@@YAXP6AXQEAH at Z@Z"
 
 typedef void (*ArrayFunPtr)(int d[1]);
 void foo_fnptrarray(ArrayFunPtr f) {  }
-// CHECK: "\01?foo_fnptrarray@@YAXP6AXQAH at Z@Z"
-// X64:   "\01?foo_fnptrarray@@YAXP6AXQEAH at Z@Z"
+// CHECK: "?foo_fnptrarray@@YAXP6AXQAH at Z@Z"
+// X64:   "?foo_fnptrarray@@YAXP6AXQEAH at Z@Z"
 
 void foo_fnptrbackref1(ArrayFunPtr f1, ArrayFunPtr f2) {  }
-// CHECK: "\01?foo_fnptrbackref1@@YAXP6AXQAH at Z1@Z"
-// X64:   "\01?foo_fnptrbackref1@@YAXP6AXQEAH at Z1@Z"
+// CHECK: "?foo_fnptrbackref1@@YAXP6AXQAH at Z1@Z"
+// X64:   "?foo_fnptrbackref1@@YAXP6AXQEAH at Z1@Z"
 
 void foo_fnptrbackref2(ArrayFunPtr f1, ConstFunPtr f2) {  }
-// CHECK: "\01?foo_fnptrbackref2@@YAXP6AXQAH at Z1@Z"
-// X64:   "\01?foo_fnptrbackref2@@YAXP6AXQEAH at Z1@Z"
+// CHECK: "?foo_fnptrbackref2@@YAXP6AXQAH at Z1@Z"
+// X64:   "?foo_fnptrbackref2@@YAXP6AXQEAH at Z1@Z"
 
 typedef void (*NormalFunPtr)(int *d);
 void foo_fnptrbackref3(ArrayFunPtr f1, NormalFunPtr f2) {  }
-// CHECK: "\01?foo_fnptrbackref3@@YAXP6AXQAH at Z1@Z"
-// X64:   "\01?foo_fnptrbackref3@@YAXP6AXQEAH at Z1@Z"
+// CHECK: "?foo_fnptrbackref3@@YAXP6AXQAH at Z1@Z"
+// X64:   "?foo_fnptrbackref3@@YAXP6AXQEAH at Z1@Z"
 
 void foo_fnptrbackref4(NormalFunPtr f1, ArrayFunPtr f2) {  }
-// CHECK: "\01?foo_fnptrbackref4@@YAXP6AXPAH at Z1@Z"
-// X64:   "\01?foo_fnptrbackref4@@YAXP6AXPEAH at Z1@Z"
+// CHECK: "?foo_fnptrbackref4@@YAXP6AXPAH at Z1@Z"
+// X64:   "?foo_fnptrbackref4@@YAXP6AXPEAH at Z1@Z"
 
 ArrayFunPtr ret_fnptrarray() { return 0; }
-// CHECK: "\01?ret_fnptrarray@@YAP6AXQAH at ZXZ"
-// X64:   "\01?ret_fnptrarray@@YAP6AXQEAH at ZXZ"
+// CHECK: "?ret_fnptrarray@@YAP6AXQAH at ZXZ"
+// X64:   "?ret_fnptrarray@@YAP6AXQEAH at ZXZ"
 
 // Test that we mangle the forward decl when we have a redeclaration with a
 // slightly different type.
 void mangle_fwd(char * const x);
 void mangle_fwd(char * x) {}
-// CHECK: "\01?mangle_fwd@@YAXQAD at Z"
-// X64:   "\01?mangle_fwd@@YAXQEAD at Z"
+// CHECK: "?mangle_fwd@@YAXQAD at Z"
+// X64:   "?mangle_fwd@@YAXQEAD at Z"
 
 void mangle_no_fwd(char * x) {}
-// CHECK: "\01?mangle_no_fwd@@YAXPAD at Z"
-// X64:   "\01?mangle_no_fwd@@YAXPEAD at Z"
+// CHECK: "?mangle_no_fwd@@YAXPAD at Z"
+// X64:   "?mangle_no_fwd@@YAXPEAD at Z"
 
 // The first argument gets mangled as-if it were written "int *const"
 // The second arg should not form a backref because it isn't qualified
 void mangle_no_backref0(int[], int *) {}
-// CHECK: "\01?mangle_no_backref0@@YAXQAHPAH at Z"
-// X64:   "\01?mangle_no_backref0@@YAXQEAHPEAH at Z"
+// CHECK: "?mangle_no_backref0@@YAXQAHPAH at Z"
+// X64:   "?mangle_no_backref0@@YAXQEAHPEAH at Z"
 
 void mangle_no_backref1(int[], int *const) {}
-// CHECK: "\01?mangle_no_backref1@@YAXQAHQAH at Z"
-// X64:   "\01?mangle_no_backref1@@YAXQEAHQEAH at Z"
+// CHECK: "?mangle_no_backref1@@YAXQAHQAH at Z"
+// X64:   "?mangle_no_backref1@@YAXQEAHQEAH at Z"
 
 typedef void fun_type(void);
 typedef void (*ptr_to_fun_type)(void);
 
 // Pointer to function types don't backref with function types
 void mangle_no_backref2(fun_type, ptr_to_fun_type) {}
-// CHECK: "\01?mangle_no_backref2@@YAXP6AXXZP6AXXZ at Z"
-// X64:   "\01?mangle_no_backref2@@YAXP6AXXZP6AXXZ at Z"
+// CHECK: "?mangle_no_backref2@@YAXP6AXXZP6AXXZ at Z"
+// X64:   "?mangle_no_backref2@@YAXP6AXXZP6AXXZ at Z"
 
 void mangle_yes_backref0(int[], int []) {}
-// CHECK: "\01?mangle_yes_backref0@@YAXQAH0 at Z"
-// X64:   "\01?mangle_yes_backref0@@YAXQEAH0 at Z"
+// CHECK: "?mangle_yes_backref0@@YAXQAH0 at Z"
+// X64:   "?mangle_yes_backref0@@YAXQEAH0 at Z"
 
 void mangle_yes_backref1(int *const, int *const) {}
-// CHECK: "\01?mangle_yes_backref1@@YAXQAH0 at Z"
-// X64:   "\01?mangle_yes_backref1@@YAXQEAH0 at Z"
+// CHECK: "?mangle_yes_backref1@@YAXQAH0 at Z"
+// X64:   "?mangle_yes_backref1@@YAXQEAH0 at Z"
 
 void mangle_yes_backref2(fun_type *const[], ptr_to_fun_type const[]) {}
-// CHECK: "\01?mangle_yes_backref2@@YAXQBQ6AXXZ0 at Z"
-// X64:   "\01?mangle_yes_backref2@@YAXQEBQ6AXXZ0 at Z"
+// CHECK: "?mangle_yes_backref2@@YAXQBQ6AXXZ0 at Z"
+// X64:   "?mangle_yes_backref2@@YAXQEBQ6AXXZ0 at Z"
 
 void mangle_yes_backref3(ptr_to_fun_type *const, void (**const)(void)) {}
-// CHECK: "\01?mangle_yes_backref3@@YAXQAP6AXXZ0 at Z"
-// X64:   "\01?mangle_yes_backref3@@YAXQEAP6AXXZ0 at Z"
+// CHECK: "?mangle_yes_backref3@@YAXQAP6AXXZ0 at Z"
+// X64:   "?mangle_yes_backref3@@YAXQEAP6AXXZ0 at Z"
 
 void mangle_yes_backref4(int *const __restrict, int *const __restrict) {}
-// CHECK: "\01?mangle_yes_backref4@@YAXQIAH0 at Z"
-// X64:   "\01?mangle_yes_backref4@@YAXQEIAH0 at Z"
+// CHECK: "?mangle_yes_backref4@@YAXQIAH0 at Z"
+// X64:   "?mangle_yes_backref4@@YAXQEIAH0 at Z"
 
 struct S {};
 void pr23325(const S[1], const S[]) {}
-// CHECK: "\01?pr23325@@YAXQBUS@@0 at Z"
-// X64:   "\01?pr23325@@YAXQEBUS@@0 at Z"
+// CHECK: "?pr23325@@YAXQBUS@@0 at Z"
+// X64:   "?pr23325@@YAXQEBUS@@0 at Z"
 
 void vla_arg(int i, int a[][i]) {}
-// CHECK: "\01?vla_arg@@YAXHQAY0A at H@Z"
-// X64:   "\01?vla_arg@@YAXHQEAY0A at H@Z"
+// CHECK: "?vla_arg@@YAXHQAY0A at H@Z"
+// X64:   "?vla_arg@@YAXHQEAY0A at H@Z"

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp Fri Mar 16 13:36:49 2018
@@ -8,13 +8,13 @@ template<class X>
 class C {};
 
 void foo_abbb(A<B<char>, B<char>, B<char> >) {}
-// CHECK: "\01?foo_abbb@@YAXV?$A at V?$B at D@@V1 at V1@@@@Z"
+// CHECK: "?foo_abbb@@YAXV?$A at V?$B at D@@V1 at V1@@@@Z"
 void foo_abb(A<char, B<char>, B<char> >) {}
-// CHECK: "\01?foo_abb@@YAXV?$A at DV?$B at D@@V1@@@@Z"
+// CHECK: "?foo_abb@@YAXV?$A at DV?$B at D@@V1@@@@Z"
 void foo_abc(A<char, B<char>, C<char> >) {}
-// CHECK: "\01?foo_abc@@YAXV?$A at DV?$B at D@@V?$C at D@@@@@Z"
+// CHECK: "?foo_abc@@YAXV?$A at DV?$B at D@@V?$C at D@@@@@Z"
 void foo_bt(bool a, B<bool(bool)> b) {}
-// CHECK: "\01?foo_bt@@YAX_NV?$B@$$A6A_N_N at Z@@@Z"
+// CHECK: "?foo_bt@@YAX_NV?$B@$$A6A_N_N at Z@@@Z"
 
 namespace N {
 template<class X, class Y, class Z>
@@ -29,11 +29,11 @@ class Z {};
 }
 
 void foo_abbb(N::A<N::B<char>, N::B<char>, N::B<char> >) {}
-// CHECK: "\01?foo_abbb@@YAXV?$A at V?$B at D@N@@V12 at V12@@N@@@Z"
+// CHECK: "?foo_abbb@@YAXV?$A at V?$B at D@N@@V12 at V12@@N@@@Z"
 void foo_abb(N::A<char, N::B<char>, N::B<char> >) {}
-// CHECK: "\01?foo_abb@@YAXV?$A at DV?$B at D@N@@V12@@N@@@Z"
+// CHECK: "?foo_abb@@YAXV?$A at DV?$B at D@N@@V12@@N@@@Z"
 void foo_abc(N::A<char, N::B<char>, N::C<char> >) {}
-// CHECK: "\01?foo_abc@@YAXV?$A at DV?$B at D@N@@V?$C at D@2@@N@@@Z"
+// CHECK: "?foo_abc@@YAXV?$A at DV?$B at D@N@@V?$C at D@2@@N@@@Z"
 
 N::A<char, N::B<char>, N::C<char> > abc_foo() {
 // CHECK: ?abc_foo@@YA?AV?$A at DV?$B at D@N@@V?$C at D@2@@N@@XZ
@@ -71,16 +71,16 @@ template<class T> class Y {};
 }
 
 void foo5(NA::Y<NB::Y<NA::Y<NB::Y<NA::X> > > > arg) {}
-// CHECK: "\01?foo5@@YAXV?$Y at V?$Y at V?$Y at V?$Y at VX@NA@@@NB@@@NA@@@NB@@@NA@@@Z"
+// CHECK: "?foo5@@YAXV?$Y at V?$Y at V?$Y at V?$Y at VX@NA@@@NB@@@NA@@@NB@@@NA@@@Z"
 
 void foo11(NA::Y<NA::X>, NB::Y<NA::X>) {}
-// CHECK: "\01?foo11@@YAXV?$Y at VX@NA@@@NA@@V1NB@@@Z"
+// CHECK: "?foo11@@YAXV?$Y at VX@NA@@@NA@@V1NB@@@Z"
 
 void foo112(NA::Y<NA::X>, NB::Y<NB::X>) {}
-// CHECK: "\01?foo112@@YAXV?$Y at VX@NA@@@NA@@V?$Y at VX@NB@@@NB@@@Z"
+// CHECK: "?foo112@@YAXV?$Y at VX@NA@@@NA@@V?$Y at VX@NB@@@NB@@@Z"
 
 void foo22(NA::Y<NB::Y<NA::X> >, NB::Y<NA::Y<NA::X> >) {}
-// CHECK: "\01?foo22@@YAXV?$Y at V?$Y at VX@NA@@@NB@@@NA@@V?$Y at V?$Y at VX@NA@@@NA@@@NB@@@Z"
+// CHECK: "?foo22@@YAXV?$Y at V?$Y at VX@NA@@@NB@@@NA@@V?$Y at V?$Y at VX@NA@@@NA@@@NB@@@Z"
 
 namespace PR13207 {
 class A {};
@@ -100,56 +100,56 @@ class L {
  public:
   void foo(I<A> x) {}
 };
-// CHECK: "\01?foo at L@PR13207@@QAEXV?$I at VA@PR13207@@@2@@Z"
+// CHECK: "?foo at L@PR13207@@QAEXV?$I at VA@PR13207@@@2@@Z"
 
 void call_l_foo(L* l) { l->foo(I<A>()); }
 
 void foo(I<A> x) {}
-// CHECK: "\01?foo at PR13207@@YAXV?$I at VA@PR13207@@@1@@Z"
+// CHECK: "?foo at PR13207@@YAXV?$I at VA@PR13207@@@1@@Z"
 void foo2(I<A> x, I<A> y) { }
-// CHECK: "\01?foo2 at PR13207@@YAXV?$I at VA@PR13207@@@1 at 0@Z"
+// CHECK: "?foo2 at PR13207@@YAXV?$I at VA@PR13207@@@1 at 0@Z"
 void bar(J<A,B> x) {}
-// CHECK: "\01?bar at PR13207@@YAXV?$J at VA@PR13207@@VB at 2@@1@@Z"
+// CHECK: "?bar at PR13207@@YAXV?$J at VA@PR13207@@VB at 2@@1@@Z"
 void spam(K<A,B,C> x) {}
-// CHECK: "\01?spam at PR13207@@YAXV?$K at VA@PR13207@@VB at 2@VC at 2@@1@@Z"
+// CHECK: "?spam at PR13207@@YAXV?$K at VA@PR13207@@VB at 2@VC at 2@@1@@Z"
 
 void baz(K<char, F<char>, I<char> >) {}
-// CHECK: "\01?baz at PR13207@@YAXV?$K at DV?$F at D@PR13207@@V?$I at D@2@@1@@Z"
+// CHECK: "?baz at PR13207@@YAXV?$K at DV?$F at D@PR13207@@V?$I at D@2@@1@@Z"
 void qux(K<char, I<char>, I<char> >) {}
-// CHECK: "\01?qux at PR13207@@YAXV?$K at DV?$I at D@PR13207@@V12@@1@@Z"
+// CHECK: "?qux at PR13207@@YAXV?$K at DV?$I at D@PR13207@@V12@@1@@Z"
 
 namespace NA {
 class X {};
 template<class T> class Y {};
 void foo(Y<X> x) {}
-// CHECK: "\01?foo at NA@PR13207@@YAXV?$Y at VX@NA at PR13207@@@12@@Z"
+// CHECK: "?foo at NA@PR13207@@YAXV?$Y at VX@NA at PR13207@@@12@@Z"
 void foofoo(Y<Y<X> > x) {}
-// CHECK: "\01?foofoo at NA@PR13207@@YAXV?$Y at V?$Y at VX@NA at PR13207@@@NA at PR13207@@@12@@Z"
+// CHECK: "?foofoo at NA@PR13207@@YAXV?$Y at V?$Y at VX@NA at PR13207@@@NA at PR13207@@@12@@Z"
 }
 
 namespace NB {
 class X {};
 template<class T> class Y {};
 void foo(Y<NA::X> x) {}
-// CHECK: "\01?foo at NB@PR13207@@YAXV?$Y at VX@NA at PR13207@@@12@@Z"
+// CHECK: "?foo at NB@PR13207@@YAXV?$Y at VX@NA at PR13207@@@12@@Z"
 
 void bar(NA::Y<X> x) {}
-// CHECK: "\01?bar at NB@PR13207@@YAXV?$Y at VX@NB at PR13207@@@NA at 2@@Z"
+// CHECK: "?bar at NB@PR13207@@YAXV?$Y at VX@NB at PR13207@@@NA at 2@@Z"
 
 void spam(NA::Y<NA::X> x) {}
-// CHECK: "\01?spam at NB@PR13207@@YAXV?$Y at VX@NA at PR13207@@@NA at 2@@Z"
+// CHECK: "?spam at NB@PR13207@@YAXV?$Y at VX@NA at PR13207@@@NA at 2@@Z"
 
 void foobar(NA::Y<Y<X> > a, Y<Y<X> >) {}
-// CHECK: "\01?foobar at NB@PR13207@@YAXV?$Y at V?$Y at VX@NB at PR13207@@@NB at PR13207@@@NA at 2@V312@@Z"
+// CHECK: "?foobar at NB@PR13207@@YAXV?$Y at V?$Y at VX@NB at PR13207@@@NB at PR13207@@@NA at 2@V312@@Z"
 
 void foobarspam(Y<X> a, NA::Y<Y<X> > b, Y<Y<X> >) {}
-// CHECK: "\01?foobarspam at NB@PR13207@@YAXV?$Y at VX@NB at PR13207@@@12 at V?$Y at V?$Y at VX@NB at PR13207@@@NB at PR13207@@@NA at 2@V412@@Z"
+// CHECK: "?foobarspam at NB@PR13207@@YAXV?$Y at VX@NB at PR13207@@@12 at V?$Y at V?$Y at VX@NB at PR13207@@@NB at PR13207@@@NA at 2@V412@@Z"
 
 void foobarbaz(Y<X> a, NA::Y<Y<X> > b, Y<Y<X> >, Y<Y<X> > c) {}
-// CHECK: "\01?foobarbaz at NB@PR13207@@YAXV?$Y at VX@NB at PR13207@@@12 at V?$Y at V?$Y at VX@NB at PR13207@@@NB at PR13207@@@NA at 2@V412 at 2@Z"
+// CHECK: "?foobarbaz at NB@PR13207@@YAXV?$Y at VX@NB at PR13207@@@12 at V?$Y at V?$Y at VX@NB at PR13207@@@NB at PR13207@@@NA at 2@V412 at 2@Z"
 
 void foobarbazqux(Y<X> a, NA::Y<Y<X> > b, Y<Y<X> >, Y<Y<X> > c , NA::Y<Y<Y<X> > > d) {}
-// CHECK: "\01?foobarbazqux at NB@PR13207@@YAXV?$Y at VX@NB at PR13207@@@12 at V?$Y at V?$Y at VX@NB at PR13207@@@NB at PR13207@@@NA at 2@V412 at 2V?$Y at V?$Y at V?$Y at VX@NB at PR13207@@@NB at PR13207@@@NB at PR13207@@@52@@Z"
+// CHECK: "?foobarbazqux at NB@PR13207@@YAXV?$Y at VX@NB at PR13207@@@12 at V?$Y at V?$Y at VX@NB at PR13207@@@NB at PR13207@@@NA at 2@V412 at 2V?$Y at V?$Y at V?$Y at VX@NB at PR13207@@@NB at PR13207@@@NB at PR13207@@@52@@Z"
 }
 
 namespace NC {
@@ -157,10 +157,10 @@ class X {};
 template<class T> class Y {};
 
 void foo(Y<NB::X> x) {}
-// CHECK: "\01?foo at NC@PR13207@@YAXV?$Y at VX@NB at PR13207@@@12@@Z"
+// CHECK: "?foo at NC@PR13207@@YAXV?$Y at VX@NB at PR13207@@@12@@Z"
 
 void foobar(NC::Y<NB::Y<NA::Y<NA::X> > > x) {}
-// CHECK: "\01?foobar at NC@PR13207@@YAXV?$Y at V?$Y at V?$Y at VX@NA at PR13207@@@NA at PR13207@@@NB at PR13207@@@12@@Z"
+// CHECK: "?foobar at NC@PR13207@@YAXV?$Y at V?$Y at V?$Y at VX@NA at PR13207@@@NA at PR13207@@@NB at PR13207@@@12@@Z"
 }
 }
 
@@ -175,8 +175,8 @@ void fun_instantiate() {
   fun_normal(1);
   fun_tmpl(1);
 }
-// CHECK: "\01?fun_normal at fn_space@@YA?AURetVal at 1@H at Z"
-// CHECK: "\01??$fun_tmpl at H@fn_space@@YA?AURetVal at 0@ABH at Z"
+// CHECK: "?fun_normal at fn_space@@YA?AURetVal at 1@H at Z"
+// CHECK: "??$fun_tmpl at H@fn_space@@YA?AURetVal at 0@ABH at Z"
 
 template <typename T, RetVal (*F)(T)>
 RetVal fun_tmpl_recurse(T t) {
@@ -188,6 +188,6 @@ RetVal ident(int x) { return RetVal(); }
 void fun_instantiate2() {
   fun_tmpl_recurse<int, fun_tmpl_recurse<int, ident> >(10);
 }
-// CHECK: "\01??$fun_tmpl_recurse at H$1??$fun_tmpl_recurse at H$1?ident at fn_space@@YA?AURetVal at 2@H at Z@fn_space@@YA?AURetVal at 1@H at Z@fn_space@@YA?AURetVal at 0@H at Z"
-// CHECK: "\01??$fun_tmpl_recurse at H$1?ident at fn_space@@YA?AURetVal at 2@H at Z@fn_space@@YA?AURetVal at 0@H at Z"
+// CHECK: "??$fun_tmpl_recurse at H$1??$fun_tmpl_recurse at H$1?ident at fn_space@@YA?AURetVal at 2@H at Z@fn_space@@YA?AURetVal at 1@H at Z@fn_space@@YA?AURetVal at 0@H at Z"
+// CHECK: "??$fun_tmpl_recurse at H$1?ident at fn_space@@YA?AURetVal at 2@H at Z@fn_space@@YA?AURetVal at 0@H at Z"
 }

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-back-references.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-back-references.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-back-references.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-back-references.cpp Fri Mar 16 13:36:49 2018
@@ -1,25 +1,25 @@
 // RUN: %clang_cc1 -fms-extensions -fblocks -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
 
 void f1(const char* a, const char* b) {}
-// CHECK: "\01?f1@@YAXPBD0 at Z"
+// CHECK: "?f1@@YAXPBD0 at Z"
 
 void f2(const char* a, char* b) {}
-// CHECK: "\01?f2@@YAXPBDPAD at Z"
+// CHECK: "?f2@@YAXPBDPAD at Z"
 
 void f3(int a, const char* b, const char* c) {}
-// CHECK: "\01?f3@@YAXHPBD0 at Z"
+// CHECK: "?f3@@YAXHPBD0 at Z"
 
 const char *f4(const char* a, const char* b) { return 0; }
-// CHECK: "\01?f4@@YAPBDPBD0 at Z"
+// CHECK: "?f4@@YAPBDPBD0 at Z"
 
 void f5(char const* a, unsigned int b, char c, void const* d, char const* e, unsigned int f) {}
-// CHECK: "\01?f5@@YAXPBDIDPBX0I at Z"
+// CHECK: "?f5@@YAXPBDIDPBX0I at Z"
 
 void f6(bool a, bool b) {}
-// CHECK: "\01?f6@@YAX_N0 at Z"
+// CHECK: "?f6@@YAX_N0 at Z"
 
 void f7(int a, int* b, int c, int* d, bool e, bool f, bool* g) {}
-// CHECK: "\01?f7@@YAXHPAHH0_N1PA_N at Z"
+// CHECK: "?f7@@YAXHPAHH0_N1PA_N at Z"
 
 // FIXME: tests for more than 10 types?
 
@@ -28,18 +28,18 @@ struct S {
 };
 
 void g1(struct S a) {}
-// CHECK: "\01?g1@@YAXUS@@@Z"
+// CHECK: "?g1@@YAXUS@@@Z"
 
 void g2(struct S a, struct S b) {}
-// CHECK: "\01?g2@@YAXUS@@0 at Z"
+// CHECK: "?g2@@YAXUS@@0 at Z"
 
 void g3(struct S a, struct S b, struct S* c, struct S* d) {}
-// CHECK: "\01?g3@@YAXUS@@0PAU1 at 1@Z"
+// CHECK: "?g3@@YAXUS@@0PAU1 at 1@Z"
 
 void g4(const char* a, struct S* b, const char* c, struct S* d) {
-// CHECK: "\01?g4@@YAXPBDPAUS@@01 at Z"
+// CHECK: "?g4@@YAXPBDPAUS@@01 at Z"
   b->mbb(false, false);
-// CHECK: "\01?mbb at S@@QAEX_N0 at Z"
+// CHECK: "?mbb at S@@QAEX_N0 at Z"
 }
 
 // Make sure that different aliases of built-in types end up mangled as the
@@ -47,22 +47,22 @@ void g4(const char* a, struct S* b, cons
 typedef unsigned int uintptr_t;
 typedef unsigned int size_t;
 void *h(size_t a, uintptr_t b) { return 0; }
-// CHECK: "\01?h@@YAPAXII at Z"
+// CHECK: "?h@@YAPAXII at Z"
 
 // Function pointers might be mangled in a complex way.
 typedef void (*VoidFunc)();
 typedef int* (*PInt3Func)(int* a, int* b);
 
 void h1(const char* a, const char* b, VoidFunc c, VoidFunc d) {}
-// CHECK: "\01?h1@@YAXPBD0P6AXXZ1 at Z"
+// CHECK: "?h1@@YAXPBD0P6AXXZ1 at Z"
 
 void h2(void (*f_ptr)(void *), void *arg) {}
-// CHECK: "\01?h2@@YAXP6AXPAX at Z0@Z"
+// CHECK: "?h2@@YAXP6AXPAX at Z0@Z"
 
 PInt3Func h3(PInt3Func x, PInt3Func y, int* z) { return 0; }
-// CHECK: "\01?h3@@YAP6APAHPAH0 at ZP6APAH00@Z10 at Z"
+// CHECK: "?h3@@YAP6APAHPAH0 at ZP6APAH00@Z10 at Z"
 
 namespace foo {
 void foo() { }
-// CHECK: "\01?foo at 0@YAXXZ"
+// CHECK: "?foo at 0@YAXXZ"
 }

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-cxx11.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-cxx11.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-cxx11.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-cxx11.cpp Fri Mar 16 13:36:49 2018
@@ -7,69 +7,69 @@ struct S {};
 
 using A = int () const;
 S<A> a;
-// CHECK-DAG: @"\01?a at FTypeWithQuals@@3U?$S@$$A8@@BAHXZ at 1@A"
+// CHECK-DAG: @"?a at FTypeWithQuals@@3U?$S@$$A8@@BAHXZ at 1@A"
 
 using B = int () volatile;
 S<B> b;
-// CHECK-DAG: @"\01?b at FTypeWithQuals@@3U?$S@$$A8@@CAHXZ at 1@A"
+// CHECK-DAG: @"?b at FTypeWithQuals@@3U?$S@$$A8@@CAHXZ at 1@A"
 
 using C = int () __restrict;
 S<C> c;
-// CHECK-DAG: @"\01?c at FTypeWithQuals@@3U?$S@$$A8@@IAAHXZ at 1@A"
+// CHECK-DAG: @"?c at FTypeWithQuals@@3U?$S@$$A8@@IAAHXZ at 1@A"
 
 using D = int () const &;
 S<D> d;
-// CHECK-DAG: @"\01?d at FTypeWithQuals@@3U?$S@$$A8@@GBAHXZ at 1@A"
+// CHECK-DAG: @"?d at FTypeWithQuals@@3U?$S@$$A8@@GBAHXZ at 1@A"
 
 using E = int () volatile &;
 S<E> e;
-// CHECK-DAG: @"\01?e at FTypeWithQuals@@3U?$S@$$A8@@GCAHXZ at 1@A"
+// CHECK-DAG: @"?e at FTypeWithQuals@@3U?$S@$$A8@@GCAHXZ at 1@A"
 
 using F = int () __restrict &;
 S<F> f;
-// CHECK-DAG: @"\01?f at FTypeWithQuals@@3U?$S@$$A8@@IGAAHXZ at 1@A"
+// CHECK-DAG: @"?f at FTypeWithQuals@@3U?$S@$$A8@@IGAAHXZ at 1@A"
 
 using G = int () const &&;
 S<G> g;
-// CHECK-DAG: @"\01?g at FTypeWithQuals@@3U?$S@$$A8@@HBAHXZ at 1@A"
+// CHECK-DAG: @"?g at FTypeWithQuals@@3U?$S@$$A8@@HBAHXZ at 1@A"
 
 using H = int () volatile &&;
 S<H> h;
-// CHECK-DAG: @"\01?h at FTypeWithQuals@@3U?$S@$$A8@@HCAHXZ at 1@A"
+// CHECK-DAG: @"?h at FTypeWithQuals@@3U?$S@$$A8@@HCAHXZ at 1@A"
 
 using I = int () __restrict &&;
 S<I> i;
-// CHECK-DAG: @"\01?i at FTypeWithQuals@@3U?$S@$$A8@@IHAAHXZ at 1@A"
+// CHECK-DAG: @"?i at FTypeWithQuals@@3U?$S@$$A8@@IHAAHXZ at 1@A"
 
 using J = int ();
 S<J> j;
-// CHECK-DAG: @"\01?j at FTypeWithQuals@@3U?$S@$$A6AHXZ at 1@A"
+// CHECK-DAG: @"?j at FTypeWithQuals@@3U?$S@$$A6AHXZ at 1@A"
 
 using K = int () &;
 S<K> k;
-// CHECK-DAG: @"\01?k at FTypeWithQuals@@3U?$S@$$A8@@GAAHXZ at 1@A"
+// CHECK-DAG: @"?k at FTypeWithQuals@@3U?$S@$$A8@@GAAHXZ at 1@A"
 
 using L = int () &&;
 S<L> l;
-// CHECK-DAG: @"\01?l at FTypeWithQuals@@3U?$S@$$A8@@HAAHXZ at 1@A"
+// CHECK-DAG: @"?l at FTypeWithQuals@@3U?$S@$$A8@@HAAHXZ at 1@A"
 }
 
-// CHECK: "\01?DeducedType@@3HA"
+// CHECK: "?DeducedType@@3HA"
 auto DeducedType = 30;
 
-// CHECK-DAG: @"\01?Char16Var@@3_SA"
+// CHECK-DAG: @"?Char16Var@@3_SA"
 char16_t Char16Var;
 
-// CHECK-DAG: @"\01?Char32Var@@3_UA"
+// CHECK-DAG: @"?Char32Var@@3_UA"
 char32_t Char32Var;
 
-// CHECK: "\01?LRef@@YAXAAH at Z"
+// CHECK: "?LRef@@YAXAAH at Z"
 void LRef(int& a) { }
 
-// CHECK: "\01?RRef@@YAH$$QAH at Z"
+// CHECK: "?RRef@@YAH$$QAH at Z"
 int RRef(int&& a) { return a; }
 
-// CHECK: "\01?Null@@YAX$$T at Z"
+// CHECK: "?Null@@YAX$$T at Z"
 namespace std { typedef decltype(__nullptr) nullptr_t; }
 void Null(std::nullptr_t) {}
 
@@ -87,19 +87,19 @@ namespace EnumMangling {
   extern enum Enum11 : unsigned long { } ULongEnum;
   extern enum Enum12 : long long { } SLongLongEnum;
   extern enum Enum13 : unsigned long long { } ULongLongEnum;
-// CHECK-DAG: @"\01?Enum at EnumMangling@@3W4Enum01 at 1@A"
-// CHECK-DAG: @"\01?BoolEnum at EnumMangling@@3W4Enum02 at 1@A
-// CHECK-DAG: @"\01?CharEnum at EnumMangling@@3W4Enum03 at 1@A
-// CHECK-DAG: @"\01?SCharEnum at EnumMangling@@3W4Enum04 at 1@A
-// CHECK-DAG: @"\01?UCharEnum at EnumMangling@@3W4Enum05 at 1@A
-// CHECK-DAG: @"\01?SShortEnum at EnumMangling@@3W4Enum06 at 1@A"
-// CHECK-DAG: @"\01?UShortEnum at EnumMangling@@3W4Enum07 at 1@A"
-// CHECK-DAG: @"\01?SIntEnum at EnumMangling@@3W4Enum08 at 1@A"
-// CHECK-DAG: @"\01?UIntEnum at EnumMangling@@3W4Enum09 at 1@A"
-// CHECK-DAG: @"\01?SLongEnum at EnumMangling@@3W4Enum10 at 1@A"
-// CHECK-DAG: @"\01?ULongEnum at EnumMangling@@3W4Enum11 at 1@A"
-// CHECK-DAG: @"\01?SLongLongEnum at EnumMangling@@3W4Enum12 at 1@A"
-// CHECK-DAG: @"\01?ULongLongEnum at EnumMangling@@3W4Enum13 at 1@A"
+// CHECK-DAG: @"?Enum at EnumMangling@@3W4Enum01 at 1@A"
+// CHECK-DAG: @"?BoolEnum at EnumMangling@@3W4Enum02 at 1@A
+// CHECK-DAG: @"?CharEnum at EnumMangling@@3W4Enum03 at 1@A
+// CHECK-DAG: @"?SCharEnum at EnumMangling@@3W4Enum04 at 1@A
+// CHECK-DAG: @"?UCharEnum at EnumMangling@@3W4Enum05 at 1@A
+// CHECK-DAG: @"?SShortEnum at EnumMangling@@3W4Enum06 at 1@A"
+// CHECK-DAG: @"?UShortEnum at EnumMangling@@3W4Enum07 at 1@A"
+// CHECK-DAG: @"?SIntEnum at EnumMangling@@3W4Enum08 at 1@A"
+// CHECK-DAG: @"?UIntEnum at EnumMangling@@3W4Enum09 at 1@A"
+// CHECK-DAG: @"?SLongEnum at EnumMangling@@3W4Enum10 at 1@A"
+// CHECK-DAG: @"?ULongEnum at EnumMangling@@3W4Enum11 at 1@A"
+// CHECK-DAG: @"?SLongLongEnum at EnumMangling@@3W4Enum12 at 1@A"
+// CHECK-DAG: @"?ULongLongEnum at EnumMangling@@3W4Enum13 at 1@A"
   decltype(Enum) *UseEnum() { return &Enum; }
   decltype(BoolEnum) *UseBoolEnum() { return &BoolEnum; }
   decltype(CharEnum) *UseCharEnum() { return &CharEnum; }
@@ -126,19 +126,19 @@ namespace EnumMangling {
   extern enum class EnumClass11 : unsigned long { } ULongEnumClass;
   extern enum class EnumClass12 : long long { } SLongLongEnumClass;
   extern enum class EnumClass13 : unsigned long long { } ULongLongEnumClass;
-// CHECK-DAG: @"\01?EnumClass at EnumMangling@@3W4EnumClass01 at 1@A"
-// CHECK-DAG: @"\01?BoolEnumClass at EnumMangling@@3W4EnumClass02 at 1@A
-// CHECK-DAG: @"\01?CharEnumClass at EnumMangling@@3W4EnumClass03 at 1@A
-// CHECK-DAG: @"\01?SCharEnumClass at EnumMangling@@3W4EnumClass04 at 1@A
-// CHECK-DAG: @"\01?UCharEnumClass at EnumMangling@@3W4EnumClass05 at 1@A
-// CHECK-DAG: @"\01?SShortEnumClass at EnumMangling@@3W4EnumClass06 at 1@A"
-// CHECK-DAG: @"\01?UShortEnumClass at EnumMangling@@3W4EnumClass07 at 1@A"
-// CHECK-DAG: @"\01?SIntEnumClass at EnumMangling@@3W4EnumClass08 at 1@A"
-// CHECK-DAG: @"\01?UIntEnumClass at EnumMangling@@3W4EnumClass09 at 1@A"
-// CHECK-DAG: @"\01?SLongEnumClass at EnumMangling@@3W4EnumClass10 at 1@A"
-// CHECK-DAG: @"\01?ULongEnumClass at EnumMangling@@3W4EnumClass11 at 1@A"
-// CHECK-DAG: @"\01?SLongLongEnumClass at EnumMangling@@3W4EnumClass12 at 1@A"
-// CHECK-DAG: @"\01?ULongLongEnumClass at EnumMangling@@3W4EnumClass13 at 1@A"
+// CHECK-DAG: @"?EnumClass at EnumMangling@@3W4EnumClass01 at 1@A"
+// CHECK-DAG: @"?BoolEnumClass at EnumMangling@@3W4EnumClass02 at 1@A
+// CHECK-DAG: @"?CharEnumClass at EnumMangling@@3W4EnumClass03 at 1@A
+// CHECK-DAG: @"?SCharEnumClass at EnumMangling@@3W4EnumClass04 at 1@A
+// CHECK-DAG: @"?UCharEnumClass at EnumMangling@@3W4EnumClass05 at 1@A
+// CHECK-DAG: @"?SShortEnumClass at EnumMangling@@3W4EnumClass06 at 1@A"
+// CHECK-DAG: @"?UShortEnumClass at EnumMangling@@3W4EnumClass07 at 1@A"
+// CHECK-DAG: @"?SIntEnumClass at EnumMangling@@3W4EnumClass08 at 1@A"
+// CHECK-DAG: @"?UIntEnumClass at EnumMangling@@3W4EnumClass09 at 1@A"
+// CHECK-DAG: @"?SLongEnumClass at EnumMangling@@3W4EnumClass10 at 1@A"
+// CHECK-DAG: @"?ULongEnumClass at EnumMangling@@3W4EnumClass11 at 1@A"
+// CHECK-DAG: @"?SLongLongEnumClass at EnumMangling@@3W4EnumClass12 at 1@A"
+// CHECK-DAG: @"?ULongLongEnumClass at EnumMangling@@3W4EnumClass13 at 1@A"
   decltype(EnumClass) *UseEnumClass() { return &EnumClass; }
   decltype(BoolEnumClass) *UseBoolEnumClass() { return &BoolEnumClass; }
   decltype(CharEnumClass) *UseCharEnumClass() { return &CharEnumClass; }
@@ -158,7 +158,7 @@ namespace PR18022 {
 
 struct { } a;
 decltype(a) fun(decltype(a) x, decltype(a)) { return x; }
-// CHECK-DAG: @"\01?fun at PR18022@@YA?AU<unnamed-type-a>@1 at U21@0 at Z"
+// CHECK-DAG: @"?fun at PR18022@@YA?AU<unnamed-type-a>@1 at U21@0 at Z"
 
 void use_fun() { fun(a, a); }
 
@@ -168,14 +168,14 @@ inline int define_lambda() {
   static auto lambda = [] { static int local; ++local; return local; };
 // First, we have the static local variable of type "<lambda_1>" inside of
 // "define_lambda".
-// CHECK-DAG: @"\01?lambda@?1??define_lambda@@YAHXZ at 4V<lambda_1>@?0??1 at YAHXZ@A"
+// CHECK-DAG: @"?lambda@?1??define_lambda@@YAHXZ at 4V<lambda_1>@?0??1 at YAHXZ@A"
 // Next, we have the "operator()" for "<lambda_1>" which is inside of
 // "define_lambda".
-// CHECK-DAG: @"\01??R<lambda_1>@?0??define_lambda@@YAHXZ at QBE@XZ"
+// CHECK-DAG: @"??R<lambda_1>@?0??define_lambda@@YAHXZ at QBE@XZ"
 // Finally, we have the local which is inside of "<lambda_1>" which is inside of
 // "define_lambda". Hooray.
-// MSVC2013-DAG: @"\01?local@?2???R<lambda_1>@?0??define_lambda@@YAHXZ at QBE@XZ at 4HA"
-// MSVC2015-DAG: @"\01?local@?1???R<lambda_1>@?0??define_lambda@@YAHXZ at QBE@XZ at 4HA"
+// MSVC2013-DAG: @"?local@?2???R<lambda_1>@?0??define_lambda@@YAHXZ at QBE@XZ at 4HA"
+// MSVC2015-DAG: @"?local@?1???R<lambda_1>@?0??define_lambda@@YAHXZ at QBE@XZ at 4HA"
   return lambda();
 }
 
@@ -184,12 +184,12 @@ void use_lambda_arg(T) {}
 
 inline void call_with_lambda_arg1() {
   use_lambda_arg([]{});
-  // CHECK-DAG: @"\01??$use_lambda_arg at V<lambda_1>@?0??call_with_lambda_arg1@@YAXXZ@@@YAXV<lambda_1>@?0??call_with_lambda_arg1@@YAXXZ@@Z"
+  // CHECK-DAG: @"??$use_lambda_arg at V<lambda_1>@?0??call_with_lambda_arg1@@YAXXZ@@@YAXV<lambda_1>@?0??call_with_lambda_arg1@@YAXXZ@@Z"
 }
 
 inline void call_with_lambda_arg2() {
   use_lambda_arg([]{});
-  // CHECK-DAG: @"\01??$use_lambda_arg at V<lambda_1>@?0??call_with_lambda_arg2@@YAXXZ@@@YAXV<lambda_1>@?0??call_with_lambda_arg2@@YAXXZ@@Z"
+  // CHECK-DAG: @"??$use_lambda_arg at V<lambda_1>@?0??call_with_lambda_arg2@@YAXXZ@@@YAXV<lambda_1>@?0??call_with_lambda_arg2@@YAXXZ@@Z"
 }
 
 int call_lambda() {
@@ -204,33 +204,33 @@ struct A {
   void foo() __restrict &&;
 };
 void A::foo() __restrict & {}
-// CHECK-DAG: @"\01?foo at A@PR19361@@QIGAEXXZ"
+// CHECK-DAG: @"?foo at A@PR19361@@QIGAEXXZ"
 void A::foo() __restrict && {}
-// CHECK-DAG: @"\01?foo at A@PR19361@@QIHAEXXZ"
+// CHECK-DAG: @"?foo at A@PR19361@@QIHAEXXZ"
 }
 
 int operator"" _deg(long double) { return 0; }
-// CHECK-DAG: @"\01??__K_deg@@YAHO at Z"
+// CHECK-DAG: @"??__K_deg@@YAHO at Z"
 
 template <char...>
 void templ_fun_with_pack() {}
 
 template void templ_fun_with_pack<>();
-// CHECK-DAG: @"\01??$templ_fun_with_pack@$S@@YAXXZ"
+// CHECK-DAG: @"??$templ_fun_with_pack@$S@@YAXXZ"
 
 template <typename...>
 void templ_fun_with_ty_pack() {}
 
 template void templ_fun_with_ty_pack<>();
-// MSVC2013-DAG: @"\01??$templ_fun_with_ty_pack@$$$V@@YAXXZ"
-// MSVC2015-DAG: @"\01??$templ_fun_with_ty_pack@$$V@@YAXXZ"
+// MSVC2013-DAG: @"??$templ_fun_with_ty_pack@$$$V@@YAXXZ"
+// MSVC2015-DAG: @"??$templ_fun_with_ty_pack@$$V@@YAXXZ"
 
 template <template <class> class...>
 void templ_fun_with_templ_templ_pack() {}
 
 template void templ_fun_with_templ_templ_pack<>();
-// MSVC2013-DAG: @"\01??$templ_fun_with_templ_templ_pack@$$$V@@YAXXZ"
-// MSVC2015-DAG: @"\01??$templ_fun_with_templ_templ_pack@$$V@@YAXXZ"
+// MSVC2013-DAG: @"??$templ_fun_with_templ_templ_pack@$$$V@@YAXXZ"
+// MSVC2015-DAG: @"??$templ_fun_with_templ_templ_pack@$$V@@YAXXZ"
 
 namespace PR20047 {
 template <typename T>
@@ -243,7 +243,7 @@ template <template <typename> class>
 void f() {}
 
 template void f<AliasA>();
-// CHECK-DAG: @"\01??$f@$$YAliasA at PR20047@@@PR20047@@YAXXZ"
+// CHECK-DAG: @"??$f@$$YAliasA at PR20047@@@PR20047@@YAXXZ"
 }
 
 namespace UnnamedType {
@@ -252,7 +252,7 @@ struct A {
 };
 
 void f(decltype(*A::TD)) {}
-// CHECK-DAG: @"\01?f at UnnamedType@@YAXAAU<unnamed-type-TD>@A at 1@@Z"
+// CHECK-DAG: @"?f at UnnamedType@@YAXAAU<unnamed-type-TD>@A at 1@@Z"
 
 template <typename T>
 struct B {
@@ -261,7 +261,7 @@ struct B {
 };
 
 void f(decltype(B<int>::e)) {}
-// CHECK-DAG: @"\01?f at UnnamedType@@YAXPAW4<unnamed-type-e>@?$B at H@1@@Z
+// CHECK-DAG: @"?f at UnnamedType@@YAXPAW4<unnamed-type-e>@?$B at H@1@@Z
 }
 
 namespace PR24651 {
@@ -276,8 +276,8 @@ void g() {
     f(E);
   }
 }
-// CHECK-DAG: @"\01??$f at W4<unnamed-type-E>@?1??g at PR24651@@YAXXZ@@PR24651@@YAXW4<unnamed-type-E>@?1??g at 0@YAXXZ@@Z"
-// CHECK-DAG: @"\01??$f at W4<unnamed-type-E>@?2??g at PR24651@@YAXXZ@@PR24651@@YAXW4<unnamed-type-E>@?2??g at 0@YAXXZ@@Z"
+// CHECK-DAG: @"??$f at W4<unnamed-type-E>@?1??g at PR24651@@YAXXZ@@PR24651@@YAXW4<unnamed-type-E>@?1??g at 0@YAXXZ@@Z"
+// CHECK-DAG: @"??$f at W4<unnamed-type-E>@?2??g at PR24651@@YAXXZ@@PR24651@@YAXW4<unnamed-type-E>@?2??g at 0@YAXXZ@@Z"
 }
 
 namespace PR18204 {
@@ -286,15 +286,15 @@ int f(T *) { return 0; }
 static union {
   int n = f(this);
 };
-// CHECK-DAG: @"\01??$f at T<unnamed-type-$S1>@PR18204@@@PR18204@@YAHPAT<unnamed-type-$S1>@0@@Z"
+// CHECK-DAG: @"??$f at T<unnamed-type-$S1>@PR18204@@@PR18204@@YAHPAT<unnamed-type-$S1>@0@@Z"
 }
 
 int PR26105() {
   auto add = [](int x) { return ([x](int y) { return x + y; }); };
   return add(3)(4);
 }
-// CHECK-DAG: @"\01??R<lambda_0>@?0??PR26105@@YAHXZ at QBE@H at Z"
-// CHECK-DAG: @"\01??R<lambda_1>@?0???R<lambda_0>@?0??PR26105@@YAHXZ at QBE@H at Z@QBE at H@Z"
+// CHECK-DAG: @"??R<lambda_0>@?0??PR26105@@YAHXZ at QBE@H at Z"
+// CHECK-DAG: @"??R<lambda_1>@?0???R<lambda_0>@?0??PR26105@@YAHXZ at QBE@H at Z@QBE at H@Z"
 
 int __unaligned * unaligned_foo1() { return 0; }
 int __unaligned * __unaligned * unaligned_foo2() { return 0; }
@@ -304,13 +304,13 @@ void unaligned_foo5(int __unaligned * __
 template <typename T> T unaligned_foo6(T t) { return t; }
 void unaligned_foo7() { unaligned_foo6<int *>(0); unaligned_foo6<int __unaligned *>(0); }
 
-// CHECK-DAG: @"\01?unaligned_foo1@@YAPFAHXZ"
-// CHECK-DAG: @"\01?unaligned_foo2@@YAPFAPFAHXZ"
-// CHECK-DAG: @"\01?unaligned_foo3@@YAHXZ"
-// CHECK-DAG: @"\01?unaligned_foo4@@YAXPFAH at Z"
-// CHECK-DAG: @"\01?unaligned_foo5@@YAXPIFAH at Z"
-// CHECK-DAG: @"\01??$unaligned_foo6 at PAH@@YAPAHPAH at Z"
-// CHECK-DAG: @"\01??$unaligned_foo6 at PFAH@@YAPFAHPFAH at Z"
+// CHECK-DAG: @"?unaligned_foo1@@YAPFAHXZ"
+// CHECK-DAG: @"?unaligned_foo2@@YAPFAPFAHXZ"
+// CHECK-DAG: @"?unaligned_foo3@@YAHXZ"
+// CHECK-DAG: @"?unaligned_foo4@@YAXPFAH at Z"
+// CHECK-DAG: @"?unaligned_foo5@@YAXPIFAH at Z"
+// CHECK-DAG: @"??$unaligned_foo6 at PAH@@YAPAHPAH at Z"
+// CHECK-DAG: @"??$unaligned_foo6 at PFAH@@YAPFAHPFAH at Z"
 
 // __unaligned qualifier for function types
 struct unaligned_foo8_S {
@@ -318,28 +318,28 @@ struct unaligned_foo8_S {
 };
 void unaligned_foo8_S::unaligned_foo8() volatile __unaligned {}
 
-// CHECK-DAG: @"\01?unaligned_foo8 at unaligned_foo8_S@@QFCEXXZ"
+// CHECK-DAG: @"?unaligned_foo8 at unaligned_foo8_S@@QFCEXXZ"
 
 namespace PR31197 {
 struct A {
-  // CHECK-DAG: define linkonce_odr dso_local x86_thiscallcc i32* @"\01??R<lambda_1>@x at A@PR31197@@QBE at XZ"(
+  // CHECK-DAG: define linkonce_odr dso_local x86_thiscallcc i32* @"??R<lambda_1>@x at A@PR31197@@QBE at XZ"(
   int *x = []() {
     static int white;
-    // CHECK-DAG: @"\01?white@?1???R<lambda_1>@x at A@PR31197@@QBE at XZ@4HA"
+    // CHECK-DAG: @"?white@?1???R<lambda_1>@x at A@PR31197@@QBE at XZ@4HA"
     return &white;
   }();
-  // CHECK-DAG: define linkonce_odr dso_local x86_thiscallcc i32* @"\01??R<lambda_1>@y at A@PR31197@@QBE at XZ"(
+  // CHECK-DAG: define linkonce_odr dso_local x86_thiscallcc i32* @"??R<lambda_1>@y at A@PR31197@@QBE at XZ"(
   int *y = []() {
     static int black;
-    // CHECK-DAG: @"\01?black@?1???R<lambda_1>@y at A@PR31197@@QBE at XZ@4HA"
+    // CHECK-DAG: @"?black@?1???R<lambda_1>@y at A@PR31197@@QBE at XZ@4HA"
     return &black;
   }();
   using FPtrTy = void(void);
   static void default_args(FPtrTy x = [] {}, FPtrTy y = [] {}, int z = [] { return 1; }() + [] { return 2; }()) {}
-  // CHECK-DAG: @"\01??R<lambda_1_1>@?0??default_args at A@PR31197@@SAXP6AXXZ0H at Z@QBE at XZ"(
-  // CHECK-DAG: @"\01??R<lambda_1_2>@?0??default_args at A@PR31197@@SAXP6AXXZ0H at Z@QBE at XZ"(
-  // CHECK-DAG: @"\01??R<lambda_2_1>@?0??default_args at A@PR31197@@SAXP6AXXZ0H at Z@QBE at XZ"(
-  // CHECK-DAG: @"\01??R<lambda_3_1>@?0??default_args at A@PR31197@@SAXP6AXXZ0H at Z@QBE at XZ"(
+  // CHECK-DAG: @"??R<lambda_1_1>@?0??default_args at A@PR31197@@SAXP6AXXZ0H at Z@QBE at XZ"(
+  // CHECK-DAG: @"??R<lambda_1_2>@?0??default_args at A@PR31197@@SAXP6AXXZ0H at Z@QBE at XZ"(
+  // CHECK-DAG: @"??R<lambda_2_1>@?0??default_args at A@PR31197@@SAXP6AXXZ0H at Z@QBE at XZ"(
+  // CHECK-DAG: @"??R<lambda_3_1>@?0??default_args at A@PR31197@@SAXP6AXXZ0H at Z@QBE at XZ"(
 };
 A a;
 
@@ -348,5 +348,5 @@ int call_it = (A::default_args(), 1);
 
 enum { enumerator };
 void f(decltype(enumerator)) {}
-// CHECK-DAG: define internal void @"\01?f@@YAXW4<unnamed-enum-enumerator>@@@Z"(
+// CHECK-DAG: define internal void @"?f@@YAXW4<unnamed-enum-enumerator>@@@Z"(
 void use_f() { f(enumerator); }

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-cxx14.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-cxx14.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-cxx14.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-cxx14.cpp Fri Mar 16 13:36:49 2018
@@ -3,27 +3,27 @@
 
 template <typename> int x = 0;
 
-// CHECK-DAG: "\01??$x at X@@3HA"
+// CHECK-DAG: "??$x at X@@3HA"
 template <> int x<void>;
-// CHECK-DAG: "\01??$x at H@@3HA"
+// CHECK-DAG: "??$x at H@@3HA"
 template <> int x<int>;
 
-// CHECK-DAG: "\01?FunctionWithLocalType@@YA?A?<auto>@@XZ"
+// CHECK-DAG: "?FunctionWithLocalType@@YA?A?<auto>@@XZ"
 auto FunctionWithLocalType() {
   struct LocalType {};
   return LocalType{};
 }
 
-// CHECK-DAG: "\01?ValueFromFunctionWithLocalType@@3ULocalType@?1??FunctionWithLocalType@@YA?A?<auto>@@XZ at A"
+// CHECK-DAG: "?ValueFromFunctionWithLocalType@@3ULocalType@?1??FunctionWithLocalType@@YA?A?<auto>@@XZ at A"
 auto ValueFromFunctionWithLocalType = FunctionWithLocalType();
 
-// CHECK-DAG: "\01??R<lambda_0>@@QBE?A?<auto>@@XZ"
+// CHECK-DAG: "??R<lambda_0>@@QBE?A?<auto>@@XZ"
 auto LambdaWithLocalType = [] {
   struct LocalType {};
   return LocalType{};
 };
 
-// CHECK-DAG: "\01?ValueFromLambdaWithLocalType@@3ULocalType@?1???R<lambda_0>@@QBE?A?<auto>@@XZ at A"
+// CHECK-DAG: "?ValueFromLambdaWithLocalType@@3ULocalType@?1???R<lambda_0>@@QBE?A?<auto>@@XZ at A"
 auto ValueFromLambdaWithLocalType = LambdaWithLocalType();
 
 template <typename T>
@@ -35,12 +35,12 @@ auto TemplateFuncionWithLocalLambda(T) {
   return LocalLambdaWithLocalType();
 }
 
-// MSVC2013-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?2???R<lambda_1>@?0???$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z@QBE?A?3 at XZ@A"
-// MSVC2013-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?2???R<lambda_1>@?0???$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z@QBE?A?3 at XZ@A"
-// MSVC2015-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?1???R<lambda_1>@?0???$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z@QBE?A?3 at XZ@A"
-// MSVC2015-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?1???R<lambda_1>@?0???$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z@QBE?A?3 at XZ@A"
-// CHECK-DAG: "\01??$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z"
-// CHECK-DAG: "\01??R<lambda_1>@?0???$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z@QBE?A?1 at XZ"
+// MSVC2013-DAG: "?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?2???R<lambda_1>@?0???$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z@QBE?A?3 at XZ@A"
+// MSVC2013-DAG: "?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?2???R<lambda_1>@?0???$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z@QBE?A?3 at XZ@A"
+// MSVC2015-DAG: "?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?1???R<lambda_1>@?0???$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z@QBE?A?3 at XZ@A"
+// MSVC2015-DAG: "?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?1???R<lambda_1>@?0???$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z@QBE?A?3 at XZ@A"
+// CHECK-DAG: "??$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z"
+// CHECK-DAG: "??R<lambda_1>@?0???$TemplateFuncionWithLocalLambda at H@@YA?A?<auto>@@H at Z@QBE?A?1 at XZ"
 auto ValueFromTemplateFuncionWithLocalLambda = TemplateFuncionWithLocalLambda(0);
 
 struct S;
@@ -48,15 +48,15 @@ template <int S::*>
 int WithPMD = 0;
 
 template <> int WithPMD<nullptr>;
-// CHECK-DAG: "\01??$WithPMD@$GA at A@?0@@3HA"
+// CHECK-DAG: "??$WithPMD@$GA at A@?0@@3HA"
 
 template <const int *, const int *>
 struct Foo {};
 
 Foo<&x<int>, &x<int>> Zoo;
-// CHECK-DAG: "\01?Zoo@@3U?$Foo@$1??$x at H@@3HA$1?1 at 3HA@@A"
+// CHECK-DAG: "?Zoo@@3U?$Foo@$1??$x at H@@3HA$1?1 at 3HA@@A"
 
 template <typename T> T unaligned_x;
 extern auto test_unaligned() { return unaligned_x<int __unaligned *>; }
-// CHECK-DAG: "\01??$unaligned_x at PFAH@@3PFAHA"
+// CHECK-DAG: "??$unaligned_x at PFAH@@3PFAHA"
 

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-md5.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-md5.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-md5.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-md5.cpp Fri Mar 16 13:36:49 2018
@@ -1,11 +1,11 @@
 // RUN: %clang_cc1 -emit-llvm -o - -triple i686-pc-win32 %s | FileCheck %s
 int xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
-// CHECK-DAG: @"\01??@bf7ea7b95f260b0b24e7f1e8fc8370ab@" = dso_local global i32 0, align 4
+// CHECK-DAG: @"??@bf7ea7b95f260b0b24e7f1e8fc8370ab@" = dso_local global i32 0, align 4
 
 struct yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy {
   yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy();
   virtual void f();
 };
 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy::yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy() {}
-// CHECK-DAG: @"\01??@a6a285da2eea70dba6b578022be61d81@??_R4@" = linkonce_odr constant %rtti.CompleteObjectLocator
-// CHECK-DAG: @"\01??@a6a285da2eea70dba6b578022be61d81@" = unnamed_addr alias
+// CHECK-DAG: @"??@a6a285da2eea70dba6b578022be61d81@??_R4@" = linkonce_odr constant %rtti.CompleteObjectLocator
+// CHECK-DAG: @"??@a6a285da2eea70dba6b578022be61d81@" = unnamed_addr alias

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp Fri Mar 16 13:36:49 2018
@@ -1,189 +1,189 @@
 // RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
 
 void a1() {}
-// CHECK: "\01?a1@@YAXXZ"
+// CHECK: "?a1@@YAXXZ"
 
 int a2() { return 0; }
-// CHECK: "\01?a2@@YAHXZ"
+// CHECK: "?a2@@YAHXZ"
 
 const int a3() { return 0; }
-// CHECK: "\01?a3@@YA?BHXZ"
+// CHECK: "?a3@@YA?BHXZ"
 
 volatile int a4() { return 0; }
-// CHECK: "\01?a4@@YA?CHXZ"
+// CHECK: "?a4@@YA?CHXZ"
 
 const volatile int a5() { return 0; }
-// CHECK: "\01?a5@@YA?DHXZ"
+// CHECK: "?a5@@YA?DHXZ"
 
 float a6() { return 0.0f; }
-// CHECK: "\01?a6@@YAMXZ"
+// CHECK: "?a6@@YAMXZ"
 
 int *b1() { return 0; }
-// CHECK: "\01?b1@@YAPAHXZ"
+// CHECK: "?b1@@YAPAHXZ"
 
 const char *b2() { return 0; }
-// CHECK: "\01?b2@@YAPBDXZ"
+// CHECK: "?b2@@YAPBDXZ"
 
 float *b3() { return 0; }
-// CHECK: "\01?b3@@YAPAMXZ"
+// CHECK: "?b3@@YAPAMXZ"
 
 const float *b4() { return 0; }
-// CHECK: "\01?b4@@YAPBMXZ"
+// CHECK: "?b4@@YAPBMXZ"
 
 volatile float *b5() { return 0; }
-// CHECK: "\01?b5@@YAPCMXZ"
+// CHECK: "?b5@@YAPCMXZ"
 
 const volatile float *b6() { return 0; }
-// CHECK: "\01?b6@@YAPDMXZ"
+// CHECK: "?b6@@YAPDMXZ"
 
 float &b7() { return *(float*)0; }
-// CHECK: "\01?b7@@YAAAMXZ"
+// CHECK: "?b7@@YAAAMXZ"
 
 const float &b8() { return *(float*)0; }
-// CHECK: "\01?b8@@YAABMXZ"
+// CHECK: "?b8@@YAABMXZ"
 
 volatile float &b9() { return *(float*)0; }
-// CHECK: "\01?b9@@YAACMXZ"
+// CHECK: "?b9@@YAACMXZ"
 
 const volatile float &b10() { return *(float*)0; }
-// CHECK: "\01?b10@@YAADMXZ"
+// CHECK: "?b10@@YAADMXZ"
 
 const char** b11() { return 0; }
-// CHECK: "\01?b11@@YAPAPBDXZ"
+// CHECK: "?b11@@YAPAPBDXZ"
 
 class A {};
 
 A c1() { return A(); }
-// CHECK: "\01?c1@@YA?AVA@@XZ"
+// CHECK: "?c1@@YA?AVA@@XZ"
 
 const A c2() { return A(); }
-// CHECK: "\01?c2@@YA?BVA@@XZ"
+// CHECK: "?c2@@YA?BVA@@XZ"
 
 volatile A c3() { return A(); }
-// CHECK: "\01?c3@@YA?CVA@@XZ"
+// CHECK: "?c3@@YA?CVA@@XZ"
 
 const volatile A c4() { return A(); }
-// CHECK: "\01?c4@@YA?DVA@@XZ"
+// CHECK: "?c4@@YA?DVA@@XZ"
 
 const A* c5() { return 0; }
-// CHECK: "\01?c5@@YAPBVA@@XZ"
+// CHECK: "?c5@@YAPBVA@@XZ"
 
 volatile A* c6() { return 0; }
-// CHECK: "\01?c6@@YAPCVA@@XZ"
+// CHECK: "?c6@@YAPCVA@@XZ"
 
 const volatile A* c7() { return 0; }
-// CHECK: "\01?c7@@YAPDVA@@XZ"
+// CHECK: "?c7@@YAPDVA@@XZ"
 
 A &c8() { return *(A*)0; }
-// CHECK: "\01?c8@@YAAAVA@@XZ"
+// CHECK: "?c8@@YAAAVA@@XZ"
 
 const A &c9() { return *(A*)0; }
-// CHECK: "\01?c9@@YAABVA@@XZ"
+// CHECK: "?c9@@YAABVA@@XZ"
 
 volatile A &c10() { return *(A*)0; }
-// CHECK: "\01?c10@@YAACVA@@XZ"
+// CHECK: "?c10@@YAACVA@@XZ"
 
 const volatile A &c11() { return *(A*)0; }
-// CHECK: "\01?c11@@YAADVA@@XZ"
+// CHECK: "?c11@@YAADVA@@XZ"
 
 template<typename T> class B {};
 
 B<int> d1() { return B<int>(); }
-// CHECK: "\01?d1@@YA?AV?$B at H@@XZ"
+// CHECK: "?d1@@YA?AV?$B at H@@XZ"
 
 B<const char*> d2() {return B<const char*>(); }
-// CHECK: "\01?d2@@YA?AV?$B at PBD@@XZ"
+// CHECK: "?d2@@YA?AV?$B at PBD@@XZ"
 
 B<A> d3() {return B<A>(); }
-// CHECK: "\01?d3@@YA?AV?$B at VA@@@@XZ"
+// CHECK: "?d3@@YA?AV?$B at VA@@@@XZ"
 
 B<A>* d4() { return 0; }
-// CHECK: "\01?d4@@YAPAV?$B at VA@@@@XZ"
+// CHECK: "?d4@@YAPAV?$B at VA@@@@XZ"
 
 const B<A>* d5() { return 0; }
-// CHECK: "\01?d5@@YAPBV?$B at VA@@@@XZ"
+// CHECK: "?d5@@YAPBV?$B at VA@@@@XZ"
 
 volatile B<A>* d6() { return 0; }
-// CHECK: "\01?d6@@YAPCV?$B at VA@@@@XZ"
+// CHECK: "?d6@@YAPCV?$B at VA@@@@XZ"
 
 const volatile B<A>* d7() { return 0; }
-// CHECK: "\01?d7@@YAPDV?$B at VA@@@@XZ"
+// CHECK: "?d7@@YAPDV?$B at VA@@@@XZ"
 
 B<A>& d8() { return *(B<A>*)0; }
-// CHECK: "\01?d8@@YAAAV?$B at VA@@@@XZ"
+// CHECK: "?d8@@YAAAV?$B at VA@@@@XZ"
 
 const B<A>& d9() { return *(B<A>*)0; }
-// CHECK: "\01?d9@@YAABV?$B at VA@@@@XZ"
+// CHECK: "?d9@@YAABV?$B at VA@@@@XZ"
 
 volatile B<A>& d10() { return *(B<A>*)0; }
-// CHECK: "\01?d10@@YAACV?$B at VA@@@@XZ"
+// CHECK: "?d10@@YAACV?$B at VA@@@@XZ"
 
 const volatile B<A>& d11() { return *(B<A>*)0; }
-// CHECK: "\01?d11@@YAADV?$B at VA@@@@XZ"
+// CHECK: "?d11@@YAADV?$B at VA@@@@XZ"
 
 enum Enum { DEFAULT };
 
 Enum e1() { return DEFAULT; }
-// CHECK: "\01?e1@@YA?AW4Enum@@XZ"
+// CHECK: "?e1@@YA?AW4Enum@@XZ"
 
 const Enum e2() { return DEFAULT; }
-// CHECK: "\01?e2@@YA?BW4Enum@@XZ"
+// CHECK: "?e2@@YA?BW4Enum@@XZ"
 
 Enum* e3() { return 0; }
-// CHECK: "\01?e3@@YAPAW4Enum@@XZ"
+// CHECK: "?e3@@YAPAW4Enum@@XZ"
 
 Enum& e4() { return *(Enum*)0; }
-// CHECK: "\01?e4@@YAAAW4Enum@@XZ"
+// CHECK: "?e4@@YAAAW4Enum@@XZ"
 
 struct S {};
 
 struct S f1() { struct S s; return s; }
-// CHECK: "\01?f1@@YA?AUS@@XZ"
+// CHECK: "?f1@@YA?AUS@@XZ"
 
 const struct S f2() { struct S s; return s; }
-// CHECK: "\01?f2@@YA?BUS@@XZ"
+// CHECK: "?f2@@YA?BUS@@XZ"
 
 struct S* f3() { return 0; }
-// CHECK: "\01?f3@@YAPAUS@@XZ"
+// CHECK: "?f3@@YAPAUS@@XZ"
 
 const struct S* f4() { return 0; }
-// CHECK: "\01?f4@@YAPBUS@@XZ"
+// CHECK: "?f4@@YAPBUS@@XZ"
 
 const volatile struct S* f5() { return 0; }
-// CHECK: "\01?f5@@YAPDUS@@XZ"
+// CHECK: "?f5@@YAPDUS@@XZ"
 
 struct S& f6() { return *(struct S*)0; }
-// CHECK: "\01?f6@@YAAAUS@@XZ"
+// CHECK: "?f6@@YAAAUS@@XZ"
 
 struct S* const f7() { return 0; }
-// CHECK: "\01?f7@@YAQAUS@@XZ"
+// CHECK: "?f7@@YAQAUS@@XZ"
 
 int S::* f8() { return 0; }
-// CHECK: "\01?f8@@YAPQS@@HXZ"
+// CHECK: "?f8@@YAPQS@@HXZ"
 
 int S::* const f9() { return 0; }
-// CHECK: "\01?f9@@YAQQS@@HXZ"
+// CHECK: "?f9@@YAQQS@@HXZ"
 
 int S::* __restrict f10() { return 0; }
-// CHECK: "\01?f10@@YAPIQS@@HXZ"
+// CHECK: "?f10@@YAPIQS@@HXZ"
 
 int S::* const __restrict f11() { return 0; }
-// CHECK: "\01?f11@@YAQIQS@@HXZ"
+// CHECK: "?f11@@YAQIQS@@HXZ"
 
 typedef int (*function_pointer)(int);
 
 function_pointer g1() { return 0; }
-// CHECK: "\01?g1@@YAP6AHH at ZXZ"
+// CHECK: "?g1@@YAP6AHH at ZXZ"
 
 const function_pointer g2() { return 0; }
-// CHECK: "\01?g2@@YAQ6AHH at ZXZ"
+// CHECK: "?g2@@YAQ6AHH at ZXZ"
 
 function_pointer* g3() { return 0; }
-// CHECK: "\01?g3@@YAPAP6AHH at ZXZ"
+// CHECK: "?g3@@YAPAP6AHH at ZXZ"
 
 const function_pointer* g4() { return 0; }
-// CHECK: "\01?g4@@YAPBQ6AHH at ZXZ"
+// CHECK: "?g4@@YAPBQ6AHH at ZXZ"
 
 extern int &z;
 int & __restrict h1() { return z; }
-// CHECK: "\01?h1@@YAAIAHXZ"
+// CHECK: "?h1@@YAAIAHXZ"

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-string-literals.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-string-literals.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-string-literals.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-string-literals.cpp Fri Mar 16 13:36:49 2018
@@ -258,262 +258,262 @@ const char *l2 = "\x2";
 const char *l1 = "\x1";
 const char *l0 = "\x0";
 
-// CHECK: @"\01??_C at _01CNACBAHC@?$PP?$AA@"
-// CHECK: @"\01??_C at _01DEBJCBDD@?$PO?$AA@"
-// CHECK: @"\01??_C at _01BPDEHCPA@?$PN?$AA@"
-// CHECK: @"\01??_C at _01GCPEDLB@?$PM?$AA@"
-// CHECK: @"\01??_C at _01EJGONFHG@?$PL?$AA@"
-// CHECK: @"\01??_C at _01FAHFOEDH@?z?$AA@"
-// CHECK: @"\01??_C at _01HLFILHPE@?y?$AA@"
-// CHECK: @"\01??_C at _01GCEDIGLF@?x?$AA@"
-// CHECK: @"\01??_C at _01OFNLJKHK@?w?$AA@"
-// CHECK: @"\01??_C at _01PMMAKLDL@?v?$AA@"
-// CHECK: @"\01??_C at _01NHONPIPI@?u?$AA@"
-// CHECK: @"\01??_C at _01MOPGMJLJ@?t?$AA@"
-// CHECK: @"\01??_C at _01IBLHFPHO@?s?$AA@"
-// CHECK: @"\01??_C at _01JIKMGODP@?r?$AA@"
-// CHECK: @"\01??_C at _01LDIBDNPM@?q?$AA@"
-// CHECK: @"\01??_C at _01KKJKAMLN@?p?$AA@"
-// CHECK: @"\01??_C at _01GHMAACCD@?o?$AA@"
-// CHECK: @"\01??_C at _01HONLDDGC@?n?$AA@"
-// CHECK: @"\01??_C at _01FFPGGAKB@?m?$AA@"
-// CHECK: @"\01??_C at _01EMONFBOA@?l?$AA@"
-// CHECK: @"\01??_C at _01DKMMHCH@?k?$AA@"
-// CHECK: @"\01??_C at _01BKLHPGGG@?j?$AA@"
-// CHECK: @"\01??_C at _01DBJKKFKF@?i?$AA@"
-// CHECK: @"\01??_C at _01CIIBJEOE@?h?$AA@"
-// CHECK: @"\01??_C at _01KPBJIICL@?g?$AA@"
-// CHECK: @"\01??_C at _01LGACLJGK@?f?$AA@"
-// CHECK: @"\01??_C at _01JNCPOKKJ@?e?$AA@"
-// CHECK: @"\01??_C at _01IEDENLOI@?d?$AA@"
-// CHECK: @"\01??_C at _01MLHFENCP@?c?$AA@"
-// CHECK: @"\01??_C at _01NCGOHMGO@?b?$AA@"
-// CHECK: @"\01??_C at _01PJEDCPKN@?a?$AA@"
-// CHECK: @"\01??_C at _01OAFIBOOM@?$OA?$AA@"
-// CHECK: @"\01??_C at _01LIIGDENA@?$NP?$AA@"
-// CHECK: @"\01??_C at _01KBJNAFJB@?$NO?$AA@"
-// CHECK: @"\01??_C at _01IKLAFGFC@?$NN?$AA@"
-// CHECK: @"\01??_C at _01JDKLGHBD@?$NM?$AA@"
-// CHECK: @"\01??_C at _01NMOKPBNE@?$NL?$AA@"
-// CHECK: @"\01??_C at _01MFPBMAJF@?Z?$AA@"
-// CHECK: @"\01??_C at _01OONMJDFG@?Y?$AA@"
-// CHECK: @"\01??_C at _01PHMHKCBH@?X?$AA@"
-// CHECK: @"\01??_C at _01HAFPLONI@?W?$AA@"
-// CHECK: @"\01??_C at _01GJEEIPJJ@?V?$AA@"
-// CHECK: @"\01??_C at _01ECGJNMFK@?U?$AA@"
-// CHECK: @"\01??_C at _01FLHCONBL@?T?$AA@"
-// CHECK: @"\01??_C at _01BEDDHLNM@?S?$AA@"
-// CHECK: @"\01??_C at _01NCIEKJN@?R?$AA@"
-// CHECK: @"\01??_C at _01CGAFBJFO@?Q?$AA@"
-// CHECK: @"\01??_C at _01DPBOCIBP@?P?$AA@"
-// CHECK: @"\01??_C at _01PCEECGIB@?O?$AA@"
-// CHECK: @"\01??_C at _01OLFPBHMA@?N?$AA@"
-// CHECK: @"\01??_C at _01MAHCEEAD@?M?$AA@"
-// CHECK: @"\01??_C at _01NJGJHFEC@?L?$AA@"
-// CHECK: @"\01??_C at _01JGCIODIF@?K?$AA@"
-// CHECK: @"\01??_C at _01IPDDNCME@?J?$AA@"
-// CHECK: @"\01??_C at _01KEBOIBAH@?I?$AA@"
-// CHECK: @"\01??_C at _01LNAFLAEG@?H?$AA@"
-// CHECK: @"\01??_C at _01DKJNKMIJ@?G?$AA@"
-// CHECK: @"\01??_C at _01CDIGJNMI@?F?$AA@"
-// CHECK: @"\01??_C at _01IKLMOAL@?E?$AA@"
-// CHECK: @"\01??_C at _01BBLAPPEK@?D?$AA@"
-// CHECK: @"\01??_C at _01FOPBGJIN@?C?$AA@"
-// CHECK: @"\01??_C at _01EHOKFIMM@?B?$AA@"
-// CHECK: @"\01??_C at _01GMMHALAP@?A?$AA@"
-// CHECK: @"\01??_C at _01HFNMDKEO@?$MA?$AA@"
-// CHECK: @"\01??_C at _01NNHLFPHH@?$LP?$AA@"
-// CHECK: @"\01??_C at _01MEGAGODG@?$LO?$AA@"
-// CHECK: @"\01??_C at _01OPENDNPF@?$LN?$AA@"
-// CHECK: @"\01??_C at _01PGFGAMLE@?$LM?$AA@"
-// CHECK: @"\01??_C at _01LJBHJKHD@?$LL?$AA@"
-// CHECK: @"\01??_C at _01KAAMKLDC@?$LK?$AA@"
-// CHECK: @"\01??_C at _01ILCBPIPB@?$LJ?$AA@"
-// CHECK: @"\01??_C at _01JCDKMJLA@?$LI?$AA@"
-// CHECK: @"\01??_C at _01BFKCNFHP@?$LH?$AA@"
-// CHECK: @"\01??_C at _01MLJOEDO@?$LG?$AA@"
-// CHECK: @"\01??_C at _01CHJELHPN@?$LF?$AA@"
-// CHECK: @"\01??_C at _01DOIPIGLM@?$LE?$AA@"
-// CHECK: @"\01??_C at _01HBMOBAHL@?$LD?$AA@"
-// CHECK: @"\01??_C at _01GINFCBDK@?$LC?$AA@"
-// CHECK: @"\01??_C at _01EDPIHCPJ@?$LB?$AA@"
-// CHECK: @"\01??_C at _01FKODEDLI@?$LA?$AA@"
-// CHECK: @"\01??_C at _01JHLJENCG@?$KP?$AA@"
-// CHECK: @"\01??_C at _01IOKCHMGH@?$KO?$AA@"
-// CHECK: @"\01??_C at _01KFIPCPKE@?$KN?$AA@"
-// CHECK: @"\01??_C at _01LMJEBOOF@?$KM?$AA@"
-// CHECK: @"\01??_C at _01PDNFIICC@?$KL?$AA@"
-// CHECK: @"\01??_C at _01OKMOLJGD@?$KK?$AA@"
-// CHECK: @"\01??_C at _01MBODOKKA@?$KJ?$AA@"
-// CHECK: @"\01??_C at _01NIPINLOB@?$KI?$AA@"
-// CHECK: @"\01??_C at _01FPGAMHCO@?$KH?$AA@"
-// CHECK: @"\01??_C at _01EGHLPGGP@?$KG?$AA@"
-// CHECK: @"\01??_C at _01GNFGKFKM@?$KF?$AA@"
-// CHECK: @"\01??_C at _01HEENJEON@?$KE?$AA@"
-// CHECK: @"\01??_C at _01DLAMACCK@?$KD?$AA@"
-// CHECK: @"\01??_C at _01CCBHDDGL@?$KC?$AA@"
-// CHECK: @"\01??_C at _01JDKGAKI@?$KB?$AA@"
-// CHECK: @"\01??_C at _01BACBFBOJ@?$KA?$AA@"
-// CHECK: @"\01??_C at _01EIPPHLNF@?$JP?$AA@"
-// CHECK: @"\01??_C at _01FBOEEKJE@?$JO?$AA@"
-// CHECK: @"\01??_C at _01HKMJBJFH@?$JN?$AA@"
-// CHECK: @"\01??_C at _01GDNCCIBG@?$JM?$AA@"
-// CHECK: @"\01??_C at _01CMJDLONB@?$JL?$AA@"
-// CHECK: @"\01??_C at _01DFIIIPJA@?$JK?$AA@"
-// CHECK: @"\01??_C at _01BOKFNMFD@?$JJ?$AA@"
-// CHECK: @"\01??_C at _01HLOONBC@?$JI?$AA@"
-// CHECK: @"\01??_C at _01IACGPBNN@?$JH?$AA@"
-// CHECK: @"\01??_C at _01JJDNMAJM@?$JG?$AA@"
-// CHECK: @"\01??_C at _01LCBAJDFP@?$JF?$AA@"
-// CHECK: @"\01??_C at _01KLALKCBO@?$JE?$AA@"
-// CHECK: @"\01??_C at _01OEEKDENJ@?$JD?$AA@"
-// CHECK: @"\01??_C at _01PNFBAFJI@?$JC?$AA@"
-// CHECK: @"\01??_C at _01NGHMFGFL@?$JB?$AA@"
-// CHECK: @"\01??_C at _01MPGHGHBK@?$JA?$AA@"
-// CHECK: @"\01??_C at _01CDNGJIE@?$IP?$AA@"
-// CHECK: @"\01??_C at _01BLCGFIMF@?$IO?$AA@"
-// CHECK: @"\01??_C at _01DAALALAG@?$IN?$AA@"
-// CHECK: @"\01??_C at _01CJBADKEH@?$IM?$AA@"
-// CHECK: @"\01??_C at _01GGFBKMIA@?$IL?$AA@"
-// CHECK: @"\01??_C at _01HPEKJNMB@?$IK?$AA@"
-// CHECK: @"\01??_C at _01FEGHMOAC@?$IJ?$AA@"
-// CHECK: @"\01??_C at _01ENHMPPED@?$II?$AA@"
-// CHECK: @"\01??_C at _01MKOEODIM@?$IH?$AA@"
-// CHECK: @"\01??_C at _01NDPPNCMN@?$IG?$AA@"
-// CHECK: @"\01??_C at _01PINCIBAO@?$IF?$AA@"
-// CHECK: @"\01??_C at _01OBMJLAEP@?$IE?$AA@"
-// CHECK: @"\01??_C at _01KOIICGII@?$ID?$AA@"
-// CHECK: @"\01??_C at _01LHJDBHMJ@?$IC?$AA@"
-// CHECK: @"\01??_C at _01JMLOEEAK@?$IB?$AA@"
-// CHECK: @"\01??_C at _01IFKFHFEL@?$IA?$AA@"
-// CHECK: @"\01??_C at _01BGIBIIDJ@?$HP?$AA@"
-// CHECK: @"\01??_C at _01PJKLJHI@?$HO?$AA@"
-// CHECK: @"\01??_C at _01CELHOKLL@?$HN?$AA@"
-// CHECK: @"\01??_C at _01DNKMNLPK@?$HM?$AA@"
-// CHECK: @"\01??_C at _01HCONENDN@?$HL?$AA@"
-// CHECK: @"\01??_C at _01GLPGHMHM@z?$AA@"
-// CHECK: @"\01??_C at _01EANLCPLP@y?$AA@"
-// CHECK: @"\01??_C at _01FJMABOPO@x?$AA@"
-// CHECK: @"\01??_C at _01NOFIACDB@w?$AA@"
-// CHECK: @"\01??_C at _01MHEDDDHA@v?$AA@"
-// CHECK: @"\01??_C at _01OMGOGALD@u?$AA@"
-// CHECK: @"\01??_C at _01PFHFFBPC@t?$AA@"
-// CHECK: @"\01??_C at _01LKDEMHDF@s?$AA@"
-// CHECK: @"\01??_C at _01KDCPPGHE@r?$AA@"
-// CHECK: @"\01??_C at _01IIACKFLH@q?$AA@"
-// CHECK: @"\01??_C at _01JBBJJEPG@p?$AA@"
-// CHECK: @"\01??_C at _01FMEDJKGI@o?$AA@"
-// CHECK: @"\01??_C at _01EFFIKLCJ@n?$AA@"
-// CHECK: @"\01??_C at _01GOHFPIOK@m?$AA@"
-// CHECK: @"\01??_C at _01HHGOMJKL@l?$AA@"
-// CHECK: @"\01??_C at _01DICPFPGM@k?$AA@"
-// CHECK: @"\01??_C at _01CBDEGOCN@j?$AA@"
-// CHECK: @"\01??_C at _01KBJDNOO@i?$AA@"
-// CHECK: @"\01??_C at _01BDACAMKP@h?$AA@"
-// CHECK: @"\01??_C at _01JEJKBAGA@g?$AA@"
-// CHECK: @"\01??_C at _01INIBCBCB@f?$AA@"
-// CHECK: @"\01??_C at _01KGKMHCOC@e?$AA@"
-// CHECK: @"\01??_C at _01LPLHEDKD@d?$AA@"
-// CHECK: @"\01??_C at _01PAPGNFGE@c?$AA@"
-// CHECK: @"\01??_C at _01OJONOECF@b?$AA@"
-// CHECK: @"\01??_C at _01MCMALHOG@a?$AA@"
-// CHECK: @"\01??_C at _01NLNLIGKH@?$GA?$AA@"
-// CHECK: @"\01??_C at _01IDAFKMJL@_?$AA@"
-// CHECK: @"\01??_C at _01JKBOJNNK@?$FO?$AA@"
-// CHECK: @"\01??_C at _01LBDDMOBJ@?$FN?$AA@"
-// CHECK: @"\01??_C at _01KICIPPFI@?2?$AA@"
-// CHECK: @"\01??_C at _01OHGJGJJP@?$FL?$AA@"
-// CHECK: @"\01??_C at _01POHCFINO@Z?$AA@"
-// CHECK: @"\01??_C at _01NFFPALBN@Y?$AA@"
-// CHECK: @"\01??_C at _01MMEEDKFM@X?$AA@"
-// CHECK: @"\01??_C at _01ELNMCGJD@W?$AA@"
-// CHECK: @"\01??_C at _01FCMHBHNC@V?$AA@"
-// CHECK: @"\01??_C at _01HJOKEEBB@U?$AA@"
-// CHECK: @"\01??_C at _01GAPBHFFA@T?$AA@"
-// CHECK: @"\01??_C at _01CPLAODJH@S?$AA@"
-// CHECK: @"\01??_C at _01DGKLNCNG@R?$AA@"
-// CHECK: @"\01??_C at _01BNIGIBBF@Q?$AA@"
-// CHECK: @"\01??_C at _01EJNLAFE@P?$AA@"
-// CHECK: @"\01??_C at _01MJMHLOMK@O?$AA@"
-// CHECK: @"\01??_C at _01NANMIPIL@N?$AA@"
-// CHECK: @"\01??_C at _01PLPBNMEI@M?$AA@"
-// CHECK: @"\01??_C at _01OCOKONAJ@L?$AA@"
-// CHECK: @"\01??_C at _01KNKLHLMO@K?$AA@"
-// CHECK: @"\01??_C at _01LELAEKIP@J?$AA@"
-// CHECK: @"\01??_C at _01JPJNBJEM@I?$AA@"
-// CHECK: @"\01??_C at _01IGIGCIAN@H?$AA@"
-// CHECK: @"\01??_C at _01BBODEMC@G?$AA@"
-// CHECK: @"\01??_C at _01BIAFAFID@F?$AA@"
-// CHECK: @"\01??_C at _01DDCIFGEA@E?$AA@"
-// CHECK: @"\01??_C at _01CKDDGHAB@D?$AA@"
-// CHECK: @"\01??_C at _01GFHCPBMG@C?$AA@"
-// CHECK: @"\01??_C at _01HMGJMAIH@B?$AA@"
-// CHECK: @"\01??_C at _01FHEEJDEE@A?$AA@"
-// CHECK: @"\01??_C at _01EOFPKCAF@?$EA?$AA@"
-// CHECK: @"\01??_C at _01OGPIMHDM@?$DP?$AA@"
-// CHECK: @"\01??_C at _01PPODPGHN@?$DO?$AA@"
-// CHECK: @"\01??_C at _01NEMOKFLO@?$DN?$AA@"
-// CHECK: @"\01??_C at _01MNNFJEPP@?$DM?$AA@"
-// CHECK: @"\01??_C at _01ICJEACDI@?$DL?$AA@"
-// CHECK: @"\01??_C at _01JLIPDDHJ@?3?$AA@"
-// CHECK: @"\01??_C at _01LAKCGALK@9?$AA@"
-// CHECK: @"\01??_C at _01KJLJFBPL@8?$AA@"
-// CHECK: @"\01??_C at _01COCBENDE@7?$AA@"
-// CHECK: @"\01??_C at _01DHDKHMHF@6?$AA@"
-// CHECK: @"\01??_C at _01BMBHCPLG@5?$AA@"
-// CHECK: @"\01??_C at _01FAMBOPH@4?$AA@"
-// CHECK: @"\01??_C at _01EKENIIDA@3?$AA@"
-// CHECK: @"\01??_C at _01FDFGLJHB@2?$AA@"
-// CHECK: @"\01??_C at _01HIHLOKLC@1?$AA@"
-// CHECK: @"\01??_C at _01GBGANLPD@0?$AA@"
-// CHECK: @"\01??_C at _01KMDKNFGN@?1?$AA@"
-// CHECK: @"\01??_C at _01LFCBOECM@?4?$AA@"
-// CHECK: @"\01??_C at _01JOAMLHOP@?9?$AA@"
-// CHECK: @"\01??_C at _01IHBHIGKO@?0?$AA@"
-// CHECK: @"\01??_C at _01MIFGBAGJ@?$CL?$AA@"
-// CHECK: @"\01??_C at _01NBENCBCI@?$CK?$AA@"
-// CHECK: @"\01??_C at _01PKGAHCOL@?$CJ?$AA@"
-// CHECK: @"\01??_C at _01ODHLEDKK@?$CI?$AA@"
-// CHECK: @"\01??_C at _01GEODFPGF@?8?$AA@"
-// CHECK: @"\01??_C at _01HNPIGOCE@?$CG?$AA@"
-// CHECK: @"\01??_C at _01FGNFDNOH@?$CF?$AA@"
-// CHECK: @"\01??_C at _01EPMOAMKG@$?$AA@"
-// CHECK: @"\01??_C at _01IPJKGB@?$CD?$AA@"
-// CHECK: @"\01??_C at _01BJJEKLCA@?$CC?$AA@"
-// CHECK: @"\01??_C at _01DCLJPIOD@?$CB?$AA@"
-// CHECK: @"\01??_C at _01CLKCMJKC@?5?$AA@"
-// CHECK: @"\01??_C at _01HDHMODJO@?$BP?$AA@"
-// CHECK: @"\01??_C at _01GKGHNCNP@?$BO?$AA@"
-// CHECK: @"\01??_C at _01EBEKIBBM@?$BN?$AA@"
-// CHECK: @"\01??_C at _01FIFBLAFN@?$BM?$AA@"
-// CHECK: @"\01??_C at _01BHBACGJK@?$BL?$AA@"
-// CHECK: @"\01??_C at _01OALBHNL@?$BK?$AA@"
-// CHECK: @"\01??_C at _01CFCGEEBI@?$BJ?$AA@"
-// CHECK: @"\01??_C at _01DMDNHFFJ@?$BI?$AA@"
-// CHECK: @"\01??_C at _01LLKFGJJG@?$BH?$AA@"
-// CHECK: @"\01??_C at _01KCLOFINH@?$BG?$AA@"
-// CHECK: @"\01??_C at _01IJJDALBE@?$BF?$AA@"
-// CHECK: @"\01??_C at _01JAIIDKFF@?$BE?$AA@"
-// CHECK: @"\01??_C at _01NPMJKMJC@?$BD?$AA@"
-// CHECK: @"\01??_C at _01MGNCJNND@?$BC?$AA@"
-// CHECK: @"\01??_C at _01ONPPMOBA@?$BB?$AA@"
-// CHECK: @"\01??_C at _01PEOEPPFB@?$BA?$AA@"
-// CHECK: @"\01??_C at _01DJLOPBMP@?$AP?$AA@"
-// CHECK: @"\01??_C at _01CAKFMAIO@?$AO?$AA@"
-// CHECK: @"\01??_C at _01LIIJDEN@?$AN?$AA@"
-// CHECK: @"\01??_C at _01BCJDKCAM@?$AM?$AA@"
-// CHECK: @"\01??_C at _01FNNCDEML@?$AL?$AA@"
-// CHECK: @"\01??_C at _01EEMJAFIK@?6?$AA@"
-// CHECK: @"\01??_C at _01GPOEFGEJ@?7?$AA@"
-// CHECK: @"\01??_C at _01HGPPGHAI@?$AI?$AA@"
-// CHECK: @"\01??_C at _01PBGHHLMH@?$AH?$AA@"
-// CHECK: @"\01??_C at _01OIHMEKIG@?$AG?$AA@"
-// CHECK: @"\01??_C at _01MDFBBJEF@?$AF?$AA@"
-// CHECK: @"\01??_C at _01NKEKCIAE@?$AE?$AA@"
-// CHECK: @"\01??_C at _01JFALLOMD@?$AD?$AA@"
-// CHECK: @"\01??_C at _01IMBAIPIC@?$AC?$AA@"
-// CHECK: @"\01??_C at _01KHDNNMEB@?$AB?$AA@"
-// CHECK: @"\01??_C at _01LOCGONAA@?$AA?$AA@"
+// CHECK: @"??_C at _01CNACBAHC@?$PP?$AA@"
+// CHECK: @"??_C at _01DEBJCBDD@?$PO?$AA@"
+// CHECK: @"??_C at _01BPDEHCPA@?$PN?$AA@"
+// CHECK: @"??_C at _01GCPEDLB@?$PM?$AA@"
+// CHECK: @"??_C at _01EJGONFHG@?$PL?$AA@"
+// CHECK: @"??_C at _01FAHFOEDH@?z?$AA@"
+// CHECK: @"??_C at _01HLFILHPE@?y?$AA@"
+// CHECK: @"??_C at _01GCEDIGLF@?x?$AA@"
+// CHECK: @"??_C at _01OFNLJKHK@?w?$AA@"
+// CHECK: @"??_C at _01PMMAKLDL@?v?$AA@"
+// CHECK: @"??_C at _01NHONPIPI@?u?$AA@"
+// CHECK: @"??_C at _01MOPGMJLJ@?t?$AA@"
+// CHECK: @"??_C at _01IBLHFPHO@?s?$AA@"
+// CHECK: @"??_C at _01JIKMGODP@?r?$AA@"
+// CHECK: @"??_C at _01LDIBDNPM@?q?$AA@"
+// CHECK: @"??_C at _01KKJKAMLN@?p?$AA@"
+// CHECK: @"??_C at _01GHMAACCD@?o?$AA@"
+// CHECK: @"??_C at _01HONLDDGC@?n?$AA@"
+// CHECK: @"??_C at _01FFPGGAKB@?m?$AA@"
+// CHECK: @"??_C at _01EMONFBOA@?l?$AA@"
+// CHECK: @"??_C at _01DKMMHCH@?k?$AA@"
+// CHECK: @"??_C at _01BKLHPGGG@?j?$AA@"
+// CHECK: @"??_C at _01DBJKKFKF@?i?$AA@"
+// CHECK: @"??_C at _01CIIBJEOE@?h?$AA@"
+// CHECK: @"??_C at _01KPBJIICL@?g?$AA@"
+// CHECK: @"??_C at _01LGACLJGK@?f?$AA@"
+// CHECK: @"??_C at _01JNCPOKKJ@?e?$AA@"
+// CHECK: @"??_C at _01IEDENLOI@?d?$AA@"
+// CHECK: @"??_C at _01MLHFENCP@?c?$AA@"
+// CHECK: @"??_C at _01NCGOHMGO@?b?$AA@"
+// CHECK: @"??_C at _01PJEDCPKN@?a?$AA@"
+// CHECK: @"??_C at _01OAFIBOOM@?$OA?$AA@"
+// CHECK: @"??_C at _01LIIGDENA@?$NP?$AA@"
+// CHECK: @"??_C at _01KBJNAFJB@?$NO?$AA@"
+// CHECK: @"??_C at _01IKLAFGFC@?$NN?$AA@"
+// CHECK: @"??_C at _01JDKLGHBD@?$NM?$AA@"
+// CHECK: @"??_C at _01NMOKPBNE@?$NL?$AA@"
+// CHECK: @"??_C at _01MFPBMAJF@?Z?$AA@"
+// CHECK: @"??_C at _01OONMJDFG@?Y?$AA@"
+// CHECK: @"??_C at _01PHMHKCBH@?X?$AA@"
+// CHECK: @"??_C at _01HAFPLONI@?W?$AA@"
+// CHECK: @"??_C at _01GJEEIPJJ@?V?$AA@"
+// CHECK: @"??_C at _01ECGJNMFK@?U?$AA@"
+// CHECK: @"??_C at _01FLHCONBL@?T?$AA@"
+// CHECK: @"??_C at _01BEDDHLNM@?S?$AA@"
+// CHECK: @"??_C at _01NCIEKJN@?R?$AA@"
+// CHECK: @"??_C at _01CGAFBJFO@?Q?$AA@"
+// CHECK: @"??_C at _01DPBOCIBP@?P?$AA@"
+// CHECK: @"??_C at _01PCEECGIB@?O?$AA@"
+// CHECK: @"??_C at _01OLFPBHMA@?N?$AA@"
+// CHECK: @"??_C at _01MAHCEEAD@?M?$AA@"
+// CHECK: @"??_C at _01NJGJHFEC@?L?$AA@"
+// CHECK: @"??_C at _01JGCIODIF@?K?$AA@"
+// CHECK: @"??_C at _01IPDDNCME@?J?$AA@"
+// CHECK: @"??_C at _01KEBOIBAH@?I?$AA@"
+// CHECK: @"??_C at _01LNAFLAEG@?H?$AA@"
+// CHECK: @"??_C at _01DKJNKMIJ@?G?$AA@"
+// CHECK: @"??_C at _01CDIGJNMI@?F?$AA@"
+// CHECK: @"??_C at _01IKLMOAL@?E?$AA@"
+// CHECK: @"??_C at _01BBLAPPEK@?D?$AA@"
+// CHECK: @"??_C at _01FOPBGJIN@?C?$AA@"
+// CHECK: @"??_C at _01EHOKFIMM@?B?$AA@"
+// CHECK: @"??_C at _01GMMHALAP@?A?$AA@"
+// CHECK: @"??_C at _01HFNMDKEO@?$MA?$AA@"
+// CHECK: @"??_C at _01NNHLFPHH@?$LP?$AA@"
+// CHECK: @"??_C at _01MEGAGODG@?$LO?$AA@"
+// CHECK: @"??_C at _01OPENDNPF@?$LN?$AA@"
+// CHECK: @"??_C at _01PGFGAMLE@?$LM?$AA@"
+// CHECK: @"??_C at _01LJBHJKHD@?$LL?$AA@"
+// CHECK: @"??_C at _01KAAMKLDC@?$LK?$AA@"
+// CHECK: @"??_C at _01ILCBPIPB@?$LJ?$AA@"
+// CHECK: @"??_C at _01JCDKMJLA@?$LI?$AA@"
+// CHECK: @"??_C at _01BFKCNFHP@?$LH?$AA@"
+// CHECK: @"??_C at _01MLJOEDO@?$LG?$AA@"
+// CHECK: @"??_C at _01CHJELHPN@?$LF?$AA@"
+// CHECK: @"??_C at _01DOIPIGLM@?$LE?$AA@"
+// CHECK: @"??_C at _01HBMOBAHL@?$LD?$AA@"
+// CHECK: @"??_C at _01GINFCBDK@?$LC?$AA@"
+// CHECK: @"??_C at _01EDPIHCPJ@?$LB?$AA@"
+// CHECK: @"??_C at _01FKODEDLI@?$LA?$AA@"
+// CHECK: @"??_C at _01JHLJENCG@?$KP?$AA@"
+// CHECK: @"??_C at _01IOKCHMGH@?$KO?$AA@"
+// CHECK: @"??_C at _01KFIPCPKE@?$KN?$AA@"
+// CHECK: @"??_C at _01LMJEBOOF@?$KM?$AA@"
+// CHECK: @"??_C at _01PDNFIICC@?$KL?$AA@"
+// CHECK: @"??_C at _01OKMOLJGD@?$KK?$AA@"
+// CHECK: @"??_C at _01MBODOKKA@?$KJ?$AA@"
+// CHECK: @"??_C at _01NIPINLOB@?$KI?$AA@"
+// CHECK: @"??_C at _01FPGAMHCO@?$KH?$AA@"
+// CHECK: @"??_C at _01EGHLPGGP@?$KG?$AA@"
+// CHECK: @"??_C at _01GNFGKFKM@?$KF?$AA@"
+// CHECK: @"??_C at _01HEENJEON@?$KE?$AA@"
+// CHECK: @"??_C at _01DLAMACCK@?$KD?$AA@"
+// CHECK: @"??_C at _01CCBHDDGL@?$KC?$AA@"
+// CHECK: @"??_C at _01JDKGAKI@?$KB?$AA@"
+// CHECK: @"??_C at _01BACBFBOJ@?$KA?$AA@"
+// CHECK: @"??_C at _01EIPPHLNF@?$JP?$AA@"
+// CHECK: @"??_C at _01FBOEEKJE@?$JO?$AA@"
+// CHECK: @"??_C at _01HKMJBJFH@?$JN?$AA@"
+// CHECK: @"??_C at _01GDNCCIBG@?$JM?$AA@"
+// CHECK: @"??_C at _01CMJDLONB@?$JL?$AA@"
+// CHECK: @"??_C at _01DFIIIPJA@?$JK?$AA@"
+// CHECK: @"??_C at _01BOKFNMFD@?$JJ?$AA@"
+// CHECK: @"??_C at _01HLOONBC@?$JI?$AA@"
+// CHECK: @"??_C at _01IACGPBNN@?$JH?$AA@"
+// CHECK: @"??_C at _01JJDNMAJM@?$JG?$AA@"
+// CHECK: @"??_C at _01LCBAJDFP@?$JF?$AA@"
+// CHECK: @"??_C at _01KLALKCBO@?$JE?$AA@"
+// CHECK: @"??_C at _01OEEKDENJ@?$JD?$AA@"
+// CHECK: @"??_C at _01PNFBAFJI@?$JC?$AA@"
+// CHECK: @"??_C at _01NGHMFGFL@?$JB?$AA@"
+// CHECK: @"??_C at _01MPGHGHBK@?$JA?$AA@"
+// CHECK: @"??_C at _01CDNGJIE@?$IP?$AA@"
+// CHECK: @"??_C at _01BLCGFIMF@?$IO?$AA@"
+// CHECK: @"??_C at _01DAALALAG@?$IN?$AA@"
+// CHECK: @"??_C at _01CJBADKEH@?$IM?$AA@"
+// CHECK: @"??_C at _01GGFBKMIA@?$IL?$AA@"
+// CHECK: @"??_C at _01HPEKJNMB@?$IK?$AA@"
+// CHECK: @"??_C at _01FEGHMOAC@?$IJ?$AA@"
+// CHECK: @"??_C at _01ENHMPPED@?$II?$AA@"
+// CHECK: @"??_C at _01MKOEODIM@?$IH?$AA@"
+// CHECK: @"??_C at _01NDPPNCMN@?$IG?$AA@"
+// CHECK: @"??_C at _01PINCIBAO@?$IF?$AA@"
+// CHECK: @"??_C at _01OBMJLAEP@?$IE?$AA@"
+// CHECK: @"??_C at _01KOIICGII@?$ID?$AA@"
+// CHECK: @"??_C at _01LHJDBHMJ@?$IC?$AA@"
+// CHECK: @"??_C at _01JMLOEEAK@?$IB?$AA@"
+// CHECK: @"??_C at _01IFKFHFEL@?$IA?$AA@"
+// CHECK: @"??_C at _01BGIBIIDJ@?$HP?$AA@"
+// CHECK: @"??_C at _01PJKLJHI@?$HO?$AA@"
+// CHECK: @"??_C at _01CELHOKLL@?$HN?$AA@"
+// CHECK: @"??_C at _01DNKMNLPK@?$HM?$AA@"
+// CHECK: @"??_C at _01HCONENDN@?$HL?$AA@"
+// CHECK: @"??_C at _01GLPGHMHM@z?$AA@"
+// CHECK: @"??_C at _01EANLCPLP@y?$AA@"
+// CHECK: @"??_C at _01FJMABOPO@x?$AA@"
+// CHECK: @"??_C at _01NOFIACDB@w?$AA@"
+// CHECK: @"??_C at _01MHEDDDHA@v?$AA@"
+// CHECK: @"??_C at _01OMGOGALD@u?$AA@"
+// CHECK: @"??_C at _01PFHFFBPC@t?$AA@"
+// CHECK: @"??_C at _01LKDEMHDF@s?$AA@"
+// CHECK: @"??_C at _01KDCPPGHE@r?$AA@"
+// CHECK: @"??_C at _01IIACKFLH@q?$AA@"
+// CHECK: @"??_C at _01JBBJJEPG@p?$AA@"
+// CHECK: @"??_C at _01FMEDJKGI@o?$AA@"
+// CHECK: @"??_C at _01EFFIKLCJ@n?$AA@"
+// CHECK: @"??_C at _01GOHFPIOK@m?$AA@"
+// CHECK: @"??_C at _01HHGOMJKL@l?$AA@"
+// CHECK: @"??_C at _01DICPFPGM@k?$AA@"
+// CHECK: @"??_C at _01CBDEGOCN@j?$AA@"
+// CHECK: @"??_C at _01KBJDNOO@i?$AA@"
+// CHECK: @"??_C at _01BDACAMKP@h?$AA@"
+// CHECK: @"??_C at _01JEJKBAGA@g?$AA@"
+// CHECK: @"??_C at _01INIBCBCB@f?$AA@"
+// CHECK: @"??_C at _01KGKMHCOC@e?$AA@"
+// CHECK: @"??_C at _01LPLHEDKD@d?$AA@"
+// CHECK: @"??_C at _01PAPGNFGE@c?$AA@"
+// CHECK: @"??_C at _01OJONOECF@b?$AA@"
+// CHECK: @"??_C at _01MCMALHOG@a?$AA@"
+// CHECK: @"??_C at _01NLNLIGKH@?$GA?$AA@"
+// CHECK: @"??_C at _01IDAFKMJL@_?$AA@"
+// CHECK: @"??_C at _01JKBOJNNK@?$FO?$AA@"
+// CHECK: @"??_C at _01LBDDMOBJ@?$FN?$AA@"
+// CHECK: @"??_C at _01KICIPPFI@?2?$AA@"
+// CHECK: @"??_C at _01OHGJGJJP@?$FL?$AA@"
+// CHECK: @"??_C at _01POHCFINO@Z?$AA@"
+// CHECK: @"??_C at _01NFFPALBN@Y?$AA@"
+// CHECK: @"??_C at _01MMEEDKFM@X?$AA@"
+// CHECK: @"??_C at _01ELNMCGJD@W?$AA@"
+// CHECK: @"??_C at _01FCMHBHNC@V?$AA@"
+// CHECK: @"??_C at _01HJOKEEBB@U?$AA@"
+// CHECK: @"??_C at _01GAPBHFFA@T?$AA@"
+// CHECK: @"??_C at _01CPLAODJH@S?$AA@"
+// CHECK: @"??_C at _01DGKLNCNG@R?$AA@"
+// CHECK: @"??_C at _01BNIGIBBF@Q?$AA@"
+// CHECK: @"??_C at _01EJNLAFE@P?$AA@"
+// CHECK: @"??_C at _01MJMHLOMK@O?$AA@"
+// CHECK: @"??_C at _01NANMIPIL@N?$AA@"
+// CHECK: @"??_C at _01PLPBNMEI@M?$AA@"
+// CHECK: @"??_C at _01OCOKONAJ@L?$AA@"
+// CHECK: @"??_C at _01KNKLHLMO@K?$AA@"
+// CHECK: @"??_C at _01LELAEKIP@J?$AA@"
+// CHECK: @"??_C at _01JPJNBJEM@I?$AA@"
+// CHECK: @"??_C at _01IGIGCIAN@H?$AA@"
+// CHECK: @"??_C at _01BBODEMC@G?$AA@"
+// CHECK: @"??_C at _01BIAFAFID@F?$AA@"
+// CHECK: @"??_C at _01DDCIFGEA@E?$AA@"
+// CHECK: @"??_C at _01CKDDGHAB@D?$AA@"
+// CHECK: @"??_C at _01GFHCPBMG@C?$AA@"
+// CHECK: @"??_C at _01HMGJMAIH@B?$AA@"
+// CHECK: @"??_C at _01FHEEJDEE@A?$AA@"
+// CHECK: @"??_C at _01EOFPKCAF@?$EA?$AA@"
+// CHECK: @"??_C at _01OGPIMHDM@?$DP?$AA@"
+// CHECK: @"??_C at _01PPODPGHN@?$DO?$AA@"
+// CHECK: @"??_C at _01NEMOKFLO@?$DN?$AA@"
+// CHECK: @"??_C at _01MNNFJEPP@?$DM?$AA@"
+// CHECK: @"??_C at _01ICJEACDI@?$DL?$AA@"
+// CHECK: @"??_C at _01JLIPDDHJ@?3?$AA@"
+// CHECK: @"??_C at _01LAKCGALK@9?$AA@"
+// CHECK: @"??_C at _01KJLJFBPL@8?$AA@"
+// CHECK: @"??_C at _01COCBENDE@7?$AA@"
+// CHECK: @"??_C at _01DHDKHMHF@6?$AA@"
+// CHECK: @"??_C at _01BMBHCPLG@5?$AA@"
+// CHECK: @"??_C at _01FAMBOPH@4?$AA@"
+// CHECK: @"??_C at _01EKENIIDA@3?$AA@"
+// CHECK: @"??_C at _01FDFGLJHB@2?$AA@"
+// CHECK: @"??_C at _01HIHLOKLC@1?$AA@"
+// CHECK: @"??_C at _01GBGANLPD@0?$AA@"
+// CHECK: @"??_C at _01KMDKNFGN@?1?$AA@"
+// CHECK: @"??_C at _01LFCBOECM@?4?$AA@"
+// CHECK: @"??_C at _01JOAMLHOP@?9?$AA@"
+// CHECK: @"??_C at _01IHBHIGKO@?0?$AA@"
+// CHECK: @"??_C at _01MIFGBAGJ@?$CL?$AA@"
+// CHECK: @"??_C at _01NBENCBCI@?$CK?$AA@"
+// CHECK: @"??_C at _01PKGAHCOL@?$CJ?$AA@"
+// CHECK: @"??_C at _01ODHLEDKK@?$CI?$AA@"
+// CHECK: @"??_C at _01GEODFPGF@?8?$AA@"
+// CHECK: @"??_C at _01HNPIGOCE@?$CG?$AA@"
+// CHECK: @"??_C at _01FGNFDNOH@?$CF?$AA@"
+// CHECK: @"??_C at _01EPMOAMKG@$?$AA@"
+// CHECK: @"??_C at _01IPJKGB@?$CD?$AA@"
+// CHECK: @"??_C at _01BJJEKLCA@?$CC?$AA@"
+// CHECK: @"??_C at _01DCLJPIOD@?$CB?$AA@"
+// CHECK: @"??_C at _01CLKCMJKC@?5?$AA@"
+// CHECK: @"??_C at _01HDHMODJO@?$BP?$AA@"
+// CHECK: @"??_C at _01GKGHNCNP@?$BO?$AA@"
+// CHECK: @"??_C at _01EBEKIBBM@?$BN?$AA@"
+// CHECK: @"??_C at _01FIFBLAFN@?$BM?$AA@"
+// CHECK: @"??_C at _01BHBACGJK@?$BL?$AA@"
+// CHECK: @"??_C at _01OALBHNL@?$BK?$AA@"
+// CHECK: @"??_C at _01CFCGEEBI@?$BJ?$AA@"
+// CHECK: @"??_C at _01DMDNHFFJ@?$BI?$AA@"
+// CHECK: @"??_C at _01LLKFGJJG@?$BH?$AA@"
+// CHECK: @"??_C at _01KCLOFINH@?$BG?$AA@"
+// CHECK: @"??_C at _01IJJDALBE@?$BF?$AA@"
+// CHECK: @"??_C at _01JAIIDKFF@?$BE?$AA@"
+// CHECK: @"??_C at _01NPMJKMJC@?$BD?$AA@"
+// CHECK: @"??_C at _01MGNCJNND@?$BC?$AA@"
+// CHECK: @"??_C at _01ONPPMOBA@?$BB?$AA@"
+// CHECK: @"??_C at _01PEOEPPFB@?$BA?$AA@"
+// CHECK: @"??_C at _01DJLOPBMP@?$AP?$AA@"
+// CHECK: @"??_C at _01CAKFMAIO@?$AO?$AA@"
+// CHECK: @"??_C at _01LIIJDEN@?$AN?$AA@"
+// CHECK: @"??_C at _01BCJDKCAM@?$AM?$AA@"
+// CHECK: @"??_C at _01FNNCDEML@?$AL?$AA@"
+// CHECK: @"??_C at _01EEMJAFIK@?6?$AA@"
+// CHECK: @"??_C at _01GPOEFGEJ@?7?$AA@"
+// CHECK: @"??_C at _01HGPPGHAI@?$AI?$AA@"
+// CHECK: @"??_C at _01PBGHHLMH@?$AH?$AA@"
+// CHECK: @"??_C at _01OIHMEKIG@?$AG?$AA@"
+// CHECK: @"??_C at _01MDFBBJEF@?$AF?$AA@"
+// CHECK: @"??_C at _01NKEKCIAE@?$AE?$AA@"
+// CHECK: @"??_C at _01JFALLOMD@?$AD?$AA@"
+// CHECK: @"??_C at _01IMBAIPIC@?$AC?$AA@"
+// CHECK: @"??_C at _01KHDNNMEB@?$AB?$AA@"
+// CHECK: @"??_C at _01LOCGONAA@?$AA?$AA@"
 
 const wchar_t *wl9 = L"\t";
 const wchar_t *wl10 = L"\n";
@@ -614,114 +614,114 @@ const wchar_t *wl124 = L"|";
 const wchar_t *wl125 = L"}";
 const wchar_t *wl126 = L"~";
 
-// CHECK: @"\01??_C at _13KDLDGPGJ@?$AA?7?$AA?$AA@"
-// CHECK: @"\01??_C at _13LBAGMAIH@?$AA?6?$AA?$AA@"
-// CHECK: @"\01??_C at _13JLKKHOC@?$AA?$AL?$AA?$AA@"
-// CHECK: @"\01??_C at _13HOIJIPNN@?$AA?5?$AA?$AA@"
-// CHECK: @"\01??_C at _13MGDFOILI@?$AA?$CB?$AA?$AA@"
-// CHECK: @"\01??_C at _13NEIAEHFG@?$AA?$CC?$AA?$AA@"
-// CHECK: @"\01??_C at _13GMDMCADD@?$AA?$CD?$AA?$AA@"
-// CHECK: @"\01??_C at _13PBOLBIIK@?$AA$?$AA?$AA@"
-// CHECK: @"\01??_C at _13EJFHHPOP@?$AA?$CF?$AA?$AA@"
-// CHECK: @"\01??_C at _13FLOCNAAB@?$AA?$CG?$AA?$AA@"
-// CHECK: @"\01??_C at _13ODFOLHGE@?$AA?8?$AA?$AA@"
-// CHECK: @"\01??_C at _13LLDNKHDC@?$AA?$CI?$AA?$AA@"
-// CHECK: @"\01??_C at _13DIBMAFH@?$AA?$CJ?$AA?$AA@"
-// CHECK: @"\01??_C at _13BBDEGPLJ@?$AA?$CK?$AA?$AA@"
-// CHECK: @"\01??_C at _13KJIIAINM@?$AA?$CL?$AA?$AA@"
-// CHECK: @"\01??_C at _13DEFPDAGF@?$AA?0?$AA?$AA@"
-// CHECK: @"\01??_C at _13IMODFHAA@?$AA?9?$AA?$AA@"
-// CHECK: @"\01??_C at _13JOFGPIOO@?$AA?4?$AA?$AA@"
-// CHECK: @"\01??_C at _13CGOKJPIL@?$AA?1?$AA?$AA@"
-// CHECK: @"\01??_C at _13COJANIEC@?$AA0?$AA?$AA@"
-// CHECK: @"\01??_C at _13JGCMLPCH@?$AA1?$AA?$AA@"
-// CHECK: @"\01??_C at _13IEJJBAMJ@?$AA2?$AA?$AA@"
-// CHECK: @"\01??_C at _13DMCFHHKM@?$AA3?$AA?$AA@"
-// CHECK: @"\01??_C at _13KBPCEPBF@?$AA4?$AA?$AA@"
-// CHECK: @"\01??_C at _13BJEOCIHA@?$AA5?$AA?$AA@"
-// CHECK: @"\01??_C at _13LPLIHJO@?$AA6?$AA?$AA@"
-// CHECK: @"\01??_C at _13LDEHOAPL@?$AA7?$AA?$AA@"
-// CHECK: @"\01??_C at _13OLCEPAKN@?$AA8?$AA?$AA@"
-// CHECK: @"\01??_C at _13FDJIJHMI@?$AA9?$AA?$AA@"
-// CHECK: @"\01??_C at _13EBCNDICG@?$AA?3?$AA?$AA@"
-// CHECK: @"\01??_C at _13PJJBFPED@?$AA?$DL?$AA?$AA@"
-// CHECK: @"\01??_C at _13GEEGGHPK@?$AA?$DM?$AA?$AA@"
-// CHECK: @"\01??_C at _13NMPKAAJP@?$AA?$DN?$AA?$AA@"
-// CHECK: @"\01??_C at _13MOEPKPHB@?$AA?$DO?$AA?$AA@"
-// CHECK: @"\01??_C at _13HGPDMIBE@?$AA?$DP?$AA?$AA@"
-// CHECK: @"\01??_C at _13EFKPHINO@?$AA?$EA?$AA?$AA@"
-// CHECK: @"\01??_C at _13PNBDBPLL@?$AAA?$AA?$AA@"
-// CHECK: @"\01??_C at _13OPKGLAFF@?$AAB?$AA?$AA@"
-// CHECK: @"\01??_C at _13FHBKNHDA@?$AAC?$AA?$AA@"
-// CHECK: @"\01??_C at _13MKMNOPIJ@?$AAD?$AA?$AA@"
-// CHECK: @"\01??_C at _13HCHBIIOM@?$AAE?$AA?$AA@"
-// CHECK: @"\01??_C at _13GAMECHAC@?$AAF?$AA?$AA@"
-// CHECK: @"\01??_C at _13NIHIEAGH@?$AAG?$AA?$AA@"
-// CHECK: @"\01??_C at _13IABLFADB@?$AAH?$AA?$AA@"
-// CHECK: @"\01??_C at _13DIKHDHFE@?$AAI?$AA?$AA@"
-// CHECK: @"\01??_C at _13CKBCJILK@?$AAJ?$AA?$AA@"
-// CHECK: @"\01??_C at _13JCKOPPNP@?$AAK?$AA?$AA@"
-// CHECK: @"\01??_C at _13PHJMHGG@?$AAL?$AA?$AA@"
-// CHECK: @"\01??_C at _13LHMFKAAD@?$AAM?$AA?$AA@"
-// CHECK: @"\01??_C at _13KFHAAPON@?$AAN?$AA?$AA@"
-// CHECK: @"\01??_C at _13BNMMGIII@?$AAO?$AA?$AA@"
-// CHECK: @"\01??_C at _13BFLGCPEB@?$AAP?$AA?$AA@"
-// CHECK: @"\01??_C at _13KNAKEICE@?$AAQ?$AA?$AA@"
-// CHECK: @"\01??_C at _13LPLPOHMK@?$AAR?$AA?$AA@"
-// CHECK: @"\01??_C at _13HADIAKP@?$AAS?$AA?$AA@"
-// CHECK: @"\01??_C at _13JKNELIBG@?$AAT?$AA?$AA@"
-// CHECK: @"\01??_C at _13CCGINPHD@?$AAU?$AA?$AA@"
-// CHECK: @"\01??_C at _13DANNHAJN@?$AAV?$AA?$AA@"
-// CHECK: @"\01??_C at _13IIGBBHPI@?$AAW?$AA?$AA@"
-// CHECK: @"\01??_C at _13NAACAHKO@?$AAX?$AA?$AA@"
-// CHECK: @"\01??_C at _13GILOGAML@?$AAY?$AA?$AA@"
-// CHECK: @"\01??_C at _13HKALMPCF@?$AAZ?$AA?$AA@"
-// CHECK: @"\01??_C at _13MCLHKIEA@?$AA?$FL?$AA?$AA@"
-// CHECK: @"\01??_C at _13FPGAJAPJ@?$AA?2?$AA?$AA@"
-// CHECK: @"\01??_C at _13OHNMPHJM@?$AA?$FN?$AA?$AA@"
-// CHECK: @"\01??_C at _13PFGJFIHC@?$AA?$FO?$AA?$AA@"
-// CHECK: @"\01??_C at _13ENNFDPBH@?$AA_?$AA?$AA@"
-// CHECK: @"\01??_C at _13OFJNNHOA@?$AA?$GA?$AA?$AA@"
-// CHECK: @"\01??_C at _13FNCBLAIF@?$AAa?$AA?$AA@"
-// CHECK: @"\01??_C at _13EPJEBPGL@?$AAb?$AA?$AA@"
-// CHECK: @"\01??_C at _13PHCIHIAO@?$AAc?$AA?$AA@"
-// CHECK: @"\01??_C at _13GKPPEALH@?$AAd?$AA?$AA@"
-// CHECK: @"\01??_C at _13NCEDCHNC@?$AAe?$AA?$AA@"
-// CHECK: @"\01??_C at _13MAPGIIDM@?$AAf?$AA?$AA@"
-// CHECK: @"\01??_C at _13HIEKOPFJ@?$AAg?$AA?$AA@"
-// CHECK: @"\01??_C at _13CACJPPAP@?$AAh?$AA?$AA@"
-// CHECK: @"\01??_C at _13JIJFJIGK@?$AAi?$AA?$AA@"
-// CHECK: @"\01??_C at _13IKCADHIE@?$AAj?$AA?$AA@"
-// CHECK: @"\01??_C at _13DCJMFAOB@?$AAk?$AA?$AA@"
-// CHECK: @"\01??_C at _13KPELGIFI@?$AAl?$AA?$AA@"
-// CHECK: @"\01??_C at _13BHPHAPDN@?$AAm?$AA?$AA@"
-// CHECK: @"\01??_C at _13FECKAND@?$AAn?$AA?$AA@"
-// CHECK: @"\01??_C at _13LNPOMHLG@?$AAo?$AA?$AA@"
-// CHECK: @"\01??_C at _13LFIEIAHP@?$AAp?$AA?$AA@"
-// CHECK: @"\01??_C at _13NDIOHBK@?$AAq?$AA?$AA@"
-// CHECK: @"\01??_C at _13BPINEIPE@?$AAr?$AA?$AA@"
-// CHECK: @"\01??_C at _13KHDBCPJB@?$AAs?$AA?$AA@"
-// CHECK: @"\01??_C at _13DKOGBHCI@?$AAt?$AA?$AA@"
-// CHECK: @"\01??_C at _13ICFKHAEN@?$AAu?$AA?$AA@"
-// CHECK: @"\01??_C at _13JAOPNPKD@?$AAv?$AA?$AA@"
-// CHECK: @"\01??_C at _13CIFDLIMG@?$AAw?$AA?$AA@"
-// CHECK: @"\01??_C at _13HADAKIJA@?$AAx?$AA?$AA@"
-// CHECK: @"\01??_C at _13MIIMMPPF@?$AAy?$AA?$AA@"
-// CHECK: @"\01??_C at _13NKDJGABL@?$AAz?$AA?$AA@"
-// CHECK: @"\01??_C at _13GCIFAHHO@?$AA?$HL?$AA?$AA@"
-// CHECK: @"\01??_C at _13PPFCDPMH@?$AA?$HM?$AA?$AA@"
-// CHECK: @"\01??_C at _13EHOOFIKC@?$AA?$HN?$AA?$AA@"
-// CHECK: @"\01??_C at _13FFFLPHEM@?$AA?$HO?$AA?$AA@"
+// CHECK: @"??_C at _13KDLDGPGJ@?$AA?7?$AA?$AA@"
+// CHECK: @"??_C at _13LBAGMAIH@?$AA?6?$AA?$AA@"
+// CHECK: @"??_C at _13JLKKHOC@?$AA?$AL?$AA?$AA@"
+// CHECK: @"??_C at _13HOIJIPNN@?$AA?5?$AA?$AA@"
+// CHECK: @"??_C at _13MGDFOILI@?$AA?$CB?$AA?$AA@"
+// CHECK: @"??_C at _13NEIAEHFG@?$AA?$CC?$AA?$AA@"
+// CHECK: @"??_C at _13GMDMCADD@?$AA?$CD?$AA?$AA@"
+// CHECK: @"??_C at _13PBOLBIIK@?$AA$?$AA?$AA@"
+// CHECK: @"??_C at _13EJFHHPOP@?$AA?$CF?$AA?$AA@"
+// CHECK: @"??_C at _13FLOCNAAB@?$AA?$CG?$AA?$AA@"
+// CHECK: @"??_C at _13ODFOLHGE@?$AA?8?$AA?$AA@"
+// CHECK: @"??_C at _13LLDNKHDC@?$AA?$CI?$AA?$AA@"
+// CHECK: @"??_C at _13DIBMAFH@?$AA?$CJ?$AA?$AA@"
+// CHECK: @"??_C at _13BBDEGPLJ@?$AA?$CK?$AA?$AA@"
+// CHECK: @"??_C at _13KJIIAINM@?$AA?$CL?$AA?$AA@"
+// CHECK: @"??_C at _13DEFPDAGF@?$AA?0?$AA?$AA@"
+// CHECK: @"??_C at _13IMODFHAA@?$AA?9?$AA?$AA@"
+// CHECK: @"??_C at _13JOFGPIOO@?$AA?4?$AA?$AA@"
+// CHECK: @"??_C at _13CGOKJPIL@?$AA?1?$AA?$AA@"
+// CHECK: @"??_C at _13COJANIEC@?$AA0?$AA?$AA@"
+// CHECK: @"??_C at _13JGCMLPCH@?$AA1?$AA?$AA@"
+// CHECK: @"??_C at _13IEJJBAMJ@?$AA2?$AA?$AA@"
+// CHECK: @"??_C at _13DMCFHHKM@?$AA3?$AA?$AA@"
+// CHECK: @"??_C at _13KBPCEPBF@?$AA4?$AA?$AA@"
+// CHECK: @"??_C at _13BJEOCIHA@?$AA5?$AA?$AA@"
+// CHECK: @"??_C at _13LPLIHJO@?$AA6?$AA?$AA@"
+// CHECK: @"??_C at _13LDEHOAPL@?$AA7?$AA?$AA@"
+// CHECK: @"??_C at _13OLCEPAKN@?$AA8?$AA?$AA@"
+// CHECK: @"??_C at _13FDJIJHMI@?$AA9?$AA?$AA@"
+// CHECK: @"??_C at _13EBCNDICG@?$AA?3?$AA?$AA@"
+// CHECK: @"??_C at _13PJJBFPED@?$AA?$DL?$AA?$AA@"
+// CHECK: @"??_C at _13GEEGGHPK@?$AA?$DM?$AA?$AA@"
+// CHECK: @"??_C at _13NMPKAAJP@?$AA?$DN?$AA?$AA@"
+// CHECK: @"??_C at _13MOEPKPHB@?$AA?$DO?$AA?$AA@"
+// CHECK: @"??_C at _13HGPDMIBE@?$AA?$DP?$AA?$AA@"
+// CHECK: @"??_C at _13EFKPHINO@?$AA?$EA?$AA?$AA@"
+// CHECK: @"??_C at _13PNBDBPLL@?$AAA?$AA?$AA@"
+// CHECK: @"??_C at _13OPKGLAFF@?$AAB?$AA?$AA@"
+// CHECK: @"??_C at _13FHBKNHDA@?$AAC?$AA?$AA@"
+// CHECK: @"??_C at _13MKMNOPIJ@?$AAD?$AA?$AA@"
+// CHECK: @"??_C at _13HCHBIIOM@?$AAE?$AA?$AA@"
+// CHECK: @"??_C at _13GAMECHAC@?$AAF?$AA?$AA@"
+// CHECK: @"??_C at _13NIHIEAGH@?$AAG?$AA?$AA@"
+// CHECK: @"??_C at _13IABLFADB@?$AAH?$AA?$AA@"
+// CHECK: @"??_C at _13DIKHDHFE@?$AAI?$AA?$AA@"
+// CHECK: @"??_C at _13CKBCJILK@?$AAJ?$AA?$AA@"
+// CHECK: @"??_C at _13JCKOPPNP@?$AAK?$AA?$AA@"
+// CHECK: @"??_C at _13PHJMHGG@?$AAL?$AA?$AA@"
+// CHECK: @"??_C at _13LHMFKAAD@?$AAM?$AA?$AA@"
+// CHECK: @"??_C at _13KFHAAPON@?$AAN?$AA?$AA@"
+// CHECK: @"??_C at _13BNMMGIII@?$AAO?$AA?$AA@"
+// CHECK: @"??_C at _13BFLGCPEB@?$AAP?$AA?$AA@"
+// CHECK: @"??_C at _13KNAKEICE@?$AAQ?$AA?$AA@"
+// CHECK: @"??_C at _13LPLPOHMK@?$AAR?$AA?$AA@"
+// CHECK: @"??_C at _13HADIAKP@?$AAS?$AA?$AA@"
+// CHECK: @"??_C at _13JKNELIBG@?$AAT?$AA?$AA@"
+// CHECK: @"??_C at _13CCGINPHD@?$AAU?$AA?$AA@"
+// CHECK: @"??_C at _13DANNHAJN@?$AAV?$AA?$AA@"
+// CHECK: @"??_C at _13IIGBBHPI@?$AAW?$AA?$AA@"
+// CHECK: @"??_C at _13NAACAHKO@?$AAX?$AA?$AA@"
+// CHECK: @"??_C at _13GILOGAML@?$AAY?$AA?$AA@"
+// CHECK: @"??_C at _13HKALMPCF@?$AAZ?$AA?$AA@"
+// CHECK: @"??_C at _13MCLHKIEA@?$AA?$FL?$AA?$AA@"
+// CHECK: @"??_C at _13FPGAJAPJ@?$AA?2?$AA?$AA@"
+// CHECK: @"??_C at _13OHNMPHJM@?$AA?$FN?$AA?$AA@"
+// CHECK: @"??_C at _13PFGJFIHC@?$AA?$FO?$AA?$AA@"
+// CHECK: @"??_C at _13ENNFDPBH@?$AA_?$AA?$AA@"
+// CHECK: @"??_C at _13OFJNNHOA@?$AA?$GA?$AA?$AA@"
+// CHECK: @"??_C at _13FNCBLAIF@?$AAa?$AA?$AA@"
+// CHECK: @"??_C at _13EPJEBPGL@?$AAb?$AA?$AA@"
+// CHECK: @"??_C at _13PHCIHIAO@?$AAc?$AA?$AA@"
+// CHECK: @"??_C at _13GKPPEALH@?$AAd?$AA?$AA@"
+// CHECK: @"??_C at _13NCEDCHNC@?$AAe?$AA?$AA@"
+// CHECK: @"??_C at _13MAPGIIDM@?$AAf?$AA?$AA@"
+// CHECK: @"??_C at _13HIEKOPFJ@?$AAg?$AA?$AA@"
+// CHECK: @"??_C at _13CACJPPAP@?$AAh?$AA?$AA@"
+// CHECK: @"??_C at _13JIJFJIGK@?$AAi?$AA?$AA@"
+// CHECK: @"??_C at _13IKCADHIE@?$AAj?$AA?$AA@"
+// CHECK: @"??_C at _13DCJMFAOB@?$AAk?$AA?$AA@"
+// CHECK: @"??_C at _13KPELGIFI@?$AAl?$AA?$AA@"
+// CHECK: @"??_C at _13BHPHAPDN@?$AAm?$AA?$AA@"
+// CHECK: @"??_C at _13FECKAND@?$AAn?$AA?$AA@"
+// CHECK: @"??_C at _13LNPOMHLG@?$AAo?$AA?$AA@"
+// CHECK: @"??_C at _13LFIEIAHP@?$AAp?$AA?$AA@"
+// CHECK: @"??_C at _13NDIOHBK@?$AAq?$AA?$AA@"
+// CHECK: @"??_C at _13BPINEIPE@?$AAr?$AA?$AA@"
+// CHECK: @"??_C at _13KHDBCPJB@?$AAs?$AA?$AA@"
+// CHECK: @"??_C at _13DKOGBHCI@?$AAt?$AA?$AA@"
+// CHECK: @"??_C at _13ICFKHAEN@?$AAu?$AA?$AA@"
+// CHECK: @"??_C at _13JAOPNPKD@?$AAv?$AA?$AA@"
+// CHECK: @"??_C at _13CIFDLIMG@?$AAw?$AA?$AA@"
+// CHECK: @"??_C at _13HADAKIJA@?$AAx?$AA?$AA@"
+// CHECK: @"??_C at _13MIIMMPPF@?$AAy?$AA?$AA@"
+// CHECK: @"??_C at _13NKDJGABL@?$AAz?$AA?$AA@"
+// CHECK: @"??_C at _13GCIFAHHO@?$AA?$HL?$AA?$AA@"
+// CHECK: @"??_C at _13PPFCDPMH@?$AA?$HM?$AA?$AA@"
+// CHECK: @"??_C at _13EHOOFIKC@?$AA?$HN?$AA?$AA@"
+// CHECK: @"??_C at _13FFFLPHEM@?$AA?$HO?$AA?$AA@"
 
 const char *LongASCIIString = "012345678901234567890123456789ABCDEF";
-// CHECK: @"\01??_C at _0CF@LABBIIMO at 012345678901234567890123456789AB@"
+// CHECK: @"??_C at _0CF@LABBIIMO at 012345678901234567890123456789AB@"
 const wchar_t *LongWideString = L"012345678901234567890123456789ABCDEF";
-// CHECK: @"\01??_C at _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@"
+// CHECK: @"??_C at _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@"
 const wchar_t *UnicodeLiteral = L"\ud7ff";
-// CHECK: @"\01??_C at _13IIHIAFKH@?W?$PP?$AA?$AA@"
+// CHECK: @"??_C at _13IIHIAFKH@?W?$PP?$AA?$AA@"
 const char *U8Literal = u8"hi";
-// CHECK: @"\01??_C at _02PCEFGMJL@hi?$AA@"
+// CHECK: @"??_C at _02PCEFGMJL@hi?$AA@"
 const char16_t *U16Literal = u"hi";
-// CHECK: @"\01??_C at _05OMLEGLOC@h?$AAi?$AA?$AA?$AA@"
+// CHECK: @"??_C at _05OMLEGLOC@h?$AAi?$AA?$AA?$AA@"
 const char32_t *U32Literal = U"hi";
-// CHECK: @"\01??_C at _0M@GFNAJIPG at h?$AA?$AA?$AAi?$AA?$AA?$AA?$AA?$AA?$AA?$AA@"
+// CHECK: @"??_C at _0M@GFNAJIPG at h?$AA?$AA?$AAi?$AA?$AA?$AA?$AA?$AA?$AA?$AA@"

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-template-callback.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-template-callback.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-template-callback.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-template-callback.cpp Fri Mar 16 13:36:49 2018
@@ -14,42 +14,42 @@ template<typename Ret, typename Arg1, ty
 class C<Ret(Arg1, Arg2)> {};
 
 C0 callback_void;
-// CHECK: "\01?callback_void@@3V?$C@$$A6AXXZ@@A"
+// CHECK: "?callback_void@@3V?$C@$$A6AXXZ@@A"
 
 volatile C0 callback_void_volatile;
-// CHECK: "\01?callback_void_volatile@@3V?$C@$$A6AXXZ@@C"
+// CHECK: "?callback_void_volatile@@3V?$C@$$A6AXXZ@@C"
 
 class Type {};
 
 C<int(void)> callback_int;
-// CHECK: "\01?callback_int@@3V?$C@$$A6AHXZ@@A"
+// CHECK: "?callback_int@@3V?$C@$$A6AHXZ@@A"
 C<Type(void)> callback_Type;
-// CHECK: "\01?callback_Type@@3V?$C@$$A6A?AVType@@XZ@@A"
+// CHECK: "?callback_Type@@3V?$C@$$A6A?AVType@@XZ@@A"
 
 C<void(int)> callback_void_int;
-// CHECK: "\01?callback_void_int@@3V?$C@$$A6AXH at Z@@A"
+// CHECK: "?callback_void_int@@3V?$C@$$A6AXH at Z@@A"
 C<int(int)> callback_int_int;
-// CHECK: "\01?callback_int_int@@3V?$C@$$A6AHH at Z@@A"
+// CHECK: "?callback_int_int@@3V?$C@$$A6AHH at Z@@A"
 C<void(Type)> callback_void_Type;
-// CHECK: "\01?callback_void_Type@@3V?$C@$$A6AXVType@@@Z@@A"
+// CHECK: "?callback_void_Type@@3V?$C@$$A6AXVType@@@Z@@A"
 
 void foo(C0 c) {}
-// CHECK: "\01?foo@@YAXV?$C@$$A6AXXZ@@@Z"
+// CHECK: "?foo@@YAXV?$C@$$A6AXXZ@@@Z"
 
 // Here be dragons!
 // Let's face the magic of template partial specialization...
 
 void function(C<void(void)>) {}
-// CHECK: "\01?function@@YAXV?$C@$$A6AXXZ@@@Z"
+// CHECK: "?function@@YAXV?$C@$$A6AXXZ@@@Z"
 
 template<typename Ret> class C<Ret(*)(void)> {};
 void function_pointer(C<void(*)(void)>) {}
-// CHECK: "\01?function_pointer@@YAXV?$C at P6AXXZ@@@Z"
+// CHECK: "?function_pointer@@YAXV?$C at P6AXXZ@@@Z"
 
 // Block equivalent to the previous definitions.
 template<typename Ret> class C<Ret(^)(void)> {};
 void block(C<void(^)(void)>) {}
-// CHECK: "\01?block@@YAXV?$C at P_EAXXZ@@@Z"
+// CHECK: "?block@@YAXV?$C at P_EAXXZ@@@Z"
 // FYI blocks are not present in MSVS, so we're free to choose the spec.
 
 template<typename T> class C<void (T::*)(void)> {};
@@ -58,16 +58,16 @@ class Z {
   void method() {}
 };
 void member_pointer(C<void (Z::*)(void)>) {}
-// CHECK: "\01?member_pointer@@YAXV?$C at P8Z@@AEXXZ@@@Z"
+// CHECK: "?member_pointer@@YAXV?$C at P8Z@@AEXXZ@@@Z"
 
 template<typename T> void bar(T) {}
 
 void call_bar() {
   bar<int (*)(int)>(0);
-// CHECK: "\01??$bar at P6AHH@Z@@YAXP6AHH at Z@Z"
+// CHECK: "??$bar at P6AHH@Z@@YAXP6AHH at Z@Z"
 
   bar<int (^)(int)>(0);
-// CHECK: "\01??$bar at P_EAHH@Z@@YAXP_EAHH at Z@Z"
+// CHECK: "??$bar at P_EAHH@Z@@YAXP_EAHH at Z@Z"
 // FYI blocks are not present in MSVS, so we're free to choose the spec.
 }
 
@@ -83,7 +83,7 @@ void CallWrapper() {
   WrapFnPtr<Thing::VoidStaticMethod>();
   WrapFnRef<Thing::VoidStaticMethod>();
 }
-// CHECK: call {{.*}} @"\01??$WrapFnPtr@$1?VoidFn@@YAXXZ@@YAXXZ"
-// CHECK: call {{.*}} @"\01??$WrapFnRef@$1?VoidFn@@YAXXZ@@YAXXZ"
-// CHECK: call {{.*}} @"\01??$WrapFnPtr@$1?VoidStaticMethod at Thing@@SAXXZ@@YAXXZ"
-// CHECK: call {{.*}} @"\01??$WrapFnRef@$1?VoidStaticMethod at Thing@@SAXXZ@@YAXXZ"
+// CHECK: call {{.*}} @"??$WrapFnPtr@$1?VoidFn@@YAXXZ@@YAXXZ"
+// CHECK: call {{.*}} @"??$WrapFnRef@$1?VoidFn@@YAXXZ@@YAXXZ"
+// CHECK: call {{.*}} @"??$WrapFnPtr@$1?VoidStaticMethod at Thing@@SAXXZ@@YAXXZ"
+// CHECK: call {{.*}} @"??$WrapFnRef@$1?VoidStaticMethod at Thing@@SAXXZ@@YAXXZ"

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-templates-memptrs-2.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-templates-memptrs-2.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-templates-memptrs-2.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-templates-memptrs-2.cpp Fri Mar 16 13:36:49 2018
@@ -8,31 +8,31 @@ struct K {};
 
 struct __single_inheritance M;
 J<M> m;
-// CHECK-DAG: @"\01?m@@3U?$J at UM@@$0A@@@A"
+// CHECK-DAG: @"?m@@3U?$J at UM@@$0A@@@A"
 
 K<M> m2;
-// CHECK-DAG: @"\01?m2@@3U?$K at UM@@$0?0@@A"
+// CHECK-DAG: @"?m2@@3U?$K at UM@@$0?0@@A"
 
 struct __multiple_inheritance N;
 J<N> n;
-// CHECK-DAG: @"\01?n@@3U?$J at UN@@$HA@@@A"
+// CHECK-DAG: @"?n@@3U?$J at UN@@$HA@@@A"
 
 K<N> n2;
-// CHECK-DAG: @"\01?n2@@3U?$K at UN@@$0?0@@A"
+// CHECK-DAG: @"?n2@@3U?$K at UN@@$0?0@@A"
 
 struct __virtual_inheritance O;
 J<O> o;
-// CHECK-DAG: @"\01?o@@3U?$J at UO@@$IA at A@@@A"
+// CHECK-DAG: @"?o@@3U?$J at UO@@$IA at A@@@A"
 
 K<O> o2;
-// CHECK-DAG: @"\01?o2@@3U?$K at UO@@$FA@?0@@A"
+// CHECK-DAG: @"?o2@@3U?$K at UO@@$FA@?0@@A"
 
 struct P;
 J<P> p;
-// CHECK-DAG: @"\01?p@@3U?$J at UP@@$JA at A@?0@@A"
+// CHECK-DAG: @"?p@@3U?$J at UP@@$JA at A@?0@@A"
 
 K<P> p2;
-// CHECK-DAG: @"\01?p2@@3U?$K at UP@@$GA at A@?0@@A"
+// CHECK-DAG: @"?p2@@3U?$K at UP@@$GA at A@?0@@A"
 
 #pragma pointers_to_members(full_generality, virtual_inheritance)
 
@@ -57,4 +57,4 @@ template struct ClassTemplate<&MostGener
 
 // Test that we mangle in the vbptr offset, which is 12 here.
 //
-// CHECK: define weak_odr dso_local x86_thiscallcc %struct.ClassTemplate* @"\01??0?$ClassTemplate@$J??_9MostGeneral@@$BA at AEA@M at 3@@QAE at XZ"
+// CHECK: define weak_odr dso_local x86_thiscallcc %struct.ClassTemplate* @"??0?$ClassTemplate@$J??_9MostGeneral@@$BA at AEA@M at 3@@QAE at XZ"

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp Fri Mar 16 13:36:49 2018
@@ -56,31 +56,31 @@ void ReadFields() {
 }
 
 // CHECK-LABEL: define {{.*}}ReadFields
-// CHECK: call {{.*}} @"\01??$ReadField at US@@$03@@YAHAAUS@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UM@@$0M@@@YAHAAUM@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UV@@$F7A@@@YAHAAUV@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UU@@$G3A at A@@@YAHAAUU@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at US@@$07@@YAHAAUS@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UM@@$0BA@@@YAHAAUM@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UV@@$FM at A@@@YAHAAUV@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UU@@$G7A at A@@@YAHAAUU@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at US@@$03@@YAHAAUS@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UM@@$0M@@@YAHAAUM@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UV@@$F7A@@@YAHAAUV@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UU@@$G3A at A@@@YAHAAUU@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at US@@$07@@YAHAAUS@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UM@@$0BA@@@YAHAAUM@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UV@@$FM at A@@@YAHAAUV@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UU@@$G7A at A@@@YAHAAUU@@@Z"
 
 // MSVC mangles null member pointers in function templates wrong, but it gets
 // them right in class templates.
-// CHECK: call {{.*}} @"\01??$ReadField at US@@$0A@@@YAHAAUS@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UM@@$0A@@@YAHAAUM@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UV@@$0A@@@YAHAAUV@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UU@@$0A@@@YAHAAUU@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at US@@$0A@@@YAHAAUS@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UM@@$0A@@@YAHAAUM@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UV@@$0A@@@YAHAAUV@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UU@@$0A@@@YAHAAUU@@@Z"
 
 // Non-polymorphic null data memptr vs first field memptr.  MSVC mangles these
 // the same.
-// CHECK: call {{.*}} @"\01??$ReadField at UA@@$0A@@@YAHAAUA@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UA@@$0?0@@YAHAAUA@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UA@@$0A@@@YAHAAUA@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UA@@$0?0@@YAHAAUA@@@Z"
 
 // Indirect fields are handled as-if they were simply members of their enclosing
 // record.
-// CHECK: call {{.*}} @"\01??$ReadField at UI@@$0A@@@YAHAAUI@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField at UI@@$03@@YAHAAUI@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UI@@$0A@@@YAHAAUI@@@Z"
+// CHECK: call {{.*}} @"??$ReadField at UI@@$03@@YAHAAUI@@@Z"
 
 // Test member function pointers.
 template <typename T, void (T::*MFP)()>
@@ -119,10 +119,10 @@ void CallMethods() {
 }
 
 // CHECK-LABEL: define {{.*}}CallMethods
-// CHECK: call {{.*}} @"\01??$CallMethod at US@@$1?f at 1@QAEXXZ@@YAXAAUS@@@Z"
-// CHECK: call {{.*}} @"\01??$CallMethod at UM@@$H?f at 1@QAEXXZA@@@YAXAAUM@@@Z"
-// CHECK: call {{.*}} @"\01??$CallMethod at UV@@$I?f at 1@QAEXXZA at A@@@YAXAAUV@@@Z"
-// CHECK: call {{.*}} @"\01??$CallMethod at UU@@$J?f at 1@QAEXXZA at A@A@@@YAXAAUU@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at US@@$1?f at 1@QAEXXZ@@YAXAAUS@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at UM@@$H?f at 1@QAEXXZA@@@YAXAAUM@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at UV@@$I?f at 1@QAEXXZA at A@@@YAXAAUV@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at UU@@$J?f at 1@QAEXXZA at A@A@@@YAXAAUU@@@Z"
 
 // PR17034: MSVC reuses the same thunk for every virtual g method because they
 // are all at vftable offset zero.  They then mangle the name of the first thunk
@@ -130,17 +130,17 @@ void CallMethods() {
 // bug.  We don't follow them here.  Instead of ?_91@ backref below, they would
 // get ?_9S@@ in every instantiation after the first.
 
-// CHECK: call {{.*}} @"\01??$CallMethod at US@@$1??_91@$BA at AE@@YAXAAUS@@@Z"
-// CHECK: call {{.*}} @"\01??$CallMethod at UM@@$H??_91@$BA at AEA@@@YAXAAUM@@@Z"
-// CHECK: call {{.*}} @"\01??$CallMethod at UV@@$I??_91@$BA at AEA@A@@@YAXAAUV@@@Z"
-// CHECK: call {{.*}} @"\01??$CallMethod at UU@@$J??_91@$BA at AEA@A at A@@@YAXAAUU@@@Z"
-
-// CHECK: call {{.*}} @"\01??$CallMethod at UO@@$H??_91@$BA at AE3@@YAXAAUO@@@Z"
-
-// CHECK: call {{.*}} @"\01??$CallMethod at US@@$0A@@@YAXAAUS@@@Z"
-// CHECK: call {{.*}} @"\01??$CallMethod at UM@@$0A@@@YAXAAUM@@@Z"
-// CHECK: call {{.*}} @"\01??$CallMethod at UV@@$0A@@@YAXAAUV@@@Z"
-// CHECK: call {{.*}} @"\01??$CallMethod at UU@@$0A@@@YAXAAUU@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at US@@$1??_91@$BA at AE@@YAXAAUS@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at UM@@$H??_91@$BA at AEA@@@YAXAAUM@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at UV@@$I??_91@$BA at AEA@A@@@YAXAAUV@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at UU@@$J??_91@$BA at AEA@A at A@@@YAXAAUU@@@Z"
+
+// CHECK: call {{.*}} @"??$CallMethod at UO@@$H??_91@$BA at AE3@@YAXAAUO@@@Z"
+
+// CHECK: call {{.*}} @"??$CallMethod at US@@$0A@@@YAXAAUS@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at UM@@$0A@@@YAXAAUM@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at UV@@$0A@@@YAXAAUV@@@Z"
+// CHECK: call {{.*}} @"??$CallMethod at UU@@$0A@@@YAXAAUU@@@Z"
 
 namespace NegativeNVOffset {
 struct A {};
@@ -152,4 +152,4 @@ struct C : B {
 
 template void CallMethod<NegativeNVOffset::C, &NegativeNVOffset::C::f>(NegativeNVOffset::C &);
 
-// CHECK-LABEL: define {{.*}} @"\01??$CallMethod at UC@NegativeNVOffset@@$I??_912@$BA at AEPPPPPPPM@A@@@YAXAAUC at NegativeNVOffset@@@Z"
+// CHECK-LABEL: define {{.*}} @"??$CallMethod at UC@NegativeNVOffset@@$I??_912@$BA at AEPPPPPPPM@A@@@YAXAAUC at NegativeNVOffset@@@Z"

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-templates.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-templates.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-templates.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-templates.cpp Fri Mar 16 13:36:49 2018
@@ -51,118 +51,118 @@ class BoolTemplate<true> {
 
 void template_mangling() {
   Class<Typename> c1;
-// CHECK: call {{.*}} @"\01??0?$Class at VTypename@@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class at VTypename@@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class at VTypename@@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class at VTypename@@@@QEAA at XZ"
 
   Class<const Typename> c1_const;
-// CHECK: call {{.*}} @"\01??0?$Class@$$CBVTypename@@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class@$$CBVTypename@@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class@$$CBVTypename@@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class@$$CBVTypename@@@@QEAA at XZ"
   Class<volatile Typename> c1_volatile;
-// CHECK: call {{.*}} @"\01??0?$Class@$$CCVTypename@@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class@$$CCVTypename@@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class@$$CCVTypename@@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class@$$CCVTypename@@@@QEAA at XZ"
   Class<const volatile Typename> c1_cv;
-// CHECK: call {{.*}} @"\01??0?$Class@$$CDVTypename@@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class@$$CDVTypename@@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class@$$CDVTypename@@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class@$$CDVTypename@@@@QEAA at XZ"
 
   Class<Nested<Typename> > c2;
-// CHECK: call {{.*}} @"\01??0?$Class at V?$Nested at VTypename@@@@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class at V?$Nested at VTypename@@@@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class at V?$Nested at VTypename@@@@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class at V?$Nested at VTypename@@@@@@QEAA at XZ"
 
   Class<int * const> c_intpc;
-// CHECK: call {{.*}} @"\01??0?$Class at QAH@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class at QEAH@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class at QAH@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class at QEAH@@QEAA at XZ"
   Class<int()> c_ft;
-// CHECK: call {{.*}} @"\01??0?$Class@$$A6AHXZ@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class@$$A6AHXZ@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class@$$A6AHXZ@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class@$$A6AHXZ@@QEAA at XZ"
   Class<int[]> c_inti;
-// CHECK: call {{.*}} @"\01??0?$Class@$$BY0A at H@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class@$$BY0A at H@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class@$$BY0A at H@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class@$$BY0A at H@@QEAA at XZ"
   Class<int[5]> c_int5;
-// CHECK: call {{.*}} @"\01??0?$Class@$$BY04H@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class@$$BY04H@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class@$$BY04H@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class@$$BY04H@@QEAA at XZ"
   Class<const int[5]> c_intc5;
-// CHECK: call {{.*}} @"\01??0?$Class@$$BY04$$CBH@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class@$$BY04$$CBH@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class@$$BY04$$CBH@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class@$$BY04$$CBH@@QEAA at XZ"
   Class<int * const[5]> c_intpc5;
-// CHECK: call {{.*}} @"\01??0?$Class@$$BY04QAH@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$Class@$$BY04QEAH@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$Class@$$BY04QAH@@QAE at XZ"
+// X64: call {{.*}} @"??0?$Class@$$BY04QEAH@@QEAA at XZ"
 
   BoolTemplate<false> _false;
-// CHECK: call {{.*}} @"\01??0?$BoolTemplate@$0A@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$BoolTemplate@$0A@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$BoolTemplate@$0A@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$BoolTemplate@$0A@@@QEAA at XZ"
 
   BoolTemplate<true> _true;
   // PR13158
   _true.Foo(1);
-// CHECK: call {{.*}} @"\01??0?$BoolTemplate@$00@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$BoolTemplate@$00@@QEAA at XZ"
-// CHECK: call {{.*}} @"\01??$Foo at H@?$BoolTemplate@$00@@QAEXH at Z"
-// X64: call {{.*}} @"\01??$Foo at H@?$BoolTemplate@$00@@QEAAXH at Z"
+// CHECK: call {{.*}} @"??0?$BoolTemplate@$00@@QAE at XZ"
+// X64: call {{.*}} @"??0?$BoolTemplate@$00@@QEAA at XZ"
+// CHECK: call {{.*}} @"??$Foo at H@?$BoolTemplate@$00@@QAEXH at Z"
+// X64: call {{.*}} @"??$Foo at H@?$BoolTemplate@$00@@QEAAXH at Z"
 
   IntTemplate<0> zero;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$0A@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$0A@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$0A@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$0A@@@QEAA at XZ"
 
   IntTemplate<5> five;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$04@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$04@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$04@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$04@@QEAA at XZ"
 
   IntTemplate<11> eleven;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$0L@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$0L@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$0L@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$0L@@@QEAA at XZ"
 
   IntTemplate<256> _256;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$0BAA@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$0BAA@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$0BAA@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$0BAA@@@QEAA at XZ"
 
   IntTemplate<513> _513;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$0CAB@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$0CAB@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$0CAB@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$0CAB@@@QEAA at XZ"
 
   IntTemplate<1026> _1026;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$0EAC@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$0EAC@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$0EAC@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$0EAC@@@QEAA at XZ"
 
   IntTemplate<65535> ffff;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$0PPPP@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$0PPPP@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$0PPPP@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$0PPPP@@@QEAA at XZ"
 
   IntTemplate<-1>  neg_1;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$0?0@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$0?0@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$0?0@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$0?0@@QEAA at XZ"
   IntTemplate<-9>  neg_9;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$0?8@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$0?8@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$0?8@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$0?8@@QEAA at XZ"
   IntTemplate<-10> neg_10;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$0?9@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$0?9@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$0?9@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$0?9@@QEAA at XZ"
   IntTemplate<-11> neg_11;
-// CHECK: call {{.*}} @"\01??0?$IntTemplate@$0?L@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$IntTemplate@$0?L@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$IntTemplate@$0?L@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$IntTemplate@$0?L@@@QEAA at XZ"
   
   UnsignedIntTemplate<4294967295> ffffffff;
-// CHECK: call {{.*}} @"\01??0?$UnsignedIntTemplate@$0PPPPPPPP@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$UnsignedIntTemplate@$0PPPPPPPP@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$UnsignedIntTemplate@$0PPPPPPPP@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$UnsignedIntTemplate@$0PPPPPPPP@@@QEAA at XZ"
 
   LongLongTemplate<-9223372036854775807LL-1LL> int64_min;
-// CHECK: call {{.*}} @"\01??0?$LongLongTemplate@$0?IAAAAAAAAAAAAAAA@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$LongLongTemplate@$0?IAAAAAAAAAAAAAAA@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$LongLongTemplate@$0?IAAAAAAAAAAAAAAA@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$LongLongTemplate@$0?IAAAAAAAAAAAAAAA@@@QEAA at XZ"
   LongLongTemplate<9223372036854775807LL>      int64_max;
-// CHECK: call {{.*}} @"\01??0?$LongLongTemplate@$0HPPPPPPPPPPPPPPP@@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$LongLongTemplate@$0HPPPPPPPPPPPPPPP@@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$LongLongTemplate@$0HPPPPPPPPPPPPPPP@@@QAE at XZ"
+// X64: call {{.*}} @"??0?$LongLongTemplate@$0HPPPPPPPPPPPPPPP@@@QEAA at XZ"
   UnsignedLongLongTemplate<18446744073709551615ULL> uint64_max;
-// CHECK: call {{.*}} @"\01??0?$UnsignedLongLongTemplate@$0?0@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$UnsignedLongLongTemplate@$0?0@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$UnsignedLongLongTemplate@$0?0@@QAE at XZ"
+// X64: call {{.*}} @"??0?$UnsignedLongLongTemplate@$0?0@@QEAA at XZ"
   UnsignedLongLongTemplate<(unsigned long long)-1>  uint64_neg_1;
-// CHECK: call {{.*}} @"\01??0?$UnsignedLongLongTemplate@$0?0@@QAE at XZ"
-// X64: call {{.*}} @"\01??0?$UnsignedLongLongTemplate@$0?0@@QEAA at XZ"
+// CHECK: call {{.*}} @"??0?$UnsignedLongLongTemplate@$0?0@@QAE at XZ"
+// X64: call {{.*}} @"??0?$UnsignedLongLongTemplate@$0?0@@QEAA at XZ"
 }
 
 namespace space {
   template<class T> const T& foo(const T& l) { return l; }
 }
-// CHECK: "\01??$foo at H@space@@YAABHABH at Z"
-// X64: "\01??$foo at H@space@@YAAEBHAEBH at Z"
+// CHECK: "??$foo at H@space@@YAABHABH at Z"
+// X64: "??$foo at H@space@@YAAEBHAEBH at Z"
 
 void use() {
   space::foo(42);
@@ -178,8 +178,8 @@ void FunctionPointerTemplate() {
 
 void spam() {
   FunctionPointerTemplate<spam>();
-// CHECK: "\01??$FunctionPointerTemplate@$1?spam@@YAXXZ@@YAXXZ"
-// X64: "\01??$FunctionPointerTemplate@$1?spam@@YAXXZ@@YAXXZ"
+// CHECK: "??$FunctionPointerTemplate@$1?spam@@YAXXZ@@YAXXZ"
+// X64: "??$FunctionPointerTemplate@$1?spam@@YAXXZ@@YAXXZ"
 }
 
 // Unlike Itanium, there is no character code to indicate an argument pack.
@@ -190,8 +190,8 @@ void variadic_fn_instantiate() {
   variadic_fn_template(0, 1, 3, 4);
   variadic_fn_template(0, 1, 'a', "b");
 }
-// CHECK: "\01??$variadic_fn_template at HHHH@@YAXABH000 at Z"
-// CHECK: "\01??$variadic_fn_template at HHD$$BY01D@@YAXABH0ABDAAY01$$CBD at Z"
+// CHECK: "??$variadic_fn_template at HHHH@@YAXABH000 at Z"
+// CHECK: "??$variadic_fn_template at HHD$$BY01D@@YAXABH0ABDAAY01$$CBD at Z"
 
 template <typename ...Ts>
 struct VariadicClass {
@@ -202,8 +202,8 @@ void variadic_class_instantiate() {
   VariadicClass<int, char, bool> a;
   VariadicClass<bool, char, int> b;
 }
-// CHECK: call {{.*}} @"\01??0?$VariadicClass at HD_N@@QAE at XZ"
-// CHECK: call {{.*}} @"\01??0?$VariadicClass at _NDH@@QAE at XZ"
+// CHECK: call {{.*}} @"??0?$VariadicClass at HD_N@@QAE at XZ"
+// CHECK: call {{.*}} @"??0?$VariadicClass at _NDH@@QAE at XZ"
 
 template <typename T>
 struct Second {};
@@ -224,7 +224,7 @@ template <template <class> class T>
 struct Thing<T, true> { };
 
 void template_template_fun(Type<Thing<Second, true>, Second>) { }
-// CHECK: "\01?template_template_fun@@YAXU?$Type at U?$Thing at USecond@@$00@@USecond@@@@@Z"
+// CHECK: "?template_template_fun@@YAXU?$Type at U?$Thing at USecond@@$00@@USecond@@@@@Z"
 
 template <typename T>
 void template_template_specialization();
@@ -232,12 +232,12 @@ void template_template_specialization();
 template <>
 void template_template_specialization<void (Type<Thing<Second, true>, Second>)>() {
 }
-// CHECK: "\01??$template_template_specialization@$$A6AXU?$Type at U?$Thing at USecond@@$00@@USecond@@@@@Z@@YAXXZ"
+// CHECK: "??$template_template_specialization@$$A6AXU?$Type at U?$Thing at USecond@@$00@@USecond@@@@@Z@@YAXXZ"
 
 // PR16788
 template <decltype(nullptr)> struct S1 {};
 void f(S1<nullptr>) {}
-// CHECK: "\01?f@@YAXU?$S1@$0A@@@@Z"
+// CHECK: "?f@@YAXU?$S1@$0A@@@@Z"
 
 struct record {
   int first;
@@ -248,7 +248,7 @@ struct type1 {
 };
 extern const record inst;
 void recref(type1<inst>) {}
-// CHECK: "\01?recref@@YAXU?$type1@$E?inst@@3Urecord@@B@@@Z"
+// CHECK: "?recref@@YAXU?$type1@$E?inst@@3Urecord@@B@@@Z"
 
 struct _GUID {};
 struct __declspec(uuid("{12345678-1234-1234-1234-1234567890aB}")) uuid;
@@ -260,18 +260,18 @@ template <typename T, const _GUID &G = _
 struct UUIDType2 {};
 
 void fun(UUIDType1<uuid> a) {}
-// CHECK: "\01?fun@@YAXU?$UUIDType1 at Uuuid@@$1?_GUID_12345678_1234_1234_1234_1234567890ab@@3U__s_GUID@@B@@@Z"
+// CHECK: "?fun@@YAXU?$UUIDType1 at Uuuid@@$1?_GUID_12345678_1234_1234_1234_1234567890ab@@3U__s_GUID@@B@@@Z"
 void fun(UUIDType2<uuid> b) {}
-// CHECK: "\01?fun@@YAXU?$UUIDType2 at Uuuid@@$E?_GUID_12345678_1234_1234_1234_1234567890ab@@3U__s_GUID@@B@@@Z"
+// CHECK: "?fun@@YAXU?$UUIDType2 at Uuuid@@$E?_GUID_12345678_1234_1234_1234_1234567890ab@@3U__s_GUID@@B@@@Z"
 
 template <typename T> struct TypeWithFriendDefinition {
   friend void FunctionDefinedWithInjectedName(TypeWithFriendDefinition<T>) {}
 };
-// CHECK: call {{.*}} @"\01?FunctionDefinedWithInjectedName@@YAXU?$TypeWithFriendDefinition at H@@@Z"
+// CHECK: call {{.*}} @"?FunctionDefinedWithInjectedName@@YAXU?$TypeWithFriendDefinition at H@@@Z"
 void CallFunctionDefinedWithInjectedName() {
   FunctionDefinedWithInjectedName(TypeWithFriendDefinition<int>());
 }
-// CHECK: @"\01?FunctionDefinedWithInjectedName@@YAXU?$TypeWithFriendDefinition at H@@@Z"
+// CHECK: @"?FunctionDefinedWithInjectedName@@YAXU?$TypeWithFriendDefinition at H@@@Z"
 
 // We need to be able to feed GUIDs through a couple rounds of template
 // substitution.
@@ -284,5 +284,5 @@ struct UUIDType4 : UUIDType3<G> {
   void bar() { UUIDType4::foo(); }
 };
 template struct UUIDType4<&__uuidof(uuid)>;
-// CHECK: "\01?bar@?$UUIDType4@$1?_GUID_12345678_1234_1234_1234_1234567890ab@@3U__s_GUID@@B@@QAEXXZ"
-// CHECK: "\01?foo@?$UUIDType3@$1?_GUID_12345678_1234_1234_1234_1234567890ab@@3U__s_GUID@@B@@QAEXXZ"
+// CHECK: "?bar@?$UUIDType4@$1?_GUID_12345678_1234_1234_1234_1234567890ab@@3U__s_GUID@@B@@QAEXXZ"
+// CHECK: "?foo@?$UUIDType3@$1?_GUID_12345678_1234_1234_1234_1234567890ab@@3U__s_GUID@@B@@QAEXXZ"

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms-vector-types.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms-vector-types.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms-vector-types.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms-vector-types.cpp Fri Mar 16 13:36:49 2018
@@ -5,33 +5,33 @@
 #include <immintrin.h>
 
 void foo64(__m64) {}
-// CHECK: define dso_local void @"\01?foo64@@YAXT__m64@@@Z"
+// CHECK: define dso_local void @"?foo64@@YAXT__m64@@@Z"
 
 void foo128(__m128) {}
-// CHECK: define dso_local void @"\01?foo128@@YAXT__m128@@@Z"
+// CHECK: define dso_local void @"?foo128@@YAXT__m128@@@Z"
 
 void foo128d(__m128d) {}
-// CHECK: define dso_local void @"\01?foo128d@@YAXU__m128d@@@Z"
+// CHECK: define dso_local void @"?foo128d@@YAXU__m128d@@@Z"
 
 void foo128i(__m128i) {}
-// CHECK: define dso_local void @"\01?foo128i@@YAXT__m128i@@@Z"
+// CHECK: define dso_local void @"?foo128i@@YAXT__m128i@@@Z"
 
 void foo256(__m256) {}
-// CHECK: define dso_local void @"\01?foo256@@YAXT__m256@@@Z"
+// CHECK: define dso_local void @"?foo256@@YAXT__m256@@@Z"
 
 void foo256d(__m256d) {}
-// CHECK: define dso_local void @"\01?foo256d@@YAXU__m256d@@@Z"
+// CHECK: define dso_local void @"?foo256d@@YAXU__m256d@@@Z"
 
 void foo256i(__m256i) {}
-// CHECK: define dso_local void @"\01?foo256i@@YAXT__m256i@@@Z"
+// CHECK: define dso_local void @"?foo256i@@YAXT__m256i@@@Z"
 
 // We have a custom mangling for vector types not standardized by Intel.
 void foov8hi(__v8hi) {}
-// CHECK: define dso_local void @"\01?foov8hi@@YAXT?$__vector at F$07 at __clang@@@Z"
+// CHECK: define dso_local void @"?foov8hi@@YAXT?$__vector at F$07 at __clang@@@Z"
 
 typedef __attribute__((ext_vector_type(4))) int vi4b;
 void foovi4b(vi4b) {}
-// CHECK: define dso_local void @"\01?foovi4b@@YAXT?$__vector at H$03 at __clang@@@Z"
+// CHECK: define dso_local void @"?foovi4b@@YAXT?$__vector at H$03 at __clang@@@Z"
 
 // Clang does not support vectors of complex types, so we can't test the
 // mangling of them.

Modified: cfe/trunk/test/CodeGenCXX/mangle-ms.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-ms.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-ms.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-ms.cpp Fri Mar 16 13:36:49 2018
@@ -2,7 +2,7 @@
 // RUN: %clang_cc1 -fblocks -emit-llvm %s -o - -triple=x86_64-pc-win32 -std=c++98| FileCheck -check-prefix X64 %s
 
 int a;
-// CHECK-DAG: @"\01?a@@3HA"
+// CHECK-DAG: @"?a@@3HA"
 
 extern "C++" {
 static int __attribute__((used)) ignore_transparent_context;
@@ -11,11 +11,11 @@ static int __attribute__((used)) ignore_
 
 namespace N {
   int b;
-// CHECK-DAG: @"\01?b at N@@3HA"
+// CHECK-DAG: @"?b at N@@3HA"
 
   namespace {
     int anonymous;
-// CHECK-DAG: @"\01?anonymous@?A at N@@3HA"
+// CHECK-DAG: @"?anonymous@?A at N@@3HA"
   }
 }
 
@@ -23,38 +23,38 @@ static int c;
 // CHECK-DAG: @c
 
 int _c(void) {return N::anonymous + c;}
-// CHECK-DAG: @"\01?_c@@YAHXZ"
-// X64-DAG:   @"\01?_c@@YAHXZ"
+// CHECK-DAG: @"?_c@@YAHXZ"
+// X64-DAG:   @"?_c@@YAHXZ"
 
 const int &NeedsReferenceTemporary = 2;
-// CHECK-DAG: @"\01?NeedsReferenceTemporary@@3ABHB" = dso_local constant i32* @"\01?$RT1 at NeedsReferenceTemporary@@3ABHB"
-// X64-DAG: @"\01?NeedsReferenceTemporary@@3AEBHEB" = dso_local constant i32* @"\01?$RT1 at NeedsReferenceTemporary@@3AEBHEB"
+// CHECK-DAG: @"?NeedsReferenceTemporary@@3ABHB" = dso_local constant i32* @"?$RT1 at NeedsReferenceTemporary@@3ABHB"
+// X64-DAG: @"?NeedsReferenceTemporary@@3AEBHEB" = dso_local constant i32* @"?$RT1 at NeedsReferenceTemporary@@3AEBHEB"
 
 class foo {
   static const short d;
-// CHECK-DAG: @"\01?d at foo@@0FB"
+// CHECK-DAG: @"?d at foo@@0FB"
 protected:
   static volatile long e;
-// CHECK-DAG: @"\01?e at foo@@1JC"
+// CHECK-DAG: @"?e at foo@@1JC"
 public:
   static const volatile char f;
-// CHECK-DAG: @"\01?f at foo@@2DD"
+// CHECK-DAG: @"?f at foo@@2DD"
   int operator+(int a);
   foo(){}
-// CHECK-DAG: @"\01??0foo@@QAE at XZ"
-// X64-DAG:   @"\01??0foo@@QEAA at XZ"
+// CHECK-DAG: @"??0foo@@QAE at XZ"
+// X64-DAG:   @"??0foo@@QEAA at XZ"
 
   ~foo(){}
-// CHECK-DAG: @"\01??1foo@@QAE at XZ"
-// X64-DAG:   @"\01??1foo@@QEAA at XZ
+// CHECK-DAG: @"??1foo@@QAE at XZ"
+// X64-DAG:   @"??1foo@@QEAA at XZ
 
   foo(int i){}
-// CHECK-DAG: @"\01??0foo@@QAE at H@Z"
-// X64-DAG:   @"\01??0foo@@QEAA at H@Z"
+// CHECK-DAG: @"??0foo@@QAE at H@Z"
+// X64-DAG:   @"??0foo@@QEAA at H@Z"
 
   foo(char *q){}
-// CHECK-DAG: @"\01??0foo@@QAE at PAD@Z"
-// X64-DAG:   @"\01??0foo@@QEAA at PEAD@Z"
+// CHECK-DAG: @"??0foo@@QAE at PAD@Z"
+// X64-DAG:   @"??0foo@@QEAA at PEAD@Z"
 
   static foo* static_method() { return 0; }
 
@@ -79,16 +79,16 @@ enum quux {
 };
 
 foo bar() { return foo(); }
-// CHECK-DAG: @"\01?bar@@YA?AVfoo@@XZ"
-// X64-DAG:   @"\01?bar@@YA?AVfoo@@XZ"
+// CHECK-DAG: @"?bar@@YA?AVfoo@@XZ"
+// X64-DAG:   @"?bar@@YA?AVfoo@@XZ"
 
 int foo::operator+(int a) {
-// CHECK-DAG: @"\01??Hfoo@@QAEHH at Z"
-// X64-DAG:   @"\01??Hfoo@@QEAAHH at Z"
+// CHECK-DAG: @"??Hfoo@@QAEHH at Z"
+// X64-DAG:   @"??Hfoo@@QEAAHH at Z"
 
   foo::static_method();
-// CHECK-DAG: @"\01?static_method at foo@@SAPAV1 at XZ"
-// X64-DAG:   @"\01?static_method at foo@@SAPEAV1 at XZ"
+// CHECK-DAG: @"?static_method at foo@@SAPAV1 at XZ"
+// X64-DAG:   @"?static_method at foo@@SAPEAV1 at XZ"
   bar();
   return a;
 }
@@ -98,33 +98,33 @@ volatile long foo::e;
 const volatile char foo::f = 'C';
 
 int bar::g;
-// CHECK-DAG: @"\01?g at bar@@2HA"
+// CHECK-DAG: @"?g at bar@@2HA"
 
 extern int * const h1 = &a;
-// CHECK-DAG: @"\01?h1@@3QAHA"
+// CHECK-DAG: @"?h1@@3QAHA"
 extern const int * const h2 = &a;
-// CHECK-DAG: @"\01?h2@@3QBHB"
+// CHECK-DAG: @"?h2@@3QBHB"
 extern int * const __restrict h3 = &a;
-// CHECK-DAG: @"\01?h3@@3QIAHIA"
-// X64-DAG: @"\01?h3@@3QEIAHEIA"
+// CHECK-DAG: @"?h3@@3QIAHIA"
+// X64-DAG: @"?h3@@3QEIAHEIA"
 
 int i[10][20];
-// CHECK-DAG: @"\01?i@@3PAY0BE at HA"
+// CHECK-DAG: @"?i@@3PAY0BE at HA"
 
 typedef int (*FunT)(int, int);
 FunT FunArr[10][20];
-// CHECK-DAG: @"\01?FunArr@@3PAY0BE at P6AHHH@ZA"
-// X64-DAG: @"\01?FunArr@@3PAY0BE at P6AHHH@ZA"
+// CHECK-DAG: @"?FunArr@@3PAY0BE at P6AHHH@ZA"
+// X64-DAG: @"?FunArr@@3PAY0BE at P6AHHH@ZA"
 
 int (__stdcall *j)(signed char, unsigned char);
-// CHECK-DAG: @"\01?j@@3P6GHCE at ZA"
+// CHECK-DAG: @"?j@@3P6GHCE at ZA"
 
 const volatile char foo2::*k;
-// CHECK-DAG: @"\01?k@@3PTfoo@@DT1@"
-// X64-DAG:   @"\01?k@@3PETfoo@@DET1@"
+// CHECK-DAG: @"?k@@3PTfoo@@DT1@"
+// X64-DAG:   @"?k@@3PETfoo@@DET1@"
 
 int (foo2::*l)(int);
-// CHECK-DAG: @"\01?l@@3P8foo@@AEHH at ZQ1@"
+// CHECK-DAG: @"?l@@3P8foo@@AEHH at ZQ1@"
 
 // Ensure typedef CV qualifiers are mangled correctly
 typedef const int cInt;
@@ -135,141 +135,141 @@ extern cInt g_cInt = 1;
 vInt g_vInt = 2;
 cvInt g_cvInt = 3;
 
-// CHECK-DAG: @"\01?g_cInt@@3HB"
-// CHECK-DAG: @"\01?g_vInt@@3HC"
-// CHECK-DAG: @"\01?g_cvInt@@3HD"
+// CHECK-DAG: @"?g_cInt@@3HB"
+// CHECK-DAG: @"?g_vInt@@3HC"
+// CHECK-DAG: @"?g_cvInt@@3HD"
 
 // Static functions are mangled, too.
 // Also make sure calling conventions, arglists, and throw specs work.
 static void __stdcall alpha(float a, double b) throw() {}
 bool __fastcall beta(long long a, wchar_t b) throw(signed char, unsigned char) {
-// CHECK-DAG: @"\01?beta@@YI_N_J_W at Z"
-// X64-DAG:   @"\01?beta@@YA_N_J_W at Z"
+// CHECK-DAG: @"?beta@@YI_N_J_W at Z"
+// X64-DAG:   @"?beta@@YA_N_J_W at Z"
   alpha(0.f, 0.0);
   return false;
 }
 
-// CHECK-DAG: @"\01?alpha@@YGXMN at Z"
-// X64-DAG:   @"\01?alpha@@YAXMN at Z"
+// CHECK-DAG: @"?alpha@@YGXMN at Z"
+// X64-DAG:   @"?alpha@@YAXMN at Z"
 
 // Make sure tag-type mangling works.
 void gamma(class foo, struct bar, union baz, enum quux) {}
-// CHECK-DAG: @"\01?gamma@@YAXVfoo@@Ubar@@Tbaz@@W4quux@@@Z"
-// X64-DAG:   @"\01?gamma@@YAXVfoo@@Ubar@@Tbaz@@W4quux@@@Z"
+// CHECK-DAG: @"?gamma@@YAXVfoo@@Ubar@@Tbaz@@W4quux@@@Z"
+// X64-DAG:   @"?gamma@@YAXVfoo@@Ubar@@Tbaz@@W4quux@@@Z"
 
 // Make sure pointer/reference-type mangling works.
 void delta(int * const a, const long &) {}
-// CHECK-DAG: @"\01?delta@@YAXQAHABJ at Z"
-// X64-DAG:   @"\01?delta@@YAXQEAHAEBJ at Z"
+// CHECK-DAG: @"?delta@@YAXQAHABJ at Z"
+// X64-DAG:   @"?delta@@YAXQEAHAEBJ at Z"
 
 // Array mangling.
 void epsilon(int a[][10][20]) {}
-// CHECK-DAG: @"\01?epsilon@@YAXQAY19BE at H@Z"
-// X64-DAG:   @"\01?epsilon@@YAXQEAY19BE at H@Z"
+// CHECK-DAG: @"?epsilon@@YAXQAY19BE at H@Z"
+// X64-DAG:   @"?epsilon@@YAXQEAY19BE at H@Z"
 
 void zeta(int (*)(int, int)) {}
-// CHECK-DAG: @"\01?zeta@@YAXP6AHHH at Z@Z"
-// X64-DAG:   @"\01?zeta@@YAXP6AHHH at Z@Z"
+// CHECK-DAG: @"?zeta@@YAXP6AHHH at Z@Z"
+// X64-DAG:   @"?zeta@@YAXP6AHHH at Z@Z"
 
 // Blocks mangling (Clang extension). A block should be mangled slightly
 // differently from a similar function pointer.
 void eta(int (^)(int, int)) {}
-// CHECK-DAG: @"\01?eta@@YAXP_EAHHH at Z@Z"
+// CHECK-DAG: @"?eta@@YAXP_EAHHH at Z@Z"
 
 typedef int theta_arg(int,int);
 void theta(theta_arg^ block) {}
-// CHECK-DAG: @"\01?theta@@YAXP_EAHHH at Z@Z"
+// CHECK-DAG: @"?theta@@YAXP_EAHHH at Z@Z"
 
 void operator_new_delete() {
   char *ptr = new char;
-// CHECK-DAG: @"\01??2 at YAPAXI@Z"
+// CHECK-DAG: @"??2 at YAPAXI@Z"
 
   delete ptr;
-// CHECK-DAG: @"\01??3 at YAXPAX@Z"
+// CHECK-DAG: @"??3 at YAXPAX@Z"
 
   char *array = new char[42];
-// CHECK-DAG: @"\01??_U at YAPAXI@Z"
+// CHECK-DAG: @"??_U at YAPAXI@Z"
 
   delete [] array;
-// CHECK-DAG: @"\01??_V at YAXPAX@Z"
+// CHECK-DAG: @"??_V at YAXPAX@Z"
 }
 
 // PR13022
 void (redundant_parens)();
 void redundant_parens_use() { redundant_parens(); }
-// CHECK-DAG: @"\01?redundant_parens@@YAXXZ"
-// X64-DAG:   @"\01?redundant_parens@@YAXXZ"
+// CHECK-DAG: @"?redundant_parens@@YAXXZ"
+// X64-DAG:   @"?redundant_parens@@YAXXZ"
 
 // PR13047
 typedef double RGB[3];
 RGB color1;
-// CHECK-DAG: @"\01?color1@@3PANA"
+// CHECK-DAG: @"?color1@@3PANA"
 extern const RGB color2 = {};
-// CHECK-DAG: @"\01?color2@@3QBNB"
+// CHECK-DAG: @"?color2@@3QBNB"
 extern RGB const color3[5] = {};
-// CHECK-DAG: @"\01?color3@@3QAY02$$CBNA"
+// CHECK-DAG: @"?color3@@3QAY02$$CBNA"
 extern RGB const ((color4)[5]) = {};
-// CHECK-DAG: @"\01?color4@@3QAY02$$CBNA"
+// CHECK-DAG: @"?color4@@3QAY02$$CBNA"
 
 struct B;
 volatile int B::* volatile memptr1;
-// X64-DAG: @"\01?memptr1@@3RESB@@HES1@"
+// X64-DAG: @"?memptr1@@3RESB@@HES1@"
 volatile int B::* memptr2;
-// X64-DAG: @"\01?memptr2@@3PESB@@HES1@"
+// X64-DAG: @"?memptr2@@3PESB@@HES1@"
 int B::* volatile memptr3;
-// X64-DAG: @"\01?memptr3@@3REQB@@HEQ1@"
+// X64-DAG: @"?memptr3@@3REQB@@HEQ1@"
 typedef int (*fun)();
 volatile fun B::* volatile funmemptr1;
-// X64-DAG: @"\01?funmemptr1@@3RESB@@R6AHXZES1@"
+// X64-DAG: @"?funmemptr1@@3RESB@@R6AHXZES1@"
 volatile fun B::* funmemptr2;
-// X64-DAG: @"\01?funmemptr2@@3PESB@@R6AHXZES1@"
+// X64-DAG: @"?funmemptr2@@3PESB@@R6AHXZES1@"
 fun B::* volatile funmemptr3;
-// X64-DAG: @"\01?funmemptr3@@3REQB@@P6AHXZEQ1@"
+// X64-DAG: @"?funmemptr3@@3REQB@@P6AHXZEQ1@"
 void (B::* volatile memptrtofun1)();
-// X64-DAG: @"\01?memptrtofun1@@3R8B@@EAAXXZEQ1@"
+// X64-DAG: @"?memptrtofun1@@3R8B@@EAAXXZEQ1@"
 const void (B::* memptrtofun2)();
-// X64-DAG: @"\01?memptrtofun2@@3P8B@@EAAXXZEQ1@"
+// X64-DAG: @"?memptrtofun2@@3P8B@@EAAXXZEQ1@"
 volatile void (B::* memptrtofun3)();
-// X64-DAG: @"\01?memptrtofun3@@3P8B@@EAAXXZEQ1@"
+// X64-DAG: @"?memptrtofun3@@3P8B@@EAAXXZEQ1@"
 int (B::* volatile memptrtofun4)();
-// X64-DAG: @"\01?memptrtofun4@@3R8B@@EAAHXZEQ1@"
+// X64-DAG: @"?memptrtofun4@@3R8B@@EAAHXZEQ1@"
 volatile int (B::* memptrtofun5)();
-// X64-DAG: @"\01?memptrtofun5@@3P8B@@EAA?CHXZEQ1@"
+// X64-DAG: @"?memptrtofun5@@3P8B@@EAA?CHXZEQ1@"
 const int (B::* memptrtofun6)();
-// X64-DAG: @"\01?memptrtofun6@@3P8B@@EAA?BHXZEQ1@"
+// X64-DAG: @"?memptrtofun6@@3P8B@@EAA?BHXZEQ1@"
 fun (B::* volatile memptrtofun7)();
-// X64-DAG: @"\01?memptrtofun7@@3R8B@@EAAP6AHXZXZEQ1@"
+// X64-DAG: @"?memptrtofun7@@3R8B@@EAAP6AHXZXZEQ1@"
 volatile fun (B::* memptrtofun8)();
-// X64-DAG: @"\01?memptrtofun8@@3P8B@@EAAR6AHXZXZEQ1@"
+// X64-DAG: @"?memptrtofun8@@3P8B@@EAAR6AHXZXZEQ1@"
 const fun (B::* memptrtofun9)();
-// X64-DAG: @"\01?memptrtofun9@@3P8B@@EAAQ6AHXZXZEQ1@"
+// X64-DAG: @"?memptrtofun9@@3P8B@@EAAQ6AHXZXZEQ1@"
 
 // PR12603
 enum E {};
-// CHECK-DAG: "\01?fooE@@YA?AW4E@@XZ"
-// X64-DAG:   "\01?fooE@@YA?AW4E@@XZ"
+// CHECK-DAG: "?fooE@@YA?AW4E@@XZ"
+// X64-DAG:   "?fooE@@YA?AW4E@@XZ"
 E fooE() { return E(); }
 
 class X {};
-// CHECK-DAG: "\01?fooX@@YA?AVX@@XZ"
-// X64-DAG:   "\01?fooX@@YA?AVX@@XZ"
+// CHECK-DAG: "?fooX@@YA?AVX@@XZ"
+// X64-DAG:   "?fooX@@YA?AVX@@XZ"
 X fooX() { return X(); }
 
 namespace PR13182 {
   extern char s0[];
-  // CHECK-DAG: @"\01?s0 at PR13182@@3PADA"
+  // CHECK-DAG: @"?s0 at PR13182@@3PADA"
   extern char s1[42];
-  // CHECK-DAG: @"\01?s1 at PR13182@@3PADA"
+  // CHECK-DAG: @"?s1 at PR13182@@3PADA"
   extern const char s2[];
-  // CHECK-DAG: @"\01?s2 at PR13182@@3QBDB"
+  // CHECK-DAG: @"?s2 at PR13182@@3QBDB"
   extern const char s3[42];
-  // CHECK-DAG: @"\01?s3 at PR13182@@3QBDB"
+  // CHECK-DAG: @"?s3 at PR13182@@3QBDB"
   extern volatile char s4[];
-  // CHECK-DAG: @"\01?s4 at PR13182@@3RCDC"
+  // CHECK-DAG: @"?s4 at PR13182@@3RCDC"
   extern const volatile char s5[];
-  // CHECK-DAG: @"\01?s5 at PR13182@@3SDDD"
+  // CHECK-DAG: @"?s5 at PR13182@@3SDDD"
   extern const char* const* s6;
-  // CHECK-DAG: @"\01?s6 at PR13182@@3PBQBDB"
+  // CHECK-DAG: @"?s6 at PR13182@@3PBQBDB"
 
   char foo() {
     return s0[0] + s1[0] + s2[0] + s3[0] + s4[0] + s5[0] + s6[0][0];
@@ -278,8 +278,8 @@ namespace PR13182 {
 
 extern "C" inline void extern_c_func() {
   static int local;
-// CHECK-DAG: @"\01?local@?1??extern_c_func@@9 at 4HA"
-// X64-DAG:   @"\01?local@?1??extern_c_func@@9 at 4HA"
+// CHECK-DAG: @"?local@?1??extern_c_func@@9 at 4HA"
+// X64-DAG:   @"?local@?1??extern_c_func@@9 at 4HA"
 }
 
 void call_extern_c_func() {
@@ -310,7 +310,7 @@ inline int inline_function_with_local_ty
   static struct {
     int a_field;
   } static_variable_in_inline_function = { 20 }, second_static = { 40 };
-  // CHECK: @"\01?static_variable_in_inline_function@?1??inline_function_with_local_type@@YAHXZ at 4U<unnamed-type-static_variable_in_inline_function>@?1??1 at YAHXZ@A"
+  // CHECK: @"?static_variable_in_inline_function@?1??inline_function_with_local_type@@YAHXZ at 4U<unnamed-type-static_variable_in_inline_function>@?1??1 at YAHXZ@A"
 
   return static_variable_in_inline_function.a_field + second_static.a_field;
 }
@@ -325,7 +325,7 @@ inline int templated_inline_function_wit
     int a_field;
   } static_variable_in_templated_inline_function = { 20 },
     second_static = { 40 };
-  // CHECK: @"\01?static_variable_in_templated_inline_function@?1???$templated_inline_function_with_local_type at H@@YAHXZ at 4U<unnamed-type-static_variable_in_templated_inline_function>@?1???$templated_inline_function_with_local_type at H@@YAHXZ at A"
+  // CHECK: @"?static_variable_in_templated_inline_function@?1???$templated_inline_function_with_local_type at H@@YAHXZ at 4U<unnamed-type-static_variable_in_templated_inline_function>@?1???$templated_inline_function_with_local_type at H@@YAHXZ at A"
 
   return static_variable_in_templated_inline_function.a_field +
          second_static.a_field;
@@ -388,16 +388,16 @@ void TypedefNewDelete::operator delete[]
 // CHECK-DAG: ??_VTypedefNewDelete@@SAXPAX at Z
 
 void __vectorcall vector_func() { }
-// CHECK-DAG: @"\01?vector_func@@YQXXZ"
+// CHECK-DAG: @"?vector_func@@YQXXZ"
 
 template <void (*)(void)>
 void fn_tmpl() {}
 
 template void fn_tmpl<extern_c_func>();
-// CHECK-DAG: @"\01??$fn_tmpl@$1?extern_c_func@@YAXXZ@@YAXXZ"
+// CHECK-DAG: @"??$fn_tmpl@$1?extern_c_func@@YAXXZ@@YAXXZ"
 
 extern "C" void __attribute__((overloadable)) overloaded_fn() {}
-// CHECK-DAG: @"\01?overloaded_fn@@$$J0YAXXZ"
+// CHECK-DAG: @"?overloaded_fn@@$$J0YAXXZ"
 
 extern "C" void overloaded_fn2() {}
 // CHECK-DAG: @overloaded_fn2
@@ -420,19 +420,19 @@ void f(S::T3) {}
 void f(S::T4) {}
 void f(S::T5) {}
 void f(S::T6) {}
-// CHECK-DAG: @"\01?f at UnnamedType@@YAXQAPAU<unnamed-type-T1>@S at 1@@Z"
-// CHECK-DAG: @"\01?f at UnnamedType@@YAXUT2 at S@1@@Z"
-// CHECK-DAG: @"\01?f at UnnamedType@@YAXPAUT4 at S@1@@Z"
-// CHECK-DAG: @"\01?f at UnnamedType@@YAXUT4 at S@1@@Z"
-// CHECK-DAG: @"\01?f at UnnamedType@@YAXUT5 at S@1@@Z"
-// CHECK-DAG: @"\01?f at UnnamedType@@YAXPAU<unnamed-type-T6>@S at 1@@Z"
-
-// X64-DAG: @"\01?f at UnnamedType@@YAXQEAPEAU<unnamed-type-T1>@S at 1@@Z"
-// X64-DAG: @"\01?f at UnnamedType@@YAXUT2 at S@1@@Z"
-// X64-DAG: @"\01?f at UnnamedType@@YAXPEAUT4 at S@1@@Z"(%"struct.UnnamedType::S::T4"
-// X64-DAG: @"\01?f at UnnamedType@@YAXUT4 at S@1@@Z"
-// X64-DAG: @"\01?f at UnnamedType@@YAXUT5 at S@1@@Z"
-// X64-DAG: @"\01?f at UnnamedType@@YAXPEAU<unnamed-type-T6>@S at 1@@Z"
+// CHECK-DAG: @"?f at UnnamedType@@YAXQAPAU<unnamed-type-T1>@S at 1@@Z"
+// CHECK-DAG: @"?f at UnnamedType@@YAXUT2 at S@1@@Z"
+// CHECK-DAG: @"?f at UnnamedType@@YAXPAUT4 at S@1@@Z"
+// CHECK-DAG: @"?f at UnnamedType@@YAXUT4 at S@1@@Z"
+// CHECK-DAG: @"?f at UnnamedType@@YAXUT5 at S@1@@Z"
+// CHECK-DAG: @"?f at UnnamedType@@YAXPAU<unnamed-type-T6>@S at 1@@Z"
+
+// X64-DAG: @"?f at UnnamedType@@YAXQEAPEAU<unnamed-type-T1>@S at 1@@Z"
+// X64-DAG: @"?f at UnnamedType@@YAXUT2 at S@1@@Z"
+// X64-DAG: @"?f at UnnamedType@@YAXPEAUT4 at S@1@@Z"(%"struct.UnnamedType::S::T4"
+// X64-DAG: @"?f at UnnamedType@@YAXUT4 at S@1@@Z"
+// X64-DAG: @"?f at UnnamedType@@YAXUT5 at S@1@@Z"
+// X64-DAG: @"?f at UnnamedType@@YAXPEAU<unnamed-type-T6>@S at 1@@Z"
 }
 
 namespace PassObjectSize {
@@ -448,22 +448,22 @@ namespace PassObjectSize {
 //   void foo(void *const, __clang::__pass_object_size0);
 // where __clang is a top-level namespace.
 
-// CHECK-DAG: define dso_local i32 @"\01?foo at PassObjectSize@@YAHQAHW4__pass_object_size0 at __clang@@@Z"
+// CHECK-DAG: define dso_local i32 @"?foo at PassObjectSize@@YAHQAHW4__pass_object_size0 at __clang@@@Z"
 int foo(int *const i __attribute__((pass_object_size(0)))) { return 0; }
-// CHECK-DAG: define dso_local i32 @"\01?bar at PassObjectSize@@YAHQAHW4__pass_object_size1 at __clang@@@Z"
+// CHECK-DAG: define dso_local i32 @"?bar at PassObjectSize@@YAHQAHW4__pass_object_size1 at __clang@@@Z"
 int bar(int *const i __attribute__((pass_object_size(1)))) { return 0; }
-// CHECK-DAG: define dso_local i32 @"\01?qux at PassObjectSize@@YAHQAHW4__pass_object_size1 at __clang@@0W4__pass_object_size0 at 3@@Z"
+// CHECK-DAG: define dso_local i32 @"?qux at PassObjectSize@@YAHQAHW4__pass_object_size1 at __clang@@0W4__pass_object_size0 at 3@@Z"
 int qux(int *const i __attribute__((pass_object_size(1))), int *const j __attribute__((pass_object_size(0)))) { return 0; }
-// CHECK-DAG: define dso_local i32 @"\01?zot at PassObjectSize@@YAHQAHW4__pass_object_size1 at __clang@@01 at Z"
+// CHECK-DAG: define dso_local i32 @"?zot at PassObjectSize@@YAHQAHW4__pass_object_size1 at __clang@@01 at Z"
 int zot(int *const i __attribute__((pass_object_size(1))), int *const j __attribute__((pass_object_size(1)))) { return 0; }
 }
 
 namespace Atomic {
-// CHECK-DAG: define dso_local void @"\01?f at Atomic@@YAXU?$_Atomic at H@__clang@@@Z"(
+// CHECK-DAG: define dso_local void @"?f at Atomic@@YAXU?$_Atomic at H@__clang@@@Z"(
 void f(_Atomic(int)) {}
 }
 namespace Complex {
-// CHECK-DAG: define dso_local void @"\01?f at Complex@@YAXU?$_Complex at H@__clang@@@Z"(
+// CHECK-DAG: define dso_local void @"?f at Complex@@YAXU?$_Complex at H@__clang@@@Z"(
 void f(_Complex int) {}
 }
 
@@ -489,5 +489,5 @@ void runOnFunction() {
   L<H<int *> > b;
   m_fn3<int>();
 }
-// CHECK-DAG: call {{.*}} @"\01??0?$L at V?$H at PAH@PR26029@@@PR26029@@QAE at XZ"
+// CHECK-DAG: call {{.*}} @"??0?$L at V?$H at PAH@PR26029@@@PR26029@@QAE at XZ"
 }

Modified: cfe/trunk/test/CodeGenCXX/mangle-windows.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-windows.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-windows.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-windows.cpp Fri Mar 16 13:36:49 2018
@@ -5,11 +5,11 @@
 // RUN:     FileCheck --check-prefix=ITANIUM %s
 
 void __stdcall f1(void) {}
-// WIN: define dso_local x86_stdcallcc void @"\01?f1@@YGXXZ"
+// WIN: define dso_local x86_stdcallcc void @"?f1@@YGXXZ"
 // ITANIUM: define dso_local x86_stdcallcc void @"\01__Z2f1v at 0"
 
 void __fastcall f2(void) {}
-// WIN: define dso_local x86_fastcallcc void @"\01?f2@@YIXXZ"
+// WIN: define dso_local x86_fastcallcc void @"?f2@@YIXXZ"
 // ITANIUM: define dso_local x86_fastcallcc void @"\01 at _Z2f2v@0"
 
 extern "C" void __stdcall f3(void) {}
@@ -26,11 +26,11 @@ struct Foo {
 };
 
 void Foo::foo() {}
-// WIN: define dso_local x86_stdcallcc void @"\01?foo at Foo@@QAGXXZ"
+// WIN: define dso_local x86_stdcallcc void @"?foo at Foo@@QAGXXZ"
 // ITANIUM: define dso_local x86_stdcallcc void @"\01__ZN3Foo3fooEv at 4"
 
 void Foo::bar() {}
-// WIN: define dso_local x86_stdcallcc void @"\01?bar at Foo@@SGXXZ"
+// WIN: define dso_local x86_stdcallcc void @"?bar at Foo@@SGXXZ"
 // ITANIUM: define dso_local x86_stdcallcc void @"\01__ZN3Foo3barEv at 0"
 
 // Mostly a test that we don't crash and that the names start with a \01.
@@ -38,5 +38,5 @@ void Foo::bar() {}
 // cl produces _++ at 4
 extern "C" void __stdcall operator++(Foo &x) {
 }
-// WIN: define dso_local x86_stdcallcc void @"\01??E at YGXAAUFoo@@@Z"
+// WIN: define dso_local x86_stdcallcc void @"??E at YGXAAUFoo@@@Z"
 // ITANIUM: define dso_local x86_stdcallcc void @"\01__ZppR3Foo at 4"

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-arg-order.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-arg-order.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-arg-order.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-arg-order.cpp Fri Mar 16 13:36:49 2018
@@ -13,21 +13,21 @@ void foo(A a, A b, A c) {
 
 // Order of destruction should be left to right.
 //
-// X86-LABEL: define dso_local void @"\01?foo@@YAXUA@@00 at Z"
+// X86-LABEL: define dso_local void @"?foo@@YAXUA@@00 at Z"
 // X86:          ([[argmem_ty:<{ %struct.A, %struct.A, %struct.A }>]]* inalloca)
 // X86: %[[a:[^ ]*]] = getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %0, i32 0, i32 0
 // X86: %[[b:[^ ]*]] = getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %0, i32 0, i32 1
 // X86: %[[c:[^ ]*]] = getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %0, i32 0, i32 2
-// X86: call x86_thiscallcc void @"\01??1A@@QAE at XZ"(%struct.A* %[[a]])
-// X86: call x86_thiscallcc void @"\01??1A@@QAE at XZ"(%struct.A* %[[b]])
-// X86: call x86_thiscallcc void @"\01??1A@@QAE at XZ"(%struct.A* %[[c]])
+// X86: call x86_thiscallcc void @"??1A@@QAE at XZ"(%struct.A* %[[a]])
+// X86: call x86_thiscallcc void @"??1A@@QAE at XZ"(%struct.A* %[[b]])
+// X86: call x86_thiscallcc void @"??1A@@QAE at XZ"(%struct.A* %[[c]])
 // X86: ret void
 
-// X64-LABEL: define dso_local void @"\01?foo@@YAXUA@@00 at Z"
+// X64-LABEL: define dso_local void @"?foo@@YAXUA@@00 at Z"
 // X64:         (%struct.A* %[[a:[^,]*]], %struct.A* %[[b:[^,]*]], %struct.A* %[[c:[^)]*]])
-// X64: call void @"\01??1A@@QEAA at XZ"(%struct.A* %[[a]])
-// X64: call void @"\01??1A@@QEAA at XZ"(%struct.A* %[[b]])
-// X64: call void @"\01??1A@@QEAA at XZ"(%struct.A* %[[c]])
+// X64: call void @"??1A@@QEAA at XZ"(%struct.A* %[[a]])
+// X64: call void @"??1A@@QEAA at XZ"(%struct.A* %[[b]])
+// X64: call void @"??1A@@QEAA at XZ"(%struct.A* %[[c]])
 // X64: ret void
 
 
@@ -38,39 +38,39 @@ void call_foo() {
 // Order of evaluation should be right to left, and we should clean up the right
 // things as we unwind.
 //
-// X86-LABEL: define dso_local void @"\01?call_foo@@YAXXZ"()
+// X86-LABEL: define dso_local void @"?call_foo@@YAXXZ"()
 // X86: call i8* @llvm.stacksave()
 // X86: %[[argmem:[^ ]*]] = alloca inalloca [[argmem_ty]]
 // X86: %[[arg3:[^ ]*]] = getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %[[argmem]], i32 0, i32 2
-// X86: call x86_thiscallcc %struct.A* @"\01??0A@@QAE at H@Z"(%struct.A* %[[arg3]], i32 3)
+// X86: call x86_thiscallcc %struct.A* @"??0A@@QAE at H@Z"(%struct.A* %[[arg3]], i32 3)
 // X86: %[[arg2:[^ ]*]] = getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %[[argmem]], i32 0, i32 1
-// X86: invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at H@Z"(%struct.A* %[[arg2]], i32 2)
+// X86: invoke x86_thiscallcc %struct.A* @"??0A@@QAE at H@Z"(%struct.A* %[[arg2]], i32 2)
 // X86: %[[arg1:[^ ]*]] = getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %[[argmem]], i32 0, i32 0
-// X86: invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at H@Z"(%struct.A* %[[arg1]], i32 1)
-// X86: call void @"\01?foo@@YAXUA@@00 at Z"([[argmem_ty]]* inalloca %[[argmem]])
+// X86: invoke x86_thiscallcc %struct.A* @"??0A@@QAE at H@Z"(%struct.A* %[[arg1]], i32 1)
+// X86: call void @"?foo@@YAXUA@@00 at Z"([[argmem_ty]]* inalloca %[[argmem]])
 // X86: call void @llvm.stackrestore
 // X86: ret void
 //
 //   lpad2:
 // X86: cleanuppad within none []
-// X86: call x86_thiscallcc void @"\01??1A@@QAE at XZ"(%struct.A* %[[arg2]])
+// X86: call x86_thiscallcc void @"??1A@@QAE at XZ"(%struct.A* %[[arg2]])
 // X86: cleanupret
 //
 //   ehcleanup:
-// X86: call x86_thiscallcc void @"\01??1A@@QAE at XZ"(%struct.A* %[[arg3]])
+// X86: call x86_thiscallcc void @"??1A@@QAE at XZ"(%struct.A* %[[arg3]])
 
-// X64-LABEL: define dso_local void @"\01?call_foo@@YAXXZ"()
-// X64: call %struct.A* @"\01??0A@@QEAA at H@Z"(%struct.A* %[[arg3:[^,]*]], i32 3)
-// X64: invoke %struct.A* @"\01??0A@@QEAA at H@Z"(%struct.A* %[[arg2:[^,]*]], i32 2)
-// X64: invoke %struct.A* @"\01??0A@@QEAA at H@Z"(%struct.A* %[[arg1:[^,]*]], i32 1)
-// X64: call void @"\01?foo@@YAXUA@@00 at Z"
+// X64-LABEL: define dso_local void @"?call_foo@@YAXXZ"()
+// X64: call %struct.A* @"??0A@@QEAA at H@Z"(%struct.A* %[[arg3:[^,]*]], i32 3)
+// X64: invoke %struct.A* @"??0A@@QEAA at H@Z"(%struct.A* %[[arg2:[^,]*]], i32 2)
+// X64: invoke %struct.A* @"??0A@@QEAA at H@Z"(%struct.A* %[[arg1:[^,]*]], i32 1)
+// X64: call void @"?foo@@YAXUA@@00 at Z"
 // X64:       (%struct.A* %[[arg1]], %struct.A* %[[arg2]], %struct.A* %[[arg3]])
 // X64: ret void
 //
 //   lpad2:
 // X64: cleanuppad within none []
-// X64: call void @"\01??1A@@QEAA at XZ"(%struct.A* %[[arg2]])
+// X64: call void @"??1A@@QEAA at XZ"(%struct.A* %[[arg2]])
 // X64: cleanupret
 //
 //   ehcleanup:
-// X64: call void @"\01??1A@@QEAA at XZ"(%struct.A* %[[arg3]])
+// X64: call void @"??1A@@QEAA at XZ"(%struct.A* %[[arg3]])

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-array-cookies.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-array-cookies.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-array-cookies.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-array-cookies.cpp Fri Mar 16 13:36:49 2018
@@ -5,12 +5,12 @@ struct ClassWithoutDtor {
 };
 
 void check_array_no_cookies() {
-// CHECK: define dso_local void @"\01?check_array_no_cookies@@YAXXZ"() [[NUW:#[0-9]+]]
+// CHECK: define dso_local void @"?check_array_no_cookies@@YAXXZ"() [[NUW:#[0-9]+]]
 
-// CHECK: call i8* @"\01??_U at YAPAXI@Z"(i32 42)
+// CHECK: call i8* @"??_U at YAPAXI@Z"(i32 42)
   ClassWithoutDtor *array = new ClassWithoutDtor[42];
 
-// CHECK: call void @"\01??_V at YAXPAX@Z"(
+// CHECK: call void @"??_V at YAXPAX@Z"(
   delete [] array;
 
 }
@@ -21,10 +21,10 @@ struct ClassWithDtor {
 };
 
 void check_array_cookies_simple() {
-// CHECK: define {{.*}} @"\01?check_array_cookies_simple@@YAXXZ"()
+// CHECK: define {{.*}} @"?check_array_cookies_simple@@YAXXZ"()
 
   ClassWithDtor *array = new ClassWithDtor[42];
-// CHECK: [[ALLOCATED:%.*]] = call i8* @"\01??_U at YAPAXI@Z"(i32 46)
+// CHECK: [[ALLOCATED:%.*]] = call i8* @"??_U at YAPAXI@Z"(i32 46)
 // 46 = 42 + size of cookie (4)
 // CHECK: [[COOKIE:%.*]] = bitcast i8* [[ALLOCATED]] to i32*
 // CHECK: store i32 42, i32* [[COOKIE]]
@@ -44,9 +44,9 @@ struct __attribute__((aligned(8))) Class
 };
 
 void check_array_cookies_aligned() {
-// CHECK: define {{.*}} @"\01?check_array_cookies_aligned@@YAXXZ"()
+// CHECK: define {{.*}} @"?check_array_cookies_aligned@@YAXXZ"()
   ClassWithAlignment *array = new ClassWithAlignment[42];
-// CHECK: [[ALLOCATED:%.*]] = call i8* @"\01??_U at YAPAXI@Z"(i32 344)
+// CHECK: [[ALLOCATED:%.*]] = call i8* @"??_U at YAPAXI@Z"(i32 344)
 //   344 = 42*8 + size of cookie (8, due to alignment)
 // CHECK: [[COOKIE:%.*]] = bitcast i8* [[ALLOCATED]] to i32*
 // CHECK: store i32 42, i32* [[COOKIE]]
@@ -62,8 +62,8 @@ namespace PR23990 {
 struct S {
   char x[42];
   void operator delete[](void *p, __SIZE_TYPE__);
-  // CHECK-LABEL: define dso_local void @"\01?delete_s at PR23990@@YAXPAUS at 1@@Z"(
-  // CHECK: call void @"\01??_VS at PR23990@@SAXPAXI at Z"(i8* {{.*}}, i32 42)
+  // CHECK-LABEL: define dso_local void @"?delete_s at PR23990@@YAXPAUS at 1@@Z"(
+  // CHECK: call void @"??_VS at PR23990@@SAXPAXI at Z"(i8* {{.*}}, i32 42)
 };
 void delete_s(S *s) { delete[] s; }
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-sret.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-sret.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-sret.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-sret.cpp Fri Mar 16 13:36:49 2018
@@ -18,7 +18,7 @@ A B::foo(A x) {
   return x;
 }
 
-// CHECK-LABEL: define dso_local x86_thiscallcc %struct.A* @"\01?foo at B@@QAE?AUA@@U2@@Z"
+// CHECK-LABEL: define dso_local x86_thiscallcc %struct.A* @"?foo at B@@QAE?AUA@@U2@@Z"
 // CHECK:       (%struct.B* %this, <{ %struct.A*, %struct.A }>* inalloca)
 // CHECK:   getelementptr inbounds <{ %struct.A*, %struct.A }>, <{ %struct.A*, %struct.A }>* %{{.*}}, i32 0, i32 0
 // CHECK:   load %struct.A*, %struct.A**
@@ -28,7 +28,7 @@ A B::bar(A x) {
   return x;
 }
 
-// CHECK-LABEL: define dso_local %struct.A* @"\01?bar at B@@QAA?AUA@@U2@@Z"
+// CHECK-LABEL: define dso_local %struct.A* @"?bar at B@@QAA?AUA@@U2@@Z"
 // CHECK:       (<{ %struct.B*, %struct.A*, %struct.A }>* inalloca)
 // CHECK:   getelementptr inbounds <{ %struct.B*, %struct.A*, %struct.A }>, <{ %struct.B*, %struct.A*, %struct.A }>* %{{.*}}, i32 0, i32 1
 // CHECK:   load %struct.A*, %struct.A**
@@ -38,7 +38,7 @@ A B::baz(A x) {
   return x;
 }
 
-// CHECK-LABEL: define dso_local x86_stdcallcc %struct.A* @"\01?baz at B@@QAG?AUA@@U2@@Z"
+// CHECK-LABEL: define dso_local x86_stdcallcc %struct.A* @"?baz at B@@QAG?AUA@@U2@@Z"
 // CHECK:       (<{ %struct.B*, %struct.A*, %struct.A }>* inalloca)
 // CHECK:   getelementptr inbounds <{ %struct.B*, %struct.A*, %struct.A }>, <{ %struct.B*, %struct.A*, %struct.A }>* %{{.*}}, i32 0, i32 1
 // CHECK:   load %struct.A*, %struct.A**
@@ -48,7 +48,7 @@ A B::qux(A x) {
   return x;
 }
 
-// CHECK-LABEL: define dso_local x86_fastcallcc void @"\01?qux at B@@QAI?AUA@@U2@@Z"
+// CHECK-LABEL: define dso_local x86_fastcallcc void @"?qux at B@@QAI?AUA@@U2@@Z"
 // CHECK:       (%struct.B* inreg %this, %struct.A* inreg noalias sret %agg.result, <{ %struct.A }>* inalloca)
 // CHECK:   ret void
 
@@ -60,11 +60,11 @@ int main() {
   a = b.qux(a);
 }
 
-// CHECK: call x86_thiscallcc %struct.A* @"\01?foo at B@@QAE?AUA@@U2@@Z"
+// CHECK: call x86_thiscallcc %struct.A* @"?foo at B@@QAE?AUA@@U2@@Z"
 // CHECK:       (%struct.B* %{{[^,]*}}, <{ %struct.A*, %struct.A }>* inalloca %{{[^,]*}})
-// CHECK: call %struct.A* @"\01?bar at B@@QAA?AUA@@U2@@Z"
+// CHECK: call %struct.A* @"?bar at B@@QAA?AUA@@U2@@Z"
 // CHECK:       (<{ %struct.B*, %struct.A*, %struct.A }>* inalloca %{{[^,]*}})
-// CHECK: call x86_stdcallcc %struct.A* @"\01?baz at B@@QAG?AUA@@U2@@Z"
+// CHECK: call x86_stdcallcc %struct.A* @"?baz at B@@QAG?AUA@@U2@@Z"
 // CHECK:       (<{ %struct.B*, %struct.A*, %struct.A }>* inalloca %{{[^,]*}})
-// CHECK: call x86_fastcallcc void @"\01?qux at B@@QAI?AUA@@U2@@Z"
+// CHECK: call x86_fastcallcc void @"?qux at B@@QAI?AUA@@U2@@Z"
 // CHECK:       (%struct.B* inreg %{{[^,]*}}, %struct.A* inreg sret %{{.*}}, <{ %struct.A }>* inalloca %{{[^,]*}})

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp Fri Mar 16 13:36:49 2018
@@ -14,17 +14,17 @@ struct B { virtual void foo(Agg x); };
 struct C : A, B { C(); virtual void foo(Agg x); };
 C::C() {} // force emission
 
-// CHECK32-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"\01?foo at C@byval_thunk@@W3AEXUAgg at 2@@Z"
+// CHECK32-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"?foo at C@byval_thunk@@W3AEXUAgg at 2@@Z"
 // CHECK32:             (%"struct.byval_thunk::C"* %this, <{ %"struct.byval_thunk::Agg" }>* inalloca)
 // CHECK32:   getelementptr i8, i8* %{{.*}}, i32 -4
-// CHECK32:   musttail call x86_thiscallcc void @"\01?foo at C@byval_thunk@@UAEXUAgg at 2@@Z"
+// CHECK32:   musttail call x86_thiscallcc void @"?foo at C@byval_thunk@@UAEXUAgg at 2@@Z"
 // CHECK32:       (%"struct.byval_thunk::C"* %{{.*}}, <{ %"struct.byval_thunk::Agg" }>* inalloca %0)
 // CHECK32-NEXT: ret void
 
-// CHECK64-LABEL: define linkonce_odr dso_local void @"\01?foo at C@byval_thunk@@W7EAAXUAgg at 2@@Z"
+// CHECK64-LABEL: define linkonce_odr dso_local void @"?foo at C@byval_thunk@@W7EAAXUAgg at 2@@Z"
 // CHECK64:             (%"struct.byval_thunk::C"* %this, %"struct.byval_thunk::Agg"* %x)
 // CHECK64:   getelementptr i8, i8* %{{.*}}, i32 -8
-// CHECK64:   call void @"\01?foo at C@byval_thunk@@UEAAXUAgg at 2@@Z"
+// CHECK64:   call void @"?foo at C@byval_thunk@@UEAAXUAgg at 2@@Z"
 // CHECK64:       (%"struct.byval_thunk::C"* %{{.*}}, %"struct.byval_thunk::Agg"* %x)
 // CHECK64-NOT: call
 // CHECK64:   ret void
@@ -43,20 +43,20 @@ struct B { virtual void __stdcall foo(Ag
 struct C : A, B { C(); virtual void __stdcall foo(Agg x); };
 C::C() {} // force emission
 
-// CHECK32-LABEL: define linkonce_odr dso_local x86_stdcallcc void @"\01?foo at C@stdcall_thunk@@W3AGXUAgg at 2@@Z"
+// CHECK32-LABEL: define linkonce_odr dso_local x86_stdcallcc void @"?foo at C@stdcall_thunk@@W3AGXUAgg at 2@@Z"
 // CHECK32:             (<{ %"struct.stdcall_thunk::C"*, %"struct.stdcall_thunk::Agg" }>* inalloca)
 // CHECK32:   %[[this_slot:[^ ]*]] = getelementptr inbounds <{ %"struct.stdcall_thunk::C"*, %"struct.stdcall_thunk::Agg" }>, <{ %"struct.stdcall_thunk::C"*, %"struct.stdcall_thunk::Agg" }>* %0, i32 0, i32 0
 // CHECK32:   load %"struct.stdcall_thunk::C"*, %"struct.stdcall_thunk::C"** %[[this_slot]]
 // CHECK32:   getelementptr i8, i8* %{{.*}}, i32 -4
 // CHECK32:   store %"struct.stdcall_thunk::C"* %{{.*}}, %"struct.stdcall_thunk::C"** %[[this_slot]]
-// CHECK32:   musttail call x86_stdcallcc void @"\01?foo at C@stdcall_thunk@@UAGXUAgg at 2@@Z"
+// CHECK32:   musttail call x86_stdcallcc void @"?foo at C@stdcall_thunk@@UAGXUAgg at 2@@Z"
 // CHECK32:       (<{ %"struct.stdcall_thunk::C"*, %"struct.stdcall_thunk::Agg" }>*  inalloca %0)
 // CHECK32-NEXT: ret void
 
-// CHECK64-LABEL: define linkonce_odr dso_local void @"\01?foo at C@stdcall_thunk@@W7EAAXUAgg at 2@@Z"
+// CHECK64-LABEL: define linkonce_odr dso_local void @"?foo at C@stdcall_thunk@@W7EAAXUAgg at 2@@Z"
 // CHECK64:             (%"struct.stdcall_thunk::C"* %this, %"struct.stdcall_thunk::Agg"* %x)
 // CHECK64:   getelementptr i8, i8* %{{.*}}, i32 -8
-// CHECK64:   call void @"\01?foo at C@stdcall_thunk@@UEAAXUAgg at 2@@Z"
+// CHECK64:   call void @"?foo at C@stdcall_thunk@@UEAAXUAgg at 2@@Z"
 // CHECK64:       (%"struct.stdcall_thunk::C"* %{{.*}}, %"struct.stdcall_thunk::Agg"* %x)
 // CHECK64-NOT: call
 // CHECK64:   ret void
@@ -75,20 +75,20 @@ struct B { virtual Agg __cdecl foo(Agg x
 struct C : A, B { C(); virtual Agg __cdecl foo(Agg x); };
 C::C() {} // force emission
 
-// CHECK32-LABEL: define linkonce_odr dso_local %"struct.sret_thunk::Agg"* @"\01?foo at C@sret_thunk@@W3AA?AUAgg at 2@U32@@Z"
+// CHECK32-LABEL: define linkonce_odr dso_local %"struct.sret_thunk::Agg"* @"?foo at C@sret_thunk@@W3AA?AUAgg at 2@U32@@Z"
 // CHECK32:             (<{ %"struct.sret_thunk::C"*, %"struct.sret_thunk::Agg"*, %"struct.sret_thunk::Agg" }>* inalloca)
 // CHECK32:   %[[this_slot:[^ ]*]] = getelementptr inbounds <{ %"struct.sret_thunk::C"*, %"struct.sret_thunk::Agg"*, %"struct.sret_thunk::Agg" }>, <{ %"struct.sret_thunk::C"*, %"struct.sret_thunk::Agg"*, %"struct.sret_thunk::Agg" }>* %0, i32 0, i32 0
 // CHECK32:   load %"struct.sret_thunk::C"*, %"struct.sret_thunk::C"** %[[this_slot]]
 // CHECK32:   getelementptr i8, i8* %{{.*}}, i32 -4
 // CHECK32:   store %"struct.sret_thunk::C"* %{{.*}}, %"struct.sret_thunk::C"** %[[this_slot]]
-// CHECK32:   %[[rv:[^ ]*]] = musttail call %"struct.sret_thunk::Agg"* @"\01?foo at C@sret_thunk@@UAA?AUAgg at 2@U32@@Z"
+// CHECK32:   %[[rv:[^ ]*]] = musttail call %"struct.sret_thunk::Agg"* @"?foo at C@sret_thunk@@UAA?AUAgg at 2@U32@@Z"
 // CHECK32:       (<{ %"struct.sret_thunk::C"*, %"struct.sret_thunk::Agg"*, %"struct.sret_thunk::Agg" }>*  inalloca %0)
 // CHECK32-NEXT: ret %"struct.sret_thunk::Agg"* %[[rv]]
 
-// CHECK64-LABEL: define linkonce_odr dso_local void @"\01?foo at C@sret_thunk@@W7EAA?AUAgg at 2@U32@@Z"
+// CHECK64-LABEL: define linkonce_odr dso_local void @"?foo at C@sret_thunk@@W7EAA?AUAgg at 2@U32@@Z"
 // CHECK64:             (%"struct.sret_thunk::C"* %this, %"struct.sret_thunk::Agg"* noalias sret %agg.result, %"struct.sret_thunk::Agg"* %x)
 // CHECK64:   getelementptr i8, i8* %{{.*}}, i32 -8
-// CHECK64:   call void @"\01?foo at C@sret_thunk@@UEAA?AUAgg at 2@U32@@Z"
+// CHECK64:   call void @"?foo at C@sret_thunk@@UEAA?AUAgg at 2@U32@@Z"
 // CHECK64:       (%"struct.sret_thunk::C"* %{{.*}}, %"struct.sret_thunk::Agg"* sret %agg.result, %"struct.sret_thunk::Agg"* %x)
 // CHECK64-NOT: call
 // CHECK64:   ret void

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-vararg.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-vararg.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-vararg.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-byval-vararg.cpp Fri Mar 16 13:36:49 2018
@@ -19,14 +19,14 @@ int foo(A a, ...) {
   return sum;
 }
 
-// CHECK-LABEL: define dso_local i32 @"\01?foo@@YAHUA@@ZZ"(<{ %struct.A }>* inalloca, ...)
+// CHECK-LABEL: define dso_local i32 @"?foo@@YAHUA@@ZZ"(<{ %struct.A }>* inalloca, ...)
 
 int main() {
   return foo(A(3), 1, 2, 3);
 }
 // CHECK-LABEL: define dso_local i32 @main()
 // CHECK: %[[argmem:[^ ]*]] = alloca inalloca <{ %struct.A, i32, i32, i32 }>
-// CHECK: call i32 {{.*bitcast.*}}@"\01?foo@@YAHUA@@ZZ"{{.*}}(<{ %struct.A, i32, i32, i32 }>* inalloca %[[argmem]])
+// CHECK: call i32 {{.*bitcast.*}}@"?foo@@YAHUA@@ZZ"{{.*}}(<{ %struct.A, i32, i32, i32 }>* inalloca %[[argmem]])
 
 void varargs_zero(...);
 void varargs_one(int, ...);
@@ -40,13 +40,13 @@ void call_var_args() {
   varargs_three(1, 2, 3, x);
 }
 
-// CHECK-LABEL: define dso_local void @"\01?call_var_args@@YAXXZ"()
+// CHECK-LABEL: define dso_local void @"?call_var_args@@YAXXZ"()
 // CHECK: call void {{.*bitcast.*varargs_zero.*}}(<{ %struct.A }>* inalloca %{{.*}})
 // CHECK: call void {{.*bitcast.*varargs_one.*}}(<{ i32, %struct.A }>* inalloca %{{.*}})
 // CHECK: call void {{.*bitcast.*varargs_two.*}}(<{ i32, i32, %struct.A }>* inalloca %{{.*}})
 // CHECK: call void {{.*bitcast.*varargs_three.*}}(<{ i32, i32, i32, %struct.A }>* inalloca %{{.*}})
 
-// CHECK-LABEL: declare dso_local void @"\01?varargs_zero@@YAXZZ"(...)
-// CHECK-LABEL: declare dso_local void @"\01?varargs_one@@YAXHZZ"(i32, ...)
-// CHECK-LABEL: declare dso_local void @"\01?varargs_two@@YAXHHZZ"(i32, i32, ...)
-// CHECK-LABEL: declare dso_local void @"\01?varargs_three@@YAXHHHZZ"(i32, i32, i32, ...)
+// CHECK-LABEL: declare dso_local void @"?varargs_zero@@YAXZZ"(...)
+// CHECK-LABEL: declare dso_local void @"?varargs_one@@YAXHZZ"(i32, ...)
+// CHECK-LABEL: declare dso_local void @"?varargs_two@@YAXHHZZ"(i32, i32, ...)
+// CHECK-LABEL: declare dso_local void @"?varargs_three@@YAXHHHZZ"(i32, i32, i32, ...)

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-cdecl-method-sret.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-cdecl-method-sret.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-cdecl-method-sret.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-cdecl-method-sret.cpp Fri Mar 16 13:36:49 2018
@@ -19,9 +19,9 @@ S C::variadic_sret(const char *f, ...) {
 S C::cdecl_sret() { return S(); }
 S C::byval_and_sret(S a) { return S(); }
 
-// CHECK: define dso_local void @"\01?variadic_sret at C@@QAA?AUS@@PBDZZ"(%struct.C* %this, %struct.S* noalias sret %agg.result, i8* %f, ...)
-// CHECK: define dso_local void @"\01?cdecl_sret at C@@QAA?AUS@@XZ"(%struct.C* %this, %struct.S* noalias sret %agg.result)
-// CHECK: define dso_local void @"\01?byval_and_sret at C@@QAA?AUS@@U2@@Z"(%struct.C* %this, %struct.S* noalias sret %agg.result, %struct.S* byval align 4 %a)
+// CHECK: define dso_local void @"?variadic_sret at C@@QAA?AUS@@PBDZZ"(%struct.C* %this, %struct.S* noalias sret %agg.result, i8* %f, ...)
+// CHECK: define dso_local void @"?cdecl_sret at C@@QAA?AUS@@XZ"(%struct.C* %this, %struct.S* noalias sret %agg.result)
+// CHECK: define dso_local void @"?byval_and_sret at C@@QAA?AUS@@U2@@Z"(%struct.C* %this, %struct.S* noalias sret %agg.result, %struct.S* byval align 4 %a)
 
 int main() {
   C c;
@@ -30,9 +30,9 @@ int main() {
   c.byval_and_sret(S());
 }
 // CHECK-LABEL: define dso_local i32 @main()
-// CHECK: call void {{.*}} @"\01?variadic_sret at C@@QAA?AUS@@PBDZZ"
-// CHECK: call void @"\01?cdecl_sret at C@@QAA?AUS@@XZ"
-// CHECK: call void @"\01?byval_and_sret at C@@QAA?AUS@@U2@@Z"
+// CHECK: call void {{.*}} @"?variadic_sret at C@@QAA?AUS@@PBDZZ"
+// CHECK: call void @"?cdecl_sret at C@@QAA?AUS@@XZ"
+// CHECK: call void @"?byval_and_sret at C@@QAA?AUS@@U2@@Z"
 
 // __fastcall has similar issues.
 struct A {
@@ -41,4 +41,4 @@ struct A {
 S A::f(int x) {
   return S();
 }
-// CHECK-LABEL: define dso_local x86_fastcallcc void @"\01?f at A@@QAI?AUS@@H at Z"(%struct.A* inreg %this, %struct.S* inreg noalias sret %agg.result, i32 %x)
+// CHECK-LABEL: define dso_local x86_fastcallcc void @"?f at A@@QAI?AUS@@H at Z"(%struct.A* inreg %this, %struct.S* inreg noalias sret %agg.result, i32 %x)

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-constexpr-vs-inheritance.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-constexpr-vs-inheritance.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-constexpr-vs-inheritance.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-constexpr-vs-inheritance.cpp Fri Mar 16 13:36:49 2018
@@ -7,7 +7,7 @@ struct A {
 };
 
 A a(42);
-// CHECK: @"\01?a@@3UA@@A" = dso_local global { { [1 x i8*] }*, i32 } { { [1 x i8*] }* @"\01??_7A@@6B@", i32 42 }, align 4
+// CHECK: @"?a@@3UA@@A" = dso_local global { { [1 x i8*] }*, i32 } { { [1 x i8*] }* @"??_7A@@6B@", i32 42 }, align 4
 
 struct B {
   constexpr B(int y) : y(y) {}
@@ -20,4 +20,4 @@ struct C : A, B {
 };
 
 C c;
-// CHECK: @"\01?c@@3UC@@A" = dso_local global { { [1 x i8*] }*, i32, { [1 x i8*] }*, i32 } { { [1 x i8*] }* @"\01??_7C@@6BA@@@", i32 777, { [1 x i8*] }* @"\01??_7C@@6BB@@@", i32 13 }
+// CHECK: @"?c@@3UC@@A" = dso_local global { { [1 x i8*] }*, i32, { [1 x i8*] }*, i32 } { { [1 x i8*] }* @"??_7C@@6BA@@@", i32 777, { [1 x i8*] }* @"??_7C@@6BB@@@", i32 13 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp Fri Mar 16 13:36:49 2018
@@ -13,13 +13,13 @@ void foo();
 void __cdecl foo();
 void __cdecl foo() {}
 // GCABI-LABEL: define void @_Z3foov()
-// MSABI: define dso_local void @"\01?foo@@YAXXZ"
+// MSABI: define dso_local void @"?foo@@YAXXZ"
 
 void __cdecl bar();
 void bar();
 void bar() {}
 // GCABI-LABEL: define void @_Z3barv()
-// MSABI: define dso_local void @"\01?bar@@YAXXZ"
+// MSABI: define dso_local void @"?bar@@YAXXZ"
 
 // Test that it's OK to mark either the method declaration or method definition
 // with a default CC explicitly.
@@ -34,23 +34,23 @@ public:
 
 void METHOD_CC A::baz() {}
 // GCABI-LABEL: define void @_ZN1A3bazEv
-// MSABI: define dso_local x86_thiscallcc void @"\01?baz at A@@QAEXXZ"
+// MSABI: define dso_local x86_thiscallcc void @"?baz at A@@QAEXXZ"
 void A::qux() {}
 // GCABI-LABEL: define void @_ZN1A3quxEv
-// MSABI: define dso_local x86_thiscallcc void @"\01?qux at A@@QAEXXZ"
+// MSABI: define dso_local x86_thiscallcc void @"?qux at A@@QAEXXZ"
 
 void __cdecl static_baz() {}
 // GCABI-LABEL: define void @_Z10static_bazv
-// MSABI: define dso_local void @"\01?static_baz@@YAXXZ"
+// MSABI: define dso_local void @"?static_baz@@YAXXZ"
 void static_qux() {}
 // GCABI-LABEL: define void @_Z10static_quxv
-// MSABI: define dso_local void @"\01?static_qux@@YAXXZ"
+// MSABI: define dso_local void @"?static_qux@@YAXXZ"
 
 namespace PR31656 {
 template <int I>
 void __cdecl callee(int args[I]);
 // GCABI-LABEL: declare void @_ZN7PR316566calleeILi1EEEvPi(
-// MSABI: declare dso_local void @"\01??$callee@$00 at PR31656@@YAXQAH at Z"(
+// MSABI: declare dso_local void @"??$callee@$00 at PR31656@@YAXQAH at Z"(
 
 void caller() { callee<1>(0); }
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp Fri Mar 16 13:36:49 2018
@@ -7,30 +7,30 @@ struct B : S, virtual V {};
 struct T {};
 
 T* test0() { return dynamic_cast<T*>((B*)0); }
-// CHECK-LABEL: define dso_local noalias %struct.T* @"\01?test0@@YAPAUT@@XZ"()
+// CHECK-LABEL: define dso_local noalias %struct.T* @"?test0@@YAPAUT@@XZ"()
 // CHECK:   ret %struct.T* null
 
 T* test1(V* x) { return &dynamic_cast<T&>(*x); }
-// CHECK-LABEL: define dso_local %struct.T* @"\01?test1@@YAPAUT@@PAUV@@@Z"(%struct.V* %x)
+// CHECK-LABEL: define dso_local %struct.T* @"?test1@@YAPAUT@@PAUV@@@Z"(%struct.V* %x)
 // CHECK:        [[CAST:%.*]] = bitcast %struct.V* %x to i8*
-// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* [[CAST]], i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUV@@@8" to i8*), i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUT@@@8" to i8*), i32 1)
+// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* [[CAST]], i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUV@@@8" to i8*), i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUT@@@8" to i8*), i32 1)
 // CHECK-NEXT:   [[RET:%.*]] = bitcast i8* [[CALL]] to %struct.T*
 // CHECK-NEXT:   ret %struct.T* [[RET]]
 
 T* test2(A* x) { return &dynamic_cast<T&>(*x); }
-// CHECK-LABEL: define dso_local %struct.T* @"\01?test2@@YAPAUT@@PAUA@@@Z"(%struct.A* %x)
+// CHECK-LABEL: define dso_local %struct.T* @"?test2@@YAPAUT@@PAUA@@@Z"(%struct.A* %x)
 // CHECK:        [[CAST:%.*]] = bitcast %struct.A* %x to i8*
 // CHECK-NEXT:   [[VBPTRPTR:%.*]] = getelementptr inbounds %struct.A, %struct.A* %x, i32 0, i32 0
 // CHECK-NEXT:   [[VBTBL:%.*]] = load i32*, i32** [[VBPTRPTR]], align 4
 // CHECK-NEXT:   [[VBOFFP:%.*]] = getelementptr inbounds i32, i32* [[VBTBL]], i32 1
 // CHECK-NEXT:   [[VBOFFS:%.*]] = load i32, i32* [[VBOFFP]], align 4
 // CHECK-NEXT:   [[ADJ:%.*]] = getelementptr inbounds i8, i8* [[CAST]], i32 [[VBOFFS]]
-// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* [[ADJ]], i32 [[VBOFFS]], i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8" to i8*), i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUT@@@8" to i8*), i32 1)
+// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* [[ADJ]], i32 [[VBOFFS]], i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUA@@@8" to i8*), i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUT@@@8" to i8*), i32 1)
 // CHECK-NEXT:   [[RET:%.*]] = bitcast i8* [[CALL]] to %struct.T*
 // CHECK-NEXT:   ret %struct.T* [[RET]]
 
 T* test3(B* x) { return &dynamic_cast<T&>(*x); }
-// CHECK-LABEL: define dso_local %struct.T* @"\01?test3@@YAPAUT@@PAUB@@@Z"(%struct.B* %x)
+// CHECK-LABEL: define dso_local %struct.T* @"?test3@@YAPAUT@@PAUB@@@Z"(%struct.B* %x)
 // CHECK:        [[VOIDP:%.*]] = getelementptr inbounds %struct.B, %struct.B* %x, i32 0, i32 0, i32 0
 // CHECK-NEXT:   [[VBPTR:%.*]] = getelementptr inbounds i8, i8* [[VOIDP]], i32 4
 // CHECK-NEXT:   [[VBPTRPTR:%.*]] = bitcast i8* [[VBPTR:%.*]] to i32**
@@ -39,19 +39,19 @@ T* test3(B* x) { return &dynamic_cast<T&
 // CHECK-NEXT:   [[VBOFFS:%.*]] = load i32, i32* [[VBOFFP]], align 4
 // CHECK-NEXT:   [[DELTA:%.*]] = add nsw i32 [[VBOFFS]], 4
 // CHECK-NEXT:   [[ADJ:%.*]] = getelementptr inbounds i8, i8* [[VOIDP]], i32 [[DELTA]]
-// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* [[ADJ]], i32 [[DELTA]], i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUB@@@8" to i8*), i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUT@@@8" to i8*), i32 1)
+// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* [[ADJ]], i32 [[DELTA]], i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUB@@@8" to i8*), i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUT@@@8" to i8*), i32 1)
 // CHECK-NEXT:   [[RET:%.*]] = bitcast i8* [[CALL]] to %struct.T*
 // CHECK-NEXT:   ret %struct.T* [[RET]]
 
 T* test4(V* x) { return dynamic_cast<T*>(x); }
-// CHECK-LABEL: define dso_local %struct.T* @"\01?test4@@YAPAUT@@PAUV@@@Z"(%struct.V* %x)
+// CHECK-LABEL: define dso_local %struct.T* @"?test4@@YAPAUT@@PAUV@@@Z"(%struct.V* %x)
 // CHECK:        [[CAST:%.*]] = bitcast %struct.V* %x to i8*
-// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* [[CAST]], i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUV@@@8" to i8*), i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUT@@@8" to i8*), i32 0)
+// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* [[CAST]], i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUV@@@8" to i8*), i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUT@@@8" to i8*), i32 0)
 // CHECK-NEXT:   [[RET:%.*]] = bitcast i8* [[CALL]] to %struct.T*
 // CHECK-NEXT:   ret %struct.T* [[RET]]
 
 T* test5(A* x) { return dynamic_cast<T*>(x); }
-// CHECK-LABEL: define dso_local %struct.T* @"\01?test5@@YAPAUT@@PAUA@@@Z"(%struct.A* %x)
+// CHECK-LABEL: define dso_local %struct.T* @"?test5@@YAPAUT@@PAUA@@@Z"(%struct.A* %x)
 // CHECK:        [[CHECK:%.*]] = icmp eq %struct.A* %x, null
 // CHECK-NEXT:   br i1 [[CHECK]]
 // CHECK:        [[VOIDP:%.*]] = bitcast %struct.A* %x to i8*
@@ -60,14 +60,14 @@ T* test5(A* x) { return dynamic_cast<T*>
 // CHECK-NEXT:   [[VBOFFP:%.*]] = getelementptr inbounds i32, i32* [[VBTBL]], i32 1
 // CHECK-NEXT:   [[VBOFFS:%.*]] = load i32, i32* [[VBOFFP]], align 4
 // CHECK-NEXT:   [[ADJ:%.*]] = getelementptr inbounds i8, i8* [[VOIDP]], i32 [[VBOFFS]]
-// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* [[ADJ]], i32 [[VBOFFS]], i8* {{.*}}bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8" to i8*), i8* {{.*}}bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUT@@@8" to i8*), i32 0)
+// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* [[ADJ]], i32 [[VBOFFS]], i8* {{.*}}bitcast (%rtti.TypeDescriptor7* @"??_R0?AUA@@@8" to i8*), i8* {{.*}}bitcast (%rtti.TypeDescriptor7* @"??_R0?AUT@@@8" to i8*), i32 0)
 // CHECK-NEXT:   [[RES:%.*]] = bitcast i8* [[CALL]] to %struct.T*
 // CHECK-NEXT:   br label
 // CHECK:        [[RET:%.*]] = phi %struct.T*
 // CHECK-NEXT:   ret %struct.T* [[RET]]
 
 T* test6(B* x) { return dynamic_cast<T*>(x); }
-// CHECK-LABEL: define dso_local %struct.T* @"\01?test6@@YAPAUT@@PAUB@@@Z"(%struct.B* %x)
+// CHECK-LABEL: define dso_local %struct.T* @"?test6@@YAPAUT@@PAUB@@@Z"(%struct.B* %x)
 // CHECK:        [[CHECK:%.*]] = icmp eq %struct.B* %x, null
 // CHECK-NEXT:   br i1 [[CHECK]]
 // CHECK:        [[CAST:%.*]] = getelementptr inbounds %struct.B, %struct.B* %x, i32 0, i32 0, i32 0
@@ -78,20 +78,20 @@ T* test6(B* x) { return dynamic_cast<T*>
 // CHECK-NEXT:   [[VBOFFS:%.*]] = load i32, i32* [[VBOFFP]], align 4
 // CHECK-NEXT:   [[DELTA:%.*]] = add nsw i32 [[VBOFFS]], 4
 // CHECK-NEXT:   [[ADJ:%.*]] = getelementptr inbounds i8, i8* [[CAST]], i32 [[DELTA]]
-// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* nonnull [[ADJ]], i32 [[DELTA]], i8* {{.*}}bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUB@@@8" to i8*), i8* {{.*}}bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUT@@@8" to i8*), i32 0)
+// CHECK-NEXT:   [[CALL:%.*]] = tail call i8* @__RTDynamicCast(i8* nonnull [[ADJ]], i32 [[DELTA]], i8* {{.*}}bitcast (%rtti.TypeDescriptor7* @"??_R0?AUB@@@8" to i8*), i8* {{.*}}bitcast (%rtti.TypeDescriptor7* @"??_R0?AUT@@@8" to i8*), i32 0)
 // CHECK-NEXT:   [[RES:%.*]] = bitcast i8* [[CALL]] to %struct.T*
 // CHECK-NEXT:   br label
 // CHECK:        [[RET:%.*]] = phi %struct.T*
 // CHECK-NEXT:   ret %struct.T* [[RET]]
 
 void* test7(V* x) { return dynamic_cast<void*>(x); }
-// CHECK-LABEL: define dso_local i8* @"\01?test7@@YAPAXPAUV@@@Z"(%struct.V* %x)
+// CHECK-LABEL: define dso_local i8* @"?test7@@YAPAXPAUV@@@Z"(%struct.V* %x)
 // CHECK:        [[CAST:%.*]] = bitcast %struct.V* %x to i8*
 // CHECK-NEXT:   [[RET:%.*]] = tail call i8* @__RTCastToVoid(i8* [[CAST]])
 // CHECK-NEXT:   ret i8* [[RET]]
 
 void* test8(A* x) { return dynamic_cast<void*>(x); }
-// CHECK-LABEL: define dso_local i8* @"\01?test8@@YAPAXPAUA@@@Z"(%struct.A* %x)
+// CHECK-LABEL: define dso_local i8* @"?test8@@YAPAXPAUA@@@Z"(%struct.A* %x)
 // CHECK:        [[CHECK:%.*]] = icmp eq %struct.A* %x, null
 // CHECK-NEXT:   br i1 [[CHECK]]
 // CHECK:        [[VOIDP:%.*]] = bitcast %struct.A* %x to i8*
@@ -106,7 +106,7 @@ void* test8(A* x) { return dynamic_cast<
 // CHECK-NEXT:   ret i8* [[RET]]
 
 void* test9(B* x) { return dynamic_cast<void*>(x); }
-// CHECK-LABEL: define dso_local i8* @"\01?test9@@YAPAXPAUB@@@Z"(%struct.B* %x)
+// CHECK-LABEL: define dso_local i8* @"?test9@@YAPAXPAUB@@@Z"(%struct.B* %x)
 // CHECK:        [[CHECK:%.*]] = icmp eq %struct.B* %x, null
 // CHECK-NEXT:   br i1 [[CHECK]]
 // CHECK:        [[CAST:%.*]] = getelementptr inbounds %struct.B, %struct.B* %x, i32 0, i32 0, i32 0
@@ -134,10 +134,10 @@ S3 *f(S2 &s) {
   Cleanup c;
   return dynamic_cast<S3 *>(&s);
 }
-// CHECK-LABEL: define dso_local %"struct.PR25606::S3"* @"\01?f at PR25606@@YAPAUS3 at 1@AAUS2 at 1@@Z"(
+// CHECK-LABEL: define dso_local %"struct.PR25606::S3"* @"?f at PR25606@@YAPAUS3 at 1@AAUS2 at 1@@Z"(
 // CHECK:    [[CALL:%.*]] = invoke i8* @__RTDynamicCast
 
 // CHECK:    [[BC:%.*]] = bitcast i8* [[CALL]] to %"struct.PR25606::S3"*
-// CHECK:    call x86_thiscallcc void @"\01??1Cleanup at PR25606@@QAE at XZ"(
+// CHECK:    call x86_thiscallcc void @"??1Cleanup at PR25606@@QAE at XZ"(
 // CHECK:    ret %"struct.PR25606::S3"* [[BC]]
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-catch.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-catch.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-catch.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-catch.cpp Fri Mar 16 13:36:49 2018
@@ -47,7 +47,7 @@ extern "C" void catch_int() {
 }
 
 // WIN64-LABEL: define dso_local void @catch_int()
-// WIN64: catchpad within %{{[^ ]*}} [%rtti.TypeDescriptor2* @"\01??_R0H at 8", i32 0, i32* %[[e_addr:[^\]]*]]]
+// WIN64: catchpad within %{{[^ ]*}} [%rtti.TypeDescriptor2* @"??_R0H at 8", i32 0, i32* %[[e_addr:[^\]]*]]]
 //
 // The catchpad instruction starts the lifetime of 'e'. Unfortunately, that
 // leaves us with nowhere to put lifetime.start, so we don't emit lifetime
@@ -69,7 +69,7 @@ extern "C" void catch_int_unnamed() {
 }
 
 // WIN64-LABEL: define dso_local void @catch_int_unnamed()
-// WIN64: catchpad within %{{.*}} [%rtti.TypeDescriptor2* @"\01??_R0H at 8", i32 0, i8* null]
+// WIN64: catchpad within %{{.*}} [%rtti.TypeDescriptor2* @"??_R0H at 8", i32 0, i8* null]
 // WIN64: catchret
 
 struct A {
@@ -96,7 +96,7 @@ extern "C" void catch_a_byval() {
 
 // WIN64-LABEL: define dso_local void @catch_a_byval()
 // WIN64: %[[e_addr:[^ ]*]] = alloca %struct.A
-// WIN64: catchpad within %{{[^ ]*}} [%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8", i32 0, %struct.A* %[[e_addr]]]
+// WIN64: catchpad within %{{[^ ]*}} [%rtti.TypeDescriptor7* @"??_R0?AUA@@@8", i32 0, %struct.A* %[[e_addr]]]
 // WIN64: %[[e_i8:[^ ]*]] = bitcast %struct.A* %[[e_addr]] to i8*
 // WIN64: call void @handle_exception(i8* %[[e_i8]])
 // WIN64: catchret
@@ -111,7 +111,7 @@ extern "C" void catch_a_ref() {
 
 // WIN64-LABEL: define dso_local void @catch_a_ref()
 // WIN64: %[[e_addr:[^ ]*]] = alloca %struct.A*
-// WIN64: catchpad within %{{[^ ]*}} [%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8", i32 8, %struct.A** %[[e_addr]]]
+// WIN64: catchpad within %{{[^ ]*}} [%rtti.TypeDescriptor7* @"??_R0?AUA@@@8", i32 8, %struct.A** %[[e_addr]]]
 // WIN64: %[[eptr:[^ ]*]] = load %struct.A*, %struct.A** %[[e_addr]]
 // WIN64: %[[eptr_i8:[^ ]*]] = bitcast %struct.A* %[[eptr]] to i8*
 // WIN64: call void @handle_exception(i8* %[[eptr_i8]])
@@ -145,7 +145,7 @@ extern "C" void catch_nested() {
 // WIN64: %[[catchswitch_outer_scope:[^ ]*]] = catchswitch within none [label %[[catch_int_outer:[^ ]*]]] unwind to caller
 //
 // WIN64: [[catch_int_outer]]
-// WIN64: %[[catchpad:[^ ]*]] = catchpad within %[[catchswitch_outer_scope]] [%rtti.TypeDescriptor2* @"\01??_R0H at 8", i32 0, i8* null]
+// WIN64: %[[catchpad:[^ ]*]] = catchpad within %[[catchswitch_outer_scope]] [%rtti.TypeDescriptor2* @"??_R0H at 8", i32 0, i8* null]
 // WIN64: invoke void @might_throw()
 // WIN64-NEXT: to label %[[cont2:[^ ]*]] unwind label %[[catchswitch_inner:[^ ]*]]
 //
@@ -153,7 +153,7 @@ extern "C" void catch_nested() {
 // WIN64: %[[catchswitch_inner_scope:[^ ]*]] = catchswitch within %[[catchpad]] [label %[[catch_int_inner:[^ ]*]]] unwind to caller
 //
 // WIN64: [[catch_int_inner]]
-// WIN64: catchpad within %[[catchswitch_inner_scope]] [%rtti.TypeDescriptor2* @"\01??_R0H at 8", i32 0, i8* null]
+// WIN64: catchpad within %[[catchswitch_inner_scope]] [%rtti.TypeDescriptor2* @"??_R0H at 8", i32 0, i8* null]
 // WIN64-NEXT: call void @might_throw()
 // WIN64: catchret {{.*}} to label %[[catchret2:[^ ]*]]
 //

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp Fri Mar 16 13:36:49 2018
@@ -15,21 +15,21 @@ void HasEHCleanup() {
 }
 
 // With exceptions, we need to clean up at least one of these temporaries.
-// WIN32-LABEL: define dso_local void @"\01?HasEHCleanup@@YAXXZ"() {{.*}} {
+// WIN32-LABEL: define dso_local void @"?HasEHCleanup@@YAXXZ"() {{.*}} {
 // WIN32:   %[[base:.*]] = call i8* @llvm.stacksave()
 //    If this call throws, we have to restore the stack.
-// WIN32:   call void @"\01?getA@@YA?AUA@@XZ"(%struct.A* sret %{{.*}})
+// WIN32:   call void @"?getA@@YA?AUA@@XZ"(%struct.A* sret %{{.*}})
 //    If this call throws, we have to cleanup the first temporary.
-// WIN32:   invoke void @"\01?getA@@YA?AUA@@XZ"(%struct.A* sret %{{.*}})
+// WIN32:   invoke void @"?getA@@YA?AUA@@XZ"(%struct.A* sret %{{.*}})
 //    If this call throws, we have to cleanup the stacksave.
-// WIN32:   call i32 @"\01?TakesTwo@@YAHUA@@0 at Z"
+// WIN32:   call i32 @"?TakesTwo@@YAHUA@@0 at Z"
 // WIN32:   call void @llvm.stackrestore
 // WIN32:   ret void
 //
 //    There should be one dtor call for unwinding from the second getA.
 // WIN32:   cleanuppad
-// WIN32:   call x86_thiscallcc void @"\01??1A@@QAE at XZ"({{.*}})
-// WIN32-NOT: @"\01??1A@@QAE at XZ"
+// WIN32:   call x86_thiscallcc void @"??1A@@QAE at XZ"({{.*}})
+// WIN32-NOT: @"??1A@@QAE at XZ"
 // WIN32: }
 
 void TakeRef(const A &a);
@@ -37,33 +37,33 @@ int HasDeactivatedCleanups() {
   return TakesTwo((TakeRef(A()), A()), (TakeRef(A()), A()));
 }
 
-// WIN32-LABEL: define dso_local i32 @"\01?HasDeactivatedCleanups@@YAHXZ"() {{.*}} {
+// WIN32-LABEL: define dso_local i32 @"?HasDeactivatedCleanups@@YAHXZ"() {{.*}} {
 // WIN32:   %[[isactive:.*]] = alloca i1
 // WIN32:   call i8* @llvm.stacksave()
 // WIN32:   %[[argmem:.*]] = alloca inalloca [[argmem_ty:<{ %struct.A, %struct.A }>]]
 // WIN32:   %[[arg1:.*]] = getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %[[argmem]], i32 0, i32 1
-// WIN32:   call x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
-// WIN32:   invoke void @"\01?TakeRef@@YAXABUA@@@Z"
+// WIN32:   call x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
+// WIN32:   invoke void @"?TakeRef@@YAXABUA@@@Z"
 //
-// WIN32:   invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"(%struct.A* %[[arg1]])
+// WIN32:   invoke x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"(%struct.A* %[[arg1]])
 // WIN32:   store i1 true, i1* %[[isactive]]
 //
 // WIN32:   %[[arg0:.*]] = getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %[[argmem]], i32 0, i32 0
-// WIN32:   invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
-// WIN32:   invoke void @"\01?TakeRef@@YAXABUA@@@Z"
-// WIN32:   invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
+// WIN32:   invoke x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
+// WIN32:   invoke void @"?TakeRef@@YAXABUA@@@Z"
+// WIN32:   invoke x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
 // WIN32:   store i1 false, i1* %[[isactive]]
 //
-// WIN32:   invoke i32 @"\01?TakesTwo@@YAHUA@@0 at Z"([[argmem_ty]]* inalloca %[[argmem]])
+// WIN32:   invoke i32 @"?TakesTwo@@YAHUA@@0 at Z"([[argmem_ty]]* inalloca %[[argmem]])
 //        Destroy the two const ref temporaries.
-// WIN32:   call x86_thiscallcc void @"\01??1A@@QAE at XZ"({{.*}})
-// WIN32:   call x86_thiscallcc void @"\01??1A@@QAE at XZ"({{.*}})
+// WIN32:   call x86_thiscallcc void @"??1A@@QAE at XZ"({{.*}})
+// WIN32:   call x86_thiscallcc void @"??1A@@QAE at XZ"({{.*}})
 // WIN32:   ret i32
 //
 //        Conditionally destroy arg1.
 // WIN32:   %[[cond:.*]] = load i1, i1* %[[isactive]]
 // WIN32:   br i1 %[[cond]]
-// WIN32:   call x86_thiscallcc void @"\01??1A@@QAE at XZ"(%struct.A* %[[arg1]])
+// WIN32:   call x86_thiscallcc void @"??1A@@QAE at XZ"(%struct.A* %[[arg1]])
 // WIN32: }
 
 // Test putting the cleanups inside a conditional.
@@ -72,22 +72,22 @@ int HasConditionalCleanup(bool cond) {
   return (cond ? TakesTwo(A(), A()) : CouldThrow());
 }
 
-// WIN32-LABEL: define dso_local i32 @"\01?HasConditionalCleanup@@YAH_N at Z"(i1 zeroext %{{.*}}) {{.*}} {
+// WIN32-LABEL: define dso_local i32 @"?HasConditionalCleanup@@YAH_N at Z"(i1 zeroext %{{.*}}) {{.*}} {
 // WIN32:   store i1 false
 // WIN32:   br i1
 // WIN32:   call i8* @llvm.stacksave()
-// WIN32:   call x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"(%struct.A* %{{.*}})
+// WIN32:   call x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"(%struct.A* %{{.*}})
 // WIN32:   store i1 true
-// WIN32:   invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"(%struct.A* %{{.*}})
-// WIN32:   call i32 @"\01?TakesTwo@@YAHUA@@0 at Z"
+// WIN32:   invoke x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"(%struct.A* %{{.*}})
+// WIN32:   call i32 @"?TakesTwo@@YAHUA@@0 at Z"
 //
 // WIN32:   call void @llvm.stackrestore
 //
-// WIN32:   call i32 @"\01?CouldThrow@@YAHXZ"()
+// WIN32:   call i32 @"?CouldThrow@@YAHXZ"()
 //
 //        Only one dtor in the invoke for arg1
-// WIN32:   call x86_thiscallcc void @"\01??1A@@QAE at XZ"({{.*}})
-// WIN32-NOT: invoke x86_thiscallcc void @"\01??1A@@QAE at XZ"
+// WIN32:   call x86_thiscallcc void @"??1A@@QAE at XZ"({{.*}})
+// WIN32-NOT: invoke x86_thiscallcc void @"??1A@@QAE at XZ"
 // WIN32: }
 
 // Now test both.
@@ -95,7 +95,7 @@ int HasConditionalDeactivatedCleanups(bo
   return (cond ? TakesTwo((TakeRef(A()), A()), (TakeRef(A()), A())) : CouldThrow());
 }
 
-// WIN32-O0-LABEL: define dso_local i32 @"\01?HasConditionalDeactivatedCleanups@@YAH_N at Z"{{.*}} {
+// WIN32-O0-LABEL: define dso_local i32 @"?HasConditionalDeactivatedCleanups@@YAH_N at Z"{{.*}} {
 // WIN32-O0:   alloca i1
 // WIN32-O0:   %[[arg1_cond:.*]] = alloca i1
 //        Start all four cleanups as deactivated.
@@ -105,32 +105,32 @@ int HasConditionalDeactivatedCleanups(bo
 // WIN32-O0:   store i1 false
 // WIN32-O0:   br i1
 //        True condition.
-// WIN32-O0:   call x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
+// WIN32-O0:   call x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
 // WIN32-O0:   store i1 true
-// WIN32-O0:   invoke void @"\01?TakeRef@@YAXABUA@@@Z"
-// WIN32-O0:   invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
+// WIN32-O0:   invoke void @"?TakeRef@@YAXABUA@@@Z"
+// WIN32-O0:   invoke x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
 // WIN32-O0:   store i1 true, i1* %[[arg1_cond]]
-// WIN32-O0:   invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
+// WIN32-O0:   invoke x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
 // WIN32-O0:   store i1 true
-// WIN32-O0:   invoke void @"\01?TakeRef@@YAXABUA@@@Z"
-// WIN32-O0:   invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
+// WIN32-O0:   invoke void @"?TakeRef@@YAXABUA@@@Z"
+// WIN32-O0:   invoke x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
 // WIN32-O0:   store i1 true
 // WIN32-O0:   store i1 false, i1* %[[arg1_cond]]
-// WIN32-O0:   invoke i32 @"\01?TakesTwo@@YAHUA@@0 at Z"
+// WIN32-O0:   invoke i32 @"?TakesTwo@@YAHUA@@0 at Z"
 //        False condition.
-// WIN32-O0:   invoke i32 @"\01?CouldThrow@@YAHXZ"()
+// WIN32-O0:   invoke i32 @"?CouldThrow@@YAHXZ"()
 //        Two normal cleanups for TakeRef args.
-// WIN32-O0:   call x86_thiscallcc void @"\01??1A@@QAE at XZ"({{.*}})
-// WIN32-O0-NOT:   invoke x86_thiscallcc void @"\01??1A@@QAE at XZ"
+// WIN32-O0:   call x86_thiscallcc void @"??1A@@QAE at XZ"({{.*}})
+// WIN32-O0-NOT:   invoke x86_thiscallcc void @"??1A@@QAE at XZ"
 // WIN32-O0:   ret i32
 //
 //        Somewhere in the landing pad soup, we conditionally destroy arg1.
 // WIN32-O0:   %[[isactive:.*]] = load i1, i1* %[[arg1_cond]]
 // WIN32-O0:   br i1 %[[isactive]]
-// WIN32-O0:   call x86_thiscallcc void @"\01??1A@@QAE at XZ"({{.*}})
+// WIN32-O0:   call x86_thiscallcc void @"??1A@@QAE at XZ"({{.*}})
 // WIN32-O0: }
 
-// WIN32-O3-LABEL: define dso_local i32 @"\01?HasConditionalDeactivatedCleanups@@YAH_N at Z"{{.*}} {
+// WIN32-O3-LABEL: define dso_local i32 @"?HasConditionalDeactivatedCleanups@@YAH_N at Z"{{.*}} {
 // WIN32-O3:   alloca i1
 // WIN32-O3:   alloca i1
 // WIN32-O3:   %[[arg1_cond:.*]] = alloca i1
@@ -143,29 +143,29 @@ int HasConditionalDeactivatedCleanups(bo
 // WIN32-O3:   store i1 false
 // WIN32-O3:   br i1
 //        True condition.
-// WIN32-O3:   call x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
+// WIN32-O3:   call x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
 // WIN32-O3:   store i1 true
-// WIN32-O3:   invoke void @"\01?TakeRef@@YAXABUA@@@Z"
-// WIN32-O3:   invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
+// WIN32-O3:   invoke void @"?TakeRef@@YAXABUA@@@Z"
+// WIN32-O3:   invoke x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
 // WIN32-O3:   store i1 true, i1* %[[arg1_cond]]
-// WIN32-O3:   invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
+// WIN32-O3:   invoke x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
 // WIN32-O3:   store i1 true
-// WIN32-O3:   invoke void @"\01?TakeRef@@YAXABUA@@@Z"
-// WIN32-O3:   invoke x86_thiscallcc %struct.A* @"\01??0A@@QAE at XZ"
+// WIN32-O3:   invoke void @"?TakeRef@@YAXABUA@@@Z"
+// WIN32-O3:   invoke x86_thiscallcc %struct.A* @"??0A@@QAE at XZ"
 // WIN32-O3:   store i1 true
 // WIN32-O3:   store i1 false, i1* %[[arg1_cond]]
-// WIN32-O3:   invoke i32 @"\01?TakesTwo@@YAHUA@@0 at Z"
+// WIN32-O3:   invoke i32 @"?TakesTwo@@YAHUA@@0 at Z"
 //        False condition.
-// WIN32-O3:   invoke i32 @"\01?CouldThrow@@YAHXZ"()
+// WIN32-O3:   invoke i32 @"?CouldThrow@@YAHXZ"()
 //        Two normal cleanups for TakeRef args.
-// WIN32-O3:   call x86_thiscallcc void @"\01??1A@@QAE at XZ"({{.*}})
-// WIN32-O3-NOT:   invoke x86_thiscallcc void @"\01??1A@@QAE at XZ"
+// WIN32-O3:   call x86_thiscallcc void @"??1A@@QAE at XZ"({{.*}})
+// WIN32-O3-NOT:   invoke x86_thiscallcc void @"??1A@@QAE at XZ"
 // WIN32-O3:   ret i32
 //
 //        Somewhere in the landing pad soup, we conditionally destroy arg1.
 // WIN32-O3:   %[[isactive:.*]] = load i1, i1* %[[arg1_cond]]
 // WIN32-O3:   br i1 %[[isactive]]
-// WIN32-O3:   call x86_thiscallcc void @"\01??1A@@QAE at XZ"({{.*}})
+// WIN32-O3:   call x86_thiscallcc void @"??1A@@QAE at XZ"({{.*}})
 // WIN32-O3: }
 
 namespace crash_on_partial_destroy {
@@ -187,7 +187,7 @@ C::C() { foo(); }
 
 // Verify that we don't bother with a vbtable lookup when adjusting the this
 // pointer to call a base destructor from a constructor while unwinding.
-// WIN32-LABEL: define dso_local {{.*}} @"\01??0C at crash_on_partial_destroy@@QAE at XZ"{{.*}} {
+// WIN32-LABEL: define dso_local {{.*}} @"??0C at crash_on_partial_destroy@@QAE at XZ"{{.*}} {
 // WIN32:      cleanuppad
 //
 //        We shouldn't do any vbptr loads, just constant GEPs.
@@ -195,7 +195,7 @@ C::C() { foo(); }
 // WIN32:      getelementptr i8, i8* %{{.*}}, i32 4
 // WIN32-NOT:  load
 // WIN32:      bitcast i8* %{{.*}} to %"struct.crash_on_partial_destroy::B"*
-// WIN32:      call x86_thiscallcc void @"\01??1B at crash_on_partial_destroy@@UAE at XZ"
+// WIN32:      call x86_thiscallcc void @"??1B at crash_on_partial_destroy@@UAE at XZ"
 //
 // WIN32-NOT:  load
 // WIN32:      bitcast %"struct.crash_on_partial_destroy::C"* %{{.*}} to i8*
@@ -203,7 +203,7 @@ C::C() { foo(); }
 // WIN32:      getelementptr inbounds i8, i8* %{{.*}}, i32 4
 // WIN32-NOT:  load
 // WIN32:      bitcast i8* %{{.*}} to %"struct.crash_on_partial_destroy::A"*
-// WIN32:      call x86_thiscallcc void @"\01??1A at crash_on_partial_destroy@@UAE at XZ"({{.*}})
+// WIN32:      call x86_thiscallcc void @"??1A at crash_on_partial_destroy@@UAE at XZ"({{.*}})
 // WIN32: }
 }
 
@@ -217,16 +217,16 @@ void f() {
   g();
 }
 
-// WIN32-LABEL: define dso_local void @"\01?f at dont_call_terminate@@YAXXZ"()
-// WIN32: invoke void @"\01?g at dont_call_terminate@@YAXXZ"()
+// WIN32-LABEL: define dso_local void @"?f at dont_call_terminate@@YAXXZ"()
+// WIN32: invoke void @"?g at dont_call_terminate@@YAXXZ"()
 // WIN32-NEXT: to label %[[cont:[^ ]*]] unwind label %[[lpad:[^ ]*]]
 //
 // WIN32: [[cont]]
-// WIN32: call x86_thiscallcc void @"\01??1C at dont_call_terminate@@QAE at XZ"({{.*}})
+// WIN32: call x86_thiscallcc void @"??1C at dont_call_terminate@@QAE at XZ"({{.*}})
 //
 // WIN32: [[lpad]]
 // WIN32-NEXT: cleanuppad
-// WIN32: call x86_thiscallcc void @"\01??1C at dont_call_terminate@@QAE at XZ"({{.*}})
+// WIN32: call x86_thiscallcc void @"??1C at dont_call_terminate@@QAE at XZ"({{.*}})
 }
 
 namespace noexcept_false_dtor {
@@ -239,11 +239,11 @@ void f() {
 }
 }
 
-// WIN32-LABEL: define dso_local void @"\01?f at noexcept_false_dtor@@YAXXZ"()
-// WIN32: invoke i32 @"\01?CouldThrow@@YAHXZ"()
-// WIN32: call x86_thiscallcc void @"\01??1D at noexcept_false_dtor@@QAE at XZ"(%"struct.noexcept_false_dtor::D"* %{{.*}})
+// WIN32-LABEL: define dso_local void @"?f at noexcept_false_dtor@@YAXXZ"()
+// WIN32: invoke i32 @"?CouldThrow@@YAHXZ"()
+// WIN32: call x86_thiscallcc void @"??1D at noexcept_false_dtor@@QAE at XZ"(%"struct.noexcept_false_dtor::D"* %{{.*}})
 // WIN32: cleanuppad
-// WIN32: call x86_thiscallcc void @"\01??1D at noexcept_false_dtor@@QAE at XZ"(%"struct.noexcept_false_dtor::D"* %{{.*}})
+// WIN32: call x86_thiscallcc void @"??1D at noexcept_false_dtor@@QAE at XZ"(%"struct.noexcept_false_dtor::D"* %{{.*}})
 // WIN32: cleanupret
 
 namespace lifetime_marker {
@@ -256,21 +256,21 @@ void f() {
   g();
 }
 
-// WIN32-LIFETIME-LABEL: define dso_local void @"\01?f at lifetime_marker@@YAXXZ"()
+// WIN32-LIFETIME-LABEL: define dso_local void @"?f at lifetime_marker@@YAXXZ"()
 // WIN32-LIFETIME: %[[c:.*]] = alloca %"struct.lifetime_marker::C"
 // WIN32-LIFETIME: %[[bc0:.*]] = bitcast %"struct.lifetime_marker::C"* %c to i8*
 // WIN32-LIFETIME: call void @llvm.lifetime.start.p0i8(i64 1, i8* %[[bc0]])
-// WIN32-LIFETIME: invoke void @"\01?g at lifetime_marker@@YAXXZ"()
+// WIN32-LIFETIME: invoke void @"?g at lifetime_marker@@YAXXZ"()
 // WIN32-LIFETIME-NEXT: to label %[[cont:[^ ]*]] unwind label %[[lpad0:[^ ]*]]
 //
 // WIN32-LIFETIME: [[cont]]
-// WIN32-LIFETIME: call x86_thiscallcc void @"\01??1C at lifetime_marker@@QAE at XZ"({{.*}})
+// WIN32-LIFETIME: call x86_thiscallcc void @"??1C at lifetime_marker@@QAE at XZ"({{.*}})
 // WIN32-LIFETIME: %[[bc1:.*]] = bitcast %"struct.lifetime_marker::C"* %[[c]] to i8*
 // WIN32-LIFETIME: call void @llvm.lifetime.end.p0i8(i64 1, i8* %[[bc1]])
 //
 // WIN32-LIFETIME: [[lpad0]]
 // WIN32-LIFETIME-NEXT: cleanuppad
-// WIN32-LIFETIME: call x86_thiscallcc void @"\01??1C at lifetime_marker@@QAE at XZ"({{.*}})
+// WIN32-LIFETIME: call x86_thiscallcc void @"??1C at lifetime_marker@@QAE at XZ"({{.*}})
 // WIN32-LIFETIME: cleanupret {{.*}} unwind label %[[lpad1:[^ ]*]]
 //
 // WIN32-LIFETIME: [[lpad1]]
@@ -293,7 +293,7 @@ struct class_0 : class_1 {
 };
 
 class_0::class_0() {
-  // WIN32: define dso_local x86_thiscallcc %struct.class_0* @"\01??0class_0@@QAE at XZ"(%struct.class_0* returned %this, i32 %is_most_derived) 
+  // WIN32: define dso_local x86_thiscallcc %struct.class_0* @"??0class_0@@QAE at XZ"(%struct.class_0* returned %this, i32 %is_most_derived) 
   // WIN32: store i32 %is_most_derived, i32* %[[IS_MOST_DERIVED_VAR:.*]], align 4
   // WIN32: %[[IS_MOST_DERIVED_VAL:.*]] = load i32, i32* %[[IS_MOST_DERIVED_VAR]]
   // WIN32: %[[SHOULD_CALL_VBASE_CTORS:.*]] = icmp ne i32 %[[IS_MOST_DERIVED_VAL]], 0
@@ -309,7 +309,7 @@ class_0::class_0() {
   // WIN32-NEXT: %[[SHOULD_CALL_VBASE_DTOR:.*]] = icmp ne i32 %[[IS_MOST_DERIVED_VAL]], 0
   // WIN32-NEXT: br i1 %[[SHOULD_CALL_VBASE_DTOR]], label %[[DTOR_VBASE:.*]], label %[[SKIP_VBASE:.*]]
   // WIN32: [[DTOR_VBASE]]
-  // WIN32-NEXT: call x86_thiscallcc void @"\01??1class_2@@UAE at XZ"
+  // WIN32-NEXT: call x86_thiscallcc void @"??1class_2@@UAE at XZ"
   // WIN32: br label %[[SKIP_VBASE]]
   // WIN32: [[SKIP_VBASE]]
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp Fri Mar 16 13:36:49 2018
@@ -6,11 +6,11 @@ void never_throws() noexcept(true) {
   may_throw();
 }
 
-// CHECK-LABEL: define dso_local void @"\01?never_throws@@YAXXZ"()
+// CHECK-LABEL: define dso_local void @"?never_throws@@YAXXZ"()
 // CHECK-SAME:          personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*)
-// CHECK:      invoke void @"\01?may_throw@@YAXXZ"()
+// CHECK:      invoke void @"?may_throw@@YAXXZ"()
 // CHECK:      %[[cp:.*]] = cleanuppad within none []
-// MSVC2013:      call void @"\01?terminate@@YAXXZ"()
+// MSVC2013:      call void @"?terminate@@YAXXZ"()
 // MSVC2015:      call void @__std_terminate()
 // CHECK-SAME:  [ "funclet"(token %[[cp]]) ]
 // CHECK-NEXT: unreachable

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-extern-template.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-extern-template.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-extern-template.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-extern-template.cpp Fri Mar 16 13:36:49 2018
@@ -3,17 +3,17 @@
 // Even though Foo<int> has an extern template declaration, we have to emit our
 // own copy the vftable when emitting the available externally constructor.
 
-// CHECK: @"\01??_7?$Foo at H@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [
-// CHECK-SAME:   i8* bitcast (i8* (%struct.Foo*, i32)* @"\01??_G?$Foo at H@@UEAAPEAXI at Z" to i8*)
+// CHECK: @"??_7?$Foo at H@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [
+// CHECK-SAME:   i8* bitcast (i8* (%struct.Foo*, i32)* @"??_G?$Foo at H@@UEAAPEAXI at Z" to i8*)
 // CHECK-SAME: ] }, comdat
 
-// CHECK-LABEL: define dso_local %struct.Foo* @"\01?f@@YAPEAU?$Foo at H@@XZ"()
-// CHECK: call %struct.Foo* @"\01??0?$Foo at H@@QEAA at XZ"(%struct.Foo* %{{.*}})
+// CHECK-LABEL: define dso_local %struct.Foo* @"?f@@YAPEAU?$Foo at H@@XZ"()
+// CHECK: call %struct.Foo* @"??0?$Foo at H@@QEAA at XZ"(%struct.Foo* %{{.*}})
 
-// CHECK: define available_externally dso_local %struct.Foo* @"\01??0?$Foo at H@@QEAA at XZ"(%struct.Foo* returned %this)
-// CHECK:   store {{.*}} @"\01??_7?$Foo at H@@6B@"
+// CHECK: define available_externally dso_local %struct.Foo* @"??0?$Foo at H@@QEAA at XZ"(%struct.Foo* returned %this)
+// CHECK:   store {{.*}} @"??_7?$Foo at H@@6B@"
 
-// CHECK: define linkonce_odr dso_local i8* @"\01??_G?$Foo at H@@UEAAPEAXI at Z"(%struct.Foo* %this, i32 %should_call_delete)
+// CHECK: define linkonce_odr dso_local i8* @"??_G?$Foo at H@@UEAAPEAXI at Z"(%struct.Foo* %this, i32 %should_call_delete)
 
 struct Base {
   virtual ~Base();

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-member-pointers.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-member-pointers.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-member-pointers.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-member-pointers.cpp Fri Mar 16 13:36:49 2018
@@ -15,17 +15,17 @@ void PR26313_f(PR26313_FUNC *p) { delete
 struct PR26313_Z;
 int PR26313_Z::**a = nullptr;
 int PR26313_Z::*b = *a;
-// CHECK-DAG: @"\01?a@@3PAPQPR26313_Z@@HA" = dso_local global %0* null, align 4
-// CHECK-DAG: @"\01?b@@3PQPR26313_Z@@HQ1@" = dso_local global { i32, i32, i32 } { i32 0, i32 0, i32 -1 }, align 4
+// CHECK-DAG: @"?a@@3PAPQPR26313_Z@@HA" = dso_local global %0* null, align 4
+// CHECK-DAG: @"?b@@3PQPR26313_Z@@HQ1@" = dso_local global { i32, i32, i32 } { i32 0, i32 0, i32 -1 }, align 4
 
 namespace PR20947 {
 struct A;
 int A::**a = nullptr;
-// CHECK-DAG: @"\01?a at PR20947@@3PAPQA at 1@HA" = dso_local global %{{.*}}* null, align 4
+// CHECK-DAG: @"?a at PR20947@@3PAPQA at 1@HA" = dso_local global %{{.*}}* null, align 4
 
 struct B;
 int B::*&b = b;
-// CHECK-DAG: @"\01?b at PR20947@@3AAPQB at 1@HA" = dso_local global %{{.*}}* null, align 4
+// CHECK-DAG: @"?b at PR20947@@3AAPQB at 1@HA" = dso_local global %{{.*}}* null, align 4
 }
 
 namespace PR20017 {
@@ -35,7 +35,7 @@ struct A {
 };
 struct B;
 auto a = &A<B>::m_fn1;
-// CHECK-DAG: @"\01?a at PR20017@@3P8?$A at UB@PR20017@@@1 at AEPQB@1 at HXZQ21@" = dso_local global i8* bitcast ({ i32, i32, i32 } ({{.*}}*)* @"\01?m_fn1@?$A at UB@PR20017@@@PR20017@@QAEPQB at 2@HXZ" to i8*), align 4
+// CHECK-DAG: @"?a at PR20017@@3P8?$A at UB@PR20017@@@1 at AEPQB@1 at HXZQ21@" = dso_local global i8* bitcast ({ i32, i32, i32 } ({{.*}}*)* @"?m_fn1@?$A at UB@PR20017@@@PR20017@@QAEPQB at 2@HXZ" to i8*), align 4
 }
 
 #ifndef INCOMPLETE_VIRTUAL
@@ -89,24 +89,24 @@ int Virtual    ::*v_d_memptr;
 int NonZeroVBPtr::*n_d_memptr;
 int Unspecified::*u_d_memptr;
 int UnspecSingle::*us_d_memptr;
-// CHECK: @"\01?s_d_memptr@@3PQSingle@@HQ1@" = dso_local global i32 -1, align 4
-// CHECK: @"\01?p_d_memptr@@3PQPolymorphic@@HQ1@" = dso_local global i32 0, align 4
-// CHECK: @"\01?m_d_memptr@@3PQMultiple@@HQ1@" = dso_local global i32 -1, align 4
-// CHECK: @"\01?v_d_memptr@@3PQVirtual@@HQ1@" = dso_local global { i32, i32 }
+// CHECK: @"?s_d_memptr@@3PQSingle@@HQ1@" = dso_local global i32 -1, align 4
+// CHECK: @"?p_d_memptr@@3PQPolymorphic@@HQ1@" = dso_local global i32 0, align 4
+// CHECK: @"?m_d_memptr@@3PQMultiple@@HQ1@" = dso_local global i32 -1, align 4
+// CHECK: @"?v_d_memptr@@3PQVirtual@@HQ1@" = dso_local global { i32, i32 }
 // CHECK:   { i32 0, i32 -1 }, align 4
-// CHECK: @"\01?n_d_memptr@@3PQNonZeroVBPtr@@HQ1@" = dso_local global { i32, i32 }
+// CHECK: @"?n_d_memptr@@3PQNonZeroVBPtr@@HQ1@" = dso_local global { i32, i32 }
 // CHECK:   { i32 0, i32 -1 }, align 4
-// CHECK: @"\01?u_d_memptr@@3PQUnspecified@@HQ1@" = dso_local global { i32, i32, i32 }
+// CHECK: @"?u_d_memptr@@3PQUnspecified@@HQ1@" = dso_local global { i32, i32, i32 }
 // CHECK:   { i32 0, i32 0, i32 -1 }, align 4
-// CHECK: @"\01?us_d_memptr@@3PQUnspecSingle@@HQ1@" = dso_local global { i32, i32, i32 }
+// CHECK: @"?us_d_memptr@@3PQUnspecSingle@@HQ1@" = dso_local global { i32, i32, i32 }
 // CHECK:   { i32 0, i32 0, i32 -1 }, align 4
 
 void (Single  ::*s_f_memptr)();
 void (Multiple::*m_f_memptr)();
 void (Virtual ::*v_f_memptr)();
-// CHECK: @"\01?s_f_memptr@@3P8Single@@AEXXZQ1@" = dso_local global i8* null, align 4
-// CHECK: @"\01?m_f_memptr@@3P8Multiple@@AEXXZQ1@" = dso_local global { i8*, i32 } zeroinitializer, align 4
-// CHECK: @"\01?v_f_memptr@@3P8Virtual@@AEXXZQ1@" = dso_local global { i8*, i32, i32 } zeroinitializer, align 4
+// CHECK: @"?s_f_memptr@@3P8Single@@AEXXZQ1@" = dso_local global i8* null, align 4
+// CHECK: @"?m_f_memptr@@3P8Multiple@@AEXXZQ1@" = dso_local global { i8*, i32 } zeroinitializer, align 4
+// CHECK: @"?v_f_memptr@@3P8Virtual@@AEXXZQ1@" = dso_local global { i8*, i32, i32 } zeroinitializer, align 4
 
 // We can define Unspecified after locking in the inheritance model.
 struct Unspecified : Multiple, Virtual {
@@ -125,16 +125,16 @@ void (Multiple   ::*m_f_mp)() = &B2::foo
 void (Virtual    ::*v_f_mp)() = &Virtual::foo;
 void (Unspecified::*u_f_mp)() = &Unspecified::foo;
 void (UnspecSingle::*us_f_mp)() = &UnspecSingle::foo;
-// CHECK: @"\01?s_f_mp at Const@@3P8Single@@AEXXZQ2@" =
-// CHECK:   global i8* bitcast ({{.*}} @"\01?foo at Single@@QAEXXZ" to i8*), align 4
-// CHECK: @"\01?m_f_mp at Const@@3P8Multiple@@AEXXZQ2@" =
-// CHECK:   global { i8*, i32 } { i8* bitcast ({{.*}} @"\01?foo at B2@@QAEXXZ" to i8*), i32 4 }, align 4
-// CHECK: @"\01?v_f_mp at Const@@3P8Virtual@@AEXXZQ2@" =
-// CHECK:   global { i8*, i32, i32 } { i8* bitcast ({{.*}} @"\01?foo at Virtual@@QAEXXZ" to i8*), i32 0, i32 0 }, align 4
-// CHECK: @"\01?u_f_mp at Const@@3P8Unspecified@@AEXXZQ2@" =
-// CHECK:   global { i8*, i32, i32, i32 } { i8* bitcast ({{.*}} @"\01?foo at Unspecified@@QAEXXZ" to i8*), i32 0, i32 0, i32 0 }, align 4
-// CHECK: @"\01?us_f_mp at Const@@3P8UnspecSingle@@AEXXZQ2@" =
-// CHECK:   global { i8*, i32, i32, i32 } { i8* bitcast ({{.*}} @"\01?foo at UnspecSingle@@QAEXXZ" to i8*), i32 0, i32 0, i32 0 }, align 4
+// CHECK: @"?s_f_mp at Const@@3P8Single@@AEXXZQ2@" =
+// CHECK:   global i8* bitcast ({{.*}} @"?foo at Single@@QAEXXZ" to i8*), align 4
+// CHECK: @"?m_f_mp at Const@@3P8Multiple@@AEXXZQ2@" =
+// CHECK:   global { i8*, i32 } { i8* bitcast ({{.*}} @"?foo at B2@@QAEXXZ" to i8*), i32 4 }, align 4
+// CHECK: @"?v_f_mp at Const@@3P8Virtual@@AEXXZQ2@" =
+// CHECK:   global { i8*, i32, i32 } { i8* bitcast ({{.*}} @"?foo at Virtual@@QAEXXZ" to i8*), i32 0, i32 0 }, align 4
+// CHECK: @"?u_f_mp at Const@@3P8Unspecified@@AEXXZQ2@" =
+// CHECK:   global { i8*, i32, i32, i32 } { i8* bitcast ({{.*}} @"?foo at Unspecified@@QAEXXZ" to i8*), i32 0, i32 0, i32 0 }, align 4
+// CHECK: @"?us_f_mp at Const@@3P8UnspecSingle@@AEXXZQ2@" =
+// CHECK:   global { i8*, i32, i32, i32 } { i8* bitcast ({{.*}} @"?foo at UnspecSingle@@QAEXXZ" to i8*), i32 0, i32 0, i32 0 }, align 4
 }
 
 namespace CastParam {
@@ -150,16 +150,16 @@ struct B { int b; };
 struct C : B, A { int c; };
 
 void (A::*ptr1)(void *) = (void (A::*)(void *)) &A::foo;
-// CHECK: @"\01?ptr1 at CastParam@@3P8A at 1@AEXPAX at ZQ21@" =
-// CHECK:   global i8* bitcast (void ({{.*}})* @"\01?foo at A@CastParam@@QAEXPAU12@@Z" to i8*), align 4
+// CHECK: @"?ptr1 at CastParam@@3P8A at 1@AEXPAX at ZQ21@" =
+// CHECK:   global i8* bitcast (void ({{.*}})* @"?foo at A@CastParam@@QAEXPAU12@@Z" to i8*), align 4
 
 // Try a reinterpret_cast followed by a memptr conversion.
 void (C::*ptr2)(void *) = (void (C::*)(void *)) (void (A::*)(void *)) &A::foo;
-// CHECK: @"\01?ptr2 at CastParam@@3P8C at 1@AEXPAX at ZQ21@" =
-// CHECK:   global { i8*, i32 } { i8* bitcast (void ({{.*}})* @"\01?foo at A@CastParam@@QAEXPAU12@@Z" to i8*), i32 4 }, align 4
+// CHECK: @"?ptr2 at CastParam@@3P8C at 1@AEXPAX at ZQ21@" =
+// CHECK:   global { i8*, i32 } { i8* bitcast (void ({{.*}})* @"?foo at A@CastParam@@QAEXPAU12@@Z" to i8*), i32 4 }, align 4
 
 void (C::*ptr3)(void *) = (void (C::*)(void *)) (void (A::*)(void *)) (void (A::*)(A *)) 0;
-// CHECK: @"\01?ptr3 at CastParam@@3P8C at 1@AEXPAX at ZQ21@" =
+// CHECK: @"?ptr3 at CastParam@@3P8C at 1@AEXPAX at ZQ21@" =
 // CHECK:   global { i8*, i32 } zeroinitializer, align 4
 
 struct D : C {
@@ -170,11 +170,11 @@ struct D : C {
 // Try a cast that changes the inheritance model.  Null for D is 0, but null for
 // C is -1.  We need the cast to long in order to hit the non-APValue path.
 int C::*ptr4 = (int C::*) (int D::*) (long D::*) 0;
-// CHECK: @"\01?ptr4 at CastParam@@3PQC at 1@HQ21@" = dso_local global i32 -1, align 4
+// CHECK: @"?ptr4 at CastParam@@3PQC at 1@HQ21@" = dso_local global i32 -1, align 4
 
 // MSVC rejects this but we accept it.
 int C::*ptr5 = (int C::*) (long D::*) 0;
-// CHECK: @"\01?ptr5 at CastParam@@3PQC at 1@HQ21@" = dso_local global i32 -1, align 4
+// CHECK: @"?ptr5 at CastParam@@3PQC at 1@HQ21@" = dso_local global i32 -1, align 4
 }
 
 struct UnspecWithVBPtr;
@@ -191,23 +191,23 @@ void EmitNonVirtualMemberPointers() {
   void (Virtual    ::*v_f_memptr)() = &Virtual::foo;
   void (Unspecified::*u_f_memptr)() = &Unspecified::foo;
   void (UnspecWithVBPtr::*u2_f_memptr)() = &UnspecWithVBPtr::foo;
-// CHECK: define dso_local void @"\01?EmitNonVirtualMemberPointers@@YAXXZ"() {{.*}} {
+// CHECK: define dso_local void @"?EmitNonVirtualMemberPointers@@YAXXZ"() {{.*}} {
 // CHECK:   alloca i8*, align 4
 // CHECK:   alloca { i8*, i32 }, align 4
 // CHECK:   alloca { i8*, i32, i32 }, align 4
 // CHECK:   alloca { i8*, i32, i32, i32 }, align 4
-// CHECK:   store i8* bitcast (void (%{{.*}}*)* @"\01?foo at Single@@QAEXXZ" to i8*), i8** %{{.*}}, align 4
+// CHECK:   store i8* bitcast (void (%{{.*}}*)* @"?foo at Single@@QAEXXZ" to i8*), i8** %{{.*}}, align 4
 // CHECK:   store { i8*, i32 }
-// CHECK:     { i8* bitcast (void (%{{.*}}*)* @"\01?foo at Multiple@@QAEXXZ" to i8*), i32 0 },
+// CHECK:     { i8* bitcast (void (%{{.*}}*)* @"?foo at Multiple@@QAEXXZ" to i8*), i32 0 },
 // CHECK:     { i8*, i32 }* %{{.*}}, align 4
 // CHECK:   store { i8*, i32, i32 }
-// CHECK:     { i8* bitcast (void (%{{.*}}*)* @"\01?foo at Virtual@@QAEXXZ" to i8*), i32 0, i32 0 },
+// CHECK:     { i8* bitcast (void (%{{.*}}*)* @"?foo at Virtual@@QAEXXZ" to i8*), i32 0, i32 0 },
 // CHECK:     { i8*, i32, i32 }* %{{.*}}, align 4
 // CHECK:   store { i8*, i32, i32, i32 }
-// CHECK:     { i8* bitcast (void (%{{.*}}*)* @"\01?foo at Unspecified@@QAEXXZ" to i8*), i32 0, i32 0, i32 0 },
+// CHECK:     { i8* bitcast (void (%{{.*}}*)* @"?foo at Unspecified@@QAEXXZ" to i8*), i32 0, i32 0, i32 0 },
 // CHECK:     { i8*, i32, i32, i32 }* %{{.*}}, align 4
 // CHECK:   store { i8*, i32, i32, i32 }
-// CHECK:     { i8* bitcast (void (%{{.*}}*)* @"\01?foo at UnspecWithVBPtr@@QAEXXZ" to i8*),
+// CHECK:     { i8* bitcast (void (%{{.*}}*)* @"?foo at UnspecWithVBPtr@@QAEXXZ" to i8*),
 // CHECK:       i32 0, i32 0, i32 0 },
 // CHECK:     { i8*, i32, i32, i32 }* %{{.*}}, align 4
 // CHECK:   ret void
@@ -221,7 +221,7 @@ void podMemPtrs() {
   if (memptr)
     memptr = 0;
 // Check that member pointers use the right offsets and that null is -1.
-// CHECK:      define dso_local void @"\01?podMemPtrs@@YAXXZ"() {{.*}} {
+// CHECK:      define dso_local void @"?podMemPtrs@@YAXXZ"() {{.*}} {
 // CHECK:        %[[memptr:.*]] = alloca i32, align 4
 // CHECK-NEXT:   store i32 0, i32* %[[memptr]], align 4
 // CHECK-NEXT:   store i32 4, i32* %[[memptr]], align 4
@@ -241,7 +241,7 @@ void polymorphicMemPtrs() {
     memptr = 0;
 // Member pointers for polymorphic classes include the vtable slot in their
 // offset and use 0 to represent null.
-// CHECK:      define dso_local void @"\01?polymorphicMemPtrs@@YAXXZ"() {{.*}} {
+// CHECK:      define dso_local void @"?polymorphicMemPtrs@@YAXXZ"() {{.*}} {
 // CHECK:        %[[memptr:.*]] = alloca i32, align 4
 // CHECK-NEXT:   store i32 4, i32* %[[memptr]], align 4
 // CHECK-NEXT:   store i32 8, i32* %[[memptr]], align 4
@@ -255,7 +255,7 @@ void polymorphicMemPtrs() {
 
 bool nullTestDataUnspecified(int Unspecified::*mp) {
   return mp;
-// CHECK: define dso_local zeroext i1 @"\01?nullTestDataUnspecified@@YA_NPQUnspecified@@H at Z"{{.*}} {
+// CHECK: define dso_local zeroext i1 @"?nullTestDataUnspecified@@YA_NPQUnspecified@@H at Z"{{.*}} {
 // CHECK:   %{{.*}} = load { i32, i32, i32 }, { i32, i32, i32 }* %{{.*}}, align 4
 // CHECK:   store { i32, i32, i32 } {{.*}} align 4
 // CHECK:   %[[mp:.*]] = load { i32, i32, i32 }, { i32, i32, i32 }* %{{.*}}, align 4
@@ -271,13 +271,13 @@ bool nullTestDataUnspecified(int Unspeci
 // CHECK: }
 
 // Pass this large type indirectly.
-// X64-LABEL: define dso_local zeroext i1 @"\01?nullTestDataUnspecified@@
+// X64-LABEL: define dso_local zeroext i1 @"?nullTestDataUnspecified@@
 // X64:             ({ i32, i32, i32 }*)
 }
 
 bool nullTestFunctionUnspecified(void (Unspecified::*mp)()) {
   return mp;
-// CHECK: define dso_local zeroext i1 @"\01?nullTestFunctionUnspecified@@YA_NP8Unspecified@@AEXXZ at Z"{{.*}} {
+// CHECK: define dso_local zeroext i1 @"?nullTestFunctionUnspecified@@YA_NP8Unspecified@@AEXXZ at Z"{{.*}} {
 // CHECK:   %{{.*}} = load { i8*, i32, i32, i32 }, { i8*, i32, i32, i32 }* %{{.*}}, align 4
 // CHECK:   store { i8*, i32, i32, i32 } {{.*}} align 4
 // CHECK:   %[[mp:.*]] = load { i8*, i32, i32, i32 }, { i8*, i32, i32, i32 }* %{{.*}}, align 4
@@ -291,7 +291,7 @@ int loadDataMemberPointerVirtual(Virtual
   return o->*memptr;
 // Test that we can unpack this aggregate member pointer and load the member
 // data pointer.
-// CHECK: define dso_local i32 @"\01?loadDataMemberPointerVirtual@@YAHPAUVirtual@@PQ1 at H@Z"{{.*}} {
+// CHECK: define dso_local i32 @"?loadDataMemberPointerVirtual@@YAHPAUVirtual@@PQ1 at H@Z"{{.*}} {
 // CHECK:   %[[o:.*]] = load %{{.*}}*, %{{.*}}** %{{.*}}, align 4
 // CHECK:   %[[memptr:.*]] = load { i32, i32 }, { i32, i32 }* %{{.*}}, align 4
 // CHECK:   %[[memptr0:.*]] = extractvalue { i32, i32 } %[[memptr:.*]], 0
@@ -312,7 +312,7 @@ int loadDataMemberPointerVirtual(Virtual
 
 // A two-field data memptr on x64 gets coerced to i64 and is passed in a
 // register or memory.
-// X64-LABEL: define dso_local i32 @"\01?loadDataMemberPointerVirtual@@YAHPEAUVirtual@@PEQ1 at H@Z"
+// X64-LABEL: define dso_local i32 @"?loadDataMemberPointerVirtual@@YAHPEAUVirtual@@PEQ1 at H@Z"
 // X64:             (%struct.Virtual* %o, i64 %memptr.coerce)
 }
 
@@ -320,7 +320,7 @@ int loadDataMemberPointerUnspecified(Uns
   return o->*memptr;
 // Test that we can unpack this aggregate member pointer and load the member
 // data pointer.
-// CHECK: define dso_local i32 @"\01?loadDataMemberPointerUnspecified@@YAHPAUUnspecified@@PQ1 at H@Z"{{.*}} {
+// CHECK: define dso_local i32 @"?loadDataMemberPointerUnspecified@@YAHPAUUnspecified@@PQ1 at H@Z"{{.*}} {
 // CHECK:   %[[o:.*]] = load %{{.*}}*, %{{.*}}** %{{.*}}, align 4
 // CHECK:   %[[memptr:.*]] = load { i32, i32, i32 }, { i32, i32, i32 }* %{{.*}}, align 4
 // CHECK:   %[[memptr0:.*]] = extractvalue { i32, i32, i32 } %[[memptr:.*]], 0
@@ -351,12 +351,12 @@ int loadDataMemberPointerUnspecified(Uns
 void callMemberPointerSingle(Single *o, void (Single::*memptr)()) {
   (o->*memptr)();
 // Just look for an indirect thiscall.
-// CHECK: define dso_local void @"\01?callMemberPointerSingle@@{{.*}} {{.*}} {
+// CHECK: define dso_local void @"?callMemberPointerSingle@@{{.*}} {{.*}} {
 // CHECK:   call x86_thiscallcc void %{{.*}}(%{{.*}} %{{.*}})
 // CHECK:   ret void
 // CHECK: }
 
-// X64-LABEL: define dso_local void @"\01?callMemberPointerSingle@@
+// X64-LABEL: define dso_local void @"?callMemberPointerSingle@@
 // X64:           (%struct.Single* %o, i8* %memptr)
 // X64:   bitcast i8* %{{[^ ]*}} to void (%struct.Single*)*
 // X64:   ret void
@@ -364,7 +364,7 @@ void callMemberPointerSingle(Single *o,
 
 void callMemberPointerMultiple(Multiple *o, void (Multiple::*memptr)()) {
   (o->*memptr)();
-// CHECK: define dso_local void @"\01?callMemberPointerMultiple@@{{.*}} {
+// CHECK: define dso_local void @"?callMemberPointerMultiple@@{{.*}} {
 // CHECK:   %[[memptr0:.*]] = extractvalue { i8*, i32 } %{{.*}}, 0
 // CHECK:   %[[memptr1:.*]] = extractvalue { i8*, i32 } %{{.*}}, 1
 // CHECK:   %[[this_adjusted:.*]] = getelementptr inbounds i8, i8* %{{.*}}, i32 %[[memptr1]]
@@ -378,7 +378,7 @@ void callMemberPointerMultiple(Multiple
 void callMemberPointerVirtualBase(Virtual *o, void (Virtual::*memptr)()) {
   (o->*memptr)();
 // This shares a lot with virtual data member pointers.
-// CHECK: define dso_local void @"\01?callMemberPointerVirtualBase@@{{.*}} {
+// CHECK: define dso_local void @"?callMemberPointerVirtualBase@@{{.*}} {
 // CHECK:   %[[memptr0:.*]] = extractvalue { i8*, i32, i32 } %{{.*}}, 0
 // CHECK:   %[[memptr1:.*]] = extractvalue { i8*, i32, i32 } %{{.*}}, 1
 // CHECK:   %[[memptr2:.*]] = extractvalue { i8*, i32, i32 } %{{.*}}, 2
@@ -400,21 +400,21 @@ void callMemberPointerVirtualBase(Virtua
 bool compareSingleFunctionMemptr(void (Single::*l)(), void (Single::*r)()) {
   return l == r;
 // Should only be one comparison here.
-// CHECK: define dso_local zeroext i1 @"\01?compareSingleFunctionMemptr@@YA_NP8Single@@AEXXZ0 at Z"{{.*}} {
+// CHECK: define dso_local zeroext i1 @"?compareSingleFunctionMemptr@@YA_NP8Single@@AEXXZ0 at Z"{{.*}} {
 // CHECK-NOT: icmp
 // CHECK:   %[[r:.*]] = icmp eq
 // CHECK-NOT: icmp
 // CHECK:   ret i1 %[[r]]
 // CHECK: }
 
-// X64-LABEL: define dso_local zeroext i1 @"\01?compareSingleFunctionMemptr@@
+// X64-LABEL: define dso_local zeroext i1 @"?compareSingleFunctionMemptr@@
 // X64:             (i8* %{{[^,]*}}, i8* %{{[^)]*}})
 }
 
 bool compareNeqSingleFunctionMemptr(void (Single::*l)(), void (Single::*r)()) {
   return l != r;
 // Should only be one comparison here.
-// CHECK: define dso_local zeroext i1 @"\01?compareNeqSingleFunctionMemptr@@YA_NP8Single@@AEXXZ0 at Z"{{.*}} {
+// CHECK: define dso_local zeroext i1 @"?compareNeqSingleFunctionMemptr@@YA_NP8Single@@AEXXZ0 at Z"{{.*}} {
 // CHECK-NOT: icmp
 // CHECK:   %[[r:.*]] = icmp ne
 // CHECK-NOT: icmp
@@ -424,7 +424,7 @@ bool compareNeqSingleFunctionMemptr(void
 
 bool unspecFuncMemptrEq(void (Unspecified::*l)(), void (Unspecified::*r)()) {
   return l == r;
-// CHECK: define dso_local zeroext i1 @"\01?unspecFuncMemptrEq@@YA_NP8Unspecified@@AEXXZ0 at Z"{{.*}} {
+// CHECK: define dso_local zeroext i1 @"?unspecFuncMemptrEq@@YA_NP8Unspecified@@AEXXZ0 at Z"{{.*}} {
 // CHECK:   %[[lhs0:.*]] = extractvalue { i8*, i32, i32, i32 } %[[l:.*]], 0
 // CHECK:   %{{.*}} = extractvalue { i8*, i32, i32, i32 } %[[r:.*]], 0
 // CHECK:   %[[cmp0:.*]] = icmp eq i8* %[[lhs0]], %{{.*}}
@@ -445,13 +445,13 @@ bool unspecFuncMemptrEq(void (Unspecifie
 // CHECK:   ret i1 %{{.*}}
 // CHECK: }
 
-// X64-LABEL: define dso_local zeroext i1 @"\01?unspecFuncMemptrEq@@
+// X64-LABEL: define dso_local zeroext i1 @"?unspecFuncMemptrEq@@
 // X64:             ({ i8*, i32, i32, i32 }*, { i8*, i32, i32, i32 }*)
 }
 
 bool unspecFuncMemptrNeq(void (Unspecified::*l)(), void (Unspecified::*r)()) {
   return l != r;
-// CHECK: define dso_local zeroext i1 @"\01?unspecFuncMemptrNeq@@YA_NP8Unspecified@@AEXXZ0 at Z"{{.*}} {
+// CHECK: define dso_local zeroext i1 @"?unspecFuncMemptrNeq@@YA_NP8Unspecified@@AEXXZ0 at Z"{{.*}} {
 // CHECK:   %[[lhs0:.*]] = extractvalue { i8*, i32, i32, i32 } %[[l:.*]], 0
 // CHECK:   %{{.*}} = extractvalue { i8*, i32, i32, i32 } %[[r:.*]], 0
 // CHECK:   %[[cmp0:.*]] = icmp ne i8* %[[lhs0]], %{{.*}}
@@ -475,7 +475,7 @@ bool unspecFuncMemptrNeq(void (Unspecifi
 
 bool unspecDataMemptrEq(int Unspecified::*l, int Unspecified::*r) {
   return l == r;
-// CHECK: define dso_local zeroext i1 @"\01?unspecDataMemptrEq@@YA_NPQUnspecified@@H0 at Z"{{.*}} {
+// CHECK: define dso_local zeroext i1 @"?unspecDataMemptrEq@@YA_NPQUnspecified@@H0 at Z"{{.*}} {
 // CHECK:   extractvalue { i32, i32, i32 } %{{.*}}, 0
 // CHECK:   extractvalue { i32, i32, i32 } %{{.*}}, 0
 // CHECK:   icmp eq i32
@@ -490,13 +490,13 @@ bool unspecDataMemptrEq(int Unspecified:
 // CHECK:   ret i1
 // CHECK: }
 
-// X64-LABEL: define dso_local zeroext i1 @"\01?unspecDataMemptrEq@@
+// X64-LABEL: define dso_local zeroext i1 @"?unspecDataMemptrEq@@
 // X64:             ({ i32, i32, i32 }*, { i32, i32, i32 }*)
 }
 
 void (Multiple::*convertB2FuncToMultiple(void (B2::*mp)()))() {
   return mp;
-// CHECK: define dso_local i64 @"\01?convertB2FuncToMultiple@@YAP8Multiple@@AEXXZP8B2@@AEXXZ at Z"{{.*}} {
+// CHECK: define dso_local i64 @"?convertB2FuncToMultiple@@YAP8Multiple@@AEXXZP8B2@@AEXXZ at Z"{{.*}} {
 // CHECK:   store
 // CHECK:   %[[mp:.*]] = load i8*, i8** %{{.*}}, align 4
 // CHECK:   icmp ne i8* %[[mp]], null
@@ -520,7 +520,7 @@ void (B2::*convertMultipleFuncToB2(void
 // LLVM from optimizing away the branch.  This is likely a bug in
 // lib/CodeGen/TargetInfo.cpp with how we classify memptr types for returns.
 //
-// CHECK: define dso_local i32 @"\01?convertMultipleFuncToB2@@YAP8B2@@AEXXZP8Multiple@@AEXXZ at Z"{{.*}} {
+// CHECK: define dso_local i32 @"?convertMultipleFuncToB2@@YAP8B2@@AEXXZP8Multiple@@AEXXZ at Z"{{.*}} {
 // CHECK:   store
 // CHECK:   %[[src:.*]] = load { i8*, i32 }, { i8*, i32 }* %{{.*}}, align 4
 // CHECK:   extractvalue { i8*, i32 } %[[src]], 0
@@ -545,7 +545,7 @@ struct D : B, C { int d; };
 
 void (D::*convertCToD(void (C::*mp)()))() {
   return mp;
-// CHECK: define dso_local void @"\01?convertCToD at Test1@@YAP8D at 1@AEXXZP8C at 1@AEXXZ at Z"{{.*}} {
+// CHECK: define dso_local void @"?convertCToD at Test1@@YAP8D at 1@AEXXZP8C at 1@AEXXZ at Z"{{.*}} {
 // CHECK:   store
 // CHECK:   load { i8*, i32, i32 }, { i8*, i32, i32 }* %{{.*}}, align 4
 // CHECK:   extractvalue { i8*, i32, i32 } %{{.*}}, 0
@@ -585,7 +585,7 @@ struct C : A {
 
 int A::*reinterpret(int B::*mp) {
   return reinterpret_cast<int A::*>(mp);
-// CHECK: define dso_local i32 @"\01?reinterpret at Test2@@YAPQA at 1@HPQB at 1@H at Z"{{.*}}  {
+// CHECK: define dso_local i32 @"?reinterpret at Test2@@YAPQA at 1@HPQB at 1@H at Z"{{.*}}  {
 // CHECK-NOT: select
 // CHECK:   ret i32
 // CHECK: }
@@ -593,7 +593,7 @@ int A::*reinterpret(int B::*mp) {
 
 int A::*reinterpret(int C::*mp) {
   return reinterpret_cast<int A::*>(mp);
-// CHECK: define dso_local i32 @"\01?reinterpret at Test2@@YAPQA at 1@HPQC at 1@H at Z"{{.*}}  {
+// CHECK: define dso_local i32 @"?reinterpret at Test2@@YAPQA at 1@HPQC at 1@H at Z"{{.*}}  {
 // CHECK:   %[[mp:.*]] = load i32, i32*
 // CHECK:   %[[cmp:.*]] = icmp ne i32 %[[mp]], 0
 // CHECK:   select i1 %[[cmp]], i32 %[[mp]], i32 -1
@@ -612,7 +612,7 @@ struct A {
 
 int *load_data(A *a, int A::*mp) {
   return &(a->*mp);
-// CHECK-LABEL: define dso_local i32* @"\01?load_data at Test3@@YAPAHPAUA at 1@PQ21 at H@Z"{{.*}}  {
+// CHECK-LABEL: define dso_local i32* @"?load_data at Test3@@YAPAHPAUA at 1@PQ21 at H@Z"{{.*}}  {
 // CHECK:    %[[a:.*]] = load %"struct.Test3::A"*, %"struct.Test3::A"** %{{.*}}, align 4
 // CHECK:    %[[mp:.*]] = load i32, i32* %{{.*}}, align 4
 // CHECK:    %[[a_i8:.*]] = bitcast %"struct.Test3::A"* %[[a]] to i8*
@@ -631,11 +631,11 @@ struct C : A, B { virtual void g(); };
 void (C::*getmp())() {
   return &C::g;
 }
-// CHECK-LABEL: define dso_local i64 @"\01?getmp at Test4@@YAP8C at 1@AEXXZXZ"()
-// CHECK: store { i8*, i32 } { i8* bitcast (void (%"struct.Test4::C"*, ...)* @"\01??_9C at Test4@@$BA at AE" to i8*), i32 4 }, { i8*, i32 }* %{{.*}}
+// CHECK-LABEL: define dso_local i64 @"?getmp at Test4@@YAP8C at 1@AEXXZXZ"()
+// CHECK: store { i8*, i32 } { i8* bitcast (void (%"struct.Test4::C"*, ...)* @"??_9C at Test4@@$BA at AE" to i8*), i32 4 }, { i8*, i32 }* %{{.*}}
 //
 
-// CHECK-LABEL: define linkonce_odr x86_thiscallcc void @"\01??_9C at Test4@@$BA at AE"(%"struct.Test4::C"* %this, ...) {{.*}} comdat
+// CHECK-LABEL: define linkonce_odr x86_thiscallcc void @"??_9C at Test4@@$BA at AE"(%"struct.Test4::C"* %this, ...) {{.*}} comdat
 // CHECK-NOT:  getelementptr
 // CHECK:  load void (%"struct.Test4::C"*, ...)**, void (%"struct.Test4::C"*, ...)*** %{{.*}}
 // CHECK:  getelementptr inbounds void (%"struct.Test4::C"*, ...)*, void (%"struct.Test4::C"*, ...)** %{{.*}}, i64 0
@@ -651,8 +651,8 @@ struct A {
 };
 struct B : public A {};
 void test() { void (B::*a)() = &B::f; }
-// CHECK-LABEL: define dso_local void @"\01?test at pr20007@@YAXXZ"
-// CHECK: store i8* bitcast (void (%"struct.pr20007::A"*)* @"\01?f at A@pr20007@@QAEXXZ" to i8*)
+// CHECK-LABEL: define dso_local void @"?test at pr20007@@YAXXZ"
+// CHECK: store i8* bitcast (void (%"struct.pr20007::A"*)* @"?f at A@pr20007@@QAEXXZ" to i8*)
 }
 
 namespace pr20007_kw {
@@ -663,8 +663,8 @@ struct A {
 struct __single_inheritance B;
 struct B : public A {};
 void test() { void (B::*a)() = &B::f; }
-// CHECK-LABEL: define dso_local void @"\01?test at pr20007_kw@@YAXXZ"
-// CHECK: store i8* bitcast (void (%"struct.pr20007_kw::A"*)* @"\01?f at A@pr20007_kw@@QAEXXZ" to i8*)
+// CHECK-LABEL: define dso_local void @"?test at pr20007_kw@@YAXXZ"
+// CHECK: store i8* bitcast (void (%"struct.pr20007_kw::A"*)* @"?f at A@pr20007_kw@@QAEXXZ" to i8*)
 }
 
 namespace pr20007_pragma {
@@ -678,7 +678,7 @@ void test() { (void)(void (B::*)()) &B::
 static_assert(sizeof(int B::*) == 4, "");
 static_assert(sizeof(int A::*) == 4, "");
 #pragma pointers_to_members(best_case)
-// CHECK-LABEL: define dso_local void @"\01?test at pr20007_pragma@@YAXXZ"
+// CHECK-LABEL: define dso_local void @"?test at pr20007_pragma@@YAXXZ"
 }
 
 namespace pr20007_pragma2 {
@@ -692,7 +692,7 @@ void test() { (void)&B::f; }
 static_assert(sizeof(int B::*) == 4, "");
 static_assert(sizeof(int A::*) == 12, "");
 #pragma pointers_to_members(best_case)
-// CHECK-LABEL: define dso_local void @"\01?test at pr20007_pragma2@@YAXXZ"
+// CHECK-LABEL: define dso_local void @"?test at pr20007_pragma2@@YAXXZ"
 }
 
 namespace pr23823 {
@@ -738,8 +738,8 @@ struct D : A, C {};
 
 typedef void (D::*DMemPtrTy)();
 
-// CHECK-LABEL: define dso_local void @"\01?get_memptr at pr23878@@YAP8D at 1@AEXXZXZ"
-// CHECK: @"\01??_9C at pr23878@@$BA at AE" to i8*), i32 0, i32 4
+// CHECK-LABEL: define dso_local void @"?get_memptr at pr23878@@YAP8D at 1@AEXXZXZ"
+// CHECK: @"??_9C at pr23878@@$BA at AE" to i8*), i32 0, i32 4
 DMemPtrTy get_memptr() { return &D::f; }
 }
 
@@ -755,14 +755,14 @@ public:
 
 // CHECK-LABEL: foo_fun
 void foo_fun() {
-  // CHECK: store i8* bitcast (void (%class.CA*)* @"\01?OnHelp at CA@@QAEXXZ" to i8*), i8**
+  // CHECK: store i8* bitcast (void (%class.CA*)* @"?OnHelp at CA@@QAEXXZ" to i8*), i8**
   f func = (f)&CA::OnHelp;
 }
 namespace PR24703 {
 struct S;
 
 void f(int S::*&p) {}
-// CHECK-LABEL: define dso_local void @"\01?f at PR24703@@YAXAAPQS at 1@H at Z"(
+// CHECK-LABEL: define dso_local void @"?f at PR24703@@YAXAAPQS at 1@H at Z"(
 }
 
 namespace ReferenceToMPTWithIncompleteClass {
@@ -771,14 +771,14 @@ struct J;
 struct K;
 extern K *k;
 
-// CHECK-LABEL: @"\01?f at ReferenceToMPTWithIncompleteClass@@YAIAAPQS at 1@H at Z"(
+// CHECK-LABEL: @"?f at ReferenceToMPTWithIncompleteClass@@YAIAAPQS at 1@H at Z"(
 // CHECK: ret i32 12
 unsigned f(int S::*&p) { return sizeof p; }
 
-// CHECK-LABEL: @"\01?g at ReferenceToMPTWithIncompleteClass@@YA_NAAPQJ at 1@H0 at Z"(
+// CHECK-LABEL: @"?g at ReferenceToMPTWithIncompleteClass@@YA_NAAPQJ at 1@H0 at Z"(
 bool g(int J::*&p, int J::*&q) { return p == q; }
 
-// CHECK-LABEL: @"\01?h at ReferenceToMPTWithIncompleteClass@@YAHAAPQK at 1@H at Z"(
+// CHECK-LABEL: @"?h at ReferenceToMPTWithIncompleteClass@@YAHAAPQK at 1@H at Z"(
 int h(int K::*&p) { return k->*p; }
 }
 
@@ -790,5 +790,5 @@ class A {
   void printd();
 };
 void A::printd() { JSMethod<A, &A::printd>(); }
-// CHECK-LABEL: @"\01??$JSMethod at VA@PMFInTemplateArgument@@$1?printd at 12@AAEHH at Z@PMFInTemplateArgument@@YAXXZ"(
+// CHECK-LABEL: @"??$JSMethod at VA@PMFInTemplateArgument@@$1?printd at 12@AAEHH at Z@PMFInTemplateArgument@@YAXXZ"(
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-methods.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-methods.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-methods.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-methods.cpp Fri Mar 16 13:36:49 2018
@@ -18,11 +18,11 @@ void call_simple_method() {
 
   instance.simple_method();
 // Make sure that the call uses the right calling convention:
-// CHECK: call x86_thiscallcc void @"\01?simple_method at C@@QAEXXZ"
+// CHECK: call x86_thiscallcc void @"?simple_method at C@@QAEXXZ"
 // CHECK: ret
 
 // Make sure that the definition uses the right calling convention:
-// CHECK: define linkonce_odr dso_local x86_thiscallcc void @"\01?simple_method at C@@QAEXXZ"
+// CHECK: define linkonce_odr dso_local x86_thiscallcc void @"?simple_method at C@@QAEXXZ"
 // CHECK: ret
 }
 
@@ -30,11 +30,11 @@ void call_cdecl_method() {
   C instance;
   instance.cdecl_method();
 // Make sure that the call uses the right calling convention:
-// CHECK: call void @"\01?cdecl_method at C@@QAAXXZ"
+// CHECK: call void @"?cdecl_method at C@@QAAXXZ"
 // CHECK: ret
 
 // Make sure that the definition uses the right calling convention:
-// CHECK: define linkonce_odr dso_local void @"\01?cdecl_method at C@@QAAXXZ"
+// CHECK: define linkonce_odr dso_local void @"?cdecl_method at C@@QAAXXZ"
 // CHECK: ret
 }
 
@@ -42,21 +42,21 @@ void call_vararg_method() {
   C instance;
   instance.vararg_method("Hello");
 // Make sure that the call uses the right calling convention:
-// CHECK: call void (%class.C*, i8*, ...) @"\01?vararg_method at C@@QAAXPBDZZ"
+// CHECK: call void (%class.C*, i8*, ...) @"?vararg_method at C@@QAAXPBDZZ"
 // CHECK: ret
 
 // Make sure that the definition uses the right calling convention:
-// CHECK: define linkonce_odr dso_local void @"\01?vararg_method at C@@QAAXPBDZZ"
+// CHECK: define linkonce_odr dso_local void @"?vararg_method at C@@QAAXPBDZZ"
 }
 
 void call_static_method() {
   C::static_method();
 // Make sure that the call uses the right calling convention:
-// CHECK: call void @"\01?static_method at C@@SAXXZ"
+// CHECK: call void @"?static_method at C@@SAXXZ"
 // CHECK: ret
 
 // Make sure that the definition uses the right calling convention:
-// CHECK: define linkonce_odr dso_local void @"\01?static_method at C@@SAXXZ"
+// CHECK: define linkonce_odr dso_local void @"?static_method at C@@SAXXZ"
 }
 
 class Base {
@@ -71,19 +71,19 @@ void constructors() {
   Child c;
 // Make sure that the Base constructor call in the Child constructor uses
 // the right calling convention:
-// CHECK: define linkonce_odr dso_local x86_thiscallcc %class.Child* @"\01??0Child@@QAE at XZ"
-// CHECK: %{{[.0-9A-Z_a-z]+}} = call x86_thiscallcc %class.Base* @"\01??0Base@@QAE at XZ"
+// CHECK: define linkonce_odr dso_local x86_thiscallcc %class.Child* @"??0Child@@QAE at XZ"
+// CHECK: %{{[.0-9A-Z_a-z]+}} = call x86_thiscallcc %class.Base* @"??0Base@@QAE at XZ"
 // CHECK: ret
 
 // Make sure that the Base destructor call in the Child denstructor uses
 // the right calling convention:
-// CHECK: define linkonce_odr dso_local x86_thiscallcc void @"\01??1Child@@QAE at XZ"
-// CHECK: call x86_thiscallcc void @"\01??1Base@@QAE at XZ"
+// CHECK: define linkonce_odr dso_local x86_thiscallcc void @"??1Child@@QAE at XZ"
+// CHECK: call x86_thiscallcc void @"??1Base@@QAE at XZ"
 // CHECK: ret
 
 // Make sure that the Base constructor definition uses the right CC:
-// CHECK: define linkonce_odr dso_local x86_thiscallcc %class.Base* @"\01??0Base@@QAE at XZ"
+// CHECK: define linkonce_odr dso_local x86_thiscallcc %class.Base* @"??0Base@@QAE at XZ"
 
 // Make sure that the Base destructor definition uses the right CC:
-// CHECK: define linkonce_odr dso_local x86_thiscallcc void @"\01??1Base@@QAE at XZ"
+// CHECK: define linkonce_odr dso_local x86_thiscallcc void @"??1Base@@QAE at XZ"
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp Fri Mar 16 13:36:49 2018
@@ -19,7 +19,7 @@ struct ChildOverride : Left, Right {
 extern "C" void foo(void *);
 
 void call_left_no_override(ChildNoOverride *child) {
-// CHECK-LABEL: define dso_local void @"\01?call_left_no_override
+// CHECK-LABEL: define dso_local void @"?call_left_no_override
 // CHECK: %[[CHILD:.*]] = load %struct.ChildNoOverride
 
   child->left();
@@ -34,7 +34,7 @@ void call_left_no_override(ChildNoOverri
 }
 
 void ChildOverride::left() {
-// CHECK-LABEL: define dso_local x86_thiscallcc void @"\01?left at ChildOverride@@UAEXXZ"
+// CHECK-LABEL: define dso_local x86_thiscallcc void @"?left at ChildOverride@@UAEXXZ"
 // CHECK-SAME: (%struct.ChildOverride* %[[THIS:.*]])
 //
 // No need to adjust 'this' as the ChildOverride's layout begins with Left.
@@ -49,7 +49,7 @@ void ChildOverride::left() {
 }
 
 void call_left_override(ChildOverride *child) {
-// CHECK-LABEL: define dso_local void @"\01?call_left_override
+// CHECK-LABEL: define dso_local void @"?call_left_override
 // CHECK: %[[CHILD:.*]] = load %struct.ChildOverride
 
   child->left();
@@ -63,7 +63,7 @@ void call_left_override(ChildOverride *c
 }
 
 void call_right_no_override(ChildNoOverride *child) {
-// CHECK-LABEL: define dso_local void @"\01?call_right_no_override
+// CHECK-LABEL: define dso_local void @"?call_right_no_override
 // CHECK: %[[CHILD:.*]] = load %struct.ChildNoOverride
 
   child->right();
@@ -83,7 +83,7 @@ void call_right_no_override(ChildNoOverr
 }
 
 void ChildOverride::right() {
-// CHECK-LABEL: define dso_local x86_thiscallcc void @"\01?right at ChildOverride@@UAEXXZ"(i8*
+// CHECK-LABEL: define dso_local x86_thiscallcc void @"?right at ChildOverride@@UAEXXZ"(i8*
 //
 // ChildOverride::right gets 'this' cast to Right* in ECX (i.e. this+4) so we
 // need to adjust 'this' before use.
@@ -106,7 +106,7 @@ void ChildOverride::right() {
 }
 
 void call_right_override(ChildOverride *child) {
-// CHECK-LABEL: define dso_local void @"\01?call_right_override
+// CHECK-LABEL: define dso_local void @"?call_right_override
 // CHECK: %[[CHILD:.*]] = load %struct.ChildOverride
 
   child->right();
@@ -132,7 +132,7 @@ struct GrandchildOverride : ChildOverrid
 };
 
 void GrandchildOverride::right() {
-// CHECK-LABEL: define dso_local x86_thiscallcc void @"\01?right at GrandchildOverride@@UAEXXZ"(i8*
+// CHECK-LABEL: define dso_local x86_thiscallcc void @"?right at GrandchildOverride@@UAEXXZ"(i8*
 //
 // CHECK: %[[THIS_STORE:.*]] = alloca %struct.GrandchildOverride*, align 4
 // CHECK: %[[THIS_ADDR:.*]] = alloca %struct.GrandchildOverride*, align 4
@@ -158,37 +158,37 @@ void call_grandchild_right(GrandchildOve
 
 void emit_ctors() {
   Left l;
-  // CHECK-LABEL: define {{.*}} @"\01??0Left@@QAE at XZ"
+  // CHECK-LABEL: define {{.*}} @"??0Left@@QAE at XZ"
   // CHECK-NOT: getelementptr
-  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7Left@@6B@" to i32 (...)**)
+  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7Left@@6B@" to i32 (...)**)
   // CHECK: ret
 
   Right r;
-  // CHECK-LABEL: define {{.*}} @"\01??0Right@@QAE at XZ"
+  // CHECK-LABEL: define {{.*}} @"??0Right@@QAE at XZ"
   // CHECK-NOT: getelementptr
-  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7Right@@6B@" to i32 (...)**)
+  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7Right@@6B@" to i32 (...)**)
   // CHECK: ret
 
   ChildOverride co;
-  // CHECK-LABEL: define {{.*}} @"\01??0ChildOverride@@QAE at XZ"
+  // CHECK-LABEL: define {{.*}} @"??0ChildOverride@@QAE at XZ"
   // CHECK:   %[[THIS:.*]] = load %struct.ChildOverride*, %struct.ChildOverride**
   // CHECK:   %[[VFPTR:.*]] = bitcast %struct.ChildOverride* %[[THIS]] to i32 (...)***
-  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7ChildOverride@@6BLeft@@@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
+  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7ChildOverride@@6BLeft@@@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
   // CHECK:   %[[THIS_i8:.*]] = bitcast %struct.ChildOverride* %[[THIS]] to i8*
   // CHECK:   %[[VFPTR_i8:.*]] = getelementptr inbounds i8, i8* %[[THIS_i8]], i32 4
   // CHECK:   %[[VFPTR:.*]] = bitcast i8* %[[VFPTR_i8]] to i32 (...)***
-  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7ChildOverride@@6BRight@@@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
+  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7ChildOverride@@6BRight@@@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
   // CHECK: ret
 
   GrandchildOverride gc;
-  // CHECK-LABEL: define {{.*}} @"\01??0GrandchildOverride@@QAE at XZ"
+  // CHECK-LABEL: define {{.*}} @"??0GrandchildOverride@@QAE at XZ"
   // CHECK:   %[[THIS:.*]] = load %struct.GrandchildOverride*, %struct.GrandchildOverride**
   // CHECK:   %[[VFPTR:.*]] = bitcast %struct.GrandchildOverride* %[[THIS]] to i32 (...)***
-  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7GrandchildOverride@@6BLeft@@@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
+  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7GrandchildOverride@@6BLeft@@@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
   // CHECK:   %[[THIS_i8:.*]] = bitcast %struct.GrandchildOverride* %[[THIS]] to i8*
   // CHECK:   %[[VFPTR_i8:.*]] = getelementptr inbounds i8, i8* %[[THIS_i8]], i32 4
   // CHECK:   %[[VFPTR:.*]] = bitcast i8* %[[VFPTR_i8]] to i32 (...)***
-  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7GrandchildOverride@@6BRight@@@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
+  // CHECK:   store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7GrandchildOverride@@6BRight@@@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
   // CHECK: ret
 }
 
@@ -202,10 +202,10 @@ struct AsymmetricChild : LeftWithNonVirt
 };
 
 void call_asymmetric_child_complete_dtor() {
-  // CHECK-LABEL: define dso_local void @"\01?call_asymmetric_child_complete_dtor@@YAXXZ"
+  // CHECK-LABEL: define dso_local void @"?call_asymmetric_child_complete_dtor@@YAXXZ"
   AsymmetricChild obj;
-  // CHECK: call x86_thiscallcc %struct.AsymmetricChild* @"\01??0AsymmetricChild@@QAE at XZ"(%struct.AsymmetricChild* %[[OBJ:.*]])
+  // CHECK: call x86_thiscallcc %struct.AsymmetricChild* @"??0AsymmetricChild@@QAE at XZ"(%struct.AsymmetricChild* %[[OBJ:.*]])
   // CHECK-NOT: getelementptr
-  // CHECK: call x86_thiscallcc void @"\01??1AsymmetricChild@@UAE at XZ"(%struct.AsymmetricChild* %[[OBJ]])
+  // CHECK: call x86_thiscallcc void @"??1AsymmetricChild@@UAE at XZ"(%struct.AsymmetricChild* %[[OBJ]])
   // CHECK: ret
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-rtti.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-rtti.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-rtti.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-rtti.cpp Fri Mar 16 13:36:49 2018
@@ -26,242 +26,242 @@ struct Y2 { virtual void f() {} };
 struct A2 : Z2, Y2 {};
 struct B2 : virtual A2 { B2() {} virtual void f() {} } b2;
 
-// CHECK-DAG: @"\01??_R4B2@@6BZ2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 8, i32 4, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUB2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3B2@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUB2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUB2@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3B2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 4, %rtti.BaseClassDescriptor** getelementptr inbounds ([5 x %rtti.BaseClassDescriptor*], [5 x %rtti.BaseClassDescriptor*]* @"\01??_R2B2@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2B2@@8" = linkonce_odr constant [5 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@B2@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3FA at A2@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3EA at Z2@@8", %rtti.BaseClassDescriptor* @"\01??_R13A at 3EA@Y2@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@B2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUB2@@@8" to i8*), i32 3, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3B2@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A at A@3FA at A2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUA2@@@8" to i8*), i32 2, i32 0, i32 0, i32 4, i32 80, %rtti.ClassHierarchyDescriptor* @"\01??_R3A2@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUA2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUA2@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3A2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 1, i32 3, %rtti.BaseClassDescriptor** getelementptr inbounds ([4 x %rtti.BaseClassDescriptor*], [4 x %rtti.BaseClassDescriptor*]* @"\01??_R2A2@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2A2@@8" = linkonce_odr constant [4 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@A2@@8", %rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Z2@@8", %rtti.BaseClassDescriptor* @"\01??_R13?0A at EA@Y2@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@A2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUA2@@@8" to i8*), i32 2, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3A2@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@Z2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUZ2@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3Z2@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUZ2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUZ2@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3Z2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"\01??_R2Z2@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2Z2@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Z2@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R13?0A at EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUY2@@@8" to i8*), i32 0, i32 4, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3Y2@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUY2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUY2@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3Y2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"\01??_R2Y2@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2Y2@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Y2@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUY2@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3Y2@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A at A@3EA at Z2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUZ2@@@8" to i8*), i32 0, i32 0, i32 0, i32 4, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3Z2@@8" }, comdat
-// CHECK-DAG: @"\01??_R13A at 3EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUY2@@@8" to i8*), i32 0, i32 4, i32 0, i32 4, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3Y2@@8" }, comdat
-// CHECK-DAG: @"\01??_R4B2@@6BY2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 12, i32 8, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUB2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3B2@@8" }, comdat
-// CHECK-DAG: @"\01??_R4A2@@6BZ2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUA2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3A2@@8" }, comdat
-// CHECK-DAG: @"\01??_R4A2@@6BY2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 4, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUA2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3A2@@8" }, comdat
-// CHECK-DAG: @"\01??_R4Y2@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUY2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3Y2@@8" }, comdat
-// CHECK-DAG: @"\01??_R4Z2@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUZ2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3Z2@@8" }, comdat
-// CHECK-DAG: @"\01??_R4B1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 8, i32 4, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUB1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3B1@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUB1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUB1@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3B1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, %rtti.BaseClassDescriptor** getelementptr inbounds ([3 x %rtti.BaseClassDescriptor*], [3 x %rtti.BaseClassDescriptor*]* @"\01??_R2B1@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2B1@@8" = linkonce_odr constant [3 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@B1@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3FA at A1@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@B1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUB1@@@8" to i8*), i32 1, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3B1@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A at A@3FA at A1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUA1@@@8" to i8*), i32 0, i32 0, i32 0, i32 4, i32 80, %rtti.ClassHierarchyDescriptor* @"\01??_R3A1@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUA1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUA1@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3A1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"\01??_R2A1@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2A1@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@A1@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@A1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUA1@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3A1@@8" }, comdat
-// CHECK-DAG: @"\01??_R4A1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUA1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3A1@@8" }, comdat
-// CHECK-DAG: @"\01??_R4Y1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 4, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUY1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3Y1@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUY1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUY1@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3Y1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 6, %rtti.BaseClassDescriptor** getelementptr inbounds ([7 x %rtti.BaseClassDescriptor*], [7 x %rtti.BaseClassDescriptor*]* @"\01??_R2Y1@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2Y1@@8" = linkonce_odr constant [7 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Y1@@8", %rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@W1@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3FA at V1@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3EA at X1@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3FA at V1@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3EA at X1@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@Y1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUY1@@@8" to i8*), i32 5, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3Y1@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@W1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUW1@@@8" to i8*), i32 2, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3W1@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUW1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUW1@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3W1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 3, %rtti.BaseClassDescriptor** getelementptr inbounds ([4 x %rtti.BaseClassDescriptor*], [4 x %rtti.BaseClassDescriptor*]* @"\01??_R2W1@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2W1@@8" = linkonce_odr constant [4 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@W1@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3FA at V1@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3EA at X1@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A at A@3FA at V1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUV1@@@8" to i8*), i32 1, i32 0, i32 0, i32 4, i32 80, %rtti.ClassHierarchyDescriptor* @"\01??_R3V1@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUV1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUV1@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3V1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, %rtti.BaseClassDescriptor** getelementptr inbounds ([3 x %rtti.BaseClassDescriptor*], [3 x %rtti.BaseClassDescriptor*]* @"\01??_R2V1@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2V1@@8" = linkonce_odr constant [3 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@V1@@8", %rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@X1@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@V1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUV1@@@8" to i8*), i32 1, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3V1@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@X1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUX1@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3X1@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUX1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUX1@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3X1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"\01??_R2X1@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2X1@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@X1@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A at A@3EA at X1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUX1@@@8" to i8*), i32 0, i32 0, i32 0, i32 4, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3X1@@8" }, comdat
-// CHECK-DAG: @"\01??_R4W1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 4, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUW1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3W1@@8" }, comdat
-// CHECK-DAG: @"\01??_R4V1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUV1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3V1@@8" }, comdat
-// CHECK-DAG: @"\01??_R4X1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"\01??_R0?AUX1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3X1@@8" }, comdat
-// CHECK-DAG: @"\01??_R4C@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUC@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3C@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUC@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUC@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3C@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 3, %rtti.BaseClassDescriptor** getelementptr inbounds ([4 x %rtti.BaseClassDescriptor*], [4 x %rtti.BaseClassDescriptor*]* @"\01??_R2C@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2C@@8" = linkonce_odr constant [4 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@C@@8", %rtti.BaseClassDescriptor* @"\01??_R13?0A at EA@B@@8", %rtti.BaseClassDescriptor* @"\01??_R13?0A at EA@A@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@C@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUC@@@8" to i8*), i32 2, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3C@@8" }, comdat
-// CHECK-DAG: @"\01??_R13?0A at EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUB@@@8" to i8*), i32 1, i32 4, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3B@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUB@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUB@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3B@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, %rtti.BaseClassDescriptor** getelementptr inbounds ([3 x %rtti.BaseClassDescriptor*], [3 x %rtti.BaseClassDescriptor*]* @"\01??_R2B@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2B@@8" = linkonce_odr constant [3 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@B@@8", %rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@A@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUB@@@8" to i8*), i32 1, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3B@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3A@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUA@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUA@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3A@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"\01??_R2A@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2A@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@A@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R13?0A at EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8" to i8*), i32 0, i32 4, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3A@@8" }, comdat
-// CHECK-DAG: @"\01??_R4Y@@6BZ@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVY@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3Y@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AVY@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVY@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3Y@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 9, %rtti.BaseClassDescriptor** getelementptr inbounds ([10 x %rtti.BaseClassDescriptor*], [10 x %rtti.BaseClassDescriptor*]* @"\01??_R2Y@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2Y@@8" = linkonce_odr constant [10 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Y@@8", %rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EN@Z@@8", %rtti.BaseClassDescriptor* @"\01??_R13?0A at EN@W@@8", %rtti.BaseClassDescriptor* @"\01??_R17?0A at EN@M@@8", %rtti.BaseClassDescriptor* @"\01??_R17?0A at EN@N@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at 33FN@V@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at 33EJ@X@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at 33FN@V@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at 33EJ@X@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@Y@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVY@@@8" to i8*), i32 8, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3Y@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EN@Z@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVZ@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"\01??_R3Z@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AVZ@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVZ@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3Z@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"\01??_R2Z@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2Z@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Z@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@Z@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVZ@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3Z@@8" }, comdat
-// CHECK-DAG: @"\01??_R13?0A at EN@W@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVW@@@8" to i8*), i32 4, i32 4, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"\01??_R3W@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AVW@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVW@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3W@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 5, %rtti.BaseClassDescriptor** getelementptr inbounds ([6 x %rtti.BaseClassDescriptor*], [6 x %rtti.BaseClassDescriptor*]* @"\01??_R2W@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2W@@8" = linkonce_odr constant [6 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@W@@8", %rtti.BaseClassDescriptor* @"\01??_R13?0A at EN@M@@8", %rtti.BaseClassDescriptor* @"\01??_R13?0A at EN@N@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3FN at V@@8", %rtti.BaseClassDescriptor* @"\01??_R1A at A@3EJ at X@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@W@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVW@@@8" to i8*), i32 4, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3W@@8" }, comdat
-// CHECK-DAG: @"\01??_R13?0A at EN@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUM@@@8" to i8*), i32 1, i32 4, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"\01??_R3M@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUM@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUM@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3M@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, %rtti.BaseClassDescriptor** getelementptr inbounds ([3 x %rtti.BaseClassDescriptor*], [3 x %rtti.BaseClassDescriptor*]* @"\01??_R2M@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2M@@8" = linkonce_odr constant [3 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@M@@8", %rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EN@N@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUM@@@8" to i8*), i32 1, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3M@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUN@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"\01??_R3N@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUN@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUN@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3N@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"\01??_R2N@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2N@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@N@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUN@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3N@@8" }, comdat
-// CHECK-DAG: @"\01??_R13?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUN@@@8" to i8*), i32 0, i32 4, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"\01??_R3N@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A at A@3FN at V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVV@@@8" to i8*), i32 1, i32 0, i32 0, i32 4, i32 93, %rtti.ClassHierarchyDescriptor* @"\01??_R3V@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AVV@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVV@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3V@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, %rtti.BaseClassDescriptor** getelementptr inbounds ([3 x %rtti.BaseClassDescriptor*], [3 x %rtti.BaseClassDescriptor*]* @"\01??_R2V@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2V@@8" = linkonce_odr constant [3 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@V@@8", %rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@X@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVV@@@8" to i8*), i32 1, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3V@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A@?0A at EA@X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUX@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3X@@8" }, comdat
-// CHECK-DAG: @"\01??_R0?AUX@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUX@@\00" }, comdat
-// CHECK-DAG: @"\01??_R3X@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"\01??_R2X@@8", i32 0, i32 0) }, comdat
-// CHECK-DAG: @"\01??_R2X@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@X@@8", %rtti.BaseClassDescriptor* null], comdat
-// CHECK-DAG: @"\01??_R1A at A@3EJ at X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUX@@@8" to i8*), i32 0, i32 0, i32 0, i32 4, i32 73, %rtti.ClassHierarchyDescriptor* @"\01??_R3X@@8" }, comdat
-// CHECK-DAG: @"\01??_R17?0A at EN@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUM@@@8" to i8*), i32 1, i32 8, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"\01??_R3M@@8" }, comdat
-// CHECK-DAG: @"\01??_R17?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUN@@@8" to i8*), i32 0, i32 8, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"\01??_R3N@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A at 33FN@V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVV@@@8" to i8*), i32 1, i32 0, i32 4, i32 4, i32 93, %rtti.ClassHierarchyDescriptor* @"\01??_R3V@@8" }, comdat
-// CHECK-DAG: @"\01??_R1A at 33EJ@X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUX@@@8" to i8*), i32 0, i32 0, i32 4, i32 4, i32 73, %rtti.ClassHierarchyDescriptor* @"\01??_R3X@@8" }, comdat
-// CHECK-DAG: @"\01??_R4Y@@6BW@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 8, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVY@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3Y@@8" }, comdat
-// CHECK-DAG: @"\01??_R4W@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 4, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVW@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3W@@8" }, comdat
-// CHECK-DAG: @"\01??_R4Z@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVZ@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3Z@@8" }, comdat
-// CHECK-DAG: @"\01??_R4V@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVV@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3V@@8" }, comdat
-// CHECK-DAG: @"\01??_R4X@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUX@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3X@@8" }, comdat
+// CHECK-DAG: @"??_R4B2@@6BZ2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 8, i32 4, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUB2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3B2@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUB2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUB2@@\00" }, comdat
+// CHECK-DAG: @"??_R3B2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 4, %rtti.BaseClassDescriptor** getelementptr inbounds ([5 x %rtti.BaseClassDescriptor*], [5 x %rtti.BaseClassDescriptor*]* @"??_R2B2@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2B2@@8" = linkonce_odr constant [5 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@B2@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3FA at A2@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3EA at Z2@@8", %rtti.BaseClassDescriptor* @"??_R13A at 3EA@Y2@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@B2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUB2@@@8" to i8*), i32 3, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3B2@@8" }, comdat
+// CHECK-DAG: @"??_R1A at A@3FA at A2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUA2@@@8" to i8*), i32 2, i32 0, i32 0, i32 4, i32 80, %rtti.ClassHierarchyDescriptor* @"??_R3A2@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUA2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUA2@@\00" }, comdat
+// CHECK-DAG: @"??_R3A2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 1, i32 3, %rtti.BaseClassDescriptor** getelementptr inbounds ([4 x %rtti.BaseClassDescriptor*], [4 x %rtti.BaseClassDescriptor*]* @"??_R2A2@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2A2@@8" = linkonce_odr constant [4 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@A2@@8", %rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Z2@@8", %rtti.BaseClassDescriptor* @"??_R13?0A at EA@Y2@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@A2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUA2@@@8" to i8*), i32 2, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3A2@@8" }, comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@Z2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUZ2@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3Z2@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUZ2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUZ2@@\00" }, comdat
+// CHECK-DAG: @"??_R3Z2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"??_R2Z2@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2Z2@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Z2@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R13?0A at EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUY2@@@8" to i8*), i32 0, i32 4, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3Y2@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUY2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUY2@@\00" }, comdat
+// CHECK-DAG: @"??_R3Y2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"??_R2Y2@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2Y2@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Y2@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUY2@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3Y2@@8" }, comdat
+// CHECK-DAG: @"??_R1A at A@3EA at Z2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUZ2@@@8" to i8*), i32 0, i32 0, i32 0, i32 4, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3Z2@@8" }, comdat
+// CHECK-DAG: @"??_R13A at 3EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUY2@@@8" to i8*), i32 0, i32 4, i32 0, i32 4, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3Y2@@8" }, comdat
+// CHECK-DAG: @"??_R4B2@@6BY2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 12, i32 8, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUB2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3B2@@8" }, comdat
+// CHECK-DAG: @"??_R4A2@@6BZ2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUA2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3A2@@8" }, comdat
+// CHECK-DAG: @"??_R4A2@@6BY2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 4, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUA2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3A2@@8" }, comdat
+// CHECK-DAG: @"??_R4Y2@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUY2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3Y2@@8" }, comdat
+// CHECK-DAG: @"??_R4Z2@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUZ2@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3Z2@@8" }, comdat
+// CHECK-DAG: @"??_R4B1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 8, i32 4, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUB1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3B1@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUB1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUB1@@\00" }, comdat
+// CHECK-DAG: @"??_R3B1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, %rtti.BaseClassDescriptor** getelementptr inbounds ([3 x %rtti.BaseClassDescriptor*], [3 x %rtti.BaseClassDescriptor*]* @"??_R2B1@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2B1@@8" = linkonce_odr constant [3 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@B1@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3FA at A1@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@B1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUB1@@@8" to i8*), i32 1, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3B1@@8" }, comdat
+// CHECK-DAG: @"??_R1A at A@3FA at A1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUA1@@@8" to i8*), i32 0, i32 0, i32 0, i32 4, i32 80, %rtti.ClassHierarchyDescriptor* @"??_R3A1@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUA1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUA1@@\00" }, comdat
+// CHECK-DAG: @"??_R3A1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"??_R2A1@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2A1@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@A1@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@A1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUA1@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3A1@@8" }, comdat
+// CHECK-DAG: @"??_R4A1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUA1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3A1@@8" }, comdat
+// CHECK-DAG: @"??_R4Y1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 4, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUY1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3Y1@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUY1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUY1@@\00" }, comdat
+// CHECK-DAG: @"??_R3Y1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 6, %rtti.BaseClassDescriptor** getelementptr inbounds ([7 x %rtti.BaseClassDescriptor*], [7 x %rtti.BaseClassDescriptor*]* @"??_R2Y1@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2Y1@@8" = linkonce_odr constant [7 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Y1@@8", %rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@W1@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3FA at V1@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3EA at X1@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3FA at V1@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3EA at X1@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@Y1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUY1@@@8" to i8*), i32 5, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3Y1@@8" }, comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@W1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUW1@@@8" to i8*), i32 2, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3W1@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUW1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUW1@@\00" }, comdat
+// CHECK-DAG: @"??_R3W1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 3, %rtti.BaseClassDescriptor** getelementptr inbounds ([4 x %rtti.BaseClassDescriptor*], [4 x %rtti.BaseClassDescriptor*]* @"??_R2W1@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2W1@@8" = linkonce_odr constant [4 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@W1@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3FA at V1@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3EA at X1@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A at A@3FA at V1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUV1@@@8" to i8*), i32 1, i32 0, i32 0, i32 4, i32 80, %rtti.ClassHierarchyDescriptor* @"??_R3V1@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUV1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUV1@@\00" }, comdat
+// CHECK-DAG: @"??_R3V1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, %rtti.BaseClassDescriptor** getelementptr inbounds ([3 x %rtti.BaseClassDescriptor*], [3 x %rtti.BaseClassDescriptor*]* @"??_R2V1@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2V1@@8" = linkonce_odr constant [3 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@V1@@8", %rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@X1@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@V1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUV1@@@8" to i8*), i32 1, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3V1@@8" }, comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@X1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUX1@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3X1@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUX1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUX1@@\00" }, comdat
+// CHECK-DAG: @"??_R3X1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"??_R2X1@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2X1@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@X1@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A at A@3EA at X1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUX1@@@8" to i8*), i32 0, i32 0, i32 0, i32 4, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3X1@@8" }, comdat
+// CHECK-DAG: @"??_R4W1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 4, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUW1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3W1@@8" }, comdat
+// CHECK-DAG: @"??_R4V1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUV1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3V1@@8" }, comdat
+// CHECK-DAG: @"??_R4X1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor8* @"??_R0?AUX1@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3X1@@8" }, comdat
+// CHECK-DAG: @"??_R4C@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUC@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3C@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUC@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUC@@\00" }, comdat
+// CHECK-DAG: @"??_R3C@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 3, %rtti.BaseClassDescriptor** getelementptr inbounds ([4 x %rtti.BaseClassDescriptor*], [4 x %rtti.BaseClassDescriptor*]* @"??_R2C@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2C@@8" = linkonce_odr constant [4 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@C@@8", %rtti.BaseClassDescriptor* @"??_R13?0A at EA@B@@8", %rtti.BaseClassDescriptor* @"??_R13?0A at EA@A@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@C@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUC@@@8" to i8*), i32 2, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3C@@8" }, comdat
+// CHECK-DAG: @"??_R13?0A at EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUB@@@8" to i8*), i32 1, i32 4, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3B@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUB@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUB@@\00" }, comdat
+// CHECK-DAG: @"??_R3B@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, %rtti.BaseClassDescriptor** getelementptr inbounds ([3 x %rtti.BaseClassDescriptor*], [3 x %rtti.BaseClassDescriptor*]* @"??_R2B@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2B@@8" = linkonce_odr constant [3 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@B@@8", %rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@A@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUB@@@8" to i8*), i32 1, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3B@@8" }, comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUA@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3A@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUA@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUA@@\00" }, comdat
+// CHECK-DAG: @"??_R3A@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"??_R2A@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2A@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@A@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R13?0A at EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUA@@@8" to i8*), i32 0, i32 4, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3A@@8" }, comdat
+// CHECK-DAG: @"??_R4Y@@6BZ@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVY@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3Y@@8" }, comdat
+// CHECK-DAG: @"??_R0?AVY@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AVY@@\00" }, comdat
+// CHECK-DAG: @"??_R3Y@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 9, %rtti.BaseClassDescriptor** getelementptr inbounds ([10 x %rtti.BaseClassDescriptor*], [10 x %rtti.BaseClassDescriptor*]* @"??_R2Y@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2Y@@8" = linkonce_odr constant [10 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Y@@8", %rtti.BaseClassDescriptor* @"??_R1A@?0A at EN@Z@@8", %rtti.BaseClassDescriptor* @"??_R13?0A at EN@W@@8", %rtti.BaseClassDescriptor* @"??_R17?0A at EN@M@@8", %rtti.BaseClassDescriptor* @"??_R17?0A at EN@N@@8", %rtti.BaseClassDescriptor* @"??_R1A at 33FN@V@@8", %rtti.BaseClassDescriptor* @"??_R1A at 33EJ@X@@8", %rtti.BaseClassDescriptor* @"??_R1A at 33FN@V@@8", %rtti.BaseClassDescriptor* @"??_R1A at 33EJ@X@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@Y@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVY@@@8" to i8*), i32 8, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3Y@@8" }, comdat
+// CHECK-DAG: @"??_R1A@?0A at EN@Z@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVZ@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"??_R3Z@@8" }, comdat
+// CHECK-DAG: @"??_R0?AVZ@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AVZ@@\00" }, comdat
+// CHECK-DAG: @"??_R3Z@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"??_R2Z@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2Z@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Z@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@Z@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVZ@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3Z@@8" }, comdat
+// CHECK-DAG: @"??_R13?0A at EN@W@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVW@@@8" to i8*), i32 4, i32 4, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"??_R3W@@8" }, comdat
+// CHECK-DAG: @"??_R0?AVW@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AVW@@\00" }, comdat
+// CHECK-DAG: @"??_R3W@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 5, %rtti.BaseClassDescriptor** getelementptr inbounds ([6 x %rtti.BaseClassDescriptor*], [6 x %rtti.BaseClassDescriptor*]* @"??_R2W@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2W@@8" = linkonce_odr constant [6 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@W@@8", %rtti.BaseClassDescriptor* @"??_R13?0A at EN@M@@8", %rtti.BaseClassDescriptor* @"??_R13?0A at EN@N@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3FN at V@@8", %rtti.BaseClassDescriptor* @"??_R1A at A@3EJ at X@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@W@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVW@@@8" to i8*), i32 4, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3W@@8" }, comdat
+// CHECK-DAG: @"??_R13?0A at EN@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUM@@@8" to i8*), i32 1, i32 4, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"??_R3M@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUM@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUM@@\00" }, comdat
+// CHECK-DAG: @"??_R3M@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, %rtti.BaseClassDescriptor** getelementptr inbounds ([3 x %rtti.BaseClassDescriptor*], [3 x %rtti.BaseClassDescriptor*]* @"??_R2M@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2M@@8" = linkonce_odr constant [3 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@M@@8", %rtti.BaseClassDescriptor* @"??_R1A@?0A at EN@N@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUM@@@8" to i8*), i32 1, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3M@@8" }, comdat
+// CHECK-DAG: @"??_R1A@?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUN@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"??_R3N@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUN@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUN@@\00" }, comdat
+// CHECK-DAG: @"??_R3N@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"??_R2N@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2N@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@N@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUN@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3N@@8" }, comdat
+// CHECK-DAG: @"??_R13?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUN@@@8" to i8*), i32 0, i32 4, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"??_R3N@@8" }, comdat
+// CHECK-DAG: @"??_R1A at A@3FN at V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVV@@@8" to i8*), i32 1, i32 0, i32 0, i32 4, i32 93, %rtti.ClassHierarchyDescriptor* @"??_R3V@@8" }, comdat
+// CHECK-DAG: @"??_R0?AVV@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AVV@@\00" }, comdat
+// CHECK-DAG: @"??_R3V@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, %rtti.BaseClassDescriptor** getelementptr inbounds ([3 x %rtti.BaseClassDescriptor*], [3 x %rtti.BaseClassDescriptor*]* @"??_R2V@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2V@@8" = linkonce_odr constant [3 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@V@@8", %rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@X@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVV@@@8" to i8*), i32 1, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3V@@8" }, comdat
+// CHECK-DAG: @"??_R1A@?0A at EA@X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUX@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"??_R3X@@8" }, comdat
+// CHECK-DAG: @"??_R0?AUX@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUX@@\00" }, comdat
+// CHECK-DAG: @"??_R3X@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"??_R2X@@8", i32 0, i32 0) }, comdat
+// CHECK-DAG: @"??_R2X@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@X@@8", %rtti.BaseClassDescriptor* null], comdat
+// CHECK-DAG: @"??_R1A at A@3EJ at X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUX@@@8" to i8*), i32 0, i32 0, i32 0, i32 4, i32 73, %rtti.ClassHierarchyDescriptor* @"??_R3X@@8" }, comdat
+// CHECK-DAG: @"??_R17?0A at EN@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUM@@@8" to i8*), i32 1, i32 8, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"??_R3M@@8" }, comdat
+// CHECK-DAG: @"??_R17?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUN@@@8" to i8*), i32 0, i32 8, i32 -1, i32 0, i32 77, %rtti.ClassHierarchyDescriptor* @"??_R3N@@8" }, comdat
+// CHECK-DAG: @"??_R1A at 33FN@V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVV@@@8" to i8*), i32 1, i32 0, i32 4, i32 4, i32 93, %rtti.ClassHierarchyDescriptor* @"??_R3V@@8" }, comdat
+// CHECK-DAG: @"??_R1A at 33EJ@X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUX@@@8" to i8*), i32 0, i32 0, i32 4, i32 4, i32 73, %rtti.ClassHierarchyDescriptor* @"??_R3X@@8" }, comdat
+// CHECK-DAG: @"??_R4Y@@6BW@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 8, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVY@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3Y@@8" }, comdat
+// CHECK-DAG: @"??_R4W@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 4, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVW@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3W@@8" }, comdat
+// CHECK-DAG: @"??_R4Z@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVZ@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3Z@@8" }, comdat
+// CHECK-DAG: @"??_R4V@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AVV@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3V@@8" }, comdat
+// CHECK-DAG: @"??_R4X@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUX@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"??_R3X@@8" }, comdat
 
-// X64-DAG: @"\01??_R4B2@@6BZ2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 16, i32 4, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUB2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3B2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4B2@@6BZ2@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUB2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUB2@@\00" }, comdat
-// X64-DAG: @"\01??_R3B2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 4, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([5 x i32]* @"\01??_R2B2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2B2@@8" = linkonce_odr constant [5 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@B2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3FA at A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3EA at Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R17A at 3EA@Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@B2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUB2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 3, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3B2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A at A@3FA at A2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUA2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 2, i32 0, i32 0, i32 4, i32 80, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUA2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUA2@@\00" }, comdat
-// X64-DAG: @"\01??_R3A2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 1, i32 3, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([4 x i32]* @"\01??_R2A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2A2@@8" = linkonce_odr constant [4 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R17?0A at EA@Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@A2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUA2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 2, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@Z2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUZ2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUZ2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUZ2@@\00" }, comdat
-// X64-DAG: @"\01??_R3Z2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"\01??_R2Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2Z2@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R17?0A at EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUY2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 8, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUY2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUY2@@\00" }, comdat
-// X64-DAG: @"\01??_R3Y2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"\01??_R2Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2Y2@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUY2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A at A@3EA at Z2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUZ2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 0, i32 4, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R17A at 3EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUY2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 8, i32 0, i32 4, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4B2@@6BY2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 24, i32 12, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUB2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3B2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4B2@@6BY2@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4A2@@6BZ2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUA2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4A2@@6BZ2@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4A2@@6BY2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 8, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUA2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4A2@@6BY2@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4Y2@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUY2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4Y2@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4Z2@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUZ2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4Z2@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4B1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 16, i32 4, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUB1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3B1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4B1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUB1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUB1@@\00" }, comdat
-// X64-DAG: @"\01??_R3B1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"\01??_R2B1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2B1@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@B1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3FA at A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@B1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUB1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3B1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A at A@3FA at A1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUA1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 0, i32 4, i32 80, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUA1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUA1@@\00" }, comdat
-// X64-DAG: @"\01??_R3A1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"\01??_R2A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2A1@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@A1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUA1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4A1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUA1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4A1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4Y1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 8, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUY1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Y1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4Y1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUY1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUY1@@\00" }, comdat
-// X64-DAG: @"\01??_R3Y1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 6, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([7 x i32]* @"\01??_R2Y1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2Y1@@8" = linkonce_odr constant [7 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Y1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@W1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3FA at V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3EA at X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3FA at V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3EA at X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@Y1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUY1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 5, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Y1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@W1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUW1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 2, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3W1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUW1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUW1@@\00" }, comdat
-// X64-DAG: @"\01??_R3W1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 3, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([4 x i32]* @"\01??_R2W1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2W1@@8" = linkonce_odr constant [4 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@W1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3FA at V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3EA at X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A at A@3FA at V1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUV1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 0, i32 4, i32 80, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUV1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUV1@@\00" }, comdat
-// X64-DAG: @"\01??_R3V1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"\01??_R2V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2V1@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@V1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUV1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@X1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUX1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUX1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"\01??_7type_info@@6B@", i8* null, [9 x i8] c".?AUX1@@\00" }, comdat
-// X64-DAG: @"\01??_R3X1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"\01??_R2X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2X1@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A at A@3EA at X1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUX1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 0, i32 4, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4W1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 8, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUW1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3W1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4W1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4V1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUV1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4V1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4X1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"\01??_R0?AUX1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4X1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4C@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUC@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4C@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUC@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUC@@\00" }, comdat
-// X64-DAG: @"\01??_R3C@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 3, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([4 x i32]* @"\01??_R2C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2C@@8" = linkonce_odr constant [4 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R17?0A at EA@B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R17?0A at EA@A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@C@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUC@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 2, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R17?0A at EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUB@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 8, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUB@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUB@@\00" }, comdat
-// X64-DAG: @"\01??_R3B@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"\01??_R2B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2B@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUB@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUA@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUA@@\00" }, comdat
-// X64-DAG: @"\01??_R3A@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"\01??_R2A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2A@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R17?0A at EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 8, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4Y@@6BZ@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVY@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Y@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4Y@@6BZ@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AVY@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVY@@\00" }, comdat
-// X64-DAG: @"\01??_R3Y@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 9, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([10 x i32]* @"\01??_R2Y@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2Y@@8" = linkonce_odr constant [10 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Y@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EN@Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R17?0A at EN@W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1BA@?0A at EN@M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1BA@?0A at EN@N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at 73FN@V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at 73EJ@X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at 73FN@V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at 73EJ@X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@Y@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVY@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 8, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Y@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A@?0A at EN@Z@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVZ@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AVZ@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVZ@@\00" }, comdat
-// X64-DAG: @"\01??_R3Z@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"\01??_R2Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2Z@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@Z@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVZ@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R17?0A at EN@W@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVW@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 4, i32 8, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AVW@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVW@@\00" }, comdat
-// X64-DAG: @"\01??_R3W@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 5, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([6 x i32]* @"\01??_R2W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2W@@8" = linkonce_odr constant [6 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R17?0A at EN@M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R17?0A at EN@N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3FN at V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A at A@3EJ at X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@W@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVW@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 4, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R17?0A at EN@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUM@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 8, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUM@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUM@@\00" }, comdat
-// X64-DAG: @"\01??_R3M@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"\01??_R2M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2M@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EN@N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUM@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A@?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUN@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUN@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUN@@\00" }, comdat
-// X64-DAG: @"\01??_R3N@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"\01??_R2N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2N@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUN@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R17?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUN@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 8, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A at A@3FN at V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVV@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 0, i32 4, i32 93, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AVV@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVV@@\00" }, comdat
-// X64-DAG: @"\01??_R3V@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"\01??_R2V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2V@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVV@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A@?0A at EA@X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUX@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R0?AUX@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUX@@\00" }, comdat
-// X64-DAG: @"\01??_R3X@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"\01??_R2X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R2X@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A at EA@X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-// X64-DAG: @"\01??_R1A at A@3EJ at X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUX@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 0, i32 4, i32 73, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1BA@?0A at EN@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUM@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 16, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1BA@?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUN@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 16, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A at 73FN@V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVV@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 8, i32 4, i32 93, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R1A at 73EJ@X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUX@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 8, i32 4, i32 73, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4Y@@6BW@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 16, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVY@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Y@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4Y@@6BW@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4W@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 8, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVW@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4W@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4Z@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVZ@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4Z@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4V@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AVV@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4V@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-// X64-DAG: @"\01??_R4X@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUX@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4X@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4B2@@6BZ2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 16, i32 4, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUB2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3B2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4B2@@6BZ2@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUB2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUB2@@\00" }, comdat
+// X64-DAG: @"??_R3B2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 4, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([5 x i32]* @"??_R2B2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2B2@@8" = linkonce_odr constant [5 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@B2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3FA at A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3EA at Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R17A at 3EA@Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@B2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUB2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 3, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3B2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A at A@3FA at A2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUA2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 2, i32 0, i32 0, i32 4, i32 80, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUA2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUA2@@\00" }, comdat
+// X64-DAG: @"??_R3A2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 1, i32 3, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([4 x i32]* @"??_R2A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2A2@@8" = linkonce_odr constant [4 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R17?0A at EA@Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@A2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUA2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 2, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A@?0A at EA@Z2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUZ2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUZ2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUZ2@@\00" }, comdat
+// X64-DAG: @"??_R3Z2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"??_R2Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2Z2@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R17?0A at EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUY2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 8, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUY2@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUY2@@\00" }, comdat
+// X64-DAG: @"??_R3Y2@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"??_R2Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2Y2@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUY2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A at A@3EA at Z2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUZ2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 0, i32 4, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R17A at 3EA@Y2@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUY2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 8, i32 0, i32 4, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4B2@@6BY2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 24, i32 12, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUB2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3B2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4B2@@6BY2@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4A2@@6BZ2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUA2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4A2@@6BZ2@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4A2@@6BY2@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 8, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUA2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3A2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4A2@@6BY2@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4Y2@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUY2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Y2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4Y2@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4Z2@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUZ2@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Z2@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4Z2@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4B1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 16, i32 4, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUB1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3B1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4B1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUB1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUB1@@\00" }, comdat
+// X64-DAG: @"??_R3B1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"??_R2B1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2B1@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@B1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3FA at A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@B1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUB1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3B1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A at A@3FA at A1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUA1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 0, i32 4, i32 80, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUA1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUA1@@\00" }, comdat
+// X64-DAG: @"??_R3A1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"??_R2A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2A1@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@A1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUA1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4A1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUA1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3A1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4A1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4Y1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 8, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUY1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Y1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4Y1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUY1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUY1@@\00" }, comdat
+// X64-DAG: @"??_R3Y1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 6, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([7 x i32]* @"??_R2Y1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2Y1@@8" = linkonce_odr constant [7 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Y1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@W1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3FA at V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3EA at X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3FA at V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3EA at X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@Y1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUY1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 5, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Y1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A@?0A at EA@W1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUW1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 2, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3W1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUW1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUW1@@\00" }, comdat
+// X64-DAG: @"??_R3W1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 3, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([4 x i32]* @"??_R2W1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2W1@@8" = linkonce_odr constant [4 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@W1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3FA at V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3EA at X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A at A@3FA at V1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUV1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 0, i32 4, i32 80, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUV1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUV1@@\00" }, comdat
+// X64-DAG: @"??_R3V1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"??_R2V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2V1@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@V1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUV1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A@?0A at EA@X1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUX1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUX1@@@8" = linkonce_odr global %rtti.TypeDescriptor8 { i8** @"??_7type_info@@6B@", i8* null, [9 x i8] c".?AUX1@@\00" }, comdat
+// X64-DAG: @"??_R3X1@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"??_R2X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2X1@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A at A@3EA at X1@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUX1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 0, i32 4, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4W1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 8, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUW1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3W1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4W1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4V1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUV1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3V1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4V1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4X1@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor8* @"??_R0?AUX1@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3X1@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4X1@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4C@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUC@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4C@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUC@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUC@@\00" }, comdat
+// X64-DAG: @"??_R3C@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 3, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([4 x i32]* @"??_R2C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2C@@8" = linkonce_odr constant [4 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R17?0A at EA@B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R17?0A at EA@A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@C@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUC@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 2, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R17?0A at EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUB@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 8, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUB@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUB@@\00" }, comdat
+// X64-DAG: @"??_R3B@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"??_R2B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2B@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUB@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A@?0A at EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUA@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUA@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUA@@\00" }, comdat
+// X64-DAG: @"??_R3A@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"??_R2A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2A@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R17?0A at EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUA@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 8, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4Y@@6BZ@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVY@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Y@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4Y@@6BZ@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AVY@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AVY@@\00" }, comdat
+// X64-DAG: @"??_R3Y@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 9, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([10 x i32]* @"??_R2Y@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2Y@@8" = linkonce_odr constant [10 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Y@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EN@Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R17?0A at EN@W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1BA@?0A at EN@M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1BA@?0A at EN@N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at 73FN@V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at 73EJ@X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at 73FN@V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at 73EJ@X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@Y@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVY@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 8, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Y@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A@?0A at EN@Z@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVZ@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AVZ@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AVZ@@\00" }, comdat
+// X64-DAG: @"??_R3Z@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"??_R2Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2Z@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@Z@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVZ@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R17?0A at EN@W@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVW@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 4, i32 8, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AVW@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AVW@@\00" }, comdat
+// X64-DAG: @"??_R3W@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 5, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([6 x i32]* @"??_R2W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2W@@8" = linkonce_odr constant [6 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R17?0A at EN@M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R17?0A at EN@N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3FN at V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A at A@3EJ at X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@W@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVW@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 4, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R17?0A at EN@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUM@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 8, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUM@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUM@@\00" }, comdat
+// X64-DAG: @"??_R3M@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"??_R2M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2M@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EN@N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUM@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A@?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUN@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUN@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUN@@\00" }, comdat
+// X64-DAG: @"??_R3N@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"??_R2N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2N@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUN@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R17?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUN@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 8, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A at A@3FN at V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVV@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 0, i32 4, i32 93, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AVV@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AVV@@\00" }, comdat
+// X64-DAG: @"??_R3V@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"??_R2V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2V@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A@?0A at EA@V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVV@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A@?0A at EA@X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUX@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R0?AUX@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUX@@\00" }, comdat
+// X64-DAG: @"??_R3X@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"??_R2X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R2X@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"??_R1A@?0A at EA@X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
+// X64-DAG: @"??_R1A at A@3EJ at X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUX@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 0, i32 4, i32 73, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1BA@?0A at EN@M@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUM@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 16, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3M@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1BA@?0A at EN@N@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUN@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 16, i32 -1, i32 0, i32 77, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3N@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A at 73FN@V@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVV@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 8, i32 4, i32 93, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R1A at 73EJ@X@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUX@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 8, i32 4, i32 73, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4Y@@6BW@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 16, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVY@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Y@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4Y@@6BW@@@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4W@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 8, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVW@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3W@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4W@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4Z@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVZ@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3Z@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4Z@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4V@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AVV@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3V@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4V@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
+// X64-DAG: @"??_R4X@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"??_R0?AUX@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"??_R3X@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"??_R4X@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp Fri Mar 16 13:36:49 2018
@@ -79,94 +79,94 @@ void call_bools_and_chars() {
 // Returning structs that fit into a register.
 Small small_return() { return Small(); }
 // LINUX-LABEL: define void @_Z12small_returnv(%struct.Small* noalias sret %agg.result)
-// WIN32: define dso_local i32 @"\01?small_return@@YA?AUSmall@@XZ"()
-// WIN64: define dso_local i32 @"\01?small_return@@YA?AUSmall@@XZ"()
+// WIN32: define dso_local i32 @"?small_return@@YA?AUSmall@@XZ"()
+// WIN64: define dso_local i32 @"?small_return@@YA?AUSmall@@XZ"()
 
 Medium medium_return() { return Medium(); }
 // LINUX-LABEL: define void @_Z13medium_returnv(%struct.Medium* noalias sret %agg.result)
-// WIN32: define dso_local i64 @"\01?medium_return@@YA?AUMedium@@XZ"()
-// WIN64: define dso_local i64 @"\01?medium_return@@YA?AUMedium@@XZ"()
+// WIN32: define dso_local i64 @"?medium_return@@YA?AUMedium@@XZ"()
+// WIN64: define dso_local i64 @"?medium_return@@YA?AUMedium@@XZ"()
 
 // Returning structs that fit into a register but are not POD.
 SmallCpp11NotCpp03Pod small_non_pod_return() { return SmallCpp11NotCpp03Pod(); }
 // LINUX-LABEL: define void @_Z20small_non_pod_returnv(%struct.SmallCpp11NotCpp03Pod* noalias sret %agg.result)
-// WIN32: define dso_local void @"\01?small_non_pod_return@@YA?AUSmallCpp11NotCpp03Pod@@XZ"(%struct.SmallCpp11NotCpp03Pod* noalias sret %agg.result)
-// WIN64: define dso_local void @"\01?small_non_pod_return@@YA?AUSmallCpp11NotCpp03Pod@@XZ"(%struct.SmallCpp11NotCpp03Pod* noalias sret %agg.result)
+// WIN32: define dso_local void @"?small_non_pod_return@@YA?AUSmallCpp11NotCpp03Pod@@XZ"(%struct.SmallCpp11NotCpp03Pod* noalias sret %agg.result)
+// WIN64: define dso_local void @"?small_non_pod_return@@YA?AUSmallCpp11NotCpp03Pod@@XZ"(%struct.SmallCpp11NotCpp03Pod* noalias sret %agg.result)
 
 SmallWithCtor small_with_ctor_return() { return SmallWithCtor(); }
 // LINUX-LABEL: define void @_Z22small_with_ctor_returnv(%struct.SmallWithCtor* noalias sret %agg.result)
-// WIN32: define dso_local void @"\01?small_with_ctor_return@@YA?AUSmallWithCtor@@XZ"(%struct.SmallWithCtor* noalias sret %agg.result)
-// WIN64: define dso_local void @"\01?small_with_ctor_return@@YA?AUSmallWithCtor@@XZ"(%struct.SmallWithCtor* noalias sret %agg.result)
+// WIN32: define dso_local void @"?small_with_ctor_return@@YA?AUSmallWithCtor@@XZ"(%struct.SmallWithCtor* noalias sret %agg.result)
+// WIN64: define dso_local void @"?small_with_ctor_return@@YA?AUSmallWithCtor@@XZ"(%struct.SmallWithCtor* noalias sret %agg.result)
 // FIXME: The 'sret' mark here doesn't seem to be enough to convince LLVM to
 // preserve the hidden sret pointer in R0 across the function.
-// WOA: define dso_local arm_aapcs_vfpcc void @"\01?small_with_ctor_return@@YA?AUSmallWithCtor@@XZ"(%struct.SmallWithCtor* noalias sret %agg.result)
+// WOA: define dso_local arm_aapcs_vfpcc void @"?small_with_ctor_return@@YA?AUSmallWithCtor@@XZ"(%struct.SmallWithCtor* noalias sret %agg.result)
 
 SmallWithVftable small_with_vftable_return() { return SmallWithVftable(); }
 // LINUX-LABEL: define void @_Z25small_with_vftable_returnv(%struct.SmallWithVftable* noalias sret %agg.result)
-// WIN32: define dso_local void @"\01?small_with_vftable_return@@YA?AUSmallWithVftable@@XZ"(%struct.SmallWithVftable* noalias sret %agg.result)
-// WIN64: define dso_local void @"\01?small_with_vftable_return@@YA?AUSmallWithVftable@@XZ"(%struct.SmallWithVftable* noalias sret %agg.result)
+// WIN32: define dso_local void @"?small_with_vftable_return@@YA?AUSmallWithVftable@@XZ"(%struct.SmallWithVftable* noalias sret %agg.result)
+// WIN64: define dso_local void @"?small_with_vftable_return@@YA?AUSmallWithVftable@@XZ"(%struct.SmallWithVftable* noalias sret %agg.result)
 
 MediumWithCopyCtor medium_with_copy_ctor_return() { return MediumWithCopyCtor(); }
 // LINUX-LABEL: define void @_Z28medium_with_copy_ctor_returnv(%struct.MediumWithCopyCtor* noalias sret %agg.result)
-// WIN32: define dso_local void @"\01?medium_with_copy_ctor_return@@YA?AUMediumWithCopyCtor@@XZ"(%struct.MediumWithCopyCtor* noalias sret %agg.result)
-// WIN64: define dso_local void @"\01?medium_with_copy_ctor_return@@YA?AUMediumWithCopyCtor@@XZ"(%struct.MediumWithCopyCtor* noalias sret %agg.result)
-// WOA: define dso_local arm_aapcs_vfpcc void @"\01?medium_with_copy_ctor_return@@YA?AUMediumWithCopyCtor@@XZ"(%struct.MediumWithCopyCtor* noalias sret %agg.result)
+// WIN32: define dso_local void @"?medium_with_copy_ctor_return@@YA?AUMediumWithCopyCtor@@XZ"(%struct.MediumWithCopyCtor* noalias sret %agg.result)
+// WIN64: define dso_local void @"?medium_with_copy_ctor_return@@YA?AUMediumWithCopyCtor@@XZ"(%struct.MediumWithCopyCtor* noalias sret %agg.result)
+// WOA: define dso_local arm_aapcs_vfpcc void @"?medium_with_copy_ctor_return@@YA?AUMediumWithCopyCtor@@XZ"(%struct.MediumWithCopyCtor* noalias sret %agg.result)
 
 // Returning a large struct that doesn't fit into a register.
 Big big_return() { return Big(); }
 // LINUX-LABEL: define void @_Z10big_returnv(%struct.Big* noalias sret %agg.result)
-// WIN32: define dso_local void @"\01?big_return@@YA?AUBig@@XZ"(%struct.Big* noalias sret %agg.result)
-// WIN64: define dso_local void @"\01?big_return@@YA?AUBig@@XZ"(%struct.Big* noalias sret %agg.result)
+// WIN32: define dso_local void @"?big_return@@YA?AUBig@@XZ"(%struct.Big* noalias sret %agg.result)
+// WIN64: define dso_local void @"?big_return@@YA?AUBig@@XZ"(%struct.Big* noalias sret %agg.result)
 
 
 void small_arg(Small s) {}
 // LINUX-LABEL: define void @_Z9small_arg5Small(i32 %s.0)
-// WIN32: define dso_local void @"\01?small_arg@@YAXUSmall@@@Z"(i32 %s.0)
-// WIN64: define dso_local void @"\01?small_arg@@YAXUSmall@@@Z"(i32 %s.coerce)
-// WOA: define dso_local arm_aapcs_vfpcc void @"\01?small_arg@@YAXUSmall@@@Z"([1 x i32] %s.coerce)
+// WIN32: define dso_local void @"?small_arg@@YAXUSmall@@@Z"(i32 %s.0)
+// WIN64: define dso_local void @"?small_arg@@YAXUSmall@@@Z"(i32 %s.coerce)
+// WOA: define dso_local arm_aapcs_vfpcc void @"?small_arg@@YAXUSmall@@@Z"([1 x i32] %s.coerce)
 
 void medium_arg(Medium s) {}
 // LINUX-LABEL: define void @_Z10medium_arg6Medium(i32 %s.0, i32 %s.1)
-// WIN32: define dso_local void @"\01?medium_arg@@YAXUMedium@@@Z"(i32 %s.0, i32 %s.1)
-// WIN64: define dso_local void @"\01?medium_arg@@YAXUMedium@@@Z"(i64 %s.coerce)
-// WOA: define dso_local arm_aapcs_vfpcc void @"\01?medium_arg@@YAXUMedium@@@Z"([2 x i32] %s.coerce)
+// WIN32: define dso_local void @"?medium_arg@@YAXUMedium@@@Z"(i32 %s.0, i32 %s.1)
+// WIN64: define dso_local void @"?medium_arg@@YAXUMedium@@@Z"(i64 %s.coerce)
+// WOA: define dso_local arm_aapcs_vfpcc void @"?medium_arg@@YAXUMedium@@@Z"([2 x i32] %s.coerce)
 
 void base_no_byval_arg(BaseNoByval s) {}
 // LINUX-LABEL: define void @_Z17base_no_byval_arg11BaseNoByval(%struct.BaseNoByval* byval align 4 %s)
-// WIN32: define dso_local void @"\01?base_no_byval_arg@@YAXUBaseNoByval@@@Z"(i32 %s.0, i32 %s.1)
-// WIN64: define dso_local void @"\01?base_no_byval_arg@@YAXUBaseNoByval@@@Z"(i64 %s.coerce)
-// WOA: define dso_local arm_aapcs_vfpcc void @"\01?base_no_byval_arg@@YAXUBaseNoByval@@@Z"([2 x i32] %s.coerce)
+// WIN32: define dso_local void @"?base_no_byval_arg@@YAXUBaseNoByval@@@Z"(i32 %s.0, i32 %s.1)
+// WIN64: define dso_local void @"?base_no_byval_arg@@YAXUBaseNoByval@@@Z"(i64 %s.coerce)
+// WOA: define dso_local arm_aapcs_vfpcc void @"?base_no_byval_arg@@YAXUBaseNoByval@@@Z"([2 x i32] %s.coerce)
 
 void small_arg_with_ctor(SmallWithCtor s) {}
 // LINUX-LABEL: define void @_Z19small_arg_with_ctor13SmallWithCtor(%struct.SmallWithCtor* byval align 4 %s)
-// WIN32: define dso_local void @"\01?small_arg_with_ctor@@YAXUSmallWithCtor@@@Z"(i32 %s.0)
-// WIN64: define dso_local void @"\01?small_arg_with_ctor@@YAXUSmallWithCtor@@@Z"(i32 %s.coerce)
-// WOA: define dso_local arm_aapcs_vfpcc void @"\01?small_arg_with_ctor@@YAXUSmallWithCtor@@@Z"([1 x i32] %s.coerce)
+// WIN32: define dso_local void @"?small_arg_with_ctor@@YAXUSmallWithCtor@@@Z"(i32 %s.0)
+// WIN64: define dso_local void @"?small_arg_with_ctor@@YAXUSmallWithCtor@@@Z"(i32 %s.coerce)
+// WOA: define dso_local arm_aapcs_vfpcc void @"?small_arg_with_ctor@@YAXUSmallWithCtor@@@Z"([1 x i32] %s.coerce)
 
 // FIXME: We could coerce to a series of i32s here if we wanted to.
 void multibyte_arg(Multibyte s) {}
 // LINUX-LABEL: define void @_Z13multibyte_arg9Multibyte(%struct.Multibyte* byval align 4 %s)
-// WIN32: define dso_local void @"\01?multibyte_arg@@YAXUMultibyte@@@Z"(%struct.Multibyte* byval align 4 %s)
-// WIN64: define dso_local void @"\01?multibyte_arg@@YAXUMultibyte@@@Z"(i32 %s.coerce)
-// WOA: define dso_local arm_aapcs_vfpcc void @"\01?multibyte_arg@@YAXUMultibyte@@@Z"([1 x i32] %s.coerce)
+// WIN32: define dso_local void @"?multibyte_arg@@YAXUMultibyte@@@Z"(%struct.Multibyte* byval align 4 %s)
+// WIN64: define dso_local void @"?multibyte_arg@@YAXUMultibyte@@@Z"(i32 %s.coerce)
+// WOA: define dso_local arm_aapcs_vfpcc void @"?multibyte_arg@@YAXUMultibyte@@@Z"([1 x i32] %s.coerce)
 
 void packed_arg(Packed s) {}
 // LINUX-LABEL: define void @_Z10packed_arg6Packed(%struct.Packed* byval align 4 %s)
-// WIN32: define dso_local void @"\01?packed_arg@@YAXUPacked@@@Z"(%struct.Packed* byval align 4 %s)
-// WIN64: define dso_local void @"\01?packed_arg@@YAXUPacked@@@Z"(%struct.Packed* %s)
+// WIN32: define dso_local void @"?packed_arg@@YAXUPacked@@@Z"(%struct.Packed* byval align 4 %s)
+// WIN64: define dso_local void @"?packed_arg@@YAXUPacked@@@Z"(%struct.Packed* %s)
 
 // Test that dtors are invoked in the callee.
 void small_arg_with_dtor(SmallWithDtor s) {}
-// WIN32: define dso_local void @"\01?small_arg_with_dtor@@YAXUSmallWithDtor@@@Z"(<{ %struct.SmallWithDtor }>* inalloca) {{.*}} {
-// WIN32:   call x86_thiscallcc void @"\01??1SmallWithDtor@@QAE at XZ"
+// WIN32: define dso_local void @"?small_arg_with_dtor@@YAXUSmallWithDtor@@@Z"(<{ %struct.SmallWithDtor }>* inalloca) {{.*}} {
+// WIN32:   call x86_thiscallcc void @"??1SmallWithDtor@@QAE at XZ"
 // WIN32: }
-// WIN64: define dso_local void @"\01?small_arg_with_dtor@@YAXUSmallWithDtor@@@Z"(i32 %s.coerce) {{.*}} {
-// WIN64:   call void @"\01??1SmallWithDtor@@QEAA at XZ"
+// WIN64: define dso_local void @"?small_arg_with_dtor@@YAXUSmallWithDtor@@@Z"(i32 %s.coerce) {{.*}} {
+// WIN64:   call void @"??1SmallWithDtor@@QEAA at XZ"
 // WIN64: }
 
 // FIXME: MSVC incompatible!
-// WOA: define dso_local arm_aapcs_vfpcc void @"\01?small_arg_with_dtor@@YAXUSmallWithDtor@@@Z"(%struct.SmallWithDtor* %s) {{.*}} {
-// WOA:   call arm_aapcs_vfpcc void @"\01??1SmallWithDtor@@QAA at XZ"(%struct.SmallWithDtor* %s)
+// WOA: define dso_local arm_aapcs_vfpcc void @"?small_arg_with_dtor@@YAXUSmallWithDtor@@@Z"(%struct.SmallWithDtor* %s) {{.*}} {
+// WOA:   call arm_aapcs_vfpcc void @"??1SmallWithDtor@@QAA at XZ"(%struct.SmallWithDtor* %s)
 // WOA: }
 
 void call_small_arg_with_dtor() {
@@ -174,22 +174,22 @@ void call_small_arg_with_dtor() {
 }
 // The temporary is copied, so it's destroyed in the caller as well as the
 // callee.
-// WIN64-LABEL: define dso_local void @"\01?call_small_arg_with_dtor@@YAXXZ"()
-// WIN64:   call %struct.SmallWithDtor* @"\01??0SmallWithDtor@@QEAA at XZ"
-// WIN64:   call void @"\01?small_arg_with_dtor@@YAXUSmallWithDtor@@@Z"(i32 %{{.*}})
-// WIN64:   call void @"\01??1SmallWithDtor@@QEAA at XZ"
+// WIN64-LABEL: define dso_local void @"?call_small_arg_with_dtor@@YAXXZ"()
+// WIN64:   call %struct.SmallWithDtor* @"??0SmallWithDtor@@QEAA at XZ"
+// WIN64:   call void @"?small_arg_with_dtor@@YAXUSmallWithDtor@@@Z"(i32 %{{.*}})
+// WIN64:   call void @"??1SmallWithDtor@@QEAA at XZ"
 // WIN64:   ret void
 
 // Test that references aren't destroyed in the callee.
 void ref_small_arg_with_dtor(const SmallWithDtor &s) { }
-// WIN32: define dso_local void @"\01?ref_small_arg_with_dtor@@YAXABUSmallWithDtor@@@Z"(%struct.SmallWithDtor* dereferenceable({{[0-9]+}}) %s) {{.*}} {
-// WIN32-NOT:   call x86_thiscallcc void @"\01??1SmallWithDtor@@QAE at XZ"
+// WIN32: define dso_local void @"?ref_small_arg_with_dtor@@YAXABUSmallWithDtor@@@Z"(%struct.SmallWithDtor* dereferenceable({{[0-9]+}}) %s) {{.*}} {
+// WIN32-NOT:   call x86_thiscallcc void @"??1SmallWithDtor@@QAE at XZ"
 // WIN32: }
-// WIN64-LABEL: define dso_local void @"\01?ref_small_arg_with_dtor@@YAXAEBUSmallWithDtor@@@Z"(%struct.SmallWithDtor* dereferenceable({{[0-9]+}}) %s)
+// WIN64-LABEL: define dso_local void @"?ref_small_arg_with_dtor@@YAXAEBUSmallWithDtor@@@Z"(%struct.SmallWithDtor* dereferenceable({{[0-9]+}}) %s)
 
 void big_arg_with_dtor(BigWithDtor s) {}
-// WIN64-LABEL: define dso_local void @"\01?big_arg_with_dtor@@YAXUBigWithDtor@@@Z"(%struct.BigWithDtor* %s)
-// WIN64:   call void @"\01??1BigWithDtor@@QEAA at XZ"
+// WIN64-LABEL: define dso_local void @"?big_arg_with_dtor@@YAXUBigWithDtor@@@Z"(%struct.BigWithDtor* %s)
+// WIN64:   call void @"??1BigWithDtor@@QEAA at XZ"
 // WIN64: }
 
 void call_big_arg_with_dtor() {
@@ -197,20 +197,20 @@ void call_big_arg_with_dtor() {
 }
 // We can elide the copy of the temporary in the caller, because this object is
 // larger than 8 bytes and is passed indirectly.
-// WIN64-LABEL: define dso_local void @"\01?call_big_arg_with_dtor@@YAXXZ"()
-// WIN64:   call %struct.BigWithDtor* @"\01??0BigWithDtor@@QEAA at XZ"
-// WIN64:   call void @"\01?big_arg_with_dtor@@YAXUBigWithDtor@@@Z"(%struct.BigWithDtor* %{{.*}})
-// WIN64-NOT: call void @"\01??1BigWithDtor@@QEAA at XZ"
+// WIN64-LABEL: define dso_local void @"?call_big_arg_with_dtor@@YAXXZ"()
+// WIN64:   call %struct.BigWithDtor* @"??0BigWithDtor@@QEAA at XZ"
+// WIN64:   call void @"?big_arg_with_dtor@@YAXUBigWithDtor@@@Z"(%struct.BigWithDtor* %{{.*}})
+// WIN64-NOT: call void @"??1BigWithDtor@@QEAA at XZ"
 // WIN64:   ret void
 
 // Test that temporaries passed by reference are destroyed in the caller.
 void temporary_ref_with_dtor() {
   ref_small_arg_with_dtor(SmallWithDtor());
 }
-// WIN32: define dso_local void @"\01?temporary_ref_with_dtor@@YAXXZ"() {{.*}} {
-// WIN32:   call x86_thiscallcc %struct.SmallWithDtor* @"\01??0SmallWithDtor@@QAE at XZ"
-// WIN32:   call void @"\01?ref_small_arg_with_dtor@@YAXABUSmallWithDtor@@@Z"
-// WIN32:   call x86_thiscallcc void @"\01??1SmallWithDtor@@QAE at XZ"
+// WIN32: define dso_local void @"?temporary_ref_with_dtor@@YAXXZ"() {{.*}} {
+// WIN32:   call x86_thiscallcc %struct.SmallWithDtor* @"??0SmallWithDtor@@QAE at XZ"
+// WIN32:   call void @"?ref_small_arg_with_dtor@@YAXABUSmallWithDtor@@@Z"
+// WIN32:   call x86_thiscallcc void @"??1SmallWithDtor@@QAE at XZ"
 // WIN32: }
 
 void takes_two_by_val_with_dtor(SmallWithDtor a, SmallWithDtor b);
@@ -219,28 +219,28 @@ void eh_cleanup_arg_with_dtor() {
 }
 //   When exceptions are off, we don't have any cleanups.  See
 //   microsoft-abi-exceptions.cpp for these cleanups.
-// WIN32: define dso_local void @"\01?eh_cleanup_arg_with_dtor@@YAXXZ"() {{.*}} {
-// WIN32:   call x86_thiscallcc %struct.SmallWithDtor* @"\01??0SmallWithDtor@@QAE at XZ"
-// WIN32:   call x86_thiscallcc %struct.SmallWithDtor* @"\01??0SmallWithDtor@@QAE at XZ"
-// WIN32:   call void @"\01?takes_two_by_val_with_dtor@@YAXUSmallWithDtor@@0 at Z"
-// WIN32-NOT: call x86_thiscallcc void @"\01??1SmallWithDtor@@QAE at XZ"
+// WIN32: define dso_local void @"?eh_cleanup_arg_with_dtor@@YAXXZ"() {{.*}} {
+// WIN32:   call x86_thiscallcc %struct.SmallWithDtor* @"??0SmallWithDtor@@QAE at XZ"
+// WIN32:   call x86_thiscallcc %struct.SmallWithDtor* @"??0SmallWithDtor@@QAE at XZ"
+// WIN32:   call void @"?takes_two_by_val_with_dtor@@YAXUSmallWithDtor@@0 at Z"
+// WIN32-NOT: call x86_thiscallcc void @"??1SmallWithDtor@@QAE at XZ"
 // WIN32: }
 
 void small_arg_with_vftable(SmallWithVftable s) {}
 // LINUX-LABEL: define void @_Z22small_arg_with_vftable16SmallWithVftable(%struct.SmallWithVftable* %s)
-// WIN32: define dso_local void @"\01?small_arg_with_vftable@@YAXUSmallWithVftable@@@Z"(<{ %struct.SmallWithVftable }>* inalloca)
-// WIN64: define dso_local void @"\01?small_arg_with_vftable@@YAXUSmallWithVftable@@@Z"(%struct.SmallWithVftable* %s)
+// WIN32: define dso_local void @"?small_arg_with_vftable@@YAXUSmallWithVftable@@@Z"(<{ %struct.SmallWithVftable }>* inalloca)
+// WIN64: define dso_local void @"?small_arg_with_vftable@@YAXUSmallWithVftable@@@Z"(%struct.SmallWithVftable* %s)
 
 void medium_arg_with_copy_ctor(MediumWithCopyCtor s) {}
 // LINUX-LABEL: define void @_Z25medium_arg_with_copy_ctor18MediumWithCopyCtor(%struct.MediumWithCopyCtor* %s)
-// WIN32: define dso_local void @"\01?medium_arg_with_copy_ctor@@YAXUMediumWithCopyCtor@@@Z"(<{ %struct.MediumWithCopyCtor }>* inalloca)
-// WIN64: define dso_local void @"\01?medium_arg_with_copy_ctor@@YAXUMediumWithCopyCtor@@@Z"(%struct.MediumWithCopyCtor* %s)
-// WOA: define dso_local arm_aapcs_vfpcc void @"\01?medium_arg_with_copy_ctor@@YAXUMediumWithCopyCtor@@@Z"(%struct.MediumWithCopyCtor* %s)
+// WIN32: define dso_local void @"?medium_arg_with_copy_ctor@@YAXUMediumWithCopyCtor@@@Z"(<{ %struct.MediumWithCopyCtor }>* inalloca)
+// WIN64: define dso_local void @"?medium_arg_with_copy_ctor@@YAXUMediumWithCopyCtor@@@Z"(%struct.MediumWithCopyCtor* %s)
+// WOA: define dso_local arm_aapcs_vfpcc void @"?medium_arg_with_copy_ctor@@YAXUMediumWithCopyCtor@@@Z"(%struct.MediumWithCopyCtor* %s)
 
 void big_arg(Big s) {}
 // LINUX-LABEL: define void @_Z7big_arg3Big(%struct.Big* byval align 4 %s)
-// WIN32: define dso_local void @"\01?big_arg@@YAXUBig@@@Z"(%struct.Big* byval align 4 %s)
-// WIN64: define dso_local void @"\01?big_arg@@YAXUBig@@@Z"(%struct.Big* %s)
+// WIN32: define dso_local void @"?big_arg@@YAXUBig@@@Z"(%struct.Big* byval align 4 %s)
+// WIN64: define dso_local void @"?big_arg@@YAXUBig@@@Z"(%struct.Big* %s)
 
 // PR27607: We would attempt to load i32 value out of the reference instead of
 // just loading the pointer from the struct during argument expansion.
@@ -250,8 +250,8 @@ struct RefField {
 };
 void takes_ref_field(RefField s) {}
 // LINUX-LABEL: define void @_Z15takes_ref_field8RefField(%struct.RefField* byval align 4 %s)
-// WIN32: define dso_local void @"\01?takes_ref_field@@YAXURefField@@@Z"(i32* %s.0)
-// WIN64: define dso_local void @"\01?takes_ref_field@@YAXURefField@@@Z"(i64 %s.coerce)
+// WIN32: define dso_local void @"?takes_ref_field@@YAXURefField@@@Z"(i32* %s.0)
+// WIN64: define dso_local void @"?takes_ref_field@@YAXURefField@@@Z"(i64 %s.coerce)
 
 void pass_ref_field() {
   int x;
@@ -259,57 +259,57 @@ void pass_ref_field() {
 }
 // LINUX-LABEL: define void @_Z14pass_ref_fieldv()
 // LINUX: call void @_Z15takes_ref_field8RefField(%struct.RefField* byval align 4 %{{.*}})
-// WIN32-LABEL: define dso_local void @"\01?pass_ref_field@@YAXXZ"()
-// WIN32: call void @"\01?takes_ref_field@@YAXURefField@@@Z"(i32* %{{.*}})
-// WIN64-LABEL: define dso_local void @"\01?pass_ref_field@@YAXXZ"()
-// WIN64: call void @"\01?takes_ref_field@@YAXURefField@@@Z"(i64 %{{.*}})
+// WIN32-LABEL: define dso_local void @"?pass_ref_field@@YAXXZ"()
+// WIN32: call void @"?takes_ref_field@@YAXURefField@@@Z"(i32* %{{.*}})
+// WIN64-LABEL: define dso_local void @"?pass_ref_field@@YAXXZ"()
+// WIN64: call void @"?takes_ref_field@@YAXURefField@@@Z"(i64 %{{.*}})
 
 class Class {
  public:
   Small thiscall_method_small() { return Small(); }
   // LINUX: define {{.*}} void @_ZN5Class21thiscall_method_smallEv(%struct.Small* noalias sret %agg.result, %class.Class* %this)
-  // WIN32: define {{.*}} x86_thiscallcc void @"\01?thiscall_method_small at Class@@QAE?AUSmall@@XZ"(%class.Class* %this, %struct.Small* noalias sret %agg.result)
-  // WIN64: define linkonce_odr dso_local void @"\01?thiscall_method_small at Class@@QEAA?AUSmall@@XZ"(%class.Class* %this, %struct.Small* noalias sret %agg.result)
+  // WIN32: define {{.*}} x86_thiscallcc void @"?thiscall_method_small at Class@@QAE?AUSmall@@XZ"(%class.Class* %this, %struct.Small* noalias sret %agg.result)
+  // WIN64: define linkonce_odr dso_local void @"?thiscall_method_small at Class@@QEAA?AUSmall@@XZ"(%class.Class* %this, %struct.Small* noalias sret %agg.result)
 
   SmallWithCtor thiscall_method_small_with_ctor() { return SmallWithCtor(); }
   // LINUX: define {{.*}} void @_ZN5Class31thiscall_method_small_with_ctorEv(%struct.SmallWithCtor* noalias sret %agg.result, %class.Class* %this)
-  // WIN32: define {{.*}} x86_thiscallcc void @"\01?thiscall_method_small_with_ctor at Class@@QAE?AUSmallWithCtor@@XZ"(%class.Class* %this, %struct.SmallWithCtor* noalias sret %agg.result)
-  // WIN64: define linkonce_odr dso_local void @"\01?thiscall_method_small_with_ctor at Class@@QEAA?AUSmallWithCtor@@XZ"(%class.Class* %this, %struct.SmallWithCtor* noalias sret %agg.result)
+  // WIN32: define {{.*}} x86_thiscallcc void @"?thiscall_method_small_with_ctor at Class@@QAE?AUSmallWithCtor@@XZ"(%class.Class* %this, %struct.SmallWithCtor* noalias sret %agg.result)
+  // WIN64: define linkonce_odr dso_local void @"?thiscall_method_small_with_ctor at Class@@QEAA?AUSmallWithCtor@@XZ"(%class.Class* %this, %struct.SmallWithCtor* noalias sret %agg.result)
 
   Small __cdecl cdecl_method_small() { return Small(); }
   // LINUX: define {{.*}} void @_ZN5Class18cdecl_method_smallEv(%struct.Small* noalias sret %agg.result, %class.Class* %this)
-  // WIN32: define {{.*}} void @"\01?cdecl_method_small at Class@@QAA?AUSmall@@XZ"(%class.Class* %this, %struct.Small* noalias sret %agg.result)
-  // WIN64: define linkonce_odr dso_local void @"\01?cdecl_method_small at Class@@QEAA?AUSmall@@XZ"(%class.Class* %this, %struct.Small* noalias sret %agg.result)
+  // WIN32: define {{.*}} void @"?cdecl_method_small at Class@@QAA?AUSmall@@XZ"(%class.Class* %this, %struct.Small* noalias sret %agg.result)
+  // WIN64: define linkonce_odr dso_local void @"?cdecl_method_small at Class@@QEAA?AUSmall@@XZ"(%class.Class* %this, %struct.Small* noalias sret %agg.result)
 
   Big __cdecl cdecl_method_big() { return Big(); }
   // LINUX: define {{.*}} void @_ZN5Class16cdecl_method_bigEv(%struct.Big* noalias sret %agg.result, %class.Class* %this)
-  // WIN32: define {{.*}} void @"\01?cdecl_method_big at Class@@QAA?AUBig@@XZ"(%class.Class* %this, %struct.Big* noalias sret %agg.result)
-  // WIN64: define linkonce_odr dso_local void @"\01?cdecl_method_big at Class@@QEAA?AUBig@@XZ"(%class.Class* %this, %struct.Big* noalias sret %agg.result)
+  // WIN32: define {{.*}} void @"?cdecl_method_big at Class@@QAA?AUBig@@XZ"(%class.Class* %this, %struct.Big* noalias sret %agg.result)
+  // WIN64: define linkonce_odr dso_local void @"?cdecl_method_big at Class@@QEAA?AUBig@@XZ"(%class.Class* %this, %struct.Big* noalias sret %agg.result)
 
   void thiscall_method_arg(Empty s) {}
   // LINUX: define {{.*}} void @_ZN5Class19thiscall_method_argE5Empty(%class.Class* %this)
-  // WIN32: define {{.*}} void @"\01?thiscall_method_arg at Class@@QAEXUEmpty@@@Z"(%class.Class* %this, %struct.Empty* byval align 4 %s)
-  // WIN64: define linkonce_odr dso_local void @"\01?thiscall_method_arg at Class@@QEAAXUEmpty@@@Z"(%class.Class* %this, i8 %s.coerce)
+  // WIN32: define {{.*}} void @"?thiscall_method_arg at Class@@QAEXUEmpty@@@Z"(%class.Class* %this, %struct.Empty* byval align 4 %s)
+  // WIN64: define linkonce_odr dso_local void @"?thiscall_method_arg at Class@@QEAAXUEmpty@@@Z"(%class.Class* %this, i8 %s.coerce)
 
   void thiscall_method_arg(EmptyWithCtor s) {}
   // LINUX: define {{.*}} void @_ZN5Class19thiscall_method_argE13EmptyWithCtor(%class.Class* %this)
-  // WIN32: define {{.*}} void @"\01?thiscall_method_arg at Class@@QAEXUEmptyWithCtor@@@Z"(%class.Class* %this, %struct.EmptyWithCtor* byval align 4 %s)
-  // WIN64: define linkonce_odr dso_local void @"\01?thiscall_method_arg at Class@@QEAAXUEmptyWithCtor@@@Z"(%class.Class* %this, i8 %s.coerce)
+  // WIN32: define {{.*}} void @"?thiscall_method_arg at Class@@QAEXUEmptyWithCtor@@@Z"(%class.Class* %this, %struct.EmptyWithCtor* byval align 4 %s)
+  // WIN64: define linkonce_odr dso_local void @"?thiscall_method_arg at Class@@QEAAXUEmptyWithCtor@@@Z"(%class.Class* %this, i8 %s.coerce)
 
   void thiscall_method_arg(Small s) {}
   // LINUX: define {{.*}} void @_ZN5Class19thiscall_method_argE5Small(%class.Class* %this, i32 %s.0)
-  // WIN32: define {{.*}} void @"\01?thiscall_method_arg at Class@@QAEXUSmall@@@Z"(%class.Class* %this, i32 %s.0)
-  // WIN64: define linkonce_odr dso_local void @"\01?thiscall_method_arg at Class@@QEAAXUSmall@@@Z"(%class.Class* %this, i32 %s.coerce)
+  // WIN32: define {{.*}} void @"?thiscall_method_arg at Class@@QAEXUSmall@@@Z"(%class.Class* %this, i32 %s.0)
+  // WIN64: define linkonce_odr dso_local void @"?thiscall_method_arg at Class@@QEAAXUSmall@@@Z"(%class.Class* %this, i32 %s.coerce)
 
   void thiscall_method_arg(SmallWithCtor s) {}
   // LINUX: define {{.*}} void @_ZN5Class19thiscall_method_argE13SmallWithCtor(%class.Class* %this, %struct.SmallWithCtor* byval align 4 %s)
-  // WIN32: define {{.*}} void @"\01?thiscall_method_arg at Class@@QAEXUSmallWithCtor@@@Z"(%class.Class* %this, i32 %s.0)
-  // WIN64: define linkonce_odr dso_local void @"\01?thiscall_method_arg at Class@@QEAAXUSmallWithCtor@@@Z"(%class.Class* %this, i32 %s.coerce)
+  // WIN32: define {{.*}} void @"?thiscall_method_arg at Class@@QAEXUSmallWithCtor@@@Z"(%class.Class* %this, i32 %s.0)
+  // WIN64: define linkonce_odr dso_local void @"?thiscall_method_arg at Class@@QEAAXUSmallWithCtor@@@Z"(%class.Class* %this, i32 %s.coerce)
 
   void thiscall_method_arg(Big s) {}
   // LINUX: define {{.*}} void @_ZN5Class19thiscall_method_argE3Big(%class.Class* %this, %struct.Big* byval align 4 %s)
-  // WIN32: define {{.*}} void @"\01?thiscall_method_arg at Class@@QAEXUBig@@@Z"(%class.Class* %this, %struct.Big* byval align 4 %s)
-  // WIN64: define linkonce_odr dso_local void @"\01?thiscall_method_arg at Class@@QEAAXUBig@@@Z"(%class.Class* %this, %struct.Big* %s)
+  // WIN32: define {{.*}} void @"?thiscall_method_arg at Class@@QAEXUBig@@@Z"(%class.Class* %this, %struct.Big* byval align 4 %s)
+  // WIN64: define linkonce_odr dso_local void @"?thiscall_method_arg at Class@@QEAAXUBig@@@Z"(%class.Class* %this, %struct.Big* %s)
 };
 
 void use_class() {
@@ -333,14 +333,14 @@ struct X {
 };
 void g(X) {
 }
-// WIN32: define dso_local void @"\01?g@@YAXUX@@@Z"(<{ %struct.X, [3 x i8] }>* inalloca) {{.*}} {
-// WIN32:   call x86_thiscallcc void @"\01??1X@@QAE at XZ"(%struct.X* {{.*}})
+// WIN32: define dso_local void @"?g@@YAXUX@@@Z"(<{ %struct.X, [3 x i8] }>* inalloca) {{.*}} {
+// WIN32:   call x86_thiscallcc void @"??1X@@QAE at XZ"(%struct.X* {{.*}})
 // WIN32: }
 void f() {
   g(X());
 }
-// WIN32: define dso_local void @"\01?f@@YAXXZ"() {{.*}} {
-// WIN32-NOT: call {{.*}} @"\01??1X@@QAE at XZ"
+// WIN32: define dso_local void @"?f@@YAXXZ"() {{.*}} {
+// WIN32-NOT: call {{.*}} @"??1X@@QAE at XZ"
 // WIN32: }
 
 
@@ -362,13 +362,13 @@ void bar() {
   b.b = 13;
   int c = foo(NonTrivial(), b);
 }
-// WIN32-LABEL: define dso_local void @"\01?bar at test2@@YAXXZ"() {{.*}} {
+// WIN32-LABEL: define dso_local void @"?bar at test2@@YAXXZ"() {{.*}} {
 // WIN32:   %[[argmem:[^ ]*]] = alloca inalloca [[argmem_ty:<{ %"struct.test2::NonTrivial", %"struct.test2::POD" }>]]
 // WIN32:   getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %[[argmem]], i32 0, i32 1
 // WIN32:   call void @llvm.memcpy
 // WIN32:   getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %[[argmem]], i32 0, i32 0
-// WIN32:   call x86_thiscallcc %"struct.test2::NonTrivial"* @"\01??0NonTrivial at test2@@QAE at XZ"
-// WIN32:   call i32 @"\01?foo at test2@@YAHUNonTrivial at 1@UPOD at 1@@Z"([[argmem_ty]]* inalloca %argmem)
+// WIN32:   call x86_thiscallcc %"struct.test2::NonTrivial"* @"??0NonTrivial at test2@@QAE at XZ"
+// WIN32:   call i32 @"?foo at test2@@YAHUNonTrivial at 1@UPOD at 1@@Z"([[argmem_ty]]* inalloca %argmem)
 // WIN32:   ret void
 // WIN32: }
 
@@ -384,7 +384,7 @@ struct NonTrivial {
   int a;
 };
 void foo(NonTrivial a, bool b) { }
-// WIN32-LABEL: define dso_local void @"\01?foo at test3@@YAXUNonTrivial at 1@_N at Z"(<{ %"struct.test3::NonTrivial", i8, [3 x i8] }>* inalloca)
+// WIN32-LABEL: define dso_local void @"?foo at test3@@YAXUNonTrivial at 1@_N at Z"(<{ %"struct.test3::NonTrivial", i8, [3 x i8] }>* inalloca)
 
 }
 
@@ -399,7 +399,7 @@ void fn1(FnPtr1 a, SmallWithDtor b) { }
 struct ForwardDeclare1 {};
 
 void fn2(FnPtr1 a, SmallWithDtor b) { fn1(a, b); };
-// WIN32-LABEL: define dso_local void @"\01?fn2@@YAXP6AXUForwardDeclare1@@@ZUSmallWithDtor@@@Z"
+// WIN32-LABEL: define dso_local void @"?fn2@@YAXP6AXUForwardDeclare1@@@ZUSmallWithDtor@@@Z"
 // WIN32:   %[[a:[^ ]*]] = getelementptr inbounds [[argmem_ty:<{ {}\*, %struct.SmallWithDtor }>]], [[argmem_ty:<{ {}\*, %struct.SmallWithDtor }>]]* %{{.*}}, i32 0, i32 0
 // WIN32:   %[[a1:[^ ]*]] = bitcast {}** %[[a]] to void [[dst_ty:\(%struct.ForwardDeclare1\*\)\*]]*
 // WIN32:   %[[argmem:[^ ]*]] = alloca inalloca [[argmem_ty]]
@@ -410,7 +410,7 @@ void fn2(FnPtr1 a, SmallWithDtor b) { fn
 // WIN32:   %[[gep2:[^ ]*]] = getelementptr inbounds [[argmem_ty]], [[argmem_ty]]* %[[argmem]], i32 0, i32 0
 // WIN32:   %[[addr:[^ ]*]] = bitcast {}** %[[gep2]] to void [[dst_ty]]*
 // WIN32:   store void [[dst_ty]] %[[a2]], void [[dst_ty]]* %[[addr]], align 4
-// WIN32:   call void @"\01?fn1@@YAXP6AXUForwardDeclare1@@@ZUSmallWithDtor@@@Z"([[argmem_ty]]* inalloca %[[argmem]])
+// WIN32:   call void @"?fn1@@YAXP6AXUForwardDeclare1@@@ZUSmallWithDtor@@@Z"([[argmem_ty]]* inalloca %[[argmem]])
 
 namespace pr30293 {
 // Virtual methods living in a secondary vtable take i8* as their 'this'
@@ -430,11 +430,11 @@ struct C final : A, B {
 };
 void C::g() { return h(SmallWithDtor()); }
 
-// WIN32-LABEL: define dso_local x86_thiscallcc void @"\01?g at C@pr30293@@QAEXXZ"(%"struct.pr30293::C"* %this)
-// WIN32: call x86_thiscallcc %struct.SmallWithDtor* @"\01??0SmallWithDtor@@QAE at XZ"
-// WIN32: call void @"\01?h at C@pr30293@@UAAXUSmallWithDtor@@@Z"(<{ i8*, %struct.SmallWithDtor }>* inalloca %{{[^,)]*}})
-// WIN32: declare dso_local void @"\01?h at C@pr30293@@UAAXUSmallWithDtor@@@Z"(<{ i8*, %struct.SmallWithDtor }>* inalloca)
+// WIN32-LABEL: define dso_local x86_thiscallcc void @"?g at C@pr30293@@QAEXXZ"(%"struct.pr30293::C"* %this)
+// WIN32: call x86_thiscallcc %struct.SmallWithDtor* @"??0SmallWithDtor@@QAE at XZ"
+// WIN32: call void @"?h at C@pr30293@@UAAXUSmallWithDtor@@@Z"(<{ i8*, %struct.SmallWithDtor }>* inalloca %{{[^,)]*}})
+// WIN32: declare dso_local void @"?h at C@pr30293@@UAAXUSmallWithDtor@@@Z"(<{ i8*, %struct.SmallWithDtor }>* inalloca)
 
-// WIN64-LABEL: define dso_local void @"\01?g at C@pr30293@@QEAAXXZ"(%"struct.pr30293::C"* %this)
-// WIN64: declare dso_local void @"\01?h at C@pr30293@@UEAAXUSmallWithDtor@@@Z"(i8*, i32)
+// WIN64-LABEL: define dso_local void @"?g at C@pr30293@@QEAAXXZ"(%"struct.pr30293::C"* %this)
+// WIN64: declare dso_local void @"?h at C@pr30293@@UEAAXUSmallWithDtor@@@Z"(i8*, i32)
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-static-initializers.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-static-initializers.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-static-initializers.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-static-initializers.cpp Fri Mar 16 13:36:49 2018
@@ -1,10 +1,10 @@
 // RUN: %clang_cc1 -fms-extensions -fno-threadsafe-statics -emit-llvm %s -o - -mconstructor-aliases -triple=i386-pc-win32 | FileCheck %s
 
 // CHECK: @llvm.global_ctors = appending global [5 x { i32, void ()*, i8* }] [
-// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"\01??__Eselectany1@@YAXXZ", i8* getelementptr inbounds (%struct.S, %struct.S* @"\01?selectany1@@3US@@A", i32 0, i32 0) },
-// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"\01??__Eselectany2@@YAXXZ", i8* getelementptr inbounds (%struct.S, %struct.S* @"\01?selectany2@@3US@@A", i32 0, i32 0) },
-// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"\01??__Es@?$ExportedTemplate at H@@2US@@A at YAXXZ", i8* getelementptr inbounds (%struct.S, %struct.S* @"\01?s@?$ExportedTemplate at H@@2US@@A", i32 0, i32 0) },
-// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"\01??__Efoo@?$B at H@@2VA@@A at YAXXZ", i8* bitcast (%class.A* @"\01?foo@?$B at H@@2VA@@A" to i8*) },
+// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"??__Eselectany1@@YAXXZ", i8* getelementptr inbounds (%struct.S, %struct.S* @"?selectany1@@3US@@A", i32 0, i32 0) },
+// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"??__Eselectany2@@YAXXZ", i8* getelementptr inbounds (%struct.S, %struct.S* @"?selectany2@@3US@@A", i32 0, i32 0) },
+// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"??__Es@?$ExportedTemplate at H@@2US@@A at YAXXZ", i8* getelementptr inbounds (%struct.S, %struct.S* @"?s@?$ExportedTemplate at H@@2US@@A", i32 0, i32 0) },
+// CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @"??__Efoo@?$B at H@@2VA@@A at YAXXZ", i8* bitcast (%class.A* @"?foo@?$B at H@@2VA@@A" to i8*) },
 // CHECK: { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_microsoft_abi_static_initializers.cpp, i8* null }
 // CHECK: ]
 
@@ -15,26 +15,26 @@ struct S {
 
 S s;
 
-// CHECK: define internal void @"\01??__Es@@YAXXZ"()
-// CHECK: call x86_thiscallcc %struct.S* @"\01??0S@@QAE at XZ"
-// CHECK: call i32 @atexit(void ()* @"\01??__Fs@@YAXXZ")
+// CHECK: define internal void @"??__Es@@YAXXZ"()
+// CHECK: call x86_thiscallcc %struct.S* @"??0S@@QAE at XZ"
+// CHECK: call i32 @atexit(void ()* @"??__Fs@@YAXXZ")
 // CHECK: ret void
 
-// CHECK: define internal void @"\01??__Fs@@YAXXZ"()
-// CHECK: call x86_thiscallcc void @"\01??1S@@QAE at XZ"
+// CHECK: define internal void @"??__Fs@@YAXXZ"()
+// CHECK: call x86_thiscallcc void @"??1S@@QAE at XZ"
 // CHECK: ret void
 
 // These globals should have initializers comdat associative with the global.
 // See @llvm.global_ctors above.
 __declspec(selectany) S selectany1;
 __declspec(selectany) S selectany2;
-// CHECK: define linkonce_odr dso_local void @"\01??__Eselectany1@@YAXXZ"() {{.*}} comdat
-// CHECK-NOT: @"\01??_Bselectany1
-// CHECK: call x86_thiscallcc %struct.S* @"\01??0S@@QAE at XZ"
-// CHECK: ret void
-// CHECK: define linkonce_odr dso_local void @"\01??__Eselectany2@@YAXXZ"() {{.*}} comdat
-// CHECK-NOT: @"\01??_Bselectany2
-// CHECK: call x86_thiscallcc %struct.S* @"\01??0S@@QAE at XZ"
+// CHECK: define linkonce_odr dso_local void @"??__Eselectany1@@YAXXZ"() {{.*}} comdat
+// CHECK-NOT: @"??_Bselectany1
+// CHECK: call x86_thiscallcc %struct.S* @"??0S@@QAE at XZ"
+// CHECK: ret void
+// CHECK: define linkonce_odr dso_local void @"??__Eselectany2@@YAXXZ"() {{.*}} comdat
+// CHECK-NOT: @"??_Bselectany2
+// CHECK: call x86_thiscallcc %struct.S* @"??0S@@QAE at XZ"
 // CHECK: ret void
 
 // The implicitly instantiated static data member should have initializer
@@ -51,9 +51,9 @@ void StaticLocal() {
   static S TheS;
 }
 
-// CHECK-LABEL: define dso_local void @"\01?StaticLocal@@YAXXZ"()
-// CHECK: load i32, i32* @"\01?$S1@?1??StaticLocal@@YAXXZ at 4IA"
-// CHECK: store i32 {{.*}}, i32* @"\01?$S1@?1??StaticLocal@@YAXXZ at 4IA"
+// CHECK-LABEL: define dso_local void @"?StaticLocal@@YAXXZ"()
+// CHECK: load i32, i32* @"?$S1@?1??StaticLocal@@YAXXZ at 4IA"
+// CHECK: store i32 {{.*}}, i32* @"?$S1@?1??StaticLocal@@YAXXZ at 4IA"
 // CHECK: ret
 
 void MultipleStatics() {
@@ -93,8 +93,8 @@ void MultipleStatics() {
   static S S34;
   static S S35;
 }
-// CHECK-LABEL: define dso_local void @"\01?MultipleStatics@@YAXXZ"()
-// CHECK: load i32, i32* @"\01?$S1@?1??MultipleStatics@@YAXXZ at 4IA"
+// CHECK-LABEL: define dso_local void @"?MultipleStatics@@YAXXZ"()
+// CHECK: load i32, i32* @"?$S1@?1??MultipleStatics@@YAXXZ at 4IA"
 // CHECK: and i32 {{.*}}, 1
 // CHECK: and i32 {{.*}}, 2
 // CHECK: and i32 {{.*}}, 4
@@ -102,7 +102,7 @@ void MultipleStatics() {
 // CHECK: and i32 {{.*}}, 16
 //   ...
 // CHECK: and i32 {{.*}}, -2147483648
-// CHECK: load i32, i32* @"\01?$S1@?1??MultipleStatics@@YAXXZ at 4IA.1"
+// CHECK: load i32, i32* @"?$S1@?1??MultipleStatics@@YAXXZ at 4IA.1"
 // CHECK: and i32 {{.*}}, 1
 // CHECK: and i32 {{.*}}, 2
 // CHECK: and i32 {{.*}}, 4
@@ -133,7 +133,7 @@ inline S &UnreachableStatic() {
   return s;
 }
 
-// CHECK-LABEL: define linkonce_odr dso_local dereferenceable({{[0-9]+}}) %struct.S* @"\01?UnreachableStatic@@YAAAUS@@XZ"() {{.*}} comdat
+// CHECK-LABEL: define linkonce_odr dso_local dereferenceable({{[0-9]+}}) %struct.S* @"?UnreachableStatic@@YAAAUS@@XZ"() {{.*}} comdat
 // CHECK: and i32 {{.*}}, 2
 // CHECK: or i32 {{.*}}, 2
 // CHECK: ret
@@ -143,54 +143,54 @@ inline S &getS() {
   return TheS;
 }
 
-// CHECK-LABEL: define linkonce_odr dso_local dereferenceable({{[0-9]+}}) %struct.S* @"\01?getS@@YAAAUS@@XZ"() {{.*}} comdat
-// CHECK: load i32, i32* @"\01??_B?1??getS@@YAAAUS@@XZ at 51"
+// CHECK-LABEL: define linkonce_odr dso_local dereferenceable({{[0-9]+}}) %struct.S* @"?getS@@YAAAUS@@XZ"() {{.*}} comdat
+// CHECK: load i32, i32* @"??_B?1??getS@@YAAAUS@@XZ at 51"
 // CHECK: and i32 {{.*}}, 1
 // CHECK: icmp eq i32 {{.*}}, 0
 // CHECK: br i1
 //   init:
 // CHECK: or i32 {{.*}}, 1
-// CHECK: store i32 {{.*}}, i32* @"\01??_B?1??getS@@YAAAUS@@XZ at 51"
-// CHECK: call x86_thiscallcc %struct.S* @"\01??0S@@QAE at XZ"(%struct.S* @"\01?TheS@?1??getS@@YAAAUS@@XZ at 4U2@A")
-// CHECK: call i32 @atexit(void ()* @"\01??__FTheS@?1??getS@@YAAAUS@@XZ at YAXXZ")
+// CHECK: store i32 {{.*}}, i32* @"??_B?1??getS@@YAAAUS@@XZ at 51"
+// CHECK: call x86_thiscallcc %struct.S* @"??0S@@QAE at XZ"(%struct.S* @"?TheS@?1??getS@@YAAAUS@@XZ at 4U2@A")
+// CHECK: call i32 @atexit(void ()* @"??__FTheS@?1??getS@@YAAAUS@@XZ at YAXXZ")
 // CHECK: br label
 //   init.end:
-// CHECK: ret %struct.S* @"\01?TheS@?1??getS@@YAAAUS@@XZ at 4U2@A"
+// CHECK: ret %struct.S* @"?TheS@?1??getS@@YAAAUS@@XZ at 4U2@A"
 
 inline int enum_in_function() {
-  // CHECK-LABEL: define linkonce_odr dso_local i32 @"\01?enum_in_function@@YAHXZ"() {{.*}} comdat
+  // CHECK-LABEL: define linkonce_odr dso_local i32 @"?enum_in_function@@YAHXZ"() {{.*}} comdat
   static enum e { foo, bar, baz } x;
-  // CHECK: @"\01?x@?1??enum_in_function@@YAHXZ at 4W4e@?1??1 at YAHXZ@A"
+  // CHECK: @"?x@?1??enum_in_function@@YAHXZ at 4W4e@?1??1 at YAHXZ@A"
   static int y;
-  // CHECK: @"\01?y@?1??enum_in_function@@YAHXZ at 4HA"
+  // CHECK: @"?y@?1??enum_in_function@@YAHXZ at 4HA"
   return x + y;
 };
 
 struct T {
   enum e { foo, bar, baz };
   int enum_in_struct() {
-    // CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc i32 @"\01?enum_in_struct at T@@QAEHXZ"({{.*}}) {{.*}} comdat
+    // CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc i32 @"?enum_in_struct at T@@QAEHXZ"({{.*}}) {{.*}} comdat
     static int x;
-    // CHECK: @"\01?x@?1??enum_in_struct at T@@QAEHXZ at 4HA"
+    // CHECK: @"?x@?1??enum_in_struct at T@@QAEHXZ at 4HA"
     return x++;
   }
 };
 
 inline int switch_test(int x) {
-  // CHECK-LABEL: define linkonce_odr dso_local i32 @"\01?switch_test@@YAHH at Z"(i32 %x) {{.*}} comdat
+  // CHECK-LABEL: define linkonce_odr dso_local i32 @"?switch_test@@YAHH at Z"(i32 %x) {{.*}} comdat
   switch (x) {
     static int a;
-    // CHECK: @"\01?a@?3??switch_test@@YAHH at Z@4HA"
+    // CHECK: @"?a@?3??switch_test@@YAHH at Z@4HA"
     case 0:
       a++;
       return 1;
     case 1:
       static int b;
-      // CHECK: @"\01?b@?3??switch_test@@YAHH at Z@4HA"
+      // CHECK: @"?b@?3??switch_test@@YAHH at Z@4HA"
       return b++;
     case 2: {
       static int c;
-      // CHECK: @"\01?c@?4??switch_test@@YAHH at Z@4HA"
+      // CHECK: @"?c@?4??switch_test@@YAHH at Z@4HA"
       return b + c++;
     }
   };
@@ -198,8 +198,8 @@ inline int switch_test(int x) {
 
 int f();
 inline void switch_test2() {
-  // CHECK-LABEL: define linkonce_odr dso_local void @"\01?switch_test2@@YAXXZ"() {{.*}} comdat
-  // CHECK: @"\01?x@?2??switch_test2@@YAXXZ at 4HA"
+  // CHECK-LABEL: define linkonce_odr dso_local void @"?switch_test2@@YAXXZ"() {{.*}} comdat
+  // CHECK: @"?x@?2??switch_test2@@YAXXZ at 4HA"
   switch (1) default: static int x = f();
 }
 
@@ -213,9 +213,9 @@ namespace DynamicDLLImportInitVSMangling
   template struct __declspec(dllimport) A<int>;
 
   inline int switch_test3() {
-    // CHECK-LABEL: define linkonce_odr dso_local i32 @"\01?switch_test3 at DynamicDLLImportInitVSMangling@@YAHXZ"() {{.*}} comdat
+    // CHECK-LABEL: define linkonce_odr dso_local i32 @"?switch_test3 at DynamicDLLImportInitVSMangling@@YAHXZ"() {{.*}} comdat
     static int local;
-    // CHECK: @"\01?local@?1??switch_test3 at DynamicDLLImportInitVSMangling@@YAHXZ at 4HA"
+    // CHECK: @"?local@?1??switch_test3 at DynamicDLLImportInitVSMangling@@YAHXZ at 4HA"
     return local++;
   }
 }
@@ -231,21 +231,21 @@ void force_usage() {
   DynamicDLLImportInitVSMangling::switch_test3();
 }
 
-// CHECK: define linkonce_odr dso_local void @"\01??__Efoo@?$B at H@@2VA@@A at YAXXZ"() {{.*}} comdat
+// CHECK: define linkonce_odr dso_local void @"??__Efoo@?$B at H@@2VA@@A at YAXXZ"() {{.*}} comdat
 // CHECK-NOT: and
 // CHECK-NOT: ?_Bfoo@
-// CHECK: call x86_thiscallcc %class.A* @"\01??0A@@QAE at XZ"
-// CHECK: call i32 @atexit(void ()* @"\01??__Ffoo@?$B at H@@2VA@@A at YAXXZ")
+// CHECK: call x86_thiscallcc %class.A* @"??0A@@QAE at XZ"
+// CHECK: call i32 @atexit(void ()* @"??__Ffoo@?$B at H@@2VA@@A at YAXXZ")
 // CHECK: ret void
 
-// CHECK: define linkonce_odr dso_local x86_thiscallcc %class.A* @"\01??0A@@QAE at XZ"({{.*}}) {{.*}} comdat
+// CHECK: define linkonce_odr dso_local x86_thiscallcc %class.A* @"??0A@@QAE at XZ"({{.*}}) {{.*}} comdat
 
-// CHECK: define linkonce_odr dso_local x86_thiscallcc void @"\01??1A@@QAE at XZ"({{.*}}) {{.*}} comdat
+// CHECK: define linkonce_odr dso_local x86_thiscallcc void @"??1A@@QAE at XZ"({{.*}}) {{.*}} comdat
 
-// CHECK: define internal void @"\01??__Ffoo@?$B at H@@2VA@@A at YAXXZ"
-// CHECK: call x86_thiscallcc void @"\01??1A@@QAE at XZ"{{.*}}foo
+// CHECK: define internal void @"??__Ffoo@?$B at H@@2VA@@A at YAXXZ"
+// CHECK: call x86_thiscallcc void @"??1A@@QAE at XZ"{{.*}}foo
 // CHECK: ret void
 
 // CHECK: define internal void @_GLOBAL__sub_I_microsoft_abi_static_initializers.cpp()
-// CHECK: call void @"\01??__Es@@YAXXZ"()
+// CHECK: call void @"??__Es@@YAXXZ"()
 // CHECK: ret void

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-structors-alias.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-structors-alias.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-structors-alias.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-structors-alias.cpp Fri Mar 16 13:36:49 2018
@@ -5,7 +5,7 @@ template <typename T> class A {
   ~A() {}
 };
 template class A<char>;
-// CHECK-DAG: define weak_odr dso_local x86_thiscallcc void @"\01??1?$A at D@test1@@AAE at XZ"
+// CHECK-DAG: define weak_odr dso_local x86_thiscallcc void @"??1?$A at D@test1@@AAE at XZ"
 }
 
 namespace test2 {
@@ -22,14 +22,14 @@ B::~B() {}
 void foo() {
   B b;
 }
-// CHECK-DAG: @"\01??1B at test2@@UAE at XZ" = dso_local alias void (%"struct.test2::B"*), bitcast (void (%"struct.test2::A"*)* @"\01??1A at test2@@UAE at XZ" to void (%"struct.test2::B"*)*)
+// CHECK-DAG: @"??1B at test2@@UAE at XZ" = dso_local alias void (%"struct.test2::B"*), bitcast (void (%"struct.test2::A"*)* @"??1A at test2@@UAE at XZ" to void (%"struct.test2::B"*)*)
 }
 
 namespace test3 {
 struct A { virtual ~A(); };
 A::~A() {}
 }
-// CHECK-DAG: define dso_local x86_thiscallcc void @"\01??1A at test3@@UAE at XZ"(
+// CHECK-DAG: define dso_local x86_thiscallcc void @"??1A at test3@@UAE at XZ"(
 namespace test3 {
 template <typename T>
 struct B : A {
@@ -39,4 +39,4 @@ template struct B<int>;
 }
 // This has to be weak, and emitting weak aliases is fragile, so we don't do the
 // aliasing.
-// CHECK-DAG: define weak_odr dso_local x86_thiscallcc void @"\01??1?$B at H@test3@@UAE at XZ"(
+// CHECK-DAG: define weak_odr dso_local x86_thiscallcc void @"??1?$B at H@test3@@UAE at XZ"(

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-structors-delayed-template.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-structors-delayed-template.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-structors-delayed-template.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-structors-delayed-template.cpp Fri Mar 16 13:36:49 2018
@@ -8,5 +8,5 @@ struct ImplicitCtor {
 };
 template <class T> void foo(T t) { new ImplicitCtor; }
 void bar() { foo(0); }
-// CHECK: store {{.*}} @"\01??_7ImplicitCtor at vtable_referenced_from_template@@6B@"
+// CHECK: store {{.*}} @"??_7ImplicitCtor at vtable_referenced_from_template@@6B@"
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp Fri Mar 16 13:36:49 2018
@@ -20,7 +20,7 @@ class A {
 void no_constructor_destructor_infinite_recursion() {
   A a;
 
-// CHECK:      define linkonce_odr dso_local x86_thiscallcc %"class.basic::A"* @"\01??0A at basic@@QAE at XZ"(%"class.basic::A"* returned %this) {{.*}} comdat {{.*}} {
+// CHECK:      define linkonce_odr dso_local x86_thiscallcc %"class.basic::A"* @"??0A at basic@@QAE at XZ"(%"class.basic::A"* returned %this) {{.*}} comdat {{.*}} {
 // CHECK:        [[THIS_ADDR:%[.0-9A-Z_a-z]+]] = alloca %"class.basic::A"*, align 4
 // CHECK-NEXT:   store %"class.basic::A"* %this, %"class.basic::A"** [[THIS_ADDR]], align 4
 // CHECK-NEXT:   [[T1:%[.0-9A-Z_a-z]+]] = load %"class.basic::A"*, %"class.basic::A"** [[THIS_ADDR]]
@@ -30,8 +30,8 @@ void no_constructor_destructor_infinite_
 
 A::~A() {
 // Make sure that the destructor doesn't call itself:
-// CHECK: define {{.*}} @"\01??1A at basic@@QAE at XZ"
-// CHECK-NOT: call void @"\01??1A at basic@@QAE at XZ"
+// CHECK: define {{.*}} @"??1A at basic@@QAE at XZ"
+// CHECK-NOT: call void @"??1A at basic@@QAE at XZ"
 // CHECK: ret
 }
 
@@ -41,23 +41,23 @@ struct B {
 
 // Tests that we can define constructors outside the class (PR12784).
 B::B() {
-  // CHECK: define dso_local x86_thiscallcc %"struct.basic::B"* @"\01??0B at basic@@QAE at XZ"(%"struct.basic::B"* returned %this)
+  // CHECK: define dso_local x86_thiscallcc %"struct.basic::B"* @"??0B at basic@@QAE at XZ"(%"struct.basic::B"* returned %this)
   // CHECK: ret
 }
 
 struct C {
   virtual ~C() {
-// DTORS:      define linkonce_odr dso_local x86_thiscallcc i8* @"\01??_GC at basic@@UAEPAXI at Z"(%"struct.basic::C"* %this, i32 %should_call_delete) {{.*}} comdat {{.*}} {
+// DTORS:      define linkonce_odr dso_local x86_thiscallcc i8* @"??_GC at basic@@UAEPAXI at Z"(%"struct.basic::C"* %this, i32 %should_call_delete) {{.*}} comdat {{.*}} {
 // DTORS:        store i32 %should_call_delete, i32* %[[SHOULD_DELETE_VAR:[0-9a-z._]+]], align 4
 // DTORS:        store i8* %{{.*}}, i8** %[[RETVAL:[0-9a-z._]+]]
 // DTORS:        %[[SHOULD_DELETE_VALUE:[0-9a-z._]+]] = load i32, i32* %[[SHOULD_DELETE_VAR]]
-// DTORS:        call x86_thiscallcc void @"\01??1C at basic@@UAE at XZ"(%"struct.basic::C"* %[[THIS:[0-9a-z]+]])
+// DTORS:        call x86_thiscallcc void @"??1C at basic@@UAE at XZ"(%"struct.basic::C"* %[[THIS:[0-9a-z]+]])
 // DTORS-NEXT:   %[[CONDITION:[0-9]+]] = icmp eq i32 %[[SHOULD_DELETE_VALUE]], 0
 // DTORS-NEXT:   br i1 %[[CONDITION]], label %[[CONTINUE_LABEL:[0-9a-z._]+]], label %[[CALL_DELETE_LABEL:[0-9a-z._]+]]
 //
 // DTORS:      [[CALL_DELETE_LABEL]]
 // DTORS-NEXT:   %[[THIS_AS_VOID:[0-9a-z]+]] = bitcast %"struct.basic::C"* %[[THIS]] to i8*
-// DTORS-NEXT:   call void @"\01??3 at YAXPAX@Z"(i8* %[[THIS_AS_VOID]])
+// DTORS-NEXT:   call void @"??3 at YAXPAX@Z"(i8* %[[THIS_AS_VOID]])
 // DTORS-NEXT:   br label %[[CONTINUE_LABEL]]
 //
 // DTORS:      [[CONTINUE_LABEL]]
@@ -65,7 +65,7 @@ struct C {
 // DTORS-NEXT:   ret i8* %[[RET]]
 
 // Check that we do the mangling correctly on x64.
-// DTORS-X64:  @"\01??_GC at basic@@UEAAPEAXI at Z"
+// DTORS-X64:  @"??_GC at basic@@UEAAPEAXI at Z"
   }
   virtual void foo();
 };
@@ -77,11 +77,11 @@ void check_vftable_offset() {
   C c;
 // The vftable pointer should point at the beginning of the vftable.
 // CHECK: [[THIS_PTR:%[0-9]+]] = bitcast %"struct.basic::C"* {{.*}} to i32 (...)***
-// CHECK: store i32 (...)** bitcast ({ [2 x i8*] }* @"\01??_7C at basic@@6B@" to i32 (...)**), i32 (...)*** [[THIS_PTR]]
+// CHECK: store i32 (...)** bitcast ({ [2 x i8*] }* @"??_7C at basic@@6B@" to i32 (...)**), i32 (...)*** [[THIS_PTR]]
 }
 
 void call_complete_dtor(C *obj_ptr) {
-// CHECK: define dso_local void @"\01?call_complete_dtor at basic@@YAXPAUC at 1@@Z"(%"struct.basic::C"* %obj_ptr)
+// CHECK: define dso_local void @"?call_complete_dtor at basic@@YAXPAUC at 1@@Z"(%"struct.basic::C"* %obj_ptr)
   obj_ptr->~C();
 // CHECK: %[[OBJ_PTR_VALUE:.*]] = load %"struct.basic::C"*, %"struct.basic::C"** %{{.*}}, align 4
 // CHECK-NEXT: %[[PVTABLE:.*]] = bitcast %"struct.basic::C"* %[[OBJ_PTR_VALUE]] to i8* (%"struct.basic::C"*, i32)***
@@ -93,7 +93,7 @@ void call_complete_dtor(C *obj_ptr) {
 }
 
 void call_deleting_dtor(C *obj_ptr) {
-// CHECK: define dso_local void @"\01?call_deleting_dtor at basic@@YAXPAUC at 1@@Z"(%"struct.basic::C"* %obj_ptr)
+// CHECK: define dso_local void @"?call_deleting_dtor at basic@@YAXPAUC at 1@@Z"(%"struct.basic::C"* %obj_ptr)
   delete obj_ptr;
 // CHECK:      %[[OBJ_PTR_VALUE:.*]] = load %"struct.basic::C"*, %"struct.basic::C"** %{{.*}}, align 4
 // CHECK:      br i1 {{.*}}, label %[[DELETE_NULL:.*]], label %[[DELETE_NOTNULL:.*]]
@@ -108,7 +108,7 @@ void call_deleting_dtor(C *obj_ptr) {
 }
 
 void call_deleting_dtor_and_global_delete(C *obj_ptr) {
-// CHECK: define dso_local void @"\01?call_deleting_dtor_and_global_delete at basic@@YAXPAUC at 1@@Z"(%"struct.basic::C"* %obj_ptr)
+// CHECK: define dso_local void @"?call_deleting_dtor_and_global_delete at basic@@YAXPAUC at 1@@Z"(%"struct.basic::C"* %obj_ptr)
   ::delete obj_ptr;
 // CHECK:      %[[OBJ_PTR_VALUE:.*]] = load %"struct.basic::C"*, %"struct.basic::C"** %{{.*}}, align 4
 // CHECK:      br i1 {{.*}}, label %[[DELETE_NULL:.*]], label %[[DELETE_NOTNULL:.*]]
@@ -119,7 +119,7 @@ void call_deleting_dtor_and_global_delet
 // CHECK-NEXT:   %[[PVDTOR:.*]] = getelementptr inbounds i8* (%"struct.basic::C"*, i32)*, i8* (%"struct.basic::C"*, i32)** %[[VTABLE]], i64 0
 // CHECK-NEXT:   %[[VDTOR:.*]] = load i8* (%"struct.basic::C"*, i32)*, i8* (%"struct.basic::C"*, i32)** %[[PVDTOR]]
 // CHECK-NEXT:   %[[CALL:.*]] = call x86_thiscallcc i8* %[[VDTOR]](%"struct.basic::C"* %[[OBJ_PTR_VALUE]], i32 0)
-// CHECK-NEXT:   call void @"\01??3 at YAXPAX@Z"(i8* %[[CALL]])
+// CHECK-NEXT:   call void @"??3 at YAXPAX@Z"(i8* %[[CALL]])
 // CHECK:      ret void
 }
 
@@ -129,12 +129,12 @@ struct D {
   D() {
     static int ctor_static = foo();
     // CHECK that the static in the ctor gets mangled correctly:
-    // CHECK: @"\01?ctor_static@?1???0D at basic@@QAE at XZ@4HA"
+    // CHECK: @"?ctor_static@?1???0D at basic@@QAE at XZ@4HA"
   }
   ~D() {
     static int dtor_static = foo();
     // CHECK that the static in the dtor gets mangled correctly:
-    // CHECK: @"\01?dtor_static@?1???1D at basic@@QAE at XZ@4HA"
+    // CHECK: @"?dtor_static@?1???1D at basic@@QAE at XZ@4HA"
   }
 };
 
@@ -155,7 +155,7 @@ struct C : A, B {
 };
 
 C::~C() {
-// CHECK-LABEL: define dso_local x86_thiscallcc void @"\01??1C at dtor_in_second_nvbase@@UAE at XZ"
+// CHECK-LABEL: define dso_local x86_thiscallcc void @"??1C at dtor_in_second_nvbase@@UAE at XZ"
 // CHECK:       (%"struct.dtor_in_second_nvbase::C"* %this)
 //      No this adjustment!
 // CHECK-NOT: getelementptr
@@ -164,7 +164,7 @@ C::~C() {
 // CHECK:   bitcast %"struct.dtor_in_second_nvbase::C"* %{{.*}} to i8*
 // CHECK:   getelementptr inbounds i8, i8* %{{.*}}, i32 4
 // CHECK:   bitcast i8* %{{.*}} to %"struct.dtor_in_second_nvbase::B"*
-// CHECK:   call x86_thiscallcc void @"\01??1B at dtor_in_second_nvbase@@UAE at XZ"
+// CHECK:   call x86_thiscallcc void @"??1B at dtor_in_second_nvbase@@UAE at XZ"
 // CHECK:       (%"struct.dtor_in_second_nvbase::B"* %{{.*}})
 // CHECK:   ret void
 }
@@ -172,12 +172,12 @@ C::~C() {
 void foo() {
   C c;
 }
-// DTORS2-LABEL: define linkonce_odr dso_local x86_thiscallcc i8* @"\01??_EC at dtor_in_second_nvbase@@W3AEPAXI at Z"
+// DTORS2-LABEL: define linkonce_odr dso_local x86_thiscallcc i8* @"??_EC at dtor_in_second_nvbase@@W3AEPAXI at Z"
 // DTORS2:       (%"struct.dtor_in_second_nvbase::C"* %this, i32 %should_call_delete)
 //      Do an adjustment from B* to C*.
 // DTORS2:   getelementptr i8, i8* %{{.*}}, i32 -4
 // DTORS2:   bitcast i8* %{{.*}} to %"struct.dtor_in_second_nvbase::C"*
-// DTORS2:   %[[CALL:.*]] = tail call x86_thiscallcc i8* @"\01??_GC at dtor_in_second_nvbase@@UAEPAXI at Z"
+// DTORS2:   %[[CALL:.*]] = tail call x86_thiscallcc i8* @"??_GC at dtor_in_second_nvbase@@UAEPAXI at Z"
 // DTORS2:   ret i8* %[[CALL]]
 
 }
@@ -196,7 +196,7 @@ struct E : virtual C { int e; };
 struct F : D, E { ~F(); int f; };
 
 F::~F() {
-// CHECK-LABEL: define dso_local x86_thiscallcc void @"\01??1F at test2@@UAE at XZ"(%"struct.test2::F"*{{[^,]*}})
+// CHECK-LABEL: define dso_local x86_thiscallcc void @"??1F at test2@@UAE at XZ"(%"struct.test2::F"*{{[^,]*}})
 //      Do an adjustment from C vbase subobject to F as though F was the
 //      complete type.
 // CHECK:   getelementptr inbounds i8, i8* %{{.*}}, i32 -20
@@ -207,11 +207,11 @@ F::~F() {
 void foo() {
   F f;
 }
-// DTORS3-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"\01??_DF at test2@@QAEXXZ"({{.*}} {{.*}} comdat
+// DTORS3-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"??_DF at test2@@QAEXXZ"({{.*}} {{.*}} comdat
 //      Do an adjustment from C* to F*.
 // DTORS3:   getelementptr i8, i8* %{{.*}}, i32 20
 // DTORS3:   bitcast i8* %{{.*}} to %"struct.test2::F"*
-// DTORS3:   call x86_thiscallcc void @"\01??1F at test2@@UAE at XZ"
+// DTORS3:   call x86_thiscallcc void @"??1F at test2@@UAE at XZ"
 // DTORS3:   ret void
 
 }
@@ -228,8 +228,8 @@ struct B : A {
 };
 
 B::B() {
-  // CHECK: define dso_local x86_thiscallcc %"struct.constructors::B"* @"\01??0B at constructors@@QAE at XZ"(%"struct.constructors::B"* returned %this)
-  // CHECK: call x86_thiscallcc %"struct.constructors::A"* @"\01??0A at constructors@@QAE at XZ"(%"struct.constructors::A"* %{{.*}})
+  // CHECK: define dso_local x86_thiscallcc %"struct.constructors::B"* @"??0B at constructors@@QAE at XZ"(%"struct.constructors::B"* returned %this)
+  // CHECK: call x86_thiscallcc %"struct.constructors::A"* @"??0A at constructors@@QAE at XZ"(%"struct.constructors::A"* %{{.*}})
   // CHECK: ret
 }
 
@@ -238,7 +238,7 @@ struct C : virtual A {
 };
 
 C::C() {
-  // CHECK: define dso_local x86_thiscallcc %"struct.constructors::C"* @"\01??0C at constructors@@QAE at XZ"(%"struct.constructors::C"* returned %this, i32 %is_most_derived)
+  // CHECK: define dso_local x86_thiscallcc %"struct.constructors::C"* @"??0C at constructors@@QAE at XZ"(%"struct.constructors::C"* returned %this, i32 %is_most_derived)
   // TODO: make sure this works in the Release build too;
   // CHECK: store i32 %is_most_derived, i32* %[[IS_MOST_DERIVED_VAR:.*]], align 4
   // CHECK: %[[IS_MOST_DERIVED_VAL:.*]] = load i32, i32* %[[IS_MOST_DERIVED_VAR]]
@@ -249,23 +249,23 @@ C::C() {
   // CHECK-NEXT: %[[this_i8:.*]] = bitcast %"struct.constructors::C"* %{{.*}} to i8*
   // CHECK-NEXT: %[[vbptr_off:.*]] = getelementptr inbounds i8, i8* %[[this_i8]], i32 0
   // CHECK-NEXT: %[[vbptr:.*]] = bitcast i8* %[[vbptr_off]] to i32**
-  // CHECK-NEXT: store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @"\01??_8C at constructors@@7B@", i32 0, i32 0), i32** %[[vbptr]]
+  // CHECK-NEXT: store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @"??_8C at constructors@@7B@", i32 0, i32 0), i32** %[[vbptr]]
   // CHECK-NEXT: bitcast %"struct.constructors::C"* %{{.*}} to i8*
   // CHECK-NEXT: getelementptr inbounds i8, i8* %{{.*}}, i32 4
   // CHECK-NEXT: bitcast i8* %{{.*}} to %"struct.constructors::A"*
-  // CHECK-NEXT: call x86_thiscallcc %"struct.constructors::A"* @"\01??0A at constructors@@QAE at XZ"(%"struct.constructors::A"* %{{.*}})
+  // CHECK-NEXT: call x86_thiscallcc %"struct.constructors::A"* @"??0A at constructors@@QAE at XZ"(%"struct.constructors::A"* %{{.*}})
   // CHECK-NEXT: br label %[[SKIP_VBASES]]
   //
   // CHECK: [[SKIP_VBASES]]
   // Class C does not define or override methods, so shouldn't change the vfptr.
-  // CHECK-NOT: @"\01??_7C at constructors@@6B@"
+  // CHECK-NOT: @"??_7C at constructors@@6B@"
   // CHECK: ret
 }
 
 void create_C() {
   C c;
-  // CHECK: define dso_local void @"\01?create_C at constructors@@YAXXZ"()
-  // CHECK: call x86_thiscallcc %"struct.constructors::C"* @"\01??0C at constructors@@QAE at XZ"(%"struct.constructors::C"* %c, i32 1)
+  // CHECK: define dso_local void @"?create_C at constructors@@YAXXZ"()
+  // CHECK: call x86_thiscallcc %"struct.constructors::C"* @"??0C at constructors@@QAE at XZ"(%"struct.constructors::C"* %c, i32 1)
   // CHECK: ret
 }
 
@@ -274,7 +274,7 @@ struct D : C {
 };
 
 D::D() {
-  // CHECK: define dso_local x86_thiscallcc %"struct.constructors::D"* @"\01??0D at constructors@@QAE at XZ"(%"struct.constructors::D"* returned %this, i32 %is_most_derived) unnamed_addr
+  // CHECK: define dso_local x86_thiscallcc %"struct.constructors::D"* @"??0D at constructors@@QAE at XZ"(%"struct.constructors::D"* returned %this, i32 %is_most_derived) unnamed_addr
   // CHECK: store i32 %is_most_derived, i32* %[[IS_MOST_DERIVED_VAR:.*]], align 4
   // CHECK: %[[IS_MOST_DERIVED_VAL:.*]] = load i32, i32* %[[IS_MOST_DERIVED_VAR]]
   // CHECK: %[[SHOULD_CALL_VBASE_CTORS:.*]] = icmp ne i32 %[[IS_MOST_DERIVED_VAL]], 0
@@ -284,15 +284,15 @@ D::D() {
   // CHECK-NEXT: %[[this_i8:.*]] = bitcast %"struct.constructors::D"* %{{.*}} to i8*
   // CHECK-NEXT: %[[vbptr_off:.*]] = getelementptr inbounds i8, i8* %[[this_i8]], i32 0
   // CHECK-NEXT: %[[vbptr:.*]] = bitcast i8* %[[vbptr_off]] to i32**
-  // CHECK-NEXT: store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @"\01??_8D at constructors@@7B@", i32 0, i32 0), i32** %[[vbptr]]
+  // CHECK-NEXT: store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @"??_8D at constructors@@7B@", i32 0, i32 0), i32** %[[vbptr]]
   // CHECK-NEXT: bitcast %"struct.constructors::D"* %{{.*}} to i8*
   // CHECK-NEXT: getelementptr inbounds i8, i8* %{{.*}}, i32 4
   // CHECK-NEXT: bitcast i8* %{{.*}} to %"struct.constructors::A"*
-  // CHECK-NEXT: call x86_thiscallcc %"struct.constructors::A"* @"\01??0A at constructors@@QAE at XZ"(%"struct.constructors::A"* %{{.*}})
+  // CHECK-NEXT: call x86_thiscallcc %"struct.constructors::A"* @"??0A at constructors@@QAE at XZ"(%"struct.constructors::A"* %{{.*}})
   // CHECK-NEXT: br label %[[SKIP_VBASES]]
   //
   // CHECK: [[SKIP_VBASES]]
-  // CHECK: call x86_thiscallcc %"struct.constructors::C"* @"\01??0C at constructors@@QAE at XZ"(%"struct.constructors::C"* %{{.*}}, i32 0)
+  // CHECK: call x86_thiscallcc %"struct.constructors::C"* @"??0C at constructors@@QAE at XZ"(%"struct.constructors::C"* %{{.*}}, i32 0)
   // CHECK: ret
 }
 
@@ -301,7 +301,7 @@ struct E : virtual C {
 };
 
 E::E() {
-  // CHECK: define dso_local x86_thiscallcc %"struct.constructors::E"* @"\01??0E at constructors@@QAE at XZ"(%"struct.constructors::E"* returned %this, i32 %is_most_derived) unnamed_addr
+  // CHECK: define dso_local x86_thiscallcc %"struct.constructors::E"* @"??0E at constructors@@QAE at XZ"(%"struct.constructors::E"* returned %this, i32 %is_most_derived) unnamed_addr
   // CHECK: store i32 %is_most_derived, i32* %[[IS_MOST_DERIVED_VAR:.*]], align 4
   // CHECK: %[[IS_MOST_DERIVED_VAL:.*]] = load i32, i32* %[[IS_MOST_DERIVED_VAR]]
   // CHECK: %[[SHOULD_CALL_VBASE_CTORS:.*]] = icmp ne i32 %[[IS_MOST_DERIVED_VAL]], 0
@@ -311,15 +311,15 @@ E::E() {
   // CHECK-NEXT: %[[this_i8:.*]] = bitcast %"struct.constructors::E"* %{{.*}} to i8*
   // CHECK-NEXT: %[[offs:.*]] = getelementptr inbounds i8, i8* %[[this_i8]], i32 0
   // CHECK-NEXT: %[[vbptr_E:.*]] = bitcast i8* %[[offs]] to i32**
-  // CHECK-NEXT: store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @"\01??_8E at constructors@@7B01@@", i32 0, i32 0), i32** %[[vbptr_E]]
+  // CHECK-NEXT: store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @"??_8E at constructors@@7B01@@", i32 0, i32 0), i32** %[[vbptr_E]]
   // CHECK-NEXT: %[[offs:.*]] = getelementptr inbounds i8, i8* %[[this_i8]], i32 4
   // CHECK-NEXT: %[[vbptr_C:.*]] = bitcast i8* %[[offs]] to i32**
-  // CHECK-NEXT: store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @"\01??_8E at constructors@@7BC at 1@@", i32 0, i32 0), i32** %[[vbptr_C]]
+  // CHECK-NEXT: store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @"??_8E at constructors@@7BC at 1@@", i32 0, i32 0), i32** %[[vbptr_C]]
   // CHECK-NEXT: bitcast %"struct.constructors::E"* %{{.*}} to i8*
   // CHECK-NEXT: getelementptr inbounds i8, i8* %{{.*}}, i32 4
   // CHECK-NEXT: bitcast i8* %{{.*}} to %"struct.constructors::A"*
-  // CHECK-NEXT: call x86_thiscallcc %"struct.constructors::A"* @"\01??0A at constructors@@QAE at XZ"(%"struct.constructors::A"* %{{.*}})
-  // CHECK: call x86_thiscallcc %"struct.constructors::C"* @"\01??0C at constructors@@QAE at XZ"(%"struct.constructors::C"* %{{.*}}, i32 0)
+  // CHECK-NEXT: call x86_thiscallcc %"struct.constructors::A"* @"??0A at constructors@@QAE at XZ"(%"struct.constructors::A"* %{{.*}})
+  // CHECK: call x86_thiscallcc %"struct.constructors::C"* @"??0C at constructors@@QAE at XZ"(%"struct.constructors::C"* %{{.*}}, i32 0)
   // CHECK-NEXT: br label %[[SKIP_VBASES]]
   //
   // CHECK: [[SKIP_VBASES]]
@@ -333,7 +333,7 @@ struct F {
 };
 
 F::F() {}
-// CHECK: define dso_local x86_thiscallcc %"struct.constructors::F"* @"\01??0F at constructors@@QAE at XZ"
+// CHECK: define dso_local x86_thiscallcc %"struct.constructors::F"* @"??0F at constructors@@QAE at XZ"
 
 } // end namespace constructors
 
@@ -345,12 +345,12 @@ struct A {
 
 void call_nv_complete(A *a) {
   a->~A();
-// CHECK: define dso_local void @"\01?call_nv_complete at dtors@@YAXPAUA at 1@@Z"
-// CHECK: call x86_thiscallcc void @"\01??1A at dtors@@QAE at XZ"
+// CHECK: define dso_local void @"?call_nv_complete at dtors@@YAXPAUA at 1@@Z"
+// CHECK: call x86_thiscallcc void @"??1A at dtors@@QAE at XZ"
 // CHECK: ret
 }
 
-// CHECK: declare dso_local x86_thiscallcc void @"\01??1A at dtors@@QAE at XZ"
+// CHECK: declare dso_local x86_thiscallcc void @"??1A at dtors@@QAE at XZ"
 
 // Now try some virtual bases, where we need the complete dtor.
 
@@ -360,24 +360,24 @@ struct D : B, C { ~D(); };
 
 void call_vbase_complete(D *d) {
   d->~D();
-// CHECK: define dso_local void @"\01?call_vbase_complete at dtors@@YAXPAUD at 1@@Z"
-// CHECK: call x86_thiscallcc void @"\01??_DD at dtors@@QAEXXZ"(%"struct.dtors::D"* %{{[^,]+}})
+// CHECK: define dso_local void @"?call_vbase_complete at dtors@@YAXPAUD at 1@@Z"
+// CHECK: call x86_thiscallcc void @"??_DD at dtors@@QAEXXZ"(%"struct.dtors::D"* %{{[^,]+}})
 // CHECK: ret
 }
 
 // The complete dtor should call the base dtors for D and the vbase A (once).
-// CHECK: define linkonce_odr dso_local x86_thiscallcc void @"\01??_DD at dtors@@QAEXXZ"({{.*}}) {{.*}} comdat
+// CHECK: define linkonce_odr dso_local x86_thiscallcc void @"??_DD at dtors@@QAEXXZ"({{.*}}) {{.*}} comdat
 // CHECK-NOT: call
-// CHECK: call x86_thiscallcc void @"\01??1D at dtors@@QAE at XZ"
+// CHECK: call x86_thiscallcc void @"??1D at dtors@@QAE at XZ"
 // CHECK-NOT: call
-// CHECK: call x86_thiscallcc void @"\01??1A at dtors@@QAE at XZ"
+// CHECK: call x86_thiscallcc void @"??1A at dtors@@QAE at XZ"
 // CHECK-NOT: call
 // CHECK: ret
 
 void destroy_d_complete() {
   D d;
-// CHECK: define dso_local void @"\01?destroy_d_complete at dtors@@YAXXZ"
-// CHECK: call x86_thiscallcc void @"\01??_DD at dtors@@QAEXXZ"(%"struct.dtors::D"* %{{[^,]+}})
+// CHECK: define dso_local void @"?destroy_d_complete at dtors@@YAXXZ"
+// CHECK: call x86_thiscallcc void @"??_DD at dtors@@QAEXXZ"(%"struct.dtors::D"* %{{[^,]+}})
 // CHECK: ret
 }
 
@@ -386,9 +386,9 @@ void destroy_d_complete() {
 // a vftable.
 void call_nv_deleting_dtor(D *d) {
   delete d;
-// CHECK: define dso_local void @"\01?call_nv_deleting_dtor at dtors@@YAXPAUD at 1@@Z"
-// CHECK: call x86_thiscallcc void @"\01??_DD at dtors@@QAEXXZ"(%"struct.dtors::D"* %{{[^,]+}})
-// CHECK: call void @"\01??3 at YAXPAX@Z"
+// CHECK: define dso_local void @"?call_nv_deleting_dtor at dtors@@YAXPAUD at 1@@Z"
+// CHECK: call x86_thiscallcc void @"??_DD at dtors@@QAEXXZ"(%"struct.dtors::D"* %{{[^,]+}})
+// CHECK: call void @"??3 at YAXPAX@Z"
 // CHECK: ret
 }
 
@@ -404,11 +404,11 @@ struct B : virtual A {
 B::B(int *a) {}
 B::B(const char *a, ...) {}
 B::B(short *a) {}
-// CHECK: define dso_local x86_thiscallcc %"struct.test1::B"* @"\01??0B at test1@@QAE at PAH@Z"
+// CHECK: define dso_local x86_thiscallcc %"struct.test1::B"* @"??0B at test1@@QAE at PAH@Z"
 // CHECK:               (%"struct.test1::B"* returned %this, i32* %a, i32 %is_most_derived)
-// CHECK: define dso_local %"struct.test1::B"* @"\01??0B at test1@@QAA at PBDZZ"
+// CHECK: define dso_local %"struct.test1::B"* @"??0B at test1@@QAA at PBDZZ"
 // CHECK:               (%"struct.test1::B"* returned %this, i32 %is_most_derived, i8* %a, ...)
-// CHECK: define dso_local x86_thiscallcc %"struct.test1::B"* @"\01??0B at test1@@QAE at PAF@Z"
+// CHECK: define dso_local x86_thiscallcc %"struct.test1::B"* @"??0B at test1@@QAE at PAF@Z"
 // CHECK:               (%"struct.test1::B"* returned %this, i16* %a, i32 %is_most_derived)
 
 void construct_b() {
@@ -416,10 +416,10 @@ void construct_b() {
   B b1(&a);
   B b2("%d %d", 1, 2);
 }
-// CHECK-LABEL: define dso_local void @"\01?construct_b at test1@@YAXXZ"()
-// CHECK: call x86_thiscallcc %"struct.test1::B"* @"\01??0B at test1@@QAE at PAH@Z"
+// CHECK-LABEL: define dso_local void @"?construct_b at test1@@YAXXZ"()
+// CHECK: call x86_thiscallcc %"struct.test1::B"* @"??0B at test1@@QAE at PAH@Z"
 // CHECK:               (%"struct.test1::B"* {{.*}}, i32* {{.*}}, i32 1)
-// CHECK: call %"struct.test1::B"* (%"struct.test1::B"*, i32, i8*, ...) @"\01??0B at test1@@QAA at PBDZZ"
+// CHECK: call %"struct.test1::B"* (%"struct.test1::B"*, i32, i8*, ...) @"??0B at test1@@QAA at PBDZZ"
 // CHECK:               (%"struct.test1::B"* {{.*}}, i32 1, i8* {{.*}}, i32 1, i32 2)
 }
 
@@ -432,7 +432,7 @@ struct ImplicitCopy {
 void CreateCopy(ImplicitCopy *a) {
   new ImplicitCopy(*a);
 }
-// CHECK: store {{.*}} @"\01??_7ImplicitCopy at implicit_copy_vtable@@6B@"
+// CHECK: store {{.*}} @"??_7ImplicitCopy at implicit_copy_vtable@@6B@"
 
 struct MoveOnly {
   MoveOnly(MoveOnly &&o) = default;
@@ -440,7 +440,7 @@ struct MoveOnly {
 };
 MoveOnly &&f();
 void g() { new MoveOnly(f()); }
-// CHECK: store {{.*}} @"\01??_7MoveOnly at implicit_copy_vtable@@6B@"
+// CHECK: store {{.*}} @"??_7MoveOnly at implicit_copy_vtable@@6B@"
 }
 
 namespace delegating_ctor {
@@ -451,11 +451,11 @@ struct X : virtual Y {
 };
 X::X(int) : X() {}
 }
-// CHECK: define dso_local x86_thiscallcc %"struct.delegating_ctor::X"* @"\01??0X at delegating_ctor@@QAE at H@Z"(
+// CHECK: define dso_local x86_thiscallcc %"struct.delegating_ctor::X"* @"??0X at delegating_ctor@@QAE at H@Z"(
 // CHECK:  %[[is_most_derived_addr:.*]] = alloca i32, align 4
 // CHECK:  store i32 %is_most_derived, i32* %[[is_most_derived_addr]]
 // CHECK:  %[[is_most_derived:.*]] = load i32, i32* %[[is_most_derived_addr]]
-// CHECK:  call x86_thiscallcc {{.*}}* @"\01??0X at delegating_ctor@@QAE at XZ"({{.*}} i32 %[[is_most_derived]])
+// CHECK:  call x86_thiscallcc {{.*}}* @"??0X at delegating_ctor@@QAE at XZ"({{.*}} i32 %[[is_most_derived]])
 
 // Dtor thunks for classes in anonymous namespaces should be internal, not
 // linkonce_odr.
@@ -467,9 +467,9 @@ struct A {
 void *getA() {
   return (void*)new A();
 }
-// CHECK: define internal x86_thiscallcc i8* @"\01??_GA@?A@@UAEPAXI at Z"
+// CHECK: define internal x86_thiscallcc i8* @"??_GA@?A@@UAEPAXI at Z"
 // CHECK:               (%"struct.(anonymous namespace)::A"* %this, i32 %should_call_delete)
-// CHECK: define internal x86_thiscallcc void @"\01??1A@?A@@UAE at XZ"
+// CHECK: define internal x86_thiscallcc void @"??1A@?A@@UAE at XZ"
 // CHECK:               (%"struct.(anonymous namespace)::A"* %this)
 
 // Check that we correctly transform __stdcall to __thiscall for ctors and
@@ -477,9 +477,9 @@ void *getA() {
 class G {
  public:
   __stdcall G() {};
-// DTORS4: define linkonce_odr dso_local x86_thiscallcc %class.G* @"\01??0G@@QAE at XZ"
+// DTORS4: define linkonce_odr dso_local x86_thiscallcc %class.G* @"??0G@@QAE at XZ"
   __stdcall ~G() {};
-// DTORS4: define linkonce_odr dso_local x86_thiscallcc void @"\01??1G@@QAE at XZ"
+// DTORS4: define linkonce_odr dso_local x86_thiscallcc void @"??1G@@QAE at XZ"
 };
 
 extern void testG() {

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp Fri Mar 16 13:36:49 2018
@@ -6,79 +6,79 @@ struct S {
   ~S();
 };
 
-// CHECK-DAG: @"\01?s@?1??f@@YAAAUS@@XZ at 4U2@A" = linkonce_odr dso_local thread_local global %struct.S zeroinitializer
-// CHECK-DAG: @"\01??__J?1??f@@YAAAUS@@XZ at 51" = linkonce_odr thread_local global i32 0
-// CHECK-DAG: @"\01?s@?1??g@@YAAAUS@@XZ at 4U2@A" = linkonce_odr dso_local global %struct.S zeroinitializer
-// CHECK-DAG: @"\01?$TSS0@?1??g@@YAAAUS@@XZ at 4HA" = linkonce_odr global i32 0
+// CHECK-DAG: @"?s@?1??f@@YAAAUS@@XZ at 4U2@A" = linkonce_odr dso_local thread_local global %struct.S zeroinitializer
+// CHECK-DAG: @"??__J?1??f@@YAAAUS@@XZ at 51" = linkonce_odr thread_local global i32 0
+// CHECK-DAG: @"?s@?1??g@@YAAAUS@@XZ at 4U2@A" = linkonce_odr dso_local global %struct.S zeroinitializer
+// CHECK-DAG: @"?$TSS0@?1??g@@YAAAUS@@XZ at 4HA" = linkonce_odr global i32 0
 // CHECK-DAG: @_Init_thread_epoch = external thread_local global i32, align 4
-// CHECK-DAG: @"\01?j@?1??h@@YAAAUS@@_N at Z@4U2 at A" = linkonce_odr dso_local thread_local global %struct.S zeroinitializer
-// CHECK-DAG: @"\01??__J?1??h@@YAAAUS@@_N at Z@51" = linkonce_odr thread_local global i32 0
-// CHECK-DAG: @"\01?i@?1??h@@YAAAUS@@_N at Z@4U2 at A" = linkonce_odr dso_local global %struct.S zeroinitializer
-// CHECK-DAG: @"\01?$TSS0@?1??h@@YAAAUS@@_N at Z@4HA" = linkonce_odr global i32 0
-// CHECK-DAG: @"\01?i@?1??g1@@YAHXZ at 4HA" = internal global i32 0, align 4
-// CHECK-DAG: @"\01?$TSS0@?1??g1@@YAHXZ at 4HA" = internal global i32 0, align 4
+// CHECK-DAG: @"?j@?1??h@@YAAAUS@@_N at Z@4U2 at A" = linkonce_odr dso_local thread_local global %struct.S zeroinitializer
+// CHECK-DAG: @"??__J?1??h@@YAAAUS@@_N at Z@51" = linkonce_odr thread_local global i32 0
+// CHECK-DAG: @"?i@?1??h@@YAAAUS@@_N at Z@4U2 at A" = linkonce_odr dso_local global %struct.S zeroinitializer
+// CHECK-DAG: @"?$TSS0@?1??h@@YAAAUS@@_N at Z@4HA" = linkonce_odr global i32 0
+// CHECK-DAG: @"?i@?1??g1@@YAHXZ at 4HA" = internal global i32 0, align 4
+// CHECK-DAG: @"?$TSS0@?1??g1@@YAHXZ at 4HA" = internal global i32 0, align 4
 
-// CHECK-LABEL: define {{.*}} @"\01?f@@YAAAUS@@XZ"()
+// CHECK-LABEL: define {{.*}} @"?f@@YAAAUS@@XZ"()
 // CHECK-SAME:  personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*)
 extern inline S &f() {
   static thread_local S s;
-// CHECK:       %[[guard:.*]] = load i32, i32* @"\01??__J?1??f@@YAAAUS@@XZ at 51"
+// CHECK:       %[[guard:.*]] = load i32, i32* @"??__J?1??f@@YAAAUS@@XZ at 51"
 // CHECK-NEXT:  %[[mask:.*]] = and i32 %[[guard]], 1
 // CHECK-NEXT:  %[[cmp:.*]] = icmp eq i32 %[[mask]], 0
 // CHECK-NEXT:  br i1 %[[cmp]], label %[[init:.*]], label %[[init_end:.*]], !prof ![[unlikely_threadlocal:.*]]
 //
 // CHECK:     [[init]]:
 // CHECK-NEXT:  %[[or:.*]] = or i32 %[[guard]], 1
-// CHECK-NEXT:  store i32 %[[or]], i32* @"\01??__J?1??f@@YAAAUS@@XZ at 51"
-// CHECK-NEXT:  invoke {{.*}} @"\01??0S@@QAE at XZ"(%struct.S* @"\01?s@?1??f@@YAAAUS@@XZ at 4U2@A")
+// CHECK-NEXT:  store i32 %[[or]], i32* @"??__J?1??f@@YAAAUS@@XZ at 51"
+// CHECK-NEXT:  invoke {{.*}} @"??0S@@QAE at XZ"(%struct.S* @"?s@?1??f@@YAAAUS@@XZ at 4U2@A")
 // CHECK-NEXT:    to label %[[invoke_cont:.*]] unwind label %[[lpad:.*]]
 //
 // CHECK:     [[invoke_cont]]:
-// CHECK-NEXT:  call i32 @__tlregdtor(void ()* @"\01??__Fs@?1??f@@YAAAUS@@XZ at YAXXZ")
+// CHECK-NEXT:  call i32 @__tlregdtor(void ()* @"??__Fs@?1??f@@YAAAUS@@XZ at YAXXZ")
 // CHECK-NEXT:  br label %[[init_end:.*]]
 
 // CHECK:     [[init_end]]:
-// CHECK-NEXT:  ret %struct.S* @"\01?s@?1??f@@YAAAUS@@XZ at 4U2@A"
+// CHECK-NEXT:  ret %struct.S* @"?s@?1??f@@YAAAUS@@XZ at 4U2@A"
 
 // CHECK:     [[lpad:.*]]:
 // CHECK-NEXT: cleanuppad within none []
-// CHECK:       %[[guard:.*]] = load i32, i32* @"\01??__J?1??f@@YAAAUS@@XZ at 51"
+// CHECK:       %[[guard:.*]] = load i32, i32* @"??__J?1??f@@YAAAUS@@XZ at 51"
 // CHECK-NEXT:  %[[mask:.*]] = and i32 %[[guard]], -2
-// CHECK-NEXT:  store i32 %[[mask]], i32* @"\01??__J?1??f@@YAAAUS@@XZ at 51"
+// CHECK-NEXT:  store i32 %[[mask]], i32* @"??__J?1??f@@YAAAUS@@XZ at 51"
 // CHECK-NEXT:  cleanupret {{.*}} unwind to caller
   return s;
 }
 
 
-// CHECK-LABEL: define {{.*}} @"\01?g@@YAAAUS@@XZ"()
+// CHECK-LABEL: define {{.*}} @"?g@@YAAAUS@@XZ"()
 extern inline S &g() {
   static S s;
-// CHECK:  %[[guard:.*]] = load atomic i32, i32* @"\01?$TSS0@?1??g@@YAAAUS@@XZ at 4HA" unordered, align 4
+// CHECK:  %[[guard:.*]] = load atomic i32, i32* @"?$TSS0@?1??g@@YAAAUS@@XZ at 4HA" unordered, align 4
 // CHECK-NEXT:  %[[epoch:.*]] = load i32, i32* @_Init_thread_epoch
 // CHECK-NEXT:  %[[cmp:.*]] = icmp sgt i32 %[[guard]], %[[epoch]]
 // CHECK-NEXT:  br i1 %[[cmp]], label %[[init_attempt:.*]], label %[[init_end:.*]], !prof ![[unlikely_staticlocal:.*]]
 //
 // CHECK:     [[init_attempt]]:
-// CHECK-NEXT:  call void @_Init_thread_header(i32* @"\01?$TSS0@?1??g@@YAAAUS@@XZ at 4HA")
-// CHECK-NEXT:  %[[guard2:.*]] = load atomic i32, i32* @"\01?$TSS0@?1??g@@YAAAUS@@XZ at 4HA" unordered, align 4
+// CHECK-NEXT:  call void @_Init_thread_header(i32* @"?$TSS0@?1??g@@YAAAUS@@XZ at 4HA")
+// CHECK-NEXT:  %[[guard2:.*]] = load atomic i32, i32* @"?$TSS0@?1??g@@YAAAUS@@XZ at 4HA" unordered, align 4
 // CHECK-NEXT:  %[[cmp2:.*]] = icmp eq i32 %[[guard2]], -1
 // CHECK-NEXT:  br i1 %[[cmp2]], label %[[init:.*]], label %[[init_end:.*]]
 //
 // CHECK:     [[init]]:
-// CHECK-NEXT:  invoke {{.*}} @"\01??0S@@QAE at XZ"(%struct.S* @"\01?s@?1??g@@YAAAUS@@XZ at 4U2@A")
+// CHECK-NEXT:  invoke {{.*}} @"??0S@@QAE at XZ"(%struct.S* @"?s@?1??g@@YAAAUS@@XZ at 4U2@A")
 // CHECK-NEXT:    to label %[[invoke_cont:.*]] unwind label %[[lpad:.*]]
 //
 // CHECK:     [[invoke_cont]]:
-// CHECK-NEXT:  call i32 @atexit(void ()* @"\01??__Fs@?1??g@@YAAAUS@@XZ at YAXXZ")
-// CHECK-NEXT:  call void @_Init_thread_footer(i32* @"\01?$TSS0@?1??g@@YAAAUS@@XZ at 4HA")
+// CHECK-NEXT:  call i32 @atexit(void ()* @"??__Fs@?1??g@@YAAAUS@@XZ at YAXXZ")
+// CHECK-NEXT:  call void @_Init_thread_footer(i32* @"?$TSS0@?1??g@@YAAAUS@@XZ at 4HA")
 // CHECK-NEXT:  br label %init.end
 //
 // CHECK:     [[init_end]]:
-// CHECK-NEXT:  ret %struct.S* @"\01?s@?1??g@@YAAAUS@@XZ at 4U2@A"
+// CHECK-NEXT:  ret %struct.S* @"?s@?1??g@@YAAAUS@@XZ at 4U2@A"
 //
 // CHECK:     [[lpad]]:
 // CHECK-NEXT: cleanuppad within none []
-// CHECK:       call void @_Init_thread_abort(i32* @"\01?$TSS0@?1??g@@YAAAUS@@XZ at 4HA")
+// CHECK:       call void @_Init_thread_abort(i32* @"?$TSS0@?1??g@@YAAAUS@@XZ at 4HA")
 // CHECK-NEXT:  cleanupret {{.*}} unwind to caller
   return s;
 }
@@ -89,7 +89,7 @@ extern inline S&h(bool b) {
   return b ? j : i;
 }
 
-// CHECK-LABEL: define dso_local i32 @"\01?g1@@YAHXZ"()
+// CHECK-LABEL: define dso_local i32 @"?g1@@YAHXZ"()
 int f1();
 int g1() {
   static int i = f1();

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-throw.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-throw.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-throw.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-throw.cpp Fri Mar 16 13:36:49 2018
@@ -1,23 +1,23 @@
 // RUN: %clang_cc1 -emit-llvm -o - -triple=i386-pc-win32 -std=c++11 %s -fcxx-exceptions -fms-extensions | FileCheck %s
 // RUN: %clang_cc1 -emit-llvm -o - -triple=i386-pc-win32 -std=c++11 %s -fcxx-exceptions -fms-extensions -DSTD | FileCheck %s
 
-// CHECK-DAG: @"\01??_R0?AUY@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUY@@\00" }, comdat
-// CHECK-DAG: @"_CT??_R0?AUY@@@8??0Y@@QAE at ABU0@@Z8" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 4, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUY@@@8" to i8*), i32 0, i32 -1, i32 0, i32 8, i8* bitcast (%struct.Y* (%struct.Y*, %struct.Y*, i32)* @"\01??0Y@@QAE at ABU0@@Z" to i8*) }, section ".xdata", comdat
-// CHECK-DAG: @"\01??_R0?AUZ@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUZ@@\00" }, comdat
-// CHECK-DAG: @"_CT??_R0?AUZ@@@81" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUZ@@@8" to i8*), i32 0, i32 -1, i32 0, i32 1, i8* null }, section ".xdata", comdat
-// CHECK-DAG: @"\01??_R0?AUW@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUW@@\00" }, comdat
-// CHECK-DAG: @"_CT??_R0?AUW@@@8??0W@@QAE at ABU0@@Z44" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 4, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUW@@@8" to i8*), i32 4, i32 -1, i32 0, i32 4, i8* bitcast (%struct.W* (%struct.W*, %struct.W*, i32)* @"\01??0W@@QAE at ABU0@@Z" to i8*) }, section ".xdata", comdat
-// CHECK-DAG: @"\01??_R0?AUM@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUM@@\00" }, comdat
-// CHECK-DAG: @"_CT??_R0?AUM@@@818" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUM@@@8" to i8*), i32 8, i32 -1, i32 0, i32 1, i8* null }, section ".xdata", comdat
-// CHECK-DAG: @"\01??_R0?AUV@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUV@@\00" }, comdat
-// CHECK-DAG: @"_CT??_R0?AUV@@@81044" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUV@@@8" to i8*), i32 0, i32 4, i32 4, i32 1, i8* null }, section ".xdata", comdat
+// CHECK-DAG: @"??_R0?AUY@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUY@@\00" }, comdat
+// CHECK-DAG: @"_CT??_R0?AUY@@@8??0Y@@QAE at ABU0@@Z8" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 4, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUY@@@8" to i8*), i32 0, i32 -1, i32 0, i32 8, i8* bitcast (%struct.Y* (%struct.Y*, %struct.Y*, i32)* @"??0Y@@QAE at ABU0@@Z" to i8*) }, section ".xdata", comdat
+// CHECK-DAG: @"??_R0?AUZ@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUZ@@\00" }, comdat
+// CHECK-DAG: @"_CT??_R0?AUZ@@@81" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUZ@@@8" to i8*), i32 0, i32 -1, i32 0, i32 1, i8* null }, section ".xdata", comdat
+// CHECK-DAG: @"??_R0?AUW@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUW@@\00" }, comdat
+// CHECK-DAG: @"_CT??_R0?AUW@@@8??0W@@QAE at ABU0@@Z44" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 4, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUW@@@8" to i8*), i32 4, i32 -1, i32 0, i32 4, i8* bitcast (%struct.W* (%struct.W*, %struct.W*, i32)* @"??0W@@QAE at ABU0@@Z" to i8*) }, section ".xdata", comdat
+// CHECK-DAG: @"??_R0?AUM@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUM@@\00" }, comdat
+// CHECK-DAG: @"_CT??_R0?AUM@@@818" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUM@@@8" to i8*), i32 8, i32 -1, i32 0, i32 1, i8* null }, section ".xdata", comdat
+// CHECK-DAG: @"??_R0?AUV@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"??_7type_info@@6B@", i8* null, [8 x i8] c".?AUV@@\00" }, comdat
+// CHECK-DAG: @"_CT??_R0?AUV@@@81044" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUV@@@8" to i8*), i32 0, i32 4, i32 4, i32 1, i8* null }, section ".xdata", comdat
 // CHECK-DAG: @"_CTA5?AUY@@" = linkonce_odr unnamed_addr constant %eh.CatchableTypeArray.5 { i32 5, [5 x %eh.CatchableType*] [%eh.CatchableType* @"_CT??_R0?AUY@@@8??0Y@@QAE at ABU0@@Z8", %eh.CatchableType* @"_CT??_R0?AUZ@@@81", %eh.CatchableType* @"_CT??_R0?AUW@@@8??0W@@QAE at ABU0@@Z44", %eh.CatchableType* @"_CT??_R0?AUM@@@818", %eh.CatchableType* @"_CT??_R0?AUV@@@81044"] }, section ".xdata", comdat
-// CHECK-DAG: @"_TI5?AUY@@" = linkonce_odr unnamed_addr constant %eh.ThrowInfo { i32 0, i8* bitcast (void (%struct.Y*)* @"\01??_DY@@QAEXXZ" to i8*), i8* null, i8* bitcast (%eh.CatchableTypeArray.5* @"_CTA5?AUY@@" to i8*) }, section ".xdata", comdat
-// CHECK-DAG: @"_CT??_R0?AUDefault@@@8??_ODefault@@QAEXAAU0@@Z1" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor13* @"\01??_R0?AUDefault@@@8" to i8*), i32 0, i32 -1, i32 0, i32 1, i8* bitcast (void (%struct.Default*, %struct.Default*)* @"\01??_ODefault@@QAEXAAU0@@Z" to i8*) }, section ".xdata", comdat
-// CHECK-DAG: @"_CT??_R0?AUVariadic@@@8??_OVariadic@@QAEXAAU0@@Z1" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor14* @"\01??_R0?AUVariadic@@@8" to i8*), i32 0, i32 -1, i32 0, i32 1, i8* bitcast (void (%struct.Variadic*, %struct.Variadic*)* @"\01??_OVariadic@@QAEXAAU0@@Z" to i8*) }, section ".xdata", comdat
-// CHECK-DAG: @"_CT??_R0?AUTemplateWithDefault@@@8??$?_OH at TemplateWithDefault@@QAEXAAU0@@Z1" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor25* @"\01??_R0?AUTemplateWithDefault@@@8" to i8*), i32 0, i32 -1, i32 0, i32 1, i8* bitcast (void (%struct.TemplateWithDefault*, %struct.TemplateWithDefault*)* @"\01??$?_OH at TemplateWithDefault@@QAEXAAU0@@Z" to i8*) }, section ".xdata", comdat
+// CHECK-DAG: @"_TI5?AUY@@" = linkonce_odr unnamed_addr constant %eh.ThrowInfo { i32 0, i8* bitcast (void (%struct.Y*)* @"??_DY@@QAEXXZ" to i8*), i8* null, i8* bitcast (%eh.CatchableTypeArray.5* @"_CTA5?AUY@@" to i8*) }, section ".xdata", comdat
+// CHECK-DAG: @"_CT??_R0?AUDefault@@@8??_ODefault@@QAEXAAU0@@Z1" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor13* @"??_R0?AUDefault@@@8" to i8*), i32 0, i32 -1, i32 0, i32 1, i8* bitcast (void (%struct.Default*, %struct.Default*)* @"??_ODefault@@QAEXAAU0@@Z" to i8*) }, section ".xdata", comdat
+// CHECK-DAG: @"_CT??_R0?AUVariadic@@@8??_OVariadic@@QAEXAAU0@@Z1" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor14* @"??_R0?AUVariadic@@@8" to i8*), i32 0, i32 -1, i32 0, i32 1, i8* bitcast (void (%struct.Variadic*, %struct.Variadic*)* @"??_OVariadic@@QAEXAAU0@@Z" to i8*) }, section ".xdata", comdat
+// CHECK-DAG: @"_CT??_R0?AUTemplateWithDefault@@@8??$?_OH at TemplateWithDefault@@QAEXAAU0@@Z1" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 0, i8* bitcast (%rtti.TypeDescriptor25* @"??_R0?AUTemplateWithDefault@@@8" to i8*), i32 0, i32 -1, i32 0, i32 1, i8* bitcast (void (%struct.TemplateWithDefault*, %struct.TemplateWithDefault*)* @"??$?_OH at TemplateWithDefault@@QAEXAAU0@@Z" to i8*) }, section ".xdata", comdat
 // CHECK-DAG: @"_CTA2$$T" = linkonce_odr unnamed_addr constant %eh.CatchableTypeArray.2 { i32 2, [2 x %eh.CatchableType*] [%eh.CatchableType* @"_CT??_R0$$T at 84", %eh.CatchableType* @"_CT??_R0PAX at 84"] }, section ".xdata", comdat
-// CHECK-DAG: @"_CT??_R0P6AXXZ at 84" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 1, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0P6AXXZ at 8" to i8*), i32 0, i32 -1, i32 0, i32 4, i8* null }, section ".xdata", comdat
+// CHECK-DAG: @"_CT??_R0P6AXXZ at 84" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 1, i8* bitcast (%rtti.TypeDescriptor7* @"??_R0P6AXXZ at 8" to i8*), i32 0, i32 -1, i32 0, i32 4, i8* null }, section ".xdata", comdat
 // CHECK-DAG: @_CTA1P6AXXZ = linkonce_odr unnamed_addr constant %eh.CatchableTypeArray.1 { i32 1, [1 x %eh.CatchableType*] [%eh.CatchableType* @"_CT??_R0P6AXXZ at 84"] }, section ".xdata", comdat
 // CHECK-DAG: @_TI1P6AXXZ = linkonce_odr unnamed_addr constant %eh.ThrowInfo { i32 0, i8* null, i8* null, i8* bitcast (%eh.CatchableTypeArray.1* @_CTA1P6AXXZ to i8*) }, section ".xdata", comdat
 // CHECK-DAG: @_TIU2PAPFAH = linkonce_odr unnamed_addr constant %eh.ThrowInfo { i32 4, i8* null, i8* null, i8* bitcast (%eh.CatchableTypeArray.2* @_CTA2PAPFAH to i8*) }, section ".xdata", comdat
@@ -33,21 +33,21 @@ struct W : M, virtual V {};
 struct Y : Z, W, virtual V {};
 
 void f(const Y &y) {
-  // CHECK-LABEL: @"\01?f@@YAXABUY@@@Z"
-  // CHECK: call x86_thiscallcc %struct.Y* @"\01??0Y@@QAE at ABU0@@Z"(%struct.Y* %[[mem:.*]], %struct.Y*
+  // CHECK-LABEL: @"?f@@YAXABUY@@@Z"
+  // CHECK: call x86_thiscallcc %struct.Y* @"??0Y@@QAE at ABU0@@Z"(%struct.Y* %[[mem:.*]], %struct.Y*
   // CHECK: %[[cast:.*]] = bitcast %struct.Y* %[[mem]] to i8*
   // CHECK: call void @_CxxThrowException(i8* %[[cast]], %eh.ThrowInfo* @"_TI5?AUY@@")
   throw y;
 }
 
 void g(const int *const *y) {
-  // CHECK-LABEL: @"\01?g@@YAXPBQBH at Z"
+  // CHECK-LABEL: @"?g@@YAXPBQBH at Z"
   // CHECK: call void @_CxxThrowException(i8* %{{.*}}, %eh.ThrowInfo* @_TIC2PAPBH)
   throw y;
 }
 
 void h(__unaligned int * __unaligned *y) {
-  // CHECK-LABEL: @"\01?h@@YAXPFAPFAH at Z"
+  // CHECK-LABEL: @"?h@@YAXPFAPFAH at Z"
   // CHECK: call void @_CxxThrowException(i8* %{{.*}}, %eh.ThrowInfo* @_TIU2PAPFAH)
   throw y;
 }
@@ -56,14 +56,14 @@ struct Default {
   Default(Default &, int = 42);
 };
 
-// CHECK-LABEL: @"\01??_ODefault@@QAEXAAU0@@Z"
+// CHECK-LABEL: @"??_ODefault@@QAEXAAU0@@Z"
 // CHECK: %[[src_addr:.*]] = alloca
 // CHECK: %[[this_addr:.*]] = alloca
 // CHECK: store {{.*}} %src, {{.*}} %[[src_addr]], align 4
 // CHECK: store {{.*}} %this, {{.*}} %[[this_addr]], align 4
 // CHECK: %[[this:.*]] = load {{.*}} %[[this_addr]]
 // CHECK: %[[src:.*]] = load {{.*}} %[[src_addr]]
-// CHECK: call x86_thiscallcc {{.*}} @"\01??0Default@@QAE at AAU0@H at Z"({{.*}} %[[this]], {{.*}} %[[src]], i32 42)
+// CHECK: call x86_thiscallcc {{.*}} @"??0Default@@QAE at AAU0@H at Z"({{.*}} %[[this]], {{.*}} %[[src]], i32 42)
 // CHECK: ret void
 
 void h(Default &d) {
@@ -78,14 +78,14 @@ void i(Variadic &v) {
   throw v;
 }
 
-// CHECK-LABEL: @"\01??_OVariadic@@QAEXAAU0@@Z"
+// CHECK-LABEL: @"??_OVariadic@@QAEXAAU0@@Z"
 // CHECK:  %[[src_addr:.*]] = alloca
 // CHECK:  %[[this_addr:.*]] = alloca
 // CHECK:  store {{.*}} %src, {{.*}} %[[src_addr:.*]], align
 // CHECK:  store {{.*}} %this, {{.*}} %[[this_addr:.*]], align
 // CHECK:  %[[this:.*]] = load {{.*}} %[[this_addr]]
 // CHECK:  %[[src:.*]] = load {{.*}} %[[src_addr]]
-// CHECK:  call {{.*}} @"\01??0Variadic@@QAA at AAU0@ZZ"({{.*}} %[[this]], {{.*}} %[[src]])
+// CHECK:  call {{.*}} @"??0Variadic@@QAA at AAU0@ZZ"({{.*}} %[[this]], {{.*}} %[[src]])
 // CHECK:  ret void
 
 struct TemplateWithDefault {
@@ -118,13 +118,13 @@ void *__GetExceptionInfo(T);
 using namespace std;
 
 void *GetExceptionInfo_test0() {
-// CHECK-LABEL: @"\01?GetExceptionInfo_test0@@YAPAXXZ"
+// CHECK-LABEL: @"?GetExceptionInfo_test0@@YAPAXXZ"
 // CHECK:  ret i8* bitcast (%eh.ThrowInfo* @_TI1H to i8*)
   return __GetExceptionInfo(0);
 }
 
 void *GetExceptionInfo_test1() {
-// CHECK-LABEL: @"\01?GetExceptionInfo_test1@@YAPAXXZ"
+// CHECK-LABEL: @"?GetExceptionInfo_test1@@YAPAXXZ"
 // CHECK:  ret i8* bitcast (%eh.ThrowInfo* @_TI1P6AXXZ to i8*)
   return __GetExceptionInfo<void (*)()>(&h);
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-thunks.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-thunks.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-thunks.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-thunks.cpp Fri Mar 16 13:36:49 2018
@@ -10,7 +10,7 @@ struct A {
   virtual ~A();
   virtual void public_f();
   // Make sure we don't emit unneeded thunks:
-  // XMANGLING-NOT: @"\01?public_f at A@@QAEXXZ"
+  // XMANGLING-NOT: @"?public_f at A@@QAEXXZ"
  protected:
   virtual void protected_f();
  private:
@@ -31,45 +31,45 @@ struct C : A, B {
   C();
 
   virtual ~C();
-  // MANGLING-DAG: declare {{.*}} @"\01??1C@@UAE at XZ"({{.*}})
-  // MANGLING-DAG: define {{.*}} @"\01??_GC@@UAEPAXI at Z"({{.*}})
-  // MANGLING-DAG: define {{.*}} @"\01??_EC@@W3AEPAXI at Z"({{.*}}) {{.*}} comdat
-  // MANGLING-X64-DAG: declare {{.*}} @"\01??1C@@UEAA at XZ"({{.*}})
-  // MANGLING-X64-DAG: define {{.*}} @"\01??_GC@@UEAAPEAXI at Z"({{.*}})
-  // MANGLING-X64-DAG: define {{.*}} @"\01??_EC@@W7EAAPEAXI at Z"({{.*}}) {{.*}} comdat
+  // MANGLING-DAG: declare {{.*}} @"??1C@@UAE at XZ"({{.*}})
+  // MANGLING-DAG: define {{.*}} @"??_GC@@UAEPAXI at Z"({{.*}})
+  // MANGLING-DAG: define {{.*}} @"??_EC@@W3AEPAXI at Z"({{.*}}) {{.*}} comdat
+  // MANGLING-X64-DAG: declare {{.*}} @"??1C@@UEAA at XZ"({{.*}})
+  // MANGLING-X64-DAG: define {{.*}} @"??_GC@@UEAAPEAXI at Z"({{.*}})
+  // MANGLING-X64-DAG: define {{.*}} @"??_EC@@W7EAAPEAXI at Z"({{.*}}) {{.*}} comdat
 
   // Overrides public_f() of two subobjects with distinct vfptrs, thus needs a thunk.
   virtual void public_f();
-  // MANGLING-DAG: @"\01?public_f at C@@UAEXXZ"
-  // MANGLING-DAG: @"\01?public_f at C@@W3AEXXZ"
-  // MANGLING-X64-DAG: @"\01?public_f at C@@UEAAXXZ"
-  // MANGLING-X64-DAG: @"\01?public_f at C@@W7EAAXXZ"
+  // MANGLING-DAG: @"?public_f at C@@UAEXXZ"
+  // MANGLING-DAG: @"?public_f at C@@W3AEXXZ"
+  // MANGLING-X64-DAG: @"?public_f at C@@UEAAXXZ"
+  // MANGLING-X64-DAG: @"?public_f at C@@W7EAAXXZ"
  protected:
   virtual void protected_f();
-  // MANGLING-DAG: @"\01?protected_f at C@@MAEXXZ"
-  // MANGLING-DAG: @"\01?protected_f at C@@O3AEXXZ"
-  // MANGLING-X64-DAG: @"\01?protected_f at C@@MEAAXXZ"
-  // MANGLING-X64-DAG: @"\01?protected_f at C@@O7EAAXXZ"
+  // MANGLING-DAG: @"?protected_f at C@@MAEXXZ"
+  // MANGLING-DAG: @"?protected_f at C@@O3AEXXZ"
+  // MANGLING-X64-DAG: @"?protected_f at C@@MEAAXXZ"
+  // MANGLING-X64-DAG: @"?protected_f at C@@O7EAAXXZ"
 
  private:
   virtual void private_f();
-  // MANGLING-DAG: @"\01?private_f at C@@EAEXXZ"
-  // MANGLING-DAG: @"\01?private_f at C@@G3AEXXZ"
-  // MANGLING-X64-DAG: @"\01?private_f at C@@EEAAXXZ"
-  // MANGLING-X64-DAG: @"\01?private_f at C@@G7EAAXXZ"
+  // MANGLING-DAG: @"?private_f at C@@EAEXXZ"
+  // MANGLING-DAG: @"?private_f at C@@G3AEXXZ"
+  // MANGLING-X64-DAG: @"?private_f at C@@EEAAXXZ"
+  // MANGLING-X64-DAG: @"?private_f at C@@G7EAAXXZ"
 };
 
 C::C() {}  // Emits vftable and forces thunk generation.
 
-// CODEGEN-LABEL: define linkonce_odr dso_local x86_thiscallcc i8* @"\01??_EC@@W3AEPAXI at Z"(%struct.C* %this, i32 %should_call_delete) {{.*}} comdat
+// CODEGEN-LABEL: define linkonce_odr dso_local x86_thiscallcc i8* @"??_EC@@W3AEPAXI at Z"(%struct.C* %this, i32 %should_call_delete) {{.*}} comdat
 // CODEGEN:   getelementptr i8, i8* {{.*}}, i32 -4
 // FIXME: should actually call _EC, not _GC.
-// CODEGEN:   call x86_thiscallcc i8* @"\01??_GC@@UAEPAXI at Z"
+// CODEGEN:   call x86_thiscallcc i8* @"??_GC@@UAEPAXI at Z"
 // CODEGEN: ret
 
-// CODEGEN-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"\01?public_f at C@@W3AEXXZ"(%struct.C*
+// CODEGEN-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"?public_f at C@@W3AEXXZ"(%struct.C*
 // CODEGEN:   getelementptr i8, i8* {{.*}}, i32 -4
-// CODEGEN:   call x86_thiscallcc void @"\01?public_f at C@@UAEXXZ"(%struct.C*
+// CODEGEN:   call x86_thiscallcc void @"?public_f at C@@UAEXXZ"(%struct.C*
 // CODEGEN: ret
 
 void zoo(C* obj) {
@@ -83,16 +83,16 @@ struct D {
 struct E : D {
   E();
   virtual C* goo();
-  // MANGLING-DAG: @"\01?goo at E@@UAEPAUC@@XZ"
-  // MANGLING-DAG: @"\01?goo at E@@QAEPAUB@@XZ"
-  // MANGLING-X64-DAG: @"\01?goo at E@@UEAAPEAUC@@XZ"
-  // MANGLING-X64-DAG: @"\01?goo at E@@QEAAPEAUB@@XZ"
+  // MANGLING-DAG: @"?goo at E@@UAEPAUC@@XZ"
+  // MANGLING-DAG: @"?goo at E@@QAEPAUB@@XZ"
+  // MANGLING-X64-DAG: @"?goo at E@@UEAAPEAUC@@XZ"
+  // MANGLING-X64-DAG: @"?goo at E@@QEAAPEAUB@@XZ"
 };
 
 E::E() {}  // Emits vftable and forces thunk generation.
 
-// CODEGEN-LABEL: define weak_odr dso_local x86_thiscallcc %struct.C* @"\01?goo at E@@QAEPAUB@@XZ"{{.*}} comdat
-// CODEGEN:   call x86_thiscallcc %struct.C* @"\01?goo at E@@UAEPAUC@@XZ"
+// CODEGEN-LABEL: define weak_odr dso_local x86_thiscallcc %struct.C* @"?goo at E@@QAEPAUB@@XZ"{{.*}} comdat
+// CODEGEN:   call x86_thiscallcc %struct.C* @"?goo at E@@UAEPAUC@@XZ"
 // CODEGEN:   getelementptr inbounds i8, i8* {{.*}}, i32 4
 // CODEGEN: ret
 
@@ -107,12 +107,12 @@ struct G : C { };
 
 struct H : E {
   virtual G* goo();
-  // MANGLING-DAG: @"\01?goo at H@@UAEPAUG@@XZ"
-  // MANGLING-DAG: @"\01?goo at H@@QAEPAUB@@XZ"
-  // MANGLING-DAG: @"\01?goo at H@@QAEPAUC@@XZ"
-  // MANGLING-X64-DAG: @"\01?goo at H@@UEAAPEAUG@@XZ"
-  // MANGLING-X64-DAG: @"\01?goo at H@@QEAAPEAUB@@XZ"
-  // MANGLING-X64-DAG: @"\01?goo at H@@QEAAPEAUC@@XZ"
+  // MANGLING-DAG: @"?goo at H@@UAEPAUG@@XZ"
+  // MANGLING-DAG: @"?goo at H@@QAEPAUB@@XZ"
+  // MANGLING-DAG: @"?goo at H@@QAEPAUC@@XZ"
+  // MANGLING-X64-DAG: @"?goo at H@@UEAAPEAUG@@XZ"
+  // MANGLING-X64-DAG: @"?goo at H@@QEAAPEAUB@@XZ"
+  // MANGLING-X64-DAG: @"?goo at H@@QEAAPEAUC@@XZ"
 };
 
 H h;
@@ -124,8 +124,8 @@ struct I : D {
 
 I::I() {}  // Emits vftable and forces thunk generation.
 
-// CODEGEN-LABEL: define weak_odr dso_local x86_thiscallcc %struct.{{[BF]}}* @"\01?goo at I@@QAEPAUB@@XZ"{{.*}} comdat
-// CODEGEN: %[[ORIG_RET:.*]] = call x86_thiscallcc %struct.F* @"\01?goo at I@@UAEPAUF@@XZ"
+// CODEGEN-LABEL: define weak_odr dso_local x86_thiscallcc %struct.{{[BF]}}* @"?goo at I@@QAEPAUB@@XZ"{{.*}} comdat
+// CODEGEN: %[[ORIG_RET:.*]] = call x86_thiscallcc %struct.F* @"?goo at I@@UAEPAUF@@XZ"
 // CODEGEN: %[[ORIG_RET_i8:.*]] = bitcast %struct.F* %[[ORIG_RET]] to i8*
 // CODEGEN: %[[VBPTR_i8:.*]] = getelementptr inbounds i8, i8* %[[ORIG_RET_i8]], i32 4
 // CODEGEN: %[[VBPTR:.*]] = bitcast i8* %[[VBPTR_i8]] to i32**
@@ -160,5 +160,5 @@ struct E : D {
 E::E() {}
 E e;
 // Class with internal linkage has internal linkage thunks.
-// CODEGEN: define internal x86_thiscallcc %struct.C* @"\01?goo at E@?A@@QAEPAUB@@XZ"
+// CODEGEN: define internal x86_thiscallcc %struct.C* @"?goo at E@?A@@QAEPAUB@@XZ"
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-try-throw.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-try-throw.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-try-throw.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-try-throw.cpp Fri Mar 16 13:36:49 2018
@@ -1,8 +1,8 @@
 // RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 -mconstructor-aliases -fcxx-exceptions -fexceptions -fno-rtti -DTRY   | FileCheck %s -check-prefix=TRY
 // RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 -mconstructor-aliases -fcxx-exceptions -fexceptions -fno-rtti -DTHROW | FileCheck %s -check-prefix=THROW
 
-// THROW-DAG: @"\01??_R0H at 8" = linkonce_odr global %rtti.TypeDescriptor2 { i8** @"\01??_7type_info@@6B@", i8* null, [3 x i8] c".H\00" }, comdat
-// THROW-DAG: @"_CT??_R0H at 84" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 1, i8* bitcast (%rtti.TypeDescriptor2* @"\01??_R0H at 8" to i8*), i32 0, i32 -1, i32 0, i32 4, i8* null }, section ".xdata", comdat
+// THROW-DAG: @"??_R0H at 8" = linkonce_odr global %rtti.TypeDescriptor2 { i8** @"??_7type_info@@6B@", i8* null, [3 x i8] c".H\00" }, comdat
+// THROW-DAG: @"_CT??_R0H at 84" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 1, i8* bitcast (%rtti.TypeDescriptor2* @"??_R0H at 8" to i8*), i32 0, i32 -1, i32 0, i32 4, i8* null }, section ".xdata", comdat
 // THROW-DAG: @_CTA1H = linkonce_odr unnamed_addr constant %eh.CatchableTypeArray.1 { i32 1, [1 x %eh.CatchableType*] [%eh.CatchableType* @"_CT??_R0H at 84"] }, section ".xdata", comdat
 // THROW-DAG: @_TI1H = linkonce_odr unnamed_addr constant %eh.ThrowInfo { i32 0, i8* null, i8* null, i8* bitcast (%eh.CatchableTypeArray.1* @_CTA1H to i8*) }, section ".xdata", comdat
 
@@ -16,10 +16,10 @@ int main() {
   int rv = 0;
 #ifdef TRY
   try {
-    external(); // TRY: invoke void @"\01?external@@YAXXZ"
+    external(); // TRY: invoke void @"?external@@YAXXZ"
   } catch (int) {
     rv = 1;
-    // TRY: catchpad within {{.*}} [%rtti.TypeDescriptor2* @"\01??_R0H at 8", i32 0, i8* null]
+    // TRY: catchpad within {{.*}} [%rtti.TypeDescriptor2* @"??_R0H at 8", i32 0, i8* null]
     // TRY: catchret
   }
 #endif
@@ -33,13 +33,13 @@ int main() {
 }
 
 #ifdef TRY
-// TRY-LABEL: define dso_local void @"\01?qual_catch@@YAXXZ"
+// TRY-LABEL: define dso_local void @"?qual_catch@@YAXXZ"
 void qual_catch() {
   try {
     external();
   } catch (const int *) {
   }
-  // TRY: catchpad within {{.*}} [%rtti.TypeDescriptor4* @"\01??_R0PAH at 8", i32 1, i8* null]
+  // TRY: catchpad within {{.*}} [%rtti.TypeDescriptor4* @"??_R0PAH at 8", i32 1, i8* null]
   // TRY: catchret
 }
 #endif

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-typeid.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-typeid.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-typeid.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-typeid.cpp Fri Mar 16 13:36:49 2018
@@ -12,20 +12,20 @@ extern int b;
 A* fn();
 
 const std::type_info* test0_typeid() { return &typeid(int); }
-// CHECK-LABEL: define dso_local %struct.type_info* @"\01?test0_typeid@@YAPBUtype_info@@XZ"()
-// CHECK:   ret %struct.type_info* bitcast (%rtti.TypeDescriptor2* @"\01??_R0H at 8" to %struct.type_info*)
+// CHECK-LABEL: define dso_local %struct.type_info* @"?test0_typeid@@YAPBUtype_info@@XZ"()
+// CHECK:   ret %struct.type_info* bitcast (%rtti.TypeDescriptor2* @"??_R0H at 8" to %struct.type_info*)
 
 const std::type_info* test1_typeid() { return &typeid(A); }
-// CHECK-LABEL: define dso_local %struct.type_info* @"\01?test1_typeid@@YAPBUtype_info@@XZ"()
-// CHECK:   ret %struct.type_info* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8" to %struct.type_info*)
+// CHECK-LABEL: define dso_local %struct.type_info* @"?test1_typeid@@YAPBUtype_info@@XZ"()
+// CHECK:   ret %struct.type_info* bitcast (%rtti.TypeDescriptor7* @"??_R0?AUA@@@8" to %struct.type_info*)
 
 const std::type_info* test2_typeid() { return &typeid(&a); }
-// CHECK-LABEL: define dso_local %struct.type_info* @"\01?test2_typeid@@YAPBUtype_info@@XZ"()
-// CHECK:   ret %struct.type_info* bitcast (%rtti.TypeDescriptor7* @"\01??_R0PAUA@@@8" to %struct.type_info*)
+// CHECK-LABEL: define dso_local %struct.type_info* @"?test2_typeid@@YAPBUtype_info@@XZ"()
+// CHECK:   ret %struct.type_info* bitcast (%rtti.TypeDescriptor7* @"??_R0PAUA@@@8" to %struct.type_info*)
 
 const std::type_info* test3_typeid() { return &typeid(*fn()); }
-// CHECK-LABEL: define dso_local %struct.type_info* @"\01?test3_typeid@@YAPBUtype_info@@XZ"()
-// CHECK:        [[CALL:%.*]] = tail call %struct.A* @"\01?fn@@YAPAUA@@XZ"()
+// CHECK-LABEL: define dso_local %struct.type_info* @"?test3_typeid@@YAPBUtype_info@@XZ"()
+// CHECK:        [[CALL:%.*]] = tail call %struct.A* @"?fn@@YAPAUA@@XZ"()
 // CHECK-NEXT:   [[CMP:%.*]] = icmp eq %struct.A* [[CALL]], null
 // CHECK-NEXT:   br i1 [[CMP]]
 // CHECK:        tail call i8* @__RTtypeid(i8* null)
@@ -41,12 +41,12 @@ const std::type_info* test3_typeid() { r
 // CHECK-NEXT:   ret %struct.type_info* [[RET]]
 
 const std::type_info* test4_typeid() { return &typeid(b); }
-// CHECK: define dso_local %struct.type_info* @"\01?test4_typeid@@YAPBUtype_info@@XZ"()
-// CHECK:   ret %struct.type_info* bitcast (%rtti.TypeDescriptor2* @"\01??_R0H at 8" to %struct.type_info*)
+// CHECK: define dso_local %struct.type_info* @"?test4_typeid@@YAPBUtype_info@@XZ"()
+// CHECK:   ret %struct.type_info* bitcast (%rtti.TypeDescriptor2* @"??_R0H at 8" to %struct.type_info*)
 
 const std::type_info* test5_typeid() { return &typeid(v); }
-// CHECK: define dso_local %struct.type_info* @"\01?test5_typeid@@YAPBUtype_info@@XZ"()
-// CHECK:        [[RT:%.*]] = tail call i8* @__RTtypeid(i8* bitcast (%struct.V* @"\01?v@@3UV@@A" to i8*))
+// CHECK: define dso_local %struct.type_info* @"?test5_typeid@@YAPBUtype_info@@XZ"()
+// CHECK:        [[RT:%.*]] = tail call i8* @__RTtypeid(i8* bitcast (%struct.V* @"?v@@3UV@@A" to i8*))
 // CHECK-NEXT:   [[RET:%.*]] = bitcast i8* [[RT]] to %struct.type_info*
 // CHECK-NEXT:   ret %struct.type_info* [[RET]]
 
@@ -63,7 +63,7 @@ void f(const Polymorphic &poly) {
     typeid(poly);
   }
 }
-// CHECK-LABEL: define dso_local void @"\01?f at PR26329@@YAXABUPolymorphic at 1@@Z"(
+// CHECK-LABEL: define dso_local void @"?f at PR26329@@YAXABUPolymorphic at 1@@Z"(
 // CHECK: %[[cs:.*]] = catchswitch within none [label %{{.*}}] unwind to caller
 // CHECK: %[[cp:.*]] = catchpad within %[[cs]] [i8* null, i32 64, i8* null]
 // CHECK: invoke i8* @__RTtypeid(i8* {{.*}}) [ "funclet"(token %[[cp]]) ]

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-vbtables.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-vbtables.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-vbtables.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-vbtables.cpp Fri Mar 16 13:36:49 2018
@@ -19,11 +19,11 @@ D d; // Force vbtable emission.
 // C: vbptr C
 //    int c
 
-// CHECK-DAG: @"\01??_8D at Test1@@7B01@@" = linkonce_odr unnamed_addr constant [4 x i32] [i32 0, i32 8, i32 12, i32 20]
-// CHECK-DAG: @"\01??_8D at Test1@@7BB at 1@@" = {{.*}} [2 x i32] [i32 0, i32 -4]
-// CHECK-DAG: @"\01??_8D at Test1@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 -12]
-// CHECK-DAG: @"\01??_8C at Test1@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
-// CHECK-DAG: @"\01??_8B at Test1@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8D at Test1@@7B01@@" = linkonce_odr unnamed_addr constant [4 x i32] [i32 0, i32 8, i32 12, i32 20]
+// CHECK-DAG: @"??_8D at Test1@@7BB at 1@@" = {{.*}} [2 x i32] [i32 0, i32 -4]
+// CHECK-DAG: @"??_8D at Test1@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 -12]
+// CHECK-DAG: @"??_8C at Test1@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8B at Test1@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
 }
 
 namespace Test2 {
@@ -42,10 +42,10 @@ D d; // Force vbtable emission.
 // D: int d
 // A: int a
 
-// CHECK-DAG: @"\01??_8D at Test2@@7BB at 1@@" = {{.*}} [2 x i32] [i32 0, i32 20]
-// CHECK-DAG: @"\01??_8D at Test2@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 12]
-// CHECK-DAG: @"\01??_8C at Test2@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
-// CHECK-DAG: @"\01??_8B at Test2@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8D at Test2@@7BB at 1@@" = {{.*}} [2 x i32] [i32 0, i32 20]
+// CHECK-DAG: @"??_8D at Test2@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 12]
+// CHECK-DAG: @"??_8C at Test2@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8B at Test2@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
 }
 
 namespace Test3 {
@@ -54,7 +54,7 @@ struct B { int b; };
 struct C : virtual A, virtual B { int c; };
 C c;
 
-// CHECK-DAG: @"\01??_8C at Test3@@7B@" = {{.*}} [3 x i32] [i32 0, i32 8, i32 12]
+// CHECK-DAG: @"??_8C at Test3@@7B@" = {{.*}} [3 x i32] [i32 0, i32 8, i32 12]
 }
 
 namespace Test4 {
@@ -64,8 +64,8 @@ struct B : virtual A { int b; };
 struct C : B, virtual A { int c; };
 C c; // Force vbtable emission.
 
-// CHECK-DAG: @"\01??_8C at Test4@@7B@" = {{.*}} [2 x i32] [i32 0, i32 12]
-// CHECK-DAG: @"\01??_8B at Test4@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8C at Test4@@7B@" = {{.*}} [2 x i32] [i32 0, i32 12]
+// CHECK-DAG: @"??_8B at Test4@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
 }
 
 namespace Test5 {
@@ -77,10 +77,10 @@ struct C : B { int c; };
 struct D : B, C { int d; };
 D d; // Force vbtable emission.
 
-// CHECK-DAG: @"\01??_8D at Test5@@7BB at 1@@"
-// CHECK-DAG: @"\01??_8D at Test5@@7BC at 1@@"
-// CHECK-DAG: @"\01??_8C at Test5@@7B@"
-// CHECK-DAG: @"\01??_8B at Test5@@7B@"
+// CHECK-DAG: @"??_8D at Test5@@7BB at 1@@"
+// CHECK-DAG: @"??_8D at Test5@@7BC at 1@@"
+// CHECK-DAG: @"??_8C at Test5@@7B@"
+// CHECK-DAG: @"??_8B at Test5@@7B@"
 }
 
 namespace Test6 {
@@ -94,22 +94,22 @@ struct F : E, B, C { int f; };
 struct G : F, virtual E { int g; };
 G g;
 
-// CHECK-DAG: @"\01??_8G at Test6@@7BB at 1@E at 1@F at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test6@@7BC at 1@E at 1@F at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test6@@7BB at 1@F at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test6@@7BC at 1@F at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test6@@7BB at 1@E at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test6@@7BC at 1@E at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test6@@7BB at 1@E at 1@@" = {{.*}} [2 x i32] [i32 0, i32 52]
-// CHECK-DAG: @"\01??_8F at Test6@@7BC at 1@E at 1@@" = {{.*}} [2 x i32] [i32 0, i32 44]
-// CHECK-DAG: @"\01??_8F at Test6@@7BB at 1@@" = {{.*}} [2 x i32] [i32 0, i32 24]
-// CHECK-DAG: @"\01??_8F at Test6@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 16]
-// CHECK-DAG: @"\01??_8C at Test6@@7B@" = {{.*}} [2 x i32] [i32 0, i32 12]
-// CHECK-DAG: @"\01??_8B at Test6@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
-// CHECK-DAG: @"\01??_8E at Test6@@7BB at 1@@" = {{.*}} [2 x i32] [i32 0, i32 28]
-// CHECK-DAG: @"\01??_8E at Test6@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 20]
-// CHECK-DAG: @"\01??_8D at Test6@@7BB at 1@@" = {{.*}} [2 x i32] [i32 0, i32 24]
-// CHECK-DAG: @"\01??_8D at Test6@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 16]
+// CHECK-DAG: @"??_8G at Test6@@7BB at 1@E at 1@F at 1@@" =
+// CHECK-DAG: @"??_8G at Test6@@7BC at 1@E at 1@F at 1@@" =
+// CHECK-DAG: @"??_8G at Test6@@7BB at 1@F at 1@@" =
+// CHECK-DAG: @"??_8G at Test6@@7BC at 1@F at 1@@" =
+// CHECK-DAG: @"??_8G at Test6@@7BB at 1@E at 1@@" =
+// CHECK-DAG: @"??_8G at Test6@@7BC at 1@E at 1@@" =
+// CHECK-DAG: @"??_8F at Test6@@7BB at 1@E at 1@@" = {{.*}} [2 x i32] [i32 0, i32 52]
+// CHECK-DAG: @"??_8F at Test6@@7BC at 1@E at 1@@" = {{.*}} [2 x i32] [i32 0, i32 44]
+// CHECK-DAG: @"??_8F at Test6@@7BB at 1@@" = {{.*}} [2 x i32] [i32 0, i32 24]
+// CHECK-DAG: @"??_8F at Test6@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 16]
+// CHECK-DAG: @"??_8C at Test6@@7B@" = {{.*}} [2 x i32] [i32 0, i32 12]
+// CHECK-DAG: @"??_8B at Test6@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8E at Test6@@7BB at 1@@" = {{.*}} [2 x i32] [i32 0, i32 28]
+// CHECK-DAG: @"??_8E at Test6@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 20]
+// CHECK-DAG: @"??_8D at Test6@@7BB at 1@@" = {{.*}} [2 x i32] [i32 0, i32 24]
+// CHECK-DAG: @"??_8D at Test6@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 16]
 }
 
 namespace Test7 {
@@ -121,8 +121,8 @@ struct D : virtual A { int d; };
 struct E : B, D, virtual A, virtual C { int e; };
 E o;
 
-// CHECK-DAG: @"\01??_8E at Test7@@7B@" = {{.*}} [3 x i32] [i32 0, i32 12, i32 16]
-// CHECK-DAG: @"\01??_8D at Test7@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8E at Test7@@7B@" = {{.*}} [3 x i32] [i32 0, i32 12, i32 16]
+// CHECK-DAG: @"??_8D at Test7@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
 }
 
 namespace Test8 {
@@ -133,10 +133,10 @@ struct C : B { int c; };
 struct D : virtual C { int d; };
 D o;
 
-// CHECK-DAG: @"\01??_8D at Test8@@7B01@@" = {{.*}} [3 x i32] [i32 0, i32 8, i32 12]
-// CHECK-DAG: @"\01??_8D at Test8@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 -4]
-// CHECK-DAG: @"\01??_8C at Test8@@7B@" = {{.*}} [2 x i32] [i32 0, i32 12]
-// CHECK-DAG: @"\01??_8B at Test8@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8D at Test8@@7B01@@" = {{.*}} [3 x i32] [i32 0, i32 8, i32 12]
+// CHECK-DAG: @"??_8D at Test8@@7BC at 1@@" = {{.*}} [2 x i32] [i32 0, i32 -4]
+// CHECK-DAG: @"??_8C at Test8@@7B@" = {{.*}} [2 x i32] [i32 0, i32 12]
+// CHECK-DAG: @"??_8B at Test8@@7B@" = {{.*}} [2 x i32] [i32 0, i32 8]
 }
 
 namespace Test9 {
@@ -150,17 +150,17 @@ struct D : BB, C { int d; };
 struct E : virtual D { };
 E e;
 
-// CHECK-DAG: @"\01??_8E at Test9@@7B01@@" =
-// CHECK-DAG: @"\01??_8E at Test9@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test9@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test9@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test9@@7B@" =
-// CHECK-DAG: @"\01??_8D at Test9@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test9@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8C at Test9@@7B01@@" =
-// CHECK-DAG: @"\01??_8C at Test9@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8BB at Test9@@7B@" =
-// CHECK-DAG: @"\01??_8B at Test9@@7B@" =
+// CHECK-DAG: @"??_8E at Test9@@7B01@@" =
+// CHECK-DAG: @"??_8E at Test9@@7BD at 1@@" =
+// CHECK-DAG: @"??_8E at Test9@@7BC at 1@@" =
+// CHECK-DAG: @"??_8E at Test9@@7BB at 1@@" =
+// CHECK-DAG: @"??_8D at Test9@@7B@" =
+// CHECK-DAG: @"??_8D at Test9@@7BC at 1@@" =
+// CHECK-DAG: @"??_8D at Test9@@7BB at 1@@" =
+// CHECK-DAG: @"??_8C at Test9@@7B01@@" =
+// CHECK-DAG: @"??_8C at Test9@@7BB at 1@@" =
+// CHECK-DAG: @"??_8BB at Test9@@7B@" =
+// CHECK-DAG: @"??_8B at Test9@@7B@" =
 }
 
 namespace Test10 {
@@ -170,8 +170,8 @@ struct C : virtual A { int c; };
 struct D : B, C { int d; };
 D d;
 
-// CHECK-DAG: @"\01??_8D at Test10@@7B@" =
-// CHECK-DAG: @"\01??_8C at Test10@@7B@" =
+// CHECK-DAG: @"??_8D at Test10@@7B@" =
+// CHECK-DAG: @"??_8C at Test10@@7B@" =
 
 }
 
@@ -185,12 +185,12 @@ struct E : C { int e; };
 struct F : D, E { int f; };
 F f;
 
-// CHECK-DAG: @"\01??_8F at Test11@@7BD at 1@@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 28]
-// CHECK-DAG: @"\01??_8F at Test11@@7BE at 1@@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 16]
-// CHECK-DAG: @"\01??_8E at Test11@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 12]
-// CHECK-DAG: @"\01??_8C at Test11@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
-// CHECK-DAG: @"\01??_8D at Test11@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 12]
-// CHECK-DAG: @"\01??_8B at Test11@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8F at Test11@@7BD at 1@@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 28]
+// CHECK-DAG: @"??_8F at Test11@@7BE at 1@@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 16]
+// CHECK-DAG: @"??_8E at Test11@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 12]
+// CHECK-DAG: @"??_8C at Test11@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8D at Test11@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 12]
+// CHECK-DAG: @"??_8B at Test11@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
 
 }
 
@@ -203,17 +203,17 @@ struct D : C, B { int d; };
 struct E : D, C, B { int e; };
 E e;
 
-// CHECK-DAG: @"\01??_8E at Test12@@7BC at 1@D at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test12@@7BB at 1@D at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test12@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test12@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test12@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8C at Test12@@7B01@@" =
-// CHECK-DAG: @"\01??_8C at Test12@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test12@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test12@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test12@@7B@" =
-// CHECK-DAG: @"\01??_8B at Test12@@7B@" =
+// CHECK-DAG: @"??_8E at Test12@@7BC at 1@D at 1@@" =
+// CHECK-DAG: @"??_8E at Test12@@7BB at 1@D at 1@@" =
+// CHECK-DAG: @"??_8E at Test12@@7BD at 1@@" =
+// CHECK-DAG: @"??_8E at Test12@@7BC at 1@@" =
+// CHECK-DAG: @"??_8E at Test12@@7BB at 1@@" =
+// CHECK-DAG: @"??_8C at Test12@@7B01@@" =
+// CHECK-DAG: @"??_8C at Test12@@7BB at 1@@" =
+// CHECK-DAG: @"??_8D at Test12@@7BC at 1@@" =
+// CHECK-DAG: @"??_8D at Test12@@7BB at 1@@" =
+// CHECK-DAG: @"??_8D at Test12@@7B@" =
+// CHECK-DAG: @"??_8B at Test12@@7B@" =
 }
 
 namespace Test13 {
@@ -224,17 +224,17 @@ struct D : virtual C { int d; };
 struct E : D, C, B { int e; };
 E e;
 
-// CHECK-DAG: @"\01??_8E at Test13@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test13@@7BC at 1@D at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test13@@7BB at 1@D at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test13@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test13@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test13@@7B@" =
-// CHECK-DAG: @"\01??_8D at Test13@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test13@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8C at Test13@@7B01@@" =
-// CHECK-DAG: @"\01??_8C at Test13@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8B at Test13@@7B@" =
+// CHECK-DAG: @"??_8E at Test13@@7BD at 1@@" =
+// CHECK-DAG: @"??_8E at Test13@@7BC at 1@D at 1@@" =
+// CHECK-DAG: @"??_8E at Test13@@7BB at 1@D at 1@@" =
+// CHECK-DAG: @"??_8E at Test13@@7BC at 1@@" =
+// CHECK-DAG: @"??_8E at Test13@@7BB at 1@@" =
+// CHECK-DAG: @"??_8D at Test13@@7B@" =
+// CHECK-DAG: @"??_8D at Test13@@7BC at 1@@" =
+// CHECK-DAG: @"??_8D at Test13@@7BB at 1@@" =
+// CHECK-DAG: @"??_8C at Test13@@7B01@@" =
+// CHECK-DAG: @"??_8C at Test13@@7BB at 1@@" =
+// CHECK-DAG: @"??_8B at Test13@@7B@" =
 }
 
 namespace Test14 {
@@ -245,15 +245,15 @@ struct D : virtual C { int d; };
 struct E : D, virtual C, virtual B { int e; };
 E e;
 
-// CHECK-DAG: @"\01??_8E at Test14@@7B@" =
-// CHECK-DAG: @"\01??_8E at Test14@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test14@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test14@@7B@" =
-// CHECK-DAG: @"\01??_8D at Test14@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test14@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8C at Test14@@7B01@@" =
-// CHECK-DAG: @"\01??_8C at Test14@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8B at Test14@@7B@" =
+// CHECK-DAG: @"??_8E at Test14@@7B@" =
+// CHECK-DAG: @"??_8E at Test14@@7BC at 1@@" =
+// CHECK-DAG: @"??_8E at Test14@@7BB at 1@@" =
+// CHECK-DAG: @"??_8D at Test14@@7B@" =
+// CHECK-DAG: @"??_8D at Test14@@7BC at 1@@" =
+// CHECK-DAG: @"??_8D at Test14@@7BB at 1@@" =
+// CHECK-DAG: @"??_8C at Test14@@7B01@@" =
+// CHECK-DAG: @"??_8C at Test14@@7BB at 1@@" =
+// CHECK-DAG: @"??_8B at Test14@@7B@" =
 }
 
 namespace Test15 {
@@ -264,14 +264,14 @@ struct D : virtual B { int d; };
 struct E : D, C, B { int e; };
 E e;
 
-// CHECK-DAG: @"\01??_8E at Test15@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test15@@7BB at 1@D at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test15@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test15@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8C at Test15@@7B@" =
-// CHECK-DAG: @"\01??_8D at Test15@@7B01@@" =
-// CHECK-DAG: @"\01??_8D at Test15@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8B at Test15@@7B@" =
+// CHECK-DAG: @"??_8E at Test15@@7BD at 1@@" =
+// CHECK-DAG: @"??_8E at Test15@@7BB at 1@D at 1@@" =
+// CHECK-DAG: @"??_8E at Test15@@7BC at 1@@" =
+// CHECK-DAG: @"??_8E at Test15@@7BB at 1@@" =
+// CHECK-DAG: @"??_8C at Test15@@7B@" =
+// CHECK-DAG: @"??_8D at Test15@@7B01@@" =
+// CHECK-DAG: @"??_8D at Test15@@7BB at 1@@" =
+// CHECK-DAG: @"??_8B at Test15@@7B@" =
 }
 
 namespace Test16 {
@@ -283,23 +283,23 @@ struct E : virtual D { int e; }; // ambi
 struct F : E, D, C, B { int f; };  // ambig
 F f;
 
-// CHECK-DAG: @"\01??_8F at Test16@@7BE at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test16@@7BD at 1@E at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test16@@7BC at 1@E at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test16@@7BB at 1@E at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test16@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test16@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test16@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test16@@7B01@@" =
-// CHECK-DAG: @"\01??_8E at Test16@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test16@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test16@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test16@@7B@" =
-// CHECK-DAG: @"\01??_8D at Test16@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test16@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8C at Test16@@7B01@@" =
-// CHECK-DAG: @"\01??_8C at Test16@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8B at Test16@@7B@" =
+// CHECK-DAG: @"??_8F at Test16@@7BE at 1@@" =
+// CHECK-DAG: @"??_8F at Test16@@7BD at 1@E at 1@@" =
+// CHECK-DAG: @"??_8F at Test16@@7BC at 1@E at 1@@" =
+// CHECK-DAG: @"??_8F at Test16@@7BB at 1@E at 1@@" =
+// CHECK-DAG: @"??_8F at Test16@@7BD at 1@@" =
+// CHECK-DAG: @"??_8F at Test16@@7BC at 1@@" =
+// CHECK-DAG: @"??_8F at Test16@@7BB at 1@@" =
+// CHECK-DAG: @"??_8E at Test16@@7B01@@" =
+// CHECK-DAG: @"??_8E at Test16@@7BD at 1@@" =
+// CHECK-DAG: @"??_8E at Test16@@7BC at 1@@" =
+// CHECK-DAG: @"??_8E at Test16@@7BB at 1@@" =
+// CHECK-DAG: @"??_8D at Test16@@7B@" =
+// CHECK-DAG: @"??_8D at Test16@@7BC at 1@@" =
+// CHECK-DAG: @"??_8D at Test16@@7BB at 1@@" =
+// CHECK-DAG: @"??_8C at Test16@@7B01@@" =
+// CHECK-DAG: @"??_8C at Test16@@7BB at 1@@" =
+// CHECK-DAG: @"??_8B at Test16@@7B@" =
 }
 
 namespace Test17 {
@@ -318,16 +318,16 @@ struct J : virtual I { int j; };
 struct K : virtual J { int k; }; // ambig
 K k;
 
-// CHECK-DAG: @"\01??_8K at Test17@@7B01@@" =
-// CHECK-DAG: @"\01??_8J at Test17@@7B@" =
-// CHECK-DAG: @"\01??_8I at Test17@@7B01@@" =
-// CHECK-DAG: @"\01??_8H at Test17@@7B@" =
-// CHECK-DAG: @"\01??_8G at Test17@@7B01@@" =
-// CHECK-DAG: @"\01??_8F at Test17@@7B@" =
-// CHECK-DAG: @"\01??_8E at Test17@@7B01@@" =
-// CHECK-DAG: @"\01??_8D at Test17@@7B@" =
-// CHECK-DAG: @"\01??_8C at Test17@@7B01@@" =
-// CHECK-DAG: @"\01??_8B at Test17@@7B@" =
+// CHECK-DAG: @"??_8K at Test17@@7B01@@" =
+// CHECK-DAG: @"??_8J at Test17@@7B@" =
+// CHECK-DAG: @"??_8I at Test17@@7B01@@" =
+// CHECK-DAG: @"??_8H at Test17@@7B@" =
+// CHECK-DAG: @"??_8G at Test17@@7B01@@" =
+// CHECK-DAG: @"??_8F at Test17@@7B@" =
+// CHECK-DAG: @"??_8E at Test17@@7B01@@" =
+// CHECK-DAG: @"??_8D at Test17@@7B@" =
+// CHECK-DAG: @"??_8C at Test17@@7B01@@" =
+// CHECK-DAG: @"??_8B at Test17@@7B@" =
 }
 
 namespace Test18 {
@@ -338,14 +338,14 @@ struct D : C, B { int d; };
 struct E : D, C, B { int e; };
 E e;
 
-// CHECK-DAG: @"\01??_8E at Test18@@7BC at 1@D at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test18@@7BB at 1@D at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test18@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test18@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8B at Test18@@7B@" =
-// CHECK-DAG: @"\01??_8C at Test18@@7B@" =
-// CHECK-DAG: @"\01??_8D at Test18@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test18@@7BB at 1@@" =
+// CHECK-DAG: @"??_8E at Test18@@7BC at 1@D at 1@@" =
+// CHECK-DAG: @"??_8E at Test18@@7BB at 1@D at 1@@" =
+// CHECK-DAG: @"??_8E at Test18@@7BC at 1@@" =
+// CHECK-DAG: @"??_8E at Test18@@7BB at 1@@" =
+// CHECK-DAG: @"??_8B at Test18@@7B@" =
+// CHECK-DAG: @"??_8C at Test18@@7B@" =
+// CHECK-DAG: @"??_8D at Test18@@7BC at 1@@" =
+// CHECK-DAG: @"??_8D at Test18@@7BB at 1@@" =
 }
 
 namespace Test19 {
@@ -356,16 +356,16 @@ struct D : virtual C, virtual B { int d;
 struct E : virtual D, virtual C, virtual B { int e; };
 E e;
 
-// CHECK-DAG: @"\01??_8E at Test19@@7B01@@" =
-// CHECK-DAG: @"\01??_8E at Test19@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test19@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test19@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test19@@7B@" =
-// CHECK-DAG: @"\01??_8D at Test19@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test19@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8C at Test19@@7B01@@" =
-// CHECK-DAG: @"\01??_8C at Test19@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8B at Test19@@7B@" =
+// CHECK-DAG: @"??_8E at Test19@@7B01@@" =
+// CHECK-DAG: @"??_8E at Test19@@7BD at 1@@" =
+// CHECK-DAG: @"??_8E at Test19@@7BC at 1@@" =
+// CHECK-DAG: @"??_8E at Test19@@7BB at 1@@" =
+// CHECK-DAG: @"??_8D at Test19@@7B@" =
+// CHECK-DAG: @"??_8D at Test19@@7BC at 1@@" =
+// CHECK-DAG: @"??_8D at Test19@@7BB at 1@@" =
+// CHECK-DAG: @"??_8C at Test19@@7B01@@" =
+// CHECK-DAG: @"??_8C at Test19@@7BB at 1@@" =
+// CHECK-DAG: @"??_8B at Test19@@7B@" =
 }
 
 namespace Test20 {
@@ -377,10 +377,10 @@ struct D : virtual B { int d; };
 struct E : C, D { int e; };
 E f;
 
-// CHECK-DAG: @"\01??_8E at Test20@@7BC at 1@@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 0, i32 20, i32 24]
-// CHECK-DAG: @"\01??_8E at Test20@@7BD at 1@@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 16]
-// CHECK-DAG: @"\01??_8D at Test20@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
-// CHECK-DAG: @"\01??_8C at Test20@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8E at Test20@@7BC at 1@@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 0, i32 20, i32 24]
+// CHECK-DAG: @"??_8E at Test20@@7BD at 1@@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 16]
+// CHECK-DAG: @"??_8D at Test20@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8C at Test20@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
 }
 
 namespace Test21 {
@@ -394,21 +394,21 @@ struct G : E { int g; };
 struct H : F, G { int h; };
 H h;
 
-// CHECK-DAG: @"\01??_8H at Test21@@7B@" =
-// CHECK-DAG: @"\01??_8H at Test21@@7BC at 1@F at 1@@" =
-// CHECK-DAG: @"\01??_8H at Test21@@7BD at 1@F at 1@@" =
-// CHECK-DAG: @"\01??_8H at Test21@@7BC at 1@G at 1@@" =
-// CHECK-DAG: @"\01??_8H at Test21@@7BD at 1@G at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test21@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test21@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test21@@7B@" =
-// CHECK-DAG: @"\01??_8F at Test21@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test21@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test21@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8E at Test21@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8D at Test21@@7B@" =
-// CHECK-DAG: @"\01??_8B at Test21@@7B@" =
-// CHECK-DAG: @"\01??_8C at Test21@@7B@" =
+// CHECK-DAG: @"??_8H at Test21@@7B@" =
+// CHECK-DAG: @"??_8H at Test21@@7BC at 1@F at 1@@" =
+// CHECK-DAG: @"??_8H at Test21@@7BD at 1@F at 1@@" =
+// CHECK-DAG: @"??_8H at Test21@@7BC at 1@G at 1@@" =
+// CHECK-DAG: @"??_8H at Test21@@7BD at 1@G at 1@@" =
+// CHECK-DAG: @"??_8G at Test21@@7BC at 1@@" =
+// CHECK-DAG: @"??_8G at Test21@@7BD at 1@@" =
+// CHECK-DAG: @"??_8F at Test21@@7B@" =
+// CHECK-DAG: @"??_8F at Test21@@7BC at 1@@" =
+// CHECK-DAG: @"??_8F at Test21@@7BD at 1@@" =
+// CHECK-DAG: @"??_8E at Test21@@7BC at 1@@" =
+// CHECK-DAG: @"??_8E at Test21@@7BD at 1@@" =
+// CHECK-DAG: @"??_8D at Test21@@7B@" =
+// CHECK-DAG: @"??_8B at Test21@@7B@" =
+// CHECK-DAG: @"??_8C at Test21@@7B@" =
 }
 
 namespace Test22 {
@@ -418,8 +418,8 @@ struct C { int c; };
 struct D : B, virtual C { int d; };
 D d;
 
-// CHECK-DAG: @"\01??_8D at Test22@@7B@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 0, i32 12, i32 16]
-// CHECK-DAG: @"\01??_8B at Test22@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8D at Test22@@7B@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 0, i32 12, i32 16]
+// CHECK-DAG: @"??_8B at Test22@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
 }
 
 namespace Test23 {
@@ -430,8 +430,8 @@ struct C { int c; };
 struct D : virtual C, B { int d; };
 D d;
 
-// CHECK-DAG: @"\01??_8D at Test23@@7B@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 0, i32 16, i32 12]
-// CHECK-DAG: @"\01??_8B at Test23@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8D at Test23@@7B@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 0, i32 16, i32 12]
+// CHECK-DAG: @"??_8B at Test23@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
 }
 
 namespace Test24 {
@@ -444,8 +444,8 @@ struct D : virtual C, B {
 };
 D d;
 
-// CHECK-DAG: @"\01??_8D at Test24@@7B@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 0, i32 16, i32 12]
-// CHECK-DAG: @"\01??_8B at Test24@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
+// CHECK-DAG: @"??_8D at Test24@@7B@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 0, i32 16, i32 12]
+// CHECK-DAG: @"??_8B at Test24@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 8]
 }
 
 namespace Test25 {
@@ -458,8 +458,8 @@ struct C { int c; };
 struct D : virtual C, B { int d; };
 D d;
 
-// CHECK-DAG: @"\01??_8D at Test25@@7B@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 -4, i32 16, i32 12]
-// CHECK-DAG: @"\01??_8B at Test25@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 -4, i32 8]
+// CHECK-DAG: @"??_8D at Test25@@7B@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 -4, i32 16, i32 12]
+// CHECK-DAG: @"??_8B at Test25@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 -4, i32 8]
 }
 
 namespace Test26 {
@@ -474,8 +474,8 @@ struct E : virtual B {
 struct F: virtual C, D, E { int f; };
 F f;
 // F reuses the D's vbptr, even though D is laid out after E.
-// CHECK-DAG: @"\01??_8F at Test26@@7BD at 1@@" = linkonce_odr unnamed_addr constant [4 x i32] [i32 0, i32 16, i32 12, i32 20]
-// CHECK-DAG: @"\01??_8F at Test26@@7BE at 1@@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 -4, i32 28]
+// CHECK-DAG: @"??_8F at Test26@@7BD at 1@@" = linkonce_odr unnamed_addr constant [4 x i32] [i32 0, i32 16, i32 12, i32 20]
+// CHECK-DAG: @"??_8F at Test26@@7BE at 1@@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 -4, i32 28]
 }
 
 namespace Test27 {
@@ -489,14 +489,14 @@ struct F : C, E {};
 struct G : F, D, C, B {};
 G x;
 
-// CHECK-DAG: @"\01??_8G at Test27@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test27@@7BB at 1@F at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test27@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test27@@7BC at 1@D at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test27@@7BC at 1@E at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test27@@7BC at 1@F at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test27@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8G at Test27@@7BF at 1@@" =
+// CHECK-DAG: @"??_8G at Test27@@7BB at 1@@" =
+// CHECK-DAG: @"??_8G at Test27@@7BB at 1@F at 1@@" =
+// CHECK-DAG: @"??_8G at Test27@@7BC at 1@@" =
+// CHECK-DAG: @"??_8G at Test27@@7BC at 1@D at 1@@" =
+// CHECK-DAG: @"??_8G at Test27@@7BC at 1@E at 1@@" =
+// CHECK-DAG: @"??_8G at Test27@@7BC at 1@F at 1@@" =
+// CHECK-DAG: @"??_8G at Test27@@7BD at 1@@" =
+// CHECK-DAG: @"??_8G at Test27@@7BF at 1@@" =
 }
 
 namespace Test28 {
@@ -509,14 +509,14 @@ struct E : C, D {};
 struct F : virtual E, virtual D, virtual C {};
 F x;
 
-// CHECK-DAG: @"\01??_8F at Test28@@7B01@@" =
-// CHECK-DAG: @"\01??_8F at Test28@@7BB at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test28@@7BC at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test28@@7BC at 1@D at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test28@@7BC at 1@D at 1@E at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test28@@7BC at 1@E at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test28@@7BD at 1@@" =
-// CHECK-DAG: @"\01??_8F at Test28@@7BE at 1@@" =
+// CHECK-DAG: @"??_8F at Test28@@7B01@@" =
+// CHECK-DAG: @"??_8F at Test28@@7BB at 1@@" =
+// CHECK-DAG: @"??_8F at Test28@@7BC at 1@@" =
+// CHECK-DAG: @"??_8F at Test28@@7BC at 1@D at 1@@" =
+// CHECK-DAG: @"??_8F at Test28@@7BC at 1@D at 1@E at 1@@" =
+// CHECK-DAG: @"??_8F at Test28@@7BC at 1@E at 1@@" =
+// CHECK-DAG: @"??_8F at Test28@@7BD at 1@@" =
+// CHECK-DAG: @"??_8F at Test28@@7BE at 1@@" =
 }
 
 namespace Test29 {
@@ -526,7 +526,7 @@ struct C : virtual B {};
 struct D : C {};
 D d;
 
-// CHECK-DAG: @"\01??_8D at Test29@@7BB at 1@@" = linkonce_odr unnamed_addr constant [2 x i32] zeroinitializer
+// CHECK-DAG: @"??_8D at Test29@@7BB at 1@@" = linkonce_odr unnamed_addr constant [2 x i32] zeroinitializer
 }
 
 namespace Test30 {
@@ -537,5 +537,5 @@ template <class> struct B : virtual A {
 
 extern template class B<int>;
 template B<int>::B();
-// CHECK-DAG: @"\01??_8?$B at H@Test30@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 4], comdat
+// CHECK-DAG: @"??_8?$B at H@Test30@@7B@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 0, i32 4], comdat
 }

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-vftables.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-vftables.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-vftables.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-vftables.cpp Fri Mar 16 13:36:49 2018
@@ -1,45 +1,45 @@
 // RUN: %clang_cc1 %s -fno-rtti -triple=i386-pc-win32 -fms-extensions -emit-llvm -o - -O1 -disable-llvm-passes | FileCheck %s -check-prefix=NO-RTTI
 // RUN: %clang_cc1 %s -triple=i386-pc-win32 -fms-extensions -emit-llvm -o - -O1 -disable-llvm-passes | FileCheck %s -check-prefix=RTTI
 
-// RTTI-DAG: $"\01??_7S@@6B@" = comdat largest
-// RTTI-DAG: $"\01??_7V@@6B@" = comdat largest
+// RTTI-DAG: $"??_7S@@6B@" = comdat largest
+// RTTI-DAG: $"??_7V@@6B@" = comdat largest
 
 struct S {
   virtual ~S();
 } s;
 
-// RTTI-DAG: [[VTABLE_S:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast ({{.*}} @"\01??_R4S@@6B@" to i8*), i8* bitcast ({{.*}} @"\01??_GS@@UAEPAXI at Z" to i8*)] }, comdat($"\01??_7S@@6B@")
-// RTTI-DAG: @"\01??_7S@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VTABLE_S]], i32 0, i32 0, i32 1)
+// RTTI-DAG: [[VTABLE_S:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast ({{.*}} @"??_R4S@@6B@" to i8*), i8* bitcast ({{.*}} @"??_GS@@UAEPAXI at Z" to i8*)] }, comdat($"??_7S@@6B@")
+// RTTI-DAG: @"??_7S@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VTABLE_S]], i32 0, i32 0, i32 1)
 
-// NO-RTTI-DAG: @"\01??_7S@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast ({{.*}} @"\01??_GS@@UAEPAXI at Z" to i8*)] }
+// NO-RTTI-DAG: @"??_7S@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast ({{.*}} @"??_GS@@UAEPAXI at Z" to i8*)] }
 
 struct __declspec(dllimport) U {
   virtual ~U();
 } u;
 
-// RTTI-DAG: [[VTABLE_U:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast ({{.*}} @"\01??_R4U@@6B@" to i8*), i8* bitcast ({{.*}} @"\01??_GU@@UAEPAXI at Z" to i8*)] }
-// RTTI-DAG: @"\01??_SU@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VTABLE_U]], i32 0, i32 0, i32 1)
+// RTTI-DAG: [[VTABLE_U:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast ({{.*}} @"??_R4U@@6B@" to i8*), i8* bitcast ({{.*}} @"??_GU@@UAEPAXI at Z" to i8*)] }
+// RTTI-DAG: @"??_SU@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VTABLE_U]], i32 0, i32 0, i32 1)
 
-// NO-RTTI-DAG: @"\01??_SU@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast ({{.*}} @"\01??_GU@@UAEPAXI at Z" to i8*)] }
+// NO-RTTI-DAG: @"??_SU@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast ({{.*}} @"??_GU@@UAEPAXI at Z" to i8*)] }
 
 struct __declspec(dllexport) V {
   virtual ~V();
 } v;
 
-// RTTI-DAG: [[VTABLE_V:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast ({{.*}} @"\01??_R4V@@6B@" to i8*), i8* bitcast ({{.*}} @"\01??_GV@@UAEPAXI at Z" to i8*)] }, comdat($"\01??_7V@@6B@")
-// RTTI-DAG: @"\01??_7V@@6B@" = dllexport unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VTABLE_V]], i32 0, i32 0, i32 1)
+// RTTI-DAG: [[VTABLE_V:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast ({{.*}} @"??_R4V@@6B@" to i8*), i8* bitcast ({{.*}} @"??_GV@@UAEPAXI at Z" to i8*)] }, comdat($"??_7V@@6B@")
+// RTTI-DAG: @"??_7V@@6B@" = dllexport unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VTABLE_V]], i32 0, i32 0, i32 1)
 
-// NO-RTTI-DAG: @"\01??_7V@@6B@" = weak_odr dllexport unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast ({{.*}} @"\01??_GV@@UAEPAXI at Z" to i8*)] }
+// NO-RTTI-DAG: @"??_7V@@6B@" = weak_odr dllexport unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast ({{.*}} @"??_GV@@UAEPAXI at Z" to i8*)] }
 
 namespace {
 struct W {
   virtual ~W() {}
 } w;
 }
-// RTTI-DAG: [[VTABLE_W:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast ({{.*}} @"\01??_R4W@?A@@6B@" to i8*), i8* bitcast ({{.*}} @"\01??_GW@?A@@UAEPAXI at Z" to i8*)] }
-// RTTI-DAG: @"\01??_7W@?A@@6B@" = internal unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VTABLE_W]], i32 0, i32 0, i32 1)
+// RTTI-DAG: [[VTABLE_W:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast ({{.*}} @"??_R4W@?A@@6B@" to i8*), i8* bitcast ({{.*}} @"??_GW@?A@@UAEPAXI at Z" to i8*)] }
+// RTTI-DAG: @"??_7W@?A@@6B@" = internal unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VTABLE_W]], i32 0, i32 0, i32 1)
 
-// NO-RTTI-DAG: @"\01??_7W@?A@@6B@" = internal unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast ({{.*}} @"\01??_GW@?A@@UAEPAXI at Z" to i8*)] }
+// NO-RTTI-DAG: @"??_7W@?A@@6B@" = internal unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast ({{.*}} @"??_GW@?A@@UAEPAXI at Z" to i8*)] }
 
 struct X {};
 template <class> struct Y : virtual X {
@@ -49,7 +49,7 @@ template <class> struct Y : virtual X {
 
 extern template class Y<int>;
 template Y<int>::Y();
-// RTTI-DAG: [[VTABLE_Y:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4?$Y at H@@6B@" to i8*), i8* bitcast (i8* (%struct.Y*, i32)* @"\01??_G?$Y at H@@UAEPAXI at Z" to i8*)] }, comdat($"\01??_7?$Y at H@@6B@")
-// RTTI-DAG: @"\01??_7?$Y at H@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VTABLE_Y]], i32 0, i32 0, i32 1)
+// RTTI-DAG: [[VTABLE_Y:@.*]] = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"??_R4?$Y at H@@6B@" to i8*), i8* bitcast (i8* (%struct.Y*, i32)* @"??_G?$Y at H@@UAEPAXI at Z" to i8*)] }, comdat($"??_7?$Y at H@@6B@")
+// RTTI-DAG: @"??_7?$Y at H@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* [[VTABLE_Y]], i32 0, i32 0, i32 1)
 
-// NO-RTTI-DAG: @"\01??_7?$Y at H@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast (i8* (%struct.Y*, i32)* @"\01??_G?$Y at H@@UAEPAXI at Z" to i8*)] }, comdat
+// NO-RTTI-DAG: @"??_7?$Y at H@@6B@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast (i8* (%struct.Y*, i32)* @"??_G?$Y at H@@UAEPAXI at Z" to i8*)] }, comdat

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-inheritance-vtordisps.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-inheritance-vtordisps.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-inheritance-vtordisps.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-inheritance-vtordisps.cpp Fri Mar 16 13:36:49 2018
@@ -23,7 +23,7 @@ struct D : virtual C {
 
 D::D() {}  // Forces vftable emission.
 
-// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"\01?f at D@@$4PPPPPPPM at A@AEXXZ"
+// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"?f at D@@$4PPPPPPPM at A@AEXXZ"
 // Note that the vtordisp is applied before really adjusting to D*.
 // CHECK: %[[COERCE_LOAD:.*]] = load %struct.D*, %struct.D** %{{.*}}
 // CHECK: %[[ECX:.*]] = load %struct.D*, %struct.D** %{{.*}}
@@ -33,10 +33,10 @@ D::D() {}  // Forces vftable emission.
 // CHECK: %[[VTORDISP:.*]] = load i32, i32* %[[VTORDISP_PTR]]
 // CHECK: %[[VTORDISP_NEG:.*]] = sub i32 0, %[[VTORDISP]]
 // CHECK: %[[ADJUSTED_i8:.*]] = getelementptr i8, i8* %[[ECX_i8]], i32 %[[VTORDISP_NEG]]
-// CHECK: call x86_thiscallcc void @"\01?f at D@@UAEXXZ"(i8* %[[ADJUSTED_i8]])
+// CHECK: call x86_thiscallcc void @"?f at D@@UAEXXZ"(i8* %[[ADJUSTED_i8]])
 // CHECK: ret void
 
-// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"\01?f at D@@$4PPPPPPPI at 3AEXXZ"
+// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"?f at D@@$4PPPPPPPI at 3AEXXZ"
 // CHECK: %[[COERCE_LOAD:.*]] = load %struct.D*, %struct.D** %{{.*}}
 // CHECK: %[[ECX:.*]] = load %struct.D*, %struct.D** %{{.*}}
 // CHECK: %[[ECX_i8:.*]] = bitcast %struct.D* %[[ECX]] to i8*
@@ -46,7 +46,7 @@ D::D() {}  // Forces vftable emission.
 // CHECK: %[[VTORDISP_NEG:.*]] = sub i32 0, %[[VTORDISP]]
 // CHECK: %[[VTORDISP_ADJUSTED_i8:.*]] = getelementptr i8, i8* %[[ECX_i8]], i32 %[[VTORDISP_NEG]]
 // CHECK: %[[ADJUSTED_i8:.*]] = getelementptr i8, i8* %[[VTORDISP_ADJUSTED_i8]], i32 -4
-// CHECK: call x86_thiscallcc void @"\01?f at D@@UAEXXZ"(i8* %[[ADJUSTED_i8]])
+// CHECK: call x86_thiscallcc void @"?f at D@@UAEXXZ"(i8* %[[ADJUSTED_i8]])
 // CHECK: ret void
 
 struct E : virtual A {
@@ -66,7 +66,7 @@ struct G : virtual F, virtual E {
 
 G::G() {}  // Forces vftable emission.
 
-// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"\01?f at E@@$R4BA at M@PPPPPPPM at 7AEXXZ"(i8*
+// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"?f at E@@$R4BA at M@PPPPPPPM at 7AEXXZ"(i8*
 // CHECK: %[[COERCE_LOAD:.*]] = load %struct.E*, %struct.E** %{{.*}}
 // CHECK: %[[ECX:.*]] = load %struct.E*, %struct.E** %{{.*}}
 // CHECK: %[[ECX_i8:.*]] = bitcast %struct.E* %[[ECX]] to i8*
@@ -82,5 +82,5 @@ G::G() {}  // Forces vftable emission.
 // CHECK: %[[VBASE_OFFSET:.*]] = load i32, i32* %[[VBOFFSET_PTR]]
 // CHECK: %[[VBASE:.*]] = getelementptr inbounds i8, i8* %[[VBPTR_i8]], i32 %[[VBASE_OFFSET]]
 // CHECK: %[[ARG_i8:.*]] = getelementptr i8, i8* %[[VBASE]], i32 8
-// CHECK: call x86_thiscallcc void @"\01?f at E@@UAEXXZ"(i8* %[[ARG_i8]])
+// CHECK: call x86_thiscallcc void @"?f at E@@UAEXXZ"(i8* %[[ARG_i8]])
 // CHECK: ret void

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp Fri Mar 16 13:36:49 2018
@@ -20,7 +20,7 @@ struct B : virtual VBase {
 };
 
 B::B() {
-  // CHECK-LABEL: define dso_local x86_thiscallcc %struct.B* @"\01??0B@@QAE at XZ"
+  // CHECK-LABEL: define dso_local x86_thiscallcc %struct.B* @"??0B@@QAE at XZ"
   // CHECK:   %[[THIS:.*]] = load %struct.B*, %struct.B**
   // CHECK:   br i1 %{{.*}}, label %[[INIT_VBASES:.*]], label %[[SKIP_VBASES:.*]]
 
@@ -33,7 +33,7 @@ B::B() {
   // CHECK:   %[[THIS_i8:.*]] = bitcast %struct.B* %[[THIS]] to i8*
   // CHECK:   %[[VFPTR_i8:.*]] = getelementptr inbounds i8, i8* %[[THIS_i8]], i32 %{{.*}}
   // CHECK:   %[[VFPTR:.*]] = bitcast i8* %[[VFPTR_i8]] to i32 (...)***
-  // CHECK:   store i32 (...)** bitcast ({ [3 x i8*] }* @"\01??_7B@@6B@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
+  // CHECK:   store i32 (...)** bitcast ({ [3 x i8*] }* @"??_7B@@6B@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
 
   // Initialize vtorDisp:
   // CHECK:   %[[THIS_i8:.*]] = bitcast %struct.B* %[[THIS]] to i8*
@@ -51,7 +51,7 @@ B::B() {
 }
 
 B::~B() {
-  // CHECK-LABEL: define dso_local x86_thiscallcc void @"\01??1B@@UAE at XZ"
+  // CHECK-LABEL: define dso_local x86_thiscallcc void @"??1B@@UAE at XZ"
   // Store initial this:
   // CHECK:   %[[THIS_ADDR:.*]] = alloca %struct.B*
   // CHECK:   store %struct.B* %{{.*}}, %struct.B** %[[THIS_ADDR]], align 4
@@ -68,7 +68,7 @@ B::~B() {
   // CHECK:   %[[THIS_i8:.*]] = bitcast %struct.B* %[[THIS]] to i8*
   // CHECK:   %[[VFPTR_i8:.*]] = getelementptr inbounds i8, i8* %[[THIS_i8]], i32 %{{.*}}
   // CHECK:   %[[VFPTR:.*]] = bitcast i8* %[[VFPTR_i8]] to i32 (...)***
-  // CHECK:   store i32 (...)** bitcast ({ [3 x i8*] }* @"\01??_7B@@6B@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
+  // CHECK:   store i32 (...)** bitcast ({ [3 x i8*] }* @"??_7B@@6B@" to i32 (...)**), i32 (...)*** %[[VFPTR]]
 
   // Initialize vtorDisp:
   // CHECK:   %[[THIS_i8:.*]] = bitcast %struct.B* %[[THIS]] to i8*
@@ -86,31 +86,31 @@ B::~B() {
 
   // CHECK: ret
 
-  // CHECK2-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"\01??_DB@@QAEXXZ"(%struct.B*
+  // CHECK2-LABEL: define linkonce_odr dso_local x86_thiscallcc void @"??_DB@@QAEXXZ"(%struct.B*
   // CHECK2: %[[THIS:.*]] = load %struct.B*, %struct.B** {{.*}}
   // CHECK2: %[[THIS_i8:.*]] = bitcast %struct.B* %[[THIS]] to i8*
   // CHECK2: %[[B_i8:.*]] = getelementptr i8, i8* %[[THIS_i8]], i32 8
   // CHECK2: %[[B:.*]] = bitcast i8* %[[B_i8]] to %struct.B*
-  // CHECK2: call x86_thiscallcc void @"\01??1B@@UAE at XZ"(%struct.B* %[[B]])
+  // CHECK2: call x86_thiscallcc void @"??1B@@UAE at XZ"(%struct.B* %[[B]])
   // CHECK2: %[[THIS_i8:.*]] = bitcast %struct.B* %[[THIS]] to i8*
   // CHECK2: %[[VBASE_i8:.*]] = getelementptr inbounds i8, i8* %[[THIS_i8]], i32 8
   // CHECK2: %[[VBASE:.*]] = bitcast i8* %[[VBASE_i8]] to %struct.VBase*
-  // CHECK2: call x86_thiscallcc void @"\01??1VBase@@UAE at XZ"(%struct.VBase* %[[VBASE]])
+  // CHECK2: call x86_thiscallcc void @"??1VBase@@UAE at XZ"(%struct.VBase* %[[VBASE]])
   // CHECK2: ret
 
-  // CHECK2-LABEL: define linkonce_odr dso_local x86_thiscallcc i8* @"\01??_GB@@UAEPAXI at Z"
+  // CHECK2-LABEL: define linkonce_odr dso_local x86_thiscallcc i8* @"??_GB@@UAEPAXI at Z"
   // CHECK2:   store %struct.B* %{{.*}}, %struct.B** %[[THIS_ADDR:.*]], align 4
   // CHECK2:   %[[THIS:.*]] = load %struct.B*, %struct.B** %[[THIS_ADDR]]
   // CHECK2:   %[[THIS_PARAM_i8:.*]] = bitcast %struct.B* %[[THIS]] to i8*
   // CHECK2:   %[[THIS_i8:.*]] = getelementptr inbounds i8, i8* %[[THIS_PARAM_i8:.*]], i32 -8
   // CHECK2:   %[[THIS:.*]] = bitcast i8* %[[THIS_i8]] to %struct.B*
-  // CHECK2:   call x86_thiscallcc void @"\01??_DB@@QAEXXZ"(%struct.B* %[[THIS]])
+  // CHECK2:   call x86_thiscallcc void @"??_DB@@QAEXXZ"(%struct.B* %[[THIS]])
   // ...
   // CHECK2: ret
 }
 
 void B::foo() {
-// CHECK-LABEL: define dso_local x86_thiscallcc void @"\01?foo at B@@UAEXXZ"(i8*
+// CHECK-LABEL: define dso_local x86_thiscallcc void @"?foo at B@@UAEXXZ"(i8*
 //
 // B::foo gets 'this' cast to VBase* in ECX (i.e. this+8) so we
 // need to adjust 'this' before use.
@@ -149,7 +149,7 @@ void B::foo() {
 }
 
 void call_vbase_bar(B *obj) {
-// CHECK-LABEL: define dso_local void @"\01?call_vbase_bar@@YAXPAUB@@@Z"(%struct.B* %obj)
+// CHECK-LABEL: define dso_local void @"?call_vbase_bar@@YAXPAUB@@@Z"(%struct.B* %obj)
 // CHECK: %[[OBJ:.*]] = load %struct.B
 
   obj->bar();
@@ -184,7 +184,7 @@ void call_vbase_bar(B *obj) {
 }
 
 void delete_B(B *obj) {
-// CHECK-LABEL: define dso_local void @"\01?delete_B@@YAXPAUB@@@Z"(%struct.B* %obj)
+// CHECK-LABEL: define dso_local void @"?delete_B@@YAXPAUB@@@Z"(%struct.B* %obj)
 // CHECK: %[[OBJ:.*]] = load %struct.B
 
   delete obj;
@@ -216,11 +216,11 @@ void delete_B(B *obj) {
 }
 
 void call_complete_dtor() {
-  // CHECK-LABEL: define dso_local void @"\01?call_complete_dtor@@YAXXZ"
+  // CHECK-LABEL: define dso_local void @"?call_complete_dtor@@YAXXZ"
   B b;
-  // CHECK: call x86_thiscallcc %struct.B* @"\01??0B@@QAE at XZ"(%struct.B* %[[B:.*]], i32 1)
+  // CHECK: call x86_thiscallcc %struct.B* @"??0B@@QAE at XZ"(%struct.B* %[[B:.*]], i32 1)
   // CHECK-NOT: getelementptr
-  // CHECK: call x86_thiscallcc void @"\01??_DB@@QAEXXZ"(%struct.B* %[[B]])
+  // CHECK: call x86_thiscallcc void @"??_DB@@QAEXXZ"(%struct.B* %[[B]])
   // CHECK: ret
 }
 
@@ -231,7 +231,7 @@ struct C : B {
 
 // Used to crash on an assertion.
 C::C() {
-// CHECK-LABEL: define dso_local x86_thiscallcc %struct.C* @"\01??0C@@QAE at XZ"
+// CHECK-LABEL: define dso_local x86_thiscallcc %struct.C* @"??0C@@QAE at XZ"
 }
 
 namespace multiple_vbases {
@@ -255,11 +255,11 @@ struct D : virtual A, virtual B, virtual
 };
 
 D::D() {
-  // CHECK-LABEL: define dso_local x86_thiscallcc %"struct.multiple_vbases::D"* @"\01??0D at multiple_vbases@@QAE at XZ"
+  // CHECK-LABEL: define dso_local x86_thiscallcc %"struct.multiple_vbases::D"* @"??0D at multiple_vbases@@QAE at XZ"
   // Just make sure we emit 3 vtordisps after initializing vfptrs.
-  // CHECK: store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7D at multiple_vbases@@6BA at 1@@" to i32 (...)**), i32 (...)*** %{{.*}}
-  // CHECK: store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7D at multiple_vbases@@6BB at 1@@" to i32 (...)**), i32 (...)*** %{{.*}}
-  // CHECK: store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7D at multiple_vbases@@6BC at 1@@" to i32 (...)**), i32 (...)*** %{{.*}}
+  // CHECK: store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7D at multiple_vbases@@6BA at 1@@" to i32 (...)**), i32 (...)*** %{{.*}}
+  // CHECK: store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7D at multiple_vbases@@6BB at 1@@" to i32 (...)**), i32 (...)*** %{{.*}}
+  // CHECK: store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7D at multiple_vbases@@6BC at 1@@" to i32 (...)**), i32 (...)*** %{{.*}}
   // ...
   // CHECK: store i32 %{{.*}}, i32* %{{.*}}
   // CHECK: store i32 %{{.*}}, i32* %{{.*}}
@@ -295,7 +295,7 @@ struct D : virtual Z, B, C {
 } d;
 
 D::~D() {
-  // CHECK-LABEL: define dso_local x86_thiscallcc void @"\01??1D at diamond@@UAE at XZ"(%"struct.diamond::D"*{{.*}})
+  // CHECK-LABEL: define dso_local x86_thiscallcc void @"??1D at diamond@@UAE at XZ"(%"struct.diamond::D"*{{.*}})
   // Store initial this:
   // CHECK: %[[THIS_ADDR:.*]] = alloca %"struct.diamond::D"*
   // CHECK: store %"struct.diamond::D"* %{{.*}}, %"struct.diamond::D"** %[[THIS_ADDR]], align 4
@@ -313,13 +313,13 @@ D::~D() {
   // CHECK: %[[ARG_i8:.*]] = getelementptr i8, i8* %{{.*}}, i32 16
   // FIXME: We might consider changing the dtor this parameter type to i8*.
   // CHECK: %[[ARG:.*]] = bitcast i8* %[[ARG_i8]] to %"struct.diamond::C"*
-  // CHECK: call x86_thiscallcc void @"\01??1C at diamond@@UAE at XZ"(%"struct.diamond::C"* %[[ARG]])
+  // CHECK: call x86_thiscallcc void @"??1C at diamond@@UAE at XZ"(%"struct.diamond::C"* %[[ARG]])
 
   // CHECK: %[[B:.*]] = bitcast %"struct.diamond::D"* %[[THIS]] to %"struct.diamond::B"*
   // CHECK: %[[B_i8:.*]] = bitcast %"struct.diamond::B"* %[[B]] to i8*
   // CHECK: %[[ARG_i8:.*]] = getelementptr i8, i8* %[[B_i8]], i32 4
   // CHECK: %[[ARG:.*]] = bitcast i8* %[[ARG_i8]] to %"struct.diamond::B"*
-  // CHECK: call x86_thiscallcc void @"\01??1B at diamond@@UAE at XZ"(%"struct.diamond::B"* %[[ARG]])
+  // CHECK: call x86_thiscallcc void @"??1B at diamond@@UAE at XZ"(%"struct.diamond::B"* %[[ARG]])
   // CHECK: ret void
 }
 
@@ -334,20 +334,20 @@ struct C : B, A { C() {} };
 // call to B() from C().
 void callC() { C x; }
 
-// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc %"struct.test2::C"* @"\01??0C at test2@@QAE at XZ"
+// CHECK-LABEL: define linkonce_odr dso_local x86_thiscallcc %"struct.test2::C"* @"??0C at test2@@QAE at XZ"
 // CHECK:           (%"struct.test2::C"* returned %this, i32 %is_most_derived)
 // CHECK: br i1
 //   Virtual bases
-// CHECK: call x86_thiscallcc %"struct.test2::A"* @"\01??0A at test2@@QAE at XZ"(%"struct.test2::A"* %{{.*}})
+// CHECK: call x86_thiscallcc %"struct.test2::A"* @"??0A at test2@@QAE at XZ"(%"struct.test2::A"* %{{.*}})
 // CHECK: br label
 //   Non-virtual bases
-// CHECK: call x86_thiscallcc %"struct.test2::B"* @"\01??0B at test2@@QAE at XZ"(%"struct.test2::B"* %{{.*}}, i32 0)
-// CHECK: call x86_thiscallcc %"struct.test2::A"* @"\01??0A at test2@@QAE at XZ"(%"struct.test2::A"* %{{.*}})
+// CHECK: call x86_thiscallcc %"struct.test2::B"* @"??0B at test2@@QAE at XZ"(%"struct.test2::B"* %{{.*}}, i32 0)
+// CHECK: call x86_thiscallcc %"struct.test2::A"* @"??0A at test2@@QAE at XZ"(%"struct.test2::A"* %{{.*}})
 // CHECK: ret
 
-// CHECK2-LABEL: define linkonce_odr dso_local x86_thiscallcc %"struct.test2::B"* @"\01??0B at test2@@QAE at XZ"
+// CHECK2-LABEL: define linkonce_odr dso_local x86_thiscallcc %"struct.test2::B"* @"??0B at test2@@QAE at XZ"
 // CHECK2:           (%"struct.test2::B"* returned %this, i32 %is_most_derived)
-// CHECK2: call x86_thiscallcc %"struct.test2::A"* @"\01??0A at test2@@QAE at XZ"(%"struct.test2::A"* %{{.*}})
+// CHECK2: call x86_thiscallcc %"struct.test2::A"* @"??0A at test2@@QAE at XZ"(%"struct.test2::A"* %{{.*}})
 // CHECK2: ret
 
 }
@@ -374,7 +374,7 @@ struct D : B, C {
 };
 
 void D::bar() {
-  // CHECK-LABEL: define dso_local x86_thiscallcc void @"\01?bar at D@test3@@UAEXXZ"(%"struct.test3::D"* %this)
+  // CHECK-LABEL: define dso_local x86_thiscallcc void @"?bar at D@test3@@UAEXXZ"(%"struct.test3::D"* %this)
 
   C::foo();
   // Shouldn't need any vbtable lookups.  All we have to do is adjust to C*,
@@ -385,7 +385,7 @@ void D::bar() {
   // CHECK: %[[C:.*]] = bitcast i8* %[[C_i8]] to %"struct.test3::C"*
   // CHECK: %[[C_i8:.*]] = bitcast %"struct.test3::C"* %[[C]] to i8*
   // CHECK: %[[ARG:.*]] = getelementptr i8, i8* %[[C_i8]], i32 4
-  // CHECK: call x86_thiscallcc void @"\01?foo at C@test3@@UAEXXZ"(i8* %[[ARG]])
+  // CHECK: call x86_thiscallcc void @"?foo at C@test3@@UAEXXZ"(i8* %[[ARG]])
   // CHECK: ret
 }
 }
@@ -408,20 +408,20 @@ struct C : virtual A, B {
 void foo(void*);
 
 C::~C() {
-  // CHECK-LABEL: define dso_local x86_thiscallcc void @"\01??1C at test4@@UAE at XZ"(%"struct.test4::C"* %this)
+  // CHECK-LABEL: define dso_local x86_thiscallcc void @"??1C at test4@@UAE at XZ"(%"struct.test4::C"* %this)
 
   // In this case "this" points to the most derived class, so no GEPs needed.
   // CHECK-NOT: getelementptr
   // CHECK-NOT: bitcast
   // CHECK: %[[VFPTR_i8:.*]] = bitcast %"struct.test4::C"* %{{.*}} to i32 (...)***
-  // CHECK: store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7C at test4@@6BB at 1@@" to i32 (...)**), i32 (...)*** %[[VFPTR_i8]]
+  // CHECK: store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7C at test4@@6BB at 1@@" to i32 (...)**), i32 (...)*** %[[VFPTR_i8]]
 
   foo(this);
   // CHECK: ret
 }
 
 void destroy(C *obj) {
-  // CHECK-LABEL: define dso_local void @"\01?destroy at test4@@YAXPAUC at 1@@Z"(%"struct.test4::C"* %obj)
+  // CHECK-LABEL: define dso_local void @"?destroy at test4@@YAXPAUC at 1@@Z"(%"struct.test4::C"* %obj)
 
   delete obj;
   // CHECK: %[[VPTR:.*]] = bitcast %"struct.test4::C"* %[[OBJ:.*]] to i8* (%"struct.test4::C"*, i32)***
@@ -443,18 +443,18 @@ struct E : D, B, virtual A {
 };
 
 E::~E() {
-  // CHECK-LABEL: define dso_local x86_thiscallcc void @"\01??1E at test4@@UAE at XZ"(%"struct.test4::E"* %this)
+  // CHECK-LABEL: define dso_local x86_thiscallcc void @"??1E at test4@@UAE at XZ"(%"struct.test4::E"* %this)
 
   // In this case "this" points to the most derived class, so no GEPs needed.
   // CHECK-NOT: getelementptr
   // CHECK-NOT: bitcast
   // CHECK: %[[VFPTR_i8:.*]] = bitcast %"struct.test4::E"* %{{.*}} to i32 (...)***
-  // CHECK: store i32 (...)** bitcast ({ [1 x i8*] }* @"\01??_7E at test4@@6BD at 1@@" to i32 (...)**), i32 (...)*** %[[VFPTR_i8]]
+  // CHECK: store i32 (...)** bitcast ({ [1 x i8*] }* @"??_7E at test4@@6BD at 1@@" to i32 (...)**), i32 (...)*** %[[VFPTR_i8]]
   foo(this);
 }
 
 void destroy(E *obj) {
-  // CHECK-LABEL: define dso_local void @"\01?destroy at test4@@YAXPAUE at 1@@Z"(%"struct.test4::E"* %obj)
+  // CHECK-LABEL: define dso_local void @"?destroy at test4@@YAXPAUE at 1@@Z"(%"struct.test4::E"* %obj)
 
   // CHECK-NOT: getelementptr
   // CHECK: %[[OBJ_i8:.*]] = bitcast %"struct.test4::E"* %[[OBJ]] to i8*
@@ -488,7 +488,7 @@ struct C : B {
 };
 
 C::C() : B() {}
-// CHECK-LABEL: define dso_local x86_thiscallcc %"struct.test5::C"* @"\01??0C at test5@@QAE at XZ"(
+// CHECK-LABEL: define dso_local x86_thiscallcc %"struct.test5::C"* @"??0C at test5@@QAE at XZ"(
 // CHECK:   %[[THIS:.*]] = load %"struct.test5::C"*, %"struct.test5::C"**
 // CHECK:   br i1 %{{.*}}, label %[[INIT_VBASES:.*]], label %[[SKIP_VBASES:.*]]
 
@@ -512,9 +512,9 @@ struct C final : A, B {
 void callit(C *p) {
   static_cast<B*>(p)->g();
 }
-// CHECK-LABEL: define dso_local void @"\01?callit at pr27621@@YAXPAUC at 1@@Z"(%"struct.pr27621::C"* %{{.*}})
+// CHECK-LABEL: define dso_local void @"?callit at pr27621@@YAXPAUC at 1@@Z"(%"struct.pr27621::C"* %{{.*}})
 // CHECK: %[[B_i8:.*]] = getelementptr i8, i8* %{{.*}}, i32 4
-// CHECK: call x86_thiscallcc void @"\01?g at C@pr27621@@UAEXXZ"(i8* %[[B_i8]])
+// CHECK: call x86_thiscallcc void @"?g at C@pr27621@@UAEXXZ"(i8* %[[B_i8]])
 }
 
 namespace test6 {
@@ -528,7 +528,7 @@ class D : C {
   D();
 };
 D::D() : C() {}
-// CHECK-LABEL: define dso_local x86_thiscallcc %"class.test6::D"* @"\01??0D at test6@@AAE at XZ"(
+// CHECK-LABEL: define dso_local x86_thiscallcc %"class.test6::D"* @"??0D at test6@@AAE at XZ"(
 // CHECK:   %[[THIS:.*]] = load %"class.test6::D"*, %"class.test6::D"**
 // CHECK:   br i1 %{{.*}}, label %[[INIT_VBASES:.*]], label %[[SKIP_VBASES:.*]]
 

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp?rev=327738&r1=327737&r2=327738&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp Fri Mar 16 13:36:49 2018
@@ -53,24 +53,24 @@ void f() {
   auto ptr7 = &C::plugh;
 
 
-// CHECK32-LABEL: define dso_local void @"\01?f@@YAXXZ"()
-// CHECK32: store i8* bitcast (void (%struct.C*, ...)* @"\01??_9C@@$BA at AE" to i8*), i8** %ptr
-// CHECK32: store i8* bitcast (void (%struct.C*, ...)* @"\01??_9C@@$B3AE" to i8*), i8** %ptr2
-// CHECK32: store i8* bitcast (void (%struct.C*, ...)* @"\01??_9C@@$B7AE" to i8*), i8** %ptr3
-// CHECK32: store i8* bitcast (void (%"struct.(anonymous namespace)::D"*, ...)* @"\01??_9D@?A@@$BA at AE" to i8*), i8** %ptr4
+// CHECK32-LABEL: define dso_local void @"?f@@YAXXZ"()
+// CHECK32: store i8* bitcast (void (%struct.C*, ...)* @"??_9C@@$BA at AE" to i8*), i8** %ptr
+// CHECK32: store i8* bitcast (void (%struct.C*, ...)* @"??_9C@@$B3AE" to i8*), i8** %ptr2
+// CHECK32: store i8* bitcast (void (%struct.C*, ...)* @"??_9C@@$B7AE" to i8*), i8** %ptr3
+// CHECK32: store i8* bitcast (void (%"struct.(anonymous namespace)::D"*, ...)* @"??_9D@?A@@$BA at AE" to i8*), i8** %ptr4
 // CHECK32: }
 //
-// CHECK64-LABEL: define dso_local void @"\01?f@@YAXXZ"()
-// CHECK64: store i8* bitcast (void (%struct.C*, ...)* @"\01??_9C@@$BA at AA" to i8*), i8** %ptr
-// CHECK64: store i8* bitcast (void (%struct.C*, ...)* @"\01??_9C@@$B7AA" to i8*), i8** %ptr2
-// CHECK64: store i8* bitcast (void (%struct.C*, ...)* @"\01??_9C@@$BBA at AA" to i8*), i8** %ptr3
-// CHECK64: store i8* bitcast (void (%"struct.(anonymous namespace)::D"*, ...)* @"\01??_9D@?A@@$BA at AA" to i8*), i8** %ptr
+// CHECK64-LABEL: define dso_local void @"?f@@YAXXZ"()
+// CHECK64: store i8* bitcast (void (%struct.C*, ...)* @"??_9C@@$BA at AA" to i8*), i8** %ptr
+// CHECK64: store i8* bitcast (void (%struct.C*, ...)* @"??_9C@@$B7AA" to i8*), i8** %ptr2
+// CHECK64: store i8* bitcast (void (%struct.C*, ...)* @"??_9C@@$BBA at AA" to i8*), i8** %ptr3
+// CHECK64: store i8* bitcast (void (%"struct.(anonymous namespace)::D"*, ...)* @"??_9D@?A@@$BA at AA" to i8*), i8** %ptr
 // CHECK64: }
 }
 
 
 // Thunk for calling the 1st virtual function in C with no parameters.
-// CHECK32-LABEL: define linkonce_odr x86_thiscallcc void @"\01??_9C@@$BA at AE"(%struct.C* %this, ...)
+// CHECK32-LABEL: define linkonce_odr x86_thiscallcc void @"??_9C@@$BA at AE"(%struct.C* %this, ...)
 // CHECK32: #[[ATTR:[0-9]+]]
 // CHECK32-NOT:             unnamed_addr
 // CHECK32:                 comdat
@@ -80,7 +80,7 @@ void f() {
 // CHECK32-NEXT: ret void
 // CHECK32: }
 //
-// CHECK64-LABEL: define linkonce_odr void @"\01??_9C@@$BA at AA"(%struct.C* %this, ...)
+// CHECK64-LABEL: define linkonce_odr void @"??_9C@@$BA at AA"(%struct.C* %this, ...)
 // CHECK64: #[[ATTR:[0-9]+]]
 // CHECK64-NOT:             unnamed_addr
 // CHECK64:                 comdat
@@ -91,7 +91,7 @@ void f() {
 // CHECK64: }
 
 // Thunk for calling the 2nd virtual function in C, taking int and double as parameters, returning int.
-// CHECK32-LABEL: define linkonce_odr x86_thiscallcc void @"\01??_9C@@$B3AE"(%struct.C* %this, ...)
+// CHECK32-LABEL: define linkonce_odr x86_thiscallcc void @"??_9C@@$B3AE"(%struct.C* %this, ...)
 // CHECK32: #[[ATTR]] comdat
 // CHECK32: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %{{.*}}, i64 1
 // CHECK32: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]]
@@ -99,7 +99,7 @@ void f() {
 // CHECK32-NEXT: ret void
 // CHECK32: }
 //
-// CHECK64-LABEL: define linkonce_odr void @"\01??_9C@@$B7AA"(%struct.C* %this, ...)
+// CHECK64-LABEL: define linkonce_odr void @"??_9C@@$B7AA"(%struct.C* %this, ...)
 // CHECK64: #[[ATTR]] comdat
 // CHECK64: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %{{.*}}, i64 1
 // CHECK64: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]]
@@ -108,7 +108,7 @@ void f() {
 // CHECK64: }
 
 // Thunk for calling the 3rd virtual function in C, taking an int parameter, returning a struct.
-// CHECK32-LABEL: define linkonce_odr x86_thiscallcc void @"\01??_9C@@$B7AE"(%struct.C* %this, ...)
+// CHECK32-LABEL: define linkonce_odr x86_thiscallcc void @"??_9C@@$B7AE"(%struct.C* %this, ...)
 // CHECK32: #[[ATTR]] comdat
 // CHECK32: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %{{.*}}, i64 2
 // CHECK32: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]]
@@ -116,7 +116,7 @@ void f() {
 // CHECK32-NEXT: ret void
 // CHECK32: }
 //
-// CHECK64-LABEL: define linkonce_odr void @"\01??_9C@@$BBA at AA"(%struct.C* %this, ...)
+// CHECK64-LABEL: define linkonce_odr void @"??_9C@@$BBA at AA"(%struct.C* %this, ...)
 // CHECK64: #[[ATTR]] comdat
 // CHECK64: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %{{.*}}, i64 2
 // CHECK64: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]]
@@ -125,7 +125,7 @@ void f() {
 // CHECK64: }
 
 // Thunk for calling the virtual function in internal class D.
-// CHECK32-LABEL: define internal x86_thiscallcc void @"\01??_9D@?A@@$BA at AE"(%"struct.(anonymous namespace)::D"* %this, ...)
+// CHECK32-LABEL: define internal x86_thiscallcc void @"??_9D@?A@@$BA at AE"(%"struct.(anonymous namespace)::D"* %this, ...)
 // CHECK32: #[[ATTR]]
 // CHECK32: [[VPTR:%.*]] = getelementptr inbounds void (%"struct.(anonymous namespace)::D"*, ...)*, void (%"struct.(anonymous namespace)::D"*, ...)** %{{.*}}, i64 0
 // CHECK32: [[CALLEE:%.*]] = load void (%"struct.(anonymous namespace)::D"*, ...)*, void (%"struct.(anonymous namespace)::D"*, ...)** [[VPTR]]
@@ -133,7 +133,7 @@ void f() {
 // CHECK32-NEXT: ret void
 // CHECK32: }
 //
-// CHECK64-LABEL: define internal void @"\01??_9D@?A@@$BA at AA"(%"struct.(anonymous namespace)::D"* %this, ...)
+// CHECK64-LABEL: define internal void @"??_9D@?A@@$BA at AA"(%"struct.(anonymous namespace)::D"* %this, ...)
 // CHECK64: #[[ATTR]]
 // CHECK64: [[VPTR:%.*]] = getelementptr inbounds void (%"struct.(anonymous namespace)::D"*, ...)*, void (%"struct.(anonymous namespace)::D"*, ...)** %{{.*}}, i64 0
 // CHECK64: [[CALLEE:%.*]] = load void (%"struct.(anonymous namespace)::D"*, ...)*, void (%"struct.(anonymous namespace)::D"*, ...)** [[VPTR]]
@@ -143,14 +143,14 @@ void f() {
 
 // Thunk for calling the fourth virtual function in C, taking a struct parameter
 // and returning a struct.
-// CHECK32-LABEL: define linkonce_odr x86_thiscallcc void @"\01??_9C@@$BM at AE"(%struct.C* %this, ...) {{.*}} comdat
+// CHECK32-LABEL: define linkonce_odr x86_thiscallcc void @"??_9C@@$BM at AE"(%struct.C* %this, ...) {{.*}} comdat
 // CHECK32: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %{{.*}}, i64 3
 // CHECK32: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]]
 // CHECK32: musttail call x86_thiscallcc void (%struct.C*, ...) [[CALLEE]](%struct.C* %{{.*}}, ...)
 // CHECK32-NEXT: ret void
 // CHECK32: }
 //
-// CHECK64-LABEL: define linkonce_odr void @"\01??_9C@@$BBI at AA"(%struct.C* %this, ...) {{.*}} comdat
+// CHECK64-LABEL: define linkonce_odr void @"??_9C@@$BBI at AA"(%struct.C* %this, ...) {{.*}} comdat
 // CHECK64: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %{{.*}}, i64 3
 // CHECK64: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]]
 // CHECK64: musttail call void (%struct.C*, ...) [[CALLEE]](%struct.C* %{{.*}}, ...)
@@ -158,28 +158,28 @@ void f() {
 // CHECK64: }
 
 // Thunk for calling the fifth virtual function in C which uses the __cdecl calling convention.
-// CHECK32-LABEL: define linkonce_odr void @"\01??_9C@@$BBA at AA"(%struct.C* %this, ...) {{.*}} comdat align 2 {
+// CHECK32-LABEL: define linkonce_odr void @"??_9C@@$BBA at AA"(%struct.C* %this, ...) {{.*}} comdat align 2 {
 // CHECK32: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %{{.*}}, i64 4
 // CHECK32: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]]
 // CHECK32: musttail call void (%struct.C*, ...) [[CALLEE]](%struct.C* %{{.*}}, ...)
 // CHECK32: ret void
 // CHECK32: }
 //
-// CHECK64-LABEL: define linkonce_odr void @"\01??_9C@@$BCA at AA"(%struct.C* %this, ...) {{.*}} comdat align 2 {
+// CHECK64-LABEL: define linkonce_odr void @"??_9C@@$BCA at AA"(%struct.C* %this, ...) {{.*}} comdat align 2 {
 // CHECK64: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %{{.*}}, i64 4
 // CHECK64: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]]
 // CHECK64: musttail call void (%struct.C*, ...) [[CALLEE]](%struct.C* %{{.*}}, ...)
 // CHECK64: ret void
 // CHECK64: }
 
-// CHECK32: define linkonce_odr x86_thiscallcc void @"\01??_9C@@$BBE at AE"(%struct.C* %this, ...) {{.*}} comdat align 2 {
+// CHECK32: define linkonce_odr x86_thiscallcc void @"??_9C@@$BBE at AE"(%struct.C* %this, ...) {{.*}} comdat align 2 {
 // CHECK32: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %{{.*}}, i64 5
 // CHECK32: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]]
 // CHECK32: musttail call x86_thiscallcc void (%struct.C*, ...) [[CALLEE]](%struct.C* %{{.*}}, ...)
 // CHECK32: ret void
 // CHECK32: }
 
-// CHECK64: define linkonce_odr void @"\01??_9C@@$BCI at AA"(%struct.C* %this, ...) {{.*}} comdat align 2 {
+// CHECK64: define linkonce_odr void @"??_9C@@$BCI at AA"(%struct.C* %this, ...) {{.*}} comdat align 2 {
 // CHECK64: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %{{.*}}, i64 5
 // CHECK64: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]]
 // CHECK64: musttail call void (%struct.C*, ...) [[CALLEE]](%struct.C* %{{.*}}, ...)




More information about the cfe-commits mailing list