re PR middle-end/57412 (ICE: in verify_loop_structure, at cfgloop.c:1647: loop 1...
authorRichard Biener <rguenther@suse.de>
Mon, 27 May 2013 15:02:53 +0000 (15:02 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 27 May 2013 15:02:53 +0000 (15:02 +0000)
2013-05-27  Richard Biener  <rguenther@suse.de>

PR middle-end/57412
* omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
block for the new loop.

* gcc.dg/gomp/pr57412.c: New testcase.

From-SVN: r199359

gcc/ChangeLog
gcc/omp-low.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/gomp/pr57412.c [new file with mode: 0644]

index 7d6d31e01a22fc71602971119d1f78b32ddb86a2..b94d492f6590d9907f3bfde337af897a06ea36f4 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-27  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/57412
+       * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
+       block for the new loop.
+
 2013-05-27  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/57343
index 2cae478fcb9e4c44c8f9414c72840bc0757fccdf..afddf3774074a6a613ab908fed16658a2a154c5e 100644 (file)
@@ -5665,7 +5665,7 @@ expand_omp_atomic_pipeline (basic_block load_bb, basic_block store_bb,
 
   struct loop *loop = alloc_loop ();
   loop->header = loop_header;
-  loop->latch = loop_header;
+  loop->latch = store_bb;
   add_loop (loop, loop_header->loop_father);
 
   if (gimple_in_ssa_p (cfun))
index 95330b7af9d7c6e764fbca99138d91a864272f27..da2e53cb1ae1ebe7a20f5eb6d97ce6f314f3c026 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-27  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/57412
+       * gcc.dg/gomp/pr57412.c: New testcase.
+
 2013-05-27  Bud Davis  <jmdavis@link.com>
 
        PR fortran/50405
diff --git a/gcc/testsuite/gcc.dg/gomp/pr57412.c b/gcc/testsuite/gcc.dg/gomp/pr57412.c
new file mode 100644 (file)
index 0000000..246f532
--- /dev/null
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+
+int thr;
+#pragma omp threadprivate (thr)
+int foo ()
+{
+  int l;
+#pragma omp parallel copyin (thr) reduction (||:l)
+  ;
+}