31dd526e1c
* gnu/packages/patches/gcc-11-libstdc++-powerpc.patch: New file. * gnu/local.mk (dist_patch_DATA): Register patch. * gnu/packages/gcc.scm (make-libstdc++): Apply patch for gcc versions >= 11 and < 12 on ppc64le. Co-authored-by: Christopher Baines <mail@cbaines.net> Signed-off-by: Christopher Baines <mail@cbaines.net>
20 lines
592 B
Diff
20 lines
592 B
Diff
--- a/libstdc++-v3/src/c++17/floating_from_chars.cc
|
|
+++ b/libstdc++-v3/src/c++17/floating_from_chars.cc
|
|
@@ -495,10 +495,16 @@
|
|
from_chars(const char* first, const char* last, __ieee128& value,
|
|
chars_format fmt) noexcept
|
|
{
|
|
+ errc ec = errc::invalid_argument;
|
|
+#if _GLIBCXX_USE_CXX11_ABI
|
|
buffer_resource mr;
|
|
pmr::string buf(&mr);
|
|
+#else
|
|
+ string buf;
|
|
+ if (!reserve_string(buf))
|
|
+ return make_result(first, 0, {}, ec);
|
|
+#endif
|
|
size_t len = 0;
|
|
- errc ec = errc::invalid_argument;
|
|
__try
|
|
{
|
|
if (const char* pat = pattern(first, last, fmt, buf)) [[likely]]
|