From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id CC3473858C31; Sun, 29 Jan 2023 00:01:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CC3473858C31 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1674950472; bh=+FNl4SpADckYbUG/PuXoXqw3LvM1u7WGJNqLiUn9vOA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=YNbKlcf0xrWRwkJkRQyJafsW8HhvmKwQQiH+lNPJ84W84mbZ5FyId6u/9H0VX+Tqw 1YuS+KjWRrEBXdo3Rr+8DXKBTrlrCTpLL5sd8Qv/EiepGJSxjMeBiz7KmcGZQbLlWR UFDAqABgF0FdMM9INsJ6XIs6AgBVQ2kftsh4iBro= From: "hubicka at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug ipa/108511] [13 regression] ICE in possibly_call_in_translation_unit_p, at cgraph.cc:4184 since r13-5285-g106f99406312d7ed Date: Sun, 29 Jan 2023 00:01:08 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: ipa X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: hubicka at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: unassigned 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=3D108511 --- Comment #6 from Jan Hubicka --- The function is used to discard early summaries that will lead to external calls. This saves some memory allocations. At this stage we have identified prevailing symbols and they are first in t= he next_sharing_asm_name lists. So the code looks it up and it ices because t= here is an external reference from one unit while previaling symbol is not publi= c. It happens with -r only since there we do not have resolution info. Relaxing the assert to TREE_PUBLIC || DECL_EXTERNAL is safe and I guess eas= iest way to get around.=