aboutsummaryrefslogtreecommitdiff
path: root/gcc/omp-low.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-08-08 21:46:36 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2016-08-08 21:46:36 +0200
commit2187f2a2613385f22499ea19f0122b73513ac193 (patch)
tree6020346fe555f3544d9d56f623f61d7531414c06 /gcc/omp-low.c
parentad20058031e8610712a70728a39b6a85edf785df (diff)
downloadgcc-2187f2a2613385f22499ea19f0122b73513ac193.zip
gcc-2187f2a2613385f22499ea19f0122b73513ac193.tar.gz
gcc-2187f2a2613385f22499ea19f0122b73513ac193.tar.bz2
re PR middle-end/72781 (-Wuninitialized false positives in OpenMP code)
PR middle-end/72781 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the private vars for lastprivate and for linear iterator. * gcc.dg/gomp/pr72781.c: New test. From-SVN: r239249
Diffstat (limited to 'gcc/omp-low.c')
-rw-r--r--gcc/omp-low.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index c75452c..678c36e 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -5455,7 +5455,15 @@ lower_lastprivate_clauses (tree clauses, tree predicate, gimple_seq *stmt_list,
new_var = lookup_decl (var, ctx->outer);
}
else
- new_var = lookup_decl (var, ctx);
+ {
+ new_var = lookup_decl (var, ctx);
+ /* Avoid uninitialized warnings for lastprivate and
+ for linear iterators. */
+ if (predicate
+ && (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE
+ || OMP_CLAUSE_LINEAR_NO_COPYIN (c)))
+ TREE_NO_WARNING (new_var) = 1;
+ }
if (simduid && DECL_HAS_VALUE_EXPR_P (new_var))
{