Files
clang-p2996/flang/test/Semantics/OpenMP/omp-threadprivate03.f90
Peter Klausler dc0d56febb [flang] Warn about local names that are the same as their enclosing program unit
Modules, submodules, main programs, and BLOCK DATA subprograms have names
that cannot be used within their scope, so we allow those names to be
used for other entities in the scope.  This might not be entirely
conformant with the language standard, so warn about it.

Differential Revision: https://reviews.llvm.org/D139146
2022-12-03 17:47:35 -08:00

29 lines
833 B
Fortran

! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenmp
! OpenMP Version 5.1
! Check OpenMP construct validity for the following directives:
! 2.21.2 Threadprivate Directive
module mod1
end
program main
use mod1
integer, parameter :: i = 1
!ERROR: The module name or main program name cannot be in a THREADPRIVATE directive
!$omp threadprivate(mod1)
!PORTABILITY: Name 'main' declared in a main program should not have the same name as the main program
!ERROR: The module name or main program name cannot be in a THREADPRIVATE directive
!$omp threadprivate(main)
!ERROR: The entity with PARAMETER attribute cannot be in a THREADPRIVATE directive
!$omp threadprivate(i)
contains
subroutine sub()
!ERROR: The procedure name cannot be in a THREADPRIVATE directive
!$omp threadprivate(sub)
end
end