OSDN Git Service

PR middle-end/52419
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / atomic-pr51256.c
1 /* Test generic  __atomic routines for various errors.  */
2 /* { dg-do compile } */
3 /* { dg-require-effective-target sync_int_long } */
4 /* { dg-options "-ansi" } */
5
6 void f1 (void* p)
7 {
8   __atomic_compare_exchange(p, p, p, 0, 0, 0); /* { dg-error "must be a non-void pointer type" } */
9 }
10
11 void f2 (int n) 
12
13   int a[n], b[n]; 
14   __atomic_load (&a, &b, __ATOMIC_SEQ_CST); /* { dg-error "must be a pointer to a constant size" } */
15 }
16
17 struct s { };
18 void f3 (void)
19 {
20   struct s a,b;
21   __atomic_load (&a, &b, __ATOMIC_SEQ_CST);  /* { dg-error "must be a pointer to a nonzero size" } */
22 }
23
24 void f4 (int a, int b, int c)
25 {
26   __atomic_load (&a, &b, &c,  __ATOMIC_SEQ_CST); /* { dg-error "incorrect number of arguments" } */
27 }
28
29 void f5 (int a, int b)
30 {
31   __atomic_load (&a, b, __ATOMIC_SEQ_CST); /* { dg-error "must be a pointer type" } */
32 }
33
34 void f6 (int a, char b)
35 {
36   __atomic_load (&a, &b, __ATOMIC_SEQ_CST); /* { dg-error "size mismatch in argument" } */
37 }
38
39 void f7 (int a, int b)
40 {
41   __atomic_load (&a, &b, 45); /* { dg-warning "invalid memory model argument" } */
42 }
43
44 void f8 (int a, int b, float c)
45 {
46   __atomic_load (&a, &b, c); /* { dg-error "non-integer memory model argument" } */
47 }