From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 4238C384D997; Sat, 19 Nov 2022 01:37:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4238C384D997 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1668821879; bh=ros1pWg68YDVeW9SYH5xg1Pr4n2LG85h+TsckggIMcA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=kfQc2expiANLCLX38pKhbgorqGOfeTfFGRwhAgx3HPcb8Pih053Hs/j8udAjVy1QM DXDCYodqwEgm2YgV1Vei9Cd6UqA6IhPTpeSKfugisagTZ0bUsLgfYzQAPF4o/D2v3H adcMtX77zFI2Ta5wLUFn/sLyQ2DTMavgeARXnr6M= From: "pokechu022+gccbugzilla at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/107755] ICE: in fold_convert_loc, at fold-const.c:2435, with -Wlogical-op, implicit user-defined conversion operator, template function, logical operator, and conditional operator Date: Sat, 19 Nov 2022 01:37:59 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 10.3.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: pokechu022+gccbugzilla at gmail dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cf_known_to_fail cf_known_to_work 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=3D107755 Pokechu22 changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |10.3.0, 12.2.0, 4.8.1, | |9.4.0 Known to work| |4.7.4 --- Comment #1 from Pokechu22 --- Here are a few cases that would be useful to include in a test: ``` return (!false && (false ? a : b)); return (!true && (false ? a : b)); return (!false || (false ? a : b)); return (!true || (false ? a : b)); return (x && (y ? a : b)); return (x || (y ? a : b)); ``` As an aside, `(false | (false ? a : b))` (where a is bool and b is Foo) use= d to cause an ICE (confirmed in 4.7.4, 4.8.1, and 5.5). This was fixed in or bef= ore 6.1. I can't find a bug report corresponding to that issue either, but it probably should be verified that that doesn't regress either.=