This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/13246] RFE: strtold: do not include uninitialized bytes when converting "NaN"


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]