mirror of https://github.com/acidanthera/audk.git
b04aba1773
When running Enquire.efi, several errors similar to the following are produced: Maximum exponent = 128 Maximum number = 3.40282347e+38 *** WARNING: Possibly bad output from printf above expected value around 3.40282347e38, bit pattern: 11111111 11111111 01111111 01111111 sscanf gave -inf, bit pattern: 00000000 00000000 10000000 11111111 difference= inf Overflow doesn’t seem to generate a trap The memory allocation tests will also fail, sometimes leaving all available memory consumed. The correct output in the above example is: Maximum exponent = 128 Maximum number = 3.40282347e+38 Overflow doesn't seem to generate a trap The root cause is that all operations on values of Long or ULong type, within the gdtoa library, must be 32-bit operations. A previous change replaced the Long and ULong definitions with INTN and UINTN, respectively. While this is correct for a lot of Linux and NetBSD code, it was not correct for this library. This fix reverts the definitions of ULong and Long back to 32-bit types. A descriptive comment has also been added to the U union. Additional white-space has been added to tidy up the definitions of the word0 and word1 macros. Verified with Enquire.efi and the ISO/IEC C Library compliance Validation Suite. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Daryl McDaniel <daryl.mcdaniel@intel.com> Reviewed-by: Jaben Carsey <Jaben.carsey@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15765 6f19259b-4bc3-4df7-8a09-765794883524 |
||
---|---|---|
.. | ||
Ipf | ||
_strtof.c | ||
_strtold.c | ||
atof.c | ||
dmisc.c | ||
dtoa.c | ||
gdtoa.c | ||
gdtoa.h | ||
gdtoa.inf | ||
gdtoaimp.h | ||
gethex.c | ||
gmisc.c | ||
hd_init.c | ||
hexnan.c | ||
ldtoa.c | ||
misc.c | ||
smisc.c | ||
strtod.c | ||
strtodg.c | ||
strtof.c | ||
strtold_px.c | ||
strtold_subr.c | ||
strtopx.c | ||
sum.c | ||
ulp.c |