]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
analyzer: start adding test coverage for OpenMP [PR109016]
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 3 Mar 2023 23:18:51 +0000 (18:18 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Fri, 3 Mar 2023 23:18:51 +0000 (18:18 -0500)
gcc/testsuite/ChangeLog:
PR analyzer/109016
* gcc.dg/analyzer/omp-parallel-for-1.c: New test.
* gcc.dg/analyzer/omp-parallel-for-get-min.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/testsuite/gcc.dg/analyzer/omp-parallel-for-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/analyzer/omp-parallel-for-get-min.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.dg/analyzer/omp-parallel-for-1.c b/gcc/testsuite/gcc.dg/analyzer/omp-parallel-for-1.c
new file mode 100644 (file)
index 0000000..dae940d
--- /dev/null
@@ -0,0 +1,21 @@
+/* { dg-additional-options "-fopenmp -Wall" } */
+
+typedef struct _Image
+{
+  int columns, rows;
+} Image;
+
+extern int get_num_threads(void);
+
+void
+test (Image* image)
+{
+  int y;
+
+#pragma omp parallel for schedule(static) \
+  num_threads(get_num_threads ())
+
+  for (y = 0; y < image->rows; y++) {
+    /* [...snip...] */
+  }
+}
diff --git a/gcc/testsuite/gcc.dg/analyzer/omp-parallel-for-get-min.c b/gcc/testsuite/gcc.dg/analyzer/omp-parallel-for-get-min.c
new file mode 100644 (file)
index 0000000..a7e64e1
--- /dev/null
@@ -0,0 +1,24 @@
+/* Reduced from ImageMagick-7.1.0-57's MagickCore/attribute.c: GetEdgeBackgroundColor */
+
+/* { dg-additional-options "-fopenmp -Wall" } */
+
+extern double get_census (void);
+
+double
+test()
+{
+  double census[4], edge_census;
+  int i;
+
+#pragma omp parallel for schedule(static)
+
+  for (i = 0; i < 4; i++) {
+    census[i] = get_census ();
+  }
+  edge_census = (-1.0);
+  for (i = 0; i < 4; i++)
+    if (census[i] > edge_census) { /* { dg-bogus "use of uninitialized value" } */
+      edge_census = census[i];
+    }
+  return edge_census;
+}