https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105691
--- Comment #1 from mecej4 <xecej4 at outlook dot com> ---
When a program contains an expression that involves the INDEX intrinsic
function, and it is possible to calculate its result value at compile time, the
computed value is sometimes incorrect.
program main
i = index("fortran.f90", "fortran", back=.true.) ! It should get '1'
call prnt(i)
contains
subroutine prnt(i)
integer i
print *,'i = ',i
end subroutine
end program
The program prints '0' instead of '1'. Looking at the assembly code generated
shows that the argument value in the argument I passed to PRNT() is zero.