aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-09-08 12:01:50 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-09-08 12:01:50 +0000
commite45fcf805f672888582a67ae5b5e99dce292c581 (patch)
treeae558fb3673982563bad8ffee2ad384c8e98e649 /gcc
parent0877451899153787932c99177a4933922cef620d (diff)
downloadgcc-e45fcf805f672888582a67ae5b5e99dce292c581.zip
gcc-e45fcf805f672888582a67ae5b5e99dce292c581.tar.gz
gcc-e45fcf805f672888582a67ae5b5e99dce292c581.tar.bz2
re PR bootstrap/63204 (gtype-desc.c:887:40: error: 'struct loop' has no member named 'former_header' breaks bootstrap)
2014-09-08 Richard Biener <rguenther@suse.de> PR bootstrap/63204 * cfgloop.c (mark_loop_for_removal): Track former header unconditionally. * cfgloop.h (struct loop): Add former_header member unconditionally. * loop-init.c (fix_loop_structure): Enable bogus loop removal diagnostic unconditionally. From-SVN: r215012
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/cfgloop.c2
-rw-r--r--gcc/cfgloop.h2
-rw-r--r--gcc/loop-init.c4
4 files changed, 9 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6a8aec7..f25d4e4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2014-09-08 Richard Biener <rguenther@suse.de>
+
+ PR bootstrap/63204
+ * cfgloop.c (mark_loop_for_removal): Track former header
+ unconditionally.
+ * cfgloop.h (struct loop): Add former_header member unconditionally.
+ * loop-init.c (fix_loop_structure): Enable bogus loop removal
+ diagnostic unconditionally.
+
2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
PR target/63190
diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c
index 399420d..6a488b3 100644
--- a/gcc/cfgloop.c
+++ b/gcc/cfgloop.c
@@ -1927,9 +1927,7 @@ bb_loop_depth (const_basic_block bb)
void
mark_loop_for_removal (loop_p loop)
{
-#ifdef ENABLE_CHECKING
loop->former_header = loop->header;
-#endif
loop->header = NULL;
loop->latch = NULL;
loops_state_set (LOOPS_NEED_FIXUP);
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index d62a415..eff0213 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -194,13 +194,11 @@ struct GTY ((chain_next ("%h.next"))) loop {
/* Number of iteration analysis data for RTL. */
struct niter_desc *simple_loop_desc;
-#ifdef ENABLE_CHECKING
/* For sanity checking during loop fixup we record here the former
loop header for loops marked for removal. Note that this prevents
the basic-block from being collected but its index can still be
reused. */
basic_block former_header;
-#endif
};
/* Flags for state of loop structure. */
diff --git a/gcc/loop-init.c b/gcc/loop-init.c
index e3734ab..b530120 100644
--- a/gcc/loop-init.c
+++ b/gcc/loop-init.c
@@ -245,12 +245,10 @@ fix_loop_structure (bitmap changed_bbs)
}
/* Remove the loop. */
-#ifdef ENABLE_CHECKING
if (loop->header)
loop->former_header = loop->header;
else
gcc_assert (loop->former_header != NULL);
-#endif
loop->header = NULL;
flow_loop_tree_node_remove (loop);
}
@@ -278,7 +276,6 @@ fix_loop_structure (bitmap changed_bbs)
FOR_EACH_VEC_ELT (*get_loops (cfun), i, loop)
if (loop && loop->header == NULL)
{
-#ifdef ENABLE_CHECKING
if (dump_file
&& ((unsigned) loop->former_header->index
< basic_block_info_for_fn (cfun)->length ()))
@@ -306,7 +303,6 @@ fix_loop_structure (bitmap changed_bbs)
former_header->loop_father->header->index);
}
}
-#endif
(*get_loops (cfun))[i] = NULL;
flow_loop_free (loop);
}