diff options
author | jamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-01-17 11:43:14 +0000 |
---|---|---|
committer | jamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-01-17 11:43:14 +0000 |
commit | 3f442959db155a0ef27112734f7183aacbdec95d (patch) | |
tree | 6eb8a1715d592561febe771539bf683003e002a1 /gcc/cgraph.h | |
parent | 2f1821439fa891e0334f588af97aa5d40bdc8f07 (diff) | |
download | gcc-3f442959db155a0ef27112734f7183aacbdec95d.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195262 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r-- | gcc/cgraph.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 87595701654..5df7fb478b4 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -1164,6 +1164,7 @@ cgraph_only_called_directly_or_aliased_p (struct cgraph_node *node) gcc_assert (!node->global.inlined_to); return (!node->symbol.force_output && !node->symbol.address_taken && !node->symbol.used_from_other_partition + && !DECL_VIRTUAL_P (node->symbol.decl) && !DECL_STATIC_CONSTRUCTOR (node->symbol.decl) && !DECL_STATIC_DESTRUCTOR (node->symbol.decl) && !node->symbol.externally_visible); |