sharing-1.c
来自「用于进行gcc测试」· C语言 代码 · 共 78 行
C
78 行
/* { dg-do compile } *//* { dg-require-effective-target tls_native } */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 };intfoo (int x){ return x;}intbar (int *x){ return *x;}intbaz (U u){ return u.x;}intmain (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); /* Predetermined - shared (const qualified type). */ 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;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?