aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphclones.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2013-01-17 12:43:14 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2013-01-17 12:43:14 +0100
commit8222c37ededfe0f55233898ecc7c4cc023f6389c (patch)
tree6eb8a1715d592561febe771539bf683003e002a1 /gcc/cgraphclones.c
parentc5e7e996fba2a45b4b36e8831c1d9dd4382d3b34 (diff)
downloadgcc-8222c37ededfe0f55233898ecc7c4cc023f6389c.zip
gcc-8222c37ededfe0f55233898ecc7c4cc023f6389c.tar.gz
gcc-8222c37ededfe0f55233898ecc7c4cc023f6389c.tar.bz2
re PR tree-optimization/55264 (ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak)
2013-01-17 Martin Jambor <mjambor@suse.cz> PR tree-optimizations/55264 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true for virtual methods. * ipa.c (symtab_remove_unreachable_nodes): Never return true for virtual methods before inlining is over. * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for virtual functions. * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as non-virtual. testsuite/ * g++.dg/ipa/pr55264.C: New test. From-SVN: r195262
Diffstat (limited to 'gcc/cgraphclones.c')
-rw-r--r--gcc/cgraphclones.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c
index 611bb81..30d02d1 100644
--- a/gcc/cgraphclones.c
+++ b/gcc/cgraphclones.c
@@ -319,6 +319,7 @@ cgraph_create_virtual_clone (struct cgraph_node *old_node,
TREE_PUBLIC (new_node->symbol.decl) = 0;
DECL_COMDAT (new_node->symbol.decl) = 0;
DECL_WEAK (new_node->symbol.decl) = 0;
+ DECL_VIRTUAL_P (new_node->symbol.decl) = 0;
DECL_STATIC_CONSTRUCTOR (new_node->symbol.decl) = 0;
DECL_STATIC_DESTRUCTOR (new_node->symbol.decl) = 0;
new_node->clone.tree_map = tree_map;