From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 905543858C50; Fri, 23 Feb 2024 19:04:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 905543858C50 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1708715080; bh=ps7iXdT/WsGxFR5bYY/XpJTc1w9I4HnkHqbT+WFn7+E=; h=From:To:Subject:Date:In-Reply-To:References:From; b=kYduUxJutKAx4JvfsoawvB7EBbdW4v2cmVZTwQzsF7fRRJzkC7BP8C2QSMZPXIGWU rKztpYFthjXvxklsZs9OTSKpZNQxbOUkrxj/n+ND9y0cCBILtltInF0UHOTlfnmSJc i5Dy2wWJ5f0zHwvynGotg5L9X6IocnrxDNj6M6Tw= From: "tnfchris at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/114081] [14 regression] ICE in verify_dominators when building php-8.3.3 (error: dominator of 16 should be 111, not 3) since r14-6822 Date: Fri, 23 Feb 2024 19:04:39 +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: 14.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: tnfchris at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: tnfchris at gcc dot gnu.org X-Bugzilla-Target-Milestone: 14.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: assigned_to 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=3D114081 Tamar Christina changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |tnfchris at gcc dot= gnu.org --- Comment #6 from Tamar Christina --- slightly cleaned up testcase --- typedef struct filter_list_entry { const char *name; int id; void (*function)(); } filter_list_entry; static const filter_list_entry filter_list[9] =3D {0}; void php_zval_filter(int filter, int id1) { filter_list_entry filter_func; int size =3D 9; for (int i =3D 0; i < size; ++i) { if (filter_list[i].id =3D=3D filter) { filter_func =3D filter_list[i]; goto done; } } #pragma GCC novector for (int i =3D 0; i < size; ++i) { if (filter_list[i].id =3D=3D 0x0204) { filter_func =3D filter_list[i]; goto done; } } done: if (!filter_func.id) filter_func.function(); } --- seems to happen because it's doing an inner loop vect with two loops that h= ave early exits to the same destination. if (multiple_exits_p) { update_loop =3D new_loop; doms =3D get_all_dominated_blocks (CDI_DOMINATORS, loop->header); for (unsigned i =3D 0; i < doms.length (); ++i) if (flow_bb_inside_loop_p (loop, doms[i])) doms.unordered_remove (i); } was supposed to update the dominators but something goes wrong. Mine, but for monday..=