From: Richard Biener Date: Mon, 8 Sep 2014 12:01:50 +0000 (+0000) Subject: re PR bootstrap/63204 (gtype-desc.c:887:40: error: 'struct loop' has no member named... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e45fcf805f672888582a67ae5b5e99dce292c581;p=gcc.git 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 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6a8aec7bdd8..f25d4e45915 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2014-09-08 Richard Biener + + 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 PR target/63190 diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c index 399420ddbde..6a488b3fefb 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 d62a4151cb0..eff02135b71 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 e3734abadce..b530120fdf8 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); }