diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/lto-streamer-out.c | 4 | ||||
-rw-r--r-- | libgomp/ChangeLog | 6 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.oacc-c-c++-common/pr85422.c | 13 |
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; +} |