@@ -7,43 +7,136 @@ fn main() {
77
88 // Allowed ordering combos
99 let _ = x. fetch_update ( Ordering :: Relaxed , Ordering :: Relaxed , |old| Some ( old + 1 ) ) ;
10+ let _ = x. try_update ( Ordering :: Relaxed , Ordering :: Relaxed , |old| Some ( old + 1 ) ) ;
11+ let _ = x. update ( Ordering :: Relaxed , Ordering :: Relaxed , |old| old + 1 ) ;
12+
1013 let _ = x. fetch_update ( Ordering :: Relaxed , Ordering :: Acquire , |old| Some ( old + 1 ) ) ;
14+ let _ = x. try_update ( Ordering :: Relaxed , Ordering :: Acquire , |old| Some ( old + 1 ) ) ;
15+ let _ = x. update ( Ordering :: Relaxed , Ordering :: Acquire , |old| old + 1 ) ;
16+
1117 let _ = x. fetch_update ( Ordering :: Relaxed , Ordering :: SeqCst , |old| Some ( old + 1 ) ) ;
18+ let _ = x. try_update ( Ordering :: Relaxed , Ordering :: SeqCst , |old| Some ( old + 1 ) ) ;
19+ let _ = x. update ( Ordering :: Relaxed , Ordering :: SeqCst , |old| old + 1 ) ;
20+
1221 let _ = x. fetch_update ( Ordering :: Acquire , Ordering :: Relaxed , |old| Some ( old + 1 ) ) ;
22+ let _ = x. try_update ( Ordering :: Acquire , Ordering :: Relaxed , |old| Some ( old + 1 ) ) ;
23+ let _ = x. update ( Ordering :: Acquire , Ordering :: Relaxed , |old| old + 1 ) ;
24+
1325 let _ = x. fetch_update ( Ordering :: Acquire , Ordering :: Acquire , |old| Some ( old + 1 ) ) ;
26+ let _ = x. try_update ( Ordering :: Acquire , Ordering :: Acquire , |old| Some ( old + 1 ) ) ;
27+ let _ = x. update ( Ordering :: Acquire , Ordering :: Acquire , |old| old + 1 ) ;
28+
1429 let _ = x. fetch_update ( Ordering :: Acquire , Ordering :: SeqCst , |old| Some ( old + 1 ) ) ;
30+ let _ = x. try_update ( Ordering :: Acquire , Ordering :: SeqCst , |old| Some ( old + 1 ) ) ;
31+ let _ = x. update ( Ordering :: Acquire , Ordering :: SeqCst , |old| old + 1 ) ;
32+
1533 let _ = x. fetch_update ( Ordering :: Release , Ordering :: Relaxed , |old| Some ( old + 1 ) ) ;
34+ let _ = x. try_update ( Ordering :: Release , Ordering :: Relaxed , |old| Some ( old + 1 ) ) ;
35+ let _ = x. update ( Ordering :: Release , Ordering :: Relaxed , |old| old + 1 ) ;
36+
1637 let _ = x. fetch_update ( Ordering :: Release , Ordering :: Acquire , |old| Some ( old + 1 ) ) ;
38+ let _ = x. try_update ( Ordering :: Release , Ordering :: Acquire , |old| Some ( old + 1 ) ) ;
39+ let _ = x. update ( Ordering :: Release , Ordering :: Acquire , |old| old + 1 ) ;
40+
1741 let _ = x. fetch_update ( Ordering :: Release , Ordering :: SeqCst , |old| Some ( old + 1 ) ) ;
42+ let _ = x. try_update ( Ordering :: Release , Ordering :: SeqCst , |old| Some ( old + 1 ) ) ;
43+ let _ = x. update ( Ordering :: Release , Ordering :: SeqCst , |old| old + 1 ) ;
44+
1845 let _ = x. fetch_update ( Ordering :: AcqRel , Ordering :: Relaxed , |old| Some ( old + 1 ) ) ;
46+ let _ = x. try_update ( Ordering :: AcqRel , Ordering :: Relaxed , |old| Some ( old + 1 ) ) ;
47+ let _ = x. update ( Ordering :: AcqRel , Ordering :: Relaxed , |old| old + 1 ) ;
48+
1949 let _ = x. fetch_update ( Ordering :: AcqRel , Ordering :: Acquire , |old| Some ( old + 1 ) ) ;
50+ let _ = x. try_update ( Ordering :: AcqRel , Ordering :: Acquire , |old| Some ( old + 1 ) ) ;
51+ let _ = x. update ( Ordering :: AcqRel , Ordering :: Acquire , |old| old + 1 ) ;
52+
2053 let _ = x. fetch_update ( Ordering :: AcqRel , Ordering :: SeqCst , |old| Some ( old + 1 ) ) ;
54+ let _ = x. try_update ( Ordering :: AcqRel , Ordering :: SeqCst , |old| Some ( old + 1 ) ) ;
55+ let _ = x. update ( Ordering :: AcqRel , Ordering :: SeqCst , |old| old + 1 ) ;
56+
2157 let _ = x. fetch_update ( Ordering :: SeqCst , Ordering :: Relaxed , |old| Some ( old + 1 ) ) ;
58+ let _ = x. try_update ( Ordering :: SeqCst , Ordering :: Relaxed , |old| Some ( old + 1 ) ) ;
59+ let _ = x. update ( Ordering :: SeqCst , Ordering :: Relaxed , |old| old + 1 ) ;
60+
2261 let _ = x. fetch_update ( Ordering :: SeqCst , Ordering :: Acquire , |old| Some ( old + 1 ) ) ;
62+ let _ = x. try_update ( Ordering :: SeqCst , Ordering :: Acquire , |old| Some ( old + 1 ) ) ;
63+ let _ = x. update ( Ordering :: SeqCst , Ordering :: Acquire , |old| old + 1 ) ;
64+
2365 let _ = x. fetch_update ( Ordering :: SeqCst , Ordering :: SeqCst , |old| Some ( old + 1 ) ) ;
66+ let _ = x. try_update ( Ordering :: SeqCst , Ordering :: SeqCst , |old| Some ( old + 1 ) ) ;
67+ let _ = x. update ( Ordering :: SeqCst , Ordering :: SeqCst , |old| old + 1 ) ;
2468
2569 // AcqRel is always forbidden as a failure ordering
70+
2671 let _ = x. fetch_update ( Ordering :: Relaxed , Ordering :: AcqRel , |old| Some ( old + 1 ) ) ;
2772 //~^ ERROR `fetch_update`'s failure ordering may not be `Release` or `AcqRel`
73+ let _ = x. try_update ( Ordering :: Relaxed , Ordering :: AcqRel , |old| Some ( old + 1 ) ) ;
74+ //~^ ERROR `try_update`'s failure ordering may not be `Release` or `AcqRel`
75+ let _ = x. update ( Ordering :: Relaxed , Ordering :: AcqRel , |old| old + 1 ) ;
76+ //~^ ERROR `update`'s failure ordering may not be `Release` or `AcqRel`
77+
2878 let _ = x. fetch_update ( Ordering :: Acquire , Ordering :: AcqRel , |old| Some ( old + 1 ) ) ;
2979 //~^ ERROR `fetch_update`'s failure ordering may not be `Release` or `AcqRel`
80+ let _ = x. try_update ( Ordering :: Acquire , Ordering :: AcqRel , |old| Some ( old + 1 ) ) ;
81+ //~^ ERROR `try_update`'s failure ordering may not be `Release` or `AcqRel`
82+ let _ = x. update ( Ordering :: Acquire , Ordering :: AcqRel , |old| old + 1 ) ;
83+ //~^ ERROR `update`'s failure ordering may not be `Release` or `AcqRel`
84+
3085 let _ = x. fetch_update ( Ordering :: Release , Ordering :: AcqRel , |old| Some ( old + 1 ) ) ;
3186 //~^ ERROR `fetch_update`'s failure ordering may not be `Release` or `AcqRel`
87+ let _ = x. try_update ( Ordering :: Release , Ordering :: AcqRel , |old| Some ( old + 1 ) ) ;
88+ //~^ ERROR `try_update`'s failure ordering may not be `Release` or `AcqRel`
89+ let _ = x. update ( Ordering :: Release , Ordering :: AcqRel , |old| old + 1 ) ;
90+ //~^ ERROR `update`'s failure ordering may not be `Release` or `AcqRel`
91+
3292 let _ = x. fetch_update ( Ordering :: AcqRel , Ordering :: AcqRel , |old| Some ( old + 1 ) ) ;
3393 //~^ ERROR `fetch_update`'s failure ordering may not be `Release` or `AcqRel`
94+ let _ = x. try_update ( Ordering :: AcqRel , Ordering :: AcqRel , |old| Some ( old + 1 ) ) ;
95+ //~^ ERROR `try_update`'s failure ordering may not be `Release` or `AcqRel`
96+ let _ = x. update ( Ordering :: AcqRel , Ordering :: AcqRel , |old| old + 1 ) ;
97+ //~^ ERROR `update`'s failure ordering may not be `Release` or `AcqRel`
98+
3499 let _ = x. fetch_update ( Ordering :: SeqCst , Ordering :: AcqRel , |old| Some ( old + 1 ) ) ;
35100 //~^ ERROR `fetch_update`'s failure ordering may not be `Release` or `AcqRel`
101+ let _ = x. try_update ( Ordering :: SeqCst , Ordering :: AcqRel , |old| Some ( old + 1 ) ) ;
102+ //~^ ERROR `try_update`'s failure ordering may not be `Release` or `AcqRel`
103+ let _ = x. update ( Ordering :: SeqCst , Ordering :: AcqRel , |old| old + 1 ) ;
104+ //~^ ERROR `update`'s failure ordering may not be `Release` or `AcqRel`
36105
37106 // Release is always forbidden as a failure ordering
107+
38108 let _ = x. fetch_update ( Ordering :: Relaxed , Ordering :: Release , |old| Some ( old + 1 ) ) ;
39109 //~^ ERROR `fetch_update`'s failure ordering may not be `Release` or `AcqRel`
110+ let _ = x. try_update ( Ordering :: Relaxed , Ordering :: Release , |old| Some ( old + 1 ) ) ;
111+ //~^ ERROR `try_update`'s failure ordering may not be `Release` or `AcqRel`
112+ let _ = x. update ( Ordering :: Relaxed , Ordering :: Release , |old| old + 1 ) ;
113+ //~^ ERROR `update`'s failure ordering may not be `Release` or `AcqRel`
114+
40115 let _ = x. fetch_update ( Ordering :: Acquire , Ordering :: Release , |old| Some ( old + 1 ) ) ;
41116 //~^ ERROR `fetch_update`'s failure ordering may not be `Release` or `AcqRel`
117+ let _ = x. try_update ( Ordering :: Acquire , Ordering :: Release , |old| Some ( old + 1 ) ) ;
118+ //~^ ERROR `try_update`'s failure ordering may not be `Release` or `AcqRel`
119+ let _ = x. update ( Ordering :: Acquire , Ordering :: Release , |old| old + 1 ) ;
120+ //~^ ERROR `update`'s failure ordering may not be `Release` or `AcqRel`
121+
42122 let _ = x. fetch_update ( Ordering :: Release , Ordering :: Release , |old| Some ( old + 1 ) ) ;
43123 //~^ ERROR `fetch_update`'s failure ordering may not be `Release` or `AcqRel`
124+ let _ = x. try_update ( Ordering :: Release , Ordering :: Release , |old| Some ( old + 1 ) ) ;
125+ //~^ ERROR `try_update`'s failure ordering may not be `Release` or `AcqRel`
126+ let _ = x. update ( Ordering :: Release , Ordering :: Release , |old| old + 1 ) ;
127+ //~^ ERROR `update`'s failure ordering may not be `Release` or `AcqRel`
128+
44129 let _ = x. fetch_update ( Ordering :: AcqRel , Ordering :: Release , |old| Some ( old + 1 ) ) ;
45130 //~^ ERROR `fetch_update`'s failure ordering may not be `Release` or `AcqRel`
131+ let _ = x. try_update ( Ordering :: AcqRel , Ordering :: Release , |old| Some ( old + 1 ) ) ;
132+ //~^ ERROR `try_update`'s failure ordering may not be `Release` or `AcqRel`
133+ let _ = x. update ( Ordering :: AcqRel , Ordering :: Release , |old| old + 1 ) ;
134+ //~^ ERROR `update`'s failure ordering may not be `Release` or `AcqRel`
135+
46136 let _ = x. fetch_update ( Ordering :: SeqCst , Ordering :: Release , |old| Some ( old + 1 ) ) ;
47137 //~^ ERROR `fetch_update`'s failure ordering may not be `Release` or `AcqRel`
48-
138+ let _ = x. try_update ( Ordering :: SeqCst , Ordering :: Release , |old| Some ( old + 1 ) ) ;
139+ //~^ ERROR `try_update`'s failure ordering may not be `Release` or `AcqRel`
140+ let _ = x. update ( Ordering :: SeqCst , Ordering :: Release , |old| old + 1 ) ;
141+ //~^ ERROR `update`'s failure ordering may not be `Release` or `AcqRel`
49142}
0 commit comments