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?