From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3172 invoked by alias); 21 Jan 2004 16:49:37 -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 3148 invoked from network); 21 Jan 2004 16:49:36 -0000 Received: from unknown (HELO hawaii.kealia.com) (209.3.10.89) by sources.redhat.com with SMTP; 21 Jan 2004 16:49:36 -0000 Received: by hawaii.kealia.com (Postfix, from userid 2049) id 6752AC6C9; Wed, 21 Jan 2004 08:49:36 -0800 (PST) To: Paul Hilfinger Cc: gdb-patches@sources.redhat.com Subject: Re: [RFC] Proposed changes in symbol-handling for Ada References: <200311082255.hA8MtJK08216@otisco.McKusick.COM> <20040120101613.F2871F2945@nile.gnat.com> <20040121112215.AE278F2810@nile.gnat.com> From: David Carlton Date: Wed, 21 Jan 2004 16:49:00 -0000 In-Reply-To: <20040121112215.AE278F2810@nile.gnat.com> (Paul Hilfinger's message of "Wed, 21 Jan 2004 06:22:15 -0500 (EST)") Message-ID: User-Agent: Gnus/5.1002 (Gnus v5.10.2) XEmacs/21.4 (Rational FORTRAN, linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-01/txt/msg00587.txt.bz2 On Wed, 21 Jan 2004 06:22:15 -0500 (EST), Paul Hilfinger said: >> 3) Have Ada symbols save the demangled names of symbols after being >> forced to demangle them. This could cause a memory increase if you >> for some reason have to demangle lots of names. > That sounds entirely reasonable. >> (Hmm: where would you allocate the cached name from? You can't get at >> the appropriate obstack from the symbol, can you? > Actually, the only true problem here is that the obvious way of > answering this question---adding to the language-specific union a > new entry containing an obstack* / char* union plus a > flag---increases the size of a symbol (logically it doesn't have to, > but C layout and alignment rules apparently add some padding). To > avoid increasing its size, there is the aesthetically distateful > option of adding a flag byte AFTER the language-specific field; or > perhaps we could call it a union tag. Harumph. Harumph indeed. I know - we can grab one of the bits of the obstack*/char* as a tag bit! (Just joking, folks, just joking.) Is there any way to go from a bfd_section to an objfile? (After all, presumably the obstack that we'd use is the relevant objfile's symbol_obstack.) If that's not possible, we could store an objfile * in the language-specific union in the Ada case (instead of a char *) and then always retrieve the demangled names from the objfile's demangled names hashtable, instead of caching it in the symbol. (Inserting the names there first if they're not there already, of course.) That should work. David Carlton carlton@kealia.com