summaryrefslogtreecommitdiff
path: root/libgomp/testsuite/libgomp.c/pr43893.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgomp/testsuite/libgomp.c/pr43893.c')
-rw-r--r--libgomp/testsuite/libgomp.c/pr43893.c61
1 files changed, 61 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c/pr43893.c b/libgomp/testsuite/libgomp.c/pr43893.c
new file mode 100644
index 000000000..b85e9242b
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c/pr43893.c
@@ -0,0 +1,61 @@
+/* PR c/43893 */
+/* { dg-do run } */
+
+extern void abort (void);
+
+int
+main ()
+{
+ int c;
+ unsigned int i;
+ int j;
+ c = 0;
+#pragma omp parallel for reduction(+:c)
+ for (i = 0; i < 1; i++)
+ c++;
+ if (c != 1)
+ abort ();
+ c = 0;
+#pragma omp parallel for reduction(+:c)
+ for (i = 0; i <= 0; i++)
+ c++;
+ if (c != 1)
+ abort ();
+ c = 0;
+#pragma omp parallel for reduction(+:c)
+ for (j = - __INT_MAX__ - 1; j < - __INT_MAX__; j++)
+ c++;
+ if (c != 1)
+ abort ();
+ c = 0;
+#pragma omp parallel for reduction(+:c)
+ for (j = - __INT_MAX__ - 1; j <= - __INT_MAX__ - 1; j++)
+ c++;
+ if (c != 1)
+ abort ();
+ c = 0;
+#pragma omp parallel for reduction(+:c)
+ for (i = 2U * __INT_MAX__ + 1; i > 2U * __INT_MAX__; i--)
+ c++;
+ if (c != 1)
+ abort ();
+ c = 0;
+#pragma omp parallel for reduction(+:c)
+ for (i = 2U * __INT_MAX__ + 1; i >= 2U * __INT_MAX__ + 1; i--)
+ c++;
+ if (c != 1)
+ abort ();
+ c = 0;
+#pragma omp parallel for reduction(+:c)
+ for (j = __INT_MAX__; j > __INT_MAX__ - 1; j--)
+ c++;
+ if (c != 1)
+ abort ();
+ c = 0;
+#pragma omp parallel for reduction(+:c)
+ for (j = __INT_MAX__; j >= __INT_MAX__; j--)
+ c++;
+ if (c != 1)
+ abort ();
+ return 0;
+}