From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id C511D38493FE; Sat, 19 Nov 2022 20:29:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C511D38493FE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1668889749; bh=z/w61zdUxlSjwDm1W6rx/hpm9v3kSFID2CAht/ifEXI=; h=From:To:Subject:Date:In-Reply-To:References:From; b=AO2ARUqsfh9N8rgbNxNbmx6zQ2A6zTbleS9GLddXyFJPyPPT/yFHlmTGjhZkQaLZ3 4IufhQTkUXvYYv2x7Nrw8mMsx4FYTweSNk6Fx45cU0n/DLFNg5UvDfdPW2t6q/U3xf FNZz25KpTVbhUJ1cu1S+I7KSP3m8iUy7vJc+8hrI= From: "slyfox at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/107661] [13 Regression] lambdas get merged incorrectly in tempaltes, cause llvm-12 miscompilation since r13-3358-ge0403e95689af7 Date: Sat, 19 Nov 2022 20:29:09 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: wrong-code X-Bugzilla-Severity: blocker X-Bugzilla-Who: slyfox at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: jamborm at gcc dot gnu.org X-Bugzilla-Target-Milestone: 13.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D107661 --- Comment #12 from Sergei Trofimovich --- 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 =3D 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 edge_values; ipa_node_params *dest_info =3D ipa_node_params_sum->get (node); gcc_checking_assert (dest_info->ipcp_orig_node); dest_info =3D 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); }=