diff options
author | Cesar Philippidis <cesar@codesourcery.com> | 2018-04-12 06:15:45 -0700 |
---|---|---|
committer | Cesar Philippidis <cesar@gcc.gnu.org> | 2018-04-12 06:15:45 -0700 |
commit | 2e5efa6760314aac101b63d1a7742cff5f5e650f (patch) | |
tree | b8576600c7c102a8375ae41777eabe324a6b4f07 /libgomp | |
parent | c1566f8942f107774fbe0d41cc5de641175043e7 (diff) | |
download | gcc-2e5efa6760314aac101b63d1a7742cff5f5e650f.zip gcc-2e5efa6760314aac101b63d1a7742cff5f5e650f.tar.gz gcc-2e5efa6760314aac101b63d1a7742cff5f5e650f.tar.bz2 |
re PR middle-end/84955 (Incorrect OpenACC tile expansion)
PR middle-end/84955
gcc/
* lto-streamer-out.c (output_function): Fix CFG loop state before
streaming out.
* omp-expand.c (expand_oacc_for): Handle calls to internal
functions like regular functions.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
* testsuite/libgomp.oacc-fortran/pr84955.f90: New test.
Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r259346
Diffstat (limited to 'libgomp')
-rw-r--r-- | libgomp/testsuite/libgomp.oacc-c-c++-common/pr84955.c | 20 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.oacc-fortran/pr84955.f90 | 20 |
2 files changed, 40 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..5910b57 --- /dev/null +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr84955.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ + +int +main () +{ + int i, j; + +#pragma acc parallel loop tile(2,3) + for (i = 1; i < 10; i++) + for (j = 1; j < 10; j++) + for (;;) + ; + +#pragma acc parallel loop + for (i = 1; i < 10; i++) + 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..878d8a8 --- /dev/null +++ b/libgomp/testsuite/libgomp.oacc-fortran/pr84955.f90 @@ -0,0 +1,20 @@ +! { 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 + + !$acc parallel loop + do i = 1, 10 + do + end do + end do + !$acc end parallel loop +end subroutine s |