https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123986

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
So the issue is we're analyzing the same node multiple times and that
makes

  vect_simd_clone_data _data;                      
  vect_simd_clone_data &data = slp_node->get_data (_data);

inconsistent with the intent to have this be _data when analyzing (cost_vec !=
NULL).  That causes a ->data to be overwritten by garbage at:

4538          slp_node->data = new vect_simd_clone_data (std::move (_data));

but the point is of course we should not be analyzing a node twice.  We're
doing this because we are also supporting a "rollback" of some sorts.

Testing a patch.

Reply via email to