Revision control
Copy as Markdown
Other Tools
/*
* This file is preprocessed to produce output that is examined by
* configure.py to determine the compilers version number.
*/
#if defined(_MSC_VER)
/*
_MSC_VER Defined as an integer literal that encodes the major and
minor number elements of the compiler's version number. The major
number is the first element of the period-delimited version number
and the minor number is the second element. For example, if the
version number of the Visual C++ compiler is 17.00.51106.1, the
_MSC_VER macro evaluates to 1700.
*/
MSVC _MSC_VER
#elif defined(__ibmxl__)
XLC __ibmxl_version__ __ibmxl_release__
#elif defined(__clang__) && defined(__apple_build_version__)
/*
Map Apple LLVM versions as used in XCode back to standard Clang.
This is not exact since the versions used in XCode are actually
forks of Clang and do not coorespond perfectly to standard Clang
releases. In addition we don't bother mapping very old versions
(anything before XCode 7 is treated like Clang 3.5, which is the
oldest version we support) and for "future" versions we simply
treat them as Clang 4.0, since we don't currenly rely on any
features not included in 4.0
*/
#if __clang_major__ >= 9
CLANG 4 0
#elif __clang_major__ == 8
CLANG 3 9
#elif __clang_major__ == 7 && __clang_minor__ == 3
CLANG 3 8
#elif __clang_major__ == 7
CLANG 3 7
#else
CLANG 3 5
#endif
#elif defined(__clang__)
CLANG __clang_major__ __clang_minor__
#elif defined(__GNUG__)
GCC __GNUC__ __GNUC_MINOR__
#else
UNKNOWN 0 0
#endif