https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107661
--- Comment #12 from Sergei Trofimovich <slyfox at gcc dot gnu.org> --- Testing the following: --- a/gcc/ipa-cp.cc +++ b/gcc/ipa-cp.cc @@ -5869,37 +5869,37 @@ cgraph_edge_brings_all_scalars_for_node (struct cgraph_edge *cs, /* Determine whether CS also brings all aggregate values that NODE is specialized for. */ static bool cgraph_edge_brings_all_agg_vals_for_node (struct cgraph_edge *cs, struct cgraph_node *node) { ipcp_transformation *ts = ipcp_get_transformation_summary (node); if (!ts || vec_safe_is_empty (ts->m_agg_values)) return true; const ipa_argagg_value_list existing (ts->m_agg_values); auto_vec<ipa_argagg_value, 32> edge_values; ipa_node_params *dest_info = ipa_node_params_sum->get (node); gcc_checking_assert (dest_info->ipcp_orig_node); dest_info = ipa_node_params_sum->get (dest_info->ipcp_orig_node); push_agg_values_from_edge (cs, dest_info, &edge_values, &existing); const ipa_argagg_value_list avl (&edge_values); - return avl.superset_of_p (existing); + return existing.superset_of_p (avl); }