public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libc/3674] New: strtod trailing zero removal doesn't allow for hex floats
@ 2006-12-07  4:57 jsm28 at gcc dot gnu dot org
  2006-12-10  0:03 ` [Bug libc/3674] " drepper at redhat dot com
  2007-01-12 18:07 ` cvs-commit at gcc dot gnu dot org
  0 siblings, 2 replies; 3+ messages in thread
From: jsm28 at gcc dot gnu dot org @ 2006-12-07  4:57 UTC (permalink / raw)
  To: glibc-bugs

The strtod removal of trailing 0s from the integer part with a negative exponent
doesn't adjust the exponent correctly (by 4) for each 0 removed from a hex number.

  if (dig_no == int_no && dig_no > 0 && exponent < 0)
    do
      {
        while (! (base == 16 ? ISXDIGIT (expp[-1]) : ISDIGIT (expp[-1])))
          --expp;

        if (expp[-1] != L_('0'))
          break;

        --expp;
        --dig_no;
        --int_no;
        ++exponent;
      }
    while (dig_no > 0 && exponent < 0);

Testcase:

#include <stdio.h>
#include <stdlib.h>
int
main(void)
{
  printf("%g\n", atof("0x10p-1"));
  return 0;
}

prints 1 but should print 8.

-- 
           Summary: strtod trailing zero removal doesn't allow for hex
                    floats
           Product: glibc
           Version: 2.4
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libc
        AssignedTo: drepper at redhat dot com
        ReportedBy: jsm28 at gcc dot gnu dot org
                CC: glibc-bugs at sources dot redhat dot com


http://sourceware.org/bugzilla/show_bug.cgi?id=3674

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug libc/3674] strtod trailing zero removal doesn't allow for hex floats
  2006-12-07  4:57 [Bug libc/3674] New: strtod trailing zero removal doesn't allow for hex floats jsm28 at gcc dot gnu dot org
@ 2006-12-10  0:03 ` drepper at redhat dot com
  2007-01-12 18:07 ` cvs-commit at gcc dot gnu dot org
  1 sibling, 0 replies; 3+ messages in thread
From: drepper at redhat dot com @ 2006-12-10  0:03 UTC (permalink / raw)
  To: glibc-bugs


------- Additional Comments From drepper at redhat dot com  2006-12-10 00:03 -------
Fixed in cvs.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


http://sourceware.org/bugzilla/show_bug.cgi?id=3674

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug libc/3674] strtod trailing zero removal doesn't allow for hex floats
  2006-12-07  4:57 [Bug libc/3674] New: strtod trailing zero removal doesn't allow for hex floats jsm28 at gcc dot gnu dot org
  2006-12-10  0:03 ` [Bug libc/3674] " drepper at redhat dot com
@ 2007-01-12 18:07 ` cvs-commit at gcc dot gnu dot org
  1 sibling, 0 replies; 3+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2007-01-12 18:07 UTC (permalink / raw)
  To: glibc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2007-01-12 18:07 -------
Subject: Bug 3674

CVSROOT:	/cvs/glibc
Module name:	libc
Branch: 	glibc-2_5-branch
Changes by:	jakub@sourceware.org	2007-01-12 18:07:19

Modified files:
	.              : ChangeLog 
	stdlib         : Makefile strtod_l.c 
Added files:
	stdlib         : tst-atof1.c tst-atof2.c tst-strtod2.c 
	                 tst-strtod3.c 

Log message:
	* stdlib/Makefile (tst-strtod3-ENV): Define.
	
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Parse thousand
	separators also if no non-zero digits found.
	* stdlib/Makefile (tests): Add tst-strtod3.
	
	[BZ #3664]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix test to recognize
	empty parsed strings.
	* stdlib/Makefile (tests): Add tst-strtod2.
	* stdlib/tst-strtod2.c: New file.
	
	[BZ #3673]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix exp_limit
	computation.
	* stdlib/Makefile (tests): Add tst-atof2.
	* stdlib/tst-atof2.c: New file.
	
	[BZ #3674]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Adjust exponent value
	correctly if removing trailing zero of hex-float.
	* stdlib/Makefile (tests): Add tst-atof1.
	* stdlib/tst-atof1.c: New file.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/ChangeLog.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=1.10362.2.28&r2=1.10362.2.29
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/stdlib/tst-atof1.c.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=NONE&r2=1.1.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/stdlib/tst-atof2.c.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=NONE&r2=1.1.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/stdlib/tst-strtod2.c.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=NONE&r2=1.3.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/stdlib/tst-strtod3.c.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=NONE&r2=1.1.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/stdlib/Makefile.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=1.109.2.2&r2=1.109.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/stdlib/strtod_l.c.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=1.14&r2=1.14.2.1



-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=3674

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-01-12 18:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-12-07  4:57 [Bug libc/3674] New: strtod trailing zero removal doesn't allow for hex floats jsm28 at gcc dot gnu dot org
2006-12-10  0:03 ` [Bug libc/3674] " drepper at redhat dot com
2007-01-12 18:07 ` cvs-commit at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).