From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14984 invoked by alias); 31 Aug 2011 15:28:16 -0000 Received: (qmail 14976 invoked by uid 22791); 31 Aug 2011 15:28:15 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 31 Aug 2011 15:28:02 +0000 From: "congruwer at yahoo dot co.uk" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/50243] vtable for pure abstract class (interface) shouldn't be emitted Date: Wed, 31 Aug 2011 15:44:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: congruwer at yahoo dot co.uk X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-08/txt/msg02563.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50243 --- Comment #2 from congruwer at yahoo dot co.uk 2011-08-31 15:27:52 UTC --- Not in this case. The example is set up such that the vtable is invisible, even if it is emitted. Since no one can access it, it cannot be required. (I have searched through the ABI documentation again, and it doesn't seem to require the presence of unreferenced vtables. And if it did, that would be a logical contradiction.) There is, in principle, an absolute guarantee that the fields of iface's vtable will never get accessed, and that ___cxa_pure_virtual will never get called, or at least not through iface's vtable.