[PATCH] clang-cl: Support the run-time selection options (/ML, /MD, /MT et al.)

Reid Kleckner rnk at google.com
Wed Aug 7 13:08:53 PDT 2013

  While I wrote the msvcrt_picker.h thing initially, I actually think it's a gross hack.  :)  We should see if we can get at least one other person to sign off on it.

Comment at: include/clang/Driver/CLCompatOptions.td:93
@@ +92,3 @@
+  HelpText<"Use multi-threaded DLL-specific debug run-time">;
+def _SLASH_ML : CLFlag<"ML">,
+  HelpText<"Use single-threaded run-time (default)">;
The single threaded runtimes have been deprecated since the 2005 release, I believe.  MSDN has a note about it:

I'd drop the /ML[d] options and drop "multi-threaded" from the other help texts.

Comment at: include/clang/Driver/CLCompatOptions.td:90
@@ +89,3 @@
+def _SLASH_MD : CLFlag<"MD">,
+  HelpText<"Use multi-threaded DLL-specific run-time">;
+def _SLASH_MDd : CLFlag<"MDd">,
What does "DLL-specific" mean?  I'd probably just say DLL.  I'd also drop the hyphen in "run-time".

Comment at: lib/Headers/msvcrt_picker.h:43
@@ +42,3 @@
+# ifdef _DEBUG
+#  pragma comment(lib, "libcd")
+# else
These files don't exist in 2010 or 12, so I'd drop these the ifdef for it.

Comment at: lib/Headers/msvcrt_picker.h:26
@@ +25,3 @@
+#define __MSVCRT_PICKER_H
+#ifdef _MT
Is it worth adding "#ifndef _MSC_VER #error" or something?  This header is going to get installed along with clang's builtin headers on Unix systems, where people shouldn't be using it unless they're targeting Windows.


More information about the cfe-commits mailing list