Unless my understanding of the "+" flag is incorrect the following examples fail:
printf("|%+.3i|", 0) expected "|+000|" actual "|000|" printf("|%+5.3i|", 0) expected | +000| actual | 000| printf("|%+.3i|", 127) expected |+127| actual |127| printf("|+5.3i|", 127) expected | +127| actual | 127| -- Summary: printf doesn't force sign with precision Product: gcc Version: 4.4.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: naddiseo at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40945