try to avoid races again (cf. 8c37cb84065f and fd3a36e48b09);
package body Loop_Invariant
is
procedure Proc1 (A : in Natural; B : in Word32; C : out Word32)
is
begin
C := 0;
for I in Natural range 1 .. A
--# assert Word32 (I - 1) * B = C;
loop
C := C + B;
end loop;
end Proc1;
procedure Proc2 (A : in Natural; B : in Word32; C : out Word32)
is
begin
C := 0;
for I in Natural range 1 .. A
--# assert Word32 (I - 1) * B = C;
loop
C := C + B;
--# assert Word32 (I) * B = C;
end loop;
end Proc2;
end Loop_Invariant;