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;
}

Attachment: 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
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to