[Bug testsuite/68705] New: libgomp.c/sort-1.c/sort missing synchronization
vries at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Dec 4 17:20:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68705
Bug ID: 68705
Summary: libgomp.c/sort-1.c/sort missing synchronization
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: testsuite
Assignee: unassigned at gcc dot gnu.org
Reporter: vries at gcc dot gnu.org
Target Milestone: ---
Created attachment 36927
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36927&action=edit
libgomp.c/sort-1.c:sort1
Consider libgomp.c/sort-1.c:sort1 (attached).
There's a bit of code only performed by thread 0:
...
if (omp_get_thread_num () == 0)
{
num_threads = omp_get_num_threads ();
hi = count - 1;
idle = false;
}
...
It initializes shared variable num_threads. This num_threads variable is used
by all threads subsequently, but there doesn't seem to be a mechanism present
that guarantees that the initialization by thread 0 is done before any other
thread reads the value ().
Looking at similar testcases, it seems omp barrier is used.
Adding an omp barrier at the end of the snippet would add the missing
synchronization.
More information about the Gcc-bugs
mailing list