This patch ensures we don't prematurely delete an abstract origin node, leading to creating a new one after LIPO linking when we invoke similar handling in symtab_remove_unreachable_nodes, which then does not have a resolved node. It makes the handling of such nodes equivalent to that in symtab_remove_unreachable_nodes.
Tested with regression tests and internal benchmarks. Ok for google/4_9 2014-08-23 Teresa Johnson <tejohn...@google.com> Google ref b/16731481 * cgraphunit.c (analyze_functions): Don't remove origin node. Index: cgraphunit.c =================================================================== --- cgraphunit.c (revision 214320) +++ cgraphunit.c (working copy) @@ -1051,6 +1051,7 @@ analyze_functions (void) struct cgraph_node *origin_node = cgraph_get_node (DECL_ABSTRACT_ORIGIN (decl)); origin_node->used_as_abstract_origin = true; + enqueue_node (origin_node); } } else -- Teresa Johnson | Software Engineer | tejohn...@google.com | 408-460-2413