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

--- Comment #4 from GCC 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:d3defa435e9d04d6ab6585ac184989941c7ad51e

commit r14-6803-gd3defa435e9d04d6ab6585ac184989941c7ad51e
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Fri Dec 22 12:27:05 2023 +0100

    lower-bitint: Fix handle_cast ICE [PR113102]

    My recent change to use m_data[save_data_cnt] instead of
    m_data[save_data_cnt + 1] when inside of a loop (m_bb is non-NULL)
    broke the following testcase.  When we create a PHI node on the loop
    using prepare_data_in_out, both m_data[save_data_cnt{, + 1}] are
    computed and the fix was right, but there are also cases when we in
    a loop (m_bb non-NULL) emit a nested cast with too few limbs and
    then just use constant indexes for all accesses - in that case
    only m_data[save_data_cnt + 1] is initialized and m_data[save_data_cnt]
    is NULL.  In those cases, we want to use the former.

    2023-12-22  Jakub Jelinek  <ja...@redhat.com>

            PR tree-optimization/113102
            * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Only
            use m_data[save_data_cnt] if it is non-NULL.

            * gcc.dg/bitint-58.c: New test.

Reply via email to