This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Lazy allocation of DECL_ASSEMBLER_NAME


Geoff Keating wrote:

From: Zack Weinberg <zack@codesourcery.com>
Date: Mon, 01 Mar 2004 11:57:56 -0800





Geoff Keating <geoffk@geoffk.org> writes:



Likewise, I believe with Zack's c-decl changes, I believe that it
always returns the new DECL,


I can't speak to anything else here, but this is not true; I
considered that approach and rejected it. The thrust of the
(currently incomplete) work is now to always use the oldest decl,
adding information from later ones as necessary. Cases where that
does not happen are bugs - the bugs I've been trying to fix; the whole
problem is that the middle end is not prepared to cope with multiple
DECLs for the same object.



That does sound like a good plan. The difficulty will be in ensuring that the newer decl is not used before duplicate_decls is called on the pair of decls; in particular, this will require some changes to IMA, merge_translation_unit_decls will need to go away because duplicate_decls will have to be called when the decl is seen rather than later on. I've wanted to do this ever since we removed the GCC extension that made it necessary to do this as a final pass, but don't have time right now.

Is this going to be necessary for 3.4?

No.

Unfortunately, we hosed ourselves for 3.4. Zack started on this work to fix some problems in the C front end that have been there forever, and unfortunately didn't finish the project. So, now we have some old bugs fixed but we also have some regressions. As you say, it's too dramatic a change to try to fix all of the problems for 3.4, so we're going to have to live with some regressions.

--
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]