clang-cl: use MS C++ ABI
authorHans Wennborg <hans@hanshq.net>
Thu, 8 Aug 2013 19:54:30 +0000 (19:54 +0000)
committerHans Wennborg <hans@hanshq.net>
Thu, 8 Aug 2013 19:54:30 +0000 (19:54 +0000)
Differential Revision: http://llvm-reviews.chandlerc.com/D1329

llvm-svn: 188000

clang/lib/Driver/Tools.cpp
clang/test/Driver/cl.c

index 83e6aedf453b58c7e0727d78f0fef14b7dbd3408..7724a1e6814feb85f2354eb7b64d6b7915535885 100644 (file)
@@ -3723,6 +3723,10 @@ void Clang::AddClangCLArgs(const ArgList &Args, ArgStringList &CmdArgs) const {
   // users want.  The /Za flag to cl.exe turns this off, but it's not
   // implemented in clang.
   CmdArgs.push_back("--dependent-lib=oldnames");
+
+  // FIXME: Make this default for the win32 triple.
+  CmdArgs.push_back("-cxx-abi");
+  CmdArgs.push_back("microsoft");
 }
 
 void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
index c811dbe3e7c8fbccc0740e6f49e1b16601de9534..3605197811e8532765af56a867fc208207c20d76 100644 (file)
@@ -5,6 +5,9 @@
 // expand the ? into a one-letter filename in the root directory, and make
 // the test fail is such a file or directory exists.
 
+// Note: %s must be preceded by --, otherwise it may be interpreted as a
+// command-line option, e.g. on Mac where %s is commonly under /Users.
+
 // Check that clang-cl options are not available by default.
 // RUN: %clang -help | FileCheck %s -check-prefix=DEFAULT
 // DEFAULT-NOT: CL.EXE COMPATIBILITY OPTIONS
@@ -26,3 +29,6 @@
 // are not available in clang-cl.
 // DEFAULT: -fapple-kext
 // CL-NOT: -fapple-kext
+
+// RUN: %clang_cl /c -### -- %s 2>&1 | FileCheck -check-prefix=ABI %s
+// ABI: "-cxx-abi" "microsoft"