https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81122
--- Comment #13 from Heinz Kohl <koh...@t-online.de> --- O.k., but following your arguments I'd expect 0xb as result for my second example 0xb.3590da0e2a06736p-3 (attachment 41578), but it's giving 0, also stopping at 'x' and not at '.', just as in the first case. It might be just another case of the same problem, but I'm not sure. An actual test run: ./a.out Parsing 0x1P-1022 as hex gives 0 Parsing '0xb.3590da0e2a06736p-3 xyz' as hex gives 0 xb. (The source code for the second example is: std::istringstream("0xb.3590da0e2a06736p-3 xyz") >> std::hexfloat >> g >> a >> b >> c ; std::cout << "Parsing '0xb.3590da0e2a06736p-3 xyz' as hex gives " << g << ' ' << a << b << c << std::endl; )