Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/gomp/sharing-1.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do compile } */ /* { dg-require-effective-target tls } */ int thrglobalvar; #pragma omp threadprivate (thrglobalvar) int globalvar; const struct S { int x; } constvar = { 8 }; struct T { static T t; int i; }; T T::t = { 6 }; /* const qualified type, but mutable member -> not predetermined. */ const struct U { int x; mutable int y; } constmutvar = { 6, 4 }; int foo (int x) { return x; } int bar (int *x) { return *x; } int baz (U u) { return u.x; } int main (void) { static int thrlocvar; #pragma omp threadprivate (thrlocvar) static int locvar; static int *p; int i, j, s, l; p = new int; *p = 7; s = 6; l = 0; #pragma omp parallel for /* { dg-error "enclosing 'parallel'" } */ \ default (none) private (p) shared (s) for (i = 0; i < 64; i++) { int k = foo (0); /* Predetermined - private (automatic var declared */ k++; /* in scope of construct). */ thrglobalvar++; /* Predetermined - threadprivate. */ thrlocvar++; /* Predetermined - threadprivate. */ foo (i); /* Predetermined - private (omp for loop variable). */ foo (constvar.x); /* { dg-error "not specified in" } */ foo (T::t.i); /* Predetermined - shared (static data member). */ foo (*p); /* *p predetermined - shared (heap allocated */ (*p)++; /* storage). */ bar (p); /* Explicitly determined - private. */ foo (s); /* Explicitly determined - shared. */ globalvar++; /* { dg-error "not specified in" } */ locvar++; /* { dg-error "not specified in" } */ l++; /* { dg-error "not specified in" } */ for (j = 0; j < 2; j++); /* { dg-error "not specified in" } */ baz (constmutvar);/* { dg-error "not specified in" } */ } return 0; }