xref: /llvm-project/flang/test/Semantics/OpenMP/threadprivate03.f90 (revision 9f0e59f3c1a56fd14025df973c9f944010efe09a)
1! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenmp -pedantic
2! OpenMP Version 5.1
3! Check OpenMP construct validity for the following directives:
4! 2.21.2 Threadprivate Directive
5
6module mod1
7end
8
9program main
10  use mod1
11  integer, parameter :: i = 1
12
13  !ERROR: The module name or main program name cannot be in a THREADPRIVATE directive
14  !$omp threadprivate(mod1)
15
16  !PORTABILITY: Name 'main' declared in a main program should not have the same name as the main program
17  !ERROR: The module name or main program name cannot be in a THREADPRIVATE directive
18  !$omp threadprivate(main)
19
20  !ERROR: The entity with PARAMETER attribute cannot be in a THREADPRIVATE directive
21  !$omp threadprivate(i)
22
23contains
24  subroutine sub()
25    !ERROR: The procedure name cannot be in a THREADPRIVATE directive
26    !$omp threadprivate(sub)
27  end
28end
29