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);
 }

Reply via email to