https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67932
--- Comment #4 from R Copley <rcopley at gmail dot com> --- That's what I understood to be the case. Nevertheless, with the toolchain I am using (see above for version; same command-line etc.), I get the results below. Both testcases below give the correct results with g++-4.8 on Ubuntu (the idea of installing 5.2 seems to confuse and infuriate the community there), so I think I must report this to the MinGW-W64 maintainers instead. Thanks. #include <stdio.h> int main () { printf ("%a", 0x1.000008p+0); } // Preprocessed source: see attachment "hexfloat-bug-2a.ii" // Output: 0x1.000008p+0 #include <cstdio> int main () { printf /*sic*/ ("%a", 0x1000008p+0); } // Preprocessed source: see attachment "hexfloat-bug-2b.ii" // Output: 0x0p-63