aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-04-06 14:42:24 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2016-04-06 14:42:24 +0200
commitec35ea455c30c14700dbb7a2cbbd3379e0212e96 (patch)
treeadfbb9d8a87972b13facb8bacfc7b423b26a711d /gcc/gimplify.c
parentce043b0c1ccea48a249a2d55641e46b62d9d7d8f (diff)
downloadgcc-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.c2
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);