diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-04-06 14:42:24 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-04-06 14:42:24 +0200 |
commit | ec35ea455c30c14700dbb7a2cbbd3379e0212e96 (patch) | |
tree | adfbb9d8a87972b13facb8bacfc7b423b26a711d /gcc/gimplify.c | |
parent | ce043b0c1ccea48a249a2d55641e46b62d9d7d8f (diff) | |
download | gcc-ec35ea455c30c14700dbb7a2cbbd3379e0212e96.zip gcc-ec35ea455c30c14700dbb7a2cbbd3379e0212e96.tar.gz gcc-ec35ea455c30c14700dbb7a2cbbd3379e0212e96.tar.bz2 |
re PR middle-end/70550 (-Wuninitialized false positives in OpenMP code)
PR middle-end/70550
* tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
* gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
firstprivate clauses.
* omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
(lower_omp_target): Set TREE_NO_WARNING for
non-addressable possibly uninitialized vars which are copied into
addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
* c-c++-common/gomp/pr70550-1.c: New test.
* c-c++-common/gomp/pr70550-2.c: New test.
From-SVN: r234779
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index b9757db..f29d608 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -7742,6 +7742,8 @@ gimplify_adjust_omp_clauses_1 (splay_tree_node n, void *data) && (flags & GOVD_WRITTEN) == 0 && omp_shared_to_firstprivate_optimizable_decl_p (decl)) OMP_CLAUSE_SHARED_READONLY (clause) = 1; + else if (code == OMP_CLAUSE_FIRSTPRIVATE && (flags & GOVD_EXPLICIT) == 0) + OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT (clause) = 1; else if (code == OMP_CLAUSE_MAP && (flags & GOVD_MAP_0LEN_ARRAY) != 0) { tree nc = build_omp_clause (input_location, OMP_CLAUSE_MAP); |