Introduce a new test macro TEST_HAS_C11_FEATURES which is set when the underlying C library has C11 features. In C++17, we use those features. <__config> defines a similar macro, _LIBCPP_HAS_C11_FEATURES, but we don't want to use that in the library-independent parts of the tests, so define the new one. Also add a libc++-specific test to make sure the two stay in sync.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@338411 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Marshall Clow
2018-07-31 18:23:57 +00:00
parent decf28e84f
commit 1bef51a0b5
2 changed files with 66 additions and 10 deletions

View File

@@ -0,0 +1,29 @@
//===----------------------------------------------------------------------===//
//
// 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.
//
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++98, c++03, c++11, c++14
// We have two macros for checking whether or not the underlying C library
// has C11 features:
// TEST_HAS_C11_FEATURES - which is defined in "test_macros.h"
// _LIBCPP_HAS_C11_FEATURES - which is defined in <__config>
// They should always be the same
#ifdef TEST_HAS_C11_FEATURES
# ifndef _LIBCPP_HAS_C11_FEATURES
# error "TEST_HAS_C11_FEATURES is defined, but _LIBCPP_HAS_C11_FEATURES is not"
# endif
#endif
#ifdef _LIBCPP_HAS_C11_FEATURES
# ifndef TEST_HAS_C11_FEATURES
# error "_LIBCPP_HAS_C11_FEATURES is defined, but TEST_HAS_C11_FEATURES is not"
# endif
#endif
int main() {}