Commit Graph

11 Commits

Author SHA1 Message Date
Brad King
4af0c9daf4 Features: Update features for Intel C++ 17.0.2 on UNIX
Intel 17.0.2 on UNIX introduced a regression from 17.0.1 in its
definition of `__cpp_constexpr` in `-std=c++14` mode.  It incorrectly
defines it as `200704` instead of the expected `201304`.  Fix our
feature detection table to account for this.
2017-03-31 14:29:18 -04:00
Brad King
68a9fc1bca Merge topic 'intel-compile-features'
5e428389 Features: Detect Intel C++14 mode more reliably
1f848031 Features: Suppress c_static_assert test coverage on Intel <= 15
2016-11-11 10:44:07 -05:00
Brad King
5e42838961 Features: Detect Intel C++14 mode more reliably
The `__cplusplus` macro is not defined to the language level reliably.
When simulating MSVC it is always set to `1`.  When simulating GCC it is
set to the lower value of the current language level and the maximum
level supported by the simulated version of GCC (from observation).

For MSVC we already used a combination of `__INTEL_CXX11_MODE__` and
`__cpp_aggregate_nsdmi` to detect C++14 mode.  Extend this for general
use by removing the condition on `_MSC_VER`.
2016-11-10 15:37:05 -05:00
Brad King
be73273952 Features: Fix standards and features for Intel 15 on Windows
The Intel 15 compiler for Windows does not support the same set of
standards and features as the same version for other platforms.
2016-11-10 12:54:06 -05:00
Brad King
b902f2a98a Features: Fix Intel cxx_attributes existence condition
This condition needs to follow the same pattern added in note `[1]` by
commit a5a3642f (Features: Port Intel CXX features to test macros where
possible, 2016-10-26).  It was accidentally left out of that commit.
2016-11-03 08:38:23 -04:00
Brad King
369d580937 Features: Record features for Intel Compiler on Windows
Since this compiler always defines `__cplusplus` to `1` we need to use
`_MSC_VER`, `__INTEL_CXX11_MODE__`, and the feature test macro named
`__cpp_aggregate_nsdmi` to detect C++11 and C++14 modes.

With no `-Qstd=` flag this compiler defaults to C++98 plus a subset of
C++11/C++14 features needed to be compatible with MSVC.  We pretend it
is plain C++98 and add a `-Qstd=` flag whenever needed for C++11 or
above features even if they would happen to be available in MSVC-mode.

Closes: #16384
2016-10-27 13:33:10 -04:00
Brad King
a5a3642f92 Features: Port Intel CXX features to test macros where possible
The Intel 16 and 17 compilers define feature test macros of the form
`__cpp_<feature>`.  Use them where possible to detect corresponding
features.
2016-10-27 13:28:34 -04:00
Brad King
d34ac22fec Features: Unset Intel CXX feature temporaries 2016-10-27 13:28:34 -04:00
Brad King
554b4f9010 Features: Record features for Intel C++ 17 on UNIX
Issue: #16384
2016-10-26 09:18:38 -04:00
Robert Maynard
d028b94872 Features: Specify minimum version Intel C++ 12.1
Versions below 12.1 do not provide enough information to properly detect
if compiling with c++98 or c++0x enabled so remove them from the
supported list.
2016-04-28 09:16:31 -04:00
Levi Morrison
be910f00b5 Features: Record standards and features for Intel C++ on UNIX
Skip this for now on Windows (where Intel C++ simulates MSVC).
2016-04-28 09:15:25 -04:00