aboutsummaryrefslogtreecommitdiff
path: root/openmp/tools
diff options
context:
space:
mode:
Diffstat (limited to 'openmp/tools')
-rw-r--r--openmp/tools/archer/tests/races/task-dependency.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/openmp/tools/archer/tests/races/task-dependency.c b/openmp/tools/archer/tests/races/task-dependency.c
index 664dd49..f6496ac 100644
--- a/openmp/tools/archer/tests/races/task-dependency.c
+++ b/openmp/tools/archer/tests/races/task-dependency.c
@@ -19,15 +19,16 @@
#include <unistd.h>
int main(int argc, char *argv[]) {
- int var = 0, a = 0;
+ int var = 0, a = 0, b = 0;
#pragma omp parallel num_threads(8) shared(var, a)
#pragma omp master
{
-#pragma omp task shared(var, a) depend(out : var)
+#pragma omp task shared(var, a, b) depend(out : var)
{
OMPT_SIGNAL(a);
var++;
+ OMPT_SIGNAL(b);
}
#pragma omp task shared(a) depend(in : var)
@@ -36,8 +37,9 @@ int main(int argc, char *argv[]) {
OMPT_WAIT(a, 3);
}
-#pragma omp task shared(var) // depend(in: var) is missing here!
+#pragma omp task shared(var, b) // depend(in: var) is missing here!
{
+ OMPT_WAIT(b, 1);
var++;
OMPT_SIGNAL(a);
}
@@ -53,7 +55,7 @@ int main(int argc, char *argv[]) {
// CHECK: WARNING: ThreadSanitizer: data race
// CHECK-NEXT: {{(Write|Read)}} of size 4
-// CHECK-NEXT: #0 {{.*}}task-dependency.c:41
+// CHECK-NEXT: #0 {{.*}}task-dependency.c:43
// CHECK: Previous write of size 4
// CHECK-NEXT: #0 {{.*}}task-dependency.c:30
// CHECK: DONE