diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2018-11-29 23:21:18 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2018-11-29 23:21:18 +0000 |
commit | 08794627a32a99cbb5ae769c37c64686f027561e (patch) | |
tree | b69bfe609995d9db05009cee95decbecdd84ae41 /libcxx/test/std/language.support/support.limits/limits/numeric.limits.members | |
parent | 7a2c5856a908b8bb5505ff1a0c4b0e2ee77a00af (diff) | |
download | bcm5719-llvm-08794627a32a99cbb5ae769c37c64686f027561e.tar.gz bcm5719-llvm-08794627a32a99cbb5ae769c37c64686f027561e.zip |
First part of P0482 - Establish that char8_t is an integral type, and that numeric_limits<char8_t> is valid and sane. (second try)
llvm-svn: 347930
Diffstat (limited to 'libcxx/test/std/language.support/support.limits/limits/numeric.limits.members')
32 files changed, 165 insertions, 0 deletions
diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp index 6a46c370e75..11772f67dd5 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp @@ -9,6 +9,8 @@ #include <limits> +#include "test_macros.h" + /* <limits>: numeric_limits @@ -99,6 +101,14 @@ int main() TEST_NUMERIC_LIMITS(volatile wchar_t) TEST_NUMERIC_LIMITS(const volatile wchar_t) +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + // char8_t + TEST_NUMERIC_LIMITS(char8_t) + TEST_NUMERIC_LIMITS(const char8_t) + TEST_NUMERIC_LIMITS(volatile char8_t) + TEST_NUMERIC_LIMITS(const volatile char8_t) +#endif + // char16_t TEST_NUMERIC_LIMITS(char16_t) TEST_NUMERIC_LIMITS(const char16_t) diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp index 8deb28d3fd9..8a3ca008db0 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp @@ -15,6 +15,8 @@ #include <cfloat> #include <cassert> +#include "test_macros.h" + template <class T> void test(T expected) @@ -32,6 +34,9 @@ int main() test<signed char>(0); test<unsigned char>(0); test<wchar_t>(0); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t>(0); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t>(0); test<char32_t>(0); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp index 2dfea084b11..7dec03d0861 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp @@ -14,6 +14,8 @@ #include <limits> #include <cfloat> +#include "test_macros.h" + template <class T, int expected> void test() @@ -31,6 +33,9 @@ int main() test<signed char, 7>(); test<unsigned char, 8>(); test<wchar_t, std::numeric_limits<wchar_t>::is_signed ? sizeof(wchar_t)*8-1 : sizeof(wchar_t)*8>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, 8>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, 16>(); test<char32_t, 32>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp index 2c5302cd633..017f8630af0 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp @@ -14,6 +14,8 @@ #include <limits> #include <cfloat> +#include "test_macros.h" + template <class T, int expected> void test() @@ -35,6 +37,9 @@ int main() test<signed char, 2>(); test<unsigned char, 2>(); test<wchar_t, 5*sizeof(wchar_t)/2-1>(); // 4 -> 9 and 2 -> 4 +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, 2>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, 4>(); test<char32_t, 9>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp index 0cce4848187..b27f5c583e8 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp @@ -15,6 +15,8 @@ #include <cfloat> #include <cassert> +#include "test_macros.h" + template <class T> void test(T expected) @@ -32,6 +34,9 @@ int main() test<signed char>(0); test<unsigned char>(0); test<wchar_t>(0); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t>(0); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t>(0); test<char32_t>(0); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp index e61802054d1..5096ad211c4 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, std::float_denorm_style expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, std::denorm_absent>(); test<unsigned char, std::denorm_absent>(); test<wchar_t, std::denorm_absent>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, std::denorm_absent>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, std::denorm_absent>(); test<char32_t, std::denorm_absent>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp index 660ecf5036d..1b087f0cda4 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, false>(); test<unsigned char, false>(); test<wchar_t, false>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, false>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, false>(); test<char32_t, false>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp index f8ca2059d46..1391f2096ef 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, false>(); test<unsigned char, false>(); test<wchar_t, false>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, false>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, false>(); test<char32_t, false>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp index 7592171695f..cb5736f5c51 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, false>(); test<unsigned char, false>(); test<wchar_t, false>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, false>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, false>(); test<char32_t, false>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp index d68cd5d7887..4f43a6532b7 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, false>(); test<unsigned char, false>(); test<wchar_t, false>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, false>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, false>(); test<char32_t, false>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp index 033ecdc31af..241f9cc2724 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp @@ -15,6 +15,8 @@ #include <cfloat> #include <cassert> +#include "test_macros.h" + template <class T> void test(T expected) @@ -34,6 +36,9 @@ int main() test<signed char>(0); test<unsigned char>(0); test<wchar_t>(0); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t>(0); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t>(0); test<char32_t>(0); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp index fa714d5d150..e00afa900cc 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, true>(); test<unsigned char, true>(); test<wchar_t, true>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, true>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, true>(); test<char32_t, true>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp index b96a0e7fc5f..8431b733f56 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, true>(); test<unsigned char, true>(); test<wchar_t, true>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, true>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, true>(); test<char32_t, true>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp index 4408714c1a1..2e9ac223a39 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, false>(); test<unsigned char, false>(); test<wchar_t, false>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, false>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, false>(); test<char32_t, false>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp index 79bc5867ec6..6e321d1ef24 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, true>(); test<unsigned char, true>(); test<wchar_t, true>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, true>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, true>(); test<char32_t, true>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp index 6a609963d04..f6412a97d6e 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, false>(); test<unsigned char, true>(); // test<wchar_t, false>(); // don't know +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, true>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, true>(); test<char32_t, true>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp index 28570fd2279..b7a892605c3 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, true>(); test<unsigned char, false>(); test<wchar_t, wchar_t(-1) < wchar_t(0)>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, false>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, false>(); test<char32_t, false>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp index 21090aa9c4c..f505f414215 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp @@ -17,6 +17,8 @@ #include <cfloat> #include <cassert> +#include "test_macros.h" + template <class T> void test(T expected) @@ -38,6 +40,9 @@ int main() test<signed char>(SCHAR_MIN); test<unsigned char>(0); test<wchar_t>(WCHAR_MIN); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t>(0); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t>(0); test<char32_t>(0); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp index 7517aaa192c..65d5150a7b6 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp @@ -17,6 +17,8 @@ #include <cfloat> #include <cassert> +#include "test_macros.h" + template <class T> void test(T expected) @@ -38,6 +40,9 @@ int main() test<signed char>(SCHAR_MAX); test<unsigned char>(UCHAR_MAX); test<wchar_t>(WCHAR_MAX); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t>(UCHAR_MAX); // ?? +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t>(USHRT_MAX); test<char32_t>(UINT_MAX); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp index de771ebe3b4..158e2791f92 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp @@ -14,6 +14,8 @@ #include <limits> #include <cfloat> +#include "test_macros.h" + template <class T, int expected> void test() @@ -31,6 +33,9 @@ int main() test<signed char, 0>(); test<unsigned char, 0>(); test<wchar_t, 0>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, 0>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, 0>(); test<char32_t, 0>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp index 6b61f7ba433..64931093860 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp @@ -14,6 +14,8 @@ #include <limits> #include <cfloat> +#include "test_macros.h" + template <class T, int expected> void test() @@ -31,6 +33,9 @@ int main() test<signed char, 0>(); test<unsigned char, 0>(); test<wchar_t, 0>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, 0>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, 0>(); test<char32_t, 0>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp index 927585e9468..c4c7a30a7e8 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp @@ -14,6 +14,8 @@ #include <limits> #include <cfloat> +#include "test_macros.h" + template <class T, int expected> void test() @@ -31,6 +33,9 @@ int main() test<signed char, 0>(); test<unsigned char, 0>(); test<wchar_t, 0>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, 0>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, 0>(); test<char32_t, 0>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp index e72fbba1051..a1e61fcdcaa 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp @@ -17,6 +17,8 @@ #include <cfloat> #include <cassert> +#include "test_macros.h" + template <class T> void test(T expected) @@ -38,6 +40,9 @@ int main() test<signed char>(SCHAR_MIN); test<unsigned char>(0); test<wchar_t>(WCHAR_MIN); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t>(0); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t>(0); test<char32_t>(0); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp index 245e8441499..930d0110270 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp @@ -14,6 +14,8 @@ #include <limits> #include <cfloat> +#include "test_macros.h" + template <class T, int expected> void test() @@ -31,6 +33,9 @@ int main() test<signed char, 0>(); test<unsigned char, 0>(); test<wchar_t, 0>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, 0>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, 0>(); test<char32_t, 0>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp index b54d46fd52e..05891b1f6f0 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp @@ -14,6 +14,8 @@ #include <limits> #include <cfloat> +#include "test_macros.h" + template <class T, int expected> void test() @@ -31,6 +33,9 @@ int main() test<signed char, 0>(); test<unsigned char, 0>(); test<wchar_t, 0>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, 0>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, 0>(); test<char32_t, 0>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp index 97166f0c320..5d5597c47bc 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp @@ -16,6 +16,8 @@ #include <type_traits> #include <cassert> +#include "test_macros.h" + template <class T> void test_imp(std::true_type) @@ -51,6 +53,9 @@ int main() test<signed char>(); test<unsigned char>(); test<wchar_t>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t>(); test<char32_t>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp index 98a2a53d192..1514ae8411d 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp @@ -14,6 +14,8 @@ #include <limits> #include <cfloat> +#include "test_macros.h" + template <class T, int expected> void test() @@ -31,6 +33,9 @@ int main() test<signed char, 2>(); test<unsigned char, 2>(); test<wchar_t, 2>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, 2>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, 2>(); test<char32_t, 2>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp index 5da5c9513a8..3c2dc5493e2 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp @@ -15,6 +15,8 @@ #include <cfloat> #include <cassert> +#include "test_macros.h" + template <class T> void test(T expected) @@ -32,6 +34,9 @@ int main() test<signed char>(0); test<unsigned char>(0); test<wchar_t>(0); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t>(0); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t>(0); test<char32_t>(0); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp index 645f6f7df76..f1fd20035fb 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, std::float_round_style expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, std::round_toward_zero>(); test<unsigned char, std::round_toward_zero>(); test<wchar_t, std::round_toward_zero>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, std::round_toward_zero>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, std::round_toward_zero>(); test<char32_t, std::round_toward_zero>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp index d9df999ddb7..a0a6d7f844c 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp @@ -16,6 +16,8 @@ #include <type_traits> #include <cassert> +#include "test_macros.h" + template <class T> void test_imp(std::true_type) @@ -51,6 +53,9 @@ int main() test<signed char>(); test<unsigned char>(); test<wchar_t>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t>(); test<char32_t>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp index 9e2a8431a4e..901eea4d054 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + template <class T, bool expected> void test() @@ -30,6 +32,9 @@ int main() test<signed char, false>(); test<unsigned char, false>(); test<wchar_t, false>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, false>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, false>(); test<char32_t, false>(); diff --git a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp index 23811fada5e..8e407c225e3 100644 --- a/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp @@ -13,6 +13,8 @@ #include <limits> +#include "test_macros.h" + #if defined(__i386__) || defined(__x86_64__) || defined(__pnacl__) || \ defined(__wasm__) static const bool integral_types_trap = true; @@ -37,6 +39,9 @@ int main() test<signed char, integral_types_trap>(); test<unsigned char, integral_types_trap>(); test<wchar_t, integral_types_trap>(); +#if TEST_STD_VER > 17 && defined(__cpp_char8_t) + test<char8_t, integral_types_trap>(); +#endif #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test<char16_t, integral_types_trap>(); test<char32_t, integral_types_trap>(); |