aboutsummaryrefslogtreecommitdiff
path: root/gcc/convert.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/convert.c')
-rw-r--r--gcc/convert.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/convert.c b/gcc/convert.c
index e98b657..b6a9d3d 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -326,7 +326,8 @@ convert_to_real (tree type, tree expr)
&& (flag_unsafe_math_optimizations
|| (TYPE_PRECISION (newtype) == TYPE_PRECISION (type)
&& real_can_shorten_arithmetic (TYPE_MODE (itype),
- TYPE_MODE (type)))))
+ TYPE_MODE (type))
+ && !excess_precision_type (newtype))))
{
expr = build2 (TREE_CODE (expr), newtype,
fold (convert_to_real (newtype, arg0)),