aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-05-27 15:02:53 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-05-27 15:02:53 +0000
commita1756c0a454d49d74b7f1aaae5ad4d1166c28180 (patch)
treee93bbf8962d1f00c3af600de547d2c9397beae73 /gcc
parent9281625be0619cdf7b4798eb62a69effe306b5cc (diff)
downloadgcc-a1756c0a454d49d74b7f1aaae5ad4d1166c28180.zip
gcc-a1756c0a454d49d74b7f1aaae5ad4d1166c28180.tar.gz
gcc-a1756c0a454d49d74b7f1aaae5ad4d1166c28180.tar.bz2
re PR middle-end/57412 (ICE: in verify_loop_structure, at cfgloop.c:1647: loop 1's latch does not have an edge to its header with -fopenmp -fipa-pure-const)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/omp-low.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/gomp/pr57412.c10
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7d6d31e..b94d492 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
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
* tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 2cae478..afddf37 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -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))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 95330b7..da2e53c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..246f532
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/gomp/pr57412.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+
+int thr;
+#pragma omp threadprivate (thr)
+int foo ()
+{
+ int l;
+#pragma omp parallel copyin (thr) reduction (||:l)
+ ;
+}