[Bug debug/104557] [12 Regression] ICE: in simplify_subreg, at simplify-rtx.cc:7324 with -O -g

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue May 10 08:24:24 GMT 2022


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

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:741cc95e8b27cc134fa4f027eb8718feb49f7cc5

commit r10-10685-g741cc95e8b27cc134fa4f027eb8718feb49f7cc5
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Feb 17 11:14:38 2022 +0100

    valtrack: Avoid creating raw SUBREGs with VOIDmode argument [PR104557]

    After the recent r12-7240 simplify_immed_subreg changes, we bail on more
    simplify_subreg calls than before, e.g. apparently for decimal modes
    in the NaN representations  we almost never preserve anything except the
    canonical {q,s}NaNs.
    simplify_gen_subreg will punt in such cases because a SUBREG with VOIDmode
    is not valid, but debug_lowpart_subreg wants to attempt even harder, even
    if e.g. target indicates certain mode combinations aren't valid for the
    backend, dwarf2out can still handle them.  But a SUBREG from a VOIDmode
    operand is just too much, the inner mode is lost there.  We'd need some
    new rtx that would be able to represent those cases.
    For now, just punt in those cases.

    2022-02-17  Jakub Jelinek  <jakub@redhat.com>

            PR debug/104557
            * valtrack.c (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
            if expr has VOIDmode.

            * gcc.dg/dfp/pr104557.c: New test.

    (cherry picked from commit 1c2b44b52364cb5661095b346de794bc7ff02866)


More information about the Gcc-bugs mailing list