aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/lto-streamer-out.c4
-rw-r--r--libgomp/ChangeLog6
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/pr85422.c13
4 files changed, 30 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2fed948..61d92f8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2018-04-26 Richard Biener <rguenther@suse.de>
+ Tom de Vries <tom@codesourcery.com>
+
+ PR lto/85422
+ * lto-streamer-out.c (output_function): Fixup loops if required to match
+ discovery done in the reader.
+
2018-04-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/85116
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 1d2ab97..70476dc 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -2120,6 +2120,9 @@ output_function (struct cgraph_node *node)
debug info. */
if (gimple_has_body_p (function))
{
+ /* Fixup loops if required to match discovery done in the reader. */
+ loop_optimizer_init (AVOID_CFG_MODIFICATIONS);
+
streamer_write_uhwi (ob, 1);
output_struct_function_base (ob, fn);
@@ -2177,6 +2180,7 @@ output_function (struct cgraph_node *node)
output_cfg (ob, fn);
+ loop_optimizer_finalize ();
pop_cfun ();
}
else
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 4d622d9f..e498a08 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,9 @@
+2018-04-26 Richard Biener <rguenther@suse.de>
+ Tom de Vries <tom@codesourcery.com>
+
+ PR lto/85422
+ * testsuite/libgomp.oacc-c-c++-common/pr85422.c: New test.
+
2018-04-26 Tom de Vries <tom@codesourcery.com>
PR target/85519
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85422.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85422.c
new file mode 100644
index 0000000..bcc551d
--- /dev/null
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85422.c
@@ -0,0 +1,13 @@
+/* { dg-do link } */
+
+int
+main (void)
+{
+ #pragma acc parallel
+ #pragma acc loop
+ for (int i = 1; i < 10; i++)
+ for (;;)
+ ;
+
+ return 0;
+}