https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72781

            Bug ID: 72781
           Summary: -Wuninitialized false positives in OpenMP code
           Product: gcc
           Version: 6.2.0
            Status: UNCONFIRMED
          Keywords: openmp
          Severity: minor
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tschwinge at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org
  Target Milestone: ---

Perhaps similar to PR70550, I found another case of -Wuninitialized false
positives in OpenMP code (at least given my limited understanding of the OpenMP
clauses involved here): for example, when compiling
libgomp/testsuite/libgomp.fortran/simd3.f90 you'll see:

    [...]/libgomp.fortran/simd3.f90:58:0: Warning: 'v' may be used
uninitialized in this function [-Wmaybe-uninitialized]
    [...]/libgomp.fortran/simd3.f90:54:0: note: 'v' was declared here
    [...]/libgomp.fortran/simd3.f90:58:0: Warning: 'u' may be used
uninitialized in this function [-Wmaybe-uninitialized]
    [...]/libgomp.fortran/simd3.f90:54:0: note: 'u' was declared here
    [...]

    54      integer :: p(1024), u, v, i, s, foo
    55      s = 0
    56      !$omp parallel
    57      !$omp do simd linear(k : m + 1) reduction(+: s) lastprivate(u, v) &
    58      !$omp & schedule (static, 32)
    59      do i = 1, 1024
    60        a(i) = a(i) * p(i)
    61        u = p(i) + k
    62        k = k + m + 1
    63        v = p(i) + k
    64        s = s + p(i) + k
    65      end do
    66      !$omp end do simd
    67      !$omp end parallel

(Let me again raise my suggestion to actually run the libgomp testsuite with
-Wall...)

In the "gimple" dump I see "shared" clauses be added on the "omp parallel"
construct for variables referenced inside it -- I guess that's where the
warning originates?  This will be easier to resolve for someone who has a
better understanding of these OpenMP clauses.

Reply via email to