https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105324
Bug ID: 105324 Summary: std::from_chars() assertion at floating_from_chars.cc:78 when parsing 1.11111111.... Product: gcc Version: 11.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: nishida_kenji at nintendo dot co.jp Target Milestone: --- CODE: -------- #include <memory> #include <charconv> #include <cstring> #include <cstdio> int main() { #ifdef __GLIBCXX__ std::printf("GLIBCXX: %d\n",__GLIBCXX__); #endif std::unique_ptr<char[]> mem(new char[1024 * 128]); std::memset(mem.get(), '1', 10000); mem[1] = '.'; mem[511] = '\0'; double val; std::from_chars(mem.get(), mem.get() + 511, val); std::printf("511: %f\n", val); std::memset(mem.get(), '1', 10000); mem[1] = '.'; mem[512] = '\0'; std::from_chars(mem.get(), mem.get() + 512, val); std::printf("512: %f\n", val); return 0; } --- RESULT: GLIBCXX: 20220127 511: 1.111111 ../../../../../libstdc++-v3/src/c++17/floating_from_chars.cc:78: virtual void* std::{anonymous}::buffer_resource::do_allocate(std::size_t, std::size_t): Assertion 'alignment != 1' failed.