diff --git a/include/limits b/include/limits index 22169665..1acf03e3 100644 --- a/include/limits +++ b/include/limits @@ -235,7 +235,7 @@ protected: static _LIBCPP_CONSTEXPR const bool is_iec559 = false; static _LIBCPP_CONSTEXPR const bool is_bounded = true; - static _LIBCPP_CONSTEXPR const bool is_modulo = true; + static _LIBCPP_CONSTEXPR const bool is_modulo = !_VSTD::is_signed<_Tp>::value; #if __i386__ || __x86_64__ static _LIBCPP_CONSTEXPR const bool traps = true; diff --git a/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp b/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp index fadc0156..6a609963 100644 --- a/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp +++ b/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp @@ -26,24 +26,24 @@ test() int main() { test(); - test(); - test(); +// test(); // don't know + test(); test(); - test(); +// test(); // don't know #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test(); test(); #endif // _LIBCPP_HAS_NO_UNICODE_CHARS - test(); + test(); test(); - test(); + test(); test(); - test(); + test(); test(); - test(); + test(); test(); #ifndef _LIBCPP_HAS_NO_INT128 - test<__int128_t, true>(); + test<__int128_t, false>(); test<__uint128_t, true>(); #endif test();