PR middle-end/27337
* gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF around RESULT_DECL for result passed by reference. (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen. * omp-low.c (use_pointer_for_field): Don't look at DECL_HAS_VALUE_EXPR_P for RESULT_DECLs. (scan_omp_1): Call remap_decl on RESULT_DECLs. (lower_rec_input_clauses): Don't allocate VLA memory for the second time or var for passing by reference for OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of TREE_ADDRESSABLE variables when passing by reference. * omp-low.c (dump_omp_region): Fix output formatting. cp/ * cp-gimplify.c (cxx_omp_privatize_by_reference): New function. * cp-tree.h (cxx_omp_privatize_by_reference): New prototype. * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define. testsuite/ * g++.dg/gomp/pr27337-1.C: New test. * g++.dg/gomp/pr27337-2.C: New test. libgomp/ * testsuite/libgomp.c++/pr27337.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113456 138bc75d-0d04-0410-961f-82ee72b054a4
Showing
- gcc/ChangeLog 14 additions, 0 deletionsgcc/ChangeLog
- gcc/cp/ChangeLog 7 additions, 0 deletionsgcc/cp/ChangeLog
- gcc/cp/cp-gimplify.c 10 additions, 1 deletiongcc/cp/cp-gimplify.c
- gcc/cp/cp-objcp-common.h 2 additions, 0 deletionsgcc/cp/cp-objcp-common.h
- gcc/cp/cp-tree.h 1 addition, 0 deletionsgcc/cp/cp-tree.h
- gcc/gimplify.c 17 additions, 0 deletionsgcc/gimplify.c
- gcc/omp-low.c 13 additions, 5 deletionsgcc/omp-low.c
- gcc/testsuite/ChangeLog 4 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/g++.dg/gomp/pr27337-1.C 22 additions, 0 deletionsgcc/testsuite/g++.dg/gomp/pr27337-1.C
- gcc/testsuite/g++.dg/gomp/pr27337-2.C 22 additions, 0 deletionsgcc/testsuite/g++.dg/gomp/pr27337-2.C
- libgomp/ChangeLog 5 additions, 0 deletionslibgomp/ChangeLog
- libgomp/testsuite/libgomp.c++/pr27337.C 91 additions, 0 deletionslibgomp/testsuite/libgomp.c++/pr27337.C
Loading
Please register or sign in to comment