summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-06-07 13:10:10 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-06-07 13:10:10 +0000
commitae0595b089bfb006687b60a0a8a4e6420909424f (patch)
tree21421f80b97f7a40457ad01a25b77186f91f9ce0 /gcc
parentd94a3592d4b796aa86da74cda88de8dfaadddbf3 (diff)
downloadgcc-ae0595b089bfb006687b60a0a8a4e6420909424f.tar.gz
gimplify.c (gimplify_cleanup_point_expr): For empty body and EH-only cleanup drop the cleanup instead of inserting it...
2010-06-07 Richard Guenther <rguenther@suse.de> * gimplify.c (gimplify_cleanup_point_expr): For empty body and EH-only cleanup drop the cleanup instead of inserting it unconditionally. From-SVN: r160371
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gimplify.c7
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 550bb704984..a2abec15d11 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-06-07 Richard Guenther <rguenther@suse.de>
+
+ * gimplify.c (gimplify_cleanup_point_expr): For empty body
+ and EH-only cleanup drop the cleanup instead of inserting it
+ unconditionally.
+
2010-06-07 Ira Rosen <irar@il.ibm.com>
* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index cb4358ca9bd..354092ae429 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -5140,9 +5140,10 @@ gimplify_cleanup_point_expr (tree *expr_p, gimple_seq *pre_p)
{
/* Note that gsi_insert_seq_before and gsi_remove do not
scan operands, unlike some other sequence mutators. */
- gsi_insert_seq_before_without_update (&iter,
- gimple_wce_cleanup (wce),
- GSI_SAME_STMT);
+ if (!gimple_wce_cleanup_eh_only (wce))
+ gsi_insert_seq_before_without_update (&iter,
+ gimple_wce_cleanup (wce),
+ GSI_SAME_STMT);
gsi_remove (&iter, true);
break;
}