summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp
diff options
context:
space:
mode:
authorEd Schouten <ed@nuxi.nl>2015-06-24 08:44:38 +0000
committerEd Schouten <ed@nuxi.nl>2015-06-24 08:44:38 +0000
commite0cf3b9a3ca8d80d313d1e2e5b8c70d73d10e933 (patch)
tree9141a10ef3fbd7899b821275956fda61b01da73d /libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp
parentaa315fbb4c18b0bfcd54658f3f5b67600f097f8c (diff)
downloadbcm5719-llvm-e0cf3b9a3ca8d80d313d1e2e5b8c70d73d10e933.tar.gz
bcm5719-llvm-e0cf3b9a3ca8d80d313d1e2e5b8c70d73d10e933.zip
Make support for thread-unsafe C functions optional.
One of the aspects of CloudABI is that it aims to help you write code that is thread-safe out of the box. This is very important if you want to write libraries that are easy to reuse. For CloudABI we decided to not provide the thread-unsafe functions. So far this is working out pretty well, as thread-unsafety issues are detected really early on. The following patch adds a knob to libc++, _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS, that can be set to disable thread-unsafe functions that can easily be avoided in practice. The following functions are not thread-safe: - <clocale>: locale handles should be preferred over setlocale(). - <cstdlib>: mbrlen(), mbrtowc() and wcrtomb() should be preferred over their non-restartable counterparts. - <ctime>: asctime(), ctime(), gmtime() and localtime() are not thread-safe. The first two are also deprecated by POSIX. Differential Revision: http://reviews.llvm.org/D8703 Reviewed by: marshall llvm-svn: 240527
Diffstat (limited to 'libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp')
-rw-r--r--libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp b/libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp
index fc7f65d4288..afc784f74b8 100644
--- a/libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp
+++ b/libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp
@@ -41,7 +41,9 @@ int main()
static_assert((std::is_same<decltype(strrchr(cp, 0)), char*>::value), "");
static_assert((std::is_same<decltype(strspn(cpc, cpc)), size_t>::value), "");
static_assert((std::is_same<decltype(strstr(cp, cpc)), char*>::value), "");
+#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS
static_assert((std::is_same<decltype(strtok(cp, cpc)), char*>::value), "");
+#endif
static_assert((std::is_same<decltype(memset(vp, 0, s)), void*>::value), "");
static_assert((std::is_same<decltype(strerror(0)), char*>::value), "");
static_assert((std::is_same<decltype(strlen(cpc)), size_t>::value), "");
OpenPOWER on IntegriCloud