Reid, John, FYI I've committed this patch without sending it out for review first as I think it's trivial enough and I'm pretty familiar with this particular part of the codebase.
Hope you're OK with it. -- Timur 2013/8/26 Timur Iskhodzhanov <[email protected]> > Author: timurrrr > Date: Mon Aug 26 05:32:04 2013 > New Revision: 189214 > > URL: http://llvm.org/viewvc/llvm-project?rev=189214&view=rev > Log: > Fix virtual destructor mangling when using "-cxx-abi microsoft" on x64 > > Modified: > cfe/trunk/lib/AST/MicrosoftMangle.cpp > cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp > > Modified: cfe/trunk/lib/AST/MicrosoftMangle.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/MicrosoftMangle.cpp?rev=189214&r1=189213&r2=189214&view=diff > > ============================================================================== > --- cfe/trunk/lib/AST/MicrosoftMangle.cpp (original) > +++ cfe/trunk/lib/AST/MicrosoftMangle.cpp Mon Aug 26 05:32:04 2013 > @@ -1294,7 +1294,7 @@ void MicrosoftCXXNameMangler::mangleFunc > // However, the FunctionType generated has 0 arguments. > // FIXME: This is a temporary hack. > // Maybe should fix the FunctionType creation instead? > - Out << "PAXI@Z"; > + Out << (PointersAre64Bit ? "PEAXI@Z" : "PAXI@Z"); > return; > } > Out << '@'; > > 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=189214&r1=189213&r2=189214&view=diff > > ============================================================================== > --- cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp (original) > +++ cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp Mon Aug 26 > 05:32:04 2013 > @@ -3,6 +3,8 @@ > // vftables are emitted very late, so do another pass to try to keep the > checks > // in source order. > // RUN: FileCheck --check-prefix DTORS %s < %t > +// > +// RUN: %clang_cc1 -emit-llvm %s -o - -cxx-abi microsoft > -triple=x86_64-pc-win32 -fno-rtti | FileCheck --check-prefix DTORS-X64 %s > > namespace basic { > > @@ -57,6 +59,9 @@ struct C { > // > // DTORS: [[CONTINUE_LABEL]] > // DTORS-NEXT: ret void > + > +// Check that we do the mangling correctly on x64. > +// DTORS-X64: @"\01??_GC@basic@@UEAAPEAXI@Z" > } > virtual void foo(); > }; > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
