From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id C78A3385841D; Tue, 27 Jun 2023 08:52:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C78A3385841D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1687855960; bh=M9Zdy1YjcuieBmOxxx2XyZ1QRnWKTtcO1WSG4Ezf0aA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=pmKXFR19nYMey3nInhFqqcaKtSH2kS0vhweMaOkDSQNoc0KrH288qdwxYkFN8mhMZ UqzchD2O5XIlr/MOxLlY644KBg6zyn21tx+nuAIIezbNPVbXEYYELk8HFEZa8r//qm xIO/gCuz7ZLhNd47Z6CNnPUvGOdVo1YiTGeEgX0I= From: "iains at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/110406] d: Wrong code-gen returning POD structs by value Date: Tue, 27 Jun 2023 08:52:40 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 13.1.0 X-Bugzilla-Keywords: ABI X-Bugzilla-Severity: normal X-Bugzilla-Who: iains at gcc dot gnu.org 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: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc 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=3D110406 Iain Sandoe changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |iains at gcc dot gnu.org --- Comment #11 from Iain Sandoe --- If I remember correctly, the underlying issue is that D always has a vtable pointer for a "class" whereas C++ only adds one if needed (i.e. there are actual virtual methods) So we really need to use the 'struct' tag to D for classes without virtual methods that need to interoperate with C++. I think that then D will lay t= hem out without the vtable pointer. We had a fix for this for Darwin - which does not seem to have made upstream just yet. Restesting (there's an unrelated bootstrap regression to work around).=