https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47320

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
N.B. I've just reverted this fix as part of
r12-4268-gfec283b63d7f24f4c37792dd07ab1055186ba88f

The numeric limits specialization is defined unconditionally, so is correct
whether or not _GLIBCXX_USE_WCHAR_T is defined, and so this test should always
pass.

The problem here was that is_integral<wchar_t>::value was false, so it used the
do_test(false_type) overload which is intended for floating-point types.

r11-4590-g29e418485848c4a6943d8561cd8fb0b1abf14015 changed that, so that
is_integral<wchar_t> is always true (as required by the C++ standard) even if
wchar_t support is not present in libc. Since that change, this test should
always pass for wchar_t.

I'm changing the test to use numeric_limits<T>::is_integer instead of
is_integral<T> anyway, because is_integer<__int128> depends on __STRICT_ANSI__
and so the test fails in a similar way for __int128 as it did for wchar_t.

Reply via email to