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
>
>

Reply via email to