On Thu, Apr 21, 2011 at 12:04 AM, Michael Matz <m...@suse.de> wrote: > Hi, > > I wrote: > >> Basically we have to set assembler names early also for TYPE_DECLs, we >> can't rely on the frontends langhook to do that after free_lang_data. >> >> Okay for trunk assuming regstrapping on x86_64-linux works? > > Patch retracted, doesn't even survive testsuite. The problem is that we > can't simply accept TYPE_DECLs for generating assembler names, because the > other frontends except C++ can't deal with that (they use the default > set_decl_assembler_name hook). Even conditionalizing on > lang_hooks.set_decl_assembler_name == lhd_set_decl_assembler_name > doesn't work, because mysteriously for C++ we'll get ICEs in the C++ > frontend itself when presented to mangle some TYPE_DECLs (namely when > flag_abi_version is set, mangle_decl unconditionally calls make_alias_for, > which in turn doesn't work with type_decls). > > It's all quite messy and a wonder why -g worked somewhat with -flto at all > for so long :-(
It's indeed messy ;) An alternate fix would be to have a gimple_decl_assembler_name, and reset the langhook to that variant. I'm testing a patch according to that. Richard. > > Ciao, > Michael. >