The C*$* assert no argument aliasing
assertion allows
KAP to make assumptions about subprogram arguments in a program.
According to the Fortran 77 standard, multiple-aliasing of variables
is allowed only if no aliases are modified. In the following code
example, the subroutine violates the standard, since variable
A
is multiple-aliased in the subroutine through
C
and D
, and variable X
is multiple-aliased through X
and E
:
COMMON X,Y REAL A,B CALL SUB ( A, A, X ) ... SUBROUTINE SUB ( C, D, E ) COMMON X, Y X = ... C = ... ...
If multiple-aliasing is used in a program, the C*$* assert
argument aliasing
assertion should be used. The command
qualifier /assume=a
acts like a global C*$*
assert argument aliasing
assertion. An argument aliasing
assertion is active until reset, or until the end of the program
unit.