aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.h
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2019-11-25 11:13:08 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2019-11-25 11:13:08 +0100
commitd0b1b67aabc2b88b58a7485f79d16f9a6d4dd11c (patch)
tree7c3f46c77d2d21811420a8a0cdaf253c8089c76b /gcc/cgraph.h
parented649cda944c2ff0b77f0203bf83f106e930c5e8 (diff)
downloadgcc-d0b1b67aabc2b88b58a7485f79d16f9a6d4dd11c.zip
gcc-d0b1b67aabc2b88b58a7485f79d16f9a6d4dd11c.tar.gz
gcc-d0b1b67aabc2b88b58a7485f79d16f9a6d4dd11c.tar.bz2
ipa: Prevent materialization of clones with removed bodies (PR 92109)
2019-11-25 Martin Jambor <mjambor@suse.cz> PR ipa/92109 * cgraph.h (cgraph_node::remove_from_clone_tree): Declare. * cgraphclones.c (cgraph_node::remove_from_clone_tree): New method. (cgraph_materialize_clone): Move removel from clone tree to the the new method and use it instead. * ipa.c (symbol_table::remove_unreachable_nodes): When removing bodies of clones, also remove it from the clone tree. From-SVN: r278670
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r--gcc/cgraph.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index a4f1474..0d2442c 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -967,6 +967,10 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node
ipa_param_adjustments *param_adjustments,
const char * suffix, unsigned num_suffix);
+ /* Remove the node from the tree of virtual and inline clones and make it a
+ standalone node - not a clone any more. */
+ void remove_from_clone_tree ();
+
/* cgraph node being removed from symbol table; see if its entry can be
replaced by other inline clone. */
cgraph_node *find_replacement (void);