@@ -21,52 +21,52 @@ void f(int p) {
21
21
atomic_load_explicit (& l1 , memory_order_release ); // NON-COMPLIANT
22
22
23
23
// Implicit values:
24
- atomic_store (& l1 , 0 ); // COMPLIANT
25
- atomic_load (& l1 ); // COMPLIANT
26
- atomic_flag_test_and_set (& l2 ); // COMPLIANT
27
- atomic_flag_clear (& l2 ); // COMPLIANT
28
- atomic_exchange (& l1 , 0 ); // COMPLIANT
24
+ atomic_store (& l1 , 0 ); // COMPLIANT
25
+ atomic_load (& l1 ); // COMPLIANT
26
+ atomic_flag_test_and_set (& l2 ); // COMPLIANT
27
+ atomic_flag_clear (& l2 ); // COMPLIANT
28
+ atomic_exchange (& l1 , 0 ); // COMPLIANT
29
29
atomic_compare_exchange_strong (& l1 , ptr , 1 ); // COMPLIANT
30
30
atomic_compare_exchange_weak (& l1 , ptr , 1 ); // COMPLIANT
31
- atomic_fetch_add (& l1 , 0 ); // COMPLIANT
32
- atomic_fetch_sub (& l1 , 0 ); // COMPLIANT
33
- atomic_fetch_or (& l1 , 0 ); // COMPLIANT
34
- atomic_fetch_xor (& l1 , 0 ); // COMPLIANT
35
- atomic_fetch_and (& l1 , 0 ); // COMPLIANT
31
+ atomic_fetch_add (& l1 , 0 ); // COMPLIANT
32
+ atomic_fetch_sub (& l1 , 0 ); // COMPLIANT
33
+ atomic_fetch_or (& l1 , 0 ); // COMPLIANT
34
+ atomic_fetch_xor (& l1 , 0 ); // COMPLIANT
35
+ atomic_fetch_and (& l1 , 0 ); // COMPLIANT
36
36
37
37
// Compliant flowed values (one test per sink):
38
- atomic_store_explicit (& l1 , 0 , g1 ); // COMPLIANT
39
- atomic_load_explicit (& l1 , g1 ); // COMPLIANT
40
- atomic_flag_test_and_set_explicit (& l2 , g1 ); // COMPLIANT
41
- atomic_flag_clear_explicit (& l2 , g1 ); // COMPLIANT
42
- atomic_exchange_explicit (& l1 , 0 , g1 ); // COMPLIANT
38
+ atomic_store_explicit (& l1 , 0 , g1 ); // COMPLIANT
39
+ atomic_load_explicit (& l1 , g1 ); // COMPLIANT
40
+ atomic_flag_test_and_set_explicit (& l2 , g1 ); // COMPLIANT
41
+ atomic_flag_clear_explicit (& l2 , g1 ); // COMPLIANT
42
+ atomic_exchange_explicit (& l1 , 0 , g1 ); // COMPLIANT
43
43
atomic_compare_exchange_strong_explicit (& l1 , ptr , 1 , g1 , g1 ); // COMPLIANT
44
44
atomic_compare_exchange_weak_explicit (& l1 , ptr , 1 , g1 , g1 ); // COMPLIANT
45
- atomic_fetch_add_explicit (& l1 , 0 , g1 ); // COMPLIANT
46
- atomic_fetch_sub_explicit (& l1 , 0 , g1 ); // COMPLIANT
47
- atomic_fetch_or_explicit (& l1 , 0 , g1 ); // COMPLIANT
48
- atomic_fetch_xor_explicit (& l1 , 0 , g1 ); // COMPLIANT
49
- atomic_fetch_and_explicit (& l1 , 0 , g1 ); // COMPLIANT
50
- atomic_thread_fence (g1 ); // COMPLIANT
51
- atomic_signal_fence (g1 ); // COMPLIANT
45
+ atomic_fetch_add_explicit (& l1 , 0 , g1 ); // COMPLIANT
46
+ atomic_fetch_sub_explicit (& l1 , 0 , g1 ); // COMPLIANT
47
+ atomic_fetch_or_explicit (& l1 , 0 , g1 ); // COMPLIANT
48
+ atomic_fetch_xor_explicit (& l1 , 0 , g1 ); // COMPLIANT
49
+ atomic_fetch_and_explicit (& l1 , 0 , g1 ); // COMPLIANT
50
+ atomic_thread_fence (g1 ); // COMPLIANT
51
+ atomic_signal_fence (g1 ); // COMPLIANT
52
52
53
53
// Non-compliant flowed values (one test per sink):
54
- atomic_store_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
55
- atomic_load_explicit (& l1 , g2 ); // NON-COMPLIANT
56
- atomic_flag_test_and_set_explicit (& l2 , g2 ); // NON-COMPLIANT
57
- atomic_flag_clear_explicit (& l2 , g2 ); // NON-COMPLIANT
58
- atomic_exchange_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
54
+ atomic_store_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
55
+ atomic_load_explicit (& l1 , g2 ); // NON-COMPLIANT
56
+ atomic_flag_test_and_set_explicit (& l2 , g2 ); // NON-COMPLIANT
57
+ atomic_flag_clear_explicit (& l2 , g2 ); // NON-COMPLIANT
58
+ atomic_exchange_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
59
59
atomic_compare_exchange_strong_explicit (& l1 , ptr , 1 , g2 , g1 ); // NON-COMPLIANT
60
60
atomic_compare_exchange_strong_explicit (& l1 , ptr , 1 , g1 , g2 ); // NON-COMPLIANT
61
61
atomic_compare_exchange_weak_explicit (& l1 , ptr , 1 , g2 , g1 ); // NON-COMPLIANT
62
62
atomic_compare_exchange_weak_explicit (& l1 , ptr , 1 , g1 , g2 ); // NON-COMPLIANT
63
- atomic_fetch_add_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
64
- atomic_fetch_sub_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
65
- atomic_fetch_or_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
66
- atomic_fetch_xor_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
67
- atomic_fetch_and_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
68
- atomic_thread_fence (g2 ); // NON-COMPLIANT
69
- atomic_signal_fence (g2 ); // NON-COMPLIANT
63
+ atomic_fetch_add_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
64
+ atomic_fetch_sub_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
65
+ atomic_fetch_or_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
66
+ atomic_fetch_xor_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
67
+ atomic_fetch_and_explicit (& l1 , 0 , g2 ); // NON-COMPLIANT
68
+ atomic_thread_fence (g2 ); // NON-COMPLIANT
69
+ atomic_signal_fence (g2 ); // NON-COMPLIANT
70
70
71
71
// Non-compliant flowed values (one test per source):
72
72
atomic_thread_fence (g2 ); // NON-COMPLIANT
0 commit comments