diff options
Diffstat (limited to 'libcxx/test')
5 files changed, 20 insertions, 9 deletions
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 index d1fde66da4c..49f17d63b82 100644 --- a/libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp +++ b/libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp @@ -132,8 +132,7 @@ int main(int, char**) static_assert((std::is_same<decltype(rand()), int>::value), ""); static_assert((std::is_same<decltype(srand(0)), void>::value), ""); -// Microsoft does not implement aligned_alloc in their C library -#if TEST_STD_VER > 14 && defined(TEST_HAS_C11_FEATURES) && !defined(_WIN32) +#if TEST_STD_VER > 14 && defined(TEST_HAS_ALIGNED_ALLOC) static_assert((std::is_same<decltype(aligned_alloc(0,0)), void*>::value), ""); #endif diff --git a/libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp b/libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp index 8e6357304d0..da0e3c01fd1 100644 --- a/libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp +++ b/libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp @@ -119,9 +119,8 @@ int main(int, char**) static_assert((std::is_same<decltype(std::rand()), int>::value), ""); static_assert((std::is_same<decltype(std::srand(0)), void>::value), ""); -// Microsoft does not implement aligned_alloc in their C library -#if TEST_STD_VER > 14 && defined(TEST_HAS_C11_FEATURES) && !defined(_WIN32) - static_assert((std::is_same<decltype(aligned_alloc(0,0)), void*>::value), ""); +#if TEST_STD_VER > 14 && defined(TEST_HAS_ALIGNED_ALLOC) + static_assert((std::is_same<decltype(std::aligned_alloc(0,0)), void*>::value), ""); #endif static_assert((std::is_same<decltype(std::calloc(0,0)), void*>::value), ""); diff --git a/libcxx/test/std/language.support/support.runtime/ctime.pass.cpp b/libcxx/test/std/language.support/support.runtime/ctime.pass.cpp index a8c2dc7ff56..fb744c5001e 100644 --- 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_C11_FEATURES) +#if TEST_STD_VER > 14 && defined(TEST_HAS_TIMESPEC_GET) #ifndef TIME_UTC #error TIME_UTC not defined #endif @@ -32,7 +32,7 @@ int main(int, char**) std::size_t s = 0; std::time_t t = 0; std::tm tm = {}; -#if TEST_STD_VER > 14 && defined(TEST_HAS_C11_FEATURES) +#if TEST_STD_VER > 14 && defined(TEST_HAS_TIMESPEC_GET) std::timespec tmspec = {}; ((void)tmspec); // Prevent unused warning #endif diff --git a/libcxx/test/std/utilities/time/date.time/ctime.pass.cpp b/libcxx/test/std/utilities/time/date.time/ctime.pass.cpp index ac29fd78180..da16c85e7cd 100644 --- 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_C11_FEATURES) +#if TEST_STD_VER > 14 && defined(TEST_HAS_TIMESPEC_GET) #ifndef TIME_UTC #error TIME_UTC not defined #endif @@ -41,7 +41,7 @@ int main(int, char**) ((void)t); // Prevent unused warning ((void)tm); // Prevent unused warning ((void)str); // Prevent unused warning -#if TEST_STD_VER > 14 && defined(TEST_HAS_C11_FEATURES) +#if TEST_STD_VER > 14 && defined(TEST_HAS_TIMESPEC_GET) std::timespec tmspec = {}; ((void)tmspec); // Prevent unused warning #endif diff --git a/libcxx/test/support/test_macros.h b/libcxx/test/support/test_macros.h index df480abbead..f5fbedb5555 100644 --- a/libcxx/test/support/test_macros.h +++ b/libcxx/test/support/test_macros.h @@ -153,8 +153,18 @@ # if defined(__FreeBSD__) // Specifically, FreeBSD does NOT have timespec_get, even though they have all // the rest of C11 - this is PR#38495 +# define TEST_HAS_ALIGNED_ALLOC # define TEST_HAS_C11_FEATURES +# elif defined(__BIONIC__) +# define TEST_HAS_C11_FEATURES +# 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__) +# define TEST_HAS_ALIGNED_ALLOC # define TEST_HAS_C11_FEATURES # define TEST_HAS_TIMESPEC_GET # elif defined(__linux__) @@ -164,15 +174,18 @@ // newlib, etc may all support these features but need to be configured. # if defined(TEST_GLIBC_PREREQ) # if TEST_GLIBC_PREREQ(2, 17) +# define TEST_HAS_ALIGNED_ALLOC # define TEST_HAS_TIMESPEC_GET # define TEST_HAS_C11_FEATURES # endif # elif defined(_LIBCPP_HAS_MUSL_LIBC) +# define TEST_HAS_ALIGNED_ALLOC # define TEST_HAS_C11_FEATURES # define TEST_HAS_TIMESPEC_GET # endif # elif defined(_WIN32) # if defined(_MSC_VER) && !defined(__MINGW32__) +# define TEST_HAS_ALIGNED_ALLOC # define TEST_HAS_C11_FEATURES // Using Microsoft's C Runtime library # define TEST_HAS_TIMESPEC_GET # endif |