PR libgomp/87995
* testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: Require
tls_runtime effective target.
(t): New threadprivate variable.
(main): Set t in threads which execute iterations of the worksharing
loop. Propagate that to the task after the loop and don't abort
if the current taskgroup hasn't been cancelled.
From-SVN: r266904
+2018-12-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgomp/87995
+ * testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: Require
+ tls_runtime effective target.
+ (t): New threadprivate variable.
+ (main): Set t in threads which execute iterations of the worksharing
+ loop. Propagate that to the task after the loop and don't abort
+ if the current taskgroup hasn't been cancelled.
+
2018-12-02 Jakub Jelinek <jakub@redhat.com>
* testsuite/libgomp.c/task-reduction-3.c: New test.
-/* { dg-do run } */
+/* { dg-do run { target tls_runtime } } */
/* { dg-set-target-env-var OMP_CANCELLATION "true" } */
#include <stdlib.h>
#include <omp.h>
+int t;
+#pragma omp threadprivate (t)
+
int
main ()
{
#pragma omp parallel
#pragma omp taskgroup
{
- #pragma omp taskwait
+ int p;
#pragma omp for reduction (task, +: a)
for (i = 0; i < 64; ++i)
{
a++;
+ t = 1;
#pragma omp task in_reduction (+: a)
{
volatile int zero = 0;
}
if (a != 64)
abort ();
- #pragma omp task
+ p = t;
+ #pragma omp task firstprivate (p)
{
- if (omp_get_cancellation ())
+ if (p && omp_get_cancellation ())
abort ();
}
}