Reorganize predefined macros for all Windows targets.

This adds an option to set the _MSC_VER macro without
recompiling. This is very useful when testing compatibility
with the Windows SDK and c++stdlib headers.

-fmsc-version=<version> (defaults to VS2003 (1300))

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116999 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/docs/UsersManual.html b/docs/UsersManual.html
index 154cf86..a271dc3 100644
--- a/docs/UsersManual.html
+++ b/docs/UsersManual.html
@@ -922,6 +922,12 @@
 certain constructs (including __declspec and Microsoft-style asm statements).
 </p>
 
+<li>clang allows setting _MCS_VER with -fmsc-version=. It defaults to 1300 which
+is the same as Visual C/C++ 2003. Any number is supported and can greatly affect
+what Windows SDK and c++stdlib headers clang can compile. This option will be
+removed when clang supports the full set of MS extensions required for these
+headers.</li>
+
 <li>clang does not support the Microsoft extension where anonymous
 record members can be declared using user defined typedefs.</li>
 
diff --git a/docs/tools/clang.pod b/docs/tools/clang.pod
index b99eb8f..9f7a448 100644
--- a/docs/tools/clang.pod
+++ b/docs/tools/clang.pod
@@ -175,6 +175,10 @@
 
 Enable support for Microsoft extensions.
 
+=item B<-fmsc-version=>
+
+Set _MSC_VER. Defaults to 1300 on Windows. Not set otherwise.
+
 =item B<-fborland-extensions>
 
 Enable support for Borland extensions.