]>
Commit | Line | Data |
---|---|---|
86951993 AM |
1 | /* Test __atomic routines for invalid memory model errors. This only needs |
2 | to be tested on a single size. */ | |
3 | /* { dg-do compile } */ | |
4 | /* { dg-require-effective-target sync_int_long } */ | |
5 | ||
6 | #include <stddef.h> | |
d660c35e | 7 | #include <stdbool.h> |
86951993 AM |
8 | |
9 | int i, e, b; | |
10 | size_t s; | |
d660c35e | 11 | bool x; |
86951993 | 12 | |
722516b8 | 13 | int |
86951993 AM |
14 | main () |
15 | { | |
5a431b60 | 16 | __atomic_compare_exchange_n (&i, &e, 1, 0, __ATOMIC_RELAXED, __ATOMIC_SEQ_CST); /* { dg-warning "failure memory model 'memory_order_seq_cst' cannot be stronger" } */ |
77df5327 AM |
17 | __atomic_compare_exchange_n (&i, &e, 1, 0, __ATOMIC_SEQ_CST, __ATOMIC_RELEASE); /* { dg-warning "invalid failure memory" } */ |
18 | __atomic_compare_exchange_n (&i, &e, 1, 1, __ATOMIC_SEQ_CST, __ATOMIC_ACQ_REL); /* { dg-warning "invalid failure memory" } */ | |
86951993 | 19 | |
77df5327 AM |
20 | __atomic_load_n (&i, __ATOMIC_RELEASE); /* { dg-warning "invalid memory model" } */ |
21 | __atomic_load_n (&i, __ATOMIC_ACQ_REL); /* { dg-warning "invalid memory model" } */ | |
86951993 | 22 | |
77df5327 AM |
23 | __atomic_store_n (&i, 1, __ATOMIC_ACQUIRE); /* { dg-warning "invalid memory model" } */ |
24 | __atomic_store_n (&i, 1, __ATOMIC_CONSUME); /* { dg-warning "invalid memory model" } */ | |
25 | __atomic_store_n (&i, 1, __ATOMIC_ACQ_REL); /* { dg-warning "invalid memory model" } */ | |
86951993 AM |
26 | |
27 | i = __atomic_always_lock_free (s, NULL); /* { dg-error "non-constant argument" } */ | |
28 | ||
29 | __atomic_load_n (&i, 44); /* { dg-warning "invalid memory model" } */ | |
d660c35e | 30 | |
77df5327 AM |
31 | __atomic_clear (&x, __ATOMIC_CONSUME); /* { dg-warning "invalid memory model" } */ |
32 | __atomic_clear (&x, __ATOMIC_ACQUIRE); /* { dg-warning "invalid memory model" } */ | |
d660c35e | 33 | |
77df5327 | 34 | __atomic_clear (&x, __ATOMIC_ACQ_REL); /* { dg-warning "invalid memory model" } */ |
d660c35e | 35 | |
86951993 | 36 | } |