6.2.9 C*$* assert [no] temporaries for constant arguments

Sometimes, KAP transformations are disabled when KAP is not sure about their effect on the rest of the program. For example, one possible transformation would turn:

   SUBROUTINE X(I,N)
      IF (I .LT. N) I = N
   END

Into:

    SUBROUTINE X(I,N)
       I = MAX(I,N)
    END

But, if the actual parameter for I were a constant, CALL X(1,N) , it would appear that the value of the constant 1 was being reassigned. (In some older versions of Fortran, the values of constants could be changed in this way.) Without additional information, KAP is cautious and performs no argument- changing transformations within the subroutine.

Most compilers automatically put constant actual arguments into temporary variables to protect against this case. The assertion C*$* assert temporaries for constant arguments or the command qualifier /assume=c (the default) inform KAP that constant parameters are protected. The assertion C*$* assert no temporaries for constant arguments directs KAP to avoid transformations that might change the values of constant parameters.


Previous Page | Next Page | Contents | Index |
Command-Line Qualifiers