cfgcleanup.c (try_optimize_cfg): Do not remove label with LABEL_PRESERVE_P flag set.
authorIlya Enkovich <ilya.enkovich@intel.com>
Tue, 23 Sep 2014 08:26:34 +0000 (08:26 +0000)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Tue, 23 Sep 2014 08:26:34 +0000 (08:26 +0000)
gcc/
* cfgcleanup.c (try_optimize_cfg): Do not remove label
with LABEL_PRESERVE_P flag set.

From-SVN: r215498

gcc/ChangeLog
gcc/cfgcleanup.c

index ca76b1750443011b4a6101268d3a88cdbaee9857..61de16aeff3edca2d6c82ce1166c64ed6eca43e5 100644 (file)
@@ -1,3 +1,8 @@
+2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
+
+       * cfgcleanup.c (try_optimize_cfg): Do not remove label
+       with LABEL_PRESERVE_P flag set.
+
 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
            Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
            Anna Tikhonova  <anna.tikhonova@intel.com>
index a00816887535fc338816506c252e0f55379d7f26..9325ea07708a44c690c74ecdff536c22046ebf06 100644 (file)
@@ -2701,6 +2701,7 @@ try_optimize_cfg (int mode)
                  && (single_pred_edge (b)->flags & EDGE_FALLTHRU)
                  && !(single_pred_edge (b)->flags & EDGE_COMPLEX)
                  && LABEL_P (BB_HEAD (b))
+                 && !LABEL_PRESERVE_P (BB_HEAD (b))
                  /* If the previous block ends with a branch to this
                     block, we can't delete the label.  Normally this
                     is a condjump that is yet to be simplified, but