re PR middle-end/36578 (cast to long double not taken into account when result stored...
authorJoseph Myers <joseph@codesourcery.com>
Wed, 29 Oct 2008 17:05:42 +0000 (17:05 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Wed, 29 Oct 2008 17:05:42 +0000 (17:05 +0000)
commit20ded7a68b10f9c2d1aaa94e89df494bf0ce41a0
treef0bc48b745fe374d4990579d0ef02a2d88bb7799
parent669eeb28eaad6f3cb79d48a5e4176775befe0429
re PR middle-end/36578 (cast to long double not taken into account when result stored to a double)

PR middle-end/36578
* convert.c (convert_to_real): Do not optimize conversions of
binary arithmetic operations between binary and decimal
floating-point types.  Consider mode of target type in determining
decimal type for arithmetic.  Unless
flag_unsafe_math_optimizations, do not optimize binary conversions
where this may change rounding behavior.
* real.c (real_can_shorten_arithmetic): New.
* real.h (real_can_shorten_arithmetic): Declare.

testsuite:
* gcc.dg/dfp/convert-bfp-13.c, gcc.dg/dfp/convert-bfp-14.c,
gcc.dg/dfp/convert-dfp-fold-2.c, gcc.target/i386/pr36578-1.c,
gcc.target/i386/pr36578-2.c: New tests.

From-SVN: r141432
gcc/ChangeLog
gcc/convert.c
gcc/real.c
gcc/real.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/dfp/convert-bfp-13.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/dfp/convert-bfp-14.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/dfp/convert-dfp-fold-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr36578-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr36578-2.c [new file with mode: 0644]