$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; }