diff libgomp/testsuite/libgomp.c/task-5.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 1830386684a0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgomp/testsuite/libgomp.c/task-5.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,45 @@
+/* { dg-do run } */
+
+#include <omp.h>
+#include <stdlib.h>
+
+int err;
+
+int
+main ()
+{
+  int e;
+#pragma omp parallel shared(err)
+  {
+    if (omp_in_final ())
+      #pragma omp atomic write
+	err = 1;
+    #pragma omp task if (0) shared(err)
+      {
+	if (omp_in_final ())
+	  #pragma omp atomic write
+	    err = 1;
+	#pragma omp task if (0) shared(err)
+	  if (omp_in_final ())
+	    #pragma omp atomic write
+	      err = 1;
+      }
+    #pragma omp task final (1) shared(err)
+      {
+	if (!omp_in_final ())
+	  #pragma omp atomic write
+	    err = 1;
+	#pragma omp taskyield
+	#pragma omp taskwait
+	#pragma omp task shared(err)
+	  if (!omp_in_final ())
+	    #pragma omp atomic write
+	      err = 1;
+      }
+  }
+  #pragma omp atomic read
+    e = err;
+  if (e)
+    abort ();
+  return 0;
+}