# aliasing of parameters to see that copy-back is done in right order. resource alias() op f( var int x, var int y, var int z ) op go( int x, int y, int z ) go(1,2,3) go(-14,-15,-16) proc go(a,b,c) { write("\n----", a,b,c) int aa, bb, cc aa=a; bb=b; cc=c; # original values a=aa; b=bb; c=cc; f(a,b,c); write(a,b,c); a=aa; b=bb; c=cc; f(a,b,b); write(a,b,c); a=aa; b=bb; c=cc; f(a,a,a); write(a,b,c); a=aa; b=bb; c=cc; f(a,b,a); write(a,b,c); a=aa; b=bb; c=cc; f(a,a,c); write(a,b,c); } proc f(x,y,z) { z = z + 1000 y = y + 100 x++ } end