My new warning triggered here and said "bitwise comparison always evaluates to
true" and I believe it's right: GOVD_WRITTEN = 131072 which is 10...0000 in
binary, so n->value & GOVD_WRITTEN can never be 1; I suppose 0 was meant to
be used here instead.  Too bad Jakub's away, so he can't confirm.

Bootstrapped/regtested on x86_64-linux and ppc64le-linux, ok for trunk?

2017-08-10  Marek Polacek  <pola...@redhat.com>

        * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of
        1.

diff --git gcc/gimplify.c gcc/gimplify.c
index 86623e09f5d..e52d7dcddaf 100644
--- gcc/gimplify.c
+++ gcc/gimplify.c
@@ -8915,7 +8915,7 @@ gimplify_adjust_omp_clauses (gimple_seq *pre_p, 
gimple_seq body, tree *list_p,
                OMP_CLAUSE_SHARED_READONLY (c) = 1;
              else if (DECL_P (decl)
                       && ((OMP_CLAUSE_CODE (c) == OMP_CLAUSE_SHARED
-                           && (n->value & GOVD_WRITTEN) != 1)
+                           && (n->value & GOVD_WRITTEN) != 0)
                           || (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR
                               && !OMP_CLAUSE_LINEAR_NO_COPYOUT (c)))
                       && omp_shared_to_firstprivate_optimizable_decl_p (decl))

        Marek

Reply via email to