OSDN Git Service

* tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Oct 2007 23:56:00 +0000 (23:56 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Oct 2007 23:56:00 +0000 (23:56 +0000)
the original stmt can throw.

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

gcc/ChangeLog
gcc/tree-sra.c

index 9ccde30..8ec7444 100644 (file)
@@ -1,3 +1,8 @@
+2007-10-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
+       the original stmt can throw.
+
 2007-10-08  Geoffrey Keating  <geoffk@apple.com>
 
        * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
index 764f70b..fed7fbd 100644 (file)
@@ -2408,7 +2408,7 @@ sra_build_bf_assignment (tree dst, tree src)
       tmp2 = fold_build1 (BIT_NOT_EXPR, utype, mask);
       tmp2 = int_const_binop (RSHIFT_EXPR, tmp2, minshift, true);
       tmp2 = fold_convert (ut, tmp2);
-      tmp2 = fold_build2 (BIT_AND_EXPR, utype, tmp3, tmp2);
+      tmp2 = fold_build2 (BIT_AND_EXPR, ut, tmp3, tmp2);
 
       if (tmp3 != tmp2)
        {
@@ -3436,7 +3436,7 @@ scalarize_ldst (struct sra_elt *elt, tree other,
        {
          tree_stmt_iterator tsi;
          tree first, blist = NULL;
-         bool thr = (bsi->bb->flags & EDGE_COMPLEX) != 0;
+         bool thr = tree_could_throw_p (stmt);
 
          /* If the last statement of this BB created an EH edge
             before scalarization, we have to locate the first