From: David Majnemer Date: Fri, 13 Dec 2013 00:39:38 +0000 (+0000) Subject: Revert "[-cxx-abi microsoft] Mangle reference temporaries" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7802756e7c8d6af30fe0bd668b882a5aed9016c5;p=clang Revert "[-cxx-abi microsoft] Mangle reference temporaries" This reverts commit r197184. Richard Smith brings up some good points, a proper implementation will require us to mangle unnameable entities compatibly with MSVC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197192 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/MicrosoftMangle.cpp b/lib/AST/MicrosoftMangle.cpp index a02571e8a0..24eac84cdd 100644 --- a/lib/AST/MicrosoftMangle.cpp +++ b/lib/AST/MicrosoftMangle.cpp @@ -2040,9 +2040,10 @@ void MicrosoftMangleContextImpl::mangleCXXDtor(const CXXDestructorDecl *D, } void MicrosoftMangleContextImpl::mangleReferenceTemporary(const VarDecl *VD, - raw_ostream &Out) { - MicrosoftCXXNameMangler mangler(*this, Out); - mangler.mangle(VD); + raw_ostream &) { + unsigned DiagID = getDiags().getCustomDiagID(DiagnosticsEngine::Error, + "cannot mangle this reference temporary yet"); + getDiags().Report(VD->getLocation(), DiagID); } void MicrosoftMangleContextImpl::mangleStaticGuardVariable(const VarDecl *VD, diff --git a/test/CodeGenCXX/mangle-ms.cpp b/test/CodeGenCXX/mangle-ms.cpp index 662234f9e6..62f9831750 100644 --- a/test/CodeGenCXX/mangle-ms.cpp +++ b/test/CodeGenCXX/mangle-ms.cpp @@ -445,10 +445,3 @@ decltype(a) fun(decltype(a) x, decltype(a)) { return x; } // CHECK-DAG: ?fun@PR18022@@YA?AU@1@U21@0@Z } - -// Binding to a bit-field that requires a temporary. -struct { int bitfield : 3; } object_with_bitfield = { 3 }; -const int &reference_to_bitfield = object_with_bitfield.bitfield; -// CHECK-DAG: ?object_with_bitfield@@3U@@A -// CHECK-DAG: ?reference_to_bitfield@@3ABHB -// CHECK-DAG: ??__Ereference_to_bitfield@@YAXXZ