summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/strings/char.traits
diff options
context:
space:
mode:
authorMichael Park <mcypark@gmail.com>2019-11-08 13:42:26 +0000
committerMichael Park <mcypark@gmail.com>2019-11-11 09:49:48 -0800
commiteb8710cb93a5c21c168ffd97ac2b6872127cb60b (patch)
tree9aa3b97c056883c017a4f251aabd8d724bd05d8f /libcxx/test/std/strings/char.traits
parent489449c28aaa45086d507fbad96826420adf409d (diff)
downloadbcm5719-llvm-eb8710cb93a5c21c168ffd97ac2b6872127cb60b.tar.gz
bcm5719-llvm-eb8710cb93a5c21c168ffd97ac2b6872127cb60b.zip
[libc++][P0980] Marked member functions move/copy/assign of char_traits constexpr.
Reviewers: ldionne, EricWF, mclow.lists Reviewed By: ldionne Subscribers: christof, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D68840
Diffstat (limited to 'libcxx/test/std/strings/char.traits')
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/assign3.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/copy.pass.cpp13
-rw-r--r--libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/move.pass.cpp13
15 files changed, 180 insertions, 15 deletions
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp
index cc10294b014..d7a1753daf6 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
char s2[3] = {0};
assert(std::char_traits<char>::assign(s2, 3, char(5)) == s2);
@@ -26,5 +26,16 @@ int main(int, char**)
assert(s2[2] == char(5));
assert(std::char_traits<char>::assign(NULL, 0, char(5)) == NULL);
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp
index 7e76c0bbd3d..3ac53897eba 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
char s1[] = {1, 2, 3};
char s2[3] = {0};
@@ -28,5 +28,16 @@ int main(int, char**)
assert(std::char_traits<char>::copy(NULL, s1, 0) == NULL);
assert(std::char_traits<char>::copy(s1, NULL, 0) == s1);
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp
index 4a132649d50..94f10aab771 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
char s1[] = {1, 2, 3};
assert(std::char_traits<char>::move(s1, s1+1, 2) == s1);
@@ -32,5 +32,16 @@ int main(int, char**)
assert(std::char_traits<char>::move(NULL, s1, 0) == NULL);
assert(std::char_traits<char>::move(s1, NULL, 0) == s1);
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp
index 77207826aab..af61f97b30a 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
char16_t s2[3] = {0};
@@ -28,5 +28,16 @@ int main(int, char**)
assert(std::char_traits<char16_t>::assign(NULL, 0, char16_t(5)) == NULL);
#endif // _LIBCPP_HAS_NO_UNICODE_CHARS
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp
index bedc55db0ed..5c70a7a21e5 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
char16_t s1[] = {1, 2, 3};
@@ -30,5 +30,16 @@ int main(int, char**)
assert(std::char_traits<char16_t>::copy(s1, NULL, 0) == s1);
#endif // _LIBCPP_HAS_NO_UNICODE_CHARS
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp
index f822437809f..b058632a8f4 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
char16_t s1[] = {1, 2, 3};
@@ -34,5 +34,16 @@ int main(int, char**)
assert(std::char_traits<char16_t>::move(s1, NULL, 0) == s1);
#endif // _LIBCPP_HAS_NO_UNICODE_CHARS
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp
index c63d0254385..b022b23aa0e 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
char32_t s2[3] = {0};
@@ -28,5 +28,16 @@ int main(int, char**)
assert(std::char_traits<char32_t>::assign(NULL, 0, char32_t(5)) == NULL);
#endif // _LIBCPP_HAS_NO_UNICODE_CHARS
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp
index 7f9b383b087..75e17d082f0 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
char32_t s1[] = {1, 2, 3};
@@ -30,5 +30,16 @@ int main(int, char**)
assert(std::char_traits<char32_t>::copy(s1, NULL, 0) == s1);
#endif // _LIBCPP_HAS_NO_UNICODE_CHARS
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp
index 6d335fa3c10..49900993851 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
char32_t s1[] = {1, 2, 3};
@@ -34,5 +34,16 @@ int main(int, char**)
assert(std::char_traits<char32_t>::move(s1, NULL, 0) == s1);
#endif // _LIBCPP_HAS_NO_UNICODE_CHARS
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp
index 426ca075dce..d91f05a01fa 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp
@@ -18,7 +18,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
#if defined(__cpp_lib_char8_t) && __cpp_lib_char8_t >= 201811L
char8_t s2[3] = {0};
@@ -29,5 +29,16 @@ int main(int, char**)
assert(std::char_traits<char8_t>::assign(NULL, 0, char8_t(5)) == NULL);
#endif
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp
index bfd25c93c44..4d9dc924f06 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp
@@ -18,7 +18,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
#if defined(__cpp_lib_char8_t) && __cpp_lib_char8_t >= 201811L
char8_t s1[] = {1, 2, 3};
@@ -31,5 +31,16 @@ int main(int, char**)
assert(std::char_traits<char8_t>::copy(s1, NULL, 0) == s1);
#endif
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp
index ffb81fd30f1..b839b29cc57 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp
@@ -18,7 +18,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
#if defined(__cpp_lib_char8_t) && __cpp_lib_char8_t >= 201811L
char8_t s1[] = {1, 2, 3};
@@ -35,5 +35,16 @@ int main(int, char**)
assert(std::char_traits<char8_t>::move(s1, NULL, 0) == s1);
#endif
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/assign3.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/assign3.pass.cpp
index 373d374b33d..9997770e1ab 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/assign3.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/assign3.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
wchar_t s2[3] = {0};
assert(std::char_traits<wchar_t>::assign(s2, 3, wchar_t(5)) == s2);
@@ -26,5 +26,16 @@ int main(int, char**)
assert(s2[2] == wchar_t(5));
assert(std::char_traits<wchar_t>::assign(NULL, 0, wchar_t(5)) == NULL);
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/copy.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/copy.pass.cpp
index 3665297cd16..1eb2bd51320 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/copy.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/copy.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
wchar_t s1[] = {1, 2, 3};
wchar_t s2[3] = {0};
@@ -28,5 +28,16 @@ int main(int, char**)
assert(std::char_traits<wchar_t>::copy(NULL, s1, 0) == NULL);
assert(std::char_traits<wchar_t>::copy(s1, NULL, 0) == s1);
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
+ static_assert(test());
+#endif
+
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/move.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/move.pass.cpp
index 67610cb141b..f459f287ce6 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/move.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/move.pass.cpp
@@ -17,7 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
+TEST_CONSTEXPR_CXX20 bool test()
{
wchar_t s1[] = {1, 2, 3};
assert(std::char_traits<wchar_t>::move(s1, s1+1, 2) == s1);
@@ -32,5 +32,16 @@ int main(int, char**)
assert(std::char_traits<wchar_t>::move(NULL, s1, 0) == NULL);
assert(std::char_traits<wchar_t>::move(s1, NULL, 0) == s1);
+ return true;
+}
+
+int main(int, char**)
+{
+ test();
+
+#if TEST_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
+ static_assert(test());
+#endif
+
return 0;
}
OpenPOWER on IntegriCloud