This avoids some more TREE_OVERFLOWs in the IL (which now confuses IPA
VRP).

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

Richard.

2016-09-22  Richard Biener  <rguent...@suse.de>

        PR middle-end/77677
        * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
        from constant folding results.
        (gimple_resimplify2): Likewise.
        (gimple_resimplify3): Likewise.

Index: gcc/gimple-match-head.c
===================================================================
--- gcc/gimple-match-head.c     (revision 240342)
+++ gcc/gimple-match-head.c     (working copy)
@@ -89,6 +89,8 @@ gimple_resimplify1 (gimple_seq *seq,
       if (tem != NULL_TREE
          && CONSTANT_CLASS_P (tem))
        {
+         if (TREE_OVERFLOW_P (tem))
+           tem = drop_tree_overflow (tem);
          res_ops[0] = tem;
          res_ops[1] = NULL_TREE;
          res_ops[2] = NULL_TREE;
@@ -134,6 +136,8 @@ gimple_resimplify2 (gimple_seq *seq,
       if (tem != NULL_TREE
          && CONSTANT_CLASS_P (tem))
        {
+         if (TREE_OVERFLOW_P (tem))
+           tem = drop_tree_overflow (tem);
          res_ops[0] = tem;
          res_ops[1] = NULL_TREE;
          res_ops[2] = NULL_TREE;
@@ -194,6 +198,8 @@ gimple_resimplify3 (gimple_seq *seq,
       if (tem != NULL_TREE
          && CONSTANT_CLASS_P (tem))
        {
+         if (TREE_OVERFLOW_P (tem))
+           tem = drop_tree_overflow (tem);
          res_ops[0] = tem;
          res_ops[1] = NULL_TREE;
          res_ops[2] = NULL_TREE;

Reply via email to