From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4469 invoked by alias); 31 Dec 2003 14:06:48 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 4462 invoked from network); 31 Dec 2003 14:06:47 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 31 Dec 2003 14:06:47 -0000 Received: from drow by nevyn.them.org with local (Exim 4.30 #1 (Debian)) id 1Abgzl-000895-4V; Wed, 31 Dec 2003 09:06:45 -0500 Date: Wed, 31 Dec 2003 14:06:00 -0000 From: Daniel Jacobowitz To: Michael Elizabeth Chastain Cc: carlton@kealia.com, gdb-patches@sources.redhat.com Subject: Re: [patch/testsuite/cp] classes.exp: rewrite Message-ID: <20031231140645.GB31238@nevyn.them.org> Mail-Followup-To: Michael Elizabeth Chastain , carlton@kealia.com, gdb-patches@sources.redhat.com References: <20031231111559.B0A5B4B35A@berman.michael-chastain.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20031231111559.B0A5B4B35A@berman.michael-chastain.com> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-12/txt/msg00533.txt.bz2 On Wed, Dec 31, 2003 at 06:15:59AM -0500, Michael Chastain wrote: > classes.exp has a problem with the new default gcc abi, gcc abi 2. > I started fixing the problem and ended up rewriting most of the file. > > Here's a reminder: > > /* gcc abi 1 */ > class Whatever > { > public: > Whatever & operator=(const Whatever &); > Whatever(const Whatever &); > Whatever(); > int method (); > }; > > /* gcc abi 2*/ > class Whatever > { > public: > int method (); > Whatever & operator=(const Whatever &); > Whatever(const Whatever &); > Whatever(); > }; > > That is, with the new ABI, synthetic methods appear after the > user-defined methods rather than before. This really is an ABI change: > if a class has a synthetic virtual destructor, the vtable will be > ordered differently than it was before. > > gdb prints the synthetic methods for stabs+, but not dwarf-2. > There are about ten test scripts that get hit by this and need > new patterns. If we had classes with explicit destructors, you'd see the change in both stabs and dwarf2, I believe. I'm not quite sure about that though. Hmm, maybe not, maybe only the implicit one was affected. > This is wrong; conversion operators do not have types. This bug was > also in gdb 6.0. I need to KFAIL this before I commit. It's a bug in GDB. There's already a PR somewhere - I think it's referenced in templates.exp. I'll be fixing it in a little while. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer