summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2019-11-18 12:16:45 -0800
committerDan Albert <danalbert@google.com>2019-11-18 12:19:58 -0800
commit19fd9039ca242f408493b5c662f9d908eab8555e (patch)
treeecb1be767cbf77b440e7d67b55862df29b1c6c26 /libcxx/test/std
parentfffcd3e48ecf3f66d97c3b4daf624b3b2f9d74bf (diff)
downloadbcm5719-llvm-19fd9039ca242f408493b5c662f9d908eab8555e.tar.gz
bcm5719-llvm-19fd9039ca242f408493b5c662f9d908eab8555e.zip
Fix _LIBCPP_HAS_ definitions for Android.
Summary: Android added quick_exit()/at_quick_exit() in API level 21, aligned_alloc() in API level 28, and timespec_get() in API level 29, but has the other C11 features at all API levels (since they're basically just coming from clang directly). _LIBCPP_HAS_QUICK_EXIT and _LIBCPP_HAS_TIMESPEC_GET already existed, so we can reuse them. (And use _LIBCPP_HAS_TIMESPEC_GET in a few more places where _LIBCPP_HAS_C11_FEATURES has been used as a proxy. This isn't correct for Android.) _LIBCPP_HAS_ALIGNED_ALLOC is added, to cover aligned_alloc() (obviously). Add a missing std:: before aligned_alloc in a cstdlib test, and remove a couple of !defined(_WIN32)s now that we're explicitly testing TEST_HAS_ALIGNED_ALLOC rather than TEST_HAS_C11_FEATURES. Reviewers: danalbert, EricWF, mclow.lists Reviewed By: danalbert Subscribers: srhines, christof, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D69929
Diffstat (limited to 'libcxx/test/std')
-rw-r--r--libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp3
-rw-r--r--libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp5
-rw-r--r--libcxx/test/std/language.support/support.runtime/ctime.pass.cpp4
-rw-r--r--libcxx/test/std/utilities/time/date.time/ctime.pass.cpp4
4 files changed, 7 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
OpenPOWER on IntegriCloud