libstdc++: Fix detection of std::format support for __float128 [PR107693]

std::format gives linker errors on targets that define __float128 but
do not support using it with std::to_chars. This improves the handling
of 128-bit flaoting-point types so they are disabled if unsupportable.

libstdc++-v3/ChangeLog:

	PR libstdc++/107693
	* include/std/format (_GLIBCXX_FORMAT_F128): Define to 2 when
	basic_format_arg needs to use its _M_f128 member.
	(__extended_floating_point, __floating_point): Replace with ...
	(__formattable_floating_point): New concept.
	* testsuite/std/format/functions/format.cc: Check whether
	__float128 is supported. Also test _Float128.
2 files changed