diff options
author | Martin Liska <mliska@suse.cz> | 2020-02-18 14:39:41 +0100 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2020-02-18 14:39:41 +0100 |
commit | 33351ff9faa21c4c1af377d661a52ac0ce366db3 (patch) | |
tree | 7d760e87a084594b68ebff4ced557ee2ffb57460 /gcc/ipa-pure-const.c | |
parent | ea0b12523d0d9a9059b5173ce9653b92ddfb284f (diff) | |
download | gcc-33351ff9faa21c4c1af377d661a52ac0ce366db3.zip gcc-33351ff9faa21c4c1af377d661a52ac0ce366db3.tar.gz gcc-33351ff9faa21c4c1af377d661a52ac0ce366db3.tar.bz2 |
Drop MALLOC attribute for void functions.
PR ipa/93583
* cgraph.c (cgraph_node::verify_node): Verify MALLOC attribute
and return type of functions.
* ipa-param-manipulation.c (ipa_param_adjustments::adjust_decl):
Drop MALLOC attribute for void functions.
* ipa-pure-const.c (funct_state_summary_t::duplicate): Drop
malloc_state for a new VOID clone.
PR ipa/93583
* gcc.dg/ipa/pr93583.c: New test.
Diffstat (limited to 'gcc/ipa-pure-const.c')
-rw-r--r-- | gcc/ipa-pure-const.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c index ccd0918..564c662 100644 --- a/gcc/ipa-pure-const.c +++ b/gcc/ipa-pure-const.c @@ -1157,11 +1157,14 @@ funct_state_summary_t::insert (cgraph_node *node, funct_state_d *state) /* Called when new clone is inserted to callgraph late. */ void -funct_state_summary_t::duplicate (cgraph_node *, cgraph_node *, +funct_state_summary_t::duplicate (cgraph_node *, cgraph_node *dst, funct_state_d *src_data, funct_state_d *dst_data) { new (dst_data) funct_state_d (*src_data); + if (dst_data->malloc_state == STATE_MALLOC + && VOID_TYPE_P (TREE_TYPE (TREE_TYPE (dst->decl)))) + dst_data->malloc_state = STATE_MALLOC_BOTTOM; } |