OSDN Git Service

* reload.c (find_reloads): Don't clear badop if we have a
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / gomp / sharing-1.c
1 /* { dg-do compile } */
2 /* { dg-require-effective-target tls_native } */
3
4 #include <stdlib.h>
5
6 int thrglobalvar;
7 #pragma omp threadprivate (thrglobalvar)
8 int globalvar;
9 const int constvar = 8;
10
11 int
12 foo (int x)
13 {
14   return x;
15 }
16
17 int
18 bar (int *x)
19 {
20   return *x;
21 }
22
23 int
24 main (void)
25 {
26   static int thrlocvar;
27 #pragma omp threadprivate (thrlocvar)
28   static int locvar;
29   static int *p;
30   int i, j, s, l;
31
32   p = malloc (sizeof (int));
33   if (p == NULL)
34     return 0;
35   *p = 7;
36   s = 6;
37   l = 0;
38 #pragma omp parallel for /* { dg-error "enclosing parallel" } */ \
39   default (none) private (p) shared (s) 
40   for (i = 0; i < 64; i++)
41     {
42       int k = foo (0);  /* Predetermined - private (automatic var declared */
43       k++;              /* in scope of construct).  */
44       thrglobalvar++;   /* Predetermined - threadprivate.  */
45       thrlocvar++;      /* Predetermined - threadprivate.  */
46       foo (i);          /* Predetermined - private (omp for loop variable).  */
47       foo (constvar);   /* Predetermined - shared (const qualified type).  */
48       foo (*p);         /* *p predetermined - shared (heap allocated */
49       (*p)++;           /* storage).  */
50       bar (p);          /* Explicitly determined - private.  */
51       foo (s);          /* Explicitly determined - shared.  */
52       globalvar++;      /* { dg-error "not specified in" } */
53       locvar++;         /* { dg-error "not specified in" } */
54       l++;              /* { dg-error "not specified in" } */
55       for (j = 0; j < 2; j++); /* { dg-error "not specified in" } */
56     }
57   return 0;
58 }