Fortran/OpenMP: Fix privatization of associated names
authorTobias Burnus <tobias@codesourcery.com>
Fri, 18 Mar 2022 16:40:22 +0000 (17:40 +0100)
committerTobias Burnus <tobias@codesourcery.com>
Fri, 18 Mar 2022 16:40:22 +0000 (17:40 +0100)
commitc133bdfa9e7d9225510d00dbb7270cc052e4e4ee
treee45f4581f7ffa858ba92ef0665555e3fc70f235f
parent7a42b1fa1a090ead96cc0f94a8060a9650c810d5
Fortran/OpenMP: Fix privatization of associated names

gfc_omp_predetermined_sharing cases the associate-name pointer variable
to be OMP_CLAUSE_DEFAULT_FIRSTPRIVATE, which is fine. However, the associated
selector is shared. Thus, the target of associate-name pointer should not get
copied. (It was before but because of gfc_omp_privatize_by_reference returning
false, the selector was not only wrongly copied but this was also not done
properly.)

gcc/fortran/ChangeLog:

PR fortran/103039
* trans-openmp.cc (gfc_omp_clause_copy_ctor, gfc_omp_clause_dtor):
Only privatize pointer for associate names.

libgomp/ChangeLog:

PR fortran/103039
* testsuite/libgomp.fortran/associate4.f90: New test.
gcc/fortran/trans-openmp.cc
libgomp/testsuite/libgomp.fortran/associate4.f90 [new file with mode: 0644]