<div dir="ltr">Reid, John,<div><br></div><div>FYI</div><div>I've committed this patch without sending it out for review first</div><div>as I think it's trivial enough and I'm pretty familiar with this particular part of the codebase.</div>

<div><br></div><div>Hope you're OK with it.</div><div><br></div><div>--</div><div>Timur</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/8/26 Timur Iskhodzhanov <span dir="ltr"><<a href="mailto:timurrrr@google.com" target="_blank">timurrrr@google.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: timurrrr<br>
Date: Mon Aug 26 05:32:04 2013<br>
New Revision: 189214<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=189214&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=189214&view=rev</a><br>
Log:<br>
Fix virtual destructor mangling when using "-cxx-abi microsoft" on x64<br>
<br>
Modified:<br>
    cfe/trunk/lib/AST/MicrosoftMangle.cpp<br>
    cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp<br>
<br>
Modified: cfe/trunk/lib/AST/MicrosoftMangle.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/MicrosoftMangle.cpp?rev=189214&r1=189213&r2=189214&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/MicrosoftMangle.cpp?rev=189214&r1=189213&r2=189214&view=diff</a><br>


==============================================================================<br>
--- cfe/trunk/lib/AST/MicrosoftMangle.cpp (original)<br>
+++ cfe/trunk/lib/AST/MicrosoftMangle.cpp Mon Aug 26 05:32:04 2013<br>
@@ -1294,7 +1294,7 @@ void MicrosoftCXXNameMangler::mangleFunc<br>
       // However, the FunctionType generated has 0 arguments.<br>
       // FIXME: This is a temporary hack.<br>
       // Maybe should fix the FunctionType creation instead?<br>
-      Out << "PAXI@Z";<br>
+      Out << (PointersAre64Bit ? "PEAXI@Z" : "PAXI@Z");<br>
       return;<br>
     }<br>
     Out << '@';<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp?rev=189214&r1=189213&r2=189214&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp?rev=189214&r1=189213&r2=189214&view=diff</a><br>


==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-structors.cpp Mon Aug 26 05:32:04 2013<br>
@@ -3,6 +3,8 @@<br>
 // vftables are emitted very late, so do another pass to try to keep the checks<br>
 // in source order.<br>
 // RUN: FileCheck --check-prefix DTORS %s < %t<br>
+//<br>
+// RUN: %clang_cc1 -emit-llvm %s -o - -cxx-abi microsoft -triple=x86_64-pc-win32 -fno-rtti | FileCheck --check-prefix DTORS-X64 %s<br>
<br>
 namespace basic {<br>
<br>
@@ -57,6 +59,9 @@ struct C {<br>
 //<br>
 // DTORS:      [[CONTINUE_LABEL]]<br>
 // DTORS-NEXT:   ret void<br>
+<br>
+// Check that we do the mangling correctly on x64.<br>
+// DTORS-X64:  @"\01??_GC@basic@@UEAAPEAXI@Z"<br>
   }<br>
   virtual void foo();<br>
 };<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>