https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105399

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:b85e79dce149df68b92ef63ca2a40ff1dfa61396

commit r12-8312-gb85e79dce149df68b92ef63ca2a40ff1dfa61396
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Apr 28 15:45:33 2022 +0200

    cgraph: Don't verify semantic_interposition flag for aliases [PR105399]

    The following testcase ICEs, because the ctors during cc1plus all have
    !opt_for_fn (decl, flag_semantic_interposition) - they have NULL
    DECL_FUNCTION_SPECIFIC_OPTIMIZATION (decl) and optimization_default_node
    is for -Ofast and so has flag_semantic_interposition cleared.
    During free lang data, we set DECL_FUNCTION_SPECIFIC_OPTIMIZATION (decl)
    for the ctor which has body (or for thunks), but don't touch it for
    aliases.
    During lto1 optimization_default_node reflects the lto1 flags which
    are -O2 rather than -Ofast and so has flag_semantic_interposition
    set, for the ctor which has body that makes no difference, but as the
    alias doesn't still have DECL_FUNCTION_SPECIFIC_OPTIMIZATION (decl) set,
    we now trigger this verification check.

    The following patch just doesn't verify it for aliases during lto1.
    Another possibility would be to set DECL_FUNCTION_SPECIFIC_OPTIMIZATION
(decl)
    during free lang data even for aliases.

    2022-04-28  Jakub Jelinek  <ja...@redhat.com>

            PR lto/105399
            * cgraph.cc (cgraph_node::verify_node): Don't verify
            semantic_interposition flag against
            opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.

            * g++.dg/lto/pr105399_0.C: New test.

Reply via email to