diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2019-03-21 20:54:51 +0100 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gcc.gnu.org> | 2019-03-21 20:54:51 +0100 |
commit | 8ced98c6431c67b4f11b3eb4997b955b97472dc4 (patch) | |
tree | 49e5818fb5e5068922a4a583bef9c6d6a59d044f /gcc | |
parent | 64a40f1320c0edc160796266876958ffae8fdd96 (diff) | |
download | gcc-8ced98c6431c67b4f11b3eb4997b955b97472dc4.zip gcc-8ced98c6431c67b4f11b3eb4997b955b97472dc4.tar.gz gcc-8ced98c6431c67b4f11b3eb4997b955b97472dc4.tar.bz2 |
[PR72741] The name in a Fortran OpenACC 'routine' directive refers to the containing subroutine or function
gcc/fortran/
PR fortran/72741
* openmp.c (gfc_match_oacc_routine): Clarify.
gcc/testsuite/
PR fortran/72741
* gfortran.dg/goacc/routine-module-mod-1.f90: Update.
From-SVN: r269856
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/fortran/openmp.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 | 4 |
4 files changed, 11 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2afab39..111e3a2 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,6 +1,9 @@ 2019-03-21 Thomas Schwinge <thomas@codesourcery.com> PR fortran/72741 + * openmp.c (gfc_match_oacc_routine): Clarify. + + PR fortran/72741 * module.c (verify_OACC_ROUTINE_LOP_NONE): New function. (enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG, AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR, diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c index 7a06eb5..1b1a0b4 100644 --- a/gcc/fortran/openmp.c +++ b/gcc/fortran/openmp.c @@ -2314,6 +2314,9 @@ gfc_match_oacc_routine (void) if (st) { sym = st->n.sym; + /* If the name in a 'routine' directive refers to the containing + subroutine or function, then make sure that we'll later handle + this accordingly. */ if (gfc_current_ns->proc_name != NULL && strcmp (sym->name, gfc_current_ns->proc_name->name) == 0) sym = NULL; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8afdf3e..0c94f6b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,9 @@ 2019-03-21 Thomas Schwinge <thomas@codesourcery.com> PR fortran/72741 + * gfortran.dg/goacc/routine-module-mod-1.f90: Update. + + PR fortran/72741 * gfortran.dg/goacc/routine-module-1.f90: New file. * gfortran.dg/goacc/routine-module-2.f90: Likewise. * gfortran.dg/goacc/routine-module-mod-1.f90: Likewise. diff --git a/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 b/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 index 3855b8c..23c673f 100644 --- a/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 +++ b/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 @@ -18,7 +18,7 @@ contains subroutine s_2 implicit none - !$acc routine seq + !$acc routine (s_2) seq integer :: i @@ -41,7 +41,7 @@ contains subroutine w_1 implicit none - !$acc routine worker + !$acc routine (w_1) worker integer :: i |