static void process_references (struct ipa_ref_list *list, struct cgraph_node **first, struct varpool_node **first_varpool, bool before_inlining_p) { int i; struct ipa_ref *ref; for (i = 0; ipa_ref_list_reference_iterate (list, i, ref); i++) { if (ref->refered_type == IPA_REF_CGRAPH) { struct cgraph_node *node = ipa_ref_node (ref); if (!node->reachable && node->analyzed && (!DECL_EXTERNAL (node->decl) || before_inlining_p)) node->reachable = true; enqueue_cgraph_node (node, first); } else { struct varpool_node *node = ipa_ref_varpool_node (ref); if (!node->needed) { varpool_mark_needed_node (node); enqueue_varpool_node (node, first_varpool); } } } }
static void process_references (struct ipa_ref_list *list, symtab_node *first, bool before_inlining_p, struct pointer_set_t *reachable) { int i; struct ipa_ref *ref; for (i = 0; ipa_ref_list_reference_iterate (list, i, ref); i++) { if (is_a <cgraph_node> (ref->referred)) { struct cgraph_node *node = ipa_ref_node (ref); if (node->analyzed && (!DECL_EXTERNAL (node->symbol.decl) || node->alias || before_inlining_p)) pointer_set_insert (reachable, node); enqueue_node ((symtab_node) node, first, reachable); } else { struct varpool_node *node = ipa_ref_varpool_node (ref); if (node->analyzed && (!DECL_EXTERNAL (node->symbol.decl) || node->alias || before_inlining_p)) pointer_set_insert (reachable, node); enqueue_node ((symtab_node) node, first, reachable); } } }