]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libgomp/testsuite/libgomp.c/task-2.c
Imported gcc-4.4.3
[msp430-gcc.git] / libgomp / testsuite / libgomp.c / task-2.c
diff --git a/libgomp/testsuite/libgomp.c/task-2.c b/libgomp/testsuite/libgomp.c/task-2.c
new file mode 100644 (file)
index 0000000..ed6a09c
--- /dev/null
@@ -0,0 +1,53 @@
+extern void abort (void);
+
+int
+f1 (void)
+{
+  int a = 6, e = 0;
+  int nested (int x)
+  {
+    return x + a;
+  }
+  #pragma omp task
+  {
+    int n = nested (5);
+    if (n != 11)
+      #pragma omp atomic
+       e += 1;
+  }
+  #pragma omp taskwait
+  return e;
+}
+
+int
+f2 (void)
+{
+  int a = 6, e = 0;
+  int nested (int x)
+  {
+    return x + a;
+  }
+  a = nested (4);
+  #pragma omp task
+  {
+    if (a != 10)
+      #pragma omp atomic
+       e += 1;
+  }
+  #pragma omp taskwait
+  return e;
+}
+
+int
+main (void)
+{
+  int e = 0;
+  #pragma omp parallel num_threads(4) reduction(+:e)
+  {
+    e += f1 ();
+    e += f2 ();
+  }
+  if (e)
+    abort ();
+  return 0;
+}