The OpenMP 2.5 SPEC states: 2.8.2 threadprivate Directive ... Each copy of a threadprivate object is initialized once, in the manner specified by the program, but at an unspecified point in the program prior to the first reference to that copy.
I attached a test example that works with gcc, icc, but not Open64. The attached patch fixes the problem in the Open64 runtime. Could a gatekeeper review/approve this change when they have the chance? Thanks, Doug
/* { dg-do run } */
int foo = 123;
#pragma omp threadprivate(foo)
void abort(void);
int main()
{
#pragma omp parallel
{
if (foo != 123)
abort();
}
return 0;
}
bug742.patch
Description: bug742.patch
------------------------------------------------------------------------------ Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d
_______________________________________________ Open64-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/open64-devel
