diff options
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index f5bd659..3a7053e 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -5214,6 +5214,12 @@ fold_inf_compare (enum tree_code code, tree type, tree arg0, tree arg1) if (! HONOR_NANS (mode)) return fold (build2 (neg ? GE_EXPR : LE_EXPR, type, arg0, build_real (TREE_TYPE (arg0), max))); + + /* The transformation below creates non-gimple code and thus is + not appropriate if we are in gimple form. */ + if (in_gimple_form) + return NULL_TREE; + temp = fold (build2 (neg ? LT_EXPR : GT_EXPR, type, arg0, build_real (TREE_TYPE (arg0), max))); return fold (build1 (TRUTH_NOT_EXPR, type, temp)); |