None.
Prevents the compiler from performing induction (loop counter) variable optimizations. These optimizations may be unsafe (may alter the semantics of your program) when there are integer overflow operations involving the induction variables.
-qnostrict_induction
You should avoid specifying -qstrict_induction unless absolutely necessary, as it may cause performance degradation.
Consider the following two examples:
integer(1) :: i, j ! Variable i can hold a
j = 0 ! maximum value of 127.
do i = 1, 200 ! Integer overflow occurs when 128th
j = j + 1 ! iteration of loop is attempted.
enddo
integer(1) :: i
i = 1_1 ! Variable i can hold a maximum
! value of 127.
100 continue
if (i == -127) goto 200 ! Go to label 200 once decimal overflow
i = i + 1_1 ! occurs and i == -127.
goto 100
200 continue
print *, i
end
If you compile these examples with the -qstrict_induction option, the compiler does not perform induction variable optimizations, but the performance of the code may be affected. If you compile the examples with the -qnostrict_induction option, the compiler may perform optimizations that may alter the semantics of the programs.