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.