OSDN Git Service

* gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Oct 2008 22:57:27 +0000 (22:57 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Oct 2008 22:57:27 +0000 (22:57 +0000)
INTEGER_CSTs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141251 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/gimplify.c

index ce553c6..c55ccfa 100644 (file)
@@ -1,3 +1,8 @@
+2008-10-21  Jakub Jelinek  <jakub@redhat.com>
+
+       * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
+       INTEGER_CSTs.
+
 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
 
        * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
index c6a79fb..d2625a7 100644 (file)
@@ -6441,6 +6441,16 @@ gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
 
          /* Constants need not be gimplified.  */
        case INTEGER_CST:
+         /* Don't preserve TREE_OVERFLOW flags, it only inhibits
+            many optimizations and FEs should have taken care of
+            reporting all the required diagnostics.  */
+         if (TREE_OVERFLOW (*expr_p))
+           *expr_p = build_int_cst_wide (TREE_TYPE (*expr_p),
+                                         TREE_INT_CST_LOW (*expr_p),
+                                         TREE_INT_CST_HIGH (*expr_p));
+         ret = GS_ALL_DONE;
+         break;
+
        case REAL_CST:
        case FIXED_CST:
        case STRING_CST: