aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/shared-1.C
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2012-11-08 09:43:39 -0800
committerAndrew Hsieh <andrewhsieh@google.com>2012-11-08 09:43:39 -0800
commit3c56f697e112c79fb5457538fdc373e348beca24 (patch)
tree91987aa2182421ebead7f3bc3e14ae0effd4ba88 /gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/shared-1.C
parent8add91f46171be1526e9b37fffcdb7683ad27d77 (diff)
downloadtoolchain_gcc-3c56f697e112c79fb5457538fdc373e348beca24.tar.gz
toolchain_gcc-3c56f697e112c79fb5457538fdc373e348beca24.tar.bz2
toolchain_gcc-3c56f697e112c79fb5457538fdc373e348beca24.zip
Initial checkin of unmodified gcc-5666.3.tar.gz
This is the source to build gcc-4.2 for MacOSX gcc version 4.2.1 (Apple Inc. build 5666) (dot 3) http://opensource.apple.com/tarballs/gcc/gcc-5666.3.tar.gz Change-Id: I69540223f018e9d07f861fca04bd3833fc138f8b
Diffstat (limited to 'gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/shared-1.C')
-rw-r--r--gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/shared-1.C60
1 files changed, 60 insertions, 0 deletions
diff --git a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/shared-1.C b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/shared-1.C
new file mode 100644
index 000000000..334a553ce
--- /dev/null
+++ b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/shared-1.C
@@ -0,0 +1,60 @@
+#include <omp.h>
+
+extern "C" void abort (void);
+
+struct Y
+{
+ int l[5][10];
+};
+
+struct X
+{
+ struct Y y;
+ float b[10];
+};
+
+void
+parallel (int a, int b)
+{
+ int i, j;
+ struct X A[10][5];
+ a = b = 3;
+
+ for (i = 0; i < 10; i++)
+ for (j = 0; j < 5; j++)
+ A[i][j].y.l[3][3] = -10;
+
+ #pragma omp parallel shared (a, b, A) num_threads (5)
+ {
+ int i, j;
+
+ #pragma omp atomic
+ a += omp_get_num_threads ();
+
+ #pragma omp atomic
+ b += omp_get_num_threads ();
+
+ #pragma omp for private (j)
+ for (i = 0; i < 10; i++)
+ for (j = 0; j < 5; j++)
+ A[i][j].y.l[3][3] += 20;
+
+ }
+
+ for (i = 0; i < 10; i++)
+ for (j = 0; j < 5; j++)
+ if (A[i][j].y.l[3][3] != 10)
+ abort ();
+
+ if (a != 28)
+ abort ();
+
+ if (b != 28)
+ abort ();
+}
+
+main()
+{
+ parallel (1, 2);
+ return 0;
+}