$subject, as suggested by Joseph and Jakub

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2014-11-03  Richard Biener  <rguent...@suse.de>

        * tree-eh.c (operation_could_trap_helper_p): Handle conversions
        like ordinary operations.
        * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
        as NOP_EXPR.

Index: gcc/tree-eh.c
===================================================================
--- gcc/tree-eh.c       (revision 217046)
+++ gcc/tree-eh.c       (working copy)
@@ -2436,11 +2436,6 @@ operation_could_trap_helper_p (enum tree
     case UNEQ_EXPR:
       return honor_snans;
 
-    case CONVERT_EXPR:
-    case FIX_TRUNC_EXPR:
-      /* Conversion of floating point might trap.  */
-      return honor_nans;
-
     case NEGATE_EXPR:
     case ABS_EXPR:
     case CONJ_EXPR:
Index: gcc/gimplify.c
===================================================================
--- gcc/gimplify.c      (revision 217046)
+++ gcc/gimplify.c      (working copy)
@@ -1739,6 +1739,10 @@ gimplify_conversion (tree *expr_p)
     *expr_p = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (*expr_p),
                               TREE_OPERAND (*expr_p, 0));
 
+  /* Canonicalize CONVERT_EXPR to NOP_EXPR.  */
+  if (TREE_CODE (*expr_p) == CONVERT_EXPR)
+    TREE_SET_CODE (*expr_p, NOP_EXPR);
+
   return GS_OK;
 }
 

Reply via email to