sharing-1.c

来自「用于进行gcc测试」· C语言 代码 · 共 59 行

C
59
字号
/* { dg-do compile } *//* { dg-require-effective-target tls_native } */#include <stdlib.h>int thrglobalvar;#pragma omp threadprivate (thrglobalvar)int globalvar;const int constvar = 8;intfoo (int x){  return x;}intbar (int *x){  return *x;}intmain (void){  static int thrlocvar;#pragma omp threadprivate (thrlocvar)  static int locvar;  static int *p;  int i, j, s, l;  p = malloc (sizeof (int));  if (p == NULL)    return 0;  *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);	/* Predetermined - shared (const qualified type).  */      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" } */    }  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?