diff options
author | Cesar Philippidis <cesar@codesourcery.com> | 2018-04-16 11:01:09 -0700 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2018-04-16 18:01:09 +0000 |
commit | 05e0af43867f79ab6f2e9ad7664ec969ad484890 (patch) | |
tree | 77bb51f57a7a4946543700ee8edc336f786b0a87 /libgomp/testsuite | |
parent | 2d4e0a12089d6bfe5079df70f0618c925bee79e8 (diff) | |
download | gcc-05e0af43867f79ab6f2e9ad7664ec969ad484890.zip gcc-05e0af43867f79ab6f2e9ad7664ec969ad484890.tar.gz gcc-05e0af43867f79ab6f2e9ad7664ec969ad484890.tar.bz2 |
[openacc] Fix ICE when compiling tile loop containing infinite loop
2018-04-16 Cesar Philippidis <cesar@codesourcery.com>
Tom de Vries <tom@codesourcery.com>
PR middle-end/84955
* omp-expand.c (expand_oacc_for): Add dummy false branch for
tiled basic blocks without omp continue statements.
* testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
* testsuite/libgomp.oacc-fortran/pr84955.f90: New test.
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r259406
Diffstat (limited to 'libgomp/testsuite')
-rw-r--r-- | libgomp/testsuite/libgomp.oacc-c-c++-common/pr84955.c | 15 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.oacc-fortran/pr84955.f90 | 13 |
2 files changed, 28 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/pr84955.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr84955.c new file mode 100644 index 0000000..e528faa --- /dev/null +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr84955.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ + +int +main (void) +{ + int i, j; + +#pragma acc parallel loop tile(2,3) + for (i = 1; i < 10; i++) + for (j = 1; j < 10; j++) + for (;;) + ; + + return i + j; +} diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr84955.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr84955.f90 new file mode 100644 index 0000000..dc85865 --- /dev/null +++ b/libgomp/testsuite/libgomp.oacc-fortran/pr84955.f90 @@ -0,0 +1,13 @@ +! { dg-do compile } + +subroutine s + integer :: i, j + !$acc parallel loop tile(2,3) + do i = 1, 10 + do j = 1, 10 + do + end do + end do + end do + !$acc end parallel loop +end subroutine s |