https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-01-13 CC| |jakub at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- This is caused by the @@ -1695,10 +1680,9 @@ if (!edge->inline_failed || !edge->callee->analyzed) continue; - /* Be sure that caches are maintained consistent. - We can not make this ENABLE_CHECKING only because it cause different - updates of the fibheap queue. */ - cached_badness = edge_badness (edge, false); +#ifdef ENABLE_CHECKING + /* Be sure that caches are maintained consistent. */ + sreal cached_badness = edge_badness (edge, false); reset_edge_growth_cache (edge); reset_node_growth_cache (edge->callee); @@ -1708,10 +1692,18 @@ current_badness = edge_badness (edge, false); gcc_assert (cached_badness == current_badness); gcc_assert (current_badness >= badness); +#else + current_badness = edge_badness (edge, false); +#endif changes in particular, clearly the old comment was correct. With --disable-checking --enable-stage1-checking defaults to yes,types and because of this #ifdef stage1 behaves differently from stage2. But it is certainly bad even if --disable-checking compiler behaves differently from --enable-checking=yes one. If I replace #ifdef ENABLE_CHECKING with #if 1 // ENABLE_CHECKING, --disable-checking bootstrap succeeds just fine.