Check that the column information for OpenACC clauses is communicated correctly to the middle-end, in particular by the Fortran front-end (cf. PR 92793).
2019-12-10 Frederik Harwath <frede...@codesourcery.com> gcc/testsuite/ * gcc.dg/goacc/clause-locations.c: New test. * gfortran.dg/goacc/clause-locations.f90: New test. --- gcc/testsuite/gcc.dg/goacc/clause-locations.c | 17 +++++++++++++++++ .../gfortran.dg/goacc/clause-locations.f90 | 18 ++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/goacc/clause-locations.c create mode 100644 gcc/testsuite/gfortran.dg/goacc/clause-locations.f90 diff --git a/gcc/testsuite/gcc.dg/goacc/clause-locations.c b/gcc/testsuite/gcc.dg/goacc/clause-locations.c new file mode 100644 index 00000000000..51184e3517b --- /dev/null +++ b/gcc/testsuite/gcc.dg/goacc/clause-locations.c @@ -0,0 +1,17 @@ +/* Verify that the location information for clauses is correct. */ + +void +check_clause_columns() { + int i, j, sum, diff; + + #pragma acc parallel + { + #pragma acc loop reduction(+:sum) + for (i = 1; i <= 10; i++) + { + #pragma acc loop reduction(-:diff) reduction(-:sum) /* { dg-warning "53: conflicting reduction operations for .sum." } */ + for (j = 1; j <= 10; j++) + sum = 1; + } + } +} diff --git a/gcc/testsuite/gfortran.dg/goacc/clause-locations.f90 b/gcc/testsuite/gfortran.dg/goacc/clause-locations.f90 new file mode 100644 index 00000000000..29798d31542 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/goacc/clause-locations.f90 @@ -0,0 +1,18 @@ +! Verify that the location information for clauses is correct. +! See also PR 92793. + +subroutine check_clause_columns () + implicit none (type, external) + integer :: i, j, sum, diff + + !$acc parallel + !$acc loop reduction(+:sum) + do i = 1, 10 + !$acc loop reduction(-:diff) reduction(-:sum) ! { dg-warning "47: conflicting reduction operations for .sum." } + do j = 1, 10 + sum = 1 + end do + end do + !$acc end parallel +end subroutine check_clause_columns + -- 2.17.1