https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31178
--- Comment #10 from rguenther at suse dot de <rguenther at suse dot de> --- On Tue, 22 Mar 2022, amacleod at redhat dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31178 > > Andrew Macleod <amacleod at redhat dot com> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > CC| |amacleod at redhat dot com > > --- Comment #8 from Andrew Macleod <amacleod at redhat dot com> --- > Is this always true? > > I implemented this for GCC13 in the new side-effect code, and its causing > problems in fortran. > > In particular gfortran.dg/check_bits_1.f90 goes into an infinite loop. I am > seeing things like > > nb = bit_size (i) > do shift = 0, nb > k = shiftl (i, shift) ! Fortran 2008 > i = shiftr (k, shift) > > So it appears to do shifts on [0, 32] rather than [0, 31], and when I go look > for fortran 2008 info, i find: > > "Its value must be non-negative, and less than or equal to BIT_SIZE(I)" > > so it seem [0, N] for fortran rather than [0, N)? Are there other language > issues as well? Interesting. For GIMPLE we of course have to find common ground which then means to allow N as well.