From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id BC21D386101C; Mon, 24 Aug 2020 21:44:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BC21D386101C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1598305472; bh=zensuCwJ/zMKFZ7HALidTdKwvpLWY6h2rqM/Zai0jGc=; h=From:To:Subject:Date:In-Reply-To:References:From; b=KKWfrGu5PEPF0xUUDH942VymXa8AK3/2e3ju+3LArump63+Rr/BgmJvKGfna7ggax sNwMa8iFVk7mJFLPK8RRnHy9VakPixZeyrePQrY7cydmfh2GZp1J9UBBALmFShKIOp lWWv18RTQUl/bkxZdUSbHSDGdtbMpGFma5ItUguQ= 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: Mon, 24 Aug 2020 21:44:32 +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: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: jason at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- 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: Mon, 24 Aug 2020 21:44:32 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D95428 --- Comment #9 from CVS Commits --- The releases/gcc-10 branch has been updated by Jason Merrill : https://gcc.gnu.org/g:d94796352234def681a34eef99dad18bccecbca7 commit r10-8659-gd94796352234def681a34eef99dad18bccecbca7 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.=