aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2007-10-08 23:56:00 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2007-10-08 23:56:00 +0000
commit43fd231088618774159342a0194f33b76c13e5e6 (patch)
treeadf9355ded579230f8be2867feac7d84e2b04dec /gcc
parent0e6c9eaa5c0c9bf00972834f3a47e5146bd47dee (diff)
downloadgcc-43fd231088618774159342a0194f33b76c13e5e6.zip
gcc-43fd231088618774159342a0194f33b76c13e5e6.tar.gz
gcc-43fd231088618774159342a0194f33b76c13e5e6.tar.bz2
tree-sra.c (scalarize_lsdt): Fix thinko in testing whether the original stmt can throw.
* tree-sra.c (scalarize_lsdt): Fix thinko in testing whether the original stmt can throw. From-SVN: r129143
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-sra.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9ccde30..8ec7444 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 764f70b..fed7fbd 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -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