OSDN Git Service

2010-06-07 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 Jun 2010 13:10:10 +0000 (13:10 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 Jun 2010 13:10:10 +0000 (13:10 +0000)
* gimplify.c (gimplify_cleanup_point_expr): For empty body
and EH-only cleanup drop the cleanup instead of inserting it
unconditionally.

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

gcc/ChangeLog
gcc/gimplify.c

index 550bb70..a2abec1 100644 (file)
@@ -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
index cb4358c..354092a 100644 (file)
@@ -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;
            }