-- This file tests non-array variables used in safe but odd ways -- in replicated PARs PROC foo (VAL INT param) INT x,y,z: SEQ x,y,z := 1,2,3 %% : PROC m () SKIP : %PASS Size one replicated PAR PAR i = 7 FOR 1 x := 4 %PASS Size one replicated PAR, swap PAR i = 7 FOR 1 x, y := y, x %PASS Size one replicated PAR, hidden [1]INT arr: PAR i = 7 FOR SIZE arr x := 4 %FAIL Size one replicated PAR, but double PAR i = 7 FOR 1 PAR x := 4 x := 5 %FAIL Size one replicated PAR, but double 2 PAR PAR i = 7 FOR 1 x := 4 x := 5 %PASS Size zero unsafe replicated PAR PAR i = 8 FOR 0 PAR x := 4 x := 3 %PASS Size one and size zero replicated PAR PAR PAR i = 8 FOR 0 x := 4 PAR i = 7 FOR 1 x := 3 %PASS Result stored in one branch of replicated PAR PAR i = 0 FOR 10 IF i = 0 x := i TRUE SKIP %PASS Unsafe in obviously not-possible branch of replicated PAR PAR i = 0 FOR 10 IF i > 10 x := i TRUE SKIP %PASS Unsafe in less-obviously not-possible branch of replicated PAR PAR i = 5 FOR param IF i > (param+5) x := i TRUE SKIP %FAIL Unsafe in possible branches of replicated PAR PAR i = 0 FOR 10 IF i = 0 x := 3 i = 1 x := 4 TRUE SKIP %FAIL Unsafe after possible branches of replicated PAR PAR i = 0 FOR 10 SEQ IF i = 0 x := 3 TRUE SKIP x := 2 %FAIL Unsafe without branch in replicated PAR PAR i = 0 FOR 10 SEQ x := 2 %FAIL Unsafe with dummy branch in replicated PAR PAR i = 0 FOR 10 SEQ IF i = 3 SKIP TRUE SKIP x := 2 %FAIL Unsafe in possible branch of replicated PAR vs normal PAR PAR i = 0 FOR 10 PAR IF i = 0 x := 3 TRUE SKIP x := 4 %FAIL Unsafe in possible branch of replicated PAR PAR i = 0 FOR 10 IF i <= 1 x := 3 TRUE SKIP %PASS Safe in one possible branched-branch of replicated PAR PAR i = -5 FOR 10 IF i <= 0 IF i >= 0 x := 3 TRUE SKIP TRUE SKIP %PASS Unsafe in one possible branched-branch of replicated PAR in a replicated SEQ SEQ k = 0 FOR 3 PAR i = -5 FOR 10 IF i <= 0 IF i >= 0 x := 3 TRUE SKIP TRUE SKIP %PASS Safe in two replicators only PAR i = 0 FOR 10 PAR j = 0 FOR 10 IF ((i * j) = 0) AND (i = j) x := 3 TRUE SKIP %FAIL Unsafe in two replicators PAR i = 0 FOR 10 PAR j = 0 FOR 10 IF i = j x := 3 TRUE SKIP %