From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 58415386D611; Tue, 16 Jul 2024 16:19:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 58415386D611 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1721146767; bh=CV/zLcg2PtKkZ0+PWSF+rLCMuaXLz4v5fwSmcOuH2H4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=mSBElZCZrbqQH3SuoUFhSPoAqDl6RgoSNFDTY/vAMU6Di2vgjAW2ocyActhh4lSzS TaM8khTP8HIxeyXdsb5Xhwoc1Y/6b2ay6g7PKcdmpZX+ZpgbGjZxrc0D0CK9ANITRp Rrne/07MNQslTktahjdS4QpLpfM+3As6dLbTXvmI= From: "amacleod at redhat dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug bootstrap/115951] [15 Regression] pgo+lto enabled bootstrap fails building gnat (ICE in fold_stmt, at gimple-range-fold.cc:701) Date: Tue, 16 Jul 2024 16:19:26 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: bootstrap X-Bugzilla-Version: 15.0 X-Bugzilla-Keywords: build, ice-on-valid-code, needs-reduction X-Bugzilla-Severity: normal X-Bugzilla-Who: amacleod at redhat 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: 15.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=3D115951 --- Comment #3 from Andrew Macleod --- I think I have a handle on it.=20 The issue is statements like _80 =3D _79 =3D=3D 0 where in ADA a a boolean type is 8 bits and GCC's default boolean type is 1 bit. All through ranger we use the type of the LHS, but when the pointer operati= ons were split out for GCC 15 into their own type, we accidentally ended up with the relational operators using the default boolean type instead of generati= ng a result with the appropriate type. Thus for the above statement we were getting a 1 bit boolean for the RHS an= d an 8 bit boolean for the LHS, resulting in incompatible ranges (which require identical precision) I'll try making those adjustments and see if it bootstraps for me.=