From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 745 invoked by alias); 12 Feb 2010 15:48:34 -0000 Received: (qmail 385 invoked by uid 48); 12 Feb 2010 15:48:18 -0000 Date: Fri, 12 Feb 2010 15:48:00 -0000 Message-ID: <20100212154818.384.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug debug/37237] Debug information for virtual destructors omits DW_AT_vtable_elem_location In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dodji at gcc dot gnu dot org" 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: 2010-02/txt/msg01182.txt.bz2 ------- Comment #1 from dodji at gcc dot gnu dot org 2010-02-12 15:48 ------- There are actually up to three destructors: - an in-charge one (or complete-object one) - a not-in-charge one - a deleting in-charge one The three of them are useful in different ways and in different circumstances. The destructor being represented in the DWARF output right now is the "abstract" one, i.e. the one that got cloned (at most) 3 times into the 3 different types of destructors. It doesn't have any DW_AT_vtable_elem_location precisely because that abstract version of destructor is not present in the vtable. The destructors present in vtable are the clones. We do not output those in the debug info today. Daniel, why would you prefer having the DW_AT_vtable_elem_location only for the in-charge one? We could chose to have all three of them being represented in the DWARF output but then there should be a way to say that they are different concrete instances of the abstract ~A destructor. Maybe by using the extension DW_AT_MIPS_clone_origin to make it point to the abstract constructor/destructor instance which a particular constructor/destructor clone implements? -- dodji at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dodji at gcc dot gnu dot org AssignedTo|dodji at gcc dot gnu dot org|unassigned at gcc dot gnu | |dot org Status|ASSIGNED |NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37237