This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/13246] RFE: strtold: do not include uninitialized bytes when converting "NaN"
- From: "jakub at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: Thu, 06 Oct 2011 08:45:17 +0000
- Subject: [Bug libc/13246] RFE: strtold: do not include uninitialized bytes when converting "NaN"
- Auto-submitted: auto-generated
- References: <bug-13246-131@http.sourceware.org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=13246
--- Comment #6 from Jakub Jelinek <jakub at redhat dot com> 2011-10-06 08:45:17 UTC ---
First of all, it is impossible to do anything about this on the glibc side.
Just look at the generated code, it is:
call strtold@plt
fstpt (%rsp) # resp. fstpt (%esp)
For x86_64/i686 it would be sufficient if you used memset to clear the whole
var, then store the value into it after making sure the compiler doesn't
optimize it away. Perhaps something like:
union U { long double l; unsigned char c[sizeof (long double); };
volatile union U u;
size_t i;
for (i = 0; i < sizeof (long double); i++)
u.c[i] = 0;
u.l = strtold (...);
would do the job portably?
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.