The floating-point overloads of from_char are only declared if
_GLIBCXX_HAVE_USELOCALE is #defined as nonzero. That's exposed from
charconv as _cpp_lib_to_chars >= 201611L, so guard the test body with
that.
Regstrapped on ppc64le-linux-gnu, and tested on
x86_64-linux-gnu-x-ppc{,64}-vx7r2 (without _GLIBCXX_HAVE_USELOCALE).
Ok to install? gcc-12? gcc-11?
for libstdc++-v3/ChangeLog
PR c++/105324
* testsuite/20_util/from_chars/pr105324.cc: Guard test body
with conditional for floating-point overloads of from_char.
---
.../testsuite/20_util/from_chars/pr105324.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
b/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
index cecb17e41cc68..a9e08303ef49d 100644
--- a/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
+++ b/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
@@ -5,10 +5,12 @@
int main()
{
+#if _cpp_lib_to_chars >= 201611L // FP from_char not available otherwise.
// PR libstdc++/105324
// std::from_chars() assertion at floating_from_chars.cc:78
std::string s(512, '1');
s[1] = '.';
long double d;
std::from_chars(s.data(), s.data() + s.size(), d);
+#endif
}
--
Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/
Free Software Activist GNU Toolchain Engineer
Disinformation flourishes because many people care deeply about injustice
but very few check the facts. Ask me about <https://stallmansupport.org>