OpenMP/Fortran: Handle polymorphic scalars in data-sharing FIRSTPRIVATE [PR86470]
authorTobias Burnus <tobias@codesourcery.com>
Mon, 24 May 2021 14:50:51 +0000 (16:50 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Mon, 24 May 2021 14:50:51 +0000 (16:50 +0200)
commit0e3b3b77e13cac764a135a7118613c47686e0a62
treeb15486edfb13513d5f4dfe56b86ccc61a2e85fdf
parentb326f495218a213079f572bd9960903b3425da74
OpenMP/Fortran: Handle polymorphic scalars in data-sharing FIRSTPRIVATE [PR86470]

gcc/fortran/ChangeLog:

PR fortran/86470
* trans-expr.c (gfc_copy_class_to_class): Add unshare_expr.
* trans-openmp.c (gfc_is_polymorphic_nonptr,
gfc_is_unlimited_polymorphic_nonptr): New.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_dtor): Handle
polymorphic scalars.

libgomp/ChangeLog:

PR fortran/86470
* testsuite/libgomp.fortran/class-firstprivate-1.f90: New test.
* testsuite/libgomp.fortran/class-firstprivate-2.f90: New test.
* testsuite/libgomp.fortran/class-firstprivate-3.f90: New test.

gcc/testsuite/ChangeLog:

PR fortran/86470
* gfortran.dg/gomp/class-firstprivate-1.f90: New test.
* gfortran.dg/gomp/class-firstprivate-2.f90: New test.
* gfortran.dg/gomp/class-firstprivate-3.f90: New test.
* gfortran.dg/gomp/class-firstprivate-4.f90: New test.
gcc/fortran/trans-expr.c
gcc/fortran/trans-openmp.c
gcc/testsuite/gfortran.dg/gomp/class-firstprivate-1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/gomp/class-firstprivate-2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/gomp/class-firstprivate-3.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/gomp/class-firstprivate-4.f90 [new file with mode: 0644]
libgomp/testsuite/libgomp.fortran/class-firstprivate-1.f90 [new file with mode: 0644]
libgomp/testsuite/libgomp.fortran/class-firstprivate-2.f90 [new file with mode: 0644]
libgomp/testsuite/libgomp.fortran/class-firstprivate-3.f90 [new file with mode: 0644]