Details
-
Bug
-
Status: Closed
-
Trivial
-
Resolution: Fixed
-
4.1.2, 4.1.3, 4.1.4, 4.2.0
-
None
-
gcc/Linux/i386
-
Patch Available
-
Incorrect Behavior
Description
When I ran the INFINITY config test several times I found that the _RWSTD_LDBL_SNAN_BITS values are different from time to time.
Below is the result of 5 runs of the INFINITY test:
#define _RWSTD_LDBL_SNAN_BITS { '\x1', 0, 0, 0, 0, 0, 0, '\x80', '\xff', '\x7f', '\xf9', '\xbf' } #define _RWSTD_LDBL_SNAN_BITS { '\x1', 0, 0, 0, 0, 0, 0, '\x80', '\xff', '\x7f', '\xfd', '\xbf' } #define _RWSTD_LDBL_SNAN_BITS { '\x1', 0, 0, 0, 0, 0, 0, '\x80', '\xff', '\x7f', '\xf7', '\xbf' } #define _RWSTD_LDBL_SNAN_BITS { '\x1', 0, 0, 0, 0, 0, 0, '\x80', '\xff', '\x7f', '\xf2', '\xbf' } #define _RWSTD_LDBL_SNAN_BITS { '\x1', 0, 0, 0, 0, 0, 0, '\x80', '\xff', '\x7f', '\xe8', '\xbf' }
I suppose that actually used 80 bits from 96 bits of long double (sizeof (long double) == 12) and the latest two bytes contains the garbage from stack.
I think we need fill by zero values the bits fields of the flt_bits, dbl_bits and ldbl_bits unions (i.e. in union ctor).
Attachments
Attachments
Issue Links
- relates to
-
STDCXX-819 [MSVC] numeric_limits::quiet_NaN() and signaling_NaN() bits differ from native STL
- Open