From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id D48A23857808; Tue, 25 Aug 2020 02:44:01 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D48A23857808 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1598323441; bh=zj7NfU7i2M2mc1/LMoEDC4wn02X/IE3NaTaaOrbIkE4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Fw8oniIw4UGFe8/oPnLkZWdIor69LHyxsbXsqK2Hkodi64PRVj/dVE5s+QJFg9hf5 nId6SSr9Sl0gYuu9bB6CJyem/W3YZP3WpgEU3w2gsvOLBYiFGThaBLLALNmaKKb7Je 5SU+c8idju56zLwlZl1hg+TF+4A5Oiryevn9lqho= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/95428] ABI breakage for "base object constructor" for final classes Date: Tue, 25 Aug 2020 02:44:01 +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.0 X-Bugzilla-Keywords: ABI X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: RESOLVED X-Bugzilla-Resolution: FIXED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: jason at gcc dot gnu.org X-Bugzilla-Target-Milestone: 10.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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Aug 2020 02:44:01 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D95428 --- Comment #11 from CVS Commits --- The master branch has been updated by Jason Merrill : https://gcc.gnu.org/g:6b958ee0fd0e1b2a2b22784ffbe531ed74358a22 commit r11-2829-g6b958ee0fd0e1b2a2b22784ffbe531ed74358a22 Author: Jason Merrill Date: Fri Aug 21 16:23:03 2020 -0400 c++: Emit as-base 'tor symbols for final class. [PR95428] For PR70462 I stopped emitting the as-base constructor and destructor variants for final classes, because they can never be called. Except t= hat it turns out that clang calls base variants from complete variants, even for classes with virtual bases, and in some cases inlines them such that the calls to the base variant are exposed. So we need to continue to emit = the as-base symbols, even though they're unreachable by G++-compiled code. gcc/cp/ChangeLog: PR c++/95428 * optimize.c (populate_clone_array): Revert PR70462 change. (maybe_clone_body): Likewise. gcc/testsuite/ChangeLog: * g++.dg/other/final8.C: Adjust expected output.=