diff libgomp/testsuite/libgomp.c/task-2.c @ 0:a06113de4d67

first commit
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Fri, 17 Jul 2009 14:47:48 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgomp/testsuite/libgomp.c/task-2.c	Fri Jul 17 14:47:48 2009 +0900
@@ -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;
+}