Skip to content

flang openmp issue with use, only #53372

Closed
@dsGoose

Description

@dsGoose

Hi,

A variable labeled threadprivate in a fortran module loose his state after a use instruction follow by : only, in user module. A simple test case attached to this email

This test case do not compile with flang and openmp(fland -fopenmp -…… -march=…. Main.f90)
F90-S-0155-tab is not THREADPRIVATE (main.f90: 7)
If we remove : only in mod1_m then the issue disappear.

below a test case to reproduce the issue (to be compile with fopenmp flags)

module mod_m
        implicit none
        integer, pointer, dimension(:) :: tab=>null()
!$omp threadprivate(tab)
        integer, parameter :: info=4
        integer:: autre=6

        contains

        subroutine create(n)
                implicit none
                integer, intent(in) ::n
                integer::i
                allocate (tab(n))
                do i=1,n
                   tab(i)=i
                end do
                print*,"alloue"
        end subroutine create
end module mod_m

module mod1_m
  use mod_m, only : tab, create

  implicit none

end module mod1_m



program main
        use mod1_m
        implicit none


        call create(4)
!$omp parallel default(private) copyin(tab)
        if (associated(tab)) then
 		print*,"associe"
        else
           	print*,"pas associe"
        endif
!$omp end parallel

end program main

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions