OSDN Git Service

PR middle-end/27337
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 May 2006 10:44:55 +0000 (10:44 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 May 2006 10:44:55 +0000 (10:44 +0000)
commitdf2c34fcbb12409aa976ade656525b85f2ca1c60
treee7fe929b16a97446edb70447a1000494b145b0dd
parent5056ba1a33d3f4891671b26c02048d5f7fbeca9f
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
12 files changed:
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/cp-gimplify.c
gcc/cp/cp-objcp-common.h
gcc/cp/cp-tree.h
gcc/gimplify.c
gcc/omp-low.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/gomp/pr27337-1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/gomp/pr27337-2.C [new file with mode: 0644]
libgomp/ChangeLog
libgomp/testsuite/libgomp.c++/pr27337.C [new file with mode: 0644]