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.