On Mon, Feb 17, 2020 at 1:16 PM Martin Liška <mli...@suse.cz> wrote: > > Hello. > > As mentioned in the PR, we end up with a void function > call that has set MALLOC attribute. That causes problems in RTL > expansion. > > I believe a proper fix is to drop the attribute when a callgraph > clone with void type is created. > > I would like to see Martin's comment about the hunk in propagate_malloc > which is maybe suboptimal and one can find a better way? > > Patch can bootstrap on x86_64-linux-gnu and survives regression tests. > It fixes LTO bootstrap on ppc64le.
Is the ipa-pure-const.c hunk really necessary? malloc_candidate_p shouldn't see any such function as candidate. If so it should be fixed there? Thanks, Richard. > Thanks, > Martin > > gcc/ChangeLog: > > 2020-02-17 Martin Liska <mli...@suse.cz> > > 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 (propagate_malloc): Do not set malloc flag > for void functions. > > gcc/testsuite/ChangeLog: > > 2020-02-17 Martin Liska <mli...@suse.cz> > > PR ipa/93583 > * gcc.dg/ipa/pr93583.c: New test. > --- > gcc/cgraph.c | 6 ++++++ > gcc/ipa-param-manipulation.c | 4 ++++ > gcc/ipa-pure-const.c | 9 ++++++--- > gcc/testsuite/gcc.dg/ipa/pr93583.c | 15 +++++++++++++++ > 4 files changed, 31 insertions(+), 3 deletions(-) > create mode 100644 gcc/testsuite/gcc.dg/ipa/pr93583.c > >