! { dg-do run }
! { dg-require-effective-target tls_runtime }

module threadprivate1
  double precision :: d
!$omp threadprivate (d)
end module threadprivate1

!$ use omp_lib
  use threadprivate1
  logical :: l
  l = .false.
!$omp parallel num_threads (4) reduction (.or.:l)
  d = omp_get_thread_num () + 6.5
!$omp barrier
  if (d .ne. omp_get_thread_num () + 6.5) l = .true.
!$omp end parallel
  if (l) call abort ()
end

! { dg-final { cleanup-modules "threadprivate1" } }
