2 -- { dg-options "-fdump-tree-gimple" }
4 with VFA1_Pkg
; use VFA1_Pkg
;
9 function F
(I
: Integer) return Integer is
14 function F2
return Integer is
16 return Integer(Counter1
);
19 procedure P3
(I
: Out Integer) is
26 Counter1
:= Int
(Counter2
);
27 Counter2
:= Integer(Counter1
);
29 Temp
:= Integer(Counter1
);
30 Counter1
:= Int
(Temp
);
35 Temp
:= Integer (Counter1
) + Counter2
;
37 if Counter1
/= Int
(Counter2
) then
41 Temp
:= F
(Integer (Counter1
));
42 Counter1
:= Int
(F
(Temp
));
52 -- { dg-final { scan-tree-dump-times "atomic_load\[^\n\r\]*&vfa1_pkg__counter1" 6 "gimple"} }
53 -- { dg-final { scan-tree-dump-times "atomic_load\[^\n\r\]*&vfa1_pkg__counter2" 5 "gimple"} }
54 -- { dg-final { scan-tree-dump-times "atomic_load\[^\n\r\]*&temp" 0 "gimple"} }
56 -- { dg-final { scan-tree-dump-times "atomic_store\[^\n\r\]*&vfa1_pkg__counter1" 3 "gimple"} }
57 -- { dg-final { scan-tree-dump-times "atomic_store\[^\n\r\]*&vfa1_pkg__counter2" 4 "gimple"} }
58 -- { dg-final { scan-tree-dump-times "atomic_store\[^\n\r\]*&temp" 0 "gimple"} }