http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46221
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | --- Comment #12 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-08 13:32:24 UTC --- The first issue I see is that we reclaim the cgraph nodes that constitute aliases (even though they are TREE_PUBLIC): Reclaiming functions: wobbly jelly The 2nd issue is that in remove_unreachable_alias_pairs we remove pairs for decls that are !DECL_EXTERNAL (huh, I supposed that's to be for _targets_ that are not external!). As we have reclaimed jelly, the target for wobbly isn't available and thus we remove the alias. Now, alias-pairs are indeed a complete mess and need to be re-done properly integrated with cgraph/varpool and ipa-references. I have a ha^Wpatch that makes us emit instead > ./cc1 -quiet t.c -O -fdump-ipa-all-details t.c:4:13: error: 'wobbly' aliased to undefined symbol 'jelly' haha, because find_decl_and_mark_needed is stupid as well. Bah. We really need to avoid throwing away the cgraph node. But the cgraph code is messy^2 as well. Bah. I have a pa^Whack.