OSDN Git Service

2009-04-07 Bob Duff <duff@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / convert.c
index 278305d..b6a9d3d 100644 (file)
@@ -1,6 +1,6 @@
 /* Utility routines for data type conversion for GCC.
    Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1997, 1998,
-   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -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)),