Passing by location came from FORTRAN in the fifties. There is call by name, reference, location and value. We still use location in C but you pass a pointer to the location by value. It is the same in Coral 66.
This flaw was quite common in the early fortran compilers. You could define a routine
subroutine fred(x)
x = 50
return
end
To use it,
y = 10
call fred (0)
y = y + 0
write (5, 'F10.1') y
And you would get 60. Nowadays, you'd probably get 'attempt to write to null pointer'.