Make LLVM_MSC_PREREQ() compatible with all MSVC versions
authorAlp Toker <alp@nuanti.com>
Sun, 29 Dec 2013 07:39:53 +0000 (07:39 +0000)
committerAlp Toker <alp@nuanti.com>
Sun, 29 Dec 2013 07:39:53 +0000 (07:39 +0000)
The defined() preprocessor expansion wasn't working out on the lld builder.

Also update the documentation to cover another Visual Studio release versioning
convention.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198158 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/Compiler.h

index e2bcd563b09fe4002aa575308bbc20e31edf910d..aa66a4ea52a411ddf42bbbc6aa2a478fa041194a 100644 (file)
 /// \macro LLVM_MSC_PREREQ
 /// \brief Is the compiler MSVC of at least the specified version?
 /// The common \param version values to check for are:
-///  * 1600: Microsoft Visual Studio 2010
-///  * 1700: Microsoft Visual Studio 2012
-///  * 1800: Microsoft Visual Studio 2013
-#define LLVM_MSC_PREREQ(version) \
-  (defined(_MSC_VER) && _MSC_VER >= (version))
+///  * 1600: Microsoft Visual Studio 2010 / 10.0
+///  * 1700: Microsoft Visual Studio 2012 / 11.0
+///  * 1800: Microsoft Visual Studio 2013 / 12.0
+#ifdef _MSC_VER
+#define LLVM_MSC_PREREQ(version) (_MSC_VER >= (version))
+#else
+#define LLVM_MSC_PREREQ(version) 0
+#endif
 
 /// \brief Does the compiler support r-value references?
 /// This implies that <utility> provides the one-argument std::move;  it