diff --git a/libcxx/test/libcxx/language.support/has_aligned_alloc.compile.pass.cpp b/libcxx/test/libcxx/language.support/has_aligned_alloc.compile.pass.cpp deleted file mode 100644 --- a/libcxx/test/libcxx/language.support/has_aligned_alloc.compile.pass.cpp +++ /dev/null @@ -1,19 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++03, c++11, c++14 - -// Make sure TEST_HAS_ALIGNED_ALLOC (defined by the test suite) and -// _LIBCPP_HAS_ALIGNED_ALLOC (defined by libc++) stay in sync. - -#include <__config> -#include "test_macros.h" - -#if defined(TEST_HAS_ALIGNED_ALLOC) != defined(_LIBCPP_HAS_ALIGNED_ALLOC) -# error "TEST_HAS_ALIGNED_ALLOC and _LIBCPP_HAS_ALIGNED_ALLOC are out of sync" -#endif diff --git a/libcxx/test/libcxx/language.support/has_quick_exit.compile.pass.cpp b/libcxx/test/libcxx/language.support/has_quick_exit.compile.pass.cpp deleted file mode 100644 --- a/libcxx/test/libcxx/language.support/has_quick_exit.compile.pass.cpp +++ /dev/null @@ -1,19 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++03, c++11, c++14 - -// Make sure TEST_HAS_QUICK_EXIT (defined by the test suite) and -// _LIBCPP_HAS_QUICK_EXIT (defined by libc++) stay in sync. - -#include <__config> -#include "test_macros.h" - -#if defined(TEST_HAS_QUICK_EXIT) != defined(_LIBCPP_HAS_QUICK_EXIT) -# error "TEST_HAS_QUICK_EXIT and _LIBCPP_HAS_QUICK_EXIT are out of sync" -#endif diff --git a/libcxx/test/libcxx/language.support/has_timespec_get.compile.pass.cpp b/libcxx/test/libcxx/language.support/has_timespec_get.compile.pass.cpp deleted file mode 100644 --- a/libcxx/test/libcxx/language.support/has_timespec_get.compile.pass.cpp +++ /dev/null @@ -1,19 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++03, c++11, c++14 - -// Make sure TEST_HAS_TIMESPEC_GET (defined by the test suite) and -// _LIBCPP_HAS_TIMESPEC_GET (defined by libc++) stay in sync. - -#include <__config> -#include "test_macros.h" - -#if defined(TEST_HAS_TIMESPEC_GET) != defined(_LIBCPP_HAS_TIMESPEC_GET) -# error "TEST_HAS_TIMESPEC_GET and _LIBCPP_HAS_TIMESPEC_GET are out of sync" -#endif diff --git a/libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp b/libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp --- a/libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp +++ b/libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp @@ -8,6 +8,10 @@ // test +// ::aligned_alloc is provided by the C library, but it's marked as unavailable +// until macOS 10.15 +// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14}} + #include #include #include @@ -132,9 +136,8 @@ static_assert((std::is_same::value), ""); static_assert((std::is_same::value), ""); -#if TEST_STD_VER > 14 && defined(TEST_HAS_ALIGNED_ALLOC) - static_assert((std::is_same::value), - ""); +#if TEST_STD_VER > 14 + static_assert((std::is_same::value), ""); #endif void* pv = 0; diff --git a/libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp b/libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp --- a/libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp +++ b/libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp @@ -8,6 +8,10 @@ // test +// ::aligned_alloc is provided by the C library, but it's marked as unavailable +// until macOS 10.15 +// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14}} + #include #include #include @@ -119,9 +123,8 @@ static_assert((std::is_same::value), ""); static_assert((std::is_same::value), ""); -#if TEST_STD_VER > 14 && defined(TEST_HAS_ALIGNED_ALLOC) - static_assert( - (std::is_same::value), ""); +#if TEST_STD_VER > 14 + static_assert((std::is_same::value), ""); #endif void* pv = 0; diff --git a/libcxx/test/std/language.support/support.runtime/ctime.pass.cpp b/libcxx/test/std/language.support/support.runtime/ctime.pass.cpp --- a/libcxx/test/std/language.support/support.runtime/ctime.pass.cpp +++ b/libcxx/test/std/language.support/support.runtime/ctime.pass.cpp @@ -20,7 +20,7 @@ #error CLOCKS_PER_SEC not defined #endif -#if TEST_STD_VER > 14 && defined(TEST_HAS_TIMESPEC_GET) +#if TEST_STD_VER > 14 #ifndef TIME_UTC #error TIME_UTC not defined #endif @@ -32,7 +32,7 @@ std::size_t s = 0; std::time_t t = 0; std::tm tm = {}; -#if TEST_STD_VER > 14 && defined(TEST_HAS_TIMESPEC_GET) +#if TEST_STD_VER > 14 std::timespec tmspec = {}; ((void)tmspec); // Prevent unused warning #endif @@ -44,7 +44,7 @@ static_assert((std::is_same::value), ""); static_assert((std::is_same::value), ""); static_assert((std::is_same::value), ""); -#if TEST_STD_VER > 14 && defined(TEST_HAS_TIMESPEC_GET) +#if TEST_STD_VER > 14 static_assert((std::is_same::value), ""); #endif #ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS diff --git a/libcxx/test/std/language.support/support.start.term/at_quick_exit.compile.fail.cpp b/libcxx/test/std/language.support/support.start.term/at_quick_exit.compile.fail.cpp deleted file mode 100644 --- a/libcxx/test/std/language.support/support.start.term/at_quick_exit.compile.fail.cpp +++ /dev/null @@ -1,27 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++03 - -// test that referencing at_quick_exit when TEST_HAS_QUICK_EXIT is not defined -// results in a compile error. - -#include - -#include "test_macros.h" - -void f() { } - -int main(int, char**) { -#if !defined(TEST_HAS_QUICK_EXIT) - std::at_quick_exit(f); -#else -# error -#endif - return 0; -} diff --git a/libcxx/test/std/language.support/support.start.term/quick_exit.compile.fail.cpp b/libcxx/test/std/language.support/support.start.term/quick_exit.compile.fail.cpp deleted file mode 100644 --- a/libcxx/test/std/language.support/support.start.term/quick_exit.compile.fail.cpp +++ /dev/null @@ -1,25 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++03 - -// test that referencing quick_exit when TEST_HAS_QUICK_EXIT is not defined -// results in a compile error. - -#include - -#include "test_macros.h" - -int main(int, char**) { -#if !defined(TEST_HAS_QUICK_EXIT) - std::quick_exit(0); -#else -# error -#endif - return 0; -} diff --git a/libcxx/test/std/language.support/support.start.term/quick_exit.pass.cpp b/libcxx/test/std/language.support/support.start.term/quick_exit.pass.cpp --- a/libcxx/test/std/language.support/support.start.term/quick_exit.pass.cpp +++ b/libcxx/test/std/language.support/support.start.term/quick_exit.pass.cpp @@ -11,16 +11,10 @@ #include -#include "test_macros.h" - void f() {} -int main(int, char**) -{ -#ifdef TEST_HAS_QUICK_EXIT +int main(int, char**) { std::at_quick_exit(f); std::quick_exit(0); -#endif - - return 0; + return 0; } diff --git a/libcxx/test/std/utilities/time/date.time/ctime.pass.cpp b/libcxx/test/std/utilities/time/date.time/ctime.pass.cpp --- a/libcxx/test/std/utilities/time/date.time/ctime.pass.cpp +++ b/libcxx/test/std/utilities/time/date.time/ctime.pass.cpp @@ -19,7 +19,7 @@ #error CLOCKS_PER_SEC not defined #endif -#if TEST_STD_VER > 14 && defined(TEST_HAS_TIMESPEC_GET) +#if TEST_STD_VER > 14 #ifndef TIME_UTC #error TIME_UTC not defined #endif @@ -41,7 +41,7 @@ ((void)t); // Prevent unused warning ((void)tm); // Prevent unused warning ((void)str); // Prevent unused warning -#if TEST_STD_VER > 14 && defined(TEST_HAS_TIMESPEC_GET) +#if TEST_STD_VER > 14 std::timespec tmspec = {}; ((void)tmspec); // Prevent unused warning #endif @@ -50,7 +50,7 @@ static_assert((std::is_same::value), ""); static_assert((std::is_same::value), ""); static_assert((std::is_same::value), ""); -#if TEST_STD_VER > 14 && defined(TEST_HAS_TIMESPEC_GET) +#if TEST_STD_VER > 14 static_assert((std::is_same::value), ""); #endif #ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS diff --git a/libcxx/test/support/test_macros.h b/libcxx/test/support/test_macros.h --- a/libcxx/test/support/test_macros.h +++ b/libcxx/test/support/test_macros.h @@ -163,67 +163,6 @@ # define TEST_CONSTEXPR_CXX20 #endif -// Sniff out to see if the underlying C library has C11 features -// This is cribbed from __config; but lives here as well because we can't assume libc++ -#if (defined(__ISO_C_VISIBLE) && (__ISO_C_VISIBLE >= 2011)) || \ - TEST_STD_VER >= 11 -# if defined(__FreeBSD__) -# if __FreeBSD_version >= 1300064 || \ - (__FreeBSD_version >= 1201504 && __FreeBSD_version < 1300000) -# define TEST_HAS_TIMESPEC_GET -# endif -# define TEST_HAS_ALIGNED_ALLOC -# define TEST_HAS_QUICK_EXIT -# elif defined(__BIONIC__) -# if __ANDROID_API__ >= 21 -# define TEST_HAS_QUICK_EXIT -# endif -# if __ANDROID_API__ >= 28 -# define TEST_HAS_ALIGNED_ALLOC -# endif -# if __ANDROID_API__ >= 29 -# define TEST_HAS_TIMESPEC_GET -# endif -# elif defined(__Fuchsia__) || defined(__wasi__) || defined(__NetBSD__) -# define TEST_HAS_QUICK_EXIT -# define TEST_HAS_ALIGNED_ALLOC -# define TEST_HAS_TIMESPEC_GET -# elif defined(__linux__) -// This block preserves the old behavior used by include/__config: -// _LIBCPP_GLIBC_PREREQ would be defined to 0 if __GLIBC_PREREQ was not -// available. The configuration here may be too vague though, as Bionic, uClibc, -// newlib, etc may all support these features but need to be configured. -# if defined(TEST_GLIBC_PREREQ) -# if TEST_GLIBC_PREREQ(2, 15) -# define TEST_HAS_QUICK_EXIT -# endif -# if TEST_GLIBC_PREREQ(2, 17) -# define TEST_HAS_ALIGNED_ALLOC -# define TEST_HAS_TIMESPEC_GET -# endif -# elif defined(_LIBCPP_HAS_MUSL_LIBC) -# define TEST_HAS_QUICK_EXIT -# define TEST_HAS_ALIGNED_ALLOC -# define TEST_HAS_TIMESPEC_GET -# endif -# elif defined(_WIN32) -# if defined(_MSC_VER) && !defined(__MINGW32__) -# define TEST_HAS_QUICK_EXIT -# define TEST_HAS_TIMESPEC_GET -# endif -# elif defined(__APPLE__) - // timespec_get and aligned_alloc were introduced in macOS 10.15 and - // aligned releases -# if ((defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101500) || \ - (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130000) || \ - (defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ >= 130000) || \ - (defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ >= 60000)) -# define TEST_HAS_ALIGNED_ALLOC -# define TEST_HAS_TIMESPEC_GET -# endif -# endif // __APPLE__ -#endif - /* Features that were introduced in C++14 */ #if TEST_STD_VER >= 14 #define TEST_HAS_EXTENDED_CONSTEXPR