https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120629
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |lto --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- static const int max_clauses = 8; clause_t m_clause[max_clauses + 1]; ``` void ipa_predicate::stream_in (class lto_input_block *ib) { clause_t clause; int k = 0; do { gcc_assert (k <= max_clauses); clause = m_clause[k++] = streamer_read_uhwi (ib); } while (clause); /* Zero-initialize the remaining clauses in OUT. */ while (k <= max_clauses) m_clause[k++] = 0; } /* Write predicate P to OB. */ void ipa_predicate::stream_out (struct output_block *ob) { int j; for (j = 0; m_clause[j]; j++) { gcc_assert (j < max_clauses); streamer_write_uhwi (ob, m_clause[j]); } streamer_write_uhwi (ob, 0); } ``` ``` count2 = streamer_read_uhwi (&ib); gcc_assert (!info || !info->size_time_table.length ()); if (info && count2) info->size_time_table.reserve_exact (count2); for (j = 0; j < count2; j++) { class size_time_entry e; e.size = streamer_read_uhwi (&ib); e.time = sreal::stream_in (&ib); e.exec_predicate.stream_in (&ib); <--- e.nonconst_predicate.stream_in (&ib); if (info) info->size_time_table.quick_push (e); } ``` ``` streamer_write_uhwi (ob, info->size_time_table.length ()); for (i = 0; info->size_time_table.iterate (i, &e); i++) { streamer_write_uhwi (ob, e->size); e->time.stream_out (ob); e->exec_predicate.stream_out (ob); e->nonconst_predicate.stream_out (ob); } ``` Which stage is this? The code looks correct and writing and reading.