On Fri, Dec 01, 2017 at 01:08:35AM +0000, Robert Elz wrote: > Module Name: src > Committed By: kre > Date: Fri Dec 1 01:08:35 UTC 2017 > > Modified Files: > src/tests/lib/libc/locale: t_sprintf.c > > Log Message: > Since the C standard allows for intermediate floating results to contain > more precision bits than the data type expects, but (kind of obviously) > does not allow such values to be stored in memory, expecting the value > returned from strtod() (an intermediate result) to be identical (that is, > equal) to a stored value is incorrect.
This is *not* true. With C11 the standard is very explicit that return must discard excessive precision. Even before, it was implied that there is an implicit cast. Joerg