From 79ee9826b3d11323eb5b2e6b2dfc892fefeeb2b7 Mon Sep 17 00:00:00 2001 From: Martin Jambor Date: Thu, 27 Jun 2013 15:49:28 +0200 Subject: re PR c++/57208 (Latest chromium compilation fails with enabled LTO) 2013-06-27 Martin Jambor PR lto/57208 * ipa-ref.h (ipa_maybe_record_reference): Declare. * ipa-ref.c (ipa_maybe_record_reference): New function. * cgraphclones.c (cgraph_create_virtual_clone): Use it. * ipa-cp.c (create_specialized_node): Record potential references from aggvals. * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies. From-SVN: r200468 --- gcc/cgraphclones.c | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) (limited to 'gcc/cgraphclones.c') diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c index f2a57fc..5c328b7 100644 --- a/gcc/cgraphclones.c +++ b/gcc/cgraphclones.c @@ -341,27 +341,8 @@ cgraph_create_virtual_clone (struct cgraph_node *old_node, || in_lto_p) new_node->symbol.unique_name = true; FOR_EACH_VEC_SAFE_ELT (tree_map, i, map) - { - tree var = map->new_tree; - symtab_node ref_node; - - STRIP_NOPS (var); - if (TREE_CODE (var) != ADDR_EXPR) - continue; - var = get_base_var (var); - if (!var) - continue; - if (TREE_CODE (var) != FUNCTION_DECL - && TREE_CODE (var) != VAR_DECL) - continue; - - /* Record references of the future statement initializing the constant - argument. */ - ref_node = symtab_get_node (var); - gcc_checking_assert (ref_node); - ipa_record_reference ((symtab_node)new_node, (symtab_node)ref_node, - IPA_REF_ADDR, NULL); - } + ipa_maybe_record_reference ((symtab_node) new_node, map->new_tree, + IPA_REF_ADDR, NULL); if (!args_to_skip) new_node->clone.combined_args_to_skip = old_node->clone.combined_args_to_skip; else if (old_node->clone.combined_args_to_skip) -- cgit v1.1