summaryrefslogtreecommitdiffstats
path: root/libcxx
diff options
context:
space:
mode:
authorStephan T. Lavavej <stl@exchange.microsoft.com>2017-05-04 01:35:11 +0000
committerStephan T. Lavavej <stl@exchange.microsoft.com>2017-05-04 01:35:11 +0000
commita7e1ac58c4413e2fdb70116e8b7cf38f3c183047 (patch)
tree817d26e68b84cb7c8edf0fb863fd331b9dae72cb /libcxx
parent22f2bcf4b929732b091a683ea01413072a424d3b (diff)
downloadbcm5719-llvm-a7e1ac58c4413e2fdb70116e8b7cf38f3c183047.tar.gz
bcm5719-llvm-a7e1ac58c4413e2fdb70116e8b7cf38f3c183047.zip
[libcxx] [test] In msvc_stdlib_force_include.hpp, use _HAS_CXX17 to set TEST_STD_VER.
_HAS_CXX17 indicates whether MSVC's STL is in C++17 mode. In MSVC there's a distinction between CRT headers like stdlib.h and STL headers like cstdlib. Only the STL headers drag in yvals.h, our internal STL-wide header that defines internal macros like _HAS_CXX17. _HAS_CXX17 is an MSVC STL library macro, unconditionally defined. We centralize everything on this, because we have to ask different questions to determine whether C1XX, EDG, or Clang is in 14 or 17 mode, and we additionally permit users to override the detection in one way (it's okay to ask for 17 from the compiler, but only 14 from the libs, at least for the moment; only noexcept in the type system will give us a headache). As this header is for testing MSVC's STL, we can assume _HAS_CXX17 is defined. Fixes D32726. llvm-svn: 302104
Diffstat (limited to 'libcxx')
-rw-r--r--libcxx/test/support/msvc_stdlib_force_include.hpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/libcxx/test/support/msvc_stdlib_force_include.hpp b/libcxx/test/support/msvc_stdlib_force_include.hpp
index 660645646d3..6cc867078f7 100644
--- a/libcxx/test/support/msvc_stdlib_force_include.hpp
+++ b/libcxx/test/support/msvc_stdlib_force_include.hpp
@@ -40,8 +40,6 @@ const AssertionDialogAvoider assertion_dialog_avoider{};
// MSVC frontend only configurations
#if !defined(__clang__)
- #define TEST_STD_VER 17
-
// Simulate feature-test macros.
#define __has_feature(X) _MSVC_HAS_FEATURE_ ## X
#define _MSVC_HAS_FEATURE_cxx_exceptions 1
@@ -75,4 +73,12 @@ const AssertionDialogAvoider assertion_dialog_avoider{};
// Silence warnings about raw pointers and other unchecked iterators.
#define _SCL_SECURE_NO_WARNINGS
+#include <ciso646>
+
+#if _HAS_CXX17
+ #define TEST_STD_VER 17
+#else // _HAS_CXX17
+ #define TEST_STD_VER 14
+#endif // _HAS_CXX17
+
#endif // SUPPORT_MSVC_STDLIB_FORCE_INCLUDE_HPP
OpenPOWER on IntegriCloud