]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
utils.c (convert): Use fold_convert where appropriate.
authorRichard Guenther <rguenther@suse.de>
Mon, 5 Dec 2005 16:24:47 +0000 (16:24 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 5 Dec 2005 16:24:47 +0000 (16:24 +0000)
2005-12-05  Richard Guenther  <rguenther@suse.de>

* utils.c (convert): Use fold_convert where appropriate.

From-SVN: r108061

gcc/ada/ChangeLog
gcc/ada/utils.c

index d418de5f577b214b9af5c4c2ebf5d64798b2a175..3d978b53599a7f99c7ec6dd9438f7b30e588931f 100644 (file)
@@ -1,3 +1,7 @@
+2005-12-05  Richard Guenther  <rguenther@suse.de>
+
+       * utils.c (convert): Use fold_convert where appropriate.
+
 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
 
         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
index 0e0153ffb7312da923ec2b1720305fd2fff59615..f029dbfb05991b31eacf8beb11e894ff452ce074 100644 (file)
@@ -2789,9 +2789,8 @@ convert (tree type, tree expr)
   /* If the input is a biased type, adjust first.  */
   if (ecode == INTEGER_TYPE && TYPE_BIASED_REPRESENTATION_P (etype))
     return convert (type, fold (build2 (PLUS_EXPR, TREE_TYPE (etype),
-                                       fold (build1 (NOP_EXPR,
-                                                     TREE_TYPE (etype),
-                                                     expr)),
+                                       fold_convert (TREE_TYPE (etype),
+                                                     expr),
                                        TYPE_MIN_VALUE (etype))));
 
   /* If the input is a justified modular type, we need to extract the actual
@@ -2940,7 +2939,7 @@ convert (tree type, tree expr)
   else if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (etype)
           || (code == INTEGER_CST && ecode == INTEGER_CST
               && (type == TREE_TYPE (etype) || etype == TREE_TYPE (type))))
-    return fold (build1 (NOP_EXPR, type, expr));
+    return fold_convert (type, expr);
 
   switch (code)
     {
@@ -2948,7 +2947,7 @@ convert (tree type, tree expr)
       return build1 (CONVERT_EXPR, type, expr);
 
     case BOOLEAN_TYPE:
-      return fold (build1 (NOP_EXPR, type, gnat_truthvalue_conversion (expr)));
+      return fold_convert (type, gnat_truthvalue_conversion (expr));
 
     case INTEGER_TYPE:
       if (TYPE_HAS_ACTUAL_BOUNDS_P (type)
@@ -2956,10 +2955,10 @@ convert (tree type, tree expr)
              || (ecode == RECORD_TYPE && TYPE_CONTAINS_TEMPLATE_P (etype))))
        return unchecked_convert (type, expr, false);
       else if (TYPE_BIASED_REPRESENTATION_P (type))
-       return fold (build1 (CONVERT_EXPR, type,
-                            fold (build2 (MINUS_EXPR, TREE_TYPE (type),
-                                          convert (TREE_TYPE (type), expr),
-                                          TYPE_MIN_VALUE (type)))));
+       return fold_convert (type,
+                            fold_build2 (MINUS_EXPR, TREE_TYPE (type),
+                                         convert (TREE_TYPE (type), expr),
+                                         TYPE_MIN_VALUE (type)));
 
       /* ... fall through ... */