From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4934 invoked by alias); 24 Jul 2012 17:43:34 -0000 Received: (qmail 4919 invoked by uid 22791); 24 Jul 2012 17:43:33 -0000 X-SWARE-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL,BAYES_00,SARE_SUB_PCT_LETTER X-Spam-Check-By: sourceware.org Received: from hagrid.ecoscentric.com (HELO mail.ecoscentric.com) (212.13.207.197) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 24 Jul 2012 17:43:19 +0000 Received: from localhost (hagrid.ecoscentric.com [127.0.0.1]) by mail.ecoscentric.com (Postfix) with ESMTP id 4FFC22F78008 for ; Tue, 24 Jul 2012 18:43:18 +0100 (BST) Received: from mail.ecoscentric.com ([127.0.0.1]) by localhost (hagrid.ecoscentric.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WMxHGpxNhDkj; Tue, 24 Jul 2012 18:43:15 +0100 (BST) From: bugzilla-daemon@bugs.ecos.sourceware.org To: ecos-bugs@ecos.sourceware.org Subject: [Bug 1001628] New: %g printf format prints more digits than expected X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: eCos X-Bugzilla-Component: C library X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: bernd.edlinger@hotmail.de X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: low X-Bugzilla-Assigned-To: unassigned@bugs.ecos.sourceware.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://bugs.ecos.sourceware.org/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Tue, 24 Jul 2012 17:43:00 -0000 Mailing-List: contact ecos-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-bugs-owner@sourceware.org X-SW-Source: 2012/txt/msg01069.txt.bz2 Please do not reply to this email. Use the web interface provided at: http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001628 Summary: %g printf format prints more digits than expected Product: eCos Version: CVS Platform: All OS/Version: All Status: UNCONFIRMED Severity: normal Priority: low Component: C library AssignedTo: unassigned@bugs.ecos.sourceware.org ReportedBy: bernd.edlinger@hotmail.de CC: ecos-bugs@ecos.sourceware.org Class: Advice Request Created an attachment (id=1841) --> (http://bugs.ecos.sourceware.org/attachment.cgi?id=1841) a proposed patch to fix this defect when a printf format like "%.7g" is used, you would expect to see at most 7 valid decimals. But if the value is very close to an integer like (float)5.000123 the output may look like "5.000123xxxx" with xxxx = 4 additional digits which contain only rounding errors. The correct output would be "5.000123", which is 7 valid digits. The reason is in "language/c/libc/stdio/current/src/output/vfnprintf.cxx", where the loop termination assumes the number of leading digits (in expcnt) to be zero, which is not always the case however. To fix this use the attached patch file. The patch also introduces an additional test case in "language/c/libc/stdio/current/tests/sprintf2.c", which will only succeed when the printf format is output correctly. -- Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.