http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47567
Thomas Henlich <thenlich at users dot sourceforge.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED | --- Comment #13 from Thomas Henlich <thenlich at users dot sourceforge.net> 2011-02-08 07:16:28 UTC --- Regardless of the finer points of standard-compliance, the patch breaks the following: print "(F0.0)", -0.0 ! => 0 expected -0. (or -0) print "(F0.1)", -0.0 ! => ** expected -.0 (or -0) print "(F0.2)", -0.0 ! => *** expected -.00 (or -0) print "(F0.3)", -0.0 ! => **** expected -.000 (or -0) end I think the minus sign of the negative zero is not an optional character and should be displayed in all cases where it exists (otherwise it does not make sense to have a signed zero in the first place). I think it falls under the clause "a minus sign if the internal value is negative". In no case should the field be filled with asterisks for an F0.n descriptor, because there will always be a field width large enough to accommodate the formatted string.