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 + -
显示快捷键?