================
@@ -0,0 +1,41 @@
+// RUN: %libomp-compile -fopenmp-version=61 && %libomp-run \
+// RUN:   | FileCheck %s --match-full-lines
+
+#include <stdio.h>
+#include <stdlib.h>
+
+int main(void) {
+  int I = -1;
+  int J = -1;
+
+#pragma omp flatten
+  for (I = 0; I < 2; ++I)
+    for (J = 0; J < 3; ++J)
+      if (I == 1 && J == 2)
+        continue;
+
+  printf("i=%d j=%d\n", I, J);
+
+#pragma omp flatten
+  for (I = 5; I > 0; I -= 2)
+    for (J = 7; J > 1; J -= 3)
+      ;
+
+  printf("descending-i=%d descending-j=%d\n", I, J);
+
+  // An empty inner loop executes no body, but the outer loop still runs to
+  // completion, so 'I' reaches its final value while 'J' keeps the value from
+  // its initialization.
+  int Zero = 0;
+#pragma omp flatten
+  for (I = 0; I < 3; ++I)
+    for (J = 0; J < Zero; ++J)
+      ;
+
+  printf("empty-inner-i=%d empty-inner-j=%d\n", I, J);
+  return EXIT_SUCCESS;
+}
+
+// CHECK:      i=2 j=3
----------------
Meinersbur wrote:

[nit] Variable names are upper case but printed lower case?

https://github.com/llvm/llvm-project/pull/206977
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to