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

--- Comment #12 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>:

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

commit r16-365-gdba5d112691a3e10b722468d94fffeda0fdbb818
Author: Andrew Pinski <quic_apin...@quicinc.com>
Date:   Fri May 2 09:46:24 2025 -0700

    simplify-rtl: Fix crash due to simplify_with_subreg_not [PR120059]

    r16-286-gd84fbc516ea57d added a call to simplify_gen_subreg but didn't
    check if the result of simplify_gen_subreg was non-null.
simplify_gen_subreg
    can return NULL if the subreg would be not valid. In the case below we had
    a hard register for the SSE register xmm0 of mode SI and doing a subreg to
    QI mode but QImode is not a valid mode for the SSE register so
simplify_gen_subreg
    would return NULL.

    This adds the obvious check.

    Pushed as obvious after bootstrap/test on x86_64-linux-gnu.

            PR rtl-optimization/120059

    gcc/ChangeLog:

            * simplify-rtx.cc (simplify_with_subreg_not): Check the result
            of simplify_gen_subreg.

    gcc/testsuite/ChangeLog:

            * gcc.dg/torture/pr120059-1.c: New test.

    Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>

Reply via email to