clang-cl: use MS C++ ABI

Differential Revision: http://llvm-reviews.chandlerc.com/D1329

llvm-svn: 188000
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 83e6aed..7724a1e 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -3723,6 +3723,10 @@
   // 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,
diff --git a/clang/test/Driver/cl.c b/clang/test/Driver/cl.c
index c811dbe..3605197 100644
--- a/clang/test/Driver/cl.c
+++ b/clang/test/Driver/cl.c
@@ -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"