aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2014-09-23 08:26:34 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2014-09-23 08:26:34 +0000
commit6c979aa1bf4cb88c7934cea3453802d5281f7dff (patch)
treead08b7b024a9e656193960bf75e4cc6a1408a0e4 /gcc
parenta547602430a7cdd78bfad557711532a795810b00 (diff)
downloadgcc-6c979aa1bf4cb88c7934cea3453802d5281f7dff.zip
gcc-6c979aa1bf4cb88c7934cea3453802d5281f7dff.tar.gz
gcc-6c979aa1bf4cb88c7934cea3453802d5281f7dff.tar.bz2
cfgcleanup.c (try_optimize_cfg): Do not remove label with LABEL_PRESERVE_P flag set.
gcc/ * cfgcleanup.c (try_optimize_cfg): Do not remove label with LABEL_PRESERVE_P flag set. From-SVN: r215498
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cfgcleanup.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ca76b17..61de16a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index a008168..9325ea0 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -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