https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93112

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |jsm28 at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
With -fexcess-precision=standard on ia32 floating point is evaluated in long
double precision and in that case 1.034567 is actually
1.03456699999999999996149607772721878973243292421102523804e+0, and the
multiplication is done in long double too, plus for conversion to integral type
it is truncated to zero rather than rounded.
I must say I don't know if it is correct that interpret_float builds constants
already in the excess precision (so you end up with 1.034567L), rather than
being created in type and then converted to const_type.

Reply via email to