fe.h (Serious_Errors_Detected): New macro.
[gcc.git] / gcc / testsuite / gnat.dg / atomic6_3.adb
1 -- { dg-do compile }
2 -- { dg-options "-fdump-tree-gimple" }
3
4 with Atomic6_Pkg; use Atomic6_Pkg;
5
6 procedure Atomic6_3 is
7
8 function F (I : Integer) return Integer is
9 begin
10 return I;
11 end;
12
13 function F2 return Integer is
14 begin
15 return Integer(Counter1);
16 end;
17
18 function F3 return Integer is
19 begin
20 return Timer1;
21 end;
22
23 Temp : Integer;
24 begin
25
26 Counter1 := Int(F(Integer(Counter2)));
27
28 Timer1 := F(Timer2);
29
30 Counter1 := Int(F(Timer1));
31 Timer1 := F(Integer(Counter1));
32
33 Temp := F(Integer(Counter1));
34 Counter1 := Int(F(Temp));
35
36 Temp := F(Timer1);
37 Timer1 := F(Temp);
38
39 Temp := F2;
40 Temp := F3;
41
42 end;
43
44 -- { dg-final { scan-tree-dump-times "atomic_load\[^\n\r\]*&atomic6_pkg__counter1" 3 "gimple"} }
45 -- { dg-final { scan-tree-dump-times "atomic_load\[^\n\r\]*&atomic6_pkg__counter2" 1 "gimple"} }
46 -- { dg-final { scan-tree-dump-times "atomic_load\[^\n\r\]*&atomic6_pkg__timer1" 3 "gimple"} }
47 -- { dg-final { scan-tree-dump-times "atomic_load\[^\n\r\]*&atomic6_pkg__timer2" 1 "gimple"} }
48 -- { dg-final { scan-tree-dump-times "atomic_load\[^\n\r\]*&temp" 0 "gimple"} }
49 -- { dg-final { scan-tree-dump-times "atomic_load\[^\n\r\]*ptr" 0 "gimple"} }
50
51 -- { dg-final { scan-tree-dump-times "atomic_store\[^\n\r\]*&atomic6_pkg__counter1" 3 "gimple"} }
52 -- { dg-final { scan-tree-dump-times "atomic_store\[^\n\r\]*&atomic6_pkg__counter2" 0 "gimple"} }
53 -- { dg-final { scan-tree-dump-times "atomic_store\[^\n\r\]*&atomic6_pkg__timer1" 3 "gimple"} }
54 -- { dg-final { scan-tree-dump-times "atomic_store\[^\n\r\]*&atomic6_pkg__timer2" 0 "gimple"} }
55 -- { dg-final { scan-tree-dump-times "atomic_store\[^\n\r\]*&temp" 0 "gimple"} }
56 -- { dg-final { scan-tree-dump-times "atomic_store\[^\n\r\]*ptr" 0 "gimple"} }
57
58 -- { dg-final { cleanup-tree-dump "gimple" } }