process type SA is array (0 to 0) of Integer; procedure C (A: in SA; B: out SA) is begin B := A; end C; function A (P: in SA) return Integer is begin return P(0); end A; constant B: Integer := 0; variable I, J: Integer; begin I := 2; J := 3; C ( A(B) => I; A(B) => J); wait; -- Which is true at this point: -- I = 2 and J = 2, or -- I = 3 and J = 3 end process;