re PR middle-end/58257 (Bogus warning with OpenMP collapsed loops)
authorJakub Jelinek <jakub@redhat.com>
Wed, 28 Aug 2013 10:08:59 +0000 (12:08 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 28 Aug 2013 10:08:59 +0000 (12:08 +0200)
PR middle-end/58257
* omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.

* c-c++-common/gomp/pr58257.c: New test.

From-SVN: r202049

gcc/ChangeLog
gcc/omp-low.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/gomp/pr58257.c [new file with mode: 0644]

index 846878e5f3208ef765fc1a491ab9dc6ba0ed97b3..746adff0e2e9070a60a83f87fc05a4578842caa1 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-28  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/58257
+       * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
+
 2013-08-28  Jan Hubicka  <jh@suse.cz>
 
        * builtins.def (free): Declare leaf.
index d24270f97a85bb30ff853054dce98573c06ae6e6..6da219e6869d5d85d77437b0721dabb99005408b 100644 (file)
@@ -850,6 +850,7 @@ copy_var_decl (tree var, tree name, tree type)
   DECL_ARTIFICIAL (copy) = DECL_ARTIFICIAL (var);
   DECL_IGNORED_P (copy) = DECL_IGNORED_P (var);
   DECL_CONTEXT (copy) = DECL_CONTEXT (var);
+  TREE_NO_WARNING (copy) = TREE_NO_WARNING (var);
   TREE_USED (copy) = 1;
   DECL_SEEN_IN_BIND_EXPR_P (copy) = 1;
 
index bca55c647d0b347ad942f08540a037d5807c7154..4e2daaf6098eacf629b4d20dfd8425077b47dfc0 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-28  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/58257
+       * c-c++-common/gomp/pr58257.c: New test.
+
 2013-08-28  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/56933
diff --git a/gcc/testsuite/c-c++-common/gomp/pr58257.c b/gcc/testsuite/c-c++-common/gomp/pr58257.c
new file mode 100644 (file)
index 0000000..8f8d24a
--- /dev/null
@@ -0,0 +1,15 @@
+/* PR middle-end/58257 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fopenmp -Wall" } */
+
+int
+foo (int n)
+{
+  int a[10][10];
+  int x, y;
+#pragma omp parallel for collapse(2)   /* { dg-bogus "may be used uninitialized in this function" } */
+  for (x = 0; x < n; x++)              /* { dg-bogus "may be used uninitialized in this function" } */
+    for (y = 0; y < n; y++)
+      a[x][y] = x + y * y;
+  return a[0][0];
+}