diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2007-10-08 23:56:00 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2007-10-08 23:56:00 +0000 |
commit | 43fd231088618774159342a0194f33b76c13e5e6 (patch) | |
tree | adf9355ded579230f8be2867feac7d84e2b04dec /gcc | |
parent | 0e6c9eaa5c0c9bf00972834f3a47e5146bd47dee (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-sra.c | 4 |
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 |