From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id A1F483858C00; Fri, 11 Aug 2023 15:29:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A1F483858C00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1691767752; bh=OCv09pR9tT1c2Jics1DoMs4N/AaZy+QIn1t5cQDKty8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=ghDYw1LUcoawk+zyIYl7u97D/axPRR0Ygb8ZDgSBFC0XVMW+FRMuPiP6uaOxyjO2N hqBcr2gPgPZt2gXhx8BoIcVUGhuxgEGWM29K4+VWFEfT7ntPJ4KDFKbbWMJ37sBO5s J3R5iwQLGAbk1/0eqAAcKtAo5PFnEcpVnueU4pY8= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug libgcc/110956] [13/14 regression] gcc_assert is hit at gcc-13.2.0/libgcc/unwind-dw2-fde.c#L291 with some special library Date: Fri, 11 Aug 2023 15:29:12 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libgcc X-Bugzilla-Version: 13.2.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 13.3 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=3D110956 --- Comment #12 from CVS Commits --- The releases/gcc-13 branch has been updated by Jeff Law : https://gcc.gnu.org/g:ab8fed849ab345974e5b83472749ac1393878f71 commit r13-7709-gab8fed849ab345974e5b83472749ac1393878f71 Author: Thomas Neumann Date: Fri Aug 11 09:20:27 2023 -0600 preserve base pointer for __deregister_frame [PR110956] Original bug report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D110= 956 Rainer Orth successfully tested the patch on Solaris with a full bootst= rap. Some uncommon unwinding table encodings need to access the base pointer for address computations. We do not have that information in calls to __deregister_frame_info_bases, and previously simply used nullptr as base pointer. That is usually fine, but for some Solaris i386 shared libraries that results in wrong address computations. To fix this problem we now associate the unwinding object with the table pointer itself, which is always known, in addition to the PC range. When deregistering a frame, we first locate the object using the table pointer, and then use the base pointer stored within the object to compute the PC range. libgcc/ChangeLog: PR libgcc/110956 * unwind-dw2-fde.c: Associate object with address of unwinding table.=