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

--- Comment #5 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:fb1b7e2fec951ba0bf4f68fac6a16929f4f63910

commit r14-8423-gfb1b7e2fec951ba0bf4f68fac6a16929f4f63910
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Jan 25 13:15:23 2024 +0100

    convert: Fix test for out of bounds shift count [PR113574]

    The following patch is miscompiled, because convert_to_integer_1 for
    LSHIFT_EXPR tests if the INTEGER_CST shift count is too high, but
    incorrectly compares it against TYPE_SIZE rather than TYPE_PRECISION.
    The type in question is unsigned _BitInt(1), which has TYPE_PRECISION 1,
    TYPE_SIZE 8, and the shift count is 2 in that case.

    2024-01-25  Jakub Jelinek  <ja...@redhat.com>

            PR middle-end/113574
            * convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare
shift
            count against TYPE_PRECISION rather than TYPE_SIZE.

            * gcc.dg/torture/bitint-52.c: New test.

Reply via email to