This is the mail archive of the
mailing list for the GCC project.
Re: [trunk<-vta] Re: [vta,vta4.3,trunk?] defer computation of DECL_ASSEMBLER_NAME in dwarf2out
On Tue, Jun 2, 2009 at 05:14, Richard Guenther
> On Mon, Jun 1, 2009 at 10:04 AM, Alexandre Oliva <firstname.lastname@example.org> wrote:
>> On Sep 11, 2008, Alexandre Oliva <email@example.com> wrote:
>>> Another issue that came up in -fcompare-debug dumps. ÂA symbol whose
>>> assembler name didn't get computed when compiling without debug info
>>> had it computed when compiling with debug info. ÂIn C++, computing the
>>> assembler name sometimes causes templates to be instantiated, because
>>> of mangling. ÂThis is Bad (TM): debug info shouldn't ever affect
>>> template instantiation. ÂThis patch fixes it.
>> Ok for trunk?
> Please coordinate with LTO folks (and I'd like to hear C++ maintainer
> opinions). ÂISTR LTO has similar issues with DECL_ASSEMBLER_NAME.
In LTO, the assembler name is computed fairly early when removing all
FE data in pass_ipa_free_lang_data. Every decl that passes the test
need_assembler_name_p() is given one.
The rationale for this is that we cannot rely on the front end being
around when we are in gimple form (let alone in RTL). The FE
effectively disappears after pass_ipa_free_lang_data, to be replaced
with the gimple "front end". At that point, all the language hooks
get redirected to the gimple versions.