On Tue, 3 May 2022, 06:39 Alexandre Oliva via Libstdc++, < libstd...@gcc.gnu.org> wrote:
> > 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. > That macro should start with two underscores. OK for trunk and gcc-11 with that change. gcc-12 branch needs RM approval. OK for 12.2 if not approved for 12.1 // 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 > } >