Added more usage checks for proc and function calls

This commit is contained in:
Neil Brown 2008-01-29 11:59:08 +00:00
parent f26b3309a3
commit 00a9dfc89b

View File

@ -10,6 +10,10 @@ PROC pRRW(VAL INT n, VAL INT o, INT p)
SKIP SKIP
: :
PROC pRWW(VAL INT n, INT o, INT p)
SKIP
:
INT,INT FUNCTION fRR(VAL INT m, VAL INT n) INT,INT FUNCTION fRR(VAL INT m, VAL INT n)
VALOF VALOF
SKIP SKIP
@ -26,15 +30,24 @@ PROC m()
SKIP SKIP
: :
%PASS Distinct plain variables passed to one call %PASS Distinct plain variables passed to one call (#1)
pRRW(x,y,z) pRRW(x,y,z)
%PASS Distinct plain variables passed to one call (#2)
pRWW(x,y,z)
%PASS Safely overlapping plain variables passed to one call %PASS Safely overlapping plain variables passed to one call
pRRW(x,x,z) pRRW(x,x,z)
%FAIL Risky overlapping plain variables passed to one call %FAIL Risky overlapping plain variables passed to one call (#1)
pRRW(x,y,x) pRRW(x,y,x)
%FAIL Risky overlapping plain variables passed to one call (#2)
pRWW(x,y,y)
%FAIL Risky overlapping plain variables passed to one call (#3)
pRWW(x,y,x)
%PASS Safely overlapping plain variables passed to two calls %PASS Safely overlapping plain variables passed to two calls
PAR PAR
pRRW(x,x,z) pRRW(x,x,z)
@ -50,6 +63,22 @@ PROC m()
pRRW(x,y,z) pRRW(x,y,z)
pRRW(z,y,x) pRRW(z,y,x)
%FAIL Risky overlapping plain variables passed to two calls (#3)
PAR
pRRW(x,y,z)
pRWW(x,y,z)
%PASS Safe overlapping function calls
PAR
y := fRR(y,z)
x := fRR(x,z)
%FAIL Risky overlapping function calls
PAR
x := fRR(y,z)
y := fRR(x,z)
-- TODO array versions of these -- TODO array versions of these
% %