On 14 May 2017, at 00:11, Richard Tobin <richard(a)inf.ed.ac.uk> wrote:
If a subprogram reference causes a dummy argument in the referenced
subprogram to become associated with another dummy argument in the
referenced subprogram, neither dummy argument may become defined
during execution of that subprogram.
I think the purpose of that is to allow compilers to assume that if you pass two array
arguments (say) to a routine then they are really different chunks of memory, so it can
optimize things (ie it does not need to worry about the various hazards that happen if
they are secretly the same memory).