//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // Test the "test_macros.h" header. #include <__config> #include "test_macros.h" #ifndef TEST_STD_VER #error TEST_STD_VER must be defined #endif #ifndef TEST_NOEXCEPT #error TEST_NOEXCEPT must be defined #endif #ifndef LIBCPP_ASSERT #error LIBCPP_ASSERT must be defined #endif #ifndef LIBCPP_STATIC_ASSERT #error LIBCPP_STATIC_ASSERT must be defined #endif void test_noexcept() TEST_NOEXCEPT { } void test_libcxx_macros() { // ===== C++14 features ===== // defined(TEST_HAS_EXTENDED_CONSTEXPR) != defined(_LIBCPP_HAS_NO_CXX14_CONSTEXPR) #ifdef TEST_HAS_EXTENDED_CONSTEXPR # ifdef _LIBCPP_HAS_NO_CXX14_CONSTEXPR # error "TEST_EXTENDED_CONSTEXPR mismatch (1)" # endif #else # ifndef _LIBCPP_HAS_NO_CXX14_CONSTEXPR # error "TEST_EXTENDED_CONSTEXPR mismatch (2)" # endif #endif // defined(TEST_HAS_VARIABLE_TEMPLATES) != defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) #ifdef TEST_HAS_VARIABLE_TEMPLATES # ifdef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES # error "TEST_VARIABLE_TEMPLATES mismatch (1)" # endif #else # ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES # error "TEST_VARIABLE_TEMPLATES mismatch (2)" # endif #endif // ===== C++1z features ===== } int main() { test_noexcept(); test_libcxx_macros(); }