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

--- Comment #1 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:115ab8d7ad33a7f500460dc5af28f6912ddfb91c

commit r15-4856-g115ab8d7ad33a7f500460dc5af28f6912ddfb91c
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Fri Nov 1 23:03:48 2024 +0100

    builtins: Fix expand_builtin_prefetch [PR117407]

    On Fri, Nov 01, 2024 at 04:47:35PM +0800, Haochen Jiang wrote:
    >         * builtins.cc (expand_builtin_prefetch): Use IN_RANGE to
    >       avoid second usage of INTVAL.

    I doubt this has been actually tested.

    > --- a/gcc/builtins.cc
    > +++ b/gcc/builtins.cc
    > @@ -1297,7 +1297,7 @@ expand_builtin_prefetch (tree exp)
    >    else
    >      op1 = expand_normal (arg1);
    >    /* Argument 1 must be 0, 1 or 2.  */
    > -  if (INTVAL (op1) < 0 || INTVAL (op1) > 2)
    > +  if (IN_RANGE (INTVAL (op1), 0, 2))
    >      {
    >        warning (0, "invalid second argument to %<__builtin_prefetch%>;"
    >              " using zero");
    > @@ -1315,7 +1315,7 @@ expand_builtin_prefetch (tree exp)
    >    else
    >      op2 = expand_normal (arg2);
    >    /* Argument 2 must be 0, 1, 2, or 3.  */
    > -  if (INTVAL (op2) < 0 || INTVAL (op2) > 3)
    > +  if (IN_RANGE (INTVAL (op2), 0, 3))
    >      {
    >        warning (0, "invalid third argument to %<__builtin_prefetch%>;
using zero");
    >        op2 = const0_rtx;

    because it inverts the tests, previously it was warning when op1 wasn't
    0, 1, 2, now it warns when it is 0, 1 or 2, previously it was warning
    when op2 wasn't 0, 1, 2 or 3, now it warns when it is 0, 1, 2, or 3.

    Fixed thusly.

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

            PR bootstrap/117407
            * builtins.cc (expand_builtin_prefetch): Use !IN_RANGE rather
            than IN_RANGE.

Reply via email to